Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥活着@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImdtdE1vZGlmaWVkXCI6MCxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWwj+exuy0tLeWkmuWxglwiLFwicGF0aFwiOlwieGlhb2xlaVwiLFwicnVsZVwiOlwianM6XFxuICAgIGxldCBpbml0X2NhdGUgPSBbXTtcXG5mb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHtcXG4gICAgaW5pdF9jYXRlLnB1c2goJzAnKTtcXG59XFxuXFxuaWYgKHBhcnNlSW50KE1ZX1BBR0UpID09PSAxKSB7XFxuICAgIGNvbnN0IGNhdGVfdGVtcF9qc29uID0gZ2V0TXlWYXIoJ3QnLCBKU09OLnN0cmluZ2lmeShpbml0X2NhdGUpKTtcXG4gICAgY29uc3QgY2F0ZV90ZW1wID0gSlNPTi5wYXJzZShjYXRlX3RlbXBfanNvbik7XFxuICAgIGNvbnN0IGNsYXNzbGlzdCA9IHBkZmEoaHRtbCwg5bCP57G7KTtcXG4gICAgLy8gbG9nKCdzdWJsaXN0ICBpcyAgICAnICsgc3VibGlzdClcXG4gICAgY2xhc3NsaXN0LmZvckVhY2goKHNtYWxsY2xhc3MsIGtleSkgPT4ge1xcbiAgICAgICAgbGV0IHN1Ymxpc3QgPSBwZGZhKHNtYWxsY2xhc3MsIFxcXCJib2R5JiZhXFxcIik7XFxuICAgICAgICBsZXQgaiA9IDA7XFxuICAgICAgICBzdWJsaXN0LmZvckVhY2goKGl0LCBqKSA9PiB7XFxuICAgICAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGoudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wW2tleV0gPyBcXFwi4oCc4oCcXFxcIiArIHBkZmgoaXQsIFxcXCJhJiZUZXh0XFxcIikgKyBcXFwi4oCd4oCdXFxcIiA6IHBkZmgoaXQsIFxcXCJhJiZUZXh0XFxcIiksXFxuICAgICAgICAgICAgICAgIHVybDogcGQoaXQsIFxcXCJhJiZocmVmXFxcIikgKyAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChwYXJhbXMpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBuZXdfY2F0ZSA9IFtdO1xcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNhdGVfdGVtcC5mb3JFYWNoKChjYXRlLCBpbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld19jYXRlLnB1c2goaW5kZXggPT09IDAgPyBwYXJhbXMua2V5LnRvU3RyaW5nKCkgOiAnMCcpO1xcbiAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCd0JywgSlNPTi5zdHJpbmdpZnkobmV3X2NhdGUpKTtcXG5cXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcy5jYXRlX3RlbXBbcGFyYW1zLmtleV0gPSBwYXJhbXMuai50b1N0cmluZygpO1xcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3QnLCBKU09OLnN0cmluZ2lmeShwYXJhbXMuY2F0ZV90ZW1wKSk7XFxuICAgICAgICAgICAgICAgICAgICAvL3B1dE15VmFyKCdzdWJjbGFzc0luZGV4Jywgaik7XFxuICAgICAgICAgICAgICAgICAgICAvLyBwdXRWYXIoTVlfUlVMRS50aXRsZSwgSlNPTi5zdHJpbmdpZnkoaikpO1xcbiAgICAgICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1JVTEUudXJsLCBpbnB1dCk7XFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICAgICAgfSwge1xcblxcbiAgICAgICAgICAgICAgICAgICAgY2F0ZV90ZW1wOiBjYXRlX3RlbXAsXFxuICAgICAgICAgICAgICAgICAgICBqOiBqLFxcbiAgICAgICAgICAgICAgICAgICAga2V5OiBrZXksXFxuICAgICAgICAgICAgICAgICAgICBwYWdlOiBNWV9QQUdFLFxcbiAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJmbGV4X2J1dHRvblxcXCIsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9KVxcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcImJsYW5rX2Jsb2NrXFxcIlxcbiAgICAgICAgfSk7XFxuICAgIH0pXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5bCP57G75qyhLS0t5aSa5bGCXCIsXCJwYXRoXCI6XCJ4aWFvbGVpY2lcIixcInJ1bGVcIjpcImpzOlxcbmxldCBpbml0X2NhdGUxID0gW107XFxuZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7XFxuICAgIGluaXRfY2F0ZTEucHVzaCgnMCcpO1xcbn1cXG5cXG5pZiAoTVlfUEFHRSA9PT0gMSkge1xcbiAgICBjb25zdCBjYXRlX3RlbXBfanNvbjEgPSBnZXRNeVZhcigndDEnLCBKU09OLnN0cmluZ2lmeShpbml0X2NhdGUxKSk7XFxuICAgIGNvbnN0IGNhdGVfdGVtcDEgPSBKU09OLnBhcnNlKGNhdGVfdGVtcF9qc29uMSk7XFxuICAgIGNvbnN0IGNsYXNzbGlzdDEgPSBwZGZhKGh0bWwsIOWwj+exu+asoSk7XFxuICAgIC8vIGxvZygnc3VibGlzdCAgaXMgICAgJyArIHN1Ymxpc3QpXFxuICAgIGNsYXNzbGlzdDEuZm9yRWFjaCgoc21hbGxjbGFzczEsIGtleTEpID0+IHtcXG4gICAgICAgIGxldCBzdWJsaXN0MSA9IHBkZmEoc21hbGxjbGFzczEsIFxcXCJib2R5JiZhXFxcIik7XFxuICAgICAgICBsZXQgaiA9IDA7XFxuICAgICAgICBzdWJsaXN0MS5mb3JFYWNoKChpdCwgamopID0+IHtcXG4gICAgICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgICAgICB0aXRsZTogamoudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wMVtrZXkxXSA/IFxcXCLigJzigJxcXFwiICsgcGRmaChpdCwgXFxcImEmJlRleHRcXFwiKSArIFxcXCLigJ3igJ1cXFwiIDogcGRmaChpdCwgXFxcImEmJlRleHRcXFwiKSxcXG4gICAgICAgICAgICAgICAgdXJsOiBwZChpdCwgXFxcImEmJmhyZWZcXFwiKSArICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtczEpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBuZXdfY2F0ZTEgPSBbXTtcXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtczEuY2F0ZV90ZW1wMS5mb3JFYWNoKChjYXRlLCBpbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld19jYXRlMS5wdXNoKGluZGV4ID09PSAwID8gcGFyYW1zMS5rZXkxLnRvU3RyaW5nKCkgOiAnMCcpO1xcbiAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCd0MScsIEpTT04uc3RyaW5naWZ5KG5ld19jYXRlMSkpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zMS5jYXRlX3RlbXAxW3BhcmFtczEua2V5MV0gPSBwYXJhbXMxLmpqLnRvU3RyaW5nKCk7XFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigndDEnLCBKU09OLnN0cmluZ2lmeShwYXJhbXMxLmNhdGVfdGVtcDEpKTtcXG4gICAgICAgICAgICAgICAgICAgIC8vcHV0TXlWYXIoJ3N1YmNsYXNzSW5kZXgnLCBqaik7XFxuICAgICAgICAgICAgICAgICAgICAvLyBwdXRWYXIoTVlfUlVMRS50aXRsZSwgSlNPTi5zdHJpbmdpZnkoamopKTtcXG4gICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnVybCwgaW5wdXQpO1xcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSc7XFxuICAgICAgICAgICAgICAgIH0sIHtcXG5cXG4gICAgICAgICAgICAgICAgICAgIGNhdGVfdGVtcDE6IGNhdGVfdGVtcDEsXFxuICAgICAgICAgICAgICAgICAgICBqajogamosXFxuICAgICAgICAgICAgICAgICAgICBrZXkxOiBrZXkxLFxcbiAgICAgICAgICAgICAgICAgICAgcGFnZTogTVlfUEFHRSxcXG4gICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9KVxcbiAgICAgICAgZC5wdXNoKHtcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcImJsYW5rX2Jsb2NrXFxcIlxcbiAgICAgICAgfSk7XFxuICAgIH0pXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5aSn57G7LS0tLeS4gOihjFwiLFwicGF0aFwiOlwiZGFsZWlcIixcInJ1bGVcIjpcImpzOlxcblxcbmxldCBjbGFzc0luZGV4ID0gTnVtYmVyKGdldE15VmFyKFxcXCJjbGFzc0luZGV4XFxcIiwgXFxcIjBcXFwiKSk7XFxuaWYgKE1ZX1BBR0UgPT0gMSkge1xcbiAgICBjb25zdCBsaXN0ID0gcGRmYShodG1sLCDlpKfnsbspO1xcbiAgICAvLyAgICBsb2coJ2xpc3QgIGlzICAgICcgKyBsaXN0KVxcbiAgICBsZXQgaSA9IDA7XFxuICAgIGxpc3QuZm9yRWFjaCgoaXQsIGkpID0+IHtcXG4gICAgICAgIGQucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGNsYXNzSW5kZXggPT09IGkgPyBcXFwi4oCc4oCcXFxcIiArICfor7vkuabpppbpobUnICsgXFxcIuKAneKAnVxcXCIgOiAn6K+75Lmm6aaW6aG1JyxcXG4gICAgICAgICAgICB1cmw6IHBkKGl0LCBcXFwiYSYmaHJlZlxcXCIpICsgJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoaSkgPT4ge1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcignY2xhc3NJbmRleCcsIGkpO1xcbiAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS50aXRsZSwgSlNPTi5zdHJpbmdpZnkoaSkpO1xcbiAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS51cmwsIGlucHV0KTtcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXG4gICAgICAgICAgICB9LCBpKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgfSlcXG4gICAgfSlcXG4gICAvKiBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IFxcXCJiaWdfYmxhbmtfYmxvY2tcXFwiLFxcbiAgICB9KVxcbiovXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwibGF6eVwiLFwicGF0aFwiOlwibGF6eVwiLFwicnVsZVwiOlwidmFyIGxhenkgPSAkKCcnKS5sYXp5UnVsZSgoKSA9PiB7XFxuICAgIHRyeSB7XFxuICAgICAgICBcXG4gICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShmZXRjaENvZGVCeVdlYlZpZXcoaW5wdXQpLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxuICAgICAgICB2YXIgdXJsID0gaHRtbC51cmxcXG4gICAgICAgIGlmIChodG1sLmVuY3J5cHQgPT0gJzEnKSB7XFxuICAgICAgICAgICAgdXJsID0gdW5lc2NhcGUodXJsKTtcXG4gICAgICAgIH0gZWxzZSBpZiAoaHRtbC5lbmNyeXB0ID09ICcyJykge1xcbiAgICAgICAgICAgIHVybCA9IHVuZXNjYXBlKGJhc2U2NERlY29kZSh1cmwpKTtcXG4gICAgICAgIH1cXG4gICAgICAgIGlmICgvbTN1OHxtcDQvLnRlc3QodXJsKSkge1xcbiAgICAgICAgICAgIHJldHVybiB1cmxcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgcmV0dXJuICd2aWRlbzovLycgKyBpbnB1dFxcbiAgICAgICAgfVxcbiAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICByZXR1cm4gJ3ZpZGVvOi8vJyArIGlucHV0XFxuICAgIH1cXG59KVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi55+t6K+EXCIsXCJwYXRoXCI6XCJjb21tZW50XCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbk1ZX1VSTCA9IE1ZX1BBUkFNUy5ocmVmO1xcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiAncmljaF90ZXh0JyxcXG4gICAgdGl0bGU6J/Cfk53nn63or4QnLFxcbmV4dHJhOnsgICAgIFxcbiAgICAgICAgdGV4dFNpemU6MjIsXFxuICAgIH1cXG4gICAgfSAgLCB7XFxuY29sX3R5cGU6ICdsaW5lJyxcXG4gICAgfSk7ICAgXFxuXFxudmFyIGdldFJhbmdlQ29sb3JzID0gZnVuY3Rpb24oKSB7wqDCoMKgwqDCoMKgwqBcXG4gICAgcmV0dXJuICcjJyArICgnMDAwMDAnICsgKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAgPDwgMCkudG9TdHJpbmcoMTYpKS5zdWJzdHIoLTYpO8KgwqDCoMKgwqBcXG59XFxuY29uc3Qg5YiG57G76aKc6ImyID0gZ2V0UmFuZ2VDb2xvcnMoKVxcbmNvbnN0IOWkp+exu+WumuS9jSA9ICdib2R5JiYuQ29tbWVudHMtaGQnXFxuY29uc3Qg5ou85o6l5YiG57G7ID0gJ2JvZHkmJi50aXRsZV9saW5lJ1xcbmNvbnN0IOWwj+exu+WumuS9jSA9ICdib2R5JiZhJ1xcbmNvbnN0IOWIhuexu+agh+mimCA9ICdhJiZUZXh0J1xcbmNvbnN0IOWIhuexu+mTvuaOpSA9ICdhJiZocmVmJ1xcbk1ZX1VSTCA9IE1ZX1VSTC5yZXBsYWNlKCdoaWtlcjovL2VtcHR5IyMnLCAnJylcXG5cXG5sZXQgdHJ1ZV91cmwgPSBnZXRWYXIoTVlfUlVMRS51cmwsIE1ZX1VSTClcXG5jb25zdCBwYWdlID0gTVlfUEFHRVxcbmlmIChnZXRWYXIoTVlfUlVMRS51cmwpKSB7XFxuICAgIHRydWVfdXJsID0gdHJ1ZV91cmxcXG59XFxudmFyIGh0bWwgPSBmZXRjaCh0cnVlX3VybCwge1xcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBQQ19VQVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZHRmbD9ydWxlPeaooeadv8K3UScpKS5ydWxlKVxcblxcblxcbmNvbnN0IGNvbW1lbnQ9IHBkZmEoaHRtbCwgXFxcImJvZHkmJi5jb21tZW50LWxpc3QmJmxpXFxcIilcXG4gICAgICAgIGNvbW1lbnQuZm9yRWFjaCh4ID0+IHtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgIHRpdGxlOifigJzigJzigJ3igJ08c21hbGw+PHNwYW4+JyArcGFyc2VEb21Gb3JIdG1sKHgsICcuY29tbWVudC1pbmZvJiZhJiZUZXh0JykrJ1xcXFx0JytwYXJzZURvbUZvckh0bWwoeCwgJy5jb21tZW50LXRpbWUmJlRleHQnKSsnXFxcXHQnK3BhcnNlRG9tRm9ySHRtbCh4LCAnLmNvbW1lbnQtbG9jYXRpb24mJlRleHQnKSsnXFxcXHRcXFxcdFxcXFx0JytwYXJzZURvbUZvckh0bWwoeCwgJy5jb21tZW50LXZvdGUmJlRleHQnKSArICc8L3NwYW4+PC9zbWFsbD48L3NtYWxsPicsXFxuICAgIGltZzpwZCh4LCAnaW1nJiZzcmMnKSxcXG4gICAgdXJsOlxcXCJoaWtlcjovL2VtcHR5XFxcIixcXG4gICAgfSk7XFxuICBsZXQg55+t6K+EID0gcGFyc2VEb21Gb3JIdG1sKHgsICcuc2hvcnQmJlRleHQnKTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTog55+t6K+ELFxcbiAgICB1cmw6ICQoKS5ydWxlKCjnn63or4QpID0+IHtcXG4gICAgICAgIHNldFJlc3VsdChbe1xcbiAgICAgICAgICAgIHRpdGxlOiDnn63or4QsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxuICAgICAgICB9XSlcXG4gICAgfSwg55+t6K+EKSxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxufSk7XFxufSlcXG5zZXRSZXN1bHQoZCk7XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLotYTmupDmkJzntKJcIixcInBhdGhcIjpcInNlYXJjaHp5XCIsXCJydWxlXCI6XCIvL+i1hOa6kOaQnOe0olxcbmh0bWwgPSBnZXRSZXNDb2RlKCk7XFxubGV0IHRpdGxlID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsJ2gxJiZUZXh0Jyk7XFxuZC5wdXNoKFxcbnsgY29sX3R5cGU6ICdyaWNoX3RleHQnLFxcbiAgICB0aXRsZTon8J+UjeaQnOe0oicsXFxuICAgIGV4dHJhOntcXG4gICAgICAgIFxcbiAgICAgICAgdGV4dFNpemU6MjIsXFxuICAgIH1cXG4gICAgfSk7XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdsaW5lJyxcXG4gICAgfSlcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ3psaWJyYXJ5JyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbiAgICB1cmw6ICdoaWtlcjovL3NlYXJjaD9zPScrdGl0bGUrJyZydWxlPXpsaWJyYXJ5JyxcXG4gICAgaW1nOiAnaHR0cHM6Ly96bGlicmFyeS1zZy5zZS9mYXZpY29uLmljbydcXG4gICAgfSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICflj6/pmIUnLFxcbiAgICBjb2xfdHlwZTogJ2ljb25fNScsXFxuICAgIHVybDogJ2h0dHBzOi8va2VwdWIubmV0L3NlYXJjaC5odG1sP2tleXdvcmQ9Jyt0aXRsZSxcXG4gICAgaW1nOiAnaHR0cHM6Ly9rZXB1Yi5uZXQvZmF2aWNvbi5pY28nXFxuICAgIH0pO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn5Lqs5Lic6K+75LmmJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbiAgICB1cmw6ICdodHRwczovL20tdG9iLmpkLmNvbS9zZWFyY2hfZG9zZWFyY2g/c2VyY2g9Jyt0aXRsZSxcXG4gICAgaW1nOiAnaHR0cHM6Ly9tLXRvYi5qZC5jb20vc3RhdGljL2ltZy9sb2dvLnBuZydcXG4gICAgfSk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6ICfnhornjKvmkJzkuaYnLFxcbiAgICBjb2xfdHlwZTogJ2ljb25fNScsXFxuICAgIHVybDogXFxcImh0dHBzOi8vd3d3Lm1yc2QudG9wL3NlYXJjaC5odG1sP2tleXdvcmRzPVxcXCIrdGl0bGUsXFxuICAgIGltZzogJ2h0dHBzOi8vZ2hwcm94eS5uZXQvaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xzMTI1NzgxMDAzL2xtdHViaWFvL21haW4vc3F1YXJlLzE3Ni5wbmcnXFxuICAgIH0pO1xcblxcbmQucHVzaCh7XFxuICAgIHRpdGxlOiAn54Ot54K55Zu+5Lmm572RJyxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcbiAgICB1cmw6ICdodHRwOi8vd3d3LmhhcHB5ZG90LnRvcC8/cz0nK3RpdGxlLFxcbiAgICBpbWc6ICdodHRwczovL2docHJveHkubmV0L2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sczEyNTc4MTAwMy9sbXR1Ymlhby9tYWluL3JvdW5kZWQvMTIyLnBuZydcXG4gICAgfSlcXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWOn+aWh+aRmOW9lVwiLFwicGF0aFwiOlwiYmxvY2txdW90ZVwiLFwicnVsZVwiOlwianM6XFxuTVlfVVJMID0gTVlfUEFSQU1TLmhyZWY7IFxcbnZhciBkID1bXTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxuICAgIHRpdGxlOifwn5Od5Y6f5paH5pGY5b2VJyxcXG5leHRyYTp7ICAgICBcXG4gICAgICAgIHRleHRTaXplOjIyLFxcbiAgICB9XFxuICAgIH0gICwge1xcbmNvbF90eXBlOiAnbGluZScsXFxuICAgIH0pOyAgIFxcbnZhciBnZXRSYW5nZUNvbG9ycyA9IGZ1bmN0aW9uKCkge8KgwqDCoMKgwqDCoMKgXFxuICAgIHJldHVybiAnIycgKyAoJzAwMDAwJyArIChNYXRoLnJhbmRvbSgpICogMHgxMDAwMDAwIDw8IDApLnRvU3RyaW5nKDE2KSkuc3Vic3RyKC02KTvCoMKgwqDCoMKgXFxufVxcbmNvbnN0IOWIhuexu+minOiJsiA9IGdldFJhbmdlQ29sb3JzKClcXG5jb25zdCDlpKfnsbvlrprkvY0gPSAnYm9keSYmLnRhYidcXG4vL2NvbnN0IOaLvOaOpeWIhuexuyA9ICdib2R5JiZhJ1xcbmNvbnN0IOWwj+exu+WumuS9jSA9ICdib2R5JiZhJ1xcbmNvbnN0IOWIhuexu+agh+mimCA9ICdhJiZUZXh0J1xcbmNvbnN0IOWIhuexu+mTvuaOpSA9ICdhJiZocmVmJ1xcbk1ZX1VSTCA9IE1ZX1VSTC5yZXBsYWNlKCdoaWtlcjovL2VtcHR5IyMnLCAnJylcXG5cXG5sZXQgdHJ1ZV91cmwgPSBnZXRWYXIoTVlfUlVMRS51cmwsIE1ZX1VSTClcXG5jb25zdCBwYWdlID0gTVlfUEFHRVxcbmlmIChnZXRWYXIoTVlfUlVMRS51cmwpKSB7XFxuICAgIHRydWVfdXJsID0gdHJ1ZV91cmxcXG59XFxudmFyIGh0bWwgPSBmZXRjaCh0cnVlX3VybCwge1xcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBQQ19VQVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZHRmbD9ydWxlPeaooeadv8K3UScpKS5ydWxlKVxcblxcblxcbiAgIGNvbnN0ICBibG9ja3F1b3RlPSBwZGZhKGh0bWwsIFxcXCJib2R5JiYuYmxvY2txdW90ZS1saXN0JiZsaVxcXCIpXFxuICAgICAgICBibG9ja3F1b3RlLmZvckVhY2goeCA9PiB7XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdhdmF0YXInLFxcbiAgICB0aXRsZTonPHNtYWxsPjxzcGFuPicgKyBwYXJzZURvbUZvckh0bWwoeCwgJy5hdXRob3ItbmFtZSYmVGV4dCcpKydcXFxcdFxcXFx0JytwYXJzZURvbUZvckh0bWwoeCwgJ3NwYW4mJlRleHQnKSsnXFxcXHRcXFxcdCcrcGFyc2VEb21Gb3JIdG1sKHgsICdkYXRldGltZSYmVGV4dCcpKyAnPC9zcGFuPjxzbWFsbD4nLFxcbiAgICBpbWc6cGQoeCwgJ2ltZyYmc3JjJyksXFxuICAgIHVybDpwZCh4LCAnYSYmaHJlZicpLFxcbiAgICB9KTtcXG4gIGxldCDmkZjlvZXlhoXlrrkgPSBwYXJzZURvbUZvckh0bWwoeCwgJ2ZpZ3VyZSYmVGV4dCcpO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOuaRmOW9leWGheWuuSAsXFxuICAgIHVybDogJCgpLnJ1bGUoKOaRmOW9leWGheWuuSkgPT4ge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IOaRmOW9leWGheWuuSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCdcXG4gICAgICAgIH1dKVxcbiAgICB9LCDmkZjlvZXlhoXlrrkpLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG59KTtcXG59KVxcbnNldFJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5Lmm6K+EXCIsXCJwYXRoXCI6XCJyZXZpZXdzXCIsXCJydWxlXCI6XCJqczpcXG52YXIgZCA9IFtdO1xcbk1ZX1VSTCA9IE1ZX1BBUkFNUy5ocmVmO1xcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiAncmljaF90ZXh0JyxcXG4gICAgdGl0bGU6J/Cfk53kuabor4QnLFxcbmV4dHJhOnsgICAgIFxcbiAgICAgICAgdGV4dFNpemU6MjIsXFxuICAgIH1cXG4gICAgfSAgLCB7XFxuY29sX3R5cGU6ICdsaW5lJyxcXG4gICAgfSk7ICAgXFxuXFxudmFyIGdldFJhbmdlQ29sb3JzID0gZnVuY3Rpb24oKSB7wqDCoMKgwqDCoMKgwqBcXG4gICAgcmV0dXJuICcjJyArICgnMDAwMDAnICsgKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAgPDwgMCkudG9TdHJpbmcoMTYpKS5zdWJzdHIoLTYpO8KgwqDCoMKgwqBcXG59XFxuY29uc3Qg5YiG57G76aKc6ImyID0gZ2V0UmFuZ2VDb2xvcnMoKVxcbmNvbnN0IOWkp+exu+WumuS9jSA9ICdib2R5JiYudG9wLXRhYidcXG4vL2NvbnN0IOaLvOaOpeWIhuexuyA9ICdib2R5JiZhJ1xcbmNvbnN0IOWwj+exu+WumuS9jSA9ICdib2R5JiZhJ1xcbmNvbnN0IOWIhuexu+agh+mimCA9ICdhJiZUZXh0J1xcbmNvbnN0IOWIhuexu+mTvuaOpSA9ICdhJiZocmVmJ1xcbk1ZX1VSTCA9IE1ZX1VSTC5yZXBsYWNlKCdoaWtlcjovL2VtcHR5IyMnLCAnJylcXG5cXG5sZXQgdHJ1ZV91cmwgPSBnZXRWYXIoTVlfUlVMRS51cmwsIE1ZX1VSTClcXG5jb25zdCBwYWdlID0gTVlfUEFHRVxcbmlmIChnZXRWYXIoTVlfUlVMRS51cmwpKSB7XFxuICAgIHRydWVfdXJsID0gdHJ1ZV91cmxcXG59XFxudmFyIGh0bWwgPSBmZXRjaCh0cnVlX3VybCwge1xcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBQQ19VQVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZHRmbD9ydWxlPeaooeadv8K3UScpKS5ydWxlKVxcblxcbmNvbnN0IHJldmlld3M9IHBkZmEoaHRtbCwgXFxcImJvZHkmJi5yZXZpZXctbGlzdCYmZGl2XFxcIilcXG4gICAgICAgIHJldmlld3MuZm9yRWFjaCh4ID0+IHtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ2F2YXRhcicsXFxuICAgIHRpdGxlOnBkZmgoeCwgJy5uYW1lJlRleHQnKSsnXFxcXHQnK3BhcnNlRG9tRm9ySHRtbCh4LCAnLm1haW4tbWV0YSYmVGV4dCcpLFxcbiAgICBpbWc6cGQoeCwgJ2ltZyYmc3JjJyksXFxuICAgIHVybDpwZCh4LCAnYSYmaHJlZicpLFxcbiAgICB9KTtcXG4gZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdyaWNoX3RleHQnLFxcbiAgICB0aXRsZTpwYXJzZURvbUZvckh0bWwoeCwgJ2gyJiZUZXh0JyksXFxuICAgICAgfSk7XFxuICBsZXQg5Lmm6K+EID0gcGFyc2VEb21Gb3JIdG1sKHgsICcuc2hvcnQtY29udGVudCYmVGV4dCcpO1xcbmQucHVzaCh7XFxuICAgIHRpdGxlOifigJzigJzigJ3igJ08c21hbGw+PHNwYW4+JyArIOS5puivhCArICc8L3NwYW4+PC9zbWFsbD48L3NtYWxsPicsXFxuICAgIHVybDogJCgpLnJ1bGUoKOS5puivhCkgPT4ge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IOS5puivhCxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCdcXG4gICAgICAgIH1dKVxcbiAgICB9LCDkuabor4QpLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG59KTtcXG59KVxcbnNldFJlc3VsdChkKVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi6K+75Lmm56yU6K6wXCIsXCJwYXRoXCI6XCJhbm5vdGF0aW9uXCIsXCJydWxlXCI6XCJqczpcXG5NWV9VUkwgPSBNWV9QQVJBTVMuaHJlZjsgXFxudmFyIGQgPSBbXTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxuICAgIHRpdGxlOifwn5Od6K+75Lmm56yU6K6wJyxcXG5leHRyYTp7ICAgICBcXG4gICAgICAgIHRleHRTaXplOjIyLFxcbiAgICB9XFxuICAgIH0gICwge1xcbmNvbF90eXBlOiAnbGluZScsXFxuICAgIH0pOyAgIFxcblxcbnZhciBnZXRSYW5nZUNvbG9ycyA9IGZ1bmN0aW9uKCkge8KgwqDCoMKgwqDCoMKgXFxuICAgIHJldHVybiAnIycgKyAoJzAwMDAwJyArIChNYXRoLnJhbmRvbSgpICogMHgxMDAwMDAwIDw8IDApLnRvU3RyaW5nKDE2KSkuc3Vic3RyKC02KTvCoMKgwqDCoMKgXFxufVxcbmNvbnN0IOWIhuexu+minOiJsiA9IGdldFJhbmdlQ29sb3JzKClcXG5jb25zdCDlpKfnsbvlrprkvY0gPSAnYm9keSYmLmdyZWVuX3RhYidcXG4vL2NvbnN0IOaLvOaOpeWIhuexuyA9ICdib2R5JiZhJ1xcbmNvbnN0IOWwj+exu+WumuS9jSA9ICdib2R5JiZhJ1xcbmNvbnN0IOWIhuexu+agh+mimCA9ICdhJiZUZXh0J1xcbmNvbnN0IOWIhuexu+mTvuaOpSA9ICdhJiZocmVmJ1xcbk1ZX1VSTCA9IE1ZX1VSTC5yZXBsYWNlKCdoaWtlcjovL2VtcHR5IyMnLCAnJylcXG5cXG5sZXQgdHJ1ZV91cmwgPSBnZXRWYXIoTVlfUlVMRS51cmwsIE1ZX1VSTClcXG5jb25zdCBwYWdlID0gTVlfUEFHRVxcbmlmIChnZXRWYXIoTVlfUlVMRS51cmwpKSB7XFxuICAgIHRydWVfdXJsID0gdHJ1ZV91cmxcXG59XFxudmFyIGh0bWwgPSBmZXRjaCh0cnVlX3VybCwge1xcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBQQ19VQVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0pO1xcblxcbmV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZHRmbD9ydWxlPeaooeadv8K3UScpKS5ydWxlKVxcblxcbiAgIGNvbnN0IGJkPSBwZGZhKGh0bWwsIFxcXCJib2R5JiYuY29tbWVudHMmJmxpXFxcIilcXG4gICAgICAgIGJkLmZvckVhY2goeCA9PiB7XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdhdmF0YXInLFxcbiAgICB0aXRsZTpwYXJzZURvbUZvckh0bWwoeCwgJy51c2VyJiZ0aXRsZSYmVGV4dCcpK3BhcnNlRG9tRm9ySHRtbCh4LCAnLmFsbHN0YXI1MCYmc3BhbicpLFxcbiAgICBpbWc6cGQoeCwgJ2ltZyYmc3JjJyksXFxuICAgIHVybDpwZCh4LCAnYSYmaHJlZicpLFxcbiAgICB9KTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgIHRpdGxlOnBhcnNlRG9tRm9ySHRtbCh4LCAnLm5sc3QmJmEsMiYmVGV4dCcpLFxcbiAgICB1cmw6cGQoeCwgJ2EmJmhyZWYnKSxcXG4gICAgfSk7XFxuICBsZXQg6K+75Lmm56yU6K6wID0gcGFyc2VEb21Gb3JIdG1sKHgsICcuYWxsJiZUZXh0Jyk7XFxuZC5wdXNoKHtcXG4gICAgdGl0bGU6J+KAnOKAnOKAneKAnTxiaWc+PHNwYW4+JyAr6K+75Lmm56yU6K6wICsgJzwvc3Bhbj48L2JpZz4nLFxcbiAgICB1cmw6ICQoKS5ydWxlKCjor7vkuabnrJTorrApID0+IHtcXG4gICAgICAgIHNldFJlc3VsdChbe1xcbiAgICAgICAgICAgIHRpdGxlOiDor7vkuabnrJTorrAsXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxuICAgICAgICB9XSlcXG4gICAgfSwg6K+75Lmm56yU6K6wKSxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxufSk7XFxufSlcXG5zZXRSZXN1bHQoZClcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuS6jOe6p1wiLFwicGF0aFwiOlwiZXJqaVwiLFwicnVsZVwiOlwianM6XFxudmFyIGQgPSAgW107XFxuaHRtbCA9IGdldFJlc0NvZGUoKTtcXG5sZXQgbGlzdCA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCdib2R5JiZhJyk7XFxubGV0IHRpdGxlID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsJ2gxJiZUZXh0Jyk7XFxubGV0IGlkID0gcGRmYShodG1sLCdib2R5JiYucGFnZScpXFxubGV0IGl0ID0gcGRmaChpZCwnc2VjdGlvbiYmZGF0YS1pZCcpO1xcbi8v5LqM57qn5aS06YOo566A5LuLKOS9nOiAhe+8jOivhOWIhu+8jOWHuueJiOekvuetiSlcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLFxcbiAgICBleHRyYToge2dyYWRpZW50OiB0cnVlfSxcXG4gICAgdGl0bGU6cGFyc2VEb21Gb3JIdG1sKGh0bWwsICdoMSYmVGV4dCcpK3BhcnNlRG9tRm9ySHRtbChpZCwnc2VjdGlvbiYmZGF0YS1pZCcpKydcXFxcbicrcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcucmF0aW5nX3NlbGYmJlRleHQnKSsnXFxcXHQnKyflipvojZDmjIfmlbA6JytwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5yYXRpbmdfcGVyJiZUZXh0JyksXFxuICAgIGRlc2M6cGFyc2VEb21Gb3JIdG1sKGh0bWwsICcuc3ViamVjdCYmVGV4dCcpLFxcbiAgICBpbWc6cGFyc2VEb20oaHRtbCwgJ2ltZyYmc3JjJyksXFxuICAgIH0pO1xcbnZhciB1cmwgPU1ZX1VSTC5zcGxpdCgnIycpWzBdO1xcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiAnaWNvbl9zbWFsbF80JyxcXG4gICAgdGl0bGU6J+efreivhCcsIGltZzonaHR0cHM6Ly9naHByb3h5Lm5ldC9odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbHMxMjU3ODEwMDMvbG10dWJpYW8vbWFpbi91bmZyYW1lZC8yNjIucG5nJyxcXG4gICAgdXJsOlxcXCJoaWtlcjovL3BhZ2UvY29tbWVudFxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgaHJlZjogU3RyaW5nKCdoaWtlcjovL2VtcHR5IyMnK3VybCsnY29tbWVudHMvP3N0YXJ0PWZ5cGFnZUAtMUAqMjBAJmxpbWl0PTIwJnN0YXR1cz1QJnNvcnQ9c2NvcmUnKSxcXG4gICAgICAgIH1cXG4gICAgfSk7XFxuXFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdpY29uX3NtYWxsXzQnLFxcbiAgICB0aXRsZTon5Y6f5paH5pGY5b2VJywgaW1nOidodHRwczovL2docHJveHkubmV0L2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sczEyNTc4MTAwMy9sbXR1Ymlhby9tYWluL3VuZnJhbWVkLzM1Ni5wbmcnLFxcbiAgICB1cmw6XFxcImhpa2VyOi8vcGFnZS9ibG9ja3F1b3RlXFxcIixcXG5leHRyYToge1xcbiAgICAgICAgICAgaHJlZjogU3RyaW5nKCdoaWtlcjovL2VtcHR5IyMnK3VybCsnYmxvY2txdW90ZXM/c29ydD1zY29yZSZzdGFydD1meXBhZ2VALTFAKjIwQCcpLFxcbiAgICAgICAgfVxcbiAgICB9KTtcXG5cXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ2ljb25fc21hbGxfNCcsXFxuICAgIHRpdGxlOifor7vkuabnrJTorrAnLCBpbWc6J2h0dHBzOi8vZ2hwcm94eS5uZXQvaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xzMTI1NzgxMDAzL2xtdHViaWFvL21haW4vdW5mcmFtZWQvMzc1LnBuZycsXFxuICAgIHVybDpcXFwiaGlrZXI6Ly9wYWdlL2Fubm90YXRpb25cXFwiLFxcbmV4dHJhOiB7XFxuICAgICAgICAgICAgaHJlZjogU3RyaW5nKCdoaWtlcjovL2VtcHR5IyMnK3VybCsnYW5ub3RhdGlvbj9zb3J0PXJhbmsmc3RhcnQ9ZnlwYWdlQC0xQCoyMEAnKSxcXG4gICAgICAgIH1cXG4gICAgfSk7XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdpY29uX3NtYWxsXzQnLFxcbiAgICB0aXRsZTon5Lmm6K+EJywgaW1nOidodHRwczovL2docHJveHkubmV0L2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sczEyNTc4MTAwMy9sbXR1Ymlhby9tYWluL3VuZnJhbWVkLzIzMS5wbmcnLFxcbiAgICB1cmw6XFxcImhpa2VyOi8vcGFnZS9yZXZpZXdzXFxcIixcXG5leHRyYToge1xcbiAgICAgICAgICAgIGhyZWY6IFN0cmluZygnaGlrZXI6Ly9lbXB0eSMjJyt1cmwrJ3Jldmlld3M/dmVyc2lvbj0xJyksXFxuICAgICAgICB9XFxuICAgIH0pO1xcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaycsXFxuICAgIH0pXFxucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL3NlYXJjaHp5Jyk7XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJyxcXG4gICAgfSk7XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdyaWNoX3RleHQnLFxcbiAgICB0aXRsZTon8J+ThOS5puexjeS/oeaBrycsXFxuZXh0cmE6e1xcbiAgICAgICAgXFxuICAgICAgICB0ZXh0U2l6ZToyMixcXG4gICAgfX0sXFxuICAgIHtcXG5jb2xfdHlwZTogJ2xpbmUnLFxcbiAgICB9KTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxuICAgIHRpdGxlOnBhcnNlRG9tRm9ySHRtbChodG1sLCAnLmludHJvJiZwJiZUZXh0JyksXFxuICAgIGRlc2M6JycsXFxuICAgIH0pO1xcbmxldCDlhoXlrrnnroDku4sgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5hbGwmJlRleHQnKTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+WGheWuueeugOS7iycsXFxuICAgIHVybDogJCgpLnJ1bGUoKOWGheWuueeugOS7iykgPT4ge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IOWGheWuueeugOS7iyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXG5cXG4gICAgICAgIH1dKVxcbiAgICB9LCDlhoXlrrnnroDku4spLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMydcXG59KTtcXG5cXG5sZXQg5L2c6ICF566A5LuLID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcuaW5kZW50LDMmJlRleHQnKTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+S9nOiAheeugOS7iycsXFxuICAgIHVybDogJCgpLnJ1bGUoKOS9nOiAheeugOS7iykgPT4ge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IOS9nOiAheeugOS7iyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXG4gICAgICAgIH1dKVxcbiAgICB9LCDkvZzogIXnroDku4spLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMydcXG59KTtcXG5sZXQg5Lib5Lmm5L+h5oGvID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcuc3ViamVjdF9zaG93JiZkaXYmJlRleHQnKTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTon5Lib5Lmm5L+h5oGvJyxcXG4gICAgdXJsOiAkKCkucnVsZSgo5Lib5Lmm5L+h5oGvKSA9PiB7XFxuICAgICAgICBzZXRSZXN1bHQoW3tcXG4gICAgICAgICAgICB0aXRsZTog5Lib5Lmm5L+h5oGvLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbG9uZ190ZXh0J1xcbiAgICAgICAgfV0pXFxuICAgIH0sIOS4m+S5puS/oeaBryksXFxuICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcbiAgICB9KTtcXG5cXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnLFxcbiAgICB9KTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxuICAgIHRpdGxlOifwn5GN55u45Ly85o6o6I2QJyxcXG5leHRyYTp7ICAgICBcXG4gICAgICAgIHRleHRTaXplOjIyLFxcbiAgICB9XFxuICAgIH0gICwge1xcbmNvbF90eXBlOiAnbGluZScsXFxuICAgIH0pOyAgIFxcbmNvbnN0ICByZWM9IHBkZmEoaHRtbCwgXFxcImJvZHkmJmRsXFxcIilcXG4gIGZvciAodmFyIGkgPSA2OyBpIDwgcmVjLmxlbmd0aCYmIGk8MTU7IGkrKykge1xcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiAnbW92aWVfMycsXFxuICAgIHRpdGxlOnBkZmgocmVjW2ldLCAnZGQmJlRleHQnKSxcXG4gICAgaW1nOnBkKHJlY1tpXSwgJ2ltZyYmc3JjJyksXFxuICAgIHVybDpwZChyZWNbaV0sICdhJiZocmVmJykrJyNpbW1lcnNpdmVUaGVtZSMnKydAcnVsZT1qczp2YXIgZCA9IFtdOyQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2VyamlcXFwiKScsXFxuICAgIH0pO1xcbn1cXG5kLnB1c2goe2NvbF90eXBlOiAnYmlnX2JpZ19ibGFua19ibG9jayd9KTtcXG5zZXRSZXN1bHQoZCk7XCJ9XSxcInBhcmFtc1wiOlwie1xcXCJsb25nQ2xpY2tcXFwiOlt7XFxcImpzXFxcIjpcXFwiKFxcXFxuKHRpdGxlKSA9PiB7XFxcXG4gICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9zZWFyY2g/cz1cXFxcXFxcIiArIHRpdGxlO1xcXFxufVxcXFxuKShcXFxcXFxcIua0u+edgFxcXFxcXFwiKVxcXCIsXFxcInRpdGxlXFxcIjpcXFwi5rW36ZiU5pCc57SiXFxcIn0se1xcXCJqc1xcXCI6XFxcIihcXFxcbih0aXRsZSkgPT4ge1xcXFxuICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vc2VhcmNoP3M9XFxcXFxcXCIgKyB0aXRsZSArIFxcXFxcXFwiJnJ1bGU9QUlcXFxcXFxcXHU2NDFjXFxcXFxcXFx1NGU2NlxcXFxcXFwiO1xcXFxufVxcXFxuKShcXFxcXFxcIua0u+edgFxcXFxcXFwiKVxcXCIsXFxcInRpdGxlXFxcIjpcXFwiQUnmkJzkuaZcXFwifSx7XFxcImpzXFxcIjpcXFwiKFxcXFxuKHRpdGxlKSA9PiB7XFxcXG4gICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9zZWFyY2g/cz1cXFxcXFxcIiArIHRpdGxlICsgXFxcXFxcXCImcnVsZT1cXFxcXFxcXHU1NmZlXFxcXFxcXFx1NGU2NlxcXFxcXFxcdTk5ODZQcm9cXFxcXFxcIjtcXFxcbn1cXFxcbikoXFxcXFxcXCLmtLvnnYBcXFxcXFxcIilcXFwiLFxcXCJ0aXRsZVxcXCI6XFxcIuWbvuS5pummhlByb1xcXCJ9LHtcXFwianNcXFwiOlxcXCIoXFxcXG4odGl0bGUpID0+IHtcXFxcbiAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL3NlYXJjaD9zPVxcXFxcXFwiICsgdGl0bGUgKyBcXFxcXFxcIiZncm91cD1cXFxcXFxcXHU5NjA1XFxcXFxcXFx1OGJmYlxcXFxcXFwiO1xcXFxufVxcXFxuKShcXFxcXFxcIua0u+edgFxcXFxcXFwiKVxcXCIsXFxcInRpdGxlXFxcIjpcXFwi6ZiF6K+757uEXFxcIn1dfVwiLFwic2F2ZWRcIjpmYWxzZSxcInRpdGxlXCI6XCLosYbnk6PpmIXor7tcIixcInZlcnNpb25cIjowLFwidXJsXCI6XCJodHRwczovL2Jvb2suZG91YmFuLmNvbS9zdWJqZWN0LzQ5MTMwNjQvI2ltbWVyc2l2ZVRoZW1lIztnZXQ7VVRGLTg7e1VzZXItQWdlbnRATW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMO+8m++8myBXaW42NO+8m++8myB4NjQpIEFwcGxlV2ViS2l0LzUzNy4zNiAoS0hUTUwsIGxpa2UgR2Vja28pIENocm9tZS8xMDUuMC4wLjAgU2FmYXJpLzUzNy4zNn1cIixcImNvbF90eXBlXCI6XCJtb3ZpZV8zX21hcnF1ZWVcIixcImZpbmRfcnVsZVwiOlwianM6XFxudmFyIGQgPSAgW107XFxuaHRtbCA9IGdldFJlc0NvZGUoKTtcXG5sZXQgbGlzdCA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCdib2R5JiZhJyk7XFxubGV0IHRpdGxlID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsJ2gxJiZUZXh0Jyk7XFxubGV0IGlkID0gcGRmYShodG1sLCdib2R5JiYucGFnZScpXFxubGV0IGl0ID0gcGRmaChpZCwnc2VjdGlvbiYmZGF0YS1pZCcpO1xcbi8v5LqM57qn5aS06YOo566A5LuLKOS9nOiAhe+8jOivhOWIhu+8jOWHuueJiOekvuetiSlcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInLFxcbiAgICBleHRyYToge2dyYWRpZW50OiB0cnVlfSxcXG4gICAgdGl0bGU6cGFyc2VEb21Gb3JIdG1sKGh0bWwsICdoMSYmVGV4dCcpK3BhcnNlRG9tRm9ySHRtbChpZCwnc2VjdGlvbiYmZGF0YS1pZCcpKydcXFxcbicrcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcucmF0aW5nX3NlbGYmJlRleHQnKSsnXFxcXHQnKyflipvojZDmjIfmlbA6JytwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5yYXRpbmdfcGVyJiZUZXh0JyksXFxuICAgIGRlc2M6cGFyc2VEb21Gb3JIdG1sKGh0bWwsICcuc3ViamVjdCYmVGV4dCcpLFxcbiAgICBpbWc6cGFyc2VEb20oaHRtbCwgJ2ltZyYmc3JjJyksXFxuICAgIH0pO1xcbnZhciB1cmwgPU1ZX1VSTC5zcGxpdCgnIycpWzBdO1xcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiAnaWNvbl9zbWFsbF80JyxcXG4gICAgdGl0bGU6J+efreivhCcsIGltZzonaHR0cHM6Ly9naHByb3h5Lm5ldC9odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbHMxMjU3ODEwMDMvbG10dWJpYW8vbWFpbi91bmZyYW1lZC8yNjIucG5nJyxcXG4gICAgdXJsOlxcXCJoaWtlcjovL3BhZ2UvY29tbWVudFxcXCIsXFxuICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgaHJlZjogU3RyaW5nKCdoaWtlcjovL2VtcHR5IyMnK3VybCsnY29tbWVudHMvP3N0YXJ0PWZ5cGFnZUAtMUAqMjBAJmxpbWl0PTIwJnN0YXR1cz1QJnNvcnQ9c2NvcmUnKSxcXG4gICAgICAgIH1cXG4gICAgfSk7XFxuXFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdpY29uX3NtYWxsXzQnLFxcbiAgICB0aXRsZTon5Y6f5paH5pGY5b2VJywgaW1nOidodHRwczovL2docHJveHkubmV0L2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sczEyNTc4MTAwMy9sbXR1Ymlhby9tYWluL3VuZnJhbWVkLzM1Ni5wbmcnLFxcbiAgICB1cmw6XFxcImhpa2VyOi8vcGFnZS9ibG9ja3F1b3RlXFxcIixcXG5leHRyYToge1xcbiAgICAgICAgICAgaHJlZjogU3RyaW5nKCdoaWtlcjovL2VtcHR5IyMnK3VybCsnYmxvY2txdW90ZXM/c29ydD1zY29yZSZzdGFydD1meXBhZ2VALTFAKjIwQCcpLFxcbiAgICAgICAgfVxcbiAgICB9KTtcXG5cXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ2ljb25fc21hbGxfNCcsXFxuICAgIHRpdGxlOifor7vkuabnrJTorrAnLCBpbWc6J2h0dHBzOi8vZ2hwcm94eS5uZXQvaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xzMTI1NzgxMDAzL2xtdHViaWFvL21haW4vdW5mcmFtZWQvMzc1LnBuZycsXFxuICAgIHVybDpcXFwiaGlrZXI6Ly9wYWdlL2Fubm90YXRpb25cXFwiLFxcbmV4dHJhOiB7XFxuICAgICAgICAgICAgaHJlZjogU3RyaW5nKCdoaWtlcjovL2VtcHR5IyMnK3VybCsnYW5ub3RhdGlvbj9zb3J0PXJhbmsmc3RhcnQ9ZnlwYWdlQC0xQCoyMEAnKSxcXG4gICAgICAgIH1cXG4gICAgfSk7XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdpY29uX3NtYWxsXzQnLFxcbiAgICB0aXRsZTon5Lmm6K+EJywgaW1nOidodHRwczovL2docHJveHkubmV0L2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sczEyNTc4MTAwMy9sbXR1Ymlhby9tYWluL3VuZnJhbWVkLzIzMS5wbmcnLFxcbiAgICB1cmw6XFxcImhpa2VyOi8vcGFnZS9yZXZpZXdzXFxcIixcXG5leHRyYToge1xcbiAgICAgICAgICAgIGhyZWY6IFN0cmluZygnaGlrZXI6Ly9lbXB0eSMjJyt1cmwrJ3Jldmlld3M/dmVyc2lvbj0xJyksXFxuICAgICAgICB9XFxuICAgIH0pO1xcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaycsXFxuICAgIH0pXFxucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL3NlYXJjaHp5Jyk7XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdsaW5lX2JsYW5rJyxcXG4gICAgfSk7XFxuZC5wdXNoKHtcXG4gICAgY29sX3R5cGU6ICdyaWNoX3RleHQnLFxcbiAgICB0aXRsZTon8J+ThOS5puexjeS/oeaBrycsXFxuZXh0cmE6e1xcbiAgICAgICAgXFxuICAgICAgICB0ZXh0U2l6ZToyMixcXG4gICAgfX0sXFxuICAgIHtcXG5jb2xfdHlwZTogJ2xpbmUnLFxcbiAgICB9KTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxuICAgIHRpdGxlOnBhcnNlRG9tRm9ySHRtbChodG1sLCAnLmludHJvJiZwJiZUZXh0JyksXFxuICAgIGRlc2M6JycsXFxuICAgIH0pO1xcbmxldCDlhoXlrrnnroDku4sgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5hbGwmJlRleHQnKTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+WGheWuueeugOS7iycsXFxuICAgIHVybDogJCgpLnJ1bGUoKOWGheWuueeugOS7iykgPT4ge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IOWGheWuueeugOS7iyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXG5cXG4gICAgICAgIH1dKVxcbiAgICB9LCDlhoXlrrnnroDku4spLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMydcXG59KTtcXG5cXG5sZXQg5L2c6ICF566A5LuLID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcuaW5kZW50LDMmJlRleHQnKTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTogJ+S9nOiAheeugOS7iycsXFxuICAgIHVybDogJCgpLnJ1bGUoKOS9nOiAheeugOS7iykgPT4ge1xcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgdGl0bGU6IOS9nOiAheeugOS7iyxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXG4gICAgICAgIH1dKVxcbiAgICB9LCDkvZzogIXnroDku4spLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfMydcXG59KTtcXG5sZXQg5Lib5Lmm5L+h5oGvID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcuc3ViamVjdF9zaG93JiZkaXYmJlRleHQnKTtcXG5kLnB1c2goe1xcbiAgICB0aXRsZTon5Lib5Lmm5L+h5oGvJyxcXG4gICAgdXJsOiAkKCkucnVsZSgo5Lib5Lmm5L+h5oGvKSA9PiB7XFxuICAgICAgICBzZXRSZXN1bHQoW3tcXG4gICAgICAgICAgICB0aXRsZTog5Lib5Lmm5L+h5oGvLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbG9uZ190ZXh0J1xcbiAgICAgICAgfV0pXFxuICAgIH0sIOS4m+S5puS/oeaBryksXFxuICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcbiAgICB9KTtcXG5cXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnLFxcbiAgICB9KTtcXG5kLnB1c2goe1xcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxuICAgIHRpdGxlOifwn5GN55u45Ly85o6o6I2QJyxcXG5leHRyYTp7ICAgICBcXG4gICAgICAgIHRleHRTaXplOjIyLFxcbiAgICB9XFxuICAgIH0gICwge1xcbmNvbF90eXBlOiAnbGluZScsXFxuICAgIH0pOyAgIFxcbmNvbnN0ICByZWM9IHBkZmEoaHRtbCwgXFxcImJvZHkmJmRsXFxcIilcXG4gIGZvciAodmFyIGkgPSA2OyBpIDwgcmVjLmxlbmd0aCYmIGk8MTU7IGkrKykge1xcbmQucHVzaCh7XFxuICAgIGNvbF90eXBlOiAnbW92aWVfMycsXFxuICAgIHRpdGxlOnBkZmgocmVjW2ldLCAnZGQmJlRleHQnKSxcXG4gICAgaW1nOnBkKHJlY1tpXSwgJ2ltZyYmc3JjJyksXFxuICAgIHVybDpwZChyZWNbaV0sICdhJiZocmVmJykrJyNpbW1lcnNpdmVUaGVtZSMnKydAcnVsZT1qczp2YXIgZCA9IFtdOyQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2VyamlcXFwiKScsXFxuICAgIH0pO1xcbn1cXG5kLnB1c2goe2NvbF90eXBlOiAnYmlnX2JpZ19ibGFua19ibG9jayd9KTtcXG5zZXRSZXN1bHQoZCk7XCIsXCJncm91cFwiOlwi4pGm6ZiF6K+7XCIsXCJ1YVwiOlwicGNcIixcInByZVJ1bGVcIjpcIlwiLFwicGFnZXNcIjpcIlt7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLlsI/nsbstLS3lpJrlsYJcXFwiLFxcXCJwYXRoXFxcIjpcXFwieGlhb2xlaVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbiAgICBsZXQgaW5pdF9jYXRlID0gW107XFxcXG5mb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHtcXFxcbiAgICBpbml0X2NhdGUucHVzaCgnMCcpO1xcXFxufVxcXFxuXFxcXG5pZiAocGFyc2VJbnQoTVlfUEFHRSkgPT09IDEpIHtcXFxcbiAgICBjb25zdCBjYXRlX3RlbXBfanNvbiA9IGdldE15VmFyKCd0JywgSlNPTi5zdHJpbmdpZnkoaW5pdF9jYXRlKSk7XFxcXG4gICAgY29uc3QgY2F0ZV90ZW1wID0gSlNPTi5wYXJzZShjYXRlX3RlbXBfanNvbik7XFxcXG4gICAgY29uc3QgY2xhc3NsaXN0ID0gcGRmYShodG1sLCDlsI/nsbspO1xcXFxuICAgIC8vIGxvZygnc3VibGlzdCAgaXMgICAgJyArIHN1Ymxpc3QpXFxcXG4gICAgY2xhc3NsaXN0LmZvckVhY2goKHNtYWxsY2xhc3MsIGtleSkgPT4ge1xcXFxuICAgICAgICBsZXQgc3VibGlzdCA9IHBkZmEoc21hbGxjbGFzcywgXFxcXFxcXCJib2R5JiZhXFxcXFxcXCIpO1xcXFxuICAgICAgICBsZXQgaiA9IDA7XFxcXG4gICAgICAgIHN1Ymxpc3QuZm9yRWFjaCgoaXQsIGopID0+IHtcXFxcbiAgICAgICAgICAgIGQucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IGoudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wW2tleV0gPyBcXFxcXFxcIuKAnOKAnFxcXFxcXFwiICsgcGRmaChpdCwgXFxcXFxcXCJhJiZUZXh0XFxcXFxcXCIpICsgXFxcXFxcXCLigJ3igJ1cXFxcXFxcIiA6IHBkZmgoaXQsIFxcXFxcXFwiYSYmVGV4dFxcXFxcXFwiKSxcXFxcbiAgICAgICAgICAgICAgICB1cmw6IHBkKGl0LCBcXFxcXFxcImEmJmhyZWZcXFxcXFxcIikgKyAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChwYXJhbXMpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld19jYXRlID0gW107XFxcXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtcy5jYXRlX3RlbXAuZm9yRWFjaCgoY2F0ZSwgaW5kZXgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld19jYXRlLnB1c2goaW5kZXggPT09IDAgPyBwYXJhbXMua2V5LnRvU3RyaW5nKCkgOiAnMCcpO1xcXFxuICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigndCcsIEpTT04uc3RyaW5naWZ5KG5ld19jYXRlKSk7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNhdGVfdGVtcFtwYXJhbXMua2V5XSA9IHBhcmFtcy5qLnRvU3RyaW5nKCk7XFxcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCd0JywgSlNPTi5zdHJpbmdpZnkocGFyYW1zLmNhdGVfdGVtcCkpO1xcXFxuICAgICAgICAgICAgICAgICAgICAvL3B1dE15VmFyKCdzdWJjbGFzc0luZGV4Jywgaik7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vIHB1dFZhcihNWV9SVUxFLnRpdGxlLCBKU09OLnN0cmluZ2lmeShqKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnVybCwgaW5wdXQpO1xcXFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSh0cnVlKVxcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknO1xcXFxuICAgICAgICAgICAgICAgIH0sIHtcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICBjYXRlX3RlbXA6IGNhdGVfdGVtcCxcXFxcbiAgICAgICAgICAgICAgICAgICAgajogaixcXFxcbiAgICAgICAgICAgICAgICAgICAga2V5OiBrZXksXFxcXG4gICAgICAgICAgICAgICAgICAgIHBhZ2U6IE1ZX1BBR0UsXFxcXG4gICAgICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiZmxleF9idXR0b25cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICB9KVxcXFxuICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiYmxhbmtfYmxvY2tcXFxcXFxcIlxcXFxuICAgICAgICB9KTtcXFxcbiAgICB9KVxcXFxufVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuWwj+exu+asoS0tLeWkmuWxglxcXCIsXFxcInBhdGhcXFwiOlxcXCJ4aWFvbGVpY2lcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5sZXQgaW5pdF9jYXRlMSA9IFtdO1xcXFxuZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7XFxcXG4gICAgaW5pdF9jYXRlMS5wdXNoKCcwJyk7XFxcXG59XFxcXG5cXFxcbmlmIChNWV9QQUdFID09PSAxKSB7XFxcXG4gICAgY29uc3QgY2F0ZV90ZW1wX2pzb24xID0gZ2V0TXlWYXIoJ3QxJywgSlNPTi5zdHJpbmdpZnkoaW5pdF9jYXRlMSkpO1xcXFxuICAgIGNvbnN0IGNhdGVfdGVtcDEgPSBKU09OLnBhcnNlKGNhdGVfdGVtcF9qc29uMSk7XFxcXG4gICAgY29uc3QgY2xhc3NsaXN0MSA9IHBkZmEoaHRtbCwg5bCP57G75qyhKTtcXFxcbiAgICAvLyBsb2coJ3N1Ymxpc3QgIGlzICAgICcgKyBzdWJsaXN0KVxcXFxuICAgIGNsYXNzbGlzdDEuZm9yRWFjaCgoc21hbGxjbGFzczEsIGtleTEpID0+IHtcXFxcbiAgICAgICAgbGV0IHN1Ymxpc3QxID0gcGRmYShzbWFsbGNsYXNzMSwgXFxcXFxcXCJib2R5JiZhXFxcXFxcXCIpO1xcXFxuICAgICAgICBsZXQgaiA9IDA7XFxcXG4gICAgICAgIHN1Ymxpc3QxLmZvckVhY2goKGl0LCBqaikgPT4ge1xcXFxuICAgICAgICAgICAgZC5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICB0aXRsZTogamoudG9TdHJpbmcoKSA9PT0gY2F0ZV90ZW1wMVtrZXkxXSA/IFxcXFxcXFwi4oCc4oCcXFxcXFxcXCIgKyBwZGZoKGl0LCBcXFxcXFxcImEmJlRleHRcXFxcXFxcIikgKyBcXFxcXFxcIuKAneKAnVxcXFxcXFwiIDogcGRmaChpdCwgXFxcXFxcXCJhJiZUZXh0XFxcXFxcXCIpLFxcXFxuICAgICAgICAgICAgICAgIHVybDogcGQoaXQsIFxcXFxcXFwiYSYmaHJlZlxcXFxcXFwiKSArICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHBhcmFtczEpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IG5ld19jYXRlMSA9IFtdO1xcXFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMxLmNhdGVfdGVtcDEuZm9yRWFjaCgoY2F0ZSwgaW5kZXgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld19jYXRlMS5wdXNoKGluZGV4ID09PSAwID8gcGFyYW1zMS5rZXkxLnRvU3RyaW5nKCkgOiAnMCcpO1xcXFxuICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcigndDEnLCBKU09OLnN0cmluZ2lmeShuZXdfY2F0ZTEpKTtcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMxLmNhdGVfdGVtcDFbcGFyYW1zMS5rZXkxXSA9IHBhcmFtczEuamoudG9TdHJpbmcoKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3QxJywgSlNPTi5zdHJpbmdpZnkocGFyYW1zMS5jYXRlX3RlbXAxKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vcHV0TXlWYXIoJ3N1YmNsYXNzSW5kZXgnLCBqaik7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vIHB1dFZhcihNWV9SVUxFLnRpdGxlLCBKU09OLnN0cmluZ2lmeShqaikpO1xcXFxuICAgICAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS51cmwsIGlucHV0KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UodHJ1ZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXFxcbiAgICAgICAgICAgICAgICB9LCB7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgY2F0ZV90ZW1wMTogY2F0ZV90ZW1wMSxcXFxcbiAgICAgICAgICAgICAgICAgICAgamo6IGpqLFxcXFxuICAgICAgICAgICAgICAgICAgICBrZXkxOiBrZXkxLFxcXFxuICAgICAgICAgICAgICAgICAgICBwYWdlOiBNWV9QQUdFLFxcXFxuICAgICAgICAgICAgICAgIH0pLFxcXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInNjcm9sbF9idXR0b25cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICB9KVxcXFxuICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiYmxhbmtfYmxvY2tcXFxcXFxcIlxcXFxuICAgICAgICB9KTtcXFxcbiAgICB9KVxcXFxufVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuWkp+exuy0tLS3kuIDooYxcXFwiLFxcXCJwYXRoXFxcIjpcXFwiZGFsZWlcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5cXFxcbmxldCBjbGFzc0luZGV4ID0gTnVtYmVyKGdldE15VmFyKFxcXFxcXFwiY2xhc3NJbmRleFxcXFxcXFwiLCBcXFxcXFxcIjBcXFxcXFxcIikpO1xcXFxuaWYgKE1ZX1BBR0UgPT0gMSkge1xcXFxuICAgIGNvbnN0IGxpc3QgPSBwZGZhKGh0bWwsIOWkp+exuyk7XFxcXG4gICAgLy8gICAgbG9nKCdsaXN0ICBpcyAgICAnICsgbGlzdClcXFxcbiAgICBsZXQgaSA9IDA7XFxcXG4gICAgbGlzdC5mb3JFYWNoKChpdCwgaSkgPT4ge1xcXFxuICAgICAgICBkLnB1c2goe1xcXFxuICAgICAgICAgICAgdGl0bGU6IGNsYXNzSW5kZXggPT09IGkgPyBcXFxcXFxcIuKAnOKAnFxcXFxcXFwiICsgJ+ivu+S5pummlumhtScgKyBcXFxcXFxcIuKAneKAnVxcXFxcXFwiIDogJ+ivu+S5pummlumhtScsXFxcXG4gICAgICAgICAgICB1cmw6IHBkKGl0LCBcXFxcXFxcImEmJmhyZWZcXFxcXFxcIikgKyAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NsYXNzSW5kZXgnLCBpKTtcXFxcbiAgICAgICAgICAgICAgICBwdXRWYXIoTVlfUlVMRS50aXRsZSwgSlNPTi5zdHJpbmdpZnkoaSkpO1xcXFxuICAgICAgICAgICAgICAgIHB1dFZhcihNWV9SVUxFLnVybCwgaW5wdXQpO1xcXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKHRydWUpXFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JztcXFxcbiAgICAgICAgICAgIH0sIGkpLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwic2Nyb2xsX2J1dHRvblxcXFxcXFwiLFxcXFxuICAgICAgICB9KVxcXFxuICAgIH0pXFxcXG4gICAvKiBkLnB1c2goe1xcXFxuICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJiaWdfYmxhbmtfYmxvY2tcXFxcXFxcIixcXFxcbiAgICB9KVxcXFxuKi9cXFxcbn1cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCJsYXp5XFxcIixcXFwicGF0aFxcXCI6XFxcImxhenlcXFwiLFxcXCJydWxlXFxcIjpcXFwidmFyIGxhenkgPSAkKCcnKS5sYXp5UnVsZSgoKSA9PiB7XFxcXG4gICAgdHJ5IHtcXFxcbiAgICAgICAgXFxcXG4gICAgICAgIHZhciBodG1sID0gSlNPTi5wYXJzZShmZXRjaENvZGVCeVdlYlZpZXcoaW5wdXQpLm1hdGNoKC9yIHBsYXllcl8uKj89KC4qPyk8LylbMV0pXFxcXG4gICAgICAgIHZhciB1cmwgPSBodG1sLnVybFxcXFxuICAgICAgICBpZiAoaHRtbC5lbmNyeXB0ID09ICcxJykge1xcXFxuICAgICAgICAgICAgdXJsID0gdW5lc2NhcGUodXJsKTtcXFxcbiAgICAgICAgfSBlbHNlIGlmIChodG1sLmVuY3J5cHQgPT0gJzInKSB7XFxcXG4gICAgICAgICAgICB1cmwgPSB1bmVzY2FwZShiYXNlNjREZWNvZGUodXJsKSk7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgaWYgKC9tM3U4fG1wNC8udGVzdCh1cmwpKSB7XFxcXG4gICAgICAgICAgICByZXR1cm4gdXJsXFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICByZXR1cm4gJ3ZpZGVvOi8vJyArIGlucHV0XFxcXG4gICAgICAgIH1cXFxcbiAgICB9IGNhdGNoIChlKSB7XFxcXG4gICAgICAgIHJldHVybiAndmlkZW86Ly8nICsgaW5wdXRcXFxcbiAgICB9XFxcXG59KVxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuefreivhFxcXCIsXFxcInBhdGhcXFwiOlxcXCJjb21tZW50XFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxudmFyIGQgPSBbXTtcXFxcbk1ZX1VSTCA9IE1ZX1BBUkFNUy5ocmVmO1xcXFxuZC5wdXNoKHtcXFxcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxcXG4gICAgdGl0bGU6J/Cfk53nn63or4QnLFxcXFxuZXh0cmE6eyAgICAgXFxcXG4gICAgICAgIHRleHRTaXplOjIyLFxcXFxuICAgIH1cXFxcbiAgICB9ICAsIHtcXFxcbmNvbF90eXBlOiAnbGluZScsXFxcXG4gICAgfSk7ICAgXFxcXG5cXFxcbnZhciBnZXRSYW5nZUNvbG9ycyA9IGZ1bmN0aW9uKCkge8KgwqDCoMKgwqDCoMKgXFxcXG4gICAgcmV0dXJuICcjJyArICgnMDAwMDAnICsgKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAgPDwgMCkudG9TdHJpbmcoMTYpKS5zdWJzdHIoLTYpO8KgwqDCoMKgwqBcXFxcbn1cXFxcbmNvbnN0IOWIhuexu+minOiJsiA9IGdldFJhbmdlQ29sb3JzKClcXFxcbmNvbnN0IOWkp+exu+WumuS9jSA9ICdib2R5JiYuQ29tbWVudHMtaGQnXFxcXG5jb25zdCDmi7zmjqXliIbnsbsgPSAnYm9keSYmLnRpdGxlX2xpbmUnXFxcXG5jb25zdCDlsI/nsbvlrprkvY0gPSAnYm9keSYmYSdcXFxcbmNvbnN0IOWIhuexu+agh+mimCA9ICdhJiZUZXh0J1xcXFxuY29uc3Qg5YiG57G76ZO+5o6lID0gJ2EmJmhyZWYnXFxcXG5NWV9VUkwgPSBNWV9VUkwucmVwbGFjZSgnaGlrZXI6Ly9lbXB0eSMjJywgJycpXFxcXG5cXFxcbmxldCB0cnVlX3VybCA9IGdldFZhcihNWV9SVUxFLnVybCwgTVlfVVJMKVxcXFxuY29uc3QgcGFnZSA9IE1ZX1BBR0VcXFxcbmlmIChnZXRWYXIoTVlfUlVMRS51cmwpKSB7XFxcXG4gICAgdHJ1ZV91cmwgPSB0cnVlX3VybFxcXFxufVxcXFxudmFyIGh0bWwgPSBmZXRjaCh0cnVlX3VybCwge1xcXFxuICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBQQ19VQVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9KTtcXFxcblxcXFxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9kdGZsP3J1bGU95qih5p2/wrdRJykpLnJ1bGUpXFxcXG5cXFxcblxcXFxuY29uc3QgY29tbWVudD0gcGRmYShodG1sLCBcXFxcXFxcImJvZHkmJi5jb21tZW50LWxpc3QmJmxpXFxcXFxcXCIpXFxcXG4gICAgICAgIGNvbW1lbnQuZm9yRWFjaCh4ID0+IHtcXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcXFxuICAgIHRpdGxlOifigJzigJzigJ3igJ08c21hbGw+PHNwYW4+JyArcGFyc2VEb21Gb3JIdG1sKHgsICcuY29tbWVudC1pbmZvJiZhJiZUZXh0JykrJ1xcXFxcXFxcdCcrcGFyc2VEb21Gb3JIdG1sKHgsICcuY29tbWVudC10aW1lJiZUZXh0JykrJ1xcXFxcXFxcdCcrcGFyc2VEb21Gb3JIdG1sKHgsICcuY29tbWVudC1sb2NhdGlvbiYmVGV4dCcpKydcXFxcXFxcXHRcXFxcXFxcXHRcXFxcXFxcXHQnK3BhcnNlRG9tRm9ySHRtbCh4LCAnLmNvbW1lbnQtdm90ZSYmVGV4dCcpICsgJzwvc3Bhbj48L3NtYWxsPjwvc21hbGw+JyxcXFxcbiAgICBpbWc6cGQoeCwgJ2ltZyYmc3JjJyksXFxcXG4gICAgdXJsOlxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiLFxcXFxuICAgIH0pO1xcXFxuICBsZXQg55+t6K+EID0gcGFyc2VEb21Gb3JIdG1sKHgsICcuc2hvcnQmJlRleHQnKTtcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6IOefreivhCxcXFxcbiAgICB1cmw6ICQoKS5ydWxlKCjnn63or4QpID0+IHtcXFxcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxcXG4gICAgICAgICAgICB0aXRsZTog55+t6K+ELFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxcXG4gICAgICAgIH1dKVxcXFxuICAgIH0sIOefreivhCksXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG59KTtcXFxcbn0pXFxcXG5zZXRSZXN1bHQoZCk7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi6LWE5rqQ5pCc57SiXFxcIixcXFwicGF0aFxcXCI6XFxcInNlYXJjaHp5XFxcIixcXFwicnVsZVxcXCI6XFxcIi8v6LWE5rqQ5pCc57SiXFxcXG5odG1sID0gZ2V0UmVzQ29kZSgpO1xcXFxubGV0IHRpdGxlID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsJ2gxJiZUZXh0Jyk7XFxcXG5kLnB1c2goXFxcXG57IGNvbF90eXBlOiAncmljaF90ZXh0JyxcXFxcbiAgICB0aXRsZTon8J+UjeaQnOe0oicsXFxcXG4gICAgZXh0cmE6e1xcXFxuICAgICAgICBcXFxcbiAgICAgICAgdGV4dFNpemU6MjIsXFxcXG4gICAgfVxcXFxuICAgIH0pO1xcXFxuZC5wdXNoKHtcXFxcbiAgICBjb2xfdHlwZTogJ2xpbmUnLFxcXFxuICAgIH0pXFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiAnemxpYnJhcnknLFxcXFxuICAgIGNvbF90eXBlOiAnaWNvbl81JyxcXFxcbiAgICB1cmw6ICdoaWtlcjovL3NlYXJjaD9zPScrdGl0bGUrJyZydWxlPXpsaWJyYXJ5JyxcXFxcbiAgICBpbWc6ICdodHRwczovL3psaWJyYXJ5LXNnLnNlL2Zhdmljb24uaWNvJ1xcXFxuICAgIH0pO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+WPr+mYhScsXFxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcXFxuICAgIHVybDogJ2h0dHBzOi8va2VwdWIubmV0L3NlYXJjaC5odG1sP2tleXdvcmQ9Jyt0aXRsZSxcXFxcbiAgICBpbWc6ICdodHRwczovL2tlcHViLm5ldC9mYXZpY29uLmljbydcXFxcbiAgICB9KTtcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6ICfkuqzkuJzor7vkuaYnLFxcXFxuICAgIGNvbF90eXBlOiAnaWNvbl81JyxcXFxcbiAgICB1cmw6ICdodHRwczovL20tdG9iLmpkLmNvbS9zZWFyY2hfZG9zZWFyY2g/c2VyY2g9Jyt0aXRsZSxcXFxcbiAgICBpbWc6ICdodHRwczovL20tdG9iLmpkLmNvbS9zdGF0aWMvaW1nL2xvZ28ucG5nJ1xcXFxuICAgIH0pO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+eGiueMq+aQnOS5picsXFxcXG4gICAgY29sX3R5cGU6ICdpY29uXzUnLFxcXFxuICAgIHVybDogXFxcXFxcXCJodHRwczovL3d3dy5tcnNkLnRvcC9zZWFyY2guaHRtbD9rZXl3b3Jkcz1cXFxcXFxcIit0aXRsZSxcXFxcbiAgICBpbWc6ICdodHRwczovL2docHJveHkubmV0L2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sczEyNTc4MTAwMy9sbXR1Ymlhby9tYWluL3NxdWFyZS8xNzYucG5nJ1xcXFxuICAgIH0pO1xcXFxuXFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOiAn54Ot54K55Zu+5Lmm572RJyxcXFxcbiAgICBjb2xfdHlwZTogJ2ljb25fNScsXFxcXG4gICAgdXJsOiAnaHR0cDovL3d3dy5oYXBweWRvdC50b3AvP3M9Jyt0aXRsZSxcXFxcbiAgICBpbWc6ICdodHRwczovL2docHJveHkubmV0L2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sczEyNTc4MTAwMy9sbXR1Ymlhby9tYWluL3JvdW5kZWQvMTIyLnBuZydcXFxcbiAgICB9KVxcXFxuXFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5Y6f5paH5pGY5b2VXFxcIixcXFwicGF0aFxcXCI6XFxcImJsb2NrcXVvdGVcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5NWV9VUkwgPSBNWV9QQVJBTVMuaHJlZjsgXFxcXG52YXIgZCA9W107XFxcXG5kLnB1c2goe1xcXFxuICAgIGNvbF90eXBlOiAncmljaF90ZXh0JyxcXFxcbiAgICB0aXRsZTon8J+TneWOn+aWh+aRmOW9lScsXFxcXG5leHRyYTp7ICAgICBcXFxcbiAgICAgICAgdGV4dFNpemU6MjIsXFxcXG4gICAgfVxcXFxuICAgIH0gICwge1xcXFxuY29sX3R5cGU6ICdsaW5lJyxcXFxcbiAgICB9KTsgICBcXFxcbnZhciBnZXRSYW5nZUNvbG9ycyA9IGZ1bmN0aW9uKCkge8KgwqDCoMKgwqDCoMKgXFxcXG4gICAgcmV0dXJuICcjJyArICgnMDAwMDAnICsgKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAgPDwgMCkudG9TdHJpbmcoMTYpKS5zdWJzdHIoLTYpO8KgwqDCoMKgwqBcXFxcbn1cXFxcbmNvbnN0IOWIhuexu+minOiJsiA9IGdldFJhbmdlQ29sb3JzKClcXFxcbmNvbnN0IOWkp+exu+WumuS9jSA9ICdib2R5JiYudGFiJ1xcXFxuLy9jb25zdCDmi7zmjqXliIbnsbsgPSAnYm9keSYmYSdcXFxcbmNvbnN0IOWwj+exu+WumuS9jSA9ICdib2R5JiZhJ1xcXFxuY29uc3Qg5YiG57G75qCH6aKYID0gJ2EmJlRleHQnXFxcXG5jb25zdCDliIbnsbvpk77mjqUgPSAnYSYmaHJlZidcXFxcbk1ZX1VSTCA9IE1ZX1VSTC5yZXBsYWNlKCdoaWtlcjovL2VtcHR5IyMnLCAnJylcXFxcblxcXFxubGV0IHRydWVfdXJsID0gZ2V0VmFyKE1ZX1JVTEUudXJsLCBNWV9VUkwpXFxcXG5jb25zdCBwYWdlID0gTVlfUEFHRVxcXFxuaWYgKGdldFZhcihNWV9SVUxFLnVybCkpIHtcXFxcbiAgICB0cnVlX3VybCA9IHRydWVfdXJsXFxcXG59XFxcXG52YXIgaHRtbCA9IGZldGNoKHRydWVfdXJsLCB7XFxcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IFBDX1VBXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pO1xcXFxuXFxcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2R0Zmw/cnVsZT3mqKHmnb/Ct1EnKSkucnVsZSlcXFxcblxcXFxuXFxcXG4gICBjb25zdCAgYmxvY2txdW90ZT0gcGRmYShodG1sLCBcXFxcXFxcImJvZHkmJi5ibG9ja3F1b3RlLWxpc3QmJmxpXFxcXFxcXCIpXFxcXG4gICAgICAgIGJsb2NrcXVvdGUuZm9yRWFjaCh4ID0+IHtcXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6ICdhdmF0YXInLFxcXFxuICAgIHRpdGxlOic8c21hbGw+PHNwYW4+JyArIHBhcnNlRG9tRm9ySHRtbCh4LCAnLmF1dGhvci1uYW1lJiZUZXh0JykrJ1xcXFxcXFxcdFxcXFxcXFxcdCcrcGFyc2VEb21Gb3JIdG1sKHgsICdzcGFuJiZUZXh0JykrJ1xcXFxcXFxcdFxcXFxcXFxcdCcrcGFyc2VEb21Gb3JIdG1sKHgsICdkYXRldGltZSYmVGV4dCcpKyAnPC9zcGFuPjxzbWFsbD4nLFxcXFxuICAgIGltZzpwZCh4LCAnaW1nJiZzcmMnKSxcXFxcbiAgICB1cmw6cGQoeCwgJ2EmJmhyZWYnKSxcXFxcbiAgICB9KTtcXFxcbiAgbGV0IOaRmOW9leWGheWuuSA9IHBhcnNlRG9tRm9ySHRtbCh4LCAnZmlndXJlJiZUZXh0Jyk7XFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOuaRmOW9leWGheWuuSAsXFxcXG4gICAgdXJsOiAkKCkucnVsZSgo5pGY5b2V5YaF5a65KSA9PiB7XFxcXG4gICAgICAgIHNldFJlc3VsdChbe1xcXFxuICAgICAgICAgICAgdGl0bGU6IOaRmOW9leWGheWuuSxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAncmljaF90ZXh0J1xcXFxuICAgICAgICB9XSlcXFxcbiAgICB9LCDmkZjlvZXlhoXlrrkpLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcXFxufSk7XFxcXG59KVxcXFxuc2V0UmVzdWx0KGQpXFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5Lmm6K+EXFxcIixcXFwicGF0aFxcXCI6XFxcInJldmlld3NcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG52YXIgZCA9IFtdO1xcXFxuTVlfVVJMID0gTVlfUEFSQU1TLmhyZWY7XFxcXG5kLnB1c2goe1xcXFxuICAgIGNvbF90eXBlOiAncmljaF90ZXh0JyxcXFxcbiAgICB0aXRsZTon8J+TneS5puivhCcsXFxcXG5leHRyYTp7ICAgICBcXFxcbiAgICAgICAgdGV4dFNpemU6MjIsXFxcXG4gICAgfVxcXFxuICAgIH0gICwge1xcXFxuY29sX3R5cGU6ICdsaW5lJyxcXFxcbiAgICB9KTsgICBcXFxcblxcXFxudmFyIGdldFJhbmdlQ29sb3JzID0gZnVuY3Rpb24oKSB7wqDCoMKgwqDCoMKgwqBcXFxcbiAgICByZXR1cm4gJyMnICsgKCcwMDAwMCcgKyAoTWF0aC5yYW5kb20oKSAqIDB4MTAwMDAwMCA8PCAwKS50b1N0cmluZygxNikpLnN1YnN0cigtNik7wqDCoMKgwqDCoFxcXFxufVxcXFxuY29uc3Qg5YiG57G76aKc6ImyID0gZ2V0UmFuZ2VDb2xvcnMoKVxcXFxuY29uc3Qg5aSn57G75a6a5L2NID0gJ2JvZHkmJi50b3AtdGFiJ1xcXFxuLy9jb25zdCDmi7zmjqXliIbnsbsgPSAnYm9keSYmYSdcXFxcbmNvbnN0IOWwj+exu+WumuS9jSA9ICdib2R5JiZhJ1xcXFxuY29uc3Qg5YiG57G75qCH6aKYID0gJ2EmJlRleHQnXFxcXG5jb25zdCDliIbnsbvpk77mjqUgPSAnYSYmaHJlZidcXFxcbk1ZX1VSTCA9IE1ZX1VSTC5yZXBsYWNlKCdoaWtlcjovL2VtcHR5IyMnLCAnJylcXFxcblxcXFxubGV0IHRydWVfdXJsID0gZ2V0VmFyKE1ZX1JVTEUudXJsLCBNWV9VUkwpXFxcXG5jb25zdCBwYWdlID0gTVlfUEFHRVxcXFxuaWYgKGdldFZhcihNWV9SVUxFLnVybCkpIHtcXFxcbiAgICB0cnVlX3VybCA9IHRydWVfdXJsXFxcXG59XFxcXG52YXIgaHRtbCA9IGZldGNoKHRydWVfdXJsLCB7XFxcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IFBDX1VBXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pO1xcXFxuXFxcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2R0Zmw/cnVsZT3mqKHmnb/Ct1EnKSkucnVsZSlcXFxcblxcXFxuY29uc3QgcmV2aWV3cz0gcGRmYShodG1sLCBcXFxcXFxcImJvZHkmJi5yZXZpZXctbGlzdCYmZGl2XFxcXFxcXCIpXFxcXG4gICAgICAgIHJldmlld3MuZm9yRWFjaCh4ID0+IHtcXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6ICdhdmF0YXInLFxcXFxuICAgIHRpdGxlOnBkZmgoeCwgJy5uYW1lJlRleHQnKSsnXFxcXFxcXFx0JytwYXJzZURvbUZvckh0bWwoeCwgJy5tYWluLW1ldGEmJlRleHQnKSxcXFxcbiAgICBpbWc6cGQoeCwgJ2ltZyYmc3JjJyksXFxcXG4gICAgdXJsOnBkKHgsICdhJiZocmVmJyksXFxcXG4gICAgfSk7XFxcXG4gZC5wdXNoKHtcXFxcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxcXG4gICAgdGl0bGU6cGFyc2VEb21Gb3JIdG1sKHgsICdoMiYmVGV4dCcpLFxcXFxuICAgICAgfSk7XFxcXG4gIGxldCDkuabor4QgPSBwYXJzZURvbUZvckh0bWwoeCwgJy5zaG9ydC1jb250ZW50JiZUZXh0Jyk7XFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOifigJzigJzigJ3igJ08c21hbGw+PHNwYW4+JyArIOS5puivhCArICc8L3NwYW4+PC9zbWFsbD48L3NtYWxsPicsXFxcXG4gICAgdXJsOiAkKCkucnVsZSgo5Lmm6K+EKSA9PiB7XFxcXG4gICAgICAgIHNldFJlc3VsdChbe1xcXFxuICAgICAgICAgICAgdGl0bGU6IOS5puivhCxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAncmljaF90ZXh0J1xcXFxuICAgICAgICB9XSlcXFxcbiAgICB9LCDkuabor4QpLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcXFxufSk7XFxcXG59KVxcXFxuc2V0UmVzdWx0KGQpXFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi6K+75Lmm56yU6K6wXFxcIixcXFwicGF0aFxcXCI6XFxcImFubm90YXRpb25cXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5NWV9VUkwgPSBNWV9QQVJBTVMuaHJlZjsgXFxcXG52YXIgZCA9IFtdO1xcXFxuZC5wdXNoKHtcXFxcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxcXG4gICAgdGl0bGU6J/Cfk53or7vkuabnrJTorrAnLFxcXFxuZXh0cmE6eyAgICAgXFxcXG4gICAgICAgIHRleHRTaXplOjIyLFxcXFxuICAgIH1cXFxcbiAgICB9ICAsIHtcXFxcbmNvbF90eXBlOiAnbGluZScsXFxcXG4gICAgfSk7ICAgXFxcXG5cXFxcbnZhciBnZXRSYW5nZUNvbG9ycyA9IGZ1bmN0aW9uKCkge8KgwqDCoMKgwqDCoMKgXFxcXG4gICAgcmV0dXJuICcjJyArICgnMDAwMDAnICsgKE1hdGgucmFuZG9tKCkgKiAweDEwMDAwMDAgPDwgMCkudG9TdHJpbmcoMTYpKS5zdWJzdHIoLTYpO8KgwqDCoMKgwqBcXFxcbn1cXFxcbmNvbnN0IOWIhuexu+minOiJsiA9IGdldFJhbmdlQ29sb3JzKClcXFxcbmNvbnN0IOWkp+exu+WumuS9jSA9ICdib2R5JiYuZ3JlZW5fdGFiJ1xcXFxuLy9jb25zdCDmi7zmjqXliIbnsbsgPSAnYm9keSYmYSdcXFxcbmNvbnN0IOWwj+exu+WumuS9jSA9ICdib2R5JiZhJ1xcXFxuY29uc3Qg5YiG57G75qCH6aKYID0gJ2EmJlRleHQnXFxcXG5jb25zdCDliIbnsbvpk77mjqUgPSAnYSYmaHJlZidcXFxcbk1ZX1VSTCA9IE1ZX1VSTC5yZXBsYWNlKCdoaWtlcjovL2VtcHR5IyMnLCAnJylcXFxcblxcXFxubGV0IHRydWVfdXJsID0gZ2V0VmFyKE1ZX1JVTEUudXJsLCBNWV9VUkwpXFxcXG5jb25zdCBwYWdlID0gTVlfUEFHRVxcXFxuaWYgKGdldFZhcihNWV9SVUxFLnVybCkpIHtcXFxcbiAgICB0cnVlX3VybCA9IHRydWVfdXJsXFxcXG59XFxcXG52YXIgaHRtbCA9IGZldGNoKHRydWVfdXJsLCB7XFxcXG4gICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IFBDX1VBXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH0pO1xcXFxuXFxcXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2R0Zmw/cnVsZT3mqKHmnb/Ct1EnKSkucnVsZSlcXFxcblxcXFxuICAgY29uc3QgYmQ9IHBkZmEoaHRtbCwgXFxcXFxcXCJib2R5JiYuY29tbWVudHMmJmxpXFxcXFxcXCIpXFxcXG4gICAgICAgIGJkLmZvckVhY2goeCA9PiB7XFxcXG5kLnB1c2goe1xcXFxuICAgIGNvbF90eXBlOiAnYXZhdGFyJyxcXFxcbiAgICB0aXRsZTpwYXJzZURvbUZvckh0bWwoeCwgJy51c2VyJiZ0aXRsZSYmVGV4dCcpK3BhcnNlRG9tRm9ySHRtbCh4LCAnLmFsbHN0YXI1MCYmc3BhbicpLFxcXFxuICAgIGltZzpwZCh4LCAnaW1nJiZzcmMnKSxcXFxcbiAgICB1cmw6cGQoeCwgJ2EmJmhyZWYnKSxcXFxcbiAgICB9KTtcXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcXFxuICAgIHRpdGxlOnBhcnNlRG9tRm9ySHRtbCh4LCAnLm5sc3QmJmEsMiYmVGV4dCcpLFxcXFxuICAgIHVybDpwZCh4LCAnYSYmaHJlZicpLFxcXFxuICAgIH0pO1xcXFxuICBsZXQg6K+75Lmm56yU6K6wID0gcGFyc2VEb21Gb3JIdG1sKHgsICcuYWxsJiZUZXh0Jyk7XFxcXG5kLnB1c2goe1xcXFxuICAgIHRpdGxlOifigJzigJzigJ3igJ08YmlnPjxzcGFuPicgK+ivu+S5pueslOiusCArICc8L3NwYW4+PC9iaWc+JyxcXFxcbiAgICB1cmw6ICQoKS5ydWxlKCjor7vkuabnrJTorrApID0+IHtcXFxcbiAgICAgICAgc2V0UmVzdWx0KFt7XFxcXG4gICAgICAgICAgICB0aXRsZTog6K+75Lmm56yU6K6wLFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6ICdyaWNoX3RleHQnXFxcXG4gICAgICAgIH1dKVxcXFxuICAgIH0sIOivu+S5pueslOiusCksXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG59KTtcXFxcbn0pXFxcXG5zZXRSZXN1bHQoZClcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLkuoznuqdcXFwiLFxcXCJwYXRoXFxcIjpcXFwiZXJqaVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbnZhciBkID0gIFtdO1xcXFxuaHRtbCA9IGdldFJlc0NvZGUoKTtcXFxcbmxldCBsaXN0ID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsJ2JvZHkmJmEnKTtcXFxcbmxldCB0aXRsZSA9IHBhcnNlRG9tRm9ySHRtbChodG1sLCdoMSYmVGV4dCcpO1xcXFxubGV0IGlkID0gcGRmYShodG1sLCdib2R5JiYucGFnZScpXFxcXG5sZXQgaXQgPSBwZGZoKGlkLCdzZWN0aW9uJiZkYXRhLWlkJyk7XFxcXG4vL+S6jOe6p+WktOmDqOeugOS7iyjkvZzogIXvvIzor4TliIbvvIzlh7rniYjnpL7nrYkpXFxcXG5kLnB1c2goe1xcXFxuICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1cicsXFxcXG4gICAgZXh0cmE6IHtncmFkaWVudDogdHJ1ZX0sXFxcXG4gICAgdGl0bGU6cGFyc2VEb21Gb3JIdG1sKGh0bWwsICdoMSYmVGV4dCcpK3BhcnNlRG9tRm9ySHRtbChpZCwnc2VjdGlvbiYmZGF0YS1pZCcpKydcXFxcXFxcXG4nK3BhcnNlRG9tRm9ySHRtbChodG1sLCAnLnJhdGluZ19zZWxmJiZUZXh0JykrJ1xcXFxcXFxcdCcrJ+WKm+iNkOaMh+aVsDonK3BhcnNlRG9tRm9ySHRtbChodG1sLCAnLnJhdGluZ19wZXImJlRleHQnKSxcXFxcbiAgICBkZXNjOnBhcnNlRG9tRm9ySHRtbChodG1sLCAnLnN1YmplY3QmJlRleHQnKSxcXFxcbiAgICBpbWc6cGFyc2VEb20oaHRtbCwgJ2ltZyYmc3JjJyksXFxcXG4gICAgfSk7XFxcXG52YXIgdXJsID1NWV9VUkwuc3BsaXQoJyMnKVswXTtcXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6ICdpY29uX3NtYWxsXzQnLFxcXFxuICAgIHRpdGxlOifnn63or4QnLCBpbWc6J2h0dHBzOi8vZ2hwcm94eS5uZXQvaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xzMTI1NzgxMDAzL2xtdHViaWFvL21haW4vdW5mcmFtZWQvMjYyLnBuZycsXFxcXG4gICAgdXJsOlxcXFxcXFwiaGlrZXI6Ly9wYWdlL2NvbW1lbnRcXFxcXFxcIixcXFxcbiAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgaHJlZjogU3RyaW5nKCdoaWtlcjovL2VtcHR5IyMnK3VybCsnY29tbWVudHMvP3N0YXJ0PWZ5cGFnZUAtMUAqMjBAJmxpbWl0PTIwJnN0YXR1cz1QJnNvcnQ9c2NvcmUnKSxcXFxcbiAgICAgICAgfVxcXFxuICAgIH0pO1xcXFxuXFxcXG5kLnB1c2goe1xcXFxuICAgIGNvbF90eXBlOiAnaWNvbl9zbWFsbF80JyxcXFxcbiAgICB0aXRsZTon5Y6f5paH5pGY5b2VJywgaW1nOidodHRwczovL2docHJveHkubmV0L2h0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9sczEyNTc4MTAwMy9sbXR1Ymlhby9tYWluL3VuZnJhbWVkLzM1Ni5wbmcnLFxcXFxuICAgIHVybDpcXFxcXFxcImhpa2VyOi8vcGFnZS9ibG9ja3F1b3RlXFxcXFxcXCIsXFxcXG5leHRyYToge1xcXFxuICAgICAgICAgICBocmVmOiBTdHJpbmcoJ2hpa2VyOi8vZW1wdHkjIycrdXJsKydibG9ja3F1b3Rlcz9zb3J0PXNjb3JlJnN0YXJ0PWZ5cGFnZUAtMUAqMjBAJyksXFxcXG4gICAgICAgIH1cXFxcbiAgICB9KTtcXFxcblxcXFxuZC5wdXNoKHtcXFxcbiAgICBjb2xfdHlwZTogJ2ljb25fc21hbGxfNCcsXFxcXG4gICAgdGl0bGU6J+ivu+S5pueslOiusCcsIGltZzonaHR0cHM6Ly9naHByb3h5Lm5ldC9odHRwczovL3Jhdy5naXRodWJ1c2VyY29udGVudC5jb20vbHMxMjU3ODEwMDMvbG10dWJpYW8vbWFpbi91bmZyYW1lZC8zNzUucG5nJyxcXFxcbiAgICB1cmw6XFxcXFxcXCJoaWtlcjovL3BhZ2UvYW5ub3RhdGlvblxcXFxcXFwiLFxcXFxuZXh0cmE6IHtcXFxcbiAgICAgICAgICAgIGhyZWY6IFN0cmluZygnaGlrZXI6Ly9lbXB0eSMjJyt1cmwrJ2Fubm90YXRpb24/c29ydD1yYW5rJnN0YXJ0PWZ5cGFnZUAtMUAqMjBAJyksXFxcXG4gICAgICAgIH1cXFxcbiAgICB9KTtcXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6ICdpY29uX3NtYWxsXzQnLFxcXFxuICAgIHRpdGxlOifkuabor4QnLCBpbWc6J2h0dHBzOi8vZ2hwcm94eS5uZXQvaHR0cHM6Ly9yYXcuZ2l0aHVidXNlcmNvbnRlbnQuY29tL2xzMTI1NzgxMDAzL2xtdHViaWFvL21haW4vdW5mcmFtZWQvMjMxLnBuZycsXFxcXG4gICAgdXJsOlxcXFxcXFwiaGlrZXI6Ly9wYWdlL3Jldmlld3NcXFxcXFxcIixcXFxcbmV4dHJhOiB7XFxcXG4gICAgICAgICAgICBocmVmOiBTdHJpbmcoJ2hpa2VyOi8vZW1wdHkjIycrdXJsKydyZXZpZXdzP3ZlcnNpb249MScpLFxcXFxuICAgICAgICB9XFxcXG4gICAgfSk7XFxcXG5kLnB1c2goe1xcXFxuICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaycsXFxcXG4gICAgfSlcXFxcbnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9zZWFyY2h6eScpO1xcXFxuZC5wdXNoKHtcXFxcbiAgICBjb2xfdHlwZTogJ2xpbmVfYmxhbmsnLFxcXFxuICAgIH0pO1xcXFxuZC5wdXNoKHtcXFxcbiAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcsXFxcXG4gICAgdGl0bGU6J/Cfk4TkuabnsY3kv6Hmga8nLFxcXFxuZXh0cmE6e1xcXFxuICAgICAgICBcXFxcbiAgICAgICAgdGV4dFNpemU6MjIsXFxcXG4gICAgfX0sXFxcXG4gICAge1xcXFxuY29sX3R5cGU6ICdsaW5lJyxcXFxcbiAgICB9KTtcXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6ICdyaWNoX3RleHQnLFxcXFxuICAgIHRpdGxlOnBhcnNlRG9tRm9ySHRtbChodG1sLCAnLmludHJvJiZwJiZUZXh0JyksXFxcXG4gICAgZGVzYzonJyxcXFxcbiAgICB9KTtcXFxcbmxldCDlhoXlrrnnroDku4sgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5hbGwmJlRleHQnKTtcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6ICflhoXlrrnnroDku4snLFxcXFxuICAgIHVybDogJCgpLnJ1bGUoKOWGheWuueeugOS7iykgPT4ge1xcXFxuICAgICAgICBzZXRSZXN1bHQoW3tcXFxcbiAgICAgICAgICAgIHRpdGxlOiDlhoXlrrnnroDku4ssXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXFxcblxcXFxuICAgICAgICB9XSlcXFxcbiAgICB9LCDlhoXlrrnnroDku4spLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcXFxufSk7XFxcXG5cXFxcbmxldCDkvZzogIXnroDku4sgPSBwYXJzZURvbUZvckh0bWwoaHRtbCwgJy5pbmRlbnQsMyYmVGV4dCcpO1xcXFxuZC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJ+S9nOiAheeugOS7iycsXFxcXG4gICAgdXJsOiAkKCkucnVsZSgo5L2c6ICF566A5LuLKSA9PiB7XFxcXG4gICAgICAgIHNldFJlc3VsdChbe1xcXFxuICAgICAgICAgICAgdGl0bGU6IOS9nOiAheeugOS7iyxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbG9uZ190ZXh0J1xcXFxuICAgICAgICB9XSlcXFxcbiAgICB9LCDkvZzogIXnroDku4spLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcXFxufSk7XFxcXG5sZXQg5Lib5Lmm5L+h5oGvID0gcGFyc2VEb21Gb3JIdG1sKGh0bWwsICcuc3ViamVjdF9zaG93JiZkaXYmJlRleHQnKTtcXFxcbmQucHVzaCh7XFxcXG4gICAgdGl0bGU6J+S4m+S5puS/oeaBrycsXFxcXG4gICAgdXJsOiAkKCkucnVsZSgo5Lib5Lmm5L+h5oGvKSA9PiB7XFxcXG4gICAgICAgIHNldFJlc3VsdChbe1xcXFxuICAgICAgICAgICAgdGl0bGU6IOS4m+S5puS/oeaBryxcXFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnbG9uZ190ZXh0J1xcXFxuICAgICAgICB9XSlcXFxcbiAgICB9LCDkuJvkuabkv6Hmga8pLFxcXFxuICAgIGNvbF90eXBlOiAndGV4dF8zJ1xcXFxuICAgIH0pO1xcXFxuXFxcXG5kLnB1c2goe1xcXFxuICAgIGNvbF90eXBlOiAnbGluZV9ibGFuaycsXFxcXG4gICAgfSk7XFxcXG5kLnB1c2goe1xcXFxuICAgIGNvbF90eXBlOiAncmljaF90ZXh0JyxcXFxcbiAgICB0aXRsZTon8J+RjeebuOS8vOaOqOiNkCcsXFxcXG5leHRyYTp7ICAgICBcXFxcbiAgICAgICAgdGV4dFNpemU6MjIsXFxcXG4gICAgfVxcXFxuICAgIH0gICwge1xcXFxuY29sX3R5cGU6ICdsaW5lJyxcXFxcbiAgICB9KTsgICBcXFxcbmNvbnN0ICByZWM9IHBkZmEoaHRtbCwgXFxcXFxcXCJib2R5JiZkbFxcXFxcXFwiKVxcXFxuICBmb3IgKHZhciBpID0gNjsgaSA8IHJlYy5sZW5ndGgmJiBpPDE1OyBpKyspIHtcXFxcbmQucHVzaCh7XFxcXG4gICAgY29sX3R5cGU6ICdtb3ZpZV8zJyxcXFxcbiAgICB0aXRsZTpwZGZoKHJlY1tpXSwgJ2RkJiZUZXh0JyksXFxcXG4gICAgaW1nOnBkKHJlY1tpXSwgJ2ltZyYmc3JjJyksXFxcXG4gICAgdXJsOnBkKHJlY1tpXSwgJ2EmJmhyZWYnKSsnI2ltbWVyc2l2ZVRoZW1lIycrJ0BydWxlPWpzOnZhciBkID0gW107JC5yZXF1aXJlKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL2VyamlcXFxcXFxcIiknLFxcXFxuICAgIH0pO1xcXFxufVxcXFxuZC5wdXNoKHtjb2xfdHlwZTogJ2JpZ19iaWdfYmxhbmtfYmxvY2snfSk7XFxcXG5zZXRSZXN1bHQoZCk7XFxcIn1dXCJ9IiwicGljVXJsIjoiaHR0cHM6Ly9pbWc5LmRvdWJhbmlvLmNvbS92aWV3L3N1YmplY3Qvcy9wdWJsaWMvczI5ODY5OTI2LmpwZyIsInRpdGxlIjoi5rS7552AIn0=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement