Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@聚影外挂@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi6IGa5b2x5aSW5oyCIiwiYXV0aG9yIjoi6YGT6ZW/IiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjIiwidmVyc2lvbiI6MTEsImNvbF90eXBlIjoibW92aWVfM19tYXJxdWVlIiwiY2xhc3NfbmFtZSI6IiIsInR5cGUiOiJ0b29sIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6XG4gICAgdmFyIGQ9W107XG5sZXQgamtwYXRoPSdoaWtlcjovL2ZpbGVzLy9ydWxlcy9TcmMvSnV5aW5nL2ppZWtvdS5qc29uJztcbmxldCBqeHBhdGg9J2hpa2VyOi8vZmlsZXMvL3J1bGVzL1NyYy9KdXlpbmcvbXlqaWV4aS5qc29uJztcbmxldCBqa3M9SlNPTi5wYXJzZShmZXRjaChqa3BhdGgpfHwnW10nKTtcbmxldCBqeHM9SlNPTi5wYXJzZShmZXRjaChqeHBhdGgpfHwnW10nKTtcbmxldCBleHBhbmQgPSBbJ3hwYXRoJywnYml1Yml1J107XG5sZXQgYXBpamtzID0gamtzLmZpbHRlcihpdD0+IWV4cGFuZC5pbmNsdWRlcyhpdC50eXBlKSk7XG5kLnB1c2goe1xuICAgIHRpdGxlOifmnKzlnLDlhbHorqHogZrlvbHotYTmupDmjqXlj6PmlbA6JythcGlqa3MubGVuZ3RoKycvJytqa3MubGVuZ3RoLFxuICAgIGRlc2M6J+iBmuW9seengeacieino+aekOaVsDonK2p4cy5sZW5ndGgsXG4gICAgY29sX3R5cGU6J3RleHRfMScsXG4gICAgdXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGprcGF0aCk9PntcbiAgICAgICAgbGV0IHN0YXR1cyA9IGZldGNoKCdoaWtlcjovL2hvbWVASlNPTue8lui+keWZqCcpO1xuICAgICAgICBsZXQgaGFzSnNvbkVkaXRvciA9IChzdGF0dXMgJiYgc3RhdHVzICE9PSAnbnVsbCcpO1xuICAgICAgICBpZighaGFzSnNvbkVkaXRvcil7XG4gICAgICAgICAgICByZXR1cm4gJ2VkaXRGaWxlOi8vJytqa3BhdGg7XG4gICAgICAgIH1lbHNle1xuICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL3BhZ2UvaW50ZXJmYWNlI25vSGlzdG9yeSMjbm9SZWNvcmRIaXN0b3J5Iz9ydWxlPUpTT07nvJbovpHlmagmSnNvbj0nK2Jhc2U2NEVuY29kZShqa3BhdGgpO1xuICAgICAgICB9XG4gICAgfSxqa3BhdGgpXG59KTtcbmNvbnN0IHtjb2xvciwgc21hbGx9ID0gJC5yZXF1aXJlKFwiaGlrZXI6Ly9wYWdlL3V0aWxpeT9ydWxlPemBk+mVv+S7k+W6k1Byb1wiKTtcbmQucHVzaCh7XG4gICAgdGl0bGU6J+S4gOmUruWOu+mHjScsXG4gICAgY29sX3R5cGU6J2ljb25fMicsXG4gICAgcGljX3VybDonaHR0cHM6Ly9sYW5tZWlndW9qaWFuZy5jb20vdHViaWFvL21lc3N5LzEwLnN2ZycsXG4gICAgdXJsOiQoJ+WOn+eQhuaYr+agueaNruaOpeWPo+mHjOeahHVybOS9nOS4uuWUr+S4gGlk5L+d55WZ56ys5LiA5p2h6K6w5b2VLOWPr+WOu+mZpOi1hOa6kOaOpeWPo+WSjOino+aekOaOpeWPo+OAguatpOaTjeS9nOS4jeWPr+mAhu+8jOaYr+WQpue7p+e7rT8nKS5jb25maXJtKChqa3MsamtwYXRoLGp4cyxqeHBhdGgpPT57XG4gICAgICAgIGxldCBuZXdKa3MgPSBbXTtcbiAgICAgICAgbGV0IG5ld0p4cyA9IFtdO1xuICAgICAgICBqa3MuZm9yRWFjaCgoaXQpPT57XG4gICAgICAgICAgICBpZihuZXdKa3MuZmluZEluZGV4KGl0cz0+KGl0cy51cmx8fCcnKS50cmltKCkuaW5jbHVkZXMoKGl0LnVybHx8JycpLnRyaW0oKSkpPT09LTEpe1xuICAgICAgICAgICAgICAgIGl0LnVybCA9IChpdC51cmx8fCcnKS50cmltKCk7XG4gICAgICAgICAgICAgICAgbmV3SmtzLnB1c2goaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAganhzLmZvckVhY2goKGl0KT0+e1xuICAgICAgICAgICAgaWYobmV3SnhzLmZpbmRJbmRleChpdHM9PihpdHMucGFyc2V8fCcnKS50cmltKCkuaW5jbHVkZXMoKGl0LnBhcnNlfHwnJykudHJpbSgpKSk9PT0tMSl7XG4gICAgICAgICAgICAgICAgaXQucGFyc2UgPSAoaXQucGFyc2V8fCcnKS50cmltKCk7XG4gICAgICAgICAgICAgICAgbmV3SnhzLnB1c2goaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgbGV0IGRlbGNudCA9IGprcy5sZW5ndGggLSBuZXdKa3MubGVuZ3RoO1xuICAgICAgICBsZXQgZGVsY250MiA9IGp4cy5sZW5ndGggLSBuZXdKeHMubGVuZ3RoO1xuICAgICAgICBpZihkZWxjbnQgPiAwIHx8IGRlbGNudDIgPiAwKXtcbiAgICAgICAgICAgIHdyaXRlRmlsZShqa3BhdGgsSlNPTi5zdHJpbmdpZnkobmV3SmtzKSk7XG4gICAgICAgICAgICB3cml0ZUZpbGUoanhwYXRoLEpTT04uc3RyaW5naWZ5KG5ld0p4cykpO1xuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuIGB0b2FzdDovL+WOu+mHjeaIkOWKnyzlhbHorqHljrvph40ke2RlbGNudH3kuKrotYTmupDmjqXlj6MsJHtkZWxjbnQyfeS4quino+aekOaOpeWPo1xcbuWJqeS9mSR7bmV3SmtzLmxlbmd0aH3kuKrotYTmupDmjqXlj6MsJHtuZXdKeHMubGVuZ3RofeS4quino+aekOaOpeWPo2BcbiAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5b6I5qOS77yM5rKh5pyJ6YeN5aSN55qE5o6l5Y+jISdcbiAgICAgICAgfVxuXG4gICAgfSxqa3MsamtwYXRoLGp4cyxqeHBhdGgpLFxufSk7XG5kLnB1c2goe1xuICAgIHRpdGxlOifotoXml7borr7nva46JytnZXRNeVZhcigndGltZW91dCcsJzUwMDAnKSxcbiAgICB1cmw6JChnZXRNeVZhcigndGltZW91dCcsJzUwMDAnKSwn6K+36L6T5YWl6LaF5pe25q+r56eS5pW05pWwJykuaW5wdXQoKCk9PntcbiAgICAgICAgaWYoIU51bWJlcihpbnB1dCkpe1xuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+i+k+WFpeacieivrydcbiAgICAgICAgfVxuICAgICAgICBwdXRNeVZhcigndGltZW91dCcsTnVtYmVyKGlucHV0KSsnJyk7XG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcbiAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suS/neWtmCdcbiAgICB9KSxcbiAgICBwaWNfdXJsOidodHRwczovL2xhbm1laWd1b2ppYW5nLmNvbS90dWJpYW8vbWVzc3kvMTIuc3ZnJyxcbiAgICBjb2xfdHlwZTonaWNvbl8yJ1xufSk7XG5sZXQgZHhfdGVzdCA9ICfinaTvuI/mjqXlj6PlpJrpgInmtYvor5UnO1xuZC5wdXNoKHtcbiAgICB0aXRsZTpkeF90ZXN0LFxuICAgIGNvbF90eXBlOid0ZXh0X2NlbnRlcl8xJyxcbiAgICB1cmw6JCgnaGlrZXI6Ly9lbXB0eSNub1JlY29yZEhpc3RvcnkjI25vSGlzdG9yeSMnKS5ydWxlKChkeF90ZXN0LGprcGF0aCxjb2xvcik9PntcbiAgICAgICAgc2V0UGFnZVRpdGxlKGR4X3Rlc3QpO1xuICAgICAgICBhZGRMaXN0ZW5lcignb25DbG9zZScsICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpOy8vXG4gICAgICAgIH0pKTtcbiAgICAgICAgbGV0IGQ9W107XG4gICAgICAgIGxldCBqa3M9SlNPTi5wYXJzZShmZXRjaChqa3BhdGgpfHwnW10nKTtcbiAgICAgICAgbGV0IGV4cGFuZCA9IFsneHBhdGgnLCdiaXViaXUnXTtcbiAgICAgICAgbGV0IGp4cyA9IGprcy5maWx0ZXIoaXQ9PiFleHBhbmQuaW5jbHVkZXMoaXQudHlwZSkpO1xuICAgICAgICAvLyBsZXQganhzID0gamtzLmZpbHRlcihpdD0+IWV4cGFuZC5pbmNsdWRlcyhpdC50eXBlKSkubWFwKGl0PT5pdC5uYW1lKTtcbiAgICAgICAgbGV0IGRhdGEgPSBzdG9yYWdlMC5nZXRNeVZhcignanhfc2VsZWN0ZWQnKXx8W107XG4gICAgICAgIGxldCBkeF9maWx0ZXIgPSBnZXRJdGVtKCdkeF9maWx0ZXInLCflhajpg6gnKTtcbiAgICAgICAgaWYoZHhfZmlsdGVyID09PSAn5bey6YCJJyl7XG4gICAgICAgICAgICBqeHMgPSBqeHMuZmlsdGVyKGl0PT5kYXRhLmluY2x1ZGVzKGl0LnVybCkpO1xuICAgICAgICB9ZWxzZSBpZihkeF9maWx0ZXI9PT0gJ+acqumAiScpe1xuICAgICAgICAgICAganhzID0ganhzLmZpbHRlcihpdD0+IWRhdGEuaW5jbHVkZXMoaXQudXJsKSk7XG4gICAgICAgIH1cbiAgICAgICAgZD1qeHMubWFwKChpdCk9PntcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdGl0bGU6KEFycmF5LmlzQXJyYXkoZGF0YSkmJmRhdGEuaW5jbHVkZXMoaXQudXJsKSk/Y29sb3IoaXQubmFtZSwnIzEyYjY2OCcpOml0Lm5hbWUsXG4gICAgICAgICAgICAgICAgLy8gdXJsOid0b2FzdDovL+WKn+iDveW8gOWPkeS4rScsXG4gICAgICAgICAgICAgICAgdXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGl0LGNvbG9yKT0+e1xuICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHN0b3JhZ2UwLmdldE15VmFyKCdqeF9zZWxlY3RlZCcpO1xuICAgICAgICAgICAgICAgICAgICBpZihBcnJheS5pc0FycmF5KGRhdGEpKXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRhdGEuaW5jbHVkZXMoaXQudXJsKSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCfljIXlkKs6JytpdC51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEuc3BsaWNlKGRhdGEuaW5kZXhPZihpdC51cmwpLDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5wdXNoKGl0LnVybClcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnB1dE15VmFyKCdqeF9zZWxlY3RlZCcsIGRhdGEpXG4gICAgICAgICAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZTAucHV0TXlWYXIoJ2p4X3NlbGVjdGVkJywgW2l0LnVybF0pXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYoc3RvcmFnZTAuZ2V0TXlWYXIoJ2p4X3NlbGVjdGVkJykuaW5jbHVkZXMoaXQudXJsKSl7XG4gICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVJdGVtKGl0LnVybCx7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6Y29sb3IoaXQubmFtZSwnIzEyYjY2OCcpXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9ZWxzZXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZUl0ZW0oaXQudXJsLHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTppdC5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICB9LGl0LGNvbG9yKSxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTondGV4dF8zJyxcbiAgICAgICAgICAgICAgICBkZXNjOkpTT04uc3RyaW5naWZ5KGl0KSxcbiAgICAgICAgICAgICAgICBleHRyYTp7XG4gICAgICAgICAgICAgICAgICAgIGlkOml0LnVybCxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgICBsZXQgb3A9W107XG4gICAgICAgIG9wLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6J+WFqOmAiScsXG4gICAgICAgICAgICB1cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoanhzLGNvbG9yKT0+e1xuICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnB1dE15VmFyKCdqeF9zZWxlY3RlZCcsIGp4cy5tYXAoaXQ9Pml0LnVybCkpO1xuICAgICAgICAgICAgICAgIGp4cy5mb3JFYWNoKGl0PT57XG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUl0ZW0oe3RpdGxlOiBjb2xvcihpdC5uYW1lLCcjMTJiNjY4JyksIGV4dHJhOiB7aWQ6IGl0LnVybH19KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICB9LGp4cyxjb2xvciksXG4gICAgICAgICAgICBjb2xfdHlwZTonZmxleF9idXR0b24nXG4gICAgICAgIH0pO1xuICAgICAgICBvcC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiflhajkuI3pgIknLFxuICAgICAgICAgICAgdXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGp4cyk9PntcbiAgICAgICAgICAgICAgICBzdG9yYWdlMC5wdXRNeVZhcignanhfc2VsZWN0ZWQnLCBbXSk7XG4gICAgICAgICAgICAgICAganhzLmZvckVhY2goaXQ9PntcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlSXRlbSh7dGl0bGU6IGl0Lm5hbWUsIGV4dHJhOiB7aWQ6IGl0LnVybH19KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICB9LGp4cyksXG4gICAgICAgICAgICBjb2xfdHlwZTonZmxleF9idXR0b24nXG4gICAgICAgIH0pO1xuICAgICAgICBvcC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiflj43pgIknLFxuICAgICAgICAgICAgdXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGp4cyxjb2xvcik9PntcbiAgICAgICAgICAgICAgICBsZXQgb2xkU2VsID0gc3RvcmFnZTAuZ2V0TXlWYXIoJ2p4X3NlbGVjdGVkJywgW10pO1xuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGdldERpZmZlcmVudERhdGEoYXJyQSwgYXJyQikge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXJyQS5jb25jYXQoYXJyQikuZmlsdGVyKGZ1bmN0aW9uICh2LCBpLCBhcnIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhcnIuaW5kZXhPZih2KSA9PT0gYXJyLmxhc3RJbmRleE9mKHYpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGp4U2VsID0ganhzLm1hcChpdD0+aXQudXJsKTtcbiAgICAgICAgICAgICAgICBsZXQgbmV3U2VsID0gZ2V0RGlmZmVyZW50RGF0YShqeFNlbCxvbGRTZWwpO1xuICAgICAgICAgICAgICAgIC8vIGxvZyhuZXdTZWwpO1xuICAgICAgICAgICAgICAgIHN0b3JhZ2UwLnB1dE15VmFyKCdqeF9zZWxlY3RlZCcsIG5ld1NlbCk7XG4gICAgICAgICAgICAgICAgbmV3U2VsLmZvckVhY2goaXQ9PntcbiAgICAgICAgICAgICAgICAgICAgbGV0IHQgPSBqeHMuZmlsdGVyKGl0cz0+aXRzLnVybD09PWl0KVswXTtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlSXRlbShpdCx7dGl0bGU6IGNvbG9yKHQubmFtZSwnIzEyYjY2OCcpfSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZUl0ZW0oe3RpdGxlOiBjb2xvcihqeHMuZmlsdGVyKGl0cz0+aXRzLnVybD09PWl0KVswXS50aXRsZSwnIzEyYjY2OCcpLCBleHRyYToge2lkOiBpdH19KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBvbGRTZWwuZm9yRWFjaChpdD0+e1xuICAgICAgICAgICAgICAgICAgICBsZXQgdCA9IGp4cy5maWx0ZXIoaXRzPT5pdHMudXJsPT09aXQpWzBdO1xuICAgICAgICAgICAgICAgICAgICB1cGRhdGVJdGVtKGl0LHt0aXRsZTogdC5uYW1lfSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIHVwZGF0ZUl0ZW0oe3RpdGxlOiBqeHMuZmlsdGVyKGl0cz0+aXRzLnVybD09PWl0KVswXS50aXRsZSwgZXh0cmE6IHtpZDogaXR9fSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgfSxqeHMsY29sb3IpLFxuICAgICAgICAgICAgY29sX3R5cGU6J2ZsZXhfYnV0dG9uJ1xuICAgICAgICB9KTtcbiAgICAgICAgb3AucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTon5pCc57Si6K+NJyxcbiAgICAgICAgICAgIHVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpPT57XG4gICAgICAgICAgICAgICAgcmV0dXJuICQoZ2V0TXlWYXIoJ3NrZXknLCfmiJHnmoQnKSwn5b2T5YmN5pCc57Si6K+NJykuaW5wdXQoKCk9PntcbiAgICAgICAgICAgICAgICAgICAgaWYoaW5wdXQpe1xuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3NrZXknLGlucHV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY29sX3R5cGU6J2ZsZXhfYnV0dG9uJ1xuICAgICAgICB9KTtcbiAgICAgICAgb3AucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTon5rWL6K+VJyxcbiAgICAgICAgICAgIHVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpPT57XG4gICAgICAgICAgICAgICAgbGV0IHNlbCA9IHN0b3JhZ2UwLmdldE15VmFyKCdqeF9zZWxlY3RlZCcsIFtdKTtcbiAgICAgICAgICAgICAgICAvLyBsb2coc2VsKTtcbiAgICAgICAgICAgICAgICBpZihzZWwubGVuZ3RoIDwgMSl7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/llaXpg73msqHpgInvvIzmtYvor5XkuKrpuKHmr5t+J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gJCgn56Gu6K6k5rWL6K+V5bey6YCJ5oup55qEOicrc2VsWzBdKyfnrYknK3NlbC5sZW5ndGgrJ+adoeaOpeWPoz8nKS5jb25maXJtKChzZWwpPT57XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAkKCdoaWtlcjovL2VtcHR5JykucnVsZSgoc2VsKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgYWRkTGlzdGVuZXIoJ29uQ2xvc2UnLCAkLnRvU3RyaW5nKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhck15VmFyKCdqeF9zZWxlY3RlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTsvL1xuICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGprcGF0aD0naGlrZXI6Ly9maWxlcy8vcnVsZXMvU3JjL0p1eWluZy9qaWVrb3UuanNvbic7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgamtzPUpTT04ucGFyc2UoZmV0Y2goamtwYXRoKXx8J1tdJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBpamtzID0gamtzLmZpbHRlcihpdD0+c2VsLmluY2x1ZGVzKGl0LnVybCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNrZXkgPSBnZXRNeVZhcignc2tleScsJ+aIkeeahCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9nKGFwaWprcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZD1bXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6J+WIoOmZpOWdj+eahOaOpeWPoycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6J3RleHRfMicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiQoKS5sYXp5UnVsZSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXJyID0gKGZpbmRJdGVtc0J5Q2xzKCdmYWlsZWQnKXx8W10pLm1hcCgoaXQpPT57cmV0dXJuIHtpZDppdC5leHRyYS5pZCxuYW1lOml0LmV4dHJhLm5hbWUsdXJsOml0LmV4dHJhLnVybH19KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYXJyLmxlbmd0aDwxKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lvojmo5Is5b2T5YmN5rWL6K+V57uT5p6c55yL6LW35p2l5rKh5pyJ5Z2P5o6J55qE5o6l5Y+jJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0aXBzID0gYXJyLm1hcChpdD0+aXQubmFtZSkuam9pbignLCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2coYXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJ+W9k+WJjea1i+ivlee7k+aenOWFseiuoScrYXJyLmxlbmd0aCsn5Liq55aR5Ly85aSx5pWI55qE55qE6LWE5rqQ5o6l5Y+jLOaYr+WQpuWIoOmZpD9cXG4nK3RpcHMpLmNvbmZpcm0oKGFycik9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBqa3BhdGg9J2hpa2VyOi8vZmlsZXMvL3J1bGVzL1NyYy9KdXlpbmcvamlla291Lmpzb24nO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFwaWprcyA9IEpTT04ucGFyc2UoZmV0Y2goamtwYXRoKSB8fCAnW10nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkZWxlZCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRlbHVybHMgPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyci5mb3JFYWNoKChpdCk9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+WIoOmZpOaOpeWPozonK2l0Lm5hbWUrJyxpZDonK2l0LmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxlZC5wdXNoKGl0Lm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbHVybHMucHVzaChpdC51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcGlqa3MgPSBhcGlqa3MuZmlsdGVyKGl0cz0+IWRlbHVybHMuaW5jbHVkZXMoaXRzLnVybCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNlbCA9IHN0b3JhZ2UwLmdldE15VmFyKCdqeF9zZWxlY3RlZCcsIFtdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbCA9IHNlbC5maWx0ZXIoaXRzPT4hZGVsdXJscy5pbmNsdWRlcyhpdHMpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZUl0ZW1CeUNscygnZmFpbGVkJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdG9yYWdlMC5wdXRNeVZhcignanhfc2VsZWN0ZWQnLCBzZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKGprcGF0aCxKU09OLnN0cmluZ2lmeShhcGlqa3MpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LliKDpmaQ6JytkZWxlZC5qb2luKCcsJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxhcnIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGQucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6J+afpeeci+Wdj+ibiycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6J3RleHRfMicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiQoKS5sYXp5UnVsZSgoKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXJyID0gKGZpbmRJdGVtc0J5Q2xzKCdmYWlsZWQnKXx8W10pLm1hcCgoaXQpPT57cmV0dXJuIHtpZDppdC5pZCxuYW1lOml0LmV4dHJhLm5hbWUsdXJsOml0LmV4dHJhLnVybH19KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoYXJyLmxlbmd0aDwxKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lvojmo5Is5b2T5YmN5rWL6K+V57uT5p6c55yL6LW35p2l5rKh5pyJ5Z2P5o6J55qE5o6l5Y+jJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKCdoaWtlcjovL2VtcHR5I25vSGlzdG9yeSMjbm9SZWNvcmRIaXN0b3J5IycpLnJ1bGUoKGFycik9PntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFBhZ2VUaXRsZSgn5Z2P6JuL5YiX6KGoJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTon5YWx6K6hJythcnIubGVuZ3RoKyfkuKrlnY/om4snLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDonaGlrZXI6Ly9lbXB0eScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6J3RleHRfMSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTpKU09OLnN0cmluZ2lmeShhcnIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOidsb25nX3RleHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sYXJyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuICd0b2FzdDovL+aaguaXoOWKn+iDvSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTpg5rWL6K+V5pCc57Si4oCc4oCc4oCd4oCdPGZvbnQgY29sb3I9XCJyZWRcIj4ke3NrZXl9PC9mb250PiDnu5PmnpzlpoLkuIs6YCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTondGV4dF8xJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6J3RvYXN0Oi8v55yL5LiL6Z2i55qEIScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE6e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDoncmVzdWx0J1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGQpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBnZXRLZXkoKXsvL+iOt+WPluaJgOmcgOeahGtleeWAvO+8jOW9k+WJjeaciOaXpeavlOWmgjAzMzBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGltZV9zdHIgPSAkLmRhdGVGb3JtYXQobmV3IERhdGUoKSxcInl5eXktTU0tZGQgSEg6bW06c3NcIik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRtcCA9IHRpbWVfc3RyLnNwbGl0KCcgJylbMF0uc3BsaXQoJy0nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdG1wWzFdICsgdG1wWzJdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBpc0lwdHYobGluayl7Ly/liKTmlq3mmK/lkKbkuLpJcHR2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoL2lwdHZ8Q2hlbmdjaGVuZy8udGVzdChsaW5rKSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzcGVjaWFsID0gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHYuaGZ5czgudmlwL2FwaS5waHAvU250di92b2QnLC8v6buR6ZSLXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkc3h0di50di5jaS9hcGkucGhwL2RzeC92b2QnLC8v5aSn5biI5YWEXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IobGV0IHVybCBvZiBzcGVjaWFsKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobGluay5pbmNsdWRlcyh1cmwpKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY291bnQgPSBhcGlqa3MubGVuZ3RoOyAvL+iuvue9ruS7u+WKoeaVsOmHj1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCflvIDlkK/lpJrku7vliqHmtYvor5Us5Lu75Yqh5pWw6YePOicrY291bnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRhc2sgPSBmdW5jdGlvbihvYmopIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc3VybCA9IG9iai5zdXJsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1YSA9IG9iai51YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZih1YT09PSdQQ19VQScpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YSA9IFBDX1VBO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIGlmKHVhPT09J01PQklMRV9VQScpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YSA9IE1PQklMRV9VQTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGh0bWwgPSBmZXRjaChzdXJsLHtoZWFkZXJzOntcIlVzZXItQWdlbnRcIjp1YSx9LHRpbWVvdXQ6TnVtYmVyKGdldE15VmFyKCd0aW1lb3V0JywnNTAwMCcpKX0pfHwnJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY2xzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBobSA9IGh0bWwuc2xpY2UoMCwyMDApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZXQgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIganNvbiA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCA9IEpTT04ucGFyc2UoaHRtbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscyA9ICdzdWNjZXNzJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9nKG9iaik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG9iai52MSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc29uID0gcmV0LmRhdGEubGlzdDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYob2JqLnYyfHxvYmouaXB0dil7Ly92MuWSjGlwdHbpg73mmK9kYXRhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc29uID0gcmV0LmRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9nKCdjbXPmiJbogIVhcHAnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb24gPSByZXQubGlzdDsvL2Ntc+WSjGFwcOmDveaYr2h0bWwubGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKEFycmF5LmlzQXJyYXkoanNvbikpey8v5pWw5o2u5Y+v6IO95piv5LiqW3t9XVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbiA9IGpzb25bMF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXQgPSBqc29uO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihvYmoubmFtZS5pbmNsdWRlcygn55m95LqRJykpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9nKCfnmb3kupHlj5blgLzkuLo6Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2cocmV0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1jYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2cob2JqLm5hbWUrJ+ino+aekOmUmeivrzonK2UubWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNscyA9ICdmYWlsZWQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7cmV0OnJldCxzdXJsOnN1cmwsaG06aG0sY2xzOmNsc31cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcGFyc2VSZXQgPSBbXTsgLy/op6PmnpDnu5PmnpzliJfooahcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0YXNrcyA9IGFwaWprcy5tYXAoKGl0LGlkZXgpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGUgPSBpdC50eXBlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5rID0gaXQudXJsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzdXJsID0gbGluaysnP3dkPScrc2tleSsnJnBnPTEmYWM9bGlzdCc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYodHlwZSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxID0gdHlwZT09PSd2MSc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYyID0gdHlwZT09PSd2Mic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcCA9IHR5cGU9PT0nYXBwJ3x8djI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwdHYgPSB0eXBlPT09J2lwdHYnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNle1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2MSA9IGxpbmsuaW5jbHVkZXMoJy52b2QnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdjIgPSBsaW5rLmluY2x1ZGVzKCdhcHAucGhwJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcCA9IGxpbmsuaW5jbHVkZXMoJy9hcHAnKXx8djI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwdHYgPSBpc0lwdHYobGluayk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHYxKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9nKGAke29iai5uYW1lfSA9PiB2MWApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJsID0gc3VybC5yZXBsYWNlKCdwZz0nLCdsaW1pdD0yMCZwYWdlPScpKycma2V5PScrZ2V0S2V5KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoYXBwKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gbG9nKGAke29iai5uYW1lfSA9PiBhcHBgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VybCA9IGxpbmsrJy9zZWFyY2g/cGc9MSZ0ZXh0PScrc2tleSsnJnRva2VuPSc7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoaXB0dil7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxvZyhgJHtvYmoubmFtZX0gPT4gaXB0dmApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzdXJsID0gbGluaysnLz9hYz1saXN0JnBnPTEmem09Jytza2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJsID0gbGluaysnLz9hYz1saXN0JnBnPTEmd2Q9Jytza2V5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC5zdXJsID0gc3VybDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdC52MSA9IHYxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0LnYyID0gdjI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXQuYXBwID0gYXBwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0LmlwdHYgPSBpcHR2O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhgJHtpdC5uYW1lfSDmkJzntKLpk77mjqU6ICR7c3VybH0sdWE6JHtpdC51YX0s57G75Z6LOiR7dHlwZX1gKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jOiB0YXNrLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbTogaXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBcInRhc2tcIitpZGV4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBzb3J0QnlLZXkoYXJyYXksIGtleSwgb3JkZXIpIHsvL+WvueixoeaVsOe7hOaMieafkOS4qumUruWAvOaOkuW6j1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhcnJheS5zb3J0KGZ1bmN0aW9uKGEsIGIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHggPSBwYXJzZUludChhW2tleV0ubWF0Y2goLyhcXGQrKS8pWzFdKTsvL+S/ruWkjeWkp+S6jjEw5Ye66Zeu6aKYXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB5ID0gcGFyc2VJbnQoYltrZXldLm1hdGNoKC8oXFxkKykvKVsxXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChvcmRlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgoeCA8IHkpID8gLTEgOiAoKHggPiB5KSA/IDEgOiAwKSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoKHggPCB5KSA/ICgoeCA+IHkpID8gMSA6IDApIDogLTEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgYmUodGFza3Mse1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmM6IGZ1bmN0aW9uKG9iaiwgaWQsIGVycm9yLHJldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsb2coXCLnm5HlkKzliLDku7vliqFcIiArIGlkKyflt7Lnu5PmnZ8sZXJyb3I6JytlcnJvcisnLHJldDonK3JldCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBobSA9IChyZXQuaG18fCcnKS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBobTEgPSBobS5zbGljZSgwLDEwKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I9ZXJyb3J8fCcnO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXQgPSB0YXNrcy5maWx0ZXIoaXQ9Pml0LmlkPT09aWQpWzBdLnBhcmFtO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0YSA9IHJldC5yZXR8fHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZVJldC5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhc2s6aWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhOmRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJsOnJldC5zdXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3I6ZXJyb3IsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdDppdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQgLT0gMTsgLy/lrozmiJDkuobku7vliqHvvIzku7vliqHmlbDph48tMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhvYmopO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBpZiAoY291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBzaG93TG9hZGluZyhcIuWKoOi9veS4rTpcIiArIGNvdW50KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgaGlkZUxvYWRpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEl0ZW1BZnRlcigncmVzdWx0Jyx7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB0aXRsZTppdC5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ZGF0YS52b2RfbmFtZXx8ZGF0YS50aXRsZSsnXFxuJytg4oCY4oCY4oCZ4oCZPHNtYWxsPjxmb250IGNvbG9yPSNmMTNiNjZhPiR7ZGF0YS52b2RfcmVtYXJrc3x8ZGF0YS5zdGF0ZX08L2ZvbnQ+PC9zbWFsbD5gLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljX3VybDpkYXRhLnZvZF9waWN8fGRhdGEucGljLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzpgJHtobTF9XFxu4oCY4oCY4oCZ4oCZPGZvbnQgY29sb3I9I2YxM2I2NmE+JHtpdC5uYW1lfTwvZm9udD4gKCR7aXQudHlwZX0pYCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVybDppdC51cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyB1cmw6cmV0LnN1cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoc3VybCxuYW1lLHR5cGUsaWQsdXJsKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKFsn6K6/6ZeuJywn5Yig6ZmkJ10sMiwn6K+36YCJ5oup5omn6KGM55qE5pON5L2cJykuc2VsZWN0KChzdXJsLG5hbWUsdHlwZSx1cmwsaWQpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlucHV0PT09J+iuv+mXricpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHN1cmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2UgaWYoaW5wdXQ9PT0n5Yig6ZmkJyl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+WIoOmZpOaOpeWPozonK25hbWUrJygnK3R5cGUrJyksaWQ6JytpZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVJdGVtKFtpZF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGprcGF0aD0naGlrZXI6Ly9maWxlcy8vcnVsZXMvU3JjL0p1eWluZy9qaWVrb3UuanNvbic7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgamtzPUpTT04ucGFyc2UoZmV0Y2goamtwYXRoKXx8J1tdJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYXBpamtzID0gamtzLmZpbHRlcihpdD0+IShpdC51cmw9PT11cmwpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZShqa3BhdGgsSlNPTi5zdHJpbmdpZnkoYXBpamtzKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBjbGVhck15VmFyKCdqeF9zZWxlY3RlZCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNlbCA9IHN0b3JhZ2UwLmdldE15VmFyKCdqeF9zZWxlY3RlZCcsIFtdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpZGV4ID0gc2VsLmZpbmRJbmRleChpdD0+aXQgPT09IHVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihpZGV4Pi0xKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWwuc3BsaWNlKGlkZXgsMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZTAucHV0TXlWYXIoJ2p4X3NlbGVjdGVkJywgc2VsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LliKDpmaQ6JytuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LHN1cmwsbmFtZSx0eXBlLHVybCxpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0scmV0LnN1cmwsaXQubmFtZSxpdC50eXBlLGlkLGl0LnVybCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBkZXNjOnJldC5odG1sLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6J21vdmllXzFfdmVydGljYWxfcGljJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhOntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZDppZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1YTppdC51YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBobTpobSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbHM6cmV0LmNscyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6aXQudXJsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6aXQubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbTogey8v5Lyg5Yiw55uR5ZCs5Ye95pWw55qEb2Jq5Y+C5pWw6YeMXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhpOiBcImNjY1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pOy8v5omn6KGM5aSa5Lu75YqhXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2xvZyhcIuWkmuS7u+WKoeaJp+ihjOe7k+aenOaVsDpcIitwYXJzZVJldC5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgLypcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlUmV0PXNvcnRCeUtleShwYXJzZVJldCwndGFzaycsdHJ1ZSk7Ly/ljYfluo/mjpLliJdcblxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VSZXQuZm9yRWFjaCgoaXQpPT57XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkSXRlbUFmdGVyKCdyZXN1bHQnLHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6aXQuZGF0YS5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6aXQuZGF0YS51cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6aXQudGFzayxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6J21vdmVfMydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgfSxzZWwpXG4gICAgICAgICAgICAgICAgfSxzZWwpXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNvbF90eXBlOidmbGV4X2J1dHRvbidcbiAgICAgICAgfSk7XG4gICAgICAgIG9wLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6J+S/ruaUuScsXG4gICAgICAgICAgICBjb2xfdHlwZTonZmxleF9idXR0b24nLFxuICAgICAgICAgICAgdXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCk9PntcbiAgICAgICAgICAgICAgICBsZXQgc2VsID0gc3RvcmFnZTAuZ2V0TXlWYXIoJ2p4X3NlbGVjdGVkJywgW10pO1xuICAgICAgICAgICAgICAgIGlmKHNlbC5sZW5ndGggPCAxKXtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WVpemDveayoemAie+8jOS/ruaUueS4qum4oeavm34nXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmKHNlbC5sZW5ndGggIT09MSApe1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v6IGa5b2x5a6Y5pa55pyq5o+Q5L6b5om56YeP5L+u5pS55o6l5Y+j77yM55uu5YmN5Y+q5YWB6K645Y2V5Liq5L+u5pS577yM5bC95oOF6LCF6KejfidcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IGRhdGEgPSBKU09OLnBhcnNlKGZpbmRJdGVtKHNlbFswXSkuZGVzY3x8J3t9Jyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICQoJ2hpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IyNub0hpc3RvcnkjJykucnVsZSgoZGF0YSk9PntcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZShjb25maWcu5L6d6LWWLm1hdGNoKC9odHRwcy4qXFwvLylbMF0gKyBcIlNyY0p5U2V0LmpzXCIpO1xuICAgICAgICAgICAgICAgICAgICBqaWVrb3UoXCJ1cGRhdGVcIiwgZGF0YSk7XG4gICAgICAgICAgICAgICAgfSxkYXRhKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgICAgIG9wLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6J+WIoOmZpCcsXG4gICAgICAgICAgICB1cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKT0+e1xuICAgICAgICAgICAgICAgIGxldCBzZWwgPSBzdG9yYWdlMC5nZXRNeVZhcignanhfc2VsZWN0ZWQnLCBbXSk7XG4gICAgICAgICAgICAgICAgaWYoc2VsLmxlbmd0aCA8IDEpe1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5ZWl6YO95rKh6YCJ77yM5Yig6Zmk5Liq6bih5q+bfidcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuICQoJ+ehruiupOWIoOmZpOW3sumAieaLqeeahDonK3NlbFswXSsn562JJytzZWwubGVuZ3RoKyfmnaHmjqXlj6M/JykuY29uZmlybSgoc2VsKT0+e1xuICAgICAgICAgICAgICAgICAgICBsZXQgamtwYXRoPSdoaWtlcjovL2ZpbGVzLy9ydWxlcy9TcmMvSnV5aW5nL2ppZWtvdS5qc29uJztcbiAgICAgICAgICAgICAgICAgICAgbGV0IGprcz1KU09OLnBhcnNlKGZldGNoKGprcGF0aCl8fCdbXScpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgZXhwYW5kID0gWyd4cGF0aCcsJ2JpdWJpdSddO1xuICAgICAgICAgICAgICAgICAgICAvLyBsZXQgYXBpamtzID0gamtzLmZpbHRlcihpdD0+IWV4cGFuZC5pbmNsdWRlcyhpdC50eXBlKSk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBhcGlqa3MgPSBqa3MuZmlsdGVyKGl0PT4hc2VsLmluY2x1ZGVzKGl0LnVybCkpO1xuICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoamtwYXRoLCAkLnN0cmluZ2lmeShhcGlqa3MpKTtcbiAgICAgICAgICAgICAgICAgICAgc3RvcmFnZTAucHV0TXlWYXIoJ2p4X3NlbGVjdGVkJywgW10pOy8v5Yig6Zmk5a6M5LqG5riF56m66YCJ5Lit6aG555uuXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwidG9hc3Q6Ly/lt7LlsIbjgJZcIiArIHNlbFswXSArIFwi44CX562JXCIrc2VsLmxlbmd0aCtcIuadoeaOpeWPo+WIoOmZpFwiO1xuICAgICAgICAgICAgICAgIH0sc2VsKVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb2xfdHlwZTonZmxleF9idXR0b24nXG4gICAgICAgIH0pO1xuICAgICAgICBvcC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOifmk43kvZx8562b6YCJICcrY29sb3IoanhzLmxlbmd0aCwnI2ZmNzAwMCcpLFxuICAgICAgICAgICAgdXJsOid0b2FzdDovL+WJjemdouaMiemSruaYr+aTjeS9nO+8jOWQjumdouaMiemSruaYr+etm+mAiScsXG4gICAgICAgICAgICBjb2xfdHlwZTonc2Nyb2xsX2J1dHRvbidcbiAgICAgICAgfSk7XG4gICAgICAgIG9wLnB1c2goe1xuICAgICAgICAgICAgdGl0bGU6ZHhfZmlsdGVyPT09J+WFqOmDqCc/Y29sb3IoJ+WFqOmDqCcsJyMxMmI2NjgnKTon5YWo6YOoJyxcbiAgICAgICAgICAgIHVybDokKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpPT57XG4gICAgICAgICAgICAgICAgc2V0SXRlbSgnZHhfZmlsdGVyJywn5YWo6YOoJyk7XG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY29sX3R5cGU6J3Njcm9sbF9idXR0b24nXG4gICAgICAgIH0pO1xuICAgICAgICBvcC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOmR4X2ZpbHRlcj09PSflt7LpgIknP2NvbG9yKCflt7LpgIknLCcjMTJiNjY4Jyk6J+W3sumAiScsXG4gICAgICAgICAgICB1cmw6JCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoKT0+e1xuICAgICAgICAgICAgICAgIHNldEl0ZW0oJ2R4X2ZpbHRlcicsJ+W3sumAiScpO1xuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNvbF90eXBlOidzY3JvbGxfYnV0dG9uJ1xuICAgICAgICB9KTtcbiAgICAgICAgb3AucHVzaCh7XG4gICAgICAgICAgICB0aXRsZTpkeF9maWx0ZXI9PT0n5pyq6YCJJz9jb2xvcign5pyq6YCJJywnIzEyYjY2OCcpOifmnKrpgIknLFxuICAgICAgICAgICAgdXJsOiQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCk9PntcbiAgICAgICAgICAgICAgICBzZXRJdGVtKCdkeF9maWx0ZXInLCfmnKrpgIknKTtcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjb2xfdHlwZTonc2Nyb2xsX2J1dHRvbidcbiAgICAgICAgfSk7XG4gICAgICAgIGQ9b3AuY29uY2F0KGQpO1xuICAgICAgICBzZXRSZXN1bHQoZCk7XG4gICAgfSxkeF90ZXN0LGprcGF0aCxjb2xvcilcbn0pO1xuc2V0UmVzdWx0KGQpOyIsInNlYXJjaF91cmwiOiIiLCJncm91cCI6IuiBmuezu+WIlyIsInNlYXJjaEZpbmQiOiIiLCJkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwiZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiJpbml0Q29uZmlnKHtcbiAgICDkvp3otZY6IFwiaHR0cHM6Ly9naXRjb2RlLm5ldC9zcmM0ODU5Nzk2Mi9oay8tL3Jhdy9tYXN0ZXIvU3JjSnV5aW5nLmpzXCJcbn0pO1xuLy9ieS7luIXiiJpg5Lq65omNIOiBmuW9seaooeadv++8gSIsInBhZ2VzIjoiW10iLCJpY29uIjoiaHR0cHM6Ly9sYW5tZWlndW9qaWFuZy5jb20vdHViaWFvL21lc3N5LzM2LnN2ZyIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment