Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:小程序¥home_rule_v2¥base64://@替换违禁词导入@eyJsYXN0X2NoYXB0ZXJfcnVsZSI6IiIsInRpdGxlIjoi5pu/5o2i6L+d56aB6K+N5a+85YWlIiwiYXV0aG9yIjoi5pen5be36ZmM5Lq6IiwidXJsIjoiaGlrZXI6Ly9lbXB0eSMjbm9SZWZyZXNoIyIsInZlcnNpb24iOjAsImNvbF90eXBlIjoibW92aWVfMyIsImNsYXNzX25hbWUiOiIiLCJ0eXBlIjoidmlkZW8iLCJjbGFzc191cmwiOiIiLCJhcmVhX25hbWUiOiIiLCJhcmVhX3VybCI6IiIsInNvcnRfbmFtZSI6IiIsInllYXJfbmFtZSI6IiIsInNvcnRfdXJsIjoiIiwieWVhcl91cmwiOiIiLCJmaW5kX3J1bGUiOiJqczpcbmNvbnN0IGljb25TdmcgPSAkLnJlcXVpcmUoXCJpY29uLnRvb2xcIik7XG5jb25zdCB0b29sSnMgPSAkLnJlcXVpcmUoXCJ0b29sLmpzXCIpO1xuY29uc3QgZCA9IFtdO1xuXG5sZXQgdGV4dCA9IHRvb2xKcy5nZXRDbGlwYm9hcmRUZXh0KCkgfHwgXCJcIjtcbmxldCB1cmwgPSAodGV4dC5pbmNsdWRlcyhcIu+/pWJhc2U2NFwiKSB8fCB0ZXh0LmluY2x1ZGVzKFwi77+laG9tZV9ydWxlXCIpIHx8IHRleHQuc3RhcnRzV2l0aChcIuS6kVwiKSkgPyB0ZXh0IDogXCJcIjtcbmlmICh1cmwpIHtcbiAgICBsZXQgY2FjaGUgPSBnZXRJdGVtKFwiY2xpcGJvYXJkQ2FjaGVcIiwgXCJcIik7XG4gICAgaWYgKHVybCAhPT0gY2FjaGUpIHtcbiAgICAgICAgZC5wdXNoKHtcbiAgICAgICAgICAgIHRpdGxlOiBcIuajgOa1i+WIsOWJqui0tOadv+WQq+acieWwj+eoi+W6j+aYr+WQpuWvvOWFpT9cXG5cIiArIHVybCxcbiAgICAgICAgICAgIGltZzogaWNvblN2Zy5pbXBvcnQsXG4gICAgICAgICAgICB1cmw6ICQoXCIjbm9Mb2FkaW5nI1wiKS5sYXp5UnVsZSgoaW5wdXQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB0b29sSnMgPSAkLnJlcXVpcmUoXCJ0b29sLmpzXCIpO1xuICAgICAgICAgICAgICAgIGxldCBpbXBvcnRSdWxlID0gdG9vbEpzLnByb2Nlc3NJbnB1dChpbnB1dCk7XG4gICAgICAgICAgICAgICAgZGVsZXRlSXRlbShcImNsaXBib2FyZFwiKTtcbiAgICAgICAgICAgICAgICBzZXRJdGVtKFwiY2xpcGJvYXJkQ2FjaGVcIiwgaW5wdXQpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpbXBvcnRSdWxlO1xuICAgICAgICAgICAgfSwgdXJsKSxcbiAgICAgICAgICAgIGNvbF90eXBlOiBcInRleHRfaWNvblwiLFxuICAgICAgICAgICAgZXh0cmE6IHtcbiAgICAgICAgICAgICAgICBpZDogXCJjbGlwYm9hcmRcIlxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xufTtcblxuZC5wdXNoKHtcbiAgICB0aXRsZTogXCLop6Plr4bku6PnoIFcIiArIFwi77yI5LuF5pSv5oyBZXZhbFByaXZhdGVKU++8iVwiLnNtYWxsKCksXG4gICAgaW1nOiBnZXRJdGVtKFwiOmFwcGxpY2F0aW9uXCIsIFwiXCIpID09IFwiXCIgPyBpY29uU3ZnLm9uIDogaWNvblN2Zy5vZmYsXG4gICAgdXJsOiAkKFwiI25vTG9hZGluZyNcIikubGF6eVJ1bGUoKCkgPT4ge1xuICAgICAgICBjb25zdCBpY29uU3ZnID0gJC5yZXF1aXJlKFwiaWNvbi50b29sXCIpO1xuICAgICAgICBpZiAoZ2V0SXRlbShcIjphcHBsaWNhdGlvblwiLCBcIlwiKSA9PSBcIlwiKSB7XG4gICAgICAgICAgICBzZXRJdGVtKFwiOmFwcGxpY2F0aW9uXCIsIFwiMVwiKTtcbiAgICAgICAgICAgIHVwZGF0ZUl0ZW0oXCJhcHBsaWNhdGlvblwiLCB7XG4gICAgICAgICAgICAgICAgaW1nOiBpY29uU3ZnLm9mZlxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjbGVhckl0ZW0oXCI6YXBwbGljYXRpb25cIik7XG4gICAgICAgICAgICB1cGRhdGVJdGVtKFwiYXBwbGljYXRpb25cIiwge1xuICAgICAgICAgICAgICAgIGltZzogaWNvblN2Zy5vblxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBcImhpa2VyOi8vZW1wdHlcIjtcbiAgICB9KSxcbiAgICBjb2xfdHlwZTogXCJ0ZXh0X2ljb25cIixcbiAgICBleHRyYToge1xuICAgICAgICBpZDogXCJhcHBsaWNhdGlvblwiXG4gICAgfVxufSk7XG5cbmxldCBfZGVtb2xNYXAgPSBbXCLljZXop4TliJlcIiwgXCLljZXmlofku7ZcIiwgXCLmnKzlnLDlkIjpm4ZcIiwgXCLlkIjpm4borqLpmIVcIl07XG5sZXQgdGluZGV4ID0gZ2V0TXlWYXIoXCI6dGFnXCIsIFwiMFwiKTtcblxuX2RlbW9sTWFwLmZvckVhY2goKGl0LCBpKSA9PiB7XG4gICAgZC5wdXNoKHtcbiAgICAgICAgdGl0bGU6IGkgPT0gdGluZGV4ID8gaXQuY29sb3IoKS5yaWNoKCkgOiBpdCxcbiAgICAgICAgdXJsOiAkKFwiI25vTG9hZGluZyNcIikubGF6eVJ1bGUoKF9kZW1vbE1hcCwgaXQsIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRvb2xKcyA9ICQucmVxdWlyZShcInRvb2wuanNcIik7XG4gICAgICAgICAgICBsZXQgdGluZGV4ID0gZ2V0TXlWYXIoXCI6dGFnXCIsIFwiMFwiKTtcbiAgICAgICAgICAgIHB1dE15VmFyKFwiOnRhZ1wiLCBpKTtcbiAgICAgICAgICAgIHVwZGF0ZUl0ZW0odGluZGV4ICsgXCJ0YWdcIiwge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBfZGVtb2xNYXBbdGluZGV4XSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdXBkYXRlSXRlbShpICsgXCJ0YWdcIiwge1xuICAgICAgICAgICAgICAgIHRpdGxlOiBpdC5jb2xvcigpLnJpY2goKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBkZWxldGVJdGVtQnlDbHMoXCJkZW1vbG1vZFwiKTtcbiAgICAgICAgICAgIGFkZEl0ZW1BZnRlcihcImxheW91dFwiLCB0b29sSnMuZ2V0QWRkSXRlbUFmdGVyTW9kKF9kZW1vbE1hcCwgaSkpO1xuICAgICAgICAgICAgcmV0dXJuIFwiaGlrZXI6Ly9lbXB0eVwiO1xuICAgICAgICB9LCBfZGVtb2xNYXAsIGl0LCBpKSxcbiAgICAgICAgY29sX3R5cGU6IFwic2Nyb2xsX2J1dHRvblwiLFxuICAgICAgICBleHRyYToge1xuICAgICAgICAgICAgaWQ6IGkgKyBcInRhZ1wiXG4gICAgICAgIH1cbiAgICB9KTtcbn0pO1xuXG5kLnB1c2goe1xuICAgIGNvbF90eXBlOiBcImJsYW5rX2Jsb2NrXCIsXG4gICAgZXh0cmE6IHtcbiAgICAgICAgaWQ6IFwibGF5b3V0XCJcbiAgICB9XG59KTtcblxuc2V0UmVzdWx0KGQuY29uY2F0KHRvb2xKcy5nZXRBZGRJdGVtQWZ0ZXJNb2QoX2RlbW9sTWFwLCB0aW5kZXgpKSk7Iiwic2VhcmNoX3VybCI6IiIsImdyb3VwIjoi4pGh5bel5YW3Iiwic2VhcmNoRmluZCI6IiIsImRldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJkZXRhaWxfZmluZF9ydWxlIjoiIiwic2RldGFpbF9jb2xfdHlwZSI6Im1vdmllXzEiLCJzZGV0YWlsX2ZpbmRfcnVsZSI6IiIsInVhIjoibW9iaWxlIiwicHJlUnVsZSI6IiQuZXh0ZW5kKHtcbiAgICBpbml0SGlrZXIoKSB7XG4gICAgICAgIFN0cmluZy5wcm90b3R5cGUucmljaCA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmV0dXJuIFwi4oCc4oCc4oCd4oCdXCIgKyB0aGlzO1xuICAgICAgICB9O1xuICAgICAgICBTdHJpbmcucHJvdG90eXBlLmNvbG9yID0gZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICByZXR1cm4gJzxmb250IGNvbG9yPVwiI0ZBNzI5OFwiPicgKyB0aGlzICsgJzwvZm9udD4nO1xuICAgICAgICB9O1xuICAgIH1cbn0pOyIsInBhZ2VzIjoiW3tcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlt6XlhbdcIixcInBhdGhcIjpcInRvb2wuanNcIixcInJ1bGVcIjpcIiQuZXhwb3J0cyA9IHtcXG4gICAgcHJvY2Vzc0lucHV0OiBmdW5jdGlvbihpbnB1dCkge1xcbiAgICAgICAgY29uc3QgdG9vbEpzID0gJC5yZXF1aXJlKFxcXCJ0b29sLmpzXFxcIik7XFxuICAgICAgICBjb25zdCBbZW5jb2RlZE1hcCwgdXJsTWFwXSA9IFtcXG4gICAgICAgICAgICBbXFxuICAgICAgICAgICAgICAgIFxcXCI1b0NuNTVpK1xcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCJVK2U2cHc9PVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1WUczNW91TlxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1cGVnNTZDQlxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1cHlKNTZDQlxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1WStqNTRpR1xcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1THltNTVDR1xcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1WldxNVpXcVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1N3FtNTRLdVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1YkNSNWFhSFxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1NytZNkllQVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1Wkc3NVpDZlxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1WStNNmFPZVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1YWUvNVlxL1xcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1b09GNklteVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1YVd6NUx5WVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1THE2NWFhN1xcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1b0NuNTRpeFxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1TG14NUx5bVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI1Ynk2NWFXNFxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCI2YmloNWJlMFxcXCJcXG4gICAgICAgICAgICBdLFxcbiAgICAgICAgICAgIFtcXG4gICAgICAgICAgICAgICAgXFxcInlvdWt1LmNvbVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCJpcWl5aS5jb21cXFwiLFxcbiAgICAgICAgICAgICAgICBcXFwiLnFxLmNvbVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCJtZ3R2LmNvbVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCJhY2Z1bi5cXFwiLFxcbiAgICAgICAgICAgICAgICBcXFwidHVkb3UuY29tXFxcIixcXG4gICAgICAgICAgICAgICAgXFxcIi5zb2h1LmNvbVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCJiYWlkdS5jb21cXFwiLFxcbiAgICAgICAgICAgICAgICBcXFwiYmlsaWJpbGkuY29tXFxcIixcXG4gICAgICAgICAgICAgICAgXFxcIi54aW1hbGF5YS5cXFwiLFxcbiAgICAgICAgICAgICAgICBcXFwiZG91eWluLmNvbVxcXCIsXFxuICAgICAgICAgICAgICAgIFxcXCJpeGlndWEuY29tXFxcIlxcbiAgICAgICAgICAgIF1cXG4gICAgICAgIF07XFxuXFxuICAgICAgICBjb25zdCBlbmNvZGVkU3RyaW5ncyA9IGVuY29kZWRNYXAubWFwKGl0ID0+IGRlY29kZVVSSUNvbXBvbmVudChiYXNlNjREZWNvZGUoaXQpKSkuam9pbihcXFwifFxcXCIpO1xcblxcbiAgICAgICAgY29uc3QgdXJsY29kZVN0cmluZ3MgPSB1cmxNYXAuam9pbihcXFwifFxcXCIpO1xcblxcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBpZiAoIXRvb2xKcy5pc1ZhbGlkSnNvbkFycmF5KGlucHV0KSkge1xcbiAgICAgICAgICAgICAgICBpbnB1dCA9IChpbnB1dC5zdGFydHNXaXRoKFxcXCLkupFcXFwiKSB8fCBpbnB1dC5zdGFydHNXaXRoKFxcXCJodHRwXFxcIikpID8gcGFyc2VQYXN0ZShpbnB1dCkgOiBpbnB1dDtcXG4gICAgICAgICAgICAgICAganNvbiA9IFtKU09OLnBhcnNlKGlucHV0LmluY2x1ZGVzKFxcXCLvv6ViYXNlNjRcXFwiKSA/IGJhc2U2NERlY29kZShpbnB1dC5zcGxpdChcXFwiQFxcXCIpWzJdKSA6IGlucHV0LnNwbGl0KFxcXCLvv6VcXFwiKVsyXSldO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIGpzb24gPSBKU09OLnBhcnNlKGlucHV0KTtcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIGxldCBqc29ucyA9IFtdO1xcbiAgICAgICAgICAgIGpzb24uZm9yRWFjaChfID0+IHtcXG4gICAgICAgICAgICAgICAgX1tcXFwidXJsXFxcIl0gPSBfW1xcXCJ1cmxcXFwiXS5yZXBsYWNlKG5ldyBSZWdFeHAodXJsY29kZVN0cmluZ3MsIFxcXCJnXFxcIiksICh1cmwpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIHBhcnRzID0gdXJsLnNwbGl0KFxcXCIuXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICBwYXJ0cyA9IHBhcnRzLmZpbmQocGFydCA9PiBwYXJ0ICE9PSBcXFwiXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXJsLnJlcGxhY2UocGFydHMsIHRvb2xKcy5lbmNvZGVVbmljb2RlKTtcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIFtcXFwiY2xhc3NfdXJsXFxcIiwgXFxcImFyZWFfdXJsXFxcIiwgXFxcInllYXJfdXJsXFxcIiwgXFxcInNvcnRfdXJsXFxcIl0uZm9yRWFjaChzID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIF9bc10gPSBfW3NdLnJlcGxhY2UobmV3IFJlZ0V4cChlbmNvZGVkU3RyaW5ncywgXFxcImdcXFwiKSwgZW5jb2RlVVJJQ29tcG9uZW50KTtcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIF9bXFxcInBhZ2VzXFxcIl0gPSBfW1xcXCJwYWdlc1xcXCJdLnJlcGxhY2UoL2V2YWxQcml2YXRlSlNcXFxcKCguKj8pXFxcXCk7Py9nLCB0b29sSnMuZGVjb2RlRXZhbFByaXZhdGVKUylcXG4gICAgICAgICAgICAgICAgXyA9IEpTT04uc3RyaW5naWZ5KF8pLnJlcGxhY2UobmV3IFJlZ0V4cChlbmNvZGVkU3RyaW5ncywgXFxcImdcXFwiKSwgbSA9PiBBcnJheS5mcm9tKG0pLmpvaW4oXFxcIuKAi1xcXCIpKS5yZXBsYWNlKC9ldmFsUHJpdmF0ZUpTXFxcXCgoLio/KVxcXFwpOz8vZywgdG9vbEpzLmRlY29kZUV2YWxQcml2YXRlSlMpO1xcbiAgICAgICAgICAgICAgICBqc29ucy5wdXNoKEpTT04ucGFyc2UoXykpO1xcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIGlmIChqc29ucy5sZW5ndGggPT0gMSkge1xcbiAgICAgICAgICAgICAgICBpbnB1dCA9IFxcXCLmtbfpmJTop4bnlYzop4TliJnliIbkuqvvvIzlvZPliY3liIbkuqvnmoTmmK/vvJrlsI/nqIvluo/vv6Vob21lX3J1bGXvv6VcXFwiICsgSlNPTi5zdHJpbmdpZnkoanNvbnNbMF0pO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIGpzb24gPSBKU09OLnN0cmluZ2lmeShqc29ucyk7XFxuICAgICAgICAgICAgICAgIGZpbGUgPSBnZXRNeVZhcihcXFwiOmZpbGVcXFwiLCBcXFwiaGlrZXI6Ly9maWxlcy9jYWNoZS9oaWtlci5qc29uXFxcIik7XFxuICAgICAgICAgICAgICAgIHdyaXRlRmlsZShmaWxlLCBqc29uKTtcXG4gICAgICAgICAgICAgICAgaW5wdXQgPSBcXFwi5rW36ZiU6KeG55WM77yM6aaW6aG16aKR6YGT5ZCI6ZuG77+laG9tZV9ydWxlX3VybO+/pVxcXCIgKyBmaWxlO1xcbiAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJydWxlOi8vXFxcIiArIGJhc2U2NEVuY29kZShpbnB1dCk7XFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+mdnuazleWtl+espuS4slxcXCI7XFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBlbmNvZGVVbmljb2RlOiBmdW5jdGlvbihzdHIpIHtcXG4gICAgICAgIHN0ciA9IHN0ci5zcGxpdChcXFwiXFxcIikubWFwKGl0ID0+IGl0LmNoYXJDb2RlQXQoKS50b1N0cmluZygxNikuc2xpY2UoLTQpKS5qb2luKFxcXCIlXFxcIik7XFxuICAgICAgICByZXR1cm4gXFxcIiVcXFwiICsgc3RyXFxuICAgIH0sXFxuICAgIGRlY29kZUV2YWxQcml2YXRlSlM6IGZ1bmN0aW9uKG1hdGNoLCBTdHJjb2RlKSB7XFxuICAgICAgICBpZiAoZ2V0SXRlbShcXFwiOmFwcGxpY2F0aW9uXFxcIiwgXFxcIlxcXCIpID09IFxcXCJcXFwiKSB7XFxuICAgICAgICAgICAgbGV0IGRlY29kZWRWYWx1ZSA9IGFlc0RlY29kZShcXFwiaGs2NjY2NjY2MTA5XFxcIiwgU3RyY29kZS5zbGljZSgxLCBTdHJjb2RlLmxlbmd0aCAtIDEpKTtcXG4gICAgICAgICAgICBsZXQganNvblN0cmluZ2lmaWVkID0gSlNPTi5zdHJpbmdpZnkoZGVjb2RlZFZhbHVlKTtcXG4gICAgICAgICAgICByZXR1cm4ganNvblN0cmluZ2lmaWVkLnNsaWNlKDEsIGpzb25TdHJpbmdpZmllZC5sZW5ndGggLSAxKTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgcmV0dXJuIG1hdGNoO1xcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAgZ2V0UG9zaXRpb25KczogKGRhdGEsIGFycmF5LCBjaG9pY2UsIHV1aWQpID0+IHtcXG4gICAgICAgIGxldCBvYmogPSB7fTtcXG4gICAgICAgIGRhdGEuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcXG4gICAgICAgICAgICBpZiAoaXRlbVt1dWlkXSA9PT0gYXJyYXlbdXVpZF0pIHtcXG4gICAgICAgICAgICAgICAgb2JqID0gaXRlbTtcXG4gICAgICAgICAgICAgICAgZGF0YS5zcGxpY2UoaW5kZXgsIDEpO1xcbiAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgfTtcXG4gICAgICAgIH0pO1xcbiAgICAgICAgc3dpdGNoIChjaG9pY2UpIHtcXG4gICAgICAgICAgICBjYXNlIFxcXCJ0b3BcXFwiOlxcbiAgICAgICAgICAgICAgICBkYXRhLnVuc2hpZnQob2JqKTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSBcXFwiZW5kXFxcIjpcXG4gICAgICAgICAgICAgICAgZGF0YS5wdXNoKG9iaik7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgfTtcXG4gICAgfSxcXG4gICAgaXNWYWxpZEpzb25BcnJheTogZnVuY3Rpb24oc3RyKSB7XFxuICAgICAgICBjb25zdCByZWdleCA9IC9eXFxcXFsuKlxcXFxdJC87XFxuICAgICAgICByZXR1cm4gcmVnZXgudGVzdChzdHIpO1xcbiAgICB9LFxcbiAgICBpc1ZhbGlkVXJsOiBmdW5jdGlvbihfaW5pdFVybCkge1xcbiAgICAgICAgcmV0dXJuIF9pbml0VXJsLnN0YXJ0c1dpdGgoXFxcImh0dHBcXFwiKSB8fCBfaW5pdFVybC5zdGFydHNXaXRoKFxcXCJodHRwc1xcXCIpO1xcbiAgICB9LFxcbiAgICBnZXRBZGRJdGVtQWZ0ZXJNb2Q6IGZ1bmN0aW9uKF9kZW1vbE1hcCwgdGluZGV4KSB7XFxuICAgICAgICBjb25zdCBpY29uU3ZnID0gJC5yZXF1aXJlKFxcXCJpY29uLnRvb2xcXFwiKTtcXG4gICAgICAgIGNvbnN0IHRvb2xKcyA9ICQucmVxdWlyZShcXFwidG9vbC5qc1xcXCIpO1xcbiAgICAgICAgbGV0IHJlcXVpcmVVcmwgPSBcXFwiaHR0cDovL2hpa2VyLm5va2lhLnByZXNzL2hpa2VydWxlL3J1bGVsaXN0Lmpzb24/aWQ9NTA5OVxcXCI7XFxuICAgICAgICBjb25zdCBmaWxlU2VsZWN0ID0gJC5yZXF1aXJlKHJlcXVpcmVVcmwpO1xcbiAgICAgICAgbGV0IGxheW91dCA9IFtdO1xcbiAgICAgICAgc3dpdGNoIChfZGVtb2xNYXBbdGluZGV4XSkge1xcbiAgICAgICAgICAgIGNhc2UgX2RlbW9sTWFwWzBdOlxcbiAgICAgICAgICAgICAgICBsYXlvdXQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuWvvOWFpVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQudG9TdHJpbmcoKCkgPT4gJC5yZXF1aXJlKFxcXCJ0b29sLmpzXFxcIikucHJvY2Vzc0lucHV0KGlucHV0KSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcImlucHV0XFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXFxcInRleHRhcmVhXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xzOiBcXFwiZGVtb2xtb2RcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgICAgICBjYXNlIF9kZW1vbE1hcFsxXTpcXG4gICAgICAgICAgICAgICAgbGF5b3V0LnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJyaWNoX3RleHRcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbHM6IFxcXCJkZW1vbG1vZFxcXCJcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIGxheW91dC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcImhpa2VyOi8vZW1wdHlcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJjYXJkX3BpY18zXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xzOiBcXFwiZGVtb2xtb2RcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICBsYXlvdXQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIumAieaLqeaWh+S7tlxcXFxuLmhpa2VyIC50eHRcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgaW1nOiBpY29uU3ZnLmZpbGUsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IGZpbGVTZWxlY3QuZmlsZVNlbGVjdGlvblVyaSh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2s6ICQudG9TdHJpbmcoKCkgPT4gJC5yZXF1aXJlKFxcXCJ0b29sLmpzXFxcIikucHJvY2Vzc0lucHV0KGZldGNoKFxcXCJmaWxlOi8vXFxcIiArIFBBVEgpKSksXFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZVR5cGU6IFxcXCIuaGlrZXJ8LnR4dFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0dGVybjogMCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrVHlwZTogXFxcImxhenlSdWxlXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlVXJsOiByZXF1aXJlVXJsLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluaXRpYWxQYXRoOiBnZXRQYXRoKFxcXCJoaWtlcjovL2ZpbGVzL1xcXCIpLnNsaWNlKDcpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvb3REaXJQYXRoOiBcXFwiL3N0b3JhZ2UvZW11bGF0ZWQvMC9cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4aXRTZWFyY2hSZWZyZXNoOiB0cnVlXFxuICAgICAgICAgICAgICAgICAgICB9KSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiY2FyZF9waWNfM19jZW50ZXJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbHM6IFxcXCJkZW1vbG1vZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZVRpdGxlOiBcXFwi6YCJ5oup5paH5Lu2XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgYnJlYWs7XFxuICAgICAgICAgICAgY2FzZSBfZGVtb2xNYXBbMl06XFxuICAgICAgICAgICAgICAgIGxheW91dC5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwicmljaF90ZXh0XFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xzOiBcXFwiZGVtb2xtb2RcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICBsYXlvdXQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5XFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiY2FyZF9waWNfM1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYToge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsczogXFxcImRlbW9sbW9kXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgbGF5b3V0LnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLpgInmi6nmlofku7ZcXFxcbi5qc29uXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGltZzogaWNvblN2Zy5maWxlLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBmaWxlU2VsZWN0LmZpbGVTZWxlY3Rpb25Vcmkoe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrOiAkLnRvU3RyaW5nKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoXFxcIjpmaWxlXFxcIiwgXFxcImZpbGU6Ly9cXFwiICsgUEFUSCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkLnJlcXVpcmUoXFxcInRvb2wuanNcXFwiKS5wcm9jZXNzSW5wdXQoZmV0Y2goXFxcImZpbGU6Ly9cXFwiICsgUEFUSCkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVUeXBlOiBcXFwiLmpzb25cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdHRlcm46IDAsXFxuICAgICAgICAgICAgICAgICAgICAgICAgb25DbGlja1R5cGU6IFxcXCJsYXp5UnVsZVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZVVybDogcmVxdWlyZVVybCxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsUGF0aDogZ2V0UGF0aChcXFwiaGlrZXI6Ly9maWxlcy9cXFwiKS5zbGljZSg3KSxcXG4gICAgICAgICAgICAgICAgICAgICAgICByb290RGlyUGF0aDogXFxcIi9zdG9yYWdlL2VtdWxhdGVkLzAvXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBleGl0U2VhcmNoUmVmcmVzaDogdHJ1ZVxcbiAgICAgICAgICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcImNhcmRfcGljXzNfY2VudGVyXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xzOiBcXFwiZGVtb2xtb2RcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogXFxcIumAieaLqeaWh+S7tlxcXCJcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIGJyZWFrO1xcbiAgICAgICAgICAgIGNhc2UgX2RlbW9sTWFwWzNdOlxcbiAgICAgICAgICAgICAgICBsYXlvdXQgPSBsYXlvdXQuY29uY2F0KHRvb2xKcy5nZXRhZGRJdGVtQmVmb3JlTW9kKCkpO1xcbiAgICAgICAgICAgICAgICBsYXlvdXQucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIua3u+WKoFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBpbWc6IGljb25TdmcuYWRkLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBoaWtlclBvcCA9ICQucmVxdWlyZShcXFwiaGlrZXJQb3AuanM/cnVsZT1oaWtlclBvcFxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpa2VyUG9wLmlucHV0VHdvUm93KHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGVIaW50OiBcXFwi5ZCN56ewXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGVEZWZhdWx0OiBcXFwiXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsSGludDogXFxcIumTvuaOpe+8iOmTvuaOpUDlm77moIfvvIlcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmxEZWZhdWx0OiBcXFwiXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9BdXRvU29mdDogdHJ1ZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFxcXCLmt7vliqDorqLpmIVcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maXJtKG5hbWUsIHVybCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdG9vbEpzID0gJC5yZXF1aXJlKFxcXCJ0b29sLmpzXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9vbGRvd24gPSBcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9qcy9zdWJzY3JpcHRpb24uanNcXFwiO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGFicmVhayA9IHRydWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKFxcXCJhamF4X21hcCA9XFxcIiArIHJlYWRGaWxlKHRvb2xkb3duKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgXyA9IHt9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXy50aXRsZSA9IG5hbWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfLnVybCA9IHVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXJsIHx8ICFuYW1lKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+S4jeW+l+S4uuepulxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWpheF9tYXBbTVlfUlVMRS50aXRsZV0uZm9yRWFjaChJdGVtID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoSXRlbVtcXFwidXJsXFxcIl0gPT0gdXJsIHx8IEl0ZW1bXFxcInRpdGxlXFxcIl0gPT0gbmFtZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2FzdChcXFwi6YeN5aSN5LqG5ZOmXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFicmVhayA9IGZhbHNlO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFicmVhaykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFqYXhfbWFwW01ZX1JVTEUudGl0bGVdLnB1c2goXyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZUZpbGUodG9vbGRvd24sIEpTT04uc3RyaW5naWZ5KGFqYXhfbWFwKSwgMCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IF9kZW1vbHNNYXAgPSB0b29sSnMuZ2V0YWRkSXRlbUJlZm9yZU1vZCgpO1xcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZEl0ZW1CZWZvcmUoXFxcInN1YnNjcmliZVxcXCIsIF9kZW1vbHNNYXBbX2RlbW9sc01hcC5sZW5ndGggLSAxXSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+a3u+WKoOaIkOWKn1xcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIjtcXG4gICAgICAgICAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJpY29uX3JvdW5kXzRcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjbHM6IFxcXCJkZW1vbG1vZFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IFxcXCJzdWJzY3JpYmVcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICBicmVhaztcXG4gICAgICAgIH07XFxuICAgICAgICByZXR1cm4gbGF5b3V0O1xcbiAgICB9LFxcbiAgICBnZXRhZGRJdGVtQmVmb3JlTW9kOiBmdW5jdGlvbigpIHtcXG4gICAgICAgIGNvbnN0IGljb25TdmcgPSAkLnJlcXVpcmUoXFxcImljb24udG9vbFxcXCIpO1xcbiAgICAgICAgY29uc3QgdG9vbEpzID0gJC5yZXF1aXJlKFxcXCJ0b29sLmpzXFxcIik7XFxuICAgICAgICBsZXQgbGF5b3V0ID0gW107XFxuICAgICAgICBsZXQgdG9vbGRvd24gPSBcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9qcy9zdWJzY3JpcHRpb24uanNcXFwiO1xcbiAgICAgICAgaWYgKCFmaWxlRXhpc3QodG9vbGRvd24pKSBzYXZlRmlsZSh0b29sZG93biwgSlNPTi5zdHJpbmdpZnkoe30pLCAwKTtcXG4gICAgICAgIGV2YWwoXFxcImFqYXhfbWFwID1cXFwiICsgcmVhZEZpbGUodG9vbGRvd24pKTtcXG4gICAgICAgIGlmIChhamF4X21hcFtNWV9SVUxFLnRpdGxlXSA9PSBudWxsKSB7XFxuICAgICAgICAgICAgYWpheF9tYXBbTVlfUlVMRS50aXRsZV0gPSBbXTtcXG4gICAgICAgICAgICBzYXZlRmlsZSh0b29sZG93biwgSlNPTi5zdHJpbmdpZnkoYWpheF9tYXApLCAwKTtcXG4gICAgICAgIH07XFxuICAgICAgICBldmFsKFxcXCJhamF4X21hcCA9XFxcIiArIHJlYWRGaWxlKHRvb2xkb3duKSk7XFxuICAgICAgICBsZXQgYWpheF9tYXBzID0gYWpheF9tYXBbTVlfUlVMRS50aXRsZV07XFxuICAgICAgICBsYXlvdXQgPSBsYXlvdXQuY29uY2F0KGFqYXhfbWFwcy5tYXAoKF8sIGkpID0+ICh7XFxuICAgICAgICAgICAgdGl0bGU6IF8udGl0bGUsXFxuICAgICAgICAgICAgaW1nOiBfLnVybC5pbmNsdWRlcyhcXFwiQFxcXCIpID8gXy51cmwuc3BsaXQoXFxcIkBcXFwiKVsxXSA6IGljb25TdmcuZGVmYXVsdEljb24sXFxuICAgICAgICAgICAgdXJsOiAkKFxcXCIjbm9Mb2FkaW5nI1xcXCIpLmxhenlSdWxlKCh1cmwpID0+IHtcXG4gICAgICAgICAgICAgICAgY29uc3QgdG9vbEpzID0gJC5yZXF1aXJlKFxcXCJ0b29sLmpzXFxcIik7XFxuICAgICAgICAgICAgICAgIGNsZWFyTXlWYXIoXFxcIjpmaWxlXFxcIik7XFxuICAgICAgICAgICAgICAgIGlmICghdG9vbEpzLmlzVmFsaWRVcmwodXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gXFxcImZpbGU6Ly9cXFwiICsgdXJsO1xcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9vbEpzLnByb2Nlc3NJbnB1dChmZXRjaCh1cmwpKTtcXG4gICAgICAgICAgICB9LCBfLnVybC5pbmNsdWRlcyhcXFwiQFxcXCIpID8gXy51cmwuc3BsaXQoXFxcIkBcXFwiKVswXSA6IF8udXJsKSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcImljb25fcm91bmRfNFxcXCIsXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgbG9uZ0NsaWNrOiB0b29sSnMuZ2V0TG9uZ0NsaWNrTW9kKF8sIFxcXCJ1cmxcXFwiKSxcXG4gICAgICAgICAgICAgICAgaWQ6IFxcXCJzdWJzY3JpYmVcXFwiICsgaSxcXG4gICAgICAgICAgICAgICAgY2xzOiBcXFwiZGVtb2xtb2RcXFwiXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSkpKTtcXG4gICAgICAgIHJldHVybiBsYXlvdXQ7XFxuICAgIH0sXFxuICAgIGdldENsaXBib2FyZFRleHQ6IGZ1bmN0aW9uKCkge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBjb25zdCBDb250ZXh0ID0gYW5kcm9pZC5jb250ZW50LkNvbnRleHQ7XFxuICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IGdldEN1cnJlbnRBY3Rpdml0eSgpO1xcbiAgICAgICAgICAgIGxldCBjbGlwYm9hcmQgPSBjb250ZXh0LmdldFN5c3RlbVNlcnZpY2UoQ29udGV4dC5DTElQQk9BUkRfU0VSVklDRSk7XFxuICAgICAgICAgICAgbGV0IGNsaXBEYXRhID0gY2xpcGJvYXJkLmdldFByaW1hcnlDbGlwKCk7XFxuICAgICAgICAgICAgaWYgKGNsaXBEYXRhICE9IG51bGwgJiYgY2xpcERhdGEuZ2V0SXRlbUNvdW50KCkgPiAwKSB7XFxuICAgICAgICAgICAgICAgIGxldCB0ZXh0ID0gY2xpcERhdGEuZ2V0SXRlbUF0KDApLmdldFRleHQoKTtcXG4gICAgICAgICAgICAgICAgaWYgKHRleHQgIT0gbnVsbCkge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFN0cmluZyh0ZXh0LnRvU3RyaW5nKCkpO1xcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XFxuICAgICAgICB9O1xcbiAgICB9LFxcbiAgICBnZXRMb25nQ2xpY2tNb2Q6IChfLCBfdGFnKSA9PiBbe1xcbiAgICAgICAgdGl0bGU6IFxcXCLwn5Od57yW6L6RXFxcIixcXG4gICAgICAgIGpzOiAkLnRvU3RyaW5nKChfLCBfdGFnKSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgaGlrZXJQb3AgPSAkLnJlcXVpcmUoXFxcImhpa2VyUG9wLmpzP3J1bGU9aGlrZXJQb3BcXFwiKTtcXG4gICAgICAgICAgICBsZXQgdG9vbGRvd24gPSBcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9qcy9zdWJzY3JpcHRpb24uanNcXFwiO1xcbiAgICAgICAgICAgIGV2YWwoXFxcImFqYXhfbWFwID1cXFwiICsgcmVhZEZpbGUodG9vbGRvd24pKTtcXG4gICAgICAgICAgICBhamF4X21hcFtNWV9SVUxFLnRpdGxlXS5mb3JFYWNoKChJdGVtLCBpKSA9PiB7XFxuICAgICAgICAgICAgICAgIGlmIChJdGVtW190YWddID09IF9bX3RhZ10pIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpbmRleCA9IGk7XFxuICAgICAgICAgICAgICAgICAgICBhYnJlYWsgPSB0cnVlO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIGFqYXhfbWFwID0gYWpheF9tYXBbTVlfUlVMRS50aXRsZV1bdGluZGV4XTtcXG4gICAgICAgICAgICBoaWtlclBvcC5pbnB1dFR3b1Jvdyh7XFxuICAgICAgICAgICAgICAgIHRpdGxlSGludDogXFxcIuWQjeensFxcXCIsXFxuICAgICAgICAgICAgICAgIHRpdGxlRGVmYXVsdDogYWpheF9tYXAudGl0bGUsXFxuICAgICAgICAgICAgICAgIHVybEhpbnQ6IFxcXCLpk77mjqXvvIjpk77mjqVA5Zu+5qCH77yJXFxcIixcXG4gICAgICAgICAgICAgICAgdXJsRGVmYXVsdDogYWpheF9tYXAudXJsLFxcbiAgICAgICAgICAgICAgICBub0F1dG9Tb2Z0OiB0cnVlLFxcbiAgICAgICAgICAgICAgICB0aXRsZTogXFxcIue8lui+keiuoumYhVxcXCIsXFxuICAgICAgICAgICAgICAgIGNvbmZpcm0obmFtZSwgdXJsKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0b29sSnMgPSAkLnJlcXVpcmUoXFxcInRvb2wuanNcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIHRvb2xkb3duID0gXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvanMvc3Vic2NyaXB0aW9uLmpzXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoXFxcImFqYXhfbWFwID1cXFwiICsgcmVhZEZpbGUodG9vbGRvd24pKTtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBfID0ge307XFxuICAgICAgICAgICAgICAgICAgICBfLnRpdGxlID0gbmFtZTtcXG4gICAgICAgICAgICAgICAgICAgIF8udXJsID0gdXJsO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF1cmwgfHwgIW5hbWUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcInRvYXN0Oi8v5LiN5b6X5Li656m6XFxcIjtcXG4gICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICBhamF4X21hcFtNWV9SVUxFLnRpdGxlXVt0aW5kZXhdID0gXztcXG4gICAgICAgICAgICAgICAgICAgIHNhdmVGaWxlKHRvb2xkb3duLCBKU09OLnN0cmluZ2lmeShhamF4X21hcCksIDApO1xcbiAgICAgICAgICAgICAgICAgICAgX2RlbW9sc01hcCA9IHRvb2xKcy5nZXRhZGRJdGVtQmVmb3JlTW9kKCk7XFxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVJdGVtKFxcXCJzdWJzY3JpYmVcXFwiICsgdGluZGV4LCBfZGVtb2xzTWFwW3RpbmRleF0pO1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJ0b2FzdDovL+e8lui+keaIkOWKn1xcXCI7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiO1xcbiAgICAgICAgfSwgXywgX3RhZylcXG4gICAgfSwge1xcbiAgICAgICAgdGl0bGU6IFxcXCLwn5eR5Yig6ZmkXFxcIixcXG4gICAgICAgIGpzOiAkLnRvU3RyaW5nKChfLCBfdGFnKSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgdG9vbEpzID0gJC5yZXF1aXJlKFxcXCJ0b29sLmpzXFxcIik7XFxuICAgICAgICAgICAgbGV0IHRvb2xkb3duID0gXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvanMvc3Vic2NyaXB0aW9uLmpzXFxcIjtcXG4gICAgICAgICAgICBsZXQgX2RlbW9sTWFwID0gdG9vbEpzLmdldGFkZEl0ZW1CZWZvcmVNb2QoKTtcXG4gICAgICAgICAgICBsZXQgYWJyZWFrID0gZmFsc2U7XFxuICAgICAgICAgICAgZXZhbChcXFwiYWpheF9tYXAgPVxcXCIgKyByZWFkRmlsZSh0b29sZG93bikpO1xcbiAgICAgICAgICAgIGFqYXhfbWFwW01ZX1JVTEUudGl0bGVdLmZvckVhY2goKEl0ZW0sIGkpID0+IHtcXG4gICAgICAgICAgICAgICAgaWYgKEl0ZW1bX3RhZ10gPT0gX1tfdGFnXSkge1xcbiAgICAgICAgICAgICAgICAgICAgdGluZGV4ID0gaTtcXG4gICAgICAgICAgICAgICAgICAgIGFicmVhayA9IHRydWU7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgaWYgKGFicmVhaykge1xcbiAgICAgICAgICAgICAgICBhamF4X21hcFtNWV9SVUxFLnRpdGxlXS5zcGxpY2UodGluZGV4LCAxKTtcXG4gICAgICAgICAgICAgICAgc2F2ZUZpbGUodG9vbGRvd24sIEpTT04uc3RyaW5naWZ5KGFqYXhfbWFwKSwgMCk7XFxuICAgICAgICAgICAgICAgIHRvYXN0KFxcXCLmk43kvZzmiJDlip9cXFwiKTtcXG4gICAgICAgICAgICAgICAgZGVsZXRlSXRlbShcXFwic3Vic2NyaWJlXFxcIiArIHRpbmRleCk7XFxuICAgICAgICAgICAgICAgIGxldCBfZGVtb2xzTWFwID0gdG9vbEpzLmdldGFkZEl0ZW1CZWZvcmVNb2QoKTtcXG4gICAgICAgICAgICAgICAgX2RlbW9sTWFwLnNwbGljZSh0aW5kZXgsIDEpO1xcbiAgICAgICAgICAgICAgICBfZGVtb2xNYXAuZm9yRWFjaCgoXywgaSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlSXRlbShfLmV4dHJhLmlkLCBfZGVtb2xzTWFwW2ldKTtcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgdG9hc3QoXFxcIuaTjeS9nOWksei0pVxcXCIpO1xcbiAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIjtcXG4gICAgICAgIH0sIF8sIF90YWcpXFxuICAgIH0sIHtcXG4gICAgICAgIHRpdGxlOiBcXFwi4qyG77iP572u6aG2XFxcIixcXG4gICAgICAgIGpzOiAkLnRvU3RyaW5nKChfLCBfdGFnKSA9PiB7XFxuICAgICAgICAgICAgY29uc3QgdG9vbEpzID0gJC5yZXF1aXJlKFxcXCJ0b29sLmpzXFxcIik7XFxuICAgICAgICAgICAgbGV0IHRvb2xkb3duID0gXFxcImhpa2VyOi8vZmlsZXMvcnVsZXMvanMvc3Vic2NyaXB0aW9uLmpzXFxcIjtcXG4gICAgICAgICAgICBsZXQgX2RlbW9sTWFwID0gdG9vbEpzLmdldGFkZEl0ZW1CZWZvcmVNb2QoKTtcXG4gICAgICAgICAgICBsZXQgYWJyZWFrID0gZmFsc2U7XFxuICAgICAgICAgICAgZXZhbChcXFwiYWpheF9tYXAgPVxcXCIgKyByZWFkRmlsZSh0b29sZG93bikpO1xcbiAgICAgICAgICAgIGFqYXhfbWFwW01ZX1JVTEUudGl0bGVdLmZvckVhY2goSXRlbSA9PiB7XFxuICAgICAgICAgICAgICAgIGlmIChJdGVtW190YWddID09IF9bX3RhZ10pIHtcXG4gICAgICAgICAgICAgICAgICAgIGFicmVhayA9IHRydWU7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XFxuICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgaWYgKGFicmVhaykge1xcbiAgICAgICAgICAgICAgICB0b29sSnMuZ2V0UG9zaXRpb25KcyhhamF4X21hcFtNWV9SVUxFLnRpdGxlXSwgXywgXFxcInRvcFxcXCIsIF90YWcpO1xcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSh0b29sZG93biwgSlNPTi5zdHJpbmdpZnkoYWpheF9tYXApLCAwKTtcXG4gICAgICAgICAgICAgICAgdG9hc3QoXFxcIuaTjeS9nOaIkOWKn1xcXCIpO1xcbiAgICAgICAgICAgICAgICBsZXQgX2RlbW9sc01hcCA9IHRvb2xKcy5nZXRhZGRJdGVtQmVmb3JlTW9kKCk7XFxuICAgICAgICAgICAgICAgIF9kZW1vbE1hcC5mb3JFYWNoKChfLCBpKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVJdGVtKF8uZXh0cmEuaWQsIF9kZW1vbHNNYXBbaV0pO1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICB0b2FzdChcXFwi5pON5L2c5aSx6LSlXFxcIik7XFxuICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiO1xcbiAgICAgICAgfSwgXywgX3RhZylcXG4gICAgfSwge1xcbiAgICAgICAgdGl0bGU6IFxcXCLirIfvuI/nva7lupVcXFwiLFxcbiAgICAgICAganM6ICQudG9TdHJpbmcoKF8sIF90YWcpID0+IHtcXG4gICAgICAgICAgICBjb25zdCB0b29sSnMgPSAkLnJlcXVpcmUoXFxcInRvb2wuanNcXFwiKTtcXG4gICAgICAgICAgICBsZXQgdG9vbGRvd24gPSBcXFwiaGlrZXI6Ly9maWxlcy9ydWxlcy9qcy9zdWJzY3JpcHRpb24uanNcXFwiO1xcbiAgICAgICAgICAgIGxldCBfZGVtb2xNYXAgPSB0b29sSnMuZ2V0YWRkSXRlbUJlZm9yZU1vZCgpO1xcbiAgICAgICAgICAgIGxldCBhYnJlYWsgPSBmYWxzZTtcXG4gICAgICAgICAgICBldmFsKFxcXCJhamF4X21hcCA9XFxcIiArIHJlYWRGaWxlKHRvb2xkb3duKSk7XFxuICAgICAgICAgICAgYWpheF9tYXBbTVlfUlVMRS50aXRsZV0uZm9yRWFjaChJdGVtID0+IHtcXG4gICAgICAgICAgICAgICAgaWYgKEl0ZW1bX3RhZ10gPT0gX1tfdGFnXSkge1xcbiAgICAgICAgICAgICAgICAgICAgYWJyZWFrID0gdHJ1ZTtcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcXG4gICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICBpZiAoYWJyZWFrKSB7XFxuICAgICAgICAgICAgICAgIHRvb2xKcy5nZXRQb3NpdGlvbkpzKGFqYXhfbWFwW01ZX1JVTEUudGl0bGVdLCBfLCBcXFwiZW5kXFxcIiwgX3RhZyk7XFxuICAgICAgICAgICAgICAgIHNhdmVGaWxlKHRvb2xkb3duLCBKU09OLnN0cmluZ2lmeShhamF4X21hcCksIDApO1xcbiAgICAgICAgICAgICAgICB0b2FzdChcXFwi5pON5L2c5oiQ5YqfXFxcIik7XFxuICAgICAgICAgICAgICAgIGxldCBfZGVtb2xzTWFwID0gdG9vbEpzLmdldGFkZEl0ZW1CZWZvcmVNb2QoKTtcXG4gICAgICAgICAgICAgICAgX2RlbW9sTWFwLmZvckVhY2goKF8sIGkpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUl0ZW0oXy5leHRyYS5pZCwgX2RlbW9sc01hcFtpXSk7XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHRvYXN0KFxcXCLmk43kvZzlpLHotKVcXFwiKTtcXG4gICAgICAgICAgICB9O1xcbiAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCI7XFxuICAgICAgICB9LCBfLCBfdGFnKVxcbiAgICB9XVxcbn07XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlm77moIdcIixcInBhdGhcIjpcImljb24udG9vbFwiLFwicnVsZVwiOlwiJC5leHBvcnRzID0ge1xcbiAgICBmaWxlOiBcXFwiaHR0cHM6Ly9pY29uZm9udC50eXJhbnRnLmNvbS9hcGkvaWxsdXN0cmF0ZS5zdmc/c3ZnX3N0cmluZz0lM0NzdmclMjBjbGFzcyUzRCUyMmljb24lMjIlMjBzdHlsZSUzRCUyMndpZHRoJTNBJTIwMS4yNjU2MjVlbSUzQmhlaWdodCUzQSUyMDFlbSUzQnZlcnRpY2FsLWFsaWduJTNBJTIwbWlkZGxlJTNCZmlsbCUzQSUyMGN1cnJlbnRDb2xvciUzQm92ZXJmbG93JTNBJTIwaGlkZGVuJTNCJTIyJTIwdmlld0JveCUzRCUyMjAlMjAwJTIwMTI5NiUyMDEwMjQlMjIlMjB2ZXJzaW9uJTNEJTIyMS4xJTIyJTIweG1sbnMlM0QlMjJodHRwJTNBJTJGJTJGd3d3LnczLm9yZyUyRjIwMDAlMkZzdmclMjIlM0UlM0NwYXRoJTIwZCUzRCUyMk05NzMuMTg3NzM2JTIwMzYwLjg2NjA3OGE4LjMyMTk5OSUyMDguMzIxOTk5JTIwMCUyMDAlMjAwJTIwMS44NDItOC42NjI5OTklMjA3LjIzMDk5OSUyMDcuMjMwOTk5JTIwMCUyMDAlMjAwLTYuNzUyOTk5LTQuOThINzY3LjU4Mjc2bDAuNDEtMzIzLjYxOTk2MmEyNC41NTc5OTclMjAyNC41NTc5OTclMjAwJTIwMCUyMDAtNi4yNzU5OTktMTYuNzgwOTk4QTIwLjY2OTk5OCUyMDIwLjY2OTk5OCUyMDAlMjAwJTIwMCUyMDc0Ni4yOTk3NjMlMjAwLjAwMDEySDU0OS44MzQ3ODZhMjAuNzM3OTk4JTIwMjAuNzM3OTk4JTIwMCUyMDAlMjAwLTE1LjI3OTk5OSUyMDYuODg5OTk5JTIwMjQuNjI1OTk3JTIwMjQuNjI1OTk3JTIwMCUyMDAlMjAwLTYuMzQ0OTk5JTIwMTYuNzEyOTk4bDAuNDElMjAzMjMuNjE5OTYyaC0yMDAuODI5OTc2YTcuMjMwOTk5JTIwNy4yMzA5OTklMjAwJTIwMCUyMDAtNi42ODUlMjA0Ljk4JTIwOC4zMjE5OTklMjA4LjMyMTk5OSUyMDAlMjAwJTIwMCUyMDEuODQxJTIwOC42NjI5OTlsMzEwLjM4NTk2NCUyMDMxMy42NTk5NjNhMjAuNjY5OTk4JTIwMjAuNjY5OTk4JTIwMCUyMDAlMjAwJTIwMTQuNzM0OTk4JTIwNi4yNzU5OTklMjAyMC42Njk5OTglMjAyMC42Njk5OTglMjAwJTIwMCUyMDAlMjAxNC43MzQ5OTgtNi4yNzU5OTlsMzEwLjM4NDk2NC0zMTMuNjU5OTYzeiUyMG0zMDkuMjI1OTY0JTIwMzMzLjg1MTk2MWwtMTk0LjYyMTk3Ny0xNjUuNDkyOTgxYTgxLjg1OTk5JTIwODEuODU5OTklMjAwJTIwMCUyMDAtNDUuNDk5OTk1LTE3LjA1Mzk5OGgtNzcuMjIwOTkxbDIxOS44NjE5NzQlMjAyMDQuMTAzOTc2LTI1NC44NTc5NyUyMDAuMTM2LTk1LjA5Mzk4OSUyMDE0OC41MDc5ODNINDYwLjI2Njc5NmwtOTEuMjA0OTg5LTE0OC40Mzk5ODMtMjUzLjQ5Mjk3MS0wLjEzNiUyMDIyNy41MDE5NzQtMjA0LjIzOTk3Ni04OS4yOTQ5OSUyMDAuMDY4YTgxLjg1OTk5JTIwODEuODU5OTklMjAwJTIwMCUyMDAtNDUuNDMyOTk0JTIwMTcuMDUzOTk4TDEzLjY1Mjg0OCUyMDY5NC43MTgwMzlDMi42MDE4NSUyMDcwNC4wNjQwMzctMi44NTUxNSUyMDcyMy41NzQwMzUlMjAxLjUxMDg1JTIwNzM4LjEwNDAzNGw3Ny42Mjk5OTElMjAyNTguODEzOTY5YzQuMzY1OTk5JTIwMTQuNDYxOTk4JTIwMTkuMzczOTk4JTIwMjYuMzMxOTk3JTIwMzMuMzU3OTk2JTIwMjYuMzMxOTk3aDEwNzIuNTY5ODc0YzEzLjk4NDk5OCUyMDAlMjAyOC45MjM5OTctMTEuODY5OTk5JTIwMzMuMjIxOTk2LTI2LjM5OTk5N2w3Ni40MDE5OTEtMjU4Ljc0NTk2OWM0LjIzLTE0LjUyOTk5OC0xLjIyNy0zNC4wMzk5OTYtMTIuMjc4OTk4LTQzLjM4NTk5NXolMjIlMjAlMkYlM0UlM0MlMkZzdmclM0VcXFwiLFxcbiAgICBhZGQ6IFxcXCJodHRwczovL2ljb25mb250LnR5cmFudGcuY29tL2FwaS9pbGx1c3RyYXRlLnN2Zz9zdmdfc3RyaW5nPSUzQ3N2ZyUyMGNsYXNzJTNEJTIyaWNvbiUyMiUyMHN0eWxlJTNEJTIyd2lkdGglM0ElMjAxZW0lM0JoZWlnaHQlM0ElMjAxZW0lM0J2ZXJ0aWNhbC1hbGlnbiUzQSUyMG1pZGRsZSUzQmZpbGwlM0ElMjBjdXJyZW50Q29sb3IlM0JvdmVyZmxvdyUzQSUyMGhpZGRlbiUzQiUyMiUyMHZpZXdCb3glM0QlMjIwJTIwMCUyMDEwMjQlMjAxMDI0JTIyJTIwdmVyc2lvbiUzRCUyMjEuMSUyMiUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTNFJTNDcGF0aCUyMGQlM0QlMjJNODY5LjE5JTIwODk5LjEzSDE1NS41M2E3NC41OCUyMDc0LjU4JTIwMCUyMDAlMjAxLTktMC41Nmw4JTIwMS4wNmE2NC4xNyUyMDY0LjE3JTIwMCUyMDAlMjAxLTE1LjM3LTQuMjdsNy4xNSUyMDNhNjMlMjA2MyUyMDAlMjAwJTIwMS05LjE5LTQuOTRjLTAuNzItMC40Ny0xLjQyLTEtMi4xNC0xLjQ3LTMuNDItMi4yOCUyMDMuMTElMjAyLjIxJTIwMyUyMDIuMzFzLTQuMTEtMy43MS00LjMxLTMuOTJjLTEuMjItMS4yMi0yLjI3LTIuNjMtMy41LTMuODItMi4zLTIuMjIlMjA0JTIwNS43JTIwMi4yNyUyMDMtMC40Ni0wLjczLTEtMS40MS0xLjQ5LTIuMTNhNjQuMTElMjA2NC4xMSUyMDAlMjAwJTIwMS01LjMxLTkuNzNsMyUyMDcuMTVhNjQuNTElMjA2NC41MSUyMDAlMjAwJTIwMS00LjI3LTE1LjM3bDEuMDclMjA4Yy0xLjA2LTguNDItMC41Ni0xNy4xNi0wLjU2LTI1LjYzVjE4MnYtMjYuNDFhNzIuNzQlMjA3Mi43NCUyMDAlMjAwJTIwMSUyMDAuNTYtOWwtMS4wNyUyMDhhNjQuNTElMjA2NC41MSUyMDAlMjAwJTIwMSUyMDQuMjctMTUuMzdsLTMlMjA3LjE1YTY0JTIwNjQlMjAwJTIwMCUyMDElMjA1LTkuMTljMC40Ny0wLjcyJTIwMS0xLjQyJTIwMS40Ny0yLjE0JTIwMi4yNy0zLjQyLTIuMjIlMjAzLjEtMi4zMSUyMDNzMy43MS00LjExJTIwMy45Mi00LjMyYzEuMjEtMS4yMSUyMDIuNjItMi4yNyUyMDMuODEtMy41JTIwMi4yMi0yLjI5LTUuNjklMjA0LTMlMjAyLjI4JTIwMC43My0wLjQ2JTIwMS40MS0xJTIwMi4xMi0xLjVhNjQuMDUlMjA2NC4wNSUyMDAlMjAwJTIwMSUyMDkuNzMtNS4zbC03LjE1JTIwM2E2NC4xNyUyMDY0LjE3JTIwMCUyMDAlMjAxJTIwMTUuMzctNC4yN2wtOCUyMDEuMDdjOC40Mi0xLjA2JTIwMTcuMTYtMC41NiUyMDI1LjYzLTAuNTZoNjk2LjIzYTcyLjc0JTIwNzIuNzQlMjAwJTIwMCUyMDElMjA5JTIwMC41NmwtOC0xLjA3YTY0JTIwNjQlMjAwJTIwMCUyMDElMjAxNS4zNyUyMDQuMjdsLTcuMTUtM2E2NCUyMDY0JTIwMCUyMDAlMjAxJTIwOS4xOSUyMDQuOTRjMC43MiUyMDAuNDglMjAxLjQyJTIwMSUyMDIuMTQlMjAxLjQ3JTIwMy40MiUyMDIuMjgtMy4xLTIuMjEtMy0yLjNzNC4xMSUyMDMuNzElMjA0LjMyJTIwMy45MWMxLjIxJTIwMS4yMiUyMDIuMjclMjAyLjYzJTIwMy41JTIwMy44MiUyMDIuMjklMjAyLjIyLTQtNS43LTIuMjgtMyUyMDAuNDclMjAwLjcyJTIwMSUyMDEuNCUyMDEuNSUyMDIuMTJhNjMuMTklMjA2My4xOSUyMDAlMjAwJTIwMSUyMDUuMyUyMDkuNzNsLTMtNy4xNWE2NCUyMDY0JTIwMCUyMDAlMjAxJTIwNC4yNyUyMDE1LjM3bC0xLjA3LThjMS4wNyUyMDguNDIlMjAwLjU3JTIwMTcuMTYlMjAwLjU3JTIwMjUuNjNWODY4LjQ2YTc0LjYzJTIwNzQuNjMlMjAwJTIwMCUyMDEtMC41NyUyMDlsMS4wNy04YTY0JTIwNjQlMjAwJTIwMCUyMDEtNC4yNyUyMDE1LjM3bDMtNy4xNWE2NCUyMDY0JTIwMCUyMDAlMjAxLTQuOTQlMjA5LjE5Yy0wLjQ4JTIwMC43My0xJTIwMS40Mi0xLjQ3JTIwMi4xNC0yLjI4JTIwMy40MiUyMDIuMjEtMy4xJTIwMi4zLTNzLTMuNzElMjA0LjEtMy45MSUyMDQuMzFjLTEuMjIlMjAxLjIyLTIuNjMlMjAyLjI3LTMuODIlMjAzLjUtMi4yMiUyMDIuMjklMjA1LjctNCUyMDMtMi4yOC0wLjcyJTIwMC40Ny0xLjQlMjAxLTIuMTIlMjAxLjVhNjMuMTklMjA2My4xOSUyMDAlMjAwJTIwMS05LjczJTIwNS4zbDcuMTUtM2E2NCUyMDY0JTIwMCUyMDAlMjAxLTE1LjM3JTIwNC4yN2w4LTEuMDZhNzMuMDklMjA3My4wOSUyMDAlMjAwJTIwMS04LjI0JTIwMC41NmMtMTUuNjUlMjAwLjE4LTMwLjY2JTIwMTMuNjQtMjkuOTMlMjAyOS45MyUyMDAuNzIlMjAxNi4wNiUyMDEzLjE2JTIwMzAuMTIlMjAyOS45MyUyMDI5LjkzJTIwMzMuMzgtMC4zOCUyMDY2LjU5LTE5LjUzJTIwODAuNjItNTAuNDhhOTkuMDklMjA5OS4wOSUyMDAlMjAwJTIwMCUyMDkuMTgtNDEuNnYtNjc5LjEtMzEuNjNjMC0xNy41Mi00LjU3LTM1Ljc1LTE0LjU4LTUwLjMxLTE3LjMxLTI1LjE2LTQ0LjYtNDAuNTUtNzUuMzYtNDAuODUtOC4zMy0wLjA3LTE2LjY2JTIwMC0yNSUyMDBIMTYwYy0yLjY3JTIwMC01LjM1LTAuMDYtOCUyMDAuMDctMTYuNTMlMjAwLjc1LTMzLjcxJTIwNS41MS00Ny4yNiUyMDE1LjI2YTk1Ljg3JTIwOTUuODclMjAwJTIwMCUyMDAtMzMuODUlMjA0Mi45MWMtNi4yMyUyMDE1LjE3LTUuOTElMjAzMS01LjkxJTIwNDdWODU3LjVjMCUyMDIyLjE2JTIwMi40JTIwNDQuMTQlMjAxNi4xJTIwNjIuNzhDOTguNyUyMDk0NC4yMiUyMDEyNSUyMDk1OC43NSUyMDE1NSUyMDk1OUg4NjkuMTljMTUuNjYlMjAwJTIwMzAuNjYtMTMuNzclMjAyOS45NC0yOS45M3MtMTMuMTMtMjkuOTQtMjkuOTQtMjkuOTR6JTIyJTIwZmlsbCUzRCUyMiUyMzAwNzFDMyUyMiUyMCUyRiUzRSUzQ3BhdGglMjBkJTNEJTIyTTc2MC4yMSUyMDUxMS40Yy0wLjczLTE2LjIyLTEzLjE1LTI5LjkzLTI5LjkzLTI5LjkzSDU0MC43VjM0NmMwLTE3Ljc3JTIwMC4zNi0zNS41OCUyMDAtNTMuMzV2LTAuNzZjMC0xNS42NS0xMy43Ny0zMC42NS0yOS45My0yOS45M3MtMjkuOTMlMjAxMy4xNS0yOS45MyUyMDI5LjkzdjE4OS41OEgzNDUuNTJjLTE3LjgyJTIwMC0zNS42OC0wLjM2LTUzLjQ5JTIwMGgtMC43N2MtMTUuNjUlMjAwLTMwLjY1JTIwMTMuNzctMjkuOTMlMjAyOS45M3MxMy4xNSUyMDI5LjkzJTIwMjkuOTMlMjAyOS45M2gxODkuNTh2MTM1LjQ2YzAlMjAxNy43Ny0wLjM2JTIwMzUuNTglMjAwJTIwNTMuMzV2MC43NmMwJTIwMTUuNjYlMjAxMy43NiUyMDMwLjY2JTIwMjkuOTMlMjAyOS45M3MyOS45My0xMy4xNSUyMDI5LjkzLTI5LjkzVjU0MS4zM0g2NzZjMTcuODIlMjAwJTIwMzUuNjglMjAwLjM2JTIwNTMuNDklMjAwaDAuNzdjMTUuNjclMjAwJTIwMzAuNjctMTMuNzYlMjAyOS45NS0yOS45M3olMjIlMjBmaWxsJTNEJTIyJTIzRkQ5QTE2JTIyJTIwJTJGJTNFJTNDJTJGc3ZnJTNFXFxcIixcXG4gICAgZGVmYXVsdEljb246IFxcXCJoaWtlcjovL2ltYWdlcy9hY2NvdW50XFxcIixcXG4gICAgaW1wb3J0OiBcXFwiaGlrZXI6Ly9pbWFnZXMvaWNvbl9jbG91ZDZcXFwiLFxcbiAgICBvZmY6IFxcXCJoaWtlcjovL2ltYWdlcy9pY29uX3JlY3RcXFwiLFxcbiAgICBvbjogXFxcImhpa2VyOi8vaW1hZ2VzL2ljb25fcmVjdF9zZWxlY3RlZFxcXCJcXG59O1wifV0iLCJpY29uIjoiaHR0cHM6Ly9wMy5zc2wucWhpbWdzMS5jb20vdDAxMGMwNWMzNjYwYTk1NmYzMy53ZWJwIiwicHJveHkiOiIifQ==
Add Comment
Please, Sign In to add comment