Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@GithubApp@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6ImJvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJmgyJiZUZXh0IiwidGl0bGUiOiJHaXRodWJBcHAiLCJhdXRob3IiOiJSOuS4jeimgeS/ruaUueWwj+eoi+W6j+WQje+8jOWPr+iDveS8muaKpemUmSIsInVybCI6Imhpa2VyOi8vZW1wdHkjIyIsInZlcnNpb24iOjIwMjQwNzEyLCJjb2xfdHlwZSI6Im1vdmllXzMiLCJjbGFzc19uYW1lIjoiIiwidHlwZSI6InZpZGVvIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6XG52YXIgZCA9IFtdXG5cbnZhciDmm7TmlrAgPSAyNCAvLyjlsI/ml7Yp5o+Q6YaS5qOA5rWL5pu05paw6Ze06ZqU5pe26Ze0XG52YXIg6Ze06ZqUID0gY29uZmlnLumXtOmalFxuXG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL+a3u+WKoCcsIHt9KSkucnVsZSlcblxuZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9kYXRhJywge30pKS5ydWxlKVxuXG4vLyDorr7nva7ljZXlh7vmk43kvZzmmK/ov5vlhaXkuoznuqfpobXpnaLov5jmmK/mjpLluo9cbnZhciBjbGlja19hY3Rpb24gPSBnZXRNeVZhcignY2xpY2tfYWN0aW9uJywgJ2NsaWNrJylcblxuaWYgKOmXtOmalCA+PSA4ICl7XG52YXIgdXBkYXRlO1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS91cGxvYWQnLCB7fSkpLnJ1bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgeWRhdGEgPSBmZXRjaChcImh0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwXCIse3RpbWVvdXQ6MjAyM30pXG4gICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZSA9ICBiYXRjaHVwbG9hZCh5ZGF0YSwgJ0dpdGh1YkFwcCcpXG52YXIgcj0kLnJlcXVpcmUoXCJwdXRcIilcbmV2YWxQcml2YXRlSlMoJ3E3SnFYcmVIWmZVWFhzMzZFYkF4eVNrZXhPRFlqemtPNzZIdWhyekZXR1VuVDRPUzJ3NmYxcmp2NkxOVHdkb2xsb0Q0QXNQVW85VVFKSFB3S2MwM3FBPT0nKVxuci5wdXQocHV0dXJsLHtcbiAgICBoZWFkZXJzOiB7XG4gICAgICAgIFwiY29udGVudC10eXBlXCI6IFwibXVsdGlwYXJ0L2Zvcm0tZGF0YTsgYm91bmRhcnk9LS0ke2JvdW5kYXJ5fVwiXG4gICAgfVxufSwge1xuICAgIGM6IHVwZGF0ZSxcbn0pXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2gge31cbn1cblxuZC5wdXNoKHtcbiAgICBjb2xfdHlwZTogJ2lucHV0JyxcbiAgICB0aXRsZTogJ/CfjbMnLFxuICAgIGRlc2M6ICfmkJzntKJBcHAnLFxuICAgIHVybDogJ3B1dE15VmFyKFwiZmlsdGVyQXBwV29yZFwiLCBpbnB1dCk7IHJlZnJlc2hQYWdlKCk7XCJoaWtlcjovL2VtcHR5XCInLFxufSlcblxuZnVuY3Rpb24gY29tcGFyZUFycmF5cyhhcnIxLCBhcnIyKSB7XG4gICAgbGV0IGRpZmZlcmVudEluZGljZXMgPSBbXVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyMi5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoIWFycjEuaW5jbHVkZXMoYXJyMltpXSkpIHtcbiAgICAgICAgICAgIGRpZmZlcmVudEluZGljZXMucHVzaChpKVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkaWZmZXJlbnRJbmRpY2VzXG59XG5cbnZhciBkYXRhID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnKSB8fCAnW10nKVxuLy9sb2coZGF0YSlcbnZhciB2ZXJzaW9uID0gZ2V0SXRlbSgndicpLnNwbGl0KCfwn5SlJylcbnZhciBhcHB2cyA9IFtdXG5cbmlmIChNWV9QQUdFID09IDEpIHtcbiAgICBkLnB1c2goXG4gICAgICAgIHtcbiAgICAgICAgICAgIHRpdGxlOlxuICAgICAgICAgICAgICAgIOmXtOmalCA8IOabtOaWsCA/ICfigJzigJzigJ3igJ0nICsgJ1xcdOKamSDmo4DmtYvmm7TmlrAg4pqZJy5ib2xkKCkgOiAn4oCc4oCc4oCd4oCdJyArICdcXHTimpkg5qOA5rWL5pu05pawIOKamScuYm9sZCgpLmZvbnRjb2xvcignI0ZGMDBGRicpLFxuICAgICAgICAgICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaWNvbl9zZWFyY2g2JyxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnaWNvbl8yX3JvdW5kJyxcbiAgICAgICAgICAgIHVybDpcbiAgICAgICAgICAgICAgICAnaGlrZXI6Ly9lbXB0eScgK1xuICAgICAgICAgICAgICAgICQoJycpLmxhenlSdWxlKFxuICAgICAgICAgICAgICAgICAgICAoZGF0YSwgdmVyc2lvbiwgY29tcGFyZUFycmF5cykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRhdGEubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB1cmxzID0gW11cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgVXJscyA9IGRhdGEubWFwKChpKSA9PiBpLnNwbGl0KCfwn5SlJylbMV0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVXJscy5mb3JFYWNoKCh1KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybHMucHVzaCh7IHVybDogdSB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHZzID0gYmYodXJscykubWFwKChoKSA9PiB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHBkZmgoaCwgJ2JvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJmgyJiZUZXh0JylcbiAgfSBjYXRjaCAoZSkge1xuICAgIFxuICAgIHJldHVybiBwZGZoKGgsICdib2R5JiYjcmVwby1jb250ZW50LXBqYXgtY29udGFpbmVyJiZoMiYmVGV4dCcpXG4gICAgICAgXG4gIH1cbn0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByID0gY29tcGFyZUFycmF5cyh2ZXJzaW9uLCB2cylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IHIuam9pbign8J+UpScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHYgPSB2cy5qb2luKCfwn5SlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodi5pbmNsdWRlcygn8J+UpfCflKUnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJldHVybiAndG9hc3Q6Ly/mo4DmtYvlpLHotKXvvIzor7fph43or5UnXG4gICAgLy8g5qOA5rWL5aSx6LSl77yM5a6a5L2N5aSx6LSlYXBw77yM6I635Y+WYXBw55qE5ZCN5a2X5ZKM5L2N572uXG4gICAgdmFyIGYgPSBbXVxuICAgIHZzLm1hcCgoZWxlLCBpbmRleCkgPT4ge1xuICAgICAgICBpZiAoZWxlID09IFwiXCIpIHtcbiAgICAgICAgICAgIGYucHVzaChkYXRhW2luZGV4XS5zcGxpdChcIvCflKVcIilbMF0gKyBgKCR7aW5kZXggKyAxfSlgKTtcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIC8vIHRvYXN05o+Q56S65pyJ5ZOq5LqbYXBwKOW4puS9jee9rinmo4DmtYvlpLHotKXkuoZcbiAgICBmID0gZi5qb2luKFwiLCBcIik7XG4gICAgcmV0dXJuIFwidG9hc3Q6Ly/mo4DmtYvlpLHotKU6IOOAkFwiICsgZiArIFwi44CRXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcnNpb24ubGVuZ3RoIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SXRlbSgndicsIHYpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/liJ3lp4vniYjmnKzlj7fmiJDlip8nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJdGVtKCdzJywgcylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEl0ZW0oJ3YnLCB2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5qOA5rWL5pyJJyArIHIubGVuZ3RoICsgJ+S4quabtOaWsH4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/msqHmnInmlbDmja5+J1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICBkYXRhLFxuICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uLFxuICAgICAgICAgICAgICAgICAgICBjb21wYXJlQXJyYXlzXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgJ1xcdOKamSDmm7TlpJrlip/og70g4pqZJy5ib2xkKCksXG4gICAgICAgICAgICBpbWc6ICdoaWtlcjovL2ltYWdlcy9pY29uX21lbnU2JyxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnaWNvbl8yX3JvdW5kJyxcbiAgICAgICAgICAgIHVybDogJChcbiAgICAgICAgICAgICAgICBbXG4gICAgICAgICAgICAgICAgICAgICflr7zlhaXliIbkuqvmlbDmja4nLFxuICAgICAgICAgICAgICAgICAgICAn5YiG5Lqr5Y6f5aeL5pWw5o2uJyxcbiAgICAgICAgICAgICAgICAgICAgJ+WIhuS6q+S6keWJqui0tOadvycsXG4gICAgICAgICAgICAgICAgICAgICfliIbkuqvkupHlj6Pku6QnLFxuICAgICAgICAgICAgICAgICAgICAn5ouJ5Y+W4pqg77iP5LqR5pWw5o2uJyxcbiAgICAgICAgICAgICAgICAgICAgJ+WQiOW5tuacrOWcsOWSjOS6kScsXG4gICAgICAgICAgICAgICAgICAgICfmgaLlpI3pu5jorqTmlbDmja4nLFxuICAgICAgICAgICAgICAgICAgICAn5riF56m65pys5Zyw5pWw5o2uJyxcbiAgICAgICAgICAgICAgICAgICAgJ+e8lui+kei/nOeoi+aVsOaNricsXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICApLnNlbGVjdCgobWRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gJ+WvvOWFpeWIhuS6q+aVsOaNricpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJycsICfmlK/mjIHljp/lp4vmlbDmja7lkozkupHliarotLTmnb/liIbkuqsnKS5pbnB1dCgocnVsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoJ2hpa2VyOi8vcGFnZS9iYXRjaEltP3J1bGU9JyArIHJ1bGUpKS5ydWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoJ0dpdGh1YkFwcOWIhuS6qyMjJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dCA9IGJhc2U2NERlY29kZShwYXJzZVBhc3RlKGlucHV0LnNwbGl0KCcjI1xcbicpWzFdKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuc3RhcnRzV2l0aCgnR2l0aHViQXBw5YiG5LqrLCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXQgPSBiYXNlNjREZWNvZGUocGFyc2VQYXN0ZShpbnB1dC5zcGxpdCgnXFxuJylbMV0uc3BsaXQoJ0AnKVswXSkpXG4gICAgICAgICAgICAgICAgICAgICAgICB9IFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGJhdGNoSW1wb3J0KGlucHV0LCBydWxlKVxuICAgICAgICAgICAgICAgICAgICB9LCAnR2l0aHViQXBwJylcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICflkIjlubbmnKzlnLDlkozkupEnKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdCgnaGlrZXI6Ly9wYWdlL2JhdGNoSW0nLCB7fSkpLnJ1bGUpXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgeWRhdGEgPSBmZXRjaChcImh0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwXCIse3RpbWVvdXQ6MjAyM30pXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmF0Y2hJbXBvcnQoeWRhdGEsICdHaXRodWJBcHAnKVxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/ojrflj5blpLHotKXvvIzor7fph43or5UnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICfmi4nlj5bimqDvuI/kupHmlbDmja4nKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9kYXRhJywge30pKS5ydWxlKVxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHlkYXRhID0gSlNPTi5wYXJzZShmZXRjaChcImh0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwXCIse3RpbWVvdXQ6MjAyM30pKVxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsIEpTT04uc3RyaW5naWZ5KHlkYXRhKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/ojrflj5blpLHotKXvvIzor7fph43or5UnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICfmgaLlpI3pu5jorqTmlbDmja4nKSB7XG4vL2V2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KCdoaWtlcjovL3BhZ2UvZGF0YScsIHt9KSkucnVsZSlcbndyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLCBKU09OLnN0cmluZ2lmeShtZGF0YSkpXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICB9ZWxzZSBpZiAoaW5wdXQgPT0gJ+a4heepuuacrOWcsOaVsOaNricpIHtcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsICcnKVxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gJ+e8lui+kei/nOeoi+aVsOaNricpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJycsICflr4bnoIFcXG7kuI3nn6XpgZPor7fnlZnnqbonKS5pbnB1dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3dlYjovL2h0dHBzOi8vaWdkdXgudG9wL35HaXRodWJBcHAwOicgKyBpbnB1dFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAkKCfnoa7lrprlr7zlh7rvvJ8nKS5jb25maXJtKCh0eXBlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29uZmlnID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnKSB8fCAnW10nKVxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUgPT0gJ+WIhuS6q+S6keWJqui0tOadvycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9ICdHaXRodWJBcHDliIbkuqsjI1xcbicgKyBzaGFyZVBhc3RlKGJhc2U2NEVuY29kZShKU09OLnN0cmluZ2lmeShjb25maWcpKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSAn5YiG5Lqr5LqR5Y+j5LukJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkYXRhID1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0dpdGh1YkFwcOWIhuS6qyzlpI3liLblkI7miZPlvIDova/ku7bljbPlj6/lr7zlhaVcXG4nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hhcmVQYXN0ZShiYXNlNjRFbmNvZGUoSlNPTi5zdHJpbmdpZnkoY29uZmlnKSkpICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0BpbXBvcnQ9anM6ZXZhbChKU09OLnBhcnNlKGZldGNoKFwiaGlrZXI6Ly9wYWdlL2Nsb3VkP3J1bGU9R2l0aHViQXBwXCIpKS5ydWxlKSdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSBKU09OLnN0cmluZ2lmeShjb25maWcpXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2NvcHk6Ly8nICsgZGF0YVxuICAgICAgICAgICAgICAgICAgICB9LCBpbnB1dClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LG1kYXRhKSxcbiAgICAgICAgfVxuICAgIClcbn1cblxuZC5wdXNoKHtcbiAgICBjb2xfdHlwZTogJ2JpZ19ibGFua19ibG9jaycsXG59KVxuXG52YXIgc3MgPSBnZXRJdGVtKCdzJykuc3BsaXQoJ/CflKUnKVxuZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSsrKSB7XG4gICAgdmFyIGZpbHRlckFwcFdvcmQgPSBnZXRNeVZhcignZmlsdGVyQXBwV29yZCcsICcnKVxuICAgIHZhciBBcHAgPSBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMF1cbiAgICB2YXIgVXJscyA9IGRhdGFbaV0uc3BsaXQoJ/CflKUnKVsxXVxuICAgIHZhciBJbWcgPSBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMl1cblxuYXBwdnMucHVzaChBcHArJ++8muOAkCcrdmVyc2lvbltpXSsn44CRJylcblxuICAgIGlmIChBcHAudG9Mb3dlckNhc2UoKS5pbmRleE9mKGZpbHRlckFwcFdvcmQudG9Mb3dlckNhc2UoKSkgPT0gLTEpIHtcbiAgICAgICAgY29udGludWVcbiAgICB9XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IHNzLmluZGV4T2YoaS50b1N0cmluZygpKSA9PSAnLTEnID8gQXBwIDogJ+KAnOKAnOKAneKAnScgKyBBcHAuZm9udGNvbG9yKCcjRkYwMEZGJyksXG4gICAgICAgIGRlc2M6IGkgKyAxLFxuICAgICAgICBpbWc6IEltZyxcbiAgICAgICAgLy8gdXJsOiBVcmxzLFxuICAgICAgICAvLyB1cmw6IFwidG9hc3Q6Ly/lh4blpIfmjpLluo/mi4lcIixcblx0XHQvLyDljZXlh7vmk43kvZw6IOi/lOWbnnVybHPvvIxcblx0XHQvLyDmjpLluo/mk43kvZw6IOagueaNruiOt+WPlueahOenu+WKqEFwcOS9jee9rm1vdmVfaW5kZXjlkozngrnlh7vopoHmlL7nva7kvY3nva5yZXBsYWNlX2luZGV477yM6L+b6KGM5a+5R2l0aHViQXBwLnR4dOeahOWGheWuuei/m+ihjOmHjeaWsOaOkuW6j+W5tumHjeaWsOWGmeWbnlxuICAgICAgICB1cmw6XG4gICAgICAgICAgICBjbGlja19hY3Rpb24gPT0gJ2NsaWNrJ1xuICAgICAgICAgICAgICAgID8gKFVybHMuZW5kc1dpdGgoJ3RhZ3MnKT8gXCJ3ZWI6Ly9cIiArIFVybHMgOiBVcmxzKVxuICAgICAgICAgICAgICAgIDogJCgpLmxhenlSdWxlKChyZXBsYWNlX2luZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ2NsaWNrX2FjdGlvbicsICdjbGljaycpXG4gICAgICAgICAgICAgICAgICAgICAgbGV0IG1vdmVfaW5kZXggPSBnZXRNeVZhcignbW92ZV9pbmRleCcsIDApXG4gICAgICAgICAgICAgICAgICAgICAvLyAkLmxvZygn56e75Yqo55qE57Si5byV5Li6OiAnICsgbW92ZV9pbmRleClcbiAgICAgICAgICAgICAgICAgICAgIC8vICQubG9nKCfmm7/mjaLnmoTkvY3nva7kuLo6ICcgKyByZXBsYWNlX2luZGV4KVxuICAgICAgICAgICAgICAgICAgICAgIGxldCBjb25maWcgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcpKVxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb25maWcuc3BsaWNlKG1vdmVfaW5kZXgsIDEpWzBdXG4gICAgICAgICAgICAgICAgICAgICAgY29uZmlnLnNwbGljZShyZXBsYWNlX2luZGV4LCAwLCBlbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLCBKU09OLnN0cmluZ2lmeShjb25maWcpKVxuICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/mjpLluo/lrozmr5UnXG4gICAgICAgICAgICAgICAgICB9LCBpKSxcbiAgICAgICAgY29sX3R5cGU6ICdpY29uXzRfY2FyZCcsXG4gICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICBzczogc3MsXG4gICAgICAgICAgICBpOiBpLFxuICAgICAgICAgICAgbG9uZ0NsaWNrOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJyDnvJYg6L6RICcsXG4gICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKFxuICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCgnaGlrZXI6Ly9lbXB0eScpLnJ1bGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRQYWdlVGl0bGUoJ+e8lui+kUdpdGh1YkFwcCcpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZCA9IFtdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WQjeensCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICfovpPlhaVBcHDlkI3lrZcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCduYScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZGF0YVtpXS5zcGxpdCgn8J+UpScpWzBdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogLTEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXCJwdXRNeVZhcignbmEnLGlucHV0KVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WcsOWdgCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6ICfovpPlhaVnaXRodWIgcmVsZWFzZXMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdyZWxlYXNlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMV0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcInB1dE15VmFyKCdyZWxlYXNlJyxpbnB1dClcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflm77moIcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiAn6L6T5YWl5Zu+5qCH5Zyw5Z2AJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcignaWNvJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBkYXRhW2ldLnNwbGl0KCfwn5SlJylbMl0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndGV4dGFyZWEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcInB1dE15VmFyKCdpY28nLGlucHV0KVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyAn56Gu6K6k5L+u5pS5Jy5mb250Y29sb3IoJyNGRjAwRkYnKS5iaWcoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRhdGEsIGkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZ2V0TXlWYXIoJ25hJykgPT0gJycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WQjeWtl+S4jeiDveS4uuepun4nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ3JlbGVhc2UnKSA9PSAnJyB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhL15odHRwc1xcOlxcL1xcL2dpdGh1YlxcLmNvbVxcLy4qP1xcLyhyZWxlYXNlc3x0YWdzKS8udGVzdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdyZWxlYXNlJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v6K+36L6T5YWl5q2j56Gu55qE5Zyw5Z2AfidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXRlbSA9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNeVZhcignbmEnLCAnJykgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ/CflKUnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdyZWxlYXNlJywgJycpLnRvTG93ZXJDYXNlKCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ/CflKUnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdpY28nLCAnJylcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVtpXSA9IGl0ZW1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGRhdGEpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFjayh0cnVlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5L+u5pS55oiQ5YqffidcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHsgbGluZVZpc2libGU6IGZhbHNlIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcg56e7IOS9jSAnLFxuICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhLCBtb3ZlX2luZGV4KSA9PiB7XG5cdFx0XHRcdFx0XHRcdC8vIOiuvue9ruWNleWHu+WKqOS9nOS4uuaOkuW6j++8jOiOt+WPluimgeenu+WKqEFwcOeahOS9jee9rm1vdmVfaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignY2xpY2tfYWN0aW9uJywgJ21vdmUnKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdtb3ZlX2luZGV4JywgbW92ZV9pbmRleClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gJCgnJywgJ+ivt+i+k+WFpeenu+WKqOWIsOesrOWHoOS9jVxcbjHkuLrnva7pobYsJytkYXRhLmxlbmd0aCsn5Li6572u5bqVJykuaW5wdXQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIChkYXRhLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICB2YXIgdGVtcCA9IGRhdGFbaV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIGlmIChpbnB1dCAtIDEgPCBpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgZGF0YS5zcGxpY2UoaW5wdXQgLSAxLCAwLCB0ZW1wKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgIGRhdGEuc3BsaWNlKGkgKyAxLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBkYXRhLnNwbGljZShpbnB1dCwgMCwgdGVtcClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgICAgICBkYXRhLnNwbGljZShpLCAxKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgd3JpdGVGaWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgICAgICdoaWtlcjovL2ZpbGVzL3J1bGVzL2Fwb2xsby9HaXRodWJBcHAvR2l0aHViQXBwLnR4dCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoZGF0YSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICAgICAgcmV0dXJuICd0b2FzdDovL+enu+S9jeaIkOWKn34nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAgIGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyApXG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcg5YigIOmZpCAnLFxuICAgICAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZyhcbiAgICAgICAgICAgICAgICAgICAgICAgIChkYXRhLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5zcGxpY2UoaSwgMSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBpXG4gICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnIOa3uyDliqAgJyxcbiAgICAgICAgICAgICAgICAgICAganM6ICQudG9TdHJpbmcoXG4gICAgICAgICAgICAgICAgICAgICAgICAo5re75YqgLCBpKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5JyArIOa3u+WKoFxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIOa3u+WKoCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcgJyArIChpICsgMSkgKyAnICcsXG4gICAgICAgICAgICAgICAgICAgIGpzOiAkLnRvU3RyaW5nKChkYXRhLHZlcnNpb24saSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGFpID0gSlNPTi5zdHJpbmdpZnkoW2RhdGFbaV1dKVxuICAgICAgICAgICAgICAgICAgICAgICAgdG9hc3QoJ+eJiOacrOWPt++8micgKyB2ZXJzaW9uW2ldKVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiY29weTovL1wiICsgZGF0YWlcbiAgICAgICAgICAgICAgICAgICAgfSxkYXRhLHZlcnNpb24saSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgfSlcbn1cblxuZC5wdXNoKHtcbiAgICB0aXRsZTogJ+a3u+WKoCcsXG4gICAgaW1nOiAnaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL0lLV2hSLnBuZycsXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScgKyDmt7vliqAsXG4gICAgY29sX3R5cGU6ICdpY29uXzRfY2FyZCcsXG4gICAgZXh0cmE6IHtcbiAgICAgICAgaTogZGF0YS5sZW5ndGgsXG4gICAgICAgIGxvbmdDbGljazogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHRpdGxlOiAn5bm46L+Q5pelJyxcbiAgICAgICAgICAgICAgICBqczogJC50b1N0cmluZygoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBudW1iID0gMSArIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDMxKVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5L2g55qE5bm46L+Q5pel5piv44CQJyArIG51bWIgKyAn44CR5pelJ1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICB9LFxufSlcblxuICAgICAgLy9sb2coYXBwdnMuam9pbignXFxuJykpXG5cbnNldFJlc3VsdChkKSIsInNlYXJjaF91cmwiOiIiLCJncm91cCI6IiMj5bi455SoIiwic2VhcmNoRmluZCI6IiIsImRldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJkZXRhaWxfZmluZF9ydWxlIjoianM6XG5hZGRMaXN0ZW5lcihcIm9uQ2xvc2VcIiwgJC50b1N0cmluZygoKSA9PiB7XG4gICAgcmVmcmVzaFBhZ2UoZmFsc2UpXG59KSk7XG52YXIgZCA9IFtdXG52YXIgaHRtbCA9IGZldGNoKE1ZX1VSTClcblxudmFyIHNzID0gTVlfUEFSQU1TLnNzXG52YXIgaSA9IE1ZX1BBUkFNUy5pXG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCA9IHNzLmluZGV4T2YoaS50b1N0cmluZygpKVxuICAgICAgICAgICAgICAgICAgICBpZihpbmRleCAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgc3Muc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNzLmxlbmd0aDwxKVxuICAgICAgICAgICAgICAgICAgICAgICB7dmFyIHMgPSAnJ31lbHNle1xuICAgICAgICAgICAgICAgICAgICAgICB2YXIgcyA9IHNzLmpvaW4oJ/CflKUnKX0gICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgICBzZXRJdGVtKCdzJywgcylcbiAgICAgICAgICAgICAgICAgICAgIH1cblxudmFyIGF1dGhvciA9IHBkZmgoaHRtbCwnYm9keSYmZGl2W2RhdGEtaHBjXSYmc2VjdGlvbiYmLm1iLW1kLTImJlRleHQnKVxudmFyIGltZyA9IHBkZmgoaHRtbCwnYm9keSYmZGl2W2RhdGEtaHBjXSYmc2VjdGlvbiYmLm1iLW1kLTImJmltZyYmc3JjJylcbnZhciB2ZXJzaW9uID0gcGRmaChodG1sLCdib2R5JiZkaXZbZGF0YS1ocGNdJiZzZWN0aW9uJiZoMiYmVGV4dCcpXG5kLnB1c2goe1xuICAgIHRpdGxlOiBhdXRob3IsXG4gICAgZGVzYzogJ0xhc3TvvJonICsgdmVyc2lvbi5mb250Y29sb3IoJyNGRjY2OTknKS5iaWcoKSArICdcXHRcXHRcXHRcXHQnLFxuICAgIGltZzogaW1nLFxuICAgIHVybDogTVlfVVJMLFxuICAgIGNvbF90eXBlOiAnYXZhdGFyJ1xufSlcblxudmFyIGNvbnRlbnQgPSBwZGZoKGh0bWwsIFwiYm9keSYmZGl2W2RhdGEtaHBjXSYmc2VjdGlvbiYmLmNvbC1tZC05JiZkaXZbZGF0YS1wamF4PXRydWVdJiZUZXh0XCIpO1xuZC5wdXNoKHtcbiAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyBjb250ZW50LmZvbnRjb2xvcignIzQ1NTVCNicpLnNtYWxsKCksXG4gICAgZGVzYzogJycsXG4gICAgcGljX3VybDogJycsXG4gICAgdXJsOiBNWV9VUkwgKyAkKCcnKS5ydWxlKChodG1sKT0+e1xuICAgICAgICAgICAgICB2YXIgZCA9IFtdXG4gICAgICAgICAgICAgIHZhciBjb250ZW50ID0gcGRmaChodG1sLCBcImJvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJi5jb2wtbWQtOSYmZGl2W2RhdGEtcGpheD10cnVlXSYmSHRtbFwiKS5yZXBsYWNlKC88XFxzKig/IShsaXxwKVxccypcXC8/KVtePl0rPi9nbSwgJycpO1xuICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgdGl0bGU6IGNvbnRlbnQuZm9udGNvbG9yKCcjNDU1NUI2Jykuc21hbGwoKSxcbiAgICAgICAgICAgICAgICAgZGVzYzogJycsXG4gICAgICAgICAgICAgICAgIHBpY191cmw6ICcnLFxuICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3JpY2hfdGV4dCcgICAgICAgICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNldFJlc3VsdChkKVxuICAgICAgICAgICAgIH0saHRtbCksXG4gICAgY29sX3R5cGU6ICd0ZXh0XzEnXG59KTtcblxudmFyIHVybCA9IHBkKGh0bWwsJ2JvZHkmJmRpdltkYXRhLWhwY10mJnNlY3Rpb24mJmRldGFpbHM6aGFzKGluY2x1ZGUtZnJhZ21lbnQpJiZpbmNsdWRlLWZyYWdtZW50JiZzcmN8fGRhdGEtZGVmZXJyZWQtc3JjJylcbi8vbG9nKHVybClcbnZhciBsaXN0ID0gcGRmYShmZXRjaCh1cmwpLCd1bCYmbGknKVxubGlzdC5mb3JFYWNoKGl0ZW09PntcbiAgICBkLnB1c2goe1xuICAgICAgICB0aXRsZTogJ+KAnOKAnOKAneKAnScgKyBwZGZoKGl0ZW0sJy5UcnVuY2F0ZS10ZXh0JiZUZXh0JykuZm9udGNvbG9yKCcjM2E3MzU2JyksXG4gICAgICAgIGRlc2M6IHBkZmgoaXRlbSwnLmZsZXgtanVzdGlmeS1lbmQmJlRleHQnKS5yZXBsYWNlKC8oXFxkezR9KS8sJ/Cfk4YkMScpLnJlcGxhY2UoL1okLywnJykucmVwbGFjZSgnVCcsJ+KPsCcpLFxuICAgICAgICB1cmw6IHBkKGl0ZW0sJ2EmJmhyZWYnKSArICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4geyAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgICByZXR1cm4gJ2Rvd25sb2FkOi8vJyArIGlucHV0XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xuICAgfSlcbn0pXG5cbnNldFJlc3VsdChkKSIsInNkZXRhaWxfY29sX3R5cGUiOiJtb3ZpZV8xIiwic2RldGFpbF9maW5kX3J1bGUiOiIiLCJ1YSI6Im1vYmlsZSIsInByZVJ1bGUiOiJsZXQgdGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpLnRvU3RyaW5nKClcbmxldCDml7bpl7Tpl7TpmpQgPSB0aW1lLWdldEl0ZW0oJ3RpbWUnLCBuZXcgRGF0ZSgpLmdldFRpbWUoKS50b1N0cmluZygpKVxuXG5zZXRJdGVtKCd0aW1lJywgdGltZSk7XG5cbmxldCDpl7TpmpTlpKnmlbAgPSBNYXRoLmZsb29yKOaXtumXtOmXtOmalCAvICgyNCAqIDYwICogNjAgKiAxMDAwKSkudG9TdHJpbmcoKTtcbmxldCDpl7TpmpTml7bmlbAgPSBNYXRoLmZsb29yKOaXtumXtOmXtOmalCAvICg2MCAqIDYwICogMTAwMCkpLnRvU3RyaW5nKCk7XG5sZXQg6Ze06ZqU5YiG5pWwID0gTWF0aC5mbG9vcijml7bpl7Tpl7TpmpQgLyAoIDYwICogMTAwMCkpLnRvU3RyaW5nKCk7XG5sZXQg6Ze06ZqU56eS5pWwID0gTWF0aC5mbG9vcijml7bpl7Tpl7TpmpQgLyAxMDAwKS50b1N0cmluZygpO1xuXG5zZXRJdGVtKCfpl7TpmpQnLCDpl7TpmpTml7bmlbApXG5cbmluaXRDb25maWcoe1xuICAgIOmXtOmalDogZ2V0SXRlbSgn6Ze06ZqUJywgJzAnKVxufSk7IiwicGFnZXMiOiJbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIum7mOiupOaVsOaNrlwiLFwicGF0aFwiOlwiZGF0YVwiLFwicnVsZVwiOlwiLy/ov5znqIvmlbDmja5cXG4vKlxcbuWvhueggeS4uuOAkOKWieKWieKWieKWieKWieKWieOAkeivt+eUqOWwj+WIgOWIruW8gOiOt+WPllxcbiovXFxuLy/pu5jorqTmlbDmja5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgdmFyIG1kYXRhID0gICAgICAgICAgICAgICBbXFxcIlNpbmdib3jwn5SlaHR0cHM6Ly9naXRodWIuY29tL1NhZ2VyTmV0L3NpbmctYm94L3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9JS2FQRS5wbmdcXFwiLFxcXCJLYXJpbmfwn5SlaHR0cHM6Ly9naXRodWIuY29tL0thcmluZ1gva2FyaW5nL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy96N0RXUi5wbmdcXFwiLFxcXCJOZWtvYm948J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9NYXRzdXJpRGF5by9OZWtvQm94Rm9yQW5kcm9pZC9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvenJ4NFIud2VicFxcXCIsXFxcIlNhZ2VyTmV08J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9keWhrd29uZy9zYWdlcm5ldC9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSUZjekwuanBnXFxcIixcXFwi6JmO5YWV8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS94Y2hhY2hhMjAtcG9seTEzMDUvaHVzaS9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvenJGelcucG5nXFxcIixcXFwiSGlkZGlmefCflKVodHRwczovL2dpdGh1Yi5jb20vaGlkZGlmeS9oaWRkaWZ5LW5leHQvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL3pwWUJKLnBuZ1xcXCIsXFxcIkZsQ2xhc2jwn5SlaHR0cHM6Ly9naXRodWIuY29tL2NoZW4wODIwOS9mbGNsYXNoL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9JRjhXRC5wbmdcXFwiLFxcXCJDTUZB8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9tZXRhY3ViZXgvY2xhc2htZXRhZm9yYW5kcm9pZC9yZWxlYXNlc/CflKVodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvSUtQT1UucG5nXFxcIixcXFwiU3VyZmJvYXJk8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9nZXRzdXJmYm9hcmQvc3VyZmJvYXJkL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy96cnJGSi5wbmdcXFwiLFxcXCJWMnJheU5H8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS8yZHVzdC92MnJheU5HL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9JSzJqNC5wbmdcXFwiLFxcXCJQcm94eVBpbvCflKVodHRwczovL2dpdGh1Yi5jb20vd2FuZ2hvbmdlbnBpbi9uZXR3b3JrX3Byb3h5X2ZsdXR0ZXIvcmVsZWFzZXPwn5SlaHR0cHM6Ly90aHVtYnNuYXAuY29tL2kvbXNHWll6QVQucG5nXFxcIixcXFwi5YWD6JCd5Y2c8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9rYXRhbmEtb2ZmaWNpYWwvc3BhdGNoLXVwZGF0ZS9yZWxlYXNlc/CflKVodHRwczovL3RodW1ic25hcC5jb20vaS92Z0NodnFhVS5qcGdcXFwiLFxcXCJSZXFhYmxl8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9yZXFhYmxlL3JlcWFibGUtYXBwL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9JS0JuaC53ZWJwXFxcIixcXFwi5oiR55qE55S16KeG8J+UpWh0dHBzOi8vZ2l0aHViLmNvbS9saXpvbmd5aW5nL215LXR2L3JlbGVhc2Vz8J+UpWh0dHBzOi8vcGxheS1saC5nb29nbGV1c2VyY29udGVudC5jb20vakp5QnZocmkxazFUSDhNWFphdFE2YUJyUjdJMkg3eFVkTWluRF9IekdVNkpRTmxjU1lVS0x0NkNTY2x2STZHcEZXZGY9dzI0MC1oNDgwXFxcIixcXFwiU2hpenVrdfCflKVodHRwczovL2dpdGh1Yi5jb20vUmlra2FBcHBzL1NoaXp1a3UvcmVsZWFzZXPwn5SlaHR0cHM6Ly9pbWcudmludWEuY24vaW1hZ2VzL0lLRDd2LndlYnBcXFwiLFxcXCJGYWlyRW1haWzwn5SlaHR0cHM6Ly9naXRodWIuY29tL202NmIvZmFpcmVtYWlsL3JlbGVhc2Vz8J+UpWh0dHBzOi8vaW1nLnZpbnVhLmNuL2ltYWdlcy9JNkZQWC5wbmdcXFwiXSAgICAgICAgICAgICAgICAgICAgICAgICBcIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuS6keWPo+S7pFwiLFwicGF0aFwiOlwiY2xvdWRcIixcInJ1bGVcIjpcImV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvYmF0Y2hJbT9ydWxlPUdpdGh1YkFwcFxcXCIpKS5ydWxlKTtcXG5sZXQgY29udGVudCA9IGJhc2U2NERlY29kZShwYXJzZVBhc3RlKGlucHV0KSk7XFxuYmF0Y2hJbXBvcnQoY29udGVudCwgXFxcIkdpdGh1YkFwcFxcXCIpO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5YiG5Lqr5a+85YWlXCIsXCJwYXRoXCI6XCJiYXRjaEltXCIsXCJydWxlXCI6XCJmdW5jdGlvbiBiYXRjaEltcG9ydChpbnB1dCwgcnVsZSkge1xcbiAgICBpbnB1dCA9IGlucHV0LnRyaW0oKTtcXG4gICAgaWYgKGlucHV0Lmxlbmd0aCA8IDMgKSB7XFxuICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6K+36L6T5YWl5q2j56Gu55qE5qC85byPXFxcIlxcbiAgICB9XFxuICAgIGxldCBpbSA9IEpTT04ucGFyc2UoaW5wdXQpO1xcbiAgICBpZiAoaW0gPT0gbnVsbCB8fCBpbS5sZW5ndGggPCAxKSB7XFxuICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v6K+36L6T5YWl5q2j56Gu55qE5qC85byPXFxcIlxcbiAgICB9XFxuICAgIFxcbiAgICBsZXQgY29uZmlnID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnKSB8fCAnW10nKTtcXG4gICAgbGV0IGNvdW50ID0gMDtcXG4gICAgbGV0IGFsbCA9IGNvbmZpZy5tYXAoaXQgPT4gaXQuc3BsaXQoJ/CflKUnKVsxXS50b0xvd2VyQ2FzZSgpKTtcXG4gICAgZm9yIChsZXQgaSBvZiBpbSkge1xcbiAgICAgICAgaWYgKGFsbC5pbmRleE9mKGkuc3BsaXQoJ/CflKUnKVsxXS50b0xvd2VyQ2FzZSgpKSA+PSAwKSB7XFxuICAgICAgICAgICAgLy/ph43lpI3nmoTkuI3opoFcXG4gICAgICAgICAgICBjb250aW51ZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvdW50Kys7XFxuICAgICAgICBjb25maWcucHVzaChpKVxcbiAgICB9XFxuICAgIHdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcXG4gICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgcmV0dXJuIFxcXCJ0b2FzdDovL+W3suWvvOWFpVxcXCIgKyBjb3VudCArIFxcXCLkuKpBcHBcXFwiO1xcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIua3u+WKoEFwcFwiLFwicGF0aFwiOlwi5re75YqgXCIsXCJydWxlXCI6XCJ2YXIg5re75YqgID0gJCgnJykucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgdmFyIGluZGV4ID0gTVlfUEFSQU1TLmlcXG4gICAgICAgICAgICBzZXRQYWdlVGl0bGUoJ+a3u+WKoEdpdGh1YkFwcCcpXFxuICAgICAgICAgICAgdmFyIGQgPSBbXVxcbiAgICAgICAgICAgIGQucHVzaChcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICflkI3np7AnLFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogJ+i+k+WFpUFwcOWQjeWtlycsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoJ25hbWUnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdpbnB1dCcsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ25hbWUnLCAnJyksXFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3RleHRhcmVhJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IC0xLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcXFwicHV0TXlWYXIoJ25hbWUnLGlucHV0KVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WcsOWdgCcsXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiAn6L6T5YWlZ2l0aHViIHJlbGVhc2VzJyxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJNeVZhcigncmVsZWFzZXMnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdpbnB1dCcsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ3JlbGVhc2VzJywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXFxcInB1dE15VmFyKCdyZWxlYXNlcycsaW5wdXQpXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5Zu+5qCHJyxcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6ICfovpPlhaXlm77moIflnLDlnYAnLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdpY29uJylcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnaW5wdXQnLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGdldE15VmFyKCdpY29uJywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0YXJlYScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAtMSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZTogXFxcInB1dE15VmFyKCdpY29uJyxpbnB1dClcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAge1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgJ+ehruiupOa3u+WKoCcuZm9udGNvbG9yKCcjRkYwMEZGJykuYmlnKCksXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGluZGV4KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGdldE15VmFyKCduYW1lJykgPT0gJycpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+WQjeWtl+S4jeiDveS4uuepun4nXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ3JlbGVhc2VzJykgPT0gJycgfHxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIS9eaHR0cHNcXFxcOlxcXFwvXFxcXC9naXRodWJcXFxcLmNvbVxcXFwvLio/XFxcXC8ocmVsZWFzZXMkfHRhZ3MkKS8udGVzdChnZXRNeVZhcigncmVsZWFzZXMnKSlcXG4gICAgICAgICAgICAgICAgICAgICAgICApIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+ivt+i+k+WFpeato+ehrueahOWcsOWdgH7nvZHlnYDlkI7nvIDmsqHmnIlcXFwiL1xcXCInXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGl0ZW0gPVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0TXlWYXIoJ25hbWUnLCAnJykgK1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ/CflKUnICtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldE15VmFyKCdyZWxlYXNlcycsICcnKS50b0xvd2VyQ2FzZSgpICtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICfwn5SlJyArXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRNeVZhcignaWNvbicsICcnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3RyID0gZmV0Y2goJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JylcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdHIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gW2l0ZW1dXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvcnVsZXMvYXBvbGxvL0dpdGh1YkFwcC9HaXRodWJBcHAudHh0JywgSlNPTi5zdHJpbmdpZnkobGlzdCkpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrKHRydWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8vQXBw5re75Yqg5oiQ5YqffidcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBsaXN0ID0gSlNPTi5wYXJzZShzdHIpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVsZWFzZSA9IGxpc3QubWFwKChpKSA9PiBpLnNwbGl0KCfwn5SlJylbMV0udG9Mb3dlckNhc2UoKSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWxlYXNlLmluZGV4T2YoaXRlbS5zcGxpdCgn8J+UpScpWzFdKSA9PSAnLTEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vICBsaXN0LnB1c2goaXRlbSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBsaXN0LnVuc2hpZnQoaXRlbSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaXN0LnNwbGljZShpbmRleCwgMCwgaXRlbSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBKU09OLnN0cmluZ2lmeShsaXN0KVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrKHRydWUpXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL0FwcOa3u+WKoOaIkOWKn34nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LmnInnm7jlkIxBcHB+J1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSxpbmRleCksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHsgbGluZVZpc2libGU6IGZhbHNlIH0sXFxuICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJyArICfngrnmiJHpooTop4gnLmZvbnRjb2xvcignIzAwREFDNCcpLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7IGxpbmVWaXNpYmxlOiBmYWxzZSB9LFxcbiAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICB7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogZ2V0TXlWYXIoJ25hbWUnLCAnJyksXFxuICAgICAgICAgICAgICAgICAgICBpbWc6IGdldE15VmFyKCdpY29uJywgJycpLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdpY29uJylcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCduYW1lJylcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGVhck15VmFyKCdyZWxlYXNlcycpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ljb25fNF9jYXJkJyxcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIClcXG4gICAgICAgICAgICBzZXRSZXN1bHQoZClcXG4gICAgICAgIH0pXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLkuIrkvKDkupHnq69cIixcInBhdGhcIjpcInVwbG9hZFwiLFwicnVsZVwiOlwiZnVuY3Rpb24gYmF0Y2h1cGxvYWQoaW5wdXQsIHJ1bGUpIHtcXG4gICAgaW5wdXQgPSBpbnB1dC50cmltKCk7XFxuICAgIGxldCBpbSA9IEpTT04ucGFyc2UoaW5wdXQpOyAgIFxcbiAgICBsZXQgY29uZmlnID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9ydWxlcy9hcG9sbG8vR2l0aHViQXBwL0dpdGh1YkFwcC50eHQnKSB8fCAnW10nKTtcXG4gICAgbGV0IGNvdW50ID0gMDtcXG4gICAgbGV0IGFsbCA9IGltLm1hcChpdCA9PiBpdC5zcGxpdCgn8J+UpScpWzFdLnRvTG93ZXJDYXNlKCkpO1xcbiAgICBmb3IgKGxldCBpIG9mIGNvbmZpZykge1xcbiAgICAgICAgaWYgKGFsbC5pbmRleE9mKGkuc3BsaXQoJ/CflKUnKVsxXS50b0xvd2VyQ2FzZSgpKSA+PSAwKSB7XFxuICAgICAgICAgICAgLy/ph43lpI3nmoTkuI3opoFcXG4gICAgICAgICAgICBjb250aW51ZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGNvdW50Kys7XFxuICAgICAgICBpbS5wdXNoKGkpXFxuICAgIH1cXG4gICAgbGV0IGhlaSA9IFxcXCJodHRwczovL2dpdGh1Yi5jb20vaHNza3lib3kvbnBhY2gvcmVsZWFzZXPwn5SlaHR0cHM6Ly9naXRodWIuY29tL2hzc2t5Ym95L25wYXRjaC9yZWxlYXNlc/CflKVodHRwczovL2dpdGh1Yi5jb20vY2V1aWxpc2EvcGl4aXYtc2xpbmt5L3JlbGVhc2VzXFxcIlxcbiAgICBsZXQgamogPSBoZWkuc3BsaXQoXFxcIvCflKVcXFwiKS5tYXAoaj0+ai50b0xvd2VyQ2FzZSgpKVxcbiAgICBpbSA9IGltLmZpbHRlcihpdGVtID0+IGpqLmluZGV4T2YoaXRlbS5zcGxpdCgn8J+UpScpWzFdLnRvTG93ZXJDYXNlKCkpID09PSAtMSk7XFxuICAgIGltID0gaW0uZmlsdGVyKGl0ZW0gPT4gIS9cXFxcLyQvLnRlc3QoaXRlbS5zcGxpdCgn8J+UpScpWzFdLnRvTG93ZXJDYXNlKCkpKTtcXG4gICAgdmFyIHVwZGF0ZSA9IEpTT04uc3RyaW5naWZ5KGltKVxcbiAgICByZXR1cm4gdXBkYXRlXFxufVwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwizrHlpKfkvazlhpnnmoRwdXRcIixcInBhdGhcIjpcInB1dFwiLFwicnVsZVwiOlwiKGZ1bmN0aW9uICgpIHtcXG4gIGZ1bmN0aW9uIGdlbmVyYXRlQm91bmRhcnkocHJlZml4LCByYW5kb21MZW5ndGgpIHtcXG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSc7XFxuICAgIGxldCBib3VuZGFyeSA9ICcnO1xcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJhbmRvbUxlbmd0aDsgaSsrKSB7IC8vIOagueaNruaMh+WumumVv+W6pueUn+aIkOmaj+acuumDqOWIhlxcbiAgICAgIGJvdW5kYXJ5ICs9IGNoYXJhY3RlcnMuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoYXJhY3RlcnMubGVuZ3RoKSk7XFxuICAgIH1cXG4gICAgcmV0dXJuIGAke3ByZWZpeH0ke2JvdW5kYXJ5fWA7IC8vIOi/lOWbnuWujOaVtOeahOi+ueeVjOWtl+espuS4slxcbiAgfVxcbiAgZnVuY3Rpb24gcHV0UHJvdG9jb2wodXJsLCBpbmhlYWQsIGJvZHksIGJvdW5vYmopIHtcXG4gICAgbGV0IGRlZm9iaiA9IHtcXG4gICAgICBwcmVmaXg6ICctLVdlYktpdEZvcm1Cb3VuZGFyeScsXFxuICAgICAgbnVtOiAxNixcXG4gICAgICBmaWxsOiBbNCwgNCwgMl1cXG4gICAgfVxcbiAgICBpZiAoYm91bm9iaiA9PSB1bmRlZmluZWQpIHtcXG4gICAgICBib3Vub2JqID0gZGVmb2JqO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgIGJvdW5vYmogPSBPYmplY3QuYXNzaWduKHt9LCBkZWZvYmosIGJvdW5vYmopO1xcbiAgICB9XFxuICAgIC8vbG9nKGJvdW5vYmopXFxuXFxuICAgIHZhciBmaWxsID0gYm91bm9iai5maWxsLm1hcChjb3VudCA9PiAnLScucmVwZWF0KGNvdW50KSk7XFxuICAgIC8vbG9nKGZpbGwpXFxuICAgIHZhciBib3VuZGFyeSA9IGdlbmVyYXRlQm91bmRhcnkoYm91bm9iai5wcmVmaXgsIGJvdW5vYmoubnVtKTtcXG4gICAgbGV0IGRlZmhlYWQgPSB7XFxuICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUEsXFxuICAgICAgfSxcXG4gICAgICBtZXRob2Q6ICdQVVQnLFxcbiAgICB9XFxuICAgIGlmIChpbmhlYWQuaGVhZGVycyAmJiBpbmhlYWQuaGVhZGVycy5oYXNPd25Qcm9wZXJ0eShcXFwiY29udGVudC10eXBlXFxcIikpIHtcXG4gICAgICBpbmhlYWQuaGVhZGVyc1tcXFwiY29udGVudC10eXBlXFxcIl0gPSBpbmhlYWQuaGVhZGVyc1tcXFwiY29udGVudC10eXBlXFxcIl0ucmVwbGFjZShcXFwiJHtib3VuZGFyeX1cXFwiLCBib3VuZGFyeSk7XFxuICAgIH1cXG4gICAgdmFyIGhlYWQgPSBPYmplY3QuYXNzaWduKHt9LCBkZWZoZWFkLCBpbmhlYWQpO1xcbiAgICBpZiAoYm9keSkge1xcbiAgICAgIGhlYWQuaGVhZGVycy5ib2R5ID0gT2JqZWN0LmtleXMoYm9keSkubWFwKGtleSA9PiB7XFxuICAgICAgICByZXR1cm4gYCR7ZmlsbFswXX0ke2JvdW5kYXJ5fVxcXFxyXFxcXG5Db250ZW50LURpc3Bvc2l0aW9uOiBmb3JtLWRhdGE7IG5hbWU9XFxcIiR7a2V5fVxcXCJcXFxcclxcXFxuXFxcXHJcXFxcbiR7Ym9keVtrZXldfWBcXG4gICAgICB9KS5qb2luKCdcXFxcclxcXFxuJykgKyBgXFxcXHJcXFxcbiR7ZmlsbFsxXX0ke2JvdW5kYXJ5fSR7ZmlsbFsyXX1cXFxcclxcXFxuYFxcbiAgICB9XFxuICAgIC8vbG9nKGhlYWQpXFxuICAgIHJldHVybiBmZXRjaCh1cmwsIGhlYWQpO1xcbiAgfVxcbiAgJC5leHBvcnRzPXtcXG4gICAgIGdldEJvdW5kYXJ5OmdlbmVyYXRlQm91bmRhcnksXFxuICAgICBwdXQ6cHV0UHJvdG9jb2xcXG4gIH1cXG59KSgpXCJ9XSIsImljb24iOiJodHRwczovL2ltZy52aW51YS5jbi9pbWFnZXMvenBucHYud2VicCIsInByb3h5IjoiIn0=
Add Comment
Please, Sign In to add comment