You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1 lines
34 KiB
1 lines
34 KiB
{"remainingRequest":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\views\\project\\info2\\add.vue?vue&type=script&lang=js&","dependencies":[{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\views\\project\\info2\\add.vue","mtime":1634007168282},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LnNwbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAuZXhlYy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IHsgbGlzdEluZm8sIGdldEluZm8sIGRlbEluZm8sIGFkZEluZm8sIHVwZGF0ZUluZm8sIGV4cG9ydEluZm8gfSBmcm9tICJAL2FwaS9wcm9qZWN0L2luZm8yIjsKaW1wb3J0IFRvcGljSW5mbyBmcm9tICJAL3ZpZXdzL3Byb2plY3QvdG9waWMvaW5kZXgiOyAvL+ivvumimOS/oeaBrwoKaW1wb3J0IFRvcGljSW5mb0FkZCBmcm9tICJAL3ZpZXdzL3Byb2plY3QvdG9waWMvYWRkIjsgLy/or77popjmlrDlop4KCmltcG9ydCBTdWJqZWN0SW5mbyBmcm9tICJAL3ZpZXdzL3Byb2plY3Qvc3ViamVjdC9pbmRleCI7IC8v6K++6aKY5L+h5oGvCgppbXBvcnQgU3ViamVjdEluZm9JbmZvQWRkIGZyb20gIkAvdmlld3MvcHJvamVjdC9zdWJqZWN0L2FkZCI7IC8v6K++6aKY5paw5aKeCgppbXBvcnQgQnVkZ2V0SW5mbyBmcm9tICJAL3ZpZXdzL3Byb2plY3QvYnVkZ2V0L2luZGV4IjsgLy/or77popjkv6Hmga8KCmltcG9ydCBCdWRnZXRJbmZvQWRkIGZyb20gIkAvdmlld3MvcHJvamVjdC9idWRnZXQvYWRkIjsgLy/or77popjmlrDlop4KCmltcG9ydCBQZW9wbGVJbmZvIGZyb20gIkAvdmlld3MvcHJvamVjdC9wYXJ0aWNpcGFudHMvaW5kZXgiOyAvL+S6uuWRmOS/oeaBrwoKaW1wb3J0IFBlb3BsZUluZm9BZGQgZnJvbSAiQC92aWV3cy9wcm9qZWN0L3BhcnRpY2lwYW50cy9hZGQiOyAvL+S6uuWRmOS/oeaBr+WinuWKoAoKaW1wb3J0IEVkaXRvciBmcm9tICdAL2NvbXBvbmVudHMvRWRpdG9yJzsKaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICJAL3V0aWxzL2F1dGgiOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogIkluZm8iLAogIGNvbXBvbmVudHM6IHsKICAgIFRvcGljSW5mbzogVG9waWNJbmZvLAogICAgVG9waWNJbmZvQWRkOiBUb3BpY0luZm9BZGQsCiAgICBTdWJqZWN0SW5mbzogU3ViamVjdEluZm8sCiAgICBTdWJqZWN0SW5mb0luZm9BZGQ6IFN1YmplY3RJbmZvSW5mb0FkZCwKICAgIEJ1ZGdldEluZm86IEJ1ZGdldEluZm8sCiAgICBCdWRnZXRJbmZvQWRkOiBCdWRnZXRJbmZvQWRkLAogICAgUGVvcGxlSW5mbzogUGVvcGxlSW5mbywKICAgIFBlb3BsZUluZm9BZGQ6IFBlb3BsZUluZm9BZGQsCiAgICBFZGl0b3I6IEVkaXRvcgogIH0sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIC8vIOS4iuS8oOWPguaVsAogICAgICB1cGxvYWQ6IHsKICAgICAgICB0aXRsZTogIiIsCiAgICAgICAgb3BlbjogZmFsc2UsCiAgICAgICAgLy8g5piv5ZCm56aB55So5LiK5LygCiAgICAgICAgaXNVcGxvYWRpbmc6IGZhbHNlLAogICAgICAgIC8vIOiuvue9ruS4iuS8oOeahOivt+axguWktOmDqAogICAgICAgIGhlYWRlcnM6IHsKICAgICAgICAgIEF1dGhvcml6YXRpb246ICJCZWFyZXIgIiArIGdldFRva2VuKCkKICAgICAgICB9LAogICAgICAgIC8vIOS4iuS8oOeahOWcsOWdgAogICAgICAgIHVybDogcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSArICIvc3lzdGVtL2luZm8vY29tbW9uL3VwbG9hZCIsCiAgICAgICAgLy8g5LiK5Lyg55qE5paH5Lu25YiX6KGoCiAgICAgICAgZmlsZUxpc3Q6IFtdCiAgICAgIH0sCiAgICAgIC8vIOS4iuS8oOWPguaVsAogICAgICB1cGxvYWQyOiB7CiAgICAgICAgdGl0bGU6ICIiLAogICAgICAgIG9wZW46IGZhbHNlLAogICAgICAgIC8vIOaYr+WQpuemgeeUqOS4iuS8oAogICAgICAgIGlzVXBsb2FkaW5nOiBmYWxzZSwKICAgICAgICAvLyDorr7nva7kuIrkvKDnmoTor7fmsYLlpLTpg6gKICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICBBdXRob3JpemF0aW9uOiAiQmVhcmVyICIgKyBnZXRUb2tlbigpCiAgICAgICAgfSwKICAgICAgICAvLyDkuIrkvKDnmoTlnLDlnYAKICAgICAgICB1cmw6IHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEkgKyAiL3N5c3RlbS9pbmZvL2NvbW1vbi91cGxvYWQiLAogICAgICAgIC8vIOS4iuS8oOeahOaWh+S7tuWIl+ihqAogICAgICAgIGZpbGVMaXN0OiBbXQogICAgICB9LAogICAgICAvLyDkuIrkvKDlj4LmlbAKICAgICAgdXBsb2FkMzogewogICAgICAgIHRpdGxlOiAiIiwKICAgICAgICBvcGVuOiBmYWxzZSwKICAgICAgICAvLyDmmK/lkKbnpoHnlKjkuIrkvKAKICAgICAgICBpc1VwbG9hZGluZzogZmFsc2UsCiAgICAgICAgLy8g6K6+572u5LiK5Lyg55qE6K+35rGC5aS06YOoCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiICsgZ2V0VG9rZW4oKQogICAgICAgIH0sCiAgICAgICAgLy8g5LiK5Lyg55qE5Zyw5Z2ACiAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgIi9zeXN0ZW0vaW5mby9jb21tb24vdXBsb2FkIiwKICAgICAgICAvLyDkuIrkvKDnmoTmlofku7bliJfooagKICAgICAgICBmaWxlTGlzdDogW10KICAgICAgfSwKICAgICAgYWN0aXZlTmFtZTogJ3RhYicsCiAgICAgIC8v5bGV5byA6Z2i5p2/CiAgICAgIGFjdGl2ZU5hbWVzOiBbJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCddLAogICAgICB2aWV3OiAiIiwKICAgICAgLy8g6YGu572p5bGCCiAgICAgIGxvYWRpbmc6IHRydWUsCiAgICAgIC8vIOmAieS4reaVsOe7hAogICAgICBpZHM6IFtdLAogICAgICAvLyDpnZ7ljZXkuKrnpoHnlKgKICAgICAgc2luZ2xlOiB0cnVlLAogICAgICAvLyDpnZ7lpJrkuKrnpoHnlKgKICAgICAgbXVsdGlwbGU6IHRydWUsCiAgICAgIC8vIOaYvuekuuaQnOe0ouadoeS7tgogICAgICBzaG93U2VhcmNoOiB0cnVlLAogICAgICAvLyDmgLvmnaHmlbAKICAgICAgdG90YWw6IDAsCiAgICAgIC8vIOOAkOivt+Whq+WGmeWKn+iDveWQjeensOOAkeihqOagvOaVsOaNrgogICAgICBpbmZvTGlzdDogW10sCiAgICAgIC8vIOW8ueWHuuWxguagh+mimAogICAgICB0aXRsZTogIiIsCiAgICAgIC8vIOaYr+WQpuaYvuekuuW8ueWHuuWxggogICAgICBvcGVuOiBmYWxzZSwKICAgICAgLy8gaXNUb3BpYzowLAogICAgICBpc1N1Ym1pdDogZmFsc2UsCiAgICAgIHRvcGljRm9ybTogZmFsc2UsCiAgICAgIGJ1ZGdldEZvcm06IGZhbHNlLAogICAgICBwZW9wbGVGb3JtOiBmYWxzZSwKICAgICAgZWRpdFRvcGljSWQ6IDAsCiAgICAgIHRvcGljVHlwZTogIiIsCiAgICAgIHRvcGljSWQ6IDAsCiAgICAgIHRvcGljQ29kZTogIiIsCiAgICAgIHN1YmplY3RGb3JtOiBmYWxzZSwKICAgICAgc3ViamVjdFR5cGU6ICIiLAogICAgICBlZGl0U3ViSWQ6IDAsCiAgICAgIHN1YmplY3RJZDogMCwKICAgICAgc3ViamVjdENvZGU6ICIiLAogICAgICBidWRnZXRUeXBlOiAiIiwKICAgICAgZWRpdEJ1ZElkOiAwLAogICAgICBwZW9wbGVUeXBlOiAiIiwKICAgICAgcGVvcGxlSWQ6IDAsCiAgICAgIC8v6aG555uu57G75Z6LCiAgICAgIHR5cGVPcHRpb25zOiBbXSwKICAgICAgc2VjcmV0T3B0aW9uczogW10sCiAgICAgIHNvdXJjZU9wdGlvbnM6IFtdLAogICAgICBjYXRlZ29yeU9wdGlvbnM6IFtdLAogICAgICBzdGF0dXNPcHRpb25zOiBbXSwKICAgICAgeWVzTm9PcHRpb25zOiBbXSwKICAgICAgcGlzaGlTdGF0dXNPcHRpb25zOiBbXSwKICAgICAgLy8g5p+l6K+i5Y+C5pWwCiAgICAgIHF1ZXJ5UGFyYW1zOiB7CiAgICAgICAgcGFnZU51bTogMSwKICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgICAgY2F0ZWdvcnk6IG51bGwsCiAgICAgICAgY29kZTogbnVsbCwKICAgICAgICBuYW1lOiBudWxsLAogICAgICAgIHR5cGU6IG51bGwsCiAgICAgICAgZGVwYXJ0bWVudElkOiBudWxsLAogICAgICAgIHVzZXJJZDogbnVsbCwKICAgICAgICBkZWFkbGluZTogbnVsbCwKICAgICAgICB0b3RhbE91dGxheTogbnVsbCwKICAgICAgICBmaXJzdE91dGxheTogbnVsbCwKICAgICAgICBzZWNvbmRPdXRsYXk6IG51bGwsCiAgICAgICAgc3RhdHVzOiBudWxsLAogICAgICAgIGJlZ2luRGF0ZTogbnVsbCwKICAgICAgICBjb21wbGV0ZURhdGU6IG51bGwsCiAgICAgICAgZW5kRGF0ZTogbnVsbCwKICAgICAgICBhcHByb3ZhbERhdGU6IG51bGwsCiAgICAgICAgaXNTZWNyZWN5OiBudWxsLAogICAgICAgIHNlY3JlY3lMZXZlbDogbnVsbCwKICAgICAgICBzZWNyZWN5VGVybTogbnVsbCwKICAgICAgICBpc1RvcGljOiBudWxsLAogICAgICAgIHRhc2tUYXJnZXQ6IG51bGwsCiAgICAgICAgcmVzdWx0VGFyZ2V0OiBudWxsLAogICAgICAgIG1ldGhvZFJvdXRlOiBudWxsLAogICAgICAgIHBsYW46IG51bGwsCiAgICAgICAgc3BlbmRFeHBsYWluOiBudWxsLAogICAgICAgIHJlbHlJZDogbnVsbCwKICAgICAgICBsYXN0RGF0ZTogbnVsbCwKICAgICAgICByZXZpZXdTdGF0dXNYYjogbnVsbCwKICAgICAgICByZXZpZXdTdGF0dXNDdzogbnVsbCwKICAgICAgICB0b3RhbEJ1ZGdldDogbnVsbCwKICAgICAgICBmaXJzdEJ1ZGdldDogbnVsbCwKICAgICAgICBzZWNvbmRCdWRnZXQ6IG51bGwsCiAgICAgICAgYXBwbHlJZDogbnVsbCwKICAgICAgICBwcm9qZWN0U291cmNlOiBudWxsLAogICAgICAgIHByb2plY3RTb3VyY2VDb21wYW55OiBudWxsLAogICAgICAgIHJldmlld1N0YXR1c1p3aDogbnVsbCwKICAgICAgICBpc0FncmVlbWVudDogbnVsbCwKICAgICAgICByZWx5VW5pdEhlYWQ6IG51bGwsCiAgICAgICAgcmVseVVuaXRIZWFkdG9jdzogbnVsbCwKICAgICAgICB0YXNrUGVyaW9kOiBudWxsLAogICAgICAgIG90aGVycGxhbjogbnVsbCwKICAgICAgICBwb2ludDogbnVsbCwKICAgICAgICByZXN1bHQ6IG51bGwsCiAgICAgICAgaW50cm9kdWN0aW9uOiBudWxsLAogICAgICAgIHByb3Byb3Rpb246IG51bGwsCiAgICAgICAgdGVybTogbnVsbCwKICAgICAgICBhbm5leE5hbWU6IG51bGwsCiAgICAgICAgYW5uZXhQYXRoOiBudWxsCiAgICAgIH0sCiAgICAgIC8vIOihqOWNleWPguaVsAogICAgICBmb3JtOiB7fSwKICAgICAgLy8g6KGo5Y2V5qCh6aqMCiAgICAgIHJ1bGVzOiB7CiAgICAgICAgaXNUb3BpYzogW3sKICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLAogICAgICAgICAgbWVzc2FnZTogJ+ivt+mAieaLqeS4gOmhuScsCiAgICAgICAgICB0cmlnZ2VyOiAnYmx1cicKICAgICAgICB9XQogICAgICB9CiAgICB9OwogIH0sCiAgd2F0Y2g6IHsKICAgICRyb3V0ZTogZnVuY3Rpb24gJHJvdXRlKCkgewogICAgICAvLyBjb25zb2xlLmxvZyh0aGlzLiRyb3V0ZSkKICAgICAgdGhpcy52aWV3ID0gdGhpcy4kcm91dGUucXVlcnkudmlldzsKICAgICAgdmFyIHByb0lkID0gdGhpcy4kcm91dGUucXVlcnkuaWQ7CgogICAgICBpZiAodGhpcy52aWV3ICYmIHRoaXMudmlldyA9PSAiZWRpdCIpIHsKICAgICAgICB0aGlzLmZvcm0uaWQgPSBwcm9JZDsKICAgICAgICB0aGlzLmluaXQocHJvSWQpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMucmVzZXQoKTsKICAgICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdCA9IFtdOwogICAgICAgIHRoaXMudXBsb2FkMi5maWxlTGlzdCA9IFtdOwogICAgICAgIHRoaXMudXBsb2FkMy5maWxlTGlzdCA9IFtdOwogICAgICB9CiAgICB9CiAgfSwKICBjcmVhdGVkOiBmdW5jdGlvbiBjcmVhdGVkKCkgewogICAgdmFyIF90aGlzID0gdGhpczsKCiAgICB0aGlzLnZpZXcgPSB0aGlzLiRyb3V0ZS5xdWVyeS52aWV3OwogICAgdmFyIHByb0lkID0gdGhpcy4kcm91dGUucXVlcnkuaWQ7CgogICAgaWYgKHRoaXMudmlldyAmJiB0aGlzLnZpZXcgPT0gImVkaXQiKSB7CiAgICAgIHRoaXMuZm9ybS5pZCA9IHByb0lkOwogICAgICB0aGlzLmluaXQocHJvSWQpOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5yZXNldCgpOwogICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdCA9IFtdOwogICAgICB0aGlzLnVwbG9hZDIuZmlsZUxpc3QgPSBbXTsKICAgICAgdGhpcy51cGxvYWQzLmZpbGVMaXN0ID0gW107CiAgICB9CgogICAgdGhpcy5nZXREaWN0cygicHJvX3R5cGUiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy50eXBlT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICAgIHRoaXMuZ2V0RGljdHMoInByb19zZWNyZXRfbGV2ZWwiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy5zZWNyZXRPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogICAgdGhpcy5nZXREaWN0cygicHJvX3NvdXJjZSIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnNvdXJjZU9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgICB0aGlzLmdldERpY3RzKCJwcm9fY2F0ZWdvcnkiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy5jYXRlZ29yeU9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgICB0aGlzLmdldERpY3RzKCJwcm9fc3RhdHVzIikudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgX3RoaXMuc3RhdHVzT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICAgIHRoaXMuZ2V0RGljdHMoInN5c195ZXNfbm8iKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy55ZXNOb09wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgICB0aGlzLmdldERpY3RzKCJwcm9qZWN0X3Bpc2hpIikudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgX3RoaXMucGlzaGlTdGF0dXNPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogIH0sCiAgLy/pobXpnaLpgIDlh7rml7bplIDmr4HlvZPliY3pobXpnaLpmLLmraLnvJPlrZgKICBkZWFjdGl2YXRlZDogZnVuY3Rpb24gZGVhY3RpdmF0ZWQoKSB7CiAgICB0aGlzLiRkZXN0cm95KHRydWUpOwogIH0sCiAgbWV0aG9kczogewogICAgaW5pdDogZnVuY3Rpb24gaW5pdChpZCkgewogICAgICB2YXIgX3RoaXMyID0gdGhpczsKCiAgICAgIGdldEluZm8oaWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMyLmZvcm0gPSByZXNwb25zZS5kYXRhOwoKICAgICAgICBfdGhpczIuZm9ybWF0VXBsb2FkQW5uZXgoX3RoaXMyLmZvcm0uYW5uZXhOYW1lLCBfdGhpczIuZm9ybS5hbm5leFBhdGgpOwoKICAgICAgICBfdGhpczIuZm9ybWF0VXBsb2FkQW5uZXgyKF90aGlzMi5mb3JtLnJlc3VsdEZpbGUsIF90aGlzMi5mb3JtLnJlc3VsdEZpbGVQYXRoKTsKCiAgICAgICAgX3RoaXMyLmZvcm1hdFVwbG9hZEFubmV4MyhfdGhpczIuZm9ybS5ib29rRmlsZSwgX3RoaXMyLmZvcm0uYm9va0ZpbGVQYXRoKTsKICAgICAgfSk7CiAgICB9LAogICAgdHlwZUZvcm1hdDogZnVuY3Rpb24gdHlwZUZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy50eXBlT3B0aW9ucywgcm93LnR5cGUpOwogICAgfSwKICAgIHNlY3JldEZvcm1hdDogZnVuY3Rpb24gc2VjcmV0Rm9ybWF0KHJvdywgY29sdW1uKSB7CiAgICAgIHJldHVybiB0aGlzLnNlbGVjdERpY3RMYWJlbCh0aGlzLnNlY3JldE9wdGlvbnMsIHJvdy5zZWNyZXRMZXZlbCk7CiAgICB9LAogICAgY2F0ZWdvcnlGb3JtYXQ6IGZ1bmN0aW9uIGNhdGVnb3J5Rm9ybWF0KHJvdywgY29sdW1uKSB7CiAgICAgIHJldHVybiB0aGlzLnNlbGVjdERpY3RMYWJlbCh0aGlzLmNhdGVnb3J5T3B0aW9ucywgcm93LmNhdGVnb3J5KTsKICAgIH0sCiAgICBzdGF0dXNGb3JtYXQ6IGZ1bmN0aW9uIHN0YXR1c0Zvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5zdGF0dXNPcHRpb25zLCByb3cuc3RhdHVzKTsKICAgIH0sCiAgICBzb3VyY2VGb3JtYXQ6IGZ1bmN0aW9uIHNvdXJjZUZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5zb3VyY2VPcHRpb25zLCByb3cucHJvamVjdFNvdXJjZSk7CiAgICB9LAogICAgaGFuZGxlQ2xpY2s6IGZ1bmN0aW9uIGhhbmRsZUNsaWNrKHRhYiwgZXZlbnQpIHsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gdGFiLm5hbWU7CiAgICB9LAoKICAgIC8qKiDmn6Xor6LjgJDor7floavlhpnlip/og73lkI3np7DjgJHliJfooaggKi8KICAgIGdldExpc3Q6IGZ1bmN0aW9uIGdldExpc3QoKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwoKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgbGlzdEluZm8odGhpcy5xdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczMuaW5mb0xpc3QgPSByZXNwb25zZS5yb3dzOwogICAgICAgIF90aGlzMy50b3RhbCA9IHJlc3BvbnNlLnRvdGFsOwogICAgICAgIF90aGlzMy5sb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWPlua2iOaMiemSrgogICAgY2FuY2VsOiBmdW5jdGlvbiBjYW5jZWwoKSB7CiAgICAgIHRoaXMub3BlbiA9IGZhbHNlOwogICAgICB0aGlzLnJlc2V0KCk7CiAgICB9LAogICAgLy8g6KGo5Y2V6YeN572uCiAgICByZXNldDogZnVuY3Rpb24gcmVzZXQoKSB7CiAgICAgIHRoaXMuZm9ybSA9IHsKICAgICAgICBpZDogbnVsbCwKICAgICAgICBjYXRlZ29yeTogbnVsbCwKICAgICAgICBjb2RlOiBudWxsLAogICAgICAgIG5hbWU6IG51bGwsCiAgICAgICAgdHlwZTogbnVsbCwKICAgICAgICBkZXBhcnRtZW50SWQ6IG51bGwsCiAgICAgICAgdXNlcklkOiBudWxsLAogICAgICAgIGRlYWRsaW5lOiBudWxsLAogICAgICAgIHRvdGFsT3V0bGF5OiBudWxsLAogICAgICAgIGZpcnN0T3V0bGF5OiBudWxsLAogICAgICAgIHNlY29uZE91dGxheTogbnVsbCwKICAgICAgICBzdGF0dXM6IG51bGwsCiAgICAgICAgYmVnaW5EYXRlOiBudWxsLAogICAgICAgIGNvbXBsZXRlRGF0ZTogbnVsbCwKICAgICAgICBlbmREYXRlOiBudWxsLAogICAgICAgIGFwcHJvdmFsRGF0ZTogbnVsbCwKICAgICAgICBpc1NlY3JlY3k6IG51bGwsCiAgICAgICAgc2VjcmVjeUxldmVsOiBudWxsLAogICAgICAgIHNlY3JlY3lUZXJtOiBudWxsLAogICAgICAgIGlzVG9waWM6IG51bGwsCiAgICAgICAgdGFza1RhcmdldDogbnVsbCwKICAgICAgICByZXN1bHRUYXJnZXQ6IG51bGwsCiAgICAgICAgbWV0aG9kUm91dGU6IG51bGwsCiAgICAgICAgcGxhbjogbnVsbCwKICAgICAgICBzcGVuZEV4cGxhaW46IG51bGwsCiAgICAgICAgcmVseUlkOiBudWxsLAogICAgICAgIGxhc3REYXRlOiBudWxsLAogICAgICAgIHJldmlld1N0YXR1c1hiOiBudWxsLAogICAgICAgIHJldmlld1N0YXR1c0N3OiBudWxsLAogICAgICAgIHRvdGFsQnVkZ2V0OiBudWxsLAogICAgICAgIGZpcnN0QnVkZ2V0OiBudWxsLAogICAgICAgIHNlY29uZEJ1ZGdldDogbnVsbCwKICAgICAgICBhcHBseUlkOiBudWxsLAogICAgICAgIHByb2plY3RTb3VyY2U6IG51bGwsCiAgICAgICAgcHJvamVjdFNvdXJjZUNvbXBhbnk6IG51bGwsCiAgICAgICAgcmV2aWV3U3RhdHVzWndoOiBudWxsLAogICAgICAgIGlzQWdyZWVtZW50OiBudWxsLAogICAgICAgIHJlbHlVbml0SGVhZDogbnVsbCwKICAgICAgICByZWx5VW5pdEhlYWR0b2N3OiBudWxsLAogICAgICAgIHRhc2tQZXJpb2Q6IG51bGwsCiAgICAgICAgb3RoZXJwbGFuOiBudWxsLAogICAgICAgIHBvaW50OiBudWxsLAogICAgICAgIHJlc3VsdDogbnVsbCwKICAgICAgICBpbnRyb2R1Y3Rpb246IG51bGwsCiAgICAgICAgcHJvcHJvdGlvbjogbnVsbCwKICAgICAgICB0ZXJtOiBudWxsLAogICAgICAgIGNyZWF0ZUJ5OiBudWxsLAogICAgICAgIGNyZWF0ZVRpbWU6IG51bGwsCiAgICAgICAgdXBkYXRlQnk6IG51bGwsCiAgICAgICAgdXBkYXRlVGltZTogbnVsbCwKICAgICAgICBkZWxGbGFnOiBudWxsLAogICAgICAgIGFubmV4TmFtZTogbnVsbCwKICAgICAgICBhbm5leFBhdGg6IG51bGwsCiAgICAgICAgcmVzdWx0RmlsZTogbnVsbCwKICAgICAgICByZXN1bHRGaWxlUGF0aDogbnVsbCwKICAgICAgICBib29rRmlsZTogbnVsbCwKICAgICAgICBib29rRmlsZVBhdGg6IG51bGwKICAgICAgfTsKICAgICAgdGhpcy5yZXNldEZvcm0oImZvcm0iKTsKICAgIH0sCgogICAgLyoqIOaQnOe0ouaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlUXVlcnk6IGZ1bmN0aW9uIGhhbmRsZVF1ZXJ5KCkgewogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gPSAxOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCgogICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqLwogICAgcmVzZXRRdWVyeTogZnVuY3Rpb24gcmVzZXRRdWVyeSgpIHsKICAgICAgdGhpcy5yZXNldEZvcm0oInF1ZXJ5Rm9ybSIpOwogICAgICB0aGlzLmhhbmRsZVF1ZXJ5KCk7CiAgICB9LAoKICAgIC8qKiDmlrDlop7mjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUFkZDogZnVuY3Rpb24gaGFuZGxlQWRkKCkgewogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIHRoaXMub3BlbiA9IHRydWU7CiAgICAgIHRoaXMudGl0bGUgPSAi5re75Yqg44CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CRIjsKICAgIH0sCgogICAgLyoqIOS/ruaUueaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlVXBkYXRlOiBmdW5jdGlvbiBoYW5kbGVVcGRhdGUocm93KSB7CiAgICAgIHZhciBfdGhpczQgPSB0aGlzOwoKICAgICAgdGhpcy5yZXNldCgpOwogICAgICB2YXIgaWQgPSByb3cuaWQgfHwgdGhpcy5pZHM7CiAgICAgIGdldEluZm8oaWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXM0LmZvcm0gPSByZXNwb25zZS5kYXRhOwogICAgICAgIF90aGlzNC5vcGVuID0gdHJ1ZTsKICAgICAgICBfdGhpczQudGl0bGUgPSAi5L+u5pS544CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CRIjsKICAgICAgfSk7CiAgICB9LAoKICAgIC8qKiDmj5DkuqTmjInpkq4gKi8KICAgIHN1Ym1pdEZvcm06IGZ1bmN0aW9uIHN1Ym1pdEZvcm0oKSB7CiAgICAgIHZhciBfdGhpczUgPSB0aGlzOwoKICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgaWYgKF90aGlzNS5mb3JtLmlkICE9IG51bGwpIHsKICAgICAgICAgICAgdXBkYXRlSW5mbyhfdGhpczUuZm9ybSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICBfdGhpczUubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7CgogICAgICAgICAgICAgICAgX3RoaXM1Lm9wZW4gPSBmYWxzZTsgLy8gdGhpcy5nZXRMaXN0KCk7CgogICAgICAgICAgICAgICAgX3RoaXM1LmlzU3VibWl0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIF90aGlzNS5mb3JtID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYWRkSW5mbyhfdGhpczUuZm9ybSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICBfdGhpczUubXNnU3VjY2Vzcygi5paw5aKe5oiQ5YqfIik7CgogICAgICAgICAgICAgICAgX3RoaXM1Lm9wZW4gPSBmYWxzZTsgLy8gdGhpcy5nZXRMaXN0KCk7CgogICAgICAgICAgICAgICAgX3RoaXM1LmlzU3VibWl0ID0gdHJ1ZTsKICAgICAgICAgICAgICAgIF90aGlzNS5mb3JtID0gcmVzcG9uc2UuZGF0YTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgYWRkVG9waWM6IGZ1bmN0aW9uIGFkZFRvcGljKCkgewogICAgICBjb25zb2xlLmxvZyh0aGlzLmZvcm0uaWQpOwogICAgICB0aGlzLnRvcGljRm9ybSA9IHRydWU7CiAgICAgIHRoaXMuYWN0aXZlTmFtZSA9ICJ0YWIyIjsKICAgICAgdGhpcy50b3BpY1R5cGUgPSAnYWRkJzsKICAgICAgdGhpcy5lZGl0VG9waWNJZCA9ICcwJzsKICAgIH0sCiAgICBhZGRCdWRnZXQ6IGZ1bmN0aW9uIGFkZEJ1ZGdldCgpIHsKICAgICAgdGhpcy5idWRnZXRGb3JtID0gdHJ1ZTsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gInRhYjYiOwogICAgICB0aGlzLmJ1ZGdldFR5cGUgPSAnYWRkJzsKICAgICAgdGhpcy5lZGl0QnVkSWQgPSAnMCc7CiAgICB9LAogICAgYWRkUGVvcGxlOiBmdW5jdGlvbiBhZGRQZW9wbGUoKSB7CiAgICAgIHRoaXMucGVvcGxlRm9ybSA9IHRydWU7CiAgICAgIHRoaXMuYWN0aXZlTmFtZSA9ICJ0YWI4IjsKICAgICAgdGhpcy5wZW9wbGVUeXBlID0gJ2FkZCc7CiAgICAgIHRoaXMucGVvcGxlSWQgPSAwOwogICAgfSwKICAgIGFkZFBlb3BsZUluZm9Gb3JtOiBmdW5jdGlvbiBhZGRQZW9wbGVJbmZvRm9ybSh0eXBlLCBpZCkgewogICAgICAvLyAgICAgIGNvbnNvbGUubG9nKHR5cGUsaWQpCiAgICAgIHRoaXMucGVvcGxlVHlwZSA9IHR5cGU7CiAgICAgIHRoaXMucGVvcGxlSWQgPSBpZDsKICAgICAgdGhpcy5wZW9wbGVGb3JtID0gdHJ1ZTsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gInRhYjgiOwogICAgfSwKICAgIGFkZFRvcGljSW5mbzogZnVuY3Rpb24gYWRkVG9waWNJbmZvKHR5cGUsIHRvcGljSWQpIHsKICAgICAgLy8gICAgICBjb25zb2xlLmxvZygidGFiMiIpCiAgICAgIHRoaXMudG9waWNUeXBlID0gdHlwZTsKICAgICAgdGhpcy50b3BpY0Zvcm0gPSB0cnVlOwogICAgICB0aGlzLmVkaXRUb3BpY0lkID0gdG9waWNJZDsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gInRhYjIiOwogICAgfSwKICAgIGFkZFN1YmplY3Q6IGZ1bmN0aW9uIGFkZFN1YmplY3QodGFiLCB0b3BpY0lkLCB0b3BpY0NvZGUpIHsKICAgICAgY29uc29sZS5sb2codGFiICsgIi0tIiArIHRvcGljSWQgKyAiLS0iICsgdG9waWNDb2RlKTsKCiAgICAgIGlmICh0b3BpY0lkKSB7CiAgICAgICAgdGhpcy50b3BpY0lkID0gdG9waWNJZDsKICAgICAgICB0aGlzLnRvcGljQ29kZSA9IHRvcGljQ29kZTsKICAgICAgICB0aGlzLnN1YmplY3RGb3JtID0gdHJ1ZTsKICAgICAgICB0aGlzLnN1YmplY3RUeXBlID0gImFkZCI7CiAgICAgIH0KCiAgICAgIHRoaXMuYWN0aXZlTmFtZSA9ICJ0YWI0IjsKICAgIH0sCiAgICBlZGl0U3ViamVjdDogZnVuY3Rpb24gZWRpdFN1YmplY3QodGFiLCB0eXBlLCBlZGl0SWQsIHRvcGljSWQsIHRvcGljQ29kZSkgewogICAgICBpZiAodHlwZSA9PSAnZWRpdCcgJiYgZWRpdElkKSB7CiAgICAgICAgdGhpcy50b3BpY0lkID0gdG9waWNJZDsKICAgICAgICB0aGlzLnRvcGljQ29kZSA9IHRvcGljQ29kZTsKICAgICAgICB0aGlzLnN1YmplY3RGb3JtID0gdHJ1ZTsKICAgICAgICB0aGlzLnN1YmplY3RUeXBlID0gImVkaXQiOwogICAgICAgIHRoaXMuZWRpdFN1YklkID0gZWRpdElkOwogICAgICB9CgogICAgICB0aGlzLmFjdGl2ZU5hbWUgPSAidGFiNCI7CiAgICB9LAogICAgYWRkQnVkZ2V0Rm9ybTogZnVuY3Rpb24gYWRkQnVkZ2V0Rm9ybSh0eXBlLCBidWRnZXRJZCkgewogICAgICB0aGlzLmJ1ZGdldFR5cGUgPSB0eXBlOwogICAgICB0aGlzLmVkaXRCdWRJZCA9IGJ1ZGdldElkOwogICAgICB0aGlzLmJ1ZGdldEZvcm0gPSB0cnVlOwogICAgICB0aGlzLmFjdGl2ZU5hbWUgPSAidGFiNiI7CiAgICB9LAogICAgYWRkU3ViamVjdEZyb21Ub3BpYzogZnVuY3Rpb24gYWRkU3ViamVjdEZyb21Ub3BpYyh0YWIsIHRvcGljSWQsIHRvcGljQ29kZSkgewogICAgICBjb25zb2xlLmxvZygidGFiMSIsIHRhYiwgdG9waWNJZCwgdG9waWNDb2RlKTsKCiAgICAgIGlmICh0b3BpY0lkICE9IDApIHsKICAgICAgICB0aGlzLnRvcGljSWQgPSB0b3BpY0lkOwogICAgICAgIHRoaXMudG9waWNDb2RlID0gdG9waWNDb2RlOwogICAgICAgIHRoaXMuc3ViamVjdEZvcm0gPSB0cnVlOwogICAgICAgIHRoaXMuYWN0aXZlTmFtZSA9IHRhYjsKICAgICAgICB0aGlzLmVkaXRTdWJJZCA9ICcwJzsKICAgICAgICB0aGlzLnN1YmplY3RUeXBlID0gJ2FkZCc7CiAgICAgIH0KICAgIH0sCiAgICB0b3BpY0FkZEJ1ZGdldDogZnVuY3Rpb24gdG9waWNBZGRCdWRnZXQodGFiLCB0b3BpY0lkLCB0b3BpY0NvZGUpIHsKICAgICAgY29uc29sZS5sb2coInRhYjEiLCB0YWIsIHRvcGljSWQsIHRvcGljQ29kZSk7CgogICAgICBpZiAodG9waWNJZCAhPSAwKSB7CiAgICAgICAgdGhpcy50b3BpY0lkID0gdG9waWNJZDsKICAgICAgICB0aGlzLnRvcGljQ29kZSA9IHRvcGljQ29kZTsKICAgICAgfQoKICAgICAgdGhpcy5idWRnZXRGb3JtID0gdHJ1ZTsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gdGFiOwogICAgICB0aGlzLmJ1ZGdldFR5cGUgPSAnYWRkJzsKICAgICAgdGhpcy5lZGl0QnVkSWQgPSAnMCc7CiAgICB9LAogICAgdG9waWNBZGRQZW9wbGU6IGZ1bmN0aW9uIHRvcGljQWRkUGVvcGxlKHRhYiwgdG9waWNJZCwgdG9waWNDb2RlKSB7CiAgICAgIGlmICh0b3BpY0lkICE9IDApIHsKICAgICAgICB0aGlzLnRvcGljSWQgPSB0b3BpY0lkOwogICAgICAgIHRoaXMudG9waWNDb2RlID0gdG9waWNDb2RlOwogICAgICB9CgogICAgICB0aGlzLnBlb3BsZVR5cGUgPSAnYWRkJzsKICAgICAgdGhpcy5wZW9wbGVJZCA9IDA7CiAgICAgIHRoaXMucGVvcGxlRm9ybSA9IHRydWU7CiAgICAgIHRoaXMuYWN0aXZlTmFtZSA9IHRhYjsKICAgIH0sCiAgICBzdWJqZWN0TGlzdDogZnVuY3Rpb24gc3ViamVjdExpc3QodGFiLCBzdWJqZWN0SWQsIHN1YmplY3RDb2RlKSB7CiAgICAgIHRoaXMuYnVkZ2V0VHlwZSA9ICdhZGQnOwogICAgICB0aGlzLmVkaXRCdWRJZCA9ICcwJzsKICAgICAgdGhpcy5idWRnZXRGb3JtID0gdHJ1ZTsKICAgICAgdGhpcy5zdWJqZWN0SWQgPSBzdWJqZWN0SWQ7CiAgICAgIHRoaXMuc3ViamVjdENvZGUgPSBzdWJqZWN0Q29kZTsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gdGFiOwogICAgfSwKICAgIHN1YmplY3RBZGRQZW9wbGU6IGZ1bmN0aW9uIHN1YmplY3RBZGRQZW9wbGUodGFiLCBzdWJqZWN0SWQsIHN1YmplY3RDb2RlKSB7CiAgICAgIHRoaXMucGVvcGxlVHlwZSA9ICdhZGQnOwogICAgICB0aGlzLnBlb3BsZUlkID0gMDsKICAgICAgdGhpcy5wZW9wbGVGb3JtID0gdHJ1ZTsKICAgICAgdGhpcy5zdWJqZWN0SWQgPSBzdWJqZWN0SWQ7CiAgICAgIHRoaXMuc3ViamVjdENvZGUgPSBzdWJqZWN0Q29kZTsKICAgICAgdGhpcy5hY3RpdmVOYW1lID0gdGFiOwogICAgfSwKICAgIC8v5qC85byP5YyW5LiK5Lyg6ZmE5Lu2CiAgICBmb3JtYXRVcGxvYWRBbm5leDogZnVuY3Rpb24gZm9ybWF0VXBsb2FkQW5uZXgoYW5uZXhOYW1lLCBhbm5leFBhdGgpIHsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKCiAgICAgIGlmIChhbm5leFBhdGggIT0gbnVsbCAmJiBhbm5leFBhdGggIT0gJycpIHsKICAgICAgICB2YXIgYSA9IEpTT04ucGFyc2UoYW5uZXhOYW1lKTsKICAgICAgICB2YXIgYiA9IEpTT04ucGFyc2UoYW5uZXhQYXRoKTsKCiAgICAgICAgaWYgKGEgPT0gbnVsbCkgewogICAgICAgICAgYSA9IFtdOwogICAgICAgICAgYiA9IFtdOwogICAgICAgIH0KCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdC5wdXNoKHsKICAgICAgICAgICAgJ25hbWUnOiBhW2ldLAogICAgICAgICAgICAndXJsJzogcHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSArIGJbaV0KICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICB0aGlzLnVwbG9hZC5maWxlTGlzdCA9IFtdOwogICAgICB9CiAgICB9LAogICAgZm9ybWF0VXBsb2FkQW5uZXgyOiBmdW5jdGlvbiBmb3JtYXRVcGxvYWRBbm5leDIoYW5uZXhOYW1lLCBhbm5leFBhdGgpIHsKICAgICAgdGhpcy51cGxvYWQyLmZpbGVMaXN0ID0gW107CgogICAgICBpZiAoYW5uZXhQYXRoICE9IG51bGwgJiYgYW5uZXhQYXRoICE9ICcnKSB7CiAgICAgICAgdmFyIGEgPSBKU09OLnBhcnNlKGFubmV4TmFtZSk7CiAgICAgICAgdmFyIGIgPSBKU09OLnBhcnNlKGFubmV4UGF0aCk7CgogICAgICAgIGlmIChhID09IG51bGwpIHsKICAgICAgICAgIGEgPSBbXTsKICAgICAgICAgIGIgPSBbXTsKICAgICAgICB9CgogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykgewogICAgICAgICAgdGhpcy51cGxvYWQyLmZpbGVMaXN0LnB1c2goewogICAgICAgICAgICAnbmFtZSc6IGFbaV0sCiAgICAgICAgICAgICd1cmwnOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgYltpXQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMudXBsb2FkMi5maWxlTGlzdCA9IFtdOwogICAgICB9CiAgICB9LAogICAgZm9ybWF0VXBsb2FkQW5uZXgzOiBmdW5jdGlvbiBmb3JtYXRVcGxvYWRBbm5leDMoYW5uZXhOYW1lLCBhbm5leFBhdGgpIHsKICAgICAgdGhpcy51cGxvYWQzLmZpbGVMaXN0ID0gW107CgogICAgICBpZiAoYW5uZXhQYXRoICE9IG51bGwgJiYgYW5uZXhQYXRoICE9ICcnKSB7CiAgICAgICAgdmFyIGEgPSBKU09OLnBhcnNlKGFubmV4TmFtZSk7CiAgICAgICAgdmFyIGIgPSBKU09OLnBhcnNlKGFubmV4UGF0aCk7CgogICAgICAgIGlmIChhID09IG51bGwpIHsKICAgICAgICAgIGEgPSBbXTsKICAgICAgICAgIGIgPSBbXTsKICAgICAgICB9CgogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykgewogICAgICAgICAgdGhpcy51cGxvYWQzLmZpbGVMaXN0LnB1c2goewogICAgICAgICAgICAnbmFtZSc6IGFbaV0sCiAgICAgICAgICAgICd1cmwnOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgYltpXQogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMudXBsb2FkMy5maWxlTGlzdCA9IFtdOwogICAgICB9CiAgICB9LAoKICAgIC8qKuafpeeci+mZhOS7tioqLwogICAgdmlld0FubmV4OiBmdW5jdGlvbiB2aWV3QW5uZXgocm93KSB7CiAgICAgIHRoaXMudXBsb2FkLmZpbGVMaXN0ID0gW107CiAgICAgIHRoaXMuZm9ybWF0VXBsb2FkQW5uZXgocm93LmFubmV4TmFtZSwgcm93LmFubmV4UGF0aCk7CiAgICAgIHRoaXMudXBsb2FkLm9wZW4gPSB0cnVlOyAvLyB0aGlzLnVwbG9hZFByb2plY3QudGl0bGUgPSAi6aG555uu5a+85YWlIjsKICAgICAgLy8gdGhpcy51cGxvYWRQcm9qZWN0Lm9wZW4gPSB0cnVlOwogICAgfSwKICAgIC8v5p+l55yL5oiQ5p6cCiAgICB2aWV3QW5uZXgyOiBmdW5jdGlvbiB2aWV3QW5uZXgyKHJvdykgewogICAgICB0aGlzLnVwbG9hZDIuZmlsZUxpc3QgPSBbXTsKICAgICAgdGhpcy5mb3JtYXRVcGxvYWRBbm5leDIocm93LnJlc3VsdEZpbGUsIHJvdy5yZXN1bHRGaWxlUGF0aCk7CiAgICAgIHRoaXMudXBsb2FkMi5vcGVuID0gdHJ1ZTsgLy8gdGhpcy51cGxvYWRQcm9qZWN0LnRpdGxlID0gIumhueebruWvvOWFpSI7CiAgICAgIC8vIHRoaXMudXBsb2FkUHJvamVjdC5vcGVuID0gdHJ1ZTsKICAgIH0sCiAgICAvL+afpeeci+eri+mhuQogICAgdmlld0FubmV4MzogZnVuY3Rpb24gdmlld0FubmV4Myhyb3cpIHsKICAgICAgdGhpcy51cGxvYWQzLmZpbGVMaXN0ID0gW107CiAgICAgIHRoaXMuZm9ybWF0VXBsb2FkQW5uZXgzKHJvdy5ib29rRmlsZSwgcm93LmJvb2tGaWxlUGF0aCk7CiAgICAgIHRoaXMudXBsb2FkMy5vcGVuID0gdHJ1ZTsgLy8gdGhpcy51cGxvYWRQcm9qZWN0LnRpdGxlID0gIumhueebruWvvOWFpSI7CiAgICAgIC8vIHRoaXMudXBsb2FkUHJvamVjdC5vcGVuID0gdHJ1ZTsKICAgIH0sCiAgICBoYW5kbGVQcmV2aWV3OiBmdW5jdGlvbiBoYW5kbGVQcmV2aWV3KGZpbGUpIHsKICAgICAgdmFyIGEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7CiAgICAgIHZhciBldmVudCA9IG5ldyBNb3VzZUV2ZW50KCdjbGljaycpOwogICAgICBhLmRvd25sb2FkID0gZmlsZS5uYW1lOwogICAgICBhLnRhcmdldCA9ICdfYmxhbmsnOwogICAgICBhLmhyZWYgPSBmaWxlLnVybDsKICAgICAgYS5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKICAgICAgY29uc29sZS5sb2coZmlsZS5uYW1lKTsKICAgIH0sCiAgICBoYW5kbGVQcmV2aWV3MjogZnVuY3Rpb24gaGFuZGxlUHJldmlldzIoZmlsZSkgewogICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKICAgICAgdmFyIGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJyk7CiAgICAgIGEuZG93bmxvYWQgPSBmaWxlLm5hbWU7CiAgICAgIGEudGFyZ2V0ID0gJ19ibGFuayc7CiAgICAgIGEuaHJlZiA9IGZpbGUudXJsOwogICAgICBhLmRpc3BhdGNoRXZlbnQoZXZlbnQpOwogICAgICBjb25zb2xlLmxvZyhmaWxlLm5hbWUpOwogICAgfSwKICAgIGhhbmRsZVByZXZpZXczOiBmdW5jdGlvbiBoYW5kbGVQcmV2aWV3MyhmaWxlKSB7CiAgICAgIHZhciBhID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpOwogICAgICB2YXIgZXZlbnQgPSBuZXcgTW91c2VFdmVudCgnY2xpY2snKTsKICAgICAgYS5kb3dubG9hZCA9IGZpbGUubmFtZTsKICAgICAgYS50YXJnZXQgPSAnX2JsYW5rJzsKICAgICAgYS5ocmVmID0gZmlsZS51cmw7CiAgICAgIGEuZGlzcGF0Y2hFdmVudChldmVudCk7CiAgICAgIGNvbnNvbGUubG9nKGZpbGUubmFtZSk7CiAgICB9LAogICAgaGFuZGxlX3JlbW92ZTogZnVuY3Rpb24gaGFuZGxlX3JlbW92ZShmaWxlLCBmaWxlTGlzdCwgdHlwZSkgewogICAgICB2YXIgX3RtcCA9IHRoaXMudXBsb2FkLmZpbGVMaXN0OwoKICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IF90bXAubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICBpZiAoX3RtcFtpXS5uYW1lID0gZmlsZS5uYW1lKSB7CiAgICAgICAgICBfdG1wLnNwbGljZShpLCAxKTsKCiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIHRoaXMudXBsb2FkLmZpbGVMaXN0ID0gX3RtcDsKICAgICAgdmFyIGEgPSBbXTsKICAgICAgdmFyIGIgPSBbXTsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QuZm9yRWFjaChmdW5jdGlvbiAocykgewogICAgICAgIHZhciB1cmwgPSBzWyd1cmwnXTsKICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJLCAnJyk7CiAgICAgICAgYS5wdXNoKHNbJ25hbWUnXSk7CiAgICAgICAgYi5wdXNoKHVybCk7CiAgICAgIH0pOwogICAgICB0aGlzLmZvcm0uYW5uZXhOYW1lID0gSlNPTi5zdHJpbmdpZnkoYSk7CiAgICAgIHRoaXMuZm9ybS5hbm5leFBhdGggPSBKU09OLnN0cmluZ2lmeShiKTsKICAgIH0sCiAgICBoYW5kbGVfcmVtb3ZlMjogZnVuY3Rpb24gaGFuZGxlX3JlbW92ZTIoZmlsZSwgZmlsZUxpc3QsIHR5cGUpIHsKICAgICAgdmFyIF90bXAgPSB0aGlzLnVwbG9hZDIuZmlsZUxpc3Q7CgogICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gX3RtcC5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgIGlmIChfdG1wW2ldLm5hbWUgPSBmaWxlLm5hbWUpIHsKICAgICAgICAgIF90bXAuc3BsaWNlKGksIDEpOwoKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQoKICAgICAgdGhpcy51cGxvYWQyLmZpbGVMaXN0ID0gX3RtcDsKICAgICAgdmFyIGEgPSBbXTsKICAgICAgdmFyIGIgPSBbXTsKICAgICAgdGhpcy51cGxvYWQyLmZpbGVMaXN0LmZvckVhY2goZnVuY3Rpb24gKHMpIHsKICAgICAgICB2YXIgdXJsID0gc1sndXJsJ107CiAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UocHJvY2Vzcy5lbnYuVlVFX0FQUF9CQVNFX0FQSSwgJycpOwogICAgICAgIGEucHVzaChzWyduYW1lJ10pOwogICAgICAgIGIucHVzaCh1cmwpOwogICAgICB9KTsKICAgICAgdGhpcy5mb3JtLnJlc3VsdEZpbGUgPSBKU09OLnN0cmluZ2lmeShhKTsKICAgICAgdGhpcy5mb3JtLnJlc3VsdEZpbGVQYXRoID0gSlNPTi5zdHJpbmdpZnkoYik7CiAgICB9LAogICAgaGFuZGxlX3JlbW92ZTM6IGZ1bmN0aW9uIGhhbmRsZV9yZW1vdmUzKGZpbGUsIGZpbGVMaXN0LCB0eXBlKSB7CiAgICAgIHZhciBfdG1wID0gdGhpcy51cGxvYWQzLmZpbGVMaXN0OwoKICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IF90bXAubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICBpZiAoX3RtcFtpXS5uYW1lID0gZmlsZS5uYW1lKSB7CiAgICAgICAgICBfdG1wLnNwbGljZShpLCAxKTsKCiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIHRoaXMudXBsb2FkMy5maWxlTGlzdCA9IF90bXA7CiAgICAgIHZhciBhID0gW107CiAgICAgIHZhciBiID0gW107CiAgICAgIHRoaXMudXBsb2FkMy5maWxlTGlzdC5mb3JFYWNoKGZ1bmN0aW9uIChzKSB7CiAgICAgICAgdmFyIHVybCA9IHNbJ3VybCddOwogICAgICAgIHVybCA9IHVybC5yZXBsYWNlKHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEksICcnKTsKICAgICAgICBhLnB1c2goc1snbmFtZSddKTsKICAgICAgICBiLnB1c2godXJsKTsKICAgICAgfSk7CiAgICAgIHRoaXMuZm9ybS5ib29rRmlsZSA9IEpTT04uc3RyaW5naWZ5KGEpOwogICAgICB0aGlzLmZvcm0uYm9va0ZpbGVQYXRoID0gSlNPTi5zdHJpbmdpZnkoYik7CiAgICB9LAogICAgLy8g5paH5Lu25LiK5Lyg5Lit5aSE55CGCiAgICBoYW5kbGVGaWxlVXBsb2FkUHJvZ3Jlc3M6IGZ1bmN0aW9uIGhhbmRsZUZpbGVVcGxvYWRQcm9ncmVzcyhldmVudCwgZmlsZSwgZmlsZUxpc3QpIHsKICAgICAgdGhpcy51cGxvYWQuaXNVcGxvYWRpbmcgPSB0cnVlOwogICAgfSwKICAgIGhhbmRsZUZpbGVVcGxvYWRQcm9ncmVzczI6IGZ1bmN0aW9uIGhhbmRsZUZpbGVVcGxvYWRQcm9ncmVzczIoZXZlbnQsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIHRoaXMudXBsb2FkMi5pc1VwbG9hZGluZyA9IHRydWU7CiAgICB9LAogICAgaGFuZGxlRmlsZVVwbG9hZFByb2dyZXNzMzogZnVuY3Rpb24gaGFuZGxlRmlsZVVwbG9hZFByb2dyZXNzMyhldmVudCwgZmlsZSwgZmlsZUxpc3QpIHsKICAgICAgdGhpcy51cGxvYWQzLmlzVXBsb2FkaW5nID0gdHJ1ZTsKICAgIH0sCiAgICAvLyDmlofku7bkuIrkvKDmiJDlip/lpITnkIYKICAgIGhhbmRsZUZpbGVTdWNjZXNzOiBmdW5jdGlvbiBoYW5kbGVGaWxlU3VjY2VzcyhyZXNwb25zZSwgZmlsZSwgZmlsZUxpc3QpIHsKICAgICAgdGhpcy51cGxvYWQuaXNVcGxvYWRpbmcgPSBmYWxzZTsKICAgICAgdmFyIGEgPSBKU09OLnBhcnNlKHRoaXMuZm9ybS5hbm5leE5hbWUpOwogICAgICB2YXIgYiA9IEpTT04ucGFyc2UodGhpcy5mb3JtLmFubmV4UGF0aCk7CgogICAgICBpZiAoYSA9PSBudWxsKSB7CiAgICAgICAgYSA9IFtdOwogICAgICAgIGIgPSBbXTsKICAgICAgfQoKICAgICAgYS5wdXNoKHJlc3BvbnNlLmZpbGVOYW1lKTsKICAgICAgYi5wdXNoKHJlc3BvbnNlLnVybCk7CiAgICAgIGNvbnNvbGUubG9nKGEsICctLS0tLS0tLScpOwogICAgICB0aGlzLmZvcm0uYW5uZXhOYW1lID0gSlNPTi5zdHJpbmdpZnkoYSk7CiAgICAgIHRoaXMuZm9ybS5hbm5leFBhdGggPSBKU09OLnN0cmluZ2lmeShiKTsKICAgICAgY29uc29sZS5sb2coYSwgJy0tLS0tLS0tJyk7CiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybS5hbm5leE5hbWUsICctLS0tKysrKysrKysrLS0tLScpOyAvLyAgdGhpcy5mb3JtLmFubmV4TmFtZSA9IHJlc3BvbnNlLmZpbGVOYW1lOwogICAgICAvLyAgdGhpcy5mb3JtLmFubmV4UGF0aCA9IHJlc3BvbnNlLnVybDsKCiAgICAgIHRoaXMubXNnU3VjY2VzcyhyZXNwb25zZS5tc2cpOwogICAgfSwKICAgIGhhbmRsZUZpbGVTdWNjZXNzMjogZnVuY3Rpb24gaGFuZGxlRmlsZVN1Y2Nlc3MyKHJlc3BvbnNlLCBmaWxlLCBmaWxlTGlzdCkgewogICAgICB0aGlzLnVwbG9hZDIuaXNVcGxvYWRpbmcgPSBmYWxzZTsKICAgICAgdmFyIGEgPSBKU09OLnBhcnNlKHRoaXMuZm9ybS5yZXN1bHRGaWxlKTsKICAgICAgdmFyIGIgPSBKU09OLnBhcnNlKHRoaXMuZm9ybS5yZXN1bHRGaWxlUGF0aCk7CgogICAgICBpZiAoYSA9PSBudWxsKSB7CiAgICAgICAgYSA9IFtdOwogICAgICAgIGIgPSBbXTsKICAgICAgfQoKICAgICAgYS5wdXNoKHJlc3BvbnNlLmZpbGVOYW1lKTsKICAgICAgYi5wdXNoKHJlc3BvbnNlLnVybCk7CiAgICAgIGNvbnNvbGUubG9nKGEsICctLS0tLS0tLScpOwogICAgICB0aGlzLmZvcm0ucmVzdWx0RmlsZSA9IEpTT04uc3RyaW5naWZ5KGEpOwogICAgICB0aGlzLmZvcm0ucmVzdWx0RmlsZVBhdGggPSBKU09OLnN0cmluZ2lmeShiKTsKICAgICAgY29uc29sZS5sb2coYSwgJy0tLS0tLS0tJyk7CiAgICAgIGNvbnNvbGUubG9nKHRoaXMuZm9ybS5yZXN1bHRGaWxlLCAnLS0tLSsrKysrKysrKy0tLS0nKTsgLy8gIHRoaXMuZm9ybS5hbm5leE5hbWUgPSByZXNwb25zZS5maWxlTmFtZTsKICAgICAgLy8gIHRoaXMuZm9ybS5hbm5leFBhdGggPSByZXNwb25zZS51cmw7CgogICAgICB0aGlzLm1zZ1N1Y2Nlc3MocmVzcG9uc2UubXNnKTsKICAgIH0sCiAgICBoYW5kbGVGaWxlU3VjY2VzczM6IGZ1bmN0aW9uIGhhbmRsZUZpbGVTdWNjZXNzMyhyZXNwb25zZSwgZmlsZSwgZmlsZUxpc3QpIHsKICAgICAgdGhpcy51cGxvYWQzLmlzVXBsb2FkaW5nID0gZmFsc2U7CiAgICAgIHZhciBhID0gSlNPTi5wYXJzZSh0aGlzLmZvcm0uYm9va0ZpbGUpOwogICAgICB2YXIgYiA9IEpTT04ucGFyc2UodGhpcy5mb3JtLmJvb2tGaWxlUGF0aCk7CgogICAgICBpZiAoYSA9PSBudWxsKSB7CiAgICAgICAgYSA9IFtdOwogICAgICAgIGIgPSBbXTsKICAgICAgfQoKICAgICAgYS5wdXNoKHJlc3BvbnNlLmZpbGVOYW1lKTsKICAgICAgYi5wdXNoKHJlc3BvbnNlLnVybCk7CiAgICAgIGNvbnNvbGUubG9nKGEsICctLS0tLS0tLScpOwogICAgICB0aGlzLmZvcm0uYm9va0ZpbGUgPSBKU09OLnN0cmluZ2lmeShhKTsKICAgICAgdGhpcy5mb3JtLmJvb2tGaWxlUGF0aCA9IEpTT04uc3RyaW5naWZ5KGIpOwogICAgICBjb25zb2xlLmxvZyhhLCAnLS0tLS0tLS0nKTsKICAgICAgY29uc29sZS5sb2codGhpcy5mb3JtLmJvb2tGaWxlLCAnLS0tLSsrKysrKysrKy0tLS0nKTsgLy8gIHRoaXMuZm9ybS5hbm5leE5hbWUgPSByZXNwb25zZS5maWxlTmFtZTsKICAgICAgLy8gIHRoaXMuZm9ybS5hbm5leFBhdGggPSByZXNwb25zZS51cmw7CgogICAgICB0aGlzLm1zZ1N1Y2Nlc3MocmVzcG9uc2UubXNnKTsKICAgIH0KICB9Cn07"},null]} |