Advertisement
xiaomianao666

邀您一起看:余生,请多指教

Apr 3rd, 2022
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 海阔视界规则分享,当前分享的是:二级页面详情¥page_detail¥余生,请多指教@@eyJkYXRhIjoie1wiYXNzb2NpYXRlZE1vZGVsc01hcEZvckpvaW5UYWJsZVwiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhGS1wiOnt9LFwiYXNzb2NpYXRlZE1vZGVsc01hcFdpdGhvdXRGS1wiOnt9LFwiZmllbGRzVG9TZXRUb0RlZmF1bHRcIjpbXSxcImlkXCI6MCxcImxhc3RfY2hhcHRlcl9ydWxlXCI6XCJcIixcImxpc3RUb0NsZWFyQXNzb2NpYXRlZEZLXCI6W10sXCJsaXN0VG9DbGVhclNlbGZGS1wiOltdLFwicGFnZUxpc3RcIjpbe1wiY29sX3R5cGVcIjpcInRleHRfMVwiLFwibmFtZVwiOlwiQ2xhc3NUYWJcIixcInBhdGhcIjpcIkNsYXNzVGFiXCIsXCJydWxlXCI6XCJjb25zdCBDbGFzc1RhYiA9IGZ1bmN0aW9uKGNsYXNzQXJyYXksIHBhcmFtcykge1xcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHBhcmFtcylcXG4gICAgdGhpcy5hcnIgPSBjbGFzc0FycmF5Lm1hcCh2ID0+IHRoaXMuaW5pdCh2KSlcXG4gICAgdGhpcy5zaWduID0gJyQnICsgUUlOR19USVRMRSArICdfJyArICh0aGlzLm5hbWUgfHwgJycpICsgJ18nXFxuICAgIHRoaXMuY29sb3IgPSB0aGlzLmNvbG9yIHx8ICcjMTJiNjY4J1xcbiAgICB0aGlzLmJvdW5kYXJ5ID0gdGhpcy5ib3VuZGFyeSB8fCAnYmxhbmtfYmxvY2snXFxufVxcbkNsYXNzVGFiLnByb3RvdHlwZSA9IHtcXG4gICAgY29uc3RydWN0b3I6IENsYXNzVGFiLFxcbiAgICBsb2FkKGVsKSB7XFxuICAgICAgICBsZXQgZm9sZGVkID0gdGhpcy5mb2xkICYmIGdldFZhcignZm9sZF8nICsgdGhpcy5zaWduLCAnJylcXG4gICAgICAgIGlmICh0aGlzLmFyci5sZW5ndGggPiAxICYmIHRoaXMuZm9sZCkgZWwucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgKGZvbGRlZCA/ICfilrYnIDogJ+KWvCcpLmZvbnRjb2xvcignIzA0OWVmZicpLFxcbiAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoc2lnbiwgZm9sZGVkKSA9PiB7XFxuICAgICAgICAgICAgICAgIHB1dFZhcignZm9sZF8nICsgc2lnbiwgeyAnJzogJ1QnLCAnVCc6ICcnIH0gW2ZvbGRlZF0pXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgfSwgdGhpcy5zaWduLCBmb2xkZWQpLFxcbiAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgICAgIH0pXFxuICAgICAgICBsZXQgYXJyID0gZm9sZGVkID8gW3RoaXMuYXJyWzBdXSA6IHRoaXMuYXJyXFxuICAgICAgICBhcnIuZm9yRWFjaCgodikgPT4ge1xcbiAgICAgICAgICAgIGxldCB7IGlkLCBjbGFzc19uYW1lLCBjbGFzc191cmwgfSA9IHYsXFxuICAgICAgICAgICAgc2VsZWN0ZWQgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmdldENsYXNzKGlkKSlcXG4gICAgICAgICAgICBjbGFzc19uYW1lLmZvckVhY2goKG5hbWUsIGkpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IHVybCA9IGNsYXNzX3VybFtpXSxcXG4gICAgICAgICAgICAgICAgICAgIG5vdyA9IEpTT04uc3RyaW5naWZ5KHsgbmFtZTogbmFtZSwgdXJsOiB1cmwgfSlcXG4gICAgICAgICAgICAgICAgZWwucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogc2VsZWN0ZWQgPT0gbm93ID8gJ+KAnOKAnOKAneKAnScgKyBuYW1lLmZvbnRjb2xvcih0aGlzLmNvbG9yKS5ib2xkKCkgOiBuYW1lLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBzZWxlY3RlZCA9PSBub3cgPyAnaGlrZXI6Ly9lbXB0eScgOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChzaWduLCBpZCwgbm93KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgcHV0VmFyKHNpZ24gKyBpZCwgbm93KVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgICAgIH0sIHRoaXMuc2lnbiwgaWQsIG5vdyksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBlbC5wdXNoKHsgY29sX3R5cGU6IHRoaXMuYm91bmRhcnkgfSlcXG4gICAgICAgIH0pXFxuICAgIH0sXFxuICAgIGluaXQoY2xhc3NPYmplY3QpIHtcXG4gICAgICAgIGlmICh0eXBlb2YgY2xhc3NPYmplY3QuY2xhc3NfbmFtZSA9PSAnc3RyaW5nJylcXG4gICAgICAgICAgICBjbGFzc09iamVjdC5jbGFzc19uYW1lID0gY2xhc3NPYmplY3QuY2xhc3NfbmFtZS5zcGxpdCgnJicpXFxuICAgICAgICBpZiAodHlwZW9mIGNsYXNzT2JqZWN0LmNsYXNzX3VybCA9PSAnc3RyaW5nJylcXG4gICAgICAgICAgICBjbGFzc09iamVjdC5jbGFzc191cmwgPSBjbGFzc09iamVjdC5jbGFzc191cmwuc3BsaXQoJyYnKS5tYXAoKHYpID0+IHYudHJpbSgpKVxcbiAgICAgICAgcmV0dXJuIGNsYXNzT2JqZWN0XFxuICAgIH0sXFxuICAgIHB1c2goY2xhc3NPYmplY3QpIHtcXG4gICAgICAgIHRoaXMuYXJyLnB1c2godGhpcy5pbml0KGNsYXNzT2JqZWN0KSlcXG4gICAgfSxcXG4gICAgZ2V0Q2xhc3MoaWQpIHtcXG4gICAgICAgIGxldCBkZWZhdWx0Q2xhc3MgPSB0aGlzLmFyci5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PSBpZClcXG4gICAgICAgIGRlZmF1bHRDbGFzcyA9IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRDbGFzcyA/IHtcXG4gICAgICAgICAgICBuYW1lOiBkZWZhdWx0Q2xhc3MuY2xhc3NfbmFtZVswXSxcXG4gICAgICAgICAgICB1cmw6IGRlZmF1bHRDbGFzcy5jbGFzc191cmxbMF1cXG4gICAgICAgIH0gOiB7IG5hbWU6ICAnY2Fubm90IGZpbmQgaWQ6ICcgKyBpZCArICcgaW4gY2xhc3NUYWI6ICcgKyB0aGlzLnNpZ24sIHVybDogJyd9KVxcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZ2V0VmFyKHRoaXMuc2lnbiArIGlkLCBkZWZhdWx0Q2xhc3MpKVxcbiAgICB9LFxcbiAgICBzZXRVcmwodXJsKSB7XFxuICAgICAgICByZXR1cm4gdXJsLnJlcGxhY2UoL1xcXFwkXFxcXHsoW159XSopXFxcXH0vZywgKF8sIGlkKSA9PiB0aGlzLmdldENsYXNzKGlkKS51cmwpXFxuICAgIH1cXG59XFxuLy8g55Sf5oiQ5aS06YOo5YiG57G7XFxuY29uc3QgZnlBbGwgPSBSVUxFLnVybC5pbmNsdWRlcygnZnlBbGwnKVxcbmxldCB0YWJIZWFkZXIgPSBbXVxcbmlmIChSVUxFLmNsYXNzX25hbWUpIHRhYkhlYWRlci5wdXNoKHtcXG4gICAgaWQ6IGZ5QWxsID8gJ2Z5QWxsJyA6ICdmeWNsYXNzJyxcXG4gICAgY2xhc3NfbmFtZTogUlVMRS5jbGFzc19uYW1lLFxcbiAgICBjbGFzc191cmw6IFJVTEUuY2xhc3NfdXJsXFxufSlcXG5pZiAoUlVMRS5hcmVhX25hbWUpIHRhYkhlYWRlci5wdXNoKHtcXG4gICAgaWQ6IGZ5QWxsID8gJ2Z5QWxsJyA6ICdmeWFyZWEnLFxcbiAgICBjbGFzc19uYW1lOiBSVUxFLmFyZWFfbmFtZSxcXG4gICAgY2xhc3NfdXJsOiBSVUxFLmFyZWFfdXJsXFxufSlcXG5pZiAoUlVMRS55ZWFyX25hbWUpIHRhYkhlYWRlci5wdXNoKHtcXG4gICAgaWQ6IGZ5QWxsID8gJ2Z5QWxsJyA6ICdmeXllYXInLFxcbiAgICBjbGFzc19uYW1lOiBSVUxFLnllYXJfbmFtZSxcXG4gICAgY2xhc3NfdXJsOiBSVUxFLnllYXJfdXJsXFxufSlcXG5pZiAoUlVMRS5zb3J0X25hbWUpIHRhYkhlYWRlci5wdXNoKHtcXG4gICAgaWQ6IGZ5QWxsID8gJ2Z5QWxsJyA6ICdmeXNvcnQnLFxcbiAgICBjbGFzc19uYW1lOiBSVUxFLnNvcnRfbmFtZSxcXG4gICAgY2xhc3NfdXJsOiBSVUxFLnNvcnRfdXJsXFxufSlcXG50YWJIZWFkZXIgPSBuZXcgQ2xhc3NUYWIodGFiSGVhZGVyLCB7IG5hbWU6IFJVTEUudGl0bGUsIGZvbGQ6IHJlYWRGaWxlKCd0YWJGb2xkJyksIH0pXFxuXCJ9LHtcImNvbF90eXBlXCI6XCJpY29uXzJfcm91bmRcIixcIm5hbWVcIjpcIuiuvue9rlwiLFwicGF0aFwiOlwiQ29uZmlnXCIsXCJydWxlXCI6XCJqczpcXG5hZGRMaXN0ZW5lcignb25DbG9zZScsICdjbGVhck15VmFyKFxcXCJzb3J0RmxhZ1xcXCIpO3JlZnJlc2hQYWdlKCknKVxcbnNldFBhZ2VUaXRsZSgn4pqZIOi9u+WQiOmbhuiuvue9riDimpknKVxcbmNvbnN0IFFJTkdfVElUTEUgPSBnZXRNeVZhcignbXlDb2xsZWN0aW9uJylcXG5sZXQgZGF0YSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RhdGFMb2FkP3J1bGU9JyArIFFJTkdfVElUTEUpKHRydWUpLFxcbiAgICBlbCA9IFt7XFxuICAgICAgICB0aXRsZTogJzxiPiDmuIXpmaTnvJPlrZjvvIznq4vljbPmm7TmlrAgPHNtYWxsPiDvvIjln7rkuo7ov5znqIvku5PlupPvvIzkuI3opoHpopHnuYHngrnlh7vvvIknLFxcbiAgICAgICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCgpID0+IHtcXG4gICAgICAgICAgICBsZXQgdXJsID0gZ2V0TXlWYXIoJ3JlbW90ZVVybCcpXFxuICAgICAgICAgICAgaWYodXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vJykgfHwgdXJsLnN0YXJ0c1dpdGgoJ2ZpbGU6Ly8nKSlcXG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+S7k+W6k+S4uuacrOWcsOaWh+S7tu+8jOS4jeS8mui/m+ihjOe8k+WtmO+8jOacrOWKn+iDveS5n+aXoOaViCdcXG4gICAgICAgICAgICBkZWxldGVGaWxlKCd1cGRhdGVUaW1lJylcXG4gICAgICAgICAgICBiYWNrKGZhbHNlKVxcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7Lmm7TmlrAnXFxuICAgICAgICB9KSxcXG4gICAgICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2ljb240JyxcXG4gICAgICAgIGNvbF90eXBlOiAnYXZhdGFyJ1xcbiAgICB9XSxcXG4gICAgdXBkYXRlSW50ZXJ2YWwgPSByZWFkRmlsZSgndXBkYXRlSW50ZXJ2YWwnKSB8fCAnMScsXFxuICAgIG5ld1dpbmRvdyA9IHJlYWRGaWxlKCduZXdXaW5kb3cnKSxcXG4gICAgdGFiRm9sZCA9IHJlYWRGaWxlKCd0YWJGb2xkJyksXFxuICAgIGRpc2FibGVDdXN0b20gPSByZWFkRmlsZSgnZGlzYWJsZUN1c3RvbScpLFxcbiAgICBlZGl0TW9kZSA9IGdldE15VmFyKCdlZGl0TW9kZScsICflkK/nlKgv56aB55SoJylcXG5cXG5lbC5wdXNoKHtcXG4gICAgdGl0bGU6ICcgIPCfkqEg5pu05paw6aKR546HOiAnICsgKHVwZGF0ZUludGVydmFsID09IDAgPyAn5omL5YqoJyA6IHVwZGF0ZUludGVydmFsICsgJ+WkqScpICsgJyAgJyxcXG4gICAgdXJsOiAkKHVwZGF0ZUludGVydmFsLCAn6L6T5YWl5pu05paw6Ze06ZqU77yI5aSp77yJ77yM5Li6MOWImeaJi+WKqOabtOaWsFxcXFxu5pys5Zyw5paH5Lu26ZO+5o6l5peg5pWIJykuaW5wdXQoKCkgPT4ge1xcbiAgICAgICAgc2F2ZUZpbGUoJ3VwZGF0ZUludGVydmFsJywgaW5wdXQpXFxuICAgICAgICByZWZyZXNoUGFnZSgpXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgIH0pLFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSwge1xcbiAgICB0aXRsZTogJyAg8J+WpSDni6znq4vpppbpobU6ICcgKyAobmV3V2luZG93ID8gJ+aYrycgOiAn5ZCmJykgKyAnICAnLFxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG5ld1dpbmRvdykgPT4ge1xcbiAgICAgICAgc2F2ZUZpbGUoJ25ld1dpbmRvdycsIG5ld1dpbmRvdyA/ICcnIDogJzEnKVxcbiAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICB9LCBuZXdXaW5kb3cpLFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSwge1xcbiAgICB0aXRsZTogJyAg8J+SoCDliIbnsbvmipjlj6A6ICcgKyAodGFiRm9sZCA/ICfmmK8nIDogJ+WQpicpICsgJyAgJyxcXG4gICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCh0YWJGb2xkKSA9PiB7XFxuICAgICAgICBzYXZlRmlsZSgndGFiRm9sZCcsIHRhYkZvbGQgPyAnJyA6ICcxJylcXG4gICAgICAgIHJlZnJlc2hQYWdlKClcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgfSwgdGFiRm9sZCksXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG59LCB7XFxuICAgIHRpdGxlOiAnICDwn5K8IOWkh+S7veaBouWkjSAgJyxcXG4gICAgdXJsOiAkKFsn5aSH5Lu9JywgJ+aBouWkjSddLCAxKS5zZWxlY3QoKFFJTkdfVElUTEUsIHVwZGF0ZUludGVydmFsLCBuZXdXaW5kb3csIHRhYkZvbGQsIGRpc2FibGVDdXN0b20pID0+IHtcXG4gICAgICAgIGxldCB1cmwgPSBnZXRNeVZhcigncmVtb3RlVXJsJylcXG4gICAgICAgIGlmICghdXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vJykgJiYgIXVybC5zdGFydHNXaXRoKCdmaWxlOi8vJykpXFxuICAgICAgICAgICAgdXJsID0gJ2hpa2VyOi8vZmlsZXMvbGlicy8nICsgbWQ1KHVybCkgKyAnLmpzJ1xcbiAgICAgICAgZWxzZSBpZih1cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly9wYWdlLycpKSB1cmwgPSAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgIGlmIChpbnB1dCA9PSAn5aSH5Lu9JykgcmV0dXJuICQoJ2hpa2VyOi8vZmlsZXMvdG1wLycgKyBRSU5HX1RJVExFICsgJ19iYWNrdXAuanNvbicsICfovpPlhaXlpIfku73ot6/lvoQnKVxcbiAgICAgICAgICAgIC5pbnB1dCgodXJsLCB1cGRhdGVJbnRlcnZhbCwgbmV3V2luZG93LCB0YWJGb2xkLCBkaXNhYmxlQ3VzdG9tKSA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCBydWxlcyA9IHJlcXVlc3QodXJsKSxcXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbURhdGEgPSByZWFkRmlsZSgnY3VzdG9tRGF0YScpXFxuICAgICAgICAgICAgICAgIHdyaXRlRmlsZShpbnB1dCwgSlNPTi5zdHJpbmdpZnkoe1xcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlSW50ZXJ2YWw6IHVwZGF0ZUludGVydmFsLFxcbiAgICAgICAgICAgICAgICAgICAgbmV3V2luZG93OiBuZXdXaW5kb3csXFxuICAgICAgICAgICAgICAgICAgICB0YWJGb2xkOiB0YWJGb2xkLFxcbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZUN1c3RvbTogZGlzYWJsZUN1c3RvbSxcXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbURhdGE6IGN1c3RvbURhdGEsXFxuICAgICAgICAgICAgICAgICAgICBydWxlczogcnVsZXNcXG4gICAgICAgICAgICAgICAgfSkpXFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LlpIfku73vvIzms6jmhI/oi6Xku5PlupPkuLrlrZDpobXpnaLliJnkuI3lpIfku70nXFxuICAgICAgICAgICAgfSwgdXJsLCB1cGRhdGVJbnRlcnZhbCwgbmV3V2luZG93LCB0YWJGb2xkLCBkaXNhYmxlQ3VzdG9tKVxcbiAgICAgICAgZWxzZSByZXR1cm4gJCgnaGlrZXI6Ly9maWxlcy90bXAvJyArIFFJTkdfVElUTEUgKyAnX2JhY2t1cC5qc29uJywgJ+i+k+WFpeWkh+S7vei3r+W+hCcpLmlucHV0KCh1cmwpID0+IHtcXG4gICAgICAgICAgICBsZXQgeyB1cGRhdGVJbnRlcnZhbCwgbmV3V2luZG93LCB0YWJGb2xkLCBkaXNhYmxlQ3VzdG9tLCBjdXN0b21EYXRhLCBydWxlcyB9ID0gSlNPTi5wYXJzZShyZXF1ZXN0KGlucHV0KSlcXG4gICAgICAgICAgICBzYXZlRmlsZSgndXBkYXRlSW50ZXJ2YWwnLCB1cGRhdGVJbnRlcnZhbClcXG4gICAgICAgICAgICBzYXZlRmlsZSgnbmV3V2luZG93JywgbmV3V2luZG93KVxcbiAgICAgICAgICAgIHNhdmVGaWxlKCd0YWJGb2xkJywgdGFiRm9sZClcXG4gICAgICAgICAgICBzYXZlRmlsZSgnZGlzYWJsZUN1c3RvbScsIGRpc2FibGVDdXN0b20pXFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ2N1c3RvbURhdGEnLCBjdXN0b21EYXRhKVxcbiAgICAgICAgICAgIGlmKHJ1bGVzKSB3cml0ZUZpbGUodXJsLCBydWxlcylcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpXFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suaBouWkje+8jOWmguaenOS4jeaDs+WQjOatpei/nOeoi+S7k+W6k++8jOWPr+S7peiuvue9ruabtOaWsOmikeeOh+S4uuaJi+WKqCdcXG4gICAgICAgIH0sIHVybClcXG4gICAgfSwgUUlOR19USVRMRSwgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSksXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG59LCB7XFxuICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdPGZvbnQgY29sb3I9XFxcIiM2NjY2NjZcXFwiPjxzbWFsbD7nibnliKvpuKPosKLvvIzlsI/nqIvluo/mj5DkvpvogIXvvJpcXFxcbicgK1xcbiAgICAgICAgZGF0YS5yZWR1Y2UoKHNlbGYsIHYpID0+IHYuYXV0aG9yID8gc2VsZi5jb25jYXQodi5hdXRob3Iuc3BsaXQoJyYnKSkgOiBzZWxmLCBbXSlcXG4gICAgICAgIC5maWx0ZXIoKHYsIGksIGFycikgPT4gdiAmJiBhcnIuaW5kZXhPZih2KSA9PSBpKS5qb2luKCfjgIEnKSxcXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxuICAgIGNvbF90eXBlOiAndGV4dF9jZW50ZXJfMSdcXG59KVxcblxcbmVsLnB1c2goeyBjb2xfdHlwZTogJ2xpbmUnIH0sIHtcXG4gICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgJ/Cfk50nLnNtYWxsKCkgKyAnJm5ic3Ag6L275ZCI6ZuG6Ieq5a6a5LmJICZuYnNwJy5ib2xkKCkuZm9udGNvbG9yKCcjNzU3NTc1JykgKyAoZGlzYWJsZUN1c3RvbSA/ICfinYwnIDogJ+KtlScpLnNtYWxsKCksXFxuICAgIHVybDogJChbKGRpc2FibGVDdXN0b20gPyAn5ZCv55SoJyA6ICfnpoHnlKgnKSArICflkIjpm4boh6rlrprkuYknLCAn5riF6Zmk6Ieq5a6a5LmJ5pWw5o2uJ10sIDEpLnNlbGVjdCgoKSA9PiB7XFxuICAgICAgICBpZiAoaW5wdXQgPT0gJ+a4hemZpOiHquWumuS5ieaVsOaNricpIHtcXG4gICAgICAgICAgICBkZWxldGVGaWxlKCdjdXN0b21EYXRhJylcXG4gICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gJ+WQr+eUqOWQiOmbhuiHquWumuS5iScpIHtcXG4gICAgICAgICAgICBzYXZlRmlsZSgnZGlzYWJsZUN1c3RvbScsICcnKVxcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBzYXZlRmlsZSgnZGlzYWJsZUN1c3RvbScsICcxJylcXG4gICAgICAgICAgICBpbnB1dCArPSAnXFxcXG7lsI/nqIvluo/lkK/nlKgv56aB55So44CB6YeN5paw5o6S5bqP562J5pON5L2c5Z2H5LiN5Lya5L2T546w5Zyo6aaW6aG15bCP56iL5bqP5YiX6KGo5LitJ1xcbiAgICAgICAgfVxcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5beyJyArIGlucHV0XFxuICAgIH0pLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICBleHRyYTogeyBsaW5lVmlzaWJsZTogZmFsc2UgfVxcbn0pO1xcblsn5ZCv55SoL+emgeeUqCcsICfph43mlrDmjpLluo8nLCAn5pu05pS55Zu+5qCHJywgJ+WvvOWFpea1t+mYlCddLmZvckVhY2goKHYpID0+IHtcXG4gICAgZWwucHVzaCh7XFxuICAgICAgICB0aXRsZTogdiA9PSBlZGl0TW9kZSA/ICfigJzigJzigJ3igJ0nICsgdi5ib2xkKCkuZm9udGNvbG9yKCcjMTJiNjY4JykgOiB2LFxcbiAgICAgICAgdXJsOiB2ID09IGVkaXRNb2RlID8gJ2hpa2VyOi8vZW1wdHknIDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgodikgPT4ge1xcbiAgICAgICAgICAgIHB1dE15VmFyKCdlZGl0TW9kZScsIHYpXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgfSwgdiksXFxuICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgIH0pXFxufSlcXG5KU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJykuZm9yRWFjaCgodiwgaSkgPT4ge1xcbiAgICBsZXQgZCA9IHsgdGl0bGU6IHYudGl0bGUsIGltZzogZGF0YVtpXS5pY29uIH1cXG4gICAgc3dpdGNoIChlZGl0TW9kZSkge1xcbiAgICAgICAgY2FzZSAn5ZCv55SoL+emgeeUqCc6XFxuICAgICAgICAgICAgZC50aXRsZSA9ICh2LnZpc2libGUgPyAn8J+foiAgJyA6ICfwn5S0ICAnKSArIGQudGl0bGVcXG4gICAgICAgICAgICBkLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGkpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IHJ1bGVzID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnY3VzdG9tRGF0YScpIHx8ICdbXScpXFxuICAgICAgICAgICAgICAgIHJ1bGVzW2ldLnZpc2libGUgPSAhcnVsZXNbaV0udmlzaWJsZVxcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIEpTT04uc3RyaW5naWZ5KHJ1bGVzKSlcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICB9LCBpKVxcbiAgICAgICAgICAgIGJyZWFrXFxuICAgICAgICBjYXNlICfph43mlrDmjpLluo8nOlxcbiAgICAgICAgICAgIGxldCBzb3J0RmxhZyA9IHBhcnNlSW50KGdldE15VmFyKCdzb3J0RmxhZycsICctMScpKVxcbiAgICAgICAgICAgIGQudGl0bGUgPSAoc29ydEZsYWcgPT0gaSA/ICfwn5SDICAnIDogJycpICsgZC50aXRsZVxcbiAgICAgICAgICAgIGlmIChzb3J0RmxhZyA9PSAtMSlcXG4gICAgICAgICAgICAgICAgZC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignc29ydEZsYWcnLCBpLnRvU3RyaW5nKCkpXFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/pgInmi6nopoHnp7vliqjliLDnmoTkvY3nva4nXFxuICAgICAgICAgICAgICAgIH0sIGkpXFxuICAgICAgICAgICAgZWxzZVxcbiAgICAgICAgICAgICAgICBkLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG9sZEluZGV4LCBuZXdJbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJ1bGVzID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnY3VzdG9tRGF0YScpIHx8ICdbXScpXFxuICAgICAgICAgICAgICAgICAgICBydWxlcy5zcGxpY2UobmV3SW5kZXgsIDAsIHJ1bGVzLnNwbGljZShvbGRJbmRleCwgMSlbMF0pXFxuICAgICAgICAgICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIEpTT04uc3RyaW5naWZ5KHJ1bGVzKSlcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdzb3J0RmxhZycsICctMScpXFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgfSwgc29ydEZsYWcsIGkpXFxuICAgICAgICAgICAgYnJlYWtcXG4gICAgICAgIGNhc2UgJ+abtOaUueWbvuaghyc6XFxuICAgICAgICAgICAgZC51cmwgPSAkKHYuaWNvbiB8fCAnJywgJ+i+k+WFpeaWsOWbvuagh+WcsOWdgOaIluminOiJsuS7o+egge+8micpLmlucHV0KChpKSA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCBydWxlcyA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2N1c3RvbURhdGEnKSB8fCAnW10nKVxcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQpXFxuICAgICAgICAgICAgICAgICAgICBydWxlc1tpXS5pY29uID0gaW5wdXRcXG4gICAgICAgICAgICAgICAgZWxzZVxcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJ1bGVzW2ldLmljb25cXG4gICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2N1c3RvbURhdGEnLCBKU09OLnN0cmluZ2lmeShydWxlcykpXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgfSwgaSlcXG4gICAgICAgICAgICBicmVha1xcbiAgICAgICAgY2FzZSAn5a+85YWl5rW36ZiUJzpcXG4gICAgICAgICAgICBkLnVybCA9ICdydWxlOi8vJyArIGJhc2U2NEVuY29kZShKU09OLnN0cmluZ2lmeShkYXRhW2ldKSlcXG4gICAgICAgICAgICBicmVha1xcbiAgICB9XFxuICAgIGVsLnB1c2goZClcXG59KVxcbnNldFJlc3VsdChlbClcXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIumhtemdoui9veWFpVwiLFwicGF0aFwiOlwiZnJhbWVMb2FkXCIsXCJydWxlXCI6XCJqczpcXG5jb25zdCBRSU5HX1RJVExFID0gZ2V0TXlWYXIoJ215Q29sbGVjdGlvbicpXFxubGV0IG15Q29sbGVjdGlvbl9lbCA9IFtdLFxcbiAgICB7IFJVTEUsIGlzSW5kZXgsIHBhZ2VUaXRsZSB9ID0gTVlfUEFSQU1TLFxcbiAgICB0aGlzUlVMRSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RhdGFMb2FkP3J1bGU9JyArIFFJTkdfVElUTEUpKCkuZmluZCgodikgPT4gdi50aXRsZSA9PSBSVUxFLnRpdGxlKVxcbmlmIChpc0luZGV4KSB7XFxuICAgIFJVTEUgPSB0aGlzUlVMRVxcbn0gZWxzZSB7XFxuICAgIFJVTEUucGFnZXMgPSB0aGlzUlVMRS5wYWdlc1xcbn1cXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9wcmVGdW5jP3J1bGU9JyArIFFJTkdfVElUTEUpKS5ydWxlKVxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3VybFBhcnNlP3J1bGU9JyArIFFJTkdfVElUTEUpKS5ydWxlKVxcblxcbmlmIChpc0luZGV4KSB7XFxuICAgIGlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgICAgIC8vIOWKoOi9vUNsYXNzVGFi57uE5Lu2XFxuICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9DbGFzc1RhYj9ydWxlPScgKyBRSU5HX1RJVExFKSkucnVsZSlcXG4gICAgICAgIHRhYkhlYWRlci5sb2FkKG15Q29sbGVjdGlvbl9lbClcXG4gICAgICAgIGlmIChSVUxFLnNlYXJjaF91cmwpIG15Q29sbGVjdGlvbl9lbC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogXFxcIuaQnOe0olxcXCIsXFxuICAgICAgICAgICAgZGVzYzogXFxcIuaQnOS9oOaDs+imgeeahC4uLlxcXCIsXFxuICAgICAgICAgICAgdXJsOiAnXFxcImhpa2VyOi8vc2VhcmNoP3M9XFxcIitpbnB1dCcsXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgcnVsZXM6ICQudG9TdHJpbmcoKFFJTkdfVElUTEUsIHRpdGxlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kYXRhTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFKSgpXFxuICAgICAgICAgICAgICAgICAgICBydWxlcyA9IFtydWxlcy5maW5kKCh2KSA9PiB2LnRpdGxlID09IHRpdGxlKV1cXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShydWxlcylcXG4gICAgICAgICAgICAgICAgfSwgUUlOR19USVRMRSwgUlVMRS50aXRsZSksXFxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ3NlYXJjaEtleScsICcnKSxcXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IFxcXCJwdXRNeVZhcignc2VhcmNoS2V5JyxpbnB1dClcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcImlucHV0XFxcIixcXG4gICAgICAgIH0pXFxuICAgIH1cXG4gICAgLy8g5aSE55CGTVlfUlVMRVxcbiAgICBNWV9SVUxFLnVybCA9IFJVTEUudXJsXFxuICAgIE1ZX1JVTEUuY29sX3R5cGUgPSBSVUxFLmNvbF90eXBlXFxuICAgIE1ZX1JVTEUuZGV0YWlsX2NvbF90eXBlID0gUlVMRS5kZXRhaWxfY29sX3R5cGVcXG4gICAgTVlfUlVMRS5maW5kX3J1bGUgPSBSVUxFLmZpbmRfcnVsZVxcbiAgICBNWV9SVUxFLmRldGFpbF9maW5kX3J1bGUgPSBSVUxFLmRldGFpbF9maW5kX3J1bGVcXG4gICAgTVlfUlVMRS5wYXJhbXMgPSB7fVxcbn0gZWxzZSB7XFxuICAgIE1ZX1JVTEUudXJsID0gTVlfUEFSQU1TLnVybFxcbiAgICBNWV9SVUxFLmNvbF90eXBlID0gUlVMRS5kZXRhaWxfY29sX3R5cGVcXG4gICAgTVlfUlVMRS5maW5kX3J1bGUgPSBSVUxFLmRldGFpbF9maW5kX3J1bGVcXG4gICAgTVlfUlVMRS5wYXJhbXMgPSBSVUxFLnBhcmFtc1xcbn1cXG5NWV9SVUxFLnBhZ2VzID0gUlVMRS5wYWdlc1xcbk1ZX1JVTEUucGFnZUxpc3QgPSBKU09OLnBhcnNlKE1ZX1JVTEUucGFnZXMgfHwgJ1tdJylcXG5NWV9SVUxFLnRpdGxlID0gUlVMRS50aXRsZVxcblxcbmlmICghaXNJbmRleCkge1xcbiAgICBpZiAocGFnZVRpdGxlKSBzZXRQYWdlVGl0bGUocGFnZVRpdGxlKVxcbiAgICBzZXRMYXN0Q2hhcHRlclJ1bGUodGhpc1JVTEUubGFzdF9jaGFwdGVyX3J1bGUpXFxuICAgIE1ZX1BBUkFNUyA9IE1ZX1JVTEUucGFyYW1zXFxufVxcbi8vIOmihOWkhOeQhuW5tuWIneWni+WMlmNvbmZpZ1xcbmlmIChpc0luZGV4ICYmIE1ZX1BBR0UgPT0gMSkgZXZhbCh0aGlzUlVMRS5wcmVSdWxlKVxcbmxldCBfY2ZnID0gZ2V0TXlWYXIoJ2luaXRDb25maWcnLCAne30nKVxcbmlmIChfY2ZnICYmIF9jZmcubGVuZ3RoID4gMCkge1xcbiAgICBjb25maWcgPSBKU09OLnBhcnNlKF9jZmcpXFxufVxcblxcbi8vIOato+aWh+ino+aekOmAmueUqOWPmOmHj1xcbmxldCBhc3NpZ25MYXp5UnVsZSA9ICQudG9TdHJpbmcoKFFJTkdfVElUTEUsIHRpdGxlKSA9PiB7XFxuICAgIGxldCBSVUxFID0gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvZGF0YUxvYWQ/cnVsZT1cXFwiICsgUUlOR19USVRMRSkoKS5maW5kKCh2KSA9PiB2LnRpdGxlID09IHRpdGxlKVxcbiAgICByZXR1cm4geyBwYWdlczogUlVMRS5wYWdlcywgcGFnZUxpc3Q6IFJVTEUucGFnZUxpc3QgfVxcbn0sIFFJTkdfVElUTEUsIFJVTEUudGl0bGUpXFxuZnVuY3Rpb24gZ2VuTXlSdWxlKCkge1xcbiAgICBsZXQgcnVsZSA9IE9iamVjdC5hc3NpZ24oe30sIE1ZX1JVTEUpXFxuICAgIGRlbGV0ZSBydWxlLmxhc3RfY2hhcHRlcl9ydWxlXFxuICAgIGRlbGV0ZSBydWxlLnByZVJ1bGVcXG4gICAgZGVsZXRlIHJ1bGUucGFnZUxpc3RcXG4gICAgZGVsZXRlIHJ1bGUucGFnZXNcXG4gICAgcmV0dXJuIHJ1bGVcXG59XFxuZnVuY3Rpb24gcnVuQ29kZShydWxlKSB7XFxuICAgIHRyeSB7XFxuICAgICAgICBsZXQgW2lucHV0LCBjb2RlXSA9IHJ1bGUuc3BsaXQoJy5qczonKVxcbiAgICAgICAgcmV0dXJuIGNvZGUgPyBldmFsKGNvZGUpIDogcnVsZVxcbiAgICB9IGNhdGNoIChlKSB7IHJldHVybiBydWxlIH1cXG59XFxuZnVuY3Rpb24gZ2VuRXhVcmwodXJsKSB7XFxuICAgIHVybCA9IHVybC5zcGxpdCgnOycpXFxuICAgIHJldHVybiB1cmwuc2hpZnQoKSArICc7JyArIHBhcmFtSGFuZGxlKHVybCwgdGhpc1JVTEUudWEsIE1ZX1JVTEUudXJsKVxcbn1cXG4vLyDmraPmlofop6PmnpBcXG5pZiAoTVlfUlVMRS5maW5kX3J1bGUuc3RhcnRzV2l0aCgnanM6JykpIHtcXG4gICAgc2V0UmVzdWx0ID0gZnVuY3Rpb24oZWwsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMpIHtcXG4gICAgICAgIHBhcmFtMSA9IENBTExCQUNLX0tFWVxcbiAgICAgICAgcGFyYW0yID0gTVlfUlVMRVxcbiAgICAgICAgcGFyYW0zID0gTVlfVFlQRVxcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZWwuZGF0YSkpIGVsID0gZWwuZGF0YVxcbiAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkobXlDb2xsZWN0aW9uX2VsLCBlbC5tYXAoKHYpID0+IHtcXG4gICAgICAgICAgICBsZXQgTVlfX1JVTEUgPSBPYmplY3QuYXNzaWduKGdlbk15UnVsZSgpLCB7IHBhcmFtczogdi5leHRyYSB8fCB7fSB9KVxcbiAgICAgICAgICAgIHYuY29sX3R5cGUgPSB2LmNvbF90eXBlIHx8IE1ZX1JVTEUuY29sX3R5cGVcXG5cXG4gICAgICAgICAgICBpZiAoIXYudXJsIHx8IFsncnVsZScsICdwaWNzJywgJ3RvYXN0JywgJ2lucHV0JywgJ2NvcHknLCAnZWRpdEZpbGUnLCAneDUnLCAneDVXZWJWaWV3JywgJ3g1UGxheScsICd3ZWInLCAnc2VsZWN0JywgJ3g1UnVsZScsICd3ZWJSdWxlJywgJ2Rvd25sb2FkJywgJ3NoYXJlJ10uZmluZCgodnYpID0+IHYudXJsLnN0YXJ0c1dpdGgodnYgKyAnOi8vJykpIHx8IFsneDVfd2Vidmlld19zaW5nbGUnLCAnaW5wdXQnXS5maW5kKCh2dikgPT4gdi5jb2xfdHlwZSA9PSB2dikpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYudXJsLmluY2x1ZGVzKCdAcnVsZT0nKSkge1xcbiAgICAgICAgICAgICAgICBsZXQgW18sIHVybCwgcnVsZV0gPSB2LnVybC5tYXRjaCgvXihbXFxcXHNcXFxcU10qPylAcnVsZT0oW1xcXFxzXFxcXFNdKikkLylcXG4gICAgICAgICAgICAgICAgdi51cmwgPSB1cmxcXG4gICAgICAgICAgICAgICAgTVlfX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSA9IHJ1bGVcXG4gICAgICAgICAgICAgICAgTVlfX1JVTEUuZGV0YWlsX2NvbF90eXBlID0gTVlfUlVMRS5jb2xfdHlwZVxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodi51cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly9wYWdlLycpKSB7XFxuICAgICAgICAgICAgICAgIGlmICh2LnVybC5pbmNsdWRlcygncnVsZT0nKSB8fCAodi5leHRyYSB8fCB7fSkucnVsZSlcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2XFxuICAgICAgICAgICAgICAgIGxldCBbXywgcGF0aCwgZmxhZywgcGFyYW1zXSA9IHYudXJsLm1hdGNoKC9eaGlrZXI6XFxcXC9cXFxcL3BhZ2VcXFxcLyguKz8pKCMuKj8pPyg/OlxcXFw/KC4qKSk/JC8pLFxcbiAgICAgICAgICAgICAgICAgICAgc3ViUGFnZSA9IE1ZX1JVTEUucGFnZUxpc3QuZmluZCgodikgPT4gdi5wYXRoID09IHBhdGgpLFxcbiAgICAgICAgICAgICAgICAgICAgc3ViVXJsID0gKHBhcmFtcyB8fCAnJykuc3BsaXQoJyYnKS5maW5kKCh2KSA9PiB2LnN0YXJ0c1dpdGgoJ3VybD0nKSlcXG4gICAgICAgICAgICAgICAgdi51cmwgPSBzdWJVcmwgPyBzdWJVcmwuc2xpY2UoNCkucmVwbGFjZSgv77yf77yfL2csICc/JykucmVwbGFjZSgv77yG77yGL2csICcmJykgOiAodi5leHRyYSB8fCB7fSkudXJsIHx8ICdoaWtlcjovL2VtcHR5JyArIGZsYWcgKyAnPycgKyAocGFyYW1zIHx8ICcnKVxcbiAgICAgICAgICAgICAgICBNWV9fUlVMRS5kZXRhaWxfZmluZF9ydWxlID0gc3ViUGFnZS5ydWxlXFxuICAgICAgICAgICAgICAgIE1ZX19SVUxFLmRldGFpbF9jb2xfdHlwZSA9IHN1YlBhZ2UuY29sX3R5cGVcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYudXJsLmluY2x1ZGVzKCdAbGF6eVJ1bGU9JykpIHtcXG4gICAgICAgICAgICAgICAgbGV0IHJlSW5kZXggPSB2LnVybC5pbmRleE9mKCcuanM6JylcXG4gICAgICAgICAgICAgICAgaWYgKHJlSW5kZXggPj0gMCkgdi51cmwgPSB2LnVybC5zbGljZSgwLCByZUluZGV4KSArICcuanM6XFxcXG5pZihNWV9SVUxFKU9iamVjdC5hc3NpZ24oTVlfUlVMRSwgJyArIGFzc2lnbkxhenlSdWxlICsgJyk7JyArIHYudXJsLnNsaWNlKHJlSW5kZXggKyA0KVxcbiAgICAgICAgICAgICAgICByZXR1cm4gdlxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNJbmRleCkge1xcbiAgICAgICAgICAgICAgICBpZiAoIU1ZX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSB8fCAvaGlrZXI6XFxcXC9cXFxcLyg/IWVtcHR5LiskKS8udGVzdCh2LnVybCkpIHJldHVybiB2XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgdi5leHRyYSA9IHtcXG4gICAgICAgICAgICAgICAgdXJsOiBnZW5FeFVybCh2LnVybCksXFxuICAgICAgICAgICAgICAgIFJVTEU6IE1ZX19SVUxFLFxcbiAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IGlzSW5kZXggJiYgdi50aXRsZVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB2LnVybCA9ICdoaWtlcjovL3BhZ2UvZnJhbWVMb2FkP3J1bGU9JyArIFFJTkdfVElUTEVcXG4gICAgICAgICAgICByZXR1cm4gdlxcbiAgICAgICAgfSkpXFxuICAgICAgICBtZXRob2Rfc2V0UmVzdWx0Lmludm9rZShqYXZhQ29udGV4dCwgbXlDb2xsZWN0aW9uX2VsLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zKVxcbiAgICB9XFxuICAgIHNldEhvbWVSZXN1bHQgPSBzZXRSZXN1bHRcXG4gICAgc2V0U2VhcmNoUmVzdWx0ID0gc2V0UmVzdWx0XFxuXFxuICAgIGV2YWwoTVlfUlVMRS5maW5kX3J1bGUuc2xpY2UoMykpXFxufSBlbHNlIHtcXG4gICAgbGV0IFtfLCBmaW5kUnVsZSwgZGV0YWlsRmluZFJ1bGVdID0gTVlfUlVMRS5maW5kX3J1bGUubWF0Y2goL14oW1xcXFxzXFxcXFNdKj8pKD86PT0+KFtcXFxcc1xcXFxTXSopKT8kLylcXG4gICAgZmluZFJ1bGUgPSBmaW5kUnVsZS5zcGxpdCgnOycpXFxuICAgIHBhcnNlRG9tRm9yQXJyYXkoZ2V0UmVzQ29kZSgpLCBmaW5kUnVsZS5zaGlmdCgpKS5mb3JFYWNoKChkYXRhKSA9PiB7XFxuICAgICAgICBsZXQgW3RpdGxlLCBpbWcsIGRlc2MsIHVybF0gPSBmaW5kUnVsZS5tYXAoKHYsIGkpID0+IHtcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh2ID09ICcqJykgcmV0dXJuICcnXFxuICAgICAgICAgICAgICAgICAgICBlbHNlIHYgPSAoaSA9PSAxIHx8IGkgPT0gMykgP1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRG9tKGRhdGEsIHYpIDpcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZURvbUZvckh0bWwoZGF0YSwgdilcXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICE9IDMpIHYgPSBydW5Db2RlKHYpXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdlxcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7IHJldHVybiAnJyB9XFxuICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgcmVzID0ge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsIHVybDogdXJsLFxcbiAgICAgICAgICAgICAgICBkZXNjOiBkZXNjLCBpbWc6IGltZyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IE1ZX1JVTEUuY29sX3R5cGVcXG4gICAgICAgICAgICB9XFxuICAgICAgICBpZiAocmVzLnVybCkge1xcbiAgICAgICAgICAgIGlmIChyZXMudXJsLmluY2x1ZGVzKCdAbGF6eVJ1bGU9JykpIHtcXG4gICAgICAgICAgICAgICAgbGV0IHJlSW5kZXggPSByZXMudXJsLmluZGV4T2YoJy5qczonKVxcbiAgICAgICAgICAgICAgICBpZiAocmVJbmRleCA+PSAwKSByZXMudXJsID0gcmVzLnVybC5zbGljZSgwLCByZUluZGV4KSArICcuanM6XFxcXG5pZihNWV9SVUxFKU9iamVjdC5hc3NpZ24oTVlfUlVMRSwgJyArIGFzc2lnbkxhenlSdWxlICsgJyk7JyArIHJlcy51cmwuc2xpY2UocmVJbmRleCArIDQpXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChkZXRhaWxGaW5kUnVsZSkge1xcbiAgICAgICAgICAgICAgICByZXMuZXh0cmEgPSB7XFxuICAgICAgICAgICAgICAgICAgICB1cmw6IGdlbkV4VXJsKHVybCksXFxuICAgICAgICAgICAgICAgICAgICBSVUxFOiBPYmplY3QuYXNzaWduKGdlbk15UnVsZSgpLCB7IGRldGFpbF9maW5kX3J1bGU6IGRldGFpbEZpbmRSdWxlIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgcGFnZVRpdGxlOiBpc0luZGV4ICYmIHRpdGxlXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgcmVzLnVybCA9ICdoaWtlcjovL3BhZ2UvZnJhbWVMb2FkP3J1bGU9JyArIFFJTkdfVElUTEVcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKE1ZX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSkge1xcbiAgICAgICAgICAgICAgICByZXMuZXh0cmEgPSB7XFxuICAgICAgICAgICAgICAgICAgICB1cmw6IGdlbkV4VXJsKHVybCksXFxuICAgICAgICAgICAgICAgICAgICBSVUxFOiBnZW5NeVJ1bGUoKSxcXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogaXNJbmRleCAmJiB0aXRsZVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJlcy51cmwgPSAnaGlrZXI6Ly9wYWdlL2ZyYW1lTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgbXlDb2xsZWN0aW9uX2VsLnB1c2gocmVzKVxcbiAgICB9KVxcbiAgICBzZXRSZXN1bHQobXlDb2xsZWN0aW9uX2VsKVxcbn1cXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuaVsOaNrui9veWFpVwiLFwicGF0aFwiOlwiZGF0YUxvYWRcIixcInJ1bGVcIjpcIiQuZXhwb3J0cyA9IGZ1bmN0aW9uKHNob3dBbGwpIHtcXG4gICAgbGV0IHVybCA9IGdldE15VmFyKCdyZW1vdGVVcmwnKSxcXG4gICAgICAgIGludGVydmFsID0gcGFyc2VJbnQocmVhZEZpbGUoJ3VwZGF0ZUludGVydmFsJykgfHwgJzEnKSxcXG4gICAgICAgIHRpbWUgPSBwYXJzZUludChyZWFkRmlsZSgndXBkYXRlVGltZScpKSB8fCAwLFxcbiAgICAgICAgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCksXFxuICAgICAgICBkYXRhID0gW107XFxuICAgIGlmICh0aW1lID09IDAgfHwgaW50ZXJ2YWwgPiAwICYmIG5vdyAtIHRpbWUgPiAxMDAwICogNjAgKiA2MCAqIDI0ICogaW50ZXJ2YWwpIHtcXG4gICAgICAgIC8vIOiOt+WPlui/nOeoi+aVsOaNrlxcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBsZXQgdHR0dHQgPSAkLnJlcXVpcmUoXFxcImhpa2VyOi8vcGFnZS9jcmVhdG9yXFxcIik7XFxuICAgICAgICAgICAgZGF0YSA9IHR0dHR0LnJ1bGVzO1xcbiAgICAgICAgICAgIHNldEl0ZW0oXFxcInR5cGVzXFxcIixKU09OLnN0cmluZ2lmeSh0dHR0dC50eXBlcykpO1xcbiAgICAgICAgfSBjYXRjaCAoZSkge31cXG4gICAgICAgIGlmKGRhdGEubGVuZ3RoID09IDApIHtcXG4gICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9saWJzLycgKyBtZDUodXJsKSArICcuanMnKSB8fCAnW10nKVxcbiAgICAgICAgICAgIGxvZygn5rKh5pyJ6I635Y+W5Yiw5pu05paw5pWw5o2uJylcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL2xpYnMvJyArIG1kNSh1cmwpICsgJy5qcycsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcXG4gICAgICAgICAgICBzYXZlRmlsZSgndXBkYXRlVGltZScsIG5vdy50b1N0cmluZygpKVxcbiAgICAgICAgICAgIGxvZygn5pu05paw5pWw5o2u5bey5YaZ5YWl5pys5ZywJylcXG4gICAgICAgIH1cXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL2xpYnMvJyArIG1kNSh1cmwpICsgJy5qcycpIHx8ICdbXScpXFxuICAgIH1cXG4gICAgXFxuICAgIC8vZGF0YSA9IGRhdGEuZmlsdGVyKCh2KSA9PiB7IHJldHVybiB2LnRpdGxlICE9IGdldE15VmFyKCdteUNvbGxlY3Rpb24nKSAmJiAhKHYuYXV0aG9yIHx8ICcnKS5pbmNsdWRlcygn6L275ZCI6ZuG55Sf5oiQ5ZmoJykgfSlcXG4gICAgICAgIGlmIChyZWFkRmlsZSgnZGlzYWJsZUN1c3RvbScpKSByZXR1cm4gZGF0YVxcbiAgICBlbHNlIHsgLy8g5YaZ5YWl6Ieq5a6a5LmJ5pWw5o2uXFxuICAgICAgICBsZXQgY3VzdG9tRGF0YSA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2N1c3RvbURhdGEnKSB8fCAnW10nKSxcXG4gICAgICAgICAgICByZXdyaXRlRGF0YSA9IFtdXFxuICAgICAgICBjdXN0b21EYXRhID0gY3VzdG9tRGF0YS5yZWR1Y2UoKHNlbGYsIHYpID0+IHtcXG4gICAgICAgICAgICBsZXQgaW5kZXggPSBkYXRhLmZpbmRJbmRleCgodnYpID0+IHYudGl0bGUgPT0gdnYudGl0bGUpXFxuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcXG4gICAgICAgICAgICAgICAgc2VsZi5wdXNoKHYpXFxuICAgICAgICAgICAgICAgIGxldCBydWxlID0gZGF0YS5zcGxpY2UoaW5kZXgsIDEpWzBdXFxuICAgICAgICAgICAgICAgIGlmIChzaG93QWxsIHx8IHYudmlzaWJsZSlcXG4gICAgICAgICAgICAgICAgICAgIHJld3JpdGVEYXRhLnB1c2goT2JqZWN0LmFzc2lnbihydWxlLCB2KSlcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIHNlbGZcXG4gICAgICAgIH0sIFtdKVxcbiAgICAgICAgZGF0YS5mb3JFYWNoKCh2KSA9PiBjdXN0b21EYXRhLnB1c2goeyB0aXRsZTogdi50aXRsZSwgdmlzaWJsZTogdHJ1ZSB9KSlcXG4gICAgICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgSlNPTi5zdHJpbmdpZnkoY3VzdG9tRGF0YSkpXFxuICAgICAgICByZXR1cm4gcmV3cml0ZURhdGEuY29uY2F0KGRhdGEpXFxuICAgIH1cXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlh73mlbDph43lhplcIixcInBhdGhcIjpcInByZUZ1bmNcIixcInJ1bGVcIjpcIi8vIOmYsuatonJlcXVpcmXlpJrmrKHov5DooYxcXG5sZXQgckNhY2hlID0ge31cXG5yZXF1aXJlID0gZnVuY3Rpb24ocGFyYW0wLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zLCBwYXJhbTQpIHtcXG4gICAgaWYgKCFwYXJhbTAgfHwgckNhY2hlW3BhcmFtMF0gIT0gbnVsbCkge1xcbiAgICAgICAgcmV0dXJuXFxuICAgIH1cXG4gICAgckNhY2hlW3BhcmFtMF0gPSAxXFxuICAgIHBhcmFtMiA9IHBhcmFtMiB8fCAwXFxuICAgIHBhcmFtMyA9IE1ZX1RJQ0tFVFxcbiAgICBwYXJhbTQgPSBldmFsXFxuICAgIHJldHVybiBtZXRob2RfcmVxdWlyZS5pbnZva2UoamF2YUNvbnRleHQsIHBhcmFtMCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00KVxcbn1cXG5yZXF1aXJlQ2FjaGUgPSBmdW5jdGlvbihwYXJhbTAsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMsIHBhcmFtNCwgcGFyYW01KSB7XFxuICAgIGlmICghcGFyYW0wIHx8IHJDYWNoZVtwYXJhbTBdICE9IG51bGwpIHtcXG4gICAgICAgIHJldHVyblxcbiAgICB9XFxuICAgIHJDYWNoZVtwYXJhbTBdID0gMVxcbiAgICBwYXJhbTMgPSBwYXJhbTMgfHwgMFxcbiAgICBwYXJhbTQgPSBNWV9USUNLRVRcXG4gICAgcGFyYW01ID0gZXZhbFxcbiAgICByZXR1cm4gbWV0aG9kX3JlcXVpcmVDYWNoZS5pbnZva2UoamF2YUNvbnRleHQsIHBhcmFtMCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00LCBwYXJhbTUpXFxufVxcbnJjID0gcmVxdWlyZUNhY2hlXFxuXFxuLy8g5pyA5paw56ug6IqC6KeE5YiZ5rOo5YWl6aKE5aSE55CG5Luj56CBXFxuc2V0TGFzdENoYXB0ZXJSdWxlID0gZnVuY3Rpb24ocGFyYW0wKSB7XFxuICAgIGlmICghcGFyYW0wKSByZXR1cm5cXG4gICAgaWYgKHBhcmFtMC5zdGFydHNXaXRoKFxcXCJqczpcXFwiKSAmJiB0aGlzUlVMRS5wcmVSdWxlKSB7XFxuICAgICAgICBwYXJhbTAgPSAnanM6XFxcXG50cnl7ZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXCJoaWtlcjovL3BhZ2UvcHJlRnVuYz9ydWxlPScgKyBRSU5HX1RJVExFICsgJ1xcXCIpKS5ydWxlKTtcXFxcXFxuICAgICAgICAgICAgZXZhbChiYXNlNjREZWNvZGUoXFxcIicgKyBiYXNlNjRFbmNvZGUodGhpc1JVTEUucHJlUnVsZSkgKyAnXFxcIikpO1xcXFxcXG4gICAgICAgICAgICBsZXQgX2NmZyA9IGdldE15VmFyKFxcXCJpbml0Q29uZmlnXFxcIiwgXFxcInt9XFxcIik7XFxcXFxcbiAgICAgICAgICAgIGlmIChfY2ZnICYmIF9jZmcubGVuZ3RoPjApIHtjb25maWcgPSBKU09OLnBhcnNlKF9jZmcpfX1jYXRjaChlKXtsb2coZS5tZXNzYWdlKX1cXFxcbjsnICtcXG4gICAgICAgICAgICBwYXJhbTAuc2xpY2UoMylcXG4gICAgfVxcbiAgICBtZXRob2Rfc2V0TGFzdENoYXB0ZXJSdWxlLmludm9rZShqYXZhQ29udGV4dCwgcGFyYW0wKTtcXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpk77mjqXlpITnkIZcIixcInBhdGhcIjpcInVybFBhcnNlXCIsXCJydWxlXCI6XCIvLyDpppbpobXpk77mjqXmm7/mjaLliIbnsbtcXG5mdW5jdGlvbiBpbmRleFVybChwYXJhbSkge1xcbiAgICBmdW5jdGlvbiBydW5Db2RlKHJ1bGUpIHtcXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgbGV0IFtpbnB1dCwgY29kZV0gPSBydWxlLnNwbGl0KCcuanM6JylcXG4gICAgICAgICAgICByZXR1cm4gY29kZSA/IGV2YWwoY29kZSkgOiBydWxlXFxuICAgICAgICB9IGNhdGNoIChlKSB7IHJldHVybiBydWxlIH1cXG4gICAgfVxcbiAgICBsZXQgeyBSVUxFLCBwYWdlTnVtLCBRSU5HX1RJVExFIH0gPSBKU09OLnBhcnNlKHBhcmFtLnNwbGl0KCcjIyMnKVsxXSlcXG4gICAgUlVMRSA9IEpTT04ucGFyc2UoYmFzZTY0RGVjb2RlKFJVTEUpKVxcbiAgICBwYWdlTnVtID0gcGFyc2VJbnQocGFnZU51bSlcXG4gICAgbGV0IHVybCA9IFJVTEUudXJsXFxuXFxuICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL0NsYXNzVGFiP3J1bGU9JyArIFFJTkdfVElUTEUpKS5ydWxlKVxcbiAgICB1cmwgPSB0YWJIZWFkZXIuc2V0VXJsKGZ5QWxsID8gdXJsLnJlcGxhY2UoL2Z5QWxsL2csICckJHtmeUFsbH0nKSA6IHVybC5yZXBsYWNlKC9meShjbGFzc3xhcmVhfHllYXJ8c29ydCkvZywgJyQke2Z5JDF9JykpXFxuICAgIHVybCA9IHVybC5yZXBsYWNlKC9meXBhZ2UoPzpAKC0/XFxcXGQrKUApPyg/OlxcXFwqKFxcXFxkKylAKT8vZywgKF8sIHN0YXJ0LCBzcGFjZSkgPT4gcGFyc2VJbnQoc3RhcnQgfHwgMCkgKyAxICsgKHBhZ2VOdW0gLSAxKSAqIHBhcnNlSW50KHNwYWNlIHx8IDEpKVxcbiAgICB1cmwgPSAvXihbXFxcXHNcXFxcU10qPykoPzpcXFxcW2ZpcnN0UGFnZT0oW1xcXFxzXFxcXFNdKj8pXFxcXF0pPyg/OihcXFxcLmpzOltcXFxcc1xcXFxTXSo/KSk/JC8uZXhlYyh1cmwpXFxuICAgIGlmIChwYWdlTnVtID09IDEgJiYgdXJsWzJdKSB1cmxbMV0gPSB1cmxbMl1cXG4gICAgaWYgKHVybFszXSAmJiAhdXJsWzFdLmluY2x1ZGVzKCcuanM6JykpIHVybFsxXSArPSB1cmxbM11cXG4gICAgcmV0dXJuIHJ1bkNvZGUodXJsWzFdKVxcbn1cXG4vLyDpk77mjqXlj4LmlbDlpITnkIZcXG5mdW5jdGlvbiBwYXJhbUhhbmRsZSh1cmxQYXJhbSwgdWEsIHVybFRtcCkge1xcbiAgICBsZXQgY2hhcnNldCwgVXNlckFnZW50XFxuICAgIHRyeSB7IC8vIOmTvuaOpeeahOe8lueggeWSjHVh5bqU6K+l5piv6aaW5YWI57un5om/6aaW6aG16ZO+5o6lXFxuICAgICAgICBbLCAsIGNoYXJzZXQsIFVzZXJBZ2VudF0gPSB1cmxUbXAuc3BsaXQoJzsnKVxcbiAgICAgICAgVXNlckFnZW50ID0gVXNlckFnZW50Lm1hdGNoKC9eeyguKil9JC8pWzFdLnNwbGl0KCcmJicpLmZpbmQoKHYpID0+IHYuc3RhcnRzV2l0aCgnVXNlci1BZ2VudEAnKSlcXG4gICAgfSBjYXRjaCAoZSkge31cXG4gICAgdXJsUGFyYW1bMF0gPSB1cmxQYXJhbVswXSB8fCAnR0VUJ1xcbiAgICB1cmxQYXJhbVsxXSA9IHVybFBhcmFtWzFdIHx8IGNoYXJzZXQgfHwgJ1VURi04J1xcbiAgICB0cnkge1xcbiAgICAgICAgdXJsUGFyYW1bMl0gPSB1cmxQYXJhbVsyXS5tYXRjaCgvXnsoLiopfSQvKVsxXS5zcGxpdCgnJiYnKVxcbiAgICB9IGNhdGNoIChlKSB7IHVybFBhcmFtWzJdID0gW10gfVxcbiAgICAvLyDmt7vliqDlhajlsYBVQVxcbiAgICBpZiAoIXVybFBhcmFtWzJdLnNvbWUoKHYpID0+IHYuc3RhcnRzV2l0aCgnVXNlci1BZ2VudEAnKSkpIHtcXG4gICAgICAgIGlmIChVc2VyQWdlbnQpIHVybFBhcmFtWzJdLnB1c2goVXNlckFnZW50KVxcbiAgICAgICAgZWxzZSBpZiAodWEgPT0gJ3BjJylcXG4gICAgICAgICAgICB1cmxQYXJhbVsyXS5wdXNoKCdVc2VyLUFnZW50QCcgKyBQQ19VQS5yZXBsYWNlKC87L2csICfvvJvvvJsnKS5yZXBsYWNlKC9cXFxcPy8sICfvvJ/vvJ8nKSlcXG4gICAgICAgIGVsc2UgaWYgKHVhID09ICdtb2JpbGUnKVxcbiAgICAgICAgICAgIHVybFBhcmFtWzJdLnB1c2goJ1VzZXItQWdlbnRAJyArIE1PQklMRV9VQS5yZXBsYWNlKC87L2csICfvvJvvvJsnKS5yZXBsYWNlKC9cXFxcPy8sICfvvJ/vvJ8nKSlcXG4gICAgfVxcbiAgICB1cmxQYXJhbVsyXSA9ICd7JyArIHVybFBhcmFtWzJdLmpvaW4oJyYmJykgKyAnfSdcXG4gICAgcmV0dXJuIHVybFBhcmFtLmpvaW4oJzsnKVxcbn1cXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIueUn+aIkOinhOWImembhlwiLFwicGF0aFwiOlwiY3JlYXRvclwiLFwicnVsZVwiOlwibGV0IGFwcGZpbGUgPSBcXFwiXFxcIjtcXG50cnkge1xcbiAgICBhcHBmaWxlID0gZmV0Y2goXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BUFAuanNvblxcXCIpO1xcbn0gY2F0Y2ggKGUpIHt9XFxuXFxubGV0IGFwcGpzb24gPSB7fTtcXG5pZiAoL0luTWVtb3J5Ly50ZXN0KGFwcGZpbGUpKSB7XFxuICAgIGFwcGpzb24gPSBKU09OLnBhcnNlKGFwcGZpbGUpO1xcbn0gZWxzZSB7XFxuICAgIGFwcGpzb24gPSBKU09OLnBhcnNlKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS9SZXNDb2RlXFxcIiwge30pKS5ydWxlKTtcXG59XFxuXFxuZnVuY3Rpb24gcmFuZG9tU29ydDMoYXJyKSB7XFxuICAgIC8qYXJyLnNvcnQoZnVuY3Rpb24oKSB7XFxuICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAtIDAuNTtcXG4gICAgfSk7Ki9cXG4gICAgcmV0dXJuIGFycjtcXG59XFxuXFxubGV0IGFwcGNvbnRzID0gYXBwanNvbi5kYXRhLFxcbiAgICBydWxlcyA9IFtdLFxcbiAgICB0eXBlcyA9IHsgXFxcIlxcXCI6IFxcXCLlhajpg6hcXFwiIH07XFxuZm9yIChsZXQgaSA9IDA7IGkgPCBhcHBjb250cy5sZW5ndGg7IGkrKykge1xcbiAgICBsZXQgYXBwbGlzdCA9IHJhbmRvbVNvcnQzKGFwcGNvbnRzW2ldLmxpc3QpLFxcbiAgICAgICAgYXBwdHlwZSA9IGFwcGNvbnRzW2ldLnRpdGxlICsgYXBwbGlzdC5sZW5ndGg7XFxuICAgIHR5cGVzW2FwcHR5cGVdID0gYXBwdHlwZTtcXG4gICAgaWYgKGFwcHR5cGUuaW5jbHVkZXMoXFxcIuS4quS6uuaUtumbhlxcXCIpKSBjb250aW51ZTtcXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBhcHBsaXN0Lmxlbmd0aDsgaisrKSB7XFxuICAgICAgICBsZXQgYXBwdGl0bGUgPSBhcHBsaXN0W2pdLnRpdGxlLFxcbiAgICAgICAgICAgIGFwcGF1dGhvciA9IFxcXCJBUFDlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIGFwcGljb24gPSBhcHBsaXN0W2pdLmltZyxcXG4gICAgICAgICAgICB0dXJsID0gYXBwbGlzdFtqXS51cmwsXFxuICAgICAgICAgICAgYXBwdXJsID0gXFxcIlxcXCIsXFxuICAgICAgICAgICAgZmluZF9ydWxlID0gXFxcIlxcXCIsXFxuICAgICAgICAgICAgc3VybCA9IFxcXCJcXFwiLFxcbiAgICAgICAgICAgIHNlYXJjaEZpbmQgPSBcXFwiXFxcIixcXG4gICAgICAgICAgICBwYWdlcyA9IFtdLFxcbiAgICAgICAgICAgIGxhc3RfY2hhcHRlcl9ydWxlID0gXFxcIlxcXCI7XFxuXFxuICAgICAgICBsZXQgbnVtID0gMSxcXG4gICAgICAgICAgICB0ZW1wID0gYXBwdGl0bGU7XFxuICAgICAgICB3aGlsZSAocnVsZXMuc29tZShjdXIgPT4gY3VyLnRpdGxlID09IGFwcHRpdGxlKSkge1xcbiAgICAgICAgICAgIG51bSA9IG51bSArIDE7XFxuICAgICAgICAgICAgYXBwdGl0bGUgPSB0ZW1wICsgbnVtO1xcbiAgICAgICAgfVxcbiAgICAgICAgLy/op4TliJnpk77mjqXlkozmkJzntKLpk77mjqVcXG4gICAgICAgIGlmICgvVFYvLnRlc3QoYXBwdHlwZSkpIHtcXG4gICAgICAgICAgICBhcHB1cmwgPSBcXFwiaGlrZXI6Ly9lbXB0eSQkXFxcIiArIHR1cmwgKyBcXFwiJCQ/YWM9bGlzdCZwYWdlPWZ5cGFnZVxcXCI7XFxuICAgICAgICAgICAgaWYgKC8xOWp4fDI5M3lzfHpoYWlrYW55c3xqaVxcXFwtZGluZ1xcXFwtaGV8cGhvZWJlfHl1bmJvXFxcXC5ieGlufGxhbnJlbnRrfGhldGFveXN8cHh1bnwxMzlcXFxcLjE1NXxma2tkeXwwNTYxNTh8YWl4aXhpfHJ1b3hpbmV3fGZlaWZhbjEyM3xzaXFpdHYvLnRlc3QodHVybCkpIHtcXG4gICAgICAgICAgICAgICAgc3VybCA9IHR1cmwgKyAnP2FjPWxpc3QmcGFnZT1meXBhZ2Umem09JztcXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBzdXJsID0gdHVybCArICc/YWM9bGlzdCZwYWdlPWZ5cGFnZSZ3ZD0nO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgaWYgKHR1cmwuaW5kZXhPZihcXFwiYXBpLnBocC9hcHAvXFxcIikgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgYXBwdXJsID0gXFxcImhpa2VyOi8vZW1wdHkkJFxcXCIgKyB0dXJsICsgXFxcIiQkaW5kZXhfdmlkZW8/dG9rZW49XFxcIjtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR1cmwuaW5kZXhPZihcXFwieGdhcHAucGhwL3YxL1xcXCIpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgIGFwcHVybCA9IFxcXCJoaWtlcjovL2VtcHR5JCRcXFwiICsgdHVybCArIFxcXCIkJGluZGV4X3ZpZGVvP3Rva2VuPVxcXCI7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgYXBwdXJsID0gXFxcImhpa2VyOi8vZW1wdHkkJFxcXCIgKyB0dXJsICsgXFxcIiQkL3ZvZFBoYkFsbFxcXCI7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIGlmICh0dXJsLmluZGV4T2YoJ2FwaS5waHAvYXBwLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgIHN1cmwgPSB0dXJsICsgJ3NlYXJjaD9wZz1meXBhZ2UmdG9rZW49JnRleHQ9JztcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHR1cmwuaW5kZXhPZigneGdhcHAucGhwL3YxLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgIHN1cmwgPSB0dXJsICsgJ3NlYXJjaD9wZz1meXBhZ2UmdGV4dD0nO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QodHVybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgIHN1cmwgPSB0dXJsICsgJy9saXN0P3BhZ2U9ZnlwYWdlJmxpbWl0PTEwJndkPSc7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBzdXJsID0gdHVybCArICc/cGFnZT1meXBhZ2UmbGltaXQ9MTAmd2Q9JztcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG5cXG4gICAgICAgIGlmICgvVFYvLnRlc3QoYXBwdHlwZSkpIHtcXG4gICAgICAgICAgICBmaW5kX3J1bGUgPSBcXFwianM6XFxcIiArICQudG9TdHJpbmcoZnVuY3Rpb24oKSB7XFxuICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdLFxcbiAgICAgICAgICAgICAgICAgICAgdHVybCA9IE1ZX1VSTC5zcGxpdCgnJCQnKVsxXSxcXG4gICAgICAgICAgICAgICAgICAgIHVybCA9IHR1cmwgKyBNWV9VUkwuc3BsaXQoJyQkJylbMl0sXFxuICAgICAgICAgICAgICAgICAgICBwYWdlID0gTVlfUEFHRTtcXG4gICAgICAgICAgICAgICAgaWYgKHBhZ2UgPT0gMSkge1xcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHlwZWMgPSBKU09OLnBhcnNlKGZldGNoKHR1cmwgKyBcXFwiP2FjPWZsaXR0ZXJcXFwiKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIHR5cGVjKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGtleSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwiZmxleF9idXR0b25cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKFxcXCJoaWtlcjovL2VtcHR5IyNcXFwiICsgdHVybCArIFxcXCI/YWM9bGlzdCZwYWdlPWZ5cGFnZSZjbGFzcz1cXFwiICsga2V5KS5ydWxlKCh0eXBlYykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZExpc3RlbmVyKFxcXCJvbkNsb3NlXFxcIiwgXFxcImNsZWFyVmFyKCdmaWx0ZXInKVxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzID0ge30sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5a2V5cyA9IFtdLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXIgPSB7fSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBcXFwiI0ZBNzI5OFxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggaW4gdHlwZWMpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVjW2luZGV4XS52YWx1ZXMubGVuZ3RoID09IDEpIGNvbnRpbnVlO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQga2V5ID0gdHlwZWNbaW5kZXhdLmZpZWxkLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyTmFtZSA9IFxcXCLlhajpg6hcXFwiICsgdHlwZWNbaW5kZXhdLm5hbWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5a2V5cy5wdXNoKGtleSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXNbXFxcImZcXFwiICsga2V5XSA9IFxcXCJcXFwiO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJbXFxcImZcXFwiICsga2V5XSA9IFtmaWx0ZXJOYW1lXS5jb25jYXQodHlwZWNbaW5kZXhdLnZhbHVlcyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2V0VmFyKFxcXCJmaWx0ZXJcXFwiLCBcXFwiXFxcIikpIHsgcHV0VmFyKFxcXCJmaWx0ZXJcXFwiLCBKU09OLnN0cmluZ2lmeShrZXlzKSkgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcImZpbHRlclxcXCIpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTVlfUEFHRSA9PSAxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gaW4gZmlsdGVyKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZmlsdGVyW2l0ZW1dLmxlbmd0aDsgaW5kZXgrKykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGVtcFtpdGVtXSA9PSBcXFwiXFxcIiA/IChpbmRleCA9PT0gMCA/IFxcXCLigJzigJzigJ3igJ1cXFwiICsgZmlsdGVyW2l0ZW1dWzBdLmJvbGQoKS5mb250Y29sb3IoY29sb3IpIDogZmlsdGVyW2l0ZW1dW2luZGV4XSkgOiAodGVtcFtpdGVtXSA9PSBmaWx0ZXJbaXRlbV1baW5kZXhdID8gXFxcIuKAnOKAnOKAneKAnVxcXCIgKyBmaWx0ZXJbaXRlbV1baW5kZXhdLmJvbGQoKS5mb250Y29sb3IoY29sb3IpIDogZmlsdGVyW2l0ZW1dW2luZGV4XSksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJCgpLmxhenlSdWxlKChkZXMsIG5hbWUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcImZpbHRlclxcXCIpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbbmFtZV0gPSBkZXMuaW5kZXhPZihcXFwi5YWo6YOoXFxcIikgIT0gLTEgPyBcXFwiXFxcIiA6IGRlcztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihcXFwiZmlsdGVyXFxcIiwgSlNPTi5zdHJpbmdpZnkodGVtcCkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBmaWx0ZXJbaXRlbV1baW5kZXhdLCBpdGVtKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHsgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCIgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gTVlfVVJMLnNwbGl0KFxcXCIjI1xcXCIpWzFdICsgXFxcIiZcXFwiICsgdHlrZXlzLm1hcChjdXIgPT4gY3VyICsgXFxcIj1mXFxcIiArIGN1cikuam9pbihcXFwiJlxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gaW4gdGVtcCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShpdGVtLCB0ZW1wW2l0ZW1dKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlc2NvZGUgPSBmZXRjaCh1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNjb2RlLmluZGV4T2YoJ+ajgOa1i+S4rScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2NvZGUgPSBmZXRjaCh1cmwgKyAnJmJ0d2FmJyArIHJlc2NvZGUubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcIi8pWzFdLCB7fSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBodG1sID0gSlNPTi5wYXJzZShyZXNjb2RlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dmxpc3RkYXRhJywge30pKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoaXRlbXMpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdHlwZWNba2V5XSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7IGxvZyhlLm1lc3NhZ2UpIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IGh0bWwgPSBKU09OLnBhcnNlKGZldGNoKHVybCkpO1xcbiAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvdHZsaXN0ZGF0YScsIHt9KSkucnVsZSk7XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICAgICAgICAgIHNldFJlc3VsdChpdGVtcyk7XFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBsZXQgcnVsZV90dmxpc3RkYXRhID0gJC50b1N0cmluZyhmdW5jdGlvbigpIHtcXG4gICAgICAgICAgICAgICAgbGV0IGxpc3QgPSBodG1sLmRhdGE7XFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IHsgdGl0bGUsIHBpYywgbmV4dGxpbmssIHN0YXRlIH0gPSBsaXN0W2ldO1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9IG5leHRsaW5rLnN0YXJ0c1dpdGgoJ2h0dHAnKSA/IG5leHRsaW5rIDogdHVybCArICc/YWM9ZGV0YWlsJmlkcz0nICsgbmV4dGxpbms7XFxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGljX3VybDogcGljICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogc3RhdGUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8zX21hcnF1ZWUnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJChcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcIiArIHVybCkucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dm1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coZS5tZXNzYWdlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChbXSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICBsZXQgcnVsZV90dm1vdmxpc3QgPSAkLnRvU3RyaW5nKGZ1bmN0aW9uKCkge1xcbiAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihcXFwib25DbG9zZVxcXCIsICQudG9TdHJpbmcoKHVybCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJWYXIoJ25vdycpO1xcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJWYXIodXJsKTtcXG4gICAgICAgICAgICAgICAgfSwgTVlfVVJMKSk7XFxuICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdLFxcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGdldFZhcihNWV9VUkwsIFxcXCJcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgIGRvbWluID0gTVlfVVJMLnNwbGl0KFxcXCIjI1xcXCIpWzFdLm1hdGNoKC8oW1xcXFxTXSo/OlxcXFwvXFxcXC9bXFxcXFNdKj8pXFxcXC8vKVsxXTtcXG4gICAgICAgICAgICAgICAgaWYgKGh0bWwgPT0gXFxcIlxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBmZXRjaChNWV9VUkwuc3BsaXQoXFxcIiMjXFxcIilbMV0pO1xcbiAgICAgICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1VSTCwgaHRtbCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoaHRtbCk7XFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogJzI1NSYmZmxvYXQnLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAnJyxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoWDVXZWJWaWV3KCcnKTtcXG4gICAgICAgICAgICAgICAgLy/nroDku4tcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WJp+aDheeugOS7izonLFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogaHRtbC5pbnRybyxcXG4gICAgICAgICAgICAgICAgICAgIHBpY191cmw6IGh0bWwuaW1nX3VybCxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSNub1JlY29yZEhpc3RvcnkjJykucnVsZSgoZGVzKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBkZXMsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbG9uZ190ZXh0J1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1dKTtcXG4gICAgICAgICAgICAgICAgICAgIH0sIGh0bWwuaW50cm8pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIC8v5pat5o+SXFxuICAgICAgICAgICAgICAgIGxldCBkbmVuID0gZ2V0TXlWYXIoXFxcImRuZW5cXFwiLCBcXFwiMFxcXCIpO1xcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5pat5o+SOicgKyAoZG5lbiA9PSAnMScgPyAn4oCc4oCc4pyF4oCd4oCdJyA6ICfinY4nKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnJykubGF6eVJ1bGUoKGRuZW4pID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG5lbiA9PSAnMScpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoXFxcImRuZW5cXFwiLCBcXFwiMFxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LnpoHnlKjmlq3mj5LosIPnlKghJztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwiZG5lblxcXCIsIFxcXCIxXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suW8gOWQr+aWreaPkuiwg+eUqCEnXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSwgZG5lbiksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMidcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfnur/ot6/phY3nva4nLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9wYWdlL1JvdXRlP3J1bGU9TXlGaWVsZOG0sOKBvyZ0eXBlPeiuvue9riNub1JlY29yZEhpc3RvcnkjXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgLy/nur/ot6/liJfooahcXG4gICAgICAgICAgICAgICAgbGV0IHRhYnMgPSBPYmplY3Qua2V5cyhodG1sLnZpZGVvbGlzdCk7XFxuICAgICAgICAgICAgICAgIGlmIChnZXRWYXIoXFxcIm5vd1xcXCIsIFxcXCJcXFwiKSA9PSBcXFwiXFxcIikgeyBwdXRWYXIoXFxcIm5vd1xcXCIsIHRhYnNbMF0pIH1cXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuKAnOKAnOKGk+KGkeKAneKAnVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2FwcG10dnNvcnQnLCBnZXRWYXIoJ2FwcG10dnNvcnQnLCcxJyk9PScxJz8nMCc6JzEnKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5YqfISdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSBpbiB0YWJzKSB7XFxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZ2V0VmFyKFxcXCJub3dcXFwiKSA9PSB0YWJzW2ldID8gXFxcIuKAnOKAnOKAneKAnVxcXCIgKyB0YWJzW2ldLmJvbGQoKS5mb250Y29sb3IoXFxcIiNGQTcyOThcXFwiKSA6IHRhYnNbaV0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0VmFyKCdub3cnLCdcXFwiICsgdGFic1tpXSArIFxcXCInKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5YqfISdcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgLy/op4bpopHliJfooahcXG4gICAgICAgICAgICAgICAgbGV0IHB0YWIgPSBnZXRWYXIoXFxcIm5vd1xcXCIpLFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwudmlkZW9saXN0W3B0YWJdO1xcbiAgICAgICAgICAgICAgICBpZiAoZ2V0VmFyKCdhcHBtdHZzb3J0JywgJzEnKSA9PSAnMCcpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QucmV2ZXJzZSgpO1xcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBzcmN1cmwgPSBsaXN0W2pdLnVybDtcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvMjkzangxLy50ZXN0KHNyY3VybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBzcmN1cmwgPSBzcmN1cmwucmVwbGFjZSgnMjkzangxJywgJ2p4Jyk7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC84ZDhxfGRpbGlrdHZ8aGFva2FuanUxfGN6dHZ8Zml0XFxcXDo4fHBwemh1Ly50ZXN0KGRvbWluKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyY3VybCA9IHNyY3VybCArICcmYXBwPTEwMDAwJmFjY291bnQ9MjcyNzc1MDI4JnBhc3N3b3JkPXFxMjcyNzc1MDI4JztcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IGxpc3Rbal0udGl0bGU7XFxuICAgICAgICAgICAgICAgICAgICAvL3RpdGxlID0gdGl0bGUubWF0Y2goLyjnrKx8XFxcXGR8LSkqKOmbhnzor5185pyfKS9nKSA/IHRpdGxlLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJykgOiB0aXRsZTtcXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfNFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCkubGF6eVJ1bGUoKHB0YWIsIHNyY3VybCwgZG9taW4pID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKFxcXCLnur/ot686XFxcIiArIHB0YWIgKyBcXFwiXFxcXG7ljp/pk77mjqU6XFxcIiArIHNyY3VybCk7XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9wZW51cmwocmVzdXJsKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdXJsLm1hdGNoKC95b3VrdXxtZ3R2fGl4aWd1YXxxcS5jb218cWl5aXxtaWd1fGJpbGliaWxpfHNvaHV8cHB0dnxsZXwxOTA1LmNvbS8pICYmIHJlc3VybC5zZWFyY2goL2h0bWx8YmlsaWJpbGkvKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBlbkRuID0gZ2V0TXlWYXIoXFxcImRuZW5cXFwiLCBcXFwiMFxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbkRuID09ICcxJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+iwg+eUqOaWreaPkuino+aekCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKFxcXCJsZXQgY29uZmlnID1cXFwiICsgZmV0Y2goXFxcImhpa2VyOi8vZmlsZXMvY2FjaGUvTXlQYXJzZVNldC5qc29uXFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGNvbmZpZy5jaikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXl0bVBhcnNlKHJlc3VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1cmxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHlvIDlp4tcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvXFxcXC5tM3U4fFxcXFwubXA0fG9ialxcXFwvdG9zLy50ZXN0KHNyY3VybCkgJiYgL2h0dHAvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAvXFxcXD0vLnRlc3Qoc3JjdXJsKSA/IHNyY3VybC5zcGxpdCgnPScpWzFdIDogc3JjdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3JjdXJsLmluZGV4T2YoXFxcIi9zaGFyZS9cXFwiKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5rID0gc3JjdXJsLnNwbGl0KFxcXCIvc2hhcmVcXFwiKVswXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjID0gZmV0Y2goc3JjdXJsLCB7fSkucmVwbGFjZShcXFwidmFyIHB1cmxcXFwiLCBcXFwidmFyIG1haW5cXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXkgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZjLmluZGV4T2YoXFxcIm1haW5cXFwiKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hdCA9IGZjLm1hdGNoKC92YXIgbWFpbi4qPzsvKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwobWF0KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXkgPSBtYWluLmluZGV4T2YoXFxcImh0dHBcXFwiKSAhPSAtMSA/IG1haW4gOiBsaW5rICsgbWFpbjtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYWluID0gZmMubWF0Y2goL3VybDouKj9bXFxcXCdcXFxcXFxcIl0oLio/KVtcXFxcJ1xcXFxcXFwiXS8pWzFdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheSA9IG1haW4uaW5kZXhPZihcXFwiaHR0cFxcXCIpICE9IC0xID8gbWFpbiA6IGxpbmsgKyBtYWluO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGxheTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAneDVXZWJWaWV3Oi8vJyArIHNyY3VybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ2FsaXp5Jykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gZmV0Y2goJ2h0dHBzOi8vZm91YmluLmNvbS9qaWV4aS5waHA/dXJsPScgKyBzcmN1cmwsIHt9KS5tYXRjaCgvXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcIiguKj8pXFxcXFxcXCIvKVsxXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoLzE5anhcXFxcLnZpcHxuZnlpbmdzaGkvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwucmVwbGFjZSgnaHR0cDovLycsICdodHRwczovLycpLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogTU9CSUxFX1VBXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEhlYWRlcnM6IHRydWVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSkuaGVhZGVycy5sb2NhdGlvblswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL3RpdGFuLm1ndHYvLnRlc3QocHVybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9vYmpcXFxcL3Rvcy8udGVzdChwdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybCArICcjaXNWaWRlbz10cnVlIyc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLS0tLeWIhuWJsue6vy0tLS0vL1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNjb2RlID0gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogTU9CSUxFX1VBXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFN0YXR1c0NvZGU6IHRydWVcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAyJyB8fCBzY29kZS5zdGF0dXNDb2RlID09ICczMDEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVybCA9IHNjb2RlLmhlYWRlcnMubG9jYXRpb25bMF0ucmVwbGFjZSgvXFxcXFxcXFwvZywgJycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IHNjb2RlLmJvZHk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcXFxcInVybFxcXFxcXFwiXFxcXDpcXFxcXFxcImh0dHAvLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVybCA9IGh0bWwubWF0Y2goL1xcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCIoLio/KVxcXFxcXFwiLylbMV0ucmVwbGFjZSgvXFxcXFxcXFwvZywgJycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5zdGFydHNXaXRoKCd7JykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVybCA9IHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2FjaGUoJ2h0dHBzOi8vY29kZS5hbGl5dW4uY29tL2x6azIzNTU5L1B1YmxpY1J1bGUvcmF3L21hc3Rlci94NXJ1bGUuanMnLCAyNCk7IC8vVE9ET1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geDVydWxlKHNyY3VybCwgc3JjdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC90aXRhbi5tZ3R2Ly50ZXN0KHB1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL29ialxcXFwvdG9zLy50ZXN0KHB1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzcmN1cmwuc3Vic3RyaW5nKDAsIDIpID09ICdcXFxcL1xcXFwvJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKCdodHRwczonICsgc3JjdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFw9aHR0cC8udGVzdChzcmN1cmwpICYmIC9cXFxcLmh0bWx8YmlsaWJpbGkvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHNyY3VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHnu5PmnZ9cXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBwdGFiLCBzcmN1cmwsIGRvbWluKVxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgc2V0UmVzdWx0KGl0ZW1zKTtcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICBwYWdlcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgbmFtZTogXFxcIlRW5YiX6KGoXFxcIixcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcInR2bGlzdGRhdGFcXFwiLFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX3R2bGlzdGRhdGFcXG4gICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgIG5hbWU6IFxcXCJUVumAiembhlxcXCIsXFxuICAgICAgICAgICAgICAgIHBhdGg6IFxcXCJ0dm1vdmxpc3RcXFwiLFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX3R2bW92bGlzdFxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBmaW5kX3J1bGUgPSBcXFwianM6XFxcIiArICQudG9TdHJpbmcoZnVuY3Rpb24oKSB7XFxuICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdLFxcbiAgICAgICAgICAgICAgICAgICAgdHVybCA9IE1ZX1VSTC5zcGxpdCgnJCQnKVsxXSxcXG4gICAgICAgICAgICAgICAgICAgIHVybCA9IHR1cmwgKyBNWV9VUkwuc3BsaXQoJyQkJylbMl07XFxuICAgICAgICAgICAgICAgIC8qaWYgKC9kaWppYXhpYS8udGVzdCh0dXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgdHVybCA9ICdodHRwOi8vd3d3LmRpamlheGlhLmNvbS9hcGkucGhwL2FwcC8nXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaWYgKC9mYW50dWFuLy50ZXN0KHR1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICB0dXJsID0gJ2h0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL2FwaS5waHAvYXBwLydcXG4gICAgICAgICAgICAgICAgfSovXFxuICAgICAgICAgICAgICAgIC8v6I635Y+W5YiG57G75YaF5a65XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgdHlwZWMgPSBbXTtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh0dXJsLnNlYXJjaCgvYXBpLnBocFxcXFwvYXBwLykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHlwY29kZSA9IHJlcXVlc3QodHVybCArIFxcXCJuYXY/dG9rZW49XFxcIiwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGNvZGUuaW5kZXhPZign5qOA5rWL5LitJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwY29kZSA9IGZldGNoKHR1cmwgKyBcXFwibmF2P3Rva2VuPVxcXCIgKyAnJmJ0d2FmJyArIHR5cGNvZGUubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcIi8pWzFdLCB7fSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVjID0gSlNPTi5wYXJzZSh0eXBjb2RlKS5saXN0O1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0dXJsLnNlYXJjaCgveGdhcHAucGhwXFxcXC92MS8pICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGNvZGUgPSByZXF1ZXN0KHR1cmwgKyBcXFwibmF2P3Rva2VuPVxcXCIsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBcXFwiRGFydC8yLjEzIChkYXJ0OmlvKVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBjb2RlLmluZGV4T2YoJ+ajgOa1i+S4rScpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGNvZGUgPSBmZXRjaCh0dXJsICsgXFxcIm5hdj90b2tlbj1cXFwiICsgJyZidHdhZicgKyB0eXBjb2RlLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXCIvKVsxXSwge30pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlYyA9IEpTT04ucGFyc2UodHlwY29kZSkuZGF0YTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGNvZGUgPSByZXF1ZXN0KHR1cmwgKyBcXFwiL3R5cGVzXFxcIiwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGNvZGUuaW5kZXhPZign5qOA5rWL5LitJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwY29kZSA9IGZldGNoKHR1cmwgKyBcXFwiL3R5cGVzXFxcIiArICc/YnR3YWYnICsgdHlwY29kZS5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFwiLylbMV0sIHt9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZWMgPSBKU09OLnBhcnNlKHR5cGNvZGUpLmRhdGEubGlzdDtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIC8v6I635Y+W5YiG57G75YiX6KGoXFxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGVjLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/liIbnsbvop4bpopHlnLDlnYBcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHl1cmwgPSBcXFwiXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZUFycmF5ID0gT2JqZWN0LmtleXModHlwZWNbaV0udHlwZV9leHRlbmQpLmZpbHRlcihjdXIgPT4gW1xcXCJjbGFzc1xcXCIsIFxcXCJhcmVhXFxcIiwgXFxcImxhbmdcXFwiLCBcXFwieWVhclxcXCJdLmluY2x1ZGVzKGN1cikpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlVXJsID0gdHlwZUFycmF5Lm1hcChjdXIgPT4gY3VyICsgXFxcIj1mXFxcIiArIGN1cikuam9pbihcXFwiJlxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0dXJsLmluZGV4T2YoJ2FwaS5waHAvYXBwLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gdHVybCArICd2aWRlbz90aWQ9JyArIHR5cGVjW2ldLnR5cGVfaWQgKyAnJnBhZ2U9ZnlwYWdlJnRva2VuPSYnICsgdHlwZVVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR1cmwuaW5kZXhPZigneGdhcHAucGhwL3YxLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gdHVybCArICd2aWRlbz90aWQ9JyArIHR5cGVjW2ldLnR5cGVfaWQgKyAnJnBhZ2U9ZnlwYWdlJicgKyB0eXBlVXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QodHVybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gdHVybCArICcvbGlzdD90eXBlPScgKyB0eXBlY1tpXS50eXBlX2lkICsgJyZwYWdlPWZ5cGFnZSZieT1mYnkmbGltaXQ9OSYnICsgdHlwZVVybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gdHVybCArICc/dHlwZT0nICsgdHlwZWNbaV0udHlwZV9pZCArICcmcGFnZT1meXBhZ2UmYnk9ZmJ5JmxpbWl0PTkmJyArIHR5cGVVcmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/mnoTlu7rliqjmgIHliIbnsbtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHR5cGVjW2ldLnR5cGVfbmFtZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKFxcXCJoaWtlcjovL2VtcHR5IyNcXFwiICsgdHl1cmwpLnJ1bGUoKHR1cmwsIHR5cGVfZXh0ZW5kKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihcXFwib25DbG9zZVxcXCIsIFxcXCJjbGVhclZhcignZmlsdGVyJylcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1ZX1BBR0UgPT0gMSkgeyAvL+WKqOaAgeWIhuexu1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBrZXlzID0ge30sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IHt9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJOYW1lcyA9IHsgY2xhc3M6IFxcXCLnsbvlnotcXFwiLCBhcmVhOiBcXFwi5Zyw5Yy6XFxcIiwgbGFuZzogXFxcIuivreiogFxcXCIsIHllYXI6IFxcXCLlubTku71cXFwiLCBzdGFyOiBcXFwi5piO5pifXFxcIiwgZGlyZWN0b3I6IFxcXCLlr7zmvJRcXFwiLCBzdGF0ZTogXFxcIueKtuaAgVxcXCIsIHZlcnNpb246IFxcXCLniYjmnKxcXFwiIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGaWx0ZXIgPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmY2xhc3M6IFtcXFwi5YWo6YOo57G75Z6LXFxcIiwgXFxcIuWWnOWJp1xcXCIsIFxcXCLniLHmg4VcXFwiLCBcXFwi5oGQ5oCWXFxcIiwgXFxcIuWKqOS9nFxcXCIsIFxcXCLnp5HlubtcXFwiLCBcXFwi5Ymn5oOFXFxcIiwgXFxcIuaImOS6iVxcXCIsIFxcXCLorabljKpcXFwiLCBcXFwi54qv572qXFxcIiwgXFxcIuWKqOeUu1xcXCIsIFxcXCLlpYflubtcXFwiLCBcXFwi5q2m5L6gXFxcIiwgXFxcIuWGkumZqVxcXCIsIFxcXCLmnqrmiJhcXFwiLCBcXFwi5oKs55aRXFxcIiwgXFxcIuaDiuaCmlxcXCIsIFxcXCLnu4/lhbhcXFwiLCBcXFwi6Z2S5pilXFxcIiwgXFxcIuaWh+iJulxcXCIsIFxcXCLlvq7nlLXlvbFcXFwiLCBcXFwi5Y+k6KOFXFxcIiwgXFxcIuWOhuWPslxcXCIsIFxcXCLov5DliqhcXFwiLCBcXFwi5Yac5p2RXFxcIiwgXFxcIuWEv+erpVxcXCIsIFxcXCLnvZHnu5znlLXlvbFcXFwiXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcmVhOiBbXFxcIuWFqOmDqOWcsOWMulxcXCIsIFxcXCLlhoXlnLBcXFwiLCBcXFwi6aaZ5rivXFxcIiwgXFxcIuWPsOa5vlxcXCIsIFxcXCLnvo7lm71cXFwiLCBcXFwi6Iux5Zu9XFxcIiwgXFxcIuazleWbvVxcXCIsIFxcXCLml6XmnKxcXFwiLCBcXFwi6Z+p5Zu9XFxcIiwgXFxcIuW+t+WbvVxcXCIsIFxcXCLms7Dlm71cXFwiLCBcXFwi5Y2w5bqmXFxcIiwgXFxcIuilv+ePreeJmVxcXCIsIFxcXCLliqDmi7/lpKdcXFwiLCBcXFwi5YW25LuWXFxcIl0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeWVhcjogW1xcXCLlhajpg6jlubTku71cXFwiLCBcXFwiMjAyMlxcXCIsIFxcXCIyMDIxXFxcIiwgXFxcIjIwMjBcXFwiLCBcXFwiMjAxOVxcXCIsIFxcXCIyMDE4XFxcIiwgXFxcIjIwMTdcXFwiLCBcXFwiMjAxNlxcXCIsIFxcXCIyMDE1XFxcIiwgXFxcIjIwMTRcXFwiLCBcXFwiMjAxM1xcXCIsIFxcXCIyMDEyXFxcIiwgXFxcIjIwMTFcXFwiLCBcXFwiMjAxMFxcXCIsIFxcXCIyMDA5XFxcIiwgXFxcIjIwMDhcXFwiLCBcXFwiMjAwN1xcXCIsIFxcXCIyMDA2XFxcIiwgXFxcIjIwMDVcXFwiLCBcXFwiMjAwNFxcXCIsIFxcXCIyMDAzXFxcIiwgXFxcIjIwMDJcXFwiLCBcXFwiMjAwMVxcXCIsIFxcXCIyMDAwXFxcIl0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFuZzogW1xcXCLlhajpg6jor63oqIBcXFwiLCBcXFwi5Zu96K+tXFxcIiwgXFxcIuiLseivrVxcXCIsIFxcXCLnsqTor61cXFwiLCBcXFwi6Ze95Y2X6K+tXFxcIiwgXFxcIumfqeivrVxcXCIsIFxcXCLml6Xor61cXFwiLCBcXFwi5rOV6K+tXFxcIiwgXFxcIuW+t+ivrVxcXCIsIFxcXCLlhbbku5ZcXFwiXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiB0eXBlX2V4dGVuZCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVtcXFwiY2xhc3NcXFwiLCBcXFwiYXJlYVxcXCIsIFxcXCJsYW5nXFxcIiwgXFxcInllYXJcXFwiXS5pbmNsdWRlcyhrZXkpKSBjb250aW51ZTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5c1tcXFwiZlxcXCIgKyBrZXldID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXNbXFxcImZieVxcXCJdID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJOYW1lID0gXFxcIuWFqOmDqFxcXCIgKyBmaWx0ZXJOYW1lc1trZXldO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJbXFxcImZcXFwiICsga2V5XSA9IFtmaWx0ZXJOYW1lXS5jb25jYXQodHlwZV9leHRlbmRba2V5XS5zcGxpdChcXFwiLFxcXCIpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcltcXFwiZlxcXCIgKyBrZXldLmxlbmd0aCA9PSAyKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJbXFxcImZcXFwiICsga2V5XSA9IGRlZmF1bHRGaWx0ZXJbXFxcImZcXFwiICsga2V5XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2V0VmFyKFxcXCJmaWx0ZXJcXFwiLCBcXFwiXFxcIikpIHsgcHV0VmFyKFxcXCJmaWx0ZXJcXFwiLCBKU09OLnN0cmluZ2lmeShrZXlzKSkgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcImZpbHRlclxcXCIpKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBcXFwiI0ZBNzI5OFxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBpbiBmaWx0ZXIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZpbHRlcltpdGVtXS5sZW5ndGg7IGluZGV4KyspIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0ZW1wW2l0ZW1dID09IFxcXCJcXFwiID8gKGluZGV4ID09PSAwID8gXFxcIuKAnOKAnOKAneKAnVxcXCIgKyBmaWx0ZXJbaXRlbV1bMF0uYm9sZCgpLmZvbnRjb2xvcihjb2xvcikgOiBmaWx0ZXJbaXRlbV1baW5kZXhdKSA6ICh0ZW1wW2l0ZW1dID09IGZpbHRlcltpdGVtXVtpbmRleF0gPyBcXFwi4oCc4oCc4oCd4oCdXFxcIiArIGZpbHRlcltpdGVtXVtpbmRleF0uYm9sZCgpLmZvbnRjb2xvcihjb2xvcikgOiBmaWx0ZXJbaXRlbV1baW5kZXhdKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJCgpLmxhenlSdWxlKChkZXMsIG5hbWUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFwiZmlsdGVyXFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW25hbWVdID0gZGVzLmluZGV4T2YoXFxcIuWFqOmDqFxcXCIpICE9IC0xID8gXFxcIlxcXCIgOiBkZXM7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihcXFwiZmlsdGVyXFxcIiwgSlNPTi5zdHJpbmdpZnkodGVtcCkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBmaWx0ZXJbaXRlbV1baW5kZXhdLCBpdGVtKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHsgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCIgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJ5ID0geyDpu5jorqTpobrluo86IFxcXCJcXFwiLCDmnIDmlrA6IFxcXCJ0aW1lXFxcIiwg5pyA54OtOiBcXFwiaGl0c1xcXCIsIOivhOWIhjogXFxcInNjb3JlXFxcIiB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0dXJsLmluZGV4T2YoJ2FwaS5waHAvYXBwLycpID09IC0xICYmIHR1cmwuaW5kZXhPZigneGdhcHAucGhwL3YxLycpID09IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gaW4gYnkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0ZW1wW1xcXCJmYnlcXFwiXSA9PSBieVtpdGVtXSA/IFxcXCLigJzigJzigJ3igJ1cXFwiICsgaXRlbS5ib2xkKCkuZm9udGNvbG9yKGNvbG9yKSA6IGl0ZW0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoKS5sYXp5UnVsZSgoZGVzKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcImZpbHRlclxcXCIpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFtcXFwiZmJ5XFxcIl0gPSBkZXM7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihcXFwiZmlsdGVyXFxcIiwgSlNPTi5zdHJpbmdpZnkodGVtcCkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBieVtpdGVtXSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcImZpbHRlclxcXCIpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSBNWV9VUkwuc3BsaXQoXFxcIiMjXFxcIilbMV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIGluIHRlbXApIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShpdGVtLCB0ZW1wW2l0ZW1dKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNjb2RlID0gZmV0Y2godXJsLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc2NvZGUuaW5kZXhPZign5qOA5rWL5LitJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNjb2RlID0gZmV0Y2godXJsICsgJyZidHdhZicgKyByZXNjb2RlLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXCIvKVsxXSwge30pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGh0bWwgPSBKU09OLnBhcnNlKHJlc2NvZGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbGlzdGRhdGEnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGl0ZW1zKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdHVybCwgdHlwZWNbaV0udHlwZV9leHRlbmQpLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICAgICAgICAgIC8v6I635Y+W5o6o6I2Q6KeG6aKR5YiX6KGoXFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IHJlcXVlc3QodXJsLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGh0bWwuaW5kZXhPZign5qOA5rWL5LitJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sID0gZmV0Y2godXJsICsgJyZidHdhZicgKyBodG1sLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXCIvKVsxXSwge30pO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoaHRtbCk7XFxuICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBpbmRleGRhdGEnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxcbiAgICAgICAgICAgICAgICBzZXRSZXN1bHQoaXRlbXMpO1xcbiAgICAgICAgICAgIH0pXFxuXFxuICAgICAgICAgICAgbGV0IHJ1bGVfYXBwbGlzdGRhdGEgPSAkLnRvU3RyaW5nKGZ1bmN0aW9uKCkge1xcbiAgICAgICAgICAgICAgICBsZXQgbGlzdCA9IFtdO1xcbiAgICAgICAgICAgICAgICBpZiAoaHRtbC5saXN0KSB7XFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5saXN0O1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwuZGF0YS5saXN0O1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwuZGF0YTtcXG4gICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCB7IHZvZF9uYW1lLCB2b2RfcGljLCB2b2RfaWQsIHZvZF9yZW1hcmtzIH0gPSBsaXN0W2ldO1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxpbmsgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChodG1sLmxpc3QpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gdHVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHZvZF9pZCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSB0dXJsICsgJy9kZXRhaWw/dm9kX2lkPScgKyB2b2RfaWQgKyAnJnJlbF9saW1pdD0xMDtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjEzIChkYXJ0OmlvKX0nO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gdHVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHZvZF9pZCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxuICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdCh0dXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSB0dXJsICsgJy9kZXRhaWxJRD92b2RfaWQ9JyArIHZvZF9pZCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAvKmVsc2UgaWYgKC9mYW50dWFuLy50ZXN0KHR1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9ICdodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIHZvZF9pZCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9kaWppYXhpYS8udGVzdCh0dXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSAnaHR0cDovL3d3dy5kaWppYXhpYS5jb20vYXBpLnBocC9hcHAvdmlkZW9fZGV0YWlsP2lkPScgKyB2b2RfaWQ7XFxuICAgICAgICAgICAgICAgICAgICB9Ki9cXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB2b2RfbmFtZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiB2b2RfcGljICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogdm9kX3JlbWFya3MsXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8zX21hcnF1ZWUnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJChcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcIiArIGxpbmspLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcsIHt9KSkucnVsZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KFtdKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgbGV0IHJ1bGVfYXBwaW5kZXhkYXRhID0gJC50b1N0cmluZyhmdW5jdGlvbigpIHtcXG4gICAgICAgICAgICAgICAgbGV0IGxpc3QgPSBbXTtcXG4gICAgICAgICAgICAgICAgaWYgKGh0bWwubGlzdCkge1xcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwubGlzdDtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLmRhdGEgJiYgaHRtbC5kYXRhLmxpc3QpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLmRhdGEubGlzdDtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLmRhdGE7XFxuICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgbGlzdHMgPSBbXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSA9IFxcXCJcXFwiO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxpc3RbaV0udm9kX2xpc3QpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0cyA9IGxpc3RbaV0udm9kX2xpc3Q7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgPSBsaXN0W2ldLnZvZF90eXBlX25hbWU7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RzID0gbGlzdFtpXS52bGlzdDtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSA9IGxpc3RbaV0udHlwZV9uYW1lXFxuICAgICAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdHlwZW5hbWUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbGlzdHMubGVuZ3RoOyBqKyspIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeyB2b2RfbmFtZSwgdm9kX3BpYywgdm9kX2lkLCB2b2RfcmVtYXJrcyB9ID0gbGlzdHNbal07XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxpbmsgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbC5saXN0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSB0dXJsICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgdm9kX2lkICsgJyZ0b2tlbj07Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xMyAoZGFydDppbyl9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gdHVybCArICcvZGV0YWlsP3ZvZF9pZD0nICsgdm9kX2lkICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xMyAoZGFydDppbyl9JztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gdHVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHZvZF9pZCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2lvcGVueXVuLy50ZXN0KHR1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSB0dXJsICsgJy9kZXRhaWxJRD92b2RfaWQ9JyArIHZvZF9pZCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qZWxzZSBpZiAoL2ZhbnR1YW4vLnRlc3QodHVybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9ICdodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIHZvZF9pZCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvZGlqaWF4aWEvLnRlc3QodHVybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9ICdodHRwOi8vd3d3LmRpamlheGlhLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIHZvZF9pZDtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9Ki9cXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHZvZF9uYW1lLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiB2b2RfcGljICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6IHZvZF9yZW1hcmtzLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJChcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcIiArIGxpbmspLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBtb3ZsaXN0Jywge30pKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coZS5tZXNzYWdlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoW10pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBsZXQgcnVsZV9hcHBtb3ZsaXN0ID0gJC50b1N0cmluZyhmdW5jdGlvbigpIHtcXG4gICAgICAgICAgICAgICAgYWRkTGlzdGVuZXIoXFxcIm9uQ2xvc2VcXFwiLCAkLnRvU3RyaW5nKCh1cmwpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVmFyKCdhcHBub3cnKTtcXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVmFyKHVybCk7XFxuICAgICAgICAgICAgICAgIH0sIE1ZX1VSTCkpO1xcbiAgICAgICAgICAgICAgICBsZXQgaXRlbXMgPSBbXSxcXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBnZXRWYXIoTVlfVVJMLCBcXFwiXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICBkb21pbiA9IE1ZX1VSTC5zcGxpdChcXFwiIyNcXFwiKVsxXS5tYXRjaCgvKFtcXFxcU10qPzpcXFxcL1xcXFwvW1xcXFxTXSo/KVxcXFwvLylbMV07XFxuICAgICAgICAgICAgICAgIGlmIChodG1sID09IFxcXCJcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICBodG1sID0gZmV0Y2goTVlfVVJMLnNwbGl0KFxcXCIjI1xcXCIpWzFdLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1VSTCwgaHRtbCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoaHRtbCk7XFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogJzI1NSYmZmxvYXQnLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAnJyxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICByZWZyZXNoWDVXZWJWaWV3KCcnKTtcXG4gICAgICAgICAgICAgICAgLy/nroDku4tcXG4gICAgICAgICAgICAgICAgbGV0IHRodW1iID0gaHRtbC5kYXRhLnZvZF9pbmZvID8gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF9waWMgOiBodG1sLmRhdGEudm9kX3BpYyxcXG4gICAgICAgICAgICAgICAgICAgIGRlcyA9IGh0bWwuZGF0YS52b2RfaW5mbyA/IGh0bWwuZGF0YS52b2RfaW5mby52b2RfY29udGVudCA6IGh0bWwuZGF0YS52b2RfY29udGVudDtcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WJp+aDheeugOS7izonLFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZGVzLFxcbiAgICAgICAgICAgICAgICAgICAgcGljX3VybDogdGh1bWIsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IycpLnJ1bGUoKGRlcykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZGVzLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XSk7XFxuICAgICAgICAgICAgICAgICAgICB9LCBkZXMpLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIC8v5pat5o+SXFxuICAgICAgICAgICAgICAgIGxldCBkbmVuID0gZ2V0TXlWYXIoXFxcImRuZW5cXFwiLCBcXFwiMFxcXCIpO1xcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5pat5o+SOicgKyAoZG5lbiA9PSAnMScgPyAn4oCc4oCc4pyF4oCd4oCdJyA6ICfinY4nKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnJykubGF6eVJ1bGUoKGRuZW4pID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG5lbiA9PSAnMScpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoXFxcImRuZW5cXFwiLCBcXFwiMFxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LnpoHnlKjmlq3mj5LosIPnlKghJztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwiZG5lblxcXCIsIFxcXCIxXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suW8gOWQr+aWreaPkuiwg+eUqCEnXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSwgZG5lbiksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMidcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfnur/ot6/phY3nva4nLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9wYWdlL1JvdXRlP3J1bGU9TXlGaWVsZOG0sOKBvyZ0eXBlPeiuvue9riNub1JlY29yZEhpc3RvcnkjXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuKAnOKAnOKGk+KGkeKAneKAnVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2FwcG1hcHBzb3J0JywgZ2V0VmFyKCdhcHBtYXBwc29ydCcsJzEnKT09JzEnPycwJzonMScpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip8hJ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAvL+e6v+i3r+WIl+ihqFxcbiAgICAgICAgICAgICAgICBsZXQgY29udHMgPSBbXSxcXG4gICAgICAgICAgICAgICAgICAgIHRhYnMgPSBbXTtcXG4gICAgICAgICAgICAgICAgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYnMgPSBodG1sLmRhdGEudm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJyk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF9pbmZvICYmIGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfaW5mby52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYnMgPSBodG1sLmRhdGEudm9kX2luZm8udm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJyk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV9saXN0O1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYnMgPSBodG1sLmRhdGEudm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJyk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgbGV0IGxpc3QgPSBbXSxcXG4gICAgICAgICAgICAgICAgICAgIHB0YWIgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgaWYgKGdldFZhcihcXFwiYXBwbm93XFxcIiwgXFxcIlxcXCIpID09IFxcXCJcXFwiKSB7IHB1dFZhcihcXFwiYXBwbm93XFxcIiwgXFxcIjBcXFwiKSB9XFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29udHMubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChodG1sLmRhdGEudm9kX3VybF93aXRoX3BsYXllcikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwdGFiID0gY29udHNbaV0uY29kZSA/IGNvbnRzW2ldLmNvZGUgOiB0YWJzW2ldO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBzcHRhYiA9IGNvbnRzW2ldLmNvZGUgPyBjb250c1tpXS5jb2RlIDogdGFic1tpXTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc3B0YWIgPSBjb250c1tpXS5mcm9tID8gY29udHNbaV0uZnJvbSA6IHRhYnNbaV07XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZ2V0VmFyKFxcXCJhcHBub3dcXFwiKSA9PSBpID8gXFxcIuKAnOKAnOKAneKAnVxcXCIgKyBzcHRhYi5ib2xkKCkuZm9udGNvbG9yKFxcXCIjRkE3Mjk4XFxcIikgOiBzcHRhYixcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2FwcG5vdycsJ1xcXCIgKyBpICsgXFxcIicpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip8hJ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgIGlmIChnZXRWYXIoXFxcImFwcG5vd1xcXCIpID09IGkpIHsgcHRhYiA9IHNwdGFiIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAvL+inhumikeWIl+ihqFxcbiAgICAgICAgICAgICAgICBsZXQgaSA9IGdldFZhcihcXFwiYXBwbm93XFxcIik7XFxuICAgICAgICAgICAgICAgIGlmIChjb250c1tpXS51cmxzKSB7XFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gY29udHNbaV0udXJscztcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb250c1tpXS51cmwpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBjb250c1tpXS51cmwuc3BsaXQoXFxcIiNcXFwiKTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBjb250c1tpXS5zcGxpdChcXFwiI1xcXCIpO1xcbiAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICBpZiAoZ2V0VmFyKCdhcHBtYXBwc29ydCcsICcxJykgPT0gJzAnKSB7XFxuICAgICAgICAgICAgICAgICAgICBsaXN0LnJldmVyc2UoKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCB2bGluayA9IFxcXCJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gXFxcIlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgamllayA9IFxcXCJcXFwiO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRzW2ldLnVybHMpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2bGluayA9IGxpc3Rbal0udXJsLnJlcGxhY2UoLyM0NTYjL2csICdodHRwJykucmVwbGFjZSgvIzEyMyMvZywgJy4nKS5yZXBsYWNlKC8jNzg5Iy9nLCAnOicpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gbGlzdFtqXS5uYW1lO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2bGluayA9IGxpc3Rbal0uc3BsaXQoXFxcIiRcXFwiKVsxXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IGxpc3Rbal0uc3BsaXQoXFxcIiRcXFwiKVswXTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIC8vdGl0bGUgPSB0aXRsZS5tYXRjaCgvKOesrHxcXFxcZHwtKSoo6ZuGfOivnXzmnJ8pL2cpID8gdGl0bGUucmVwbGFjZSgv56ysfOmbhnzor5185pyfL2csICcnKSA6IHRpdGxlO1xcbiAgICAgICAgICAgICAgICAgICAgLy/op6PmnpDmjqXlj6NcXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSBjb250c1tpXS5wYXJzZV9hcGk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgamllayA9IGNvbnRzW2ldLnBhcnNlX2FwaTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29udHNbaV0ucGxheWVyX2luZm8ucGFyc2UyICYmIChjb250c1tpXS5wbGF5ZXJfaW5mby5wYXJzZTIpLmluZGV4T2YoXFxcIj1cXFwiKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamllayA9IChjb250c1tpXS5wbGF5ZXJfaW5mby5wYXJzZTIpLm1hdGNoKC8uKj91cmw9fC4qP3Y9fC4qP3ZpZD0vKVswXS5yZXBsYWNlKFxcXCIuLlxcXCIsIFxcXCIuXFxcIikucmVwbGFjZSgnanNvbmJzJywgJycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRzW2ldLnBsYXllcl9pbmZvLnBhcnNlICYmIChjb250c1tpXS5wbGF5ZXJfaW5mby5wYXJzZSkuaW5kZXhPZihcXFwiPVxcXCIpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaWVrID0gKGNvbnRzW2ldLnBsYXllcl9pbmZvLnBhcnNlKS5tYXRjaCgvLio/dXJsPXwuKj92PXwuKj92aWQ9LylbMF0ucmVwbGFjZShcXFwiLi5cXFwiLCBcXFwiLlxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgamllayA9IFxcXCJcXFwiO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cXG4gICAgICAgICAgICAgICAgICAgIGlmIChqaWVrICE9ICcnICYmIGppZWsgIT0gbnVsbCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqaWVrLnN1YnN0cmluZygwLCA0KSA9PSAnaHR0cCcpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgamllayA9IGppZWs7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChqaWVrLnN1YnN0cmluZygwLCAyKSA9PSAnXFxcXC9cXFxcLycpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgamllayA9ICdodHRwczonICsgamllaztcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAvL+WvueWkseaViOaOpeWPo+i/m+ihjOabv+aNolxcbiAgICAgICAgICAgICAgICAgICAgLyppZiAoL2Nva2Vtdi8udGVzdChkb21pbikgJiYgL2Nva2VxaWV8eGlufDkwbW0vLnRlc3QocHRhYikpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBqaWVrID0gJ2h0dHBzOi8vcGxheWVyLjkwbW0ubWUvcGxheS5waHA/dXJsPSc7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9qc29uXFxcXC5tM3U4XFxcXC50di8udGVzdChqaWVrKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSAnaHR0cHM6Ly9qeC5tM3U4LnR2L2ppZXhpLz91cmw9JztcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL2NqdDUyMS8udGVzdChkb21pbikpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBqaWVrID0gY29udHNbaV0ucGxheWVyX2luZm8ucGFyc2U7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGppZWsuaW5kZXhPZignanBnLmhvdS5sdS9qbS96YS9pbmRleC5waHAnKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSAnaHR0cDovL3ZpcC5tZW5neC52aXAvaG9tZS9hcGk/dHlwZT15cyZ1aWQ9MzI0OTY5NiZrZXk9YWVmcXJ0dXd4eUVGSEtOT1FZJnVybD0nO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwdGFiID09ICdyZW5yZW5taScgJiYgamllay5zZWFyY2goL2poZHl3LykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBqaWVrID0gJ2h0dHA6Ly93d3cuMTA4MGthbi5jYy9qaWV4aS9ycm1pLnBocD91cmw9JztcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnZnFmaWxtJyAmJiBqaWVrLnNlYXJjaCgvamhkeXcvKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSAnaHR0cDovL3d3dy4xMDgwa2FuLmNjL2ppZXhpL2ZxLnBocD91cmw9JztcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAncnJzcCcgJiYgamllay5zZWFyY2goL2poZHl3LykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBqaWVrID0gJ2h0dHA6Ly93d3cuMTA4MGthbi5jYy9qaWV4aS9yci5waHA/dXJsPSc7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9qaHl1blxcXFwucGhwLy50ZXN0KGppZWspKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgamllayA9IGppZWsucmVwbGFjZSgnaHR0cDovL3N2aXAuamh5dW4uanguY246MTIzNC9qaHl1bi5waHA/dXJsPScsICdodHRwczovL2FwaS5qaGR5dy52aXAvP3VybD0nKTtcXG4gICAgICAgICAgICAgICAgICAgIH07Ki9cXG4gICAgICAgICAgICAgICAgICAgIC8v5omT5Y2w5o6l5Y+jXFxuICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChqID09ICcwJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ1xcXFxu57q/6LevOicgKyBwdGFiICsgJ1xcXFxu6Kej5p6Q5o6l5Y+jOicgKyBqaWVrKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxcbiAgICAgICAgICAgICAgICAgICAgLy/lo7DmmI7pk77mjqVcXG4gICAgICAgICAgICAgICAgICAgIGxldCBsaW5rID0gamllayArIHZsaW5rO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcLm0zdTh8XFxcXC5tcDR8b2JqXFxcXC90b3MvLnRlc3QodmxpbmspICYmIC9odHRwLy50ZXN0KHZsaW5rKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSB2bGluaztcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3NpZ249Ly50ZXN0KHZsaW5rKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSB2bGluaztcXG4gICAgICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcInRleHRfNFxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcnKS5sYXp5UnVsZSgocHRhYiwgc3JjdXJsLCBkb21pbikgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcIuWOn+mTvuaOpTpcXFwiICsgc3JjdXJsKTtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gb3BlbnVybChyZXN1cmwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1cmwubWF0Y2goL3lvdWt1fG1ndHZ8aXhpZ3VhfHFxLmNvbXxxaXlpfG1pZ3V8YmlsaWJpbGl8c29odXxwcHR2fGxlfDE5MDUuY29tLykgJiYgcmVzdXJsLnNlYXJjaCgvaHRtbHxiaWxpYmlsaS8pICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVuRG4gPSBnZXRNeVZhcihcXFwiZG5lblxcXCIsIFxcXCIwXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuRG4gPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn6LCD55So5pat5o+S6Kej5p6QJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoXFxcImxldCBjb25maWcgPVxcXCIgKyBmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9jYWNoZS9NeVBhcnNlU2V0Lmpzb25cXFwiKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoZmV0Y2goY29uZmlnLmNqKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBheXRtUGFyc2UocmVzdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5Yqo5oCB6Kej5p6Q5Luj56CB5byA5aeLXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+WkhOeQhuaMh+WumuinhumikeS4jue6v+i3r1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcLm0zdTh8XFxcXC5tcDR8b2JqXFxcXC90b3N8bmV0ZWFzZVxcXFwuY29tLy50ZXN0KHNyY3VybCkgJiYgL2h0dHAvLnRlc3Qoc3JjdXJsKSAmJiAhL1xcXFwuaHRtbC8udGVzdChzcmN1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC93a2ZpbGUvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3JjdXJsICsgJzt7UmVmZXJlckBodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9kdW9kdW96eS8udGVzdChwdGFiKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQganNvbiA9IGZldGNoKCdodHRwczovL3BsYXllci5kdW9kdW96eS5jb20vZGRwbGF5L2FwaS5waHA/dXJsPScgKyBzcmN1cmwsIHt9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoanNvbikudXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3NpZ249Ly50ZXN0KHNyY3VybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNyY3VybCArIFxcXCIjaXNWaWRlbz10cnVlI1xcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC9cXFxcPS8udGVzdChzcmN1cmwpID8gc3JjdXJsLnNwbGl0KCc9JylbMV0gOiBzcmN1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3JjdXJsLmluZGV4T2YoXFxcIi9zaGFyZS9cXFwiKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5rID0gc3JjdXJsLnNwbGl0KFxcXCIvc2hhcmVcXFwiKVswXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjID0gZmV0Y2goc3JjdXJsLCB7fSkucmVwbGFjZShcXFwidmFyIHB1cmxcXFwiLCBcXFwidmFyIG1haW5cXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXkgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZjLmluZGV4T2YoXFxcIm1haW5cXFwiKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1hdCA9IGZjLm1hdGNoKC92YXIgbWFpbi4qPzsvKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwobWF0KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXkgPSAobWFpbi5pbmRleE9mKFxcXCJodHRwXFxcIikgIT0gLTEgPyBtYWluIDogbGluayArIG1haW4pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1haW4gPSBmYy5tYXRjaCgvdXJsOi4qP1tcXFxcJ1xcXFxcXFwiXSguKj8pW1xcXFwnXFxcXFxcXCJdLylbMV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5ID0gKG1haW4uaW5kZXhPZihcXFwiaHR0cFxcXCIpICE9IC0xID8gbWFpbiA6IGxpbmsgKyBtYWluKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcGxheTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAneDVXZWJWaWV3Oi8vJyArIHNyY3VybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ2FsaXp5Jykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gZmV0Y2goJ2h0dHBzOi8vZm91YmluLmNvbS9qaWV4aS5waHA/dXJsPScgKyBzcmN1cmwuc3BsaXQoJ3VybD0nKVsxXSwge30pLm1hdGNoKC9cXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiKC4qPylcXFxcXFxcIi8pWzFdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvOTgzdmlwLy50ZXN0KHNyY3VybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwsIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUFcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoSGVhZGVyczogdHJ1ZVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKS5oZWFkZXJzLmxvY2F0aW9uWzBdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgveFxcXFwtblxcXFwuY2N8bmhkejY2Ni8udGVzdChzcmN1cmwpICYmIC9cXFxcLmh0bWx8YmlsaWJpbGkvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+WkhOeQhuaMh+WumuinhumikeWSjOe6v+i3r+e7k+adn1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8tLS0t5YiG5Ymy57q/LS0tLS8vXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2NvZGUgPSBKU09OLnBhcnNlKGZldGNoKHNyY3VybCwge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBcXFwiRGFydC8yLjEzIChkYXJ0OmlvKVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBmYWxzZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoU3RhdHVzQ29kZTogdHJ1ZVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb2RlLnN0YXR1c0NvZGUgPT0gJzMwMicgfHwgc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAxJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5omT5byA6Kej5p6Q5pyJMzAy6YeN5a6a5ZCR55qE6ZO+5o6lXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHJlZHVybCA9IHNjb2RlLmhlYWRlcnMubG9jYXRpb25bMF0ucmVwbGFjZSgvXFxcXFxcXFwvZywgJycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvXFxcXD1odHRwLy50ZXN0KHJlZHVybCkgJiYgL2h0bWx8YmlsaWJpbGkvLnRlc3QocmVkdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShmZXRjaChyZWR1cmwsIHt9KSkudXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFw9aHR0cC8udGVzdChyZWR1cmwpICYmIC9cXFxcLm0zdTh8XFxcXC5tcDR8XFxcXC5mbHYvLnRlc3QocmVkdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVkdXJsLnN1YnN0cmluZyhyZWR1cmwuaW5kZXhPZignPWh0dHAnKSArIDEpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZWR1cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IHNjb2RlLmJvZHk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC80MDQgTm90IEZvdW5kfOWkh+ahiOWQjuWPr+e7p+e7reiuv+mXri8udGVzdChodG1sKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFw8Ym9keS8udGVzdChodG1sKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+WwneivlemdnkpTT07mjqXlj6PnvZHpobXop6PmnpAnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZUNhY2hlKCdodHRwczovL2NvZGUuYWxpeXVuLmNvbS9semsyMzU1OS9QdWJsaWNSdWxlL3Jhdy9tYXN0ZXIveDVydWxlLmpzJywgMjQpOyAvL1RPRE9cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHg1cnVsZShzcmN1cmwsIHNyY3VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9qc29u6Kej5p6Q55qE5Y+W6ZO+5o6lXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gaHRtbC5tYXRjaCgvW1xcXFwnXFxcXFxcXCJddXJsW1xcXFwnXFxcXFxcXCJdOi4qP1tcXFxcJ1xcXFxcXFwiXSguKj8pW1xcXFwnXFxcXFxcXCJdLylbMV0ucmVwbGFjZSgvXFxcXFxcXFwvZywgJycpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2h0dHAvLnRlc3QocHVybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwdGFiID09ICdiaWxpYmlsaScpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybCArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tLyYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwdGFiID09ICdtZ3R2Jykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJyArICc7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9vamJrLy50ZXN0KHB1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vYmFrLm9qYmtqeC5jb20vfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFw9aHR0cC8udGVzdChzcmN1cmwpICYmIC9cXFxcLmh0bWx8YmlsaWJpbGkvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoc3JjdXJsLnN1YnN0cmluZyhzcmN1cmwuaW5kZXhPZignPWh0dHAnKSArIDEpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v6Z2eaHR0cOW8gOWktOeahOaJk+W8gOWOn+mTvuaOpSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5oql6ZSZ5Yik5pat5aSE55CGXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+aJp+ihjOaKpemUmeWkhOeQhicpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNyY3VybC5zdWJzdHJpbmcoMCwgMikgPT0gJ1xcXFwvXFxcXC8nKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoJ2h0dHBzOicgKyBzcmN1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXD1odHRwLy50ZXN0KHNyY3VybCkgJiYgL1xcXFwuaHRtbHxiaWxpYmlsaS8udGVzdChzcmN1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoc3JjdXJsLnN1YnN0cmluZyhzcmN1cmwuaW5kZXhPZignPWh0dHAnKSArIDEpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoc3JjdXJsKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5Yqo5oCB6Kej5p6Q5Luj56CB57uT5p2fXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgcHRhYiwgbGluaywgZG9taW4pXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBzZXRSZXN1bHQoaXRlbXMpO1xcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIHBhZ2VzLnB1c2goe1xcbiAgICAgICAgICAgICAgICBuYW1lOiBcXFwiQVBQ5YiG57G75YiX6KGoXFxcIixcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcImFwcGxpc3RkYXRhXFxcIixcXG4gICAgICAgICAgICAgICAgcnVsZTogcnVsZV9hcHBsaXN0ZGF0YVxcbiAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgbmFtZTogXFxcIkFQUOmmlumhteWIl+ihqFxcXCIsXFxuICAgICAgICAgICAgICAgIHBhdGg6IFxcXCJhcHBpbmRleGRhdGFcXFwiLFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX2FwcGluZGV4ZGF0YVxcbiAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgbmFtZTogXFxcIkFQUOmAiembhlxcXCIsXFxuICAgICAgICAgICAgICAgIHBhdGg6IFxcXCJhcHBtb3ZsaXN0XFxcIixcXG4gICAgICAgICAgICAgICAgcnVsZTogcnVsZV9hcHBtb3ZsaXN0XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBzZWFyY2hGaW5kID0gXFxcImpzOlxcXCIgKyAkLnRvU3RyaW5nKGZ1bmN0aW9uKHR5cGV0LCB0ZG9taW4sIHN1cmwpIHtcXG4gICAgICAgICAgICBsZXQgaXRlbXMgPSBbXSxcXG4gICAgICAgICAgICAgICAga2V5ID0gTVlfVVJMLnNwbGl0KCcjIycpWzFdLFxcbiAgICAgICAgICAgICAgICBzZWFyY2hfdXJsID0gc3VybC5yZXBsYWNlKFxcXCJmeXBhZ2VcXFwiLCBNWV9QQUdFKSArIGtleSxcXG4gICAgICAgICAgICAgICAgYmh0bWwgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICBpZiAoL3ZpcG12Ly50ZXN0KHRkb21pbikpIHtcXG4gICAgICAgICAgICAgICAgYmh0bWwgPSByZXF1ZXN0KHNlYXJjaF91cmwpO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIGJodG1sID0gZmV0Y2goc2VhcmNoX3VybCwge1xcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIFxcXCJVc2VyLUFnZW50XFxcIjogXFxcIkRhcnQvMi4xMyAoZGFydDppbylcXFwiXFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICBiaHRtbCA9IGJodG1sLnN0YXJ0c1dpdGgoJ1xcXFxyXFxcXG4nKSA/IGJodG1sLnJlcGxhY2UoJ1xcXFxyXFxcXG4nLCAnJykgOiBiaHRtbDtcXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxcbiAgICAgICAgICAgIGlmICgvYnR3YWYvLnRlc3QoYmh0bWwpKSB7XFxuICAgICAgICAgICAgICAgIGJodG1sID0gZmV0Y2goc2VhcmNoX3VybCArICcmYnR3YWYnICsgYmh0bWwubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcIi8pWzFdLCB7fSk7XFxuICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgIGlmIChiaHRtbCA9PSBcXFwiXFxcIiB8fCBiaHRtbCA9PSBudWxsIHx8IGJodG1sLnN1YnN0cmluZygwLCA1KSA9PSAnZXJyb3InIHx8ICFiaHRtbC5zdGFydHNXaXRoKCd7JykpIHtcXG4gICAgICAgICAgICAgICAgLyppdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5pyq5pCc57Si5Yiw55u45YWz6LWE5rqQ77yM54K55Ye76K6/6Zeu5Y6f572R6aG1JyxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogc2VhcmNoX3VybCArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgICAgICAgICAgICAgIH0pOyovXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChiaHRtbC5sZW5ndGggPCA4MCkge1xcbiAgICAgICAgICAgICAgICAvKml0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfov5Tlm57mlbDmja7kuI3lrozmlbTvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBzZWFyY2hfdXJsICsgYEBsYXp5UnVsZT0uanM6aW5wdXQuc3BsaXQoJzsnKVswXWAsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICAgICAgICAgICAgICAgfSk7Ki9cXG4gICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IEpTT04ucGFyc2UoYmh0bWwpLFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IFtdO1xcbiAgICAgICAgICAgICAgICBpZiAoaHRtbC5saXN0KSB7XFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5saXN0O1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS5saXN0KSB7XFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5kYXRhLmxpc3Q7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhKSB7XFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5kYXRhO1xcbiAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgIGlmIChsaXN0Lmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgIC8qaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfmnKrmkJzntKLliLDvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogc2VhcmNoX3VybCArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcbiAgICAgICAgICAgICAgICAgICAgfSk7Ki9cXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0aXRsZSwgcGljLCB1cmwsIGRlc2M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9UVi8udGVzdCh0eXBldCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBsaXN0W2ldLnRpdGxlO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWMgPSBsaXN0W2ldLnBpYztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gbGlzdFtpXS5uZXh0bGluaztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYyA9IGxpc3RbaV0uc3RhdGU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRkb21pbi5pbmRleE9mKCdhcGkucGhwL2FwcC8nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljID0gbGlzdFtpXS52b2RfcGljO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdGRvbWluICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjID0gbGlzdFtpXS52b2RfcmVtYXJrcztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0ZG9taW4uaW5kZXhPZigneGdhcHAucGhwL3YxLycpICE9IC0xKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWMgPSBsaXN0W2ldLnZvZF9waWM7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB0ZG9taW4gKyAndmlkZW9fZGV0YWlsP2lkPScgKyBsaXN0W2ldLnZvZF9pZDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2MgPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBsaXN0W2ldLnZvZF9uYW1lO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljID0gbGlzdFtpXS52b2RfcGljO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdCh0ZG9taW4pKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdGRvbWluICsgJy9kZXRhaWxJRD92b2RfaWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB0ZG9taW4gKyAnL2RldGFpbD92b2RfaWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYyA9IGxpc3RbaV0udm9kX3JlbWFya3M7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljX3VybDogcGljICsgJ0BSZWZlcmVyPScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6IGRlc2MsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWMnLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoXFxcImhpa2VyOi8vZW1wdHkjI1xcXCIgKyB1cmwpLnJ1bGUoKHR5cGV0KSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1RWLy50ZXN0KHR5cGV0KSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3R2bW92bGlzdCcsIHt9KSkucnVsZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2FwcG1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB0eXBldClcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICBzZXRSZXN1bHQoaXRlbXMpO1xcbiAgICAgICAgfSwgYXBwdHlwZSwgdHVybCwgc3VybClcXG5cXG4gICAgICAgIGxhc3RfY2hhcHRlcl9ydWxlID0gXFxcImpzOlxcXCIgKyAkLnRvU3RyaW5nKGZ1bmN0aW9uKGFwcHR5cGUpIHtcXG4gICAgICAgICAgICBsZXQgY2hwID0gW107XFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgbGV0IGh0bWwgPSB7fSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRzID0gW107XFxuICAgICAgICAgICAgICAgIGlmICgvVFYvLnRlc3QoYXBwdHlwZSkpIHtcXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBKU09OLnBhcnNlKGZldGNoKE1ZX1VSTC5zcGxpdChcXFwiIyNcXFwiKVsxXSkpO1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoZmV0Y2goTVlfVVJMLnNwbGl0KFxcXCIjI1xcXCIpWzFdLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBpZiAoaHRtbC52aWRlb2xpc3QpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRzID0gT2JqZWN0LmtleXMoaHRtbC52aWRlb2xpc3QpO1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfaW5mbyAmJiBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcikge1xcbiAgICAgICAgICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcjtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX2luZm8udm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9wbGF5X2xpc3Q7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICAgICAgbGV0IGxpc3QgPSBbXTtcXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250cy5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGh0bWwudmlkZW9saXN0KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwudmlkZW9saXN0W2NvbnRzW2ldXTtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJscykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgPSBjb250c1tpXS51cmxzO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjb250c1tpXS51cmwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0ID0gY29udHNbaV0udXJsLnNwbGl0KFxcXCIjXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgPSBjb250c1tpXS5zcGxpdChcXFwiI1xcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgY2hwLnB1c2gobGlzdC5sZW5ndGgpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cXG4gICAgICAgICAgICBzZXRSZXN1bHQoJ+abtOaWsOiHszonICsgKE1hdGgubWF4LmFwcGx5KE1hdGgsIGNocCkpKTtcXG4gICAgICAgIH0sIGFwcHR5cGUpO1xcblxcbiAgICAgICAgcnVsZXMucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IGFwcHRpdGxlLFxcbiAgICAgICAgICAgIGF1dGhvcjogYXBwYXV0aG9yLFxcbiAgICAgICAgICAgIHR5cGU6IGFwcHR5cGUsXFxuICAgICAgICAgICAgdXJsOiBhcHB1cmwsXFxuICAgICAgICAgICAgZmluZF9ydWxlOiBmaW5kX3J1bGUsXFxuICAgICAgICAgICAgc2VhcmNoX3VybDogXFxcImhpa2VyOi8vZW1wdHkjIyoqIyNmeXBhZ2VcXFwiLFxcbiAgICAgICAgICAgIHNlYXJjaEZpbmQ6IHNlYXJjaEZpbmQsXFxuICAgICAgICAgICAgcGFnZXM6IEpTT04uc3RyaW5naWZ5KHBhZ2VzKSxcXG4gICAgICAgICAgICBsYXN0X2NoYXB0ZXJfcnVsZTogbGFzdF9jaGFwdGVyX3J1bGUsXFxuICAgICAgICAgICAgaWNvbjogYXBwaWNvblxcbiAgICAgICAgfSk7XFxuICAgIH1cXG59XFxuJC5leHBvcnRzID0ge1xcbiAgICBydWxlczogcnVsZXMsXFxuICAgIHR5cGVzOiB0eXBlc1xcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWGhee9ruaVsOaNrlwiLFwicGF0aFwiOlwiUmVzQ29kZVwiLFwicnVsZVwiOlwie1xcbiAgICBcXFwiZGF0YVxcXCI6W1xcbiAgICAgICAge1xcbiAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5LyY6LSoXFxcIixcXG4gICAgICAgIFxcXCJsaXN0XFxcIjpbXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIjEwODBwXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly8xMDgwcC5vbmUvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi8xMDgwcC5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiMTIzMURcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3Z1ZS5hcHAueXVuYm95cy5jbi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzEyMzFELnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCIzMDDnnIvkuJbnlYxcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovLzMwMHlzLnh5ei9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzMwMOeci+S4lueVjC5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiNEvlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vMWFwaS40a2R5dHYuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vNEvlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIjgwS+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vMTA4MHAudHYvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi84MEvlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIkNKVOW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3LmNqdDUyMS5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9DSlTlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIkRD5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2NoYW9yZW5iYi5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9EQ+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiRjfpq5jmuIVcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYmMuaGFva2FuanUxLmNjL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vRjfpq5jmuIUucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIkhH5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2hneXgudmlwL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSEflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcImwwbOW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vbDBsLnR2L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vbDBs5b2x6ZmiLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLniLHnnIvnvo7liadcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3d3dy51dW1qdy5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHnnIvnvo7liacucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueIsemFt+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3LnpoYW5sYW5nYnUuY29tL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIsemFt+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6I+c6bif6L+95YmnXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzgxLjcxLjE4Ljk1OjU1NTUvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/oj5zpuJ/ov73liacucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueZveWrluW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly96Z2p4ZHRnLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m95auW5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLniLHnnIvlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd3d3LmE5MS5jbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mAmueUqOWbvuaghy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5Yid5b+D5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cuMThtdi5jbHViL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Yid5b+D5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLni6zmkq3npL5cXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vMzV5cy5jYy9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eLrOaSreekvi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5Y+u5b2T5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly90di4wNTczd2wuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Y+u5b2T5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmrrXlj4vlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vMTIxLjIwNC4yNDkuMTM1OjQ0MzMvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5q615Y+L5b2x6KeGMy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5q615Y+L5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9zaGFuZ2ppaHVva2UuY29tL2FwaS5waHAvdHYudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5q615Y+L5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLppa3lkI7nlLXlvbFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vc3VtbS52aXAvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ppa3lkI7nlLXlvbEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIumjnuaNt+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3LmZqNjA4MC5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po57mjbflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueWr+eLgueci1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcHAuZmtrZHkudmlwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55av54uC55yL55S15b2xLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnsonosaHop4bnlYxcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vNDIuMTU3LjEyOS4xNTozNDQ0NC9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eyieixoeinhueVjC5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5rGH6IGa5bqTVFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3d3dy56emNsb3ZlNjY2LmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+axh+iBmuW6k1RWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLomY7njKvop4bpopFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL2h1bWFvc3AuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6JmO54yr6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlj6/nsbPlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd3d3LmtteXMudmlwL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Y+v57Gz5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlurfogIDlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBwLnlieXlkcy5jbi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W6t+iAgOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi57u/566t5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3d3dy42OXR5LmNjL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57u/566t5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmh5LnjKvnlLXlvbFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd3d3LmVzZWxsYXV0by5jb20vcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5oeS54yr55S15b2xLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLonJzonILlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBwLmY4dHAuY29tL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Jyc6JyC5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLpurvnk5zop4bpopFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYWxpeXVuLms4YWEuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6bq755Oc6KeG6aKRMS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi576O5Ymn6JmrXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9tZWlqdWNob25nLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+e+juWJp+iZqy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5pyo5a2Q55S15b2xXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3d3dy5tdXppZHkudG9wL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pyo5a2Q55S15b2xLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlpYjpnZ7ov7dcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL2FwcC5uZXRmbGl4bWkuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aWI6Z2e6L+35b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLljZflupzlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vaWFwcC5uZnV4cy5jbHViL2RubWIucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WNl+W6nOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5pqW5YWJ5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9hcHAuYmwyMTAuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pqW5YWJ5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlv7Xlv7XlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovLzk5OC55dWFubWFqcy5jbi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W/teW/teW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5p+g5p+a5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL251LmU0dHYuY24vbHZkb3VfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mn6Dmn5rlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWlh+aAquinhumikVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vZ2lndWFpLm5ldC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mAmueUqOWbvuaghy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5LiD6Zu25Yqo5ryrXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9jZi43MHl1LmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LiD6Zu25Yqo5ryrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnkZ7kuLDotYTmupBcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3R2LnlqaGFuLmNvbTo0NDMzL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eRnuS4sC5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6Zeq5YWJ5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzEwMS4zNS4xMjguMTkyL211YmFpX2FwaS5waHAvbTIudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Zeq5YWJ5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmgJ3kuZDlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3d3dy5odWFuZGlhbi50b3AvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5oCd5LmQ5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlpKnor5rlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdGNzcHZpcC5jbi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WkqeivmuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5aSp5aSp5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9hcHAuZGFpc2h1c2MuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSp5aSp5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmuKnlpq7lvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3d3dy53ZW5uaXlzLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+a4qeWmruW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5bCP55m95Yqo5ryrXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzEyMS42Mi42MC4yMjI6MjAyMjIvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/nmb3liqjmvKsucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaYn+i+sOinhumikVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vbS5oajA5OTkuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pif6L6w6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlsI/mnoHlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBwLjhkOHEuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bCP5p6B5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlv4PpuL7lvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vemhpeXV0di54eXovYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lv4PpuL7lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIumbquS6uuW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8venkucWQyMzQuY24vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pm6rkurrlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuebiui+vuW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9sdW9idS55c3M2MDgwLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+ebiui+vuW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6Zuo5p6c5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzIueWh5czYzLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbqOaenOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5b2x6KeG5aSn5YWoXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FwcC4yNjl3LmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W9seinhuWkp+WFqC5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5pyI6Imy5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzY5dHkuY2MvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mnIjoibLlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuS8mOinhuW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9jYy55c3lzLmFzaWEvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kvJjop4blvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuW9semYhemYgVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly8yMjEuMjM2LjE4LjEyOjY2NS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W9semYhemYgS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6L+95Ymn5ZCnXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3podWlqdTgudmlwL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6L+95Ymn5ZCn5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9XFxuICAgICAgICBdXFxuICAgICAgICB9LFxcbiAgICAgICAge1xcbiAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5pmu6YCaXFxcIixcXG4gICAgICAgIFxcXCJsaXN0XFxcIjpbXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIjUx6KeG6aKRXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzUxc2hpcGluLmNjL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vNTHop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIjgw5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3d3dy5jY2M4Lm5ldC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzgw5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCJKRE9ET1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vYXBweXMuamRvZG8ueHl6L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSkRPRE/lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIlFD5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cucWNzdmlwLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL1FD5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCJVNeW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vYXBweC51eTA3LmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL1U15b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCJYR+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9jbXMueGdnbS50b3AvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vWEflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcInlveW9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vangud252b2QubmV0L3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL3lveW/lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIumYv+mHjOW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hbGl5cy5jbjo5MC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mYv+mHjOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5Ze35ZGc5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2Fvd3UucHJvL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Ze35ZGc5b2x6ZmiLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLniLHlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3d3dy5oemxmZi5jbi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIseW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi54ix6L+95YmnXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzgxLjcxLjE4Ljk1OjUyMC9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIsei/veWJpy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6Im+54m55b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cuYWl0ZWUuY2MvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/oib7nibnlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueZveiPnOi/veWJp1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9sYmFwcC5odWltYW9qaWEuY29tOjMwMTE5L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m96I+c6L+95YmnLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmr5TpgrvlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vMGh6eS5jbjo5OTkwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5q+U6YK75b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnmb7orq/op4bpopFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3ouaW9wZW55dW4uY29tOjk5L2FwcF9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eZvuiur+inhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6I+c6bif5Yqo5ryrXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3RhaWtvbmcuaHVhbmdndWF5LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iPnOm4n+WKqOa8qy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5aSn5aS05b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2R5Lmlkc2FvLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wkp+WktOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5q615Y+L5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2pzLjY2YXBwLm1lL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5q615Y+L5b2x6KeGMi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6LGG5rij5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2RvdXpoYXlzcy5jYy9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+ixhua4o+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5LqM5Lmd5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9hcHAuMTlrcC5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuozkuZ3lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIumjjuWQr+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly95c3cuZWUvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po47lkK/lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIui+ieWTpeW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vYXBwLnkuaGd5dWxlOC5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ovonlk6XlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIum7hOays+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9pLmxlZHU4LmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6buE5rKz5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLngavmmJ/kurpcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3d3dy5odW94aW5nOS5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ngavmmJ/kurrlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaZl+WFiOajrlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vaGFudHYudG9wL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pmX5YWI5qOu5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnm5LlrZDlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vaS5uaWhhb2hlemkuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55uS5a2Q5b2x6ZmiLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnrYvmlpfkupFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3R2LmppbmRjbG91ZC5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nrYvmlpfkupHlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaegeWFieW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcHAud2lueHouY2MvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mnoHlhYnlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuiBmuWQiOinhumikVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vYXBwLmpoeXN0di5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ogZrlkIjop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuS5heS5heW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9zOXQ5LmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S5heS5heW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5Ymn6L+36KeG6aKRXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3Bhbi5oemFmdy5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/liafov7fop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuapmOWtkOW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9qei5qdXppZHkudmlwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5qmY5a2Q5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlv6vmkq3lkKdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBwLmhkOC5wdy9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W/q+aSreWQpy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi55yL5Ymn5ZCnXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FwcC5pc2hlbjUyMC5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nnIvliaflkKcucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueci+eci+WJp1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3Lmthbmthbmp1LmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL55yL5YmnLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLphbfphbflvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd3d3LmNjYzgubmV0L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6YW36YW35b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlj6/nsbPlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vc2oua215cy52aXAvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Y+v57Gz5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnu7/osYbop4bpopFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3YubHZkb3VpLmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57u/6LGG5b2x6Z+zLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLok53lhYnop4bpopFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdmlwLjkxaXFpeWkuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6JOd5YWJ6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmnpfosLflvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8veXMubGluZ3V5eS54eXovbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mnpfosLflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWGt+inhlRWXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9sZW4udHYvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhrfop4ZUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi576O5Ymn6IyDXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3R0em16Lm5ldC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+e+juWJp+iMgy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5Za15LmQ5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL21pYW9sZXlzLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WWteS5kOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5ZCN6KeG5b2xXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FwcC5xcWNjdi5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lkI3op4blvbEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIum6u+WtkOi/veWJp1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9iLjJtYXouY24vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/purvlrZDov73liacucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWliOmjnuS4reaWh1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3Lm5haWZlaS5vcmcvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpYjpo57kuK3mlocucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuiLueaenOW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vYXBwbGU2NzgueHl6L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Iu55p6c5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnmq7nmq7liqjmvKtcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vZG0ubXV5aW5nLm1lL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55qu55qu5Yqo5ryrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlpYfotqPlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL2FwcC5xaXF1Lm1lL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aWH6Laj5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLku7vmgKfnnItcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3JlbnhpbmdrYW4ubmV0L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Lu75oCn55yLLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmgJ3lpYflvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBwLnNpcWl0di52aXAvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mgJ3lpYflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuS4ieaXpeW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3LjNyaS5uZXQvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuInml6XlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuelnumprOW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly94cy43OHR2LmNjL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v56We6ams5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLop4blkKzmmJ/nkINcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vemp5YXBpanp5cy5zaHlud2xrai5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/op4blkKzmmJ/nkIMucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWcn+ixhlRWXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3hpdXhpYW4ucWQyMzQuY24vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lnJ/osYZUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5reY5Ymn56S+XFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9hcHAuc2h1aGFpOTkuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5reY5Ymn56S+LnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlpKnnqbrlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3R2LjUxYWl6bi5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnnqbrlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWkqeWkqeinhumikVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcHAucWlhbmp1LmNjL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSp5aSp6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlhZTlrZDnqp1cXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vY2ouaHVpbWFvamlhLmNvbToxMjM0NS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WFlOWtkOeqnS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5oiR54ix6Lef5YmnXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cuZ2VubW92LmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aIkeeIsei3n+WJpy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5ZC+54ix5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FwcC41bHAubmV0L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5ZC+54ix5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlkL7niLHlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vNTJ5c3cueHl6L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5ZC+54ix5b2x6KeGMS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5ZC755eV6KeG6aKRXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3d3dy5raXNzb25lLmNuL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WQu+eXleinhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6JyX54mb5Yqo5ryrXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3dvbml1ZG0ud29uaXUuY3lvdToyMDAwMC9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+icl+eJm+WKqOa8qy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5a+75bi45b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3R2LjkxeW16LmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5a+75bi45b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnhornjKvliqjmvKtcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vZG9uZ21hbi5rOGFhLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eGiueMq+WKqOa8qy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi54aK54yr6KeG6aKRXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FuZWdoLmNvbS9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eGiueMq+inhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi54665aic5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9wcC53eGluYS5jbi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eOuuWonOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5bCP6Jy76JyTXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzNrZXR2LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wwj+icu+ick+inhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5pif55CD6KeG6aKRXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzExOS4yOS4xMjEuNDg6ODA4OC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aYn+eQg+inhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi54665b+D5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly90di5hcmJkLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54665b+D5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmlrDkuqvlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL2FwcC5qaWFnYW4uY3gvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mlrDkuqvlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaYn+W9seebuOmaj1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcHAucm9vdHRocmVlLnRvcC9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aYn+W9seebuOmajy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5bCP5piT5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3h5Lmlyb3AuY24vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/mmJPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuS6keWfjuW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vYXl5Zi5jbi9tdWJhaV9hcGkucGhwL20yLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S6keWfjuW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5pyI5YS/5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly95dWU1Mi54eXovYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pgJrnlKjlm77moIcucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaoseiKseWKqOa8q1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3LmRtd3UuY2MvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mqLHoirHliqjmvKsucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaciOS6ruW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly95cy4xM3R2LnRvcC9hY2pfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mnIjkuq7lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuW9seinhuWkp+WFqFxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8veGMueGl4aTJ5eS54eXovbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lvbHop4blpKflhahIRC5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5b2x6KeG54Ot5YmnXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2xiLjI2eXMuY24vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lvbHop4bng63liacucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIua4lOa4lOW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9sdW9iby55dWdlbnllLnNpdGUvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/muJTmuJTlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuS8mOS8mOW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly94aW4uampzdmlwLmNjL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LyY5LyY5b2x6ZmiLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmn5rlrZDop4bpopFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8veXouMjZ5cy5jbi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+afmuWtkOinhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6bG85LuU5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3l1emFpby50b3AvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/psbzku5TlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIui/veWJp+i+vuS6ulxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3LnpodWlqdWRhcmVuLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+i/veWJp+i+vuS6ui5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6L+95Ymn54yrXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3R2LmttdHZiLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+i/veWJp+eMqzEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuS+puaOouW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly95cy5odWFuZ2d1YXkuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5L6m5o6i5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnjKrnjKrlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBwLjJ6ZHl5LmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eMqueMquW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgXVxcbiAgICAgICAgfSxcXG4gICAgICAgIHtcXG4gICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIklQVFZcXFwiLFxcbiAgICAgICAgXFxcImxpc3RcXFwiOltcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiMuWPt+W4gVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9waG9lYmUuY2YvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi8y5Y+35biB5b2x6ZmiLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIkNW5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3d3dy5jY2N2dnYudG9wL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vQ1blvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiSEflvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBpLmhneXgudmlwL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSEflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5YKy6KeG5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2ouempqLmxpZmU6ODgvbXYvYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lgrLop4blvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi54ix6KW/6KW/VFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdHYuYWl4aXhpLnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIseilv+ilv1RWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueZveeGiuW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9xdC55aHp5Lnh5ei9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eZveeGiuW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLliLrmoZDlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdHYuY3R0di52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/liLrmoZDlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5bCY5qKTVFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vY3p0di52aXA6ODMvYXBpLnBocC9jaGVueml5c3R2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsJjmopNUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlmIDlk6nlmIDlk6lcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL2FwaS5kaWxpa3R2Lnh5ei9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WYgOWTqeWYgOWTqVRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWKqOWKm+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly93d3cubG92ZTk5ODkuY29tL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Yqo5Yqb5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWkp+W4iOWFhFxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9kc3h0di50di5jaS9hcGkucGhwL2RzeC92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSn5biI5YWE5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuS6jOi0p+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9kLnpqai5saWZlOjg4L212L2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LqM6LSn5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIumdnuWHoeW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9jbXMuZmVpZmFuMTIueHl6L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Z2e5Yeh5b2x6ZmiLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIumjnuaJrFRWXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2RpYW5jai56aGVuZnkuY24vYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po57miaxUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlmL/ojbzplItcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdHYuaGZ5czgudmlwL2FwaS5waHAvU250di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Zi/6I286ZSLLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIum7kem+meW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly92aXAuamktZGluZy1oZS5zaXRlL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6buR6b6Z5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuays+mprOW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly8xLjE0LjYzLjEwMS9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+ays+mprOW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLogZrlpJrlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vamR5eS53ZWV0YWkuY24vYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ogZrlpJrlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5LmF5LmF5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2wuYmh0di5vcmcuY24vbXYvYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuYXkuYXlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5LmQ6YW3VFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vMTUwLjEzOC43OC4xNzc6MjAyMS9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S5kOmFt1RWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaHkueMq1RWXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3d3dy5lc2VsbGF1dG8uY29tL2FwaS5waHAvbGgvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aHkueMq1RWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWFree7tOW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9saXV3ZWlpcHR2LmdxOjEzNTcvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lha3nu7TlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5rWB5pif6ZuoXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL25uLmx4eXl5Lnh5ejo4L2MvYXBpLnBocC9XQWlMYW93YW5nL3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mtYHmmJ/pm6jlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5Ya35pyIVFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3R2LjUyMXg1LmNvbS9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WGt+aciFRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuiNlOaeneW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcGkuemp5cy52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ojZTmnp3lvbHop4ZUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlhY3otLnnnItUVlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly93d3cuZnJlZWthbi52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhY3otLnnnItUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLonJzmnpxUVlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly92di5taWd1b3R2Lm5ldC9tL2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Jyc5p6cVFYucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi57Gz5p2l5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzQyLjUxLjM3LjE2MToyMzQ2L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57Gz5p2l5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuexs+Wlh1RWXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3d3dy5zNmVwMy50b3AvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nsbPlpYdUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLkuIPnp5HlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdHYuN2tmbS5jbi9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S4g+enkeW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLoi6Xmg5zlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vcnh3LnJ1b3hpbmV3LmNvbS9hcGkucGhwL1NudHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iLpeaDnOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmgJ3lpYdUVlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly90di5zaXFpdHYudmlwL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5oCd5aWHVFYucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5Y+M5a2Q5pifXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3R2LmRpeW91aS5jYy9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WPjOWtkOaYny5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlsbHmpYLlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vZHk2LmRjZDEuY24vYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsbHmpYLlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5aSp56m6VFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdHYudGt5cy50di9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WkqeepulRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuiZvuearuinhumikVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly90di5jbXQ4Lnh5ei9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iZvuearuinhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlsI/mnoFUVlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcGkuOGQ4cS5jb20vbW12L2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bCP5p6BVFYucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5bCP54aK54yrVFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdHYyLmhldGFveXMudmlwL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bCP54aK54yrVFYucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi57Sr5pum5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FwcHlzLmF6eC50b29sczo4OC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+e0q+abpuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9XFxuICAgICAgICBdXFxuICAgICAgICB9XFxuICAgIF1cXG59XCJ9XSxcInBhcmFtc1wiOlwie1xcXCJSVUxFXFxcIjp7XFxcImFyZWFfdXJsXFxcIjpcXFwiXFxcIixcXFwiY2xhc3NfdXJsXFxcIjpcXFwiXFxcIixcXFwiZGV0YWlsX2ZpbmRfcnVsZVxcXCI6XFxcImpzOihcXFxcbigpID0+IHtcXFxcbiAgICB0cnkge1xcXFxuICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcXFxcXCJoaWtlcjovL3BhZ2UvYXBwbW92bGlzdFxcXFxcXFwiLCB7fSkpLnJ1bGUpO1xcXFxuICAgIH1cXFxcbiAgICBjYXRjaCAoZSkge1xcXFxuICAgICAgICBsb2coZS5tZXNzYWdlKTtcXFxcbiAgICAgICAgc2V0UmVzdWx0KFtdKTtcXFxcbiAgICB9XFxcXG59XFxcXG4pKClcXFwiLFxcXCJmaW5kX3J1bGVcXFwiOlxcXCJqczooXFxcXG5mdW5jdGlvbiAoKSB7XFxcXG4gICAgbGV0IGl0ZW1zID0gW10sIHR1cmwgPSBNWV9VUkwuc3BsaXQoXFxcXFxcXCIkJFxcXFxcXFwiKVsxXSwgdXJsID0gdHVybCArIE1ZX1VSTC5zcGxpdChcXFxcXFxcIiQkXFxcXFxcXCIpWzJdO1xcXFxuICAgIHRyeSB7XFxcXG4gICAgICAgIGxldCB0eXBlYyA9IFtdO1xcXFxuICAgICAgICBpZiAodHVybC5zZWFyY2goL2FwaS5waHBcXFxcXFxcXC9hcHAvKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgbGV0IHR5cGNvZGUgPSByZXF1ZXN0KHR1cmwgKyBcXFxcXFxcIm5hdj90b2tlbj1cXFxcXFxcIiwge2hlYWRlcnM6IHtcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogXFxcXFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcXFxcXCJ9fSk7XFxcXG4gICAgICAgICAgICBpZiAodHlwY29kZS5pbmRleE9mKFxcXFxcXFwiXFxcXFxcXFx1NjhjMFxcXFxcXFxcdTZkNGJcXFxcXFxcXHU0ZTJkXFxcXFxcXCIpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgdHlwY29kZSA9IGZldGNoKHR1cmwgKyBcXFxcXFxcIm5hdj90b2tlbj1cXFxcXFxcIiArIFxcXFxcXFwiJmJ0d2FmXFxcXFxcXCIgKyB0eXBjb2RlLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdLCB7fSk7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB0eXBlYyA9IEpTT04ucGFyc2UodHlwY29kZSkubGlzdDtcXFxcbiAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgIGlmICh0dXJsLnNlYXJjaCgveGdhcHAucGhwXFxcXFxcXFwvdjEvKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgIGxldCB0eXBjb2RlID0gcmVxdWVzdCh0dXJsICsgXFxcXFxcXCJuYXY/dG9rZW49XFxcXFxcXCIsIHtoZWFkZXJzOiB7XFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IFxcXFxcXFwiRGFydC8yLjEzIChkYXJ0OmlvKVxcXFxcXFwifX0pO1xcXFxuICAgICAgICAgICAgICAgIGlmICh0eXBjb2RlLmluZGV4T2YoXFxcXFxcXCJcXFxcXFxcXHU2OGMwXFxcXFxcXFx1NmQ0YlxcXFxcXFxcdTRlMmRcXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdHlwY29kZSA9IGZldGNoKHR1cmwgKyBcXFxcXFxcIm5hdj90b2tlbj1cXFxcXFxcIiArIFxcXFxcXFwiJmJ0d2FmXFxcXFxcXCIgKyB0eXBjb2RlLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdLCB7fSk7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIHR5cGVjID0gSlNPTi5wYXJzZSh0eXBjb2RlKS5kYXRhO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgdHlwY29kZSA9IHJlcXVlc3QodHVybCArIFxcXFxcXFwiL3R5cGVzXFxcXFxcXCIsIHtoZWFkZXJzOiB7XFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IFxcXFxcXFwiRGFydC8yLjEzIChkYXJ0OmlvKVxcXFxcXFwifX0pO1xcXFxuICAgICAgICAgICAgICAgIGlmICh0eXBjb2RlLmluZGV4T2YoXFxcXFxcXCJcXFxcXFxcXHU2OGMwXFxcXFxcXFx1NmQ0YlxcXFxcXFxcdTRlMmRcXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdHlwY29kZSA9IGZldGNoKHR1cmwgKyBcXFxcXFxcIi90eXBlc1xcXFxcXFwiICsgXFxcXFxcXCI/YnR3YWZcXFxcXFxcIiArIHR5cGNvZGUubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcXFxcXFxcXFwiLylbMV0sIHt9KTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgdHlwZWMgPSBKU09OLnBhcnNlKHR5cGNvZGUpLmRhdGEubGlzdDtcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHR5cGVjLmxlbmd0aDsgaSsrKSB7XFxcXG4gICAgICAgICAgICBsZXQgdHl1cmwgPSBcXFxcXFxcIlxcXFxcXFwiLCB0eXBlQXJyYXkgPSBPYmplY3Qua2V5cyh0eXBlY1tpXS50eXBlX2V4dGVuZCkuZmlsdGVyKGN1ciA9PiBbXFxcXFxcXCJjbGFzc1xcXFxcXFwiLCBcXFxcXFxcImFyZWFcXFxcXFxcIiwgXFxcXFxcXCJsYW5nXFxcXFxcXCIsIFxcXFxcXFwieWVhclxcXFxcXFwiXS5pbmNsdWRlcyhjdXIpKSwgdHlwZVVybCA9IHR5cGVBcnJheS5tYXAoY3VyID0+IGN1ciArIFxcXFxcXFwiPWZcXFxcXFxcIiArIGN1cikuam9pbihcXFxcXFxcIiZcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICBpZiAodHVybC5pbmRleE9mKFxcXFxcXFwiYXBpLnBocC9hcHAvXFxcXFxcXCIpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgdHl1cmwgPSB0dXJsICsgXFxcXFxcXCJ2aWRlbz90aWQ9XFxcXFxcXCIgKyB0eXBlY1tpXS50eXBlX2lkICsgXFxcXFxcXCImcGFnZT1meXBhZ2UmdG9rZW49JlxcXFxcXFwiICsgdHlwZVVybDtcXFxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgaWYgKHR1cmwuaW5kZXhPZihcXFxcXFxcInhnYXBwLnBocC92MS9cXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdHl1cmwgPSB0dXJsICsgXFxcXFxcXCJ2aWRlbz90aWQ9XFxcXFxcXCIgKyB0eXBlY1tpXS50eXBlX2lkICsgXFxcXFxcXCImcGFnZT1meXBhZ2UmXFxcXFxcXCIgKyB0eXBlVXJsO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QodHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gdHVybCArIFxcXFxcXFwiL2xpc3Q/dHlwZT1cXFxcXFxcIiArIHR5cGVjW2ldLnR5cGVfaWQgKyBcXFxcXFxcIiZwYWdlPWZ5cGFnZSZieT1mYnkmbGltaXQ9OSZcXFxcXFxcIiArIHR5cGVVcmw7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXVybCA9IHR1cmwgKyBcXFxcXFxcIj90eXBlPVxcXFxcXFwiICsgdHlwZWNbaV0udHlwZV9pZCArIFxcXFxcXFwiJnBhZ2U9ZnlwYWdlJmJ5PWZieSZsaW1pdD05JlxcXFxcXFwiICsgdHlwZVVybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe3RpdGxlOiB0eXBlY1tpXS50eXBlX25hbWUsIHVybDogJChcXFxcXFxcImhpa2VyOi8vZW1wdHkjI1xcXFxcXFwiICsgdHl1cmwpLnJ1bGUoKHR1cmwsIHR5cGVfZXh0ZW5kKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgYWRkTGlzdGVuZXIoXFxcXFxcXCJvbkNsb3NlXFxcXFxcXCIsIFxcXFxcXFwiY2xlYXJWYXIoJ2ZpbHRlcicpXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIGlmIChNWV9QQUdFID09IDEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IGtleXMgPSB7fSwgZmlsdGVyID0ge30sIGZpbHRlck5hbWVzID0ge2NsYXNzOiBcXFxcXFxcIlxcXFxcXFxcdTdjN2JcXFxcXFxcXHU1NzhiXFxcXFxcXCIsIGFyZWE6IFxcXFxcXFwiXFxcXFxcXFx1NTczMFxcXFxcXFxcdTUzM2FcXFxcXFxcIiwgbGFuZzogXFxcXFxcXCJcXFxcXFxcXHU4YmVkXFxcXFxcXFx1OGEwMFxcXFxcXFwiLCB5ZWFyOiBcXFxcXFxcIlxcXFxcXFxcdTVlNzRcXFxcXFxcXHU0ZWZkXFxcXFxcXCIsIHN0YXI6IFxcXFxcXFwiXFxcXFxcXFx1NjYwZVxcXFxcXFxcdTY2MWZcXFxcXFxcIiwgZGlyZWN0b3I6IFxcXFxcXFwiXFxcXFxcXFx1NWJmY1xcXFxcXFxcdTZmMTRcXFxcXFxcIiwgc3RhdGU6IFxcXFxcXFwiXFxcXFxcXFx1NzJiNlxcXFxcXFxcdTYwMDFcXFxcXFxcIiwgdmVyc2lvbjogXFxcXFxcXCJcXFxcXFxcXHU3MjQ4XFxcXFxcXFx1NjcyY1xcXFxcXFwifSwgZGVmYXVsdEZpbHRlciA9IHtmY2xhc3M6IFtcXFxcXFxcIlxcXFxcXFxcdTUxNjhcXFxcXFxcXHU5MGU4XFxcXFxcXFx1N2M3YlxcXFxcXFxcdTU3OGJcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU1NTljXFxcXFxcXFx1NTI2N1xcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTcyMzFcXFxcXFxcXHU2MGM1XFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1NjA1MFxcXFxcXFxcdTYwMTZcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU1MmE4XFxcXFxcXFx1NGY1Y1xcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTc5ZDFcXFxcXFxcXHU1ZTdiXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1NTI2N1xcXFxcXFxcdTYwYzVcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU2MjE4XFxcXFxcXFx1NGU4OVxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdThiNjZcXFxcXFxcXHU1MzJhXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1NzJhZlxcXFxcXFxcdTdmNmFcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU1MmE4XFxcXFxcXFx1NzUzYlxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTU5NDdcXFxcXFxcXHU1ZTdiXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1NmI2NlxcXFxcXFxcdTRmYTBcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU1MTkyXFxcXFxcXFx1OTY2OVxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTY3YWFcXFxcXFxcXHU2MjE4XFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1NjBhY1xcXFxcXFxcdTc1OTFcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU2MGNhXFxcXFxcXFx1NjA5YVxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTdlY2ZcXFxcXFxcXHU1MTc4XFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1OTc1MlxcXFxcXFxcdTY2MjVcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU2NTg3XFxcXFxcXFx1ODI3YVxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTVmYWVcXFxcXFxcXHU3NTM1XFxcXFxcXFx1NWY3MVxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTUzZTRcXFxcXFxcXHU4OGM1XFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1NTM4NlxcXFxcXFxcdTUzZjJcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU4ZmQwXFxcXFxcXFx1NTJhOFxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTUxOWNcXFxcXFxcXHU2NzUxXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1NTEzZlxcXFxcXFxcdTdhZTVcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU3ZjUxXFxcXFxcXFx1N2VkY1xcXFxcXFxcdTc1MzVcXFxcXFxcXHU1ZjcxXFxcXFxcXCJdLCBmYXJlYTogW1xcXFxcXFwiXFxcXFxcXFx1NTE2OFxcXFxcXFxcdTkwZThcXFxcXFxcXHU1NzMwXFxcXFxcXFx1NTMzYVxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTUxODVcXFxcXFxcXHU1NzMwXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1OTk5OVxcXFxcXFxcdTZlMmZcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU1M2YwXFxcXFxcXFx1NmU3ZVxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTdmOGVcXFxcXFxcXHU1NmZkXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1ODJmMVxcXFxcXFxcdTU2ZmRcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU2Y2Q1XFxcXFxcXFx1NTZmZFxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTY1ZTVcXFxcXFxcXHU2NzJjXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1OTdlOVxcXFxcXFxcdTU2ZmRcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU1ZmI3XFxcXFxcXFx1NTZmZFxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTZjZjBcXFxcXFxcXHU1NmZkXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1NTM3MFxcXFxcXFxcdTVlYTZcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU4OTdmXFxcXFxcXFx1NzNlZFxcXFxcXFxcdTcyNTlcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU1MmEwXFxcXFxcXFx1NjJmZlxcXFxcXFxcdTU5MjdcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU1MTc2XFxcXFxcXFx1NGVkNlxcXFxcXFwiXSwgZnllYXI6IFtcXFxcXFxcIlxcXFxcXFxcdTUxNjhcXFxcXFxcXHU5MGU4XFxcXFxcXFx1NWU3NFxcXFxcXFxcdTRlZmRcXFxcXFxcIiwgXFxcXFxcXCIyMDIyXFxcXFxcXCIsIFxcXFxcXFwiMjAyMVxcXFxcXFwiLCBcXFxcXFxcIjIwMjBcXFxcXFxcIiwgXFxcXFxcXCIyMDE5XFxcXFxcXCIsIFxcXFxcXFwiMjAxOFxcXFxcXFwiLCBcXFxcXFxcIjIwMTdcXFxcXFxcIiwgXFxcXFxcXCIyMDE2XFxcXFxcXCIsIFxcXFxcXFwiMjAxNVxcXFxcXFwiLCBcXFxcXFxcIjIwMTRcXFxcXFxcIiwgXFxcXFxcXCIyMDEzXFxcXFxcXCIsIFxcXFxcXFwiMjAxMlxcXFxcXFwiLCBcXFxcXFxcIjIwMTFcXFxcXFxcIiwgXFxcXFxcXCIyMDEwXFxcXFxcXCIsIFxcXFxcXFwiMjAwOVxcXFxcXFwiLCBcXFxcXFxcIjIwMDhcXFxcXFxcIiwgXFxcXFxcXCIyMDA3XFxcXFxcXCIsIFxcXFxcXFwiMjAwNlxcXFxcXFwiLCBcXFxcXFxcIjIwMDVcXFxcXFxcIiwgXFxcXFxcXCIyMDA0XFxcXFxcXCIsIFxcXFxcXFwiMjAwM1xcXFxcXFwiLCBcXFxcXFxcIjIwMDJcXFxcXFxcIiwgXFxcXFxcXCIyMDAxXFxcXFxcXCIsIFxcXFxcXFwiMjAwMFxcXFxcXFwiXSwgZmxhbmc6IFtcXFxcXFxcIlxcXFxcXFxcdTUxNjhcXFxcXFxcXHU5MGU4XFxcXFxcXFx1OGJlZFxcXFxcXFxcdThhMDBcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU1NmZkXFxcXFxcXFx1OGJlZFxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTgyZjFcXFxcXFxcXHU4YmVkXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1N2NhNFxcXFxcXFxcdThiZWRcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU5NWZkXFxcXFxcXFx1NTM1N1xcXFxcXFxcdThiZWRcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU5N2U5XFxcXFxcXFx1OGJlZFxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTY1ZTVcXFxcXFxcXHU4YmVkXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXFx1NmNkNVxcXFxcXFxcdThiZWRcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcXHU1ZmI3XFxcXFxcXFx1OGJlZFxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFxcdTUxNzZcXFxcXFxcXHU0ZWQ2XFxcXFxcXCJdfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIHR5cGVfZXh0ZW5kKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVtcXFxcXFxcImNsYXNzXFxcXFxcXCIsIFxcXFxcXFwiYXJlYVxcXFxcXFwiLCBcXFxcXFxcImxhbmdcXFxcXFxcIiwgXFxcXFxcXCJ5ZWFyXFxcXFxcXCJdLmluY2x1ZGVzKGtleSkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleXNbXFxcXFxcXCJmXFxcXFxcXCIgKyBrZXldID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleXNbXFxcXFxcXCJmYnlcXFxcXFxcIl0gPSBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpbHRlck5hbWUgPSBcXFxcXFxcIlxcXFxcXFxcdTUxNjhcXFxcXFxcXHU5MGU4XFxcXFxcXCIgKyBmaWx0ZXJOYW1lc1trZXldO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyW1xcXFxcXFwiZlxcXFxcXFwiICsga2V5XSA9IFtmaWx0ZXJOYW1lXS5jb25jYXQodHlwZV9leHRlbmRba2V5XS5zcGxpdChcXFxcXFxcIixcXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcltcXFxcXFxcImZcXFxcXFxcIiArIGtleV0ubGVuZ3RoID09IDIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJbXFxcXFxcXCJmXFxcXFxcXCIgKyBrZXldID0gZGVmYXVsdEZpbHRlcltcXFxcXFxcImZcXFxcXFxcIiArIGtleV07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFnZXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIiwgXFxcXFxcXCJcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiLCBKU09OLnN0cmluZ2lmeShrZXlzKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiKSksIGNvbG9yID0gXFxcXFxcXCIjRkE3Mjk4XFxcXFxcXCI7XFxcXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gaW4gZmlsdGVyKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgZmlsdGVyW2l0ZW1dLmxlbmd0aDsgaW5kZXgrKykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe3RpdGxlOiB0ZW1wW2l0ZW1dID09IFxcXFxcXFwiXFxcXFxcXCIgPyAoaW5kZXggPT09IDAgPyBcXFxcXFxcIlxcXFxcXFxcdTIwMWNcXFxcXFxcXHUyMDFjXFxcXFxcXFx1MjAxZFxcXFxcXFxcdTIwMWRcXFxcXFxcIiArIGZpbHRlcltpdGVtXVswXS5ib2xkKCkuZm9udGNvbG9yKGNvbG9yKSA6IGZpbHRlcltpdGVtXVtpbmRleF0pIDogKHRlbXBbaXRlbV0gPT0gZmlsdGVyW2l0ZW1dW2luZGV4XSA/IFxcXFxcXFwiXFxcXFxcXFx1MjAxY1xcXFxcXFxcdTIwMWNcXFxcXFxcXHUyMDFkXFxcXFxcXFx1MjAxZFxcXFxcXFwiICsgZmlsdGVyW2l0ZW1dW2luZGV4XS5ib2xkKCkuZm9udGNvbG9yKGNvbG9yKSA6IGZpbHRlcltpdGVtXVtpbmRleF0pLCBjb2xfdHlwZTogXFxcXFxcXCJzY3JvbGxfYnV0dG9uXFxcXFxcXCIsIHVybDogJCgpLmxhenlSdWxlKChkZXMsIG5hbWUpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbbmFtZV0gPSBkZXMuaW5kZXhPZihcXFxcXFxcIlxcXFxcXFxcdTUxNjhcXFxcXFxcXHU5MGU4XFxcXFxcXCIpICE9IC0xID8gXFxcXFxcXCJcXFxcXFxcIiA6IGRlcztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0VmFyKFxcXFxcXFwiZmlsdGVyXFxcXFxcXCIsIEpTT04uc3RyaW5naWZ5KHRlbXApKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCI7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICwgZmlsdGVyW2l0ZW1dW2luZGV4XSwgaXRlbSl9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe2NvbF90eXBlOiBcXFxcXFxcImJsYW5rX2Jsb2NrXFxcXFxcXCJ9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgYnkgPSB76buY6K6k6aG65bqPOiBcXFxcXFxcIlxcXFxcXFwiLCDmnIDmlrA6IFxcXFxcXFwidGltZVxcXFxcXFwiLCDmnIDng606IFxcXFxcXFwiaGl0c1xcXFxcXFwiLCDor4TliIY6IFxcXFxcXFwic2NvcmVcXFxcXFxcIn07XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICh0dXJsLmluZGV4T2YoXFxcXFxcXCJhcGkucGhwL2FwcC9cXFxcXFxcIikgPT0gLTEgJiYgdHVybC5pbmRleE9mKFxcXFxcXFwieGdhcHAucGhwL3YxL1xcXFxcXFwiKSA9PSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBpbiBieSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe3RpdGxlOiB0ZW1wW1xcXFxcXFwiZmJ5XFxcXFxcXCJdID09IGJ5W2l0ZW1dID8gXFxcXFxcXCJcXFxcXFxcXHUyMDFjXFxcXFxcXFx1MjAxY1xcXFxcXFxcdTIwMWRcXFxcXFxcXHUyMDFkXFxcXFxcXCIgKyBpdGVtLmJvbGQoKS5mb250Y29sb3IoY29sb3IpIDogaXRlbSwgY29sX3R5cGU6IFxcXFxcXFwic2Nyb2xsX2J1dHRvblxcXFxcXFwiLCB1cmw6ICQoKS5sYXp5UnVsZSgoZGVzKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW1xcXFxcXFwiZmJ5XFxcXFxcXCJdID0gZGVzO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIiwgSlNPTi5zdHJpbmdpZnkodGVtcCkpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLCBieVtpdGVtXSl9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICBsZXQgdXJsID0gTVlfVVJMLnNwbGl0KFxcXFxcXFwiIyNcXFxcXFxcIilbMV07XFxcXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBpbiB0ZW1wKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKGl0ZW0sIHRlbXBbaXRlbV0pO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICBsZXQgcmVzY29kZSA9IGZldGNoKHVybCwge2hlYWRlcnM6IHtcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogXFxcXFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcXFxcXCJ9fSk7XFxcXG4gICAgICAgICAgICAgICAgaWYgKHJlc2NvZGUuaW5kZXhPZihcXFxcXFxcIlxcXFxcXFxcdTY4YzBcXFxcXFxcXHU2ZDRiXFxcXFxcXFx1NGUyZFxcXFxcXFwiKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICByZXNjb2RlID0gZmV0Y2godXJsICsgXFxcXFxcXCImYnR3YWZcXFxcXFxcIiArIHJlc2NvZGUubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcXFxcXFxcXFwiLylbMV0sIHt9KTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgbGV0IGh0bWwgPSBKU09OLnBhcnNlKHJlc2NvZGUpO1xcXFxuICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFxcXFxcImhpa2VyOi8vcGFnZS9hcHBsaXN0ZGF0YVxcXFxcXFwiLCB7fSkpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgIHNldFJlc3VsdChpdGVtcyk7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAsIHR1cmwsIHR5cGVjW2ldLnR5cGVfZXh0ZW5kKSwgY29sX3R5cGU6IFxcXFxcXFwiZmxleF9idXR0b25cXFxcXFxcIn0pO1xcXFxuICAgICAgICB9XFxcXG4gICAgfVxcXFxuICAgIGNhdGNoIChlKSB7XFxcXG4gICAgfVxcXFxuICAgIHRyeSB7XFxcXG4gICAgICAgIGxldCBodG1sID0gcmVxdWVzdCh1cmwsIHtoZWFkZXJzOiB7XFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IFxcXFxcXFwiRGFydC8yLjEzIChkYXJ0OmlvKVxcXFxcXFwifX0pO1xcXFxuICAgICAgICBpZiAoaHRtbC5pbmRleE9mKFxcXFxcXFwiXFxcXFxcXFx1NjhjMFxcXFxcXFxcdTZkNGJcXFxcXFxcXHU0ZTJkXFxcXFxcXCIpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICBodG1sID0gZmV0Y2godXJsICsgXFxcXFxcXCImYnR3YWZcXFxcXFxcIiArIGh0bWwubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcXFxcXFxcXFwiLylbMV0sIHt9KTtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBodG1sID0gSlNPTi5wYXJzZShodG1sKTtcXFxcbiAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL2FwcGluZGV4ZGF0YVxcXFxcXFwiLCB7fSkpLnJ1bGUpO1xcXFxuICAgIH1cXFxcbiAgICBjYXRjaCAoZSkge1xcXFxuICAgIH1cXFxcbiAgICBzZXRSZXN1bHQoaXRlbXMpO1xcXFxufVxcXFxuKSgpXFxcIixcXFwiZmlyc3RIZWFkZXJcXFwiOlxcXCJjbGFzc1xcXCIsXFxcImdyb3VwXFxcIjpcXFwi4pGg6L275ZCI6ZuGXFxcIixcXFwicGFyYW1zXFxcIjp7fSxcXFwic29ydF91cmxcXFwiOlxcXCJcXFwiLFxcXCJ0aXRsZVxcXCI6XFxcIue7v+eureW9seinhlxcXCIsXFxcInVhXFxcIjpcXFwiYXV0b1xcXCIsXFxcInVybFxcXCI6XFxcImhpa2VyOi8vZW1wdHkkJGh0dHA6Ly93d3cuNjl0eS5jYy9tb2dhaV9hcGkucGhwL3YxLnZvZCQkL3ZvZFBoYkFsbFxcXCIsXFxcInZlcnNpb25cXFwiOjAsXFxcInllYXJfdXJsXFxcIjpcXFwiXFxcIn0sXFxcInBhZ2VUaXRsZVxcXCI6XFxcIuS9meeUn++8jOivt+WkmuaMh+aVmVxcXCIsXFxcInVybFxcXCI6XFxcImhpa2VyOi8vZW1wdHkjI2h0dHA6Ly93d3cuNjl0eS5jYy9tb2dhaV9hcGkucGhwL3YxLnZvZC9kZXRhaWw/dm9kX2lkPTQ0OTk1MCZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xMyAoZGFydDppbyl9XFxcIn1cIixcInNhdmVkXCI6ZmFsc2UsXCJ0aXRsZVwiOlwi6L275ZCI6ZuGLmFwcFwiLFwidmVyc2lvblwiOjAsXCJ1cmxcIjpcImhpa2VyOi8vZW1wdHkjI2h0dHA6Ly93d3cuNjl0eS5jYy9tb2dhaV9hcGkucGhwL3YxLnZvZC9kZXRhaWw/dm9kX2lkPTQ0OTk1MCZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xMyAoZGFydDppbyl9XCIsXCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwiZmluZF9ydWxlXCI6XCJqczpcXG5jb25zdCBRSU5HX1RJVExFID0gZ2V0TXlWYXIoJ215Q29sbGVjdGlvbicpXFxubGV0IG15Q29sbGVjdGlvbl9lbCA9IFtdLFxcbiAgICB7IFJVTEUsIGlzSW5kZXgsIHBhZ2VUaXRsZSB9ID0gTVlfUEFSQU1TLFxcbiAgICB0aGlzUlVMRSA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RhdGFMb2FkP3J1bGU9JyArIFFJTkdfVElUTEUpKCkuZmluZCgodikgPT4gdi50aXRsZSA9PSBSVUxFLnRpdGxlKVxcbmlmIChpc0luZGV4KSB7XFxuICAgIFJVTEUgPSB0aGlzUlVMRVxcbn0gZWxzZSB7XFxuICAgIFJVTEUucGFnZXMgPSB0aGlzUlVMRS5wYWdlc1xcbn1cXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9wcmVGdW5jP3J1bGU9JyArIFFJTkdfVElUTEUpKS5ydWxlKVxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3VybFBhcnNlP3J1bGU9JyArIFFJTkdfVElUTEUpKS5ydWxlKVxcblxcbmlmIChpc0luZGV4KSB7XFxuICAgIGlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgICAgIC8vIOWKoOi9vUNsYXNzVGFi57uE5Lu2XFxuICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9DbGFzc1RhYj9ydWxlPScgKyBRSU5HX1RJVExFKSkucnVsZSlcXG4gICAgICAgIHRhYkhlYWRlci5sb2FkKG15Q29sbGVjdGlvbl9lbClcXG4gICAgICAgIGlmIChSVUxFLnNlYXJjaF91cmwpIG15Q29sbGVjdGlvbl9lbC5wdXNoKHtcXG4gICAgICAgICAgICB0aXRsZTogXFxcIuaQnOe0olxcXCIsXFxuICAgICAgICAgICAgZGVzYzogXFxcIuaQnOS9oOaDs+imgeeahC4uLlxcXCIsXFxuICAgICAgICAgICAgdXJsOiAnXFxcImhpa2VyOi8vc2VhcmNoP3M9XFxcIitpbnB1dCcsXFxuICAgICAgICAgICAgZXh0cmE6IHtcXG4gICAgICAgICAgICAgICAgcnVsZXM6ICQudG9TdHJpbmcoKFFJTkdfVElUTEUsIHRpdGxlKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kYXRhTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFKSgpXFxuICAgICAgICAgICAgICAgICAgICBydWxlcyA9IFtydWxlcy5maW5kKCh2KSA9PiB2LnRpdGxlID09IHRpdGxlKV1cXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShydWxlcylcXG4gICAgICAgICAgICAgICAgfSwgUUlOR19USVRMRSwgUlVMRS50aXRsZSksXFxuICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZ2V0TXlWYXIoJ3NlYXJjaEtleScsICcnKSxcXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IFxcXCJwdXRNeVZhcignc2VhcmNoS2V5JyxpbnB1dClcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcImlucHV0XFxcIixcXG4gICAgICAgIH0pXFxuICAgIH1cXG4gICAgLy8g5aSE55CGTVlfUlVMRVxcbiAgICBNWV9SVUxFLnVybCA9IFJVTEUudXJsXFxuICAgIE1ZX1JVTEUuY29sX3R5cGUgPSBSVUxFLmNvbF90eXBlXFxuICAgIE1ZX1JVTEUuZGV0YWlsX2NvbF90eXBlID0gUlVMRS5kZXRhaWxfY29sX3R5cGVcXG4gICAgTVlfUlVMRS5maW5kX3J1bGUgPSBSVUxFLmZpbmRfcnVsZVxcbiAgICBNWV9SVUxFLmRldGFpbF9maW5kX3J1bGUgPSBSVUxFLmRldGFpbF9maW5kX3J1bGVcXG4gICAgTVlfUlVMRS5wYXJhbXMgPSB7fVxcbn0gZWxzZSB7XFxuICAgIE1ZX1JVTEUudXJsID0gTVlfUEFSQU1TLnVybFxcbiAgICBNWV9SVUxFLmNvbF90eXBlID0gUlVMRS5kZXRhaWxfY29sX3R5cGVcXG4gICAgTVlfUlVMRS5maW5kX3J1bGUgPSBSVUxFLmRldGFpbF9maW5kX3J1bGVcXG4gICAgTVlfUlVMRS5wYXJhbXMgPSBSVUxFLnBhcmFtc1xcbn1cXG5NWV9SVUxFLnBhZ2VzID0gUlVMRS5wYWdlc1xcbk1ZX1JVTEUucGFnZUxpc3QgPSBKU09OLnBhcnNlKE1ZX1JVTEUucGFnZXMgfHwgJ1tdJylcXG5NWV9SVUxFLnRpdGxlID0gUlVMRS50aXRsZVxcblxcbmlmICghaXNJbmRleCkge1xcbiAgICBpZiAocGFnZVRpdGxlKSBzZXRQYWdlVGl0bGUocGFnZVRpdGxlKVxcbiAgICBzZXRMYXN0Q2hhcHRlclJ1bGUodGhpc1JVTEUubGFzdF9jaGFwdGVyX3J1bGUpXFxuICAgIE1ZX1BBUkFNUyA9IE1ZX1JVTEUucGFyYW1zXFxufVxcbi8vIOmihOWkhOeQhuW5tuWIneWni+WMlmNvbmZpZ1xcbmlmIChpc0luZGV4ICYmIE1ZX1BBR0UgPT0gMSkgZXZhbCh0aGlzUlVMRS5wcmVSdWxlKVxcbmxldCBfY2ZnID0gZ2V0TXlWYXIoJ2luaXRDb25maWcnLCAne30nKVxcbmlmIChfY2ZnICYmIF9jZmcubGVuZ3RoID4gMCkge1xcbiAgICBjb25maWcgPSBKU09OLnBhcnNlKF9jZmcpXFxufVxcblxcbi8vIOato+aWh+ino+aekOmAmueUqOWPmOmHj1xcbmxldCBhc3NpZ25MYXp5UnVsZSA9ICQudG9TdHJpbmcoKFFJTkdfVElUTEUsIHRpdGxlKSA9PiB7XFxuICAgIGxldCBSVUxFID0gJC5yZXF1aXJlKFxcXCJoaWtlcjovL3BhZ2UvZGF0YUxvYWQ/cnVsZT1cXFwiICsgUUlOR19USVRMRSkoKS5maW5kKCh2KSA9PiB2LnRpdGxlID09IHRpdGxlKVxcbiAgICByZXR1cm4geyBwYWdlczogUlVMRS5wYWdlcywgcGFnZUxpc3Q6IFJVTEUucGFnZUxpc3QgfVxcbn0sIFFJTkdfVElUTEUsIFJVTEUudGl0bGUpXFxuZnVuY3Rpb24gZ2VuTXlSdWxlKCkge1xcbiAgICBsZXQgcnVsZSA9IE9iamVjdC5hc3NpZ24oe30sIE1ZX1JVTEUpXFxuICAgIGRlbGV0ZSBydWxlLmxhc3RfY2hhcHRlcl9ydWxlXFxuICAgIGRlbGV0ZSBydWxlLnByZVJ1bGVcXG4gICAgZGVsZXRlIHJ1bGUucGFnZUxpc3RcXG4gICAgZGVsZXRlIHJ1bGUucGFnZXNcXG4gICAgcmV0dXJuIHJ1bGVcXG59XFxuZnVuY3Rpb24gcnVuQ29kZShydWxlKSB7XFxuICAgIHRyeSB7XFxuICAgICAgICBsZXQgW2lucHV0LCBjb2RlXSA9IHJ1bGUuc3BsaXQoJy5qczonKVxcbiAgICAgICAgcmV0dXJuIGNvZGUgPyBldmFsKGNvZGUpIDogcnVsZVxcbiAgICB9IGNhdGNoIChlKSB7IHJldHVybiBydWxlIH1cXG59XFxuZnVuY3Rpb24gZ2VuRXhVcmwodXJsKSB7XFxuICAgIHVybCA9IHVybC5zcGxpdCgnOycpXFxuICAgIHJldHVybiB1cmwuc2hpZnQoKSArICc7JyArIHBhcmFtSGFuZGxlKHVybCwgdGhpc1JVTEUudWEsIE1ZX1JVTEUudXJsKVxcbn1cXG4vLyDmraPmlofop6PmnpBcXG5pZiAoTVlfUlVMRS5maW5kX3J1bGUuc3RhcnRzV2l0aCgnanM6JykpIHtcXG4gICAgc2V0UmVzdWx0ID0gZnVuY3Rpb24oZWwsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMpIHtcXG4gICAgICAgIHBhcmFtMSA9IENBTExCQUNLX0tFWVxcbiAgICAgICAgcGFyYW0yID0gTVlfUlVMRVxcbiAgICAgICAgcGFyYW0zID0gTVlfVFlQRVxcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZWwuZGF0YSkpIGVsID0gZWwuZGF0YVxcbiAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkobXlDb2xsZWN0aW9uX2VsLCBlbC5tYXAoKHYpID0+IHtcXG4gICAgICAgICAgICBsZXQgTVlfX1JVTEUgPSBPYmplY3QuYXNzaWduKGdlbk15UnVsZSgpLCB7IHBhcmFtczogdi5leHRyYSB8fCB7fSB9KVxcbiAgICAgICAgICAgIHYuY29sX3R5cGUgPSB2LmNvbF90eXBlIHx8IE1ZX1JVTEUuY29sX3R5cGVcXG5cXG4gICAgICAgICAgICBpZiAoIXYudXJsIHx8IFsncnVsZScsICdwaWNzJywgJ3RvYXN0JywgJ2lucHV0JywgJ2NvcHknLCAnZWRpdEZpbGUnLCAneDUnLCAneDVXZWJWaWV3JywgJ3g1UGxheScsICd3ZWInLCAnc2VsZWN0JywgJ3g1UnVsZScsICd3ZWJSdWxlJywgJ2Rvd25sb2FkJywgJ3NoYXJlJ10uZmluZCgodnYpID0+IHYudXJsLnN0YXJ0c1dpdGgodnYgKyAnOi8vJykpIHx8IFsneDVfd2Vidmlld19zaW5nbGUnLCAnaW5wdXQnXS5maW5kKCh2dikgPT4gdi5jb2xfdHlwZSA9PSB2dikpIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYudXJsLmluY2x1ZGVzKCdAcnVsZT0nKSkge1xcbiAgICAgICAgICAgICAgICBsZXQgW18sIHVybCwgcnVsZV0gPSB2LnVybC5tYXRjaCgvXihbXFxcXHNcXFxcU10qPylAcnVsZT0oW1xcXFxzXFxcXFNdKikkLylcXG4gICAgICAgICAgICAgICAgdi51cmwgPSB1cmxcXG4gICAgICAgICAgICAgICAgTVlfX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSA9IHJ1bGVcXG4gICAgICAgICAgICAgICAgTVlfX1JVTEUuZGV0YWlsX2NvbF90eXBlID0gTVlfUlVMRS5jb2xfdHlwZVxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodi51cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly9wYWdlLycpKSB7XFxuICAgICAgICAgICAgICAgIGlmICh2LnVybC5pbmNsdWRlcygncnVsZT0nKSB8fCAodi5leHRyYSB8fCB7fSkucnVsZSlcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2XFxuICAgICAgICAgICAgICAgIGxldCBbXywgcGF0aCwgZmxhZywgcGFyYW1zXSA9IHYudXJsLm1hdGNoKC9eaGlrZXI6XFxcXC9cXFxcL3BhZ2VcXFxcLyguKz8pKCMuKj8pPyg/OlxcXFw/KC4qKSk/JC8pLFxcbiAgICAgICAgICAgICAgICAgICAgc3ViUGFnZSA9IE1ZX1JVTEUucGFnZUxpc3QuZmluZCgodikgPT4gdi5wYXRoID09IHBhdGgpLFxcbiAgICAgICAgICAgICAgICAgICAgc3ViVXJsID0gKHBhcmFtcyB8fCAnJykuc3BsaXQoJyYnKS5maW5kKCh2KSA9PiB2LnN0YXJ0c1dpdGgoJ3VybD0nKSlcXG4gICAgICAgICAgICAgICAgdi51cmwgPSBzdWJVcmwgPyBzdWJVcmwuc2xpY2UoNCkucmVwbGFjZSgv77yf77yfL2csICc/JykucmVwbGFjZSgv77yG77yGL2csICcmJykgOiAodi5leHRyYSB8fCB7fSkudXJsIHx8ICdoaWtlcjovL2VtcHR5JyArIGZsYWcgKyAnPycgKyAocGFyYW1zIHx8ICcnKVxcbiAgICAgICAgICAgICAgICBNWV9fUlVMRS5kZXRhaWxfZmluZF9ydWxlID0gc3ViUGFnZS5ydWxlXFxuICAgICAgICAgICAgICAgIE1ZX19SVUxFLmRldGFpbF9jb2xfdHlwZSA9IHN1YlBhZ2UuY29sX3R5cGVcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYudXJsLmluY2x1ZGVzKCdAbGF6eVJ1bGU9JykpIHtcXG4gICAgICAgICAgICAgICAgbGV0IHJlSW5kZXggPSB2LnVybC5pbmRleE9mKCcuanM6JylcXG4gICAgICAgICAgICAgICAgaWYgKHJlSW5kZXggPj0gMCkgdi51cmwgPSB2LnVybC5zbGljZSgwLCByZUluZGV4KSArICcuanM6XFxcXG5pZihNWV9SVUxFKU9iamVjdC5hc3NpZ24oTVlfUlVMRSwgJyArIGFzc2lnbkxhenlSdWxlICsgJyk7JyArIHYudXJsLnNsaWNlKHJlSW5kZXggKyA0KVxcbiAgICAgICAgICAgICAgICByZXR1cm4gdlxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNJbmRleCkge1xcbiAgICAgICAgICAgICAgICBpZiAoIU1ZX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSB8fCAvaGlrZXI6XFxcXC9cXFxcLyg/IWVtcHR5LiskKS8udGVzdCh2LnVybCkpIHJldHVybiB2XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgdi5leHRyYSA9IHtcXG4gICAgICAgICAgICAgICAgdXJsOiBnZW5FeFVybCh2LnVybCksXFxuICAgICAgICAgICAgICAgIFJVTEU6IE1ZX19SVUxFLFxcbiAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IGlzSW5kZXggJiYgdi50aXRsZVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB2LnVybCA9ICdoaWtlcjovL3BhZ2UvZnJhbWVMb2FkP3J1bGU9JyArIFFJTkdfVElUTEVcXG4gICAgICAgICAgICByZXR1cm4gdlxcbiAgICAgICAgfSkpXFxuICAgICAgICBtZXRob2Rfc2V0UmVzdWx0Lmludm9rZShqYXZhQ29udGV4dCwgbXlDb2xsZWN0aW9uX2VsLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zKVxcbiAgICB9XFxuICAgIHNldEhvbWVSZXN1bHQgPSBzZXRSZXN1bHRcXG4gICAgc2V0U2VhcmNoUmVzdWx0ID0gc2V0UmVzdWx0XFxuXFxuICAgIGV2YWwoTVlfUlVMRS5maW5kX3J1bGUuc2xpY2UoMykpXFxufSBlbHNlIHtcXG4gICAgbGV0IFtfLCBmaW5kUnVsZSwgZGV0YWlsRmluZFJ1bGVdID0gTVlfUlVMRS5maW5kX3J1bGUubWF0Y2goL14oW1xcXFxzXFxcXFNdKj8pKD86PT0+KFtcXFxcc1xcXFxTXSopKT8kLylcXG4gICAgZmluZFJ1bGUgPSBmaW5kUnVsZS5zcGxpdCgnOycpXFxuICAgIHBhcnNlRG9tRm9yQXJyYXkoZ2V0UmVzQ29kZSgpLCBmaW5kUnVsZS5zaGlmdCgpKS5mb3JFYWNoKChkYXRhKSA9PiB7XFxuICAgICAgICBsZXQgW3RpdGxlLCBpbWcsIGRlc2MsIHVybF0gPSBmaW5kUnVsZS5tYXAoKHYsIGkpID0+IHtcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmICh2ID09ICcqJykgcmV0dXJuICcnXFxuICAgICAgICAgICAgICAgICAgICBlbHNlIHYgPSAoaSA9PSAxIHx8IGkgPT0gMykgP1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRG9tKGRhdGEsIHYpIDpcXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZURvbUZvckh0bWwoZGF0YSwgdilcXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICE9IDMpIHYgPSBydW5Db2RlKHYpXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdlxcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7IHJldHVybiAnJyB9XFxuICAgICAgICAgICAgfSksXFxuICAgICAgICAgICAgcmVzID0ge1xcbiAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsIHVybDogdXJsLFxcbiAgICAgICAgICAgICAgICBkZXNjOiBkZXNjLCBpbWc6IGltZyxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IE1ZX1JVTEUuY29sX3R5cGVcXG4gICAgICAgICAgICB9XFxuICAgICAgICBpZiAocmVzLnVybCkge1xcbiAgICAgICAgICAgIGlmIChyZXMudXJsLmluY2x1ZGVzKCdAbGF6eVJ1bGU9JykpIHtcXG4gICAgICAgICAgICAgICAgbGV0IHJlSW5kZXggPSByZXMudXJsLmluZGV4T2YoJy5qczonKVxcbiAgICAgICAgICAgICAgICBpZiAocmVJbmRleCA+PSAwKSByZXMudXJsID0gcmVzLnVybC5zbGljZSgwLCByZUluZGV4KSArICcuanM6XFxcXG5pZihNWV9SVUxFKU9iamVjdC5hc3NpZ24oTVlfUlVMRSwgJyArIGFzc2lnbkxhenlSdWxlICsgJyk7JyArIHJlcy51cmwuc2xpY2UocmVJbmRleCArIDQpXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChkZXRhaWxGaW5kUnVsZSkge1xcbiAgICAgICAgICAgICAgICByZXMuZXh0cmEgPSB7XFxuICAgICAgICAgICAgICAgICAgICB1cmw6IGdlbkV4VXJsKHVybCksXFxuICAgICAgICAgICAgICAgICAgICBSVUxFOiBPYmplY3QuYXNzaWduKGdlbk15UnVsZSgpLCB7IGRldGFpbF9maW5kX3J1bGU6IGRldGFpbEZpbmRSdWxlIH0pLFxcbiAgICAgICAgICAgICAgICAgICAgcGFnZVRpdGxlOiBpc0luZGV4ICYmIHRpdGxlXFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgcmVzLnVybCA9ICdoaWtlcjovL3BhZ2UvZnJhbWVMb2FkP3J1bGU9JyArIFFJTkdfVElUTEVcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKE1ZX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSkge1xcbiAgICAgICAgICAgICAgICByZXMuZXh0cmEgPSB7XFxuICAgICAgICAgICAgICAgICAgICB1cmw6IGdlbkV4VXJsKHVybCksXFxuICAgICAgICAgICAgICAgICAgICBSVUxFOiBnZW5NeVJ1bGUoKSxcXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogaXNJbmRleCAmJiB0aXRsZVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJlcy51cmwgPSAnaGlrZXI6Ly9wYWdlL2ZyYW1lTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICAgICAgbXlDb2xsZWN0aW9uX2VsLnB1c2gocmVzKVxcbiAgICB9KVxcbiAgICBzZXRSZXN1bHQobXlDb2xsZWN0aW9uX2VsKVxcbn1cXG5cIixcImdyb3VwXCI6XCLikaDovbvlkIjpm4ZcIixcInVhXCI6XCJhdXRvXCIsXCJwcmVSdWxlXCI6XCJwdXRNeVZhcignbXlDb2xsZWN0aW9uJywgTVlfUlVMRS50aXRsZSlcXG5wdXRNeVZhcigncmVtb3RlVXJsJywgJ2FwcOW9seinhicpXCIsXCJwYWdlc1wiOlwiW3tcXFwiY29sX3R5cGVcXFwiOlxcXCJ0ZXh0XzFcXFwiLFxcXCJuYW1lXFxcIjpcXFwiQ2xhc3NUYWJcXFwiLFxcXCJwYXRoXFxcIjpcXFwiQ2xhc3NUYWJcXFwiLFxcXCJydWxlXFxcIjpcXFwiY29uc3QgQ2xhc3NUYWIgPSBmdW5jdGlvbihjbGFzc0FycmF5LCBwYXJhbXMpIHtcXFxcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHBhcmFtcylcXFxcbiAgICB0aGlzLmFyciA9IGNsYXNzQXJyYXkubWFwKHYgPT4gdGhpcy5pbml0KHYpKVxcXFxuICAgIHRoaXMuc2lnbiA9ICckJyArIFFJTkdfVElUTEUgKyAnXycgKyAodGhpcy5uYW1lIHx8ICcnKSArICdfJ1xcXFxuICAgIHRoaXMuY29sb3IgPSB0aGlzLmNvbG9yIHx8ICcjMTJiNjY4J1xcXFxuICAgIHRoaXMuYm91bmRhcnkgPSB0aGlzLmJvdW5kYXJ5IHx8ICdibGFua19ibG9jaydcXFxcbn1cXFxcbkNsYXNzVGFiLnByb3RvdHlwZSA9IHtcXFxcbiAgICBjb25zdHJ1Y3RvcjogQ2xhc3NUYWIsXFxcXG4gICAgbG9hZChlbCkge1xcXFxuICAgICAgICBsZXQgZm9sZGVkID0gdGhpcy5mb2xkICYmIGdldFZhcignZm9sZF8nICsgdGhpcy5zaWduLCAnJylcXFxcbiAgICAgICAgaWYgKHRoaXMuYXJyLmxlbmd0aCA+IDEgJiYgdGhpcy5mb2xkKSBlbC5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJyArIChmb2xkZWQgPyAn4pa2JyA6ICfilrwnKS5mb250Y29sb3IoJyMwNDllZmYnKSxcXFxcbiAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoc2lnbiwgZm9sZGVkKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgcHV0VmFyKCdmb2xkXycgKyBzaWduLCB7ICcnOiAnVCcsICdUJzogJycgfSBbZm9sZGVkXSlcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxcXG4gICAgICAgICAgICB9LCB0aGlzLnNpZ24sIGZvbGRlZCksXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG4gICAgICAgIH0pXFxcXG4gICAgICAgIGxldCBhcnIgPSBmb2xkZWQgPyBbdGhpcy5hcnJbMF1dIDogdGhpcy5hcnJcXFxcbiAgICAgICAgYXJyLmZvckVhY2goKHYpID0+IHtcXFxcbiAgICAgICAgICAgIGxldCB7IGlkLCBjbGFzc19uYW1lLCBjbGFzc191cmwgfSA9IHYsXFxcXG4gICAgICAgICAgICBzZWxlY3RlZCA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZ2V0Q2xhc3MoaWQpKVxcXFxuICAgICAgICAgICAgY2xhc3NfbmFtZS5mb3JFYWNoKChuYW1lLCBpKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IHVybCA9IGNsYXNzX3VybFtpXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgbm93ID0gSlNPTi5zdHJpbmdpZnkoeyBuYW1lOiBuYW1lLCB1cmw6IHVybCB9KVxcXFxuICAgICAgICAgICAgICAgIGVsLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogc2VsZWN0ZWQgPT0gbm93ID8gJ+KAnOKAnOKAneKAnScgKyBuYW1lLmZvbnRjb2xvcih0aGlzLmNvbG9yKS5ib2xkKCkgOiBuYW1lLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHNlbGVjdGVkID09IG5vdyA/ICdoaWtlcjovL2VtcHR5JyA6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHNpZ24sIGlkLCBub3cpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihzaWduICsgaWQsIG5vdylcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcXFxuICAgICAgICAgICAgICAgICAgICB9LCB0aGlzLnNpZ24sIGlkLCBub3cpLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG4gICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICBlbC5wdXNoKHsgY29sX3R5cGU6IHRoaXMuYm91bmRhcnkgfSlcXFxcbiAgICAgICAgfSlcXFxcbiAgICB9LFxcXFxuICAgIGluaXQoY2xhc3NPYmplY3QpIHtcXFxcbiAgICAgICAgaWYgKHR5cGVvZiBjbGFzc09iamVjdC5jbGFzc19uYW1lID09ICdzdHJpbmcnKVxcXFxuICAgICAgICAgICAgY2xhc3NPYmplY3QuY2xhc3NfbmFtZSA9IGNsYXNzT2JqZWN0LmNsYXNzX25hbWUuc3BsaXQoJyYnKVxcXFxuICAgICAgICBpZiAodHlwZW9mIGNsYXNzT2JqZWN0LmNsYXNzX3VybCA9PSAnc3RyaW5nJylcXFxcbiAgICAgICAgICAgIGNsYXNzT2JqZWN0LmNsYXNzX3VybCA9IGNsYXNzT2JqZWN0LmNsYXNzX3VybC5zcGxpdCgnJicpLm1hcCgodikgPT4gdi50cmltKCkpXFxcXG4gICAgICAgIHJldHVybiBjbGFzc09iamVjdFxcXFxuICAgIH0sXFxcXG4gICAgcHVzaChjbGFzc09iamVjdCkge1xcXFxuICAgICAgICB0aGlzLmFyci5wdXNoKHRoaXMuaW5pdChjbGFzc09iamVjdCkpXFxcXG4gICAgfSxcXFxcbiAgICBnZXRDbGFzcyhpZCkge1xcXFxuICAgICAgICBsZXQgZGVmYXVsdENsYXNzID0gdGhpcy5hcnIuZmluZChpdGVtID0+IGl0ZW0uaWQgPT0gaWQpXFxcXG4gICAgICAgIGRlZmF1bHRDbGFzcyA9IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRDbGFzcyA/IHtcXFxcbiAgICAgICAgICAgIG5hbWU6IGRlZmF1bHRDbGFzcy5jbGFzc19uYW1lWzBdLFxcXFxuICAgICAgICAgICAgdXJsOiBkZWZhdWx0Q2xhc3MuY2xhc3NfdXJsWzBdXFxcXG4gICAgICAgIH0gOiB7IG5hbWU6ICAnY2Fubm90IGZpbmQgaWQ6ICcgKyBpZCArICcgaW4gY2xhc3NUYWI6ICcgKyB0aGlzLnNpZ24sIHVybDogJyd9KVxcXFxuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShnZXRWYXIodGhpcy5zaWduICsgaWQsIGRlZmF1bHRDbGFzcykpXFxcXG4gICAgfSxcXFxcbiAgICBzZXRVcmwodXJsKSB7XFxcXG4gICAgICAgIHJldHVybiB1cmwucmVwbGFjZSgvXFxcXFxcXFwkXFxcXFxcXFx7KFtefV0qKVxcXFxcXFxcfS9nLCAoXywgaWQpID0+IHRoaXMuZ2V0Q2xhc3MoaWQpLnVybClcXFxcbiAgICB9XFxcXG59XFxcXG4vLyDnlJ/miJDlpLTpg6jliIbnsbtcXFxcbmNvbnN0IGZ5QWxsID0gUlVMRS51cmwuaW5jbHVkZXMoJ2Z5QWxsJylcXFxcbmxldCB0YWJIZWFkZXIgPSBbXVxcXFxuaWYgKFJVTEUuY2xhc3NfbmFtZSkgdGFiSGVhZGVyLnB1c2goe1xcXFxuICAgIGlkOiBmeUFsbCA/ICdmeUFsbCcgOiAnZnljbGFzcycsXFxcXG4gICAgY2xhc3NfbmFtZTogUlVMRS5jbGFzc19uYW1lLFxcXFxuICAgIGNsYXNzX3VybDogUlVMRS5jbGFzc191cmxcXFxcbn0pXFxcXG5pZiAoUlVMRS5hcmVhX25hbWUpIHRhYkhlYWRlci5wdXNoKHtcXFxcbiAgICBpZDogZnlBbGwgPyAnZnlBbGwnIDogJ2Z5YXJlYScsXFxcXG4gICAgY2xhc3NfbmFtZTogUlVMRS5hcmVhX25hbWUsXFxcXG4gICAgY2xhc3NfdXJsOiBSVUxFLmFyZWFfdXJsXFxcXG59KVxcXFxuaWYgKFJVTEUueWVhcl9uYW1lKSB0YWJIZWFkZXIucHVzaCh7XFxcXG4gICAgaWQ6IGZ5QWxsID8gJ2Z5QWxsJyA6ICdmeXllYXInLFxcXFxuICAgIGNsYXNzX25hbWU6IFJVTEUueWVhcl9uYW1lLFxcXFxuICAgIGNsYXNzX3VybDogUlVMRS55ZWFyX3VybFxcXFxufSlcXFxcbmlmIChSVUxFLnNvcnRfbmFtZSkgdGFiSGVhZGVyLnB1c2goe1xcXFxuICAgIGlkOiBmeUFsbCA/ICdmeUFsbCcgOiAnZnlzb3J0JyxcXFxcbiAgICBjbGFzc19uYW1lOiBSVUxFLnNvcnRfbmFtZSxcXFxcbiAgICBjbGFzc191cmw6IFJVTEUuc29ydF91cmxcXFxcbn0pXFxcXG50YWJIZWFkZXIgPSBuZXcgQ2xhc3NUYWIodGFiSGVhZGVyLCB7IG5hbWU6IFJVTEUudGl0bGUsIGZvbGQ6IHJlYWRGaWxlKCd0YWJGb2xkJyksIH0pXFxcXG5cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwiaWNvbl8yX3JvdW5kXFxcIixcXFwibmFtZVxcXCI6XFxcIuiuvue9rlxcXCIsXFxcInBhdGhcXFwiOlxcXCJDb25maWdcXFwiLFxcXCJydWxlXFxcIjpcXFwianM6XFxcXG5hZGRMaXN0ZW5lcignb25DbG9zZScsICdjbGVhck15VmFyKFxcXFxcXFwic29ydEZsYWdcXFxcXFxcIik7cmVmcmVzaFBhZ2UoKScpXFxcXG5zZXRQYWdlVGl0bGUoJ+KamSDovbvlkIjpm4borr7nva4g4pqZJylcXFxcbmNvbnN0IFFJTkdfVElUTEUgPSBnZXRNeVZhcignbXlDb2xsZWN0aW9uJylcXFxcbmxldCBkYXRhID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZGF0YUxvYWQ/cnVsZT0nICsgUUlOR19USVRMRSkodHJ1ZSksXFxcXG4gICAgZWwgPSBbe1xcXFxuICAgICAgICB0aXRsZTogJzxiPiDmuIXpmaTnvJPlrZjvvIznq4vljbPmm7TmlrAgPHNtYWxsPiDvvIjln7rkuo7ov5znqIvku5PlupPvvIzkuI3opoHpopHnuYHngrnlh7vvvIknLFxcXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICAgICAgbGV0IHVybCA9IGdldE15VmFyKCdyZW1vdGVVcmwnKVxcXFxuICAgICAgICAgICAgaWYodXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vJykgfHwgdXJsLnN0YXJ0c1dpdGgoJ2ZpbGU6Ly8nKSlcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5LuT5bqT5Li65pys5Zyw5paH5Lu277yM5LiN5Lya6L+b6KGM57yT5a2Y77yM5pys5Yqf6IO95Lmf5peg5pWIJ1xcXFxuICAgICAgICAgICAgZGVsZXRlRmlsZSgndXBkYXRlVGltZScpXFxcXG4gICAgICAgICAgICBiYWNrKGZhbHNlKVxcXFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suabtOaWsCdcXFxcbiAgICAgICAgfSksXFxcXG4gICAgICAgIGltZzogJ2hpa2VyOi8vaW1hZ2VzL2ljb240JyxcXFxcbiAgICAgICAgY29sX3R5cGU6ICdhdmF0YXInXFxcXG4gICAgfV0sXFxcXG4gICAgdXBkYXRlSW50ZXJ2YWwgPSByZWFkRmlsZSgndXBkYXRlSW50ZXJ2YWwnKSB8fCAnMScsXFxcXG4gICAgbmV3V2luZG93ID0gcmVhZEZpbGUoJ25ld1dpbmRvdycpLFxcXFxuICAgIHRhYkZvbGQgPSByZWFkRmlsZSgndGFiRm9sZCcpLFxcXFxuICAgIGRpc2FibGVDdXN0b20gPSByZWFkRmlsZSgnZGlzYWJsZUN1c3RvbScpLFxcXFxuICAgIGVkaXRNb2RlID0gZ2V0TXlWYXIoJ2VkaXRNb2RlJywgJ+WQr+eUqC/npoHnlKgnKVxcXFxuXFxcXG5lbC5wdXNoKHtcXFxcbiAgICB0aXRsZTogJyAg8J+SoSDmm7TmlrDpopHnjoc6ICcgKyAodXBkYXRlSW50ZXJ2YWwgPT0gMCA/ICfmiYvliqgnIDogdXBkYXRlSW50ZXJ2YWwgKyAn5aSpJykgKyAnICAnLFxcXFxuICAgIHVybDogJCh1cGRhdGVJbnRlcnZhbCwgJ+i+k+WFpeabtOaWsOmXtOmalO+8iOWkqe+8ie+8jOS4ujDliJnmiYvliqjmm7TmlrBcXFxcXFxcXG7mnKzlnLDmlofku7bpk77mjqXml6DmlYgnKS5pbnB1dCgoKSA9PiB7XFxcXG4gICAgICAgIHNhdmVGaWxlKCd1cGRhdGVJbnRlcnZhbCcsIGlucHV0KVxcXFxuICAgICAgICByZWZyZXNoUGFnZSgpXFxcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXFxcbiAgICB9KSxcXFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG59LCB7XFxcXG4gICAgdGl0bGU6ICcgIPCflqUg54us56uL6aaW6aG1OiAnICsgKG5ld1dpbmRvdyA/ICfmmK8nIDogJ+WQpicpICsgJyAgJyxcXFxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG5ld1dpbmRvdykgPT4ge1xcXFxuICAgICAgICBzYXZlRmlsZSgnbmV3V2luZG93JywgbmV3V2luZG93ID8gJycgOiAnMScpXFxcXG4gICAgICAgIHJlZnJlc2hQYWdlKClcXFxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcXFxuICAgIH0sIG5ld1dpbmRvdyksXFxcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxufSwge1xcXFxuICAgIHRpdGxlOiAnICDwn5KgIOWIhuexu+aKmOWPoDogJyArICh0YWJGb2xkID8gJ+aYrycgOiAn5ZCmJykgKyAnICAnLFxcXFxuICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgodGFiRm9sZCkgPT4ge1xcXFxuICAgICAgICBzYXZlRmlsZSgndGFiRm9sZCcsIHRhYkZvbGQgPyAnJyA6ICcxJylcXFxcbiAgICAgICAgcmVmcmVzaFBhZ2UoKVxcXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxcXG4gICAgfSwgdGFiRm9sZCksXFxcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxufSwge1xcXFxuICAgIHRpdGxlOiAnICDwn5K8IOWkh+S7veaBouWkjSAgJyxcXFxcbiAgICB1cmw6ICQoWyflpIfku70nLCAn5oGi5aSNJ10sIDEpLnNlbGVjdCgoUUlOR19USVRMRSwgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSkgPT4ge1xcXFxuICAgICAgICBsZXQgdXJsID0gZ2V0TXlWYXIoJ3JlbW90ZVVybCcpXFxcXG4gICAgICAgIGlmICghdXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vJykgJiYgIXVybC5zdGFydHNXaXRoKCdmaWxlOi8vJykpXFxcXG4gICAgICAgICAgICB1cmwgPSAnaGlrZXI6Ly9maWxlcy9saWJzLycgKyBtZDUodXJsKSArICcuanMnXFxcXG4gICAgICAgIGVsc2UgaWYodXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vcGFnZS8nKSkgdXJsID0gJ2hpa2VyOi8vZW1wdHknXFxcXG4gICAgICAgIGlmIChpbnB1dCA9PSAn5aSH5Lu9JykgcmV0dXJuICQoJ2hpa2VyOi8vZmlsZXMvdG1wLycgKyBRSU5HX1RJVExFICsgJ19iYWNrdXAuanNvbicsICfovpPlhaXlpIfku73ot6/lvoQnKVxcXFxuICAgICAgICAgICAgLmlucHV0KCh1cmwsIHVwZGF0ZUludGVydmFsLCBuZXdXaW5kb3csIHRhYkZvbGQsIGRpc2FibGVDdXN0b20pID0+IHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSByZXF1ZXN0KHVybCksXFxcXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbURhdGEgPSByZWFkRmlsZSgnY3VzdG9tRGF0YScpXFxcXG4gICAgICAgICAgICAgICAgd3JpdGVGaWxlKGlucHV0LCBKU09OLnN0cmluZ2lmeSh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUludGVydmFsOiB1cGRhdGVJbnRlcnZhbCxcXFxcbiAgICAgICAgICAgICAgICAgICAgbmV3V2luZG93OiBuZXdXaW5kb3csXFxcXG4gICAgICAgICAgICAgICAgICAgIHRhYkZvbGQ6IHRhYkZvbGQsXFxcXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVDdXN0b206IGRpc2FibGVDdXN0b20sXFxcXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbURhdGE6IGN1c3RvbURhdGEsXFxcXG4gICAgICAgICAgICAgICAgICAgIHJ1bGVzOiBydWxlc1xcXFxuICAgICAgICAgICAgICAgIH0pKVxcXFxuICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LlpIfku73vvIzms6jmhI/oi6Xku5PlupPkuLrlrZDpobXpnaLliJnkuI3lpIfku70nXFxcXG4gICAgICAgICAgICB9LCB1cmwsIHVwZGF0ZUludGVydmFsLCBuZXdXaW5kb3csIHRhYkZvbGQsIGRpc2FibGVDdXN0b20pXFxcXG4gICAgICAgIGVsc2UgcmV0dXJuICQoJ2hpa2VyOi8vZmlsZXMvdG1wLycgKyBRSU5HX1RJVExFICsgJ19iYWNrdXAuanNvbicsICfovpPlhaXlpIfku73ot6/lvoQnKS5pbnB1dCgodXJsKSA9PiB7XFxcXG4gICAgICAgICAgICBsZXQgeyB1cGRhdGVJbnRlcnZhbCwgbmV3V2luZG93LCB0YWJGb2xkLCBkaXNhYmxlQ3VzdG9tLCBjdXN0b21EYXRhLCBydWxlcyB9ID0gSlNPTi5wYXJzZShyZXF1ZXN0KGlucHV0KSlcXFxcbiAgICAgICAgICAgIHNhdmVGaWxlKCd1cGRhdGVJbnRlcnZhbCcsIHVwZGF0ZUludGVydmFsKVxcXFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ25ld1dpbmRvdycsIG5ld1dpbmRvdylcXFxcbiAgICAgICAgICAgIHNhdmVGaWxlKCd0YWJGb2xkJywgdGFiRm9sZClcXFxcbiAgICAgICAgICAgIHNhdmVGaWxlKCdkaXNhYmxlQ3VzdG9tJywgZGlzYWJsZUN1c3RvbSlcXFxcbiAgICAgICAgICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgY3VzdG9tRGF0YSlcXFxcbiAgICAgICAgICAgIGlmKHJ1bGVzKSB3cml0ZUZpbGUodXJsLCBydWxlcylcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKClcXFxcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LmgaLlpI3vvIzlpoLmnpzkuI3mg7PlkIzmraXov5znqIvku5PlupPvvIzlj6/ku6Xorr7nva7mm7TmlrDpopHnjofkuLrmiYvliqgnXFxcXG4gICAgICAgIH0sIHVybClcXFxcbiAgICB9LCBRSU5HX1RJVExFLCB1cGRhdGVJbnRlcnZhbCwgbmV3V2luZG93LCB0YWJGb2xkLCBkaXNhYmxlQ3VzdG9tKSxcXFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG59LCB7XFxcXG4gICAgdGl0bGU6ICfigJzigJzigJ3igJ08Zm9udCBjb2xvcj1cXFxcXFxcIiM2NjY2NjZcXFxcXFxcIj48c21hbGw+54m55Yir6bij6LCi77yM5bCP56iL5bqP5o+Q5L6b6ICF77yaXFxcXFxcXFxuJyArXFxcXG4gICAgICAgIGRhdGEucmVkdWNlKChzZWxmLCB2KSA9PiB2LmF1dGhvciA/IHNlbGYuY29uY2F0KHYuYXV0aG9yLnNwbGl0KCcmJykpIDogc2VsZiwgW10pXFxcXG4gICAgICAgIC5maWx0ZXIoKHYsIGksIGFycikgPT4gdiAmJiBhcnIuaW5kZXhPZih2KSA9PSBpKS5qb2luKCfjgIEnKSxcXFxcbiAgICB1cmw6ICdoaWtlcjovL2VtcHR5JyxcXFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxcXG59KVxcXFxuXFxcXG5lbC5wdXNoKHsgY29sX3R5cGU6ICdsaW5lJyB9LCB7XFxcXG4gICAgdGl0bGU6ICfigJzigJzigJ3igJ0nICsgJ/Cfk50nLnNtYWxsKCkgKyAnJm5ic3Ag6L275ZCI6ZuG6Ieq5a6a5LmJICZuYnNwJy5ib2xkKCkuZm9udGNvbG9yKCcjNzU3NTc1JykgKyAoZGlzYWJsZUN1c3RvbSA/ICfinYwnIDogJ+KtlScpLnNtYWxsKCksXFxcXG4gICAgdXJsOiAkKFsoZGlzYWJsZUN1c3RvbSA/ICflkK/nlKgnIDogJ+emgeeUqCcpICsgJ+WQiOmbhuiHquWumuS5iScsICfmuIXpmaToh6rlrprkuYnmlbDmja4nXSwgMSkuc2VsZWN0KCgpID0+IHtcXFxcbiAgICAgICAgaWYgKGlucHV0ID09ICfmuIXpmaToh6rlrprkuYnmlbDmja4nKSB7XFxcXG4gICAgICAgICAgICBkZWxldGVGaWxlKCdjdXN0b21EYXRhJylcXFxcbiAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PSAn5ZCv55So5ZCI6ZuG6Ieq5a6a5LmJJykge1xcXFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ2Rpc2FibGVDdXN0b20nLCAnJylcXFxcbiAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgIHNhdmVGaWxlKCdkaXNhYmxlQ3VzdG9tJywgJzEnKVxcXFxuICAgICAgICAgICAgaW5wdXQgKz0gJ1xcXFxcXFxcbuWwj+eoi+W6j+WQr+eUqC/npoHnlKjjgIHph43mlrDmjpLluo/nrYnmk43kvZzlnYfkuI3kvJrkvZPnjrDlnKjpppbpobXlsI/nqIvluo/liJfooajkuK0nXFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxcXG4gICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7InICsgaW5wdXRcXFxcbiAgICB9KSxcXFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcXFxuICAgIGV4dHJhOiB7IGxpbmVWaXNpYmxlOiBmYWxzZSB9XFxcXG59KTtcXFxcblsn5ZCv55SoL+emgeeUqCcsICfph43mlrDmjpLluo8nLCAn5pu05pS55Zu+5qCHJywgJ+WvvOWFpea1t+mYlCddLmZvckVhY2goKHYpID0+IHtcXFxcbiAgICBlbC5wdXNoKHtcXFxcbiAgICAgICAgdGl0bGU6IHYgPT0gZWRpdE1vZGUgPyAn4oCc4oCc4oCd4oCdJyArIHYuYm9sZCgpLmZvbnRjb2xvcignIzEyYjY2OCcpIDogdixcXFxcbiAgICAgICAgdXJsOiB2ID09IGVkaXRNb2RlID8gJ2hpa2VyOi8vZW1wdHknIDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgodikgPT4ge1xcXFxuICAgICAgICAgICAgcHV0TXlWYXIoJ2VkaXRNb2RlJywgdilcXFxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcXFxuICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcXFxuICAgICAgICB9LCB2KSxcXFxcbiAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxuICAgIH0pXFxcXG59KVxcXFxuSlNPTi5wYXJzZShyZWFkRmlsZSgnY3VzdG9tRGF0YScpIHx8ICdbXScpLmZvckVhY2goKHYsIGkpID0+IHtcXFxcbiAgICBsZXQgZCA9IHsgdGl0bGU6IHYudGl0bGUsIGltZzogZGF0YVtpXS5pY29uIH1cXFxcbiAgICBzd2l0Y2ggKGVkaXRNb2RlKSB7XFxcXG4gICAgICAgIGNhc2UgJ+WQr+eUqC/npoHnlKgnOlxcXFxuICAgICAgICAgICAgZC50aXRsZSA9ICh2LnZpc2libGUgPyAn8J+foiAgJyA6ICfwn5S0ICAnKSArIGQudGl0bGVcXFxcbiAgICAgICAgICAgIGQudXJsID0gJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoaSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgIGxldCBydWxlcyA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2N1c3RvbURhdGEnKSB8fCAnW10nKVxcXFxuICAgICAgICAgICAgICAgIHJ1bGVzW2ldLnZpc2libGUgPSAhcnVsZXNbaV0udmlzaWJsZVxcXFxuICAgICAgICAgICAgICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgSlNPTi5zdHJpbmdpZnkocnVsZXMpKVxcXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcXFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXFxcbiAgICAgICAgICAgIH0sIGkpXFxcXG4gICAgICAgICAgICBicmVha1xcXFxuICAgICAgICBjYXNlICfph43mlrDmjpLluo8nOlxcXFxuICAgICAgICAgICAgbGV0IHNvcnRGbGFnID0gcGFyc2VJbnQoZ2V0TXlWYXIoJ3NvcnRGbGFnJywgJy0xJykpXFxcXG4gICAgICAgICAgICBkLnRpdGxlID0gKHNvcnRGbGFnID09IGkgPyAn8J+UgyAgJyA6ICcnKSArIGQudGl0bGVcXFxcbiAgICAgICAgICAgIGlmIChzb3J0RmxhZyA9PSAtMSlcXFxcbiAgICAgICAgICAgICAgICBkLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGkpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3NvcnRGbGFnJywgaS50b1N0cmluZygpKVxcXFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+mAieaLqeimgeenu+WKqOWIsOeahOS9jee9ridcXFxcbiAgICAgICAgICAgICAgICB9LCBpKVxcXFxuICAgICAgICAgICAgZWxzZVxcXFxuICAgICAgICAgICAgICAgIGQudXJsID0gJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgob2xkSW5kZXgsIG5ld0luZGV4KSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxldCBydWxlcyA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2N1c3RvbURhdGEnKSB8fCAnW10nKVxcXFxuICAgICAgICAgICAgICAgICAgICBydWxlcy5zcGxpY2UobmV3SW5kZXgsIDAsIHJ1bGVzLnNwbGljZShvbGRJbmRleCwgMSlbMF0pXFxcXG4gICAgICAgICAgICAgICAgICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgSlNPTi5zdHJpbmdpZnkocnVsZXMpKVxcXFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignc29ydEZsYWcnLCAnLTEnKVxcXFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcXFxuICAgICAgICAgICAgICAgIH0sIHNvcnRGbGFnLCBpKVxcXFxuICAgICAgICAgICAgYnJlYWtcXFxcbiAgICAgICAgY2FzZSAn5pu05pS55Zu+5qCHJzpcXFxcbiAgICAgICAgICAgIGQudXJsID0gJCh2Lmljb24gfHwgJycsICfovpPlhaXmlrDlm77moIflnLDlnYDmiJbpopzoibLku6PnoIHvvJonKS5pbnB1dCgoaSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgIGxldCBydWxlcyA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2N1c3RvbURhdGEnKSB8fCAnW10nKVxcXFxuICAgICAgICAgICAgICAgIGlmIChpbnB1dClcXFxcbiAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0uaWNvbiA9IGlucHV0XFxcXG4gICAgICAgICAgICAgICAgZWxzZVxcXFxuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcnVsZXNbaV0uaWNvblxcXFxuICAgICAgICAgICAgICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgSlNPTi5zdHJpbmdpZnkocnVsZXMpKVxcXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcXFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXFxcbiAgICAgICAgICAgIH0sIGkpXFxcXG4gICAgICAgICAgICBicmVha1xcXFxuICAgICAgICBjYXNlICflr7zlhaXmtbfpmJQnOlxcXFxuICAgICAgICAgICAgZC51cmwgPSAncnVsZTovLycgKyBiYXNlNjRFbmNvZGUoSlNPTi5zdHJpbmdpZnkoZGF0YVtpXSkpXFxcXG4gICAgICAgICAgICBicmVha1xcXFxuICAgIH1cXFxcbiAgICBlbC5wdXNoKGQpXFxcXG59KVxcXFxuc2V0UmVzdWx0KGVsKVxcXFxuXFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi6aG16Z2i6L295YWlXFxcIixcXFwicGF0aFxcXCI6XFxcImZyYW1lTG9hZFxcXCIsXFxcInJ1bGVcXFwiOlxcXCJqczpcXFxcbmNvbnN0IFFJTkdfVElUTEUgPSBnZXRNeVZhcignbXlDb2xsZWN0aW9uJylcXFxcbmxldCBteUNvbGxlY3Rpb25fZWwgPSBbXSxcXFxcbiAgICB7IFJVTEUsIGlzSW5kZXgsIHBhZ2VUaXRsZSB9ID0gTVlfUEFSQU1TLFxcXFxuICAgIHRoaXNSVUxFID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZGF0YUxvYWQ/cnVsZT0nICsgUUlOR19USVRMRSkoKS5maW5kKCh2KSA9PiB2LnRpdGxlID09IFJVTEUudGl0bGUpXFxcXG5pZiAoaXNJbmRleCkge1xcXFxuICAgIFJVTEUgPSB0aGlzUlVMRVxcXFxufSBlbHNlIHtcXFxcbiAgICBSVUxFLnBhZ2VzID0gdGhpc1JVTEUucGFnZXNcXFxcbn1cXFxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3ByZUZ1bmM/cnVsZT0nICsgUUlOR19USVRMRSkpLnJ1bGUpXFxcXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS91cmxQYXJzZT9ydWxlPScgKyBRSU5HX1RJVExFKSkucnVsZSlcXFxcblxcXFxuaWYgKGlzSW5kZXgpIHtcXFxcbiAgICBpZiAoTVlfUEFHRSA9PSAxKSB7XFxcXG4gICAgICAgIC8vIOWKoOi9vUNsYXNzVGFi57uE5Lu2XFxcXG4gICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL0NsYXNzVGFiP3J1bGU9JyArIFFJTkdfVElUTEUpKS5ydWxlKVxcXFxuICAgICAgICB0YWJIZWFkZXIubG9hZChteUNvbGxlY3Rpb25fZWwpXFxcXG4gICAgICAgIGlmIChSVUxFLnNlYXJjaF91cmwpIG15Q29sbGVjdGlvbl9lbC5wdXNoKHtcXFxcbiAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuaQnOe0olxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgZGVzYzogXFxcXFxcXCLmkJzkvaDmg7PopoHnmoQuLi5cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIHVybDogJ1xcXFxcXFwiaGlrZXI6Ly9zZWFyY2g/cz1cXFxcXFxcIitpbnB1dCcsXFxcXG4gICAgICAgICAgICBleHRyYToge1xcXFxuICAgICAgICAgICAgICAgIHJ1bGVzOiAkLnRvU3RyaW5nKChRSU5HX1RJVExFLCB0aXRsZSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kYXRhTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFKSgpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJ1bGVzID0gW3J1bGVzLmZpbmQoKHYpID0+IHYudGl0bGUgPT0gdGl0bGUpXVxcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocnVsZXMpXFxcXG4gICAgICAgICAgICAgICAgfSwgUUlOR19USVRMRSwgUlVMRS50aXRsZSksXFxcXG4gICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBnZXRNeVZhcignc2VhcmNoS2V5JywgJycpLFxcXFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcXFxcXFxcInB1dE15VmFyKCdzZWFyY2hLZXknLGlucHV0KVxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwiaW5wdXRcXFxcXFxcIixcXFxcbiAgICAgICAgfSlcXFxcbiAgICB9XFxcXG4gICAgLy8g5aSE55CGTVlfUlVMRVxcXFxuICAgIE1ZX1JVTEUudXJsID0gUlVMRS51cmxcXFxcbiAgICBNWV9SVUxFLmNvbF90eXBlID0gUlVMRS5jb2xfdHlwZVxcXFxuICAgIE1ZX1JVTEUuZGV0YWlsX2NvbF90eXBlID0gUlVMRS5kZXRhaWxfY29sX3R5cGVcXFxcbiAgICBNWV9SVUxFLmZpbmRfcnVsZSA9IFJVTEUuZmluZF9ydWxlXFxcXG4gICAgTVlfUlVMRS5kZXRhaWxfZmluZF9ydWxlID0gUlVMRS5kZXRhaWxfZmluZF9ydWxlXFxcXG4gICAgTVlfUlVMRS5wYXJhbXMgPSB7fVxcXFxufSBlbHNlIHtcXFxcbiAgICBNWV9SVUxFLnVybCA9IE1ZX1BBUkFNUy51cmxcXFxcbiAgICBNWV9SVUxFLmNvbF90eXBlID0gUlVMRS5kZXRhaWxfY29sX3R5cGVcXFxcbiAgICBNWV9SVUxFLmZpbmRfcnVsZSA9IFJVTEUuZGV0YWlsX2ZpbmRfcnVsZVxcXFxuICAgIE1ZX1JVTEUucGFyYW1zID0gUlVMRS5wYXJhbXNcXFxcbn1cXFxcbk1ZX1JVTEUucGFnZXMgPSBSVUxFLnBhZ2VzXFxcXG5NWV9SVUxFLnBhZ2VMaXN0ID0gSlNPTi5wYXJzZShNWV9SVUxFLnBhZ2VzIHx8ICdbXScpXFxcXG5NWV9SVUxFLnRpdGxlID0gUlVMRS50aXRsZVxcXFxuXFxcXG5pZiAoIWlzSW5kZXgpIHtcXFxcbiAgICBpZiAocGFnZVRpdGxlKSBzZXRQYWdlVGl0bGUocGFnZVRpdGxlKVxcXFxuICAgIHNldExhc3RDaGFwdGVyUnVsZSh0aGlzUlVMRS5sYXN0X2NoYXB0ZXJfcnVsZSlcXFxcbiAgICBNWV9QQVJBTVMgPSBNWV9SVUxFLnBhcmFtc1xcXFxufVxcXFxuLy8g6aKE5aSE55CG5bm25Yid5aeL5YyWY29uZmlnXFxcXG5pZiAoaXNJbmRleCAmJiBNWV9QQUdFID09IDEpIGV2YWwodGhpc1JVTEUucHJlUnVsZSlcXFxcbmxldCBfY2ZnID0gZ2V0TXlWYXIoJ2luaXRDb25maWcnLCAne30nKVxcXFxuaWYgKF9jZmcgJiYgX2NmZy5sZW5ndGggPiAwKSB7XFxcXG4gICAgY29uZmlnID0gSlNPTi5wYXJzZShfY2ZnKVxcXFxufVxcXFxuXFxcXG4vLyDmraPmlofop6PmnpDpgJrnlKjlj5jph49cXFxcbmxldCBhc3NpZ25MYXp5UnVsZSA9ICQudG9TdHJpbmcoKFFJTkdfVElUTEUsIHRpdGxlKSA9PiB7XFxcXG4gICAgbGV0IFJVTEUgPSAkLnJlcXVpcmUoXFxcXFxcXCJoaWtlcjovL3BhZ2UvZGF0YUxvYWQ/cnVsZT1cXFxcXFxcIiArIFFJTkdfVElUTEUpKCkuZmluZCgodikgPT4gdi50aXRsZSA9PSB0aXRsZSlcXFxcbiAgICByZXR1cm4geyBwYWdlczogUlVMRS5wYWdlcywgcGFnZUxpc3Q6IFJVTEUucGFnZUxpc3QgfVxcXFxufSwgUUlOR19USVRMRSwgUlVMRS50aXRsZSlcXFxcbmZ1bmN0aW9uIGdlbk15UnVsZSgpIHtcXFxcbiAgICBsZXQgcnVsZSA9IE9iamVjdC5hc3NpZ24oe30sIE1ZX1JVTEUpXFxcXG4gICAgZGVsZXRlIHJ1bGUubGFzdF9jaGFwdGVyX3J1bGVcXFxcbiAgICBkZWxldGUgcnVsZS5wcmVSdWxlXFxcXG4gICAgZGVsZXRlIHJ1bGUucGFnZUxpc3RcXFxcbiAgICBkZWxldGUgcnVsZS5wYWdlc1xcXFxuICAgIHJldHVybiBydWxlXFxcXG59XFxcXG5mdW5jdGlvbiBydW5Db2RlKHJ1bGUpIHtcXFxcbiAgICB0cnkge1xcXFxuICAgICAgICBsZXQgW2lucHV0LCBjb2RlXSA9IHJ1bGUuc3BsaXQoJy5qczonKVxcXFxuICAgICAgICByZXR1cm4gY29kZSA/IGV2YWwoY29kZSkgOiBydWxlXFxcXG4gICAgfSBjYXRjaCAoZSkgeyByZXR1cm4gcnVsZSB9XFxcXG59XFxcXG5mdW5jdGlvbiBnZW5FeFVybCh1cmwpIHtcXFxcbiAgICB1cmwgPSB1cmwuc3BsaXQoJzsnKVxcXFxuICAgIHJldHVybiB1cmwuc2hpZnQoKSArICc7JyArIHBhcmFtSGFuZGxlKHVybCwgdGhpc1JVTEUudWEsIE1ZX1JVTEUudXJsKVxcXFxufVxcXFxuLy8g5q2j5paH6Kej5p6QXFxcXG5pZiAoTVlfUlVMRS5maW5kX3J1bGUuc3RhcnRzV2l0aCgnanM6JykpIHtcXFxcbiAgICBzZXRSZXN1bHQgPSBmdW5jdGlvbihlbCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMykge1xcXFxuICAgICAgICBwYXJhbTEgPSBDQUxMQkFDS19LRVlcXFxcbiAgICAgICAgcGFyYW0yID0gTVlfUlVMRVxcXFxuICAgICAgICBwYXJhbTMgPSBNWV9UWVBFXFxcXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVsLmRhdGEpKSBlbCA9IGVsLmRhdGFcXFxcbiAgICAgICAgQXJyYXkucHJvdG90eXBlLnB1c2guYXBwbHkobXlDb2xsZWN0aW9uX2VsLCBlbC5tYXAoKHYpID0+IHtcXFxcbiAgICAgICAgICAgIGxldCBNWV9fUlVMRSA9IE9iamVjdC5hc3NpZ24oZ2VuTXlSdWxlKCksIHsgcGFyYW1zOiB2LmV4dHJhIHx8IHt9IH0pXFxcXG4gICAgICAgICAgICB2LmNvbF90eXBlID0gdi5jb2xfdHlwZSB8fCBNWV9SVUxFLmNvbF90eXBlXFxcXG5cXFxcbiAgICAgICAgICAgIGlmICghdi51cmwgfHwgWydydWxlJywgJ3BpY3MnLCAndG9hc3QnLCAnaW5wdXQnLCAnY29weScsICdlZGl0RmlsZScsICd4NScsICd4NVdlYlZpZXcnLCAneDVQbGF5JywgJ3dlYicsICdzZWxlY3QnLCAneDVSdWxlJywgJ3dlYlJ1bGUnLCAnZG93bmxvYWQnLCAnc2hhcmUnXS5maW5kKCh2dikgPT4gdi51cmwuc3RhcnRzV2l0aCh2diArICc6Ly8nKSkgfHwgWyd4NV93ZWJ2aWV3X3NpbmdsZScsICdpbnB1dCddLmZpbmQoKHZ2KSA9PiB2LmNvbF90eXBlID09IHZ2KSkge1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiB2XFxcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYudXJsLmluY2x1ZGVzKCdAcnVsZT0nKSkge1xcXFxuICAgICAgICAgICAgICAgIGxldCBbXywgdXJsLCBydWxlXSA9IHYudXJsLm1hdGNoKC9eKFtcXFxcXFxcXHNcXFxcXFxcXFNdKj8pQHJ1bGU9KFtcXFxcXFxcXHNcXFxcXFxcXFNdKikkLylcXFxcbiAgICAgICAgICAgICAgICB2LnVybCA9IHVybFxcXFxuICAgICAgICAgICAgICAgIE1ZX19SVUxFLmRldGFpbF9maW5kX3J1bGUgPSBydWxlXFxcXG4gICAgICAgICAgICAgICAgTVlfX1JVTEUuZGV0YWlsX2NvbF90eXBlID0gTVlfUlVMRS5jb2xfdHlwZVxcXFxuICAgICAgICAgICAgfSBlbHNlIGlmICh2LnVybC5zdGFydHNXaXRoKCdoaWtlcjovL3BhZ2UvJykpIHtcXFxcbiAgICAgICAgICAgICAgICBpZiAodi51cmwuaW5jbHVkZXMoJ3J1bGU9JykgfHwgKHYuZXh0cmEgfHwge30pLnJ1bGUpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2XFxcXG4gICAgICAgICAgICAgICAgbGV0IFtfLCBwYXRoLCBmbGFnLCBwYXJhbXNdID0gdi51cmwubWF0Y2goL15oaWtlcjpcXFxcXFxcXC9cXFxcXFxcXC9wYWdlXFxcXFxcXFwvKC4rPykoIy4qPyk/KD86XFxcXFxcXFw/KC4qKSk/JC8pLFxcXFxuICAgICAgICAgICAgICAgICAgICBzdWJQYWdlID0gTVlfUlVMRS5wYWdlTGlzdC5maW5kKCh2KSA9PiB2LnBhdGggPT0gcGF0aCksXFxcXG4gICAgICAgICAgICAgICAgICAgIHN1YlVybCA9IChwYXJhbXMgfHwgJycpLnNwbGl0KCcmJykuZmluZCgodikgPT4gdi5zdGFydHNXaXRoKCd1cmw9JykpXFxcXG4gICAgICAgICAgICAgICAgdi51cmwgPSBzdWJVcmwgPyBzdWJVcmwuc2xpY2UoNCkucmVwbGFjZSgv77yf77yfL2csICc/JykucmVwbGFjZSgv77yG77yGL2csICcmJykgOiAodi5leHRyYSB8fCB7fSkudXJsIHx8ICdoaWtlcjovL2VtcHR5JyArIGZsYWcgKyAnPycgKyAocGFyYW1zIHx8ICcnKVxcXFxuICAgICAgICAgICAgICAgIE1ZX19SVUxFLmRldGFpbF9maW5kX3J1bGUgPSBzdWJQYWdlLnJ1bGVcXFxcbiAgICAgICAgICAgICAgICBNWV9fUlVMRS5kZXRhaWxfY29sX3R5cGUgPSBzdWJQYWdlLmNvbF90eXBlXFxcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYudXJsLmluY2x1ZGVzKCdAbGF6eVJ1bGU9JykpIHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgcmVJbmRleCA9IHYudXJsLmluZGV4T2YoJy5qczonKVxcXFxuICAgICAgICAgICAgICAgIGlmIChyZUluZGV4ID49IDApIHYudXJsID0gdi51cmwuc2xpY2UoMCwgcmVJbmRleCkgKyAnLmpzOlxcXFxcXFxcbmlmKE1ZX1JVTEUpT2JqZWN0LmFzc2lnbihNWV9SVUxFLCAnICsgYXNzaWduTGF6eVJ1bGUgKyAnKTsnICsgdi51cmwuc2xpY2UocmVJbmRleCArIDQpXFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZcXFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNJbmRleCkge1xcXFxuICAgICAgICAgICAgICAgIGlmICghTVlfUlVMRS5kZXRhaWxfZmluZF9ydWxlIHx8IC9oaWtlcjpcXFxcXFxcXC9cXFxcXFxcXC8oPyFlbXB0eS4rJCkvLnRlc3Qodi51cmwpKSByZXR1cm4gdlxcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gdlxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgdi5leHRyYSA9IHtcXFxcbiAgICAgICAgICAgICAgICB1cmw6IGdlbkV4VXJsKHYudXJsKSxcXFxcbiAgICAgICAgICAgICAgICBSVUxFOiBNWV9fUlVMRSxcXFxcbiAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IGlzSW5kZXggJiYgdi50aXRsZVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgdi51cmwgPSAnaGlrZXI6Ly9wYWdlL2ZyYW1lTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFXFxcXG4gICAgICAgICAgICByZXR1cm4gdlxcXFxuICAgICAgICB9KSlcXFxcbiAgICAgICAgbWV0aG9kX3NldFJlc3VsdC5pbnZva2UoamF2YUNvbnRleHQsIG15Q29sbGVjdGlvbl9lbCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMylcXFxcbiAgICB9XFxcXG4gICAgc2V0SG9tZVJlc3VsdCA9IHNldFJlc3VsdFxcXFxuICAgIHNldFNlYXJjaFJlc3VsdCA9IHNldFJlc3VsdFxcXFxuXFxcXG4gICAgZXZhbChNWV9SVUxFLmZpbmRfcnVsZS5zbGljZSgzKSlcXFxcbn0gZWxzZSB7XFxcXG4gICAgbGV0IFtfLCBmaW5kUnVsZSwgZGV0YWlsRmluZFJ1bGVdID0gTVlfUlVMRS5maW5kX3J1bGUubWF0Y2goL14oW1xcXFxcXFxcc1xcXFxcXFxcU10qPykoPzo9PT4oW1xcXFxcXFxcc1xcXFxcXFxcU10qKSk/JC8pXFxcXG4gICAgZmluZFJ1bGUgPSBmaW5kUnVsZS5zcGxpdCgnOycpXFxcXG4gICAgcGFyc2VEb21Gb3JBcnJheShnZXRSZXNDb2RlKCksIGZpbmRSdWxlLnNoaWZ0KCkpLmZvckVhY2goKGRhdGEpID0+IHtcXFxcbiAgICAgICAgbGV0IFt0aXRsZSwgaW1nLCBkZXNjLCB1cmxdID0gZmluZFJ1bGUubWFwKCh2LCBpKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKHYgPT0gJyonKSByZXR1cm4gJydcXFxcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB2ID0gKGkgPT0gMSB8fCBpID09IDMpID9cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRG9tKGRhdGEsIHYpIDpcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlRG9tRm9ySHRtbChkYXRhLCB2KVxcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPSAzKSB2ID0gcnVuQ29kZSh2KVxcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdlxcXFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgcmV0dXJuICcnIH1cXFxcbiAgICAgICAgICAgIH0pLFxcXFxuICAgICAgICAgICAgcmVzID0ge1xcXFxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSwgdXJsOiB1cmwsXFxcXG4gICAgICAgICAgICAgICAgZGVzYzogZGVzYywgaW1nOiBpbWcsXFxcXG4gICAgICAgICAgICAgICAgY29sX3R5cGU6IE1ZX1JVTEUuY29sX3R5cGVcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgaWYgKHJlcy51cmwpIHtcXFxcbiAgICAgICAgICAgIGlmIChyZXMudXJsLmluY2x1ZGVzKCdAbGF6eVJ1bGU9JykpIHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgcmVJbmRleCA9IHJlcy51cmwuaW5kZXhPZignLmpzOicpXFxcXG4gICAgICAgICAgICAgICAgaWYgKHJlSW5kZXggPj0gMCkgcmVzLnVybCA9IHJlcy51cmwuc2xpY2UoMCwgcmVJbmRleCkgKyAnLmpzOlxcXFxcXFxcbmlmKE1ZX1JVTEUpT2JqZWN0LmFzc2lnbihNWV9SVUxFLCAnICsgYXNzaWduTGF6eVJ1bGUgKyAnKTsnICsgcmVzLnVybC5zbGljZShyZUluZGV4ICsgNClcXFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGV0YWlsRmluZFJ1bGUpIHtcXFxcbiAgICAgICAgICAgICAgICByZXMuZXh0cmEgPSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogZ2VuRXhVcmwodXJsKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgUlVMRTogT2JqZWN0LmFzc2lnbihnZW5NeVJ1bGUoKSwgeyBkZXRhaWxfZmluZF9ydWxlOiBkZXRhaWxGaW5kUnVsZSB9KSxcXFxcbiAgICAgICAgICAgICAgICAgICAgcGFnZVRpdGxlOiBpc0luZGV4ICYmIHRpdGxlXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIHJlcy51cmwgPSAnaGlrZXI6Ly9wYWdlL2ZyYW1lTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFXFxcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKE1ZX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSkge1xcXFxuICAgICAgICAgICAgICAgIHJlcy5leHRyYSA9IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBnZW5FeFVybCh1cmwpLFxcXFxuICAgICAgICAgICAgICAgICAgICBSVUxFOiBnZW5NeVJ1bGUoKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgcGFnZVRpdGxlOiBpc0luZGV4ICYmIHRpdGxlXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIHJlcy51cmwgPSAnaGlrZXI6Ly9wYWdlL2ZyYW1lTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgbXlDb2xsZWN0aW9uX2VsLnB1c2gocmVzKVxcXFxuICAgIH0pXFxcXG4gICAgc2V0UmVzdWx0KG15Q29sbGVjdGlvbl9lbClcXFxcbn1cXFxcblxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIuaVsOaNrui9veWFpVxcXCIsXFxcInBhdGhcXFwiOlxcXCJkYXRhTG9hZFxcXCIsXFxcInJ1bGVcXFwiOlxcXCIkLmV4cG9ydHMgPSBmdW5jdGlvbihzaG93QWxsKSB7XFxcXG4gICAgbGV0IHVybCA9IGdldE15VmFyKCdyZW1vdGVVcmwnKSxcXFxcbiAgICAgICAgaW50ZXJ2YWwgPSBwYXJzZUludChyZWFkRmlsZSgndXBkYXRlSW50ZXJ2YWwnKSB8fCAnMScpLFxcXFxuICAgICAgICB0aW1lID0gcGFyc2VJbnQocmVhZEZpbGUoJ3VwZGF0ZVRpbWUnKSkgfHwgMCxcXFxcbiAgICAgICAgbm93ID0gbmV3IERhdGUoKS5nZXRUaW1lKCksXFxcXG4gICAgICAgIGRhdGEgPSBbXTtcXFxcbiAgICBpZiAodGltZSA9PSAwIHx8IGludGVydmFsID4gMCAmJiBub3cgLSB0aW1lID4gMTAwMCAqIDYwICogNjAgKiAyNCAqIGludGVydmFsKSB7XFxcXG4gICAgICAgIC8vIOiOt+WPlui/nOeoi+aVsOaNrlxcXFxuICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgbGV0IHR0dHR0ID0gJC5yZXF1aXJlKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL2NyZWF0b3JcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICBkYXRhID0gdHR0dHQucnVsZXM7XFxcXG4gICAgICAgICAgICBzZXRJdGVtKFxcXFxcXFwidHlwZXNcXFxcXFxcIixKU09OLnN0cmluZ2lmeSh0dHR0dC50eXBlcykpO1xcXFxuICAgICAgICB9IGNhdGNoIChlKSB7fVxcXFxuICAgICAgICBpZihkYXRhLmxlbmd0aCA9PSAwKSB7XFxcXG4gICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9saWJzLycgKyBtZDUodXJsKSArICcuanMnKSB8fCAnW10nKVxcXFxuICAgICAgICAgICAgbG9nKCfmsqHmnInojrflj5bliLDmm7TmlrDmlbDmja4nKVxcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgd3JpdGVGaWxlKCdoaWtlcjovL2ZpbGVzL2xpYnMvJyArIG1kNSh1cmwpICsgJy5qcycsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTtcXFxcbiAgICAgICAgICAgIHNhdmVGaWxlKCd1cGRhdGVUaW1lJywgbm93LnRvU3RyaW5nKCkpXFxcXG4gICAgICAgICAgICBsb2coJ+abtOaWsOaVsOaNruW3suWGmeWFpeacrOWcsCcpXFxcXG4gICAgICAgIH1cXFxcbiAgICB9IGVsc2Uge1xcXFxuICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9saWJzLycgKyBtZDUodXJsKSArICcuanMnKSB8fCAnW10nKVxcXFxuICAgIH1cXFxcbiAgICBcXFxcbiAgICAvL2RhdGEgPSBkYXRhLmZpbHRlcigodikgPT4geyByZXR1cm4gdi50aXRsZSAhPSBnZXRNeVZhcignbXlDb2xsZWN0aW9uJykgJiYgISh2LmF1dGhvciB8fCAnJykuaW5jbHVkZXMoJ+i9u+WQiOmbhueUn+aIkOWZqCcpIH0pXFxcXG4gICAgICAgIGlmIChyZWFkRmlsZSgnZGlzYWJsZUN1c3RvbScpKSByZXR1cm4gZGF0YVxcXFxuICAgIGVsc2UgeyAvLyDlhpnlhaXoh6rlrprkuYnmlbDmja5cXFxcbiAgICAgICAgbGV0IGN1c3RvbURhdGEgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJyksXFxcXG4gICAgICAgICAgICByZXdyaXRlRGF0YSA9IFtdXFxcXG4gICAgICAgIGN1c3RvbURhdGEgPSBjdXN0b21EYXRhLnJlZHVjZSgoc2VsZiwgdikgPT4ge1xcXFxuICAgICAgICAgICAgbGV0IGluZGV4ID0gZGF0YS5maW5kSW5kZXgoKHZ2KSA9PiB2LnRpdGxlID09IHZ2LnRpdGxlKVxcXFxuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcXFxcbiAgICAgICAgICAgICAgICBzZWxmLnB1c2godilcXFxcbiAgICAgICAgICAgICAgICBsZXQgcnVsZSA9IGRhdGEuc3BsaWNlKGluZGV4LCAxKVswXVxcXFxuICAgICAgICAgICAgICAgIGlmIChzaG93QWxsIHx8IHYudmlzaWJsZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV3cml0ZURhdGEucHVzaChPYmplY3QuYXNzaWduKHJ1bGUsIHYpKVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgcmV0dXJuIHNlbGZcXFxcbiAgICAgICAgfSwgW10pXFxcXG4gICAgICAgIGRhdGEuZm9yRWFjaCgodikgPT4gY3VzdG9tRGF0YS5wdXNoKHsgdGl0bGU6IHYudGl0bGUsIHZpc2libGU6IHRydWUgfSkpXFxcXG4gICAgICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgSlNPTi5zdHJpbmdpZnkoY3VzdG9tRGF0YSkpXFxcXG4gICAgICAgIHJldHVybiByZXdyaXRlRGF0YS5jb25jYXQoZGF0YSlcXFxcbiAgICB9XFxcXG59XFxcXG5cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLlh73mlbDph43lhplcXFwiLFxcXCJwYXRoXFxcIjpcXFwicHJlRnVuY1xcXCIsXFxcInJ1bGVcXFwiOlxcXCIvLyDpmLLmraJyZXF1aXJl5aSa5qyh6L+Q6KGMXFxcXG5sZXQgckNhY2hlID0ge31cXFxcbnJlcXVpcmUgPSBmdW5jdGlvbihwYXJhbTAsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMsIHBhcmFtNCkge1xcXFxuICAgIGlmICghcGFyYW0wIHx8IHJDYWNoZVtwYXJhbTBdICE9IG51bGwpIHtcXFxcbiAgICAgICAgcmV0dXJuXFxcXG4gICAgfVxcXFxuICAgIHJDYWNoZVtwYXJhbTBdID0gMVxcXFxuICAgIHBhcmFtMiA9IHBhcmFtMiB8fCAwXFxcXG4gICAgcGFyYW0zID0gTVlfVElDS0VUXFxcXG4gICAgcGFyYW00ID0gZXZhbFxcXFxuICAgIHJldHVybiBtZXRob2RfcmVxdWlyZS5pbnZva2UoamF2YUNvbnRleHQsIHBhcmFtMCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00KVxcXFxufVxcXFxucmVxdWlyZUNhY2hlID0gZnVuY3Rpb24ocGFyYW0wLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zLCBwYXJhbTQsIHBhcmFtNSkge1xcXFxuICAgIGlmICghcGFyYW0wIHx8IHJDYWNoZVtwYXJhbTBdICE9IG51bGwpIHtcXFxcbiAgICAgICAgcmV0dXJuXFxcXG4gICAgfVxcXFxuICAgIHJDYWNoZVtwYXJhbTBdID0gMVxcXFxuICAgIHBhcmFtMyA9IHBhcmFtMyB8fCAwXFxcXG4gICAgcGFyYW00ID0gTVlfVElDS0VUXFxcXG4gICAgcGFyYW01ID0gZXZhbFxcXFxuICAgIHJldHVybiBtZXRob2RfcmVxdWlyZUNhY2hlLmludm9rZShqYXZhQ29udGV4dCwgcGFyYW0wLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zLCBwYXJhbTQsIHBhcmFtNSlcXFxcbn1cXFxcbnJjID0gcmVxdWlyZUNhY2hlXFxcXG5cXFxcbi8vIOacgOaWsOeroOiKguinhOWImeazqOWFpemihOWkhOeQhuS7o+eggVxcXFxuc2V0TGFzdENoYXB0ZXJSdWxlID0gZnVuY3Rpb24ocGFyYW0wKSB7XFxcXG4gICAgaWYgKCFwYXJhbTApIHJldHVyblxcXFxuICAgIGlmIChwYXJhbTAuc3RhcnRzV2l0aChcXFxcXFxcImpzOlxcXFxcXFwiKSAmJiB0aGlzUlVMRS5wcmVSdWxlKSB7XFxcXG4gICAgICAgIHBhcmFtMCA9ICdqczpcXFxcXFxcXG50cnl7ZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL3ByZUZ1bmM/cnVsZT0nICsgUUlOR19USVRMRSArICdcXFxcXFxcIikpLnJ1bGUpO1xcXFxcXFxcXFxcXG4gICAgICAgICAgICBldmFsKGJhc2U2NERlY29kZShcXFxcXFxcIicgKyBiYXNlNjRFbmNvZGUodGhpc1JVTEUucHJlUnVsZSkgKyAnXFxcXFxcXCIpKTtcXFxcXFxcXFxcXFxuICAgICAgICAgICAgbGV0IF9jZmcgPSBnZXRNeVZhcihcXFxcXFxcImluaXRDb25maWdcXFxcXFxcIiwgXFxcXFxcXCJ7fVxcXFxcXFwiKTtcXFxcXFxcXFxcXFxuICAgICAgICAgICAgaWYgKF9jZmcgJiYgX2NmZy5sZW5ndGg+MCkge2NvbmZpZyA9IEpTT04ucGFyc2UoX2NmZyl9fWNhdGNoKGUpe2xvZyhlLm1lc3NhZ2UpfVxcXFxcXFxcbjsnICtcXFxcbiAgICAgICAgICAgIHBhcmFtMC5zbGljZSgzKVxcXFxuICAgIH1cXFxcbiAgICBtZXRob2Rfc2V0TGFzdENoYXB0ZXJSdWxlLmludm9rZShqYXZhQ29udGV4dCwgcGFyYW0wKTtcXFxcbn1cXFxcblxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIumTvuaOpeWkhOeQhlxcXCIsXFxcInBhdGhcXFwiOlxcXCJ1cmxQYXJzZVxcXCIsXFxcInJ1bGVcXFwiOlxcXCIvLyDpppbpobXpk77mjqXmm7/mjaLliIbnsbtcXFxcbmZ1bmN0aW9uIGluZGV4VXJsKHBhcmFtKSB7XFxcXG4gICAgZnVuY3Rpb24gcnVuQ29kZShydWxlKSB7XFxcXG4gICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICBsZXQgW2lucHV0LCBjb2RlXSA9IHJ1bGUuc3BsaXQoJy5qczonKVxcXFxuICAgICAgICAgICAgcmV0dXJuIGNvZGUgPyBldmFsKGNvZGUpIDogcnVsZVxcXFxuICAgICAgICB9IGNhdGNoIChlKSB7IHJldHVybiBydWxlIH1cXFxcbiAgICB9XFxcXG4gICAgbGV0IHsgUlVMRSwgcGFnZU51bSwgUUlOR19USVRMRSB9ID0gSlNPTi5wYXJzZShwYXJhbS5zcGxpdCgnIyMjJylbMV0pXFxcXG4gICAgUlVMRSA9IEpTT04ucGFyc2UoYmFzZTY0RGVjb2RlKFJVTEUpKVxcXFxuICAgIHBhZ2VOdW0gPSBwYXJzZUludChwYWdlTnVtKVxcXFxuICAgIGxldCB1cmwgPSBSVUxFLnVybFxcXFxuXFxcXG4gICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvQ2xhc3NUYWI/cnVsZT0nICsgUUlOR19USVRMRSkpLnJ1bGUpXFxcXG4gICAgdXJsID0gdGFiSGVhZGVyLnNldFVybChmeUFsbCA/IHVybC5yZXBsYWNlKC9meUFsbC9nLCAnJCR7ZnlBbGx9JykgOiB1cmwucmVwbGFjZSgvZnkoY2xhc3N8YXJlYXx5ZWFyfHNvcnQpL2csICckJHtmeSQxfScpKVxcXFxuICAgIHVybCA9IHVybC5yZXBsYWNlKC9meXBhZ2UoPzpAKC0/XFxcXFxcXFxkKylAKT8oPzpcXFxcXFxcXCooXFxcXFxcXFxkKylAKT8vZywgKF8sIHN0YXJ0LCBzcGFjZSkgPT4gcGFyc2VJbnQoc3RhcnQgfHwgMCkgKyAxICsgKHBhZ2VOdW0gLSAxKSAqIHBhcnNlSW50KHNwYWNlIHx8IDEpKVxcXFxuICAgIHVybCA9IC9eKFtcXFxcXFxcXHNcXFxcXFxcXFNdKj8pKD86XFxcXFxcXFxbZmlyc3RQYWdlPShbXFxcXFxcXFxzXFxcXFxcXFxTXSo/KVxcXFxcXFxcXSk/KD86KFxcXFxcXFxcLmpzOltcXFxcXFxcXHNcXFxcXFxcXFNdKj8pKT8kLy5leGVjKHVybClcXFxcbiAgICBpZiAocGFnZU51bSA9PSAxICYmIHVybFsyXSkgdXJsWzFdID0gdXJsWzJdXFxcXG4gICAgaWYgKHVybFszXSAmJiAhdXJsWzFdLmluY2x1ZGVzKCcuanM6JykpIHVybFsxXSArPSB1cmxbM11cXFxcbiAgICByZXR1cm4gcnVuQ29kZSh1cmxbMV0pXFxcXG59XFxcXG4vLyDpk77mjqXlj4LmlbDlpITnkIZcXFxcbmZ1bmN0aW9uIHBhcmFtSGFuZGxlKHVybFBhcmFtLCB1YSwgdXJsVG1wKSB7XFxcXG4gICAgbGV0IGNoYXJzZXQsIFVzZXJBZ2VudFxcXFxuICAgIHRyeSB7IC8vIOmTvuaOpeeahOe8lueggeWSjHVh5bqU6K+l5piv6aaW5YWI57un5om/6aaW6aG16ZO+5o6lXFxcXG4gICAgICAgIFssICwgY2hhcnNldCwgVXNlckFnZW50XSA9IHVybFRtcC5zcGxpdCgnOycpXFxcXG4gICAgICAgIFVzZXJBZ2VudCA9IFVzZXJBZ2VudC5tYXRjaCgvXnsoLiopfSQvKVsxXS5zcGxpdCgnJiYnKS5maW5kKCh2KSA9PiB2LnN0YXJ0c1dpdGgoJ1VzZXItQWdlbnRAJykpXFxcXG4gICAgfSBjYXRjaCAoZSkge31cXFxcbiAgICB1cmxQYXJhbVswXSA9IHVybFBhcmFtWzBdIHx8ICdHRVQnXFxcXG4gICAgdXJsUGFyYW1bMV0gPSB1cmxQYXJhbVsxXSB8fCBjaGFyc2V0IHx8ICdVVEYtOCdcXFxcbiAgICB0cnkge1xcXFxuICAgICAgICB1cmxQYXJhbVsyXSA9IHVybFBhcmFtWzJdLm1hdGNoKC9eeyguKil9JC8pWzFdLnNwbGl0KCcmJicpXFxcXG4gICAgfSBjYXRjaCAoZSkgeyB1cmxQYXJhbVsyXSA9IFtdIH1cXFxcbiAgICAvLyDmt7vliqDlhajlsYBVQVxcXFxuICAgIGlmICghdXJsUGFyYW1bMl0uc29tZSgodikgPT4gdi5zdGFydHNXaXRoKCdVc2VyLUFnZW50QCcpKSkge1xcXFxuICAgICAgICBpZiAoVXNlckFnZW50KSB1cmxQYXJhbVsyXS5wdXNoKFVzZXJBZ2VudClcXFxcbiAgICAgICAgZWxzZSBpZiAodWEgPT0gJ3BjJylcXFxcbiAgICAgICAgICAgIHVybFBhcmFtWzJdLnB1c2goJ1VzZXItQWdlbnRAJyArIFBDX1VBLnJlcGxhY2UoLzsvZywgJ++8m++8mycpLnJlcGxhY2UoL1xcXFxcXFxcPy8sICfvvJ/vvJ8nKSlcXFxcbiAgICAgICAgZWxzZSBpZiAodWEgPT0gJ21vYmlsZScpXFxcXG4gICAgICAgICAgICB1cmxQYXJhbVsyXS5wdXNoKCdVc2VyLUFnZW50QCcgKyBNT0JJTEVfVUEucmVwbGFjZSgvOy9nLCAn77yb77ybJykucmVwbGFjZSgvXFxcXFxcXFw/LywgJ++8n++8nycpKVxcXFxuICAgIH1cXFxcbiAgICB1cmxQYXJhbVsyXSA9ICd7JyArIHVybFBhcmFtWzJdLmpvaW4oJyYmJykgKyAnfSdcXFxcbiAgICByZXR1cm4gdXJsUGFyYW0uam9pbignOycpXFxcXG59XFxcXG5cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLnlJ/miJDop4TliJnpm4ZcXFwiLFxcXCJwYXRoXFxcIjpcXFwiY3JlYXRvclxcXCIsXFxcInJ1bGVcXFwiOlxcXCJsZXQgYXBwZmlsZSA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG50cnkge1xcXFxuICAgIGFwcGZpbGUgPSBmZXRjaChcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BUFAuanNvblxcXFxcXFwiKTtcXFxcbn0gY2F0Y2ggKGUpIHt9XFxcXG5cXFxcbmxldCBhcHBqc29uID0ge307XFxcXG5pZiAoL0luTWVtb3J5Ly50ZXN0KGFwcGZpbGUpKSB7XFxcXG4gICAgYXBwanNvbiA9IEpTT04ucGFyc2UoYXBwZmlsZSk7XFxcXG59IGVsc2Uge1xcXFxuICAgIGFwcGpzb24gPSBKU09OLnBhcnNlKEpTT04ucGFyc2UoZmV0Y2goXFxcXFxcXCJoaWtlcjovL3BhZ2UvUmVzQ29kZVxcXFxcXFwiLCB7fSkpLnJ1bGUpO1xcXFxufVxcXFxuXFxcXG5mdW5jdGlvbiByYW5kb21Tb3J0MyhhcnIpIHtcXFxcbiAgICAvKmFyci5zb3J0KGZ1bmN0aW9uKCkge1xcXFxuICAgICAgICByZXR1cm4gTWF0aC5yYW5kb20oKSAtIDAuNTtcXFxcbiAgICB9KTsqL1xcXFxuICAgIHJldHVybiBhcnI7XFxcXG59XFxcXG5cXFxcbmxldCBhcHBjb250cyA9IGFwcGpzb24uZGF0YSxcXFxcbiAgICBydWxlcyA9IFtdLFxcXFxuICAgIHR5cGVzID0geyBcXFxcXFxcIlxcXFxcXFwiOiBcXFxcXFxcIuWFqOmDqFxcXFxcXFwiIH07XFxcXG5mb3IgKGxldCBpID0gMDsgaSA8IGFwcGNvbnRzLmxlbmd0aDsgaSsrKSB7XFxcXG4gICAgbGV0IGFwcGxpc3QgPSByYW5kb21Tb3J0MyhhcHBjb250c1tpXS5saXN0KSxcXFxcbiAgICAgICAgYXBwdHlwZSA9IGFwcGNvbnRzW2ldLnRpdGxlICsgYXBwbGlzdC5sZW5ndGg7XFxcXG4gICAgdHlwZXNbYXBwdHlwZV0gPSBhcHB0eXBlO1xcXFxuICAgIGlmIChhcHB0eXBlLmluY2x1ZGVzKFxcXFxcXFwi5Liq5Lq65pS26ZuGXFxcXFxcXCIpKSBjb250aW51ZTtcXFxcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGFwcGxpc3QubGVuZ3RoOyBqKyspIHtcXFxcbiAgICAgICAgbGV0IGFwcHRpdGxlID0gYXBwbGlzdFtqXS50aXRsZSxcXFxcbiAgICAgICAgICAgIGFwcGF1dGhvciA9IFxcXFxcXFwiQVBQ5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBhcHBpY29uID0gYXBwbGlzdFtqXS5pbWcsXFxcXG4gICAgICAgICAgICB0dXJsID0gYXBwbGlzdFtqXS51cmwsXFxcXG4gICAgICAgICAgICBhcHB1cmwgPSBcXFxcXFxcIlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgZmluZF9ydWxlID0gXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIHN1cmwgPSBcXFxcXFxcIlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgc2VhcmNoRmluZCA9IFxcXFxcXFwiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBwYWdlcyA9IFtdLFxcXFxuICAgICAgICAgICAgbGFzdF9jaGFwdGVyX3J1bGUgPSBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuXFxcXG4gICAgICAgIGxldCBudW0gPSAxLFxcXFxuICAgICAgICAgICAgdGVtcCA9IGFwcHRpdGxlO1xcXFxuICAgICAgICB3aGlsZSAocnVsZXMuc29tZShjdXIgPT4gY3VyLnRpdGxlID09IGFwcHRpdGxlKSkge1xcXFxuICAgICAgICAgICAgbnVtID0gbnVtICsgMTtcXFxcbiAgICAgICAgICAgIGFwcHRpdGxlID0gdGVtcCArIG51bTtcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICAvL+inhOWImemTvuaOpeWSjOaQnOe0oumTvuaOpVxcXFxuICAgICAgICBpZiAoL1RWLy50ZXN0KGFwcHR5cGUpKSB7XFxcXG4gICAgICAgICAgICBhcHB1cmwgPSBcXFxcXFxcImhpa2VyOi8vZW1wdHkkJFxcXFxcXFwiICsgdHVybCArIFxcXFxcXFwiJCQ/YWM9bGlzdCZwYWdlPWZ5cGFnZVxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgaWYgKC8xOWp4fDI5M3lzfHpoYWlrYW55c3xqaVxcXFxcXFxcLWRpbmdcXFxcXFxcXC1oZXxwaG9lYmV8eXVuYm9cXFxcXFxcXC5ieGlufGxhbnJlbnRrfGhldGFveXN8cHh1bnwxMzlcXFxcXFxcXC4xNTV8ZmtrZHl8MDU2MTU4fGFpeGl4aXxydW94aW5ld3xmZWlmYW4xMjN8c2lxaXR2Ly50ZXN0KHR1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgc3VybCA9IHR1cmwgKyAnP2FjPWxpc3QmcGFnZT1meXBhZ2Umem09JztcXFxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgc3VybCA9IHR1cmwgKyAnP2FjPWxpc3QmcGFnZT1meXBhZ2Umd2Q9JztcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgIGlmICh0dXJsLmluZGV4T2YoXFxcXFxcXCJhcGkucGhwL2FwcC9cXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICBhcHB1cmwgPSBcXFxcXFxcImhpa2VyOi8vZW1wdHkkJFxcXFxcXFwiICsgdHVybCArIFxcXFxcXFwiJCRpbmRleF92aWRlbz90b2tlbj1cXFxcXFxcIjtcXFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHVybC5pbmRleE9mKFxcXFxcXFwieGdhcHAucGhwL3YxL1xcXFxcXFwiKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgIGFwcHVybCA9IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eSQkXFxcXFxcXCIgKyB0dXJsICsgXFxcXFxcXCIkJGluZGV4X3ZpZGVvP3Rva2VuPVxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICBhcHB1cmwgPSBcXFxcXFxcImhpa2VyOi8vZW1wdHkkJFxcXFxcXFwiICsgdHVybCArIFxcXFxcXFwiJCQvdm9kUGhiQWxsXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgIGlmICh0dXJsLmluZGV4T2YoJ2FwaS5waHAvYXBwLycpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgc3VybCA9IHR1cmwgKyAnc2VhcmNoP3BnPWZ5cGFnZSZ0b2tlbj0mdGV4dD0nO1xcXFxuICAgICAgICAgICAgfSBlbHNlIGlmICh0dXJsLmluZGV4T2YoJ3hnYXBwLnBocC92MS8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgIHN1cmwgPSB0dXJsICsgJ3NlYXJjaD9wZz1meXBhZ2UmdGV4dD0nO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICBpZiAoL2lvcGVueXVuLy50ZXN0KHR1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHN1cmwgPSB0dXJsICsgJy9saXN0P3BhZ2U9ZnlwYWdlJmxpbWl0PTEwJndkPSc7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgc3VybCA9IHR1cmwgKyAnP3BhZ2U9ZnlwYWdlJmxpbWl0PTEwJndkPSc7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgaWYgKC9UVi8udGVzdChhcHB0eXBlKSkge1xcXFxuICAgICAgICAgICAgZmluZF9ydWxlID0gXFxcXFxcXCJqczpcXFxcXFxcIiArICQudG9TdHJpbmcoZnVuY3Rpb24oKSB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1zID0gW10sXFxcXG4gICAgICAgICAgICAgICAgICAgIHR1cmwgPSBNWV9VUkwuc3BsaXQoJyQkJylbMV0sXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybCA9IHR1cmwgKyBNWV9VUkwuc3BsaXQoJyQkJylbMl0sXFxcXG4gICAgICAgICAgICAgICAgICAgIHBhZ2UgPSBNWV9QQUdFO1xcXFxuICAgICAgICAgICAgICAgIGlmIChwYWdlID09IDEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBlYyA9IEpTT04ucGFyc2UoZmV0Y2godHVybCArIFxcXFxcXFwiP2FjPWZsaXR0ZXJcXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIHR5cGVjKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBrZXksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImZsZXhfYnV0dG9uXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJChcXFxcXFxcImhpa2VyOi8vZW1wdHkjI1xcXFxcXFwiICsgdHVybCArIFxcXFxcXFwiP2FjPWxpc3QmcGFnZT1meXBhZ2UmY2xhc3M9XFxcXFxcXCIgKyBrZXkpLnJ1bGUoKHR5cGVjKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihcXFxcXFxcIm9uQ2xvc2VcXFxcXFxcIiwgXFxcXFxcXCJjbGVhclZhcignZmlsdGVyJylcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbXMgPSBbXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzID0ge30sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlrZXlzID0gW10sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyID0ge30sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBcXFxcXFxcIiNGQTcyOThcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4IGluIHR5cGVjKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVjW2luZGV4XS52YWx1ZXMubGVuZ3RoID09IDEpIGNvbnRpbnVlO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBrZXkgPSB0eXBlY1tpbmRleF0uZmllbGQsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlck5hbWUgPSBcXFxcXFxcIuWFqOmDqFxcXFxcXFwiICsgdHlwZWNbaW5kZXhdLm5hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlrZXlzLnB1c2goa2V5KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzW1xcXFxcXFwiZlxcXFxcXFwiICsga2V5XSA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyW1xcXFxcXFwiZlxcXFxcXFwiICsga2V5XSA9IFtmaWx0ZXJOYW1lXS5jb25jYXQodHlwZWNbaW5kZXhdLnZhbHVlcyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdldFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFwiKSkgeyBwdXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIiwgSlNPTi5zdHJpbmdpZnkoa2V5cykpIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1ZX1BBR0UgPT0gMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gaW4gZmlsdGVyKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmaWx0ZXJbaXRlbV0ubGVuZ3RoOyBpbmRleCsrKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGVtcFtpdGVtXSA9PSBcXFxcXFxcIlxcXFxcXFwiID8gKGluZGV4ID09PSAwID8gXFxcXFxcXCLigJzigJzigJ3igJ1cXFxcXFxcIiArIGZpbHRlcltpdGVtXVswXS5ib2xkKCkuZm9udGNvbG9yKGNvbG9yKSA6IGZpbHRlcltpdGVtXVtpbmRleF0pIDogKHRlbXBbaXRlbV0gPT0gZmlsdGVyW2l0ZW1dW2luZGV4XSA/IFxcXFxcXFwi4oCc4oCc4oCd4oCdXFxcXFxcXCIgKyBmaWx0ZXJbaXRlbV1baW5kZXhdLmJvbGQoKS5mb250Y29sb3IoY29sb3IpIDogZmlsdGVyW2l0ZW1dW2luZGV4XSksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwic2Nyb2xsX2J1dHRvblxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJCgpLmxhenlSdWxlKChkZXMsIG5hbWUpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbbmFtZV0gPSBkZXMuaW5kZXhPZihcXFxcXFxcIuWFqOmDqFxcXFxcXFwiKSAhPSAtMSA/IFxcXFxcXFwiXFxcXFxcXCIgOiBkZXM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiLCBKU09OLnN0cmluZ2lmeSh0ZW1wKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgZmlsdGVyW2l0ZW1dW2luZGV4XSwgaXRlbSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7IGNvbF90eXBlOiBcXFxcXFxcImJsYW5rX2Jsb2NrXFxcXFxcXCIgfSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gTVlfVVJMLnNwbGl0KFxcXFxcXFwiIyNcXFxcXFxcIilbMV0gKyBcXFxcXFxcIiZcXFxcXFxcIiArIHR5a2V5cy5tYXAoY3VyID0+IGN1ciArIFxcXFxcXFwiPWZcXFxcXFxcIiArIGN1cikuam9pbihcXFxcXFxcIiZcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIGluIHRlbXApIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShpdGVtLCB0ZW1wW2l0ZW1dKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNjb2RlID0gZmV0Y2godXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXNjb2RlLmluZGV4T2YoJ+ajgOa1i+S4rScpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzY29kZSA9IGZldGNoKHVybCArICcmYnR3YWYnICsgcmVzY29kZS5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXSwge30pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGh0bWwgPSBKU09OLnBhcnNlKHJlc2NvZGUpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvdHZsaXN0ZGF0YScsIHt9KSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoaXRlbXMpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCB0eXBlY1trZXldKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgbG9nKGUubWVzc2FnZSkgfVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IEpTT04ucGFyc2UoZmV0Y2godXJsKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3R2bGlzdGRhdGEnLCB7fSkpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgICAgICAgICAgICAgc2V0UmVzdWx0KGl0ZW1zKTtcXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICBsZXQgcnVsZV90dmxpc3RkYXRhID0gJC50b1N0cmluZyhmdW5jdGlvbigpIHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgbGlzdCA9IGh0bWwuZGF0YTtcXFxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IHsgdGl0bGUsIHBpYywgbmV4dGxpbmssIHN0YXRlIH0gPSBsaXN0W2ldO1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gbmV4dGxpbmsuc3RhcnRzV2l0aCgnaHR0cCcpID8gbmV4dGxpbmsgOiB0dXJsICsgJz9hYz1kZXRhaWwmaWRzPScgKyBuZXh0bGluaztcXFxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiBwaWMgKyAnQFJlZmVyZXI9JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6IHN0YXRlLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8zX21hcnF1ZWUnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKFxcXFxcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcXFxcXCIgKyB1cmwpLnJ1bGUoKCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3R2bW92bGlzdCcsIHt9KSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coZS5tZXNzYWdlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KFtdKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgIGxldCBydWxlX3R2bW92bGlzdCA9ICQudG9TdHJpbmcoZnVuY3Rpb24oKSB7XFxcXG4gICAgICAgICAgICAgICAgYWRkTGlzdGVuZXIoXFxcXFxcXCJvbkNsb3NlXFxcXFxcXCIsICQudG9TdHJpbmcoKHVybCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICBjbGVhclZhcignbm93Jyk7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVmFyKHVybCk7XFxcXG4gICAgICAgICAgICAgICAgfSwgTVlfVVJMKSk7XFxcXG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1zID0gW10sXFxcXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBnZXRWYXIoTVlfVVJMLCBcXFxcXFxcIlxcXFxcXFwiKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgZG9taW4gPSBNWV9VUkwuc3BsaXQoXFxcXFxcXCIjI1xcXFxcXFwiKVsxXS5tYXRjaCgvKFtcXFxcXFxcXFNdKj86XFxcXFxcXFwvXFxcXFxcXFwvW1xcXFxcXFxcU10qPylcXFxcXFxcXC8vKVsxXTtcXFxcbiAgICAgICAgICAgICAgICBpZiAoaHRtbCA9PSBcXFxcXFxcIlxcXFxcXFwiKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBmZXRjaChNWV9VUkwuc3BsaXQoXFxcXFxcXCIjI1xcXFxcXFwiKVsxXSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9VUkwsIGh0bWwpO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICBodG1sID0gSlNPTi5wYXJzZShodG1sKTtcXFxcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICcnLFxcXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiAnMjU1JiZmbG9hdCcsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJycsXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAneDVfd2Vidmlld19zaW5nbGUnXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFg1V2ViVmlldygnJyk7XFxcXG4gICAgICAgICAgICAgICAgLy/nroDku4tcXFxcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfliafmg4XnroDku4s6JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogaHRtbC5pbnRybyxcXFxcbiAgICAgICAgICAgICAgICAgICAgcGljX3VybDogaHRtbC5pbWdfdXJsLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IycpLnJ1bGUoKGRlcykgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KFt7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGRlcyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1dKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgaHRtbC5pbnRybyksXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWMnXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgLy/mlq3mj5JcXFxcbiAgICAgICAgICAgICAgICBsZXQgZG5lbiA9IGdldE15VmFyKFxcXFxcXFwiZG5lblxcXFxcXFwiLCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5pat5o+SOicgKyAoZG5lbiA9PSAnMScgPyAn4oCc4oCc4pyF4oCd4oCdJyA6ICfinY4nKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcnKS5sYXp5UnVsZSgoZG5lbikgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRuZW4gPT0gJzEnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoXFxcXFxcXCJkbmVuXFxcXFxcXCIsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suemgeeUqOaWreaPkuiwg+eUqCEnO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFxcXFxcImRuZW5cXFxcXFxcIiwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5byA5ZCv5pat5o+S6LCD55SoISdcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgZG5lbiksXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcXFxuICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+e6v+i3r+mFjee9ricsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL3BhZ2UvUm91dGU/cnVsZT1NeUZpZWxk4bSw4oG/JnR5cGU96K6+572uI25vUmVjb3JkSGlzdG9yeSNcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzInXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgLy/nur/ot6/liJfooahcXFxcbiAgICAgICAgICAgICAgICBsZXQgdGFicyA9IE9iamVjdC5rZXlzKGh0bWwudmlkZW9saXN0KTtcXFxcbiAgICAgICAgICAgICAgICBpZiAoZ2V0VmFyKFxcXFxcXFwibm93XFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXCIpID09IFxcXFxcXFwiXFxcXFxcXCIpIHsgcHV0VmFyKFxcXFxcXFwibm93XFxcXFxcXCIsIHRhYnNbMF0pIH1cXFxcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFxcXFxcXFwi4oCc4oCc4oaT4oaR4oCd4oCdXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2FwcG10dnNvcnQnLCBnZXRWYXIoJ2FwcG10dnNvcnQnLCcxJyk9PScxJz8nMCc6JzEnKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5YqfISdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxuICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgaW4gdGFicykge1xcXFxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBnZXRWYXIoXFxcXFxcXCJub3dcXFxcXFxcIikgPT0gdGFic1tpXSA/IFxcXFxcXFwi4oCc4oCc4oCd4oCdXFxcXFxcXCIgKyB0YWJzW2ldLmJvbGQoKS5mb250Y29sb3IoXFxcXFxcXCIjRkE3Mjk4XFxcXFxcXCIpIDogdGFic1tpXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ25vdycsJ1xcXFxcXFwiICsgdGFic1tpXSArIFxcXFxcXFwiJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKnyEnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG4gICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIC8v6KeG6aKR5YiX6KGoXFxcXG4gICAgICAgICAgICAgICAgbGV0IHB0YWIgPSBnZXRWYXIoXFxcXFxcXCJub3dcXFxcXFxcIiksXFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLnZpZGVvbGlzdFtwdGFiXTtcXFxcbiAgICAgICAgICAgICAgICBpZiAoZ2V0VmFyKCdhcHBtdHZzb3J0JywgJzEnKSA9PSAnMCcpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5yZXZlcnNlKCk7XFxcXG4gICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNyY3VybCA9IGxpc3Rbal0udXJsO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoLzI5M2p4MS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBzcmN1cmwgPSBzcmN1cmwucmVwbGFjZSgnMjkzangxJywgJ2p4Jyk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoLzhkOHF8ZGlsaWt0dnxoYW9rYW5qdTF8Y3p0dnxmaXRcXFxcXFxcXDo4fHBwemh1Ly50ZXN0KGRvbWluKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjdXJsID0gc3JjdXJsICsgJyZhcHA9MTAwMDAmYWNjb3VudD0yNzI3NzUwMjgmcGFzc3dvcmQ9cXEyNzI3NzUwMjgnO1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IGxpc3Rbal0udGl0bGU7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vdGl0bGUgPSB0aXRsZS5tYXRjaCgvKOesrHxcXFxcXFxcXGR8LSkqKOmbhnzor5185pyfKS9nKSA/IHRpdGxlLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJykgOiB0aXRsZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0XzRcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJCgpLmxhenlSdWxlKChwdGFiLCBzcmN1cmwsIGRvbWluKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKFxcXFxcXFwi57q/6LevOlxcXFxcXFwiICsgcHRhYiArIFxcXFxcXFwiXFxcXFxcXFxu5Y6f6ZO+5o6lOlxcXFxcXFwiICsgc3JjdXJsKTtcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIG9wZW51cmwocmVzdXJsKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZXN1cmwubWF0Y2goL3lvdWt1fG1ndHZ8aXhpZ3VhfHFxLmNvbXxxaXlpfG1pZ3V8YmlsaWJpbGl8c29odXxwcHR2fGxlfDE5MDUuY29tLykgJiYgcmVzdXJsLnNlYXJjaCgvaHRtbHxiaWxpYmlsaS8pICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZW5EbiA9IGdldE15VmFyKFxcXFxcXFwiZG5lblxcXFxcXFwiLCBcXFxcXFxcIjBcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5EbiA9PSAnMScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+iwg+eUqOaWreaPkuino+aekCcpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoXFxcXFxcXCJsZXQgY29uZmlnID1cXFxcXFxcIiArIGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9jYWNoZS9NeVBhcnNlU2V0Lmpzb25cXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoZmV0Y2goY29uZmlnLmNqKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGF5dG1QYXJzZShyZXN1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdXJsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggeW8gOWni1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvXFxcXFxcXFwubTN1OHxcXFxcXFxcXC5tcDR8b2JqXFxcXFxcXFwvdG9zLy50ZXN0KHNyY3VybCkgJiYgL2h0dHAvLnRlc3Qoc3JjdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC9cXFxcXFxcXD0vLnRlc3Qoc3JjdXJsKSA/IHNyY3VybC5zcGxpdCgnPScpWzFdIDogc3JjdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzcmN1cmwuaW5kZXhPZihcXFxcXFxcIi9zaGFyZS9cXFxcXFxcIikgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxpbmsgPSBzcmN1cmwuc3BsaXQoXFxcXFxcXCIvc2hhcmVcXFxcXFxcIilbMF0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZjID0gZmV0Y2goc3JjdXJsLCB7fSkucmVwbGFjZShcXFxcXFxcInZhciBwdXJsXFxcXFxcXCIsIFxcXFxcXFwidmFyIG1haW5cXFxcXFxcIiksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXkgPSBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmYy5pbmRleE9mKFxcXFxcXFwibWFpblxcXFxcXFwiKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWF0ID0gZmMubWF0Y2goL3ZhciBtYWluLio/Oy8pWzBdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKG1hdCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYXkgPSBtYWluLmluZGV4T2YoXFxcXFxcXCJodHRwXFxcXFxcXCIpICE9IC0xID8gbWFpbiA6IGxpbmsgKyBtYWluO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYWluID0gZmMubWF0Y2goL3VybDouKj9bXFxcXFxcXFwnXFxcXFxcXFxcXFxcXFxcIl0oLio/KVtcXFxcXFxcXCdcXFxcXFxcXFxcXFxcXFwiXS8pWzFdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGF5ID0gbWFpbi5pbmRleE9mKFxcXFxcXFwiaHR0cFxcXFxcXFwiKSAhPSAtMSA/IG1haW4gOiBsaW5rICsgbWFpbjtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwbGF5O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAneDVXZWJWaWV3Oi8vJyArIHNyY3VybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwdGFiID09ICdhbGl6eScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gZmV0Y2goJ2h0dHBzOi8vZm91YmluLmNvbS9qaWV4aS5waHA/dXJsPScgKyBzcmN1cmwsIHt9KS5tYXRjaCgvXFxcXFxcXFxcXFxcXFxcInVybFxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoLzE5anhcXFxcXFxcXC52aXB8bmZ5aW5nc2hpLy50ZXN0KHNyY3VybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gSlNPTi5wYXJzZShmZXRjaChzcmN1cmwucmVwbGFjZSgnaHR0cDovLycsICdodHRwczovLycpLCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogTU9CSUxFX1VBXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEhlYWRlcnM6IHRydWVcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKS5oZWFkZXJzLmxvY2F0aW9uWzBdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC90aXRhbi5tZ3R2Ly50ZXN0KHB1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL29ialxcXFxcXFxcL3Rvcy8udGVzdChwdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLS0tLeWIhuWJsue6vy0tLS0vL1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2NvZGUgPSBKU09OLnBhcnNlKGZldGNoKHNyY3VybCwge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBNT0JJTEVfVUFcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoU3RhdHVzQ29kZTogdHJ1ZVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb2RlLnN0YXR1c0NvZGUgPT0gJzMwMicgfHwgc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAxJykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVybCA9IHNjb2RlLmhlYWRlcnMubG9jYXRpb25bMF0ucmVwbGFjZSgvXFxcXFxcXFxcXFxcXFxcXC9nLCAnJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IHNjb2RlLmJvZHk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1xcXFxcXFxcXFxcXFxcXCJ1cmxcXFxcXFxcXFxcXFxcXFwiXFxcXFxcXFw6XFxcXFxcXFxcXFxcXFxcImh0dHAvLnRlc3QoaHRtbCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXJsID0gaHRtbC5tYXRjaCgvXFxcXFxcXFxcXFxcXFxcInVybFxcXFxcXFxcXFxcXFxcXCI6XFxcXFxcXFxcXFxcXFxcIiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdLnJlcGxhY2UoL1xcXFxcXFxcXFxcXFxcXFwvZywgJycpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLnN0YXJ0c1dpdGgoJ3snKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1cmwgPSBzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVDYWNoZSgnaHR0cHM6Ly9jb2RlLmFsaXl1bi5jb20vbHprMjM1NTkvUHVibGljUnVsZS9yYXcvbWFzdGVyL3g1cnVsZS5qcycsIDI0KTsgLy9UT0RPXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHg1cnVsZShzcmN1cmwsIHNyY3VybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvdGl0YW4ubWd0di8udGVzdChwdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvb2JqXFxcXFxcXFwvdG9zLy50ZXN0KHB1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybCArICcjaXNWaWRlbz10cnVlIyc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHVybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzcmN1cmwuc3Vic3RyaW5nKDAsIDIpID09ICdcXFxcXFxcXC9cXFxcXFxcXC8nKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybCgnaHR0cHM6JyArIHNyY3VybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFxcXFxcPWh0dHAvLnRlc3Qoc3JjdXJsKSAmJiAvXFxcXFxcXFwuaHRtbHxiaWxpYmlsaS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSkpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wZW51cmwoc3JjdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggee7k+adn1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSwgcHRhYiwgc3JjdXJsLCBkb21pbilcXFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIHNldFJlc3VsdChpdGVtcyk7XFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgIHBhZ2VzLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIG5hbWU6IFxcXFxcXFwiVFbliJfooahcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBwYXRoOiBcXFxcXFxcInR2bGlzdGRhdGFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX3R2bGlzdGRhdGFcXFxcbiAgICAgICAgICAgIH0sIHtcXFxcbiAgICAgICAgICAgICAgICBuYW1lOiBcXFxcXFxcIlRW6YCJ6ZuGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcXFxcXCJ0dm1vdmxpc3RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX3R2bW92bGlzdFxcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICBmaW5kX3J1bGUgPSBcXFxcXFxcImpzOlxcXFxcXFwiICsgJC50b1N0cmluZyhmdW5jdGlvbigpIHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgaXRlbXMgPSBbXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdHVybCA9IE1ZX1VSTC5zcGxpdCgnJCQnKVsxXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsID0gdHVybCArIE1ZX1VSTC5zcGxpdCgnJCQnKVsyXTtcXFxcbiAgICAgICAgICAgICAgICAvKmlmICgvZGlqaWF4aWEvLnRlc3QodHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdHVybCA9ICdodHRwOi8vd3d3LmRpamlheGlhLmNvbS9hcGkucGhwL2FwcC8nXFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIGlmICgvZmFudHVhbi8udGVzdCh0dXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICB0dXJsID0gJ2h0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL2FwaS5waHAvYXBwLydcXFxcbiAgICAgICAgICAgICAgICB9Ki9cXFxcbiAgICAgICAgICAgICAgICAvL+iOt+WPluWIhuexu+WGheWuuVxcXFxuICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxldCB0eXBlYyA9IFtdO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAodHVybC5zZWFyY2goL2FwaS5waHBcXFxcXFxcXC9hcHAvKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGNvZGUgPSByZXF1ZXN0KHR1cmwgKyBcXFxcXFxcIm5hdj90b2tlbj1cXFxcXFxcIiwge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IFxcXFxcXFwiRGFydC8yLjEzIChkYXJ0OmlvKVxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwY29kZS5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGNvZGUgPSBmZXRjaCh0dXJsICsgXFxcXFxcXCJuYXY/dG9rZW49XFxcXFxcXCIgKyAnJmJ0d2FmJyArIHR5cGNvZGUubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcXFxcXFxcXFwiLylbMV0sIHt9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVjID0gSlNPTi5wYXJzZSh0eXBjb2RlKS5saXN0O1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR1cmwuc2VhcmNoKC94Z2FwcC5waHBcXFxcXFxcXC92MS8pICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHlwY29kZSA9IHJlcXVlc3QodHVybCArIFxcXFxcXFwibmF2P3Rva2VuPVxcXFxcXFwiLCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogXFxcXFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBjb2RlLmluZGV4T2YoJ+ajgOa1i+S4rScpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwY29kZSA9IGZldGNoKHR1cmwgKyBcXFxcXFxcIm5hdj90b2tlbj1cXFxcXFxcIiArICcmYnR3YWYnICsgdHlwY29kZS5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXSwge30pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZWMgPSBKU09OLnBhcnNlKHR5cGNvZGUpLmRhdGE7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHlwY29kZSA9IHJlcXVlc3QodHVybCArIFxcXFxcXFwiL3R5cGVzXFxcXFxcXCIsIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBcXFxcXFxcIkRhcnQvMi4xMyAoZGFydDppbylcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGNvZGUuaW5kZXhPZign5qOA5rWL5LitJykgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBjb2RlID0gZmV0Y2godHVybCArIFxcXFxcXFwiL3R5cGVzXFxcXFxcXCIgKyAnP2J0d2FmJyArIHR5cGNvZGUubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcXFxcXFxcXFwiLylbMV0sIHt9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVjID0gSlNPTi5wYXJzZSh0eXBjb2RlKS5kYXRhLmxpc3Q7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgLy/ojrflj5bliIbnsbvliJfooahcXFxcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlYy5sZW5ndGg7IGkrKykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/liIbnsbvop4bpopHlnLDlnYBcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXVybCA9IFxcXFxcXFwiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZUFycmF5ID0gT2JqZWN0LmtleXModHlwZWNbaV0udHlwZV9leHRlbmQpLmZpbHRlcihjdXIgPT4gW1xcXFxcXFwiY2xhc3NcXFxcXFxcIiwgXFxcXFxcXCJhcmVhXFxcXFxcXCIsIFxcXFxcXFwibGFuZ1xcXFxcXFwiLCBcXFxcXFxcInllYXJcXFxcXFxcIl0uaW5jbHVkZXMoY3VyKSksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZVVybCA9IHR5cGVBcnJheS5tYXAoY3VyID0+IGN1ciArIFxcXFxcXFwiPWZcXFxcXFxcIiArIGN1cikuam9pbihcXFxcXFxcIiZcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHVybC5pbmRleE9mKCdhcGkucGhwL2FwcC8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gdHVybCArICd2aWRlbz90aWQ9JyArIHR5cGVjW2ldLnR5cGVfaWQgKyAnJnBhZ2U9ZnlwYWdlJnRva2VuPSYnICsgdHlwZVVybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHVybC5pbmRleE9mKCd4Z2FwcC5waHAvdjEvJykgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXVybCA9IHR1cmwgKyAndmlkZW8/dGlkPScgKyB0eXBlY1tpXS50eXBlX2lkICsgJyZwYWdlPWZ5cGFnZSYnICsgdHlwZVVybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdCh0dXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXVybCA9IHR1cmwgKyAnL2xpc3Q/dHlwZT0nICsgdHlwZWNbaV0udHlwZV9pZCArICcmcGFnZT1meXBhZ2UmYnk9ZmJ5JmxpbWl0PTkmJyArIHR5cGVVcmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHl1cmwgPSB0dXJsICsgJz90eXBlPScgKyB0eXBlY1tpXS50eXBlX2lkICsgJyZwYWdlPWZ5cGFnZSZieT1mYnkmbGltaXQ9OSYnICsgdHlwZVVybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL+aehOW7uuWKqOaAgeWIhuexu1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHR5cGVjW2ldLnR5cGVfbmFtZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoXFxcXFxcXCJoaWtlcjovL2VtcHR5IyNcXFxcXFxcIiArIHR5dXJsKS5ydWxlKCh0dXJsLCB0eXBlX2V4dGVuZCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihcXFxcXFxcIm9uQ2xvc2VcXFxcXFxcIiwgXFxcXFxcXCJjbGVhclZhcignZmlsdGVyJylcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoTVlfUEFHRSA9PSAxKSB7IC8v5Yqo5oCB5YiG57G7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQga2V5cyA9IHt9LFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IHt9LFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlck5hbWVzID0geyBjbGFzczogXFxcXFxcXCLnsbvlnotcXFxcXFxcIiwgYXJlYTogXFxcXFxcXCLlnLDljLpcXFxcXFxcIiwgbGFuZzogXFxcXFxcXCLor63oqIBcXFxcXFxcIiwgeWVhcjogXFxcXFxcXCLlubTku71cXFxcXFxcIiwgc3RhcjogXFxcXFxcXCLmmI7mmJ9cXFxcXFxcIiwgZGlyZWN0b3I6IFxcXFxcXFwi5a+85ryUXFxcXFxcXCIsIHN0YXRlOiBcXFxcXFxcIueKtuaAgVxcXFxcXFwiLCB2ZXJzaW9uOiBcXFxcXFxcIueJiOacrFxcXFxcXFwiIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdEZpbHRlciA9IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmNsYXNzOiBbXFxcXFxcXCLlhajpg6jnsbvlnotcXFxcXFxcIiwgXFxcXFxcXCLllpzliadcXFxcXFxcIiwgXFxcXFxcXCLniLHmg4VcXFxcXFxcIiwgXFxcXFxcXCLmgZDmgJZcXFxcXFxcIiwgXFxcXFxcXCLliqjkvZxcXFxcXFxcIiwgXFxcXFxcXCLnp5HlubtcXFxcXFxcIiwgXFxcXFxcXCLliafmg4VcXFxcXFxcIiwgXFxcXFxcXCLmiJjkuolcXFxcXFxcIiwgXFxcXFxcXCLorabljKpcXFxcXFxcIiwgXFxcXFxcXCLniq/nvapcXFxcXFxcIiwgXFxcXFxcXCLliqjnlLtcXFxcXFxcIiwgXFxcXFxcXCLlpYflubtcXFxcXFxcIiwgXFxcXFxcXCLmrabkvqBcXFxcXFxcIiwgXFxcXFxcXCLlhpLpmalcXFxcXFxcIiwgXFxcXFxcXCLmnqrmiJhcXFxcXFxcIiwgXFxcXFxcXCLmgqznlpFcXFxcXFxcIiwgXFxcXFxcXCLmg4rmgppcXFxcXFxcIiwgXFxcXFxcXCLnu4/lhbhcXFxcXFxcIiwgXFxcXFxcXCLpnZLmmKVcXFxcXFxcIiwgXFxcXFxcXCLmlofoibpcXFxcXFxcIiwgXFxcXFxcXCLlvq7nlLXlvbFcXFxcXFxcIiwgXFxcXFxcXCLlj6Too4VcXFxcXFxcIiwgXFxcXFxcXCLljoblj7JcXFxcXFxcIiwgXFxcXFxcXCLov5DliqhcXFxcXFxcIiwgXFxcXFxcXCLlhpzmnZFcXFxcXFxcIiwgXFxcXFxcXCLlhL/nq6VcXFxcXFxcIiwgXFxcXFxcXCLnvZHnu5znlLXlvbFcXFxcXFxcIl0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcmVhOiBbXFxcXFxcXCLlhajpg6jlnLDljLpcXFxcXFxcIiwgXFxcXFxcXCLlhoXlnLBcXFxcXFxcIiwgXFxcXFxcXCLpppnmuK9cXFxcXFxcIiwgXFxcXFxcXCLlj7Dmub5cXFxcXFxcIiwgXFxcXFxcXCLnvo7lm71cXFxcXFxcIiwgXFxcXFxcXCLoi7Hlm71cXFxcXFxcIiwgXFxcXFxcXCLms5Xlm71cXFxcXFxcIiwgXFxcXFxcXCLml6XmnKxcXFxcXFxcIiwgXFxcXFxcXCLpn6nlm71cXFxcXFxcIiwgXFxcXFxcXCLlvrflm71cXFxcXFxcIiwgXFxcXFxcXCLms7Dlm71cXFxcXFxcIiwgXFxcXFxcXCLljbDluqZcXFxcXFxcIiwgXFxcXFxcXCLopb/nj63niZlcXFxcXFxcIiwgXFxcXFxcXCLliqDmi7/lpKdcXFxcXFxcIiwgXFxcXFxcXCLlhbbku5ZcXFxcXFxcIl0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ5ZWFyOiBbXFxcXFxcXCLlhajpg6jlubTku71cXFxcXFxcIiwgXFxcXFxcXCIyMDIyXFxcXFxcXCIsIFxcXFxcXFwiMjAyMVxcXFxcXFwiLCBcXFxcXFxcIjIwMjBcXFxcXFxcIiwgXFxcXFxcXCIyMDE5XFxcXFxcXCIsIFxcXFxcXFwiMjAxOFxcXFxcXFwiLCBcXFxcXFxcIjIwMTdcXFxcXFxcIiwgXFxcXFxcXCIyMDE2XFxcXFxcXCIsIFxcXFxcXFwiMjAxNVxcXFxcXFwiLCBcXFxcXFxcIjIwMTRcXFxcXFxcIiwgXFxcXFxcXCIyMDEzXFxcXFxcXCIsIFxcXFxcXFwiMjAxMlxcXFxcXFwiLCBcXFxcXFxcIjIwMTFcXFxcXFxcIiwgXFxcXFxcXCIyMDEwXFxcXFxcXCIsIFxcXFxcXFwiMjAwOVxcXFxcXFwiLCBcXFxcXFxcIjIwMDhcXFxcXFxcIiwgXFxcXFxcXCIyMDA3XFxcXFxcXCIsIFxcXFxcXFwiMjAwNlxcXFxcXFwiLCBcXFxcXFxcIjIwMDVcXFxcXFxcIiwgXFxcXFxcXCIyMDA0XFxcXFxcXCIsIFxcXFxcXFwiMjAwM1xcXFxcXFwiLCBcXFxcXFxcIjIwMDJcXFxcXFxcIiwgXFxcXFxcXCIyMDAxXFxcXFxcXCIsIFxcXFxcXFwiMjAwMFxcXFxcXFwiXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxhbmc6IFtcXFxcXFxcIuWFqOmDqOivreiogFxcXFxcXFwiLCBcXFxcXFxcIuWbveivrVxcXFxcXFwiLCBcXFxcXFxcIuiLseivrVxcXFxcXFwiLCBcXFxcXFxcIueypOivrVxcXFxcXFwiLCBcXFxcXFxcIumXveWNl+ivrVxcXFxcXFwiLCBcXFxcXFxcIumfqeivrVxcXFxcXFwiLCBcXFxcXFxcIuaXpeivrVxcXFxcXFwiLCBcXFxcXFxcIuazleivrVxcXFxcXFwiLCBcXFxcXFxcIuW+t+ivrVxcXFxcXFwiLCBcXFxcXFxcIuWFtuS7llxcXFxcXFwiXVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gdHlwZV9leHRlbmQpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVtcXFxcXFxcImNsYXNzXFxcXFxcXCIsIFxcXFxcXFwiYXJlYVxcXFxcXFwiLCBcXFxcXFxcImxhbmdcXFxcXFxcIiwgXFxcXFxcXCJ5ZWFyXFxcXFxcXCJdLmluY2x1ZGVzKGtleSkpIGNvbnRpbnVlO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXNbXFxcXFxcXCJmXFxcXFxcXCIgKyBrZXldID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzW1xcXFxcXFwiZmJ5XFxcXFxcXCJdID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlsdGVyTmFtZSA9IFxcXFxcXFwi5YWo6YOoXFxcXFxcXCIgKyBmaWx0ZXJOYW1lc1trZXldO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcltcXFxcXFxcImZcXFxcXFxcIiArIGtleV0gPSBbZmlsdGVyTmFtZV0uY29uY2F0KHR5cGVfZXh0ZW5kW2tleV0uc3BsaXQoXFxcXFxcXCIsXFxcXFxcXCIpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmlsdGVyW1xcXFxcXFwiZlxcXFxcXFwiICsga2V5XS5sZW5ndGggPT0gMikge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJbXFxcXFxcXCJmXFxcXFxcXCIgKyBrZXldID0gZGVmYXVsdEZpbHRlcltcXFxcXFxcImZcXFxcXFxcIiArIGtleV1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdldFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFwiKSkgeyBwdXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIiwgSlNPTi5zdHJpbmdpZnkoa2V5cykpIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIikpLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yID0gXFxcXFxcXCIjRkE3Mjk4XFxcXFxcXCI7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIGluIGZpbHRlcikge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmaWx0ZXJbaXRlbV0ubGVuZ3RoOyBpbmRleCsrKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRlbXBbaXRlbV0gPT0gXFxcXFxcXCJcXFxcXFxcIiA/IChpbmRleCA9PT0gMCA/IFxcXFxcXFwi4oCc4oCc4oCd4oCdXFxcXFxcXCIgKyBmaWx0ZXJbaXRlbV1bMF0uYm9sZCgpLmZvbnRjb2xvcihjb2xvcikgOiBmaWx0ZXJbaXRlbV1baW5kZXhdKSA6ICh0ZW1wW2l0ZW1dID09IGZpbHRlcltpdGVtXVtpbmRleF0gPyBcXFxcXFxcIuKAnOKAnOKAneKAnVxcXFxcXFwiICsgZmlsdGVyW2l0ZW1dW2luZGV4XS5ib2xkKCkuZm9udGNvbG9yKGNvbG9yKSA6IGZpbHRlcltpdGVtXVtpbmRleF0pLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwic2Nyb2xsX2J1dHRvblxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCkubGF6eVJ1bGUoKGRlcywgbmFtZSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbbmFtZV0gPSBkZXMuaW5kZXhPZihcXFxcXFxcIuWFqOmDqFxcXFxcXFwiKSAhPSAtMSA/IFxcXFxcXFwiXFxcXFxcXCIgOiBkZXM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0VmFyKFxcXFxcXFwiZmlsdGVyXFxcXFxcXCIsIEpTT04uc3RyaW5naWZ5KHRlbXApKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBmaWx0ZXJbaXRlbV1baW5kZXhdLCBpdGVtKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHsgY29sX3R5cGU6IFxcXFxcXFwiYmxhbmtfYmxvY2tcXFxcXFxcIiB9KVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJ5ID0geyDpu5jorqTpobrluo86IFxcXFxcXFwiXFxcXFxcXCIsIOacgOaWsDogXFxcXFxcXCJ0aW1lXFxcXFxcXCIsIOacgOeDrTogXFxcXFxcXCJoaXRzXFxcXFxcXCIsIOivhOWIhjogXFxcXFxcXCJzY29yZVxcXFxcXFwiIH07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHVybC5pbmRleE9mKCdhcGkucGhwL2FwcC8nKSA9PSAtMSAmJiB0dXJsLmluZGV4T2YoJ3hnYXBwLnBocC92MS8nKSA9PSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gaW4gYnkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGVtcFtcXFxcXFxcImZieVxcXFxcXFwiXSA9PSBieVtpdGVtXSA/IFxcXFxcXFwi4oCc4oCc4oCd4oCdXFxcXFxcXCIgKyBpdGVtLmJvbGQoKS5mb250Y29sb3IoY29sb3IpIDogaXRlbSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInNjcm9sbF9idXR0b25cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJCgpLmxhenlSdWxlKChkZXMpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IEpTT04ucGFyc2UoZ2V0VmFyKFxcXFxcXFwiZmlsdGVyXFxcXFxcXCIpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW1xcXFxcXFwiZmJ5XFxcXFxcXCJdID0gZGVzO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiLCBKU09OLnN0cmluZ2lmeSh0ZW1wKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYnlbaXRlbV0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9IE1ZX1VSTC5zcGxpdChcXFxcXFxcIiMjXFxcXFxcXCIpWzFdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIGluIHRlbXApIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKGl0ZW0sIHRlbXBbaXRlbV0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNjb2RlID0gZmV0Y2godXJsLCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IFxcXFxcXFwiRGFydC8yLjEzIChkYXJ0OmlvKVxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzY29kZS5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzY29kZSA9IGZldGNoKHVybCArICcmYnR3YWYnICsgcmVzY29kZS5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXSwge30pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBodG1sID0gSlNPTi5wYXJzZShyZXNjb2RlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbGlzdGRhdGEnLCB7fSkpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoaXRlbXMpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHR1cmwsIHR5cGVjW2ldLnR5cGVfZXh0ZW5kKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2ZsZXhfYnV0dG9uJ1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgICAgICAgICAgICAgLy/ojrflj5bmjqjojZDop4bpopHliJfooahcXFxcbiAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IHJlcXVlc3QodXJsLCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IFxcXFxcXFwiRGFydC8yLjEzIChkYXJ0OmlvKVxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbC5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGZldGNoKHVybCArICcmYnR3YWYnICsgaHRtbC5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXSwge30pO1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBKU09OLnBhcnNlKGh0bWwpO1xcXFxuICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBpbmRleGRhdGEnLCB7fSkpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgICAgICAgICAgICAgc2V0UmVzdWx0KGl0ZW1zKTtcXFxcbiAgICAgICAgICAgIH0pXFxcXG5cXFxcbiAgICAgICAgICAgIGxldCBydWxlX2FwcGxpc3RkYXRhID0gJC50b1N0cmluZyhmdW5jdGlvbigpIHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgbGlzdCA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIGlmIChodG1sLmxpc3QpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwubGlzdDtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5kYXRhLmxpc3Q7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwuZGF0YTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IHsgdm9kX25hbWUsIHZvZF9waWMsIHZvZF9pZCwgdm9kX3JlbWFya3MgfSA9IGxpc3RbaV07XFxcXG4gICAgICAgICAgICAgICAgICAgIGxldCBsaW5rID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGh0bWwubGlzdCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9IHR1cmwgKyAndmlkZW9fZGV0YWlsP2lkPScgKyB2b2RfaWQgKyAnJnRva2VuPTtnZXQ7dXRmLTg7e1VzZXItQWdlbnRARGFydC8yLjEzIChkYXJ0OmlvKX0nO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9IHR1cmwgKyAnL2RldGFpbD92b2RfaWQ9JyArIHZvZF9pZCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gdHVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHZvZF9pZCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QodHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSB0dXJsICsgJy9kZXRhaWxJRD92b2RfaWQ9JyArIHZvZF9pZCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgLyplbHNlIGlmICgvZmFudHVhbi8udGVzdCh0dXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9ICdodHRwczovL2ZhbnR1YW4ud2tmaWxlLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIHZvZF9pZCArICcmdG9rZW49O2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL2RpamlheGlhLy50ZXN0KHR1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gJ2h0dHA6Ly93d3cuZGlqaWF4aWEuY29tL2FwaS5waHAvYXBwL3ZpZGVvX2RldGFpbD9pZD0nICsgdm9kX2lkO1xcXFxuICAgICAgICAgICAgICAgICAgICB9Ki9cXFxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdm9kX25hbWUsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiB2b2RfcGljICsgJ0BSZWZlcmVyPScsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiB2b2RfcmVtYXJrcyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfM19tYXJxdWVlJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJChcXFxcXFxcImhpa2VyOi8vZW1wdHkjI1xcXFxcXFwiICsgbGluaykucnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcsIHt9KSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coZS5tZXNzYWdlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KFtdKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgbGV0IHJ1bGVfYXBwaW5kZXhkYXRhID0gJC50b1N0cmluZyhmdW5jdGlvbigpIHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgbGlzdCA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIGlmIChodG1sLmxpc3QpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwubGlzdDtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSAmJiBodG1sLmRhdGEubGlzdCkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5kYXRhLmxpc3Q7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwuZGF0YTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxpc3RzID0gW10sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmIChsaXN0W2ldLnZvZF9saXN0KSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0cyA9IGxpc3RbaV0udm9kX2xpc3Q7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSA9IGxpc3RbaV0udm9kX3R5cGVfbmFtZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RzID0gbGlzdFtpXS52bGlzdDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lID0gbGlzdFtpXS50eXBlX25hbWVcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHR5cGVuYW1lLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaXN0cy5sZW5ndGg7IGorKykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHsgdm9kX25hbWUsIHZvZF9waWMsIHZvZF9pZCwgdm9kX3JlbWFya3MgfSA9IGxpc3RzW2pdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxpbmsgPSBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGh0bWwubGlzdCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSB0dXJsICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgdm9kX2lkICsgJyZ0b2tlbj07Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xMyAoZGFydDppbyl9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhICYmIGh0bWwuZGF0YS5saXN0KSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9IHR1cmwgKyAnL2RldGFpbD92b2RfaWQ9JyArIHZvZF9pZCArICcmcmVsX2xpbWl0PTEwO2dldDt1dGYtODt7VXNlci1BZ2VudEBEYXJ0LzIuMTMgKGRhcnQ6aW8pfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSB0dXJsICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgdm9kX2lkICsgJyZ0b2tlbj07Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xMyAoZGFydDppbyl9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2lvcGVueXVuLy50ZXN0KHR1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9IHR1cmwgKyAnL2RldGFpbElEP3ZvZF9pZD0nICsgdm9kX2lkICsgJyZyZWxfbGltaXQ9MTA7Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xMyAoZGFydDppbyl9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8qZWxzZSBpZiAoL2ZhbnR1YW4vLnRlc3QodHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gJ2h0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL2FwaS5waHAvYXBwL3ZpZGVvX2RldGFpbD9pZD0nICsgdm9kX2lkICsgJyZ0b2tlbj07Z2V0O3V0Zi04O3tVc2VyLUFnZW50QERhcnQvMi4xMyAoZGFydDppbyl9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL2RpamlheGlhLy50ZXN0KHR1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9ICdodHRwOi8vd3d3LmRpamlheGlhLmNvbS9hcGkucGhwL2FwcC92aWRlb19kZXRhaWw/aWQ9JyArIHZvZF9pZDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0qL1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHZvZF9uYW1lLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHZvZF9waWMgKyAnQFJlZmVyZXI9JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiB2b2RfcmVtYXJrcyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZScsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKFxcXFxcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcXFxcXCIgKyBsaW5rKS5ydWxlKCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2FwcG1vdmxpc3QnLCB7fSkpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coZS5tZXNzYWdlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChbXSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICBsZXQgcnVsZV9hcHBtb3ZsaXN0ID0gJC50b1N0cmluZyhmdW5jdGlvbigpIHtcXFxcbiAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihcXFxcXFxcIm9uQ2xvc2VcXFxcXFxcIiwgJC50b1N0cmluZygodXJsKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVmFyKCdhcHBub3cnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJWYXIodXJsKTtcXFxcbiAgICAgICAgICAgICAgICB9LCBNWV9VUkwpKTtcXFxcbiAgICAgICAgICAgICAgICBsZXQgaXRlbXMgPSBbXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGdldFZhcihNWV9VUkwsIFxcXFxcXFwiXFxcXFxcXCIpLFxcXFxuICAgICAgICAgICAgICAgICAgICBkb21pbiA9IE1ZX1VSTC5zcGxpdChcXFxcXFxcIiMjXFxcXFxcXCIpWzFdLm1hdGNoKC8oW1xcXFxcXFxcU10qPzpcXFxcXFxcXC9cXFxcXFxcXC9bXFxcXFxcXFxTXSo/KVxcXFxcXFxcLy8pWzFdO1xcXFxuICAgICAgICAgICAgICAgIGlmIChodG1sID09IFxcXFxcXFwiXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGZldGNoKE1ZX1VSTC5zcGxpdChcXFxcXFxcIiMjXFxcXFxcXCIpWzFdLCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IFxcXFxcXFwiRGFydC8yLjEzIChkYXJ0OmlvKVxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICBwdXRWYXIoTVlfVVJMLCBodG1sKTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoaHRtbCk7XFxcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAnJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogJzI1NSYmZmxvYXQnLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICcnLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3g1X3dlYnZpZXdfc2luZ2xlJ1xcXFxuICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hYNVdlYlZpZXcoJycpO1xcXFxuICAgICAgICAgICAgICAgIC8v566A5LuLXFxcXG4gICAgICAgICAgICAgICAgbGV0IHRodW1iID0gaHRtbC5kYXRhLnZvZF9pbmZvID8gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF9waWMgOiBodG1sLmRhdGEudm9kX3BpYyxcXFxcbiAgICAgICAgICAgICAgICAgICAgZGVzID0gaHRtbC5kYXRhLnZvZF9pbmZvID8gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF9jb250ZW50IDogaHRtbC5kYXRhLnZvZF9jb250ZW50O1xcXFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WJp+aDheeugOS7izonLFxcXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiBkZXMsXFxcXG4gICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHRodW1iLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IycpLnJ1bGUoKGRlcykgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KFt7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IGRlcyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1dKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgZGVzKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYydcXFxcbiAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICAvL+aWreaPklxcXFxuICAgICAgICAgICAgICAgIGxldCBkbmVuID0gZ2V0TXlWYXIoXFxcXFxcXCJkbmVuXFxcXFxcXCIsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfmlq3mj5I6JyArIChkbmVuID09ICcxJyA/ICfigJzigJzinIXigJ3igJ0nIDogJ+KdjicpLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJycpLmxhenlSdWxlKChkbmVuKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG5lbiA9PSAnMScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFxcXFxcImRuZW5cXFxcXFxcIiwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey56aB55So5pat5o+S6LCD55SoISc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXFxcXFwiZG5lblxcXFxcXFwiLCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LlvIDlkK/mlq3mj5LosIPnlKghJ1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICB9LCBkbmVuKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzInXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn57q/6Lev6YWN572uJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcXFxcXFxcImhpa2VyOi8vcGFnZS9Sb3V0ZT9ydWxlPU15RmllbGThtLDigb8mdHlwZT3orr7nva4jbm9SZWNvcmRIaXN0b3J5I1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMidcXFxcbiAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IFxcXFxcXFwi4oCc4oCc4oaT4oaR4oCd4oCdXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2FwcG1hcHBzb3J0JywgZ2V0VmFyKCdhcHBtYXBwc29ydCcsJzEnKT09JzEnPycwJzonMScpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip8hJ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgLy/nur/ot6/liJfooahcXFxcbiAgICAgICAgICAgICAgICBsZXQgY29udHMgPSBbXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdGFicyA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIGlmIChodG1sLmRhdGEudm9kX3VybF93aXRoX3BsYXllcikge1xcXFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYnMgPSBodG1sLmRhdGEudm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfaW5mbyAmJiBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcikge1xcXFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX2luZm8udm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYnMgPSBodG1sLmRhdGEudm9kX2luZm8udm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV9saXN0O1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYnMgPSBodG1sLmRhdGEudm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgbGV0IGxpc3QgPSBbXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgcHRhYiA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICAgICAgaWYgKGdldFZhcihcXFxcXFxcImFwcG5vd1xcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFwiKSA9PSBcXFxcXFxcIlxcXFxcXFwiKSB7IHB1dFZhcihcXFxcXFxcImFwcG5vd1xcXFxcXFwiLCBcXFxcXFxcIjBcXFxcXFxcIikgfVxcXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29udHMubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBzcHRhYiA9IGNvbnRzW2ldLmNvZGUgPyBjb250c1tpXS5jb2RlIDogdGFic1tpXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwdGFiID0gY29udHNbaV0uY29kZSA/IGNvbnRzW2ldLmNvZGUgOiB0YWJzW2ldO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgc3B0YWIgPSBjb250c1tpXS5mcm9tID8gY29udHNbaV0uZnJvbSA6IHRhYnNbaV07XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZ2V0VmFyKFxcXFxcXFwiYXBwbm93XFxcXFxcXCIpID09IGkgPyBcXFxcXFxcIuKAnOKAnOKAneKAnVxcXFxcXFwiICsgc3B0YWIuYm9sZCgpLmZvbnRjb2xvcihcXFxcXFxcIiNGQTcyOThcXFxcXFxcIikgOiBzcHRhYixcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2FwcG5vdycsJ1xcXFxcXFwiICsgaSArIFxcXFxcXFwiJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKnyEnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG4gICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgICAgIGlmIChnZXRWYXIoXFxcXFxcXCJhcHBub3dcXFxcXFxcIikgPT0gaSkgeyBwdGFiID0gc3B0YWIgfVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAvL+inhumikeWIl+ihqFxcXFxuICAgICAgICAgICAgICAgIGxldCBpID0gZ2V0VmFyKFxcXFxcXFwiYXBwbm93XFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgIGlmIChjb250c1tpXS51cmxzKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBjb250c1tpXS51cmxzO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJsKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBjb250c1tpXS51cmwuc3BsaXQoXFxcXFxcXCIjXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBjb250c1tpXS5zcGxpdChcXFxcXFxcIiNcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICBpZiAoZ2V0VmFyKCdhcHBtYXBwc29ydCcsICcxJykgPT0gJzAnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QucmV2ZXJzZSgpO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IHZsaW5rID0gXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHNbaV0udXJscykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmxpbmsgPSBsaXN0W2pdLnVybC5yZXBsYWNlKC8jNDU2Iy9nLCAnaHR0cCcpLnJlcGxhY2UoLyMxMjMjL2csICcuJykucmVwbGFjZSgvIzc4OSMvZywgJzonKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gbGlzdFtqXS5uYW1lO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmxpbmsgPSBsaXN0W2pdLnNwbGl0KFxcXFxcXFwiJFxcXFxcXFwiKVsxXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gbGlzdFtqXS5zcGxpdChcXFxcXFxcIiRcXFxcXFxcIilbMF07XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgLy90aXRsZSA9IHRpdGxlLm1hdGNoKC8o56ysfFxcXFxcXFxcZHwtKSoo6ZuGfOivnXzmnJ8pL2cpID8gdGl0bGUucmVwbGFjZSgv56ysfOmbhnzor5185pyfL2csICcnKSA6IHRpdGxlO1xcXFxuICAgICAgICAgICAgICAgICAgICAvL+ino+aekOaOpeWPo1xcXFxuICAgICAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgamllayA9IGNvbnRzW2ldLnBhcnNlX2FwaTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaHRtbC5kYXRhLnZvZF9pbmZvICYmIGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgamllayA9IGNvbnRzW2ldLnBhcnNlX2FwaTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRzW2ldLnBsYXllcl9pbmZvLnBhcnNlMiAmJiAoY29udHNbaV0ucGxheWVyX2luZm8ucGFyc2UyKS5pbmRleE9mKFxcXFxcXFwiPVxcXFxcXFwiKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaWVrID0gKGNvbnRzW2ldLnBsYXllcl9pbmZvLnBhcnNlMikubWF0Y2goLy4qP3VybD18Lio/dj18Lio/dmlkPS8pWzBdLnJlcGxhY2UoXFxcXFxcXCIuLlxcXFxcXFwiLCBcXFxcXFxcIi5cXFxcXFxcIikucmVwbGFjZSgnanNvbmJzJywgJycpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0ucGxheWVyX2luZm8ucGFyc2UgJiYgKGNvbnRzW2ldLnBsYXllcl9pbmZvLnBhcnNlKS5pbmRleE9mKFxcXFxcXFwiPVxcXFxcXFwiKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaWVrID0gKGNvbnRzW2ldLnBsYXllcl9pbmZvLnBhcnNlKS5tYXRjaCgvLio/dXJsPXwuKj92PXwuKj92aWQ9LylbMF0ucmVwbGFjZShcXFxcXFxcIi4uXFxcXFxcXCIsIFxcXFxcXFwiLlxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqaWVrID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmIChqaWVrICE9ICcnICYmIGppZWsgIT0gbnVsbCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGppZWsuc3Vic3RyaW5nKDAsIDQpID09ICdodHRwJykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSBqaWVrO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChqaWVrLnN1YnN0cmluZygwLCAyKSA9PSAnXFxcXFxcXFwvXFxcXFxcXFwvJykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSAnaHR0cHM6JyArIGppZWs7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgLy/lr7nlpLHmlYjmjqXlj6Pov5vooYzmm7/mjaJcXFxcbiAgICAgICAgICAgICAgICAgICAgLyppZiAoL2Nva2Vtdi8udGVzdChkb21pbikgJiYgL2Nva2VxaWV8eGlufDkwbW0vLnRlc3QocHRhYikpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSAnaHR0cHM6Ly9wbGF5ZXIuOTBtbS5tZS9wbGF5LnBocD91cmw9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvanNvblxcXFxcXFxcLm0zdThcXFxcXFxcXC50di8udGVzdChqaWVrKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgamllayA9ICdodHRwczovL2p4Lm0zdTgudHYvamlleGkvP3VybD0nO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9janQ1MjEvLnRlc3QoZG9taW4pKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBqaWVrID0gY29udHNbaV0ucGxheWVyX2luZm8ucGFyc2U7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoamllay5pbmRleE9mKCdqcGcuaG91Lmx1L2ptL3phL2luZGV4LnBocCcpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBqaWVrID0gJ2h0dHA6Ly92aXAubWVuZ3gudmlwL2hvbWUvYXBpP3R5cGU9eXMmdWlkPTMyNDk2OTYma2V5PWFlZnFydHV3eHlFRkhLTk9RWSZ1cmw9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwdGFiID09ICdyZW5yZW5taScgJiYgamllay5zZWFyY2goL2poZHl3LykgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSAnaHR0cDovL3d3dy4xMDgwa2FuLmNjL2ppZXhpL3JybWkucGhwP3VybD0nO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ2ZxZmlsbScgJiYgamllay5zZWFyY2goL2poZHl3LykgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSAnaHR0cDovL3d3dy4xMDgwa2FuLmNjL2ppZXhpL2ZxLnBocD91cmw9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwdGFiID09ICdycnNwJyAmJiBqaWVrLnNlYXJjaCgvamhkeXcvKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgamllayA9ICdodHRwOi8vd3d3LjEwODBrYW4uY2MvamlleGkvcnIucGhwP3VybD0nO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9qaHl1blxcXFxcXFxcLnBocC8udGVzdChqaWVrKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgamllayA9IGppZWsucmVwbGFjZSgnaHR0cDovL3N2aXAuamh5dW4uanguY246MTIzNC9qaHl1bi5waHA/dXJsPScsICdodHRwczovL2FwaS5qaGR5dy52aXAvP3VybD0nKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfTsqL1xcXFxuICAgICAgICAgICAgICAgICAgICAvL+aJk+WNsOaOpeWPo1xcXFxuICAgICAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGogPT0gJzAnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCdcXFxcXFxcXG7nur/ot686JyArIHB0YWIgKyAnXFxcXFxcXFxu6Kej5p6Q5o6l5Y+jOicgKyBqaWVrKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cXFxcbiAgICAgICAgICAgICAgICAgICAgLy/lo7DmmI7pk77mjqVcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxpbmsgPSBqaWVrICsgdmxpbms7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvXFxcXFxcXFwubTN1OHxcXFxcXFxcXC5tcDR8b2JqXFxcXFxcXFwvdG9zLy50ZXN0KHZsaW5rKSAmJiAvaHR0cC8udGVzdCh2bGluaykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSB2bGluaztcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvc2lnbj0vLnRlc3QodmxpbmspKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gdmxpbms7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInRleHRfNFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCcnKS5sYXp5UnVsZSgocHRhYiwgc3JjdXJsLCBkb21pbikgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFxcXFxcIuWOn+mTvuaOpTpcXFxcXFxcIiArIHNyY3VybCk7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBvcGVudXJsKHJlc3VybCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdXJsLm1hdGNoKC95b3VrdXxtZ3R2fGl4aWd1YXxxcS5jb218cWl5aXxtaWd1fGJpbGliaWxpfHNvaHV8cHB0dnxsZXwxOTA1LmNvbS8pICYmIHJlc3VybC5zZWFyY2goL2h0bWx8YmlsaWJpbGkvKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGVuRG4gPSBnZXRNeVZhcihcXFxcXFxcImRuZW5cXFxcXFxcIiwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuRG4gPT0gJzEnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCfosIPnlKjmlq3mj5Lop6PmnpAnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKFxcXFxcXFwibGV0IGNvbmZpZyA9XFxcXFxcXCIgKyBmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvY2FjaGUvTXlQYXJzZVNldC5qc29uXFxcXFxcXCIpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGNvbmZpZy5jaikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBheXRtUGFyc2UocmVzdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdXJsO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggeW8gOWni1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5aSE55CG5oyH5a6a6KeG6aKR5LiO57q/6LevXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvXFxcXFxcXFwubTN1OHxcXFxcXFxcXC5tcDR8b2JqXFxcXFxcXFwvdG9zfG5ldGVhc2VcXFxcXFxcXC5jb20vLnRlc3Qoc3JjdXJsKSAmJiAvaHR0cC8udGVzdChzcmN1cmwpICYmICEvXFxcXFxcXFwuaHRtbC8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL3drZmlsZS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNyY3VybCArICc7e1JlZmVyZXJAaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9kdW9kdW96eS8udGVzdChwdGFiKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBqc29uID0gZmV0Y2goJ2h0dHBzOi8vcGxheWVyLmR1b2R1b3p5LmNvbS9kZHBsYXkvYXBpLnBocD91cmw9JyArIHNyY3VybCwge30pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGpzb24pLnVybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL3NpZ249Ly50ZXN0KHNyY3VybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc3JjdXJsICsgXFxcXFxcXCIjaXNWaWRlbz10cnVlI1xcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gL1xcXFxcXFxcPS8udGVzdChzcmN1cmwpID8gc3JjdXJsLnNwbGl0KCc9JylbMV0gOiBzcmN1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHNyY3VybC5pbmRleE9mKFxcXFxcXFwiL3NoYXJlL1xcXFxcXFwiKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGluayA9IHNyY3VybC5zcGxpdChcXFxcXFxcIi9zaGFyZVxcXFxcXFwiKVswXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmMgPSBmZXRjaChzcmN1cmwsIHt9KS5yZXBsYWNlKFxcXFxcXFwidmFyIHB1cmxcXFxcXFxcIiwgXFxcXFxcXCJ2YXIgbWFpblxcXFxcXFwiKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheSA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZjLmluZGV4T2YoXFxcXFxcXCJtYWluXFxcXFxcXCIpICE9IC0xKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtYXQgPSBmYy5tYXRjaCgvdmFyIG1haW4uKj87LylbMF07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwobWF0KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheSA9IChtYWluLmluZGV4T2YoXFxcXFxcXCJodHRwXFxcXFxcXCIpICE9IC0xID8gbWFpbiA6IGxpbmsgKyBtYWluKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWFpbiA9IGZjLm1hdGNoKC91cmw6Lio/W1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJdKC4qPylbXFxcXFxcXFwnXFxcXFxcXFxcXFxcXFxcIl0vKVsxXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxheSA9IChtYWluLmluZGV4T2YoXFxcXFxcXCJodHRwXFxcXFxcXCIpICE9IC0xID8gbWFpbiA6IGxpbmsgKyBtYWluKVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBsYXk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd4NVdlYlZpZXc6Ly8nICsgc3JjdXJsO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ2FsaXp5Jykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB1cmwgPSBmZXRjaCgnaHR0cHM6Ly9mb3ViaW4uY29tL2ppZXhpLnBocD91cmw9JyArIHNyY3VybC5zcGxpdCgndXJsPScpWzFdLCB7fSkubWF0Y2goL1xcXFxcXFxcXFxcXFxcXCJ1cmxcXFxcXFxcXFxcXFxcXFwiOlxcXFxcXFxcXFxcXFxcXCIoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC85ODN2aXAvLnRlc3Qoc3JjdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoZmV0Y2goc3JjdXJsLCB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogTU9CSUxFX1VBXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aEhlYWRlcnM6IHRydWVcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKS5oZWFkZXJzLmxvY2F0aW9uWzBdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC94XFxcXFxcXFwtblxcXFxcXFxcLmNjfG5oZHo2NjYvLnRlc3Qoc3JjdXJsKSAmJiAvXFxcXFxcXFwuaHRtbHxiaWxpYmlsaS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSkpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5aSE55CG5oyH5a6a6KeG6aKR5ZKM57q/6Lev57uT5p2fXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vLS0tLeWIhuWJsue6vy0tLS0vL1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2NvZGUgPSBKU09OLnBhcnNlKGZldGNoKHNyY3VybCwge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBcXFxcXFxcIkRhcnQvMi4xMyAoZGFydDppbylcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBmYWxzZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhTdGF0dXNDb2RlOiB0cnVlXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb2RlLnN0YXR1c0NvZGUgPT0gJzMwMicgfHwgc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAxJykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/miZPlvIDop6PmnpDmnIkzMDLph43lrprlkJHnmoTpk77mjqVcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZWR1cmwgPSBzY29kZS5oZWFkZXJzLmxvY2F0aW9uWzBdLnJlcGxhY2UoL1xcXFxcXFxcXFxcXFxcXFwvZywgJycpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcXFxcXD1odHRwLy50ZXN0KHJlZHVybCkgJiYgL2h0bWx8YmlsaWJpbGkvLnRlc3QocmVkdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKGZldGNoKHJlZHVybCwge30pKS51cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcXFxcXD1odHRwLy50ZXN0KHJlZHVybCkgJiYgL1xcXFxcXFxcLm0zdTh8XFxcXFxcXFwubXA0fFxcXFxcXFxcLmZsdi8udGVzdChyZWR1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVybC5zdWJzdHJpbmcocmVkdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlZHVybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBodG1sID0gc2NvZGUuYm9keTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvNDA0IE5vdCBGb3VuZHzlpIfmoYjlkI7lj6/nu6fnu63orr/pl64vLnRlc3QoaHRtbCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSkpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXFxcXFw8Ym9keS8udGVzdChodG1sKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygn5bCd6K+V6Z2eSlNPTuaOpeWPo+e9kemhteino+aekCcpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVDYWNoZSgnaHR0cHM6Ly9jb2RlLmFsaXl1bi5jb20vbHprMjM1NTkvUHVibGljUnVsZS9yYXcvbWFzdGVyL3g1cnVsZS5qcycsIDI0KTsgLy9UT0RPXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHg1cnVsZShzcmN1cmwsIHNyY3VybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vanNvbuino+aekOeahOWPlumTvuaOpVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gaHRtbC5tYXRjaCgvW1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJddXJsW1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJdOi4qP1tcXFxcXFxcXCdcXFxcXFxcXFxcXFxcXFwiXSguKj8pW1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJdLylbMV0ucmVwbGFjZSgvXFxcXFxcXFxcXFxcXFxcXC9nLCAnJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9odHRwLy50ZXN0KHB1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwdGFiID09ICdiaWxpYmlsaScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJzt7UmVmZXJlckBodHRwczovL3d3dy5iaWxpYmlsaS5jb20vJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnbWd0dicpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJyNpc1ZpZGVvPXRydWUjJyArICc7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL29qYmsvLnRlc3QocHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwdXJsICsgJzt7UmVmZXJlckBodHRwczovL2Jhay5vamJranguY29tL30nO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoL1xcXFxcXFxcPWh0dHAvLnRlc3Qoc3JjdXJsKSAmJiAvXFxcXFxcXFwuaHRtbHxiaWxpYmlsaS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/pnZ5odHRw5byA5aS055qE5omT5byA5Y6f6ZO+5o6lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwuc3Vic3RyaW5nKHNyY3VybC5pbmRleE9mKCc9aHR0cCcpICsgMSkpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/miqXplJnliKTmlq3lpITnkIZcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCfmiafooYzmiqXplJnlpITnkIYnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNyY3VybC5zdWJzdHJpbmcoMCwgMikgPT0gJ1xcXFxcXFxcL1xcXFxcXFxcLycpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKCdodHRwczonICsgc3JjdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXFxcXFw9aHR0cC8udGVzdChzcmN1cmwpICYmIC9cXFxcXFxcXC5odG1sfGJpbGliaWxpLy50ZXN0KHNyY3VybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvcGVudXJsKHNyY3VybC5zdWJzdHJpbmcoc3JjdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb3BlbnVybChzcmN1cmwpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHnu5PmnZ9cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHB0YWIsIGxpbmssIGRvbWluKVxcXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgc2V0UmVzdWx0KGl0ZW1zKTtcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgcGFnZXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgbmFtZTogXFxcXFxcXCJBUFDliIbnsbvliJfooahcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBwYXRoOiBcXFxcXFxcImFwcGxpc3RkYXRhXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgcnVsZTogcnVsZV9hcHBsaXN0ZGF0YVxcXFxuICAgICAgICAgICAgfSwge1xcXFxuICAgICAgICAgICAgICAgIG5hbWU6IFxcXFxcXFwiQVBQ6aaW6aG15YiX6KGoXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcXFxcXCJhcHBpbmRleGRhdGFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX2FwcGluZGV4ZGF0YVxcXFxuICAgICAgICAgICAgfSwge1xcXFxuICAgICAgICAgICAgICAgIG5hbWU6IFxcXFxcXFwiQVBQ6YCJ6ZuGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcXFxcXCJhcHBtb3ZsaXN0XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgcnVsZTogcnVsZV9hcHBtb3ZsaXN0XFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgIHNlYXJjaEZpbmQgPSBcXFxcXFxcImpzOlxcXFxcXFwiICsgJC50b1N0cmluZyhmdW5jdGlvbih0eXBldCwgdGRvbWluLCBzdXJsKSB7XFxcXG4gICAgICAgICAgICBsZXQgaXRlbXMgPSBbXSxcXFxcbiAgICAgICAgICAgICAgICBrZXkgPSBNWV9VUkwuc3BsaXQoJyMjJylbMV0sXFxcXG4gICAgICAgICAgICAgICAgc2VhcmNoX3VybCA9IHN1cmwucmVwbGFjZShcXFxcXFxcImZ5cGFnZVxcXFxcXFwiLCBNWV9QQUdFKSArIGtleSxcXFxcbiAgICAgICAgICAgICAgICBiaHRtbCA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICBpZiAoL3ZpcG12Ly50ZXN0KHRkb21pbikpIHtcXFxcbiAgICAgICAgICAgICAgICBiaHRtbCA9IHJlcXVlc3Qoc2VhcmNoX3VybCk7XFxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgIGJodG1sID0gZmV0Y2goc2VhcmNoX3VybCwge1xcXFxuICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogXFxcXFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICBiaHRtbCA9IGJodG1sLnN0YXJ0c1dpdGgoJ1xcXFxcXFxcclxcXFxcXFxcbicpID8gYmh0bWwucmVwbGFjZSgnXFxcXFxcXFxyXFxcXFxcXFxuJywgJycpIDogYmh0bWw7XFxcXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxcXFxuICAgICAgICAgICAgaWYgKC9idHdhZi8udGVzdChiaHRtbCkpIHtcXFxcbiAgICAgICAgICAgICAgICBiaHRtbCA9IGZldGNoKHNlYXJjaF91cmwgKyAnJmJ0d2FmJyArIGJodG1sLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdLCB7fSk7XFxcXG4gICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgIGlmIChiaHRtbCA9PSBcXFxcXFxcIlxcXFxcXFwiIHx8IGJodG1sID09IG51bGwgfHwgYmh0bWwuc3Vic3RyaW5nKDAsIDUpID09ICdlcnJvcicgfHwgIWJodG1sLnN0YXJ0c1dpdGgoJ3snKSkge1xcXFxuICAgICAgICAgICAgICAgIC8qaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5pyq5pCc57Si5Yiw55u45YWz6LWE5rqQ77yM54K55Ye76K6/6Zeu5Y6f572R6aG1JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBzZWFyY2hfdXJsICsgYEBsYXp5UnVsZT0uanM6aW5wdXQuc3BsaXQoJzsnKVswXWAsXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcXFxuICAgICAgICAgICAgICAgIH0pOyovXFxcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGJodG1sLmxlbmd0aCA8IDgwKSB7XFxcXG4gICAgICAgICAgICAgICAgLyppdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfov5Tlm57mlbDmja7kuI3lrozmlbTvvIzngrnlh7vorr/pl67ljp/nvZHpobUnLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IHNlYXJjaF91cmwgKyBgQGxhenlSdWxlPS5qczppbnB1dC5zcGxpdCgnOycpWzBdYCxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG4gICAgICAgICAgICAgICAgfSk7Ki9cXFxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IGh0bWwgPSBKU09OLnBhcnNlKGJodG1sKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIGlmIChodG1sLmxpc3QpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwubGlzdDtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS5saXN0KSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLmRhdGEubGlzdDtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YSkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5kYXRhO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgICAgIGlmIChsaXN0Lmxlbmd0aCA8IDEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgLyppdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5pyq5pCc57Si5Yiw77yM54K55Ye76K6/6Zeu5Y6f572R6aG1JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogc2VhcmNoX3VybCArIGBAbGF6eVJ1bGU9LmpzOmlucHV0LnNwbGl0KCc7JylbMF1gLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxcXG4gICAgICAgICAgICAgICAgICAgIH0pOyovXFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGl0bGUsIHBpYywgdXJsLCBkZXNjO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9UVi8udGVzdCh0eXBldCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IGxpc3RbaV0udGl0bGU7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljID0gbGlzdFtpXS5waWM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gbGlzdFtpXS5uZXh0bGluaztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjID0gbGlzdFtpXS5zdGF0ZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRkb21pbi5pbmRleE9mKCdhcGkucGhwL2FwcC8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpYyA9IGxpc3RbaV0udm9kX3BpYztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdGRvbWluICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2MgPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGRvbWluLmluZGV4T2YoJ3hnYXBwLnBocC92MS8nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IGxpc3RbaV0udm9kX25hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpYyA9IGxpc3RbaV0udm9kX3BpYztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdGRvbWluICsgJ3ZpZGVvX2RldGFpbD9pZD0nICsgbGlzdFtpXS52b2RfaWQ7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2MgPSBsaXN0W2ldLnZvZF9yZW1hcmtzO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gbGlzdFtpXS52b2RfbmFtZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljID0gbGlzdFtpXS52b2RfcGljO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2lvcGVueXVuLy50ZXN0KHRkb21pbikpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHRkb21pbiArICcvZGV0YWlsSUQ/dm9kX2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHRkb21pbiArICcvZGV0YWlsP3ZvZF9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYyA9IGxpc3RbaV0udm9kX3JlbWFya3M7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGljX3VybDogcGljICsgJ0BSZWZlcmVyPScsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogZGVzYyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoXFxcXFxcXCJoaWtlcjovL2VtcHR5IyNcXFxcXFxcIiArIHVybCkucnVsZSgodHlwZXQpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9UVi8udGVzdCh0eXBldCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3R2bW92bGlzdCcsIHt9KSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBtb3ZsaXN0Jywge30pKS5ydWxlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHR5cGV0KVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICBzZXRSZXN1bHQoaXRlbXMpO1xcXFxuICAgICAgICB9LCBhcHB0eXBlLCB0dXJsLCBzdXJsKVxcXFxuXFxcXG4gICAgICAgIGxhc3RfY2hhcHRlcl9ydWxlID0gXFxcXFxcXCJqczpcXFxcXFxcIiArICQudG9TdHJpbmcoZnVuY3Rpb24oYXBwdHlwZSkge1xcXFxuICAgICAgICAgICAgbGV0IGNocCA9IFtdO1xcXFxuICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IHt9LFxcXFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIGlmICgvVFYvLnRlc3QoYXBwdHlwZSkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoZmV0Y2goTVlfVVJMLnNwbGl0KFxcXFxcXFwiIyNcXFxcXFxcIilbMV0pKTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICBodG1sID0gSlNPTi5wYXJzZShmZXRjaChNWV9VUkwuc3BsaXQoXFxcXFxcXCIjI1xcXFxcXFwiKVsxXSwge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBcXFxcXFxcIkRhcnQvMi4xMyAoZGFydDppbylcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICB9KSk7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIGlmIChodG1sLnZpZGVvbGlzdCkge1xcXFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IE9iamVjdC5rZXlzKGh0bWwudmlkZW9saXN0KTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGh0bWwuZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXI7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChodG1sLmRhdGEudm9kX2luZm8gJiYgaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX2luZm8udm9kX3VybF93aXRoX3BsYXllcjtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfcGxheV9saXN0O1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgICAgIGxldCBsaXN0ID0gW107XFxcXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBjb250cy5sZW5ndGg7IGkrKykge1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbC52aWRlb2xpc3QpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLnZpZGVvbGlzdFtjb250c1tpXV07XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJscykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGNvbnRzW2ldLnVybHM7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJsKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0ID0gY29udHNbaV0udXJsLnNwbGl0KFxcXFxcXFwiI1xcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgPSBjb250c1tpXS5zcGxpdChcXFxcXFxcIiNcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgY2hwLnB1c2gobGlzdC5sZW5ndGgpO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgICAgICAgICBzZXRSZXN1bHQoJ+abtOaWsOiHszonICsgKE1hdGgubWF4LmFwcGx5KE1hdGgsIGNocCkpKTtcXFxcbiAgICAgICAgfSwgYXBwdHlwZSk7XFxcXG5cXFxcbiAgICAgICAgcnVsZXMucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogYXBwdGl0bGUsXFxcXG4gICAgICAgICAgICBhdXRob3I6IGFwcGF1dGhvcixcXFxcbiAgICAgICAgICAgIHR5cGU6IGFwcHR5cGUsXFxcXG4gICAgICAgICAgICB1cmw6IGFwcHVybCxcXFxcbiAgICAgICAgICAgIGZpbmRfcnVsZTogZmluZF9ydWxlLFxcXFxuICAgICAgICAgICAgc2VhcmNoX3VybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5IyMqKiMjZnlwYWdlXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBzZWFyY2hGaW5kOiBzZWFyY2hGaW5kLFxcXFxuICAgICAgICAgICAgcGFnZXM6IEpTT04uc3RyaW5naWZ5KHBhZ2VzKSxcXFxcbiAgICAgICAgICAgIGxhc3RfY2hhcHRlcl9ydWxlOiBsYXN0X2NoYXB0ZXJfcnVsZSxcXFxcbiAgICAgICAgICAgIGljb246IGFwcGljb25cXFxcbiAgICAgICAgfSk7XFxcXG4gICAgfVxcXFxufVxcXFxuJC5leHBvcnRzID0ge1xcXFxuICAgIHJ1bGVzOiBydWxlcyxcXFxcbiAgICB0eXBlczogdHlwZXNcXFxcbn1cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLlhoXnva7mlbDmja5cXFwiLFxcXCJwYXRoXFxcIjpcXFwiUmVzQ29kZVxcXCIsXFxcInJ1bGVcXFwiOlxcXCJ7XFxcXG4gICAgXFxcXFxcXCJkYXRhXFxcXFxcXCI6W1xcXFxuICAgICAgICB7XFxcXG4gICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuS8mOi0qFxcXFxcXFwiLFxcXFxuICAgICAgICBcXFxcXFxcImxpc3RcXFxcXFxcIjpbXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCIxMDgwcFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vMTA4MHAub25lL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vMTA4MHAucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCIxMjMxRFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vdnVlLmFwcC55dW5ib3lzLmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vMTIzMUQucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCIzMDDnnIvkuJbnlYxcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovLzMwMHlzLnh5ei9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzMwMOeci+S4lueVjC5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIjRL5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzFhcGkuNGtkeXR2LmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzRL5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiODBL5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly8xMDgwcC50di9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzgwS+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIkNKVOW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3LmNqdDUyMS5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9DSlTlvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJEQ+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9jaGFvcmVuYmIuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vREPlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJGN+mrmOa4hVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9iYy5oYW9rYW5qdTEuY2MvbHZkb3VfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9GN+mrmOa4hS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIkhH5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2hneXgudmlwL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSEflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJsMGzlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2wwbC50di9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL2wwbOW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueIseeci+e+juWJp1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3LnV1bWp3LmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIseeci+e+juWJpy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueIsemFt+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3LnpoYW5sYW5nYnUuY29tL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIsemFt+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuiPnOm4n+i/veWJp1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly84MS43MS4xOC45NTo1NTU1L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6I+c6bif6L+95YmnLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi55m95auW5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3pnanhkdGcuY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nmb3lq5blvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLniLHnnIvlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3LmE5MS5jbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mAmueUqOWbvuaghy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWIneW/g+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3LjE4bXYuY2x1Yi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WIneW/g+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueLrOaSreekvlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly8zNXlzLmNjL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54us5pKt56S+LnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5Y+u5b2T5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly90di4wNTczd2wuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Y+u5b2T5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5q615Y+L5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzEyMS4yMDQuMjQ5LjEzNTo0NDMzL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+auteWPi+W9seinhjMucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmrrXlj4vlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3NoYW5namlodW9rZS5jb20vYXBpLnBocC90di52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mrrXlj4vlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLppa3lkI7nlLXlvbFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vc3VtbS52aXAvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ppa3lkI7nlLXlvbEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLpo57mjbflvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy5majYwODAuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6aOe5o235b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi55av54uC55yLXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FwcC5ma2tkeS52aXAvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nlq/ni4LnnIvnlLXlvbEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnsonosaHop4bnlYxcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vNDIuMTU3LjEyOS4xNTozNDQ0NC9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eyieixoeinhueVjC5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuaxh+iBmuW6k1RWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly93d3cuenpjbG92ZTY2Ni5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/msYfogZrlupNUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuiZjueMq+inhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaHVtYW9zcC5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/omY7njKvop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlj6/nsbPlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3LmtteXMudmlwL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Y+v57Gz5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5bq36ICA5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FwcC55Ynl5ZHMuY24vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lurfogIDlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnu7/nrq3lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3LjY5dHkuY2MvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nu7/nrq3lvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmh5LnjKvnlLXlvbFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3LmVzZWxsYXV0by5jb20vcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5oeS54yr55S15b2xLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6Jyc6JyC5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FwcC5mOHRwLmNvbS9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+icnOicguW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIum6u+eTnOinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hbGl5dW4uazhhYS5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/purvnk5zop4bpopExLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi576O5Ymn6JmrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9tZWlqdWNob25nLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+e+juWJp+iZqy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuacqOWtkOeUteW9sVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly93d3cubXV6aWR5LnRvcC9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+acqOWtkOeUteW9sS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWliOmdnui/t1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vYXBwLm5ldGZsaXhtaS5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpYjpnZ7ov7flvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLljZflupzlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vaWFwcC5uZnV4cy5jbHViL2RubWIucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WNl+W6nOW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuaaluWFieW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vYXBwLmJsMjEwLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aaluWFieW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuW/teW/teW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vOTk4Lnl1YW5tYWpzLmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b+15b+15b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5p+g5p+a5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL251LmU0dHYuY24vbHZkb3VfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mn6Dmn5rlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlpYfmgKrop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2dpZ3VhaS5uZXQvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pgJrnlKjlm77moIcucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLkuIPpm7bliqjmvKtcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2NmLjcweXUuY24vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuIPpm7bliqjmvKsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnkZ7kuLDotYTmupBcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3R2LnlqaGFuLmNvbTo0NDMzL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eRnuS4sC5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIumXquWFieW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly8xMDEuMzUuMTI4LjE5Mi9tdWJhaV9hcGkucGhwL20yLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mXquWFieW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuaAneS5kOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3Lmh1YW5kaWFuLnRvcC9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mgJ3kuZDlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlpKnor5rlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vdGNzcHZpcC5jbi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WkqeivmuW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWkqeWkqeW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vYXBwLmRhaXNodXNjLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WkqeWkqeW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIua4qeWmruW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3Lndlbm5peXMuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5rip5aau5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5bCP55m95Yqo5ryrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzEyMS42Mi42MC4yMjI6MjAyMjIvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/nmb3liqjmvKsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmmJ/ovrDop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL20uaGowOTk5LmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aYn+i+sOinhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWwj+aegeW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hcHAuOGQ4cS5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/mnoHlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlv4PpuL7lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vemhpeXV0di54eXovYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lv4PpuL7lvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLpm6rkurrlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3p5LnFkMjM0LmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Zuq5Lq65b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi55uK6L6+5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2x1b2J1LnlzczYwODAuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55uK6L6+5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6Zuo5p6c5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzIueWh5czYzLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbqOaenOW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuW9seinhuWkp+WFqFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hcHAuMjY5dy5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lvbHop4blpKflhagucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmnIjoibLlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vNjl0eS5jYy9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aciOiJsuW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuS8mOinhuW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9jYy55c3lzLmFzaWEvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kvJjop4blvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlvbHpmIXpmIFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vMjIxLjIzNi4xOC4xMjo2NjUvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lvbHpmIXpmIEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLov73liaflkKdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vemh1aWp1OC52aXAvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ov73liaflkKflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgXVxcXFxuICAgICAgICB9LFxcXFxuICAgICAgICB7XFxcXG4gICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuaZrumAmlxcXFxcXFwiLFxcXFxuICAgICAgICBcXFxcXFxcImxpc3RcXFxcXFxcIjpbXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCI1MeinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly81MXNoaXBpbi5jYy9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzUx6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiODDlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3LmNjYzgubmV0L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vODDlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJKRE9ET1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vYXBweXMuamRvZG8ueHl6L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSkRPRE/lvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJRQ+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3LnFjc3ZpcC5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9RQ+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIlU15b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9hcHB4LnV5MDcuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vVTXlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJYR+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9jbXMueGdnbS50b3AvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vWEflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJ5b3lvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2p4Lndudm9kLm5ldC9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi95b3lv5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6Zi/6YeM5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FsaXlzLmNuOjkwL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Zi/6YeM5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5Ze35ZGc5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2Fvd3UucHJvL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Ze35ZGc5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi54ix5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly93d3cuaHpsZmYuY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLniLHov73liadcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vODEuNzEuMTguOTU6NTIwL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54ix6L+95YmnLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6Im+54m55b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly93d3cuYWl0ZWUuY2MvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/oib7nibnlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnmb3oj5zov73liadcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vbGJhcHAuaHVpbWFvamlhLmNvbTozMDExOS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eZveiPnOi/veWJpy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuavlOmCu+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly8waHp5LmNuOjk5OTAvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mr5TpgrvlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnmb7orq/op4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3ouaW9wZW55dW4uY29tOjk5L2FwcF9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eZvuiur+inhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuiPnOm4n+WKqOa8q1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly90YWlrb25nLmh1YW5nZ3VheS5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/oj5zpuJ/liqjmvKsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlpKflpLTlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vZHkuaWRzYW8uY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSn5aS05b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5q615Y+L5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2pzLjY2YXBwLm1lL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5q615Y+L5b2x6KeGMi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuixhua4o+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9kb3V6aGF5c3MuY2MvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/osYbmuKPlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLkuozkuZ3lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2FwcC4xOWtwLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S6jOS5neW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIumjjuWQr+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly95c3cuZWUvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/po47lkK/lvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLovonlk6XlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2FwcC55LmhneXVsZTguY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6L6J5ZOl5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6buE5rKz5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2kubGVkdTguY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pu4TmsrPlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLngavmmJ/kurpcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy5odW94aW5nOS5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ngavmmJ/kurrlvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmmZflhYjmo65cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2hhbnR2LnRvcC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aZl+WFiOajruW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuebkuWtkOW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9pLm5paGFvaGV6aS5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nm5LlrZDlvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnrYvmlpfkupFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3R2LmppbmRjbG91ZC5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nrYvmlpfkupHlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmnoHlhYnlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBwLndpbnh6LmNjL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p6B5YWJ5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6IGa5ZCI6KeG6aKRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9hcHAuamh5c3R2LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iBmuWQiOinhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuS5heS5heW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9zOXQ5LmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S5heS5heW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWJp+i/t+inhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9wYW4uaHphZncuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Ymn6L+36KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5qmY5a2Q5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2p6Lmp1emlkeS52aXAvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mqZjlrZDlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlv6vmkq3lkKdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBwLmhkOC5wdy9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W/q+aSreWQpy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueci+WJp+WQp1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hcHAuaXNoZW41MjAuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL5Ymn5ZCnLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi55yL55yL5YmnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly93d3cua2Fua2FuanUuY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nnIvnnIvliacucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLphbfphbflvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3LmNjYzgubmV0L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6YW36YW35b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5Y+v57Gz5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3NqLmtteXMudmlwL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WPr+exs+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIue7v+ixhuinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vdi5sdmRvdWkuY24vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nu7/osYblvbHpn7MucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLok53lhYnop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vdmlwLjkxaXFpeWkuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6JOd5YWJ6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5p6X6LC35b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3lzLmxpbmd1eXkueHl6L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p6X6LC35b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5Ya36KeGVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2xlbi50di9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WGt+inhlRWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi576O5Ymn6IyDXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3R0em16Lm5ldC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+e+juWJp+iMgy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWWteS5kOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9taWFvbGV5cy5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/llrXkuZDlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlkI3op4blvbFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBwLnFxY2N2LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WQjeinhuW9sS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIum6u+WtkOi/veWJp1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9iLjJtYXouY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/purvlrZDov73liacucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlpYjpo57kuK3mlodcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy5uYWlmZWkub3JnL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aWI6aOe5Lit5paHLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6Iu55p6c5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9hcHBsZTY3OC54eXovYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/oi7nmnpzlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnmq7nmq7liqjmvKtcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vZG0ubXV5aW5nLm1lL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55qu55qu5Yqo5ryrLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5aWH6Laj5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9hcHAucWlxdS5tZS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wlh+i2o+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuS7u+aAp+eci1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vcmVueGluZ2thbi5uZXQvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ku7vmgKfnnIsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmgJ3lpYflvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBwLnNpcWl0di52aXAvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mgJ3lpYflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLkuInml6XlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy4zcmkubmV0L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LiJ5pel5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi56We6ams5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3hzLjc4dHYuY2MvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/npZ7pqazlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLop4blkKzmmJ/nkINcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vemp5YXBpanp5cy5zaHlud2xrai5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/op4blkKzmmJ/nkIMucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlnJ/osYZUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly94aXV4aWFuLnFkMjM0LmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Zyf6LGGVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmt5jliafnpL5cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2FwcC5zaHVoYWk5OS5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mt5jliafnpL4ucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlpKnnqbrlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3R2LjUxYWl6bi5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnnqbrlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlpKnlpKnop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBwLnFpYW5qdS5jYy9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WkqeWkqeinhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWFlOWtkOeqnVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9jai5odWltYW9qaWEuY29tOjEyMzQ1L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5YWU5a2Q56qdLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5oiR54ix6Lef5YmnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly93d3cuZ2VubW92LmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aIkeeIsei3n+WJpy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWQvueIseW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hcHAuNWxwLm5ldC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WQvueIseW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWQvueIseW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly81Mnlzdy54eXovbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lkL7niLHlvbHop4YxLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5ZC755eV6KeG6aKRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3d3dy5raXNzb25lLmNuL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WQu+eXleinhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuicl+eJm+WKqOa8q1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly93b25pdWRtLndvbml1LmN5b3U6MjAwMDAvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/onJfniZvliqjmvKsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlr7vluLjlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vdHYuOTF5bXouY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lr7vluLjlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnhornjKvliqjmvKtcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vZG9uZ21hbi5rOGFhLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eGiueMq+WKqOa8qy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueGiueMq+inhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hbmVnaC5jb20vbHZkb3VfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nhornjKvop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnjrrlqJzlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3BwLnd4aW5hLmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54665aic5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5bCP6Jy76JyTXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzNrZXR2LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wwj+icu+ick+inhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuaYn+eQg+inhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly8xMTkuMjkuMTIxLjQ4OjgwODgvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mmJ/nkIPop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnjrrlv4PlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3R2LmFyYmQuY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/njrrlv4PlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmlrDkuqvlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2FwcC5qaWFnYW4uY3gvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mlrDkuqvlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmmJ/lvbHnm7jpmo9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBwLnJvb3R0aHJlZS50b3AvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mmJ/lvbHnm7jpmo8ucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlsI/mmJPlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8veHkuaXJvcC5jbi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wwj+aYk+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuS6keWfjuW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vYXl5Zi5jbi9tdWJhaV9hcGkucGhwL20yLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S6keWfjuW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuaciOWEv+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8veXVlNTIueHl6L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6YCa55So5Zu+5qCHLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5qix6Iqx5Yqo5ryrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly93d3cuZG13dS5jYy9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aoseiKseWKqOa8qy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuaciOS6ruW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly95cy4xM3R2LnRvcC9hY2pfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mnIjkuq7lvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlvbHop4blpKflhahcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3hjLnhpeGkyeXkueHl6L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6KeG5aSn5YWoSEQucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlvbHop4bng63liadcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vbGIuMjZ5cy5jbi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W9seinhueDreWJpy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIua4lOa4lOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9sdW9iby55dWdlbnllLnNpdGUvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/muJTmuJTlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLkvJjkvJjlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8veGluLmpqc3ZpcC5jYy9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S8mOS8mOW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuafmuWtkOinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly95ei4yNnlzLmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p+a5a2Q6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6bG85LuU5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3l1emFpby50b3AvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/psbzku5TlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLov73liafovr7kurpcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy56aHVpanVkYXJlbi5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ov73liafovr7kuroucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLov73liafnjKtcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vdHYua210dmIuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6L+95Ymn54yrMS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuS+puaOouW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly95cy5odWFuZ2d1YXkuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5L6m5o6i5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi54yq54yq5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FwcC4yemR5eS5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/njKrnjKrlvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgXVxcXFxuICAgICAgICB9LFxcXFxuICAgICAgICB7XFxcXG4gICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIklQVFZcXFxcXFxcIixcXFxcbiAgICAgICAgXFxcXFxcXCJsaXN0XFxcXFxcXCI6W1xcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiMuWPt+W4gVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9waG9lYmUuY2YvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi8y5Y+35biB5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJDVuW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly93d3cuY2NjdnZ2LnRvcC9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0NW5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJIR+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hcGkuaGd5eC52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9IR+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5YKy6KeG5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2ouempqLmxpZmU6ODgvbXYvYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lgrLop4blvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueIseilv+ilv1RWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3R2LmFpeGl4aS52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHopb/opb9UVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi55m954aK5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3F0LnloenkueHl6L2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m954aK5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLliLrmoZDlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vdHYuY3R0di52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/liLrmoZDlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWwmOaik1RWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2N6dHYudmlwOjgzL2FwaS5waHAvY2hlbnppeXN0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bCY5qKTVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWYgOWTqeWYgOWTqVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vYXBpLmRpbGlrdHYueHl6L2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5ZiA5ZOp5ZiA5ZOpVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWKqOWKm+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly93d3cubG92ZTk5ODkuY29tL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Yqo5Yqb5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlpKfluIjlhYRcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vZHN4dHYudHYuY2kvYXBpLnBocC9kc3gvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wkp+W4iOWFhOW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5LqM6LSn5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2QuempqLmxpZmU6ODgvbXYvYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuozotKflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIumdnuWHoeW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9jbXMuZmVpZmFuMTIueHl6L2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Z2e5Yeh5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLpo57miaxUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9kaWFuY2ouemhlbmZ5LmNuL2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6aOe5omsVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWYv+iNvOmUi1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly90di5oZnlzOC52aXAvYXBpLnBocC9TbnR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lmL/ojbzplIsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIum7kem+meW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly92aXAuamktZGluZy1oZS5zaXRlL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6buR6b6Z5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmsrPpqazlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vMS4xNC42My4xMDEvYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/msrPpqazlvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuiBmuWkmuW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9qZHl5LndlZXRhaS5jbi9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iBmuWkmuW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5LmF5LmF5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2wuYmh0di5vcmcuY24vbXYvYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuYXkuYXlvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuS5kOmFt1RWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzE1MC4xMzguNzguMTc3OjIwMjEvYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuZDphbdUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5oeS54yrVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3LmVzZWxsYXV0by5jb20vYXBpLnBocC9saC92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5oeS54yrVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWFree7tOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9saXV3ZWlpcHR2LmdxOjEzNTcvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lha3nu7TlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIua1geaYn+mbqFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9ubi5seHl5eS54eXo6OC9jL2FwaS5waHAvV0FpTGFvd2FuZy92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5rWB5pif6Zuo5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlhrfmnIhUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vdHYuNTIxeDUuY29tL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Ya35pyIVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuiNlOaeneW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hcGkuemp5cy52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ojZTmnp3lvbHop4ZUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5YWN6LS555yLVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3LmZyZWVrYW4udmlwL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5YWN6LS555yLVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuicnOaenFRWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3Z2Lm1pZ3VvdHYubmV0L20vYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/onJzmnpxUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi57Gz5p2l5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzQyLjUxLjM3LjE2MToyMzQ2L2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57Gz5p2l5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnsbPlpYdUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly93d3cuczZlcDMudG9wL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57Gz5aWHVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuS4g+enkeW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly90di43a2ZtLmNuL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LiD56eR5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLoi6Xmg5zlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vcnh3LnJ1b3hpbmV3LmNvbS9hcGkucGhwL1NudHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iLpeaDnOW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5oCd5aWHVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vdHYuc2lxaXR2LnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aAneWlh1RWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlj4zlrZDmmJ9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vdHYuZGl5b3VpLmNjL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Y+M5a2Q5pifLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlsbHmpYLlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vZHk2LmRjZDEuY24vYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsbHmpYLlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWkqeepulRWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3R2LnRreXMudHYvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnnqbpUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6Jm+55qu6KeG6aKRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3R2LmNtdDgueHl6L2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Jm+55qu6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlsI/mnoFUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hcGkuOGQ4cS5jb20vbW12L2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bCP5p6BVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWwj+eGiueMq1RWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3R2Mi5oZXRhb3lzLnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wwj+eGiueMq1RWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLntKvmm6blvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBweXMuYXp4LnRvb2xzOjg4L2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57Sr5pum5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgXVxcXFxuICAgICAgICB9XFxcXG4gICAgXVxcXFxufVxcXCJ9XVwifSIsInBpY1VybCI6Imh0dHA6Ly9wdXVpLnFwaWMuY24vdmNvdmVyX3Z0X3BpYy8wL216YzAwMjAwb3Bxemc1cDE2NDcyMjU2NzA3NzMvMEBSZWZlcmVyPSIsInRpdGxlIjoi5L2Z55Sf77yM6K+35aSa5oyH5pWZIn0=
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement