xiaomianao666

小程序:我爱影视·R

Aug 13th, 2023
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@我爱影视·R@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi5oiR54ix5b2x6KeGwrdSIiwiYXV0aG9yIjoi5aWX5aiDIiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjaHR0cHM6Ly8xMDAubXZza3kueHl6L3ZvZHNob3cvMzEtLS0tLS0tLWZ5cGFnZS0tLS5odG1sIiwidmVyc2lvbiI6MCwiY29sX3R5cGUiOiJtb3ZpZV8zIiwiY2xhc3NfbmFtZSI6IiIsInR5cGUiOiJ2aWRlbyIsImNsYXNzX3VybCI6IiIsImFyZWFfbmFtZSI6IiIsImFyZWFfdXJsIjoiIiwic29ydF9uYW1lIjoiIiwieWVhcl9uYW1lIjoiIiwic29ydF91cmwiOiIiLCJ5ZWFyX3VybCI6IiIsImZpbmRfcnVsZSI6ImpzOlxudmFyIGQgPSBbXVxuYWRkTGlzdGVuZXIoXCJvbkNsb3NlXCIsICQudG9TdHJpbmcoKCkgPT4ge1xuICAgIGxldCBrZXlzID0gbGlzdE15VmFyS2V5cygpO1xuICAgIGZvciAobGV0IGl0IG9mIGtleXMpIHtcbiAgICAgICAgY2xlYXJNeVZhcihpdCk7XG4gICAgfVxufSkpO1xuXG4vL+WKqOaAgeWIhuexu1xuXG5jb25zdCDlpKfnsbvlrprkvY0gPSAnYm9keSYmLnNjcm9sbC1jb250ZW50JztcbmNvbnN0IOaLvOaOpeWIhuexuyA9ICcnO1xuY29uc3Qg5bCP57G75a6a5L2NID0gJ2JvZHkmJmE6bm90KDptYXRjaGVzKOmmlumhtXzpooTlkYp855WZ6KiAfOS4k+mimHzmvJTlkZgpKSc7XG5cblxuLy/nv7vpobVcbmNvbnN0IHBhZ2UgPSBNWV9QQUdFO1xuY29uc3Qg5LiL5LiA6aG1ID0gXCJwZChodG1sLCAnYTptYXRjaGVzKOS4i+S4gOmhtSkmJmhyZWYnKVwiO1xuY29uc3Qg54q25oCB5qCH6K6wID0gTVlfUlVMRS51cmw7XG5NWV9VUkwgPSBNWV9VUkwucmVwbGFjZSgnaGlrZXI6Ly9lbXB0eSMjJywgJycpO1xubGV0IHRydWVfdXJsID0gZ2V0TXlWYXIoTVlfUlVMRS51cmwsIE1ZX1VSTClcbnRydWVfdXJsPXRydWVfdXJsLnJlcGxhY2UoJ2Z5cGFnZScscGFnZSk7XG4vL2xvZyh0cnVlX3VybClcbnZhciBodG1sID0gcmVxdWVzdCh0cnVlX3VybClcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvbWV0aG9kJywge30pKS5ydWxlKVxuY3JlYXRlTmV4dFBhZ2UoKTtcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZHRmbCcpKS5ydWxlKTtcblxuXG4vL+mhtemdouWGheWuueWhq+WFhVxudmFyIOS4gOe6p+WIl+ihqCA9ICdib2R5JiYubW9kdWxlLWl0ZW0nXG52YXIg5LiA57qn5qCH6aKYID0gJ2EmJnRpdGxlJ1xudmFyIOS4gOe6p+aPj+i/sDEgPSAnLm1vZHVsZS1pdGVtLXRleHQmJlRleHQnXG52YXIg5LiA57qn5o+P6L+wMiA9ICcnXG52YXIg5LiA57qn5Zu+54mHID0gJ2ltZyYmZGF0YS1zcmMnXG52YXIg5LiA57qn6ZO+5o6lID0gJ2EmJmhyZWYnXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9QcmltYXJ5VGVtcGxhdGUnLCB7fSkpLnJ1bGUpO1xuc2V0SG9tZVJlc3VsdChkKSIsInNlYXJjaF91cmwiOiJodHRwczovLzEwMC5tdnNreS54eXovdm9kc2VhcmNoLyoqLS0tLS0tLS0tLWZ5cGFnZS0tLS5odG1sIiwiZ3JvdXAiOiLikaHlvbHop4YiLCJzZWFyY2hGaW5kIjoianM6XG52YXIg5qGG5p625YiX6KGoID0gJ2JvZHkmJi5tb2R1bGUtc2VhcmNoLWl0ZW0nXG52YXIg5qGG5p625qCH6aKYID0gJ2ltZyYmYWx0J1xudmFyIOahhuaetuaPj+i/sDEgPSAnLnZpZGVvLXNlcmlhbCYmVGV4dCdcbnZhciDmoYbmnrbmj4/ov7AyID0gJy52aWRlby1pbmZvLWF1eCYmVGV4dCdcbnZhciDmoYbmnrbnroDku4sxID0gJy52aWRlby1pbmZvLWl0ZW1zOmVxKDApJiZUZXh0J1xudmFyIOahhuaetueugOS7izIgPSAnLnZpZGVvLWluZm8taXRlbXM6ZXEoMSkmJlRleHQnXG52YXIg5qGG5p625Zu+54mHID0gJ2ltZyYmZGF0YS1zcmMnXG52YXIg5qGG5p626ZO+5o6lID0gJ2EmJmhyZWYnXG5cbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL1NlYXJjaEZyYW1lJywge30pKS5ydWxlKTsiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8zIiwiZGV0YWlsX2ZpbmRfcnVsZSI6ImpzOlxudmFyIGQgPSBbXVxudmFyIGh0bWwgPSBnZXRSZXNDb2RlKClcbnZhciDmkJzntKLmoIfnrb4gPSAnaDEmJlRleHQnO1xuXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2VyJykpLnJ1bGUpO1xuZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvbGF6eWwnLCB7fSkpLnJ1bGUpO1xudmFyIHBsYXlsaXN0ID0gW3tcbiAgICDnsbvlnos6ICflnKjnur/mkq3mlL4nLFxuICAgIOe6v+i3rzogJ2JvZHkmJi5tb2R1bGUtdGFiLWl0ZW0nLFxuICAgIOmAiembhjogJ2JvZHkmJi5zb3J0LWl0ZW06bm90KDptYXRjaGVzKOe9keebmOmTvuaOpSkpJyxcbiAgICDnur/ot6/lkI3np7A6ICcubW9kdWxlLXRhYi1pdGVtLS1zbWFsbCYmVGV4dEBALnJlcGxhY2UoXCJcIixcIlwiKScsXG4gICAg6YCJ6ZuG5YiX6KGoOiAnYm9keSYmYScsXG4gICAg5o6S6ZmkOiAnJyxcbiAgICAvL+mAiembhuWQjeensDogJ1RleHQnLFxuICAgIC8v6YCJ6ZuG6ZO+5o6lOiAnJyxcbiAgICAvL+WAkuW6jzp0cnVlLFxuICAgIOino+aekDogbGF6eVxufSwge1xuICAgIOexu+WeizogJ+W9seeJh+S4i+i9vScsXG4gICAg6YCJ6ZuGOiAnYm9keSYmLnZpZGVvLWluZm8tZG93bmJ0bicsXG4gICAg6YCJ6ZuG5ZCN56ewOiAnVGV4dCcsXG4gICAg6YCJ6ZuG6ZO+5o6lOiAnLnZpZGVvLWluZm8tZG93bmJ0biYmYSYmaHJlZicsXG59XVxuXG52YXIgb2JqID0ge1xuICAgIG1haW46IHBkZmEoaHRtbCwgJ2JvZHkmJi52aWRlby1pbmZvLWl0ZW1zOm5vdCg6bWF0Y2hlcyjliafmg4UpKScpLFxuICAgIHNvcnQ6IFsn5Zyw5Yy6JywgJ+W5tOS7vScsICfnvJbliacnLCAn6ZuG5pWwJywgJ+WvvOa8lCcsICfkuLvmvJQnLCAn5Yir5ZCNJ10sXG4gICAgaW1nOiBNWV9QQVJBTVMuaW1nLFxuLy9wZChodG1sLCAnI2NvdmVyX3Nob3dib3gmJmRhdGEtb3JpZ2luYWwnKSwvL+WwgemdouWbvueJh1xufVxuXG5FcmppLnNldENvbnRlbnQob2JqKTtcbkVyamkuc2V0RGVzYyhwZGZoKGh0bWwsICcudmlkZW8taW5mby1jb250ZW50JiZUZXh0JykucmVwbGFjZSgn5pS26LW3JywnJykpOy8v5Ymn5oOF566A5LuLXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90b29sJywge30pKS5ydWxlKTsvL+WklumDqOW/q+aNt+aQnOe0olxuRXJqaS5nZXRQbGF5ZXJzKHBsYXlsaXN0KTtcbkVyamku5aOw5piOKCk7XG5cbnNldFJlc3VsdChkKSIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIqIiwidWEiOiJtb2JpbGUiLCJwcmVSdWxlIjoiIiwicGFnZXMiOiJbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuS4gOe6p+WKqOaAgeWIhuexu1wiLFwicGF0aFwiOlwiZHRmbFwiLFwicnVsZVwiOlwiXFxuLypcXG5WZXIgMjAyMy01LTMwIOaUuSDmqKHmnb9NXFxu5aSH5rOo77ya5LiN6KaB55So5rW36ZiU5Luj56CB5qC85byP5YyWIOWGheWuueS8muWHuumUmVxcbuW/hemhu+WPguaVsO+8mlxcbuWIhuexu+minOiJsiDlpKfnsbvlrprkvY0gXFxu5bCP57G75a6a5L2NIOWIhuexu+agh+mimCDliIbnsbvpk77mjqVcXG5odG1sID0+5rqQ56CBIHBhZ2UgPT7pobXnoIFcXG7lj6/pgInlj4LmlbDvvJpcXG7mi7zmjqXliIbnsbsg5oqY5Y+g5qCH6K6wIOWxleW8gOagh+iusCDmjpLpmaRcXG7lpKfnsbvpk77mjqUg5aSn57G75qCH6aKYIOa4hemZpOmUriDlvIDlkK/mipjlj6BcXG7pmYTliqDlrprkvY1cXG7or7TmmI7vvJpcXG7lpJbpnaLnlKhnZXRNeVZhcihNWV9SVUxFLnVybCkg5oiW6ICFIOeKtuaAgSDlj5bpk77mjqVcXG7prZTmlLk6zrFcXG4qL1xcblxcblxcbnZhciBnZXRSYW5nZUNvbG9ycyA9IGZ1bmN0aW9uKCkge8KgwqDCoMKgwqDCoMKgXFxuICAgIHJldHVybiAnIycgKyAoJzAwMDAwJyArIChNYXRoLnJhbmRvbSgpICogMHgxMDAwMDAwIDw8IDApLnRvU3RyaW5nKDE2KSkuc3Vic3RyKC02KTvCoMKgwqDCoMKgXFxufVxcbmNvbnN0IOWIhuexu+minOiJsiA9IGdldFJhbmdlQ29sb3JzKClcXG52YXIg5pCc57Si5oyJ6ZKuID0gJ1NlYXJjaCdcXG52YXIg5Yqo5oCB5pS257ypID0gJ+KLgSdcXG52YXIg5Yqo5oCB5bGV5byAID0gJ+KLgCdcXG5jb25zdCDliIbnsbvmoIfpopggPSAnYSYmVGV4dCc7XFxuY29uc3Qg5YiG57G76ZO+5o6lID0gJ2EmJmhyZWYnO1xcbmNvbnN0IOW8gOWQr+aQnOe0oiA9IHRydWU7XFxuXFxuXFxuXFxubGV0IGVtcHR5wqAgPSBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxyXFxubGV0IGNhdGVnb3JpZXMgPSBbXTtcXHJcXG5pZiAodHlwZW9mKOaLvOaOpeWIhuexuykgIT0gJ3VuZGVmaW5lZCcgJiYg5ou85o6l5YiG57G7wqAhPSAnJyl7wqDCoMKgwqBcXHJcXG4gICAgY2F0ZWdvcmllcyA9IFtwZGZhKGh0bWwsIMKg5aSn57G75a6a5L2NKS5qb2luKCdcXFxcbicpXS5jb25jYXQocGRmYShodG1sLCDCoOaLvOaOpeWIhuexuykpO1xcbiAgICBpZih0eXBlb2Yo6ZmE5Yqg5a6a5L2NKSE9J3VuZGVmaW5lZCcgJiYg6ZmE5Yqg5a6a5L2NLmxlbmd0aD4wKXtcXG4gICAgICAgICAgICDpmYTliqDlrprkvY0uZm9yRWFjaCh4PT57XFxuICAgICAgdmFyIOS4gOe6pz1wZGZhKGh0bWwseC7kuIDnuqflrprkvY0pLm1hcChzPT57XFxuICAgICAgICAgIHZhciDlrprkvY09cGRmYShzLHgu5bCP57G7KS5tYXAocT0+e1xcbiAgICAgICAgICAgICAgdmFyIHRpdGxlPXBkZmgocSx4Luagh+mimCk7XFxuICAgICAgICAgICAgICB2YXIgdXJsPSdhJ1xcbiAgICAgICAgICAgICAgaWYoeC7pk77mjqUuaW5jbHVkZXMoJ0BAJykpe1xcbiAgICAgICAgICAgICAgICAgIHN0YXRlPXgu6ZO+5o6lLnNwbGl0KCdAQCcpWzBdXFxuICAgICAgICAgICAgICAgICAgdmFsdWU9cGRmaChxLHgu6ZO+5o6lLnNwbGl0KCdAQCcpWzFdKTtcXG4gICAgICAgICAgICAgICAgICByZXR1cm4gYDxhIHR5cGU9XFxcIkBleHRyYVxcXCIgc3RhdGU9XFxcIiR7c3RhdGV9XFxcIiB2YWx1ZT1cXFwiJHt2YWx1ZX1cXFwiPiR7dGl0bGV9PC9hPmA7XFxuICAgICAgICAgICAgICB9ZWxzZXtcXG4gICAgICAgICAgICAgICAgICBocmVmPXBkKHEseC7pk77mjqUpO1xcbiAgICAgICAgICAgICAgICAgIHJldHVybiBgPGEgaHJlZj1cXFwiJHtocmVmfVxcXCI+JHt0aXRsZX08L2E+YDtcXG4gICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgIFxcbiAgICAgICAgICB9KTtcXG4gICAgICAgICAgcmV0dXJuIOWumuS9jTtcXG4gICAgICAgIH0pO1xcbiAgICAgICBjYXRlZ29yaWVzLnB1c2go5LiA57qnLmpvaW4oJ1xcXFxuJykpO1xcbiAgICAgICAgICAgIH0pO1xcbiAgICB9XFxyXFxufcKgZWxzZcKge8KgwqDCoMKgwqBcXHJcXG4gICAgY2F0ZWdvcmllcyA9IHBkZmEoaHRtbCwgwqDlpKfnsbvlrprkvY0pO1xcclxcbn1cXHJcXG5sZXTCoGluaXRfY2F0ZcKgPcKgbmV3IEFycmF5KDIwKS5maWxsKFxcXCIwXFxcIik7XFxyXFxuY29uc3TCoGZvbGTCoD3CoGdldE15VmFyKE1ZX1JVTEUuZ3JvdXAswqBcXFwiMFxcXCIpO1xcclxcbmNvbnN0wqBjYXRlX3RlbXDCoD3CoEpTT04ucGFyc2UoZ2V0TXlWYXIoXFxcImhlYWQuY2F0ZVxcXCIswqBKU09OLnN0cmluZ2lmeShpbml0X2NhdGUpKSk7XFxudmFyIOaKmOWPoOeKtuaAgT0odHlwZW9mKOW8gOWQr+aKmOWPoCkgIT0gJ3VuZGVmaW5lZCcpP+W8gOWQr+aKmOWPoDp0cnVlO1xcclxcbnZhciDmipjlj6A9KHR5cGVvZijmipjlj6DmoIforrApICE9ICd1bmRlZmluZWQnICYmIOaKmOWPoOagh+iusMKgIT0gJycpP+aKmOWPoOagh+iusDpcXFwi4oCc4oCc4oCd4oCdPG1pZGRsZT48Yj48Zm9udCBjb2xvcj0nZ3JlZW4nPlxcXCIgKyDliqjmgIHmlLbnvKkgKyBcXFwiPC9mb250PjwvYj48L21pZGRsZT5cXFwiO1xcbnZhciDlsZXlvIA9KHR5cGVvZijlsZXlvIDmoIforrApICE9ICd1bmRlZmluZWQnICYmIOWxleW8gOagh+iusMKgIT0gJycpP+WxleW8gOagh+iusDpcXFwi4oCc4oCc4oCd4oCdPG1pZGRsZT48Yj48Zm9udCBjb2xvcj0ncmVkJz5cXFwiICsg5Yqo5oCB5bGV5byAICsgXFxcIjwvZm9udD48L2I+PC9taWRkbGU+XFxcIjtcXG52YXIg5riF6ZmkPSh0eXBlb2Yo5riF6Zmk6ZSuKSAhPSAndW5kZWZpbmVkJyAmJiDmuIXpmaTplK7CoCE9ICcnKT/muIXpmaTplK46W107XFxudmFyIOeKtuaAgT0odHlwZW9mKOeKtuaAgeagh+iusCkgIT0gJ3VuZGVmaW5lZCcgJiYg54q25oCB5qCH6K6wwqAhPSAnJyk/54q25oCB5qCH6K6wOk1ZX1JVTEUudXJsO1xcbnZhciDlpKfnsbvlpITnkIY9dHlwZW9mKOS4gOe6p+WIhuexu+WkhOeQhik9PSdmdW5jdGlvbic/dHJ1ZTpmYWxzZTtcXG52YXIg5pCc57SiPXR5cGVvZijlvIDlkK/mkJzntKIpIT0ndW5kZWZpbmVkJz/lvIDlkK/mkJzntKI6ZmFsc2U7XFxuXFxyXFxuaWbCoChwYXJzZUludChwYWdlKcKgPT09wqAxKcKge1xcbiAgICBpZijmkJzntKIpe1xcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiDmkJzntKLmjInpkq4sXFxuICAgICAgICB1cmw6IFxcXCInaGlrZXI6Ly9zZWFyY2g/cnVsZT1cXFwiICsgTVlfUlVMRS50aXRsZSArIFxcXCImcz0nK2lucHV0XFxcIixcXG4gICAgICAgIGRlc2M6IFxcXCLmkJzntKLlhbPplK7or41cXFwiLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJpbnB1dFxcXCIsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ2tleXdvcmQnLCAnJyksXFxuICAgICAgICAgICAgb25DaGFuZ2U6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcigna2V5d29yZCcsIGlucHV0KTtcXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgfVxcbiAgICAgIH0pXFxuICAgIH1cXG4gICAgaWYo5oqY5Y+g54q25oCBKXtcXHJcXG7CoMKgwqDCoCBkLnB1c2goe1xcclxcbsKgwqDCoMKgwqDCoMKgwqB0aXRsZTrCoGZvbGTCoD09PcKgJzEnwqA/wqDCoOaKmOWPoMKgOsKg5bGV5byALFxcclxcbsKgwqDCoMKgwqDCoMKgwqB1cmw6wqAkKCkubGF6eVJ1bGUoKGZvbGQpwqA9PsKge1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB1dE15VmFyKE1ZX1JVTEUuZ3JvdXAswqBmb2xkwqA9PT3CoCcxJ8KgP8KgJzAnwqA6wqAnMScpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJlZnJlc2hQYWdlKGZhbHNlKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqByZXR1cm7CoFxcXCJoaWtlcjovL2VtcHR5XFxcIjtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgfSzCoGZvbGQpLFxcclxcbsKgwqDCoMKgwqDCoMKgwqBjb2xfdHlwZTrCoCdzY3JvbGxfYnV0dG9uJyxcXG4gICAgICAgIGV4dHJhOntcXG4gICAgICAgICAgICBsb25nQ2xpY2s6W3tcXG4gICAgICAgICAgICAgICAgdGl0bGU6J+a4hemZpOeKtuaAgScsXFxuICAgICAgICAgICAgICAgIGpzOiQudG9TdHJpbmcoKHgpPT57XFxuICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcih4KTtcXG4gICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgICAgICB9LOeKtuaAgSlcXG4gICAgICAgICAgICB9XVxcbiAgICAgICAgfVxcclxcbsKgwqDCoCDCoH0pXFxuICAgIH1cXHJcXG4gICAgbGV0IHNldFRpdGxlPShrLGksdCk9PnsgICAgICAgICAgICAgXFxuICAgICAgcmV0dXJuIGs9PWk/XFxcIuKAnOKAnOKAneKAnVxcXCLCoCt0LmZvbnRjb2xvcijliIbnsbvpopzoibIpOnRcXHJcXG4gICAgfVxcclxcbsKgwqDCoMKgY2F0ZWdvcmllcy5mb3JFYWNoKChjYXRlZ29yeSzCoGluZGV4KcKgPT7CoHtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgbGV0wqBzdWJfY2F0ZWdvcmllc8KgPcKgcGRmYShjYXRlZ29yeSzCoOWwj+exu+WumuS9jSk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoGlmwqAoaW5kZXjCoD09PcKgMCnCoHtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzdWJfY2F0ZWdvcmllcy5mb3JFYWNoKChpdGVtLMKga2V5KcKgPT7CoHtcXG4gICAgICAgICAgICAgICAgbGV0IF/lpKfnsbvpk77mjqU9KHR5cGVvZijlpKfnsbvpk77mjqUpICE9ICd1bmRlZmluZWQnICYmIOWkp+exu+mTvuaOpcKgIT0gJycpP+Wkp+exu+mTvuaOpTrliIbnsbvpk77mjqU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgIFxcclxcbiAgICAgICAgICAgICAgICBsZXQgX+Wkp+exu+agh+mimD0odHlwZW9mKOWkp+exu+agh+mimCkgIT0gJ3VuZGVmaW5lZCcgJiYg5aSn57G75qCH6aKYwqAhPSAnJyk/5aSn57G75qCH6aKYOuWIhuexu+agh+mimDsgICAgICAgICAgICAgIFxcbiAgICBcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxldMKgdGl0bGXCoD3CoHBkZmgoaXRlbSzCoF/lpKfnsbvmoIfpopgpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaWbCoCh0eXBlb2Yo5o6S6ZmkKcKgIT3CoCd1bmRlZmluZWQnwqAmJsKg5o6S6ZmkwqAhPcKgJycpwqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHRpdGxlwqA9wqB0aXRsZS5yZXBsYWNlKG5ld8KgUmVnRXhwKOaOkumZpCzCoFxcXCJnXFxcIikswqBcXFwiXFxcIik7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9XFxuICAgICAgICAgICAgICAgIGxldCBwYXJhbXM9e1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNhdGVfdGVtcDrCoGNhdGVfdGVtcCxrZXk6wqBrZXkscGFnZTrCoHBhZ2UsY2xlYXJzOua4hemZpCxzdGF0ZTrnirbmgIFcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICBsZXQgdXJsPXBkKGl0ZW0swqBf5aSn57G76ZO+5o6lKTtcXG4gICAgICAgICAgICAgICAgaWYo5aSn57G75aSE55CGKXtcXG4gICAgICAgICAgICAgICAgICAgIHVybD3kuIDnuqfliIbnsbvlpITnkIYodXJsKVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIC8vbG9nKHVybClcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGQucHVzaCh7ICBcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGl0bGU6wqBzZXRUaXRsZShrZXkudG9TdHJpbmcoKSxjYXRlX3RlbXBbaW5kZXhdLHRpdGxlKSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOsKgJ3Njcm9sbF9idXR0b24nLFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1cmw6wqAkKHVybMKgK8KgJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtcynCoD0+wqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbGV0wqBuZXdfY2F0ZcKgPcKgW107XFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNsZWFycy5mb3JFYWNoKChpdGVtKT0+eyAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcihpdGVtKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGFyYW1zLmNhdGVfdGVtcC5mb3JFYWNoKChjYXRlLMKgaW5kZXgpwqA9PsKge1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgbmV3X2NhdGUucHVzaChpbmRleMKgPT09wqAwwqA/wqBwYXJhbXMua2V5LnRvU3RyaW5nKCnCoDrCoFxcXCIwXFxcIilcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KVxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHB1dE15VmFyKFxcXCJoZWFkLmNhdGVcXFwiLMKgSlNPTi5zdHJpbmdpZnkobmV3X2NhdGUpKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBwdXRNeVZhcihwYXJhbXMuc3RhdGUswqBpbnB1dCk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmVmcmVzaFBhZ2UodHJ1ZSk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcmV0dXJuwqBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0scGFyYW1zKVxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZC5wdXNoKHtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbF90eXBlOsKgXFxcImJsYW5rX2Jsb2NrXFxcIixcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KVxcclxcbsKgwqDCoMKgwqDCoMKgwqB9wqBlbHNlwqBpZsKgKGZvbGTCoD09PcKgJzEnfHzmipjlj6DnirbmgIE9PWZhbHNlKcKge1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHN1Yl9jYXRlZ29yaWVzLmZvckVhY2goKGl0ZW0swqBrZXkpwqA9PsKge1xcbiAgICAgICAgICAgICAgICB2YXIgZXh0cmFwb3M9ZmFsc2U7XFxuICAgICAgICAgICAgICAgIGlmKGl0ZW0uaW5jbHVkZXMoJ3R5cGU9XFxcIkBleHRyYVxcXCInKSl7XFxuICAgICAgICAgICAgICAgICAgICBleHRyYXBvcz10cnVlO1xcbiAgICAgICAgICAgICAgICAgICAgLy9sb2coJ+mZhOWKoOWumuS9jScpXFxuICAgICAgICAgICAgICAgIH0gICBcXG4gICAgICAgICAgICAgICAgXFxuICAgICAgICAgICAgICAgIGlmKGV4dHJhcG9zKXtcXG4gICAgICAgICAgICAgICAgICAgdmFywqB0aXRsZcKgPcKgcGRmaChpdGVtLMKgJ2EmJlRleHQnKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGlmwqAodHlwZW9mKOaOkumZpCnCoCE9wqAndW5kZWZpbmVkJ8KgJibCoOaOkumZpMKgIT3CoCcnKcKge1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0aXRsZcKgPcKgdGl0bGUucmVwbGFjZShuZXfCoFJlZ0V4cCjmjpLpmaQswqBcXFwiZ1xcXCIpLMKgXFxcIlxcXCIpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAgwqB9XFxuICAgICAgICAgICAgICAgIHZhciBqc29uPXtcXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6cGRmaChpdGVtLCdhJiZzdGF0ZScpLFxcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6cGRmaChpdGVtLCdhJiZ2YWx1ZScpLFxcbiAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfWVsc2V7XFxuICAgIFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAgICDCoHZhcsKgdGl0bGXCoD3CoHBkZmgoaXRlbSzCoOWIhuexu+agh+mimCk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZsKgKHR5cGVvZijmjpLpmaQpwqAhPcKgJ3VuZGVmaW5lZCfCoCYmwqDmjpLpmaTCoCE9wqAnJynCoHtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgdGl0bGXCoD3CoHRpdGxlLnJlcGxhY2UobmV3wqBSZWdFeHAo5o6S6ZmkLMKgXFxcImdcXFwiKSzCoFxcXCJcXFwiKTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH1cXG4gICAgICAgICAgICAgICAgdmFyIGpzb2495YiG57G76ZO+5o6lLmluY2x1ZGVzKCdAQEAnKT97XFxuICAgICAgICAgICAgICAgICAgICB0eXBlOnBkZmgoaXRlbSzliIbnsbvpk77mjqUuc3BsaXQoJ0BAQCcpWzBdKSxcXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOnBkZmgoaXRlbSzliIbnsbvpk77mjqUuc3BsaXQoJ0BAQCcpWzFdKSxcXG4gICAgICAgICAgICAgICAgfTpwZChpdGVtLOWIhuexu+mTvuaOpSk7XFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIFxcbiAgICAgICAgICAgICAgICBsZXQgcGFyYW1zPcKge1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBjYXRlX3RlbXA6wqBjYXRlX3RlbXAsaW5kZXg6wqBpbmRleCxrZXk6wqBrZXkswqBwYWdlOsKgcGFnZSxqc29uOmpzb24sc3RhdGU654q25oCBXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkLnB1c2goe1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB0aXRsZTrCoHNldFRpdGxlKGtleS50b1N0cmluZygpLGNhdGVfdGVtcFtpbmRleF0sdGl0bGUpLFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB1cmw6wqAkKCdoaWtlcjovL2VtcHR5J8KgK8KgJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtcynCoD0+wqB7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcGFyYW1zLmNhdGVfdGVtcFtwYXJhbXMuaW5kZXhdwqA9wqBwYXJhbXMua2V5LnRvU3RyaW5nKCk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgcHV0TXlWYXIoXFxcImhlYWQuY2F0ZVxcXCIswqBKU09OLnN0cmluZ2lmeShwYXJhbXMuY2F0ZV90ZW1wKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYocGFyYW1zLmpzb24uY29uc3RydWN0b3IgPT09IE9iamVjdCl7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKHBhcmFtcy5qc29uLnR5cGUscGFyYW1zLmpzb24udmFsdWUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNle1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihwYXJhbXMuc3RhdGUswqBwYXJhbXMuanNvbik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfcKgwqDCoFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJlZnJlc2hQYWdlKHRydWUpO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHJldHVybsKgXFxcImhpa2VyOi8vZW1wdHlcXFwiO1xcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9LHBhcmFtcyksXFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbF90eXBlOsKgJ3Njcm9sbF9idXR0b24nLFxcclxcbsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgfSk7XFxyXFxuwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgZC5wdXNoKHtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbF90eXBlOsKgXFxcImJsYW5rX2Jsb2NrXFxcIixcXHJcXG7CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9KTtcXHJcXG7CoMKgwqDCoMKgwqDCoMKgfVxcclxcbsKgwqDCoMKgfSlcXHJcXG59XFxuXFxuXFxuZnVuY3Rpb24gZ2V0QmFja0ltYWdlKGltZ3VybCl7XFxuICAgIHJldHVybiAvdXJsKD86XFxcXHMrKT9cXFxcKCguKj8pXFxcXCkvZy5leGVjKGltZ3VybClbMV0ucmVwbGFjZSgvKCd8XFxcInwmcXVvdDspL2dtLCcnKTtcXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkuIDnuqfliJfooajmoYbmnrZcIixcInBhdGhcIjpcIlByaW1hcnlUZW1wbGF0ZVwiLFwicnVsZVwiOlwiXFxubGV0IGxpc3QgPSBwZGZhKGh0bWwsIOS4gOe6p+WIl+ihqCk7XFxuZm9yIChsZXQgaiBpbiBsaXN0KSB7XFxuICAgICB2YXIg5qCH6aKYID0gcGFyc2VEb21Gb3JIdG1sKGxpc3Rbal0sIOS4gOe6p+agh+mimCk7XFxuICAgICB2YXIg5o+P6L+wMSA9IHBhcnNlRG9tRm9ySHRtbChsaXN0W2pdLCDkuIDnuqfmj4/ov7AxKS5zbGljZSgtNSkucmVwbGFjZSgnOicsJycpO1xcbiAgICAgdmFyIOaPj+i/sDIgPSBwYXJzZURvbUZvckh0bWwobGlzdFtqXSwg5LiA57qn5o+P6L+wMikucmVwbGFjZSgn5pawJywnJykucmVwbGFjZSgn56ysJywnJykucmVwbGFjZSgvXFxcXC8uKi8sJycpO1xcbiAgICAgdmFyIOWbvueJhyA9IHBhcnNlRG9tKGxpc3Rbal0sIOS4gOe6p+WbvueJhykgKyAnQFJlZmVyZXI9JztcXG4gICAgIHZhciDpk77mjqUgPSBwYXJzZURvbShsaXN0W2pdLCDkuIDnuqfpk77mjqUpICsgJyNpbW1lcnNpdmVUaGVtZSMnOyAgICAgICBcXG4gICAgICAgICAgXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTog5qCH6aKYLFxcbiAgICAgICAgZGVzYzog5o+P6L+wMSArICcgJyArIOaPj+i/sDIsXFxuICAgICAgICBpbWc6IOWbvueJhyxcXG4gICAgICAgIHVybDog6ZO+5o6lLCBcXG4gICAgICAgIGNvbF90eXBlOiAnbW92aWVfMycsXFxuICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgIGltZzog5Zu+54mHLFxcbiAgICAgICAgfVxcbiAgICB9KTtcXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkuIDnuqfmkJzntKLmoYbmnrZcIixcInBhdGhcIjpcIlNlYXJjaEZyYW1lXCIsXCJydWxlXCI6XCJcXHJcXG52YXIgZCA9IFtdO1xcbnZhciBodG1sID0gZ2V0UmVzQ29kZSgpXFxubGV0IGxpc3QgPSBwYXJzZURvbUZvckFycmF5KGh0bWwsIOahhuaetuWIl+ihqCk7XFxuZm9yIChsZXQgaiBpbiBsaXN0KSB7XFxuICAgICB2YXIg5qCH6aKYID0gcGFyc2VEb21Gb3JIdG1sKGxpc3Rbal0sIOahhuaetuagh+mimCk7XFxuICAgICB2YXIg566A5LuLMSA9IHBhcnNlRG9tRm9ySHRtbChsaXN0W2pdLCDmoYbmnrbnroDku4sxKTtcXG4gICAgIHZhciDnroDku4syID0gcGFyc2VEb21Gb3JIdG1sKGxpc3Rbal0sIOahhuaetueugOS7izIpO1xcbiAgICAgdmFyIOaPj+i/sDEgPSBwYXJzZURvbUZvckh0bWwobGlzdFtqXSwg5qGG5p625o+P6L+wMSk7XFxuICAgICB2YXIg5o+P6L+wMiA9IHBhcnNlRG9tRm9ySHRtbChsaXN0W2pdLCDmoYbmnrbmj4/ov7AyKTtcXG4gICAgIHZhciDlm77niYcgPSBwYXJzZURvbShsaXN0W2pdLCDmoYbmnrblm77niYcpICsgJ0BSZWZlcmVyPSc7XFxuICAgICB2YXIg6ZO+5o6lID0gcGFyc2VEb20obGlzdFtqXSwg5qGG5p626ZO+5o6lKSArICcjaW1tZXJzaXZlVGhlbWUjJzsgXFxuICAgICAgXFxuICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgIHRpdGxlOiDmoIfpopgsICAgICAgICAgICBcXG4gICAgICAgICAgICAgICBjb250ZW50OiDnroDku4sxICsgJ1xcXFxuJyArIOeugOS7izIsXFxuICAgICAgICAgICAgICAgZGVzYzog5o+P6L+wMSArICcgJyArIOaPj+i/sDIsXFxuICAgICAgICAgICAgICAgaW1nOiDlm77niYcsXFxuICAgICAgICAgICAgICAgdXJsOiDpk77mjqUsXFxuICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICBpbWc6IOWbvueJhyxcXG4gICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuc2V0UmVzdWx0KGQpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5LiA57qn57+76aG15pa55rOVXCIsXCJwYXRoXCI6XCJtZXRob2RcIixcInJ1bGVcIjpcImpzOlxcbi8qXFxuVmVyIDIwMjMtNS0yNSAxLjNcXG4qL1xcblxcbi8vdXJs6Kej5p6QXFxuZnVuY3Rpb24gdXJsUGFyc2UodSkge1xcbiAgICB2YXIgZGljdCA9IHt9XFxuICAgIGRpY3QuU291cmNlID0gdTtcXG4gICAgbGV0IHBhcmFtcyA9ICh1cmwpID0+IHtcXG4gICAgICAgIGxldCBxdWVyeVBhcmFtcyA9IHt9O1xcbiAgICAgICAgbGV0IHJlZyA9IC8oW14/PSZdKyk9KFtePz0mXSspL2c7XFxuICAgICAgICB1cmwucmVwbGFjZShyZWcsIGZ1bmN0aW9uKCkge1xcbiAgICAgICAgICAgIHF1ZXJ5UGFyYW1zW2FyZ3VtZW50c1sxXV0gPSBhcmd1bWVudHNbMl07XFxuICAgICAgICB9KVxcbiAgICAgICAgcmV0dXJuIHF1ZXJ5UGFyYW1zXFxuICAgIH1cXG4gICAgdmFyIGphdmFVcmwgPSBKYXZhSW1wb3J0ZXIoamF2YS5uZXQuVVJMKTtcXG4gICAgd2l0aChqYXZhVXJsKSB7XFxuICAgICAgICB2YXIgdXJsID0gbmV3IFVSTCh1KTtcXG4gICAgICAgIGRpY3QuUHJvdG9jb2wgPSB1cmwuZ2V0UHJvdG9jb2woKTtcXG4gICAgICAgIGRpY3QuSG9zdCA9IHVybC5nZXRIb3N0KCk7XFxuICAgICAgICBkaWN0LlBvcnQgPSB1cmwuZ2V0UG9ydCgpO1xcbiAgICAgICAgZGljdC5GaWxlID0gdXJsLmdldEZpbGUoKTtcXG4gICAgICAgIGRpY3QuUGF0aCA9IHVybC5nZXRQYXRoKCk7XFxuICAgICAgICBkaWN0LlJlZiA9IHVybC5nZXRSZWYoKTtcXG4gICAgICAgIGRpY3QuSG9zdHMgPSBgJHtkaWN0LlByb3RvY29sfTovLyR7dXJsLmdldEhvc3QoKX1gXFxuICAgIH1cXG4gICAgZGljdC5QYXJhbXMgPSBwYXJhbXModSk7XFxuICAgIHJldHVybiBkaWN0O1xcbn1cXG5cXG4vL+Wvueixoei9rOafpeivouWtl+espuS4slxcbk9iamVjdC5Ub1BhcmFtcyA9IGZ1bmN0aW9uKCkge1xcbiAgICB2YXIganNvbiA9IGFyZ3VtZW50c1swXTtcXG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGpzb24pLm1hcChrZXkgPT4ga2V5ICsgJz0nICsganNvbltrZXldKS5qb2luKCcmJyk7XFxufVxcblxcbi8v5Yik5pat5Lik5Liq5a+56LGh5piv5ZCm55u45ZCMXFxuZnVuY3Rpb24gaXNFcXVhbCh4LCB5KSB7XFxuICAgIGNvbnN0IG9rID0gT2JqZWN0LmtleXMsXFxuICAgICAgICB0eCA9IHR5cGVvZiB4LFxcbiAgICAgICAgdHkgPSB0eXBlb2YgeTtcXG4gICAgcmV0dXJuIHggJiYgeSAmJiB0eCA9PT0gJ29iamVjdCcgJiYgdHggPT09IHR5ID8gKFxcbiAgICAgICAgb2soeCkubGVuZ3RoID09PSBvayh5KS5sZW5ndGggJiZcXG4gICAgICAgIG9rKHgpLmV2ZXJ5KGtleSA9PiBpc0VxdWFsKHhba2V5XSwgeVtrZXldKSlcXG4gICAgKSA6ICh4ID09PSB5KTtcXG59XFxuXFxuXFxuXFxuLy/mn6Xor6LkuKTkuKrlrZfnrKbkuLLkuI3lkIzlpIRcXG5mdW5jdGlvbiBmaW5kRGlmZmVyZW50SW5kZXgoc3RyMSwgc3RyMikge1xcbiAgICBjb25zdCBkaWZmQ2hhcnMgPSBbXTtcXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIyLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICBpZiAoc3RyMVtpXSAhPT0gc3RyMltpXSkge1xcbiAgICAgICAgICAgIGRpZmZDaGFycy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgaW5kZXg6IGksXFxuICAgICAgICAgICAgICAgIHMxOiBzdHIxW2ldLFxcbiAgICAgICAgICAgICAgICBzMjogc3RyMltpXVxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIHJldHVybiBkaWZmQ2hhcnM7XFxufVxcblxcbi8v5pu/5o2i5a2X56ym5Liy5oyH5a6a5L2N572u55qE5a2X56ym5LiyXFxuZnVuY3Rpb24gcmVwbGFjZUNoYXJBdChzdHIsIGluZGV4LCByZXBsYWNlbWVudCkge1xcbiAgaWYgKGluZGV4IDwgMCB8fCBpbmRleCA+PSBzdHIubGVuZ3RoKSB7XFxuICAgIHJldHVybiBzdHI7XFxuICB9XFxuICAvL2xvZyhpbmRleClcXG4gIGNvbnN0IGFyciA9IHN0ci5zcGxpdChcXFwiXFxcIik7XFxuICBhcnJbaW5kZXhdID0gcmVwbGFjZW1lbnQ7XFxuICByZXR1cm4gYXJyLmpvaW4oXFxcIlxcXCIpO1xcbn1cXG5cXG4vL+aehOW7uuS4i+S4gOmhtVxcbi8v5Y+C5pWwMSDmupBcXG4vL+WPguaVsDIg55uu5qCHXFxuLy/lj4LmlbAzIOmineWkluWPguaVsFxcbmZ1bmN0aW9uIGdldE5leHRVcmwoc291cmNlLCB0YXJnZXQsIHBhcmFtcykge1xcbiAgICB2YXIgdTEgPSB1cmxQYXJzZShzb3VyY2UpO1xcbiAgICB2YXIgdTIgPSB1cmxQYXJzZSh0YXJnZXQpO1xcbiAgICB2YXIgcGE9dW5kZWZpbmVkO1xcbiAgICBpZih0eXBlb2YocGFyYW1zKT09J29iamVjdCcpe1xcbiAgICAgICAgcGEgPSBwYXJhbXMuaGFzT3duUHJvcGVydHkoJ+eJueW+gScpP3BhcmFtcy7nibnlvoE6dW5kZWZpbmVkO1xcbiAgICB9XFxuICAgIHZhciBuZXh0dXJsID0gc291cmNlO1xcbiAgICB2YXIgY2EgPSBPYmplY3Qua2V5cyh1Mi5QYXJhbXMpLmxlbmd0aCA9PSAwID8gJycgOiAnPyc7XFxuICAgIGlmIChwYSAhPSB1bmRlZmluZWQpIHtcXG4gICAgICAgIHZhciBycyA9IFN0cmluZyh1Mi5QYXRoKS5yZXBsYWNlKG5ldyBSZWdFeHAocGEpLCAnJDFmeXBhZ2UnKTtcXG4gICAgICAgIG5leHR1cmwgPSB1Mi5Ib3N0cyArIHJzICsgY2EgKyBPYmplY3QuVG9QYXJhbXModTIuUGFyYW1zKTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIGlmIChpc0VxdWFsKHUxLlBhcmFtcywgdTIuUGFyYW1zKSkge1xcbiAgICAgICAgICAgIC8vbG9nKHUxLlBhdGgpXFxuICAgICAgICAgICAgLy9sb2codTIuUGF0aClcXG4gICAgICAgICAgICB2YXIgZGYgPSBmaW5kRGlmZmVyZW50SW5kZXgoU3RyaW5nKHUxLlBhdGgpLCBTdHJpbmcodTIuUGF0aCkpO1xcbiAgICAgICAgICAgIC8vbG9nKGRmKVxcbiAgICAgICAgICAgIGlmKGRmLmxlbmd0aD09MSl7XFxuICAgICAgICAgICAgICB2YXIgcmU9ZGZbMF0uaW5kZXhcXG4gICAgICAgICAgICB9ZWxzZXtcXG4gICAgICAgICAgICAgICB2YXIgZj1kZi5maWx0ZXIoeD0+L1xcXFxkKy8udGVzdCh4LnMyKSk7XFxuICAgICAgICAgICAgICAgdmFyIHJlPWZbMF0uaW5kZXg7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHZhciBlcSA9IHJlcGxhY2VDaGFyQXQoU3RyaW5nKHUyLlBhdGgpLCByZSwgJ2Z5cGFnZScpO1xcbiAgICAgICAgICAgIG5leHR1cmwgPSB1Mi5Ib3N0cyArIGVxICsgY2EgKyBPYmplY3QuVG9QYXJhbXModTIuUGFyYW1zKTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgdmFyIGVxID0gU3RyaW5nKHUxLlBhdGgpLnJlcGxhY2UoL1xcXFxkKy8sICdmeXBhZ2UnKTtcXG4gICAgICAgICAgICBuZXh0dXJsID0gdTEuSG9zdHMgKyBlcSArIGNhKyBPYmplY3QuVG9QYXJhbXModTEuUGFyYW1zKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbiAgICAvL2xvZygnbmV4dDonK25leHR1cmwpXFxuICAgIHJldHVybiBuZXh0dXJsO1xcbn1cXG5cXG4vL+aehOW7ulxcbmZ1bmN0aW9uIGNyZWF0ZU5leHRQYWdlKCkge1xcbiAgICBsZXQgc3RhcnRudW0gPSAxO1xcbiAgICB2YXIgb2JqID0gYXJndW1lbnRzWzBdO1xcbiAgICBpZiAodHJ1ZV91cmwgIT0gZ2V0TXlWYXIoJ3BhZ2V1cmwnLCAnJykpIHtcXG4gICAgICAgIGNsZWFyTXlWYXIoJ3BhZ2V1cmwnKTtcXG4gICAgfVxcbiAgICBpZiAocGFnZSA9PSBzdGFydG51bSAmJiBnZXRNeVZhcigncGFnZXVybCcpID09ICcnKSB7XFxuICAgICAgICAvL2xvZygnc3RhcnQnKVxcbiAgICAgICAgdmFyIG5leHQgPSBldmFsKOS4i+S4gOmhtSk7XFxuICAgICAgICAvL2xvZygnbmV4dDonICsgbmV4dClcXG4gICAgICAgIGlmIChuZXh0ICE9ICcnKSB7XFxuICAgICAgICAgICAgdmFyIG54dXJsID0gZ2V0TmV4dFVybCh0cnVlX3VybCwgbmV4dCwgb2JqKTtcXG4gICAgICAgICAgICBwdXRNeVZhcijnirbmgIHmoIforrAsIG54dXJsKTtcXG4gICAgICAgICAgICBwdXRNeVZhcigncGFnZXVybCcsIG54dXJsKTtcXG4gICAgICAgIH1cXG4gICAgfVxcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIumAmueUqOino+aekOKRoFwiLFwicGF0aFwiOlwibGF6eTFcIixcInJ1bGVcIjpcInZhciBsYXp5ID0gJCgnJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICB0cnkge1xcbiAgICAgICAgdmFyIGh0bWwgPSBKU09OLnBhcnNlKHJlcXVlc3QoaW5wdXQpLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxuICAgICAgICAgICAgdmFyIHVybCA9IGh0bWwudXJsXFxuICAgICAgICAgICAgaWYgKGh0bWwuZW5jcnlwdCA9PSAnMScpIHtcXG4gICAgICAgICAgICAgICAgdXJsID0gdW5lc2NhcGUodXJsKTtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZW5jcnlwdCA9PSAnMicpIHtcXG4gICAgICAgICAgICAgICAgdXJsID0gdW5lc2NhcGUoYmFzZTY0RGVjb2RlKHVybCkpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoL20zdTh8bXA0Ly50ZXN0KHVybCkpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVybFxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiAndmlkZW86Ly8nICsgaW5wdXRcXG4gICAgICAgICAgICB9XFxuICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgIHJldHVybiAndmlkZW86Ly8nICsgaW5wdXRcXG4gICAgfVxcbn0pXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpgJrnlKjop6PmnpDikaFcIixcInBhdGhcIjpcImxhenkyXCIsXCJydWxlXCI6XCJ2YXIgbGF6eSA9ICQoJycpLmxhenlSdWxlKCgpID0+IHtcXG5cXG4gICAgLy94NXJ1bGXlvLrlipvll4XmjqJcXG5mdW5jdGlvbiB4NXJ1bGUoamlleHVybCwgc3JjdXJsKSB7XFxuICAgIHNob3dMb2FkaW5nKFxcXCLnvZHpobXorr/pl67mo4DntKLkuK3vvIzor7fnqI3lgJkuLi5cXFwiKTtcXG4gICAgdmFyIHZpZGVvID0gJ3dlYlJ1bGU6Ly8nICsgamlleHVybCArICdAJyArICQudG9TdHJpbmcoKHNyY3VybCkgPT4ge1xcbiAgICAgICAgLy9mYmEubG9nKGZiYS5nZXRVcmxzKCkpO1xcbiAgICAgICAgdmFyIHVybHMgPSBfZ2V0VXJscygpO1xcbiAgICAgICAgaWYgKHdpbmRvdy5jb3VudCA9PSBudWxsIHx8IHdpbmRvdy5jb3VudCA9PSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICB3aW5kb3cuY291bnQgPSAwXFxuICAgICAgICB9XFxuICAgICAgICBpZiAod2luZG93LmNvdW50ID49IDIzKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHNyY3VybFxcbiAgICAgICAgfVxcbiAgICAgICAgd2luZG93LmNvdW50ID0gd2luZG93LmNvdW50ICsgMTtcXG4gICAgICAgIGlmICh3aW5kb3cuY291bnQgPiAxICYmIHdpbmRvdy5jb3VudCA8PSAzICYmIHdpbmRvdy5jb3VudCAhPSBudWxsICYmIHdpbmRvdy5jb3VudCAhPSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQucXVlcnlTZWxlY3RvcignYm9keScpLmlubmVyVGV4dC5zZWFyY2goL+inpuWPkeS6humYsuebl+mTvnzmnKrmjojmnYN85o6l5Y+j6Ziy55uXfOivt+WIsOS4u+ermeingueciy8pICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgIGlmICghc3JjdXJsKSB7XFxuICAgICAgICAgICAgICAgIFxcdGZiYS5sb2coJ+Wwneivlei3s+mYsuebl+mqjOivgeS4gCcpO1xcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IGxvY2F0aW9uLmhyZWY7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIFxcdGZiYS5sb2coJ+Wwneivlei3s+mYsuebl+mqjOivgeS6jCcpO1xcbiAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IHNyY3VybFxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfTtcXG4gICAgICAgIH0gZWxzZSBpZih3aW5kb3cuY291bnQgPiAzICYmIHdpbmRvdy5jb3VudCAhPSBudWxsICYmIHdpbmRvdy5jb3VudCAhPSB1bmRlZmluZWQpe1xcbiAgICAgICAgICAgIGlmICh1cmxzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICAgICAgZmJhLmhpZGVMb2FkaW5nKCk7XFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mo4DntKLlpLHotKXvvIzlj6/og73pk77mjqXml6Dms5Xorr/pl67jgIInO1xcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodXJscy5sZW5ndGggPT0gMSkge1xcbiAgICAgICAgICAgICAgICBmYmEubG9nKCflsJ3or5Xnm7Tpk77kuI5KU09O6Kej5p6QJyk7XFxuICAgICAgICAgICAgICAgIGlmICh1cmxzWzBdLm1hdGNoKC9keWNkblxcXFwtdG9zXFxcXC5wc3RhdHB8XFxcXC5tM3U4fFxcXFwubXA0fFxcXFwuZmx2fG5ldGVhc2VcXFxcLmNvbXx2aWRlb19tcDR8dHlwZVxcXFw9bTN1OHxwdFxcXFw9bTN1OC8pICYmICF1cmxzWzBdLm1hdGNoKC9cXFxcLmh0bWx8bTN1OFxcXFwudHZ8XFxcXCZuZXh0fGFjXFxcXD1kbXxcXFxcPWh0dHB8aHR0cHNcXFxcOlxcXFwvXFxcXC9bXFxcXGRdXFxcXC5tM3U4fFxcXFw/dXJsXFxcXD1cXFxcL20zdTgvKSkge1xcbiAgICAgICAgICAgICAgICAgICAgLy9meV9icmlkZ2VfYXBwLmxvZyh1cmxzWzBdKVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbMF0uaW5kZXhPZignYmlsaXZpZGVvJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsc1swXSArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbMF0uaW5kZXhPZigndGl0YW4ubWd0di5jb20nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1cmxzWzBdICsgJyNpc1ZpZGVvPXRydWUjJyArICc7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1cmxzWzBdXFxuICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGxvY2F0aW9uLmhyZWYubWF0Y2goL2R5Y2RuXFxcXC10b3NcXFxcLnBzdGF0cHxcXFxcLm0zdTh8XFxcXC5tcDR8XFxcXC5mbHZ8bmV0ZWFzZVxcXFwuY29tfHZpZGVvX21wNHx0eXBlXFxcXD1tM3U4fHB0XFxcXD1tM3U4LykgJiYgIWxvY2F0aW9uLmhyZWYubWF0Y2goL2h0bWx8bTN1OFxcXFwudHZ8XFxcXCZuZXh0fGFjXFxcXD1kbXxcXFxcPWh0dHB8aHR0cHNcXFxcOlxcXFwvXFxcXC9bXFxcXGRdXFxcXC5tM3U4fFxcXFw/dXJsXFxcXD1cXFxcL20zdTgvKSkge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxvY2F0aW9uLmhyZWY7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IGZiYS5mZXRjaChsb2NhdGlvbi5ocmVmLCB7fSk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoIS9cXFxcPG1ldGEvLnRlc3QoaHRtbCkmJiEvXFxcXDxodG1sLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShodG1sKS51cmw7XFxuICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2NhdGlvbi5ocmVmfVxcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIGZiYS5sb2coJ+aXpeW/l+ajgOe0ouesrCcgKyB3aW5kb3cuY291bnQgKyAn5qyhJyk7XFxuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgaW4gdXJscykge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKHVybHNbaV0ubWF0Y2goL2R5Y2RuXFxcXC10b3NcXFxcLnBzdGF0cHxcXFxcLm0zdTh8XFxcXC5tcDR8XFxcXC5mbHZ8bmV0ZWFzZVxcXFwuY29tfHZpZGVvX21wNHx0eXBlXFxcXD1tM3U4fHB0XFxcXD1tM3U4LykgJiYgIXVybHNbaV0ubWF0Y2goL2h0bWx8bTN1OFxcXFwudHZ8XFxcXCZuZXh0fGFjXFxcXD1kbXxcXFxcPWh0dHB8aHR0cHNcXFxcOlxcXFwvXFxcXC9bXFxcXGRdXFxcXC5tM3U4fFxcXFw/dXJsXFxcXD1cXFxcL20zdTgvKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vZnlfYnJpZGdlX2FwcC5sb2codXJsc1tpXSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsc1tpXS5pbmRleE9mKCdiaWxpdmlkZW8nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3RpdGFuLm1ndHYuY29tJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVybHNbaV0gKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybHNbaV0uaW5kZXhPZignanVoYW9rYW4nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuanVoYW9rYW4uY2MvfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ29qYmsnKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsc1tpXSArICc7e1JlZmVyZXJAaHR0cHM6Ly92Lm9qYmtqeC5jb20vfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh1cmxzW2ldLmluZGV4T2YoJ3drZmlsZScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1cmxzW2ldICsgJzt7UmVmZXJlckBodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsc1tpXSArICcjaXNWaWRlbz10cnVlIydcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0gLy9lbmQgZm9yIGlcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgIH0sIHNyY3VybCk7XFxuICAgIHJldHVybiB2aWRlb1xcbn1cXG4vL+e7k+adn3g1cnVsZeW8uuWKm+WXheaOolxcbiAgICByZXR1cm4geDVydWxlKGlucHV0LCBpbnB1dCk7XFxufSlcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuS6jOe6p+WklumDqOaQnOe0olwiLFwicGF0aFwiOlwidG9vbFwiLFwicnVsZVwiOlwidmFyIHRpdGxlID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsIOaQnOe0ouagh+etvik7XFxubG9nKHRpdGxlKVxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiI0ZGMDAwMFxcXCI+IOa1t+mYlOaQnOe0ojwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tLy9hcGtfbG9nby8yMDIyLzA1MDcvMTQvMF8zODI4XzcyNTRfNjM5QDI2MHgyNjAucG5nLnQucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU9JyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmuW9seKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL1FxeUMucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa5b2x4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOmjjuW9sTwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cHM6Ly9zMS5heDF4LmNvbS8yMDIyLzEwLzE1L3h3VFBkVS5qcGcnLFxcbiAgICB1cmw6ICdoaWtlcjovL3NlYXJjaD9zPScgKyB0aXRsZSArICcmcnVsZT3po47lvbEnLFxcbiAgICBjb2xfdHlwZTogJ2ljb25fNScsXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfigJjigJjigJnigJk8Yj48bWlkZGxlPjxmb250IGNvbG9yPVxcXCIjMUU5MEZGXFxcIj4g6IGa6ZiF4oiaPC9mb250PjwvbWlkZGxlPicsXFxuICAgIHBpY191cmw6ICdodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvOU9aWC5wbmcnLFxcbiAgICB1cmw6ICdoaWtlcjovL3NlYXJjaD9zPScgKyB0aXRsZSArICcmcnVsZT3ogZrpmIXiiJonLFxcbiAgICBjb2xfdHlwZTogJ2ljb25fNScsXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfigJjigJjigJnigJk8Yj48bWlkZGxlPjxmb250IGNvbG9yPVxcXCIjMUU5MEZGXFxcIj4g6aOO6ZiFPC9mb250PjwvbWlkZGxlPicsXFxuICAgIHBpY191cmw6ICdodHRwczovL3MxLmF4MXguY29tLzIwMjMvMDMvMjcvcHBzVXNkeC5wbmcnLFxcbiAgICB1cmw6ICdoaWtlcjovL3NlYXJjaD9zPScgKyB0aXRsZSArICcmcnVsZT3po47pmIUnLFxcbiAgICBjb2xfdHlwZTogJ2ljb25fNScsXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfigJjigJjigJnigJk8Yj48bWlkZGxlPjxmb250IGNvbG9yPVxcXCIjMUU5MEZGXFxcIj4gZG3nm5LlrZA8L2ZvbnQ+PC9taWRkbGU+JyxcXG4gICAgcGljX3VybDogJ2h0dHA6Ly9pbWctcW4tMC41MW1pei5jb20vRWxlbWVudC8wMC85MC83NS8wOS8zMWM3YmQyZl9FOTA3NTA5XzA4OGY5YzMyLnBuZyEvcXVhbGl0eS85MC91bnNoYXJwL3RydWUvY29tcHJlc3MvdHJ1ZS9mb3JtYXQvcG5nL2ZoLzMyMCcsXFxuICAgIHVybDogJ2hpa2VyOi8vc2VhcmNoP3M9JyArIHRpdGxlICsgJyZydWxlPWRt55uS5a2QJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiIzFFOTBGRlxcXCI+IOiBmumYheKImjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL2ltYWdlLmNvb2xhcGsuY29tL2Fwa19sb2dvLzIwMjEvMDcyMS8xMC9iYjVjNmQ1OWE5ZTM2MTU5ODM0YjNmMTlmYzc0OWRmNS0yODUxMDctb18xZmIzZnRsM2djc3Qxc2R0MW4zYjFtMnVuamQxOC11aWQtNjYyNDM1QDM2MHgzNjAucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU96IGa6ZiF4oiaJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn4oCY4oCY4oCZ4oCZPGI+PG1pZGRsZT48Zm9udCBjb2xvcj1cXFwiI0ZGMDAwMFxcXCI+IOmmmeaDheW9seinhjwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cHM6Ly9jLXNzbC5kdWl0YW5nLmNvbS91cGxvYWRzL2Jsb2cvMjAyMzA3LzEzL2xHU2dsMHozU3gwUHhRbC5qcGcnLFxcbiAgICB1cmw6ICdoaWtlcjovL3NlYXJjaD9zPScgKyB0aXRsZSArICcmcnVsZT3pppnmg4XlvbHop4YnLFxcbiAgICBjb2xfdHlwZTogJ2ljb25fNScsXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfigJjigJjigJnigJk8Yj48bWlkZGxlPjxmb250IGNvbG9yPVxcXCIjRkY4QzAwXFxcIj4g5LqR55uY5ZCbKOaOqOmAgSk8L2ZvbnQ+PC9taWRkbGU+JyxcXG4gICAgcGljX3VybDogJ2h0dHA6Ly9zdGF0aWMueWluZ3lvbmdodWkuY29tL2ljb24vMTI4LzY4NjM0NDcucG5nJyxcXG4gICAgdXJsOiAnaGlrZXI6Ly9zZWFyY2g/cz0nICsgdGl0bGUgKyAnJnJ1bGU95LqR55uY5ZCbKOaOqOmAgSknLFxcbiAgICBjb2xfdHlwZTogJ2ljb25fNScsXFxufSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfigJjigJjigJnigJk8Yj48bWlkZGxlPjxmb250IGNvbG9yPVxcXCIjMDBGRjAwXFxcIj4g5LqR55uY5ZCbLueugDwvZm9udD48L21pZGRsZT4nLFxcbiAgICBwaWNfdXJsOiAnaHR0cDovL3N0YXRpYy55aW5neW9uZ2h1aS5jb20vaWNvbi8xMjgvNzAwMDQ3OC5wbmcnLFxcbiAgICB1cmw6ICdoaWtlcjovL3NlYXJjaD9zPScgKyB0aXRsZSArICcmcnVsZT3kupHnm5jlkJsu566AJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbn0pO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6YCa55So54yr5Ye95pWwXCIsXCJwYXRoXCI6XCJsYXp5XCIsXCJydWxlXCI6XCJ2YXIgbGF6eSA9ICQoXFxcIlxcXCIpLmxhenlSdWxlKCgpID0+IHtcXG5cXG4gICAgLy/njKvlh73mlbBcXG4gICAgZnVuY3Rpb24gbWFvc3Moanh1cmwsIHJlZiwga2V5KSB7XFxuICAgICAgICBldmFsKGdldENyeXB0b0pTKCkpO1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICB2YXIgZ2V0VmlkZW9JbmZvID0gZnVuY3Rpb24odGV4dCkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gQ3J5cHRvSlMuQUVTLmRlY3J5cHQodGV4dCwga2V5LCB7XFxuICAgICAgICAgICAgICAgICAgICBpdjogaXYsXFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuUGtjczdcXG4gICAgICAgICAgICAgICAgfSkudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpO1xcbiAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgdmFyIHRva2VuX2tleSA9IGtleSA9PSB1bmRlZmluZWQgPyAnZHZ5WVJRbG5QUkNNZFFTZScgOiBrZXk7XFxuICAgICAgICAgICAgaWYgKHJlZikge1xcbiAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IHJlcXVlc3Qoanh1cmwsIHtcXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAnUmVmZXJlcic6IHJlZlxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICB2YXIgaHRtbCA9IHJlcXVlc3Qoanh1cmwpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBpZiAoaHRtbC5pbmRleE9mKCcmYnR3YWY9JykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgaHRtbCA9IHJlcXVlc3Qoanh1cmwgKyAnJmJ0d2FmJyArIGh0bWwubWF0Y2goLyZidHdhZiguKj8pXFxcIi8pWzFdLCB7XFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1JlZmVyZXInOiByZWZcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgdmFyIHRva2VuX2l2ID0gaHRtbC5zcGxpdCgnX3Rva2VuID0gXFxcIicpWzFdLnNwbGl0KCdcXFwiJylbMF07XFxuICAgICAgICAgICAgdmFyIGtleSA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHRva2VuX2tleSk7XFxuICAgICAgICAgICAgdmFyIGl2ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UodG9rZW5faXYpO1xcbiAgICAgICAgICAgIC8vIGxvZyhcXFwiaXY6XFxcIitpdik7XFxuICAgICAgICAgICAgLy8gIGxvZyhodG1sKTtcXG4gICAgICAgICAgICBldmFsKGh0bWwubWF0Y2goL3ZhciBjb25maWcgPSB7W1xcXFxzXFxcXFNdKj99LylbMF0gKyAnJyk7XFxuICAgICAgICAgICAgaWYgKGNvbmZpZy51cmwuc2xpY2UoMCwgNCkgIT0gJ2h0dHAnKSB7XFxuICAgICAgICAgICAgICAgIC8vY29uZmlnLnVybCA9IGRlY29kZVVSSUNvbXBvbmVudChBRVMoY29uZmlnLnVybCwga2V5LCBpdikpO1xcbiAgICAgICAgICAgICAgICBjb25maWcudXJsID0gQ3J5cHRvSlMuQUVTLmRlY3J5cHQoY29uZmlnLnVybCwga2V5LCB7XFxuICAgICAgICAgICAgICAgICAgICBpdjogaXYsXFxuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiBDcnlwdG9KUy5wYWQuUGtjczdcXG4gICAgICAgICAgICAgICAgfSkudG9TdHJpbmcoQ3J5cHRvSlMuZW5jLlV0ZjgpXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJldHVybiBjb25maWcudXJsO1xcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgIHJldHVybiAnJztcXG4gICAgICAgIH1cXG4gICAgfVxcblxcblxcbmZ1bmN0aW9uIGJsKHZpcFVybCkge1xcbiAgICB0cnkge1xcbiAgICAgICAgdmFyIGh0bWwgPSByZXF1ZXN0KFxcXCJodHRwczovL2JsYmZxLmYzMzIyLm5ldC9wbGF5ZXIvYW5hbHlzaXMucGhwP3Y9XFxcIiArIHZpcFVybCwge3RpbWVvdXQ6IDUwMDB9KTtcXG4gICAgICAgIHVybCA9IGh0bWwubWF0Y2goL3ZhciB1cmxzID0gXFxcIiguKj8pXFxcIi8pWzFdLnJlcGxhY2UoL1xcXFxcXFxcL2csIFxcXCJcXFwiKTtcXG4gICAgICAgIHJldHVybiB1cmw7XFxuICAgIH1cXG4gICAgY2F0Y2ggKGUpIHtcXG4gICAgICAgIHJldHVybiBcXFwiXFxcIjtcXG4gICAgfVxcbn1cXG5cXG5cXG4gICAgdmFyIHBsYXllciA9IEpTT04ucGFyc2UocmVxdWVzdChpbnB1dCkubWF0Y2goL3IgcGxheWVyXy4qPz0oLio/KTwvKVsxXSk7XFxuICAgIHZhciBmcm9tID0gcGxheWVyLmZyb207XFxuICAgIHZhciBqc3VybCA9IHBsYXllci51cmw7XFxuICAgIGlmIChwbGF5ZXIuZW5jcnlwdCA9PSAnMScpIHtcXG4gICAgICAgIHZhciBqc3VybCA9IHVuZXNjYXBlKGpzdXJsKTtcXG4gICAgfSBlbHNlIGlmIChwbGF5ZXIuZW5jcnlwdCA9PSAnMicpIHtcXG4gICAgICAgIHZhciBqc3VybCA9IHVuZXNjYXBlKGJhc2U2NERlY29kZShqc3VybCkpO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAganN1cmxcXG4gICAgfVxcbiAgICBcXG4gICAgaWYgKGpzdXJsLnNlYXJjaCgvXFxcXC5tM3U4fFxcXFwubXA0LykgPiAtMSkge1xcbiAgICAgICAgICAgICByZXR1cm4ganN1cmxcXG4gICAgfSBlbHNlIGlmIChqc3VybC5tYXRjaCgvTzBPME8vKSkgIHtcXG4gICAgICAgbGV0IHBsYXl1cmwgPSBtYW9zcyhcXFwiaHR0cHM6Ly9iZnEueGR5cy52aXAvP3VybD1cXFwiICsganN1cmwsIGZhbHNlLCBcXFwiQTQyRUFDMEMyQjQwODQ3MlxcXCIpO1xcbiAgICAgICAgICAvLyAgcmV0dXJuIGJsKGpzdXJsKSsgJyNpc1ZpZGVvPXRydWUjJ1xcbiAgICAgICAgcmV0dXJuIHBsYXl1cmwrICcjaXNWaWRlbz10cnVlIydcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHJlcXVpcmVDYWNoZSgnaHR0cHM6Ly9hZ2l0LmFpL2x6azIzNTU5L1B1YmxpY1J1bGUvcmF3L2JyYW5jaC9tYXN0ZXIveDVydWxlLmpzJywgMjQpO1xcbiAgICAgICAgcmV0dXJuIHg1cnVsZShpbnB1dCwgaW5wdXQpO1xcbiAgICB9XFxufSk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpqozor4HnoIFcIixcInBhdGhcIjpcInl6bVwiLFwicnVsZVwiOlwid2hpbGXCoCgv6L6T5YWl6aqM6K+B56CBfOezu+e7n+WuieWFqOmqjOivgS8udGVzdChodG1sKSnCoHtcXG7CoMKgwqDCoGxldMKgaGVhZGVyc8KgPcKge1xcbsKgwqDCoMKgwqDCoMKgwqBcXFwiVXNlci1BZ2VudFxcXCI6wqBNT0JJTEVfVUEsXFxuwqDCoMKgwqDCoMKgwqDCoFxcXCJSZWZlcmVyXFxcIjrCoE1ZX1VSTFxcbsKgwqDCoMKgfVxcbsKgwqDCoMKgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9qeGhzP3J1bGU95qih5p2/wrdRJykpLnJ1bGUpO1xcbsKgwqDCoMKgZXZhbFByaXZhdGVKUyhzc3l6KTtcXG5cXG7CoMKgwqDCoGxldMKgdmNvZGXCoD3CoGdldFZDb2RlMihNWV9IT01FwqArwqAnL2luZGV4LnBocC92ZXJpZnkvaW5kZXguaHRtbD8nLMKgSlNPTi5zdHJpbmdpZnkoaGVhZGVycykswqAnbnVtJyk7XFxuwqDCoMKgwqBmZXRjaChNWV9IT01FwqArwqBodG1sLm1hdGNoKC9cXFxcL2luZGV4LnBocC4qP3ZlcmlmeT0vKVswXcKgK8KgSlNPTi5wYXJzZSh2Y29kZSkucmV0LMKge1xcbsKgwqDCoMKgwqDCoMKgwqBoZWFkZXJzOsKgaGVhZGVycyxcXG7CoMKgwqDCoMKgwqDCoMKgbWV0aG9kOsKgJ1BPU1QnXFxuwqDCoMKgwqB9KVxcbsKgwqDCoMKgdmFywqB5esKgPcKgTVlfVFlQRcKgPT3CoCdob21lJ8KgP8KgdHJ1ZV91cmzCoDrCoE1ZX1VSTFxcbsKgwqDCoMKgbG9nKE1ZX1RZUEUpXFxuwqDCoMKgwqBodG1swqA9wqByZXF1ZXN0KHl6LMKge1xcbsKgwqDCoMKgwqDCoMKgwqAvL8KgwqDCoGhlYWRlcnM6wqBoZWFkZXJzXFxuwqDCoMKgwqB9KVxcbn1cXG5pZsKgKC/popHnuYHmk43kvZwvLnRlc3QoaHRtbCkpwqB7XFxuwqDCoMKgwqBkLnB1c2goe1xcbsKgwqDCoMKgdGl0bGU6wqAn572R56uZ5pCc57Si5pe26Ze06Ze06ZqUJyxcXG7CoMKgwqDCoGRlc2M6wqBcXFwi5LiL5ouJ6YeN6K+VXFxcIlxcbn0pXFxuXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6YGT6ZW/6YCa55So6Kej5p6QMFwiLFwicGF0aFwiOlwibGF6eTBcIixcInJ1bGVcIjpcInZhciBsYXp5ID0gJCgnJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICBpZiAoaW5wdXQuaW5kZXhPZignbWFnbmV0Oj94dCcpID09IC0xKSB7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShyZXF1ZXN0KGlucHV0KS5tYXRjaCgvciBwbGF5ZXJfLio/PSguKj8pPC8pWzFdKVxcbiAgICAgICAgICAgIHZhciB1cmwgPSBodG1sLnVybFxcbiAgICAgICAgICAgIGlmIChodG1sLmVuY3J5cHQgPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgIHVybCA9IHVuZXNjYXBlKHVybCk7XFxuICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLmVuY3J5cHQgPT0gJzInKSB7XFxuICAgICAgICAgICAgICAgIHVybCA9IHVuZXNjYXBlKGJhc2U2NERlY29kZSh1cmwpKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgaWYgKC9tM3U4fG1wNC8udGVzdCh1cmwpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiB1cmxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICByZXF1aXJlQ2FjaGUoJ2hpa2VyOi8vcGFnZS9nbG9iYWxQYXJzZT9ydWxlPemBk+mVv+S7k+W6k1BybycsIDI0KTtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIGxhenlQYXJzZShpbnB1dCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgIGxvZygn5oql6ZSZ5pS5d2Vi5ZeF5o6iJyk7XFxuICAgICAgICAgICAgLy9yZXF1aXJlQ2FjaGUoJ2hpa2VyOi8vcGFnZS9nbG9iYWxQYXJzZT9ydWxlPemBk+mVv+S7k+W6k1BybycsIDI0KTtcXG4gICAgICAgICAgICAvL3JldHVybiBsYXp5UGFyc2UoaW5wdXQpO1xcbiAgICAgICAgICAgIHJldHVybiBcXFwidmlkZW86Ly9cXFwiICsgaW5wdXRcXG4gICAgICAgIH1cXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHJldHVybiBpbnB1dFxcbiAgICB9XFxufSk7XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkuoznuqfpobXpnaLmoYbmnrZcIixcInBhdGhcIjpcImVyXCIsXCJydWxlXCI6XCJqczpcXG4vKnZlciAyMDIzMDYwNSAxLjNcXG4gKi9cXG5sZXQgRXJqaSA9IHtcXG4gICAgY2xvc2U6IGZ1bmN0aW9uKGxpc3QsIHNvcnRzKSB7XFxuICAgICAgICBhZGRMaXN0ZW5lcignb25DbG9zZScsICQudG9TdHJpbmcoKGxpc3QsIHNvcnRzKSA9PiB7XFxuICAgICAgICAgICAgbGlzdC5tYXAoeCA9PiB7XFxuICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoeCArICdmb2xkJyk7XFxuICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoeCk7XFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNvcnRzOyBpKyspIHtcXG4gICAgICAgICAgICAgICAgY2xlYXJNeVZhcigncGxheWxpc3RfJyArIGkpO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0sIGxpc3QsIHNvcnRzKSlcXG4gICAgfSxcXG4gICAgc21hbGw6IGZ1bmN0aW9uKHN0ciwgY29sb3IpIHtcXG4gICAgICAgIHJldHVybiAn4oCY4oCY4oCZ4oCZPHNtYWxsPjxmb250IGNvbG9yPVxcXCInICsgKGNvbG9yIHx8ICcnKSArICdcXFwiPicgKyBzdHIgKyAnPC9mb250Pjwvc21hbGw+JztcXG4gICAgfSxcXG4gICAgXFxuXFxuLy/lo7DmmI5cXG4gICAg5aOw5piOOiBmdW5jdGlvbigpIHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IHRoaXMuc21hbGwoJ+S7peS4iuaVsOaNruadpea6kOS6jue9kee7nO+8jOWmguaCqOWWnOasou+8jOivt+aUr+aMgeWumOaWue+8gScsICcjRjA1MDZFJyksXFxuICAgICAgICAgICAgZGVzYzogdGhpcy5zbWFsbCgn5q2k6KeE5YiZ5LuF6ZmQ5a2m5Lmg5Lqk5rWB5L2/55So77yM6K+35LqO5a+85YWl5ZCOMjTlsI/ml7blhoXliKDpmaTvvIzku7vkvZXnu4Tnu4fmiJbkuKrkurrkuI3lvpfku6Xku7vkvZXmlrnlvI/mlrnms5XkvKDmkq3mraTop4TliJnnmoTmlbTkvZPmiJbpg6jliIbvvIEnLCAncmVkJyksXFxuICAgICAgICAgICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcbiAgICAgICAgfSk7XFxuICAgIH0sXFxuXFxuLy/nroDku4tcXG4gICAgc2V0RGVzYzogZnVuY3Rpb24oZGVzYywgbnVtKSB7XFxuICAgICAgICBkZXNjID0gZGVzYy5jb25zdHJ1Y3RvciA9PSBBcnJheSA/IGRlc2Muam9pbignPGJyPicpIDogZGVzYztcXG4gICAgICAgIGlmIChkZXNjLnJlcGxhY2UoLyg8YnI+fFxcXFxzKykvZywgJycpLmxlbmd0aCA9PSAwKSB7XFxuICAgICAgICAgICAgcmV0dXJuXFxuICAgICAgICB9XFxuICAgICAgICBjb25zdCBtYXJrID0gJ2Rlc2MnO1xcbiAgICAgICAgbnVtID0gdHlwZW9mKG51bSkgPT0gJ3VuZGVmaW5lZCcgPyA4OCA6IG51bVxcbiAgICAgICAgZGVzYyA9IGRlc2Muc3RhcnRzV2l0aCgn44CA44CAJykgPyBkZXNjIDogJ+OAgOOAgCcgKyBkZXNjO1xcbiAgICAgICAgZGVzYyA9IGRlc2MucmVwbGFjZSgvJy9nLCBcXFwiJiMzOTtcXFwiKVxcblxcbiAgICAgICAgZnVuY3Rpb24gc3Vic3RyKHN0ciwgbWF4TGVuZ3RoKSB7XFxuICAgICAgICAgICAgbGV0IGxlbiA9IDA7XFxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICAgICAgaWYgKHN0ci5jaGFyQ29kZUF0KGkpID4gMjU1KSB7XFxuICAgICAgICAgICAgICAgICAgICBsZW4gKz0gMjtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGxlbisrO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIGlmIChsZW4gPiBtYXhMZW5ndGgpIHtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdHIuc2xpY2UoMCwgaSkgKyAnLi4uJztcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gc3RyO1xcbiAgICAgICAgfVxcbiAgICAgICAgbGV0IHNkZXNjID0gc3Vic3RyKGRlc2MsIG51bSk7XFxuICAgICAgICB2YXIgbGF6eSA9ICQoYCNub0xvYWRpbmcjYCkubGF6eVJ1bGUoKGRjLCBzZGMsIG0pID0+IHtcXG4gICAgICAgICAgICB2YXIgc2hvdyA9IHN0b3JhZ2UwLmdldEl0ZW0obSwgJzAnKTtcXG4gICAgICAgICAgICB2YXIgdGl0bGUgPSBmaW5kSXRlbSgnZGVzYycpLnRpdGxlO1xcbiAgICAgICAgICAgIHZhciByZSA9IC8oPFxcXFwvc21hbGw+PGJyPi4qPz4pLisvZztcXG4gICAgICAgICAgICB2YXIgZXhwID0gJ+WxleW8gDonO1xcbiAgICAgICAgICAgIHZhciByZXQgPSAn5pS26LW3Oic7XFxuICAgICAgICAgICAgaWYgKHNob3cgPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgIHVwZGF0ZUl0ZW0oJ2Rlc2MnLCB7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGVcXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShyZXQsIGV4cClcXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShyZSwgJyQxJyArIHNkYyArICc8L3NtYWxsPicpXFxuICAgICAgICAgICAgICAgICAgICAgICAgLnJlcGxhY2UoLyg8XFxcXC9zbWFsbD48YnI+PGZvbnQgY29sb3I9XFxcIikuKj8oXFxcIj4pLywgJyQxIzhBMkJFMiQyICcpLy/ntKvoibLmlLbotbfpopzoibJcXG5cXG4gICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgc3RvcmFnZTAuc2V0SXRlbShtLCAnMCcpO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHVwZGF0ZUl0ZW0oJ2Rlc2MnLCB7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGVcXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShleHAsIHJldClcXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZShyZSwgJyQxJyArIGRjICsgJzwvc21hbGw+JylcXG4gICAgICAgICAgICAgICAgICAgICAgICAucmVwbGFjZSgvKDxcXFxcL3NtYWxsPjxicj48Zm9udCBjb2xvcj1cXFwiKS4qPyhcXFwiPikvLCAnJDEjMDA4MDAwJDInKS8v57u/6Imy5bGV5byA6aKc6ImyXFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnNldEl0ZW0obSwgJzEnKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIGBoaWtlcjovL2VtcHR5YFxcbiAgICAgICAgfSwgZGVzYywgc2Rlc2MsIG1hcmspXFxuICAgICAgICB2YXIgc2MgPSBzdG9yYWdlMC5nZXRJdGVtKG1hcmssICcwJykgPT0gJzAnID8gJ+WxleW8gDonIDogJ+aUtui1tzonO1xcbiAgICAgICAgdmFyIGRjID0gc3RvcmFnZTAuZ2V0SXRlbShtYXJrLCAnMCcpID09ICcwJyA/IHNkZXNjIDogZGVzYztcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgdGl0bGU6ICcnICsgJzxiPjxmb250IGNvbG9yPVxcXCJjeWFuXFxcIj7iiLcg5Ymn5oOF566A5LuLXFx0PC9mb250PjwvYj4nICsgXFxcIjxzbWFsbD48YSBzdHlsZT0ndGV4dC1kZWNvcmF0aW9uOiBub25lOycgaHJlZj0nXFxcIiArIGxhenkgKyBcXFwiJz5cXFwiICsgc2MgKyAnPC9hPjwvc21hbGw+PGJyPjxmb250IGNvbG9yPVxcXCIjOEEyQkUyXFxcIj4nICsgYCR7ZGN9YCArICc8L3NtYWxsPicsLy/ntKvoibLpu5jorqTpopzoibJcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgaWQ6ICdkZXNjJyxcXG4gICAgICAgICAgICAgICAgbGluZVNwYWNpbmc6IDYsXFxuICAgICAgICAgICAgICAgIHRleHRTaXplOiAxNSxcXG4gICAgICAgICAgICAgICAgbGluZVZpc2libGU6IHRydWUsXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSlcXG4gICAgfSxcXG5cXG4vL+a1t+aKpVxcbiAgICBzZXRDb250ZW50OiBmdW5jdGlvbihvYmopIHtcXG4gICAgICAgIHZhciBjb250ZW50cyA9IG9iai5tYWluO1xcbiAgICAgICAgdmFyIHNvcnRPcmRlciA9IG9iai5zb3J0O1xcbiAgICAgICAgdmFyIGltZyA9IG9iai5pbWc7XFxuICAgICAgICB2YXIgdGV4dHMgPSBjb250ZW50cy5tYXAoeCA9PiBwZGZoKHgsICdUZXh0JykpO1xcbiAgICAgICAgdmFyIGFycmF5ID0gdGV4dHMuc29ydCgoYSwgYikgPT4ge1xcbiAgICAgICAgICAgIGNvbnN0IGluZGV4QSA9IHNvcnRPcmRlci5pbmRleE9mKGEuc3Vic3RyKDAsIDIpKTtcXG4gICAgICAgICAgICBjb25zdCBpbmRleEIgPSBzb3J0T3JkZXIuaW5kZXhPZihiLnN1YnN0cigwLCAyKSk7XFxuICAgICAgICAgICAgcmV0dXJuIGluZGV4QSAtIGluZGV4QjtcXG4gICAgICAgIH0pXFxuICAgICAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKCcoJyArIHNvcnRPcmRlci5qb2luKCd8JykgKyAnKScpO1xcbiAgICAgICAgYXJyYXkgPSBhcnJheS5maWx0ZXIoZnVuY3Rpb24oaXRlbSkge1xcbiAgICAgICAgICAgIHJldHVybiByZWdleC50ZXN0KGl0ZW0pO1xcbiAgICAgICAgfSk7XFxuICAgICAgICBhcnJheSA9IGFycmF5Lm1hcCh4ID0+IHtcXG4gICAgICAgICAgICBzdHIgPSB4O1xcbiAgICAgICAgICAgIGlmICgvKOWvvOa8lHzkuLvmvJR857G75Z6LKe+8mi8udGVzdChzdHIpKSB7XFxuICAgICAgICAgICAgICAgIHN0ciA9IHN0ci5zcGxpdCgnLycpLm1hcCgodmFsLCBpbmRleCkgPT4gKGluZGV4ID09PSAwID8gJycgOiAnJykgKyB2YWwpLnNsaWNlKDAsIDUpLmpvaW4oJyAnKS5yZXBsYWNlKC8gJC8sICcnKS5yZXBsYWNlKC9cXFxcKC4qP1xcXFwpL2csICcnKTtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIHN0clxcbiAgICAgICAgfSlcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgLy90aXRsZTogdGhpcy5zbWFsbChhcnJheVswXSArICdcXFxcbicgKyBhcnJheS5zbGljZSgxLCAyKS5qb2luKCdcXFxcbicpLCcjRkY3RjAwJyksLy/mqZjoibJcXG4gICAgICAgICAgICAgdGl0bGU6IHRoaXMuc21hbGwocGRmaChodG1sLCcudmlkZW8taW5mby1hdXgmJlRleHQnKSAsJyNGRjhDMDAnKSwvL+apmOiJslxcbiAgICAgICAgICAgIC8vZGVzYzogdGhpcy5zbWFsbChhcnJheS5zbGljZSgzKS5qb2luKCdcXFxcbicpLCcjRkZENzAwJyksLy/pu4ToibJcXG4gICAgICAgICAgICAgIGRlc2M6IHRoaXMuc21hbGwoYXJyYXlbMF0gKyAnXFxcXG4nICsgYXJyYXkuc2xpY2UoMSwgMykuam9pbignXFxcXG4nKSwneWVsbG93JyksLy/ok53oibJcXG4gICAgICAgICAgICBwaWNfdXJsOiBpbWcgKyAnQFJlZmVyZXI9JyxcXG4gICAgICAgICAgICB1cmw6IE1ZX1VSTCxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLFxcbiAgICAgICAgfSlcXG4gICAgICAgIGlmIChvYmouZGVzYyAhPSB1bmRlZmluZWQpIHtcXG4gICAgICAgICAgICB0aGlzLnNldERlc2Mob2JqLmRlc2MpO1xcbiAgICAgICAgfVxcbiAgICB9LFxcblxcblxcbi8v57q/6LevXFxuICAgIHNldFRhYnM6IGZ1bmN0aW9uKHRhYnMsIHZhcmksIHNoc29ydCkge1xcbiAgICAgICAgc2hzb3J0ID0gc2hzb3J0ID8gc2hzb3J0IDogJ3Noc29ydCc7XFxuICAgICAgICB2YXIgdGl0bGUgPSAoZ2V0TXlWYXIoc2hzb3J0LCAnMCcpID09ICcxJykgPyAnPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAjRkYwMDAwXFxcIj7pgIbluo88L3NwYW4+PC9iPicgOiAnPGI+PHNwYW4gc3R5bGU9XFxcImNvbG9yOiAjMWFhZDE5XFxcIj7mraPluo88L3NwYW4+PC9iPidcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IHZhcmkgKyAnOicgKyB0aXRsZSxcXG4gICAgICAgICAgICBkZXNjOiAn5YWxJyArIHRhYnMubGVuZ3RoICsgJ+adoee6v+i3rycsXFxuICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChzaHNvcnQpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IGNvbmYgPSBnZXRNeVZhcihzaHNvcnQsICcwJyk7XFxuICAgICAgICAgICAgICAgIGlmIChjb25mID09ICcxJykge1xcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoc2hzb3J0LCAnMCcpO1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoc2hzb3J0LCAnMScpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKClcXG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WIh+aNouaOkuW6j+aIkOWKnydcXG4gICAgICAgICAgICB9LCBzaHNvcnQpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnYXZhdGFyJyxcXG4gICAgICAgICAgICBwaWNfdXJsOiAnaHR0cHM6Ly9pbWcubWtuYWNnLnRvcDo0NTgvR0lGIDIwMjEtMDQtMjMgMjMtMzAtMzEuZ2lmJyxcXG4gICAgICAgIH0pXFxuICAgICAgICB2YXIg5oqY5Y+gID0gJ+KAnOKAnOKAneKAnTxiPifCoCArIMKgJ+KYtycuZm9udGNvbG9yKFxcXCIjRDNEM0QzXFxcIik7XFxuICAgICAgICB2YXIg5bGV5byAID0gJ+KAnOKAnOKAneKAnTxiPifCoCArIMKgJ+KYsCcuZm9udGNvbG9yKFxcXCIjRkZBNTAwXFxcIik7XFxuICAgICAgICB2YXIgZm9sZG5hbWUgPSB2YXJpICsgJ2ZvbGQnO1xcbiAgICAgICAgdmFyIGZvbGQgPSBnZXRNeVZhcihmb2xkbmFtZSwgJzEnKTtcXG5cXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IMKgZm9sZCA9PT0gwqAnMCfCoCA/IMKgwqDmipjlj6DCoCA6IMKg5bGV5byALFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXFxuICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChmb2xkbmFtZSwgZm9sZCkgPT4ge1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcihmb2xkbmFtZSwgwqBmb2xkwqAgPT09IMKgJzEnwqAgPyDCoCcwJ8KgIDogwqAnMScpO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8vJyArIChmb2xkwqAgPT09IMKgJzEnwqAgPyDCoCfmlLbotbcnwqAgOiDCoCflsZXlvIAnKTtcXG4gICAgICAgICAgICB9LCBmb2xkbmFtZSwgZm9sZClcXG4gICAgICAgIH0pXFxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRhYnMubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICB2YXIgdXJsID0gXFxcIiNub0xvYWRpbmcjQGxhenlSdWxlPS5qczpwdXRNeVZhcignXFxcIiArIHZhcmkgKyBcXFwiJywgJ1xcXCIgKyBpICsgXFxcIicpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip/vvIEnOycjbm9IaXN0b3J5I2hpa2VyOi8vZW1wdHknXFxcIjtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogZ2V0TXlWYXIodmFyaSwgJzAnKSA9PSBpID8gJ+KAnOKAnCcgKyB0YWJzW2ldICsgJ+KAneKAnScgOiB0YWJzW2ldLFxcbiAgICAgICAgICAgICAgICB1cmw6IHVybCxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICAgICAgICAgIH0pXFxuICAgICAgICB9XFxuICAgIH0sXFxuICAgIHNldExpc3RzOiBmdW5jdGlvbihsaXN0cywgaW5kZXgsIHNoc29ydCkge1xcbiAgICAgICAgc2hzb3J0ID0gc2hzb3J0ID8gc2hzb3J0IDogJ3Noc29ydCc7XFxuICAgICAgICB2YXIgbGlzdCA9IGxpc3RzW2luZGV4XTtcXG4gICAgICAgIGlmIChnZXRNeVZhcihzaHNvcnQpID09ICcxJyAmJiBsaXN0cy5sZW5ndGggPiAwKSB7XFxuICAgICAgICAgICAgdmFyIGxpc3QgPSBsaXN0c1tpbmRleF0ucmV2ZXJzZSgpO1xcbiAgICAgICAgfVxcbiAgICAgICAgZm9yICh2YXIgaiBpbiBsaXN0KSB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGxpc3Rbal0udGl0bGUsXFxuICAgICAgICAgICAgICAgIHVybDogbGlzdFtqXS51cmwsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBsaXN0Lmxlbmd0aCA+IDMgPyAndGV4dF80JyA6ICd0ZXh0XzInLFxcbiAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGxpc3Rbal0udXJsLnJlcGxhY2UoL0BsYXp5UnVsZVtcXFxcc1xcXFxTXSsvZywgJycpLFxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuICAgIH0sXFxuICAgIGdldFRhYnM6IGZ1bmN0aW9uKHBhcnNlKSB7XFxuICAgICAgICB2YXIgdGFicyA9IFtdO1xcbiAgICAgICAgdmFyIGFydHMgPSBwZGZhKGh0bWwsIHBhcnNlLue6v+i3ryk7XFxuICAgICAgICB2YXIg57q/6Lev5ZCNID0gcGFyc2Uu57q/6Lev5ZCN56ewO1xcbiAgICAgICAgdmFyIOabv+aNouWHveaVsCA9ICcnO1xcbiAgICAgICAgaWYgKHBhcnNlLue6v+i3r+WQjeensC5pbmNsdWRlcygnQEAnKSkge1xcbiAgICAgICAgICAgIOe6v+i3r+WQjSA9IHBhcnNlLue6v+i3r+WQjeensC5zcGxpdCgnQEAnKVswXTtcXG4gICAgICAgICAgICDmm7/mjaLlh73mlbAgPSBwYXJzZS7nur/ot6/lkI3np7Auc3BsaXQoJ0BAJylbMV07XFxuICAgICAgICB9XFxuICAgICAgICBmb3IgKHZhciBpIGluIGFydHMpIHtcXG4gICAgICAgICAgICB2YXIgbGluZW5hbWUgPSBwZGZoKGFydHNbaV0sIOe6v+i3r+WQjSk7XFxuICAgICAgICAgICAgaWYgKOabv+aNouWHveaVsCAhPSAnJykge1xcbiAgICAgICAgICAgICAgICBsaW5lbmFtZSA9IGV2YWwoJ2xpbmVuYW1lJyArIOabv+aNouWHveaVsCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHRhYnMucHVzaChsaW5lbmFtZSk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICByZXR1cm4gdGFicztcXG4gICAgfSxcXG4gICAgZ2V0TGlzdHM6IGZ1bmN0aW9uKHBhcnNlKSB7XFxuICAgICAgICB2YXIgbGlzdHMgPSBbXTtcXG4gICAgICAgIHZhciBjb250cyA9IHBkZmEoaHRtbCwgcGFyc2Uu6YCJ6ZuGKTtcXG4gICAgICAgIHZhciDpgInpm4blkI3np7AgPSBwYXJzZS7pgInpm4blkI3np7AgPyBwYXJzZS7pgInpm4blkI3np7AgOiAnYSYmVGV4dCc7XFxuICAgICAgICB2YXIg6YCJ6ZuG6ZO+5o6lID0gcGFyc2Uu6YCJ6ZuG6ZO+5o6lID8gcGFyc2Uu6YCJ6ZuG6ZO+5o6lIDogJ2EmJmhyZWYnO1xcbiAgICAgICAgdmFyIOino+aekCA9IHBhcnNlLuino+aekCA/IHBhcnNlLuino+aekCA6ICcnO1xcbiAgICAgICAgdmFyIHRlbXAgPSBbXTtcXG4gICAgICAgIGZvciAodmFyIGkgaW4gY29udHMpIHtcXG4gICAgICAgICAgICBpZiAocGFyc2Uu6YCJ6ZuG5YiX6KGoICE9IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICBsaXN0cy5wdXNoKHBkZmEoY29udHNbaV0sIHBhcnNlLumAiembhuWIl+ihqCkubWFwKHggPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogcGRmaCh4LCDpgInpm4blkI3np7ApLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogcGQoeCwg6YCJ6ZuG6ZO+5o6lKSArIOino+aekCxcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSkpXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdmFyIHVybCA9IHBkKGNvbnRzW2ldLCDpgInpm4bpk77mjqUpICsgJ0BsYXp5UnVsZT0uYnRuLWRvd24mJmhyZWYnO1xcbiAgICAgICAgICAgICAgICBpZiAoIemAiembhumTvuaOpS5pbmNsdWRlcygnaHJlZicpKSB7XFxuICAgICAgICAgICAgICAgICAgICB1cmwgPSBwZGZoKGNvbnRzW2ldLCDpgInpm4bpk77mjqUpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHRlbXAucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogcGRmaChjb250c1tpXSwg6YCJ6ZuG5ZCN56ewKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogdXJsICsg6Kej5p6QLFxcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIGxldCDlgJLluo8gPSBwYXJzZS7lgJLluo8gPyBwYXJzZS7lgJLluo8gOiBmYWxzZTtcXG4gICAgICAgIHZhciByZXN1bHRzID0gbGlzdHMubGVuZ3RoID8gbGlzdHMgOiBbdGVtcF07XFxuICAgICAgICBpZiAo5YCS5bqPKSB7XFxuICAgICAgICAgICAgcmVzdWx0cyA9IHJlc3VsdHMubWFwKHggPT4geC5yZXZlcnNlKCkpO1xcbiAgICAgICAgfVxcbiAgICAgICAgcmV0dXJuIHJlc3VsdHM7XFxuICAgIH0sXFxuICAgIGdldFBsYXllcnM6IGZ1bmN0aW9uKHBhcnNlKSB7XFxuICAgICAgICB0aGlzLmNsb3NlKHBhcnNlLm1hcCh4ID0+IHgu57G75Z6LKSwgcGFyc2UubGVuZ3RoKTtcXG4gICAgICAgIHBhcnNlLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcXG4gICAgICAgICAgICB2YXIgdGFicyA9IFsn5Li757q/J107XFxuICAgICAgICAgICAgaWYgKGl0ZW0u57q/6LevICE9IHVuZGVmaW5lZCkge1xcbiAgICAgICAgICAgICAgICB0YWJzID0gdGhpcy5nZXRUYWJzKGl0ZW0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB2YXIgbGlzdHMgPSB0aGlzLmdldExpc3RzKGl0ZW0pO1xcbiAgICAgICAgICAgIGlmIChsaXN0cy5zb21lKHggPT4geC5sZW5ndGggPiAwKSkge1xcbiAgICAgICAgICAgICAgICB0aGlzLnNldFRhYnModGFicywgaXRlbS7nsbvlnossICdwbGF5bGlzdF8nICsgaSk7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIGlmIChnZXRNeVZhcihpdGVtLuexu+WeiyArICdmb2xkJywgJzEnKSA9PSAnMScpIHtcXG4gICAgICAgICAgICAgICAgdGhpcy5zZXRMaXN0cyhsaXN0cywgZ2V0TXlWYXIoaXRlbS7nsbvlnossICcwJyksICdwbGF5bGlzdF8nICsgaSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnYmxhbmtfYmxvY2snXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgIH0pXFxuICAgIH0sXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6YeP5a2Q5LiT55So6Kej5p6QXCIsXCJwYXRoXCI6XCJsYXp5bFwiLFwicnVsZVwiOlwidmFyIGxhenkgPSAkKCcnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShyZXF1ZXN0KGlucHV0KS5tYXRjaCgvciBwbGF5ZXJfLio/PSguKj8pPC8pWzFdKVxcbiAgICB2YXIgdXJsID0gaHRtbC51cmxcXG4gICAgaWYgKGh0bWwuZW5jcnlwdCA9PSAnMScpIHtcXG4gICAgICAgIHVybCA9IHVuZXNjYXBlKHVybCk7XFxuICAgIH0gZWxzZSBpZiAoaHRtbC5lbmNyeXB0ID09ICcyJykge1xcbiAgICAgICAgdXJsID0gdW5lc2NhcGUoYmFzZTY0RGVjb2RlKHVybCkpO1xcbiAgICB9XFxuICAgIGlmICgvbTN1OHxtcDR8Zmx2Ly50ZXN0KHVybCkpIHtcXG4gICAgICAgaWYgKC92aXB8aGQvLnRlc3QodXJsKSkge1xcclxcbiAgICAgICAgICAgZXZhbFByaXZhdGVKUygnVHVTSmRwblphcVhHUnZ2T0ZSUiszUzdlWlVqZUMxQ2ZmRmJIaG9vMGU1K2FaN0thdjlLWlZac2Zrd0trVUZmNHd6a1RyaW80akFSSDZad1RYcFJsSDNrSTQzcldDVFU0UGRZYW0xNXBQWWlxNWNXMEg2Z1VYaEpXN3RtSnR5TEtkamUxS2FwQklHdldhWEkwV21vSG9NRUZCVi9NQWljbVBncHlBSlpqc2M1RW12ZGgxbjcyV1BQaXloWU5Db01uWjlKcFA2YUVzV1FFbVFNY0FqUHhnczZVTXZzTy9QT3c1Q2NyNzlzSnppY3N0L0xsM0lPajVNK1B2cUtyVGQ2MTQ3VkdQRXp0anNVZUV1ZEFTelRjbis5NUM5VmcxdXdVdmQ5ejB3NXFzUGJvUWg1b1poVHlzNFJRRXpCR0lxdWxRTUFBUVk0SUZrYW5XWDk1RUlOWkRYNTBtQWlPU0d5SWQwNkhzcHJBZWwvZmg3d3lNWGRtZXUrUzE1WG5jTzdVdXVqTU9tR2dTQUVOL1NzYzJlemt4bEd2cGR5aGJsNHA0RGFRdWcvbnJnc3doWmo3NS9NNTNzS1lYMnpSZ09TVDdDTWpWLytwUEpkMUtQOTM0dXUvVnNCUVVHNjltV04rS2FGV2hLbndCUGhWOXFkcUd6L0xTSm5GeEl2UThrQngnKVxcbiAgICAgICAgICAgcmV0dXJuIHUgKyBcXFwiP3VybD1cXFwiICsgYmFzZTY0RW5jb2RlKHVybCkgKyBcXFwiIy5tM3U4XFxcIjtcXHJcXG4gICAgICAgIH1cXHJcXG4gICAgICAgIHJldHVybiB1cmxcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHNob3dMb2FkaW5nKFxcXCLlt7LlvIDlkK/lvLrlipvll4XmjqLvvIzor7fnqI3lgJlcXFwiKVxcbmxldCBwbGF5VXJsID0gaW5wdXRcXG5sZXQgcmVzdWx0PSQocGxheVVybCkueDVMYXp5KCgpID0+IHtcXG4gICAgdmFyIHVybHMgPSBfZ2V0VXJscygpXFxuICAgIGZvciAodmFyIGkgaW4gdXJscykge1xcbiAgICAgICAgICBpZiAoIXVybHNbaV0ubWF0Y2goL3VybD0vKSYmdXJsc1tpXS5tYXRjaCgvbXA0fG0zdTh8b2JqLykpIHtcXG5cXG4gICAgICAgICAgICBmeV9icmlkZ2VfYXBwLmxvZyh1cmxzW2ldKVxcbiAgICAgICAgICAgIHJldHVybiBmeV9icmlkZ2VfYXBwLmNsZWFyTTN1OEFkKHVybHNbaV0pKycjaXNWaWRlbz10cnVlIydcXG4gICAgICAgIH1cXG4gICAgICB9XFxuICAgICB9KTtcXG4gICByZXR1cm4gcmVzdWx0XFxuICB9XFxufSlcIn1dIiwiaWNvbiI6Imh0dHBzOi8vMTAwLm12c2t5Lnh5ei91cGxvYWQvbXhjbXMvMjAyMzAzMzAtMS82MjMyOWIyMGU2NmJiOTBiNjA5ZTU5NjY0M2E5N2ZhYy5wbmciLCJwcm94eSI6IiJ9
Add Comment
Please, Sign In to add comment