xiaomianao666

小程序:聚直播

Feb 29th, 2024
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@聚直播@eyJmaXJzdEhlYWRlciI6ImNsYXNzIiwibGFzdF9jaGFwdGVyX3J1bGUiOiIiLCJ0aXRsZSI6IuiBmuebtOaSrSIsImF1dGhvciI6IuWwj+ajieiihPCfjJ4mSm9rZXIiLCJ1cmwiOiJoaWtlcjovL2VtcHR5IiwidmVyc2lvbiI6MTAsImNvbF90eXBlIjoiaWNvbl8yX3JvdW5kIiwiY2xhc3NfbmFtZSI6IiIsInR5cGUiOiJsaXZlIiwiY2xhc3NfdXJsIjoiIiwiYXJlYV9uYW1lIjoiIiwiYXJlYV91cmwiOiIiLCJzb3J0X25hbWUiOiIiLCJ5ZWFyX25hbWUiOiIiLCJzb3J0X3VybCI6IiIsInllYXJfdXJsIjoiIiwiZmluZF9ydWxlIjoianM6XG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdChcImhpa2VyOi8vcGFnZS9jb25maWdcIikpLnJ1bGUpOyAvL2dldENvbmZpZ1xuXG5sZXQgZGF0YSA9IFtdLFxuICAgIGNvbmZpZyA9IGdldENvbmZpZygpO1xuY29uZmlnLmRhdGEgPSBjb25maWcuZGF0YS5maWx0ZXIodiA9PiAhdi5pblZpc2libGUpO1xuXG5pZiAoY29uZmlnLmRhdGEubGVuZ3RoIDw9IDApIHtcbiAgICBkYXRhID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvcmVuZGVyU2V0dGluZycpLnJlbmRlclNldHRpbmcoKTtcbn0gZWxzZSB7XG4gICAgbGV0IHNlbGVjdCA9IGdldEl0ZW0oXCJsaXZlLXNlbGVjdFwiLCBjb25maWcuZGF0YVswXS5uYW1lKSxcbiAgICAgICAgaGFzID0gY29uZmlnLmRhdGEubWFwKGkgPT4gaS5uYW1lKS5pbmNsdWRlcyhzZWxlY3QpO1xuICAgIGlmICghaGFzKSB7XG4gICAgICAgIHNlbGVjdCA9IGNvbmZpZy5kYXRhWzBdLm5hbWU7XG4gICAgfVxuXG4gICAgZGF0YS5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICfogZrnm7Tmkq0nLmJvbGQoKSArICcgJm5ic3AgJm5ic3AgJyArICfimpkg6IGa55u05pKt6K6+572uIOKamScuc21hbGwoKSxcbiAgICAgICAgY29sX3R5cGU6IFwiYXZhdGFyXCIsXG4gICAgICAgIHBpY191cmw6IE1ZX1JVTEUuaWNvbixcbiAgICAgICAgdXJsOiAkKFwiaGlrZXI6Ly9lbXB0eSNub0xvYWRpbmcjXCIpLnJ1bGUoKCkgPT4ge1xuICAgICAgICAgICAgYWRkTGlzdGVuZXIoJ29uQ2xvc2UnLCAncmVmcmVzaFBhZ2UoKScpXG4gICAgICAgICAgICBzZXRSZXN1bHQoJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvcmVuZGVyU2V0dGluZycpLnJlbmRlclNldHRpbmcoKSlcbiAgICAgICAgfSlcbiAgICB9KVxuXG4gICAgZGF0YS5wdXNoKHtcbiAgICAgICAgdGl0bGU6ICfmkJzntKInLFxuICAgICAgICBkZXNjOiAn6K+36L6T5YWl5pCc57Si5YWz6ZSu6K+NJyxcbiAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0VmFyKCdzZWFyY2hfa2V5JywgJycpLFxuICAgICAgICAgICAgb25DaGFuZ2U6ICdwdXRWYXIoXCJzZWFyY2hfa2V5XCIsaW5wdXQpJ1xuICAgICAgICB9LFxuICAgICAgICBjb2xfdHlwZTogJ2lucHV0JyxcbiAgICAgICAgdXJsOiAkLnRvU3RyaW5nKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9zZWFyY2g/cnVsZT0nICsgZ2V0TXlWYXIoJ3RpdGxlJykgKyAnJnM9JyArIGdldFZhcignc2VhcmNoX2tleScsICcnKVxuICAgICAgICB9KVxuICAgIH0pXG5cblxuXG4gICAgZm9yIChzb3VyY2Ugb2YgY29uZmlnLmRhdGEpIHtcbiAgICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiBzb3VyY2UubmFtZSA9PSBzZWxlY3QgPyBcIuKAnOKAnOKAneKAnTxzcGFuIHN0eWxlPSdjb2xvcjogIzE5Qjg5RCc+XCIgKyBzZWxlY3QgKyBcIjwvc3Bhbj5cIiA6IHNvdXJjZS5uYW1lLFxuICAgICAgICAgICAgY29sX3R5cGU6IFwic2Nyb2xsX2J1dHRvblwiLFxuICAgICAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChhKSA9PiB7XG4gICAgICAgICAgICAgICAgc2V0SXRlbShcImxpdmUtc2VsZWN0XCIsIGEpO1xuICAgICAgICAgICAgICAgIHNldEl0ZW0oJ3NlbGVjdEdyb3VwJywgJycpO1xuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiaGlrZXI6Ly9lbXB0eVwiXG4gICAgICAgICAgICB9LCBzb3VyY2UubmFtZSlcbiAgICAgICAgfSlcbiAgICB9XG5cbiAgICBkYXRhLnB1c2goe1xuICAgICAgICBjb2xfdHlwZTogJ2JsYW5rX2Jsb2NrJ1xuICAgIH0pXG4gICAgXG4gICAgaWYgKHR5cGVvZihzZXRQcmVSZXN1bHQpICE9IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAgICAgIHBpY191cmw6IFwiaHR0cHM6Ly9oaWtlcmZhbnMuY29tL3dlaXN5ci9pbWcvTG9hZGluZzEuZ2lmXCIsXG4gICAgICAgICAgICBjb2xfdHlwZTogXCJwaWNfMV9jZW50ZXJcIixcbiAgICAgICAgICAgIGV4dHJhOiB7XG4gICAgICAgICAgICAgICAgY2xzOiBcImxvYWRpbmdfZ2lmXCJcbiAgICAgICAgICAgIH1cbiAgICAgICB9KVxuICAgICAgIHNldFByZVJlc3VsdChkYXRhKTtcbiAgICAgICBkYXRhID0gW107XG4gICAgfVxuXG4gICAgZm9yIChzb3VyY2Ugb2YgY29uZmlnLmRhdGEpIHtcbiAgICAgICAgaWYgKHNvdXJjZS5uYW1lID09IHNlbGVjdCkge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBsZXQgaXRlbXMgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9yZW5kZXJEYXRhJykucmVuZGVyTGl2ZURhdGEoc291cmNlLnVybCxzb3VyY2UudWEpO1xuICAgICAgICAgICAgICAgIGxldCBncm91cHMgPSBPYmplY3Qua2V5cyhpdGVtcyk7XG4gICAgICAgICAgICAgICAgLy9ncm91cHMucHVzaChncm91cHMuc3BsaWNlKGdyb3Vwcy5pbmRleE9mKDApLCAxKVswXSk7XG4gICAgICAgICAgICAgICAgbGV0IHNlbGVjdEdyb3VwID0gZ2V0SXRlbSgnc2VsZWN0R3JvdXAnLCBncm91cHNbMF0pO1xuICAgICAgICAgICAgICAgIGlmIChzZWxlY3RHcm91cCA9PSBcIlwiIHx8ICFncm91cHMuaW5jbHVkZXMoc2VsZWN0R3JvdXApKSBzZWxlY3RHcm91cCA9IGdyb3Vwc1swXTtcbiAgICAgICAgICAgICAgICBncm91cHMuZm9yRWFjaCgoZ3JvdXApID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBncm91cCA9PSBzZWxlY3RHcm91cCA/IFwi4oCc4oCc4oCd4oCdPHNwYW4gc3R5bGU9J2NvbG9yOiAjMTlCODlEJz5cIiArIGdyb3VwICsgXCI8L3NwYW4+XCIgOiBncm91cCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGdyb3VwKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldEl0ZW0oJ3NlbGVjdEdyb3VwJywgZ3JvdXApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgZ3JvdXApLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluZVZpc2libGU6IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgdGl0bGUgaW4gaXRlbXNbc2VsZWN0R3JvdXBdKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGEucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoKS5sYXp5UnVsZSgoc291cmNldXJsLHNlbGVjdEdyb3VwLHRpdGxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1zID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvcmVuZGVyRGF0YScpLnJlbmRlckxpdmVEYXRhKHNvdXJjZXVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHN1cmxzID0gaXRlbXNbc2VsZWN0R3JvdXBdW3RpdGxlXS51cmw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNoZWFkZXJzID0gaXRlbXNbc2VsZWN0R3JvdXBdW3RpdGxlXS5oZWFkZXJzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGdyb3VwaSBpbiBpdGVtcyl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBncm91cCA9IGl0ZW1zW2dyb3VwaV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKCFncm91cCkgY29udGludWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0aXRsZSBpbiBncm91cCl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihpdGl0bGUgPT0gdGl0bGUgJiYgISFncm91cFtpdGl0bGVdKXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXJscyA9IGdyb3VwW2l0aXRsZV0udXJsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBoZWFkZXJzID0gZ3JvdXBbaXRpdGxlXS5oZWFkZXJzO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VybHMgPSBzdXJscy5jb25jYXQodXJscyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGVhZGVycyA9IHNoZWFkZXJzLmNvbmNhdChoZWFkZXJzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXJscyA9IEFycmF5LmZyb20obmV3IFNldChzdXJscykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWFkZXJzID0gQXJyYXkuZnJvbShuZXcgU2V0KHNoZWFkZXJzKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogc3VybHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHNoZWFkZXJzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sc291cmNlLnVybCxzZWxlY3RHcm91cCx0aXRsZSksXG4gICAgICAgICAgICAgICAgICAgICAgICAvL2NvbF90eXBlOiAndGV4dF8zJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZzogXCJodHRwczovL2xhbm1laWd1b2ppYW5nLmNvbS90dWJpYW8vbW9yZS8yMjgucG5nXCJcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgZGF0YS5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFwi5pWw5o2u5Yqg6L295aSx6LSlXFxuXCIgKyBKU09OLnN0cmluZ2lmeShlKSxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFwibG9uZ190ZXh0XCJcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZGVsZXRlSXRlbUJ5Q2xzKFwibG9hZGluZ19naWZcIik7XG59XG5zZXRSZXN1bHQoZGF0YSk7Iiwic2VhcmNoX3VybCI6Imhpa2VyOi8vZW1wdHk/a2V5PSoqIiwiZ3JvdXAiOiLikaDluLjnlKgiLCJzZWFyY2hGaW5kIjoianM6XG5ldmFsKEpTT04ucGFyc2UocmVxdWVzdChcImhpa2VyOi8vcGFnZS9jb25maWdcIikpLnJ1bGUpO1xubGV0IGNvbmZpZyA9IGdldENvbmZpZygpO1xubGV0IHJ1bGVzID0gY29uZmlnLmRhdGEubWFwKChzb3VyY2UpID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICB0aXRsZTogc291cmNlLm5hbWUsXG4gICAgICAgIHNlYXJjaF91cmw6ICdoaWtlcjovL2VtcHR5P2tleT0qKicsXG4gICAgICAgIHNlYXJjaEZpbmQ6ICdqczonICsgJC50b1N0cmluZygodXJsLCBydWxlX3RpdGxlKSA9PiB7XG4gICAgICAgICAgICBsZXQgZCA9IFtdLFxuICAgICAgICAgICAgICAgIGtleSA9IGdldFBhcmFtKCdrZXknKTtcbiAgICAgICAgICAgIGxldCBpdGVtcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL3JlbmRlckRhdGE/cnVsZT0nICsgcnVsZV90aXRsZSkucmVuZGVyTGl2ZURhdGEodXJsKTtcbiAgICAgICAgICAgIGZvciAobGV0IGdyb3VwIGluIGl0ZW1zKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgdGl0bGUgaW4gaXRlbXNbZ3JvdXBdKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aXRsZS5pbmRleE9mKGtleSkgPj0gMCB8fCB0aXRsZS50b0xvd2VyQ2FzZSgpLmluZGV4T2Yoa2V5KSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsczogaXRlbXNbZ3JvdXBdW3RpdGxlXS51cmwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IGl0ZW1zW2dyb3VwXVt0aXRsZV0uaGVhZGVyc1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgc2V0UmVzdWx0KGQpO1xuICAgICAgICB9LCBzb3VyY2UudXJsLCBnZXRNeVZhcigndGl0bGUnKSlcbiAgICB9O1xufSlcbnNldFJlc3VsdChbe1xuICAgIHRpdGxlOiBcIueCueaIkeW8gOWni+iBmuaQnFwiLFxuICAgIHVybDogXCJoaWtlcjovL3NlYXJjaD9zPVwiICsgZ2V0UGFyYW0oXCJrZXlcIiksXG4gICAgZXh0cmE6IHtcbiAgICAgICAgcnVsZXM6ICQudG9TdHJpbmcoKHJ1bGVzKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocnVsZXMpXG4gICAgICAgIH0sIHJ1bGVzKVxuICAgIH1cbn1dKSIsImRldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJkZXRhaWxfZmluZF9ydWxlIjoiIiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInVhIjoibW9iaWxlIiwicHJlUnVsZSI6InB1dE15VmFyKCd0aXRsZScsTVlfUlVMRS50aXRsZSk7IiwicGFnZXMiOiJbe1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWKoOi9veaVsOaNrlwiLFwicGF0aFwiOlwiY29uZmlnXCIsXCJydWxlXCI6XCJmdW5jdGlvbiBnZXRDb25maWcoKSB7XFxuICAgIHRyeSB7XFxuICAgICAgICBsZXQgY29uZmlnID0gZmV0Y2goXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvbGl2ZS9jb25maWcuanNvblxcXCIpO1xcbiAgICAgICAgaWYgKCFjb25maWcgfHwgY29uZmlnID09IFxcXCJcXFwiKSB7XFxuICAgICAgICAgICAgcmV0dXJuIHtcXG4gICAgICAgICAgICAgICAgZGF0YTogW10sXFxuICAgICAgICAgICAgICAgIHZlcnNpb246IDBcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGNvbmZpZylcXG4gICAgICAgIH1cXG4gICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICB0b2FzdChcXFwi6YWN572u5paH5Lu25qC85byP5pyJ6K+vXFxcIilcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICByZXR1cm4ge1xcbiAgICAgICAgICAgIGRhdGE6IFtdLFxcbiAgICAgICAgICAgIHZlcnNpb246IDBcXG4gICAgICAgIH1cXG4gICAgfVxcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaJuemHj+WvvOWFpVwiLFwicGF0aFwiOlwiYmF0Y2hJbVwiLFwicnVsZVwiOlwiZnVuY3Rpb24gYmF0Y2hJbXBvcnQoaW5wdXQsIHJ1bGUpIHtcXG4gICAgaW5wdXQgPSBpbnB1dC50cmltKCk7XFxuICAgIGlmIChpbnB1dC5sZW5ndGggPCAzIHx8IGlucHV0WzBdICE9IFxcXCJ7XFxcIikge1xcbiAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+ivt+i+k+WFpeato+ehrueahOagvOW8j1xcXCJcXG4gICAgfVxcbiAgICBsZXQgaW0gPSBKU09OLnBhcnNlKGlucHV0KTtcXG4gICAgaWYgKGltLmRhdGEgPT0gbnVsbCB8fCBpbS5kYXRhLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/or7fovpPlhaXmraPnoa7nmoTmoLzlvI9cXFwiXFxuICAgIH1cXG4gICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoXFxcImhpa2VyOi8vcGFnZS9jb25maWc/cnVsZT1cXFwiICsgcnVsZSkpLnJ1bGUpO1xcbiAgICBsZXQgY29uZmlnID0gZ2V0Q29uZmlnKCk7XFxuICAgIGxldCBjb3VudCA9IDA7XFxuICAgIGxldCBhbGwgPSBjb25maWcuZGF0YS5tYXAoaXQgPT4gaXQudXJsICsgXFxcIiYmJlxcXCIpLmpvaW4oKTtcXG4gICAgZm9yIChsZXQgaSBvZiBpbS5kYXRhKSB7XFxuICAgICAgICBpZiAoYWxsLmluZGV4T2YoaS51cmwgKyBcXFwiJiYmXFxcIikgPj0gMCkge1xcbiAgICAgICAgICAgIC8v6YeN5aSN55qE5LiN6KaBXFxuICAgICAgICAgICAgY29udGludWU7XFxuICAgICAgICB9XFxuICAgICAgICBjb3VudCsrO1xcbiAgICAgICAgY29uZmlnLmRhdGEucHVzaChpKVxcbiAgICB9XFxuICAgIHdyaXRlRmlsZShcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9saXZlL2NvbmZpZy5qc29uXFxcIiwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XFxuICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lt7Llr7zlhaVcXFwiICsgY291bnQgKyBcXFwi5p2h6K6i6ZiF5rqQXFxcIjtcXG59XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLnm7Tmkq3mlbDmja5cIixcInBhdGhcIjpcInJlbmRlckRhdGFcIixcInJ1bGVcIjpcImZ1bmN0aW9uIHJlbmRlckxpdmVEYXRhKHVybCx1YSkge1xcbiAgICBsZXQgbTN1ID0gXFxcIlxcXCI7XFxuICAgIGlmICh1cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly8nKSB8fCB1cmwuc3RhcnRzV2l0aCgnZmlsZTovLycpKSB7XFxuICAgICAgICBtM3UgPSBmZXRjaCh1cmwpO1xcbiAgICB9IGVsc2Uge1xcbiAgICAgICAgbGV0IGludGVydmFsID0gTnVtYmVyKGdldEl0ZW0oJ2ludGVydmFsJywgJzI0JykpLFxcbiAgICAgICAgICAgIG9sZERhdGEgPSBmZXRjaCgnaGlrZXI6Ly9maWxlcy9saWJzLycgKyBtZDUodXJsKSArICcuanMnKSxcXG4gICAgICAgICAgICByZW1vdGVEYXRhID0gJyc7XFxuICAgICAgICB0cnkge1xcbiAgICAgICAgICAgIHJlbW90ZURhdGEgPSBmZXRjaENhY2hlKHVybCwgaW50ZXJ2YWwsIHtcXG4gICAgICAgICAgICAgICAgaGVhZGVyczp7XFxuICAgICAgICAgICAgICAgICAgICAnVXNlci1BZ2VudCcgOiB1YSB8fCBNT0JJTEVfVUFcXG4gICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgdGltZW91dDogNTAwMDBcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICBpZiAoIXJlbW90ZURhdGEuaW5jbHVkZXMoJ2h0dHAnKSB8fCByZW1vdGVEYXRhLmluY2x1ZGVzKCc8Ym9keT4nKSkgeyBcXG4gICAgICAgICAgICBsb2coJ+abtOaWsOWksei0pScpO1xcbiAgICAgICAgICAgIGlmIChvbGREYXRhKSB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvbGlicy8nICsgbWQ1KHVybCkgKyAnLmpzJywgb2xkRGF0YSk7XFxuICAgICAgICAgICAgbTN1ID0gb2xkRGF0YTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgbTN1ID0gcmVtb3RlRGF0YTtcXG4gICAgICAgIH1cXG4gICAgfVxcblxcbiAgICBsZXQgbW9kZSA9ICBtM3UuaW5kZXhPZignI0VYVE0zVScpID09IDAgLCByZTtcXG4gICAgaWYobW9kZSl7XFxuICAgICAgICByZSA9IC8oLiopLCguKilcXFxccyo/KCg/Omh0dHB8cnRtcClbXiNcXFxcc10qKS9nO1xcbiAgICB9ZWxzZXtcXG4gICAgICAgIHJlID0gLygpKD86XFxcXEJcXFxcJGNfc3RhcnR8XFxcXEIjezEsMn0pPyguKj8pLD8oIyN85aS0I3xcXFxcJGNfZW5kfCw/I2dlbnJlI3woPzpodHRwfHJ0bXApW15cXFxcc10qKS9nO1xcbiAgICB9XFxuICAgICAgICBcXG4gICAgbGV0IGl0ZW1zID0ge30sXFxuICAgICAgICBncm91cCA9ICfmnKrliIbnu4QnO1xcbiAgICBmb3IgKGxldCBpID0gcmUuZXhlYyhtM3UpOyBpICE9IG51bGw7IGkgPSByZS5leGVjKG0zdSkpIHtcXG4gICAgICAgIGlmIChtb2RlKSB7XFxuICAgICAgICAgICAgZ3JvdXAgPSAoaVsxXS5tYXRjaCgvZ3JvdXAtdGl0bGU9XFxcIiguKj8pXFxcIi8pIHx8IFtudWxsLCBncm91cF0pWzFdO1xcbiAgICAgICAgfSBlbHNlIGlmIChbJyNnZW5yZSMnLCcjIycsJ+WktCMnLCckY19lbmQnXS5pbmNsdWRlcyhpWzNdKSkge1xcbiAgICAgICAgICAgIGdyb3VwID0gaVsyXTtcXG4gICAgICAgICAgICBjb250aW51ZTtcXG4gICAgICAgIH1cXG4gICAgICAgIGxldCB0aXRsZSA9IGlbMl0sXFxuICAgICAgICAgICAgdXJsID0gaVszXS5pbmNsdWRlcygnIycpID8gaVszXS5zcGxpdCgnIycpIDogW2lbM11dLFxcbiAgICAgICAgICAgIGhlYWRlcnMgPSBbXTtcXG4gICAgICAgIGlmKCF1cmxbdXJsLmxlbmd0aC0xXSkgdXJsLnBvcCgpO1xcbiAgICAgICAgdXJsLmZvckVhY2goKHYsaW5kZXgsYXJyYXkpPT57XFxuICAgICAgICAgICAgaWYoLztcXFxceyguKilcXFxcfS8udGVzdCh2KSl7XFxuICAgICAgICAgICAgICAgIGxldCBvYmogPSB7fSxcXG4gICAgICAgICAgICAgICAgICAgICBjb24gPSB2Lm1hdGNoKC87XFxcXHsoLiopXFxcXH0vKVsxXSxcXG4gICAgICAgICAgICAgICAgICAgICBhcnIgPSBjb24uc3BsaXQoJyYmJyk7XFxuICAgICAgICAgICAgICAgIGFyci5mb3JFYWNoKChpKT0+e1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IFtrZXksdmFsdWVdID0gaS5zcGxpdCgnQCcpO1xcbiAgICAgICAgICAgICAgICAgICAgb2JqW2tleV0gPSB2YWx1ZS5yZXBsYWNlKC87L2csJ++8m++8mycpO1xcbiAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICBhcnJheVtpbmRleF0gPSB2Lm1hdGNoKC9eKFteO10qKTtcXFxcey8pWzFdXFxuICAgICAgICAgICAgICAgIGhlYWRlcnMucHVzaChvYmopO1xcbiAgICAgICAgICAgIH1lbHNle1xcbiAgICAgICAgICAgICAgICBoZWFkZXJzLnB1c2goeydVc2VyLUFnZW50JyA6IE1PQklMRV9VQS5yZXBsYWNlKC87L2csJ++8m++8mycpfSk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIGFycmF5W2luZGV4XSA9IGFycmF5W2luZGV4XS5yZXBsYWNlKC87L2csJ++8m++8mycpKycjaXNWaWRlbz10cnVlIyc7XFxuICAgICAgICB9KTtcXG4gICAgICAgIGlmIChpdGVtc1tncm91cF0pIHtcXG4gICAgICAgICAgICBpZiAoaXRlbXNbZ3JvdXBdW3RpdGxlXSkge1xcbiAgICAgICAgICAgICAgICBpdGVtc1tncm91cF1bdGl0bGVdLnVybCA9IGl0ZW1zW2dyb3VwXVt0aXRsZV0udXJsLmNvbmNhdCh1cmwpO1xcbiAgICAgICAgICAgICAgICBpdGVtc1tncm91cF1bdGl0bGVdLmhlYWRlcnMgPSBpdGVtc1tncm91cF1bdGl0bGVdLmhlYWRlcnMuY29uY2F0KGhlYWRlcnMpO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIGl0ZW1zW2dyb3VwXVt0aXRsZV0gPSB7dXJsOnVybCxoZWFkZXJzOmhlYWRlcnN9O1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgaXRlbXNbZ3JvdXBdID0ge307XFxuICAgICAgICAgICAgaXRlbXNbZ3JvdXBdW3RpdGxlXSA9IHt1cmw6dXJsLGhlYWRlcnM6aGVhZGVyc307XFxuICAgICAgICB9O1xcbiAgICB9XFxuICAgIHJldHVybiBpdGVtcztcXG59XFxuXFxuJC5leHBvcnRzID0ge1xcbiAgICByZW5kZXJMaXZlRGF0YTogcmVuZGVyTGl2ZURhdGFcXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLorr7nva7pobVcIixcInBhdGhcIjpcInJlbmRlclNldHRpbmdcIixcInJ1bGVcIjpcImZ1bmN0aW9uIHJlbmRlclNldHRpbmcoKSB7XFxuICAgIGZ1bmN0aW9uIGdldENvbG9yZWRUZXh0KHRleHQpIHtcXG4gICAgICAgIHJldHVybiAn4oCc4oCc4oCd4oCdPHNwYW4gc3R5bGU9XFxcImNvbG9yOiAjMTlCODlEXFxcIj4nICsgdGV4dCArICc8L3NwYW4+JztcXG4gICAgfVxcbiAgICBjb25zdCBkID0gW107XFxuICAgIGxldCBpbnRlcnZhbCA9IGdldEl0ZW0oJ2ludGVydmFsJywgJzI0Jyk7XFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogaW50ZXJ2YWwgPT0gLTEgPyAn5bey56aB5q2i6Ieq5Yqo5pu05pawJy5mb250Y29sb3IoXFxcIiMxOUI4OURcXFwiKS5ib2xkKCkgOiAoJ+abtOaWsOmXtOmalDonICsgaW50ZXJ2YWwgKyAn5bCP5pe2JykuZm9udGNvbG9yKFxcXCIjMTlCODlEXFxcIikuYm9sZCgpLFxcbiAgICAgICAgdXJsOiAkKGludGVydmFsLCAn6L6T5YWlbuS4uuato+aVtOaVsOaXtu+8jOavj+malG7lsI/ml7boh6rliqjmm7TmlrBcXFxcbuS4ujDml7bvvIzmr4/mrKHmiZPlvIDpg73kvJrmm7TmlrBcXFxcbuS4ui0x5pe277yM56aB5q2i6Ieq5Yqo5pu05pawJykuaW5wdXQoKCkgPT4ge1xcbiAgICAgICAgICAgIGlmIChwYXJzZUludChpbnB1dCkgPj0gLTEpIHtcXG4gICAgICAgICAgICAgICAgc2V0SXRlbSgnaW50ZXJ2YWwnLCBpbnB1dCk7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgfSksXFxuICAgICAgICBwaWNfdXJsOiAnaHR0cHM6Ly9naW1nMi5iYWlkdS5jb20vaW1hZ2Vfc2VhcmNoL3NyYz1odHRwJTNBJTJGJTJGaXM0Lm16c3RhdGljLmNvbSUyRmltYWdlJTJGdGh1bWIlMkZQdXJwbGUzJTJGdjQlMkZkZiUyRmY2JTJGZGElMkZkZmY2ZGE4My00N2Q3LTljYjYtMjM5OC0xOTE5YzEzODM3YjQlMkZtemwua2dtbndvZG8ucG5nJTJGMHgwc3MtODUuanBnJnJlZmVyPWh0dHAlM0ElMkYlMkZpczQubXpzdGF0aWMuY29tJmFwcD0yMDAyJnNpemU9Zjk5OTksMTAwMDAmcT1hODAmbj0wJmc9MG4mZm10PWpwZWc/c2VjPTE2Mzg2MjkzNDkmdD0yZjZkOTY3MTg1ZmUyYjljNTRlOGIyMzBlYjgzZTY2YycsXFxuICAgICAgICBjb2xfdHlwZTogXFxcImF2YXRhclxcXCJcXG4gICAgfSk7XFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICBjb2xfdHlwZTogXFxcImJpZ19ibGFua19ibG9ja1xcXCJcXG4gICAgfSk7XFxuXFxuICAgIGQucHVzaCh7XFxuICAgICAgICB0aXRsZTogZ2V0Q29sb3JlZFRleHQoXFxcIuaWsOW7uuiuoumYhVxcXCIpLFxcbiAgICAgICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG4gICAgICAgIGRlc2M6IFxcXCLor7fovpPlhaXnm7Tmkq3mupDorqLpmIXlnLDlnYBcXFwiLFxcbiAgICAgICAgdXJsOiAkKCcnLCAn6K+36L6T5YWl6K6i6ZiF5Zyw5Z2AXFxcXG7lj6/ku6XlnKjlnLDlnYDlkI7liqB1YVxcXFxuKOS9v+eUqCQkJOWIhuWJsiknKS5pbnB1dCgocnVsZSkgPT4ge1xcbiAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5LiN6IO95Li656m6XFxcIlxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQuaW5kZXhPZihcXFwiaHR0cFxcXCIpICE9IDAgJiYgaW5wdXQuaW5kZXhPZihcXFwiZmlsZVxcXCIpICE9IDAgJiYgaW5wdXQuaW5kZXhPZihcXFwiaGlrZXJcXFwiKSAhPSAwKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/pk77mjqXmoLzlvI/mnInor69cXFwiXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgbGV0IFt1cmwsdWFdID0gaW5wdXQuc3BsaXQoJyQkJCcpO1xcbiAgICAgICAgICAgICAgICByZXR1cm4gJCgnJywgXFxcIuivt+i+k+WFpeiuoumYheagh+mimFxcXCIpLmlucHV0KCh1cmwsIHJ1bGUsdWEpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvY29uZmlnP3J1bGU9XFxcIiArIHJ1bGUpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb25maWcgPSBnZXRDb25maWcoKTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5kYXRhLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IGlucHV0LFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogdXJsLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVhOiB1YSB8fCAnJ1xcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICB3cml0ZUZpbGUoXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvbGl2ZS9jb25maWcuanNvblxcXCIsIEpTT04uc3RyaW5naWZ5KGNvbmZpZykpO1xcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lt7Lkv53lrZhcXFwiO1xcbiAgICAgICAgICAgICAgICB9LCB1cmwsIHJ1bGUsdWEpXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSwgZ2V0TXlWYXIoJ3RpdGxlJykpXFxuICAgIH0pO1xcblxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGdldENvbG9yZWRUZXh0KFxcXCLlr7zlhaXorqLpmIVcXFwiKSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxuICAgICAgICB1cmw6ICQoJycsICfmlK/mjIHljp/lp4vmlbDmja7lkozkupHliarotLTmnb/liIbkuqvpk77mjqUnKS5pbnB1dCgocnVsZSkgPT4ge1xcbiAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvYmF0Y2hJbT9ydWxlPVxcXCIgKyBydWxlKSkucnVsZSk7XFxuICAgICAgICAgICAgaWYgKGlucHV0LnN0YXJ0c1dpdGgoJ+iBmuebtOaSreWIhuS6qyMjJykpIHtcXG4gICAgICAgICAgICAgICAgaW5wdXQgPSBwYXJzZVBhc3RlKGlucHV0LnNwbGl0KCcjI1xcXFxuJylbMV0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gYmF0Y2hJbXBvcnQoaW5wdXQsIHJ1bGUpO1xcbiAgICAgICAgfSwgZ2V0TXlWYXIoJ3RpdGxlJykpXFxuICAgIH0pO1xcbiAgICBkLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IGdldENvbG9yZWRUZXh0KFxcXCLlr7zlhaXmnKzlnLDmupBcXFwiKSxcXG4gICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxuICAgICAgICBkZXNjOiBcXFwi6K+36L6T5YWl55u05pKt5rqQ5ZCN56ewXFxcIixcXG4gICAgICAgIHVybDogJCgnJywgJ+ivt+i+k+WFpeebtOaSrea6kOWQjeensCcpLmlucHV0KChydWxlKSA9PiB7XFxuICAgICAgICAgICAgaWYgKGlucHV0ID09IFxcXCJcXFwiKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/kuI3og73kuLrnqbpcXFwiXFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJmaWxlU2VsZWN0Oi8vXFxcIiArICQudG9TdHJpbmcoKG5hbWUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBzID0gaW5wdXQuc3BsaXQoXFxcIi9cXFwiKVxcbiAgICAgICAgICAgICAgICAgICAgdmFyIHVybCA9IFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL2xpdmUvXFxcIiArIG5hbWUgKyBcXFwiLm0zdVxcXCJcXG4gICAgICAgICAgICAgICAgICAgIHZhciBjID0gZmV0Y2goXFxcImhpa2VyOi8vZmlsZXMvY2FjaGUvXFxcIiArIHNbcy5sZW5ndGggLSAxXSlcXG4gICAgICAgICAgICAgICAgICAgIGlmICghYy5pbmNsdWRlcygnaHR0cCcpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+mdnuazleaWh+S7tidcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZSh1cmwsIGMpXFxuICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9wYWdlL2NvbmZpZz9ydWxlPeiBmuebtOaSrVxcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb25maWcgPSBnZXRDb25maWcoKTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5kYXRhLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2xpdmUvY29uZmlnLmpzb25cXFwiLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKCk7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5L+d5a2YJ1xcbiAgICAgICAgICAgICAgICB9LCBpbnB1dClcXG4gICAgICAgICAgICB9XFxuICAgICAgICB9KVxcbiAgICB9KTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBnZXRDb2xvcmVkVGV4dChcXFwi5YiG5Lqr6K6i6ZiFXFxcIiksXFxuICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgdXJsOiAkKFtcXFwi5Y6f5aeL5pWw5o2uXFxcIiwgXFxcIuS6keWJqui0tOadv1xcXCIsIFxcXCLkupHlj6Pku6RcXFwiXSwgMykuc2VsZWN0KCgpID0+IHtcXG4gICAgICAgICAgICByZXR1cm4gJCgn56Gu5a6a5a+85Ye677yfXFxcXG4o56aB55So6K6i6ZiF5LiN5Lya5a+85Ye6KScpLmNvbmZpcm0oKHR5cGUpID0+IHtcXG4gICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKHJlcXVlc3QoXFxcImhpa2VyOi8vcGFnZS9jb25maWdcXFwiKSkucnVsZSk7XFxuICAgICAgICAgICAgICAgIGNvbmZpZyA9IGdldENvbmZpZygpO1xcbiAgICAgICAgICAgICAgICBjb25maWcuZGF0YSA9IGNvbmZpZy5kYXRhLmZpbHRlcih2ID0+ICF2LmluVmlzaWJsZSk7XFxuICAgICAgICAgICAgICAgIGlmICh0eXBlID09IFxcXCLkupHliarotLTmnb9cXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9ICfogZrnm7Tmkq3liIbkuqsjI1xcXFxuJyArIHNoYXJlUGFzdGUoSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PSBcXFwi5LqR5Y+j5LukXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSAn6IGa55u05pKt5YiG5LqrLOWkjeWItuWQjuaJk+W8gOi9r+S7tuWNs+WPr+WvvOWFpVxcXFxuJyArIHNoYXJlUGFzdGUoSlNPTi5zdHJpbmdpZnkoY29uZmlnKSkgKyAnQGltcG9ydD1qczpldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS9jbG91ZD9ydWxlPeiBmuebtOaSrVxcXCIpKS5ydWxlKSc7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSA9IEpTT04uc3RyaW5naWZ5KGNvbmZpZyk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJjb3B5Oi8vXFxcIiArIGRhdGE7XFxuICAgICAgICAgICAgfSwgaW5wdXQpXFxuICAgICAgICB9KVxcbiAgICB9KTtcXG4gICAgZC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiBnZXRDb2xvcmVkVGV4dChcXFwi57yW6L6R5YWo6YOoXFxcIiksXFxuICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgdXJsOiBcXFwiZWRpdEZpbGU6Ly9oaWtlcjovL2ZpbGVzL3J1bGVzL2xpdmUvY29uZmlnLmpzb25cXFwiXFxuICAgIH0pO1xcblxcbiAgICBkLnB1c2goe1xcbiAgICAgICAgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCJcXG4gICAgfSk7XFxuXFxuICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvY29uZmlnXFxcIikpLnJ1bGUpO1xcbiAgICBjb25maWcgPSBnZXRDb25maWcoKTtcXG4gICAgbGV0IGVkaXRNb2RlID0gZ2V0TXlWYXIoJ2VkaXRNb2RlJywgJ+WQr+eUqOemgeeUqCcpO1xcbiAgICBbJ+WQr+eUqOemgeeUqCcsICfliKDpmaTorqLpmIUnLCAn6YeN5paw5o6S5bqPJywgJ+e8lui+keiuoumYhScsICfmuIXpmaTnvJPlrZgnXS5mb3JFYWNoKCh2KSA9PiB7XFxuICAgICAgICBkLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiB2ID09IGVkaXRNb2RlID8gJ+KAnOKAnOKAneKAnScgKyB2LmJvbGQoKS5mb250Y29sb3IoJyMxOUI4OUQnKSA6IHYsXFxuICAgICAgICAgICAgdXJsOiB2ID09IGVkaXRNb2RlID8gJ2hpa2VyOi8vZW1wdHknIDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgodikgPT4ge1xcbiAgICAgICAgICAgICAgICBwdXRNeVZhcignZWRpdE1vZGUnLCB2KVxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgIH0sIHYpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgICAgIH0pXFxuICAgIH0pO1xcbiAgICBjb25maWcuZGF0YS5mb3JFYWNoKCh2LCBpKSA9PiB7XFxuICAgICAgICBsZXQgZWwgPSB7XFxuICAgICAgICAgICAgdGl0bGU6IHYubmFtZSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfM1xcXCJcXG4gICAgICAgIH1cXG4gICAgICAgIHN3aXRjaCAoZWRpdE1vZGUpIHtcXG4gICAgICAgICAgICBjYXNlICflkK/nlKjnpoHnlKgnOlxcbiAgICAgICAgICAgICAgICBlbC50aXRsZSA9ICh2LmluVmlzaWJsZSA/ICfwn5S0ICcgOiAn8J+foiAnKSArIGVsLnRpdGxlXFxuICAgICAgICAgICAgICAgIGVsLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGkpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvY29uZmlnXFxcIikpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gZ2V0Q29uZmlnKCk7XFxuICAgICAgICAgICAgICAgICAgICBjb25maWcuZGF0YVtpXS5pblZpc2libGUgPSAhY29uZmlnLmRhdGFbaV0uaW5WaXNpYmxlO1xcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2xpdmUvY29uZmlnLmpzb25cXFwiLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgfSwgaSlcXG4gICAgICAgICAgICAgICAgYnJlYWtcXG4gICAgICAgICAgICBjYXNlICfliKDpmaTorqLpmIUnOlxcbiAgICAgICAgICAgICAgICBlbC51cmwgPSBcXFwiY29uZmlybTovL+ehruiupOWIoOmZpOKAnFxcXCIgKyB2Lm5hbWUgKyBcXFwi4oCd6K6i6ZiF77yfLmpzOlxcXCIgKyAkLnRvU3RyaW5nKChpKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9wYWdlL2NvbmZpZ1xcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZyA9IGdldENvbmZpZygpO1xcbiAgICAgICAgICAgICAgICAgICAgY29uZmlnLmRhdGEuc3BsaWNlKGksIDEpO1xcbiAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2xpdmUvY29uZmlnLmpzb25cXFwiLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcXG4gICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/lt7LliKDpmaRcXFwiO1xcbiAgICAgICAgICAgICAgICB9LCBpKVxcbiAgICAgICAgICAgICAgICBicmVha1xcbiAgICAgICAgICAgIGNhc2UgJ+mHjeaWsOaOkuW6jyc6XFxuICAgICAgICAgICAgICAgIGxldCBzb3J0RmxhZyA9IHBhcnNlSW50KGdldE15VmFyKCdzb3J0RmxhZycsICctMScpKVxcbiAgICAgICAgICAgICAgICBlbC50aXRsZSA9IChzb3J0RmxhZyA9PSBpID8gJ/CflIMgICcgOiAnJykgKyBlbC50aXRsZVxcbiAgICAgICAgICAgICAgICBpZiAoc29ydEZsYWcgPT0gLTEpXFxuICAgICAgICAgICAgICAgICAgICBlbC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3NvcnRGbGFnJywgaS50b1N0cmluZygpKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/pgInmi6nopoHnp7vliqjliLDnmoTkvY3nva4nXFxuICAgICAgICAgICAgICAgICAgICB9LCBpKVxcbiAgICAgICAgICAgICAgICBlbHNlXFxuICAgICAgICAgICAgICAgICAgICBlbC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChvbGRJbmRleCwgbmV3SW5kZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9wYWdlL2NvbmZpZ1xcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWcgPSBnZXRDb25maWcoKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuZGF0YS5zcGxpY2UobmV3SW5kZXgsIDAsIGNvbmZpZy5kYXRhLnNwbGljZShvbGRJbmRleCwgMSlbMF0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2xpdmUvY29uZmlnLmpzb25cXFwiLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignc29ydEZsYWcnLCAnLTEnKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgICAgIH0sIHNvcnRGbGFnLCBpKVxcbiAgICAgICAgICAgICAgICBicmVha1xcbiAgICAgICAgICAgIGNhc2UgJ+e8lui+keiuoumYhSc6XFxuICAgICAgICAgICAgICAgIGxldCBhcnIgPSBbJ+e8lui+keWQjeensCcsICfnvJbovpHlnLDlnYAnLCAn57yW6L6R5YaF5a65J107XFxuICAgICAgICAgICAgICAgIGVsLnVybCA9ICQoYXJyLCAzKS5zZWxlY3QoKHYsIGkpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PSAn57yW6L6R5ZCN56ewJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKHYubmFtZSwgJ+i+k+WFpeaWsOWQjeensCcpLmlucHV0KChpKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvY29uZmlnXFxcIikpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcgPSBnZXRDb25maWcoKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuZGF0YVtpXS5uYW1lID0gaW5wdXRcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlRmlsZShcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9saXZlL2NvbmZpZy5qc29uXFxcIiwgSlNPTi5zdHJpbmdpZnkoY29uZmlnKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/kv67mlLnmiJDlip8nXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5LiN6IO95Li656m6J1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgaSk7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICfnvJbovpHlnLDlnYAnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQodi51YSA/IHYudXJsICsgJyQkJCcgKyB2LnVhIDogdi51cmwsICfovpPlhaXmlrDlnLDlnYAnKS5pbnB1dCgoaSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UocmVxdWVzdChcXFwiaGlrZXI6Ly9wYWdlL2NvbmZpZ1xcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnID0gZ2V0Q29uZmlnKCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwiXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+S4jeiDveS4uuepulxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC5pbmRleE9mKFxcXCJodHRwXFxcIikgIT0gMCAmJiBpbnB1dC5pbmRleE9mKFxcXCJmaWxlXFxcIikgIT0gMCAmJiBpbnB1dC5pbmRleE9mKFxcXCJoaWtlclxcXCIpICE9IDApIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwidG9hc3Q6Ly/pk77mjqXmoLzlvI/mnInor69cXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgW3VybCx1YV0gPSBpbnB1dC5zcGxpdCgnJCQkJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuZGF0YVtpXS51cmwgPSB1cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuZGF0YVtpXS51YSA9IHVhO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd3JpdGVGaWxlKFxcXCJoaWtlcjovL2ZpbGVzL3J1bGVzL2xpdmUvY29uZmlnLmpzb25cXFwiLCBKU09OLnN0cmluZ2lmeShjb25maWcpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+S/ruaUueaIkOWKnydcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIGkpO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PSAn57yW6L6R5YaF5a65Jykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2LnVybC5zdGFydHNXaXRoKCdmaWxlOi8vJykgfHwgdi51cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly9maWxlcycpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZWRpdEZpbGU6Ly8nICsgdi51cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnZWRpdEZpbGU6Ly9oaWtlcjovL2ZpbGVzL2xpYnMvJyArIG1kNSh2LnVybCkgKyAnLmpzJ1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9LCB2LCBpKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSAn5riF6Zmk57yT5a2YJzpcXG4gICAgICAgICAgICAgICAgZWwudXJsID0gJCgn56Gu5a6a5riF6Zmk4oCcJyArIHYubmFtZSArICfigJ3orqLpmIXnvJPlrZjvvJ9cXFxcbijlj6/nq4vljbPmm7TmlrApJykuY29uZmlybSgodXJsKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBkZWxldGVDYWNoZSh1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+a4hemZpOaIkOWKnydcXG4gICAgICAgICAgICAgICAgfSwgdi51cmwpXFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfVxcbiAgICAgICAgZC5wdXNoKGVsKVxcbiAgICB9KTtcXG4gICAgcmV0dXJuIGQ7XFxufVxcblxcbiQuZXhwb3J0cyA9IHtcXG4gICAgcmVuZGVyU2V0dGluZzogcmVuZGVyU2V0dGluZ1xcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuS6keWPo+S7pFwiLFwicGF0aFwiOlwiY2xvdWRcIixcInJ1bGVcIjpcImV2YWwoSlNPTi5wYXJzZShyZXF1ZXN0KFxcXCJoaWtlcjovL3BhZ2UvYmF0Y2hJbT9ydWxlPeiBmuebtOaSrVxcXCIpKS5ydWxlKTtcXG5sZXQgY29udGVudCA9IHBhcnNlUGFzdGUoaW5wdXQpO1xcbmJhdGNoSW1wb3J0KGNvbnRlbnQsIFxcXCLogZrnm7Tmkq1cXFwiKTtcIn1dIiwiaWNvbiI6Imh0dHBzOi8vZ2ltZzIuYmFpZHUuY29tL2ltYWdlX3NlYXJjaC9zcmM9aHR0cCUzQSUyRiUyRmlzNC5tenN0YXRpYy5jb20lMkZpbWFnZSUyRnRodW1iJTJGUHVycGxlMyUyRnY0JTJGZGYlMkZmNiUyRmRhJTJGZGZmNmRhODMtNDdkNy05Y2I2LTIzOTgtMTkxOWMxMzgzN2I0JTJGbXpsLmtnbW53b2RvLnBuZyUyRjB4MHNzLTg1LmpwZyZyZWZlcj1odHRwJTNBJTJGJTJGaXM0Lm16c3RhdGljLmNvbSZhcHA9MjAwMiZzaXplPWY5OTk5LDEwMDAwJnE9YTgwJm49MCZnPTBuJmZtdD1qcGVnP3NlYz0xNjM4NjI5MzQ5JnQ9MmY2ZDk2NzE4NWZlMmI5YzU0ZThiMjMwZWI4M2U2NmMiLCJwcm94eSI6IiJ9
Add Comment
Please, Sign In to add comment