{"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\\commandDispatch\\EventManagement\\components\\DetailPage\\ScopeClassify\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\commandDispatch\\EventManagement\\components\\DetailPage\\ScopeClassify\\index.vue","mtime":1755157700777},{"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:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS94Y2p5LWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDIuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZXJyb3IuY2F1c2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5jbHVkZXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5yZWR1Y2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZpbHRlci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZpbmQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5yZWR1Y2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5udW1iZXIuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pbmNsdWRlcy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5tYXRjaC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5wYWQtc3RhcnQuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IHsgZ2V0RGljdGlvbmFyeUJ5Q29kZSB9IGZyb20gJ0AvdXRpbHMvZGljdGlvbmFyeSc7CmltcG9ydCB7IHJlZmluZVJlcXVlc3RCb2R5IH0gZnJvbSAnQC91dGlscy9yZXF1ZXN0V3JhcHBlcnMnOwppbXBvcnQgeyB0YWJsZURhdGEgfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvaW5mb01nbXRQYXRyb2xzUmVzY3Vlcy9hbG9uZ1JvdXRlSW5mbyc7CmltcG9ydCB7IHRhYmxlRGF0YSBhcyB0dW5uZWxEYXRhIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvdHVubmVsSW5mbyc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnU2NvcGVDbGFzc2lmeScsCiAgcHJvcHM6IHsKICAgIHR5cGU6IHsKICAgICAgZGVmYXVsdDogJzEnLAogICAgICB0eXBlOiBTdHJpbmcKICAgIH0sCiAgICByb2FkSWQ6IHsKICAgICAgZGVmYXVsdDogJycsCiAgICAgIHR5cGU6IFN0cmluZwogICAgfSwKICAgIHBsYWNlRGF0YTogewogICAgICBkZWZhdWx0OiBmdW5jdGlvbiBfZGVmYXVsdCgpIHt9LAogICAgICB0eXBlOiBPYmplY3QKICAgIH0sCiAgICBkaXNhYmxlZDogewogICAgICBkZWZhdWx0OiBmYWxzZSwKICAgICAgdHlwZTogQm9vbGVhbgogICAgfSwKICAgIHBpbGVOdW1iZXJSYW5nZTogewogICAgICBkZWZhdWx0OiAnJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIC8vIOiHquWumuS5iemqjOivgeinhOWIme+8muacieWAvOaXtuW/hemhu+WcqOiMg+WbtOWGhQogICAgdmFyIHZhbGlkYXRlUmFuZ2UxID0gZnVuY3Rpb24gdmFsaWRhdGVSYW5nZTEoKSB7CiAgICAgIHJldHVybiBmdW5jdGlvbiAocnVsZSwgdmFsdWUsIGNhbGxiYWNrKSB7CiAgICAgICAgaWYgKF90aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGVnID09PSB1bmRlZmluZWQgJiYgX3RoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICB9IGVsc2UgaWYgKCFfdGhpcy5pc1ZhbHVlSW5SYW5nZShfdGhpcy5jb21iaW5lZFZhbHVlMSwgX3RoaXMuc3RhcnRWYWx1ZSwgX3RoaXMuZW5kVmFsdWUpKSB7CiAgICAgICAgICBfdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBlZyA9IHVuZGVmaW5lZDsKICAgICAgICAgIF90aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGVnQWRkID0gdW5kZWZpbmVkOwogICAgICAgICAgY2FsbGJhY2sobmV3IEVycm9yKCJcdTYyNDBcdTU4NkJcdTUxOTlcdTc2ODRcdTY4NjlcdTUzRjdcdTRFMERcdTU3MjgiLmNvbmNhdChfdGhpcy5zdGFydFZhbHVlLCAiLSIpLmNvbmNhdChfdGhpcy5lbmRWYWx1ZSwgIlx1ODMwM1x1NTZGNFx1NTE4NSIpKSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgfQogICAgICB9OwogICAgfTsKICAgIHZhciB2YWxpZGF0ZVJhbmdlMiA9IGZ1bmN0aW9uIHZhbGlkYXRlUmFuZ2UyKCkgewogICAgICByZXR1cm4gZnVuY3Rpb24gKHJ1bGUsIHZhbHVlLCBjYWxsYmFjaykgewogICAgICAgIGlmIChfdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWcgPT09IHVuZGVmaW5lZCAmJiBfdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWdBZGQgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICB9IGVsc2UgaWYgKCFfdGhpcy5pc1ZhbHVlSW5SYW5nZShfdGhpcy5jb21iaW5lZFZhbHVlMiwgX3RoaXMuc3RhcnRWYWx1ZSwgX3RoaXMuZW5kVmFsdWUpKSB7CiAgICAgICAgICBfdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWcgPSB1bmRlZmluZWQ7CiAgICAgICAgICBfdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWdBZGQgPSB1bmRlZmluZWQ7CiAgICAgICAgICBjYWxsYmFjayhuZXcgRXJyb3IoIlx1NjI0MFx1NTg2Qlx1NTE5OVx1NzY4NFx1Njg2OVx1NTNGN1x1NEUwRFx1NTcyOCIuY29uY2F0KF90aGlzLnN0YXJ0VmFsdWUsICItIikuY29uY2F0KF90aGlzLmVuZFZhbHVlLCAiXHU4MzAzXHU1NkY0XHU1MTg1IikpKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICB9CiAgICAgIH07CiAgICB9OwogICAgcmV0dXJuIHsKICAgICAgbnVtYmVyU3RhdGlvbkRhdGE6IFtdLAogICAgICAvLyDmlLbotLnnq5kKICAgICAgdG9sbFN0YXRpb25EYXRhOiBbXSwKICAgICAgLy8g6Zqn6YGTCiAgICAgIHR1bm5lbERhdGE6IFtdLAogICAgICAvLyDkupLpgJrnq4vkuqQKICAgICAgZ3JhZGVPdmVyRGF0YTogW10sCiAgICAgIC8vIOacjeWKoeWMugogICAgICBzZXJ2aWNlQXJlYURhdGE6IFtdLAogICAgICBhZGRFZGl0Rm9ybTogewogICAgICAgIHN0YXJ0UGVnOiB1bmRlZmluZWQsCiAgICAgICAgc3RhcnRQZWdBZGQ6IHVuZGVmaW5lZCwKICAgICAgICBlbmRQZWc6IHVuZGVmaW5lZCwKICAgICAgICBlbmRQZWdBZGQ6IHVuZGVmaW5lZCwKICAgICAgICBzdGFydFBhdHJvbElkOiAnJywKICAgICAgICBlbmRQYXRyb2xJZDogJycsCiAgICAgICAgcGxhY2VEZXRhaWw6IFtdLAogICAgICAgIHN3elBsYWNlRGV0YWlsOiBbXSwKICAgICAgICBsalBsYWNlRGV0YWlsOiBbXSwKICAgICAgICBzZFBsYWNlRGV0YWlsOiBbXSwKICAgICAgICBmd3FQbGFjZURldGFpbDogW10KICAgICAgfSwKICAgICAgcnVsZXM6IHsKICAgICAgICBzdGFydFBlZzogW3sKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVSYW5nZTEoKSwKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dLAogICAgICAgIGVuZFBlZzogW3sKICAgICAgICAgIHZhbGlkYXRvcjogdmFsaWRhdGVSYW5nZTIoKSwKICAgICAgICAgIHRyaWdnZXI6ICdibHVyJwogICAgICAgIH1dCiAgICAgIH0sCiAgICAgIHN0YXJ0VmFsdWU6IDAsCiAgICAgIGVuZFZhbHVlOiAwCiAgICB9OwogIH0sCiAgY29tcHV0ZWQ6IHsKICAgIGNvbWJpbmVkVmFsdWUxOiBmdW5jdGlvbiBjb21iaW5lZFZhbHVlMSgpIHsKICAgICAgcmV0dXJuIHBhcnNlRmxvYXQoIiIuY29uY2F0KHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWcsICIuIikuY29uY2F0KFN0cmluZyh0aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGVnQWRkKS5wYWRTdGFydCgzLCAnMCcpKSkgfHwgMDsKICAgIH0sCiAgICBjb21iaW5lZFZhbHVlMjogZnVuY3Rpb24gY29tYmluZWRWYWx1ZTIoKSB7CiAgICAgIHJldHVybiBwYXJzZUZsb2F0KCIiLmNvbmNhdCh0aGlzLmFkZEVkaXRGb3JtLmVuZFBlZywgIi4iKS5jb25jYXQoU3RyaW5nKHRoaXMuYWRkRWRpdEZvcm0uZW5kUGVnQWRkKS5wYWRTdGFydCgzLCAnMCcpKSkgfHwgMDsKICAgIH0KICB9LAogIHdhdGNoOiB7CiAgICB0eXBlOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIobmV3VmFsLCBvbGRWYWwpIHsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnN0YXJ0UGVnID0gdW5kZWZpbmVkOwogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQgPSB1bmRlZmluZWQ7CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWcgPSB1bmRlZmluZWQ7CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5lbmRQZWdBZGQgPSB1bmRlZmluZWQ7CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBhdHJvbElkID0gJyc7CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5lbmRQYXRyb2xJZCA9ICcnOwogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0ucGxhY2VEZXRhaWwgPSBbXTsKICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLnN3elBsYWNlRGV0YWlsID0gW107CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5salBsYWNlRGV0YWlsID0gW107CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zZFBsYWNlRGV0YWlsID0gW107CiAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5md3FQbGFjZURldGFpbCA9IFtdOwogICAgICB9LAogICAgICBpbW1lZGlhdGU6IHRydWUKICAgIH0sCiAgICByb2FkSWQ6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihuZXdWYWwsIG9sZFZhbCkgewogICAgICAgIGlmIChuZXdWYWwpIHsKICAgICAgICAgIHRoaXMuYWRkRWRpdEZvcm0ucGxhY2VEZXRhaWwgPSBbXTsKICAgICAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3d6UGxhY2VEZXRhaWwgPSBbXTsKICAgICAgICAgIHRoaXMuYWRkRWRpdEZvcm0ubGpQbGFjZURldGFpbCA9IFtdOwogICAgICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zZFBsYWNlRGV0YWlsID0gW107CiAgICAgICAgICB0aGlzLmFkZEVkaXRGb3JtLmZ3cVBsYWNlRGV0YWlsID0gW107CiAgICAgICAgICB0aGlzLmdldEFsb25nUm91dGVJbmZvKG5ld1ZhbCk7CiAgICAgICAgICB0aGlzLmdldFR1bm5lbERhdGEobmV3VmFsKTsKICAgICAgICAgIHRoaXMuaGFuZGxlRGF0YVNob3coKTsKICAgICAgICAgIHRoaXMucGFyc2VTdHJpbmcoKTsKICAgICAgICB9CiAgICAgIH0sCiAgICAgIGRlZXA6IHRydWUsCiAgICAgIC8vIOW8gOWQr+a3seW6puebkeWQrAogICAgICBpbW1lZGlhdGU6IHRydWUKICAgIH0KICB9LAogIG1ldGhvZHM6IHsKICAgIGdldERpY3Rpb25hcnlCeUNvZGU6IGdldERpY3Rpb25hcnlCeUNvZGUsCiAgICBwYXJzZVN0cmluZzogZnVuY3Rpb24gcGFyc2VTdHJpbmcoKSB7CiAgICAgIGlmICh0aGlzLnBpbGVOdW1iZXJSYW5nZSkgewogICAgICAgIHZhciBtYXRjaCA9IHRoaXMucGlsZU51bWJlclJhbmdlLm1hdGNoKC9eW2tLXShcZCspKD86XCsoXGR7MSwzfSkpP35ba0tdKFxkKykoPzpcKyhcZHsxLDN9KSk/JC8pOwogICAgICAgIHRoaXMuc3RhcnRWYWx1ZSA9IHBhcnNlRmxvYXQoIiIuY29uY2F0KG1hdGNoWzFdLCAiLiIpLmNvbmNhdChTdHJpbmcobWF0Y2hbMl0pLnBhZFN0YXJ0KDMsICcwJykpKSB8fCAwOwogICAgICAgIHRoaXMuZW5kVmFsdWUgPSBwYXJzZUZsb2F0KCIiLmNvbmNhdChtYXRjaFszXSwgIi4iKS5jb25jYXQoU3RyaW5nKG1hdGNoWzRdKS5wYWRTdGFydCgzLCAnMCcpKSkgfHwgMDsKICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnN0YXJ0VmFsdWUgPSAwOwogICAgICAgIHRoaXMuZW5kVmFsdWUgPSBOdW1iZXIuTUFYX1ZBTFVFOwogICAgICB9CiAgICB9LAogICAgaXNWYWx1ZUluUmFuZ2U6IGZ1bmN0aW9uIGlzVmFsdWVJblJhbmdlKHZhbHVlLCBib3VuZDEsIGJvdW5kMikgewogICAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnbnVtYmVyJyB8fCBpc05hTih2YWx1ZSkpIHJldHVybiBmYWxzZTsKICAgICAgaWYgKCFTdHJpbmcodmFsdWUpLmluY2x1ZGVzKCcuJykpIHJldHVybiB0cnVlOwogICAgICB2YXIgX3JlZiA9IFtNYXRoLm1pbihib3VuZDEsIGJvdW5kMiksIE1hdGgubWF4KGJvdW5kMSwgYm91bmQyKV0sCiAgICAgICAgbWluID0gX3JlZlswXSwKICAgICAgICBtYXggPSBfcmVmWzFdOwogICAgICByZXR1cm4gdmFsdWUgPj0gbWluICYmIHZhbHVlIDw9IG1heDsKICAgIH0sCiAgICBoYW5kbGVEYXRhU2hvdzogZnVuY3Rpb24gaGFuZGxlRGF0YVNob3coKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF90aGlzMiRwbGFjZURhdGEsIGlkLCBldmVudFBsYWNlLCBwbGFjZU5hbWUsIG5hbWU7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX3RoaXMyJHBsYWNlRGF0YSA9IF90aGlzMi5wbGFjZURhdGEsIGlkID0gX3RoaXMyJHBsYWNlRGF0YS5pZCwgZXZlbnRQbGFjZSA9IF90aGlzMiRwbGFjZURhdGEuZXZlbnRQbGFjZSwgcGxhY2VOYW1lID0gX3RoaXMyJHBsYWNlRGF0YS5wbGFjZU5hbWU7CiAgICAgICAgICAgICAgaWYgKGlkKSB7CiAgICAgICAgICAgICAgICBfdGhpczIuYWRkRWRpdEZvcm0gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIF90aGlzMi5hZGRFZGl0Rm9ybSksIF90aGlzMi5wbGFjZURhdGEpOwogICAgICAgICAgICAgICAgaWYgKGV2ZW50UGxhY2UgIT09ICcxJykgewogICAgICAgICAgICAgICAgICBuYW1lID0gZXZlbnRQbGFjZSA9PSAnMycgPyAnc2QnIDogZXZlbnRQbGFjZSA9PSAnNCcgPyAnbGonIDogZXZlbnRQbGFjZSA9PSAnMicgPyAnc3d6JyA6ICdmd3EnOwogICAgICAgICAgICAgICAgICBfdGhpczIuJHNldChfdGhpczIuYWRkRWRpdEZvcm0sICIiLmNvbmNhdChuYW1lLCAiUGxhY2VEZXRhaWwiKSwgW3BsYWNlTmFtZV0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOagueaNrui3r+auteafpeivouayv+e6v+S/oeaBrwogICAgZ2V0QWxvbmdSb3V0ZUluZm86IGZ1bmN0aW9uIGdldEFsb25nUm91dGVJbmZvKHJvYWRJZCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMigpIHsKICAgICAgICB2YXIgZGF0YSwgX3lpZWxkJHRhYmxlRGF0YSwgX3lpZWxkJHRhYmxlRGF0YSR0b3RhLCB0b3RhbCwgX3lpZWxkJHRhYmxlRGF0YSRyb3dzLCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDIucHJldiA9IDA7CiAgICAgICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICAgIHBhZ2VCZWFuOiB7CiAgICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAtMSwKICAgICAgICAgICAgICAgICAgcGFnZTogMSwKICAgICAgICAgICAgICAgICAgdG90YWw6IDAKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBxdWVyeXM6IFt7CiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywKICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdyb2FkU2VnbWVudElkJywKICAgICAgICAgICAgICAgICAgdmFsdWU6IHJvYWRJZAogICAgICAgICAgICAgICAgfV0KICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gNDsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEYXRhKHJlZmluZVJlcXVlc3RCb2R5KGRhdGEpKTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURhdGEgPSBfY29udGV4dDIuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkdGFibGVEYXRhJHRvdGEgPSBfeWllbGQkdGFibGVEYXRhLnRvdGFsOwogICAgICAgICAgICAgIHRvdGFsID0gX3lpZWxkJHRhYmxlRGF0YSR0b3RhID09PSB2b2lkIDAgPyAwIDogX3lpZWxkJHRhYmxlRGF0YSR0b3RhOwogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURhdGEkcm93cyA9IF95aWVsZCR0YWJsZURhdGEucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHRhYmxlRGF0YSRyb3dzID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCR0YWJsZURhdGEkcm93czsKICAgICAgICAgICAgICBfdGhpczMubnVtYmVyU3RhdGlvbkRhdGEgPSByb3dzLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW0udHlwZSA9PT0gJzMnIHx8IGl0ZW0udHlwZSA9PT0gJzEnIHx8IGl0ZW0udHlwZSA9PT0gJzExJzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBfdGhpczMudG9sbFN0YXRpb25EYXRhID0gcm93cy5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLnR5cGUgPT09ICczJyB8fCBpdGVtLnR5cGUgPT09ICcxJzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBfdGhpczMuZ3JhZGVPdmVyRGF0YSA9IHJvd3MuZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS50eXBlIDwgMzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBfdGhpczMuc2VydmljZUFyZWFEYXRhID0gcm93cy5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLnR5cGUgPT09ICc0JzsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDE3OwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlIDE1OgogICAgICAgICAgICAgIF9jb250ZXh0Mi5wcmV2ID0gMTU7CiAgICAgICAgICAgICAgX2NvbnRleHQyLnQwID0gX2NvbnRleHQyWyJjYXRjaCJdKDApOwogICAgICAgICAgICBjYXNlIDE3OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyLCBudWxsLCBbWzAsIDE1XV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDmoLnmja7ot6/mrrXmn6Xor6LpmqfpgZPkv6Hmga8KICAgIGdldFR1bm5lbERhdGE6IGZ1bmN0aW9uIGdldFR1bm5lbERhdGEocm9hZElkKSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKCkgewogICAgICAgIHZhciBkYXRhLCBfeWllbGQkdHVubmVsRGF0YSwgX3lpZWxkJHR1bm5lbERhdGEkdG90LCB0b3RhbCwgX3lpZWxkJHR1bm5lbERhdGEkcm93LCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMyQoX2NvbnRleHQzKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDMucHJldiA9IDA7CiAgICAgICAgICAgICAgZGF0YSA9IHsKICAgICAgICAgICAgICAgIHBhZ2VCZWFuOiB7CiAgICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAtMSwKICAgICAgICAgICAgICAgICAgcGFnZTogMSwKICAgICAgICAgICAgICAgICAgdG90YWw6IDAKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBxdWVyeXM6IFt7CiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywKICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdyb2FkU2VnbWVudElkJywKICAgICAgICAgICAgICAgICAgdmFsdWU6IHJvYWRJZAogICAgICAgICAgICAgICAgfV0KICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gNDsKICAgICAgICAgICAgICByZXR1cm4gdHVubmVsRGF0YShyZWZpbmVSZXF1ZXN0Qm9keShkYXRhKSk7CiAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICBfeWllbGQkdHVubmVsRGF0YSA9IF9jb250ZXh0My5zZW50OwogICAgICAgICAgICAgIF95aWVsZCR0dW5uZWxEYXRhJHRvdCA9IF95aWVsZCR0dW5uZWxEYXRhLnRvdGFsOwogICAgICAgICAgICAgIHRvdGFsID0gX3lpZWxkJHR1bm5lbERhdGEkdG90ID09PSB2b2lkIDAgPyAwIDogX3lpZWxkJHR1bm5lbERhdGEkdG90OwogICAgICAgICAgICAgIF95aWVsZCR0dW5uZWxEYXRhJHJvdyA9IF95aWVsZCR0dW5uZWxEYXRhLnJvd3M7CiAgICAgICAgICAgICAgcm93cyA9IF95aWVsZCR0dW5uZWxEYXRhJHJvdyA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkdHVubmVsRGF0YSRyb3c7CiAgICAgICAgICAgICAgX3RoaXM0LnR1bm5lbERhdGEgPSByb3dzOwogICAgICAgICAgICAgIC8vIOagueaNrm5hbWXljrvph40KICAgICAgICAgICAgICBfdGhpczQudHVubmVsRGF0YSA9IF90aGlzNC50dW5uZWxEYXRhLnJlZHVjZShmdW5jdGlvbiAoYWNjdW11bGF0b3IsIGN1cnJlbnQpIHsKICAgICAgICAgICAgICAgIHZhciB4ID0gYWNjdW11bGF0b3IuZmluZChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5uYW1lID09PSBjdXJyZW50Lm5hbWU7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIGlmICgheCkgewogICAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3IuY29uY2F0KFtjdXJyZW50XSk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICByZXR1cm4gYWNjdW11bGF0b3I7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSwgW10pOwogICAgICAgICAgICBjYXNlIDExOgogICAgICAgICAgICAgIF9jb250ZXh0My5wcmV2ID0gMTE7CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5maW5pc2goMTEpOwogICAgICAgICAgICBjYXNlIDEzOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUzLCBudWxsLCBbWzAsLCAxMSwgMTNdXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIG51bWJlckNoYW5nZTogZnVuY3Rpb24gbnVtYmVyQ2hhbmdlKGUsIHR5cGUpIHsKICAgICAgdmFyIHNpdGVJbmZvID0gdGhpcy5udW1iZXJTdGF0aW9uRGF0YS5maW5kKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgcmV0dXJuIGl0ZW0uaWQgPT09IGU7CiAgICAgIH0pOwogICAgICB0aGlzLmFkZEVkaXRGb3JtWyIiLmNvbmNhdCh0eXBlLCAiTmFtZSIpXSA9IHNpdGVJbmZvLm5hbWU7CiAgICB9LAogICAgc2l0ZUNoYW5nZTogZnVuY3Rpb24gc2l0ZUNoYW5nZShlLCB0eXBlKSB7CiAgICAgIHZhciBzaXRlSW5mbyA9IHRoaXMudG9sbFN0YXRpb25EYXRhLmZpbmQoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gaXRlbS5pZCA9PT0gZTsKICAgICAgfSk7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm1bIiIuY29uY2F0KHR5cGUsICJOYW1lIildID0gc2l0ZUluZm8ubmFtZTsKICAgIH0sCiAgICBzZW5kRGF0YTogZnVuY3Rpb24gc2VuZERhdGEoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICB2YXIgZmxhZyA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogdHJ1ZTsKICAgICAgdmFyIF90aGlzJGFkZEVkaXRGb3JtID0gdGhpcy5hZGRFZGl0Rm9ybSwKICAgICAgICBwbGFjZU5hbWUgPSBfdGhpcyRhZGRFZGl0Rm9ybS5wbGFjZU5hbWUsCiAgICAgICAgcGxhY2VEZXRhaWwgPSBfdGhpcyRhZGRFZGl0Rm9ybS5wbGFjZURldGFpbCwKICAgICAgICBsalBsYWNlRGV0YWlsID0gX3RoaXMkYWRkRWRpdEZvcm0ubGpQbGFjZURldGFpbCwKICAgICAgICBzdGFydFBlZyA9IF90aGlzJGFkZEVkaXRGb3JtLnN0YXJ0UGVnLAogICAgICAgIHN0YXJ0UGVnQWRkID0gX3RoaXMkYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQsCiAgICAgICAgZW5kUGVnID0gX3RoaXMkYWRkRWRpdEZvcm0uZW5kUGVnLAogICAgICAgIGVuZFBlZ0FkZCA9IF90aGlzJGFkZEVkaXRGb3JtLmVuZFBlZ0FkZCwKICAgICAgICBzdGFydFBhdHJvbElkID0gX3RoaXMkYWRkRWRpdEZvcm0uc3RhcnRQYXRyb2xJZCwKICAgICAgICBzdGFydFBhdHJvbE5hbWUgPSBfdGhpcyRhZGRFZGl0Rm9ybS5zdGFydFBhdHJvbE5hbWUsCiAgICAgICAgZW5kUGF0cm9sSWQgPSBfdGhpcyRhZGRFZGl0Rm9ybS5lbmRQYXRyb2xJZCwKICAgICAgICBlbmRQYXRyb2xOYW1lID0gX3RoaXMkYWRkRWRpdEZvcm0uZW5kUGF0cm9sTmFtZTsKICAgICAgdmFyIHBlZ1NWYWwgPSAnJzsKICAgICAgdmFyIHBlZ0VWYWwgPSAnJzsKICAgICAgaWYgKHN0YXJ0UGVnICE9PSAnJyAmJiBzdGFydFBlZyAhPT0gdW5kZWZpbmVkICYmIHN0YXJ0UGVnQWRkICE9PSAnJyAmJiBzdGFydFBlZ0FkZCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgcGVnU1ZhbCA9ICdrJyArIChzdGFydFBlZyAhPT0gJycgPyBzdGFydFBlZyA6ICcnKSArICcrJyArIChzdGFydFBlZ0FkZCAhPT0gJycgPyBzdGFydFBlZ0FkZCA6ICcnKTsKICAgICAgfQogICAgICBpZiAoZW5kUGVnICE9PSAnJyAmJiBlbmRQZWcgIT09IHVuZGVmaW5lZCAmJiBlbmRQZWdBZGQgIT09ICcnICYmIGVuZFBlZ0FkZCAhPT0gdW5kZWZpbmVkKSB7CiAgICAgICAgcGVnRVZhbCA9ICdrJyArIChlbmRQZWcgIT09ICcnID8gZW5kUGVnIDogJycpICsgJysnICsgKGVuZFBlZ0FkZCAhPT0gJycgPyBlbmRQZWdBZGQgOiAnJyk7CiAgICAgIH0KICAgICAgaWYgKHRoaXMudHlwZSA9PSAnMScpIHsKICAgICAgICByZXR1cm4gewogICAgICAgICAgcGVnU1ZhbDogcGVnU1ZhbCwKICAgICAgICAgIHBlZ0VWYWw6IHBlZ0VWYWwsCiAgICAgICAgICBzdGFydFBhdHJvbElkOiBzdGFydFBhdHJvbElkLAogICAgICAgICAgc3RhcnRQYXRyb2xOYW1lOiBzdGFydFBhdHJvbE5hbWUsCiAgICAgICAgICBlbmRQYXRyb2xJZDogZW5kUGF0cm9sSWQsCiAgICAgICAgICBlbmRQYXRyb2xOYW1lOiBlbmRQYXRyb2xOYW1lCiAgICAgICAgfTsKICAgICAgfSBlbHNlIHsKICAgICAgICB2YXIgbmFtZSA9IHRoaXMudHlwZSA9PSAnMycgPyAnc2QnIDogdGhpcy50eXBlID09ICc0JyA/ICdsaicgOiB0aGlzLnR5cGUgPT0gJzInID8gJ3N3eicgOiAnZndxJzsKICAgICAgICB2YXIgYXJyYXkgPSBbXTsKICAgICAgICBpZiAodGhpcy5hZGRFZGl0Rm9ybVsiIi5jb25jYXQobmFtZSwgIlBsYWNlRGV0YWlsIildLmxlbmd0aCA+IDApIHsKICAgICAgICAgIHZhciBkYXRhU291cmNlTWFwID0gewogICAgICAgICAgICAnMic6IHsKICAgICAgICAgICAgICBzb3VyY2U6ICd0b2xsU3RhdGlvbkRhdGEnLAogICAgICAgICAgICAgIGZpZWxkOiAnc3d6UGxhY2VEZXRhaWwnCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgICczJzogewogICAgICAgICAgICAgIHNvdXJjZTogJ3R1bm5lbERhdGEnLAogICAgICAgICAgICAgIGZpZWxkOiAnc2RQbGFjZURldGFpbCcKICAgICAgICAgICAgfSwKICAgICAgICAgICAgJzQnOiB7CiAgICAgICAgICAgICAgc291cmNlOiAnZ3JhZGVPdmVyRGF0YScsCiAgICAgICAgICAgICAgZmllbGQ6ICdsalBsYWNlRGV0YWlsJwogICAgICAgICAgICB9LAogICAgICAgICAgICAnNSc6IHsKICAgICAgICAgICAgICBzb3VyY2U6ICdzZXJ2aWNlQXJlYURhdGEnLAogICAgICAgICAgICAgIGZpZWxkOiAnZndxUGxhY2VEZXRhaWwnCiAgICAgICAgICAgIH0KICAgICAgICAgIH07CiAgICAgICAgICB2YXIgX2RhdGFTb3VyY2VNYXAkdGhpcyR0ID0gZGF0YVNvdXJjZU1hcFt0aGlzLnR5cGVdLAogICAgICAgICAgICBzb3VyY2UgPSBfZGF0YVNvdXJjZU1hcCR0aGlzJHQuc291cmNlLAogICAgICAgICAgICBmaWVsZCA9IF9kYXRhU291cmNlTWFwJHRoaXMkdC5maWVsZDsKICAgICAgICAgIGFycmF5ID0gdGhpcy5hZGRFZGl0Rm9ybVtmaWVsZF0ubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgIHZhciBfbWF0Y2hlZEl0ZW1zJCwgX21hdGNoZWRJdGVtcyQyLCBfbWF0Y2hlZEl0ZW1zJDM7CiAgICAgICAgICAgIHZhciBtYXRjaGVkSXRlbXMgPSBfdGhpczVbc291cmNlXS5maWx0ZXIoZnVuY3Rpb24gKGJJdGVtKSB7CiAgICAgICAgICAgICAgcmV0dXJuIGJJdGVtLm5hbWUgPT09IFN0cmluZyhpdGVtKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgcGxhY2VOYW1lOiBpdGVtLAogICAgICAgICAgICAgIHBlZ1NWYWw6IHBlZ1NWYWwsCiAgICAgICAgICAgICAgcGVnRVZhbDogcGVnRVZhbCwKICAgICAgICAgICAgICBsYXQ6IChfbWF0Y2hlZEl0ZW1zJCA9IG1hdGNoZWRJdGVtc1swXSkgPT09IG51bGwgfHwgX21hdGNoZWRJdGVtcyQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9tYXRjaGVkSXRlbXMkLmxhdCwKICAgICAgICAgICAgICBsbmc6IChfbWF0Y2hlZEl0ZW1zJDIgPSBtYXRjaGVkSXRlbXNbMF0pID09PSBudWxsIHx8IF9tYXRjaGVkSXRlbXMkMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX21hdGNoZWRJdGVtcyQyLmxuZywKICAgICAgICAgICAgICBkaXJlY3Rpb246IChfbWF0Y2hlZEl0ZW1zJDMgPSBtYXRjaGVkSXRlbXNbMF0pID09PSBudWxsIHx8IF9tYXRjaGVkSXRlbXMkMyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX21hdGNoZWRJdGVtcyQzLmRpcmVjdGlvbgogICAgICAgICAgICB9OwogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBhcnJheTsKICAgICAgfQogICAgfSwKICAgIC8v5riF56m65pWw5o2uCiAgICBjbGVhckNoYW5nZTogZnVuY3Rpb24gY2xlYXJDaGFuZ2UoKSB7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWcgPSB1bmRlZmluZWQ7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQgPSB1bmRlZmluZWQ7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uZW5kUGVnID0gdW5kZWZpbmVkOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLmVuZFBlZ0FkZCA9IHVuZGVmaW5lZDsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zdGFydFBhdHJvbElkID0gJyc7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uc3RhcnRQYXRyb2xOYW1lID0gJyc7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uZW5kUGF0cm9sSWQgPSAnJzsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5lbmRQYXRyb2xOYW1lID0gJyc7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0ucGxhY2VEZXRhaWwgPSBbXTsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zd3pQbGFjZURldGFpbCA9IFtdOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLmxqUGxhY2VEZXRhaWwgPSBbXTsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybS5zZFBsYWNlRGV0YWlsID0gW107CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0uZndxUGxhY2VEZXRhaWwgPSBbXTsKICAgIH0sCiAgICAvLyDor6bmg4XotYvlgLxlCiAgICBnZXREZXRhaWw6IGZ1bmN0aW9uIGdldERldGFpbChyb3cpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIGNvbnNvbGUubG9nKHJvdywgJzY2NjYnKTsKICAgICAgdmFyIHBsYWNlTmFtZSA9IHJvdy5wbGFjZU5hbWUsCiAgICAgICAgcGxhY2VEZXRhaWwgPSByb3cucGxhY2VEZXRhaWwsCiAgICAgICAgcGVnU1ZhbCA9IHJvdy5wZWdTVmFsLAogICAgICAgIHBlZ0VWYWwgPSByb3cucGVnRVZhbCwKICAgICAgICBzdGFydFBhdHJvbElkID0gcm93LnN0YXJ0UGF0cm9sSWQsCiAgICAgICAgc3RhcnRQYXRyb2xOYW1lID0gcm93LnN0YXJ0UGF0cm9sTmFtZSwKICAgICAgICBlbmRQYXRyb2xJZCA9IHJvdy5lbmRQYXRyb2xJZCwKICAgICAgICBlbmRQYXRyb2xOYW1lID0gcm93LmVuZFBhdHJvbE5hbWU7CiAgICAgIHRoaXMuJG5leHRUaWNrKGZ1bmN0aW9uICgpIHsKICAgICAgICBpZiAoX3RoaXM2LnR5cGUgPT0gJzEnKSB7CiAgICAgICAgICB2YXIgZGF0YSA9IHsKICAgICAgICAgICAgc3RhcnRQYXRyb2xJZDogc3RhcnRQYXRyb2xJZCwKICAgICAgICAgICAgc3RhcnRQYXRyb2xOYW1lOiBzdGFydFBhdHJvbE5hbWUsCiAgICAgICAgICAgIGVuZFBhdHJvbElkOiBlbmRQYXRyb2xJZCwKICAgICAgICAgICAgZW5kUGF0cm9sTmFtZTogZW5kUGF0cm9sTmFtZQogICAgICAgICAgfTsKICAgICAgICAgIGlmIChwZWdTVmFsKSB7CiAgICAgICAgICAgIHZhciBzdGFydFBlZ0FyciA9IHBlZ1NWYWwuc3BsaXQoJysnKTsKICAgICAgICAgICAgZGF0YS5zdGFydFBlZyA9IHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpOwogICAgICAgICAgICBkYXRhLnN0YXJ0UGVnQWRkID0gc3RhcnRQZWdBcnJbMV07CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocGVnRVZhbCkgewogICAgICAgICAgICB2YXIgZW5kUGVnQXJyID0gcGVnRVZhbC5zcGxpdCgnKycpOwogICAgICAgICAgICBkYXRhLmVuZFBlZyA9IGVuZFBlZ0FyclswXS5zbGljZSgxKTsKICAgICAgICAgICAgZGF0YS5lbmRQZWdBZGQgPSBlbmRQZWdBcnJbMV07CiAgICAgICAgICB9CiAgICAgICAgICBfdGhpczYuYWRkRWRpdEZvcm0gPSBkYXRhOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAvLyDmj5Dlj5YgcGVnU1ZhbCDlkowgcGVnRVZhbAogICAgICAgICAgcm93LnBsYWNlRGV0YWlsID0gSlNPTi5wYXJzZShyb3cucGxhY2VEZXRhaWwpOwogICAgICAgICAgdmFyIHBlZ1NWYWxzID0gcm93LnBsYWNlRGV0YWlsWzBdLnBlZ1NWYWw7CiAgICAgICAgICB2YXIgcGVnRVZhbHMgPSByb3cucGxhY2VEZXRhaWxbMF0ucGVnRVZhbDsKICAgICAgICAgIGlmIChwZWdTVmFscykgewogICAgICAgICAgICB2YXIgX3N0YXJ0UGVnQXJyID0gcGVnU1ZhbHMuc3BsaXQoJysnKTsKICAgICAgICAgICAgX3RoaXM2LmFkZEVkaXRGb3JtLnN0YXJ0UGVnID0gX3N0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpOwogICAgICAgICAgICBfdGhpczYuYWRkRWRpdEZvcm0uc3RhcnRQZWdBZGQgPSBfc3RhcnRQZWdBcnJbMV07CiAgICAgICAgICB9CiAgICAgICAgICBpZiAocGVnRVZhbHMpIHsKICAgICAgICAgICAgdmFyIF9lbmRQZWdBcnIgPSBwZWdFVmFscy5zcGxpdCgnKycpOwogICAgICAgICAgICBfdGhpczYuYWRkRWRpdEZvcm0uZW5kUGVnID0gX2VuZFBlZ0FyclswXS5zbGljZSgxKTsKICAgICAgICAgICAgX3RoaXM2LmFkZEVkaXRGb3JtLmVuZFBlZ0FkZCA9IF9lbmRQZWdBcnJbMV07CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgbmFtZSA9IF90aGlzNi50eXBlID09ICczJyA/ICdzZCcgOiBfdGhpczYudHlwZSA9PSAnNCcgPyAnbGonIDogX3RoaXM2LnR5cGUgPT0gJzInID8gJ3N3eicgOiAnZndxJzsKICAgICAgICAgIC8vIOWwhiBwbGFjZURldGFpbCDovazmjaLkuLrlnLDngrnlkI3np7DmlbDnu4QKICAgICAgICAgIF90aGlzNi5hZGRFZGl0Rm9ybVsiIi5jb25jYXQobmFtZSwgIlBsYWNlRGV0YWlsIildID0gcm93LnBsYWNlRGV0YWlsLm1hcChmdW5jdGlvbiAocGxhY2UpIHsKICAgICAgICAgICAgcmV0dXJuIHBsYWNlLnBsYWNlTmFtZTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgfQp9Ow=="},null]}