Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@爱听音乐@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi54ix5ZCs6Z+z5LmQIiwiYXV0aG9yIjoi5a2j6aOOIiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjaHR0cDovL3d3dy4ydDU4LmNvbSNmeXBhZ2UiLCJ2ZXJzaW9uIjo1LCJjb2xfdHlwZSI6Im1vdmllXzMiLCJjbGFzc19uYW1lIjoiIiwidHlwZSI6Im11c2ljIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6XG4kLnJlcXVpcmUoXCJob21lXCIpLkhvbWUoKTsiLCJzZWFyY2hfdXJsIjoiaHR0cDovL3d3dy4ydDU4LmNvbS9zby8qKi9meXBhZ2UuaHRtbCIsImdyb3VwIjoiI++4j+KDo+KRo+mfs+S5kCIsInNlYXJjaEZpbmQiOiJqczpcbnZhciBkID0gW11cbnZhciBodG1sID0gZmV0Y2goTVlfVVJMKVxubGV0IHBsYXlfbGlzdCA9IHBkZmEoaHRtbCwgXCIucGxheV9saXN0JiZsaVwiKTtcbnBsYXlfbGlzdC5mb3JFYWNoKChzKSA9PiB7XG4gICAgbGV0IHRpdGxlID0gcGRmaChzLCBcIi5uYW1lJiZhJiZUZXh0XCIpLnRyaW0oKTtcbiAgICBsZXQgc29uZ1VybCA9IFwiaHR0cDovL3d3dy4ydDU4LmNvbVwiICsgcGRmaChzLCBcIi5uYW1lJiZhJiZocmVmXCIpO1xuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgZGVzYzogXCLmrYzmm7JcIixcbiAgICAgICAgdXJsOiBzb25nVXJsICsgJ0BydWxlPWpzOiQucmVxdWlyZShcIm11c2ljXCIpJ1xuICAgIH0pO1xuICAgIGxldCBsaXN0ID0gcGRmYShzLCBcImJvZHkmJmFcIik7XG4gICAgbGlzdC5mb3JFYWNoKCh4KSA9PiB7XG4gICAgICAgIGxldCBocmVmID0gcGRmaCh4LCBcImEmJmhyZWZcIik7XG4gICAgICAgIGlmIChocmVmLmluY2x1ZGVzKFwiL3ZpZGVvL1wiKSkge1xuICAgICAgICAgICAgbGV0IG12VXJsID0gXCJodHRwOi8vd3d3LjJ0NTguY29tXCIgKyBocmVmICsgJC5yZXF1aXJlKFwiaGlrZXI6Ly9wYWdlL3B1YmxpY1wiKS5NVjtcbiAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlICsgXCIgLSBNVlwiLFxuICAgICAgICAgICAgICAgIGRlc2M6IFwiTVZcIixcbiAgICAgICAgICAgICAgICB1cmw6IG12VXJsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH0pO1xufSk7XG5cblxuc2V0UmVzdWx0KGQpIiwiZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsImRldGFpbF9maW5kX3J1bGUiOiIiLCJzZGV0YWlsX2NvbF90eXBlIjoibW92aWVfMSIsInNkZXRhaWxfZmluZF9ydWxlIjoiIiwidWEiOiJtb2JpbGUiLCJwcmVSdWxlIjoiaWYgKHJlcXVlc3QoJ2hpa2VyOi8vaG9tZUDOsScpID09ICdudWxsJykge1xuICAgIGNvbmZpcm0oe1xuICAgICAgICB0aXRsZTogJ+S+nei1luajgOa1iycsXG4gICAgICAgIGNvbnRlbnQ6ICfmo4DmtYvliLDnvLrlsJHlsI/nqIvluo8s6K+35a+85YWlIScsXG4gICAgICAgIGNvbmZpcm06ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBcIua1t+mYlOinhueVjOmmlumhtemikemBk+inhOWImeOAkM6x44CR77+laG9tZV9ydWxlX3VybO+/pWh0dHA6Ly9oaWtlci5ub2tpYS5wcmVzcy9oaWtlcnVsZS9ydWxlbGlzdC5qc29uP2lkPTY0MTdcIlxuICAgICAgICB9XG4gICAgfSlcbn0iLCJwYWdlcyI6Ilt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6aaW6aG1XCIsXCJwYXRoXCI6XCJob21lXCIsXCJydWxlXCI6XCIkLmV4cG9ydHMuSG9tZSA9IGZ1bmN0aW9uKCkge1xcbiAgICBsZXQgZCA9IFtdO1xcbiAgICBsZXQgcGFnZSA9IE1ZX1BBR0UgXFxuICAgIGxldCBob3N0ID0gXFxcImh0dHA6Ly93d3cuMnQ1OC5jb21cXFwiO1xcbiAgICBsZXQgdHViaWFvID0gXFxcImh0dHBzOi8vaGlrZXJmYW5zLmNvbS90dWJpYW8vcmVkL1xcXCI7XFxuICAgIGxldCBjbGEgPSBwZGZhKGZldGNoKGhvc3QpLFxcXCJib2R5JiYuZmVkLXRleHQtY2VudGVyXFxcIikuY29uY2F0KCc8YSBocmVmPVxcXCIvbG92ZVxcXCI+5pS26JePPC9hPicpO1xcbiAgICBsZXQgdHUgPSBbXFxcIjExOVxcXCIsIFxcXCI0OFxcXCIsIFxcXCIzNVxcXCIsXFxcIjQzXFxcIixcXFwiNTNcXFwiLFxcXCI1MlxcXCJdO1xcbiAgICBpZihwYWdlPT0xKXtcXG4gICAgY2xhLmZvckVhY2goKHgsaSk9PiB7XFxuICAgICAgICBsZXQgbGkgPSBwZGZoKHgsXFxcImEmJlRleHRcXFwiKTtcXG4gICAgICAgIGxldCB1cmwgPSBwZCh4LFxcXCJhJiZocmVmXFxcIixob3N0KVxcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogZ2V0VmFyKFxcXCJmZW5sXFxcIiwgXFxcIummlumhtVxcXCIpID09IGxpID8gbGkuZm9udGNvbG9yKCdyZWQnKTogbGksXFxuICAgICAgICAgICAgcGljOiB0dWJpYW8gKyB0dVtpXSArIFxcXCIucG5nXFxcIixcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcImljb25fc21hbGxfM1xcXCIsXFxuICAgICAgICAgICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKChsaSx1cmwpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IGtleXMgPSBsaXN0TXlWYXJLZXlzKCk7XFxuICAgIGZvciAobGV0IGl0IG9mIGtleXMpIHtcXG4gICAgICAgIGNsZWFyTXlWYXIoaXQpO1xcbiAgICB9O1xcbiAgICAgICAgICAgICAgICBwdXRWYXIoXFxcImZlbmxcXFwiLCBsaSk7XFxuICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXCJ1cmxcXFwiLHVybCk7XFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxuICAgICAgICAgICAgfSxsaSx1cmwpXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH1cXG4gICAgZnVuY3Rpb24gc3kodXJsLCBkKSB7XFxuICAgICAgICBsZXQgaHRtbCA9IGZldGNoKHVybClcXG4gICAgICAgIGxldCBMYWIgPSBwZGZhKGh0bWwsJ2JvZHkmJi5sYXl1aS1yb3c6bHQoNCknKTtcXHJcXG4gICAgICAgIExhYi5mb3JFYWNoKCh4KSA9PiB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLilpAgXFxcIi5mb250Y29sb3IoJyMyMGExNjInKStwZGZoKHgsXFxcImgxJiZUZXh0XFxcIiksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicmljaF90ZXh0XFxcIlxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgbGV0IGl0ZW0gPSBwZGZhKHgsICdib2R5JiZsaScpO1xcclxcbiAgICAgICAgICAgIGl0ZW0uZm9yRWFjaCgocykgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgaW1nID0gcGRmaChzLFxcXCJpbWcmJnNyY1xcXCIpLnNwbGl0KCd1cmw9JylbMV1cXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gcGRmaChzLFxcXCIubmFtZSYmVGV4dFxcXCIpXFxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBcXFwiaHR0cDovL3d3dy4ydDU4LmNvbVxcXCIrcGRmaChzLFxcXCJhJiZocmVmXFxcIilcXG4gICAgICAgICAgICAgICAgbGV0IHN1cmxcXG4gICAgICAgICAgICAgICAgaWYoL3NvbmcvLnRlc3QodXJsKSl7XFxuICAgICAgICAgICAgICAgICAgICBzdXJsID0gdXJsKyQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL3B1YmxpY1xcXCIpLmxhenlcXG4gICAgICAgICAgICAgICAgfWVsc2UgaWYoL3ZpZGVvLy50ZXN0KHVybCkpe1xcbiAgICAgICAgICAgICAgICAgICAgc3VybD0gdXJsKyQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL3B1YmxpY1xcXCIpLk1WXFxuICAgICAgICAgICAgICAgIH1lbHNlIGlmKC9saXN0Ly50ZXN0KHVybCkpe1xcbiAgICAgICAgICAgICAgICAgICAgc3VybD0gdXJsLnJlcGxhY2UoLy5odG1sLyxgL2Z5cGFnZS5odG1sYCkrJ0BydWxlPWpzOiQucmVxdWlyZShcXFwicGxheWxpc3RcXFwiKSdcXG4gICAgICAgICAgICAgICAgfWVsc2UgaWYoL3Npbmdlci8udGVzdCh1cmwpKXtcXG4gICAgICAgICAgICAgICAgICAgIHN1cmw9IHVybCsnZnlwYWdlQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJzaW5nZXJcXFwiKSdcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOnRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBzdXJsLFxcbiAgICAgICAgICAgICAgICAgICAgcGljX3VybDogaW1nLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IGltZz9cXFwiY2FyZF9waWNfM1xcXCI6XFxcInRleHRfMVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYTp7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdFRpdGxlOiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb25nQ2xpY2s6W3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6XFxcIuatjOabsuivpuaDhVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKCh1cmwpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKC9zb25nLy50ZXN0KHVybCkpe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVybCArJ0BydWxlPWpzOiQucmVxdWlyZShcXFwibXVzaWNcXFwiKSd9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBcXFwidG9hc3Q6Ly/ov5nkuI3mmK/mrYzmm7JcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSx1cmwpXFxuICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfSlcXG4gICAgfVxcbiAgICBmdW5jdGlvbiBsZWliKHVybCxkLHBhZ2UsdGFnKSB7XFxuICAgIGNvbnN0IOS4i+S4gOmhtSA9IFxcXCJwZChodG1sLCAnYTptYXRjaGVzKOS4i+S4gOmhtSkmJmhyZWYnKVxcXCI7XFxuICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS95aT9ydWxlPc6xJykpLnJ1bGUpXFxudmFyIOWumuS9jeS/oeaBryA9IFt7XFxuICAgIOWkp+exu+WumuS9jTogJ2JvZHkmJi5pbGluZ2t1X2ZsOmVxKDApJyxcXG4gICAg5bCP57G7OiAnYm9keSYmYScsXFxufSwge1xcbiAgICDkuIDnuqflrprkvY06ICdib2R5JiYuaWxpbmdrdV9mbDpndCgwKScsXFxuICAgIOWwj+exuzogJ2JvZHkmJmEnLFxcbn1dO1xcbmxldCB0cnVlX3VybCA9IGdldFRydWVsaW5rKE1ZX1JVTEUudXJsLCB1cmwscGFnZSk7XFxubGV0IHVybCA9IHRydWVfdXJsXFxubGV0IGh0bWwgPSBmZXRjaCh1cmwpO1xcbmNvbnN0IGRjID0gZHluYW1pY0NsYXNzKHtcXG4gICAg5YiG57G76aKc6ImyOiBnZXRSYW5nZUNvbG9ycygpXFxufSk7XFxuZGMu5byA5ZCv5oqY5Y+gKClcXG5kYy7lvIDlkK/mkJzntKIoZmFsc2UpLuWIm+W7uuWKqOaAgeWIhuexuyjlrprkvY3kv6Hmga8pXFxudmFyIGxpc3QgPSBwZGZhKGh0bWwsdGFnKTtcXG5saXN0LmZvckVhY2goKHMpPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgaW1nID0gcGRmaChzLFxcXCJpbWcmJnNyY1xcXCIpLnNwbGl0KCd1cmw9JylbMV1cXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gcGRmaChzLFxcXCIubmFtZSYmVGV4dFxcXCIpXFxuICAgICAgICAgICAgICAgIGxldCB1cmwgPSBcXFwiaHR0cDovL3d3dy4ydDU4LmNvbVxcXCIrcGRmaChzLFxcXCJhJiZocmVmXFxcIilcXG4gICAgICAgICAgICAgICAgbGV0IHN1cmxcXG4gICAgICAgICAgICAgICAgaWYoL3NvbmcvLnRlc3QodXJsKSl7XFxuICAgICAgICAgICAgICAgICAgICBzdXJsID0gdXJsKyQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL3B1YmxpY1xcXCIpLmxhenlcXG4gICAgICAgICAgICAgICAgfWVsc2UgaWYoL3ZpZGVvLy50ZXN0KHVybCkpe1xcbiAgICAgICAgICAgICAgICAgICAgc3VybD0gdXJsKyQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL3B1YmxpY1xcXCIpLk1WXFxuICAgICAgICAgICAgICAgIH1lbHNlIGlmKC9saXN0Ly50ZXN0KHVybCkpe1xcbiAgICAgICAgICAgICAgICAgICAgc3VybD0gdXJsLnJlcGxhY2UoLy5odG1sLyxgL2Z5cGFnZS5odG1sYCkrJ0BydWxlPWpzOiQucmVxdWlyZShcXFwicGxheWxpc3RcXFwiKSdcXG4gICAgICAgICAgICAgICAgfWVsc2UgaWYoL3Npbmdlci8udGVzdCh1cmwpKXtcXG4gICAgICAgICAgICAgICAgICAgIHN1cmw9IHVybCsnZnlwYWdlQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJzaW5nZXJcXFwiKSdcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6dGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHN1cmwsXFxuICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiBpbWcsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogaW1nP1xcXCJjYXJkX3BpY18zXFxcIjpcXFwidGV4dF8xXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOntcXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmhlcml0VGl0bGU6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdDbGljazpbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTpcXFwi5q2M5puy6K+m5oOFXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoKHVybCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoL3NvbmcvLnRlc3QodXJsKSl7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsICsnQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJtdXNpY1xcXCIpJ31cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgcmV0dXJuIFxcXCJ0b2FzdDovL+i/meS4jeaYr+atjOabslxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LHVybClcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9KSAgIFxcbiAgICB9KVxcbmF1dG9QYWdlKCk7XFxuICAgIH1cXG5mdW5jdGlvbiBsb3ZlKGQpIHtcXG4gICAgLy/mhJ/osKLwn5Sl8J+UpfCflKXlpKfkvaznmoTku6PnoIFcXG4gICAgdmFyIGxhYmVsID0gZ2V0VmFyKFxcXCJsYWJlbFxcXCIpID8gZ2V0VmFyKFxcXCJsYWJlbFxcXCIpIDogXFxcIuatjOabslxcXCI7XFxuICAgIHZhciB1ID0gbGFiZWwgPT0gXFxcIuatjOabslxcXCIgPyAnaGlrZXI6Ly9maWxlcy9ydWxlcy9tb24v54ix5ZCs6Z+z5LmQL211c2ljLnR4dCcgOiAnaGlrZXI6Ly9maWxlcy9ydWxlcy9tb24v54ix5ZCs6Z+z5LmQL2FsYnVtLnR4dCc7XFxuICAgIHZhciBsZW5ndGggPSBKU09OLnBhcnNlKGZldGNoUEModSkgfHwgJ1tdJykubGVuZ3RoXFxuaWYgKE1ZX1BBR0UgPT0gMSkge1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGxhYmVsID09IFxcXCLmrYzmm7JcXFwiID8gJ+KAnOKAnOKAneKAnScrKFxcXCLmrYzmm7IgXFxcIisoXFxcIijlhbFcXFwiK2xlbmd0aCtcXFwi6aaWKVxcXCIpLnNtYWxsKCkpLmZvbnRjb2xvcigncmVkJyk6XFxcIuatjOabslxcXCIsXFxuICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5I25vTG9hZGluZyNAbGF6eVJ1bGU9LmpzOnB1dFZhcignbGFiZWwnLCfmrYzmm7InKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5YqfJ1xcXCIsXFxuICAgICAgICBwaWNfdXJsOiBcXFwiaHR0cHM6Ly9oaWtlcmZhbnMuY29tL3R1Ymlhby91bmZyYW1lZC80LnBuZ1xcXCIsXFxuICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICB9LHtcXG4gICAgICAgIHRpdGxlOiBsYWJlbCA9PSBcXFwi5q2M5Y2VXFxcIiA/ICfigJzigJzigJ3igJ0nKyhcXFwi5q2M5Y2VIFxcXCIrKFxcXCIo5YWxXFxcIitsZW5ndGgrXFxcIuS4qilcXFwiKS5zbWFsbCgpKS5mb250Y29sb3IoJ3JlZCcpIDogXFxcIuatjOWNlVxcXCIsXFxuICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5I25vTG9hZGluZyNAbGF6eVJ1bGU9LmpzOnB1dFZhcignbGFiZWwnLCfmrYzljZUnKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5YqfJ1xcXCIsXFxuICAgICAgICBwaWNfdXJsOiBcXFwiaHR0cHM6Ly9oaWtlcmZhbnMuY29tL3R1Ymlhby91bmZyYW1lZC8xODUucG5nXFxcIixcXG4gICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxuICAgIH0pXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTpcXFwi5Yig6ZmkXFxcIixcXG4gICAgICAgIHBpY191cmw6IFxcXCJodHRwczovL2hpa2VyZmFucy5jb20vdHViaWFvL3VuZnJhbWVkLzE4OS5wbmdcXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJmbGV4X2J1dHRvblxcXCIsXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHUpID0+IHtcXG4gICAgY29uc3QgaGlrZXJQb3AgPSAkLnJlcXVpcmUoXFxcImh0dHA6Ly9oaWtlci5ub2tpYS5wcmVzcy9oaWtlcnVsZS9ydWxlbGlzdC5qc29uP2lkPTY5NjZcXFwiKTtcXG4gICAgbGV0IGxpc3QgPSBKU09OLnBhcnNlKGZldGNoUEModSkgfHwgJ1tdJyk7XFxuICAgIGxldCBuYW1lbGlzdCA9IGxpc3QubWFwKGl0ZW0gPT4gaXRlbS5zcGxpdCgnQEAnKVswXSk7XFxuXFxuICAgIGhpa2VyUG9wLm11bHRpQ2hvaWNlKHtcXG4gICAgICAgIHRpdGxlOiBcXFwi5om56YeP5Yig6ZmkXFxcIixcXG4gICAgICAgIG9wdGlvbnM6IG5hbWVsaXN0LFxcbiAgICAgICAgcmlnaHRUaXRsZTogXFxcIuehruiupFxcXCIsXFxuICAgICAgICByaWdodENsaWNrKG9wdGlvbnMsIGNoZWNrZWQpIHtcXG4gICAgICAgICAgICBsZXQgc2VsZWN0ZWROYW1lcyA9IG9wdGlvbnMuZmlsdGVyKChfLCBpKSA9PiBjaGVja2VkW2ldKTtcXG4gICAgICAgICAgICBsZXQgb24gPSBzZWxlY3RlZE5hbWVzLmxlbmd0aDtcXG4gICAgICAgICAgICBpZiAob24gPT09IDApIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+acgOWwkemAieaLqeS4gOadoe+8gVxcXCI7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiAkKFxcXCLnoa7orqTliKDpmaQgXFxcIiArIG9uICsgXFxcIiDmnaHvvJ9cXFwiKS5jb25maXJtKChsaXN0LHNlbGVjdGVkTmFtZXMsb24sdSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsaXN0ID0gbGlzdC5maWx0ZXIoaXRlbSA9PiAhc2VsZWN0ZWROYW1lcy5pbmNsdWRlcyhpdGVtLnNwbGl0KCdAQCcpWzBdKSk7XFxuICAgICAgICAgICAgICAgIHdyaXRlRmlsZSh1LCBKU09OLnN0cmluZ2lmeShsaXN0KSk7XFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+aIkOWKn+WIoOmZpCBcXFwiICsgb24gKyBcXFwiIOmmlu+8gVxcXCI7XFxuICAgICAgICAgICAgfSxsaXN0LHNlbGVjdGVkTmFtZXMsb24sdSk7XFxuICAgICAgICB9LFxcbiAgICAgICAgbGVmdFRpdGxlOiBcXFwi5YWo6YOo5Yig6ZmkXFxcIixcXG4gICAgICAgIGxlZnRDbGljaygpIHtcXG4gICAgICAgICAgICByZXR1cm4gJChcXFwi56Gu6K6k5Yig6Zmk5YWo6YOo77yfXFxcIikuY29uZmlybSgobGlzdCx1KSA9PiB7XFxuICAgICAgICAgICAgICAgIGxpc3QgPSBbXTtcXG4gICAgICAgICAgICAgICAgd3JpdGVGaWxlKHUsIEpTT04uc3RyaW5naWZ5KGxpc3QpKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5Yig6Zmk5oiQ5Yqf77yBXFxcIjtcXG4gICAgICAgICAgICB9LGxpc3QsdSk7XFxuICAgICAgICB9LFxcbiAgICAgICAgY2VudGVyVGl0bGU6IFxcXCLlj5bmtohcXFwiXFxuICAgIH0pO1xcblxcbiAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiO1xcbn0sdSlcXG5cXG4gICAgfSlcXG59XFxuXFxudmFyIHN0ciA9IHJlYWRGaWxlKHUsIDApO1xcbmlmIChzdHIpIHtcXG4gICAgdmFyIGxpc3QgPSBKU09OLnBhcnNlKHN0cik7XFxuICAgIGxpc3QuZm9yRWFjaCgobGlzdCkgPT4ge1xcbiAgICAgICAgbGV0IHVybCA9IGxpc3Quc3BsaXQoJ0BAJylbMl1cXG4gICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogbGlzdC5zcGxpdCgnQEAnKVswXSxcXG4gICAgICAgICAgICBpbWc6IGxpc3Quc3BsaXQoJ0BAJylbMV0sXFxuICAgICAgICAgICAgdXJsOiBsYWJlbCA9PSBcXFwi5q2M5puyXFxcIj91cmwrJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvcHVibGljXFxcIikubGF6eTp1cmwucmVwbGFjZSgvMS8sYGZ5cGFnZWApKydAcnVsZT1qczokLnJlcXVpcmUoXFxcInBsYXlsaXN0XFxcIiknLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnY2FyZF9waWNfMycsXFxuICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgbG9uZ0NsaWNrOiBbe1xcbiAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5Y+W5raI5pS26JePJyxcXG4gICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZygobGlzdCwgdSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2UoZmV0Y2hQQyh1KSB8fCAnW10nKTtcXG4gICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGRhdGEuZmlsdGVyKHggPT4geCAhPSBsaXN0KTtcXG4gICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKHUsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIjtcXG4gICAgICAgICAgICAgICAgICB9LCBsaXN0LCB1KVxcbiAgICAgICAgICAgICAgfSx7XFxuICAgICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLmn6XnnIvor6bmg4VcXFwiLFxcbiAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKCh1cmwsIGxhYmVsKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgIGxldCBEZXRhaWwgPSBsYWJlbCA9PSBcXFwi5q2M5puyXFxcIj91cmwrJ0BydWxlPWpzOiQucmVxdWlyZShcXFwibXVzaWNcXFwiKSc6dXJsLnJlcGxhY2UoLzEvLGBmeXBhZ2VgKSsnQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJwbGF5bGlzdFxcXCIpJ1xcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRGV0YWlsXFxuICAgICAgICAgICAgICAgICAgfSwgdXJsLCBsYWJlbClcXG4gICAgICAgICAgICAgIH1dLFxcbiAgICAgICAgICB9XFxuICAgICAgICB9KTtcXG4gICAgfSk7XFxufVxcbiAgICBcXG59XFxuICAgIGlmIChnZXRWYXIoXFxcImZlbmxcXFwiLFxcXCLpppbpobVcXFwiKSA9PSBcXFwi6aaW6aG1XFxcIikge1xcbiAgICAgICAgbGV0IHVybCA9IGdldE15VmFyKFxcXCJ1cmxcXFwiLGhvc3QpXFxuICAgICAgICAvL2xvZyh1cmwpXFxuICAgICAgICBpZihwYWdlPT0xKXtcXG4gICAgICAgICAgICBzeSh1cmwsIGQpO1xcbiAgICAgICAgICAgIH1cXG4gICAgfSBlbHNlXFxuICAgIGlmIChnZXRWYXIoXFxcImZlbmxcXFwiKSA9PSBcXFwi5o6S6KGMXFxcIikge1xcbiAgICAgICAgbGV0IHVybCA9IGdldE15VmFyKFxcXCJ1cmxcXFwiLGhvc3QpXFxuICAgICAgICBsZXQgdGFnID0gXFxcIi5wbGF5X2xpc3QmJmxpXFxcIlxcbiAgICAgICAgbGVpYih1cmwsZCxwYWdlLHRhZylcXG4gICAgfWVsc2VcXG4gICAgaWYgKGdldFZhcihcXFwiZmVubFxcXCIpID09IFxcXCLmrYzljZVcXFwiKSB7XFxuICAgICAgICBsZXQgdXJsID0gZ2V0TXlWYXIoXFxcInVybFxcXCIsaG9zdClcXG4gICAgICAgIGxldCB0YWcgPSBcXFwiLnZpZGVvX2xpc3QmJmxpXFxcIlxcbiAgICAgICAgbGVpYih1cmwsZCxwYWdlLHRhZylcXG4gICAgfWVsc2VcXG4gICAgaWYgKGdldFZhcihcXFwiZmVubFxcXCIpID09IFxcXCLmrYzmiYtcXFwiKSB7XFxuICAgICAgICBsZXQgdXJsID0gZ2V0TXlWYXIoXFxcInVybFxcXCIsaG9zdClcXG4gICAgICAgIGxldCB0YWcgPSBcXFwiLnNpbmdlcl9saXN0JiZsaVxcXCJcXG4gICAgICAgIGxlaWIodXJsLGQscGFnZSx0YWcpXFxuICAgIH1lbHNlXFxuICAgIGlmIChnZXRWYXIoXFxcImZlbmxcXFwiKSA9PSBcXFwiTVZcXFwiKSB7XFxuICAgICAgICBsZXQgdXJsID0gZ2V0TXlWYXIoXFxcInVybFxcXCIsaG9zdClcXG4gICAgICAgIGxldCB0YWcgPSBcXFwiLnZpZGVvX2xpc3QmJmxpXFxcIlxcbiAgICAgICAgbGVpYih1cmwsZCxwYWdlLHRhZylcXG4gICAgfWVsc2VcXG4gICAgaWYgKGdldFZhcihcXFwiZmVubFxcXCIpID09IFxcXCLmlLbol49cXFwiKSB7XFxuICAgICAgICBsb3ZlKGQpXFxuICAgIH1cXG4gICAgc2V0UmVzdWx0KGQpXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6YCa55SoXCIsXCJwYXRoXCI6XCJwdWJsaWNcIixcInJ1bGVcIjpcImNvbnN0IGxhenkgPSAkKCcnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgIHZhciBob3N0ID0gXFxcImh0dHA6Ly93d3cuMnQ1OC5jb21cXFwiXFxuICAgIHZhciBpZCA9IGlucHV0Lm1hdGNoKC9cXFxcLyhzb25nfG1wMylcXFxcLyhbXlxcXFwvXSspXFxcXC5odG1sLylbMl1cXG4gICAgdmFyIHBsYXkgPSBob3N0KycvanMvcGxheS5waHAnO1xcbiAgICB2YXIganNvbiA9IEpTT04ucGFyc2UoZmV0Y2gocGxheSx7XFxuICAgICAgICAgICBoZWFkZXJzOntcXG4gICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjpcXFwiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEwNS4wLjAuMCBTYWZhcmkvNTM3LjM2XFxcIixcXG4gICAgICAgIFxcXCJSZWZlcmVyXFxcIjogaW5wdXRcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICBib2R5OidpZD0nK2lkKycmdHlwZT1tdXNpYycsXFxuICAgIG1ldGhvZDogJ1BPU1QnLFxcbn0pKS51cmxcXG4gICAgdmFyIGxyYyA9IGhvc3QrJy9wbHVnL2Rvd24ucGhwP2FjPW11c2ljJmxrPWxyYyZpZD0nK2lkO1xcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgdXJsczogW2pzb25dLFxcbiAgICAgICAgbHlyaWM6IGxyY1xcbiAgICB9KVxcbn0pO1xcbmNvbnN0IE1WID0gJCgnJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICB2YXIgaG9zdCA9IFxcXCJodHRwOi8vd3d3LjJ0NTguY29tXFxcIlxcbiAgICB2YXIgaWQgPSBpbnB1dC5tYXRjaCgvXFxcXC8odmlkZW98bXA0KVxcXFwvKFteXFxcXC9dKylcXFxcLmh0bWwvKVsyXVxcbiAgICB2YXIgcGxheSA9IGhvc3QrXFxcIi9wbHVnL2Rvd24ucGhwP2FjPXZwbGF5JmlkPVxcXCIraWQrXFxcIiZxPTMwMDBcXFwiK1xcXCIjaXNWaWRlbz10cnVlIzt7UmVmZXJlckBcXFwiK2lucHV0K1xcXCJ9XFxcIlxcbiAgICByZXR1cm4gcGxheVxcbn0pO1xcbmNvbnN0IOWjsOaYjiA9IGZ1bmN0aW9uIChkKSB7XFxuICAgIGQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPHNtYWxsPjxmb250IGNvbG9yPSMyMGIyYWE+5pWw5o2u6LWE5rqQ5pS26ZuG5LqO572R57uc77yM5rW36ZiU5LiN5o+Q5L6b5Lu75L2V6LWE5rqQ77yBPC9mb250Pjwvc21hbGw+JyxcXG4gICAgZGVzYzogJ+KAmOKAmOKAmeKAmTxzbWFsbD48Zm9udCBjb2xvcj0jZmY3ZjUwPuacrOinhOWImeS7hemZkOWtpuS5oOS4juS6pOa1ge+8jOivt+WvvOWFpeWQjjI05bCP5pe25YaF5Yig6Zmk77yM6K+35Yu/5Lyg5pKt77yBPC9mb250Pjwvc21hbGw+JyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMScsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBsaW5lVmlzaWJsZTogZmFsc2VcXG4gICAgfVxcbn0pO1xcblxcbiAgfVxcbiAgZnVuY3Rpb24gZm9ybWF0U29uZ1RpdGxlKHRpdGxlLGF1dGhvcikge1xcbiAgICB2YXIgcmVnZXggPSAvKC4rKVtfLV0oLispLztcXG4gICAgdmFyIG1hdGNoID0gdGl0bGUubWF0Y2gocmVnZXgpO1xcbiAgICBcXG4gICAgaWYgKG1hdGNoKSB7XFxuICAgICAgICAvLyDliKTmlq3mrYzmiYvlkI3lrZflkozmrYzmm7LlkI3lrZfnmoTkvY3nva5cXG4gICAgICAgIHZhciBwYXJ0MSA9IG1hdGNoWzFdLnRyaW0oKTtcXG4gICAgICAgIHZhciBwYXJ0MiA9IG1hdGNoWzJdLnRyaW0oKTtcXG4gICAgICAgIFxcbiAgICAgICAgaWYgKHBhcnQxLmluY2x1ZGVzKGF1dGhvcikpIHtcXG4gICAgICAgICAgICByZXR1cm4gcGFydDIgKyBcXFwiIC0gXFxcIiArIHBhcnQxO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICByZXR1cm4gcGFydDEgKyBcXFwiIC0gXFxcIiArIHBhcnQyO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiB0aXRsZTsgLy8g5aaC5p6c5LiN5Yy56YWN77yM6L+U5Zue5Y6f5aeL5qCH6aKYXFxufVxcbiQuZXhwb3J0cyA9IHtcXG4gICAgbGF6eSxcXG4gICAgTVYsXFxuICAgIGZvcm1hdFNvbmdUaXRsZSxcXG4gICAg5aOw5piOXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5q2M5Y2VXCIsXCJwYXRoXCI6XCJwbGF5bGlzdFwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSBbXVxcbmNvbnN0IHBhZ2UgPSBNWV9QQUdFXFxubGV0IGh0bWwgPSBmZXRjaChNWV9VUkwpXFxuICAgIGxldCB0aXRsZSA9ICc8c3Ryb25nPicrcGRmaChodG1sLCdoMSYmVGV4dCcpKyc8c3Ryb25nPicrXFxcIlxcXFxu4oCc4oCc4oCd4oCdXFxcIitwZGZoKGh0bWwsXFxcIi5pbmZvJiZUZXh0XFxcIikuc21hbGwoKVxcbiAgICBzZXRQYWdlVGl0bGUocGRmaChodG1sLCdoMSYmVGV4dCcpKVxcbiAgICBsZXQgcGxheV9saXN0ID0gcGRmYShodG1sLFxcXCJib2R5JiYucGxheV9saXN0JiZsaVxcXCIpXFxuICAgIHZhciBpbWcgPSBwZGZoKGh0bWwsXFxcIi5waWMmJmltZyYmc3JjXFxcIilcXG4gICAgdmFyIGxpc3RWaWRlb3MgPSBKU09OLnBhcnNlKGZldGNoUEMoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvbW9uL+eIseWQrOmfs+S5kC9hbGJ1bS50eHQnKSB8fCAnW10nKTtcXG52YXIgc3RyID0gcGRmaChodG1sLCdoMSYmVGV4dCcpICsgJ0BAJyArIGltZyArICdAQCcgKyBNWV9VUkw7XFxuaWYgKGxpc3RWaWRlb3MuaW5kZXhPZihzdHIpID09ICctMScpIHtcXG4gICAgdmFyIHQgPSBcXFwiKOacquaUtuiXjylcXFwiLnNtYWxsKClcXG4gICAgdmFyIHAgPSBcXFwiaGlrZXI6Ly9pbWFnZXMvaWNvbl9saWtlXFxcIlxcbn0gZWxzZSB7XFxuICAgIHZhciB0ID0gXFxcIijlt7LmlLbol48pXFxcIi5mb250Y29sb3IoJ3JlZCcpLnNtYWxsKClcXG4gICAgdmFyIHAgPSBcXFwiaGlrZXI6Ly9pbWFnZXMvaWNvbl9saWtlX2ZpbGxcXFwiXFxufVxcblxcbiAgICBpZihwYWdlPT0xKXtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgIHVybDogJ2hpa2VyOi8vZW1wdHkjJyArICdcXFxcblxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0JyArIHBkZmgoaHRtbCxcXFwiLmluZm8mJlRleHRcXFwiKSArIGBAcnVsZT1qczp2YXIgcmVzID0ge307IHZhciBkID0gW107ZC5wdXNoKHt0aXRsZTpNWV9VUkwuc3BsaXQoJ2hpa2VyOi8vZW1wdHkjJylbMV0sY29sX3R5cGU6ICdsb25nX3RleHQnfSk7cmVzLmRhdGEgPSBkOyBzZXRIb21lUmVzdWx0KHJlcyk7YCxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF8xXFxcIixcXG4gICAgICAgIGV4dHJhOntcXG4gICAgICAgICAgICBsaW5lVmlzaWJsZTpmYWxzZVxcbiAgICAgICAgfVxcbiAgICB9LHtcXG4gICAgICAgICAgICAgICAgLy90aXRsZTogcGRmaChodG1sLFxcXCIucGxheV9saXN0JiZoMSYmVGV4dFxcXCIpK3QsXFxuICAgICAgICAgICAgICAgIHRpdGxlOiBwZGZoKGh0bWwsXFxcIi5wbGF5X2xpc3QmJi5wYWdlZGF0YSYmVGV4dFxcXCIpLnNtYWxsKCksXFxuICAgICAgICAgICAgICAgIHBpY191cmw6IGltZyxcXG4gICAgICAgICAgICAgICAgdXJsOiBcXFwidG9hc3Q6Ly9cXFwiK3BkZmgoaHRtbCxcXFwiLnBsYXlfbGlzdCYmLnBhZ2VkYXRhJiZUZXh0XFxcIiksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiaWNvbl9zbWFsbF8zXFxcIlxcbiAgICAgICAgICAgIH0se1xcbiAgICAgICAgICAgICAgICB0aXRsZTogdCxcXG4gICAgICAgICAgICAgICAgcGljX3VybDogcCxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uX3NtYWxsXzNcXFwiLFxcbiAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG5hbWUpID0+IHtcXG4gICAgICAgICAgICAgICAgdmFyIHN0ciA9IGZldGNoUEMoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvbW9uL+eIseWQrOmfs+S5kC9hbGJ1bS50eHQnKTtcXG4gICAgICAgICAgICAgICAgaWYgKCFzdHIpIHtcXG4gICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gW25hbWVdO1xcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL21vbi/niLHlkKzpn7PkuZAvYWxidW0udHh0JywgSlNPTi5zdHJpbmdpZnkobGlzdCkpO1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3QgPSBKU09OLnBhcnNlKHN0cik7XFxuICAgICAgICAgICAgICAgICAgICBpZiAobGlzdC5pbmRleE9mKG5hbWUpID09ICctMScpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgIC8vIGxpc3QucHVzaChuYW1lKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0LnVuc2hpZnQobmFtZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL21vbi/niLHlkKzpn7PkuZAvYWxidW0udHh0JywgSlNPTi5zdHJpbmdpZnkobGlzdCkpO1xcbiAgICAgICAgICAgICAgICAgICAgfWVsc2V7XFxuICAgICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IGxpc3QuaW5kZXhPZihuYW1lKTtcXG4gICAgICAgICAgICAgICAgICAgICAgbGlzdC5zcGxpY2UoaW5kZXgsIDEpO1xcbiAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvbW9uL+eIseWQrOmfs+S5kC9hbGJ1bS50eHQnLCBKU09OLnN0cmluZ2lmeShsaXN0KSk7XFxuICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxuICAgICAgICAgICAgfSwgc3RyKVxcbiAgICAgICAgICAgIH0se1xcbiAgICAgICAgdGl0bGU6IFxcXCLmibnph4/mt7vliqBcXFwiLnNtYWxsKCksXFxuICAgICAgICB1cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgocGxheV9saXN0LCBpbWcpID0+IHtcXG4gICAgY29uc3QgaGlrZXJQb3AgPSAkLnJlcXVpcmUoXFxcImh0dHA6Ly9oaWtlci5ub2tpYS5wcmVzcy9oaWtlcnVsZS9ydWxlbGlzdC5qc29uP2lkPTY5NjZcXFwiKTtcXG4gICAgbGV0IGxpc3QgPSBKU09OLnBhcnNlKGZldGNoUEMoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvbW9uL+eIseWQrOmfs+S5kC9tdXNpYy50eHQnKSB8fCAnW10nKTtcXG4gICAgbGV0IG5hbWVsaXN0ID0gcGxheV9saXN0Lm1hcChzID0+IHBkZmgocywgXFxcIi5uYW1lJiZUZXh0XFxcIikpO1xcbiAgICBsZXQgbmV3bGlzdCA9IHBsYXlfbGlzdC5tYXAocyA9PiBwZGZoKHMsIFxcXCIubmFtZSYmVGV4dFxcXCIpICsgJ0BAJyArIGltZyArICdAQCcgKyBcXFwiaHR0cDovL3d3dy4ydDU4LmNvbVxcXCIgKyBwZGZoKHMsIFxcXCJhJiZocmVmXFxcIikpOyAgICBcXG4gICAgbGV0IGV4aXN0aW5nTmFtZXMgPSBuZXcgU2V0KGxpc3QubWFwKGl0ZW0gPT4gaXRlbS5zcGxpdCgnQEAnKVswXSkpO1xcbiAgICBoaWtlclBvcC5tdWx0aUNob2ljZSh7XFxuICAgICAgICB0aXRsZTogXFxcIuaJuemHj+a3u+WKoFxcXCIsXFxuICAgICAgICBvcHRpb25zOiBuYW1lbGlzdCxcXG4gICAgICAgIHJpZ2h0VGl0bGU6IFxcXCLnoa7orqRcXFwiLFxcbiAgICAgICAgcmlnaHRDbGljayhvcHRpb25zLCBjaGVja2VkKSB7XFxuICAgICAgICAgICAgbGV0IHNlbGVjdGVkTmV3TGlzdCA9IG5ld2xpc3QuZmlsdGVyKChfLCBpKSA9PiBjaGVja2VkW2ldKTtcXG4gICAgICAgICAgICBsZXQgZmlsdGVyZWROZXdMaXN0ID0gc2VsZWN0ZWROZXdMaXN0LmZpbHRlcihpdGVtID0+ICFleGlzdGluZ05hbWVzLmhhcyhpdGVtLnNwbGl0KCdAQCcpWzBdKSk7XFxuICAgICAgICAgICAgbGV0IG9uID0gZmlsdGVyZWROZXdMaXN0Lmxlbmd0aDtcXG4gICAgICAgICAgICBpZiAob24gPT09IDApIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+W3sua3u+WKoO+8jOWIq+mHjeWkjSFcXFwiO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gJChcXFwi56Gu6K6k5re75YqgIFxcXCIgKyBvbiArIFxcXCIg6aaW5q2M5puy77yfXFxcIikuY29uZmlybSgobGlzdCxmaWx0ZXJlZE5ld0xpc3Qsb24pID0+IHtcXG4gICAgICAgICAgICAgICAgbGlzdCA9IGZpbHRlcmVkTmV3TGlzdC5jb25jYXQobGlzdCk7XFxuICAgICAgICAgICAgICAgIHdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9tb24v54ix5ZCs6Z+z5LmQL211c2ljLnR4dCcsIEpTT04uc3RyaW5naWZ5KGxpc3QpKTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5oiQ5Yqf5re75YqgIFxcXCIgKyBvbiArIFxcXCIg6aaW77yBXFxcIjtcXG4gICAgICAgICAgICB9LGxpc3QsZmlsdGVyZWROZXdMaXN0LG9uKTtcXG4gICAgICAgIH0sXFxuICAgICAgICBsZWZ0VGl0bGU6IFxcXCLlhajpg6jmt7vliqBcXFwiLFxcbiAgICAgICAgbGVmdENsaWNrKCkge1xcbiAgICAgICAgICAgIGxldCBmaWx0ZXJlZE5ld0xpc3QgPSBuZXdsaXN0LmZpbHRlcihpdGVtID0+ICFleGlzdGluZ05hbWVzLmhhcyhpdGVtLnNwbGl0KCdAQCcpWzBdKSk7XFxuICAgICAgICAgICAgcmV0dXJuICQoXFxcIuehruiupOa3u+WKoOWFqOmDqOatjOabsu+8n1xcXCIpLmNvbmZpcm0oKGxpc3QsZmlsdGVyZWROZXdMaXN0KSA9PiB7XFxuICAgICAgICAgICAgICAgIGxpc3QgPSBmaWx0ZXJlZE5ld0xpc3QuY29uY2F0KGxpc3QpO1xcbiAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvbW9uL+eIseWQrOmfs+S5kC9tdXNpYy50eHQnLCBKU09OLnN0cmluZ2lmeShsaXN0KSk7XFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+a3u+WKoOaIkOWKn++8gVxcXCI7XFxuICAgICAgICAgICAgfSxsaXN0LGZpbHRlcmVkTmV3TGlzdCk7XFxuICAgICAgICB9LFxcbiAgICAgICAgY2VudGVyVGl0bGU6IFxcXCLlj5bmtohcXFwiXFxuICAgIH0pO1xcbiAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiO1xcbn0sIHBsYXlfbGlzdCwgaW1nKSxcXG4gICAgIHBpY191cmw6IFxcXCJoaWtlcjovL2ltYWdlcy9pY29uX2FkZDJcXFwiLFxcbiAgICAgY29sX3R5cGU6IFxcXCJpY29uX3NtYWxsXzNcXFwiXFxuICAgIH0se1xcbiAgICAgICAgY29sX3R5cGU6IFxcXCJsaW5lX2JsYW5rXFxcIlxcbiAgICB9KSAgICBcXG4gICAgfVxcbiAgICBwbGF5X2xpc3QuZm9yRWFjaCgocykgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBwZGZoKHMsXFxcIi5uYW1lJiZUZXh0XFxcIilcXG4gICAgICAgICAgICAgICAgbGV0IHVybCA9IFxcXCJodHRwOi8vd3d3LjJ0NTguY29tXFxcIitwZGZoKHMsXFxcImEmJmhyZWZcXFwiKVxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6dGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHVybCskLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9wdWJsaWNcXFwiKS5sYXp5LFxcbiAgICAgICAgICAgICAgICAgICAgcGljX3VybDogaW1nLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6XFxcImF2YXRhclxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYTp7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdFRpdGxlOiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb25nQ2xpY2s6W3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6XFxcIuatjOabsuivpuaDhVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKCh1cmwpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1cmwgKydAcnVsZT1qczokLnJlcXVpcmUoXFxcIm11c2ljXFxcIiknXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSx1cmwpXFxuICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9KVxcbnNldFJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5q2M5omLXCIsXCJwYXRoXCI6XCJzaW5nZXJcIixcInJ1bGVcIjpcImpzOlxcbmFkZExpc3RlbmVyKFxcXCJvbkNsb3NlXFxcIiwgJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICBjbGVhck15VmFyKFxcXCJjdGl0bGVcXFwiKTtcXG4gICAgICAgIGNsZWFyTXlWYXIoXFxcImN1cmxcXFwiKTtcXG59KSk7XFxudmFyIGQgPSBbXVxcbnZhciBodG1sID0gZmV0Y2goTVlfVVJMKVxcbmNvbnN0IHBhZ2UgPSBNWV9QQUdFXFxudmFyIHBpYyA9IHBkZmgoaHRtbCxcXFwiLnBpYyYmaW1nJiZzcmNcXFwiKVxcbnZhciBhdXRob3IgPSBwZGZoKGh0bWwsXFxcImgxJiZUZXh0XFxcIilcXG5zZXRQYWdlVGl0bGUoYXV0aG9yKVxcbmlmKHBhZ2U9PTEpe1xcbmQucHVzaCh7XFxuICAgIHBpY191cmw6IHBpYyxcXG4gICAgdXJsOiBwaWMsXFxuICAgIGRlc2M6ICcwJyxcXG4gICAgY29sX3R5cGU6XFxcImNhcmRfcGljXzJcXFwiICAgXFxufSx7XFxuICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJythdXRob3IuZm9udGNvbG9yKCcjNTk1OUFCJykuYmlnKCkrXFxcIlxcXFxuXFxcXG5cXFwiK3BkZmgoaHRtbCxcXFwiLmluZm8mJlRleHRcXFwiKS5zdWJzdHIoMCwgNjYpLmZvbnRjb2xvcignIzU5NTlBQicpLnNtYWxsKCksXFxuICAgIHVybDogJ2hpa2VyOi8vZW1wdHkjJyArICdcXFxcblxcXFx0XFxcXHRcXFxcdFxcXFx0XFxcXHRcXFxcdFxcXFx0JyArIHBkZmgoaHRtbCxcXFwiLmluZm8mJlRleHRcXFwiKSArIGBAcnVsZT1qczp2YXIgcmVzID0ge307IHZhciBkID0gW107ZC5wdXNoKHt0aXRsZTpNWV9VUkwuc3BsaXQoJ2hpa2VyOi8vZW1wdHkjJylbMV0sY29sX3R5cGU6ICdsb25nX3RleHQnfSk7cmVzLmRhdGEgPSBkOyBzZXRIb21lUmVzdWx0KHJlcyk7YCxcXG4gICAgZGVzYzogJzAnLFxcbiAgICBwaWNfdXJsOiAnaHR0cHM6Ly9oamRobnguY29kaW5nLm5ldC9wL2hpa2VyL2QvZHIvZ2l0L3Jhdy9tYXN0ZXIvaW1nL3l1ZWR1LzEzLmpwZycsXFxuICAgIGNvbF90eXBlOiBcXFwiY2FyZF9waWNfMlxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICBncmFkaWVudDogdHJ1ZVxcbiAgICB9XFxufSlcXG52YXIgY2xhID0gcGRmYShodG1sLFxcXCIuaWxpbmdrdV9mbCYmbGlcXFwiKVxcbiAgICBjbGEuZm9yRWFjaCh4ID0+IHtcXG4gICAgICAgIGxldCBjdGl0bGUgPSBwZGZoKHgsXFxcImEmJlRleHRcXFwiKVxcbiAgICAgICAgbGV0IGN1cmwgPSBwZCh4LFxcXCJhJiZocmVmXFxcIixNWV9VUkwpXFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBnZXRNeVZhcignY3RpdGxlJywgXFxcIuacgOaWsOatjOabslxcXCIpID09IGN0aXRsZSA/ICfigJzigJzigJ3igJ0nK2N0aXRsZS5mb250Y29sb3IoJ3JlZCcpLnNtYWxsKCk6ICfigJzigJzigJ3igJ0nK2N0aXRsZS5zbWFsbCgpLFxcbiAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMjbm9IaXN0b3J5IycpLmxhenlSdWxlKChjdGl0bGUsY3VybCkgPT4ge1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwiY3RpdGxlXFxcIiwgY3RpdGxlKTtcXG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoXFxcImN1cmxcXFwiLGN1cmwpO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgfSwgY3RpdGxlLGN1cmwpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiZmxleF9idXR0b25cXFwiXFxuICAgICAgICB9KTtcXG4gICAgfSlcXG4gICAgfVxcbiAgICB2YXIgc3VybCA9IGdldE15VmFyKFxcXCJjdXJsXFxcIixNWV9VUkwpXFxuICAgIC8vbG9nKHN1cmwpXFxuICAgIGlmIChnZXRNeVZhcihcXFwiY3RpdGxlXFxcIixcXFwi5pyA5paw5q2M5puyXFxcIikgPT0gXFxcIuacgOaWsOatjOabslxcXCIpIHtcXG4gICAgICAgIHZhciBodG1scyA9IGZldGNoKE1ZX1VSTC5yZXBsYWNlKC8uaHRtbC8sYC8ke3BhZ2V9Lmh0bWxgKSlcXG4gICAgICAgIHZhciB0YWdzID0gXFxcIi5wbGF5X2xpc3QmJmxpXFxcIlxcbiAgICB9ZWxzZXtcXG4gICAgICAgIHZhciBodG1scyA9IGZldGNoKHN1cmwucmVwbGFjZSgvLmh0bWwvLGAvJHtwYWdlfS5odG1sYCkpXFxuICAgICAgICB2YXIgdGFncyA9IFxcXCIudmlkZW9fbGlzdCYmbGlcXFwiXFxuICAgIH1cXG4gICAgdmFyIGxpc3QgPSBwZGZhKGh0bWxzLHRhZ3MpO1xcbmxpc3QuZm9yRWFjaCgocyk9PiB7XFxuICAgICAgICAgICAgICAgIGxldCBpbWcgPSBwZGZoKHMsXFxcImltZyYmc3JjXFxcIikucmVwbGFjZSgvMTIwLywnNTAwJykuc3BsaXQoJ3VybD0nKVsxXVxcbiAgICAgICAgICAgICAgICBsZXQgdGl0bGUgPSBwZGZoKHMsXFxcIi5uYW1lJiZUZXh0XFxcIilcXG4gICAgICAgICAgICAgICAgbGV0IHN1cmwgPSBcXFwiaHR0cDovL3d3dy4ydDU4LmNvbVxcXCIrcGRmaChzLFxcXCJhJiZocmVmXFxcIilcXG4gICAgICAgICAgICAgICAgbGV0IHVybFxcbiAgICAgICAgICAgICAgICBpZigvc29uZy8udGVzdChzdXJsKSl7XFxuICAgICAgICAgICAgICAgICAgICB1cmwgPSBzdXJsKyQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL3B1YmxpY1xcXCIpLmxhenlcXG4gICAgICAgICAgICAgICAgfWVsc2UgaWYoL3ZpZGVvLy50ZXN0KHN1cmwpKXtcXG4gICAgICAgICAgICAgICAgICAgIHVybD0gc3VybCskLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9wdWJsaWNcXFwiKS5NVlxcbiAgICAgICAgICAgICAgICB9ZWxzZSBpZigvYWxidW0vLnRlc3Qoc3VybCkpe1xcbiAgICAgICAgICAgICAgICAgICAgdXJsPSBzdXJsLnJlcGxhY2UoLy5odG1sLyxgL2Z5cGFnZS5odG1sYCkrJ0BydWxlPWpzOiQucmVxdWlyZShcXFwicGxheWxpc3RcXFwiKSdcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6JC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvcHVibGljXFxcIikuZm9ybWF0U29uZ1RpdGxlKHRpdGxlLGF1dGhvciksXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHVybCxcXG4gICAgICAgICAgICAgICAgICAgIHBpY191cmw6IGltZz9pbWc6cGljLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IGltZz9cXFwiY2FyZF9waWNfM1xcXCI6XFxcImF2YXRhclxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYTp7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5oZXJpdFRpdGxlOiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb25nQ2xpY2s6W3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6XFxcIuatjOabsuivpuaDhVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKChzdXJsKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZigvc29uZy8udGVzdChzdXJsKSl7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3VybCArJ0BydWxlPWpzOiQucmVxdWlyZShcXFwibXVzaWNcXFwiKSd9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHJldHVybiBcXFwidG9hc3Q6Ly/ov5nkuI3mmK/mrYzmm7JcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxzdXJsKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pICAgXFxuICAgIH0pXFxuc2V0UmVzdWx0KGQpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmrYzmm7JcIixcInBhdGhcIjpcIm11c2ljXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdXFxubGV0IGh0bWwgPSBmZXRjaChNWV9VUkwpXFxuICAgIGxldCB0aXRsZSA9IHBkZmgoaHRtbCwnaDEmJlRleHQnKS5yZXBsYWNlKCcg5Yi35pawJywnJylcXG4gICAgbGV0IHBsYXlfbGlzdCA9IHBkZmEoaHRtbCxcXFwiYm9keSYmLnBsYXlfbGlzdFxcXCIpXFxuICAgIGxldCBkanBpYyA9IHBkZmgoaHRtbCxcXFwiLmRqcGljJiZpbWcmJnNyY1xcXCIpLnJlcGxhY2UoL2ltZzEvLCdpbWcyJykucmVwbGFjZSgnMzAwJywnNjAwJylcXG4gICAgbGV0IGF1dGhvciA9IHBkZmgoaHRtbCxcXFwiLnBsYXlfc2luZ2VyJiYubmFtZSYmVGV4dFxcXCIpXFxuICAgIGxldCBpbmZvID0gcGRmaChodG1sLFxcXCIucGxheV9zaW5nZXImJi5pbmZvJiZUZXh0XFxcIilcXG4gICAgbGV0IHN1cmwgPSBwZChodG1sLFxcXCIucGxheV9zaW5nZXImJmEmJmhyZWZcXFwiKVxcbiAgICBsZXQgc3BpYyA9IHBkZmgoaHRtbCxcXFwiLnBsYXlfc2luZ2VyJiZpbWcmJnNyY1xcXCIpXFxuICAgIGxldCBhbGJ1bV91cmwgPSBwZChodG1sLFxcXCIuc20mJmEmJmhyZWZcXFwiKVxcbiAgICBsZXQgYWxidW0gPSBwZGZoKGh0bWwsXFxcIi5zbSYmVGV4dFxcXCIpXFxuICAgIGxldCBUaXRsZSA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL3B1YmxpY1xcXCIpLmZvcm1hdFNvbmdUaXRsZSh0aXRsZSxhdXRob3IpXFxuICAgIHZhciBsaXN0VmlkZW9zID0gSlNPTi5wYXJzZShmZXRjaFBDKCdoaWtlcjovL2ZpbGVzL3J1bGVzL21vbi/niLHlkKzpn7PkuZAvbXVzaWMudHh0JykgfHwgJ1tdJyk7XFxudmFyIHN0ciA9IFRpdGxlICsgJ0BAJyArIGRqcGljICsgJ0BAJyArIE1ZX1VSTDtcXG5pZiAobGlzdFZpZGVvcy5pbmRleE9mKHN0cikgPT0gJy0xJykge1xcbiAgICB2YXIgdCA9IFxcXCIo5pyq5pS26JePKVxcXCIuc21hbGwoKVxcbn0gZWxzZSB7XFxuICAgIHZhciB0ID0gXFxcIijlt7LmlLbol48pXFxcIi5mb250Y29sb3IoJ3JlZCcpLnNtYWxsKClcXG59XFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogVGl0bGUsXFxuICAgICAgICBkZXNjOiBhbGJ1bSxcXG4gICAgICAgIHVybDogYWxidW1fdXJsLnJlcGxhY2UoLy5odG1sLyxgL2Z5cGFnZS5odG1sYCkrJ0BydWxlPWpzOiQucmVxdWlyZShcXFwicGxheWxpc3RcXFwiKScsXFxuICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfY2VudGVyXzFcXFwiLFxcbiAgICAgICAgZXh0cmE6e1xcbiAgICAgICAgICAgIGxpbmVWaXNpYmxlOmZhbHNlXFxuICAgICAgICB9XFxuICAgIH0se1xcbiAgICAgICAgdXJsOlxcXCJ0b2FzdDovL+eCueWHu+WbvueJh+aSreaUvlxcXCIsXFxuICAgICAgICBjb2xfdHlwZTogXFxcImNhcmRfcGljXzNfY2VudGVyXFxcIlxcbiAgICB9LHtcXG4gICAgICAgIHBpY191cmw6IGRqcGljLFxcbiAgICAgICAgdGl0bGU6IFRpdGxlLFxcbiAgICAgICAgdXJsOiBNWV9VUkwrJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvcHVibGljXFxcIikubGF6eSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwiY2FyZF9waWNfM19jZW50ZXJcXFwiLFxcbiAgICAgICAgZXh0cmE6e1xcbiAgICAgICAgICAgIGluaGVyaXRUaXRsZTogZmFsc2VcXG4gICAgICAgIH1cXG4gICAgfSx7XFxuICAgICAgICB1cmw6IFxcXCJ0b2FzdDovL+eCueWHu+WbvueJh+aSreaUvlxcXCIsXFxuICAgICAgICBjb2xfdHlwZTogXFxcImNhcmRfcGljXzNfY2VudGVyXFxcIlxcbiAgICB9LHtcXG4gICAgICAgIHRpdGxlOiBhdXRob3IsXFxuICAgICAgICBkZXNjOiBpbmZvLFxcbiAgICAgICAgcGljX3VybDogc3BpYyxcXG4gICAgICAgIHVybDogc3VybCsnZnlwYWdlQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJzaW5nZXJcXFwiKScsXFxuICAgICAgICBjb2xfdHlwZTogXFxcImF2YXRhclxcXCJcXG4gICAgfSlcXG4gICAgcGxheV9saXN0LmZvckVhY2goKHgpID0+IHtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogcGRmaCh4LFxcXCJoMSYmVGV4dFxcXCIpK3QsXFxuICAgICAgICAgICAgICAgIC8vZGVzYzogdCxcXG4gICAgICAgICAgICAgICAgcGljX3VybDogZGpwaWMsXFxuICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgobmFtZSkgPT4ge1xcbiAgICAgICAgICAgICAgICB2YXIgc3RyID0gZmV0Y2hQQygnaGlrZXI6Ly9maWxlcy9ydWxlcy9tb24v54ix5ZCs6Z+z5LmQL211c2ljLnR4dCcpO1xcbiAgICAgICAgICAgICAgICBpZiAoIXN0cikge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxpc3QgPSBbbmFtZV07XFxuICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvbW9uL+eIseWQrOmfs+S5kC9tdXNpYy50eHQnLCBKU09OLnN0cmluZ2lmeShsaXN0KSk7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdCA9IEpTT04ucGFyc2Uoc3RyKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChsaXN0LmluZGV4T2YobmFtZSkgPT0gJy0xJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgLy8gbGlzdC5wdXNoKG5hbWUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QudW5zaGlmdChuYW1lKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvbW9uL+eIseWQrOmfs+S5kC9tdXNpYy50eHQnLCBKU09OLnN0cmluZ2lmeShsaXN0KSk7XFxuICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcXG4gICAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4ID0gbGlzdC5pbmRleE9mKG5hbWUpO1xcbiAgICAgICAgICAgICAgICAgICAgICBsaXN0LnNwbGljZShpbmRleCwgMSk7XFxuICAgICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9tb24v54ix5ZCs6Z+z5LmQL211c2ljLnR4dCcsIEpTT04uc3RyaW5naWZ5KGxpc3QpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBzdHIpLFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfaWNvblxcXCJcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGxldCBpdGVtID0gcGRmYSh4LCAnYm9keSYmbGknKTtcXHJcXG4gICAgICAgICAgICBpdGVtLmZvckVhY2goKHMpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gJ+KAnOKAnOKAneKAnScrcGRmaChzLFxcXCIubmFtZSYmVGV4dFxcXCIpLnNtYWxsKClcXG4gICAgICAgICAgICAgICAgbGV0IHVybCA9IHBkKHMsXFxcImEmJmhyZWZcXFwiKSsnQHJ1bGU9anM6JC5yZXF1aXJlKFxcXCJtdXNpY1xcXCIpJ1xcbiAgICAgICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6dGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHVybCxcXG4gICAgICAgICAgICAgICAgICAgIC8vcGljX3VybDogZGpwaWMsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTpcXFwidGV4dF8yXFxcIlxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9KVxcbiQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL3B1YmxpY1xcXCIpLuWjsOaYjihkKVxcbnNldFJlc3VsdChkKVxcbnNldFBhZ2VUaXRsZShUaXRsZSlcIn1dIiwiaWNvbiI6Imh0dHA6Ly93d3cuMnQ1OC5jb20vZmF2aWNvbi5pY28iLCJwcm94eSI6IiJ9
Add Comment
Please, Sign In to add comment