{"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\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\commandDispatch\\EventManagement\\components\\DetailPage\\index.vue","mtime":1741314105565},{"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:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmluZC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZpbmQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5tYXAuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5zb21lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KCmltcG9ydCB7IHJlZmluZVJlcXVlc3RCb2R5IH0gZnJvbSAnQC91dGlscy9yZXF1ZXN0V3JhcHBlcnMnOwppbXBvcnQgeyBkaWN0aW9uYXJ5RXNjYXBlLCBnZXREaWN0aW9uYXJ5QnlDb2RlIH0gZnJvbSAnQC91dGlscy9kaWN0aW9uYXJ5JzsKaW1wb3J0IHsgdGFibGVEZXRhaWwgfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvY29tbWFuZERpc3BhdGNoL2V2ZW50TWFuYWdlbWVudCc7CmltcG9ydCBQdWJTdWIgZnJvbSAncHVic3ViLWpzJzsKLy8gaW1wb3J0IE1pbmVNYXAgZnJvbSAnQC9jb21wb25lbnRzL01pbmVNYXAvaW5kZXgudnVlJwoKaW1wb3J0IHsgdGFibGVFZGl0IH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2NvbW1hbmREaXNwYXRjaC9ldmVudE1hbmFnZW1lbnQnOwppbXBvcnQgeyB0YWJsZURhdGEgYXMgcm9hZFNlY3Rpb25JbmZvSW50ZXIgfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvaW5mb01nbXRQYXRyb2xzUmVzY3Vlcy9yb2FkU2VjdGlvbkluZm8nOwppbXBvcnQgeyB0YWJsZURhdGEgYXMgYWxvbmdSb3V0ZUluZm9JbnRlciB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL2Fsb25nUm91dGVJbmZvJzsKaW1wb3J0IHsgdGFibGVEYXRhIGFzIHRlYW1EYXRhIH0gZnJvbSAnQC9hcGkvcGF0cm9sQW5kUmVzY3VlL2luZm9NZ210UGF0cm9sc1Jlc2N1ZXMvcGF0cm9sQW5kUmVzY3VlVGVhbXNNZ210JzsKZXhwb3J0IGRlZmF1bHQgewogIG5hbWU6ICdEZXRhaWxQYWdlJywKICBwcm9wczogewogICAgY29tcG9uZW50TmFtZTogewogICAgICBkZWZhdWx0OiAnVGFibGVQYWdlJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9CiAgfSwKICAvLyBjb21wb25lbnRzOiB7IE1pbmVNYXAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgZWRpdFNhdmVMb2FkaW5nOiBmYWxzZSwKICAgICAgcGFnZVR5cGU6ICdlZGl0JywKICAgICAgZGV0YWlsRm9ybToge30sCiAgICAgIHB1YlN1YjogbnVsbCwKICAgICAgZXZlbnRTdGF0dXM6IDAsCiAgICAgIGNvbmZpcm1Mb2FkaW5nOiBmYWxzZSwKICAgICAgcmV2ZXJzZTogdHJ1ZSwKICAgICAgbWFwOiBudWxsLAogICAgICBtYXBMb2FkaW5nOiB0cnVlLAogICAgICBtYXBEZWZhdWx0T3B0aW9uczogewogICAgICAgIGNlbnRlcjogWzEwNi41NTA3LCAyOS41NjQ3XSAvKuWcsOWbvuS4reW/g+eCuSovLAogICAgICAgIHpvb206IDkgLyrlnLDlm77pu5jorqTnvKnmlL7nrYnnuqcqLwogICAgICB9LAogICAgICBldmVudEdyYWRlT3B0aW9uczogWwogICAgICAvL+S6i+S7tuetiee6pwogICAgICB7CiAgICAgICAgbGFiZWw6ICcx57qnJywKICAgICAgICB2YWx1ZTogMQogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICcy57qnJywKICAgICAgICB2YWx1ZTogMgogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICcz57qnJywKICAgICAgICB2YWx1ZTogMwogICAgICB9LCB7CiAgICAgICAgbGFiZWw6ICc057qnJywKICAgICAgICB2YWx1ZTogNAogICAgICB9XSwKICAgICAgbWFya2VyczogW10sCiAgICAgIHJvYWRPcHRpb25zOiBbXSwKICAgICAgYWxvbmdSb3V0ZUluZm9EYXRhOiBbXSwKICAgICAgdGVhbU9wdGlvbnM6IFtdCiAgICB9OwogIH0sCiAgY29tcHV0ZWQ6IHt9LAogIHdhdGNoOiB7CiAgICBjb21wb25lbnROYW1lOiB7CiAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uIGhhbmRsZXIobmV3VmFsKSB7CiAgICAgICAgaWYgKG5ld1ZhbCA9PT0gdGhpcy4kb3B0aW9ucy5uYW1lKSB7CiAgICAgICAgICB0aGlzLm9wZW5QYWdlKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHRoaXMuY2xvc2VQYWdlKCk7CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgfSwKICBtb3VudGVkOiBmdW5jdGlvbiBtb3VudGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKICAgIHRoaXMucHViU3ViID0gUHViU3ViLnN1YnNjcmliZSgnRGV0YWlsUGFnZScsIGZ1bmN0aW9uIChfLCBkYXRhKSB7CiAgICAgIGlmIChkYXRhLmlkKSB7CiAgICAgICAgX3RoaXMuZXZlbnRTdGF0dXMgPSBkYXRhLnN0YXR1czsKICAgICAgICBfdGhpcy5nZXREZXRhaWwoZGF0YS5pZCk7CiAgICAgIH0KICAgICAgX3RoaXMuZ2V0Um9hZE9wdGlvbnMoKTsKICAgIH0pOwogIH0sCiAgbWV0aG9kczogewogICAgZ2V0RGljdGlvbmFyeUJ5Q29kZTogZ2V0RGljdGlvbmFyeUJ5Q29kZSwKICAgIGRpY3Rpb25hcnlFc2NhcGU6IGRpY3Rpb25hcnlFc2NhcGUsCiAgICBjbGlja0VkaXQ6IGZ1bmN0aW9uIGNsaWNrRWRpdCgpIHsKICAgICAgdGhpcy5wYWdlVHlwZSA9IHRoaXMucGFnZVR5cGUgPT09ICdlZGl0JyA/ICdkZXRhaWwnIDogJ2VkaXQnOwogICAgfSwKICAgIGNsaWNrU2F2ZTogZnVuY3Rpb24gY2xpY2tTYXZlKCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkgewogICAgICAgIHZhciBkYXRhLCBfeWllbGQkdGFibGVFZGl0LCBzdGF0ZSwgbWVzc2FnZSwgdmFsdWU7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoX3RoaXMyLmRldGFpbEZvcm0pKTsKICAgICAgICAgICAgICBkZWxldGUgZGF0YS5oYW5kbGVzOwogICAgICAgICAgICAgIGRlbGV0ZSBkYXRhLmNvbXBlbnNhdGlvbkluZm87CiAgICAgICAgICAgICAgaWYgKGRhdGEuc3RhcnRQZWcgJiYgZGF0YS5zdGFydFBlZ0FkZCkgewogICAgICAgICAgICAgICAgZGF0YS5wZWdTVmFsID0gJ2snICsgKGRhdGEuc3RhcnRQZWcgfHwgJycpICsgJysnICsgKGRhdGEuc3RhcnRQZWdBZGQgfHwgJycpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoZGF0YS5lbmRQZWcgJiYgZGF0YS5lbmRQZWdBZGQpIHsKICAgICAgICAgICAgICAgIGRhdGEucGVnRVZhbCA9ICdrJyArIChkYXRhLmVuZFBlZyB8fCAnJykgKyAnKycgKyAoZGF0YS5lbmRQZWdBZGQgfHwgJycpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBfY29udGV4dC5wcmV2ID0gNTsKICAgICAgICAgICAgICBfdGhpczIuZWRpdFNhdmVMb2FkaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gOTsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVFZGl0KGRhdGEpOwogICAgICAgICAgICBjYXNlIDk6CiAgICAgICAgICAgICAgX3lpZWxkJHRhYmxlRWRpdCA9IF9jb250ZXh0LnNlbnQ7CiAgICAgICAgICAgICAgc3RhdGUgPSBfeWllbGQkdGFibGVFZGl0LnN0YXRlOwogICAgICAgICAgICAgIG1lc3NhZ2UgPSBfeWllbGQkdGFibGVFZGl0Lm1lc3NhZ2U7CiAgICAgICAgICAgICAgdmFsdWUgPSBfeWllbGQkdGFibGVFZGl0LnZhbHVlOwogICAgICAgICAgICAgIGlmIChzdGF0ZSkgewogICAgICAgICAgICAgICAgX3RoaXMyLiRtZXNzYWdlLnN1Y2Nlc3MoIlx1N0YxNlx1OEY5MVx1NEZERFx1NUI1OFx1NjIxMFx1NTI5RiIpOwogICAgICAgICAgICAgICAgX3RoaXMyLnBhZ2VUeXBlID0gJ2VkaXQnOwogICAgICAgICAgICAgICAgLy8gdGhpcy5jaGFuZ2VQYWdlKAogICAgICAgICAgICAgICAgLy8gICAnVGFibGVQYWdlJywKICAgICAgICAgICAgICAgIC8vICAgdGhpcy5pZCA/ICdlZGl0JyA6ICdhZGQnCiAgICAgICAgICAgICAgICAvLyApCiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDE0OgogICAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAxNDsKICAgICAgICAgICAgICBfdGhpczIuZWRpdFNhdmVMb2FkaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmZpbmlzaCgxNCk7CiAgICAgICAgICAgIGNhc2UgMTc6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzUsLCAxNCwgMTddXSk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOi3r+auteaVsOaNruafpeivogogICAgZ2V0Um9hZE9wdGlvbnM6IGZ1bmN0aW9uIGdldFJvYWRPcHRpb25zKCkgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMigpIHsKICAgICAgICB2YXIgX3lpZWxkJHJvYWRTZWN0aW9uSW5mLCBfeWllbGQkcm9hZFNlY3Rpb25JbmYyLCByb3dzOwogICAgICAgIHJldHVybiBfcmVnZW5lcmF0b3JSdW50aW1lKCkud3JhcChmdW5jdGlvbiBfY2FsbGVlMiQoX2NvbnRleHQyKSB7CiAgICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDI7CiAgICAgICAgICAgICAgcmV0dXJuIHJvYWRTZWN0aW9uSW5mb0ludGVyKHsKICAgICAgICAgICAgICAgIHBhZ2VCZWFuOiB7CiAgICAgICAgICAgICAgICAgIHBhZ2VTaXplOiAtMQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgX3lpZWxkJHJvYWRTZWN0aW9uSW5mID0gX2NvbnRleHQyLnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiA9IF95aWVsZCRyb2FkU2VjdGlvbkluZi5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkcm9hZFNlY3Rpb25JbmYyID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCRyb2FkU2VjdGlvbkluZjI7CiAgICAgICAgICAgICAgX3RoaXMzLnJvYWRPcHRpb25zID0gcm93cy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICAgICAgICAgIGl0ZW0ucm9hZE5hbWUgPSBpdGVtLm5hbWUgKyAnICcgKyBpdGVtLmNvZGU7CiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTsKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAvLyBpZighdGhpcy5pZCkgewogICAgICAgICAgICAgIC8vICAgdGhpcy4kc2V0KHRoaXMuZGV0YWlsRm9ybSwgJ3JvYWRJZCcsIHRoaXMucm9hZE9wdGlvbnNbMF0uaWQpCiAgICAgICAgICAgICAgLy8gICB0aGlzLnJvYWRDaGFuZ2UodGhpcy5yb2FkT3B0aW9uc1swXS5pZCkKICAgICAgICAgICAgICAvLyB9CiAgICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMik7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOi3r+autemAieaLqeWPmOWMlgogICAgcm9hZENoYW5nZTogZnVuY3Rpb24gcm9hZENoYW5nZSh2YWx1ZSkgewogICAgICB2YXIgX3RoaXM0ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMygpIHsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0MykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX3RoaXM0LmdldFRlYW1EYXRhKHZhbHVlKTsKICAgICAgICAgICAgICAvLyDpgJrov4fot6/mrrXkv6Hmga/ojrflj5bmsr/nur/orr7lpIfkv6Hmga8KICAgICAgICAgICAgICBfdGhpczQuZ2V0QWxvbmdSb3V0ZUluZm8odmFsdWUsIGZ1bmN0aW9uIChkYXRhKSB7CiAgICAgICAgICAgICAgICB2YXIgX3RoaXM0JGRldGFpbEZvcm0gPSBfdGhpczQuZGV0YWlsRm9ybSwKICAgICAgICAgICAgICAgICAgc3RhcnRQYXRyb2xJZCA9IF90aGlzNCRkZXRhaWxGb3JtLnN0YXJ0UGF0cm9sSWQsCiAgICAgICAgICAgICAgICAgIGVuZFBhdHJvbElkID0gX3RoaXM0JGRldGFpbEZvcm0uZW5kUGF0cm9sSWQ7CgogICAgICAgICAgICAgICAgLyoNCiAgICAgICAgICAgICAgICAqIOW3oeajgOW8gOWni++8jOe7k+adn+ermQ0KICAgICAgICAgICAgICAgICogKi8KICAgICAgICAgICAgICAgIGlmIChzdGFydFBhdHJvbElkKSB7CiAgICAgICAgICAgICAgICAgIGlmICghZGF0YS5zb21lKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkuaWQgPT09IHN0YXJ0UGF0cm9sSWQ7CiAgICAgICAgICAgICAgICAgIH0pKSB7CiAgICAgICAgICAgICAgICAgICAgX3RoaXM0LmRldGFpbEZvcm0uc3RhcnRQYXRyb2xJZCA9ICcnOwogICAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24gKF8pIHsKICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfdGhpczQuJG1lc3NhZ2Uud2FybmluZygn6K+36YeN5paw6YCJ5oup5beh5qOA5byA5aeL56uZLi4nKTsKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGVuZFBhdHJvbElkKSB7CiAgICAgICAgICAgICAgICAgIGlmICghZGF0YS5zb21lKGZ1bmN0aW9uIChpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkuaWQgPT09IGVuZFBhdHJvbElkOwogICAgICAgICAgICAgICAgICB9KSkgewogICAgICAgICAgICAgICAgICAgIF90aGlzNC5kZXRhaWxGb3JtLmVuZFBhdHJvbElkID0gJyc7CiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoXykgewogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF90aGlzNC4kbWVzc2FnZS53YXJuaW5nKCfor7fph43mlrDpgInmi6nlt6Hmo4Dnu5PmnZ/nq5kuLicpOwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMyk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOmAmui/h+i3r+auteS/oeaBr+iOt+WPluayv+e6v+iuvuWkh+S/oeaBrwogICAgZ2V0QWxvbmdSb3V0ZUluZm86IGZ1bmN0aW9uIGdldEFsb25nUm91dGVJbmZvKHZhbHVlLCBjYWxsYmFjaykgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNCgpIHsKICAgICAgICB2YXIgX3dpcGVEYXRhLCBfeWllbGQkYWxvbmdSb3V0ZUluZm8sIF95aWVsZCRhbG9uZ1JvdXRlSW5mbzIsIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF93aXBlRGF0YSA9IGZ1bmN0aW9uIF93aXBlRGF0YSgpIHsKICAgICAgICAgICAgICAgIF90aGlzNS5hbG9uZ1JvdXRlSW5mb0RhdGEgPSBbXTsKICAgICAgICAgICAgICAgIGNhbGxiYWNrICYmIGNhbGxiYWNrKF90aGlzNS5hbG9uZ1JvdXRlSW5mb0RhdGEpOwogICAgICAgICAgICAgIH07CiAgICAgICAgICAgICAgX2NvbnRleHQ0LnByZXYgPSAxOwogICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gNDsKICAgICAgICAgICAgICByZXR1cm4gYWxvbmdSb3V0ZUluZm9JbnRlcihyZWZpbmVSZXF1ZXN0Qm9keSh7CiAgICAgICAgICAgICAgICBxdWVyeXM6IFt7CiAgICAgICAgICAgICAgICAgIG9wZXJhdGlvbjogJ0lOJywKICAgICAgICAgICAgICAgICAgcHJvcGVydHk6ICdyb2FkX3NlZ21lbnRfaWRfJywKICAgICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlCiAgICAgICAgICAgICAgICB9XQogICAgICAgICAgICAgIH0pLCAnYWRkRWRpdCcpOwogICAgICAgICAgICBjYXNlIDQ6CiAgICAgICAgICAgICAgX3lpZWxkJGFsb25nUm91dGVJbmZvID0gX2NvbnRleHQ0LnNlbnQ7CiAgICAgICAgICAgICAgX3lpZWxkJGFsb25nUm91dGVJbmZvMiA9IF95aWVsZCRhbG9uZ1JvdXRlSW5mby5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkYWxvbmdSb3V0ZUluZm8yID09PSB2b2lkIDAgPyBbXSA6IF95aWVsZCRhbG9uZ1JvdXRlSW5mbzI7CiAgICAgICAgICAgICAgY2FsbGJhY2sgJiYgY2FsbGJhY2socm93cyk7CiAgICAgICAgICAgICAgX3RoaXM1LmFsb25nUm91dGVJbmZvRGF0YSA9IHJvd3M7CiAgICAgICAgICAgICAgX2NvbnRleHQ0Lm5leHQgPSAxNDsKICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAxMToKICAgICAgICAgICAgICBfY29udGV4dDQucHJldiA9IDExOwogICAgICAgICAgICAgIF9jb250ZXh0NC50MCA9IF9jb250ZXh0NFsiY2F0Y2giXSgxKTsKICAgICAgICAgICAgICAvLyDkuI3kuLror7fmsYLov4flv6vnu5PmnZ/nmoTmg4XlhrXkuIvvvIzph43nva4KICAgICAgICAgICAgICBpZiAoX2NvbnRleHQ0LnQwLm1lc3NhZ2UgIT09ICdjYW5jZWxlZCcpIF93aXBlRGF0YSgpOwogICAgICAgICAgICBjYXNlIDE0OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU0LCBudWxsLCBbWzEsIDExXV0pOwogICAgICB9KSkoKTsKICAgIH0sCiAgICBzaXRlQ2hhbmdlOiBmdW5jdGlvbiBzaXRlQ2hhbmdlKGUsIHR5cGUpIHsKICAgICAgdmFyIHNpdGVJbmZvID0gdGhpcy5hbG9uZ1JvdXRlSW5mb0RhdGEuZmluZChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLmlkID09PSBlOwogICAgICB9KTsKICAgICAgdGhpcy5kZXRhaWxGb3JtWyIiLmNvbmNhdCh0eXBlLCAiTmFtZSIpXSA9IHNpdGVJbmZvLm5hbWU7CiAgICB9LAogICAgLy8g6YCa6L+H6Lev5q615L+h5oGv6I635Y+W5beh5p+l5pWR5o+06Zif5LyN5L+h5oGvCiAgICBnZXRUZWFtRGF0YTogZnVuY3Rpb24gZ2V0VGVhbURhdGEodmFsdWUpIHsKICAgICAgdmFyIF90aGlzNiA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTUoKSB7CiAgICAgICAgdmFyIF95aWVsZCR0ZWFtRGF0YSwgX3lpZWxkJHRlYW1EYXRhJHJvd3MsIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1JChfY29udGV4dDUpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NS5wcmV2ID0gX2NvbnRleHQ1Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0NS5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gdGVhbURhdGEocmVmaW5lUmVxdWVzdEJvZHkoewogICAgICAgICAgICAgICAgcXVlcnlzOiBbewogICAgICAgICAgICAgICAgICBvcGVyYXRpb246ICdJTicsCiAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnci5pZF8nLAogICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUKICAgICAgICAgICAgICAgIH1dCiAgICAgICAgICAgICAgfSksICdhZGRFZGl0Jyk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkdGVhbURhdGEgPSBfY29udGV4dDUuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkdGVhbURhdGEkcm93cyA9IF95aWVsZCR0ZWFtRGF0YS5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkdGVhbURhdGEkcm93cyA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkdGVhbURhdGEkcm93czsKICAgICAgICAgICAgICBfdGhpczYudGVhbU9wdGlvbnMgPSByb3dzOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTUpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICAvLyDpmYTku7bpooTop4hsaXN0CiAgICBnZXRGaWxlUHJldmlld1VybExpc3Q6IGZ1bmN0aW9uIGdldEZpbGVQcmV2aWV3VXJsTGlzdChmaWxlcykgewogICAgICB2YXIgc3JjTGlzdCA9IGZpbGVzLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLmZpbGVQcmV2aWV3VXJsOwogICAgICB9KTsKICAgICAgcmV0dXJuIHNyY0xpc3Q7CiAgICB9LAogICAgZXZlbnRDb25maXJtOiBmdW5jdGlvbiAoX2V2ZW50Q29uZmlybSkgewogICAgICBmdW5jdGlvbiBldmVudENvbmZpcm0oKSB7CiAgICAgICAgcmV0dXJuIF9ldmVudENvbmZpcm0uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgfQogICAgICBldmVudENvbmZpcm0udG9TdHJpbmcgPSBmdW5jdGlvbiAoKSB7CiAgICAgICAgcmV0dXJuIF9ldmVudENvbmZpcm0udG9TdHJpbmcoKTsKICAgICAgfTsKICAgICAgcmV0dXJuIGV2ZW50Q29uZmlybTsKICAgIH0oZnVuY3Rpb24gKCkgewogICAgICB2YXIgX3RoaXM3ID0gdGhpczsKICAgICAgdGhpcy4kY29uZmlybSgn56Gu5a6a5LqL5Lu25qC45a6e56Gu6K6k5ZCX77yfJywgJ+aPkOekuicsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ+ehruiupCcsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogJ+WPlua2iCcsCiAgICAgICAgdHlwZTogJ3dhcm5pbmcnCiAgICAgIH0pLnRoZW4oLyojX19QVVJFX18qL19hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNigpIHsKICAgICAgICB2YXIgX3lpZWxkJGV2ZW50Q29uZmlybSwgc3RhdGU7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU2JChfY29udGV4dDYpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Ni5wcmV2ID0gX2NvbnRleHQ2Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF90aGlzNy5jb25maXJtTG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSAzOwogICAgICAgICAgICAgIHJldHVybiBldmVudENvbmZpcm0oX3RoaXM3LmRldGFpbEZvcm0uaWQpOwogICAgICAgICAgICBjYXNlIDM6CiAgICAgICAgICAgICAgX3lpZWxkJGV2ZW50Q29uZmlybSA9IF9jb250ZXh0Ni5zZW50OwogICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJGV2ZW50Q29uZmlybS5zdGF0ZTsKICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgIF90aGlzNy4kbWVzc2FnZS5zdWNjZXNzKCJcdTRFOEJcdTRFRjZcdTc4NkVcdThCQTRcdTYyMTBcdTUyOUYiKTsKICAgICAgICAgICAgICAgIF90aGlzNy5jb25maXJtTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgX3RoaXM3LmNoYW5nZVBhZ2UoJ1RhYmxlUGFnZScsICdhZGQnKTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGNhc2UgNjoKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ2LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNik7CiAgICAgIH0pKSk7CiAgICB9KSwKICAgIC8vIOaJk+W8gOmhtemdouaJp+ihjAogICAgb3BlblBhZ2U6IGZ1bmN0aW9uIG9wZW5QYWdlKCkgewogICAgICAvLyB0aGlzLiRyZWZzLm1pbmVNYXA/Lm1hcD8ucmVzaXplKCkKICAgIH0sCiAgICBjaGFuZ2VQYWdlOiBmdW5jdGlvbiBjaGFuZ2VQYWdlKCkgewogICAgICB2YXIgcGFnZU5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICcnOwogICAgICB2YXIgdHlwZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7CiAgICAgIGlmICghcGFnZU5hbWUpIHJldHVybjsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlUGFnZScsIHBhZ2VOYW1lLCBmdW5jdGlvbiAoXykgewogICAgICAgIFB1YlN1Yi5wdWJsaXNoKHBhZ2VOYW1lLCB7CiAgICAgICAgICB0eXBlOiB0eXBlCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWFs+mXremhtemdouaJp+ihjAogICAgY2xvc2VQYWdlOiBmdW5jdGlvbiBjbG9zZVBhZ2UoKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwogICAgICB2YXIgcHViU3ViID0gdGhpcy5wdWJTdWIsCiAgICAgICAgYWRkRWRpdFJ1bGVzID0gdGhpcy5hZGRFZGl0UnVsZXMsCiAgICAgICAgcm9hZE9wdGlvbnMgPSB0aGlzLnJvYWRPcHRpb25zOwogICAgICAvLyDph43nva7nu4Tku7bmlbDmja4KICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLiRkYXRhLCB0aGlzLiRvcHRpb25zLmRhdGEuY2FsbCh0aGlzKSwgewogICAgICAgIHB1YlN1YjogcHViU3ViLAogICAgICAgIHJvYWRPcHRpb25zOiByb2FkT3B0aW9ucwogICAgICB9KTsKICAgICAgLy8gdGhpcy4kcmVmcy5taW5lTWFwPy5yZXNldE1hcChfID0+IHRoaXMubWFwTG9hZGluZyA9IGZhbHNlKSAvLyDph43nva7lnLDlm74KICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKF8pIHsKICAgICAgICBfdGhpczguJHJlZnMuZm9ybUluZm8uJGVsLnNjcm9sbFRvcCA9IDA7CiAgICAgIH0pOwogICAgfSwKICAgIG1hcExvYWQ6IGZ1bmN0aW9uIG1hcExvYWQoKSB7CiAgICAgIHRoaXMubWFwTG9hZGluZyA9IGZhbHNlOwogICAgfSwKICAgIC8vIOiHquWumuS5ieagh+iusOeCuQogICAgY3VzdG9tVGFnUG9pbnRzOiBmdW5jdGlvbiBjdXN0b21UYWdQb2ludHMoKSB7CiAgICAgIHZhciBfdGhpcyRtYXJrZXJzOwogICAgICB2YXIgbG5nbGF0ID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiBbXTsKICAgICAgKF90aGlzJG1hcmtlcnMgPSB0aGlzLm1hcmtlcnNbdGhpcy5tYXJrZXJzLmxlbmd0aCAtIDFdKSA9PT0gbnVsbCB8fCBfdGhpcyRtYXJrZXJzID09PSB2b2lkIDAgfHwgX3RoaXMkbWFya2Vycy5yZW1vdmUoKTsKICAgICAgLy8g6Ieq5a6a5LmJ54K55qCH6K6w55qE5YaF6YOoRE9N5YWD57SgCiAgICAgIHZhciBlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICBlbC5jbGFzc05hbWUgPSAnbWFya2VyLXRpcCc7CiAgICAgIC8vIE1hcmtlcuaehOmAoOWHveaVsOaOpeaUtuS4pOS4quWPguaVsO+8jOS4gOS4quS4uuiHquWumuS5ieeahERPTeWFg+e0oO+8jOS4gOS4quaYr09iamVjdOWPguaVsO+8jOWFtuS4reWMheaLrOWBj+enu+mHj+etiQogICAgICB2YXIgbWFya2VyID0gbmV3IHRoaXMuJHJlZnMubWluZU1hcC5taW5lTWFwLk1hcmtlcihlbCwgewogICAgICAgIGFuY2hvcjogJ2NlbnRlcicsCiAgICAgICAgb2Zmc2V0OiBbMCwgMF0gLy8gb2Zmc2V05Y+C5pWw5Li65qCH5rOo54K555u45a+55LqO5YW25bem5LiK6KeS5YGP56e75YOP57Sg5aSn5bCPCiAgICAgIH0pCiAgICAgIC8vIOiwg+eUqHNldExuZ0xhdOaWueazleaMh+Wumk1hcmtlcueahOWdkOagh+S9jee9rgogICAgICAuc2V0TG5nTGF0KGxuZ2xhdCkuYWRkVG8odGhpcy4kcmVmcy5taW5lTWFwLm1hcCk7CiAgICAgIHRoaXMubWFya2Vycy5wdXNoKG1hcmtlcik7CiAgICB9LAogICAgLy8g6I635Y+W6K+m5oOFCiAgICBnZXREZXRhaWw6IGZ1bmN0aW9uIGdldERldGFpbChpZCkgewogICAgICB2YXIgX3RoaXM5ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNygpIHsKICAgICAgICB2YXIgX3RoaXM5JGRldGFpbEZvcm0sIF90aGlzOSRkZXRhaWxGb3JtJHBlZywgcGVnU1ZhbCwgX3RoaXM5JGRldGFpbEZvcm0kcGVnMiwgcGVnRVZhbCwgc3RhcnRQZWdBcnIsIGVuZFBlZ0FyciwgX3RoaXM5JGRldGFpbEZvcm0yLCBsbmcsIGxhdDsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTckKF9jb250ZXh0NykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ3LnByZXYgPSBfY29udGV4dDcubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiB0YWJsZURldGFpbChpZCk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfdGhpczkuZGV0YWlsRm9ybSA9IF9jb250ZXh0Ny5zZW50OwogICAgICAgICAgICAgIF90aGlzOSRkZXRhaWxGb3JtID0gX3RoaXM5LmRldGFpbEZvcm0sIF90aGlzOSRkZXRhaWxGb3JtJHBlZyA9IF90aGlzOSRkZXRhaWxGb3JtLnBlZ1NWYWwsIHBlZ1NWYWwgPSBfdGhpczkkZGV0YWlsRm9ybSRwZWcgPT09IHZvaWQgMCA/ICcnIDogX3RoaXM5JGRldGFpbEZvcm0kcGVnLCBfdGhpczkkZGV0YWlsRm9ybSRwZWcyID0gX3RoaXM5JGRldGFpbEZvcm0ucGVnRVZhbCwgcGVnRVZhbCA9IF90aGlzOSRkZXRhaWxGb3JtJHBlZzIgPT09IHZvaWQgMCA/ICcnIDogX3RoaXM5JGRldGFpbEZvcm0kcGVnMjsKICAgICAgICAgICAgICBpZiAocGVnU1ZhbCkgewogICAgICAgICAgICAgICAgc3RhcnRQZWdBcnIgPSBwZWdTVmFsLnNwbGl0KCcrJyk7CiAgICAgICAgICAgICAgICBfdGhpczkuZGV0YWlsRm9ybS5zdGFydFBlZyA9IHN0YXJ0UGVnQXJyWzBdLnNsaWNlKDEpOwogICAgICAgICAgICAgICAgX3RoaXM5LmRldGFpbEZvcm0uc3RhcnRQZWdBZGQgPSBzdGFydFBlZ0FyclsxXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKHBlZ0VWYWwpIHsKICAgICAgICAgICAgICAgIGVuZFBlZ0FyciA9IHBlZ0VWYWwuc3BsaXQoJysnKTsKICAgICAgICAgICAgICAgIF90aGlzOS5kZXRhaWxGb3JtLmVuZFBlZyA9IGVuZFBlZ0FyclswXS5zbGljZSgxKTsKICAgICAgICAgICAgICAgIF90aGlzOS5kZXRhaWxGb3JtLmVuZFBlZ0FkZCA9IGVuZFBlZ0FyclsxXTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgY29uc29sZS5sb2coX3RoaXM5LmRldGFpbEZvcm0pOwogICAgICAgICAgICAgIF90aGlzOS5yb2FkQ2hhbmdlKF90aGlzOS5kZXRhaWxGb3JtLnJvYWRJZCk7CiAgICAgICAgICAgICAgX3RoaXM5JGRldGFpbEZvcm0yID0gX3RoaXM5LmRldGFpbEZvcm0sIGxuZyA9IF90aGlzOSRkZXRhaWxGb3JtMi5sbmcsIGxhdCA9IF90aGlzOSRkZXRhaWxGb3JtMi5sYXQ7IC8vIGlmIChsbmcgJiYgbGF0KSB7CiAgICAgICAgICAgICAgLy8gICB0aGlzLiRuZXh0VGljayhfID0+IHsKICAgICAgICAgICAgICAvLyAgICAgdGhpcy5jdXN0b21UYWdQb2ludHMoW2xuZywgbGF0XSkKICAgICAgICAgICAgICAvLyAgICAgdGhpcy4kcmVmcy5taW5lTWFwLm1hcC5zZXRDZW50ZXIoW2xuZywgbGF0XSkKICAgICAgICAgICAgICAvLyAgICAgdGhpcy4kcmVmcy5taW5lTWFwLm1hcC5wYW5UbyhbbG5nLCBsYXRdLCB7CiAgICAgICAgICAgICAgLy8gICAgICAgZHVyYXRpb246IDYwMDAsIC8vIOWKqOeUu+i/h+a4oeaXtumXtAogICAgICAgICAgICAgIC8vICAgICAgIHpvb206IDEwIC8vIOaWsOeahOe8qeaUvue6p+WIqwogICAgICAgICAgICAgIC8vICAgICB9KQogICAgICAgICAgICAgIC8vICAgfSkKICAgICAgICAgICAgICAvLyB9CiAgICAgICAgICAgIGNhc2UgOToKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQ3LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlNyk7CiAgICAgIH0pKSgpOwogICAgfQogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIC8vIOWcqOe7hOS7tumUgOavgeS5i+WJjSDmuIXpmaTorqLpmIXmtojmga8KICAgIFB1YlN1Yi51bnN1YnNjcmliZSh0aGlzLnB1YlN1Yik7CiAgfQp9Ow=="},null]}