{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\operationalMonitoring\\informatiOnForAttention\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\operationalMonitoring\\informatiOnForAttention\\components\\EditAddPage\\index.vue","mtime":1750923932853},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\babel.config.js","mtime":1741314102158},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZpbHRlci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5wYWQtc3RhcnQuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IFB1YlN1YiBmcm9tICdwdWJzdWItanMnOwppbXBvcnQgeyBnZXRSZWdpb25hbERhdGEsIHRhYmxlQWRkLCB0YWJsZURlbGV0ZSwgdGFibGVEZXRhaWwsIHRhYmxlRWRpdCB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9vcGVyYXRpb25hbE1vbml0b3JpbmcvaW5mb3JtYXRpT25Gb3JBdHRlbnRpb24nOwppbXBvcnQgeyBnZXREaWN0aW9uYXJ5QnlDb2RlIH0gZnJvbSAnQC91dGlscy9kaWN0aW9uYXJ5JzsKaW1wb3J0IHsgdGFibGVEYXRhIGFzIHJvYWRTZWN0aW9uSW5mb0ludGVyIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcm9hZFNlY3Rpb25JbmZvJzsKaW1wb3J0IHsgbWFwU3RhdGUgfSBmcm9tICd2dWV4JzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdFZGl0QWRkUGFnZScsCiAgY29tcG9uZW50czoge30sCiAgcHJvcHM6IHsKICAgIGNvbXBvbmVudE5hbWU6IHsKICAgICAgZGVmYXVsdDogJ1RhYmxlUGFnZScsCiAgICAgIHR5cGU6IFN0cmluZwogICAgfQogIH0sCiAgY29tcHV0ZWQ6IF9vYmplY3RTcHJlYWQoe30sIG1hcFN0YXRlKHsKICAgIGN1cnJlbnRVc2VyOiBmdW5jdGlvbiBjdXJyZW50VXNlcihzdGF0ZSkgewogICAgICByZXR1cm4gc3RhdGUudXNlci5jdXJyZW50VXNlckRldGFpbDsKICAgIH0KICB9KSksCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICB2YXIgdmFsaWRhdGVQZWdWYWxTdGFydCA9IGZ1bmN0aW9uIHZhbGlkYXRlUGVnVmFsU3RhcnQoXywgX18sIGNhbGxiYWNrKSB7CiAgICAgIHZhciBfdGhpcyRhZGRFZGl0Rm9ybSA9IF90aGlzLmFkZEVkaXRGb3JtLAogICAgICAgIHN0YXJ0UGVnID0gX3RoaXMkYWRkRWRpdEZvcm0uc3RhcnRQZWcsCiAgICAgICAgc3RhcnRQZWdBZGQgPSBfdGhpcyRhZGRFZGl0Rm9ybS5zdGFydFBlZ0FkZDsKICAgICAgaWYgKCFzdGFydFBlZyB8fCAhc3RhcnRQZWdBZGQpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ+ivt+i+k+WFpeW8gOWni+ahqeWPtycpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwogICAgdmFyIHZhbGlkYXRlUGVnVmFsRW5kID0gZnVuY3Rpb24gdmFsaWRhdGVQZWdWYWxFbmQoXywgX18sIGNhbGxiYWNrKSB7CiAgICAgIHZhciBfdGhpcyRhZGRFZGl0Rm9ybTIgPSBfdGhpcy5hZGRFZGl0Rm9ybSwKICAgICAgICBlbmRQZWcgPSBfdGhpcyRhZGRFZGl0Rm9ybTIuZW5kUGVnLAogICAgICAgIGVuZFBlZ0FkZCA9IF90aGlzJGFkZEVkaXRGb3JtMi5lbmRQZWdBZGQ7CiAgICAgIGlmICghZW5kUGVnIHx8ICFlbmRQZWdBZGQpIHsKICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoJ+ivt+i+k+WFpee7k+adn+ahqeWPtycpKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwogICAgcmV0dXJuIHsKICAgICAgaWQ6ICcnLAogICAgICAvLyBpZOagh+ivhuespgogICAgICBhZGRFZGl0Rm9ybTogewogICAgICAgIHJlZ2lvbmFsQ29kZTogJycsCiAgICAgICAgcmVnaW9uYWxOYW1lOiAnJywKICAgICAgICByb2FkSWQ6ICcnLAogICAgICAgIHJvYWROYW1lOiAnJywKICAgICAgICByb2FkQ29kZTogJycsCiAgICAgICAgZGlyZWN0aW9uOiAnMScsCiAgICAgICAgbmF0aW9uYWxTdGFuZGFyZENvZGU6ICcnLAogICAgICAgIGxvY2F0aW9uQ2F0VW5jbGU6ICcnLAogICAgICAgIHB1Ymxpc2hEZXZpY2VOYW1lOiAnJywKICAgICAgICBwdWJsaXNoRGV2aWNlVHlwZTogJ0NNJywKICAgICAgICB3YXJuaW5nVHlwZTogMSwKICAgICAgICByZWxpZXZlV2FybmluZ1RpbWU6ICcnLAogICAgICAgIHdhcm5pbmdUaW1lOiB0aGlzLmZvcm1hdERhdGUobmV3IERhdGUoKSksCiAgICAgICAgd2FybmluZ0NvbnRlbnQ6ICcnLAogICAgICAgIHdhcm5SYW5nZTogJycsCiAgICAgICAgZm9yd2FyZE9iamVjdDogJycKICAgICAgfSwKICAgICAgYWRkRWRpdFJ1bGVzOiB7CiAgICAgICAgcmVnaW9uYWxDb2RlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5omA5bGe5Yy65Z+fJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgcm9hZE5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXmiYDlsZ7ot6/mrrUnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgZGlyZWN0aW9uOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5pa55ZCRJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgbG9jYXRpb25TdGF0aW9uTnVtYmVyU3RhcnQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVQZWdWYWxTdGFydCwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXlvIDlp4vmoanlj7cnLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddCiAgICAgICAgfV0sCiAgICAgICAgbG9jYXRpb25TdGF0aW9uTnVtYmVyRW5kOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICB2YWxpZGF0b3I6IHZhbGlkYXRlUGVnVmFsRW5kLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpee7k+adn+ahqeWPtycsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICB9XSwKICAgICAgICBsb2NhdGlvbkNhdFVuY2xlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl5L2N572u5o+P6L+wJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHB1Ymxpc2hEZXZpY2VOYW1lOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36L6T5YWl6aKE6K2m5L+h5oGv5p2l5rqQJywKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIHB1Ymxpc2hEZXZpY2VUeXBlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup5Y+R5biD6K6+5aSH57G75Z6LJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgLy8gd2FybmluZ0xldmVsOiBbCiAgICAgICAgLy8gICB7cmVxdWlyZWQ6IHRydWUsIG1lc3NhZ2U6ICfor7fpgInmi6npooTorabnrYnnuqcnLCB0cmlnZ2VyOiAnY2hhbmdlJ30KICAgICAgICAvLyBdLAogICAgICAgIHdhcm5pbmdUeXBlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup6aKE6K2m57G75Z6LJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgd2FybmluZ1RpbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6npooTorabml7bpl7QnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICB3YXJuaW5nQ29udGVudDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+i+k+WFpemihOitpuWGheWuuScsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XQogICAgICB9LAogICAgICBzYXZlTG9hZGluZzogZmFsc2UsCiAgICAgIHB1YlN1YjogbnVsbCwKICAgICAgcm9hZE9wdGlvbnM6IFtdLAogICAgICByZWdpb25MaXN0OiBbXQogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICBjb21wb25lbnROYW1lOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIobmV3VmFsKSB7CiAgICAgICAgaWYgKG5ld1ZhbCA9PT0gdGhpcy4kb3B0aW9ucy5uYW1lKSB7CiAgICAgICAgICB0aGlzLm9wZW5QYWdlKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuY2xvc2VQYWdlKCk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkge30sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgdGhpcy5wdWJTdWIgPSBQdWJTdWIuc3Vic2NyaWJlKCdFZGl0QWRkUGFnZScsIGZ1bmN0aW9uIChfLCBkYXRhKSB7CiAgICAgIC8vIOesrOS4gOWxgue6p+S4jea4suafkyDpu5jorqTnrKzkuIDkuKoKICAgICAgaWYgKGRhdGEucm9hZE5hbWUgIT09ICcnKSB7CiAgICAgICAgX3RoaXMyLmFkZEVkaXRGb3JtLnJvYWROYW1lID0gKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5yb2FkTmFtZSkgfHwgJyc7CiAgICAgICAgX3RoaXMyLmFkZEVkaXRGb3JtLnJvYWRJZCA9IChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEucm9hZElkKSB8fCAnJzsKICAgICAgfQogICAgICBfdGhpczIuZ2V0Um9hZERhdGEoKTsKICAgICAgaWYgKGRhdGEuaWQpIHsKICAgICAgICBfdGhpczIuaWQgPSBkYXRhLmlkOwogICAgICAgIF90aGlzMi5nZXREZXRhaWwoZGF0YS5pZCk7CiAgICAgIH0KICAgICAgX3RoaXMyLmdldFJlZ2lvbmFsQ2hhbmdlKCk7CiAgICB9KTsKICB9LAogIG1ldGhvZHM6IHsKICAgIGdldERpY3Rpb25hcnlCeUNvZGU6IGdldERpY3Rpb25hcnlCeUNvZGUsCiAgICByZWdpb25DaGFuZ2U6IGZ1bmN0aW9uIHJlZ2lvbkNoYW5nZSh2YWwpIHsKICAgICAgdmFyIF90aGlzJHJlZ2lvbkxpc3QkZmlsdCA9IHRoaXMucmVnaW9uTGlzdC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgIHJldHVybiBpdGVtLmFkY29kZSA9PT0gdmFsOwogICAgICAgIH0pWzBdLAogICAgICAgIGFkbmFtZSA9IF90aGlzJHJlZ2lvbkxpc3QkZmlsdC5hZG5hbWUsCiAgICAgICAgcGVnRVZhbCA9IF90aGlzJHJlZ2lvbkxpc3QkZmlsdC5wZWdFVmFsLAogICAgICAgIHBlZ1NWYWwgPSBfdGhpcyRyZWdpb25MaXN0JGZpbHQucGVnU1ZhbDsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5yZWdpb25hbE5hbWUgPSBhZG5hbWU7CiAgICAgIGlmIChwZWdTVmFsKSB7CiAgICAgICAgdmFyIHN0YXJ0UGVnQXJyID0gcGVnU1ZhbC5zcGxpdCgnKycpOwogICAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnc3RhcnRQZWcnLCBzdGFydFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdzdGFydFBlZ0FkZCcsIHN0YXJ0UGVnQXJyWzFdKTsKICAgICAgfQogICAgICBpZiAocGVnRVZhbCkgewogICAgICAgIHZhciBlbmRQZWdBcnIgPSBwZWdFVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICdlbmRQZWcnLCBlbmRQZWdBcnJbMF0uc2xpY2UoMSkpOwogICAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAnZW5kUGVnQWRkJywgZW5kUGVnQXJyWzFdKTsKICAgICAgfQogICAgfSwKICAgIGdldFJlZ2lvbmFsQ2hhbmdlOiBmdW5jdGlvbiBnZXRSZWdpb25hbENoYW5nZSgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHsKICAgICAgICB2YXIgX3RoaXMzJHJlZ2lvbkxpc3QsIF90aGlzMyRyZWdpb25MaXN0JHZhbCwgdmFsdWUsIHN0YXJ0UGVnQXJyLCBlbmRQZWdBcnI7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIGdldFJlZ2lvbmFsRGF0YShfdGhpczMuYWRkRWRpdEZvcm0ucm9hZElkKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF90aGlzMyRyZWdpb25MaXN0ID0gX3RoaXMzLnJlZ2lvbkxpc3QgPSBfY29udGV4dC5zZW50OwogICAgICAgICAgICAgIF90aGlzMyRyZWdpb25MaXN0JHZhbCA9IF90aGlzMyRyZWdpb25MaXN0LnZhbHVlOwogICAgICAgICAgICAgIHZhbHVlID0gX3RoaXMzJHJlZ2lvbkxpc3QkdmFsID09PSB2b2lkIDAgPyBbXSA6IF90aGlzMyRyZWdpb25MaXN0JHZhbDsKICAgICAgICAgICAgICBfdGhpczMucmVnaW9uTGlzdCA9IHZhbHVlOwogICAgICAgICAgICAgIGlmIChfdGhpczMucmVnaW9uTGlzdC5sZW5ndGggPiAwICYmICFfdGhpczMuaWQpIHsKICAgICAgICAgICAgICAgIF90aGlzMy5hZGRFZGl0Rm9ybS5yZWdpb25hbENvZGUgPSBfdGhpczMucmVnaW9uTGlzdFswXS5hZGNvZGU7CiAgICAgICAgICAgICAgICBfdGhpczMuYWRkRWRpdEZvcm0ucmVnaW9uYWxOYW1lID0gX3RoaXMzLnJlZ2lvbkxpc3RbMF0uYWRuYW1lOwogICAgICAgICAgICAgICAgaWYgKF90aGlzMy5yZWdpb25MaXN0WzBdLnBlZ1NWYWwpIHsKICAgICAgICAgICAgICAgICAgc3RhcnRQZWdBcnIgPSBfdGhpczMucmVnaW9uTGlzdFswXS5wZWdTVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgICAgICAgICAgIF90aGlzMy4kc2V0KF90aGlzMy5hZGRFZGl0Rm9ybSwgJ3N0YXJ0UGVnJywgc3RhcnRQZWdBcnJbMF0uc2xpY2UoMSkpOwogICAgICAgICAgICAgICAgICBfdGhpczMuJHNldChfdGhpczMuYWRkRWRpdEZvcm0sICdzdGFydFBlZ0FkZCcsIHN0YXJ0UGVnQXJyWzFdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChfdGhpczMucmVnaW9uTGlzdFswXS5wZWdFVmFsKSB7CiAgICAgICAgICAgICAgICAgIGVuZFBlZ0FyciA9IF90aGlzMy5yZWdpb25MaXN0WzBdLnBlZ0VWYWwuc3BsaXQoJysnKTsKICAgICAgICAgICAgICAgICAgX3RoaXMzLiRzZXQoX3RoaXMzLmFkZEVkaXRGb3JtLCAnZW5kUGVnJywgZW5kUGVnQXJyWzBdLnNsaWNlKDEpKTsKICAgICAgICAgICAgICAgICAgX3RoaXMzLiRzZXQoX3RoaXMzLmFkZEVkaXRGb3JtLCAnZW5kUGVnQWRkJywgZW5kUGVnQXJyWzFdKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBmb3JtYXREYXRlOiBmdW5jdGlvbiBmb3JtYXREYXRlKGRhdGUpIHsKICAgICAgdmFyIHBhZCA9IGZ1bmN0aW9uIHBhZChudW0pIHsKICAgICAgICByZXR1cm4gU3RyaW5nKG51bSkucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgfTsgLy8g6KGl6Zu25Ye95pWwCiAgICAgIHZhciB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOwogICAgICB2YXIgbW9udGggPSBwYWQoZGF0ZS5nZXRNb250aCgpICsgMSk7CiAgICAgIHZhciBkYXkgPSBwYWQoZGF0ZS5nZXREYXRlKCkpOwogICAgICB2YXIgaG91cnMgPSBwYWQoZGF0ZS5nZXRIb3VycygpKTsKICAgICAgdmFyIG1pbnV0ZXMgPSBwYWQoZGF0ZS5nZXRNaW51dGVzKCkpOwogICAgICB2YXIgc2Vjb25kcyA9IHBhZChkYXRlLmdldFNlY29uZHMoKSk7CiAgICAgIHJldHVybiAiIi5jb25jYXQoeWVhciwgIi0iKS5jb25jYXQobW9udGgsICItIikuY29uY2F0KGRheSwgIiAiKS5jb25jYXQoaG91cnMsICI6IikuY29uY2F0KG1pbnV0ZXMsICI6IikuY29uY2F0KHNlY29uZHMpOwogICAgfSwKICAgIC8v6I635Y+W5omA5Zyo6Lev5q615YiX6KGo5pWw5o2uCiAgICBnZXRSb2FkRGF0YTogZnVuY3Rpb24gZ2V0Um9hZERhdGEoKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkgewogICAgICAgIHZhciBfeWllbGQkcm9hZFNlY3Rpb25JbmYsIF95aWVsZCRyb2FkU2VjdGlvbkluZjIsIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gcm9hZFNlY3Rpb25JbmZvSW50ZXIoewogICAgICAgICAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgICAgICAgICAgcGFnZVNpemU6IC0xCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkcm9hZFNlY3Rpb25JbmYgPSBfY29udGV4dDIuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkcm9hZFNlY3Rpb25JbmYyID0gX3lpZWxkJHJvYWRTZWN0aW9uSW5mLnJvd3M7CiAgICAgICAgICAgICAgcm93cyA9IF95aWVsZCRyb2FkU2VjdGlvbkluZjIgPT09IHZvaWQgMCA/IFtdIDogX3lpZWxkJHJvYWRTZWN0aW9uSW5mMjsKICAgICAgICAgICAgICBfdGhpczQucm9hZE9wdGlvbnMgPSByb3dzLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgaXRlbS5yb2FkTmFtZSA9IGl0ZW0ubmFtZSArICcgJyArIGl0ZW0uY29kZTsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIF90aGlzNC5hZGRFZGl0Rm9ybS5yb2FkQ29kZSA9IF90aGlzNC5yb2FkT3B0aW9ucy5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmlkID09PSBfdGhpczQuYWRkRWRpdEZvcm0ucm9hZElkOwogICAgICAgICAgICAgIH0pWzBdLmNvZGU7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMik7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOaJk+W8gOmhtemdouaJp+ihjAogICAgb3BlblBhZ2U6IGZ1bmN0aW9uIG9wZW5QYWdlKCkge30sCiAgICAvLyDlhbPpl63pobXpnaLmiafooYwKICAgIGNsb3NlUGFnZTogZnVuY3Rpb24gY2xvc2VQYWdlKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgdmFyIHJvYWRPcHRpb25zID0gdGhpcy5yb2FkT3B0aW9uczsKICAgICAgLy8g6YeN572u57uE5Lu25pWw5o2uCiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy4kZGF0YSwgdGhpcy4kb3B0aW9ucy5kYXRhLmNhbGwodGhpcyksIHsKICAgICAgICBwdWJTdWI6IHRoaXMucHViU3ViLAogICAgICAgIHJvYWRPcHRpb25zOiByb2FkT3B0aW9ucwogICAgICB9KTsKICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKF8pIHsKICAgICAgICBfdGhpczUuJHJlZnMuYWRkRWRpdEZvcm0uJGVsLnNjcm9sbFRvcCA9IDA7CiAgICAgICAgX3RoaXM1LiRyZWZzLmFkZEVkaXRGb3JtLmNsZWFyVmFsaWRhdGUoKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6I635Y+W6K+m5oOFCiAgICBnZXREZXRhaWw6IGZ1bmN0aW9uIGdldERldGFpbChpZCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMygpIHsKICAgICAgICB2YXIgX3RoaXM2JGFkZEVkaXRGb3JtLCBwZWdTVmFsLCBwZWdFVmFsLCBzdGFydFBlZ0FyciwgZW5kUGVnQXJyOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMyQoX2NvbnRleHQzKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIHRhYmxlRGV0YWlsKGlkKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF90aGlzNi5hZGRFZGl0Rm9ybSA9IF9jb250ZXh0My5zZW50OwogICAgICAgICAgICAgIF90aGlzNiRhZGRFZGl0Rm9ybSA9IF90aGlzNi5hZGRFZGl0Rm9ybSwgcGVnU1ZhbCA9IF90aGlzNiRhZGRFZGl0Rm9ybS5wZWdTVmFsLCBwZWdFVmFsID0gX3RoaXM2JGFkZEVkaXRGb3JtLnBlZ0VWYWw7CiAgICAgICAgICAgICAgaWYgKHBlZ1NWYWwpIHsKICAgICAgICAgICAgICAgIHN0YXJ0UGVnQXJyID0gcGVnU1ZhbC5zcGxpdCgnKycpOwogICAgICAgICAgICAgICAgX3RoaXM2LiRzZXQoX3RoaXM2LmFkZEVkaXRGb3JtLCAnc3RhcnRQZWcnLCBzdGFydFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgICAgICAgICBfdGhpczYuJHNldChfdGhpczYuYWRkRWRpdEZvcm0sICdzdGFydFBlZ0FkZCcsIHN0YXJ0UGVnQXJyWzFdKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHBlZ0VWYWwpIHsKICAgICAgICAgICAgICAgIGVuZFBlZ0FyciA9IHBlZ0VWYWwuc3BsaXQoJysnKTsKICAgICAgICAgICAgICAgIF90aGlzNi4kc2V0KF90aGlzNi5hZGRFZGl0Rm9ybSwgJ2VuZFBlZycsIGVuZFBlZ0FyclswXS5zbGljZSgxKSk7CiAgICAgICAgICAgICAgICBfdGhpczYuJHNldChfdGhpczYuYWRkRWRpdEZvcm0sICdlbmRQZWdBZGQnLCBlbmRQZWdBcnJbMV0pOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUzKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5Yig6ZmkCiAgICBoYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZSgpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuWIoOmZpOWQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9fYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQoKSB7CiAgICAgICAgdmFyIF95aWVsZCR0YWJsZURlbGV0ZSwgc3RhdGUsIG1lc3NhZ2U7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEZWxldGUoX3RoaXM3LmlkKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURlbGV0ZSA9IF9jb250ZXh0NC5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJHRhYmxlRGVsZXRlLnN0YXRlOwogICAgICAgICAgICAgIG1lc3NhZ2UgPSBfeWllbGQkdGFibGVEZWxldGUubWVzc2FnZTsKICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgIF90aGlzNy4kbWVzc2FnZS5zdWNjZXNzKCJcdTUyMjBcdTk2NjRcdTYyMTBcdTUyOUYiKTsKICAgICAgICAgICAgICAgIFB1YlN1Yi5wdWJsaXNoKCdUYWJsZVBhZ2UnLCB7CiAgICAgICAgICAgICAgICAgIHR5cGU6ICdhZGQnCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIF90aGlzNy5jaGFuZ2VQYWdlKCdUYWJsZVBhZ2UnLCAnYWRkJyk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIF90aGlzNy4kbWVzc2FnZS5lcnJvcihtZXNzYWdlKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNCk7CiAgICAgIH0pKSkuY2F0Y2goZnVuY3Rpb24gKF8pIHsKICAgICAgICByZXR1cm4gXzsKICAgICAgfSk7CiAgICB9LAogICAgLy8g5L+d5a2YCiAgICBoYW5kbGVTYXZlOiBmdW5jdGlvbiBoYW5kbGVTYXZlKCkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKICAgICAgdGhpcy4kcmVmcy5hZGRFZGl0Rm9ybS52YWxpZGF0ZSgvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmMiA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNSh2YWxpZCwgb2JqZWN0KSB7CiAgICAgICAgICB2YXIgX3RoaXM4JGFkZEVkaXRGb3JtLCBzdGFydFBlZywgc3RhcnRQZWdBZGQsIGVuZFBlZywgZW5kUGVnQWRkLCBwZWdTVmFsLCBwZWdFVmFsLCBteUludGVyRmFjZSwgcmVzcG9uc2UsIHN0YXRlLCBtZXNzYWdlLCBhY3Rpb247CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTUkKF9jb250ZXh0NSkgewogICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDUucHJldiA9IF9jb250ZXh0NS5uZXh0KSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gNDsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBfdGhpczguJG1lc3NhZ2Uud2FybmluZygiXHU2NzA5Ii5jb25jYXQoT2JqZWN0LmtleXMob2JqZWN0KS5sZW5ndGgsICJcdTRFMkFcdTVCNTdcdTZCQjVcdTY3MkFcdTkwMUFcdThGQzdcdTY4MjFcdTlBOENcdUZGMENcdThCRjdcdTZCNjNcdTc4NkVcdTU4NkJcdTUxOTlcdTg4NjhcdTUzNTVcdTUxODVcdTVCQjlcdTMwMDIiKSk7CiAgICAgICAgICAgICAgICBfY29udGV4dDUubmV4dCA9IDIwOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgX3RoaXM4LnNhdmVMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgIF90aGlzOCRhZGRFZGl0Rm9ybSA9IF90aGlzOC5hZGRFZGl0Rm9ybSwgc3RhcnRQZWcgPSBfdGhpczgkYWRkRWRpdEZvcm0uc3RhcnRQZWcsIHN0YXJ0UGVnQWRkID0gX3RoaXM4JGFkZEVkaXRGb3JtLnN0YXJ0UGVnQWRkLCBlbmRQZWcgPSBfdGhpczgkYWRkRWRpdEZvcm0uZW5kUGVnLCBlbmRQZWdBZGQgPSBfdGhpczgkYWRkRWRpdEZvcm0uZW5kUGVnQWRkOwogICAgICAgICAgICAgICAgcGVnU1ZhbCA9ICcnOwogICAgICAgICAgICAgICAgcGVnRVZhbCA9ICcnOwogICAgICAgICAgICAgICAgaWYgKHN0YXJ0UGVnICE9PSAnJyAmJiBzdGFydFBlZyAhPT0gdW5kZWZpbmVkICYmIHN0YXJ0UGVnQWRkICE9PSAnJyAmJiBzdGFydFBlZ0FkZCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgIHBlZ1NWYWwgPSAnaycgKyAoc3RhcnRQZWcgIT09ICcnID8gc3RhcnRQZWcgOiAnJykgKyAnKycgKyAoc3RhcnRQZWdBZGQgIT09ICcnID8gc3RhcnRQZWdBZGQgOiAnJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoZW5kUGVnICE9PSAnJyAmJiBlbmRQZWcgIT09IHVuZGVmaW5lZCAmJiBlbmRQZWdBZGQgIT09ICcnICYmIGVuZFBlZ0FkZCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgICAgICAgICAgIHBlZ0VWYWwgPSAnaycgKyAoZW5kUGVnICE9PSAnJyA/IGVuZFBlZyA6ICcnKSArICcrJyArIChlbmRQZWdBZGQgIT09ICcnID8gZW5kUGVnQWRkIDogJycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgbXlJbnRlckZhY2UgPSBfdGhpczguYWRkRWRpdEZvcm0ucHViU3RhdHVzID8gdGFibGVFZGl0IDogdGFibGVBZGQ7CiAgICAgICAgICAgICAgICBfY29udGV4dDUucHJldiA9IDExOwogICAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAxNDsKICAgICAgICAgICAgICAgIHJldHVybiBteUludGVyRmFjZShfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzOC5hZGRFZGl0Rm9ybSksIHt9LCB7CiAgICAgICAgICAgICAgICAgIHBlZ1NWYWw6IHBlZ1NWYWwsCiAgICAgICAgICAgICAgICAgIHBlZ0VWYWw6IHBlZ0VWYWwsCiAgICAgICAgICAgICAgICAgIHB1YlN0YXR1czogMQogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgICAgICByZXNwb25zZSA9IF9jb250ZXh0NS5zZW50OwogICAgICAgICAgICAgICAgc3RhdGUgPSByZXNwb25zZS5zdGF0ZSwgbWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2U7CiAgICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgICAgYWN0aW9uID0gX3RoaXM4LmlkID8gJ+e8lui+kScgOiAn5paw5aKeJzsKICAgICAgICAgICAgICAgICAgX3RoaXM4LiRtZXNzYWdlLnN1Y2Nlc3MoIiIuY29uY2F0KGFjdGlvbiwgIlx1NjIxMFx1NTI5RiIpKTsKICAgICAgICAgICAgICAgICAgLy8gUHViU3ViLnB1Ymxpc2goJ1RhYmxlUGFnZScsIHt0eXBlOiB0aGlzLmlkID8gJ2VkaXQnIDogJ2FkZCd9KQogICAgICAgICAgICAgICAgICBfdGhpczguY2hhbmdlUGFnZSgnVGFibGVQYWdlJywgX3RoaXM4LmlkID8gJ2VkaXQnIDogJ2FkZCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGNhc2UgMTc6CiAgICAgICAgICAgICAgICBfY29udGV4dDUucHJldiA9IDE3OwogICAgICAgICAgICAgICAgX3RoaXM4LnNhdmVMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ1LmZpbmlzaCgxNyk7CiAgICAgICAgICAgICAgY2FzZSAyMDoKICAgICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5zdG9wKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0sIF9jYWxsZWU1LCBudWxsLCBbWzExLCwgMTcsIDIwXV0pOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94LCBfeDIpIHsKICAgICAgICAgIHJldHVybiBfcmVmMi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSk7CiAgICB9LAogICAgLy8g5pS55Y+Y6aG16Z2iCiAgICBjaGFuZ2VQYWdlOiBmdW5jdGlvbiBjaGFuZ2VQYWdlKCkgewogICAgICB2YXIgcGFnZU5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICcnOwogICAgICB2YXIgdHlwZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7CiAgICAgIGlmICghcGFnZU5hbWUpIHJldHVybjsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlUGFnZScsIHBhZ2VOYW1lLCBmdW5jdGlvbiAoXykgewogICAgICAgIFB1YlN1Yi5wdWJsaXNoKHBhZ2VOYW1lLCB7CiAgICAgICAgICB0eXBlOiB0eXBlCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIC8vIOWcqOe7hOS7tumUgOavgeS5i+WJjSDmuIXpmaTorqLpmIXmtojmga8KICAgIFB1YlN1Yi51bnN1YnNjcmliZSh0aGlzLnB1YlN1Yik7CiAgfQp9Ow=="},null]}