{"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\\infoMgmtPatrolsRescues\\PatrolAndRescueVehicleMgmt\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\infoMgmtPatrolsRescues\\PatrolAndRescueVehicleMgmt\\components\\EditAddPage\\index.vue","mtime":1741464512701},{"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:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS94Y2p5LWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzLmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKdmFyIF9leGNsdWRlZCA9IFsicG9saWN5RmlsZXMiLCAicm9hZElkIl07CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm51bWJlci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5rZXlzLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCgppbXBvcnQgUHViU3ViIGZyb20gJ3B1YnN1Yi1qcyc7CmltcG9ydCB7IHJlZmluZVJlcXVlc3RCb2R5IH0gZnJvbSAnQC91dGlscy9yZXF1ZXN0V3JhcHBlcnMnOwppbXBvcnQgeyB0YWJsZUFkZCwgdGFibGVEZXRhaWwsIHRhYmxlRWRpdCwgdmVyaWZ5Q2FyTnVtYmVyIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcGF0cm9sQW5kUmVzY3VlVmVoaWNsZU1nbXQnOwppbXBvcnQgeyBnZXREaWN0aW9uYXJ5QnlDb2RlIH0gZnJvbSAnQC91dGlscy9kaWN0aW9uYXJ5JzsKaW1wb3J0IHsgb3JnVHJlZSB9IGZyb20gJ0AvYXBpL3N5c3RlbUludGVyZmFjZSc7CgovLyDlm77niYfkuIrkvKAKaW1wb3J0IGltZ0RpYWxvZyBmcm9tICcuL2NvbXBvbmVudHMvaW1nRGlhbG9nJzsKaW1wb3J0IHsgdGFibGVEYXRhIGFzIHJvYWRTZWN0aW9uSW5mb0ludGVyIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcm9hZFNlY3Rpb25JbmZvJzsKaW1wb3J0IHsgdGFibGVEYXRhIGFzIHRlYW1EYXRhIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcGF0cm9sQW5kUmVzY3VlVGVhbXNNZ210JzsKaW1wb3J0IHsgdGFibGVEYXRhIGFzIHJlc2N1ZVBvaW50RGF0YSB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL3Jlc2N1ZVNpdGVNZ210JzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdFZGl0QWRkUGFnZScsCiAgY29tcG9uZW50czogewogICAgaW1nRGlhbG9nOiBpbWdEaWFsb2cKICB9LAogIHByb3BzOiB7CiAgICBjb21wb25lbnROYW1lOiB7CiAgICAgIGRlZmF1bHQ6ICdUYWJsZVBhZ2UnLAogICAgICB0eXBlOiBTdHJpbmcKICAgIH0KICB9LAogIGRhdGE6IGZ1bmN0aW9uIGRhdGEoKSB7CiAgICByZXR1cm4gewogICAgICBjYXJDb2xvdXJMaXN0OiBbewogICAgICAgIHZhbHVlOiAnMScsCiAgICAgICAgbmFtZTogJ+m7keiJsicKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAnMicsCiAgICAgICAgbmFtZTogJ+eZveiJsicKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAnMycsCiAgICAgICAgbmFtZTogJ+m7hOiJsicKICAgICAgfV0sCiAgICAgIGlzQWxhcm1MaXN0OiBbewogICAgICAgIHZhbHVlOiAxLAogICAgICAgIG5hbWU6ICfmmK8nCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMCwKICAgICAgICBuYW1lOiAn5ZCmJwogICAgICB9XSwKICAgICAgaXNGaWxpbmdMaXN0OiBbewogICAgICAgIHZhbHVlOiAxLAogICAgICAgIG5hbWU6ICfmmK8nCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMCwKICAgICAgICBuYW1lOiAn5ZCmJwogICAgICB9XSwKICAgICAgaXNPd25lZExpc3Q6IFt7CiAgICAgICAgdmFsdWU6IDEsCiAgICAgICAgbmFtZTogJ+aYrycKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAwLAogICAgICAgIG5hbWU6ICflkKYnCiAgICAgIH1dLAogICAgICAvLyAyLzQuNQogICAgICBzZWF0c051bWJlckxpc3Q6IFt7CiAgICAgICAgdmFsdWU6IDAsCiAgICAgICAgbmFtZTogJzInCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMSwKICAgICAgICBuYW1lOiAnNCcKICAgICAgfSwgewogICAgICAgIHZhbHVlOiAyLAogICAgICAgIG5hbWU6ICc1JwogICAgICB9XSwKICAgICAgYWRkRWRpdEZvcm06IHsKICAgICAgICBjYXJDb2xvdXI6ICcxJywKICAgICAgICBzZWF0c051bWJlcjogMCwKICAgICAgICBvcGVyYXRvcnM6ICcxJywKICAgICAgICBpc0FsYXJtOiAxLAogICAgICAgIGlzRmlsaW5nOiAxLAogICAgICAgIGlzT3duZWQ6IDEsCiAgICAgICAgdXNlVHlwZTogMSwKICAgICAgICBjYXJDbGFzczogMSwKICAgICAgICBzdWl0YWJpbGl0eUNhcjogJzEnLAogICAgICAgIHN1aXRhYmlsaXR5VHJ1Y2s6ICcxJywKICAgICAgICByb2FkOiB7fSwKICAgICAgICByZXNjdWU6IHt9LAogICAgICAgIHJvYWROYW1lOiAnJwogICAgICB9LAogICAgICBhZGRFZGl0UnVsZXM6IHsKICAgICAgICBjYXJOdW1iZXI6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fovpPlhaXovabniYzlj7cnLAogICAgICAgICAgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgfV0sCiAgICAgICAgY2FyQ2xhc3M6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfor7fpgInmi6novabovobnsbvliKsnLAogICAgICAgICAgdHJpZ2dlcjogJ2NoYW5nZScKICAgICAgICB9XSwKICAgICAgICB1c2VUeXBlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn6K+36YCJ5oup6L2m6L6G55So6YCUJywKICAgICAgICAgIHRyaWdnZXI6ICdjaGFuZ2UnCiAgICAgICAgfV0KICAgICAgfSwKICAgICAgc2F2ZUxvYWRpbmc6IGZhbHNlLAogICAgICAvLyDkuIrkvKBsb2FkaW5nCiAgICAgIGlkOiAnJywKICAgICAgLy8gaWTmoIfor4bnrKYKICAgICAgcHViU3ViOiBudWxsLAogICAgICByb2FkT3B0aW9uczogW10sCiAgICAgIHJlc2N1ZVBvaW50T3B0aW9uczogW10sCiAgICAgIC8vIOi9pueJjOWPt+aYr+WQpuWtmOWcqAogICAgICBpc0Nhck5hbWJlcjogZmFsc2UsCiAgICAgIHJvYWRDaG9pY2VEaWFsb2c6IGZhbHNlLAogICAgICAvLyDmmK/lkKblsZXnpLrpgInmi6not6/mrrXlvLnlsYIKICAgICAgcmVzY3VlUG9pbnRDaG9pY2VEaWFsb2c6IGZhbHNlLAogICAgICBhY2NlcHQ6ICcucG5nLCAuanBnLCAuanBlZycsCiAgICAgIGlmT3B0aW9uczogW3sKICAgICAgICBsYWJlbDogJ+aYrycsCiAgICAgICAgdmFsdWU6IDEKICAgICAgfSwgewogICAgICAgIGxhYmVsOiAn5ZCmJywKICAgICAgICB2YWx1ZTogMAogICAgICB9XSwKICAgICAgdHJlZURhdGE6IFtdLAogICAgICB0ZWFtT3B0aW9uczogW10KICAgICAgLy8gcmVzY3VlUG9pbnRPcHRpb25zOiBbXQogICAgfTsKICB9LAogIHdhdGNoOiB7CiAgICBjb21wb25lbnROYW1lOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIobmV3VmFsKSB7CiAgICAgICAgaWYgKG5ld1ZhbCA9PT0gdGhpcy4kb3B0aW9ucy5uYW1lKSB7CiAgICAgICAgICB0aGlzLm9wZW5QYWdlKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuY2xvc2VQYWdlKCk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdGhpcy5nZXRPcmdUcmVlRGF0YSgpOwogIH0sCiAgbW91bnRlZDogZnVuY3Rpb24gbW91bnRlZCgpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CiAgICAvLyB0aGlzLnB1YlN1YiA9IFB1YlN1Yi5zdWJzY3JpYmUoJ1RyZWVJdGVtU2VsZWN0ZWQnLCAoXywgbm9kZUl0ZW0pID0+IHsKICAgIC8vICAgdGhpcy5hZGRFZGl0Rm9ybS5yb2FkTmFtZSA9IG5vZGVJdGVtPy5uYW1lIHx8ICcnCiAgICAvLyAgIHRoaXMuYWRkRWRpdEZvcm0ucm9hZElkID0gbm9kZUl0ZW0/LmlkIHx8ICcnCiAgICAvLyAgIHRoaXMuYWRkRWRpdEZvcm0ucm9hZEZ1bGxJZCA9IG5vZGVJdGVtPy5wYXRoIHx8ICcnCiAgICAvLyB9KQogICAgdGhpcy5wdWJTdWIgPSBQdWJTdWIuc3Vic2NyaWJlKCdFZGl0QWRkUGFnZScsIGZ1bmN0aW9uIChfLCBkYXRhKSB7CiAgICAgIGNvbnNvbGUubG9nKGRhdGEucm9hZE5hbWUsICcvLy8vLy8vLy8vLy8vLy8vLy8vLy8nKTsKICAgICAgaWYgKGRhdGEucm9hZE5hbWUgIT09ICcnKSB7CiAgICAgICAgX3RoaXMuYWRkRWRpdEZvcm0ucm9hZE5hbWUgPSAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLnJvYWROYW1lKSB8fCAnJzsKICAgICAgICBfdGhpcy5hZGRFZGl0Rm9ybS5yb2FkSWQgPSAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLmNhdGFsb2dJZCkgfHwgJyc7CiAgICAgICAgX3RoaXMuYWRkRWRpdEZvcm0ucm9hZEZ1bGxJZCA9IChkYXRhID09PSBudWxsIHx8IGRhdGEgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGRhdGEucGF0aCkgfHwgJyc7CiAgICAgIH0KICAgICAgY29uc29sZS5sb2coX3RoaXMuYWRkRWRpdEZvcm0ucm9hZE5hbWUsICdjYXNjYXNjYXNjJyk7CiAgICAgIGNvbnNvbGUubG9nKF90aGlzLmFkZEVkaXRGb3JtLnJvYWRJZCwgJ2Nhc2Nhc2Nhc2MxMTEnKTsKICAgICAgaWYgKGRhdGEuaWQpIHsKICAgICAgICBfdGhpcy5pZCA9IGRhdGEuaWQ7CiAgICAgICAgX3RoaXMuZ2V0RGV0YWlsKGRhdGEuaWQpOwogICAgICB9IGVsc2UgewogICAgICAgIC8vIHRoaXMuYWRkRWRpdEZvcm0gPSB7CiAgICAgICAgLy8gICBvcGVyYXRvcnM6IDEsCiAgICAgICAgLy8gICBpc0FsYXJtOiAxLAogICAgICAgIC8vICAgaXNGaWxpbmc6IDEsCiAgICAgICAgLy8gICBpc093bmVkOiAxLAogICAgICAgIC8vICAgdXNlVHlwZTogMSwKICAgICAgICAvLyAgIGNhckNsYXNzOiAxLAogICAgICAgIC8vICAgc3VpdGFiaWxpdHlDYXI6IDEsCiAgICAgICAgLy8gICBzdWl0YWJpbGl0eVRydWNrOiAxLAogICAgICAgIC8vICAgcm9hZDoge30sCiAgICAgICAgLy8gICByZXNjdWU6IHt9CiAgICAgICAgLy8gfQogICAgICAgIF90aGlzLmdldFJvYWREYXRhKCk7CiAgICAgIH0KICAgIH0pOwogIH0sCiAgbWV0aG9kczogewogICAgLy/ojrflj5bmiYDlnKjot6/mrrXliJfooajmlbDmja4KICAgIGdldFJvYWREYXRhOiBmdW5jdGlvbiBnZXRSb2FkRGF0YSh2YWx1ZSkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkgewogICAgICAgIHZhciBfeWllbGQkcm9hZFNlY3Rpb25JbmYsIF95aWVsZCRyb2FkU2VjdGlvbkluZjIsIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIHJvYWRTZWN0aW9uSW5mb0ludGVyKHsKICAgICAgICAgICAgICAgIHBhZ2VCZWFuOiB7CiAgICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAtMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX3lpZWxkJHJvYWRTZWN0aW9uSW5mID0gX2NvbnRleHQuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkcm9hZFNlY3Rpb25JbmYyID0gX3lpZWxkJHJvYWRTZWN0aW9uSW5mLnJvd3M7CiAgICAgICAgICAgICAgcm93cyA9IF95aWVsZCRyb2FkU2VjdGlvbkluZjIgPT09IHZvaWQgMCA/IFtdIDogX3lpZWxkJHJvYWRTZWN0aW9uSW5mMjsKICAgICAgICAgICAgICBfdGhpczIucm9hZE9wdGlvbnMgPSByb3dzLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgICAgICAgICAgaXRlbS5yb2FkTmFtZSA9IGl0ZW0ubmFtZSArICcgJyArIGl0ZW0uY29kZTsKICAgICAgICAgICAgICAgIHJldHVybiBpdGVtOwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIGlmICghX3RoaXMyLmlkKSB7CiAgICAgICAgICAgICAgICAvLyB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgJ3JvYWRJZCcsIHRoaXMucm9hZE9wdGlvbnNbMF0uaWQpCiAgICAgICAgICAgICAgICBfdGhpczIucm9hZENoYW5nZShfdGhpczIucm9hZE9wdGlvbnNbMF0uaWQpOwogICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBfdGhpczIucm9hZENoYW5nZSh2YWx1ZSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgcm9hZENoYW5nZTogZnVuY3Rpb24gcm9hZENoYW5nZSh2YWx1ZSkgewogICAgICB0aGlzLmdldFRlYW1EYXRhKHZhbHVlKTsKICAgICAgdGhpcy5nZXRSZXNjdWVQb2ludERhdGEodmFsdWUpOwogICAgfSwKICAgIC8vIOmAmui/h+i3r+auteS/oeaBr+iOt+WPluW3oeafpeaVkeaPtOmYn+S8jeS/oeaBrwogICAgZ2V0VGVhbURhdGE6IGZ1bmN0aW9uIGdldFRlYW1EYXRhKHZhbHVlKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUyKCkgewogICAgICAgIHZhciBfeWllbGQkdGVhbURhdGEsIF95aWVsZCR0ZWFtRGF0YSRyb3dzLCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfdGhpczMuYWRkRWRpdEZvcm0udGVhbUlkID0gJyc7CiAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAzOwogICAgICAgICAgICAgIHJldHVybiB0ZWFtRGF0YShyZWZpbmVSZXF1ZXN0Qm9keSh7CiAgICAgICAgICAgICAgICBxdWVyeXM6IFt7CiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywKICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdyLmlkXycsCiAgICAgICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZQogICAgICAgICAgICAgICAgfV0KICAgICAgICAgICAgICB9KSwgJ2FkZEVkaXQnKTsKICAgICAgICAgICAgY2FzZSAzOgogICAgICAgICAgICAgIF95aWVsZCR0ZWFtRGF0YSA9IF9jb250ZXh0Mi5zZW50OwogICAgICAgICAgICAgIF95aWVsZCR0ZWFtRGF0YSRyb3dzID0gX3lpZWxkJHRlYW1EYXRhLnJvd3M7CiAgICAgICAgICAgICAgcm93cyA9IF95aWVsZCR0ZWFtRGF0YSRyb3dzID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCR0ZWFtRGF0YSRyb3dzOwogICAgICAgICAgICAgIF90aGlzMy50ZWFtT3B0aW9ucyA9IHJvd3M7CiAgICAgICAgICAgIGNhc2UgNzoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMik7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOagueaNrui3r+auteafpeivouaVkeaPtOeCuQogICAgZ2V0UmVzY3VlUG9pbnREYXRhOiBmdW5jdGlvbiBnZXRSZXNjdWVQb2ludERhdGEodmFsdWUpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTMoKSB7CiAgICAgICAgdmFyIF95aWVsZCRyZXNjdWVQb2ludERhdCwgX3lpZWxkJHJlc2N1ZVBvaW50RGF0Miwgcm93czsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0MykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiByZXNjdWVQb2ludERhdGEocmVmaW5lUmVxdWVzdEJvZHkoewogICAgICAgICAgICAgICAgcXVlcnlzOiBbewogICAgICAgICAgICAgICAgICBvcGVyYXRpb246ICdJTicsCiAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAncm9hZF9pZF8nLAogICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUKICAgICAgICAgICAgICAgIH1dCiAgICAgICAgICAgICAgfSksICdhZGRFZGl0Jyk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkcmVzY3VlUG9pbnREYXQgPSBfY29udGV4dDMuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkcmVzY3VlUG9pbnREYXQyID0gX3lpZWxkJHJlc2N1ZVBvaW50RGF0LnJvd3M7CiAgICAgICAgICAgICAgcm93cyA9IF95aWVsZCRyZXNjdWVQb2ludERhdDIgPT09IHZvaWQgMCA/IFtdIDogX3lpZWxkJHJlc2N1ZVBvaW50RGF0MjsKICAgICAgICAgICAgICBfdGhpczQucmVzY3VlUG9pbnRPcHRpb25zID0gcm93czsKICAgICAgICAgICAgY2FzZSA2OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDMuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWUzKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgdGVhbUlkQ2hhbmdlOiBmdW5jdGlvbiB0ZWFtSWRDaGFuZ2UoKSB7CiAgICAgIHZhciBfdGhpcyQkcmVmcyRjYXNjYWRlciwgX3RoaXMkJHJlZnMkY2FzY2FkZXIyOwogICAgICB0aGlzLmFkZEVkaXRGb3JtLnRlYW1GdWxsSWQgPSAoKF90aGlzJCRyZWZzJGNhc2NhZGVyID0gdGhpcy4kcmVmcy5jYXNjYWRlcikgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkY2FzY2FkZXIgPT09IHZvaWQgMCB8fCAoX3RoaXMkJHJlZnMkY2FzY2FkZXIgPSBfdGhpcyQkcmVmcyRjYXNjYWRlci5nZXRDaGVja2VkTm9kZXMoKVswXSkgPT09IG51bGwgfHwgX3RoaXMkJHJlZnMkY2FzY2FkZXIgPT09IHZvaWQgMCB8fCAoX3RoaXMkJHJlZnMkY2FzY2FkZXIgPSBfdGhpcyQkcmVmcyRjYXNjYWRlci5kYXRhKSA9PT0gbnVsbCB8fCBfdGhpcyQkcmVmcyRjYXNjYWRlciA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3RoaXMkJHJlZnMkY2FzY2FkZXIucGF0aCkgfHwgJyc7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0udGVhbUlkID0gKChfdGhpcyQkcmVmcyRjYXNjYWRlcjIgPSB0aGlzLiRyZWZzLmNhc2NhZGVyKSA9PT0gbnVsbCB8fCBfdGhpcyQkcmVmcyRjYXNjYWRlcjIgPT09IHZvaWQgMCB8fCAoX3RoaXMkJHJlZnMkY2FzY2FkZXIyID0gX3RoaXMkJHJlZnMkY2FzY2FkZXIyLmdldENoZWNrZWROb2RlcygpWzBdKSA9PT0gbnVsbCB8fCBfdGhpcyQkcmVmcyRjYXNjYWRlcjIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF90aGlzJCRyZWZzJGNhc2NhZGVyMi52YWx1ZSkgfHwgJyc7CiAgICB9LAogICAgLy8g6I635Y+W5YWs5Y+45qCRCiAgICBnZXRPcmdUcmVlRGF0YTogZnVuY3Rpb24gZ2V0T3JnVHJlZURhdGEoKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU0KCkgewogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlNCQoX2NvbnRleHQ0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDQucHJldiA9IF9jb250ZXh0NC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDQubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIG9yZ1RyZWUoKTsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgIF90aGlzNS50cmVlRGF0YSA9IF9jb250ZXh0NC5zZW50OwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NC5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTQpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBibHVyQ2hlY2tvdXQ6IGZ1bmN0aW9uIGJsdXJDaGVja291dChlKSB7CiAgICAgIHZhciBfdGhpczYgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU1KCkgewogICAgICAgIHZhciBpZCwgX3lpZWxkJHZlcmlmeUNhck51bWJlLCBzdGF0ZTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTUkKF9jb250ZXh0NSkgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ1LnByZXYgPSBfY29udGV4dDUubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgaWQgPSBfdGhpczYuYWRkRWRpdEZvcm0uaWQgfHwgJyc7CiAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAzOwogICAgICAgICAgICAgIHJldHVybiB2ZXJpZnlDYXJOdW1iZXIoewogICAgICAgICAgICAgICAgaWQ6IGlkLAogICAgICAgICAgICAgICAgY2FyTnVtYmVyOiBlLnRhcmdldC52YWx1ZQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX3lpZWxkJHZlcmlmeUNhck51bWJlID0gX2NvbnRleHQ1LnNlbnQ7CiAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkdmVyaWZ5Q2FyTnVtYmUuc3RhdGU7CiAgICAgICAgICAgICAgX3RoaXM2LmlzQ2FyTmFtYmVyID0gIXN0YXRlOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTUpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICB1cGRhdGVGaWxlOiBmdW5jdGlvbiB1cGRhdGVGaWxlKHVybCwgdHlwZSkgewogICAgICB0aGlzLiRzZXQodGhpcy5hZGRFZGl0Rm9ybSwgdHlwZSwgdXJsKTsKICAgIH0sCiAgICBnZXREaWN0aW9uYXJ5QnlDb2RlOiBnZXREaWN0aW9uYXJ5QnlDb2RlLAogICAgLy8g5omT5byA6aG16Z2i5omn6KGMCiAgICBvcGVuUGFnZTogZnVuY3Rpb24gb3BlblBhZ2UoKSB7fSwKICAgIC8vIOWFs+mXremhtemdouaJp+ihjAogICAgY2xvc2VQYWdlOiBmdW5jdGlvbiBjbG9zZVBhZ2UoKSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwogICAgICB2YXIgcm9hZE9wdGlvbnMgPSB0aGlzLnJvYWRPcHRpb25zOwogICAgICAvLyDph43nva7nu4Tku7bmlbDmja4KICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiRkYXRhLCB0aGlzLiRvcHRpb25zLmRhdGEuY2FsbCh0aGlzKSwgewogICAgICAgIHB1YlN1YjogdGhpcy5wdWJTdWIsCiAgICAgICAgcm9hZE9wdGlvbnM6IHJvYWRPcHRpb25zCiAgICAgIH0pOwogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoXykgewogICAgICAgIHZhciBfdGhpczckJHJlZnMkdXBsb2FkOwogICAgICAgIF90aGlzNy4kcmVmcy5hZGRFZGl0Rm9ybS4kZWwuc2Nyb2xsVG9wID0gMDsKICAgICAgICBfdGhpczcuJHJlZnMuYWRkRWRpdEZvcm0uY2xlYXJWYWxpZGF0ZSgpOwogICAgICAgIChfdGhpczckJHJlZnMkdXBsb2FkID0gX3RoaXM3LiRyZWZzLnVwbG9hZCkgPT09IG51bGwgfHwgX3RoaXM3JCRyZWZzJHVwbG9hZCA9PT0gdm9pZCAwIHx8IF90aGlzNyQkcmVmcyR1cGxvYWQuY2xlYXJGaWxlcygpOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDojrflj5bor6bmg4UKICAgIGdldERldGFpbDogZnVuY3Rpb24gZ2V0RGV0YWlsKGlkKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU2KCkgewogICAgICAgIHZhciBfeWllbGQkdGFibGVEZXRhaWwsIF95aWVsZCR0YWJsZURldGFpbCRwbywgcG9saWN5RmlsZXMsIF95aWVsZCR0YWJsZURldGFpbCRybywgcm9hZElkLCBhZGRFZGl0Rm9ybTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTYkKF9jb250ZXh0NikgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ2LnByZXYgPSBfY29udGV4dDYubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiB0YWJsZURldGFpbChpZCk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkdGFibGVEZXRhaWwgPSBfY29udGV4dDYuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkdGFibGVEZXRhaWwkcG8gPSBfeWllbGQkdGFibGVEZXRhaWwucG9saWN5RmlsZXM7CiAgICAgICAgICAgICAgcG9saWN5RmlsZXMgPSBfeWllbGQkdGFibGVEZXRhaWwkcG8gPT09IHZvaWQgMCA/IFtdIDogX3lpZWxkJHRhYmxlRGV0YWlsJHBvOwogICAgICAgICAgICAgIF95aWVsZCR0YWJsZURldGFpbCRybyA9IF95aWVsZCR0YWJsZURldGFpbC5yb2FkSWQ7CiAgICAgICAgICAgICAgcm9hZElkID0gX3lpZWxkJHRhYmxlRGV0YWlsJHJvID09PSB2b2lkIDAgPyAnJyA6IF95aWVsZCR0YWJsZURldGFpbCRybzsKICAgICAgICAgICAgICBhZGRFZGl0Rm9ybSA9IF9vYmplY3RXaXRob3V0UHJvcGVydGllcyhfeWllbGQkdGFibGVEZXRhaWwsIF9leGNsdWRlZCk7CiAgICAgICAgICAgICAgX3RoaXM4LmFkZEVkaXRGb3JtID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBhZGRFZGl0Rm9ybSksIHt9LCB7CiAgICAgICAgICAgICAgICByb2FkSWQ6IHJvYWRJZCwKICAgICAgICAgICAgICAgIHBvbGljeUZpbGVzOiBwb2xpY3lGaWxlcywKICAgICAgICAgICAgICAgIHJvYWROYW1lOiBhZGRFZGl0Rm9ybS5yb2FkTmFtZSB8fCBfdGhpczguYWRkRWRpdEZvcm0ucm9hZE5hbWUsCiAgICAgICAgICAgICAgICAvLyDlpoLmnpzmjqXlj6Pov5Tlm57nmoQgb3JnTmFtZSDkuLrnqbrvvIzkvb/nlKjlvZPliY3ooajljZXnmoQgb3JnTmFtZe+8jAogICAgICAgICAgICAgICAgcG9saWN5RmlsZXNBcnI6IHBvbGljeUZpbGVzLm1hcChmdW5jdGlvbiAoaSkgewogICAgICAgICAgICAgICAgICByZXR1cm4gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBpKSwge30sIHsKICAgICAgICAgICAgICAgICAgICBuYW1lOiBpLmZpbGVOYW1lCiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfSkKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICBpZiAoX3RoaXM4LnJvYWRPcHRpb25zLmxlbmd0aCkgewogICAgICAgICAgICAgICAgX3RoaXM4LnJvYWRDaGFuZ2Uocm9hZElkKTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgX3RoaXM4LmdldFJvYWREYXRhKHJvYWRJZCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDEwOgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDYuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU2KTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5L+d5a2YCiAgICBoYW5kbGVTYXZlOiBmdW5jdGlvbiBoYW5kbGVTYXZlKCkgewogICAgICB2YXIgX3RoaXM5ID0gdGhpczsKICAgICAgdGhpcy4kcmVmcy5hZGRFZGl0Rm9ybS52YWxpZGF0ZSgvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmID0gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWU3KHZhbGlkLCBvYmplY3QpIHsKICAgICAgICAgIHZhciBteUludGVyRmFjZSwgcmVzcG9uc2UsIHN0YXRlLCBtZXNzYWdlLCBhY3Rpb247CiAgICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTckKF9jb250ZXh0NykgewogICAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDcucHJldiA9IF9jb250ZXh0Ny5uZXh0KSB7CiAgICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgaWYgKHZhbGlkKSB7CiAgICAgICAgICAgICAgICAgIF9jb250ZXh0Ny5uZXh0ID0gNDsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBfdGhpczkuJG1lc3NhZ2Uud2FybmluZygiXHU2NzA5Ii5jb25jYXQoT2JqZWN0LmtleXMob2JqZWN0KS5sZW5ndGgsICJcdTRFMkFcdTVCNTdcdTZCQjVcdTY3MkFcdTkwMUFcdThGQzdcdTY4MjFcdTlBOENcdUZGMENcdThCRjdcdTZCNjNcdTc4NkVcdTU4NkJcdTUxOTlcdTg4NjhcdTUzNTVcdTUxODVcdTVCQjlcdTMwMDIiKSk7CiAgICAgICAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDIwOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICAgICAgaWYgKF90aGlzOS5pc0Nhck5hbWJlcikgewogICAgICAgICAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDE5OwogICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIF90aGlzOS5zYXZlTG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICBteUludGVyRmFjZSA9IF90aGlzOS5pZCA/IHRhYmxlRWRpdCA6IHRhYmxlQWRkOyAvLyDnoa7kv50gdXNlVHlwZSDmmK/mlbDlrZfnsbvlnosKICAgICAgICAgICAgICAgIC8vIGNvbnN0IHNhdmVEYXRhID0gewogICAgICAgICAgICAgICAgLy8gICAuLi50aGlzLmFkZEVkaXRGb3JtLAogICAgICAgICAgICAgICAgLy8gICByb2FkSWQ6IHRoaXMuYWRkRWRpdEZvcm0ucm9hZElkLCAvLyDkvKDpgJIgb3JnSWQKICAgICAgICAgICAgICAgIC8vICAgcm9hZE5hbWU6IHRoaXMuYWRkRWRpdEZvcm0ucm9hZE5hbWUsIC8vIOS8oOmAkiBvcmdOYW1lCiAgICAgICAgICAgICAgICAvLyAgIHJvYWRGdWxsSWQ6IHRoaXMuYWRkRWRpdEZvcm0ucm9hZEZ1bGxJZCwvLyDkvKDpgJIgcm9hZEZ1bGxJZAogICAgICAgICAgICAgICAgLy8gICB0eXBlOiB0aGlzLmFkZEVkaXRGb3JtLnR5cGUsIC8vIOS8oOmAkumYn+S8jeexu+Wei+eahCB2YWx1ZQogICAgICAgICAgICAgICAgLy8gICB1c2VUeXBlOiBOdW1iZXIodGhpcy5hZGRFZGl0Rm9ybS51c2VUeXBlKSwgLy8g56Gu5L+dIHVzZVR5cGUg5piv5pWw5a2X57G75Z6LCiAgICAgICAgICAgICAgICAvLyAgIGNhckNsYXNzOiBOdW1iZXIodGhpcy5hZGRFZGl0Rm9ybS5jYXJDbGFzcykgLy8g56Gu5L+dIHVzZVR5cGUg5piv5pWw5a2X57G75Z6LCiAgICAgICAgICAgICAgICAvLyB9CiAgICAgICAgICAgICAgICBfY29udGV4dDcucHJldiA9IDc7CiAgICAgICAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDEwOwogICAgICAgICAgICAgICAgcmV0dXJuIG15SW50ZXJGYWNlKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgX3RoaXM5LmFkZEVkaXRGb3JtKSwge30sIHsKICAgICAgICAgICAgICAgICAgcm9hZElkOiBfdGhpczkuYWRkRWRpdEZvcm0ucm9hZElkLAogICAgICAgICAgICAgICAgICAvLyDkvKDpgJIgb3JnSWQKICAgICAgICAgICAgICAgICAgcm9hZE5hbWU6IF90aGlzOS5hZGRFZGl0Rm9ybS5yb2FkTmFtZSwKICAgICAgICAgICAgICAgICAgLy8g5Lyg6YCSIG9yZ05hbWUKICAgICAgICAgICAgICAgICAgcm9hZEZ1bGxJZDogX3RoaXM5LmFkZEVkaXRGb3JtLnJvYWRGdWxsSWQsCiAgICAgICAgICAgICAgICAgIC8vIOS8oOmAkiByb2FkRnVsbElkCiAgICAgICAgICAgICAgICAgIHR5cGU6IF90aGlzOS5hZGRFZGl0Rm9ybS50eXBlLAogICAgICAgICAgICAgICAgICAvLyDkvKDpgJLpmJ/kvI3nsbvlnovnmoQgdmFsdWUKICAgICAgICAgICAgICAgICAgdXNlVHlwZTogTnVtYmVyKF90aGlzOS5hZGRFZGl0Rm9ybS51c2VUeXBlKSwKICAgICAgICAgICAgICAgICAgY2FyQ2xhc3M6IE51bWJlcihfdGhpczkuYWRkRWRpdEZvcm0uY2FyQ2xhc3MpCiAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAgICAgICAgY2FzZSAxMDoKICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gX2NvbnRleHQ3LnNlbnQ7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhfdGhpczkuYWRkRWRpdEZvcm0ucm9hZElkLCAnMTExMTIyMjIyMTExMScpOwogICAgICAgICAgICAgICAgc3RhdGUgPSByZXNwb25zZS5zdGF0ZSwgbWVzc2FnZSA9IHJlc3BvbnNlLm1lc3NhZ2U7CiAgICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgICAgYWN0aW9uID0gX3RoaXM5LmlkID8gJ+e8lui+kScgOiAn5paw5aKeJzsKICAgICAgICAgICAgICAgICAgX3RoaXM5LiRtZXNzYWdlLnN1Y2Nlc3MoIiIuY29uY2F0KGFjdGlvbiwgIlx1NjIxMFx1NTI5RiIpKTsKICAgICAgICAgICAgICAgICAgUHViU3ViLnB1Ymxpc2goJ1RhYmxlUGFnZScsIHsKICAgICAgICAgICAgICAgICAgICB0eXBlOiBfdGhpczkuaWQgPyAnZWRpdCcgOiAnYWRkJwogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgLy8g6LCD55SoIGNoYW5nZVBhZ2Ug5pa55rOV77yM5Lyg6YCS5q2j56Gu55qE5Y+C5pWwCiAgICAgICAgICAgICAgICAgIF90aGlzOS5jaGFuZ2VQYWdlKCdUYWJsZVBhZ2UnLCBfdGhpczkuaWQgPyAnZWRpdCcgOiAnYWRkJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY2FzZSAxNDoKICAgICAgICAgICAgICAgIF9jb250ZXh0Ny5wcmV2ID0gMTQ7CiAgICAgICAgICAgICAgICBfdGhpczkuc2F2ZUxvYWRpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDcuZmluaXNoKDE0KTsKICAgICAgICAgICAgICBjYXNlIDE3OgogICAgICAgICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAyMDsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgMTk6CiAgICAgICAgICAgICAgICBfdGhpczkuJG1lc3NhZ2UuZXJyb3IoJ+i9pueJjOWPt+W3suWtmOWcqO+8jOivt+mHjeaWsOW9leWFpScpOwogICAgICAgICAgICAgIGNhc2UgMjA6CiAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDcuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlNywgbnVsbCwgW1s3LCwgMTQsIDE3XV0pOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94LCBfeDIpIHsKICAgICAgICAgIHJldHVybiBfcmVmLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgfTsKICAgICAgfSgpKTsKICAgIH0sCiAgICAvLyDlsZXnpLrlvLnlsYIKICAgIHNob3dEaWFsb2c6IGZ1bmN0aW9uIHNob3dEaWFsb2coZGlhbG9nTmFtZSkgewogICAgICBpZiAoIWRpYWxvZ05hbWUpIHJldHVybjsKICAgICAgdGhpc1tkaWFsb2dOYW1lICsgJ0RpYWxvZyddID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDmlLnlj5jpobXpnaIKICAgIGNoYW5nZVBhZ2U6IGZ1bmN0aW9uIGNoYW5nZVBhZ2UoKSB7CiAgICAgIHZhciBwYWdlTmFtZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogJyc7CiAgICAgIHZhciB0eXBlID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAnJzsKICAgICAgaWYgKCFwYWdlTmFtZSkgcmV0dXJuOwogICAgICB0aGlzLiRlbWl0KCdjaGFuZ2VQYWdlJywgcGFnZU5hbWUsIGZ1bmN0aW9uIChfKSB7CiAgICAgICAgUHViU3ViLnB1Ymxpc2gocGFnZU5hbWUsIHsKICAgICAgICAgIHR5cGU6IHR5cGUKICAgICAgICB9KTsKICAgICAgfSk7CiAgICB9CiAgfSwKICBiZWZvcmVEZXN0cm95OiBmdW5jdGlvbiBiZWZvcmVEZXN0cm95KCkgewogICAgLy8g5Zyo57uE5Lu26ZSA5q+B5LmL5YmNIOa4hemZpOiuoumYhea2iOaBrwogICAgUHViU3ViLnVuc3Vic2NyaWJlKHRoaXMucHViU3ViKTsKICB9Cn07"},null]}