{"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\\RescueSiteMgmt\\components\\EditAddPage\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\views\\patrolAndRescue\\infoMgmtPatrolsRescues\\RescueSiteMgmt\\components\\EditAddPage\\index.vue","mtime":1752055336186},{"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:aW1wb3J0IF9vYmplY3RTcHJlYWQgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9vYmplY3RTcHJlYWQyLmpzIjsKaW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmluZC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5Lm1hcC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnB1c2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5mdW5jdGlvbi5uYW1lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IuY29uc3RydWN0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5maW5kLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuaXRlcmF0b3IubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3Qua2V5cy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC50by1zdHJpbmcuanMiOwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwovLwoKaW1wb3J0IFB1YlN1YiBmcm9tICdwdWJzdWItanMnOwppbXBvcnQgeyBnZXRUcmVlLCB0YWJsZUFkZCwgdGFibGVEZXRhaWwsIHRhYmxlRWRpdCB9IGZyb20gJ0AvYXBpL3BhdHJvbEFuZFJlc2N1ZS9pbmZvTWdtdFBhdHJvbHNSZXNjdWVzL3Jlc2N1ZVNpdGVNZ210JzsKaW1wb3J0IHsgZ2V0RGljdGlvbmFyeUJ5Q29kZSB9IGZyb20gJ0AvdXRpbHMvZGljdGlvbmFyeSc7CmltcG9ydCB7IGxuZ0FuZExhdFRvUGllIH0gZnJvbSAnQC91dGlscy9wb2ludENvbnZlcnNpb24nOwppbXBvcnQgUm9hZENob2ljZURpYWxvZyBmcm9tICcuL2NvbXBvbmVudHMvUm9hZENob2ljZURpYWxvZyc7CmltcG9ydCBNaW5lTWFwIGZyb20gJ0AvY29tcG9uZW50cy9NaW5lTWFwL2luZGV4LnZ1ZSc7CmltcG9ydCB7IHJlZmluZVJlcXVlc3RCb2R5IH0gZnJvbSAnQC91dGlscy9yZXF1ZXN0V3JhcHBlcnMnOwppbXBvcnQgeyB0YWJsZURhdGEgYXMgcm9hZFNlY3Rpb25JbmZvSW50ZXIgfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvaW5mb01nbXRQYXRyb2xzUmVzY3Vlcy9yb2FkU2VjdGlvbkluZm8nOwppbXBvcnQgeyB0YWJsZURhdGEgYXMgdGVhbURhdGEgfSBmcm9tICdAL2FwaS9wYXRyb2xBbmRSZXNjdWUvaW5mb01nbXRQYXRyb2xzUmVzY3Vlcy9wYXRyb2xBbmRSZXNjdWVUZWFtc01nbXQnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogJ0VkaXRBZGRQYWdlJywKICBjb21wb25lbnRzOiB7CiAgICBNaW5lTWFwOiBNaW5lTWFwLAogICAgUm9hZENob2ljZURpYWxvZzogUm9hZENob2ljZURpYWxvZwogIH0sCiAgcHJvcHM6IHsKICAgIGNvbXBvbmVudE5hbWU6IHsKICAgICAgZGVmYXVsdDogJ0VkaXRBZGRQYWdlJywKICAgICAgdHlwZTogU3RyaW5nCiAgICB9CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgc3RhdGlvblR5cGVMaXN0OiBbewogICAgICAgIHZhbHVlOiAxLAogICAgICAgIG5hbWU6ICfluLjpqbvngrknCiAgICAgIH0sIHsKICAgICAgICB2YWx1ZTogMiwKICAgICAgICBuYW1lOiAn5Li05pe26am754K5JwogICAgICB9XSwKICAgICAgcmVzb3VyY2VMaXN0OiBbewogICAgICAgIHZhbHVlOiAyLAogICAgICAgIG5hbWU6ICfmlZHmj7TpqbvngrknCiAgICAgIH1dLAogICAgICBhZGRFZGl0Rm9ybTogewogICAgICAgIHN0YXRpb25UeXBlOiAxLAogICAgICAgIHR5cGU6IDIsCiAgICAgICAgcmVzb3VyY2U6ICcxJywKICAgICAgICBsbmc6ICcnLAogICAgICAgIGxhdDogJycsCiAgICAgICAgZGlyZWN0aW9uOiAnMScsCiAgICAgICAgcm9hZE5hbWU6ICcnCiAgICAgIH0sCiAgICAgIGFkZEVkaXRSdWxlczogewogICAgICAgIG5hbWU6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfmlZHmj7TngrnlkI3np7DkuI3og73kuLrnqbonLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddCiAgICAgICAgfV0sCiAgICAgICAgcm9hZElkOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5omA5bGe6Lev5q615LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6IFsnY2hhbmdlJywgJ2JsdXInXQogICAgICAgIH1dLAogICAgICAgIHRlYW1JZDogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+aJgOWxnuW3oeafpeaVkeaPtOmYn+S8jeS4jeiDveS4uuepuicsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICB9XSwKICAgICAgICB0eXBlOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn5Zy65omA57G75Z6LJywKICAgICAgICAgIHRyaWdnZXI6IFsnY2hhbmdlJywgJ2JsdXInXQogICAgICAgIH1dLAogICAgICAgIHBlZzogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+eCueS9jeahqeWPtycsCiAgICAgICAgICB0cmlnZ2VyOiBbJ2NoYW5nZScsICdibHVyJ10KICAgICAgICB9XSwKICAgICAgICBwZWdBZGQ6IFt7CiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSwKICAgICAgICAgIG1lc3NhZ2U6ICfngrnkvY3moanlj7fpmYTliqAnLAogICAgICAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddCiAgICAgICAgfV0sCiAgICAgICAgcGVnVmFsOiBbewogICAgICAgICAgcmVxdWlyZWQ6IHRydWUsCiAgICAgICAgICBtZXNzYWdlOiAn54K55L2N5qGp5Y+35YWo5YC85LiN6IO95Li656m6JywKICAgICAgICAgIHRyaWdnZXI6IFsnY2hhbmdlJywgJ2JsdXInXQogICAgICAgIH1dCiAgICAgICAgLy8gcmVzY3VzVGVsOiBbCiAgICAgICAgLy8gICB7CiAgICAgICAgLy8gICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgIC8vICAgICBtZXNzYWdlOiAn5pWR5o+05pyN5Yqh55S16K+d5LiN6IO95Li656m6JywKICAgICAgICAvLyAgICAgdHJpZ2dlcjogWydjaGFuZ2UnLCAnYmx1ciddCiAgICAgICAgLy8gICB9LAogICAgICAgIC8vICAgewogICAgICAgIC8vICAgICBwYXR0ZXJuOiAvXGR7M30tXGR7OH18XGR7NH0tXGR7N30vLCBtZXNzYWdlOiAn5pWR5o+05pyN5Yqh55S16K+d6L6T5YWl5qC85byP5pyJ6K+vJywgdHJpZ2dlcjogJ2JsdXInCiAgICAgICAgLy8gICB9CiAgICAgICAgLy8gXQogICAgICB9LAogICAgICBzYXZlTG9hZGluZzogZmFsc2UsCiAgICAgIC8vIOS4iuS8oGxvYWRpbmcKICAgICAgaWQ6ICcnLAogICAgICAvLyBpZOagh+ivhuespgogICAgICB3aGV0aGVyVG9DYW5jZWw6IGZhbHNlLAogICAgICByb2FkQ2hvaWNlRGlhbG9nOiBmYWxzZSwKICAgICAgLy8g5piv5ZCm5bGV56S66YCJ5oup6Lev5q615by55bGCCiAgICAgIHJvdXRlckRhdGE6IFtdLAogICAgICAvLyDot6/nur/mlbDmja4KICAgICAgcHViU3ViOiBudWxsLAogICAgICAvLyBtYXBMb2FkaW5nOiB0cnVlLCAvLyDlnLDlm77liqDovb1sb2FkaW5nCiAgICAgIG1hcDogbnVsbCwKICAgICAgbWFwRGVmYXVsdE9wdGlvbnM6IHsKICAgICAgICBjZW50ZXI6IFsxMDYuNTUwNywgMjkuNTY0N10gLyrlnLDlm77kuK3lv4PngrkqLywKICAgICAgICB6b29tOiA5IC8q5Zyw5Zu+6buY6K6k57yp5pS+562J57qnKi8KICAgICAgfSwKICAgICAgbWFya2VyczogW10sCiAgICAgIHRlYW1UcmVlRGF0YTogW10sCiAgICAgIC8vIOaVkeaPtOmYn+S8jee7hOe7h+agkQogICAgICBtb25pdG9yVHJlZURhdGE6IFtdLAogICAgICAvLyDnm5HmjqfkuK3lv4Pnu4Tnu4fmoJEKICAgICAgcm9hZE9wdGlvbnM6IFtdLAogICAgICB0ZWFtT3B0aW9uczogW10KICAgIH07CiAgfSwKICB3YXRjaDogewogICAgY29tcG9uZW50TmFtZTogewogICAgICBoYW5kbGVyOiBmdW5jdGlvbiBoYW5kbGVyKG5ld1ZhbCkgewogICAgICAgIGlmIChuZXdWYWwgPT09IHRoaXMuJG9wdGlvbnMubmFtZSkgewogICAgICAgICAgdGhpcy5vcGVuUGFnZSgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICB0aGlzLmNsb3NlUGFnZSgpOwogICAgICAgIH0KICAgICAgfQogICAgfQogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHRoaXMuZ2V0T3JnVHJlZURhdGEoKTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB2YXIgX3RoaXMgPSB0aGlzOwogICAgdGhpcy5wdWJTdWIgPSBQdWJTdWIuc3Vic2NyaWJlKCdFZGl0QWRkUGFnZScsIGZ1bmN0aW9uIChfLCBkYXRhKSB7CiAgICAgIGlmIChkYXRhLnJvYWROYW1lICE9PSAnJykgewogICAgICAgIF90aGlzLmFkZEVkaXRGb3JtLnJvYWROYW1lID0gKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5yb2FkTmFtZSkgfHwgJyc7CiAgICAgICAgX3RoaXMuYWRkRWRpdEZvcm0ucm9hZElkID0gKGRhdGEgPT09IG51bGwgfHwgZGF0YSA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGF0YS5jYXRhbG9nSWQpIHx8ICcnOwogICAgICAgIF90aGlzLmFkZEVkaXRGb3JtLnJvYWRGdWxsSWQgPSAoZGF0YSA9PT0gbnVsbCB8fCBkYXRhID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkYXRhLnBhdGgpIHx8ICcnOwogICAgICB9CiAgICAgIGlmIChkYXRhLmlkKSB7CiAgICAgICAgX3RoaXMuaWQgPSBkYXRhLmlkOwogICAgICAgIF90aGlzLmdldERldGFpbChkYXRhLmlkKTsKICAgICAgfSBlbHNlIHt9CiAgICAgIGlmIChkYXRhLmNsZWFyRm9ybSkgewogICAgICAgIF90aGlzLnJlc2V0Rm9ybURhdGEoZGF0YSk7IC8vIOaWsOWinuaXtumHjee9ruihqOWNlQogICAgICB9IGVsc2UgaWYgKGRhdGEuaWQpIHsKICAgICAgICBfdGhpcy5pZCA9IGRhdGEuaWQ7CiAgICAgICAgX3RoaXMuZ2V0RGV0YWlsKGRhdGEuaWQpOwogICAgICB9CiAgICAgIF90aGlzLmdldFJvYWREYXRhKCk7CiAgICB9KTsKICB9LAogIG1ldGhvZHM6IHsKICAgIC8vIOmHjee9ruihqOWNleaVsOaNrgogICAgcmVzZXRGb3JtRGF0YTogZnVuY3Rpb24gcmVzZXRGb3JtRGF0YSh0cmVlRGF0YSkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKICAgICAgdGhpcy5hZGRFZGl0Rm9ybSA9IHsKICAgICAgICBzdGF0aW9uVHlwZTogMSwKICAgICAgICB0eXBlOiAyLAogICAgICAgIGxuZzogJycsCiAgICAgICAgbGF0OiAnJywKICAgICAgICBkaXJlY3Rpb246ICcxJywKICAgICAgICByb2FkTmFtZTogdHJlZURhdGEucm9hZE5hbWUgfHwgJycsCiAgICAgICAgcm9hZElkOiB0cmVlRGF0YS5jYXRhbG9nSWQgfHwgJycsCiAgICAgICAgcm9hZEZ1bGxJZDogdHJlZURhdGEucGF0aCB8fCAnJywKICAgICAgICBwZWc6ICcnLAogICAgICAgIHBlZ0FkZDogJycKICAgICAgICAvLyDlhbbku5blrZfmrrXliJ3lp4vlgLwuLi4KICAgICAgfTsKICAgICAgdGhpcy5pZCA9ICcnOyAvLyDmuIXnqbpJRAogICAgICB0aGlzLiRuZXh0VGljayhmdW5jdGlvbiAoKSB7CiAgICAgICAgX3RoaXMyLiRyZWZzLmFkZEVkaXRGb3JtLmNsZWFyVmFsaWRhdGUoKTsgLy8g5riF6Zmk6KGo5Y2V6aqM6K+B54q25oCBCiAgICAgIH0pOwogICAgfSwKICAgIGdldERpY3Rpb25hcnlCeUNvZGU6IGdldERpY3Rpb25hcnlCeUNvZGUsCiAgICAvLyDmoLnmja7nu4/nuqzluqbovazmoanlj7flhajlgLwKICAgIHRvUGlsZTogZnVuY3Rpb24gdG9QaWxlKCkgewogICAgICB2YXIgZGF0YSA9IHsKICAgICAgICBsb246IDEwNi4zNDA0MjgxMjU0NjQ4MywKICAgICAgICBsYXQ6IDI5LjY2NTIzODIyMjYxMTExLAogICAgICAgIHBvaW50VHlwZTogJzAyJywKICAgICAgICByb3V0ZUNvZGU6ICdHOTMnLAogICAgICAgIHVwRG93bjogJzInCiAgICAgIH07CiAgICAgIGxuZ0FuZExhdFRvUGllKGRhdGEpOwogICAgfSwKICAgIC8v6I635Y+W5omA5Zyo6Lev5q615YiX6KGo5pWw5o2uCiAgICBnZXRSb2FkRGF0YTogZnVuY3Rpb24gZ2V0Um9hZERhdGEoKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwogICAgICByZXR1cm4gX2FzeW5jVG9HZW5lcmF0b3IoLyojX19QVVJFX18qL19yZWdlbmVyYXRvclJ1bnRpbWUoKS5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUoKSB7CiAgICAgICAgdmFyIF95aWVsZCRyb2FkU2VjdGlvbkluZiwgX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiwgcm93czsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gcm9hZFNlY3Rpb25JbmZvSW50ZXIoewogICAgICAgICAgICAgICAgcGFnZUJlYW46IHsKICAgICAgICAgICAgICAgICAgcGFnZVNpemU6IC0xCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkcm9hZFNlY3Rpb25JbmYgPSBfY29udGV4dC5zZW50OwogICAgICAgICAgICAgIF95aWVsZCRyb2FkU2VjdGlvbkluZjIgPSBfeWllbGQkcm9hZFNlY3Rpb25JbmYucm93czsKICAgICAgICAgICAgICByb3dzID0gX3lpZWxkJHJvYWRTZWN0aW9uSW5mMiA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkcm9hZFNlY3Rpb25JbmYyOwogICAgICAgICAgICAgIF90aGlzMy5yb2FkT3B0aW9ucyA9IHJvd3MubWFwKGZ1bmN0aW9uIChpdGVtKSB7CiAgICAgICAgICAgICAgICBpdGVtLnJvYWROYW1lID0gaXRlbS5uYW1lICsgJyAnICsgaXRlbS5jb2RlOwogICAgICAgICAgICAgICAgcmV0dXJuIGl0ZW07CiAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgaWYgKCFfdGhpczMuaWQpIHsKICAgICAgICAgICAgICAgIC8vIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAncm9hZElkJywgdGhpcy5yb2FkT3B0aW9uc1swXS5pZCkKICAgICAgICAgICAgICAgIF90aGlzMy5yb2FkQ2hhbmdlKF90aGlzMy5yb2FkT3B0aW9uc1swXS5pZCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICBjYXNlIDc6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlKTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g6YCa6L+H6Lev5q615L+h5oGv6I635Y+W5beh5p+l5pWR5o+06Zif5LyN5L+h5oGvCiAgICBnZXRUZWFtRGF0YTogZnVuY3Rpb24gZ2V0VGVhbURhdGEodmFsdWUpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CiAgICAgIHJldHVybiBfYXN5bmNUb0dlbmVyYXRvcigvKiNfX1BVUkVfXyovX3JlZ2VuZXJhdG9yUnVudGltZSgpLm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7CiAgICAgICAgdmFyIF95aWVsZCR0ZWFtRGF0YSwgX3lpZWxkJHRlYW1EYXRhJHJvd3MsIHJvd3M7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUyJChfY29udGV4dDIpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Mi5wcmV2ID0gX2NvbnRleHQyLm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gdGVhbURhdGEocmVmaW5lUmVxdWVzdEJvZHkoewogICAgICAgICAgICAgICAgcXVlcnlzOiBbewogICAgICAgICAgICAgICAgICBvcGVyYXRpb246ICdJTicsCiAgICAgICAgICAgICAgICAgIHByb3BlcnR5OiAnci5pZF8nLAogICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsdWUKICAgICAgICAgICAgICAgIH1dCiAgICAgICAgICAgICAgfSksICdhZGRFZGl0Jyk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBfeWllbGQkdGVhbURhdGEgPSBfY29udGV4dDIuc2VudDsKICAgICAgICAgICAgICBfeWllbGQkdGVhbURhdGEkcm93cyA9IF95aWVsZCR0ZWFtRGF0YS5yb3dzOwogICAgICAgICAgICAgIHJvd3MgPSBfeWllbGQkdGVhbURhdGEkcm93cyA9PT0gdm9pZCAwID8gW10gOiBfeWllbGQkdGVhbURhdGEkcm93czsKICAgICAgICAgICAgICBfdGhpczQudGVhbU9wdGlvbnMgPSByb3dzOwogICAgICAgICAgICBjYXNlIDY6CiAgICAgICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7CiAgICAgICAgICB9CiAgICAgICAgfSwgX2NhbGxlZTIpOwogICAgICB9KSkoKTsKICAgIH0sCiAgICByb2FkQ2hhbmdlOiBmdW5jdGlvbiByb2FkQ2hhbmdlKHZhbHVlKSB7CiAgICAgIGlmICh0aGlzLmFkZEVkaXRGb3JtLnRlYW1JZCkgewogICAgICAgIHRoaXMuJHNldCh0aGlzLmFkZEVkaXRGb3JtLCAndGVhbUlkJywgJycpOwogICAgICB9CiAgICAgIGlmICh0aGlzLmFkZEVkaXRGb3JtLnRlYW1OYW1lKSB7CiAgICAgICAgdGhpcy4kc2V0KHRoaXMuYWRkRWRpdEZvcm0sICd0ZWFtTmFtZScsICcnKTsKICAgICAgfQogICAgICB0aGlzLmdldFRlYW1EYXRhKHZhbHVlKTsKICAgIH0sCiAgICAvLyDmiYDlsZ7mlZHmj7TpmJ/kvI3pgInmi6kKICAgIHRlYW1JZENoYW5nZTogZnVuY3Rpb24gdGVhbUlkQ2hhbmdlKHZhbHVlKSB7CiAgICAgIHZhciB0ZWFtSW5mbyA9IHRoaXMudGVhbU9wdGlvbnMuZmluZChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLmlkID09PSB2YWx1ZTsKICAgICAgfSk7CiAgICAgIHRoaXMuYWRkRWRpdEZvcm0udGVhbU5hbWUgPSB0ZWFtSW5mby5uYW1lOwogICAgfSwKICAgIC8vIOiOt+WPluWFrOWPuOagkQogICAgZ2V0T3JnVHJlZURhdGE6IGZ1bmN0aW9uIGdldE9yZ1RyZWVEYXRhKCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlMygpIHsKICAgICAgICB2YXIgZGF0YTsKICAgICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yUnVudGltZSgpLndyYXAoZnVuY3Rpb24gX2NhbGxlZTMkKF9jb250ZXh0MykgewogICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQzLnByZXYgPSBfY29udGV4dDMubmV4dCkgewogICAgICAgICAgICBjYXNlIDA6CiAgICAgICAgICAgICAgX2NvbnRleHQzLm5leHQgPSAyOwogICAgICAgICAgICAgIHJldHVybiBnZXRUcmVlKCk7CiAgICAgICAgICAgIGNhc2UgMjoKICAgICAgICAgICAgICBkYXRhID0gX2NvbnRleHQzLnNlbnQ7CiAgICAgICAgICAgICAgX3RoaXM1LnRlYW1UcmVlRGF0YSA9IGRhdGE7CiAgICAgICAgICAgICAgX3RoaXM1Lm1vbml0b3JUcmVlRGF0YSA9IGRhdGE7CiAgICAgICAgICAgIGNhc2UgNToKICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLnN0b3AoKTsKICAgICAgICAgIH0KICAgICAgICB9LCBfY2FsbGVlMyk7CiAgICAgIH0pKSgpOwogICAgfSwKICAgIC8vIOiHquWumuS5ieagh+iusOeCuQogICAgY3VzdG9tVGFnUG9pbnRzOiBmdW5jdGlvbiBjdXN0b21UYWdQb2ludHMoKSB7CiAgICAgIHZhciBfdGhpcyRtYXJrZXJzLAogICAgICAgIF90aGlzNiA9IHRoaXM7CiAgICAgIHZhciBsbmdsYXQgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IFtdOwogICAgICAoX3RoaXMkbWFya2VycyA9IHRoaXMubWFya2Vyc1t0aGlzLm1hcmtlcnMubGVuZ3RoIC0gMV0pID09PSBudWxsIHx8IF90aGlzJG1hcmtlcnMgPT09IHZvaWQgMCB8fCBfdGhpcyRtYXJrZXJzLnJlbW92ZSgpOwogICAgICAvLyDoh6rlrprkuYnngrnmoIforrDnmoTlhoXpg6hET03lhYPntKAKICAgICAgdmFyIGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgIGVsLmNsYXNzTmFtZSA9ICdtYXJrZXItdGlwJzsKICAgICAgLy8gTWFya2Vy5p6E6YCg5Ye95pWw5o6l5pS25Lik5Liq5Y+C5pWw77yM5LiA5Liq5Li66Ieq5a6a5LmJ55qERE9N5YWD57Sg77yM5LiA5Liq5pivT2JqZWN05Y+C5pWw77yM5YW25Lit5YyF5ous5YGP56e76YeP562JCiAgICAgIHZhciBtYXJrZXIgPSBuZXcgdGhpcy4kcmVmcy5taW5lTWFwLm1pbmVNYXAuTWFya2VyKGVsLCB7CiAgICAgICAgZHJhZ2dhYmxlOiB0cnVlLAogICAgICAgIGFuY2hvcjogJ2NlbnRlcicsCiAgICAgICAgb2Zmc2V0OiBbMCwgMF0gLy8gb2Zmc2V05Y+C5pWw5Li65qCH5rOo54K555u45a+55LqO5YW25bem5LiK6KeS5YGP56e75YOP57Sg5aSn5bCPCiAgICAgIH0pCiAgICAgIC8vIOiwg+eUqHNldExuZ0xhdOaWueazleaMh+Wumk1hcmtlcueahOWdkOagh+S9jee9rgogICAgICAuc2V0TG5nTGF0KGxuZ2xhdCkuYWRkVG8odGhpcy4kcmVmcy5taW5lTWFwLm1hcCkub24oJ2RyYWdlbmQnLCBmdW5jdGlvbiAoX3JlZikgewogICAgICAgIHZhciB0YXJnZXQgPSBfcmVmLnRhcmdldDsKICAgICAgICB2YXIgX3RhcmdldCRnZXRMbmdMYXQgPSB0YXJnZXQuZ2V0TG5nTGF0KCksCiAgICAgICAgICBsbmcgPSBfdGFyZ2V0JGdldExuZ0xhdC5sbmcsCiAgICAgICAgICBsYXQgPSBfdGFyZ2V0JGdldExuZ0xhdC5sYXQ7CiAgICAgICAgX3RoaXM2LmFkZEVkaXRGb3JtID0gX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBfdGhpczYuYWRkRWRpdEZvcm0pLCB7fSwgewogICAgICAgICAgbG5nOiBsbmcsCiAgICAgICAgICBsYXQ6IGxhdAogICAgICAgIH0pOwogICAgICB9KTsKICAgICAgdGhpcy4kcmVmcy5taW5lTWFwLm1hcC5zZXRDZW50ZXIobG5nbGF0KTsKICAgICAgdGhpcy5tYXJrZXJzLnB1c2gobWFya2VyKTsKICAgIH0sCiAgICAvLyDkv67mlLnnu4/nuqzluqbmm7TmlrDlnLDlm77moIfngrkKICAgIHVwZGF0ZVBvaW50OiBmdW5jdGlvbiB1cGRhdGVQb2ludChlKSB7CiAgICAgIHZhciBfdGhpcyRhZGRFZGl0Rm9ybSA9IHRoaXMuYWRkRWRpdEZvcm0sCiAgICAgICAgX3RoaXMkYWRkRWRpdEZvcm0kbG5nID0gX3RoaXMkYWRkRWRpdEZvcm0ubG5nLAogICAgICAgIGxuZyA9IF90aGlzJGFkZEVkaXRGb3JtJGxuZyA9PT0gdm9pZCAwID8gJycgOiBfdGhpcyRhZGRFZGl0Rm9ybSRsbmcsCiAgICAgICAgX3RoaXMkYWRkRWRpdEZvcm0kbGF0ID0gX3RoaXMkYWRkRWRpdEZvcm0ubGF0LAogICAgICAgIGxhdCA9IF90aGlzJGFkZEVkaXRGb3JtJGxhdCA9PT0gdm9pZCAwID8gJycgOiBfdGhpcyRhZGRFZGl0Rm9ybSRsYXQ7CiAgICAgIGlmIChsbmcgJiYgbGF0KSB7CiAgICAgICAgdGhpcy5jdXN0b21UYWdQb2ludHMoW2xuZywgbGF0XSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDmiZPlvIDpobXpnaLmiafooYwKICAgIG9wZW5QYWdlOiBmdW5jdGlvbiBvcGVuUGFnZSgpIHsKICAgICAgdGhpcy50b1BpbGUoKTsKICAgICAgLy8gdGhpcy4kcmVmcy5taW5lTWFwPy5tYXA/LnJlc2l6ZSgpCiAgICB9LAogICAgLy8g5bGV56S65by55bGCCiAgICBzaG93RGlhbG9nOiBmdW5jdGlvbiBzaG93RGlhbG9nKGRpYWxvZ05hbWUpIHsKICAgICAgaWYgKCFkaWFsb2dOYW1lKSByZXR1cm47CiAgICAgIHRoaXNbZGlhbG9nTmFtZSArICdEaWFsb2cnXSA9IHRydWU7CiAgICB9LAogICAgLy8g5YWz6Zet6aG16Z2i5omn6KGMCiAgICBjbG9zZVBhZ2U6IGZ1bmN0aW9uIGNsb3NlUGFnZSgpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CiAgICAgIHZhciBwdWJTdWIgPSB0aGlzLnB1YlN1YiwKICAgICAgICBhZGRFZGl0UnVsZXMgPSB0aGlzLmFkZEVkaXRSdWxlczsKICAgICAgLy8g6YeN572u57uE5Lu25pWw5o2uCiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy4kZGF0YSwgdGhpcy4kb3B0aW9ucy5kYXRhLmNhbGwodGhpcyksIHsKICAgICAgICBwdWJTdWI6IHB1YlN1YiwKICAgICAgICBhZGRFZGl0UnVsZXM6IGFkZEVkaXRSdWxlcwogICAgICB9KTsKICAgICAgLy8gdGhpcy4kcmVmcy5taW5lTWFwPy5yZXNldE1hcChfID0+IHRoaXMubWFwTG9hZGluZyA9IGZhbHNlKSAvLyDph43nva7lnLDlm74KICAgICAgdGhpcy4kbmV4dFRpY2soZnVuY3Rpb24gKF8pIHsKICAgICAgICBfdGhpczcuJHJlZnMuYWRkRWRpdEZvcm0uJGVsLnNjcm9sbFRvcCA9IDA7CiAgICAgICAgX3RoaXM3LiRyZWZzLmFkZEVkaXRGb3JtLmNsZWFyVmFsaWRhdGUoKTsKICAgICAgfSk7CiAgICB9LAogICAgLy8g6I635Y+W6K+m5oOFCiAgICBnZXREZXRhaWw6IGZ1bmN0aW9uIGdldERldGFpbChpZCkgewogICAgICB2YXIgX3RoaXM4ID0gdGhpczsKICAgICAgcmV0dXJuIF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNCgpIHsKICAgICAgICB2YXIgcmVzcG9uc2U7CiAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHsKICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHsKICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMjsKICAgICAgICAgICAgICByZXR1cm4gdGFibGVEZXRhaWwoaWQpOwogICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgcmVzcG9uc2UgPSBfY29udGV4dDQuc2VudDsKICAgICAgICAgICAgICBfdGhpczguYWRkRWRpdEZvcm0gPSBfb2JqZWN0U3ByZWFkKF9vYmplY3RTcHJlYWQoe30sIHJlc3BvbnNlKSwge30sIHsKICAgICAgICAgICAgICAgIHJvYWROYW1lOiByZXNwb25zZS5yb2FkTmFtZSB8fCBfdGhpczguYWRkRWRpdEZvcm0ucm9hZE5hbWUgLy8g5aaC5p6c5o6l5Y+j6L+U5Zue55qEIG9yZ05hbWUg5Li656m677yM5L2/55So5b2T5YmN6KGo5Y2V55qEIG9yZ05hbWUKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgY2FzZSA0OgogICAgICAgICAgICBjYXNlICJlbmQiOgogICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDQuc3RvcCgpOwogICAgICAgICAgfQogICAgICAgIH0sIF9jYWxsZWU0KTsKICAgICAgfSkpKCk7CiAgICB9LAogICAgLy8g5L+d5a2YCiAgICBoYW5kbGVTYXZlOiBmdW5jdGlvbiBoYW5kbGVTYXZlKCkgewogICAgICB2YXIgX3RoaXM5ID0gdGhpczsKICAgICAgdGhpcy4kcmVmcy5hZGRFZGl0Rm9ybS52YWxpZGF0ZSgvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogICAgICAgIHZhciBfcmVmMiA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlNSh2YWxpZCwgb2JqZWN0KSB7CiAgICAgICAgICB2YXIgZGF0YSwgbXlJbnRlckZhY2UsIF95aWVsZCRteUludGVyRmFjZSwgc3RhdGUsIG1lc3NhZ2UsIHZhbHVlOwogICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWU1JChfY29udGV4dDUpIHsKICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ1LnByZXYgPSBfY29udGV4dDUubmV4dCkgewogICAgICAgICAgICAgIGNhc2UgMDoKICAgICAgICAgICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgICAgICAgICBfY29udGV4dDUubmV4dCA9IDQ7CiAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgX3RoaXM5LiRtZXNzYWdlLndhcm5pbmcoIlx1NjcwOSIuY29uY2F0KE9iamVjdC5rZXlzKG9iamVjdCkubGVuZ3RoLCAiXHU0RTJBXHU1QjU3XHU2QkI1XHU2NzJBXHU5MDFBXHU4RkM3XHU2ODIxXHU5QThDXHVGRjBDXHU4QkY3XHU2QjYzXHU3ODZFXHU1ODZCXHU1MTk5XHU4ODY4XHU1MzU1XHU1MTg1XHU1QkI5XHUzMDAyIikpOwogICAgICAgICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAxOTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIGNhc2UgNDoKICAgICAgICAgICAgICAgIF90aGlzOS5zYXZlTG9hZGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShfdGhpczkuYWRkRWRpdEZvcm0pKTsKICAgICAgICAgICAgICAgIGRhdGEucGVnVmFsID0gJ2snICsgZGF0YS5wZWcgKyAnKycgKyBkYXRhLnBlZzsKICAgICAgICAgICAgICAgIG15SW50ZXJGYWNlID0gX3RoaXM5LmlkID8gdGFibGVFZGl0IDogdGFibGVBZGQ7CiAgICAgICAgICAgICAgICBfY29udGV4dDUucHJldiA9IDg7CiAgICAgICAgICAgICAgICBfY29udGV4dDUubmV4dCA9IDExOwogICAgICAgICAgICAgICAgcmV0dXJuIG15SW50ZXJGYWNlKF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZChfb2JqZWN0U3ByZWFkKHt9LCBkYXRhKSwgZGF0YS5yb2FkKSwge30sIHsKICAgICAgICAgICAgICAgICAgdHlwZTogX3RoaXM5LmFkZEVkaXRGb3JtLnR5cGUgLy8g5Lyg6YCS6Zif5LyN57G75Z6L55qEIHZhbHVlfSl9KQogICAgICAgICAgICAgICAgfSkpOwogICAgICAgICAgICAgIGNhc2UgMTE6CiAgICAgICAgICAgICAgICBfeWllbGQkbXlJbnRlckZhY2UgPSBfY29udGV4dDUuc2VudDsKICAgICAgICAgICAgICAgIHN0YXRlID0gX3lpZWxkJG15SW50ZXJGYWNlLnN0YXRlOwogICAgICAgICAgICAgICAgbWVzc2FnZSA9IF95aWVsZCRteUludGVyRmFjZS5tZXNzYWdlOwogICAgICAgICAgICAgICAgdmFsdWUgPSBfeWllbGQkbXlJbnRlckZhY2UudmFsdWU7CiAgICAgICAgICAgICAgICBpZiAoc3RhdGUpIHsKICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IF90aGlzOS5pZCA/ICfnvJbovpEnIDogJ+aWsOWinic7CiAgICAgICAgICAgICAgICAgIF90aGlzOS4kbWVzc2FnZS5zdWNjZXNzKCJcdTY1NTFcdTYzRjRcdTcwQjkiLmNvbmNhdChtZXNzYWdlLCAiXHU2MjEwXHU1MjlGIikpOwogICAgICAgICAgICAgICAgICBQdWJTdWIucHVibGlzaCgnVGFibGVQYWdlJywgewogICAgICAgICAgICAgICAgICAgIHR5cGU6ICdhZGQnCiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICAvLyDmiYvliqjlsIYgb3JnTmFtZSDmt7vliqDliLDov5Tlm57nmoTmlbDmja7kuK0KICAgICAgICAgICAgICAgICAgZGF0YS5yb2FkTmFtZSA9IF90aGlzOS5hZGRFZGl0Rm9ybS5yb2FkTmFtZTsKICAgICAgICAgICAgICAgICAgLy8g5L+d5a2Y5oiQ5Yqf5ZCO6YeN572u6KGo5Y2VCiAgICAgICAgICAgICAgICAgIF90aGlzOS5yZXNldEZvcm1EYXRhKHsKICAgICAgICAgICAgICAgICAgICByb2FkTmFtZTogX3RoaXM5LmFkZEVkaXRGb3JtLnJvYWROYW1lLAogICAgICAgICAgICAgICAgICAgIGNhdGFsb2dJZDogX3RoaXM5LmFkZEVkaXRGb3JtLnJvYWRJZCwKICAgICAgICAgICAgICAgICAgICBwYXRoOiBfdGhpczkuYWRkRWRpdEZvcm0ucm9hZEZ1bGxJZAogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgX3RoaXM5LmNoYW5nZVBhZ2UoJ1RhYmxlUGFnZScsIF90aGlzOS5pZCA/ICdlZGl0JyA6ICdhZGQnKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBjYXNlIDE2OgogICAgICAgICAgICAgICAgX2NvbnRleHQ1LnByZXYgPSAxNjsKICAgICAgICAgICAgICAgIF90aGlzOS5zYXZlTG9hZGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5maW5pc2goMTYpOwogICAgICAgICAgICAgIGNhc2UgMTk6CiAgICAgICAgICAgICAgY2FzZSAiZW5kIjoKICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDUuc3RvcCgpOwogICAgICAgICAgICB9CiAgICAgICAgICB9LCBfY2FsbGVlNSwgbnVsbCwgW1s4LCwgMTYsIDE5XV0pOwogICAgICAgIH0pKTsKICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94LCBfeDIpIHsKICAgICAgICAgIHJldHVybiBfcmVmMi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIH07CiAgICAgIH0oKSk7CiAgICB9LAogICAgLy8g5pS55Y+Y6aG16Z2iCiAgICBjaGFuZ2VQYWdlOiBmdW5jdGlvbiBjaGFuZ2VQYWdlKCkgewogICAgICB2YXIgcGFnZU5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6ICcnOwogICAgICB2YXIgdHlwZSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7CiAgICAgIGlmICghcGFnZU5hbWUpIHJldHVybjsKICAgICAgdGhpcy4kZW1pdCgnY2hhbmdlUGFnZScsIHBhZ2VOYW1lLCBmdW5jdGlvbiAoXykgewogICAgICAgIFB1YlN1Yi5wdWJsaXNoKHBhZ2VOYW1lLCB7CiAgICAgICAgICB0eXBlOiB0eXBlCiAgICAgICAgfSk7CiAgICAgIH0pOwogICAgfQogIH0sCiAgYmVmb3JlRGVzdHJveTogZnVuY3Rpb24gYmVmb3JlRGVzdHJveSgpIHsKICAgIC8vIOWcqOe7hOS7tumUgOavgeS5i+WJjSDmuIXpmaTorqLpmIXmtojmga8KICAgIFB1YlN1Yi51bnN1YnNjcmliZSh0aGlzLnB1YlN1Yik7CiAgfQp9Ow=="},null]}