| 1 |
- {"remainingRequest":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/thread-loader/dist/cjs.js!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/babel-loader/lib/index.js!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/src/utils/util.js","dependencies":[{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/src/utils/util.js","mtime":1616226204000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZm9yLWVhY2giOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pbmRleC1vZiI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmpvaW4iOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZSI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5jb25zdHJ1Y3RvciI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnJlZ2V4cC5leGVjIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLnRvLXN0cmluZyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5tYXRjaCI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaCI7CgovKioNCiAqIOW4uOeUqOW3peWFt+aWueazlQ0KICovCmV4cG9ydCBkZWZhdWx0IHsKICAvKioNCiAgICog5YCS6K6h5pe2DQogICAqIEBwYXJhbSBlbmRUaW1lIOe7k+adn+aXtumXtA0KICAgKiBAcGFyYW0gc2VydmVyVGltZSDmnI3liqHnq6/lvZPliY3ml7bpl7QNCiAgICogQHBhcmFtIGNhbGxiYWNrIOWbnuiwgw0KICAgKiBAcmV0dXJucyB7bnVtYmVyfSDlrprml7blmajlrp7kvosNCiAgICovCiAgY291bnRkb3duOiBmdW5jdGlvbiBjb3VudGRvd24oZW5kVGltZSwgc2VydmVyVGltZSwgY2FsbGJhY2spIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CgogICAgdmFyIHR5cGUgPSB0eXBlb2Ygc2VydmVyVGltZSA9PT0gJ2Z1bmN0aW9uJywKICAgICAgICBlbmQgPSBuZXcgRGF0ZShlbmRUaW1lKS5nZXRUaW1lKCksCiAgICAgICAgbm93ID0gbmV3IERhdGUoIXNlcnZlclRpbWUgfHwgdHlwZSA/IG5ldyBEYXRlKCkuZ2V0VGltZSgpIDogc2VydmVyVGltZSkuZ2V0VGltZSgpLAogICAgICAgIGNvdW50ID0gZW5kIC0gbm93LAogICAgICAgIHRpbWUgPSBbTWF0aC5mbG9vcihjb3VudCAvICgxMDAwICogNjAgKiA2MCAqIDI0KSksIC8vIOWkqQogICAgTWF0aC5mbG9vcihjb3VudCAvICgxMDAwICogNjAgKiA2MCkpICUgMjQsIC8vIOaXtgogICAgTWF0aC5mbG9vcihjb3VudCAvICgxMDAwICogNjApKSAlIDYwLCAvLyDliIYKICAgIE1hdGguZmxvb3IoY291bnQgLyAxMDAwKSAlIDYwIC8vIOenkgogICAgXTsKICAgIGlmICh0eXBlKSBjYWxsYmFjayA9IHNlcnZlclRpbWU7CiAgICB2YXIgdGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHsKICAgICAgX3RoaXMuY291bnRkb3duKGVuZFRpbWUsIG5vdyArIDEwMDAsIGNhbGxiYWNrKTsKICAgIH0sIDEwMDApOwogICAgY2FsbGJhY2sgJiYgY2FsbGJhY2soY291bnQgPiAwID8gdGltZSA6IFswLCAwLCAwLCAwXSwgc2VydmVyVGltZSwgdGltZXIpOwogICAgaWYgKGNvdW50IDw9IDApIGNsZWFyVGltZW91dCh0aW1lcik7CiAgICByZXR1cm4gdGltZXI7CiAgfSwKCiAgLyoqDQogICAqIOafkOS4quaXtumXtOWcqOW9k+WJjeaXtumXtOeahOWkmuS5heWJjQ0KICAgKiBAcGFyYW0gdGltZSDpnIDopoHor63kuYnljJbnmoTml7bpl7QNCiAgICogQHBhcmFtIG9ubHlEYXRlIOi2hei/hzMw5aSp5piv5ZCm5LuF6L+U5Zue5pel5pyfDQogICAqIEByZXR1cm5zIHtzdHJpbmd9IOivreS5ieWMluWQjueahOaXtumXtA0KICAgKi8KICB0aW1lQWdvOiBmdW5jdGlvbiB0aW1lQWdvKHRpbWUsIG9ubHlEYXRlKSB7CiAgICBpZiAoIXRpbWUpIHJldHVybiAnJzsKICAgIGlmICh0eXBlb2YgdGltZSA9PT0gJ3N0cmluZycpIHRpbWUgPSB0aW1lLnJlcGxhY2UoLy0vZywgJy8nKTsKICAgIHZhciBhcnIgPSBbW10sIFtdXSwKICAgICAgICBzdGFtcCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gbmV3IERhdGUodGltZSkuZ2V0VGltZSgpOyAvLyAzMOWkqeS7peS4iui/lOWbnuWFt+S9k+aXpeacnwoKICAgIGlmIChzdGFtcCA+IDEwMDAgKiA2MCAqIDYwICogMjQgKiAzMSkgewogICAgICBzdGFtcCA9IG5ldyBEYXRlKHRpbWUpOwogICAgICBhcnJbMF1bMF0gPSB0aGlzLmRpZ2l0KHN0YW1wLmdldEZ1bGxZZWFyKCksIDQpOwogICAgICBhcnJbMF1bMV0gPSB0aGlzLmRpZ2l0KHN0YW1wLmdldE1vbnRoKCkgKyAxKTsKICAgICAgYXJyWzBdWzJdID0gdGhpcy5kaWdpdChzdGFtcC5nZXREYXRlKCkpOwoKICAgICAgaWYgKCFvbmx5RGF0ZSkgewogICAgICAgIC8vIOaYr+WQpui+k+WHuuaXtumXtAogICAgICAgIGFyclsxXVswXSA9IHRoaXMuZGlnaXQoc3RhbXAuZ2V0SG91cnMoKSk7CiAgICAgICAgYXJyWzFdWzFdID0gdGhpcy5kaWdpdChzdGFtcC5nZXRNaW51dGVzKCkpOwogICAgICAgIGFyclsxXVsyXSA9IHRoaXMuZGlnaXQoc3RhbXAuZ2V0U2Vjb25kcygpKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGFyclswXS5qb2luKCctJykgKyAnICcgKyBhcnJbMV0uam9pbignOicpOwogICAgfSAvLyAzMOWkqeS7peWGhe+8jOi/lOWbnuKAnOWkmuS5heWJjeKAnQoKCiAgICBpZiAoc3RhbXAgPj0gMTAwMCAqIDYwICogNjAgKiAyNCkgewogICAgICByZXR1cm4gKHN0YW1wIC8gMTAwMCAvIDYwIC8gNjAgLyAyNCB8IDApICsgJ+WkqeWJjSc7CiAgICB9IGVsc2UgaWYgKHN0YW1wID49IDEwMDAgKiA2MCAqIDYwKSB7CiAgICAgIHJldHVybiAoc3RhbXAgLyAxMDAwIC8gNjAgLyA2MCB8IDApICsgJ+Wwj+aXtuWJjSc7CiAgICB9IGVsc2UgaWYgKHN0YW1wID49IDEwMDAgKiA2MCAqIDMpIHsKICAgICAgLy8gM+WIhumSn+S7peWGheS4uu+8muWImuWImgogICAgICByZXR1cm4gKHN0YW1wIC8gMTAwMCAvIDYwIHwgMCkgKyAn5YiG6ZKf5YmNJzsKICAgIH0gZWxzZSBpZiAoc3RhbXAgPCAwKSB7CiAgICAgIHJldHVybiAn5pyq5p2lJzsKICAgIH0gZWxzZSB7CiAgICAgIHJldHVybiAn5Yia5YiaJzsKICAgIH0KICB9LAoKICAvKioNCiAgICog5pWw5a2X5YmN572u6KGl6Zu2DQogICAqIEBwYXJhbSBudW0g5pWw5a2XDQogICAqIEBwYXJhbSBsZW5ndGgg5L2N5pWwDQogICAqIEByZXR1cm5zIHtzdHJpbmd9DQogICAqLwogIGRpZ2l0OiBmdW5jdGlvbiBkaWdpdChudW0sIGxlbmd0aCkgewogICAgdmFyIHN0ciA9ICcnOwogICAgbnVtID0gU3RyaW5nKG51bSk7CiAgICBsZW5ndGggPSBsZW5ndGggfHwgMjsKCiAgICBmb3IgKHZhciBpID0gbnVtLmxlbmd0aDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgIHN0ciArPSAnMCc7CiAgICB9CgogICAgcmV0dXJuIG51bSA8IE1hdGgucG93KDEwLCBsZW5ndGgpID8gc3RyICsgKG51bSB8IDApIDogbnVtOwogIH0sCgogIC8qKg0KICAgKiDovazljJbkuLrml6XmnJ/moLzlvI/lrZfnrKYNCiAgICogQHBhcmFtIHRpbWUg5pe26Ze0DQogICAqIEBwYXJhbSBmb3JtYXQg5qC85byPDQogICAqIEByZXR1cm5zIHtzdHJpbmd9DQogICAqLwogIHRvRGF0ZVN0cmluZzogZnVuY3Rpb24gdG9EYXRlU3RyaW5nKHRpbWUsIGZvcm1hdCkgewogICAgaWYgKCF0aW1lKSByZXR1cm4gJyc7CiAgICBpZiAodHlwZW9mIHRpbWUgPT09ICdzdHJpbmcnKSB0aW1lID0gdGltZS5yZXBsYWNlKC8tL2csICcvJyk7CiAgICB2YXIgZGF0ZSA9IG5ldyBEYXRlKHRpbWUgfHwgbmV3IERhdGUoKSksCiAgICAgICAgeW1kID0gW3RoaXMuZGlnaXQoZGF0ZS5nZXRGdWxsWWVhcigpLCA0KSwgdGhpcy5kaWdpdChkYXRlLmdldE1vbnRoKCkgKyAxKSwgdGhpcy5kaWdpdChkYXRlLmdldERhdGUoKSldLAogICAgICAgIGhtcyA9IFt0aGlzLmRpZ2l0KGRhdGUuZ2V0SG91cnMoKSksIHRoaXMuZGlnaXQoZGF0ZS5nZXRNaW51dGVzKCkpLCB0aGlzLmRpZ2l0KGRhdGUuZ2V0U2Vjb25kcygpKV07CiAgICBmb3JtYXQgPSBmb3JtYXQgfHwgJ3l5eXktTU0tZGQgSEg6bW06c3MnOwogICAgcmV0dXJuIGZvcm1hdC5yZXBsYWNlKC95eXl5L2csIHltZFswXSkucmVwbGFjZSgvTU0vZywgeW1kWzFdKS5yZXBsYWNlKC9kZC9nLCB5bWRbMl0pLnJlcGxhY2UoL0hIL2csIGhtc1swXSkucmVwbGFjZSgvbW0vZywgaG1zWzFdKS5yZXBsYWNlKC9zcy9nLCBobXNbMl0pOwogIH0sCgogIC8qKg0KICAgKiBodG1s6L2s5LmJLCDpmLLmraJ4c3PmlLvlh7sNCiAgICogQHBhcmFtIGh0bWwg6ZyA6KaB6L2s5LmJ55qE5a2X56ym5LiyDQogICAqIEByZXR1cm5zIHtzdHJpbmd9DQogICAqLwogIGVzY2FwZTogZnVuY3Rpb24gZXNjYXBlKGh0bWwpIHsKICAgIHJldHVybiBTdHJpbmcoaHRtbCB8fCAnJykucmVwbGFjZSgvJig/ISM/W2EtekEtWjAtOV0rOykvZywgJyZhbXA7JykucmVwbGFjZSgvPC9nLCAnJmx0OycpLnJlcGxhY2UoLz4vZywgJyZndDsnKS5yZXBsYWNlKC8nL2csICcmIzM5OycpLnJlcGxhY2UoLyIvZywgJyZxdW90OycpOwogIH0sCgogIC8qKg0KICAgKiBwaWTlvaLlvI/mlbDmja7ovaxjaGlsZHJlbuW9ouW8jw0KICAgKiBAcGFyYW0gZGF0YSDpnIDopoHovazmjaLnmoTmlbDnu4QNCiAgICogQHBhcmFtIGlkS2V5IGlk5a2X5q615ZCNDQogICAqIEBwYXJhbSBwaWRLZXkgcGlk5a2X5q615ZCNDQogICAqIEBwYXJhbSBjaGlsZEtleSDnlJ/miJDnmoRjaGlsZHJlbuWtl+auteWQjQ0KICAgKiBAcGFyYW0gcGlkIOmhtue6p+eahHBpZA0KICAgKiBAcmV0dXJucyB7W119DQogICAqLwogIHRvVHJlZURhdGE6IGZ1bmN0aW9uIHRvVHJlZURhdGEoZGF0YSwgaWRLZXksIHBpZEtleSwgY2hpbGRLZXksIHBpZCkgewogICAgdmFyIF90aGlzMiA9IHRoaXM7CgogICAgaWYgKCFjaGlsZEtleSkgY2hpbGRLZXkgPSAnY2hpbGRyZW4nOwoKICAgIGlmIChwaWQgPT09IHVuZGVmaW5lZCkgewogICAgICBwaWQgPSBbXTsKICAgICAgZGF0YS5mb3JFYWNoKGZ1bmN0aW9uIChkKSB7CiAgICAgICAgdmFyIGZsYWcgPSB0cnVlOwoKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGlmIChkW3BpZEtleV0gPT0gZGF0YVtpXVtpZEtleV0pIHsKICAgICAgICAgICAgZmxhZyA9IGZhbHNlOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChmbGFnKSBwaWQucHVzaChkW3BpZEtleV0pOwogICAgICB9KTsKICAgIH0KCiAgICB2YXIgcmVzdWx0ID0gW107CiAgICBkYXRhLmZvckVhY2goZnVuY3Rpb24gKGQpIHsKICAgICAgaWYgKGRbaWRLZXldID09IGRbcGlkS2V5XSkgcmV0dXJuIGNvbnNvbGUuZXJyb3IoJ2RhdGEgZXJyb3I6ICcsIGQpOwoKICAgICAgaWYgKEFycmF5LmlzQXJyYXkocGlkKSA/IHBpZC5pbmRleE9mKGRbcGlkS2V5XSkgIT09IC0xIDogZFtwaWRLZXldID09IHBpZCkgewogICAgICAgIHZhciBjaGlsZHJlbiA9IF90aGlzMi50b1RyZWVEYXRhKGRhdGEsIGlkS2V5LCBwaWRLZXksIGNoaWxkS2V5LCBkW2lkS2V5XSk7CgogICAgICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAwKSBkW2NoaWxkS2V5XSA9IGNoaWxkcmVuOwogICAgICAgIHJlc3VsdC5wdXNoKGQpOwogICAgICB9CiAgICB9KTsKICAgIHJldHVybiByZXN1bHQ7CiAgfSwKCiAgLyoqDQogICAqIOmBjeWOhmNoaWxkcmVu5b2i5byP5pWw5o2uDQogICAqIEBwYXJhbSBkYXRhIOmcgOimgemBjeWOhueahOaVsOe7hA0KICAgKiBAcGFyYW0gY2FsbGJhY2sg5Zue6LCDDQogICAqIEBwYXJhbSBjaGlsZEtleSBjaGlsZHJlbuWtl+auteWQjQ0KICAgKi8KICBlYWNoVHJlZURhdGE6IGZ1bmN0aW9uIGVhY2hUcmVlRGF0YShkYXRhLCBjYWxsYmFjaywgY2hpbGRLZXkpIHsKICAgIHZhciBfdGhpczMgPSB0aGlzOwoKICAgIGlmICghY2hpbGRLZXkpIGNoaWxkS2V5ID0gJ2NoaWxkcmVuJzsKICAgIGRhdGEuZm9yRWFjaChmdW5jdGlvbiAoZCkgewogICAgICBpZiAoY2FsbGJhY2soZCkgIT09IGZhbHNlICYmIGRbY2hpbGRLZXldKSBfdGhpczMuZWFjaFRyZWVEYXRhKGRbY2hpbGRLZXldLCBjYWxsYmFjaywgY2hpbGRLZXkpOwogICAgfSk7CiAgfSwKCiAgLyoqDQogICAqIOiuqea1j+iniOWZqOWFqOWxj+WIh+aNog0KICAgKiBAcmV0dXJucyB7RWxlbWVudHwqfGJvb2xlYW59IOaYr+WQpuaYr+WFqOWxj+eKtuaAgQ0KICAgKi8KICBmdWxsU2NyZWVuOiBmdW5jdGlvbiBmdWxsU2NyZWVuKCkgewogICAgdmFyIGlzRnVsbCA9IGRvY3VtZW50LmZ1bGxzY3JlZW5FbGVtZW50IHx8IGRvY3VtZW50Lm1zRnVsbHNjcmVlbkVsZW1lbnQgfHwgZG9jdW1lbnQubW96RnVsbFNjcmVlbkVsZW1lbnQgfHwgZG9jdW1lbnQud2Via2l0RnVsbHNjcmVlbkVsZW1lbnQgfHwgZmFsc2U7CgogICAgaWYgKGlzRnVsbCkgewogICAgICB2YXIgZWZzID0gZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4gfHwgZG9jdW1lbnQud2Via2l0RXhpdEZ1bGxzY3JlZW4gfHwgZG9jdW1lbnQubW96Q2FuY2VsRnVsbFNjcmVlbiB8fCBkb2N1bWVudC5tc0V4aXRGdWxsc2NyZWVuOwoKICAgICAgaWYgKGVmcykgewogICAgICAgIGVmcy5jYWxsKGRvY3VtZW50KTsKICAgICAgfSBlbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkgewogICAgICAgIHZhciB3cyA9IG5ldyB3aW5kb3cuQWN0aXZlWE9iamVjdCgnV1NjcmlwdC5TaGVsbCcpOwogICAgICAgIHdzICYmIHdzLlNlbmRLZXlzKCd7RjExfScpOwogICAgICB9CiAgICB9IGVsc2UgewogICAgICB2YXIgZWwgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7CiAgICAgIHZhciByZnMgPSBlbC5yZXF1ZXN0RnVsbHNjcmVlbiB8fCBlbC53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbiB8fCBlbC5tb3pSZXF1ZXN0RnVsbFNjcmVlbiB8fCBlbC5tc1JlcXVlc3RGdWxsc2NyZWVuOwoKICAgICAgaWYgKHJmcykgewogICAgICAgIHJmcy5jYWxsKGVsKTsKICAgICAgfSBlbHNlIGlmICh3aW5kb3cuQWN0aXZlWE9iamVjdCkgewogICAgICAgIHZhciB3c3MgPSBuZXcgd2luZG93LkFjdGl2ZVhPYmplY3QoJ1dTY3JpcHQuU2hlbGwnKTsKICAgICAgICB3c3MgJiYgd3NzLlNlbmRLZXlzKCd7RjExfScpOwogICAgICB9CiAgICB9CgogICAgcmV0dXJuIGlzRnVsbDsKICB9LAoKICAvKioNCiAgICog6I635Y+W5bGP5bmV5a695bqmDQogICAqIEByZXR1cm5zIHtudW1iZXJ9DQogICAqLwogIHNjcmVlbldpZHRoOiBmdW5jdGlvbiBzY3JlZW5XaWR0aCgpIHsKICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGggfHwgZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDsKICB9LAoKICAvKioNCiAgICog6I635Y+W5bGP5bmV6auY5bqmDQogICAqIEByZXR1cm5zIHtudW1iZXJ9DQogICAqLwogIHNjcmVlbkhlaWdodDogZnVuY3Rpb24gc2NyZWVuSGVpZ2h0KCkgewogICAgcmV0dXJuIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgfHwgZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7CiAgfSwKCiAgLyoqDQogICAqIGh0bWzovax0ZXh0LCDojrflj5ZodG1s55qE57qv5paH5pysDQogICAqIEBwYXJhbSBodG1sDQogICAqIEByZXR1cm5zIHsqfQ0KICAgKi8KICBodG1sVG9UZXh0OiBmdW5jdGlvbiBodG1sVG9UZXh0KGh0bWwpIHsKICAgIC8qbGV0IGVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCiAgICBlbGVtLmlubmVySFRNTCA9IGh0bWw7DQogICAgcmV0dXJuIGVsZW0uaW5uZXJUZXh0OyovCiAgICByZXR1cm4gaHRtbC5yZXBsYWNlKC88W14+XSs+L2csICcnKTsKICB9LAoKICAvKioNCiAgICog6I635Y+W6K6+5aSH5L+h5oGvDQogICAqIEBwYXJhbSBrZXkg6Ieq5a6a5LmJ55qEYWdlbnQNCiAgICogQHJldHVybnMge3t3ZWl4aW46ICosIG9zOiAoc3RyaW5nfHVuZGVmaW5lZCksIGllOiBib29sZWFufX0NCiAgICovCiAgZGV2aWNlOiBmdW5jdGlvbiBkZXZpY2Uoa2V5KSB7CiAgICB2YXIgYWdlbnQgPSBuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCksCiAgICAgICAgLy8g6I635Y+W54mI5pys5Y+3CiAgICBnZXRWZXJzaW9uID0gZnVuY3Rpb24gZ2V0VmVyc2lvbihsYWJlbCkgewogICAgICB2YXIgZXhwID0gbmV3IFJlZ0V4cChsYWJlbCArICcvKFteXFxzXFxfXFwtXSspJyk7CiAgICAgIGxhYmVsID0gKGFnZW50Lm1hdGNoKGV4cCkgfHwgW10pWzFdOwogICAgICByZXR1cm4gbGFiZWwgfHwgZmFsc2U7CiAgICB9LAogICAgICAgIC8vIOi/lOWbnue7k+aenOmbhgogICAgcmVzdWx0ID0gewogICAgICBvczogZnVuY3Rpb24gKCkgewogICAgICAgIC8vIOW6leWxguaTjeS9nOezu+e7nwogICAgICAgIGlmICgvd2luZG93cy8udGVzdChhZ2VudCkpIHsKICAgICAgICAgIHJldHVybiAnd2luZG93cyc7CiAgICAgICAgfSBlbHNlIGlmICgvbGludXgvLnRlc3QoYWdlbnQpKSB7CiAgICAgICAgICByZXR1cm4gJ2xpbnV4JzsKICAgICAgICB9IGVsc2UgaWYgKC9pcGhvbmV8aXBvZHxpcGFkfGlvcy8udGVzdChhZ2VudCkpIHsKICAgICAgICAgIHJldHVybiAnaW9zJzsKICAgICAgICB9IGVsc2UgaWYgKC9tYWMvLnRlc3QoYWdlbnQpKSB7CiAgICAgICAgICByZXR1cm4gJ21hYyc7CiAgICAgICAgfSBlbHNlIGlmICgvYW5kcm9pZC8udGVzdChhZ2VudCkpIHsKICAgICAgICAgIHJldHVybiAnYW5kcm9pZCc7CiAgICAgICAgfQogICAgICB9KCksCiAgICAgIGllOiBmdW5jdGlvbiAoKSB7CiAgICAgICAgLy8gaWXniYjmnKwKICAgICAgICByZXR1cm4gISF3aW5kb3cuQWN0aXZlWE9iamVjdCB8fCAnQWN0aXZlWE9iamVjdCcgaW4gd2luZG93ID8gKGFnZW50Lm1hdGNoKC9tc2llXHMoXGQrKS8pIHx8IFtdKVsxXSB8fCAnMTEnIC8vIOeUseS6jmllMTHlubbmsqHmnIltc2ll55qE5qCH6K+GCiAgICAgICAgOiBmYWxzZTsKICAgICAgfSgpLAogICAgICB3ZWl4aW46IGdldFZlcnNpb24oJ21pY3JvbWVzc2VuZ2VyJykgLy8g5piv5ZCm5b6u5L+hCgogICAgfTsgLy8g5Lu75oSP55qEa2V5CgoKICAgIGlmIChrZXkgJiYgIXJlc3VsdFtrZXldKSB7CiAgICAgIHJlc3VsdFtrZXldID0gZ2V0VmVyc2lvbihrZXkpOwogICAgfSAvLyDnp7vliqjorr7lpIcKCgogICAgcmVzdWx0LmFuZHJvaWQgPSAvYW5kcm9pZC8udGVzdChhZ2VudCk7CiAgICByZXN1bHQuaW9zID0gcmVzdWx0Lm9zID09PSAnaW9zJzsKICAgIHJlc3VsdC5tb2JpbGUgPSByZXN1bHQuYW5kcm9pZCB8fCByZXN1bHQuaW9zID8gdHJ1ZSA6IGZhbHNlOwogICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICAvKioNCiAgICog55Sf5oiQ6ZqP5py6aWQNCiAgICogQHBhcmFtIGxlbmd0aCDplb/luqYNCiAgICogQHJldHVybnMge3N0cmluZ30NCiAgICovCiAgdXVpZDogZnVuY3Rpb24gdXVpZCgpIHsKICAgIHZhciBsZW5ndGggPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IDMyOwogICAgdmFyIG51bSA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMTIzNDU2Nzg5MCc7CiAgICB2YXIgc3RyID0gJyc7CgogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICBzdHIgKz0gbnVtLmNoYXJBdChNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkgKiBudW0ubGVuZ3RoKSk7CiAgICB9CgogICAgcmV0dXJuIHN0cjsKICB9LAoKICAvKioNCiAgICog55Sf5oiQbeWIsG7nmoTpmo/mnLrmlbDvvIzkuI3ljIXlkKtuDQogICAqIEBwYXJhbSBtIOacgOWwj+WAvA0KICAgKiBAcGFyYW0gbiDmnIDlpKflgLwNCiAgICogQHJldHVybnMge251bWJlcn0NCiAgICovCiAgcmFuZG9tOiBmdW5jdGlvbiByYW5kb20obSwgbikgewogICAgcmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtIC0gbikgKyBuKTsKICB9LAoKICAvKioNCiAgICog55m+5bqm5Zyw5Zu+5Z2Q5qCH6L2s6auY5b635Zyw5Zu+5Z2Q5qCHDQogICAqIEBwYXJhbSBwb2ludCDlnZDmoIcNCiAgICogQHJldHVybnMge3tsbmc6IG51bWJlciwgbGF0OiBudW1iZXJ9fQ0KICAgKi8KICBiZDA5VG9HY2owMjogZnVuY3Rpb24gYmQwOVRvR2NqMDIocG9pbnQpIHsKICAgIHZhciB4X3BpID0gMy4xNDE1OTI2NTM1ODk3OTMyNCAqIDMwMDAuMCAvIDE4MC4wOwogICAgdmFyIHggPSBwb2ludC5sbmcgLSAwLjAwNjUsCiAgICAgICAgeSA9IHBvaW50LmxhdCAtIDAuMDA2OwogICAgdmFyIHogPSBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSkgLSAwLjAwMDAyICogTWF0aC5zaW4oeSAqIHhfcGkpOwogICAgdmFyIHRoZXRhID0gTWF0aC5hdGFuMih5LCB4KSAtIDAuMDAwMDAzICogTWF0aC5jb3MoeCAqIHhfcGkpOwogICAgcmV0dXJuIHsKICAgICAgbG5nOiB6ICogTWF0aC5jb3ModGhldGEpLAogICAgICBsYXQ6IHogKiBNYXRoLnNpbih0aGV0YSkKICAgIH07CiAgfSwKCiAgLyoqDQogICAqIOmrmOW+t+WcsOWbvuWdkOagh+i9rOeZvuW6puWcsOWbvuWdkOaghw0KICAgKiBAcGFyYW0gcG9pbnQg5Z2Q5qCHDQogICAqIEByZXR1cm5zIHt7bG5nOiBudW1iZXIsIGxhdDogbnVtYmVyfX0NCiAgICovCiAgZ2NqMDJUb0JkMDk6IGZ1bmN0aW9uIGdjajAyVG9CZDA5KHBvaW50KSB7CiAgICB2YXIgeF9waSA9IDMuMTQxNTkyNjUzNTg5NzkzMjQgKiAzMDAwLjAgLyAxODAuMDsKICAgIHZhciB4ID0gcG9pbnQubG5nLAogICAgICAgIHkgPSBwb2ludC5sYXQ7CiAgICB2YXIgeiA9IE1hdGguc3FydCh4ICogeCArIHkgKiB5KSArIDAuMDAwMDIgKiBNYXRoLnNpbih5ICogeF9waSk7CiAgICB2YXIgdGhldGEgPSBNYXRoLmF0YW4yKHksIHgpICsgMC4wMDAwMDMgKiBNYXRoLmNvcyh4ICogeF9waSk7CiAgICByZXR1cm4gewogICAgICBsbmc6IHogKiBNYXRoLmNvcyh0aGV0YSkgKyAwLjAwNjUsCiAgICAgIGxhdDogeiAqIE1hdGguc2luKHRoZXRhKSArIDAuMDA2CiAgICB9OwogIH0sCgogIC8qKg0KICAgKiDmt7HluqblhYvpmoblr7nosaENCiAgICogQHBhcmFtIG9iag0KICAgKiBAcmV0dXJucyB7e318Kn0NCiAgICovCiAgZGVlcENsb25lOiBmdW5jdGlvbiBkZWVwQ2xvbmUob2JqKSB7CiAgICB2YXIgX3RoaXM0ID0gdGhpczsKCiAgICB2YXIgcmVzdWx0OwogICAgdmFyIHR5cGUgPSB0aGlzLnR5cGVPZihvYmopOwogICAgaWYgKHR5cGUgPT09ICdPYmplY3QnKSByZXN1bHQgPSB7fTtlbHNlIGlmICh0eXBlID09PSAnQXJyYXknKSByZXN1bHQgPSBbXTtlbHNlIHJldHVybiBvYmo7CiAgICBPYmplY3Qua2V5cyhvYmopLmZvckVhY2goZnVuY3Rpb24gKGtleSkgewogICAgICB2YXIgY29weSA9IG9ialtrZXldLAogICAgICAgICAgY1R5cGUgPSBfdGhpczQudHlwZU9mKGNvcHkpOwoKICAgICAgaWYgKGNUeXBlID09PSAnT2JqZWN0JyB8fCBjVHlwZSA9PT0gJ0FycmF5JykgcmVzdWx0W2tleV0gPSBfdGhpczQuZGVlcENsb25lKGNvcHkpO2Vsc2UgcmVzdWx0W2tleV0gPSBvYmpba2V5XTsKICAgIH0pOwogICAgcmV0dXJuIHJlc3VsdDsKICB9LAoKICAvKioNCiAgICog6I635Y+W5Y+Y6YeP57G75Z6LDQogICAqIEBwYXJhbSBvYmoNCiAgICogQHJldHVybnMge3N0cmluZ30NCiAgICovCiAgdHlwZU9mOiBmdW5jdGlvbiB0eXBlT2Yob2JqKSB7CiAgICBpZiAob2JqID09PSBudWxsKSByZXR1cm4gJ051bGwnOwogICAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJ1VuZGVmaW5lZCc7CiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikuc2xpY2UoOCwgLTEpOwogIH0sCgogIC8qKg0KICAgKiDmkq3mlL7pn7PpopENCiAgICogQHBhcmFtIHVybCDpn7PpopHlnLDlnYANCiAgICovCiAgcGxheTogZnVuY3Rpb24gcGxheSh1cmwpIHsKICAgIHJldHVybiBuZXcgQXVkaW8odXJsKS5wbGF5KCk7CiAgfSwKCiAgLyoqDQogICAqIOWIpOaWreWvjOaWh+acrOaYr+WQpuS4uuepug0KICAgKiBAcGFyYW0gaHRtbA0KICAgKi8KICBodG1sSXNCbGFuazogZnVuY3Rpb24gaHRtbElzQmxhbmsoaHRtbCkgewogICAgaWYgKCFodG1sKSByZXR1cm4gdHJ1ZTsKICAgIHZhciBtZWRpYSA9IFsnaW1nJywgJ2F1ZGlvJywgJ3ZpZGVvJywgJ2lmcmFtZScsICdvYmplY3QnXTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1lZGlhLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmIChodG1sLmluZGV4T2YoJzwnICsgbWVkaWFbaV0pID4gLTEpIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICB2YXIgc3RyID0gaHRtbC5yZXBsYWNlKC9ccyovZywgJycpOyAvLyDljrvmjonmiYDmnInnqbrmoLwKCiAgICBpZiAoIXN0cikgcmV0dXJuIHRydWU7CiAgICBzdHIgPSBzdHIucmVwbGFjZSgvJm5ic3A7L2lnLCAnJyk7IC8vIOWOu+aOieaJgOaciSZuYnNwOwoKICAgIGlmICghc3RyKSByZXR1cm4gdHJ1ZTsKICAgIHN0ciA9IHN0ci5yZXBsYWNlKC88W14+XSs+L2csICcnKTsgLy8g5Y675o6J5omA5pyJaHRtbOagh+etvgoKICAgIHJldHVybiAhc3RyOwogIH0sCgogIC8qKg0KICAgKiDlr7zlh7pleGNlbA0KICAgKiBAcGFyYW0gWExTWCBYTFNY5a+56LGhDQogICAqIEBwYXJhbSBzaGVldCDmlbDnu4TmiJZzaGVldOWvueixoQ0KICAgKiBAcGFyYW0gc2hlZXRuYW1lIOaWh+S7tuWQjeensA0KICAgKiBAcGFyYW0gdHlwZSDmlofku7bmoLzlvI8NCiAgICovCiAgZXhwb3J0U2hlZXQ6IGZ1bmN0aW9uIGV4cG9ydFNoZWV0KFhMU1gsIHNoZWV0LCBzaGVldG5hbWUsIHR5cGUpIHsKICAgIGlmICghc2hlZXRuYW1lKSBzaGVldG5hbWUgPSAnc2hlZXQxJzsKICAgIGlmICghdHlwZSkgdHlwZSA9ICd4bHN4JzsKICAgIGlmIChBcnJheS5pc0FycmF5KHNoZWV0KSkgc2hlZXQgPSBYTFNYLnV0aWxzLmFvYV90b19zaGVldChzaGVldCk7CiAgICB2YXIgd29ya2Jvb2sgPSB7CiAgICAgIFNoZWV0TmFtZXM6IFtzaGVldG5hbWVdLAogICAgICBTaGVldHM6IHt9CiAgICB9OwogICAgd29ya2Jvb2suU2hlZXRzW3NoZWV0bmFtZV0gPSBzaGVldDsKICAgIFhMU1gud3JpdGVGaWxlKHdvcmtib29rLCBzaGVldG5hbWUgKyAnLicgKyB0eXBlKTsKICB9LAoKICAvKioNCiAgICog5bi455So6aKc6ImyDQogICAqLwogIGJlYXV0aWZ1bENvbG9yczogWydyZ2IoMjQsMTQ0LDI1NSknLCAncmdiKDEwMiwxODEsMjU1KScsICdyZ2IoNjUsIDIxNywgMTk5KScsICdyZ2IoNDcsIDE5NCwgOTEpJywgJ3JnYigxMTAsIDIxOSwgMTQzKScsICdyZ2IoMTU0LCAyMzAsIDkyKScsICdyZ2IoMjUwLCAyMDQsIDIwKScsICdyZ2IoMjMwLCAxNTAsIDkyKScsICdyZ2IoODcsIDE3MywgMTEzKScsICdyZ2IoMzQsIDUwLCAxMTUpJywgJ3JnYigxMTUsIDEzOCwgMjMwKScsICdyZ2IoMTE3LCAxMDAsIDIwNCknLCAncmdiKDEzMywgNjcsIDIyNCknLCAncmdiKDE2OCwgMTE5LCAyMzcpJywgJ3JnYig5MiwgMTQyLCAyMzApJywgJ3JnYigxOSwgMTk0LCAxOTQpJywgJ3JnYigxMTIsIDIyNCwgMjI0KScsICdyZ2IoOTIsIDE2MywgMjMwKScsICdyZ2IoNTIsIDU0LCAxOTkpJywgJ3JnYigxMjgsIDEzMCwgMjU1KScsICdyZ2IoMjIxLCAxMjksIDIzMCknLCAncmdiKDI0MCwgNzIsIDEwMCknLCAncmdiKDI1MCwgMTI1LCAxNDYpJywgJ3JnYigyMTMsIDE1MiwgMjE3KSddCn07"},null]}
|