xiaomianao666

小程序:🦈弹幕

Apr 14th, 2023
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@🦈弹幕@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi8J+miOW8ueW5lSIsImF1dGhvciI6ImN5IiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjaHR0cHM6Ly96am1pYW8uY29tL3ZvZC9zaG93L2lkL2Z5Y2xhc3MvcGFnZS9meXBhZ2UvIiwidmVyc2lvbiI6MTAsImNvbF90eXBlIjoibW92aWVfMyIsImNsYXNzX25hbWUiOiIiLCJ0eXBlIjoidmlkZW8iLCJjbGFzc191cmwiOiIiLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoiIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpcbnZhciBkID0gW107XG52YXIgcGFnZSA9IE1ZX1BBR0U7XG5odG1sID0gZmV0Y2goJ2h0dHBzOi8vd3d3Lm05MDgwLmNvbS8nKTtcbnZhciDpobbpg6jlpKfnsbsgPSB7fTtcbuWkp+WIhuexuyA9IHBkZmEoaHRtbCwgJy5hbS1uYXYmJmxpJyk7XG5mb3IgKGxldCBpID0gMDsgaSA8IOWkp+WIhuexuy5sZW5ndGg7IGkrKykge1xuICAgIGlmIChpID4gNCkge1xuICAgICAgICBicmVhaztcbiAgICB9XG4gICAg5YiG57G75ZCN56ewID0gcGRmaCjlpKfliIbnsbtbaV0sICdhJiZUZXh0Jyk7XG4gICAgaWYgKOWIhuexu+WQjeensC5tYXRjaCgv6aaW6aG1fOino+aekHzlhbPkuo5855u05pKtfOS8mOaDoHzmkJzntKJ86LGG55OjfOi1hOa6kHzpn7PkuZB85biu5YqpfOabtOWkmi8pKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIOWIhuexu+mTvuaOpSA9IHBkKOWkp+WIhuexu1tpXSwgJ2EmJmhyZWYnKTtcbiAgICAgICAg6aG26YOo5aSn57G7W+WIhuexu+WQjeensF0gPSDliIbnsbvpk77mjqU7XG4gICAgfVxufVxuLy8g6aaW6aG15Yqo5oCB5YiG57G7XG5pZiAocGFnZSA9PSAxKSB7XG4gICAgLy8g5oqY5Y+g5byA5YWzXG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IGdldE15VmFyKCfmipjlj6AnLCAn5YWzJykgPT0gJ+WFsycgPyAn4oCc4oCc4oCd4oCdPGI+PHNwYW4gc3R5bGU9XCJjb2xvcjogI0ZGMDAwMFwiPuKIqDwvc3Bhbj48L2I+JyA6ICfigJzigJzigJ3igJ08Yj48c3BhbiBzdHlsZT1cImNvbG9yOiAjMWFhZDE5XCI+4oinPC9zcGFuPjwvYj4nLFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGdldE15VmFyKCfmipjlj6AnLCAn5YWzJykgPT0gJ+W8gCcpIHtcbiAgICAgICAgICAgICAgICBwdXRNeVZhcign5oqY5Y+gJywgJ+WFsycpO1xuICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoJ+exu+WeiycpO1xuICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoJ+WcsOWMuicpO1xuICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoJ3llYXInKTtcbiAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdyYW5rJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHB1dE15VmFyKCfmipjlj6AnLCAn5byAJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKTtcbiAgICAgICAgICAgIHJldHVybiBcImhpa2VyOi8vZW1wdHlcIjtcbiAgICAgICAgfSksXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXG4gICAgfSlcbiAgICBmb3IgKHZhciBwcm9wIGluIOmhtumDqOWkp+exuykge1xuICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6IOmhtumDqOWkp+exu1twcm9wXSA9PSBnZXRNeVZhcign5aSn57G7JywgJ2h0dHBzOi8vd3d3LnNrcnR2LmNvbS90di5odG1sJykgPyAn4oCc4oCc4oCd4oCdPGI+PGZvbnQgY29sb3I9IzFhYWQxOT4nICsgcHJvcCArICc8L2ZvbnQ+PC9iPicgOiBwcm9wLFxuICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChocmVmKSA9PiB7XG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ+Wkp+exuycsIGhyZWYpO1xuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKHRydWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiBcImhpa2VyOi8vZW1wdHlcIjtcbiAgICAgICAgICAgIH0sIOmhtumDqOWkp+exu1twcm9wXSksXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nLFxuICAgICAgICB9KVxuICAgIH1cbiAgICBkLnB1c2goe1xuICAgICAgICBjb2xfdHlwZTogJ2JsYW5rX2Jsb2NrJ1xuICAgIH0pXG4gICAgLy8g5Yik5pat5bCP5YiG57G75piv5ZCm5bGV5byAXG4gICAgaWYgKGdldE15VmFyKCfmipjlj6AnLCAn5YWzJykgPT0gJ+W8gCcpIHtcbiAgICAgICAgaHRtbCA9IGZldGNoKGdldE15VmFyKCflpKfnsbsnLCAnaHR0cHM6Ly93d3cuc2tydHYuY29tL3R2Lmh0bWwnKSk7XG4gICAgICAgIOWIhuexu+WIl+ihqCA9IHBkZmEoaHRtbCwgJyNmaWx0ZXItZm9ybSYmLmFtLXUtbWQtMycpLnNsaWNlKDAsIDIpO1xuICAgICAgICAvLyDnsbvlnovjgIHlnLDljLpcbiAgICAgICAg5YiG57G75YiX6KGoLmZvckVhY2godWwgPT4ge1xuICAgICAgICAgICAg562b6YCJ5p2h5Lu2ID0gcGRmaCh1bCwgJ3NlbGVjdCYmcGxhY2Vob2xkZXInKTtcbiAgICAgICAgICAgIOWtkOWIhuexu+WIl+ihqCA9IHBkZmEodWwsICdib2R5JiZvcHRpb24nKTtcbiAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGdldE15VmFyKOetm+mAieadoeS7tiwgJ+WFqOmDqCcpID09ICflhajpg6gnID8gJ+KAnOKAnOKAneKAnTxiPjxmb250IGNvbG9yPSMxYWFkMTk+5YWo6YOoPC9mb250PjwvYj4nIDogJ+WFqOmDqCcsXG4gICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCjnrZvpgInmnaHku7YpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIo562b6YCJ5p2h5Lu2LCAnJyk7XG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gXCJoaWtlcjovL2VtcHR5XCI7XG4gICAgICAgICAgICAgICAgfSwg562b6YCJ5p2h5Lu2KSxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAg5a2Q5YiG57G75YiX6KGoLmZvckVhY2gobGkgPT4ge1xuICAgICAgICAgICAgICAgIOWIhuexu+WQjeensCA9IHBkZmgobGksICdvcHRpb24mJlRleHQnKTtcbiAgICAgICAgICAgICAgICBpZiAo5YiG57G75ZCN56ewID09ICcnIHx8IOWIhuexu+WQjeensC5tYXRjaCgv57G75Z6LfOWcsOWMui8pKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGdldE15VmFyKOetm+mAieadoeS7tiwgJ+WFqOmDqCcpID09IOWIhuexu+WQjeensCA/ICfigJzigJzigJ3igJ08Yj48Zm9udCBjb2xvcj0jMWFhZDE5PicgKyDliIbnsbvlkI3np7AgKyAnPC9mb250PjwvYj4nIDog5YiG57G75ZCN56ewLFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKOetm+mAieadoeS7tiwg5YiG57G75ZCN56ewKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcijnrZvpgInmnaHku7YsIOWIhuexu+WQjeensCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcImhpa2VyOi8vZW1wdHlcIjtcbiAgICAgICAgICAgICAgICAgICAgfSwg562b6YCJ5p2h5Lu2LCDliIbnsbvlkI3np7ApLFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2JsYW5rX2Jsb2NrJ1xuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIOWNleeLrOiuvue9ruW5tOS7vVxuICAgICAgICB5ZWFyID0gbmV3IERhdGUoKS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk7XG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTogZ2V0TXlWYXIoJ3llYXInLCAn5YWo6YOoJykgPT0gJ+WFqOmDqCcgPyAn4oCc4oCc4oCd4oCdPGI+PGZvbnQgY29sb3I9IzFhYWQxOT7lhajpg6g8L2ZvbnQ+PC9iPicgOiAn5YWo6YOoJyxcbiAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3llYXInLCAnJyk7XG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaGlrZXI6Ly9lbXB0eVwiO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXG4gICAgICAgIH0pXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNjsgaSsrKSB7XG4gICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgIHRpdGxlOiBnZXRNeVZhcigneWVhcicsIHllYXIpID09IHBhcnNlSW50KHllYXIgLSBpKSA/ICfigJzigJzigJ3igJ08Yj48Zm9udCBjb2xvcj0jMWFhZDE5PicgKyBwYXJzZUludCh5ZWFyIC0gaSkgKyAnPC9mb250PjwvYj4nIDogcGFyc2VJbnQoeWVhciAtIGkpICsgJycsXG4gICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCh5ZWFyLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCd5ZWFyJywgcGFyc2VJbnQoeWVhciAtIGkpKTtcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcImhpa2VyOi8vZW1wdHlcIjtcbiAgICAgICAgICAgICAgICB9LCB5ZWFyLCBpKSxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICBjb2xfdHlwZTogJ2JsYW5rX2Jsb2NrJ1xuICAgICAgICB9KVxuICAgICAgICAvLyDljZXni6zorr7nva7mjpLluo9cbiAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiBnZXRNeVZhcigncmFua25hbWUnLCAn5YWo6YOoJykgPT0gJ+WFqOmDqCcgPyAn4oCc4oCc4oCd4oCdPGI+PGZvbnQgY29sb3I9IzFhYWQxOT7lhajpg6g8L2ZvbnQ+PC9iPicgOiAn5YWo6YOoJyxcbiAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3JhbmsnLCAnJyk7XG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaGlrZXI6Ly9lbXB0eVwiO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXG4gICAgICAgIH0pXG4gICAgICAgIHJhbmtzID0gcGRmYShwZGZhKGh0bWwsICdib2R5JiYuYW0tbmF2LXBpbGxzJylbMV0sICdib2R5JiZsaScpO1xuICAgICAgICByYW5rcy5mb3JFYWNoKGxpc3QgPT4ge1xuICAgICAgICAgICAg5YiG57G75ZCN56ewID0gcGRmaChsaXN0LCAnYSYmVGV4dCcpO1xuICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICB0aXRsZTogZ2V0TXlWYXIoJ3JhbmtuYW1lJywgJ+acgOaWsOS4iuaYoCcpID09IOWIhuexu+WQjeensCA/ICfigJzigJzigJ3igJ08Yj48Zm9udCBjb2xvcj0jMWFhZDE5PicgKyDliIbnsbvlkI3np7AgKyAnPC9mb250PjwvYj4nIDog5YiG57G75ZCN56ewLFxuICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgobGlzdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigncmFua25hbWUnLCBwZGZoKGxpc3QsICdhJiZUZXh0JykpO1xuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigncmFuaycsIHBkZmgobGlzdCwgJ2xpJiZpZCcpKTtcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcImhpa2VyOi8vZW1wdHlcIjtcbiAgICAgICAgICAgICAgICB9LCBsaXN0KSxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICB9XG59XG4vLyDlsZXnpLpcbnRydWVfdXJsID0gZ2V0TXlWYXIoJ+Wkp+exuycsICdodHRwczovL3d3dy5tOTA4MC5jb20vdHYuaHRtbCcpICsgJz9jYXQ9JyArIGdldE15VmFyKCfnsbvlnosnLCAnJykgKyAnJmFyZWE9JyArIGdldE15VmFyKCflnLDljLonLCAnJykgKyAnJnllYXI9JyArIGdldE15VmFyKCd5ZWFyJywgJycpICsgJyZyYW5rPScgKyBnZXRNeVZhcigncmFuaycsICcnKSArICcmcGFnZW5vPScgKyBwYWdlO1xudmFyIGxpc3QgPSBmZXRjaCh0cnVlX3VybCwge1xuICAgIGhlYWRlcnM6IHtcbiAgICAgICAgJ1VzZXItQWdlbnQnOiBQQ19VQVxuICAgIH1cbn0pO1xuaWYgKGdldE15VmFyKCflpKfnsbsnLFwi55S16KeG5YmnXCIpPT1cImh0dHBzOi8vd3d3Lm05MDgwLmNvbS92YXJpZXR5Lmh0bWxcIiYmcGFnZT09MSkge1xuICAgIGQucHVzaCh7XG4gICAgICAgIFwidGl0bGVcIjpcIuS4uuS6huS/neivgee7vOiJuuW5tOS7veaVsOaNrueahOWujOaVtOaAp+aVheS6jOe6p+WKoOi9vei+g+aFou+8jOWmguaenOaDs+imgeW/q+mAn+inguW9seacgOWlveWPr+S7peS9v+eUqOaQnOe0oui/m+ihjOingueci+aIluebtOaOpemVv+aMieiuv+mXrumTvuaOpeWJjeW+gOe9kemhteingueci35cIixcbiAgICAgICAgXCJjb2xfdHlwZVwiOlwidGV4dF9jZW50ZXJfMVwiXG4gICAgfSk7XG59XG5saXN0ID0gcGRmYShsaXN0LCAnLm1vdmllLWxpc3RzJiZsaScpO1xuZm9yICh2YXIgaSBpbiBsaXN0KSB7XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHBkZmgobGlzdFtpXSwgJy5tb3ZpZS10aXRsZSYmLm1vdmllLW5hbWUmJlRleHQnKSxcbiAgICAgICAgZGVzYzogcGRmaChsaXN0W2ldLCAnLm1vdmllLXRpdGxlJiYubW92aWUtdGFncyYmVGV4dCcpLFxuICAgICAgICBpbWc6IHBkKGxpc3RbaV0sICdpbWcmJmRhdGEtb3JpZ2luYWwnKSArICdAUmVmZXJlcj0nLFxuICAgICAgICB1cmw6IHBkKGxpc3RbaV0sICdhJiZocmVmJykgKyBcIiNpbW1lcnNpdmVUaGVtZSNcIixcbiAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgIGlkOiAn5YiX6KGoJyArIGksXG4gICAgICAgICAgICBpbWc6IHBkKGxpc3RbaV0sICdpbWcmJmRhdGEtb3JpZ2luYWwnKSArICdAUmVmZXJlcj0nXG4gICAgICAgIH1cbiAgICB9KTtcbn1cbnNldFJlc3VsdChkKTtcbiIsInNlYXJjaF91cmwiOiJoaWtlcjovL2VtcHR5IyMqKiMjZnlwYWdlIiwiZ3JvdXAiOiLop4bpopEiLCJzZWFyY2hGaW5kIjoianM6XG52YXIgZCA9IFtdO1xuTVlfVVJMID0gTVlfVVJMLnNwbGl0KCcjIycpO1xudmFyIHNlYXdvcmQgPSBNWV9VUkxbMV07XG5zZWFyY2hfMzYwID0naHR0cHM6Ly93d3cubTkwODAuY29tL3NlYXJjaC5waHA/d2Q9JyArIHNlYXdvcmQgKyAnJnR5cGU9MzYwJztcbnNlYXJjaF9ib3p5PSdodHRwczovL3d3dy5tOTA4MC5jb20vc2VhcmNoLnBocD93ZD0nICsgc2Vhd29yZCArICcmdHlwZT1ib3p5JztcblxuLy8gMzYwXG5kLnB1c2goe1xuICAgIHRpdGxlOiBcIuaVsOaNruadpea6kO+8mjM2MCDihpNcIixcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5Jyxcbn0pO1xuaHRtbCA9IGZldGNoKHNlYXJjaF8zNjApO1xubGlzdCA9IHBkZmEoaHRtbCwgJy5hbS1saXN0JiZsaScpO1xuZm9yICh2YXIgaSBpbiBsaXN0KSB7XG4gICAgcGljPXBkZmgobGlzdFtpXSwgJy5hbS1saXN0LXRodW1iJiZpbWcmJmRhdGEtb3JpZ2luYWwnKSArIFwiQFJlZmVyZXI9XCI7XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHBkZmgobGlzdFtpXSwgJy5hbS1saXN0LWl0ZW0taGQmJmEmJlRleHQnKSxcbiAgICAgICAgaW1nOiBwaWMsXG4gICAgICAgIGRlc2M6IHBkZmgobGlzdFtpXSwgJy5hbS10ZXh0LWRhbmdlciYmVGV4dCcpLFxuICAgICAgICBjb250ZW50OiBwZGZoKGxpc3RbaV0sICcuYW0tbGlzdC1pdGVtLXRleHQmJlRleHQnKSxcbiAgICAgICAgdXJsOiBwZGZoKGxpc3RbaV0sICdhJiZocmVmJykgKyBcIiNpbW1lcnNpdmVUaGVtZSNcIixcbiAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgIGltZzogcGljXG4gICAgICAgIH1cbiAgICB9KTtcbn1cbi8vIGJvenlcbmQucHVzaCh7XG4gICAgdGl0bGU6IFwi5pWw5o2u5p2l5rqQ77yaYm96eSDihpNcIixcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5Jyxcbn0pO1xuaHRtbCA9IGZldGNoKHNlYXJjaF9ib3p5KTtcbmxpc3QgPSBwZGZhKGh0bWwsICcuYW0tbGlzdCYmbGknKTtcbmZvciAodmFyIGkgaW4gbGlzdCkge1xuICAgIHBpYz1wZGZoKGxpc3RbaV0sICcuYW0tbGlzdC10aHVtYiYmaW1nJiZkYXRhLW9yaWdpbmFsJykgKyBcIkBSZWZlcmVyPVwiO1xuICAgIGQucHVzaCh7XG4gICAgICAgIHRpdGxlOiBwZGZoKGxpc3RbaV0sICcuYW0tbGlzdC1pdGVtLWhkJiZhJiZUZXh0JyksXG4gICAgICAgIGltZzogcGljLFxuICAgICAgICBkZXNjOiBwZGZoKGxpc3RbaV0sICcuYW0tdGV4dC1kYW5nZXImJlRleHQnKSxcbiAgICAgICAgY29udGVudDogcGRmaChsaXN0W2ldLCAnLmFtLWxpc3QtaXRlbS10ZXh0JiZUZXh0JyksXG4gICAgICAgIHVybDogcGRmaChsaXN0W2ldLCAnYSYmaHJlZicpICsgXCIjaW1tZXJzaXZlVGhlbWUjXCIsXG4gICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICBpbWc6IHBpY1xuICAgICAgICB9XG4gICAgfSk7XG59XG5zZXRSZXN1bHQoZCk7XG4iLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6ImpzOlxyXG52YXIgZCA9IFtdO1xyXG4vLyBYNeaSreaUvuWZqFxyXG5kLnB1c2goe1xyXG4gICAgdXJsOiAnJyxcclxuICAgIGRlc2M6ICc0MjAgJiYgZmxvYXQnLFxyXG4gICAgY29sX3R5cGU6IFwieDVfd2Vidmlld19zaW5nbGVcIixcclxuICAgIGV4dHJhOiB7XHJcbiAgICAgICAgdWE6IE1PQklMRV9VQSxcclxuICAgICAgICAvLyByZWZlcmVyOiAnaHR0cDovL3h4LmNvbSdcclxuICAgIH1cclxufSk7XHJcbi8vIOaQnOe0ouS6jOe6p+KAlOKAlOaOqOiNkOS9v+eUqOaQnOe0olxyXG5pZiAoTVlfVVJMLm1hdGNoKC9ib2lkLykpIHtcclxuICAgIHZhciBodG1sID0gZ2V0UmVzQ29kZSgpO1xyXG4gICAgLy/moIfpophcclxuICAgIHZhciDlvbHniYflkI3np7AgPSBwZGZoKGh0bWwsICcuZGVjcyYmc3BhbiwwJiZUZXh0Jykuc3BsaXQoJyAnKVswXTtcclxuICAgIC8vIOWbvueJh1xyXG4gICAgdmFyIOWwgemdoiA9IHBkKGh0bWwsICcuYW0tZyYmaW1nJiZkYXRhLW9yaWdpbmFsJyk7XHJcbiAgICAvL+WJp+aDheeugOS7i1xyXG4gICAgdmFyIOeugOS7iyA9IHBkZmgoaHRtbCwgJy5kZWNzJiZzcGFuLC0yJiZUZXh0Jyk7XHJcbiAgICAvL+e6v+i3r+WQjeaVsOe7hHRhYnNcclxuICAgIHZhciBhcnRzID0gcGRmYShodG1sLCAnLmFtLXRhYnMtbmF2JiZsaScpO1xyXG4gICAgdmFyIHRhYnMgPSBbXTtcclxuICAgIGZvciAodmFyIGkgaW4gYXJ0cykge1xyXG4gICAgICAgIHRhYnMucHVzaChwZGZoKGFydHNbaV0sICdhJiZUZXh0JykucmVwbGFjZSgvXFxkK3xcXCh8XFwpfO6itCAvZywgJycpKTtcclxuICAgIH1cclxuICAgIC8v6YCJ6ZuG5pWw57uEbGlzdHNcclxuICAgIHZhciBjb250cyA9IHBkZmEoaHRtbCwgJy5hbS10YWJzLWJkJiYuYW0tdGFiLXBhbmVsJyk7XHJcbiAgICB2YXIgbGlzdHMgPSBbXTtcclxuICAgIGZvciAodmFyIGkgaW4gY29udHMpIHtcclxuICAgICAgICBkYXRhVXJsQXJyYXkgPSBwZGZhKGNvbnRzW2ldLnJlcGxhY2UoL2J1dHRvbi9nLCAnYScpLnJlcGxhY2UoL2RhdGEtdXJsL2csICdocmVmJykucmVwbGFjZSgvKFwiW1xcc10rZGF0YS1uYW1lPVwifFwiW1xcc10rZGF0YS1vcml1cmw9XCIpL2csICcjJyksICdib2R5JiZhJyk7XHJcbiAgICAgICAgcmVhbEFycmF5ID0gW107XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgZGF0YVVybEFycmF5LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICBocmVmID0gcGRmaChpdGVtLCAnYSYmaHJlZicpO1xyXG4gICAgICAgICAgICAgICAgcGFybXMgPSBocmVmLnNwbGl0KCcjJyk7XHJcbiAgICAgICAgICAgICAgICBvcmlnaW5VcmwgPSAnJztcclxuICAgICAgICAgICAgICAgIGlmIChwYXJtcy5sZW5ndGggPT0gMikge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFVcmwgPSBwYXJtc1swXTtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHBhcm1zWzFdO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVXJsID0gcGFybXNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luVXJsID0gcGFybXNbMV07XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBwYXJtc1syXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJlYWxBcnJheS5wdXNoKGl0ZW0ucmVwbGFjZSgvaHJlZi4rXCIvZywgJ2hyZWY9XCJodHRwczovL2xpbmUxLmZhdm5vdy5jb20vP3VpZD04OSZ0b2tlbj1tdWkmdj0nICsgZGF0YVVybCArICcmdGl0bGU9JyArIHRpdGxlICsgJ1wiJykpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgZGF0YVVybCA9ICdoaWtlcjovL2VtcHR5JztcclxuICAgICAgICAgICAgbG9nKCfpk77mjqXlj4LmlbDmi7zmjqXplJnor6/vvIEnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGlzdHMucHVzaChyZWFsQXJyYXkpO1xyXG4gICAgfVxyXG59IGVsc2UgaWYgKE1ZX1VSTC5tYXRjaCgvdmFpZC8pKSB7XHJcbiAgICAvLyDpppbpobXniYflupPov5vljrvnmoTnu7zoibrnsbvvvIhmZXRjaENvZGVCeVdlYlZpZXfku6Xojrflj5bnrYnlvoXliqDovb3kuK3nmoTmlbDmja4uLi7mhaLogIzkuJTlubbkuI3nkIbmg7PlsIblsLHnnYDlkKfvvIlcclxuICAgIGh0bWwgPSBmZXRjaENvZGVCeVdlYlZpZXcoTVlfVVJMKTtcclxuICAgIC8vIGh0bWwgPSBnZXRSZXNDb2RlKCk7XHJcbiAgICAvL+agh+mimFxyXG4gICAgdmFyIOW9seeJh+WQjeensCA9IHBkZmgoaHRtbCwgJy5hbS1wYW5lbC1oZCYmVGV4dCcpLnNwbGl0KCcgJylbMF07XHJcbiAgICAvLyDlm77niYdcclxuICAgIHZhciDlsIHpnaIgPSBNWV9QQVJBTVMuaW1nO1xyXG4gICAgLy8g5ryU5ZGYXHJcbiAgICB2YXIg5ryU5ZGYID0gJ+a8lOWRmO+8micgKyBwZGZoKGh0bWwsICdib2R5JiYuYW0tcGFuZWwtYmQsMiYmc3BhbiwwJiZUZXh0JykucmVwbGFjZSgv44CR44CQL2csICfjgIEnKS5yZXBsYWNlKC/jgJB844CRL2csICcnKTtcclxuICAgIC8v5Ymn5oOF566A5LuLXHJcbiAgICB2YXIg566A5LuLID0gcGRmaChodG1sLCAnYm9keSYmLmFtLXBhbmVsLWJkLDImJnNwYW4sLTEmJlRleHQnKTtcclxuICAgIC8v57q/6Lev5ZCN5pWw57uEdGFic+KAlOKAlOS/neeVmeW5tOS7vee6v+i3r+WQjeensFxyXG4gICAgdmFyIGFydHMgPSBwZGZhKGh0bWwsICcuYW0tdGFicy1uYXYmJmxpJyk7XHJcbiAgICB2YXIgdGFicyA9IFtdO1xyXG4gICAgZm9yICh2YXIgaSBpbiBhcnRzKSB7XHJcbiAgICAgICAgdGFicy5wdXNoKHBkZmgoYXJ0c1tpXSwgJ2EmJlRleHQnKSk7XHJcbiAgICB9XHJcbiAgICAvLyDpgInpm4bmlbDnu4RcclxuICAgIHZhciBjb250cyA9IHBkZmEoaHRtbCwgJy5hbS10YWJzLWJkJiYuYW0tdGFiLXBhbmVsJyk7XHJcbiAgICB2YXIgbGlzdHMgPSBbXTtcclxuICAgIGZvciAodmFyIGkgaW4gY29udHMpIHtcclxuICAgICAgICBkYXRhVXJsQXJyYXkgPSBwZGZhKGNvbnRzW2ldLnJlcGxhY2UoL2J1dHRvbi9nLCAnYScpLnJlcGxhY2UoL2RhdGEtdXJsL2csICdocmVmJykucmVwbGFjZSgvKFwiW1xcc10rZGF0YS1uYW1lPVwifFwiW1xcc10rZGF0YS1vcml1cmw9XCIpL2csICcjJyksICdib2R5JiZhJyk7XHJcbiAgICAgICAgcmVhbEFycmF5ID0gW107XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgZGF0YVVybEFycmF5LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICBocmVmID0gcGRmaChpdGVtLCAnYSYmaHJlZicpO1xyXG4gICAgICAgICAgICAgICAgcGFybXMgPSBocmVmLnNwbGl0KCcjJyk7XHJcbiAgICAgICAgICAgICAgICBvcmlnaW5VcmwgPSAnJztcclxuICAgICAgICAgICAgICAgIGlmIChwYXJtcy5sZW5ndGggPT0gMikge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFVcmwgPSBwYXJtc1swXTtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHBhcm1zWzFdO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVXJsID0gcGFybXNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luVXJsID0gcGFybXNbMV07XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBwYXJtc1syXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJlYWxBcnJheS5wdXNoKGl0ZW0ucmVwbGFjZSgvaHJlZi4rXCIvZywgJ2hyZWY9XCJodHRwczovL2xpbmUxLmZhdm5vdy5jb20vP3VpZD04OSZ0b2tlbj1tdWkmdj0nICsgZGF0YVVybCArICcmdGl0bGU9JyArIHRpdGxlICsgJ1wiJykpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgZGF0YVVybCA9ICdoaWtlcjovL2VtcHR5JztcclxuICAgICAgICAgICAgbG9nKCfpk77mjqXlj4LmlbDmi7zmjqXplJnor6/vvIEnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGlzdHMucHVzaChyZWFsQXJyYXkpO1xyXG4gICAgfVxyXG59IGVsc2UgaWYgKE1ZX1VSTC5tYXRjaCgvbWlkLykpIHtcclxuICAgIC8vIOmmlumhteeJh+W6k+i/m+WOu+eahOeUteW9sVxyXG4gICAgdmFyIGh0bWwgPSBnZXRSZXNDb2RlKCk7XHJcbiAgICAvL+agh+mimFxyXG4gICAgdmFyIOW9seeJh+WQjeensCA9IHBkZmgoaHRtbCwgJy5hbS1wYW5lbC1oZCYmVGV4dCcpLnNwbGl0KCcgJylbMF07XHJcbiAgICAvLyDlm77niYdcclxuICAgIHZhciDlsIHpnaIgPSBNWV9QQVJBTVMuaW1nO1xyXG4gICAgLy8g5ryU5ZGYXHJcbiAgICB2YXIg5ryU5ZGYID0gJ+a8lOWRmO+8micgKyBwZGZoKGh0bWwsICdib2R5JiYuYW0tcGFuZWwtYmQsMiYmc3BhbiwwJiZUZXh0JykucmVwbGFjZSgv44CR44CQL2csICfjgIEnKS5yZXBsYWNlKC/jgJB844CRL2csICcnKTtcclxuICAgIC8v5Ymn5oOF566A5LuLXHJcbiAgICB2YXIg566A5LuLID0gcGRmaChodG1sLCAnYm9keSYmLmFtLXBhbmVsLWJkLDImJnNwYW4sLTEmJlRleHQnKTtcclxuICAgIC8v57q/6Lev5ZCN5pWw57uEdGFic1xyXG4gICAgdmFyIGFydHMgPSBwZGZhKGh0bWwsICcuYW0tYnRuLWdyb3VwJiZidXR0b24nKTtcclxuICAgIHZhciB0YWJzID0gW107XHJcbiAgICBmb3IgKHZhciBpIGluIGFydHMpIHtcclxuICAgICAgICB0YWJzLnB1c2gocGRmaChhcnRzW2ldLCAnYnV0dG9uJiZUZXh0JykpO1xyXG4gICAgfVxyXG4gICAgLy/pgInpm4bmlbDnu4RsaXN0c1xyXG4gICAgdmFyIGNvbnRzID0gcGRmYShodG1sLCAnLmFtLWJ0bi1ncm91cCYmYnV0dG9uJyk7XHJcbiAgICB2YXIgbGlzdHMgPSBbXTtcclxuICAgIGZvciAodmFyIGkgaW4gY29udHMpIHtcclxuICAgICAgICBkYXRhVXJsQXJyYXkgPSBwZGZhKGNvbnRzW2ldLnJlcGxhY2UoL2J1dHRvbi9nLCAnYScpLnJlcGxhY2UoL2RhdGEtdXJsL2csICdocmVmJykucmVwbGFjZSgvKFwiW1xcc10rZGF0YS1uYW1lPVwifFwiW1xcc10rZGF0YS1vcml1cmw9XCIpL2csICcjJyksICdib2R5JiZhJyk7XHJcbiAgICAgICAgcmVhbEFycmF5ID0gW107XHJcbiAgICAgICAgdHJ5IHtcclxuICAgICAgICAgICAgZGF0YVVybEFycmF5LmZvckVhY2goaXRlbSA9PiB7XHJcbiAgICAgICAgICAgICAgICBocmVmID0gcGRmaChpdGVtLCAnYSYmaHJlZicpO1xyXG4gICAgICAgICAgICAgICAgcGFybXMgPSBocmVmLnNwbGl0KCcjJyk7XHJcbiAgICAgICAgICAgICAgICBvcmlnaW5VcmwgPSAnJztcclxuICAgICAgICAgICAgICAgIGlmIChwYXJtcy5sZW5ndGggPT0gMikge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFVcmwgPSBwYXJtc1swXTtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHBhcm1zWzFdO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBkYXRhVXJsID0gcGFybXNbMF07XHJcbiAgICAgICAgICAgICAgICAgICAgb3JpZ2luVXJsID0gcGFybXNbMV07XHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBwYXJtc1syXTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIHJlYWxBcnJheS5wdXNoKGl0ZW0ucmVwbGFjZSgvaHJlZi4rXCIvZywgJ2hyZWY9XCJodHRwczovL2xpbmUxLmZhdm5vdy5jb20vP3VpZD04OSZ0b2tlbj1tdWkmdj0nICsgZGF0YVVybCArICcmdGl0bGU9JyArIHRpdGxlICsgJ1wiJykpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGNhdGNoIHtcclxuICAgICAgICAgICAgZGF0YVVybCA9ICdoaWtlcjovL2VtcHR5JztcclxuICAgICAgICAgICAgbG9nKCfpk77mjqXlj4LmlbDmi7zmjqXplJnor6/vvIEnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgbGlzdHMucHVzaChyZWFsQXJyYXkpO1xyXG4gICAgfVxyXG59IGVsc2Uge1xyXG4gICAgLy8g6aaW6aG154mH5bqT6L+b5Y6755qE5oiWY3RpZO+8iDM2MOWumOa6kOaQnOe0ou+8iVxyXG4gICAgdmFyIGh0bWwgPSBnZXRSZXNDb2RlKCk7XHJcbiAgICAvL+agh+mimFxyXG4gICAgdmFyIOW9seeJh+WQjeensCA9IHBkZmgoaHRtbCwgJy5hbS1wYW5lbC1oZCYmVGV4dCcpLnNwbGl0KCcgJylbMF07XHJcbiAgICAvLyDlm77niYdcclxuICAgIHZhciDlsIHpnaIgPSBNWV9QQVJBTVMuaW1nO1xyXG4gICAgLy8g5ryU5ZGYXHJcbiAgICB2YXIg5ryU5ZGYID0gJ+a8lOWRmO+8micgKyBwZGZoKGh0bWwsICdib2R5JiYuYW0tcGFuZWwtYmQsMiYmc3BhbiwwJiZUZXh0JykucmVwbGFjZSgv44CR44CQL2csICfjgIEnKS5yZXBsYWNlKC/jgJB844CRL2csICcnKTtcclxuICAgIC8v5Ymn5oOF566A5LuLXHJcbiAgICB2YXIg566A5LuLID0gcGRmaChodG1sLCAnYm9keSYmLmFtLXBhbmVsLWJkLDImJnNwYW4sLTEmJlRleHQnKTtcclxuICAgIC8v57q/6Lev5ZCN5pWw57uEdGFic1xyXG4gICAgdmFyIGFydHMgPSBwZGZhKGh0bWwsICcuYW0tdGFicy1uYXYmJmxpJyk7XHJcbiAgICB2YXIgdGFicyA9IFtdO1xyXG4gICAgZm9yICh2YXIgaSBpbiBhcnRzKSB7XHJcbiAgICAgICAgdGFicy5wdXNoKHBkZmgoYXJ0c1tpXSwgJ2EmJlRleHQnKS5yZXBsYWNlKC9cXGQrfFxcKHxcXCl87qK0IC9nLCAnJykpO1xyXG4gICAgfVxyXG4gICAgLy/pgInpm4bmlbDnu4RsaXN0c1xyXG4gICAgdmFyIGNvbnRzID0gcGRmYShodG1sLCAnLmFtLXRhYnMtYmQmJi5hbS10YWItcGFuZWwnKTtcclxuICAgIHZhciBsaXN0cyA9IFtdO1xyXG4gICAgZm9yICh2YXIgaSBpbiBjb250cykge1xyXG4gICAgICAgIGRhdGFVcmxBcnJheSA9IHBkZmEoY29udHNbaV0ucmVwbGFjZSgvYnV0dG9uL2csICdhJykucmVwbGFjZSgvZGF0YS11cmwvZywgJ2hyZWYnKS5yZXBsYWNlKC8oXCJbXFxzXStkYXRhLW5hbWU9XCJ8XCJbXFxzXStkYXRhLW9yaXVybD1cIikvZywgJyMnKSwgJ2JvZHkmJmEnKTtcclxuICAgICAgICByZWFsQXJyYXkgPSBbXTtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICBkYXRhVXJsQXJyYXkuZm9yRWFjaChpdGVtID0+IHtcclxuICAgICAgICAgICAgICAgIGhyZWYgPSBwZGZoKGl0ZW0sICdhJiZocmVmJyk7XHJcbiAgICAgICAgICAgICAgICBwYXJtcyA9IGhyZWYuc3BsaXQoJyMnKTtcclxuICAgICAgICAgICAgICAgIG9yaWdpblVybCA9ICcnO1xyXG4gICAgICAgICAgICAgICAgaWYgKHBhcm1zLmxlbmd0aCA9PSAyKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVVybCA9IHBhcm1zWzBdO1xyXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlID0gcGFybXNbMV07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIGRhdGFVcmwgPSBwYXJtc1swXTtcclxuICAgICAgICAgICAgICAgICAgICBvcmlnaW5VcmwgPSBwYXJtc1sxXTtcclxuICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IHBhcm1zWzJdO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgcmVhbEFycmF5LnB1c2goaXRlbS5yZXBsYWNlKC9ocmVmLitcIi9nLCAnaHJlZj1cImh0dHBzOi8vbGluZTEuZmF2bm93LmNvbS8/dWlkPTg5JnRva2VuPW11aSZ2PScgKyBkYXRhVXJsICsgJyZ0aXRsZT0nICsgdGl0bGUgKyAnXCInKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gY2F0Y2gge1xyXG4gICAgICAgICAgICBkYXRhVXJsID0gJ2hpa2VyOi8vZW1wdHknO1xyXG4gICAgICAgICAgICBsb2coJ+mTvuaOpeWPguaVsOaLvOaOpemUmeivr++8gScpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBsaXN0cy5wdXNoKHJlYWxBcnJheSk7XHJcbiAgICB9XHJcbn1cclxuLy8g55+t6K6v5piv566A5LuL5LiK5pa55bGV56S655qE5LiA5Z2X5pWw5o2u77yM6Ieq6KGMZGl577yM5LiA6Iis55Sx5b2x54mH5ZCN56ew44CB5ryU6IGM5Lq65ZGY562J57uE5oiQXHJcbnZhciDnn63orq8gPSDmvJTlkZggPyBwZGZoKGh0bWwsICcuYW0tcGFuZWwtaGQmJlRleHQnKSArICdcXG4nICsg5ryU5ZGYIDogcGRmaChodG1sLCAnLmRlY3MmJnNwYW4sMCYmVGV4dCcpO1xyXG4vLyDlj6/ku6Xkv67mlLnkvYblu7rorq7kv53nlZkyOFxyXG52YXIg5q+P6aG16ZuG5pWwID0gMjg7XHJcbi8vIOminOiJslxyXG52YXIgQ29sb3IgPSBcIiMxOUI4OURcIjtcclxuLypcclxu5YC85Y+v5Y+W77ya6Ieq5YaZ44CB6YCa5YWN44CB5by55bmV6YCa5YWN44CB5bi46KeE5pat5o+SXHJcbnRpcDE66Ieq5YaZ5YWN5ZeF5Y+Y6YePbGF6eeWGmeWIsOmhtemdouagh+ivhuS4umxhennnmoTlrZDpobXpnaIo5rOo5oSPbGF6eeWPmOmHj+W3suWwgeijheWPqumcgOWcqOWtkOmhtemdoue8luWGmWxhennnmoTlhbfkvZPmk43kvZzvvIzlj4Lop4HpobrlsIEpXHJcbnRpcDI66Iul6LWL5YC85by55bmV6YCa5YWNLOWImei/mOmcgOiuvue9ruWPmOmHj+W8ueW5leaWh+S7tijlgLzmnInov5znqIvjgIHnm5LlrZApLOS+i+WmgnZhciDlvLnluZXmlofku7Y9J+i/nOeoiycs6Iul6LWL5YC84oCc55uS5a2Q4oCd5YiZ5pys5Zyw5b+F6aG75pyJZG3nm5LlrZDop4TliJlcclxuKi9cclxudmFyIOWKqOaAgeino+aekCA9ICfoh6rlhpknO1xyXG4vKlxyXG7pgInmj5Llj5jph4/lgLzlj6/lj5blvIDlkozlhbPjgILlpoLmnpzov4flvIDlkK/pgInmj5Llv4XpobvmnInprZTmlq3njq/looPvvIjlr7zlhaXprZTmlq3lubbliJ3lp4vljJbohJrmnKzlkozphY3nva7mlofku7bvvInlkKbliJnml6Dms5Xov5vlhaXkuoznuqdcclxu5bu66K6u5byA5ZCv6YCJ5o+SLOS+v+aNt+S4lOS4jeS8muWIt+aWsOmhtemdolxyXG4qL1xyXG52YXIg6YCJ5o+SID0gJ+WFsyc7XHJcbi8qXHJcbuWmguaenOW8gOWQr+S6humAieaPkumcgOimgeWhq+WGmeS4i+mdouS4pOS4quWPmOmHjyjlhbPpl63pgInmj5LmkJzntKLlip/og73kuKLlpLEpXHJcbuaQnOe0ouaooeW8j++8muWIhue7hOaIluWwj+eoi+W6j1xyXG7osIPnlKjlkI3np7DvvJrliIbnu4TlkI3np7DmiJblsI/nqIvluo/lkI3np7BcclxuKi9cclxudmFyIOaQnOe0ouaooeW8jyA9ICfliIbnu4QnO1xyXG52YXIg6LCD55So5ZCN56ewID0gJ+eugOW9sSc7XHJcbnJlcXVpcmVDYWNoZSgnaHR0cDovL2hpa2VyLm5va2lhLnByZXNzL2hpa2VydWxlL3J1bGVsaXN0Lmpzb24/aWQ9NTI4NScsIDI0KTtcclxuIiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IioiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiIiLCJwYWdlcyI6Ilt7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwibGF6eVwiLFwicGF0aFwiOlwibGF6eVwiLFwicnVsZVwiOlwiZnVuY3Rpb24g5by55bmV6Kej5p6QKGlucHV0KSB7XFxuICAgIHB1dE15VmFyKFxcXCJnZXREbUZpbGVcXFwiLCAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgIHNob3dMb2FkaW5nKFxcXCLojrflj5blvLnluZXkuK3vvIzor7fnqI3lgJnigKbigKZcXFwiKTtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgaWYgKGdldFZhcignZ2V0JywgJycpID09IGlucHV0KSB7XFxuICAgICAgICAgICAgICAgIGRtID0gJ2hpa2VyOi8vZmlsZXMv6bKo6bG8L2RtLnhtbCc7XFxuICAgICAgICAgICAgICAgIHNob3dMb2FkaW5nKCfmnKzmrKHliqDovb3nmoTmmK/kuIrmrKHnmoTlvLnluZXmlofku7YnKTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IGZldGNoKGlucHV0LCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1VzZXItQWdlbnQnOiBQQ19VQVxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgLy8g6I635Y+W5by55bmVXFxuICAgICAgICAgICAgICAgIC8vIGxvZyhkYXRhKTtcXG4gICAgICAgICAgICAgICAgZGFubXVBZGRyZXNzID0gZGF0YS5tYXRjaCgvYWRkYW5bXFxcXFNcXFxcc10rKD89JyxuZXh0PSkvKVswXS5yZXBsYWNlKFxcXCJhZGRhbj0nXFxcIiwgJycpO1xcbiAgICAgICAgICAgICAgICAvLyBsb2coZGFubXVBZGRyZXNzKTtcXG4gICAgICAgICAgICAgICAgdmFyIGRhdGEgPSAnJ1xcbiAgICAgICAgICAgICAgICAvLyDlvLnluZXlpKflsI9cXG4gICAgICAgICAgICAgICAgdmFyIHNpemUgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdoaWtlcjovL2ZpbGVzL2Rt55uS5a2QL3NldHRpbmdzLmpzb24nKSkuZm9udFNpemU7XFxuICAgICAgICAgICAgICAgIGRhbm11ID0gSlNPTi5wYXJzZShmZXRjaChkYW5tdUFkZHJlc3MpKTtcXG4gICAgICAgICAgICAgICAgZGFubXVEYXRhID0gZGFubXUuZGF0YT9kYW5tdS5kYXRhOmRhbm11LmRhbm11a3U7XFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZGFubXVEYXRhLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgICAgICAgICAvLyDlvLnluZXlj5HpgIHml7bpl7RcXG4gICAgICAgICAgICAgICAgICAgIHRpbWVwb2ludCA9IGRhbm11RGF0YVtpXVswXTtcXG4gICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leagt+W8j1xcbiAgICAgICAgICAgICAgICAgICAgY3QgPSAxO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhbm11RGF0YVtpXVsxXSA9PSAndG9wJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOmhtuerr+W8ueW5lVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGN0ID0gNTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIC8vIOminOiJsuiuvue9rlxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhbm11RGF0YVtpXVsyXSA9PSAnI2ZmZicpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IDE2Nzc3MjE1O1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IHBhcnNlSW50KGRhbm11RGF0YVtpXVsyXS5zbGljZSgxKSwgMTYpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbi8qIOS4iuS4queJiOacrOS7o+eggVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRhbm11QWRkcmVzcy5tYXRjaCgveW91a3UvKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gKGRhbm11RGF0YVtpXVsyXS5tYXRjaCgvWzAtOV0rL2cpWzBdIDw8IDE2KSArIChkYW5tdURhdGFbaV1bMl0ubWF0Y2goL1swLTldKy9nKVsxXSA8PCA4KSArIHBhcnNlSW50KChkYW5tdURhdGFbaV1bMl0ubWF0Y2goL1swLTldKy9nKVsyXSkpO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZGFubXVEYXRhW2ldWzJdID09ICcjZmZmJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IDE2Nzc3MjE1O1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gcGFyc2VJbnQoZGFubXVEYXRhW2ldWzJdLnNsaWNlKDEpLCAxNik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbG9yID0gcGFyc2VJbnQoZGFubXVEYXRhW2ldWzJdLnJlcGxhY2UoJyMnLCAnJyksIDE2KTtcXG4gICAgICAgICAgICAgICAgICAgIH0gKi9cXG4gICAgICAgICAgICAgICAgICAgIC8vIOW8ueW5leWGheWuuVxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudCA9IGRhbm11RGF0YVtpXVs0XTtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250ZW50LmluZGV4T2YoJzwnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJz4nKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJyYnKSAhPSAtMSB8fCBjb250ZW50LmluZGV4T2YoJ1xcXFx1MDAwMCcpICE9IC0xIHx8IGNvbnRlbnQuaW5kZXhPZignXFxcXGInKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgdGVtcGRhdGEgPSBgPGQgcD1cXFwiJHt0aW1lcG9pbnR9LCR7Y3R9LCR7c2l6ZX0sJHtjb2xvcn0sMFxcXCI+JHtjb250ZW50fTwvZD5cXFxcbmA7XFxuICAgICAgICAgICAgICAgICAgICBkYXRhICs9IHRlbXBkYXRhO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIC8vIOacgOe7iOW+heWGmeWFpeeahOW8ueW5leaVsOaNrlxcbiAgICAgICAgICAgICAgICBkYW5tdXN0ciA9IGA8P3htbCB2ZXJzaW9uPVxcXCIxLjBcXFwiIGVuY29kaW5nPVxcXCJVVEYtOFxcXCI/PlxcXFxuPGk+XFxcXG4ke2RhdGF9PC9pPmA7XFxuICAgICAgICAgICAgICAgIC8vIOWGmeWFpeW8ueW5lVxcbiAgICAgICAgICAgICAgICBkbSA9ICdoaWtlcjovL2ZpbGVzL+myqOmxvC9kbS54bWwnO1xcbiAgICAgICAgICAgICAgICBzYXZlRmlsZShkbSwgZGFubXVzdHIpO1xcbiAgICAgICAgICAgICAgICBwdXRWYXIoJ2dldCcsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgc2hvd0xvYWRpbmcoJ+W8ueW5leiOt+WPluaIkOWKn++8jOW8gOWni+WMuemFjeinhumikScpO1xcbiAgICAgICAgICAgICAgICBsb2coJ3N1Y2Nlc3MnKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgZG0gPSAnaGlrZXI6Ly9maWxlcy/psqjpsbwvZG0ueG1sJztcXG4gICAgICAgICAgICBzaG93TG9hZGluZygn5pys5qyh5Yqg6L2955qE5piv5LiK5qyh55qE5by55bmV5paH5Lu2Jyk7XFxuICAgICAgICAgICAgbG9nKCdlcnJvJyk7XFxuICAgICAgICB9XFxuICAgIH0pKTtcXG4gICAgLy8g5byA5aeL6Lev55SxXFxuICAgIGJmX3dheSA9IGdldEl0ZW0oJ2JmX3dheScsICdvcmlnaW4nKTtcXG4gICAgc3dpdGNoIChiZl93YXkpIHtcXG4gICAgICAgIGNhc2UgXFxcIm9yaWdpblxcXCI6XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJ4NVdlYlZpZXc6Ly9cXFwiK2lucHV0O1xcbiAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgY2FzZSBcXFwidmlkZW9cXFwiOlxcbiAgICAgICAgICAgIGV2YWwoZ2V0TXlWYXIoXFxcImdldERtRmlsZVxcXCIpKTtcXG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICB1cmxzOiBbJ3ZpZGVvOi8vJyArIGlucHV0XSxcXG4gICAgICAgICAgICAgICAgbmFtZXM6IFsn6bKo6bG85a6Y5by5J10sXFxuICAgICAgICAgICAgICAgIGRhbm11OiBkbSxcXG4gICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgIGpzOiAnZnlfYnJpZGdlX2FwcC5zZXRXZWJVYShNb3ppbGxhLzUuMCAoV2luZG93cyBOVCAxMC4wOyBXaW42NDsgeDY0KSBBcHBsZVdlYktpdC81MzcuMzYgKEtIVE1MLCBsaWtlIEdlY2tvKSBDaHJvbWUvMTA1LjAuMC4wIFNhZmFyaS81MzcuMzYgRWRnLzEwNS4wLjEzNDMuMjUpJ1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICBjYXNlIFxcXCJ4eVg1XFxcIjpcXG4gICAgICAgICAgICBldmFsKGdldE15VmFyKFxcXCJnZXREbUZpbGVcXFwiKSk7XFxuICAgICAgICAgICAgLy8g6aaZ5YWN6a2U5pS55ZeF5o6i4oCU4oCU55yf55qE5pyN5LqG77yM5bim5LiK5LqGdWHlkozmnaXmupDnrYnlj4LmlbDnmoTpk77mjqXlj43ogIzmkq3mlL7kuI3kuobigJTigJTlj6/og73lj6rmmK/oipLmnpzmgbDlt6fkuI3og73mkq3jgILvvIzlhbbku5bnmoTog73mkq1+XFxuICAgICAgICAgICAgZnVuY3Rpb24geDVydWxlKGppZXh1cmwsIHNyY3VybCkge1xcbiAgICAgICAgICAgICAgICBzaG93TG9hZGluZyhcXFwi572R6aG16K6/6Zeu5qOA57Si5Lit77yM6K+356iN5YCZLi4uXFxcIik7XFxuICAgICAgICAgICAgICAgIHZhciB2aWRlbyA9ICd3ZWJSdWxlOi8vJyArIGppZXh1cmwgKyAnQCcgKyAkLnRvU3RyaW5nKChzcmN1cmwpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIC8vZmJhLmxvZyhmYmEuZ2V0VXJscygpKTtcXG4gICAgICAgICAgICAgICAgICAgIHZhciB1cmxzID0gX2dldFVybHMoKTtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA9PSBudWxsIHx8IHdpbmRvdy5fX2NvdW50ID09IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5fX2NvdW50ID0gMFxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5fX2NvdW50ID49IDIzKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHNyY3VybFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gc3JjdXJsLnNwbGl0KCc7JylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9IHNyY3VybC5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+myqOmxvOWumOW8uSddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMv6bKo6bG8L2RtLnhtbCdcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cuX19jb3VudCA9IHdpbmRvdy5fX2NvdW50ICsgMTtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh3aW5kb3cuX19jb3VudCA+IDEgJiYgd2luZG93Ll9fY291bnQgPD0gMyAmJiB3aW5kb3cuX19jb3VudCAhPSBudWxsICYmIHdpbmRvdy5fX2NvdW50ICE9IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5JykuaW5uZXJUZXh0LnNlYXJjaCgv6Kem5Y+R5LqG6Ziy55uX6ZO+fOeCueWHu+aSreaUvnzmnKrmjojmnYN85o6l5Y+j6Ziy55uXfOivt+WIsOS4u+ermeingueciy8pICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3JjdXJsKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCflsJ3or5Xot7PpmLLnm5fpqozor4HkuIAnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uLmhyZWYgPSBsb2NhdGlvbi5ocmVmO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn5bCd6K+V6Lez6Ziy55uX6aqM6K+B5LqMJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2NhdGlvbi5ocmVmID0gc3JjdXJsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh3aW5kb3cuX19jb3VudCA+IDMgJiYgd2luZG93Ll9fY291bnQgIT0gbnVsbCAmJiB3aW5kb3cuX19jb3VudCAhPSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJscy5sZW5ndGggPCAxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZiYS5oaWRlTG9hZGluZygpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5qOA57Si5aSx6LSl77yM5Y+v6IO96ZO+5o6l5peg5rOV6K6/6Zeu44CCJztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHMubGVuZ3RoID09IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJhLmxvZygn5bCd6K+V55u06ZO+5LiOSlNPTuino+aekCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1swXS5tYXRjaCgvZHljZG5cXFxcLXRvc1xcXFwucHN0YXRwfFxcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdnxuZXRlYXNlXFxcXC5jb218dmlkZW9fbXA0fHR5cGVcXFxcPW0zdTh8cHRcXFxcPW0zdTh8XFxcXC92aWRlb1xcXFwvdG9zXFxcXC8vKSAmJiAhdXJsc1swXS5tYXRjaCgvXFxcXC5odG1sfG0zdThcXFxcLnR2fG0zdThcXFxcLnB3fFxcXFwmbmV4dHxhY1xcXFw9ZG18XFxcXD1odHRwfGh0dHBzXFxcXDpcXFxcL1xcXFwvW1xcXFxkXVxcXFwubTN1OHxcXFxcP3VybFxcXFw9XFxcXC9tM3U4LykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZnlfYnJpZGdlX2FwcC5sb2codXJsc1swXSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmxzWzBdLmluZGV4T2YoJ2JpbGl2aWRlbycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbMF0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzWzBdXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6bKo6bG85a6Y5by5J10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy/psqjpsbwvZG0ueG1sJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCc6ICdNb3ppbGxhLzUuMCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsc1swXS5pbmRleE9mKCd0aXRhbi5tZ3R2LmNvbScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbMF0gKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1swXSArICcjaXNWaWRlbz10cnVlIyddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpsqjpsbzlrpjlvLknXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL+myqOmxvC9kbS54bWwnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnd3d3Lm1ndHYuY29tJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1swXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gdXJsc1swXS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSB1cmxzWzBdLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6bKo6bG85a6Y5by5J10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy/psqjpsbwvZG0ueG1sJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsb2NhdGlvbi5ocmVmLm1hdGNoKC9keWNkblxcXFwtdG9zXFxcXC5wc3RhdHB8XFxcXC5tM3U4fFxcXFwubXA0fFxcXFwuZmx2fG5ldGVhc2VcXFxcLmNvbXx2aWRlb19tcDR8dHlwZVxcXFw9bTN1OHxwdFxcXFw9bTN1OHxcXFxcL3ZpZGVvXFxcXC90b3NcXFxcLy8pICYmICFsb2NhdGlvbi5ocmVmLm1hdGNoKC9cXFxcLmh0bWx8bTN1OFxcXFwudHZ8bTN1OFxcXFwucHd8XFxcXCZuZXh0fGFjXFxcXD1kbXxcXFxcPWh0dHB8aHR0cHNcXFxcOlxcXFwvXFxcXC9bXFxcXGRdXFxcXC5tM3U4fFxcXFw/dXJsXFxcXD1cXFxcL20zdTgvKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uLmhyZWY7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZnVybCA9IGxvY2F0aW9uLmhyZWYuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBsb2NhdGlvbi5ocmVmLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6bKo6bG85a6Y5by5J10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL+myqOmxvC9kbS54bWwnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IGZiYS5mZXRjaChsb2NhdGlvbi5ocmVmLCB7fSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIS9cXFxcPG1ldGEvLnRlc3QoaHRtbCkgJiYgIS9cXFxcPGh0bWwvLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gSlNPTi5wYXJzZShodG1sKS51cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmZ1cmwgPSBKU09OLnBhcnNlKGh0bWwpLnVybC5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBKU09OLnBhcnNlKGh0bWwpLnVybC5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFtiZnVybF0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+myqOmxvOWumOW8uSddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMv6bKo6bG8L2RtLnhtbCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSArIGFyZ3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC/msqHmnInmib7liLDnq5nngrl8572R6aG15peg5rOV5omT5byAfDQwNCBOb3QgRm91bmR85aSH5qGI5ZCO5Y+v57un57ut6K6/6ZeuLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGxvY2F0aW9uLmhyZWYuc3Vic3RyaW5nKGxvY2F0aW9uLmhyZWYuaW5kZXhPZignPWh0dHAnKSArIDEpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gbG9jYXRpb24uaHJlZi5zdWJzdHJpbmcobG9jYXRpb24uaHJlZi5pbmRleE9mKCc9aHR0cCcpICsgMSkuc3BsaXQoJzsnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gbG9jYXRpb24uaHJlZi5zdWJzdHJpbmcobG9jYXRpb24uaHJlZi5pbmRleE9mKCc9aHR0cCcpICsgMSkubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbYmZ1cmxdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpsqjpsbzlrpjlvLknXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL+myqOmxvC9kbS54bWwnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkgKyBhcmdzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gbG9jYXRpb24uaHJlZlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gbG9jYXRpb24uaHJlZi5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgPSBsb2NhdGlvbi5ocmVmLm1hdGNoKC87W1xcXFxTXFxcXHNdK30vZylbMF07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6bKo6bG85a6Y5by5J10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy/psqjpsbwvZG0ueG1sJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYmEubG9nKCfml6Xlv5fmo4DntKLnrKwnICsgd2luZG93Ll9fY291bnQgKyAn5qyhJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgaW4gdXJscykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbaV0ubWF0Y2goL2R5Y2RuXFxcXC10b3NcXFxcLnBzdGF0cHxcXFxcLm0zdTh8XFxcXC5tcDR8XFxcXC5mbHZ8bmV0ZWFzZVxcXFwuY29tfHZpZGVvX21wNHx0eXBlXFxcXD1tM3U4fHB0XFxcXD1tM3U4fFxcXFwvdmlkZW9cXFxcL3Rvc1xcXFwvLykgJiYgIXVybHNbaV0ubWF0Y2goL1xcXFwuaHRtbHxtM3U4XFxcXC50dnxtM3U4XFxcXC5wd3xcXFxcJm5leHR8YWNcXFxcPWRtfFxcXFw9aHR0cHxodHRwc1xcXFw6XFxcXC9cXFxcL1tcXFxcZF1cXFxcLm0zdTh8XFxcXD91cmxcXFxcPVxcXFwvbTN1OHxcXFxcLmNzc3xcXFxcLmpzXFxcXD8vKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZnlfYnJpZGdlX2FwcC5sb2codXJsc1tpXSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZnlfYnJpZGdlX2FwcC5nZXRIZWFkZXJVcmwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIGZ5X2JyaWRnZV9hcHAuZ2V0SGVhZGVyVXJsKHVybHNbaV0pLnJlcGxhY2UoXFxcIjt7XFxcIiwgXFxcIiNpZ25vcmVJbWc9dHJ1ZSMjaXNWaWRlbz10cnVlIzt7XFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gZnlfYnJpZGdlX2FwcC5nZXRIZWFkZXJVcmwodXJsc1tpXSkucmVwbGFjZShcXFwiO3tcXFwiLCBcXFwiI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjO3tcXFwiKS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdzID0gZnlfYnJpZGdlX2FwcC5nZXRIZWFkZXJVcmwodXJsc1tpXSkucmVwbGFjZShcXFwiO3tcXFwiLCBcXFwiI2lnbm9yZUltZz10cnVlIyNpc1ZpZGVvPXRydWUjO3tcXFwiKS5tYXRjaCgvO1tcXFxcU1xcXFxzXSt9L2cpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+myqOmxvOWumOW8uSddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL+myqOmxvC9kbS54bWwnXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1tpXS5pbmRleE9mKCdiaWxpdmlkZW8nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHVybHNbaV0gKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6bKo6bG85a6Y5by5J10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL+myqOmxvC9kbS54bWwnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8vd3d3LmJpbGliaWxpLmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3RpdGFuLm1ndHYuY29tJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJyArICc7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJ10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6bKo6bG85a6Y5by5J10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL+myqOmxvC9kbS54bWwnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ3d3dy5tZ3R2LmNvbScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVc2VyLUFnZW50JzogJ01vemlsbGEvNS4wJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ2p1aGFva2FuJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL3d3dy5qdWhhb2thbi5jYy99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+myqOmxvOWumOW8uSddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy/psqjpsbwvZG0ueG1sJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3d3dy5qdWhhb2thbi5jYy8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfV1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZignb2piaycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly92Lm9qYmtqeC5jb20vfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpsqjpsbzlrpjlvLknXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMv6bKo6bG8L2RtLnhtbCcsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly92Lm9qYmtqeC5jb20vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3drZmlsZScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHM6IFt1cmxzW2ldXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpsqjpsbzlrpjlvLknXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMv6bKo6bG8L2RtLnhtbCcsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogW3tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiAnaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3NoZW5nbGlueWl5YW5nJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL3p5ei5zZGxqd29tZW4uY29tL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxzOiBbdXJsc1tpXV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZXM6IFsn6bKo6bG85a6Y5by5J10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6ICdoaWtlcjovL2ZpbGVzL+myqOmxvC9kbS54bWwnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdSZWZlcmVyJzogJ2h0dHBzOi8venl6LnNkbGp3b21lbi5jb20vJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3BlaXpxLm9ubGluZScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly9wbGF5LnBlaXpxLm9ubGluZS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV1dLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+myqOmxvOWumOW8uSddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhbm11OiAnaGlrZXI6Ly9maWxlcy/psqjpsbwvZG0ueG1sJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiBbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6ICdodHRwczovL3BsYXkucGVpenEub25saW5lLydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdXJsc1tpXSArICcjaXNWaWRlbz10cnVlIydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJmdXJsID0gKHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnKS5zcGxpdCgnOycpWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJncyA9ICh1cmxzW2ldICsgJyNpc1ZpZGVvPXRydWUjJykubWF0Y2goLztbXFxcXFNcXFxcc10rfS9nKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW2JmdXJsXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lczogWyfpsqjpsbzlrpjlvLknXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYW5tdTogJ2hpa2VyOi8vZmlsZXMv6bKo6bG8L2RtLnhtbCdcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pICsgYXJncztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAvL2VuZCBmb3IgaVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSwgc3JjdXJsKTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZpZGVvXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiB4NXJ1bGUoaW5wdXQsIGlucHV0KTtcXG4gICAgICAgICAgICBicmVhaztcXG4gICAgICAgIGNhc2UgXFxcInBpcGVpWDVcXFwiOlxcbiAgICAgICAgICAgIGV2YWwoZ2V0TXlWYXIoXFxcImdldERtRmlsZVxcXCIpKTtcXG4gICAgICAgICAgICB2YXIgdmlkZW8gPSAneDVSdWxlOi8vJyArIGlucHV0ICsgJ0AnICsgJC50b1N0cmluZygoZG0pID0+IHtcXG4gICAgICAgICAgICAgICAgdmFyIHVybHMgPSBfZ2V0VXJscygpO1xcbiAgICAgICAgICAgICAgICBpZiAod2luZG93LmMgPT0gbnVsbCkgd2luZG93LmMgPSAwO1xcbiAgICAgICAgICAgICAgICB3aW5kb3cuYysrO1xcbiAgICAgICAgICAgICAgICBpZiAod2luZG93LmMgKiAyNTAgPiA1ICogMTAwMCkge1xcbiAgICAgICAgICAgICAgICAgICAgZmJhLmxvZyhcXFwi5ZeF5o6i6LaF5pe2XFxcIik7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBpIGluIHVybHMpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1tpXS5tYXRjaCgvXFxcXC5tcDN8XFxcXC5tcDR8XFxcXC5tM3U4LykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9mYmEubG9nKHVybHNbaV0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogW3VybHNbaV0ucmVwbGFjZSgvLip1cmw9LywgJycpXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzOiBbJ+myqOmxvOWumOW8uSddLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGFubXU6IGRtXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0sIGRtKTtcXG4gICAgICAgICAgICByZXR1cm4gdmlkZW87XFxuICAgICAgICAgICAgYnJlYWs7XFxuICAgIH1cXG59XFxu5by55bmV6Kej5p6QKGlucHV0KVxcblwifV0iLCJpY29uIjoiaHR0cHM6Ly9pbWcwLmJhaWR1LmNvbS9pdC91PTMzNDI0NTU2MTksMzU4Mzg4MzM1NSZmbT0yNTMmZm10PWF1dG8mYXBwPTEzOCZmPUpQRUc/dz01MDAmaD01ODIiLCJwcm94eSI6IiJ9
Add Comment
Please, Sign In to add comment