1 |
- {"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js!E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!E:\\boman-framwork\\ruoyi-ui\\src\\views\\system\\editing\\index.vue?vue&type=script&lang=js&","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\views\\system\\editing\\index.vue","mtime":1621907652936},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIGZyb20gIkU6L2JvbWFuLWZyYW13b3JrL3J1b3lpLXVpL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLnNwbGl0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5maWx0ZXIuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5jb25jYXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5qb2luLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KaW1wb3J0IHsgdGFibGVRdWVyeSwgZ2V0VGFibGVRdWVyeSwgZGVsTWVudXRhYiwgZ2V0UXVlcnlMaXN0LCBnZXRlZGl0aW5kZVRhYiwgdGFibGVTdWJpbXQsIHRhYmxlU3ViaW10YW5pdCwgYWRkYmplY3RTYXZlIH0gZnJvbSAnQC9hcGkvc3lzdGVtL3RhYmxlLmpzJzsKaW1wb3J0IHsgbGlzdEluZGV4IH0gZnJvbSAnQC9hcGkvc3lzdGVtL2Zvcm0uanMnOwpleHBvcnQgZGVmYXVsdCB7CiAgbmFtZTogImluZGV4IiwKICBpbmplY3Q6IFsncmVsb2FkJ10sCiAgZGF0YTogZnVuY3Rpb24gZGF0YSgpIHsKICAgIHJldHVybiB7CiAgICAgIC8vIOaAu+adoeaVsAogICAgICB0b3RhbDogMCwKICAgICAgbG9hZGluZzogdHJ1ZSwKICAgICAgYWN0aXZlTmFtZXM6IFswXSwKICAgICAgdGl0bGU6ICfljZXooagxJywKICAgICAgLy8g5p+l6K+i5Y+C5pWwCiAgICAgIHF1ZXJ5UGFyYW1zOiB7fSwKICAgICAgbGFibGV0aXQ6ICfmn6Xor6Llj4LmlbAxMjMzJywKICAgICAgbnVtOiAwLAogICAgICB0YWJsZWRlTGlzZTogewogICAgICAgIHRhYmxlOiAnJywKICAgICAgICBpc1VpOiB0cnVlCiAgICAgIH0sCiAgICAgIHRhbGVMaXNzdDogW10sCiAgICAgIC8v5YiX6KGo5pWw5o2uCiAgICAgIC8vIOaMiemSruWPguaVsAogICAgICB0YWJsZVpiaWU6IHsKICAgICAgICB0YWJsZTogJ29ial90ZXN0JywKICAgICAgICBpc1VpOiB0cnVlLAogICAgICAgIGZpeGVkRGF0YTogewogICAgICAgICAgaWQ6IC0xCiAgICAgICAgfQogICAgICB9LAogICAgICB0YWJsZVpiaWV0YWJnOiB7CiAgICAgICAgdGFibGU6ICdzeXNfdXNlcicKICAgICAgfSwKICAgICAgcXVlcnlEYXRhOiB7fSwKICAgICAgcXVlcnlEYXRhdHdvOiB7fSwKICAgICAga2V5bmFtZTogJ251JywKICAgICAgdGFibGRpZTogW10sCiAgICAgIGZvcm1lOiB7CiAgICAgICAgdGFibGU6ICcnLAogICAgICAgIG9iaklkOiAtMSwKICAgICAgICBmaXhlZERhdGE6IHt9CiAgICAgIH0sCiAgICAgIGZvcm1lYW50aTogewogICAgICAgIHRhYmxlOiAnJywKICAgICAgICBjb21taXREYXRhOiBbXQogICAgICB9LAogICAgICBmb3JteTogewogICAgICAgIGlkOiAwLAogICAgICAgIHN0YXR1czogMQogICAgICB9LAogICAgICAvLyDliKDpmaTlj4LmlbAKICAgICAgZGVsZWRsaWQ6IHsKICAgICAgICB0YWJsZTogJycsCiAgICAgICAgaWRMaXN0OiBbXQogICAgICB9LAogICAgICBqZWlnbmV1OiBbXSwKICAgICAgamVpZ25ldXR3bzogW10sCiAgICAgIGltZ1Nob2V3OiAxLAogICAgICBxdWVyeVBhcmFtc2xpc3Q6IHsKICAgICAgICBwYWdlTm86IDEsCiAgICAgICAgcGFnZVNpemU6IDEwLAogICAgICAgIG9yZGVyQnk6ICdjcmVhdGVfdGltZSBkZXNjJywKICAgICAgICB0YWJsZTogJycsCiAgICAgICAgZml4ZWREYXRhOiB7CiAgICAgICAgICBjb25kaXRpb246IHt9CiAgICAgICAgfQogICAgICB9LAogICAgICBwb3N0TGlzdDoge30sCiAgICAgIHNpbmdsZTogdHJ1ZSwKICAgICAgbXVsdGlwbGU6IHRydWUsCiAgICAgIHRhaGV1czogJycsCiAgICAgIHRhaGV1c2lkOiAwLAogICAgICB0YWJOYW1lOiAnJywKICAgICAgcXVlcnlQYXJhbXN0d29pOiB7fQogICAgfTsKICB9LAogIG1vdW50ZWQ6IGZ1bmN0aW9uIG1vdW50ZWQoKSB7CiAgICB0aGlzLmRlbGVkbGlkLmlkTGlzdCA9IFtdOwogICAgdGhpcy5mb3JtZWFudGkudGFibGUgPSB0aGlzLiRyb3V0ZS5xdWVyeS50YWJsZXM7IC8vIHRoaXMuZm9ybWVhbnRpLmlkID0gdGhpcy4kcm91dGUucXVlcnkuaWQKCiAgICB0aGlzLmZvcm1lLnRhYmxlID0gdGhpcy4kcm91dGUucXVlcnkudGFibGVzOwogICAgdGhpcy5mb3JtZS5vYmpJZCA9IHRoaXMuJHJvdXRlLnF1ZXJ5LmlkOwogICAgdGhpcy50YWJsZWRlTGlzZS50YWJsZSA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnRhYmxlczsKICAgIHRoaXMudGFibGVaYmllLnRhYmxlID0gdGhpcy4kcm91dGUucXVlcnkudGFibGVzOwogICAgdGhpcy50YWJsZVpiaWUuZml4ZWREYXRhLmlkID0gdGhpcy4kcm91dGUucXVlcnkuaWQ7CiAgICB0aGlzLmZvcm15LmlkID0gdGhpcy4kcm91dGUucXVlcnkuaWQ7CiAgICB0aGlzLnRhYmxlWmJpZXRhYmcudGFibGUgPSB0aGlzLiRyb3V0ZS5xdWVyeS50YWJsZXM7CiAgICB0aGlzLmRlbGVkbGlkLnRhYmxlID0gdGhpcy4kcm91dGUucXVlcnkudGFibGVzOwogICAgdGhpcy5xdWVyeVBhcmFtc2xpc3QudGFibGUgPSB0aGlzLiRyb3V0ZS5xdWVyeS50YWJsZXM7CiAgICB0aGlzLnRhaGV1cyA9IHRoaXMuJHJvdXRlLnF1ZXJ5LnRhYmxlczsKICAgIHRoaXMudGFoZXVzaWQgPSB0aGlzLiRyb3V0ZS5xdWVyeS5pZDsKICAgIHRoaXMuZGVsZWRsaWQuaWRMaXN0LnB1c2godGhpcy4kcm91dGUucXVlcnkuaWQpOyAvLyB0YWIKCiAgICB0aGlzLmVkaW5nZWxzaWV0YWIoKTsKICAgIHRoaXMuaW5pdCgpOwogIH0sCiAgZmlsdGVyczoge30sCiAgbWV0aG9kczogewogICAgaUNoYW5nZTogZnVuY3Rpb24gaUNoYW5nZShuYW1lLCB2YWwpIHsKICAgICAgdmFyIF9pdGVyYXRvciA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyKHRoaXMucXVlcnlEYXRhLnNob3dEYXRhKSwKICAgICAgICAgIF9zdGVwOwoKICAgICAgdHJ5IHsKICAgICAgICBmb3IgKF9pdGVyYXRvci5zKCk7ICEoX3N0ZXAgPSBfaXRlcmF0b3IubigpKS5kb25lOykgewogICAgICAgICAgdmFyIGl0ZW0gPSBfc3RlcC52YWx1ZTsKCiAgICAgICAgICB2YXIgX2l0ZXJhdG9yMiA9IF9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyKGl0ZW0uaHJDaGlsZHJlbiksCiAgICAgICAgICAgICAgX3N0ZXAyOwoKICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgIGZvciAoX2l0ZXJhdG9yMi5zKCk7ICEoX3N0ZXAyID0gX2l0ZXJhdG9yMi5uKCkpLmRvbmU7KSB7CiAgICAgICAgICAgICAgdmFyIGl0ZW1DaGlsZCA9IF9zdGVwMi52YWx1ZTsKCiAgICAgICAgICAgICAgaWYgKGl0ZW1DaGlsZC5jb2x1bW5OYW1lID09IG5hbWUpIHsKICAgICAgICAgICAgICAgIGl0ZW1DaGlsZC5jb2x1bW5WYWx1ZSA9IHZhbCA/IHZhbCA6IG51bGw7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICAgICAgX2l0ZXJhdG9yMi5lKGVycik7CiAgICAgICAgICB9IGZpbmFsbHkgewogICAgICAgICAgICBfaXRlcmF0b3IyLmYoKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIF9pdGVyYXRvci5lKGVycik7CiAgICAgIH0gZmluYWxseSB7CiAgICAgICAgX2l0ZXJhdG9yLmYoKTsKICAgICAgfQogICAgfSwKICAgIG1vZGVsRm46IGZ1bmN0aW9uIG1vZGVsRm4ob2JqLCBjb250KSB7CiAgICAgIHRoaXMuJHNldCh0aGlzLnF1ZXJ5UGFyYW1zLCBvYmosIGNvbnQpOwogICAgfSwKICAgIGhhbmRsZUNoYW5nZTogZnVuY3Rpb24gaGFuZGxlQ2hhbmdlKHZhbCkge30sCiAgICBlbmRpdFRhYjogZnVuY3Rpb24gZW5kaXRUYWIoaW5kZXgpIHsKICAgICAgdGhpcy5udW0gPSBpbmRleDsKCiAgICAgIGlmICh0aGlzLm51bSA9PSAwKSB7CiAgICAgICAgdGhpcy50YWJsZWRlTGlzZS50YWJsZSA9IHRoaXMudGFibGRpZVtpbmRleF0udGFibGVOYW1lOwogICAgICAgIHRoaXMuZm9ybWVhbnRpLnRhYmxlID0gdGhpcy50YWJsZGllW2luZGV4XS50YWJsZU5hbWU7CiAgICAgICAgdGhpcy5mb3JtZS50YWJsZSA9IHRoaXMudGFibGRpZVtpbmRleF0udGFibGVOYW1lOwogICAgICAgIHRoaXMudGFibGVaYmllLnRhYmxlID0gdGhpcy50YWhldXM7CiAgICAgICAgdGhpcy50YWJsZVpiaWUuZml4ZWREYXRhLmlkID0gdGhpcy50YWhldXNpZDsKICAgICAgICB0aGlzLmluaXQoKTsKICAgICAgICB0aGlzLnJlbG9hZCgpOwogICAgICB9IGVsc2UgewogICAgICAgIHRoaXMudGFiTmFtZSA9IHRoaXMudGFibGRpZVtpbmRleF0udGFibGVOYW1lOwogICAgICAgIHRoaXMucXVlcnlQYXJhbXNsaXN0LnRhYmxlID0gdGhpcy50YWJsZGllW2luZGV4XS50YWJsZU5hbWU7CiAgICAgICAgdGhpcy5pbml0dHdvKCk7CiAgICAgICAgdGhpcy5mb3JlbWxpc2VqdSgpOwogICAgICB9CiAgICB9LAogICAgLy8g5oyJ6ZKuCiAgICBpbml0OiBmdW5jdGlvbiBpbml0KCkgewogICAgICB2YXIgX3RoaXMgPSB0aGlzOwoKICAgICAgZ2V0VGFibGVRdWVyeSh0aGlzLnRhYmxlWmJpZSkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgdmFyIGRhdGEgPSByZXMuZGF0YTsKICAgICAgICBfdGhpcy5xdWVyeURhdGEgPSBkYXRhOwogICAgICAgIF90aGlzLmplaWduZXV0d28gPSBbXTsKICAgICAgICBfdGhpcy5qZWlnbmV1ID0gW107CiAgICAgICAgX3RoaXMuamVpZ25ldSA9IGRhdGEuYnV0dG9uTGlzdC5zcGxpdCgnJyk7CgogICAgICAgIF90aGlzLmplaWduZXUuZmlsdGVyKGZ1bmN0aW9uIChyb3V0ZSkgewogICAgICAgICAgaWYgKHJvdXRlID09ICdBJykgewogICAgICAgICAgICBpZiAoX3RoaXMuZm9ybXkuaWQgPT0gLTEpIHsKICAgICAgICAgICAgICByb3V0ZSA9ICfkv53lrZgnOwoKICAgICAgICAgICAgICBfdGhpcy5qZWlnbmV1dHdvLnB1c2gocm91dGUpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIHJvdXRlID0gJ+aWsOWinic7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSBpZiAocm91dGUgPT0gJ00nKSB7CiAgICAgICAgICAgIHJvdXRlID0gJ+S/neWtmCc7CgogICAgICAgICAgICBpZiAoX3RoaXMuZm9ybXkuaWQgIT0gLTEpIHsKICAgICAgICAgICAgICBfdGhpcy5qZWlnbmV1dHdvLnB1c2gocm91dGUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9IGVsc2UgaWYgKHJvdXRlID09ICdEJykgewogICAgICAgICAgICByb3V0ZSA9ICfliKDpmaQnOwoKICAgICAgICAgICAgaWYgKF90aGlzLmZvcm15LmlkICE9IC0xKSB7CiAgICAgICAgICAgICAgX3RoaXMuamVpZ25ldXR3by5wdXNoKHJvdXRlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSA9PSAnUScpIHsKICAgICAgICAgICAgcm91dGUgPSAn5p+l6K+iJzsKCiAgICAgICAgICAgIF90aGlzLmplaWduZXV0d28ucHVzaChyb3V0ZSk7CiAgICAgICAgICB9IGVsc2UgaWYgKHJvdXRlID09ICdTJykgewogICAgICAgICAgICByb3V0ZSA9ICfmj5DkuqQnOwoKICAgICAgICAgICAgaWYgKF90aGlzLmZvcm15LmlkICE9IC0xKSB7CiAgICAgICAgICAgICAgX3RoaXMuamVpZ25ldXR3by5wdXNoKHJvdXRlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSA9PSAnVScpIHsKICAgICAgICAgICAgcm91dGUgPSAn5Y+N5o+Q5LqkJzsKCiAgICAgICAgICAgIGlmIChfdGhpcy5mb3JteS5pZCAhPSAtMSkgewogICAgICAgICAgICAgIF90aGlzLmplaWduZXV0d28ucHVzaChyb3V0ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0gZWxzZSBpZiAocm91dGUgPT0gJ0knKSB7CiAgICAgICAgICAgIHJvdXRlID0gJ+WvvOWFpSc7CgogICAgICAgICAgICBfdGhpcy5qZWlnbmV1dHdvLnB1c2gocm91dGUpOwogICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSA9PSAnRScpIHsKICAgICAgICAgICAgcm91dGUgPSAn5a+85Ye6JzsKCiAgICAgICAgICAgIF90aGlzLmplaWduZXV0d28ucHVzaChyb3V0ZSk7CiAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIF90aGlzLmplaWduZXV0d28ucHVzaCgn5Yi35pawJyk7CgogICAgICAgIF90aGlzLmplaWduZXV0d28ucHVzaCgn6L+U5ZueJyk7IC8vIOWbvueJh+eahOaYvuekuumakOiXjwoKCiAgICAgICAgaWYgKF90aGlzLnF1ZXJ5RGF0YS5zaG93RGF0YS5sZW5ndGggIT09IDApIHsKICAgICAgICAgIF90aGlzLnF1ZXJ5RGF0YS5zaG93RGF0YS5maWx0ZXIoZnVuY3Rpb24gKHJvdXRlKSB7CiAgICAgICAgICAgIHJvdXRlLmhyQ2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uIChyb3V0ZXJzdCkgewogICAgICAgICAgICAgIGlmIChfdGhpcy5xdWVyeURhdGEudGFibGVfY29sdW1uID09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgX3RoaXMucXVlcnlEYXRhLnRhYmxlX2NvbHVtbiA9IG51bGw7CiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICByb3V0ZXJzdC50YWJsZUNvbHVtbnV5ID0gX3RoaXMucXVlcnlEYXRhLnRhYmxlX2NvbHVtbjsKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICBpZiAocm91dGUuY3NzQ2xhc3MgIT09IG51bGwpIHsKICAgICAgICAgICAgICBfdGhpcy5pbWdTaG9ldyA9IHJvdXRlLmNzc0NsYXNzOwoKICAgICAgICAgICAgICBpZiAocm91dGUuY3NzQ2xhc3MgPT0gMiB8fCByb3V0ZS5jc3NDbGFzcyA9PSA0KSB7CiAgICAgICAgICAgICAgICByb3V0ZS5ockNoaWxkcmVuLmZpbHRlcihmdW5jdGlvbiAocm91dGVycykgewogICAgICAgICAgICAgICAgICByb3V0ZXJzLmlzb25saXkgPSB0cnVlOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJvdXRlLmhyQ2hpbGRyZW4uZmlsdGVyKGZ1bmN0aW9uIChyb3V0ZXJzKSB7CiAgICAgICAgICAgICAgICAgIHJvdXRlcnMuaXNvbmxpeSA9IGZhbHNlOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIGluaXR0d286IGZ1bmN0aW9uIGluaXR0d28oKSB7CiAgICAgIHZhciBfdGhpczIgPSB0aGlzOwoKICAgICAgdGFibGVRdWVyeSh7CiAgICAgICAgdGFibGU6IHRoaXMudGFiTmFtZQogICAgICB9KS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICB2YXIgZGF0YSA9IHJlcy5kYXRhOwogICAgICAgIF90aGlzMi5xdWVyeURhdGF0d28gPSBkYXRhOwogICAgICAgIF90aGlzMi5qZWlnbmV1dHdvID0gW107CiAgICAgICAgX3RoaXMyLmplaWduZXUgPSBbXTsKICAgICAgICBfdGhpczIuamVpZ25ldSA9IGRhdGEuYnV0dG9uTGlzdC5zcGxpdCgnJyk7CgogICAgICAgIF90aGlzMi5qZWlnbmV1LmZpbHRlcihmdW5jdGlvbiAocm91dGUpIHsKICAgICAgICAgIGlmIChyb3V0ZSA9PSAnQScpIHsKICAgICAgICAgICAgcm91dGUgPSAn5paw5aKeJzsKCiAgICAgICAgICAgIF90aGlzMi5qZWlnbmV1dHdvLnB1c2gocm91dGUpOwogICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSA9PSAnTScpIHsKICAgICAgICAgICAgcm91dGUgPSAn5L+u5pS5JzsKCiAgICAgICAgICAgIGlmIChfdGhpczIuZm9ybXkuaWQgIT0gLTEpIHsKICAgICAgICAgICAgICBfdGhpczIuamVpZ25ldXR3by5wdXNoKHJvdXRlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSA9PSAnRCcpIHsKICAgICAgICAgICAgcm91dGUgPSAn5Yig6ZmkJzsKCiAgICAgICAgICAgIGlmIChfdGhpczIuZm9ybXkuaWQgIT0gLTEpIHsKICAgICAgICAgICAgICBfdGhpczIuamVpZ25ldXR3by5wdXNoKHJvdXRlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSA9PSAnUScpIHsKICAgICAgICAgICAgcm91dGUgPSAn5p+l6K+iJzsKCiAgICAgICAgICAgIF90aGlzMi5qZWlnbmV1dHdvLnB1c2gocm91dGUpOwogICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSA9PSAnUycpIHsKICAgICAgICAgICAgcm91dGUgPSAn5o+Q5LqkJzsKCiAgICAgICAgICAgIGlmIChfdGhpczIuZm9ybXkuaWQgIT0gLTEpIHsKICAgICAgICAgICAgICBfdGhpczIuamVpZ25ldXR3by5wdXNoKHJvdXRlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSA9PSAnVScpIHsKICAgICAgICAgICAgcm91dGUgPSAn5Y+N5o+Q5LqkJzsKCiAgICAgICAgICAgIGlmIChfdGhpczIuZm9ybXkuaWQgIT0gLTEpIHsKICAgICAgICAgICAgICBfdGhpczIuamVpZ25ldXR3by5wdXNoKHJvdXRlKTsKICAgICAgICAgICAgfQogICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSA9PSAnSScpIHsKICAgICAgICAgICAgcm91dGUgPSAn5a+85YWlJzsKCiAgICAgICAgICAgIF90aGlzMi5qZWlnbmV1dHdvLnB1c2gocm91dGUpOwogICAgICAgICAgfSBlbHNlIGlmIChyb3V0ZSA9PSAnRScpIHsKICAgICAgICAgICAgcm91dGUgPSAn5a+85Ye6JzsKCiAgICAgICAgICAgIF90aGlzMi5qZWlnbmV1dHdvLnB1c2gocm91dGUpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9KTsKICAgIH0sCiAgICAvLyDmlbDmja7kv6Hmga8KICAgIGVkaW5nZWxzaWU6IGZ1bmN0aW9uIGVkaW5nZWxzaWUoKSB7CiAgICAgIHZhciBfdGhpczMgPSB0aGlzOwoKICAgICAgZ2V0UXVlcnlMaXN0KHRoaXMudGFibGVkZUxpc2UpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgIHZhciBkYXRhID0gcmVzLmRhdGE7CiAgICAgICAgX3RoaXMzLnRhbGVMaXNzdCA9IGRhdGE7CiAgICAgIH0pOwogICAgfSwKICAgIC8vIHRhYuaVsOaNrgogICAgZWRpbmdlbHNpZXRhYjogZnVuY3Rpb24gZWRpbmdlbHNpZXRhYigpIHsKICAgICAgdmFyIF90aGlzNCA9IHRoaXM7CgogICAgICBnZXRlZGl0aW5kZVRhYih0aGlzLnRhYmxlWmJpZXRhYmcpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgX3RoaXM0LnRhYmxkaWUgPSBbewogICAgICAgICAgdGFibGVDb21tZW50OiAn5Li76KGo5pWw5o2uJywKICAgICAgICAgIHRhYmxlTmFtZTogX3RoaXM0LnRhaGV1cwogICAgICAgIH1dOwogICAgICAgIF90aGlzNC50YWJsZGllID0gX3RoaXM0LnRhYmxkaWUuY29uY2F0KHJlc3BvbnNlLmRhdGEucmVmKTsKCiAgICAgICAgaWYgKF90aGlzNC50YWJsZGllLmxlbmd0aCAhPT0gMSkge30gZWxzZSB7CiAgICAgICAgICBfdGhpczQubXNnU3VjY2Vzcygi5pqC5pegdGFi5pWw5o2uIik7CgogICAgICAgICAgX3RoaXM0LiRzdG9yZS5kaXNwYXRjaCgidGFnc1ZpZXcvZGVsVmlldyIsIF90aGlzNC4kcm91dGUpOwoKICAgICAgICAgIF90aGlzNC4kcm91dGVyLmdvKC0xKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOWIl+ihqOaVsOaNrgogICAgZm9yZW1saXNlanU6IGZ1bmN0aW9uIGZvcmVtbGlzZWp1KCkgewogICAgICB2YXIgX3RoaXM1ID0gdGhpczsKCiAgICAgIGxpc3RJbmRleCh0aGlzLnF1ZXJ5UGFyYW1zbGlzdCkudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgaWYgKHJlcy5jb2RlID09IDIwMCkgewogICAgICAgICAgdmFyIGRhdGEgPSByZXMuZGF0YTsKICAgICAgICAgIF90aGlzNS5wb3N0TGlzdCA9IGRhdGE7CiAgICAgICAgICBfdGhpczUudG90YWwgPSByZXMuZGF0YS50b3RhbCAtIDA7CiAgICAgICAgfSBlbHNlIHt9CgogICAgICAgIF90aGlzNS5sb2FkaW5nID0gZmFsc2U7CiAgICAgIH0pOwogICAgfSwKICAgIGNoYW5nZUZuOiBmdW5jdGlvbiBjaGFuZ2VGbihvYmopIHsKICAgICAgZm9yICh2YXIga2V5IGluIG9iaikgewogICAgICAgIHRoaXMucXVlcnlQYXJhbXNba2V5XSA9IG9ialtrZXldOwogICAgICB9CiAgICB9LAogICAgaGFuZGxlUXVlcnk6IGZ1bmN0aW9uIGhhbmRsZVF1ZXJ5KGluZGV4KSB7CiAgICAgIHZhciBfaXRlcmF0b3IzID0gX2NyZWF0ZUZvck9mSXRlcmF0b3JIZWxwZXIodGhpcy5xdWVyeURhdGEuc2hvd0RhdGEpLAogICAgICAgICAgX3N0ZXAzOwoKICAgICAgdHJ5IHsKICAgICAgICBmb3IgKF9pdGVyYXRvcjMucygpOyAhKF9zdGVwMyA9IF9pdGVyYXRvcjMubigpKS5kb25lOykgewogICAgICAgICAgdmFyIGl0ZW0gPSBfc3RlcDMudmFsdWU7CgogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVtLmhyQ2hpbGRyZW4ubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGl0ZW0uaHJDaGlsZHJlbltpXS5odG1sVHlwZSA9PSAnY2hlY2tib3gnKSB7CiAgICAgICAgICAgICAgdGhpcy5xdWVyeVBhcmFtc1tpdGVtLmhyQ2hpbGRyZW5baV0uY29sdW1uTmFtZV0gPSB0aGlzLiRyZWZzW2l0ZW0uaHJDaGlsZHJlbltpXS5jb2x1bW5OYW1lXVswXS5jb25maWc7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS5ockNoaWxkcmVuW2ldLmh0bWxUeXBlID09ICdpbWFnZVVwbG9hZCcgfHwgaXRlbS5ockNoaWxkcmVuW2ldLmh0bWxUeXBlID09ICdmaWxlVXBsb2FkJykgewogICAgICAgICAgICAgIGlmICh0aGlzLiRyZWZzW2l0ZW0uaHJDaGlsZHJlbltpXS5jb2x1bW5OYW1lXVswXS5jb25maWcubGVuZ3RoKSB7CiAgICAgICAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zW2l0ZW0uaHJDaGlsZHJlbltpXS5jb2x1bW5OYW1lXSA9IEpTT04uc3RyaW5naWZ5KHRoaXMuJHJlZnNbaXRlbS5ockNoaWxkcmVuW2ldLmNvbHVtbk5hbWVdWzBdLmNvbmZpZyk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgaWYgKGl0ZW0uaHJDaGlsZHJlbltpXS5odG1sVHlwZSA9PSAnZGF0ZXRpbWUnKSB7CiAgICAgICAgICAgICAgaWYgKHRoaXMuJHJlZnNbaXRlbS5ockNoaWxkcmVuW2ldLmNvbHVtbk5hbWVdWzBdLmNvbmZpZ1tpdGVtLmhyQ2hpbGRyZW5baV0uY29sdW1uTmFtZV0pIHsKICAgICAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXNbaXRlbS5ockNoaWxkcmVuW2ldLmNvbHVtbk5hbWVdID0gdGhpcy4kcmVmc1tpdGVtLmhyQ2hpbGRyZW5baV0uY29sdW1uTmFtZV1bMF0uY29uZmlnW2l0ZW0uaHJDaGlsZHJlbltpXS5jb2x1bW5OYW1lXTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgdGhpcy5xdWVyeVBhcmFtc1tpdGVtLmhyQ2hpbGRyZW5baV0uY29sdW1uTmFtZV0gPSBudWxsOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zW2l0ZW0uaHJDaGlsZHJlbltpXS5jb2x1bW5OYW1lXSA9IHRoaXMuJHJlZnNbaXRlbS5ockNoaWxkcmVuW2ldLmNvbHVtbk5hbWVdWzBdLmNvbmZpZ1tpdGVtLmhyQ2hpbGRyZW5baV0uY29sdW1uTmFtZV07CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0gY2F0Y2ggKGVycikgewogICAgICAgIF9pdGVyYXRvcjMuZShlcnIpOwogICAgICB9IGZpbmFsbHkgewogICAgICAgIF9pdGVyYXRvcjMuZigpOwogICAgICB9CgogICAgICBpZiAodGhpcy5xdWVyeVBhcmFtcy5wYWdlTnVtICE9PSB1bmRlZmluZWQpIHsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VOdW0gPSB1bmRlZmluZWQ7CiAgICAgIH0KCiAgICAgIGlmICh0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VTaXplICE9PSB1bmRlZmluZWQpIHsKICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zLnBhZ2VTaXplID0gdW5kZWZpbmVkOwogICAgICB9CgogICAgICBpZiAoaW5kZXggPT0gJ+WIoOmZpCcpIHsKICAgICAgICAvL+WIoOmZpAogICAgICAgIHRoaXMuaGFuZGxlRGVsZXRlKHRoaXMuZGVsZWRsaWQpOwogICAgICB9IGVsc2UgaWYgKGluZGV4ID09ICfmj5DkuqQnKSB7CiAgICAgICAgLy/mj5DkuqQgIOS/neWtmAogICAgICAgIHRoaXMuZm9ybWVhbnRpLmNvbW1pdERhdGEgPSBbXTsKICAgICAgICB0aGlzLmZvcm15LnN0YXR1cyA9IDE7CiAgICAgICAgdGhpcy5mb3JtZWFudGkuY29tbWl0RGF0YS5wdXNoKHRoaXMuZm9ybXkpOwogICAgICAgIHRoaXMuYW50aVN1Ym1pc3Npb24oKTsKICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSAn5Y+N5o+Q5LqkJykgewogICAgICAgIC8v5Y+N5o+Q5LqkICDkv53lrZgKICAgICAgICB0aGlzLmZvcm1lYW50aS5jb21taXREYXRhID0gW107CiAgICAgICAgdGhpcy5mb3JteS5zdGF0dXMgPSAyOwogICAgICAgIHRoaXMuZm9ybWVhbnRpLmNvbW1pdERhdGEucHVzaCh0aGlzLmZvcm15KTsKICAgICAgICB0aGlzLmFudGlTdWJtaXNzaW9uKCk7CiAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gJ+S/neWtmCcpIHsKICAgICAgICAvLyDkv67mlLkKICAgICAgICB0aGlzLmZvcm1lLmZpeGVkRGF0YSA9IHRoaXMucXVlcnlQYXJhbXM7CiAgICAgICAgdGhpcy5zdWJtaXRGb3JtKCk7CiAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gJ+i/lOWbnicpIHsKICAgICAgICB0aGlzLiRzdG9yZS5kaXNwYXRjaCgidGFnc1ZpZXcvZGVsVmlldyIsIHRoaXMuJHJvdXRlKTsKICAgICAgICB0aGlzLiRyb3V0ZXIuZ28oLTEpOwogICAgICB9IGVsc2UgaWYgKGluZGV4ID09ICfliLfmlrAnKSB7CiAgICAgICAgdGhpcy5yZWxvYWQoKTsKICAgICAgfSBlbHNlIGlmIChpbmRleCA9PSAn5paw5aKeJykgewogICAgICAgIHRoaXMucm91dGVyRm4oLTEsIHRoaXMudGFiTmFtZSk7CiAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT0gJ+S/ruaUuScpIHsKICAgICAgICBpZiAodGhpcy5zaW5nbGUpIHsKICAgICAgICAgIHRoaXMubXNnSW5mbygn6K+35Yu+6YCJ5LiA5p2h5L+h5oGvJyk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICB2YXIgaWQgPSB0aGlzLmlkcy5qb2luKCcsJyk7CiAgICAgICAgdGhpcy5yb3V0ZXJGbihpZCwgdGhpcy50YWJOYW1lKTsKICAgICAgfSAvLyB0aGlzLmdldExpc3QoKTsKCiAgICB9LAoKICAgIC8qKiDmlrDlop4g5L+u5pS55o+Q5Lqk5oyJ6ZKuICovCiAgICBzdWJtaXRGb3JtOiBmdW5jdGlvbiBzdWJtaXRGb3JtKCkgewogICAgICB2YXIgX3RoaXM2ID0gdGhpczsKCiAgICAgIHRoaXMuJHJlZnNbInF1ZXJ5Rm9ybSJdLnZhbGlkYXRlKGZ1bmN0aW9uICh2YWxpZCkgewogICAgICAgIGlmICh2YWxpZCkgewogICAgICAgICAgYWRkYmplY3RTYXZlKF90aGlzNi5mb3JtZSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgX3RoaXM2Lm1zZ1N1Y2Nlc3MoIuS/neWtmOaIkOWKnyIpOwoKICAgICAgICAgICAgX3RoaXM2Lm9wZW4gPSBmYWxzZTsKCiAgICAgICAgICAgIF90aGlzNi4kc3RvcmUuZGlzcGF0Y2goInRhZ3NWaWV3L2RlbFZpZXciLCBfdGhpczYuJHJvdXRlKTsKCiAgICAgICAgICAgIF90aGlzNi4kcm91dGVyLmdvKC0xKTsgLy8gdGhpcy5nZXRMaXN0KCk7CgogICAgICAgICAgfSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0sCiAgICAvLyDmj5DkuqTlj43mj5DkuqQKICAgIGFudGlTdWJtaXNzaW9uOiBmdW5jdGlvbiBhbnRpU3VibWlzc2lvbigpIHsKICAgICAgdmFyIF90aGlzNyA9IHRoaXM7CgogICAgICB0aGlzLiRyZWZzWyJxdWVyeUZvcm0iXS52YWxpZGF0ZShmdW5jdGlvbiAodmFsaWQpIHsKICAgICAgICBpZiAodmFsaWQpIHsKICAgICAgICAgIGlmIChfdGhpczcuZm9ybXkuc3RhdHVzID09IDEpIHsKICAgICAgICAgICAgLy8g5o+Q5LqkCiAgICAgICAgICAgIHRhYmxlU3ViaW10KF90aGlzNy5mb3JtZWFudGkpLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7CiAgICAgICAgICAgICAgX3RoaXM3Lm1zZ1N1Y2Nlc3MoIuaPkOS6pOaIkOWKnyIpOwoKICAgICAgICAgICAgICBfdGhpczcuJHN0b3JlLmRpc3BhdGNoKCJ0YWdzVmlldy9kZWxWaWV3IiwgX3RoaXM3LiRyb3V0ZSk7CgogICAgICAgICAgICAgIF90aGlzNy4kcm91dGVyLmdvKC0xKTsgLy8gdGhpcy5nZXRMaXN0KCk7CgogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSBpZiAoX3RoaXM3LmZvcm15LnN0YXR1cyA9PSAyKSB7CiAgICAgICAgICAgIC8vIOWPjeaPkOS6pAogICAgICAgICAgICB0YWJsZVN1YmltdGFuaXQoX3RoaXM3LmZvcm1lYW50aSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICBfdGhpczcubXNnU3VjY2Vzcygi5Y+N5o+Q5Lqk5oiQ5YqfIik7CgogICAgICAgICAgICAgIF90aGlzNy4kc3RvcmUuZGlzcGF0Y2goInRhZ3NWaWV3L2RlbFZpZXciLCBfdGhpczcuJHJvdXRlKTsKCiAgICAgICAgICAgICAgX3RoaXM3LiRyb3V0ZXIuZ28oLTEpOyAvLyB0aGlzLmdldExpc3QoKTsKCiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfSk7CiAgICB9LAogICAgLy/liKDpmaQKICAgIGhhbmRsZURlbGV0ZTogZnVuY3Rpb24gaGFuZGxlRGVsZXRlKGluZGV4KSB7CiAgICAgIHZhciBfdGhpczggPSB0aGlzOwoKICAgICAgaWYgKHRoaXMubnVtID09IDApIHsKICAgICAgICB0aGlzLiRjb25maXJtKCfmmK/lkKbnoa7orqTliKDpmaQnLCAi6K2m5ZGKIiwgewogICAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICLnoa7lrpoiLAogICAgICAgICAgY2FuY2VsQnV0dG9uVGV4dDogIuWPlua2iCIsCiAgICAgICAgICB0eXBlOiAid2FybmluZyIKICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIHJldHVybiBkZWxNZW51dGFiKGluZGV4KTsKICAgICAgICB9KS50aGVuKGZ1bmN0aW9uICgpIHsKICAgICAgICAgIC8vIHRoaXMuZ2V0TGlzdCgpOwogICAgICAgICAgX3RoaXM4Lm1zZ1N1Y2Nlc3MoIuWIoOmZpOaIkOWKnyIpOwoKICAgICAgICAgIF90aGlzOC4kc3RvcmUuZGlzcGF0Y2goInRhZ3NWaWV3L2RlbFZpZXciLCBfdGhpczguJHJvdXRlKTsKCiAgICAgICAgICBfdGhpczguJHJvdXRlci5nbygtMSk7CiAgICAgICAgfSk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgaWYgKHRoaXMuc2luZ2xlKSB7CiAgICAgICAgICB0aGlzLm1zZ0luZm8oJ+ivt+WLvumAieS4gOadoeS/oeaBrycpOwogICAgICAgICAgcmV0dXJuOwogICAgICAgIH0gLy8gY29uc29sZS5sb2codGhpcy5pZHMpCgoKICAgICAgICB2YXIgdGhhdCA9IHRoaXM7CiAgICAgICAgaW5kZXguaWRMaXN0ID0gdGhpcy5pZHM7CiAgICAgICAgaW5kZXgudGFibGUgPSB0aGlzLnRhYk5hbWU7CiAgICAgICAgdGhpcy4kY29uZmlybSgn5piv5ZCm56Gu6K6k5Yig6ZmkJywgIuitpuWRiiIsIHsKICAgICAgICAgIGNvbmZpcm1CdXR0b25UZXh0OiAi56Gu5a6aIiwKICAgICAgICAgIGNhbmNlbEJ1dHRvblRleHQ6ICLlj5bmtogiLAogICAgICAgICAgdHlwZTogIndhcm5pbmciCiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICByZXR1cm4gZGVsTWVudXRhYihpbmRleCk7CiAgICAgICAgfSkudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgICBfdGhpczguZm9yZW1saXNlanUoKTsKCiAgICAgICAgICBfdGhpczgubXNnU3VjY2Vzcygi5Yig6Zmk5oiQ5YqfIik7IC8vIHRoaXMuJHJvdXRlci5nbygtMSkKCiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0sCiAgICAvLyDlpJrpgInmoYbpgInkuK3mlbDmja4KICAgIGhhbmRsZVNlbGVjdGlvbkNoYW5nZTogZnVuY3Rpb24gaGFuZGxlU2VsZWN0aW9uQ2hhbmdlKHNlbGVjdGlvbikgewogICAgICB0aGlzLmlkcyA9IHNlbGVjdGlvbi5tYXAoZnVuY3Rpb24gKGl0ZW0pIHsKICAgICAgICByZXR1cm4gaXRlbS5pZDsKICAgICAgfSk7CiAgICAgIHRoaXMuc2luZ2xlID0gc2VsZWN0aW9uLmxlbmd0aCAhPSAxOwogICAgICB0aGlzLm11bHRpcGxlID0gIXNlbGVjdGlvbi5sZW5ndGg7CiAgICB9LAogICAgcm91dGVyRm46IGZ1bmN0aW9uIHJvdXRlckZuKGlkLCB0YWJsZXMpIHsKICAgICAgLy8gaWYgKHRoaXMucXVlcnlEYXRhdHdvLnZpZXdUeXBlID09ICdjcnVkJykgewogICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7CiAgICAgICAgcGF0aDogJ3RhYmxlJywKICAgICAgICBxdWVyeTogewogICAgICAgICAgaWQ6IGlkLAogICAgICAgICAgdGFibGVzOiB0YWJsZXMKICAgICAgICB9CiAgICAgIH0pOwogICAgfSwKICAgIC8vIOaQnOe0ogogICAgaGFuZGxlUXVlcnlpdTogZnVuY3Rpb24gaGFuZGxlUXVlcnlpdSgpIHsKICAgICAgdmFyIF9pdGVyYXRvcjQgPSBfY3JlYXRlRm9yT2ZJdGVyYXRvckhlbHBlcih0aGlzLnF1ZXJ5RGF0YXR3by5xdWVyeUxpc3QpLAogICAgICAgICAgX3N0ZXA0OwoKICAgICAgdHJ5IHsKICAgICAgICBmb3IgKF9pdGVyYXRvcjQucygpOyAhKF9zdGVwNCA9IF9pdGVyYXRvcjQubigpKS5kb25lOykgewogICAgICAgICAgdmFyIGl0ZW0gPSBfc3RlcDQudmFsdWU7CgogICAgICAgICAgaWYgKGl0ZW0uaHRtbFR5cGUgPT0gJ2NoZWNrYm94JykgewogICAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zdHdvaVtpdGVtLmNvbHVtbk5hbWVdID0gdGhpcy4kcmVmc1tpdGVtLmNvbHVtbk5hbWVdWzBdLmNvbmZpZzsKICAgICAgICAgIH0gZWxzZSBpZiAoaXRlbS5odG1sVHlwZSA9PSAnaW1hZ2VVcGxvYWQnIHx8IGl0ZW0uaHRtbFR5cGUgPT0gJ2ZpbGVVcGxvYWQnKSB7CiAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXN0d29pW2l0ZW0uY29sdW1uTmFtZV0gPSBKU09OLnN0cmluZ2lmeSh0aGlzLiRyZWZzW2l0ZW0uY29sdW1uTmFtZV1bMF0uY29uZmlnKTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHRoaXMucXVlcnlQYXJhbXN0d29pW2l0ZW0uY29sdW1uTmFtZV0gPSB0aGlzLiRyZWZzW2l0ZW0uY29sdW1uTmFtZV1bMF0uY29uZmlnW2l0ZW0uY29sdW1uTmFtZV07CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9IGNhdGNoIChlcnIpIHsKICAgICAgICBfaXRlcmF0b3I0LmUoZXJyKTsKICAgICAgfSBmaW5hbGx5IHsKICAgICAgICBfaXRlcmF0b3I0LmYoKTsKICAgICAgfQoKICAgICAgZm9yICh2YXIgaXRlbXMgaW4gdGhpcy5xdWVyeVBhcmFtc3R3b2kpIHsKICAgICAgICBpZiAodGhpcy5xdWVyeVBhcmFtc3R3b2lbaXRlbXNdID09ICcnKSB7CiAgICAgICAgICB0aGlzLnF1ZXJ5UGFyYW1zdHdvaVtpdGVtc10gPSB1bmRlZmluZWQ7CiAgICAgICAgfQogICAgICB9CgogICAgICB0aGlzLnF1ZXJ5UGFyYW1zbGlzdC5maXhlZERhdGEuY29uZGl0aW9uID0gdGhpcy5xdWVyeVBhcmFtc3R3b2k7CiAgICAgIHRoaXMuZm9yZW1saXNlanUoKTsKICAgIH0sCiAgICByZXNldFF1ZXJ5OiBmdW5jdGlvbiByZXNldFF1ZXJ5KCkgewogICAgICB0aGlzLnJlc2V0Rm9ybSgicXVlcnlQYXJhbXN0d29pIik7CiAgICAgIHRoaXMuZm9yZW1saXNlanUoKTsKICAgIH0KICB9Cn07"},null]}
|