{"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\\videoPatrol\\videoInspection\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\videoPatrol\\videoInspection\\components\\EditAddPage\\index.vue","mtime":1741314105800},{"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:aW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS94Y2p5LWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIjsKaW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS94Y2p5LWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX29iamVjdFNwcmVhZCBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS94Y2p5LWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFNwcmVhZDIuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKdmFyIF9leGNsdWRlZCA9IFsicGxhblR5cGUiLCAidGFza0NvbmZWaWRlbyIsICJjb25mVHlwZSIsICJ0eXBlIl0sCiAgX2V4Y2x1ZGVkMiA9IFsidGFza0NvbmZWaWRlbyJdOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5pbmNsdWRlcy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNvcnQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zcGxpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLmluY2x1ZGVzLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCBQdWJTdWIgZnJvbSAncHVic3ViLWpzJzsKaW1wb3J0IHsgdGFza0RldGFpbCwgdGFza1NhdmUgfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvdmlkZW9QYXRyb2wvdmlkZW9Db25maWcnOwppbXBvcnQgcGFnaW5hdGlvbiBmcm9tICdAL2NvbXBvbmVudHMvU3VwZXJQYWdpbmF0aW9uL2luZGV4LnZ1ZSc7CmltcG9ydCB7IGdldERpY3Rpb25hcnlCeUNvZGUsIGRpY3Rpb25hcnlFc2NhcGUgfSBmcm9tICdAL3V0aWxzL2RpY3Rpb25hcnknOwppbXBvcnQgVmlkZW9TaXRlU2VsZWN0b3JEaWFsb2cgZnJvbSAnQC9jb21wb25lbnRzL1RyZWVUYWJsZVNlbGVjdG9yL1ZpZGVvU2l0ZVNlbGVjdG9yRGlhbG9nL2luZGV4LnZ1ZSc7CmltcG9ydCB7IGdldFNvcnRlckRpcmVjdGlvbiwgcmVmaW5lUmVxdWVzdEJvZHksIHNldFF1ZXJ5VmFsdWUgfSBmcm9tICdAL3V0aWxzL3JlcXVlc3RXcmFwcGVycyc7CmltcG9ydCB7IHRhYmxlRGF0YSwgZXhlY3V0ZUpvYiB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS92aWRlb1BhdHJvbC92aWRlb0NvbmZpZyc7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAnRWRpdEFkZFBhZ2UnLAogIHByb3BzOiB7CiAgICBjb21wb25lbnROYW1lOiB7CiAgICAgIGRlZmF1bHQ6ICdFZGl0QWRkUGFnZScsCiAgICAgIHR5cGU6IFN0cmluZwogICAgfQogIH0sCiAgY29tcG9uZW50czogewogICAgVmlkZW9TaXRlU2VsZWN0b3JEaWFsb2c6IFZpZGVvU2l0ZVNlbGVjdG9yRGlhbG9nLAogICAgcGFnaW5hdGlvbjogcGFnaW5hdGlvbgogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIHRhYmxlTWF4SGVpZ2h0OiA0NjAsCiAgICAgIHNlbGVjdEZyb21Nb2RlbDogJ+mAieaLqeaooeeJiCcsCiAgICAgIGFkZEVkaXRGb3JtOiB7CiAgICAgICAgY29uZk5hbWU6ICcnLAogICAgICAgIGNvbmZDb2RlOiAnJywKICAgICAgICB0eXBlOiAnJywKICAgICAgICByb2FkSWQ6ICcnLAogICAgICAgIHJvYWROYW1lOiAnJywKICAgICAgICBjb25mVHlwZTogJycsCiAgICAgICAgdGFza0NvbmZWaWRlbzogW10KICAgICAgfSwKICAgICAgYWRkRWRpdFJ1bGVzOiB7CiAgICAgICAgY29uZk5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmqKHniYjlkI3np7DkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogWydibHVyJywgJ2NoYW5nZSddCiAgICAgICAgfV0sCiAgICAgICAgY29uZkNvZGU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmqKHniYjnvJbnoIHkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogWydibHVyJywgJ2NoYW5nZSddCiAgICAgICAgfV0sCiAgICAgICAgdHlwZTogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+W3oeajgOexu+Wei+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2JsdXInLCAnY2hhbmdlJ10KICAgICAgICB9XSwKICAgICAgICB0YXNrQ29uZlZpZGVvOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5beh5qOA6KeG6aKR54K55L2N5LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0sCiAgICAgICAgcmFuazogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+aOkuW6j+WPt+S4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XQogICAgICB9LAogICAgICBzYXZlTG9hZGluZzogZmFsc2UsCiAgICAgIC8vIOS4iuS8oGxvYWRpbmcKICAgICAgaWQ6ICcnLAogICAgICAvLyBpZOagh+ivhuespgogICAgICBzYXZlZDogZmFsc2UsCiAgICAgIC8vIOaWsOWinuaIkOWKnwogICAgICB3aGV0aGVyVG9DYW5jZWw6IGZhbHNlLAogICAgICBwdWJTdWI6IG51bGwsCiAgICAgIHZpZGVvRGlhbG9nOiBmYWxzZSwKICAgICAgcGxhbkRpc2FibGU6IGZhbHNlLAogICAgICBjdXJyZW50RGF0YURlbDogW10sCiAgICAgIHRlbXBsYXRlRGF0YTogW10sCiAgICAgIC8vIOW3oeajgOaooeeJiOaVsOaNrgogICAgICB0ZW1wbGF0ZU5hbWU6IFtdLAogICAgICBjdXJyZW50Um93OiB7fSwKICAgICAgcGFyYW1zOiB7CiAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgIHBhZ2VTaXplOiAyMCwKICAgICAgICAgIHBhZ2U6IDEsCiAgICAgICAgICB0b3RhbDogMAogICAgICAgIH0sCiAgICAgICAgcXVlcnlzOiBbewogICAgICAgICAgb3BlcmF0aW9uOiAnTElLRScsCiAgICAgICAgICBwcm9wZXJ0eTogJ2NvbmZOYW1lJwogICAgICAgIH0sIHsKICAgICAgICAgIG9wZXJhdGlvbjogJ0VRVUFMJywKICAgICAgICAgIHByb3BlcnR5OiAncm9hZElkJwogICAgICAgIH1dLAogICAgICAgIHNvcnRlcjogW3sKICAgICAgICAgIGRpcmVjdGlvbjogJycsCiAgICAgICAgICBwcm9wZXJ0eTogJycKICAgICAgICB9XQogICAgICB9CiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgIGNvbXBvbmVudE5hbWU6IHsKICAgICAgaGFuZGxlcjogZnVuY3Rpb24gaGFuZGxlcihuZXdWYWwpIHsKICAgICAgICBpZiAobmV3VmFsID09PSB0aGlzLiRvcHRpb25zLm5hbWUpIHsKICAgICAgICAgIHRoaXMub3BlblBhZ2UoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhpcy5jbG9zZVBhZ2UoKTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgdGhpcy5wdWJTdWIgPSBQdWJTdWIuc3Vic2NyaWJlKCdFZGl0QWRkUGFnZScsIGZ1bmN0aW9uIChfLCBkYXRhKSB7CiAgICAgIGlmIChkYXRhLmlkKSB7CiAgICAgICAgX3RoaXMuaWQgPSBkYXRhLmlkOwogICAgICAgIF90aGlzLmdldERldGFpbChkYXRhLmlkKTsKICAgICAgfSBlbHNlIHsKICAgICAgICBfdGhpcy5jdXJyZW50Um93ID0ge307CiAgICAgICAgX3RoaXMuYWRkRWRpdEZvcm0ucm9hZElkID0gZGF0YS5yb2FkSWQgfHwgJyc7CiAgICAgICAgX3RoaXMuYWRkRWRpdEZvcm0ucm9hZE5hbWUgPSBkYXRhLnJvYWROYW1lIHx8ICcnOwogICAgICAgIHNldFF1ZXJ5VmFsdWUoX3RoaXMucGFyYW1zLCAncm9hZElkJywgZGF0YS5yb2FkSWQgfHwgJycpOwogICAgICAgIF90aGlzLmxvYWRUZW1wbGF0ZURhdGEoKTsKICAgICAgfQogICAgfSk7CiAgfSwKICBtZXRob2RzOiB7CiAgICBkaWN0aW9uYXJ5RXNjYXBlOiBkaWN0aW9uYXJ5RXNjYXBlLAogICAgZ2V0RGljdGlvbmFyeUJ5Q29kZTogZ2V0RGljdGlvbmFyeUJ5Q29kZSwKICAgIC8vIOaJk+W8gOmhtemdouaJp+ihjAogICAgb3BlblBhZ2U6IGZ1bmN0aW9uIG9wZW5QYWdlKCkgewogICAgICB0aGlzLndoZXRoZXJUb0NhbmNlbCA9IHRydWU7CiAgICB9LAogICAgLy8g5YWz6Zet6aG16Z2i5omn6KGMCiAgICBjbG9zZVBhZ2U6IGZ1bmN0aW9uIGNsb3NlUGFnZSgpIHsKICAgICAgdmFyIF90aGlzJCRyZWZzJHVwbG9hZGVyLAogICAgICAgIF90aGlzMiA9IHRoaXM7CiAgICAgIHZhciBhZGRFZGl0UnVsZXMgPSB0aGlzLmFkZEVkaXRSdWxlcywKICAgICAgICBwdWJTdWIgPSB0aGlzLnB1YlN1YjsKICAgICAgKF90aGlzJCRyZWZzJHVwbG9hZGVyID0gdGhpcy4kcmVmcy51cGxvYWRlcikgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdXBsb2FkZXIgPT09IHZvaWQgMCB8fCAoX3RoaXMkJHJlZnMkdXBsb2FkZXIgPSBfdGhpcyQkcmVmcyR1cGxvYWRlci51cGxvYWRlcikgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkdXBsb2FkZXIgPT09IHZvaWQgMCB8fCBfdGhpcyQkcmVmcyR1cGxvYWRlci5jYW5jZWwoKTsKICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoXykgewogICAgICAgIE9iamVjdC5hc3NpZ24oX3RoaXMyLiRkYXRhLCBfdGhpczIuJG9wdGlvbnMuZGF0YS5jYWxsKF90aGlzMiksIHsKICAgICAgICAgIGFkZEVkaXRSdWxlczogYWRkRWRpdFJ1bGVzLAogICAgICAgICAgcHViU3ViOiBwdWJTdWIKICAgICAgICB9KTsKICAgICAgICAvLyDph43nva7nu4Tku7bmlbDmja4KICAgICAgICBfdGhpczIuJG5leHRUaWNrKGZ1bmN0aW9uIChfKSB7CiAgICAgICAgICBfdGhpczIuY3VycmVudFJvdyA9IHt9OwogICAgICAgICAgX3RoaXMyLiRyZWZzLmFkZEVkaXRGb3JtLiRlbC5zY3JvbGxUb3AgPSAwOwogICAgICAgICAgX3RoaXMyLiRyZWZzLmFkZEVkaXRGb3JtLmNsZWFyVmFsaWRhdGUoKTsKICAgICAgICB9KTsKICAgICAgfSwgMCk7CiAgICB9LAogICAgbG9hZFRlbXBsYXRlRGF0YTogZnVuY3Rpb24gbG9hZFRlbXBsYXRlRGF0YSgpIHsKICAgICAgdmFyIF90aGlzMyA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZSgpIHsKICAgICAgICB2YXIgX3lpZWxkJHRhYmxlRGF0YSwgX3lpZWxkJHRhYmxlRGF0YSR0b3RhLCB0b3RhbCwgX3lpZWxkJHRhYmxlRGF0YSRyb3dzLCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAwOwogICAgICAgICAgICAgIF90aGlzMy50YWJsZUxvYWRpbmcgPSB0cnVlOwogICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA0OwogICAgICAgICAgICAgIHJldHVybiB0YWJsZURhdGEocmVmaW5lUmVxdWVzdEJvZHkoX3RoaXMzLnBhcmFtcykpOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgX3lpZWxkJHRhYmxlRGF0YSA9IF9jb250ZXh0LnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJHRhYmxlRGF0YSR0b3RhID0gX3lpZWxkJHRhYmxlRGF0YS50b3RhbDsKICAgICAgICAgICAgICB0b3RhbCA9IF95aWVsZCR0YWJsZURhdGEkdG90YSA9PT0gdm9pZCAwID8gMCA6IF95aWVsZCR0YWJsZURhdGEkdG90YTsKICAgICAgICAgICAgICBfeWllbGQkdGFibGVEYXRhJHJvd3MgPSBfeWllbGQkdGFibGVEYXRhLnJvd3M7CiAgICAgICAgICAgICAgcm93cyA9IF95aWVsZCR0YWJsZURhdGEkcm93cyA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkdGFibGVEYXRhJHJvd3M7CiAgICAgICAgICAgICAgX3RoaXMzLnBhcmFtcy5wYWdlQmVhbi50b3RhbCA9IHRvdGFsOwogICAgICAgICAgICAgIF90aGlzMy50ZW1wbGF0ZURhdGEgPSByb3dzLm1hcChmdW5jdGlvbiAoaSkgewogICAgICAgICAgICAgICAgcmV0dXJuIF9vYmplY3RTcHJlYWQoewogICAgICAgICAgICAgICAgICBpc0VuYWJsZTogaS50YXNrU3RhdHVzID09PSAnTk9STUFMJwogICAgICAgICAgICAgICAgfSwgaSk7CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDExOwogICAgICAgICAgICAgIF90aGlzMy50YWJsZUxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuZmluaXNoKDExKTsKICAgICAgICAgICAgY2FzZSAxNDoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUsIG51bGwsIFtbMCwsIDExLCAxNF1dKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgZ2V0VGVtcGxhdGVEYXRhOiBmdW5jdGlvbiBnZXRUZW1wbGF0ZURhdGEodmFsKSB7CiAgICAgIHNldFF1ZXJ5VmFsdWUodGhpcy5wYXJhbXMsICdjb25mTmFtZScsIHZhbCB8fCAnJyk7CiAgICAgIHRoaXMubG9hZFRlbXBsYXRlRGF0YSgpOwogICAgfSwKICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZTogZnVuY3Rpb24gaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHZhbCkgewogICAgICB0aGlzLmN1cnJlbnREYXRhRGVsID0gdmFsLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICB9KTsKICAgIH0sCiAgICBoYW5kbGVWaWRlb0NvbmZpcm06IGZ1bmN0aW9uIGhhbmRsZVZpZGVvQ29uZmlybShkYXRhKSB7CiAgICAgIHZhciB0ZW1wRGF0YSA9IGRhdGEubWFwKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkgewogICAgICAgIGl0ZW0ucmFuayA9IGluZGV4OyAvLyBpdGVtLnJhbmsgPyBpdGVtLnJhbmsgOiBpbmRleCArIDEKICAgICAgICBpdGVtLnZpZGVvSWQgPSBpdGVtLmlkOwogICAgICAgIGl0ZW0udmlkZW9OYW1lID0gaXRlbS5uYW1lOwogICAgICAgIHJldHVybiBpdGVtOwogICAgICB9KTsKICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICd0YXNrQ29uZlZpZGVvJywgdGVtcERhdGEpOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLnRhc2tDb25mVmlkZW8gPSB0ZW1wRGF0YTsKICAgICAgdGhpcy4kZm9yY2VVcGRhdGUoKTsKICAgIH0sCiAgICBkZWxldGVWaWRlbzogZnVuY3Rpb24gZGVsZXRlVmlkZW8oaW5kZXgpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHRoaXMuJGNvbmZpcm0oJ+ehruWumuWIoOmZpOmAieS4reinhumikeeCueS9jeWQl++8nycsICfmj5DnpLonLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICfnoa7orqQnLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICflj5bmtognLAogICAgICAgIHR5cGU6ICd3YXJuaW5nJwogICAgICB9KS50aGVuKC8qI19fUFVSRV9fKi9fYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIHRlbXBEYXRhOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBpZiAoaW5kZXggfHwgaW5kZXggPT09IDApIHsKICAgICAgICAgICAgICAgIF90aGlzNC5hZGRFZGl0Rm9ybS50YXNrQ29uZlZpZGVvLnNwbGljZShpbmRleCwgMSk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHRlbXBEYXRhID0gX3RoaXM0LmFkZEVkaXRGb3JtLnRhc2tDb25mVmlkZW8uZmlsdGVyKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICAgIHJldHVybiAhX3RoaXM0LmN1cnJlbnREYXRhRGVsLmluY2x1ZGVzKGl0ZW0uaWQpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyh0ZW1wRGF0YSwgX3RoaXM0LmFkZEVkaXRGb3JtLnRhc2tDb25mVmlkZW8pOwogICAgICAgICAgICAgICAgX3RoaXM0LmFkZEVkaXRGb3JtLnRhc2tDb25mVmlkZW8gPSBfdG9Db25zdW1hYmxlQXJyYXkodGVtcERhdGEpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgY2FzZSAxOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUyKTsKICAgICAgfSkpKS5jYXRjaChmdW5jdGlvbiAoXykgewogICAgICAgIHJldHVybiBfOwogICAgICB9KTsKICAgIH0sCiAgICBzaG93RGlhbG9nOiBmdW5jdGlvbiBzaG93RGlhbG9nKHR5cGUpIHsKICAgICAgdGhpc1siIi5jb25jYXQodHlwZSwgIkRpYWxvZyIpXSA9IHRydWU7CiAgICB9LAogICAgLy8g6I635Y+W6K+m5oOFCiAgICBnZXREZXRhaWw6IGZ1bmN0aW9uIGdldERldGFpbChpZCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMygpIHsKICAgICAgICB2YXIgX3lpZWxkJHRhc2tEZXRhaWwsIF95aWVsZCR0YXNrRGV0YWlsJHBsYSwgcGxhblR5cGUsIF95aWVsZCR0YXNrRGV0YWlsJHRhcywgdGFza0NvbmZWaWRlbywgX3lpZWxkJHRhc2tEZXRhaWwkY29uLCBjb25mVHlwZSwgX3lpZWxkJHRhc2tEZXRhaWwkdHlwLCB0eXBlLCBhZGRFZGl0Rm9ybSwgdGFza0NvbmZWaWRlb1RhbXA7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUzJChfY29udGV4dDMpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0My5wcmV2ID0gX2NvbnRleHQzLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0My5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gdGFza0RldGFpbChpZCk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkdGFza0RldGFpbCA9IF9jb250ZXh0My5zZW50OwogICAgICAgICAgICAgIF95aWVsZCR0YXNrRGV0YWlsJHBsYSA9IF95aWVsZCR0YXNrRGV0YWlsLnBsYW5UeXBlOwogICAgICAgICAgICAgIHBsYW5UeXBlID0gX3lpZWxkJHRhc2tEZXRhaWwkcGxhID09PSB2b2lkIDAgPyAnJyA6IF95aWVsZCR0YXNrRGV0YWlsJHBsYTsKICAgICAgICAgICAgICBfeWllbGQkdGFza0RldGFpbCR0YXMgPSBfeWllbGQkdGFza0RldGFpbC50YXNrQ29uZlZpZGVvOwogICAgICAgICAgICAgIHRhc2tDb25mVmlkZW8gPSBfeWllbGQkdGFza0RldGFpbCR0YXMgPT09IHZvaWQgMCA/IFtdIDogX3lpZWxkJHRhc2tEZXRhaWwkdGFzOwogICAgICAgICAgICAgIF95aWVsZCR0YXNrRGV0YWlsJGNvbiA9IF95aWVsZCR0YXNrRGV0YWlsLmNvbmZUeXBlOwogICAgICAgICAgICAgIGNvbmZUeXBlID0gX3lpZWxkJHRhc2tEZXRhaWwkY29uID09PSB2b2lkIDAgPyAnJyA6IF95aWVsZCR0YXNrRGV0YWlsJGNvbjsKICAgICAgICAgICAgICBfeWllbGQkdGFza0RldGFpbCR0eXAgPSBfeWllbGQkdGFza0RldGFpbC50eXBlOwogICAgICAgICAgICAgIHR5cGUgPSBfeWllbGQkdGFza0RldGFpbCR0eXAgPT09IHZvaWQgMCA/ICcnIDogX3lpZWxkJHRhc2tEZXRhaWwkdHlwOwogICAgICAgICAgICAgIGFkZEVkaXRGb3JtID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF95aWVsZCR0YXNrRGV0YWlsLCBfZXhjbHVkZWQpOwogICAgICAgICAgICAgIHRhc2tDb25mVmlkZW9UYW1wID0gdGFza0NvbmZWaWRlby5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYS5yYW5rIC0gYi5yYW5rOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIF90aGlzNS5hZGRFZGl0Rm9ybSA9IF9vYmplY3RTcHJlYWQoewogICAgICAgICAgICAgICAgY29uZlR5cGU6IGNvbmZUeXBlLnRvU3RyaW5nKCkgfHwgJycsCiAgICAgICAgICAgICAgICBwbGFuVHlwZTogcGxhblR5cGUudG9TdHJpbmcoKSB8fCAnJywKICAgICAgICAgICAgICAgIHR5cGU6IHR5cGUudG9TdHJpbmcoKSB8fCAnJywKICAgICAgICAgICAgICAgIHRhc2tDb25mVmlkZW86IHRhc2tDb25mVmlkZW9UYW1wLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgICBpdGVtLmlkID0gaXRlbS52aWRlb0lkOwogICAgICAgICAgICAgICAgICBpdGVtLnJhbmsgPSBpdGVtLnJhbms7CiAgICAgICAgICAgICAgICAgIGl0ZW0ubmFtZSA9IGl0ZW0udmlkZW9OYW1lOwogICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgfSwgYWRkRWRpdEZvcm0pOwogICAgICAgICAgICBjYXNlIDE0OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUzKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5qih54mI57G75Z6L5pS55Y+YCiAgICBjaGFuZ2VDb25mVHlwZTogZnVuY3Rpb24gY2hhbmdlQ29uZlR5cGUodmFsKSB7CiAgICAgIGlmICh2YWwgPT09ICcyJykgewogICAgICAgIHRoaXMucGxhbkRpc2FibGUgPSB0cnVlOwogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0ucGxhblR5cGUgPSAnMSc7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy5wbGFuRGlzYWJsZSA9IGZhbHNlOwogICAgICAgIHRoaXMuYWRkRWRpdEZvcm0ucGxhblR5cGUgPSAnMSc7CiAgICAgIH0KICAgIH0sCiAgICAvLyDpgInmi6nmqKHniYgKICAgIGhhbmRsZUN1cnJlbnRDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZUN1cnJlbnRDaGFuZ2UodmFsKSB7CiAgICAgIHRoaXMuY3VycmVudFJvdyA9IHZhbDsKICAgIH0sCiAgICAvLyDkv53lrZgKICAgIGhhbmRsZVNhdmU6IGZ1bmN0aW9uIGhhbmRsZVNhdmUoKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1KCkgewogICAgICAgIHZhciBkYXRhLCBfeWllbGQkZXhlY3V0ZUpvYiwgc3RhdGUsIG1lc3NhZ2U7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1JChfY29udGV4dDUpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NS5wcmV2ID0gX2NvbnRleHQ1Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIGlmICghKF90aGlzNi5zZWxlY3RGcm9tTW9kZWwgPT09ICfpgInmi6nmqKHniYgnKSkgewogICAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAxMzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoX3RoaXM2LmN1cnJlbnRSb3cuaWQpIHsKICAgICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gNDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfdGhpczYuJG1lc3NhZ2Uud2FybmluZygn6K+36YCJ5oup5qih54mIJyk7CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5hYnJ1cHQoInJldHVybiIpOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgZGF0YSA9IF90aGlzNi5xcy5zdHJpbmdpZnkoewogICAgICAgICAgICAgICAgaWQ6IF90aGlzNi5jdXJyZW50Um93LmlkCiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSA3OwogICAgICAgICAgICAgIHJldHVybiBleGVjdXRlSm9iKGRhdGEpOwogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgICAgX3lpZWxkJGV4ZWN1dGVKb2IgPSBfY29udGV4dDUuc2VudDsKICAgICAgICAgICAgICBzdGF0ZSA9IF95aWVsZCRleGVjdXRlSm9iLnN0YXRlOwogICAgICAgICAgICAgIG1lc3NhZ2UgPSBfeWllbGQkZXhlY3V0ZUpvYi5tZXNzYWdlOwogICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgX3RoaXM2LiRtZXNzYWdlLnN1Y2Nlc3MoIlx1ODlDNlx1OTg5MVx1NURFMVx1NjhDMFx1NEVGQlx1NTJBMVx1NkRGQlx1NTJBMFx1NjIxMFx1NTI5RiIpOwogICAgICAgICAgICAgICAgX3RoaXM2LmNoYW5nZVBhZ2UoJ1RhYmxlUGFnZScsIF90aGlzNi5pZCA/ICdlZGl0JyA6ICdhZGQnKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgX3RoaXM2LiRtZXNzYWdlLndhcm5pbmcobWVzc2FnZSB8fCAiXHU4OUM2XHU5ODkxXHU1REUxXHU2OEMwXHU0RUZCXHU1MkExXHU2REZCXHU1MkEwXHU1OTMxXHU4RDI1XHVGRjAxIik7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gMTQ7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgMTM6CiAgICAgICAgICAgICAgX3RoaXM2LiRyZWZzLmFkZEVkaXRGb3JtLnZhbGlkYXRlKC8qI19fUFVSRV9fKi9mdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICB2YXIgX3JlZjIgPSBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQodmFsaWQsIG9iamVjdCkgewogICAgICAgICAgICAgICAgICB2YXIgX3RoaXM2JGFkZEVkaXRGb3JtLCBfdGhpczYkYWRkRWRpdEZvcm0kdGEsIHRhc2tDb25mVmlkZW8sIGFkZEVkaXRGb3JtLCBfeWllbGQkdGFza1NhdmUsIF9zdGF0ZSwgX21lc3NhZ2UsIHZhbHVlLCBfZGF0YSwgX3lpZWxkJGV4ZWN1dGVKb2IyLCBfc3RhdGUyLCBfbWVzc2FnZTI7CiAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNCQoX2NvbnRleHQ0KSB7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ0LnByZXYgPSBfY29udGV4dDQubmV4dCkgewogICAgICAgICAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM2LiRtZXNzYWdlLndhcm5pbmcoIlx1NjcwOSIuY29uY2F0KE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoLCAiXHU0RTJBXHU1QjU3XHU2QkI1XHU2NzJBXHU5MDFBXHU4RkM3XHU2ODIxXHU5QThDXHVGRjBDXHU4QkY3XHU2QjYzXHU3ODZFXHU1ODZCXHU1MTk5XHU4ODY4XHU1MzU1XHU1MTg1XHU1QkI5XHUzMDAyIikpOwogICAgICAgICAgICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDI4OwogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM2LnNhdmVMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM2JGFkZEVkaXRGb3JtID0gX3RoaXM2LmFkZEVkaXRGb3JtLCBfdGhpczYkYWRkRWRpdEZvcm0kdGEgPSBfdGhpczYkYWRkRWRpdEZvcm0udGFza0NvbmZWaWRlbywgdGFza0NvbmZWaWRlbyA9IF90aGlzNiRhZGRFZGl0Rm9ybSR0YSA9PT0gdm9pZCAwID8gW10gOiBfdGhpczYkYWRkRWRpdEZvcm0kdGEsIGFkZEVkaXRGb3JtID0gX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzKF90aGlzNiRhZGRFZGl0Rm9ybSwgX2V4Y2x1ZGVkMik7CiAgICAgICAgICAgICAgICAgICAgICAgIF9jb250ZXh0NC5wcmV2ID0gNjsKICAgICAgICAgICAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSA5OwogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGFza1NhdmUoX29iamVjdFNwcmVhZCh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFza0NvbmZWaWRlbzogdGFza0NvbmZWaWRlby5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByYW5rID0gaXRlbS5yYW5rLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaXRlbSR0YXNrQ29uZklkID0gaXRlbS50YXNrQ29uZklkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXNrQ29uZklkID0gX2l0ZW0kdGFza0NvbmZJZCA9PT0gdm9pZCAwID8gJycgOiBfaXRlbSR0YXNrQ29uZklkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb0lkID0gaXRlbS52aWRlb0lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWRlb05hbWUgPSBpdGVtLnZpZGVvTmFtZTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhbms6IHJhbmssCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhc2tDb25mSWQ6IHRhc2tDb25mSWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvSWQ6IHZpZGVvSWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZGVvTmFtZTogdmlkZW9OYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgICAgICAgICAgIH0pCiAgICAgICAgICAgICAgICAgICAgICAgIH0sIGFkZEVkaXRGb3JtKSk7CiAgICAgICAgICAgICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgICAgICAgICAgIF95aWVsZCR0YXNrU2F2ZSA9IF9jb250ZXh0NC5zZW50OwogICAgICAgICAgICAgICAgICAgICAgICBfc3RhdGUgPSBfeWllbGQkdGFza1NhdmUuc3RhdGU7CiAgICAgICAgICAgICAgICAgICAgICAgIF9tZXNzYWdlID0gX3lpZWxkJHRhc2tTYXZlLm1lc3NhZ2U7CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gX3lpZWxkJHRhc2tTYXZlLnZhbHVlOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIV9zdGF0ZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMjQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM2LmNoYW5nZVBhZ2UoJ1RhYmxlUGFnZScsIF90aGlzNi5pZCA/ICdlZGl0JyA6ICdhZGQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgX2RhdGEgPSBfdGhpczYucXMuc3RyaW5naWZ5KHsKICAgICAgICAgICAgICAgICAgICAgICAgICBpZDogdmFsdWUKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMTg7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBleGVjdXRlSm9iKF9kYXRhKTsKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMTg6CiAgICAgICAgICAgICAgICAgICAgICAgIF95aWVsZCRleGVjdXRlSm9iMiA9IF9jb250ZXh0NC5zZW50OwogICAgICAgICAgICAgICAgICAgICAgICBfc3RhdGUyID0gX3lpZWxkJGV4ZWN1dGVKb2IyLnN0YXRlOwogICAgICAgICAgICAgICAgICAgICAgICBfbWVzc2FnZTIgPSBfeWllbGQkZXhlY3V0ZUpvYjIubWVzc2FnZTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKF9zdGF0ZTIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczYuJG1lc3NhZ2Uuc3VjY2VzcygiXHU4OUM2XHU5ODkxXHU1REUxXHU2OEMwXHU0RUZCXHU1MkExXHU2REZCXHU1MkEwXHU2MjEwXHU1MjlGIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM2LmNoYW5nZVBhZ2UoJ1RhYmxlUGFnZScsIF90aGlzNi5pZCA/ICdlZGl0JyA6ICdhZGQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICBfdGhpczYuJG1lc3NhZ2Uud2FybmluZyhfbWVzc2FnZTIgfHwgIlx1ODlDNlx1OTg5MVx1NURFMVx1NjhDMFx1NEVGQlx1NTJBMVx1NkRGQlx1NTJBMFx1NTkzMVx1OEQyNVx1RkYwMSIpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMjU7CiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgY2FzZSAyNDoKICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM2LiRtZXNzYWdlLndhcm5pbmcoX21lc3NhZ2UgfHwgIlx1ODlDNlx1OTg5MVx1NURFMVx1NjhDMFx1NEVGQlx1NTJBMVx1NkRGQlx1NTJBMFx1NTkzMVx1OEQyNVx1RkYwMSIpOwogICAgICAgICAgICAgICAgICAgICAgY2FzZSAyNToKICAgICAgICAgICAgICAgICAgICAgICAgX2NvbnRleHQ0LnByZXYgPSAyNTsKICAgICAgICAgICAgICAgICAgICAgICAgX3RoaXM2LnNhdmVMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuZmluaXNoKDI1KTsKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMjg6CiAgICAgICAgICAgICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LnN0b3AoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgIH0sIF9jYWxsZWU0LCBudWxsLCBbWzYsLCAyNSwgMjhdXSk7CiAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94LCBfeDIpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWYyLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgIH0oKSk7CiAgICAgICAgICAgIGNhc2UgMTQ6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTUpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvL+WIhumhtemhteaVsOWIh+aNogogICAgaGFuZGxlQ3VycmVudFBhZ2VDaGFuZ2U6IGZ1bmN0aW9uIGhhbmRsZUN1cnJlbnRQYWdlQ2hhbmdlKCkgewogICAgICB2YXIgX3RoaXMkcGFyYW1zOwogICAgICB2YXIgcGFnZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogMTsKICAgICAgaWYgKCEoKF90aGlzJHBhcmFtcyA9IHRoaXMucGFyYW1zKSAhPT0gbnVsbCAmJiBfdGhpcyRwYXJhbXMgIT09IHZvaWQgMCAmJiAoX3RoaXMkcGFyYW1zID0gX3RoaXMkcGFyYW1zLnBhZ2VCZWFuKSAhPT0gbnVsbCAmJiBfdGhpcyRwYXJhbXMgIT09IHZvaWQgMCAmJiBfdGhpcyRwYXJhbXMucGFnZSkpIHJldHVybjsKICAgICAgdGhpcy5wYXJhbXMucGFnZUJlYW4ucGFnZSA9IHBhZ2U7CiAgICAgIHRoaXMubG9hZFRlbXBsYXRlRGF0YSgpOwogICAgfSwKICAgIC8v5YiG6aG15aSn5bCP5YiH5o2iCiAgICBoYW5kbGVTaXplQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVTaXplQ2hhbmdlKCkgewogICAgICB2YXIgX3RoaXMkcGFyYW1zMjsKICAgICAgdmFyIHBhZ2VTaXplID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiAxMDsKICAgICAgaWYgKCEoKF90aGlzJHBhcmFtczIgPSB0aGlzLnBhcmFtcykgIT09IG51bGwgJiYgX3RoaXMkcGFyYW1zMiAhPT0gdm9pZCAwICYmIChfdGhpcyRwYXJhbXMyID0gX3RoaXMkcGFyYW1zMi5wYWdlQmVhbikgIT09IG51bGwgJiYgX3RoaXMkcGFyYW1zMiAhPT0gdm9pZCAwICYmIF90aGlzJHBhcmFtczIucGFnZSkpIHJldHVybjsKICAgICAgdGhpcy5wYXJhbXMucGFnZUJlYW4ucGFnZVNpemUgPSBwYWdlU2l6ZTsKICAgICAgdGhpcy5sb2FkVGVtcGxhdGVEYXRhKCk7CiAgICB9LAogICAgLy8g5pS55Y+Y6aG16Z2iCiAgICBjaGFuZ2VQYWdlOiBmdW5jdGlvbiBjaGFuZ2VQYWdlKCkgewogICAgICB2YXIgcGFnZU5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICcnOwogICAgICB2YXIgdHlwZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7CiAgICAgIHZhciBkYXRhID0gYXJndW1lbnRzLmxlbmd0aCA+IDIgJiYgYXJndW1lbnRzWzJdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMl0gOiB7fTsKICAgICAgaWYgKCFwYWdlTmFtZSkgcmV0dXJuOwogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2VQYWdlJywgcGFnZU5hbWUsIGZ1bmN0aW9uIChfKSB7CiAgICAgICAgUHViU3ViLnB1Ymxpc2gocGFnZU5hbWUsIF9vYmplY3RTcHJlYWQoewogICAgICAgICAgdHlwZTogdHlwZQogICAgICAgIH0sIGRhdGEpKTsKICAgICAgfSk7CiAgICB9CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgLy8g5Zyo57uE5Lu26ZSA5q+B5LmL5YmNIOa4hemZpOiuoumYhea2iOaBrwogICAgUHViU3ViLnVuc3Vic2NyaWJlKHRoaXMucHViU3ViKTsKICB9Cn07"},null]}