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
31 KiB
1 lines
31 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\\indexCopy2.vue?vue&type=script&lang=js&","dependencies":[{"path":"F:\\workspace\\gcy\\RK-html\\RK-project\\ruoyi-ui\\src\\views\\indexCopy2.vue","mtime":1638497727430},{"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:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuZnVuY3Rpb24ubmFtZS5qcyI7Ci8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCi8vCmltcG9ydCB7IGxpc3RJbmZvLCBnZXRJbmZvLCBkZWxJbmZvLCBhZGRJbmZvLCB1cGRhdGVJbmZvLCBleHBvcnRJbmZvLCBpbXBvcnRUZW1wbGF0ZSBhcyBfaW1wb3J0VGVtcGxhdGUgfSBmcm9tICJAL2FwaS9wcm9qZWN0L2luZm8yIjsKaW1wb3J0IHsgZ2V0VG9rZW4gfSBmcm9tICJAL3V0aWxzL2F1dGgiOwppbXBvcnQgQkxZaVR1b0NoYXJ0IGZyb20gIi4vZGFzaGJvYXJkL0JMWWlUdW9DaGFydCI7CmltcG9ydCBCYXJDaGFydDMgZnJvbSAiLi9kYXNoYm9hcmQvQmFyQ2hhcnQzIjsKaW1wb3J0IEJhckxpbmVDaGFydCBmcm9tICIuL2Rhc2hib2FyZC9CYXJMaW5lQ2hhcnQiOwppbXBvcnQgeyB0b3RhbEJ1Z2V0RGF0YSwgbGVmdDFEYXRhLCBsZWZ0N0RhdGEsIGNlbnRlcjhEYXRhLCBsZWZ0N0RhdGEyIH0gZnJvbSAiQC9hcGkvcHJvamVjdC9pbmZvMyI7CmV4cG9ydCBkZWZhdWx0IHsKICBuYW1lOiAiSW5mbyIsCiAgY29tcG9uZW50czogewogICAgQkxZaVR1b0NoYXJ0OiBCTFlpVHVvQ2hhcnQsCiAgICBCYXJDaGFydDM6IEJhckNoYXJ0MywKICAgIEJhckxpbmVDaGFydDogQmFyTGluZUNoYXJ0CiAgfSwKICBkYXRhOiBmdW5jdGlvbiBkYXRhKCkgewogICAgcmV0dXJuIHsKICAgICAgLy8g5LiK5Lyg5Y+C5pWwCiAgICAgIHVwbG9hZFByb2plY3Q6IHsKICAgICAgICAvLyDmmK/lkKbmmL7npLrlvLnlh7rlsYLvvIjnlKjmiLflr7zlhaXvvIkKICAgICAgICBvcGVuOiBmYWxzZSwKICAgICAgICAvLyDlvLnlh7rlsYLmoIfpopjvvIjnlKjmiLflr7zlhaXvvIkKICAgICAgICB0aXRsZTogIiIsCiAgICAgICAgLy8g5piv5ZCm56aB55So5LiK5LygCiAgICAgICAgaXNVcGxvYWRpbmc6IGZhbHNlLAogICAgICAgIC8vIOaYr+WQpuabtOaWsOW3sue7j+WtmOWcqOeahOeUqOaIt+aVsOaNrgogICAgICAgIHVwZGF0ZVN1cHBvcnQ6IDAsCiAgICAgICAgLy8g6K6+572u5LiK5Lyg55qE6K+35rGC5aS06YOoCiAgICAgICAgaGVhZGVyczogewogICAgICAgICAgQXV0aG9yaXphdGlvbjogIkJlYXJlciAiICsgZ2V0VG9rZW4oKQogICAgICAgIH0sCiAgICAgICAgLy8g5LiK5Lyg55qE5Zyw5Z2ACiAgICAgICAgdXJsOiBwcm9jZXNzLmVudi5WVUVfQVBQX0JBU0VfQVBJICsgIi9zeXN0ZW0vaW5mby9pbXBvcnREYXRhIgogICAgICB9LAogICAgICAvLyDkuIrkvKDlj4LmlbAKICAgICAgdXBsb2FkOiB7CiAgICAgICAgdGl0bGU6ICIiLAogICAgICAgIG9wZW46IGZhbHNlLAogICAgICAgIC8vIOaYr+WQpuemgeeUqOS4iuS8oAogICAgICAgIGlzVXBsb2FkaW5nOiBmYWxzZSwKICAgICAgICAvLyDorr7nva7kuIrkvKDnmoTor7fmsYLlpLTpg6gKICAgICAgICBoZWFkZXJzOiB7CiAgICAgICAgICBBdXRob3JpemF0aW9uOiAiQmVhcmVyICIgKyBnZXRUb2tlbigpCiAgICAgICAgfSwKICAgICAgICAvLyDkuIrkvKDnmoTlnLDlnYAKICAgICAgICB1cmw6IHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEkgKyAiL3Byb2plY3QvaW5mby9jb21tb24vdXBsb2FkIiwKICAgICAgICAvLyDkuIrkvKDnmoTmlofku7bliJfooagKICAgICAgICBmaWxlTGlzdDogW10KICAgICAgfSwKICAgICAgLy8g6YGu572p5bGCCiAgICAgIGxvYWRpbmc6IHRydWUsCiAgICAgIC8vIOmAieS4reaVsOe7hAogICAgICBpZHM6IFtdLAogICAgICAvLyDpnZ7ljZXkuKrnpoHnlKgKICAgICAgc2luZ2xlOiB0cnVlLAogICAgICAvLyDpnZ7lpJrkuKrnpoHnlKgKICAgICAgbXVsdGlwbGU6IHRydWUsCiAgICAgIC8vIOaYvuekuuaQnOe0ouadoeS7tgogICAgICBzaG93U2VhcmNoOiB0cnVlLAogICAgICAvLyDmgLvmnaHmlbAKICAgICAgdG90YWw6IDAsCiAgICAgIC8vIOOAkOivt+Whq+WGmeWKn+iDveWQjeensOOAkeihqOagvOaVsOaNrgogICAgICBpbmZvTGlzdDogW10sCiAgICAgIC8vIOW8ueWHuuWxguagh+mimAogICAgICB0aXRsZTogIiIsCiAgICAgIC8vIOaYr+WQpuaYvuekuuW8ueWHuuWxggogICAgICBvcGVuOiBmYWxzZSwKICAgICAgbmFtZVR1T3BlbjogZmFsc2UsCiAgICAgIHVzZXJOYW1lVHVPcGVuOiBmYWxzZSwKICAgICAgdG90YWxCdWdldDogbnVsbCwKICAgICAgZGlhbG9nRm9ybVZpc2libGU6IGZhbHNlLAogICAgICBzdGF0dXNPcHRpb25zOiBbXSwKICAgICAgdHlwZU9wdGlvbnM6IFtdLAogICAgICBzZWNyZXRPcHRpb25zOiBbXSwKICAgICAgc291cmNlT3B0aW9uczogW10sCiAgICAgIGNhdGVnb3J5T3B0aW9uczogW10sCiAgICAgIHllc05vT3B0aW9uczogW10sCiAgICAgIHllYXJPcHRpb25zOiBbXSwKICAgICAgeEF4aXNDZW50ZXI4OiBbXSwKICAgICAgc2VyaWVzQ2VudGVyODogW10sCiAgICAgIHhBeGlzQ2VudGVyNzogW10sCiAgICAgIHNlcmllc0NlbnRlcjc6IFtdLAogICAgICBibFg6IFtdLAogICAgICBibExnOiBbXSwKICAgICAgYmxTZXI6IFtdLAogICAgICBvdFRpdGxlOiAiIiwKICAgICAgLy8g5p+l6K+i5Y+C5pWwCiAgICAgIHF1ZXJ5UGFyYW1zOiB7CiAgICAgICAgcGFnZU51bTogMSwKICAgICAgICBwYWdlU2l6ZTogMTAsCiAgICAgICAgY2F0ZWdvcnk6IG51bGwsCiAgICAgICAgY29kZTogbnVsbCwKICAgICAgICBuYW1lOiBudWxsLAogICAgICAgIHVzZXJOYW1lOiBudWxsLAogICAgICAgIHR5cGU6IG51bGwsCiAgICAgICAgZGVwYXJ0bWVudElkOiBudWxsLAogICAgICAgIHVzZXJJZDogbnVsbCwKICAgICAgICBkZWFkbGluZTogbnVsbCwKICAgICAgICB0b3RhbE91dGxheTogbnVsbCwKICAgICAgICBmaXJzdE91dGxheTogbnVsbCwKICAgICAgICBzZWNvbmRPdXRsYXk6IG51bGwsCiAgICAgICAgc3RhdHVzOiBudWxsLAogICAgICAgIGJlZ2luRGF0ZTogbnVsbCwKICAgICAgICBjb21wbGV0ZURhdGU6IG51bGwsCiAgICAgICAgYmVnaW5EYXRlTFg6IG51bGwsCiAgICAgICAgY29tcGxldGVEYXRlTFg6IG51bGwsCiAgICAgICAgZW5kRGF0ZTogbnVsbCwKICAgICAgICBhcHByb3ZhbERhdGU6IG51bGwsCiAgICAgICAgaXNTZWNyZWN5OiBudWxsLAogICAgICAgIHNlY3JlY3lMZXZlbDogbnVsbCwKICAgICAgICBzZWNyZWN5VGVybTogbnVsbCwKICAgICAgICBpc1RvcGljOiBudWxsLAogICAgICAgIHRhc2tUYXJnZXQ6IG51bGwsCiAgICAgICAgcmVzdWx0VGFyZ2V0OiBudWxsLAogICAgICAgIG1ldGhvZFJvdXRlOiBudWxsLAogICAgICAgIHBsYW46IG51bGwsCiAgICAgICAgc3BlbmRFeHBsYWluOiBudWxsLAogICAgICAgIHJlbHlJZDogbnVsbCwKICAgICAgICBsYXN0RGF0ZTogbnVsbCwKICAgICAgICByZXZpZXdTdGF0dXNYYjogbnVsbCwKICAgICAgICByZXZpZXdTdGF0dXNDdzogbnVsbCwKICAgICAgICB0b3RhbEJ1ZGdldDogbnVsbCwKICAgICAgICBmaXJzdEJ1ZGdldDogbnVsbCwKICAgICAgICBzZWNvbmRCdWRnZXQ6IG51bGwsCiAgICAgICAgYXBwbHlJZDogbnVsbCwKICAgICAgICBwcm9qZWN0U291cmNlOiBudWxsLAogICAgICAgIHByb2plY3RTb3VyY2VDb21wYW55OiBudWxsLAogICAgICAgIHJldmlld1N0YXR1c1p3aDogbnVsbCwKICAgICAgICBpc0FncmVlbWVudDogbnVsbCwKICAgICAgICByZWx5VW5pdEhlYWQ6IG51bGwsCiAgICAgICAgcmVseVVuaXRIZWFkdG9jdzogbnVsbCwKICAgICAgICB0YXNrUGVyaW9kOiBudWxsLAogICAgICAgIG90aGVycGxhbjogbnVsbCwKICAgICAgICBwb2ludDogbnVsbCwKICAgICAgICByZXN1bHQ6IG51bGwsCiAgICAgICAgaW50cm9kdWN0aW9uOiBudWxsLAogICAgICAgIHByb3Byb3Rpb246IG51bGwsCiAgICAgICAgdGVybTogbnVsbCwKICAgICAgICBwaXNoaVN0YXR1czogbnVsbCwKICAgICAgICB5ZWFyUmFkaW8yOiBudWxsLAogICAgICAgIHByb1Blb3BOYW1lOiBudWxsLAogICAgICAgIHlpdHVvQXJlYTogbnVsbCwKICAgICAgICBpc1Jlc3VsdDogbnVsbCwKICAgICAgICBpbXBvcnRhbnRLZXk6IG51bGwsCiAgICAgICAgc2VhcmNoVmFsdWU6IG51bGwKICAgICAgfSwKICAgICAgLy8g6KGo5Y2V5Y+C5pWwCiAgICAgIGZvcm06IHt9LAogICAgICAvLyDooajljZXmoKHpqowKICAgICAgcnVsZXM6IHt9LAogICAgICBmb3JtQ291bnRlbjogewogICAgICAgIG5hbWU6ICcnLAogICAgICAgIHJlZ2lvbjogJycsCiAgICAgICAgZGF0ZTE6ICcnLAogICAgICAgIGRhdGUyOiAnJywKICAgICAgICBkZWxpdmVyeTogZmFsc2UsCiAgICAgICAgdHlwZTogW10sCiAgICAgICAgcmVzb3VyY2U6ICcnLAogICAgICAgIGRlc2M6ICcnCiAgICAgIH0sCiAgICAgIGZvcm1MYWJlbFdpZHRoOiAnMTIwcHgnCiAgICB9OwogIH0sCiAgY3JlYXRlZDogZnVuY3Rpb24gY3JlYXRlZCgpIHsKICAgIHZhciBfdGhpcyA9IHRoaXM7CgogICAgaWYgKHRoaXMuJHJvdXRlLnF1ZXJ5LnllYXJSYWRpbzIpIHsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy55ZWFyUmFkaW8yID0gdGhpcy4kcm91dGUucXVlcnkueWVhclJhZGlvMjsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMueWVhclJhZGlvMiA9ICIwIjsKICAgIH0KCiAgICBpZiAodGhpcy4kcm91dGUucXVlcnkuc2VjcmVjeUxldmVsKSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMuc2VjcmVjeUxldmVsID0gdGhpcy4kcm91dGUucXVlcnkuc2VjcmVjeUxldmVsOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5zZWNyZWN5TGV2ZWwgPSAiMCI7CiAgICB9CgogICAgaWYgKHRoaXMuJHJvdXRlLnF1ZXJ5LnR5cGUpIHsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy50eXBlID0gdGhpcy4kcm91dGUucXVlcnkudHlwZTsKICAgIH0gZWxzZSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMudHlwZSA9ICIwIjsKICAgIH0KCiAgICBpZiAodGhpcy4kcm91dGUucXVlcnkuZGVwYXJ0bWVudElkKSB7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMuZGVwYXJ0bWVudElkID0gdGhpcy4kcm91dGUucXVlcnkuZGVwYXJ0bWVudElkOwogICAgfSBlbHNlIHsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5kZXBhcnRtZW50SWQgPSAiMCI7CiAgICB9CgogICAgdGhpcy5xdWVyeVBhcmFtcy55aXR1b1VuaXQgPSB0aGlzLiRyb3V0ZS5xdWVyeS55aXR1b1VuaXQ7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLnVzZXJOYW1lID0gdGhpcy4kcm91dGUucXVlcnkudXNlck5hbWU7CiAgICB0aGlzLnF1ZXJ5UGFyYW1zLmltcG9ydGFudEtleSA9IHRoaXMuJHJvdXRlLnF1ZXJ5LmltcG9ydGFudEtleTsKICAgIHRoaXMucXVlcnlQYXJhbXMueWl0dW9BcmVhID0gdGhpcy4kcm91dGUucXVlcnkueWl0dW9BcmVhOyAvLyB0aGlzLnF1ZXJ5UGFyYW1zLnllYXJSYWRpbyA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnllYXJSYWRpbzsKICAgIC8vCiAgICAvLyB0aGlzLnF1ZXJ5UGFyYW1zLmlzUmVzdWx0ID0gdGhpcy4kcm91dGUucXVlcnkuaXNSZXN1bHQ7CiAgICAvLyB0aGlzLnF1ZXJ5UGFyYW1zLnN0YXR1cyA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnN0YXR1czsKICAgIC8vCiAgICAvLwoKICAgIHZhciBkYXRlID0gbmV3IERhdGUoKTsKICAgIHZhciB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOwogICAgY29uc29sZS5sb2coeWVhciwgeWVhciAtIDEsIHllYXIgLSAyKTsKICAgIHRoaXMueWVhck9wdGlvbnNbMF0gPSB5ZWFyOwogICAgdGhpcy55ZWFyT3B0aW9uc1sxXSA9IHllYXIgLSAxOwogICAgdGhpcy55ZWFyT3B0aW9uc1syXSA9IHllYXIgLSAyOwogICAgdGhpcy55ZWFyT3B0aW9uc1szXSA9IHllYXIgLSAzOwogICAgdGhpcy55ZWFyT3B0aW9uc1s0XSA9IHllYXIgLSA0OwogICAgdGhpcy55ZWFyT3B0aW9uc1s1XSA9IHllYXIgLSA1OwogICAgdGhpcy5nZXRMaXN0KCk7CiAgICB0aGlzLmdldERpY3RzKCJwcm9fdHlwZSIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnR5cGVPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogICAgdGhpcy5nZXREaWN0cygicHJvX3NlY3JldF9sZXZlbCIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnNlY3JldE9wdGlvbnMgPSByZXNwb25zZS5kYXRhOwogICAgfSk7CiAgICB0aGlzLmdldERpY3RzKCJwcm9fc291cmNlIikudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgX3RoaXMuc291cmNlT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICAgIHRoaXMuZ2V0RGljdHMoInByb19jYXRlZ29yeSIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLmNhdGVnb3J5T3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICAgIHRoaXMuZ2V0RGljdHMoInByb19zdGF0dXMiKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICBfdGhpcy5zdGF0dXNPcHRpb25zID0gcmVzcG9uc2UuZGF0YTsKICAgIH0pOwogICAgdGhpcy5nZXREaWN0cygic3lzX3llc19ubyIpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgIF90aGlzLnllc05vT3B0aW9ucyA9IHJlc3BvbnNlLmRhdGE7CiAgICB9KTsKICB9LAogIG1ldGhvZHM6IHsKICAgIHNvcnRDaGFuZ2U6IGZ1bmN0aW9uIHNvcnRDaGFuZ2UoY29sdW1uLCBwcm9wLCBvcmRlcikgewogICAgICAvLyBjb25zb2xlLmxvZyhjb2x1bW4ucHJvcCk7IC8vcHJvcOagh+etviA9PiBuaWNrbmFtZQogICAgICAvLyBjb25zb2xlLmxvZyhjb2x1bW4ub3JkZXIpOy8vZGVzY2VuZGluZ+mZjeW6j+OAgWFzY2VuZGluZ+WNh+W6jwogICAgICBpZiAoY29sdW1uLnByb3AgPT0gImNhdGVnb3J5IikgewogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuY2F0ZWdvcnlPcmRlciA9ICIxIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmNvZGVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMubmFtZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50eXBlT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmRlYWRsaW5lT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnRvdGFsT3V0bGF5T3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnByb2plY3RTb3VyY2VPcmRlciA9ICIiOwogICAgICB9IGVsc2UgaWYgKGNvbHVtbi5wcm9wID09ICJjb2RlIikgewogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuY2F0ZWdvcnlPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuY29kZU9yZGVyID0gIjEiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMubmFtZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50eXBlT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmRlYWRsaW5lT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnRvdGFsT3V0bGF5T3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnByb2plY3RTb3VyY2VPcmRlciA9ICIiOwogICAgICB9IGVsc2UgaWYgKGNvbHVtbi5wcm9wID09ICJuYW1lIikgewogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuY2F0ZWdvcnlPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuY29kZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5uYW1lT3JkZXIgPSAiMSI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50eXBlT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmRlYWRsaW5lT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnRvdGFsT3V0bGF5T3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnByb2plY3RTb3VyY2VPcmRlciA9ICIiOwogICAgICB9IGVsc2UgaWYgKGNvbHVtbi5wcm9wID09ICJ0eXBlIikgewogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuY2F0ZWdvcnlPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMuY29kZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5uYW1lT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnR5cGVPcmRlciA9ICIxIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmRlYWRsaW5lT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnRvdGFsT3V0bGF5T3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnByb2plY3RTb3VyY2VPcmRlciA9ICIiOwogICAgICB9IGVsc2UgaWYgKGNvbHVtbi5wcm9wID09ICJkZWFkbGluZSIpIHsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmNhdGVnb3J5T3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmNvZGVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMubmFtZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50eXBlT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLmRlYWRsaW5lT3JkZXIgPSAiMSI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50b3RhbE91dGxheU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wcm9qZWN0U291cmNlT3JkZXIgPSAiIjsKICAgICAgfSBlbHNlIGlmIChjb2x1bW4ucHJvcCA9PSAidG90YWxPdXRsYXkiKSB7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5jYXRlZ29yeU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5jb2RlT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLm5hbWVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMudHlwZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5kZWFkbGluZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50b3RhbE91dGxheU9yZGVyID0gIjEiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMucHJvamVjdFNvdXJjZU9yZGVyID0gIiI7CiAgICAgIH0gZWxzZSBpZiAoY29sdW1uLnByb3AgPT0gInByb2plY3RTb3VyY2UiKSB7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5jYXRlZ29yeU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5jb2RlT3JkZXIgPSAiIjsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLm5hbWVPcmRlciA9ICIiOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXMudHlwZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5kZWFkbGluZU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy50b3RhbE91dGxheU9yZGVyID0gIiI7CiAgICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wcm9qZWN0U291cmNlT3JkZXIgPSAiMSI7CiAgICAgIH0KCiAgICAgIGlmIChjb2x1bW4ub3JkZXIgPT0gImFzY2VuZGluZyIpIHsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLm9yZGVyU29ydCA9ICJhc2MiOwogICAgICB9IGVsc2UgaWYgKGNvbHVtbi5vcmRlciA9PSAiZGVzY2VuZGluZyIpIHsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLm9yZGVyU29ydCA9ICJkZXNjIjsKICAgICAgfQoKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LAogICAgaXNUb3BpY0Zvcm1hdDogZnVuY3Rpb24gaXNUb3BpY0Zvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy55ZXNOb09wdGlvbnMsIHJvdy5pc1RvcGljKTsKICAgIH0sCiAgICBpc1NlY3JlY3lGb3JtYXQ6IGZ1bmN0aW9uIGlzU2VjcmVjeUZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy55ZXNOb09wdGlvbnMsIHJvdy5pc1NlY3JlY3kpOwogICAgfSwKICAgIHR5cGVGb3JtYXQ6IGZ1bmN0aW9uIHR5cGVGb3JtYXQocm93LCBjb2x1bW4pIHsKICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0RGljdExhYmVsKHRoaXMudHlwZU9wdGlvbnMsIHJvdy50eXBlKTsKICAgIH0sCiAgICBzZWNyZXRGb3JtYXQ6IGZ1bmN0aW9uIHNlY3JldEZvcm1hdChyb3csIGNvbHVtbikgewogICAgICByZXR1cm4gdGhpcy5zZWxlY3REaWN0TGFiZWwodGhpcy5zZWNyZXRPcHRpb25zLCByb3cuc2VjcmVjeUxldmVsKTsKICAgIH0sCiAgICBjYXRlZ29yeUZvcm1hdDogZnVuY3Rpb24gY2F0ZWdvcnlGb3JtYXQocm93LCBjb2x1bW4pIHsKICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0RGljdExhYmVsKHRoaXMuY2F0ZWdvcnlPcHRpb25zLCByb3cuY2F0ZWdvcnkpOwogICAgfSwKICAgIHN0YXR1c0Zvcm1hdDogZnVuY3Rpb24gc3RhdHVzRm9ybWF0KHJvdywgY29sdW1uKSB7CiAgICAgIHJldHVybiB0aGlzLnNlbGVjdERpY3RMYWJlbCh0aGlzLnN0YXR1c09wdGlvbnMsIHJvdy5zdGF0dXMpOwogICAgfSwKICAgIHNvdXJjZUZvcm1hdDogZnVuY3Rpb24gc291cmNlRm9ybWF0KHJvdywgY29sdW1uKSB7CiAgICAgIHJldHVybiB0aGlzLnNlbGVjdERpY3RMYWJlbCh0aGlzLnNvdXJjZU9wdGlvbnMsIHJvdy5wcm9qZWN0U291cmNlKTsKICAgIH0sCgogICAgLyoqIOWvvOWFpeaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlSW1wb3J0OiBmdW5jdGlvbiBoYW5kbGVJbXBvcnQoKSB7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC50aXRsZSA9ICLpobnnm67lr7zlhaUiOwogICAgICB0aGlzLnVwbG9hZFByb2plY3Qub3BlbiA9IHRydWU7CiAgICB9LAoKICAgIC8qKiDmn6Xor6LjgJDor7floavlhpnlip/og73lkI3np7DjgJHliJfooaggKi8KICAgIGdldExpc3Q6IGZ1bmN0aW9uIGdldExpc3QoKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwoKICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTsKICAgICAgY29uc29sZS5sb2codGhpcy5xdWVyeVBhcmFtcy5zZWNyZWN5TGV2ZWwsICItLS0tLS0tLS0tLS0tLS0tLS0tLS0iKTsKICAgICAgbGlzdEluZm8odGhpcy5xdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczIuaW5mb0xpc3QgPSByZXNwb25zZS5yb3dzOwogICAgICAgIF90aGlzMi50b3RhbCA9IHJlc3BvbnNlLnRvdGFsOwogICAgICAgIF90aGlzMi5sb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWPlua2iOaMiemSrgogICAgY2FuY2VsOiBmdW5jdGlvbiBjYW5jZWwoKSB7CiAgICAgIHRoaXMub3BlbiA9IGZhbHNlOwogICAgICB0aGlzLnJlc2V0KCk7CiAgICB9LAogICAgLy8g6KGo5Y2V6YeN572uCiAgICByZXNldDogZnVuY3Rpb24gcmVzZXQoKSB7CiAgICAgIHRoaXMuZm9ybSA9IHsKICAgICAgICBpZDogbnVsbCwKICAgICAgICBjYXRlZ29yeTogbnVsbCwKICAgICAgICBjb2RlOiBudWxsLAogICAgICAgIG5hbWU6IG51bGwsCiAgICAgICAgdHlwZTogbnVsbCwKICAgICAgICBkZXBhcnRtZW50SWQ6IG51bGwsCiAgICAgICAgdXNlcklkOiBudWxsLAogICAgICAgIGRlYWRsaW5lOiBudWxsLAogICAgICAgIHRvdGFsT3V0bGF5OiBudWxsLAogICAgICAgIGZpcnN0T3V0bGF5OiBudWxsLAogICAgICAgIHNlY29uZE91dGxheTogbnVsbCwKICAgICAgICBzdGF0dXM6IDAsCiAgICAgICAgYmVnaW5EYXRlOiBudWxsLAogICAgICAgIGNvbXBsZXRlRGF0ZTogbnVsbCwKICAgICAgICBlbmREYXRlOiBudWxsLAogICAgICAgIGFwcHJvdmFsRGF0ZTogbnVsbCwKICAgICAgICBpc1NlY3JlY3k6IG51bGwsCiAgICAgICAgc2VjcmVjeUxldmVsOiBudWxsLAogICAgICAgIHNlY3JlY3lUZXJtOiBudWxsLAogICAgICAgIGlzVG9waWM6IG51bGwsCiAgICAgICAgdGFza1RhcmdldDogbnVsbCwKICAgICAgICByZXN1bHRUYXJnZXQ6IG51bGwsCiAgICAgICAgbWV0aG9kUm91dGU6IG51bGwsCiAgICAgICAgcGxhbjogbnVsbCwKICAgICAgICBzcGVuZEV4cGxhaW46IG51bGwsCiAgICAgICAgcmVseUlkOiBudWxsLAogICAgICAgIGxhc3REYXRlOiBudWxsLAogICAgICAgIHJldmlld1N0YXR1c1hiOiBudWxsLAogICAgICAgIHJldmlld1N0YXR1c0N3OiBudWxsLAogICAgICAgIHRvdGFsQnVkZ2V0OiBudWxsLAogICAgICAgIGZpcnN0QnVkZ2V0OiBudWxsLAogICAgICAgIHNlY29uZEJ1ZGdldDogbnVsbCwKICAgICAgICBhcHBseUlkOiBudWxsLAogICAgICAgIHByb2plY3RTb3VyY2U6IG51bGwsCiAgICAgICAgcHJvamVjdFNvdXJjZUNvbXBhbnk6IG51bGwsCiAgICAgICAgcmV2aWV3U3RhdHVzWndoOiBudWxsLAogICAgICAgIGlzQWdyZWVtZW50OiBudWxsLAogICAgICAgIHJlbHlVbml0SGVhZDogbnVsbCwKICAgICAgICByZWx5VW5pdEhlYWR0b2N3OiBudWxsLAogICAgICAgIHRhc2tQZXJpb2Q6IG51bGwsCiAgICAgICAgb3RoZXJwbGFuOiBudWxsLAogICAgICAgIHBvaW50OiBudWxsLAogICAgICAgIHJlc3VsdDogbnVsbCwKICAgICAgICBpbnRyb2R1Y3Rpb246IG51bGwsCiAgICAgICAgcHJvcHJvdGlvbjogbnVsbCwKICAgICAgICB0ZXJtOiBudWxsLAogICAgICAgIGNyZWF0ZUJ5OiBudWxsLAogICAgICAgIGNyZWF0ZVRpbWU6IG51bGwsCiAgICAgICAgdXBkYXRlQnk6IG51bGwsCiAgICAgICAgdXBkYXRlVGltZTogbnVsbCwKICAgICAgICBkZWxGbGFnOiBudWxsCiAgICAgIH07CiAgICAgIHRoaXMucmVzZXRGb3JtKCJmb3JtIik7CiAgICB9LAoKICAgIC8qKiDmkJzntKLmjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZVF1ZXJ5OiBmdW5jdGlvbiBoYW5kbGVRdWVyeSgpIHsKICAgICAgdGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtID0gMTsKICAgICAgdGhpcy5nZXRMaXN0KCk7CiAgICB9LAogICAgaGFuZGxlTmFtZVF1ZXJ5OiBmdW5jdGlvbiBoYW5kbGVOYW1lUXVlcnkoKSB7CiAgICAgIHRoaXMubmFtZVR1T3BlbiA9IHRydWU7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICB0aGlzLmdldExlZnQ3KHRoaXMucXVlcnlQYXJhbXMpOwogICAgICB0aGlzLmdldENlbnRlcjgodGhpcy5xdWVyeVBhcmFtcyk7CiAgICB9LAogICAgaGFuZGxlVXNlck5hbWVRdWVyeTogZnVuY3Rpb24gaGFuZGxlVXNlck5hbWVRdWVyeSgpIHsKICAgICAgdGhpcy51c2VyTmFtZVR1T3BlbiA9IHRydWU7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMucGFnZU51bSA9IDE7CiAgICAgIHRoaXMuZ2V0TGlzdCgpOwogICAgICB0aGlzLmdldFRvdGFsQnVnZXQodGhpcy5xdWVyeVBhcmFtcyk7CiAgICAgIHRoaXMuZ2V0TGVmdDEodGhpcy5xdWVyeVBhcmFtcyk7CiAgICB9LAogICAgZ2V0VG90YWxCdWdldDogZnVuY3Rpb24gZ2V0VG90YWxCdWdldChxdWVyeVBhcmFtcykgewogICAgICB2YXIgX3RoaXMzID0gdGhpczsKCiAgICAgIHRvdGFsQnVnZXREYXRhKHF1ZXJ5UGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7CiAgICAgICAgLy8gY29uc29sZS5sb2cocmVzcC5kYXRhLnRvdGFsQnVkZ2V0KQogICAgICAgIF90aGlzMy50b3RhbEJ1Z2V0ID0gcmVzcC5kYXRhLnRvdGFsQnVkZ2V0OwogICAgICB9KTsKICAgIH0sCiAgICBnZXRMZWZ0MTogZnVuY3Rpb24gZ2V0TGVmdDEocXVlcnlQYXJhbXMpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CgogICAgICBsZWZ0MURhdGEocXVlcnlQYXJhbXMpLnRoZW4oZnVuY3Rpb24gKHJlc3ApIHsKICAgICAgICBpZiAocXVlcnlQYXJhbXMueWVhclJhZGlvMiA9PSAnMCcpIHsKICAgICAgICAgIF90aGlzNC5vdFRpdGxlID0gJzIwMTYt5LuKJzsKICAgICAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLnllYXJSYWRpbzIgPT0gJzIwMTUnKSB7CiAgICAgICAgICBfdGhpczQub3RUaXRsZSA9ICIyMDE25bm05Lul5YmNIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM0Lm90VGl0bGUgPSAiMjAxNi3ku4oiOwogICAgICAgIH0KCiAgICAgICAgX3RoaXM0LmJsTGcgPSBbJ+mhueebruaVsCcsICfnu4/otLnmlbAnXTsKICAgICAgICBfdGhpczQuYmxYID0gcmVzcC5kYXRhLnllYXJBcnJheTsKICAgICAgICB2YXIgdGVtcCA9IFtdOwogICAgICAgIHZhciBpdGVtID0ge307CiAgICAgICAgaXRlbS5uYW1lID0gJ+mhueebruaVsCc7CiAgICAgICAgaXRlbS50eXBlID0gJ2Jhcic7CiAgICAgICAgaXRlbS5kYXRhID0gcmVzcC5kYXRhLm51bUFycmF5OwogICAgICAgIHRlbXAucHVzaChpdGVtKTsKICAgICAgICB2YXIgaXRlbTEgPSB7fTsKICAgICAgICBpdGVtMS5uYW1lID0gJ+e7j+i0ueaVsCc7CiAgICAgICAgaXRlbTEudHlwZSA9ICdsaW5lJzsKICAgICAgICBpdGVtMS55QXhpc0luZGV4ID0gMTsKICAgICAgICBpdGVtMS5kYXRhID0gcmVzcC5kYXRhLmJ1Z2V0QXJyYXk7CiAgICAgICAgdGVtcC5wdXNoKGl0ZW0xKTsKICAgICAgICBfdGhpczQuYmxTZXIgPSB0ZW1wOyAvLyBjb25zb2xlLmxvZyh0aGlzLnNlcmllc0NlbnRlcjUpCiAgICAgIH0pOwogICAgfSwKICAgIGdldExlZnQ3OiBmdW5jdGlvbiBnZXRMZWZ0NyhxdWVyeVBhcmFtcykgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKCiAgICAgIGxlZnQ3RGF0YShxdWVyeVBhcmFtcykudGhlbihmdW5jdGlvbiAocmVzcCkgewogICAgICAgIGlmIChfdGhpczUueWVhclJhZGlvMiA9PSAnMjAxNScpIHsKICAgICAgICAgIF90aGlzNS5vdFRpdGxlID0gIjIwMTblubTku6XliY0iOwogICAgICAgIH0gZWxzZSBpZiAoX3RoaXM1LnllYXJSYWRpbzIgPT0gJzk5OScpIHsKICAgICAgICAgIF90aGlzNS5vdFRpdGxlID0gIjIwMTYt5LuKIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgaWYgKF90aGlzNS55ZWFyUmFkaW8yICE9IHVuZGVmaW5lZCkgewogICAgICAgICAgICBfdGhpczUub3RUaXRsZSA9IF90aGlzNS55ZWFyUmFkaW8yICsgIuW5tCI7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBfdGhpczUub3RUaXRsZSA9ICcyMDE2LeS7iic7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgdGVtcCA9IFtdOwogICAgICAgIHZhciBpdGVtID0ge307CiAgICAgICAgaXRlbS5uYW1lID0gJ+e7j+i0ueaVsCc7CiAgICAgICAgaXRlbS50eXBlID0gJ2Jhcic7CiAgICAgICAgaXRlbS5iYXJHYXAgPSAiLTEwMCUiOwogICAgICAgIGl0ZW0uZGF0YSA9IHJlc3AuZGF0YS55amZBcnJheTsKICAgICAgICB0ZW1wLnB1c2goaXRlbSk7CiAgICAgICAgdmFyIGl0ZW0xID0ge307CiAgICAgICAgaXRlbTEubmFtZSA9ICflrp7pmYXnu4/otLknOwogICAgICAgIGl0ZW0xLnR5cGUgPSAnYmFyJzsKICAgICAgICBpdGVtMS55QXhpc0luZGV4ID0gMTsKICAgICAgICBpdGVtMS5iYXJHYXAgPSAiLTEwMCUiOwogICAgICAgIGl0ZW0xLmRhdGEgPSByZXNwLmRhdGEueVNqamZBcnJheTsKICAgICAgICB0ZW1wLnB1c2goaXRlbTEpOwogICAgICAgIHZhciBpdGVtMiA9IHt9OwogICAgICAgIGl0ZW0yLm5hbWUgPSAn6aG555uu5pWwJzsKICAgICAgICBpdGVtMi50eXBlID0gJ2xpbmUnOwogICAgICAgIGl0ZW0yLnlBeGlzSW5kZXggPSAyOwogICAgICAgIGl0ZW0yLmRhdGEgPSByZXNwLmRhdGEueU51bUFycmF5OwogICAgICAgIHRlbXAucHVzaChpdGVtMik7CiAgICAgICAgX3RoaXM1LnNlcmllc0NlbnRlcjcgPSB0ZW1wOwogICAgICAgIF90aGlzNS54QXhpc0NlbnRlcjcgPSByZXNwLmRhdGEueEF4aXNBcnJheTsKICAgICAgfSk7CiAgICB9LAogICAgZ2V0Q2VudGVyODogZnVuY3Rpb24gZ2V0Q2VudGVyOChxdWVyeVBhcmFtcykgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKCiAgICAgIGNlbnRlcjhEYXRhKHF1ZXJ5UGFyYW1zKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7CiAgICAgICAgaWYgKHF1ZXJ5UGFyYW1zLnllYXJSYWRpbzIgPT0gJzAnKSB7CiAgICAgICAgICBfdGhpczYub3RUaXRsZSA9ICcyMDE1JzsKICAgICAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLnllYXJSYWRpbzIgPT0gJzIwMTUnKSB7CiAgICAgICAgICBfdGhpczYub3RUaXRsZSA9ICIyMDE25bm05Lul5YmNIjsKICAgICAgICB9IGVsc2UgaWYgKHF1ZXJ5UGFyYW1zLnllYXJSYWRpbzIgPT0gJzk5OScpIHsKICAgICAgICAgIF90aGlzNi5vdFRpdGxlID0gIjIwMTYt5LuKIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgX3RoaXM2Lm90VGl0bGUgPSBxdWVyeVBhcmFtcy55ZWFyUmFkaW8yICsgIuW5tCI7CiAgICAgICAgfQoKICAgICAgICBfdGhpczYuc2VyaWVzQ2VudGVyOCA9IHJlc3AuZGF0YS54QXhpc0FycmF5OwogICAgICAgIF90aGlzNi54QXhpc0NlbnRlcjggPSByZXNwLmRhdGEueUF4aXNBcnJheTsKICAgICAgfSk7CiAgICB9LAogICAgdG9ZZWFyUGFnZTogZnVuY3Rpb24gdG9ZZWFyUGFnZSh5ZWFyKSB7Ly8gdGhpcy4kcm91dGVyLnB1c2goe3BhdGg6Ii9wcm9qZWN0L2luZm9TaG93L3F1ZXJ5IixxdWVyeTp7eWVhclJhZGlvMjp5ZWFyfX0gKTsKICAgIH0sCiAgICB0b3lpdHVvVW5pdFBhZ2U6IGZ1bmN0aW9uIHRveWl0dW9Vbml0UGFnZSh1bml0KSB7Ly8gbGV0IHllYXJSYWRpbyA9IHRoaXMueWVhclJhZGlvMjsKICAgICAgLy8gdGhpcy4kcm91dGVyLnB1c2goe3BhdGg6Ii9wcm9qZWN0L2luZm9TaG93L3F1ZXJ5IixxdWVyeTp7eWl0dW9Vbml0OnVuaXQseWVhclJhZGlvMjp5ZWFyUmFkaW99fSApOwogICAgfSwKICAgIHRvVXNlck5hbWVQYWdlOiBmdW5jdGlvbiB0b1VzZXJOYW1lUGFnZSh1c2VyTmFtZSkgey8vIGxldCB5ZWFyUmFkaW8gPSB0aGlzLnllYXJSYWRpbzI7CiAgICAgIC8vIHRoaXMuJHJvdXRlci5wdXNoKHtwYXRoOiIvcHJvamVjdC9pbmZvU2hvdy9xdWVyeSIscXVlcnk6e3VzZXJOYW1lOnVzZXJOYW1lLHllYXJSYWRpbzI6eWVhclJhZGlvfX0gKTsKICAgIH0sCgogICAgLyoqIOmHjee9ruaMiemSruaTjeS9nCAqLwogICAgcmVzZXRRdWVyeTogZnVuY3Rpb24gcmVzZXRRdWVyeSgpIHsKICAgICAgdGhpcy5yZXNldEZvcm0oInF1ZXJ5Rm9ybSIpOwogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnllYXJSYWRpbzIgPSAiMCI7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMuc2VjcmVjeUxldmVsID0gIjAiOwogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnR5cGUgPSAiMCI7CiAgICAgIHRoaXMucXVlcnlQYXJhbXMuZGVwYXJ0bWVudElkID0gIjAiOwogICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnNlYXJjaFZhbHVlID0gbnVsbDsKICAgICAgdGhpcy5oYW5kbGVRdWVyeSgpOwogICAgfSwKICAgIC8vIOWkmumAieahhumAieS4reaVsOaNrgogICAgaGFuZGxlU2VsZWN0aW9uQ2hhbmdlOiBmdW5jdGlvbiBoYW5kbGVTZWxlY3Rpb25DaGFuZ2Uoc2VsZWN0aW9uKSB7CiAgICAgIHRoaXMuaWRzID0gc2VsZWN0aW9uLm1hcChmdW5jdGlvbiAoaXRlbSkgewogICAgICAgIHJldHVybiBpdGVtLmlkOwogICAgICB9KTsKICAgICAgdGhpcy5zaW5nbGUgPSBzZWxlY3Rpb24ubGVuZ3RoICE9PSAxOwogICAgICB0aGlzLm11bHRpcGxlID0gIXNlbGVjdGlvbi5sZW5ndGg7CiAgICB9LAoKICAgIC8qKiDmlrDlop7mjInpkq7mk43kvZwgKi8KICAgIGhhbmRsZUFkZDogZnVuY3Rpb24gaGFuZGxlQWRkKCkgewogICAgICB0aGlzLnJlc2V0KCk7CiAgICAgIHRoaXMub3BlbiA9IHRydWU7CiAgICAgIHRoaXMudGl0bGUgPSAi5re75Yqg44CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CRIjsKICAgIH0sCgogICAgLyoqIOS/ruaUueaMiemSruaTjeS9nCAqLwogICAgaGFuZGxlVXBkYXRlOiBmdW5jdGlvbiBoYW5kbGVVcGRhdGUocm93KSB7CiAgICAgIHZhciBfdGhpczcgPSB0aGlzOwoKICAgICAgdGhpcy5yZXNldCgpOwogICAgICB2YXIgaWQgPSByb3cuaWQgfHwgdGhpcy5pZHM7CiAgICAgIGdldEluZm8oaWQpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXM3LmZvcm0gPSByZXNwb25zZS5kYXRhOwogICAgICAgIF90aGlzNy5vcGVuID0gdHJ1ZTsKICAgICAgICBfdGhpczcudGl0bGUgPSAi5L+u5pS544CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CRIjsKICAgICAgfSk7CiAgICB9LAoKICAgIC8qKiDmj5DkuqTmjInpkq4gKi8KICAgIHN1Ym1pdEZvcm06IGZ1bmN0aW9uIHN1Ym1pdEZvcm0oKSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwoKICAgICAgdGhpcy4kcmVmc1siZm9ybSJdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgaWYgKF90aGlzOC5mb3JtLmlkICE9IG51bGwpIHsKICAgICAgICAgICAgdXBkYXRlSW5mbyhfdGhpczguZm9ybSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBpZiAocmVzcG9uc2UuY29kZSA9PT0gMjAwKSB7CiAgICAgICAgICAgICAgICBfdGhpczgubXNnU3VjY2Vzcygi5L+u5pS55oiQ5YqfIik7CgogICAgICAgICAgICAgICAgX3RoaXM4Lm9wZW4gPSBmYWxzZTsKCiAgICAgICAgICAgICAgICBfdGhpczguZ2V0TGlzdCgpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhZGRJbmZvKF90aGlzOC5mb3JtKS50aGVuKGZ1bmN0aW9uIChyZXNwb25zZSkgewogICAgICAgICAgICAgIGlmIChyZXNwb25zZS5jb2RlID09PSAyMDApIHsKICAgICAgICAgICAgICAgIF90aGlzOC5tc2dTdWNjZXNzKCLmlrDlop7miJDlip8iKTsKCiAgICAgICAgICAgICAgICBfdGhpczgub3BlbiA9IGZhbHNlOwoKICAgICAgICAgICAgICAgIF90aGlzOC5nZXRMaXN0KCk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKCiAgICAvKiog5Yig6Zmk5oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVEZWxldGU6IGZ1bmN0aW9uIGhhbmRsZURlbGV0ZShyb3cpIHsKICAgICAgdmFyIF90aGlzOSA9IHRoaXM7CgogICAgICB2YXIgaWRzID0gcm93LmlkOwogICAgICB0aGlzLiRjb25maXJtKCfmmK/lkKbnoa7orqTliKDpmaTpobnnm67nvJblj7fkuLoiJyArIHJvdy5jb2RlICsgJyLnmoTmlbDmja7pobk/JywgIuitpuWRiiIsIHsKICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogIuehruWumiIsCiAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIHJldHVybiBkZWxJbmZvKGlkcyk7CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgIF90aGlzOS5nZXRMaXN0KCk7CgogICAgICAgIF90aGlzOS5tc2dTdWNjZXNzKCLliKDpmaTmiJDlip8iKTsKICAgICAgfSkuY2F0Y2goZnVuY3Rpb24gKCkge30pOwogICAgfSwKCiAgICAvKiog5a+85Ye65oyJ6ZKu5pON5L2cICovCiAgICBoYW5kbGVFeHBvcnQ6IGZ1bmN0aW9uIGhhbmRsZUV4cG9ydCgpIHsKICAgICAgdmFyIF90aGlzMTAgPSB0aGlzOwoKICAgICAgdmFyIHF1ZXJ5UGFyYW1zID0gdGhpcy5xdWVyeVBhcmFtczsKICAgICAgdGhpcy4kY29uZmlybSgi5piv5ZCm56Gu6K6k5a+85Ye65omA5pyJ44CQ6K+35aGr5YaZ5Yqf6IO95ZCN56ew44CR5pWw5o2u6aG5PyIsICLorablkYoiLCB7CiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgIHR5cGU6ICJ3YXJuaW5nIgogICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICByZXR1cm4gZXhwb3J0SW5mbyhxdWVyeVBhcmFtcyk7CiAgICAgIH0pLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXMxMC5kb3dubG9hZChyZXNwb25zZS5tc2cpOwogICAgICB9KS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7CiAgICB9LAogICAgLy8g5paH5Lu25LiK5Lyg5Lit5aSE55CGCiAgICBoYW5kbGVQcm9qZWN0RmlsZVVwbG9hZFByb2dyZXNzOiBmdW5jdGlvbiBoYW5kbGVQcm9qZWN0RmlsZVVwbG9hZFByb2dyZXNzKGV2ZW50LCBmaWxlLCBmaWxlTGlzdCkgewogICAgICB0aGlzLnVwbG9hZFByb2plY3QuaXNVcGxvYWRpbmcgPSB0cnVlOwogICAgfSwKICAgIGJlZm9yZVByb2plY3RGaWxlVXBsb2FkOiBmdW5jdGlvbiBiZWZvcmVQcm9qZWN0RmlsZVVwbG9hZChmaWxlKSB7CiAgICAgIHZhciBpc0x0MjAwTSA9IGZpbGUuc2l6ZSAvIDEwMjQgLyAxMDI0IDwgMzAwOwoKICAgICAgaWYgKCFpc0x0MjAwTSkgewogICAgICAgIHRoaXMuJG1lc3NhZ2UuZXJyb3IoIuS4iuS8oOWkp+Wwj+S4jeiDvei2hei/hyAyMDBNQiEiKTsKICAgICAgfQoKICAgICAgcmV0dXJuIGlzTHQyMDBNOwogICAgfSwKICAgIC8vIOaWh+S7tuS4iuS8oOaIkOWKn+WkhOeQhgogICAgaGFuZGxlUHJvamVjdEZpbGVTdWNjZXNzOiBmdW5jdGlvbiBoYW5kbGVQcm9qZWN0RmlsZVN1Y2Nlc3MocmVzcG9uc2UsIGZpbGUsIGZpbGVMaXN0KSB7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC5vcGVuID0gZmFsc2U7CiAgICAgIHRoaXMudXBsb2FkUHJvamVjdC5pc1VwbG9hZGluZyA9IGZhbHNlOwogICAgICB0aGlzLiRyZWZzLnVwbG9hZFByb2plY3QuY2xlYXJGaWxlcygpOwogICAgICB0aGlzLiRhbGVydChyZXNwb25zZS5tc2csICLlr7zlhaXnu5PmnpwiLCB7CiAgICAgICAgZGFuZ2Vyb3VzbHlVc2VIVE1MU3RyaW5nOiB0cnVlCiAgICAgIH0pOwogICAgICB0aGlzLmdldExpc3QoKTsKICAgIH0sCiAgICAvLyDmj5DkuqTkuIrkvKDmlofku7YKICAgIHN1Ym1pdEZpbGVGb3JtOiBmdW5jdGlvbiBzdWJtaXRGaWxlRm9ybSgpIHsKICAgICAgdGhpcy4kcmVmcy51cGxvYWRQcm9qZWN0LnN1Ym1pdCgpOwogICAgfSwKICAgIGltcG9ydFRlbXBsYXRlOiBmdW5jdGlvbiBpbXBvcnRUZW1wbGF0ZSgpIHsKICAgICAgdmFyIF90aGlzMTEgPSB0aGlzOwoKICAgICAgX2ltcG9ydFRlbXBsYXRlKCkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICBfdGhpczExLmRvd25sb2FkKHJlc3BvbnNlLm1zZyk7CiAgICAgIH0pOwogICAgfSwKICAgIHZpZXdBbm5leEJvb2tGaWxlOiBmdW5jdGlvbiB2aWV3QW5uZXhCb29rRmlsZShyb3cpIHsKICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKICAgICAgdGhpcy5mb3JtYXRVcGxvYWRBbm5leChyb3cuYm9va0ZpbGUsIHJvdy5ib29rRmlsZVBhdGgpOwogICAgICB0aGlzLnVwbG9hZC5vcGVuID0gdHJ1ZTsKICAgIH0sCiAgICAvL+agvOW8j+WMluS4iuS8oOmZhOS7tgogICAgZm9ybWF0VXBsb2FkQW5uZXg6IGZ1bmN0aW9uIGZvcm1hdFVwbG9hZEFubmV4KGFubmV4TmFtZSwgYW5uZXhQYXRoKSB7CiAgICAgIHRoaXMudXBsb2FkLmZpbGVMaXN0ID0gW107CgogICAgICBpZiAoYW5uZXhQYXRoICE9IG51bGwgJiYgYW5uZXhQYXRoICE9PSAnJykgewogICAgICAgIHZhciBhID0gW10sCiAgICAgICAgICAgIGIgPSBbXTsKCiAgICAgICAgdHJ5IHsKICAgICAgICAgIGEgPSBKU09OLnBhcnNlKGFubmV4TmFtZSk7CiAgICAgICAgICBiID0gSlNPTi5wYXJzZShhbm5leFBhdGgpOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGEgPSBbXTsKICAgICAgICAgIGIgPSBbXTsKICAgICAgICB9CgogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYS5sZW5ndGg7IGkrKykgewogICAgICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QucHVzaCh7CiAgICAgICAgICAgICduYW1lJzogYVtpXSwKICAgICAgICAgICAgJ3VybCc6IHByb2Nlc3MuZW52LlZVRV9BUFBfQkFTRV9BUEkgKyBiW2ldCiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0gZWxzZSB7CiAgICAgICAgdGhpcy51cGxvYWQuZmlsZUxpc3QgPSBbXTsKICAgICAgfQogICAgfSwKICAgIGhhbmRsZVByZXZpZXc6IGZ1bmN0aW9uIGhhbmRsZVByZXZpZXcoZmlsZSkgewogICAgICB2YXIgYSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTsKICAgICAgdmFyIGV2ZW50ID0gbmV3IE1vdXNlRXZlbnQoJ2NsaWNrJyk7CiAgICAgIGEuZG93bmxvYWQgPSBmaWxlLm5hbWU7CiAgICAgIGEudGFyZ2V0ID0gJ19ibGFuayc7CiAgICAgIGEuaHJlZiA9IGZpbGUudXJsOwogICAgICBhLmRpc3BhdGNoRXZlbnQoZXZlbnQpOwogICAgICBjb25zb2xlLmxvZyhmaWxlLm5hbWUpOwogICAgfQogIH0KfTs="},null]} |