Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 海阔视界规则分享,当前分享的是:二级页面详情¥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/ICcnIDogJzEnKVxcbiAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICB9LCBuZXdXaW5kb3cpLFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSwgLyp7XFxuICAgIHRpdGxlOiAnICDwn5KgIOWIhuexu+aKmOWPoDogJyArICh0YWJGb2xkID8gJ+aYrycgOiAn5ZCmJykgKyAnICAnLFxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHRhYkZvbGQpID0+IHtcXG4gICAgICAgIHNhdmVGaWxlKCd0YWJGb2xkJywgdGFiRm9sZCA/ICcnIDogJzEnKVxcbiAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICB9LCB0YWJGb2xkKSxcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbn0sICove1xcbiAgICB0aXRsZTogJyAg8J+SvCDlpIfku73mgaLlpI0gICcsXFxuICAgIHVybDogJChbJ+Wkh+S7vScsICfmgaLlpI0nXSwgMSkuc2VsZWN0KChRSU5HX1RJVExFLCB1cGRhdGVJbnRlcnZhbCwgbmV3V2luZG93LCB0YWJGb2xkLCBkaXNhYmxlQ3VzdG9tKSA9PiB7XFxuICAgICAgICBsZXQgdXJsID0gZ2V0TXlWYXIoJ3JlbW90ZVVybCcpXFxuICAgICAgICBpZiAoIXVybC5zdGFydHNXaXRoKCdoaWtlcjovLycpICYmICF1cmwuc3RhcnRzV2l0aCgnZmlsZTovLycpKVxcbiAgICAgICAgICAgIHVybCA9ICdoaWtlcjovL2ZpbGVzL2xpYnMvJyArIG1kNSh1cmwpICsgJy5qcydcXG4gICAgICAgIGVsc2UgaWYodXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vcGFnZS8nKSkgdXJsID0gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICBpZiAoaW5wdXQgPT0gJ+Wkh+S7vScpIHJldHVybiAkKCdoaWtlcjovL2ZpbGVzL3RtcC8nICsgUUlOR19USVRMRSArICdfYmFja3VwLmpzb24nLCAn6L6T5YWl5aSH5Lu96Lev5b6EJylcXG4gICAgICAgICAgICAuaW5wdXQoKHVybCwgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSByZXF1ZXN0KHVybCksXFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21EYXRhID0gcmVhZEZpbGUoJ2N1c3RvbURhdGEnKVxcbiAgICAgICAgICAgICAgICB3cml0ZUZpbGUoaW5wdXQsIEpTT04uc3RyaW5naWZ5KHtcXG4gICAgICAgICAgICAgICAgICAgIHVwZGF0ZUludGVydmFsOiB1cGRhdGVJbnRlcnZhbCxcXG4gICAgICAgICAgICAgICAgICAgIG5ld1dpbmRvdzogbmV3V2luZG93LFxcbiAgICAgICAgICAgICAgICAgICAgdGFiRm9sZDogdGFiRm9sZCxcXG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVDdXN0b206IGRpc2FibGVDdXN0b20sXFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21EYXRhOiBjdXN0b21EYXRhLFxcbiAgICAgICAgICAgICAgICAgICAgcnVsZXM6IHJ1bGVzXFxuICAgICAgICAgICAgICAgIH0pKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5aSH5Lu977yM5rOo5oSP6Iul5LuT5bqT5Li65a2Q6aG16Z2i5YiZ5LiN5aSH5Lu9J1xcbiAgICAgICAgICAgIH0sIHVybCwgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSlcXG4gICAgICAgIGVsc2UgcmV0dXJuICQoJ2hpa2VyOi8vZmlsZXMvdG1wLycgKyBRSU5HX1RJVExFICsgJ19iYWNrdXAuanNvbicsICfovpPlhaXlpIfku73ot6/lvoQnKS5pbnB1dCgodXJsKSA9PiB7XFxuICAgICAgICAgICAgbGV0IHsgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSwgY3VzdG9tRGF0YSwgcnVsZXMgfSA9IEpTT04ucGFyc2UocmVxdWVzdChpbnB1dCkpXFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ3VwZGF0ZUludGVydmFsJywgdXBkYXRlSW50ZXJ2YWwpXFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ25ld1dpbmRvdycsIG5ld1dpbmRvdylcXG4gICAgICAgICAgICBzYXZlRmlsZSgndGFiRm9sZCcsIHRhYkZvbGQpXFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ2Rpc2FibGVDdXN0b20nLCBkaXNhYmxlQ3VzdG9tKVxcbiAgICAgICAgICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgY3VzdG9tRGF0YSlcXG4gICAgICAgICAgICBpZihydWxlcykgd3JpdGVGaWxlKHVybCwgcnVsZXMpXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoKVxcbiAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LmgaLlpI3vvIzlpoLmnpzkuI3mg7PlkIzmraXov5znqIvku5PlupPvvIzlj6/ku6Xorr7nva7mm7TmlrDpopHnjofkuLrmiYvliqgnXFxuICAgICAgICB9LCB1cmwpXFxuICAgIH0sIFFJTkdfVElUTEUsIHVwZGF0ZUludGVydmFsLCBuZXdXaW5kb3csIHRhYkZvbGQsIGRpc2FibGVDdXN0b20pLFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSwge1xcbiAgICB0aXRsZTogJ+KAnOKAnOKAneKAnTxmb250IGNvbG9yPVxcXCIjNjY2NjY2XFxcIj48c21hbGw+54m55Yir6bij6LCi77yM5bCP56iL5bqP5o+Q5L6b6ICF77yaXFxcXG4nICtcXG4gICAgICAgIGRhdGEucmVkdWNlKChzZWxmLCB2KSA9PiB2LmF1dGhvciA/IHNlbGYuY29uY2F0KHYuYXV0aG9yLnNwbGl0KCcmJykpIDogc2VsZiwgW10pXFxuICAgICAgICAuZmlsdGVyKCh2LCBpLCBhcnIpID0+IHYgJiYgYXJyLmluZGV4T2YodikgPT0gaSkuam9pbign44CBJyksXFxuICAgIHVybDogJ2hpa2VyOi8vZW1wdHknLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnXFxufSlcXG5cXG5lbC5wdXNoKHsgY29sX3R5cGU6ICdsaW5lJyB9LCB7XFxuICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJyArICfwn5OdJy5zbWFsbCgpICsgJyZuYnNwIOi9u+WQiOmbhuiHquWumuS5iSAmbmJzcCcuYm9sZCgpLmZvbnRjb2xvcignIzc1NzU3NScpICsgKGRpc2FibGVDdXN0b20gPyAn4p2MJyA6ICfirZUnKS5zbWFsbCgpLFxcbiAgICB1cmw6ICQoWyhkaXNhYmxlQ3VzdG9tID8gJ+WQr+eUqCcgOiAn56aB55SoJykgKyAn5ZCI6ZuG6Ieq5a6a5LmJJywgJ+a4hemZpOiHquWumuS5ieaVsOaNriddLCAxKS5zZWxlY3QoKCkgPT4ge1xcbiAgICAgICAgaWYgKGlucHV0ID09ICfmuIXpmaToh6rlrprkuYnmlbDmja4nKSB7XFxuICAgICAgICAgICAgZGVsZXRlRmlsZSgnY3VzdG9tRGF0YScpXFxuICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09ICflkK/nlKjlkIjpm4boh6rlrprkuYknKSB7XFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ2Rpc2FibGVDdXN0b20nLCAnJylcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ2Rpc2FibGVDdXN0b20nLCAnMScpXFxuICAgICAgICAgICAgaW5wdXQgKz0gJ1xcXFxu5bCP56iL5bqP5ZCv55SoL+emgeeUqOOAgemHjeaWsOaOkuW6j+etieaTjeS9nOWdh+S4jeS8muS9k+eOsOWcqOmmlumhteWwj+eoi+W6j+WIl+ihqOS4rSdcXG4gICAgICAgIH1cXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3sicgKyBpbnB1dFxcbiAgICB9KSxcXG4gICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXG4gICAgZXh0cmE6IHsgbGluZVZpc2libGU6IGZhbHNlIH1cXG59KTtcXG4oZGlzYWJsZUN1c3RvbSA/IFsn5a+85YWl5rW36ZiUJ10gOiBbJ+WQr+eUqC/npoHnlKgnLCAn6YeN5paw5o6S5bqPJywgJ+abtOaUueWbvuaghycsICflr7zlhaXmtbfpmJQnXSkuZm9yRWFjaCgodikgPT4ge1xcbiAgICBlbC5wdXNoKHtcXG4gICAgICAgIHRpdGxlOiB2ID09IGVkaXRNb2RlID8gJ+KAnOKAnOKAneKAnScgKyB2LmJvbGQoKS5mb250Y29sb3IoJyMxMmI2NjgnKSA6IHYsXFxuICAgICAgICB1cmw6IHYgPT0gZWRpdE1vZGUgPyAnaGlrZXI6Ly9lbXB0eScgOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCh2KSA9PiB7XFxuICAgICAgICAgICAgcHV0TXlWYXIoJ2VkaXRNb2RlJywgdilcXG4gICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICB9LCB2KSxcXG4gICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG4gICAgfSlcXG59KTtcXG4oZGlzYWJsZUN1c3RvbSA/IGRhdGEgOiBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJykpLmZvckVhY2goKHYsIGkpID0+IHtcXG4gICAgbGV0IGQgPSB7IHRpdGxlOiB2LnRpdGxlLCBpbWc6IGRhdGFbaV0uaWNvbiB9XFxuICAgIHN3aXRjaCAoZWRpdE1vZGUpIHtcXG4gICAgICAgIGNhc2UgJ+WQr+eUqC/npoHnlKgnOlxcbiAgICAgICAgICAgIGQudGl0bGUgPSAodi52aXNpYmxlID8gJ/Cfn6IgICcgOiAn8J+UtCAgJykgKyBkLnRpdGxlXFxuICAgICAgICAgICAgZC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpKSA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCBydWxlcyA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2N1c3RvbURhdGEnKSB8fCAnW10nKVxcbiAgICAgICAgICAgICAgICBydWxlc1tpXS52aXNpYmxlID0gIXJ1bGVzW2ldLnZpc2libGVcXG4gICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2N1c3RvbURhdGEnLCBKU09OLnN0cmluZ2lmeShydWxlcykpXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgfSwgaSlcXG4gICAgICAgICAgICBicmVha1xcbiAgICAgICAgY2FzZSAn6YeN5paw5o6S5bqPJzpcXG4gICAgICAgICAgICBsZXQgc29ydEZsYWcgPSBwYXJzZUludChnZXRNeVZhcignc29ydEZsYWcnLCAnLTEnKSlcXG4gICAgICAgICAgICBkLnRpdGxlID0gKHNvcnRGbGFnID09IGkgPyAn8J+UgyAgJyA6ICcnKSArIGQudGl0bGVcXG4gICAgICAgICAgICBpZiAoc29ydEZsYWcgPT0gLTEpXFxuICAgICAgICAgICAgICAgIGQudXJsID0gJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoaSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3NvcnRGbGFnJywgaS50b1N0cmluZygpKVxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v6YCJ5oup6KaB56e75Yqo5Yiw55qE5L2N572uJ1xcbiAgICAgICAgICAgICAgICB9LCBpKVxcbiAgICAgICAgICAgIGVsc2VcXG4gICAgICAgICAgICAgICAgZC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChvbGRJbmRleCwgbmV3SW5kZXgpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBydWxlcyA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2N1c3RvbURhdGEnKSB8fCAnW10nKVxcbiAgICAgICAgICAgICAgICAgICAgcnVsZXMuc3BsaWNlKG5ld0luZGV4LCAwLCBydWxlcy5zcGxpY2Uob2xkSW5kZXgsIDEpWzBdKVxcbiAgICAgICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2N1c3RvbURhdGEnLCBKU09OLnN0cmluZ2lmeShydWxlcykpXFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignc29ydEZsYWcnLCAnLTEnKVxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgICAgIH0sIHNvcnRGbGFnLCBpKVxcbiAgICAgICAgICAgIGJyZWFrXFxuICAgICAgICBjYXNlICfmm7TmlLnlm77moIcnOlxcbiAgICAgICAgICAgIGQudXJsID0gJCh2Lmljb24gfHwgJycsICfovpPlhaXmlrDlm77moIflnLDlnYDmiJbpopzoibLku6PnoIHvvJonKS5pbnB1dCgoaSkgPT4ge1xcbiAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJylcXG4gICAgICAgICAgICAgICAgaWYgKGlucHV0KVxcbiAgICAgICAgICAgICAgICAgICAgcnVsZXNbaV0uaWNvbiA9IGlucHV0XFxuICAgICAgICAgICAgICAgIGVsc2VcXG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBydWxlc1tpXS5pY29uXFxuICAgICAgICAgICAgICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgSlNPTi5zdHJpbmdpZnkocnVsZXMpKVxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcbiAgICAgICAgICAgIH0sIGkpXFxuICAgICAgICAgICAgYnJlYWtcXG4gICAgICAgIGNhc2UgJ+WvvOWFpea1t+mYlCc6XFxuICAgICAgICAgICAgZC51cmwgPSAncnVsZTovLycgKyBiYXNlNjRFbmNvZGUoSlNPTi5zdHJpbmdpZnkoZGF0YVtpXSkpXFxuICAgICAgICAgICAgYnJlYWtcXG4gICAgfVxcbiAgICBlbC5wdXNoKGQpXFxufSlcXG5zZXRSZXN1bHQoZWwpXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLpobXpnaLovb3lhaVcIixcInBhdGhcIjpcImZyYW1lTG9hZFwiLFwicnVsZVwiOlwianM6XFxuY29uc3QgUUlOR19USVRMRSA9IGdldE15VmFyKCdteUNvbGxlY3Rpb24nKVxcbmxldCBteUNvbGxlY3Rpb25fZWwgPSBbXSxcXG4gICAgeyBSVUxFLCBpc0luZGV4LCBwYWdlVGl0bGUgfSA9IE1ZX1BBUkFNUyxcXG4gICAgdGhpc1JVTEUgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kYXRhTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFKSgpLmZpbmQoKHYpID0+IHYudGl0bGUgPT0gUlVMRS50aXRsZSlcXG5pZiAoaXNJbmRleCkge1xcbiAgICBSVUxFID0gdGhpc1JVTEVcXG59IGVsc2Uge1xcbiAgICBSVUxFLnBhZ2VzID0gdGhpc1JVTEUucGFnZXNcXG59XFxuZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvcHJlRnVuYz9ydWxlPScgKyBRSU5HX1RJVExFKSkucnVsZSlcXG5ldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS91cmxQYXJzZT9ydWxlPScgKyBRSU5HX1RJVExFKSkucnVsZSlcXG5cXG5pZiAoaXNJbmRleCkge1xcbiAgICBpZiAoTVlfUEFHRSA9PSAxKSB7XFxuICAgICAgICAvLyDliqDovb1DbGFzc1RhYue7hOS7tlxcbiAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvQ2xhc3NUYWI/cnVsZT0nICsgUUlOR19USVRMRSkpLnJ1bGUpXFxuICAgICAgICB0YWJIZWFkZXIubG9hZChteUNvbGxlY3Rpb25fZWwpXFxuICAgICAgICBpZiAoUlVMRS5zZWFyY2hfdXJsKSBteUNvbGxlY3Rpb25fZWwucHVzaCh7XFxuICAgICAgICAgICAgdGl0bGU6IFxcXCLmkJzntKJcXFwiLFxcbiAgICAgICAgICAgIGRlc2M6IFxcXCLmkJzkvaDmg7PopoHnmoQuLi5cXFwiLFxcbiAgICAgICAgICAgIHVybDogJ1xcXCJoaWtlcjovL3NlYXJjaD9zPVxcXCIraW5wdXQnLFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxuICAgICAgICAgICAgICAgIHJ1bGVzOiAkLnRvU3RyaW5nKChRSU5HX1RJVExFLCB0aXRsZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJ1bGVzID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZGF0YUxvYWQ/cnVsZT0nICsgUUlOR19USVRMRSkoKVxcbiAgICAgICAgICAgICAgICAgICAgcnVsZXMgPSBbcnVsZXMuZmluZCgodikgPT4gdi50aXRsZSA9PSB0aXRsZSldXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkocnVsZXMpXFxuICAgICAgICAgICAgICAgIH0sIFFJTkdfVElUTEUsIFJVTEUudGl0bGUpLFxcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGdldE15VmFyKCdzZWFyY2hLZXknLCAnJyksXFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBcXFwicHV0TXlWYXIoJ3NlYXJjaEtleScsaW5wdXQpXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJpbnB1dFxcXCIsXFxuICAgICAgICB9KVxcbiAgICB9XFxuICAgIC8vIOWkhOeQhk1ZX1JVTEVcXG4gICAgTVlfUlVMRS51cmwgPSBSVUxFLnVybFxcbiAgICBNWV9SVUxFLmNvbF90eXBlID0gUlVMRS5jb2xfdHlwZVxcbiAgICBNWV9SVUxFLmRldGFpbF9jb2xfdHlwZSA9IFJVTEUuZGV0YWlsX2NvbF90eXBlXFxuICAgIE1ZX1JVTEUuZmluZF9ydWxlID0gUlVMRS5maW5kX3J1bGVcXG4gICAgTVlfUlVMRS5kZXRhaWxfZmluZF9ydWxlID0gUlVMRS5kZXRhaWxfZmluZF9ydWxlXFxuICAgIE1ZX1JVTEUucGFyYW1zID0ge31cXG59IGVsc2Uge1xcbiAgICBNWV9SVUxFLnVybCA9IE1ZX1BBUkFNUy51cmxcXG4gICAgTVlfUlVMRS5jb2xfdHlwZSA9IFJVTEUuZGV0YWlsX2NvbF90eXBlXFxuICAgIE1ZX1JVTEUuZmluZF9ydWxlID0gUlVMRS5kZXRhaWxfZmluZF9ydWxlXFxuICAgIE1ZX1JVTEUucGFyYW1zID0gUlVMRS5wYXJhbXNcXG59XFxuTVlfUlVMRS5wYWdlcyA9IFJVTEUucGFnZXNcXG5NWV9SVUxFLnBhZ2VMaXN0ID0gSlNPTi5wYXJzZShNWV9SVUxFLnBhZ2VzIHx8ICdbXScpXFxuTVlfUlVMRS50aXRsZSA9IFJVTEUudGl0bGVcXG5cXG5pZiAoIWlzSW5kZXgpIHtcXG4gICAgaWYgKHBhZ2VUaXRsZSkgc2V0UGFnZVRpdGxlKHBhZ2VUaXRsZSlcXG4gICAgc2V0TGFzdENoYXB0ZXJSdWxlKHRoaXNSVUxFLmxhc3RfY2hhcHRlcl9ydWxlKVxcbiAgICBNWV9QQVJBTVMgPSBNWV9SVUxFLnBhcmFtc1xcbn1cXG4vLyDpooTlpITnkIblubbliJ3lp4vljJZjb25maWdcXG5pZiAoaXNJbmRleCAmJiBNWV9QQUdFID09IDEpIGV2YWwodGhpc1JVTEUucHJlUnVsZSlcXG5sZXQgX2NmZyA9IGdldE15VmFyKCdpbml0Q29uZmlnJywgJ3t9JylcXG5pZiAoX2NmZyAmJiBfY2ZnLmxlbmd0aCA+IDApIHtcXG4gICAgY29uZmlnID0gSlNPTi5wYXJzZShfY2ZnKVxcbn1cXG5cXG4vLyDmraPmlofop6PmnpDpgJrnlKjlj5jph49cXG5sZXQgYXNzaWduTGF6eVJ1bGUgPSAkLnRvU3RyaW5nKChRSU5HX1RJVExFLCB0aXRsZSkgPT4ge1xcbiAgICBsZXQgUlVMRSA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2RhdGFMb2FkP3J1bGU9XFxcIiArIFFJTkdfVElUTEUpKCkuZmluZCgodikgPT4gdi50aXRsZSA9PSB0aXRsZSlcXG4gICAgcmV0dXJuIHsgcGFnZXM6IFJVTEUucGFnZXMsIHBhZ2VMaXN0OiBSVUxFLnBhZ2VMaXN0IH1cXG59LCBRSU5HX1RJVExFLCBSVUxFLnRpdGxlKVxcbmZ1bmN0aW9uIGdlbk15UnVsZSgpIHtcXG4gICAgbGV0IHJ1bGUgPSBPYmplY3QuYXNzaWduKHt9LCBNWV9SVUxFKVxcbiAgICBkZWxldGUgcnVsZS5sYXN0X2NoYXB0ZXJfcnVsZVxcbiAgICBkZWxldGUgcnVsZS5wcmVSdWxlXFxuICAgIGRlbGV0ZSBydWxlLnBhZ2VMaXN0XFxuICAgIGRlbGV0ZSBydWxlLnBhZ2VzXFxuICAgIHJldHVybiBydWxlXFxufVxcbmZ1bmN0aW9uIHJ1bkNvZGUocnVsZSkge1xcbiAgICB0cnkge1xcbiAgICAgICAgbGV0IFtpbnB1dCwgY29kZV0gPSBydWxlLnNwbGl0KCcuanM6JylcXG4gICAgICAgIHJldHVybiBjb2RlID8gZXZhbChjb2RlKSA6IHJ1bGVcXG4gICAgfSBjYXRjaCAoZSkgeyByZXR1cm4gcnVsZSB9XFxufVxcbmZ1bmN0aW9uIGdlbkV4VXJsKHVybCkge1xcbiAgICB1cmwgPSB1cmwuc3BsaXQoJzsnKVxcbiAgICByZXR1cm4gdXJsLnNoaWZ0KCkgKyAnOycgKyBwYXJhbUhhbmRsZSh1cmwsIHRoaXNSVUxFLnVhLCBNWV9SVUxFLnVybClcXG59XFxuLy8g5q2j5paH6Kej5p6QXFxuaWYgKE1ZX1JVTEUuZmluZF9ydWxlLnN0YXJ0c1dpdGgoJ2pzOicpKSB7XFxuICAgIHNldFJlc3VsdCA9IGZ1bmN0aW9uKGVsLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zKSB7XFxuICAgICAgICBwYXJhbTEgPSBDQUxMQkFDS19LRVlcXG4gICAgICAgIHBhcmFtMiA9IE1ZX1JVTEVcXG4gICAgICAgIHBhcmFtMyA9IE1ZX1RZUEVcXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGVsLmRhdGEpKSBlbCA9IGVsLmRhdGFcXG4gICAgICAgIEFycmF5LnByb3RvdHlwZS5wdXNoLmFwcGx5KG15Q29sbGVjdGlvbl9lbCwgZWwubWFwKCh2KSA9PiB7XFxuICAgICAgICAgICAgbGV0IE1ZX19SVUxFID0gT2JqZWN0LmFzc2lnbihnZW5NeVJ1bGUoKSwgeyBwYXJhbXM6IHYuZXh0cmEgfHwge30gfSlcXG4gICAgICAgICAgICB2LmNvbF90eXBlID0gdi5jb2xfdHlwZSB8fCBNWV9SVUxFLmNvbF90eXBlXFxuXFxuICAgICAgICAgICAgaWYgKCF2LnVybCB8fCBbJ3J1bGUnLCAncGljcycsICd0b2FzdCcsICdpbnB1dCcsICdjb3B5JywgJ2VkaXRGaWxlJywgJ3g1JywgJ3g1V2ViVmlldycsICd4NVBsYXknLCAnd2ViJywgJ3NlbGVjdCcsICd4NVJ1bGUnLCAnd2ViUnVsZScsICdkb3dubG9hZCcsICdzaGFyZSddLmZpbmQoKHZ2KSA9PiB2LnVybC5zdGFydHNXaXRoKHZ2ICsgJzovLycpKSB8fCBbJ3g1X3dlYnZpZXdfc2luZ2xlJywgJ2lucHV0J10uZmluZCgodnYpID0+IHYuY29sX3R5cGUgPT0gdnYpKSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiB2XFxuICAgICAgICAgICAgfSBlbHNlIGlmICh2LnVybC5pbmNsdWRlcygnQHJ1bGU9JykpIHtcXG4gICAgICAgICAgICAgICAgbGV0IFtfLCB1cmwsIHJ1bGVdID0gdi51cmwubWF0Y2goL14oW1xcXFxzXFxcXFNdKj8pQHJ1bGU9KFtcXFxcc1xcXFxTXSopJC8pXFxuICAgICAgICAgICAgICAgIHYudXJsID0gdXJsXFxuICAgICAgICAgICAgICAgIE1ZX19SVUxFLmRldGFpbF9maW5kX3J1bGUgPSBydWxlXFxuICAgICAgICAgICAgICAgIE1ZX19SVUxFLmRldGFpbF9jb2xfdHlwZSA9IE1ZX1JVTEUuY29sX3R5cGVcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYudXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vcGFnZS8nKSkge1xcbiAgICAgICAgICAgICAgICBpZiAodi51cmwuaW5jbHVkZXMoJ3J1bGU9JykgfHwgKHYuZXh0cmEgfHwge30pLnJ1bGUpXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdlxcbiAgICAgICAgICAgICAgICBsZXQgW18sIHBhdGgsIGZsYWcsIHBhcmFtc10gPSB2LnVybC5tYXRjaCgvXmhpa2VyOlxcXFwvXFxcXC9wYWdlXFxcXC8oLis/KSgjLio/KT8oPzpcXFxcPyguKikpPyQvKSxcXG4gICAgICAgICAgICAgICAgICAgIHN1YlBhZ2UgPSBNWV9SVUxFLnBhZ2VMaXN0LmZpbmQoKHYpID0+IHYucGF0aCA9PSBwYXRoKSxcXG4gICAgICAgICAgICAgICAgICAgIHN1YlVybCA9IChwYXJhbXMgfHwgJycpLnNwbGl0KCcmJykuZmluZCgodikgPT4gdi5zdGFydHNXaXRoKCd1cmw9JykpXFxuICAgICAgICAgICAgICAgIHYudXJsID0gc3ViVXJsID8gc3ViVXJsLnNsaWNlKDQpLnJlcGxhY2UoL++8n++8ny9nLCAnPycpLnJlcGxhY2UoL++8hu+8hi9nLCAnJicpIDogKHYuZXh0cmEgfHwge30pLnVybCB8fCAnaGlrZXI6Ly9lbXB0eScgKyBmbGFnICsgJz8nICsgKHBhcmFtcyB8fCAnJylcXG4gICAgICAgICAgICAgICAgTVlfX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSA9IHN1YlBhZ2UucnVsZVxcbiAgICAgICAgICAgICAgICBNWV9fUlVMRS5kZXRhaWxfY29sX3R5cGUgPSBzdWJQYWdlLmNvbF90eXBlXFxuICAgICAgICAgICAgfSBlbHNlIGlmICh2LnVybC5pbmNsdWRlcygnQGxhenlSdWxlPScpKSB7XFxuICAgICAgICAgICAgICAgIGxldCByZUluZGV4ID0gdi51cmwuaW5kZXhPZignLmpzOicpXFxuICAgICAgICAgICAgICAgIGlmIChyZUluZGV4ID49IDApIHYudXJsID0gdi51cmwuc2xpY2UoMCwgcmVJbmRleCkgKyAnLmpzOlxcXFxuaWYoTVlfUlVMRSlPYmplY3QuYXNzaWduKE1ZX1JVTEUsICcgKyBhc3NpZ25MYXp5UnVsZSArICcpOycgKyB2LnVybC5zbGljZShyZUluZGV4ICsgNClcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzSW5kZXgpIHtcXG4gICAgICAgICAgICAgICAgaWYgKCFNWV9SVUxFLmRldGFpbF9maW5kX3J1bGUgfHwgL2hpa2VyOlxcXFwvXFxcXC8oPyFlbXB0eS4rJCkvLnRlc3Qodi51cmwpKSByZXR1cm4gdlxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHJldHVybiB2XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIHYuZXh0cmEgPSB7XFxuICAgICAgICAgICAgICAgIHVybDogZ2VuRXhVcmwodi51cmwpLFxcbiAgICAgICAgICAgICAgICBSVUxFOiBNWV9fUlVMRSxcXG4gICAgICAgICAgICAgICAgcGFnZVRpdGxlOiBpc0luZGV4ICYmIHYudGl0bGVcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgdi51cmwgPSAnaGlrZXI6Ly9wYWdlL2ZyYW1lTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFXFxuICAgICAgICAgICAgcmV0dXJuIHZcXG4gICAgICAgIH0pKVxcbiAgICAgICAgbWV0aG9kX3NldFJlc3VsdC5pbnZva2UoamF2YUNvbnRleHQsIG15Q29sbGVjdGlvbl9lbCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMylcXG4gICAgfVxcbiAgICBzZXRIb21lUmVzdWx0ID0gc2V0UmVzdWx0XFxuICAgIHNldFNlYXJjaFJlc3VsdCA9IHNldFJlc3VsdFxcblxcbiAgICBldmFsKE1ZX1JVTEUuZmluZF9ydWxlLnNsaWNlKDMpKVxcbn0gZWxzZSB7XFxuICAgIGxldCBbXywgZmluZFJ1bGUsIGRldGFpbEZpbmRSdWxlXSA9IE1ZX1JVTEUuZmluZF9ydWxlLm1hdGNoKC9eKFtcXFxcc1xcXFxTXSo/KSg/Oj09PihbXFxcXHNcXFxcU10qKSk/JC8pXFxuICAgIGZpbmRSdWxlID0gZmluZFJ1bGUuc3BsaXQoJzsnKVxcbiAgICBwYXJzZURvbUZvckFycmF5KGdldFJlc0NvZGUoKSwgZmluZFJ1bGUuc2hpZnQoKSkuZm9yRWFjaCgoZGF0YSkgPT4ge1xcbiAgICAgICAgbGV0IFt0aXRsZSwgaW1nLCBkZXNjLCB1cmxdID0gZmluZFJ1bGUubWFwKCh2LCBpKSA9PiB7XFxuICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSAnKicpIHJldHVybiAnJ1xcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB2ID0gKGkgPT0gMSB8fCBpID09IDMpID9cXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZURvbShkYXRhLCB2KSA6XFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VEb21Gb3JIdG1sKGRhdGEsIHYpXFxuICAgICAgICAgICAgICAgICAgICBpZiAoaSAhPSAzKSB2ID0gcnVuQ29kZSh2KVxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyByZXR1cm4gJycgfVxcbiAgICAgICAgICAgIH0pLFxcbiAgICAgICAgICAgIHJlcyA9IHtcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLCB1cmw6IHVybCxcXG4gICAgICAgICAgICAgICAgZGVzYzogZGVzYywgaW1nOiBpbWcsXFxuICAgICAgICAgICAgICAgIGNvbF90eXBlOiBNWV9SVUxFLmNvbF90eXBlXFxuICAgICAgICAgICAgfVxcbiAgICAgICAgaWYgKHJlcy51cmwpIHtcXG4gICAgICAgICAgICBpZiAocmVzLnVybC5pbmNsdWRlcygnQGxhenlSdWxlPScpKSB7XFxuICAgICAgICAgICAgICAgIGxldCByZUluZGV4ID0gcmVzLnVybC5pbmRleE9mKCcuanM6JylcXG4gICAgICAgICAgICAgICAgaWYgKHJlSW5kZXggPj0gMCkgcmVzLnVybCA9IHJlcy51cmwuc2xpY2UoMCwgcmVJbmRleCkgKyAnLmpzOlxcXFxuaWYoTVlfUlVMRSlPYmplY3QuYXNzaWduKE1ZX1JVTEUsICcgKyBhc3NpZ25MYXp5UnVsZSArICcpOycgKyByZXMudXJsLnNsaWNlKHJlSW5kZXggKyA0KVxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZGV0YWlsRmluZFJ1bGUpIHtcXG4gICAgICAgICAgICAgICAgcmVzLmV4dHJhID0ge1xcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBnZW5FeFVybCh1cmwpLFxcbiAgICAgICAgICAgICAgICAgICAgUlVMRTogT2JqZWN0LmFzc2lnbihnZW5NeVJ1bGUoKSwgeyBkZXRhaWxfZmluZF9ydWxlOiBkZXRhaWxGaW5kUnVsZSB9KSxcXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogaXNJbmRleCAmJiB0aXRsZVxcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHJlcy51cmwgPSAnaGlrZXI6Ly9wYWdlL2ZyYW1lTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChNWV9SVUxFLmRldGFpbF9maW5kX3J1bGUpIHtcXG4gICAgICAgICAgICAgICAgcmVzLmV4dHJhID0ge1xcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBnZW5FeFVybCh1cmwpLFxcbiAgICAgICAgICAgICAgICAgICAgUlVMRTogZ2VuTXlSdWxlKCksXFxuICAgICAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IGlzSW5kZXggJiYgdGl0bGVcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICByZXMudXJsID0gJ2hpa2VyOi8vcGFnZS9mcmFtZUxvYWQ/cnVsZT0nICsgUUlOR19USVRMRVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIH1cXG4gICAgICAgIG15Q29sbGVjdGlvbl9lbC5wdXNoKHJlcylcXG4gICAgfSlcXG4gICAgc2V0UmVzdWx0KG15Q29sbGVjdGlvbl9lbClcXG59XFxuXCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLmlbDmja7ovb3lhaVcIixcInBhdGhcIjpcImRhdGFMb2FkXCIsXCJydWxlXCI6XCIkLmV4cG9ydHMgPSBmdW5jdGlvbihzaG93QWxsKSB7XFxuICAgIGxldCB1cmwgPSBnZXRNeVZhcigncmVtb3RlVXJsJyksXFxuICAgICAgICBpbnRlcnZhbCA9IHBhcnNlSW50KHJlYWRGaWxlKCd1cGRhdGVJbnRlcnZhbCcpIHx8ICcxJyksXFxuICAgICAgICB0aW1lID0gcGFyc2VJbnQocmVhZEZpbGUoJ3VwZGF0ZVRpbWUnKSkgfHwgMCxcXG4gICAgICAgIG5vdyA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpLFxcbiAgICAgICAgZGF0YSA9IFtdO1xcbiAgICBpZiAodGltZSA9PSAwIHx8IGludGVydmFsID4gMCAmJiBub3cgLSB0aW1lID4gMTAwMCAqIDYwICogNjAgKiAyNCAqIGludGVydmFsKSB7XFxuICAgICAgICAvLyDojrflj5bov5znqIvmlbDmja5cXG4gICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgZGF0YSA9ICQucmVxdWlyZShcXFwiaGlrZXI6Ly9wYWdlL2NyZWF0b3JcXFwiKTtcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICBpZihkYXRhLmxlbmd0aCA9PSAwKSB7XFxuICAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vZmlsZXMvbGlicy8nICsgbWQ1KHVybCkgKyAnLmpzJykgfHwgJ1tdJylcXG4gICAgICAgICAgICBsb2coJ+ayoeacieiOt+WPluWIsOabtOaWsOaVsOaNricpXFxuICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgIHdyaXRlRmlsZSgnaGlrZXI6Ly9maWxlcy9saWJzLycgKyBtZDUodXJsKSArICcuanMnLCBKU09OLnN0cmluZ2lmeShkYXRhKSk7XFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ3VwZGF0ZVRpbWUnLCBub3cudG9TdHJpbmcoKSlcXG4gICAgICAgICAgICBsb2coJ+abtOaWsOaVsOaNruW3suWGmeWFpeacrOWcsCcpXFxuICAgICAgICB9XFxuICAgIH0gZWxzZSB7XFxuICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9maWxlcy9saWJzLycgKyBtZDUodXJsKSArICcuanMnKSB8fCAnW10nKVxcbiAgICB9XFxuICAgIFxcbiAgICAvL2RhdGEgPSBkYXRhLmZpbHRlcigodikgPT4geyByZXR1cm4gdi50aXRsZSAhPSBnZXRNeVZhcignbXlDb2xsZWN0aW9uJykgJiYgISh2LmF1dGhvciB8fCAnJykuaW5jbHVkZXMoJ+i9u+WQiOmbhueUn+aIkOWZqCcpIH0pXFxuICAgICAgICBpZiAocmVhZEZpbGUoJ2Rpc2FibGVDdXN0b20nKSkgcmV0dXJuIGRhdGFcXG4gICAgICAgIGVsc2UgeyAvLyDlhpnlhaXoh6rlrprkuYnmlbDmja5cXG4gICAgICAgIGxldCBjdXN0b21EYXRhID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnY3VzdG9tRGF0YScpIHx8ICdbXScpLFxcbiAgICAgICAgICAgIHJld3JpdGVEYXRhID0gW11cXG4gICAgICAgIGN1c3RvbURhdGEgPSBjdXN0b21EYXRhLnJlZHVjZSgoc2VsZiwgdikgPT4ge1xcbiAgICAgICAgICAgIGxldCBpbmRleCA9IGRhdGEuZmluZEluZGV4KCh2dikgPT4gdi50aXRsZSA9PSB2di50aXRsZSlcXG4gICAgICAgICAgICBpZiAoaW5kZXggPj0gMCkge1xcbiAgICAgICAgICAgICAgICBzZWxmLnB1c2godilcXG4gICAgICAgICAgICAgICAgbGV0IHJ1bGUgPSBkYXRhLnNwbGljZShpbmRleCwgMSlbMF1cXG4gICAgICAgICAgICAgICAgaWYgKHNob3dBbGwgfHwgdi52aXNpYmxlKVxcbiAgICAgICAgICAgICAgICAgICAgcmV3cml0ZURhdGEucHVzaChPYmplY3QuYXNzaWduKHJ1bGUsIHYpKVxcbiAgICAgICAgICAgIH1cXG4gICAgICAgICAgICByZXR1cm4gc2VsZlxcbiAgICAgICAgfSwgW10pXFxuICAgICAgICBkYXRhLmZvckVhY2goKHYpID0+IGN1c3RvbURhdGEucHVzaCh7IHRpdGxlOiB2LnRpdGxlLCB2aXNpYmxlOiB0cnVlIH0pKVxcbiAgICAgICAgc2F2ZUZpbGUoJ2N1c3RvbURhdGEnLCBKU09OLnN0cmluZ2lmeShjdXN0b21EYXRhKSlcXG4gICAgICAgIHJldHVybiByZXdyaXRlRGF0YS5jb25jYXQoZGF0YSlcXG4gICAgfVxcbn1cXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuWHveaVsOmHjeWGmVwiLFwicGF0aFwiOlwicHJlRnVuY1wiLFwicnVsZVwiOlwiLy8g6Ziy5q2icmVxdWlyZeWkmuasoei/kOihjFxcbmxldCByQ2FjaGUgPSB7fVxcbnJlcXVpcmUgPSBmdW5jdGlvbihwYXJhbTAsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMsIHBhcmFtNCkge1xcbiAgICBpZiAoIXBhcmFtMCB8fCByQ2FjaGVbcGFyYW0wXSAhPSBudWxsKSB7XFxuICAgICAgICByZXR1cm5cXG4gICAgfVxcbiAgICByQ2FjaGVbcGFyYW0wXSA9IDFcXG4gICAgcGFyYW0yID0gcGFyYW0yIHx8IDBcXG4gICAgcGFyYW0zID0gTVlfVElDS0VUXFxuICAgIHBhcmFtNCA9IGV2YWxcXG4gICAgcmV0dXJuIG1ldGhvZF9yZXF1aXJlLmludm9rZShqYXZhQ29udGV4dCwgcGFyYW0wLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zLCBwYXJhbTQpXFxufVxcbnJlcXVpcmVDYWNoZSA9IGZ1bmN0aW9uKHBhcmFtMCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00LCBwYXJhbTUpIHtcXG4gICAgaWYgKCFwYXJhbTAgfHwgckNhY2hlW3BhcmFtMF0gIT0gbnVsbCkge1xcbiAgICAgICAgcmV0dXJuXFxuICAgIH1cXG4gICAgckNhY2hlW3BhcmFtMF0gPSAxXFxuICAgIHBhcmFtMyA9IHBhcmFtMyB8fCAwXFxuICAgIHBhcmFtNCA9IE1ZX1RJQ0tFVFxcbiAgICBwYXJhbTUgPSBldmFsXFxuICAgIHJldHVybiBtZXRob2RfcmVxdWlyZUNhY2hlLmludm9rZShqYXZhQ29udGV4dCwgcGFyYW0wLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zLCBwYXJhbTQsIHBhcmFtNSlcXG59XFxucmMgPSByZXF1aXJlQ2FjaGVcXG5cXG4vLyDmnIDmlrDnq6DoioLop4TliJnms6jlhaXpooTlpITnkIbku6PnoIFcXG5zZXRMYXN0Q2hhcHRlclJ1bGUgPSBmdW5jdGlvbihwYXJhbTApIHtcXG4gICAgaWYgKCFwYXJhbTApIHJldHVyblxcbiAgICBpZiAocGFyYW0wLnN0YXJ0c1dpdGgoXFxcImpzOlxcXCIpICYmIHRoaXNSVUxFLnByZVJ1bGUpIHtcXG4gICAgICAgIHBhcmFtMCA9ICdqczpcXFxcbnRyeXtldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS9wcmVGdW5jP3J1bGU9JyArIFFJTkdfVElUTEUgKyAnXFxcIikpLnJ1bGUpO1xcXFxcXG4gICAgICAgICAgICBldmFsKGJhc2U2NERlY29kZShcXFwiJyArIGJhc2U2NEVuY29kZSh0aGlzUlVMRS5wcmVSdWxlKSArICdcXFwiKSk7XFxcXFxcbiAgICAgICAgICAgIGxldCBfY2ZnID0gZ2V0TXlWYXIoXFxcImluaXRDb25maWdcXFwiLCBcXFwie31cXFwiKTtcXFxcXFxuICAgICAgICAgICAgaWYgKF9jZmcgJiYgX2NmZy5sZW5ndGg+MCkge2NvbmZpZyA9IEpTT04ucGFyc2UoX2NmZyl9fWNhdGNoKGUpe2xvZyhlLm1lc3NhZ2UpfVxcXFxuOycgK1xcbiAgICAgICAgICAgIHBhcmFtMC5zbGljZSgzKVxcbiAgICB9XFxuICAgIG1ldGhvZF9zZXRMYXN0Q2hhcHRlclJ1bGUuaW52b2tlKGphdmFDb250ZXh0LCBwYXJhbTApO1xcbn1cXG5cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIumTvuaOpeWkhOeQhlwiLFwicGF0aFwiOlwidXJsUGFyc2VcIixcInJ1bGVcIjpcIi8vIOmmlumhtemTvuaOpeabv+aNouWIhuexu1xcbmZ1bmN0aW9uIGluZGV4VXJsKHBhcmFtKSB7XFxuICAgIGZ1bmN0aW9uIHJ1bkNvZGUocnVsZSkge1xcbiAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICBsZXQgW2lucHV0LCBjb2RlXSA9IHJ1bGUuc3BsaXQoJy5qczonKVxcbiAgICAgICAgICAgIHJldHVybiBjb2RlID8gZXZhbChjb2RlKSA6IHJ1bGVcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHsgcmV0dXJuIHJ1bGUgfVxcbiAgICB9XFxuICAgIGxldCB7IFJVTEUsIHBhZ2VOdW0sIFFJTkdfVElUTEUgfSA9IEpTT04ucGFyc2UocGFyYW0uc3BsaXQoJyMjIycpWzFdKVxcbiAgICBSVUxFID0gSlNPTi5wYXJzZShiYXNlNjREZWNvZGUoUlVMRSkpXFxuICAgIHBhZ2VOdW0gPSBwYXJzZUludChwYWdlTnVtKVxcbiAgICBsZXQgdXJsID0gUlVMRS51cmxcXG5cXG4gICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvQ2xhc3NUYWI/cnVsZT0nICsgUUlOR19USVRMRSkpLnJ1bGUpXFxuICAgIHVybCA9IHRhYkhlYWRlci5zZXRVcmwoZnlBbGwgPyB1cmwucmVwbGFjZSgvZnlBbGwvZywgJyQke2Z5QWxsfScpIDogdXJsLnJlcGxhY2UoL2Z5KGNsYXNzfGFyZWF8eWVhcnxzb3J0KS9nLCAnJCR7ZnkkMX0nKSlcXG4gICAgdXJsID0gdXJsLnJlcGxhY2UoL2Z5cGFnZSg/OkAoLT9cXFxcZCspQCk/KD86XFxcXCooXFxcXGQrKUApPy9nLCAoXywgc3RhcnQsIHNwYWNlKSA9PiBwYXJzZUludChzdGFydCB8fCAwKSArIDEgKyAocGFnZU51bSAtIDEpICogcGFyc2VJbnQoc3BhY2UgfHwgMSkpXFxuICAgIHVybCA9IC9eKFtcXFxcc1xcXFxTXSo/KSg/OlxcXFxbZmlyc3RQYWdlPShbXFxcXHNcXFxcU10qPylcXFxcXSk/KD86KFxcXFwuanM6W1xcXFxzXFxcXFNdKj8pKT8kLy5leGVjKHVybClcXG4gICAgaWYgKHBhZ2VOdW0gPT0gMSAmJiB1cmxbMl0pIHVybFsxXSA9IHVybFsyXVxcbiAgICBpZiAodXJsWzNdICYmICF1cmxbMV0uaW5jbHVkZXMoJy5qczonKSkgdXJsWzFdICs9IHVybFszXVxcbiAgICByZXR1cm4gcnVuQ29kZSh1cmxbMV0pXFxufVxcbi8vIOmTvuaOpeWPguaVsOWkhOeQhlxcbmZ1bmN0aW9uIHBhcmFtSGFuZGxlKHVybFBhcmFtLCB1YSwgdXJsVG1wKSB7XFxuICAgIGxldCBjaGFyc2V0LCBVc2VyQWdlbnRcXG4gICAgdHJ5IHsgLy8g6ZO+5o6l55qE57yW56CB5ZKMdWHlupTor6XmmK/pppblhYjnu6fmib/pppbpobXpk77mjqVcXG4gICAgICAgIFssICwgY2hhcnNldCwgVXNlckFnZW50XSA9IHVybFRtcC5zcGxpdCgnOycpXFxuICAgICAgICBVc2VyQWdlbnQgPSBVc2VyQWdlbnQubWF0Y2goL157KC4qKX0kLylbMV0uc3BsaXQoJyYmJykuZmluZCgodikgPT4gdi5zdGFydHNXaXRoKCdVc2VyLUFnZW50QCcpKVxcbiAgICB9IGNhdGNoIChlKSB7fVxcbiAgICB1cmxQYXJhbVswXSA9IHVybFBhcmFtWzBdIHx8ICdHRVQnXFxuICAgIHVybFBhcmFtWzFdID0gdXJsUGFyYW1bMV0gfHwgY2hhcnNldCB8fCAnVVRGLTgnXFxuICAgIHRyeSB7XFxuICAgICAgICB1cmxQYXJhbVsyXSA9IHVybFBhcmFtWzJdLm1hdGNoKC9eeyguKil9JC8pWzFdLnNwbGl0KCcmJicpXFxuICAgIH0gY2F0Y2ggKGUpIHsgdXJsUGFyYW1bMl0gPSBbXSB9XFxuICAgIC8vIOa3u+WKoOWFqOWxgFVBXFxuICAgIGlmICghdXJsUGFyYW1bMl0uc29tZSgodikgPT4gdi5zdGFydHNXaXRoKCdVc2VyLUFnZW50QCcpKSkge1xcbiAgICAgICAgaWYgKFVzZXJBZ2VudCkgdXJsUGFyYW1bMl0ucHVzaChVc2VyQWdlbnQpXFxuICAgICAgICBlbHNlIGlmICh1YSA9PSAncGMnKVxcbiAgICAgICAgICAgIHVybFBhcmFtWzJdLnB1c2goJ1VzZXItQWdlbnRAJyArIFBDX1VBLnJlcGxhY2UoLzsvZywgJ++8m++8mycpLnJlcGxhY2UoL1xcXFw/LywgJ++8n++8nycpKVxcbiAgICAgICAgZWxzZSBpZiAodWEgPT0gJ21vYmlsZScpXFxuICAgICAgICAgICAgdXJsUGFyYW1bMl0ucHVzaCgnVXNlci1BZ2VudEAnICsgTU9CSUxFX1VBLnJlcGxhY2UoLzsvZywgJ++8m++8mycpLnJlcGxhY2UoL1xcXFw/LywgJ++8n++8nycpKVxcbiAgICB9XFxuICAgIHVybFBhcmFtWzJdID0gJ3snICsgdXJsUGFyYW1bMl0uam9pbignJiYnKSArICd9J1xcbiAgICByZXR1cm4gdXJsUGFyYW0uam9pbignOycpXFxufVxcblwifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi55Sf5oiQ6KeE5YiZ6ZuGXCIsXCJwYXRoXCI6XCJjcmVhdG9yXCIsXCJydWxlXCI6XCJsZXQgYXBwanNvbiA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2FwcEpzb24nKTtcXG5cXG5mdW5jdGlvbiByYW5kb21Tb3J0MyhhcnIpIHtcXG4gICAgLyphcnIuc29ydChmdW5jdGlvbigpIHtcXG4gICAgICAgIHJldHVybiBNYXRoLnJhbmRvbSgpIC0gMC41O1xcbiAgICB9KTsqL1xcbiAgICByZXR1cm4gYXJyO1xcbn1cXG5cXG5sZXQgYXBwY29udHMgPSBhcHBqc29uLmRhdGEsXFxuICAgIHJ1bGVzID0gW10sXFxuICAgIHR5cGVzID0geyBcXFwiXFxcIjogXFxcIuWFqOmDqFxcXCIgfTtcXG5mb3IgKGxldCBpID0gMDsgaSA8IGFwcGNvbnRzLmxlbmd0aDsgaSsrKSB7XFxuICAgIGxldCBhcHBsaXN0ID0gcmFuZG9tU29ydDMoYXBwY29udHNbaV0ubGlzdCksXFxuICAgICAgICBhcHB0eXBlID0gYXBwY29udHNbaV0udGl0bGUgLyogKyBhcHBsaXN0Lmxlbmd0aCovIDtcXG4gICAgdHlwZXNbYXBwdHlwZV0gPSBhcHB0eXBlO1xcbiAgICBpZiAoYXBwdHlwZS5pbmNsdWRlcyhcXFwi5Liq5Lq65pS26ZuGXFxcIikpIGNvbnRpbnVlO1xcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IGFwcGxpc3QubGVuZ3RoOyBqKyspIHtcXG4gICAgICAgIGxldCBhcHB0aXRsZSA9IGFwcGxpc3Rbal0udGl0bGUsXFxuICAgICAgICAgICAgYXBwaWNvbiA9IGFwcGxpc3Rbal0uaW1nLFxcbiAgICAgICAgICAgIGFwcFVybCA9IGFwcGxpc3Rbal0udXJsLFxcbiAgICAgICAgICAgIGhvbWVfdXJsID0gXFxcIlxcXCIsXFxuICAgICAgICAgICAgZmluZF9ydWxlID0gXFxcIlxcXCIsXFxuICAgICAgICAgICAgc2VhcmNoX3VybCA9IFxcXCJcXFwiLFxcbiAgICAgICAgICAgIHNlYXJjaEZpbmQgPSBcXFwiXFxcIixcXG4gICAgICAgICAgICBwYWdlcyA9IFtdLFxcbiAgICAgICAgICAgIGxhc3RfY2hhcHRlcl9ydWxlID0gXFxcIlxcXCIsXFxuICAgICAgICAgICAgYXBwVWEgPSBcXFwiXFxcIjtcXG4gICAgICAgIC8v5aSE55CG6YeN5ZCN55qEXFxuICAgICAgICBsZXQgbnVtID0gMSxcXG4gICAgICAgICAgICB0ZW1wID0gYXBwdGl0bGU7XFxuICAgICAgICB3aGlsZSAocnVsZXMuc29tZShjdXIgPT4gY3VyLnRpdGxlID09IGFwcHRpdGxlKSkge1xcbiAgICAgICAgICAgIG51bSA9IG51bSArIDE7XFxuICAgICAgICAgICAgYXBwdGl0bGUgPSB0ZW1wICsgbnVtO1xcbiAgICAgICAgfVxcbiAgICAgICAgLy/op4TliJnpk77mjqXlkozmkJzntKLpk77mjqVcXG4gICAgICAgIGlmICgv56We6amsfFRWLy50ZXN0KGFwcHR5cGUpKSB7XFxuICAgICAgICAgICAgaG9tZV91cmwgPSBcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcIiArIGFwcFVybCArIFxcXCI/YWM9bGlzdCZwYWdlPWZ5cGFnZVxcXCI7XFxuICAgICAgICAgICAgaWYgKC8xOWp4fDI5M3lzfHpoYWlrYW55c3xqaVxcXFwtZGluZ1xcXFwtaGV8cGhvZWJlfHl1bmJvXFxcXC5ieGlufGxhbnJlbnRrfGhldGFveXN8cHh1bnwxMzlcXFxcLjE1NXxma2tkeXwwNTYxNTh8YWl4aXhpfHJ1b3hpbmV3fGZlaWZhbjEyM3xzaXFpdHYvLnRlc3QoYXBwVXJsKSkge1xcbiAgICAgICAgICAgICAgICBzZWFyY2hfdXJsID0gXFxcImhpa2VyOi8vZW1wdHkjI1xcXCIgKyBhcHBVcmwgKyAnP2FjPWxpc3QmcGFnZT1meXBhZ2Umem09KionO1xcbiAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgIHNlYXJjaF91cmwgPSBcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcIiArIGFwcFVybCArICc/YWM9bGlzdCZwYWdlPWZ5cGFnZSZ3ZD0qKic7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXCJhcGkucGhwL2FwcFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgIGhvbWVfdXJsID0gXFxcImhpa2VyOi8vZW1wdHkjI1xcXCIgKyBhcHBVcmwgKyBcXFwiaW5kZXhfdmlkZW8/dG9rZW49XFxcIjtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGFwcFVybC5pbmNsdWRlcyhcXFwieGdhcHBcXFwiKSkge1xcbiAgICAgICAgICAgICAgICBob21lX3VybCA9IFxcXCJoaWtlcjovL2VtcHR5IyNcXFwiICsgYXBwVXJsICsgXFxcImluZGV4X3ZpZGVvP3Rva2VuPVxcXCI7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgaG9tZV91cmwgPSBcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcIiArIGFwcFVybCArIFxcXCIvdm9kUGhiQWxsXFxcIjtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcygnYXBpLnBocC9hcHAnKSkge1xcbiAgICAgICAgICAgICAgICBzZWFyY2hfdXJsID0gXFxcImhpa2VyOi8vZW1wdHkjI1xcXCIgKyBhcHBVcmwgKyAnc2VhcmNoP3BnPWZ5cGFnZSZ0b2tlbj0mdGV4dD0qKic7XFxuICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoJ3hnYXBwJykpIHtcXG4gICAgICAgICAgICAgICAgc2VhcmNoX3VybCA9IFxcXCJoaWtlcjovL2VtcHR5IyNcXFwiICsgYXBwVXJsICsgJ3NlYXJjaD9wZz1meXBhZ2UmdGV4dD0qKic7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdChhcHBVcmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICBzZWFyY2hfdXJsID0gXFxcImhpa2VyOi8vZW1wdHkjI1xcXCIgKyBhcHBVcmwgKyAnL2xpc3Q/cGFnZT1meXBhZ2UmbGltaXQ9MTAmd2Q9KionO1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX3VybCA9IFxcXCJoaWtlcjovL2VtcHR5IyNcXFwiICsgYXBwVXJsICsgJz9wYWdlPWZ5cGFnZSZsaW1pdD0xMCZ3ZD0qKic7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuICAgICAgICB9XFxuICAgICAgICAvL+mcgOimgeeJueauiuWkhOeQhueahOmTvuaOpVxcbiAgICAgICAgZnVuY3Rpb24gY2hhbmdlVXJsKHVybCkge1xcbiAgICAgICAgICAgIGxldCBuZXdVcmwgPSB1cmw7XFxuICAgICAgICAgICAgaWYgKHVybC5pbmNsdWRlcyhcXFwib21vZnVuXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgbmV3VXJsID0gdXJsICsgXFxcIiZjc3JmPWElMkJJS0dMdW5KQ1p1YWQlMkJ4RVRMclp1Qm9xaGx1RkNEMGRIODZFOElFTnZCek1mQkxhNmRCOFJ6b3h4SXZ2QkVNZUp6Sm5VU3Q1MUZobFBCZDRLcjV5aEdYbHlOdkRrSnlOTURnRFoxYiUyRnNqWEFlTXRqMTdYdGVNOHB1VFkyUFFuUXdZT3lqJTJGSFVDQVZSWmtyZmxzazg3WUcxVmVTd25FVDhUcHJERDh0NnVnJTNEQHNpZ25hdHVyZT1GRUQ0QTA5MkQ1QkJCRTE4MTE3QTNCNTU4RUI2NDYxQTkyQTUyQ0Y3XFxcIjtcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHVybC5pbmNsdWRlcyhcXFwieGlubHVhblxcXCIpKSB7XFxuICAgICAgICAgICAgICAgIG5ld1VybCA9IHVybCArIFxcXCImY3NyZj1TUkVRQVBYOHRGRUtwVjJkTERqTFpoS2s4SXhKZkRXaE4lMkJta3NXSiUyRmtkUlZ3Z1VoJTJGUWtURFpFb1FBU2FBcDdIelVpeDg3VCUyQlBMa0FJdzZ5SCUyQjZNcnZhcUpNOXJKNWwyYjg1SVFSYkJiVyUyQkRiU1lSTzhibVRzS2RMWURUVnRSSGh6NW55bFJXbEdVaWR4SGZWeUxPOXRaVWlCazFZMkF3byUyRnpzYTJ0SDJ1OCUzREBzaWduYXR1cmU9RkJDNzA4OEM2NzdEMjk3RTZCQkJDODU4NEE5MzM3MkRERTEwRkQ5NlxcXCI7XFxuICAgICAgICAgICAgfSBlbHNlIGlmICh1cmwuaW5jbHVkZXMoXFxcInN4YnJkXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgbmV3VXJsID0gdXJsICsgXFxcIiZjc3JmPXIyTkRMdHBTOEV1cWglMkYlMkY4WTk2eWNPVU9LUzlJQ3pOWXp5YXc1QzJVZkVnb0RGREhYJTJGcnFqJTJCWWNMV1F6SDUlMkJSNm1vVU9sd09Bb0pSRXRVYTM3NnVkNzQ2MjdVRHpOUTFzUkdkVEQ4a2IzNnMxZVRNZW1jbjhkMGk3V0o2azlpaDVJUDRBZDdmcGE2JTJGM0RzdDFqb0duY3lyNzE2ZFJIRE1mY3ZyczNTMjlqSSUzREBjbGllbnRfbmFtZT01NVdGNTV5TDViMng2S2VHXFxcIjtcXG4gICAgICAgICAgICB9XFxuICAgICAgICAgICAgcmV0dXJuIG5ld1VybDtcXG4gICAgICAgIH1cXG4gICAgICAgIC8v6K+35rGCVUFcXG4gICAgICAgIGlmIChhcHBVcmwuaW5jbHVkZXMoXFxcImFwaS5waHAvYXBwXFxcIikgfHwgYXBwVXJsLmluY2x1ZGVzKFxcXCJ4Z2FwcFxcXCIpIHx8IGFwcFVybC5pbmNsdWRlcyhcXFwiZnJlZWthblxcXCIpKSB7XFxuICAgICAgICAgICAgYXBwVWEgPSBcXFwiRGFydC8yLjE0IChkYXJ0OmlvKVxcXCI7XFxuICAgICAgICB9IGVsc2UgaWYgKC96c2J8Zmt4c3x4YXlzfHhjeXN8c3p5c3xkeHlzfHl0eXN8cW55cy8udGVzdChhcHBVcmwpKSB7XFxuICAgICAgICAgICAgYXBwVWEgPSBcXFwiRGFydC8yLjE1IChkYXJ0OmlvKVxcXCI7XFxuICAgICAgICB9IGVsc2UgaWYgKGFwcFVybC5pbmNsdWRlcyhcXFwiLnZvZFxcXCIpKSB7XFxuICAgICAgICAgICAgYXBwVWEgPSBcXFwib2todHRwLzQuMS4wXFxcIjtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgYXBwVWEgPSBcXFwiRGFsdmlrLzIuMS4wXFxcIjsgLy9UVlxcbiAgICAgICAgfVxcbiAgICAgICAgLy/pppbpobXop4TliJnjgIHliIbnsbvop4TliJnjgIHkuoznuqfop4TliJnlkozop4bpopHop6PmnpBcXG4gICAgICAgIGlmICgv56We6amsfFRWLy50ZXN0KGFwcHR5cGUpKSB7XFxuICAgICAgICAgICAgZmluZF9ydWxlID0gXFxcImpzOlxcXCIgKyAkLnRvU3RyaW5nKGZ1bmN0aW9uKGFwcFVybCwgYXBwVWEpIHtcXG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1zID0gW107XFxuICAgICAgICAgICAgICAgIGlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGVKc29uID0gSlNPTi5wYXJzZShmZXRjaChhcHBVcmwgKyBcXFwiP2FjPWZsaXR0ZXJcXFwiKSwgeyBoZWFkZXJzOiB7IFxcXCJVc2VyLUFnZW50XFxcIjogYXBwVWEgfSB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBrZXkgaW4gdHlwZUpzb24pIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZToga2V5LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJmbGV4X2J1dHRvblxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoXFxcImhpa2VyOi8vZW1wdHkjI1xcXCIgKyBhcHBVcmwgKyBcXFwiP2FjPWxpc3QmcGFnZT1meXBhZ2UmY2xhc3M9XFxcIiArIGtleSkucnVsZSgodHlwZUpzb24sIGFwcFVhKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkTGlzdGVuZXIoXFxcIm9uQ2xvc2VcXFwiLCBcXFwiY2xlYXJWYXIoJ2ZpbHRlcicpXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1zID0gW10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXMgPSB7fSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlrZXlzID0gW10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IHt9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvciA9IFxcXCIjRkE3Mjk4XFxcIjtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpbmRleCBpbiB0eXBlSnNvbikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZUpzb25baW5kZXhdLnZhbHVlcy5sZW5ndGggPT0gMSkgY29udGludWU7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBrZXkgPSB0eXBlSnNvbltpbmRleF0uZmllbGQsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJOYW1lID0gXFxcIuWFqOmDqFxcXCIgKyB0eXBlSnNvbltpbmRleF0ubmFtZTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlrZXlzLnB1c2goa2V5KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5c1tcXFwiZlxcXCIgKyBrZXldID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcltcXFwiZlxcXCIgKyBrZXldID0gW2ZpbHRlck5hbWVdLmNvbmNhdCh0eXBlSnNvbltpbmRleF0udmFsdWVzKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFnZXRWYXIoXFxcImZpbHRlclxcXCIsIFxcXCJcXFwiKSkgeyBwdXRWYXIoXFxcImZpbHRlclxcXCIsIEpTT04uc3RyaW5naWZ5KGtleXMpKSB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFwiZmlsdGVyXFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChNWV9QQUdFID09IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBpbiBmaWx0ZXIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmaWx0ZXJbaXRlbV0ubGVuZ3RoOyBpbmRleCsrKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0ZW1wW2l0ZW1dID09IFxcXCJcXFwiID8gKGluZGV4ID09PSAwID8gXFxcIuKAnOKAnOKAneKAnVxcXCIgKyBmaWx0ZXJbaXRlbV1bMF0uYm9sZCgpLmZvbnRjb2xvcihjb2xvcikgOiBmaWx0ZXJbaXRlbV1baW5kZXhdKSA6ICh0ZW1wW2l0ZW1dID09IGZpbHRlcltpdGVtXVtpbmRleF0gPyBcXFwi4oCc4oCc4oCd4oCdXFxcIiArIGZpbHRlcltpdGVtXVtpbmRleF0uYm9sZCgpLmZvbnRjb2xvcihjb2xvcikgOiBmaWx0ZXJbaXRlbV1baW5kZXhdKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXCJzY3JvbGxfYnV0dG9uXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCkubGF6eVJ1bGUoKGRlcywgbmFtZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFwiZmlsdGVyXFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFtuYW1lXSA9IGRlcy5pbmRleE9mKFxcXCLlhajpg6hcXFwiKSAhPSAtMSA/IFxcXCJcXFwiIDogZGVzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0VmFyKFxcXCJmaWx0ZXJcXFwiLCBKU09OLnN0cmluZ2lmeSh0ZW1wKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGZpbHRlcltpdGVtXVtpbmRleF0sIGl0ZW0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goeyBjb2xfdHlwZTogXFxcImJsYW5rX2Jsb2NrXFxcIiB9KVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSBNWV9VUkwuc3BsaXQoXFxcIiMjXFxcIilbMV0gKyBcXFwiJlxcXCIgKyB0eWtleXMubWFwKGN1ciA9PiBjdXIgKyBcXFwiPWZcXFwiICsgY3VyKS5qb2luKFxcXCImXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBpbiB0ZW1wKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKGl0ZW0sIHRlbXBbaXRlbV0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzY29kZSA9IGZldGNoKHVybCwgeyBoZWFkZXJzOiB7IFxcXCJVc2VyLUFnZW50XFxcIjogYXBwVWEgfSB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzY29kZS5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNjb2RlID0gZmV0Y2godXJsICsgJyZidHdhZicgKyByZXNjb2RlLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXCIvKVsxXSwgeyBoZWFkZXJzOiB7IFxcXCJVc2VyLUFnZW50XFxcIjogYXBwVWEgfSB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGh0bWwgPSBKU09OLnBhcnNlKHJlc2NvZGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3R2bGlzdGRhdGEnKSkucnVsZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcIuinhumikeWIl+ihqOWHuumUmTpcXFwiICsgZS5tZXNzYWdlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGl0ZW1zKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIHR5cGVKc29uW2tleV0sIGFwcFVhKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcIummlumhteWIhuexu+WHuumUmTpcXFwiICsgZS5tZXNzYWdlKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9IE1ZX1VSTC5zcGxpdCgnIyMnKVsxXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sID0gSlNPTi5wYXJzZShmZXRjaCh1cmwpKTtcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3R2bGlzdGRhdGEnKSkucnVsZSk7XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxvZyhcXFwi6aaW6aG15o6o6I2Q5Ye66ZSZOlxcXCIgKyBlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHNldFJlc3VsdChpdGVtcyk7XFxuICAgICAgICAgICAgfSwgYXBwVXJsLCBhcHBVYSlcXG4gICAgICAgICAgICBsZXQgcnVsZV90dmxpc3RkYXRhID0gJC50b1N0cmluZyhmdW5jdGlvbigpIHtcXG4gICAgICAgICAgICAgICAgbGV0IGxpc3QgPSBodG1sLmRhdGE7XFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IHsgdGl0bGUsIHBpYywgbmV4dGxpbmssIHN0YXRlIH0gPSBsaXN0W2ldO1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9IG5leHRsaW5rLnN0YXJ0c1dpdGgoJ2h0dHAnKSA/IG5leHRsaW5rIDogYXBwVXJsICsgJz9hYz1kZXRhaWwmaWRzPScgKyBuZXh0bGluaztcXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiBwaWMgKyAnQFJlZmVyZXI9JyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiBzdGF0ZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKFxcXCIjaW1tZXJzaXZlVGhlbWUjaGlrZXI6Ly9lbXB0eSMjXFxcIiArIHVybCkucnVsZSgoKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dm1vdmxpc3QnKSkucnVsZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFwi5b2x54mH6K+m5oOF5Ye66ZSZOlxcXCIgKyBlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KFtdKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIGxldCBydWxlX3R2bW92bGlzdCA9ICQudG9TdHJpbmcoZnVuY3Rpb24oYXBwVXJsLCBhcHBVYSkge1xcbiAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihcXFwib25DbG9zZVxcXCIsICQudG9TdHJpbmcoKHVybCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJWYXIoJ25vdycpO1xcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJWYXIodXJsKTtcXG4gICAgICAgICAgICAgICAgfSwgTVlfVVJMKSk7XFxuICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdLFxcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGdldFZhcihNWV9VUkwsIFxcXCJcXFwiKTtcXG4gICAgICAgICAgICAgICAgLy9kb21pbiA9IE1ZX1VSTC5zcGxpdChcXFwiIyNcXFwiKVsxXS5tYXRjaCgvKFtcXFxcU10qPzpcXFxcL1xcXFwvW1xcXFxTXSo/KVxcXFwvLylbMV07XFxuICAgICAgICAgICAgICAgIGlmIChodG1sID09IFxcXCJcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICBodG1sID0gZmV0Y2goTVlfVVJMLnNwbGl0KFxcXCIjI1xcXCIpWzFdLCB7IGhlYWRlcnM6IHsgXFxcIlVzZXItQWdlbnRcXFwiOiBhcHBVYSB9IH0pO1xcbiAgICAgICAgICAgICAgICAgICAgcHV0VmFyKE1ZX1VSTCwgaHRtbCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoaHRtbCk7XFxuXFxuICAgICAgICAgICAgICAgIC8v566A5LuLXFxuICAgICAgICAgICAgICAgIGxldCB7IHRpdGxlLCBwdWJ0aW1lLCB0cnVuaywgYXJlYSwgdHlwZSwgZGlyZWN0b3IsIGFjdG9yLCBpbWdfdXJsLCBpbnRybyB9ID0gaHRtbDtcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUgKyBcXFwiKFxcXCIgKyBwdWJ0aW1lICsgXFxcIilcXFwiICsgXFxcIlxcXFxuXFxcIiArIGFyZWEuam9pbihcXFwiL1xcXCIpICsgXFxcIi9cXFwiICsgdHlwZS5qb2luKFxcXCIvXFxcIikgKyBcXFwiL1xcXCIgKyB0cnVuayxcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6IFxcXCLlr7zmvJQ6XFxcIiArIGRpcmVjdG9yLmpvaW4oXFxcIixcXFwiKSArIFxcXCJcXFxcblxcXCIgKyBcXFwi5Li75ryUOlxcXCIgKyBhY3Rvci5qb2luKFxcXCIsXFxcIiksXFxuICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiBpbWdfdXJsLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCIsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInXFxuICAgICAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5Ymn5oOF566A5LuLOicsXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiBpbnRybyxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnaGlrZXI6Ly9lbXB0eSNub1JlY29yZEhpc3RvcnkjJykucnVsZSgoZGVzYykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChbe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZGVzYyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdsb25nX3RleHQnXFxuICAgICAgICAgICAgICAgICAgICAgICAgfV0pO1xcbiAgICAgICAgICAgICAgICAgICAgfSwgaW50cm8pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAvL+aWreaPklxcbiAgICAgICAgICAgICAgICBsZXQgZG5lbiA9IGdldE15VmFyKFxcXCJkbmVuXFxcIiwgXFxcIjBcXFwiKTtcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+aWreaPkjonICsgKGRuZW4gPT0gJzEnID8gJ+KAnOKAnOKcheKAneKAnScgOiAn4p2OJyksXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJycpLmxhenlSdWxlKChkbmVuKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRuZW4gPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXCJkbmVuXFxcIiwgXFxcIjBcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey56aB55So5pat5o+S6LCD55SoISc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoXFxcImRuZW5cXFwiLCBcXFwiMVxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LlvIDlkK/mlq3mj5LosIPnlKghJ1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0sIGRuZW4pLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzInXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn57q/6Lev6YWN572uJyxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcImhpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5I0BydWxlPWpzOnRoaXMuZD1bXTtyZXF1aXJlKCdodHRwczovL2dpdGVhLmNvbS9BSTk1Ny9IaWtlci9yYXcvbS92L1JvdXRlLmpzJyk7Um91dGUuc2V0UGFyc2UoKTtzZXRSZXN1bHQoZCk7XFxcIixcXG4gICAgICAgICAgICAgICAgICAgIC8vdXJsOlxcXCJoaWtlcjovL3BhZ2UvUm91dGU/cnVsZT1NeUZpZWxk4bSw4oG/JnR5cGU96K6+572uI25vUmVjb3JkSGlzdG9yeSNcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzInXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICAvL+e6v+i3r+WIl+ihqFxcbiAgICAgICAgICAgICAgICBsZXQgdGFicyA9IE9iamVjdC5rZXlzKGh0bWwudmlkZW9saXN0KTtcXG4gICAgICAgICAgICAgICAgaWYgKGdldFZhcihcXFwibm93XFxcIiwgXFxcIlxcXCIpID09IFxcXCJcXFwiKSB7IHB1dFZhcihcXFwibm93XFxcIiwgdGFic1swXSkgfVxcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcXFwi4oCc4oCc4oaT4oaR4oCd4oCdXFxcIixcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcImhpa2VyOi8vZW1wdHlAbGF6eVJ1bGU9LmpzOnB1dFZhcignYXBwbXR2c29ydCcsIGdldFZhcignYXBwbXR2c29ydCcsJzEnKT09JzEnPycwJzonMScpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip8hJ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpIGluIHRhYnMpIHtcXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBnZXRWYXIoXFxcIm5vd1xcXCIpID09IHRhYnNbaV0gPyBcXFwi4oCc4oCc4oCd4oCdXFxcIiArIHRhYnNbaV0uYm9sZCgpLmZvbnRjb2xvcihcXFwiI0ZBNzI5OFxcXCIpIDogdGFic1tpXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ25vdycsJ1xcXCIgKyB0YWJzW2ldICsgXFxcIicpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip8hJ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAvL+inhumikeWIl+ihqFxcbiAgICAgICAgICAgICAgICBsZXQgcHRhYiA9IGdldFZhcihcXFwibm93XFxcIiksXFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC52aWRlb2xpc3RbcHRhYl07XFxuICAgICAgICAgICAgICAgIGxvZygn5b2T5YmN57q/6LevOicgKyBwdGFiKTtcXG4gICAgICAgICAgICAgICAgaWYgKGdldFZhcignYXBwbXR2c29ydCcsICcxJykgPT0gJzAnKSB7XFxuICAgICAgICAgICAgICAgICAgICBsaXN0LnJldmVyc2UoKTtcXG4gICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBsaXN0Lmxlbmd0aDsgaisrKSB7XFxuICAgICAgICAgICAgICAgICAgICBsZXQgc3JjdXJsID0gbGlzdFtqXS51cmw7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoLzI5M2p4MS8udGVzdChzcmN1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjdXJsID0gc3JjdXJsLnJlcGxhY2UoJzI5M2p4MScsICdqeCcpO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvOGQ4cXxkaWxpa3R2fGhhb2thbmp1MXxjenR2fGZpdFxcXFw6OHxwcHpodS8udGVzdChhcHBVcmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjdXJsID0gc3JjdXJsICsgJyZhcHA9MTAwMDAmYWNjb3VudD0yNzI3NzUwMjgmcGFzc3dvcmQ9cXEyNzI3NzUwMjgnO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gbGlzdFtqXS50aXRsZTtcXG4gICAgICAgICAgICAgICAgICAgIC8vdGl0bGUgPSB0aXRsZS5tYXRjaCgvKOesrHxcXFxcZHwtKSoo6ZuGfOivnXzmnJ8pL2cpID8gdGl0bGUucmVwbGFjZSgv56ysfOmbhnzor5185pyfL2csICcnKSA6IHRpdGxlO1xcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF80XFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9wYWdlL2xhenlQYXJzZVxcXCIpKS5ydWxlKVxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgc2V0UmVzdWx0KGl0ZW1zKTtcXG4gICAgICAgICAgICB9LCBhcHBVcmwsIGFwcFVhKTtcXG4gICAgICAgICAgICBsZXQgbGF6eVBhcnNlID0gJC50b1N0cmluZygoKSA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCB2bGluayA9IHNyY3VybDtcXG4gICAgICAgICAgICAgICAgaWYgKC8odXJsfHZpZHx2KVxcXFw9Ly50ZXN0KHNyY3VybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgIHZsaW5rID0gc3JjdXJsLnN1YnN0cmluZyhzcmN1cmwuc2VhcmNoKC8odXJsfHZpZHx2KVxcXFw9LykpLnNwbGl0KCc9JylbMV0uc3BsaXQoJyYnKVswXTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBsZXQgZW5EbiA9IGdldE15VmFyKFxcXCJkbmVuXFxcIiwgXFxcIjBcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgIHRlc3QxID0gdmxpbmsuc2VhcmNoKC95b3VrdXxtZ3R2fGl4aWd1YXxxcS5jb218cWl5aXxtaWd1fGJpbGliaWxpfHNvaHV8cHB0dnxsZXwxOTA1LmNvbS8pICE9IC0xLFxcbiAgICAgICAgICAgICAgICAgICAgdGVzdDIgPSB2bGluay5zZWFyY2goL0xUXFxcXC18Um9uZ1hpbmdWUlxcXFwtfHJlbnJlbm1pXFxcXC18eGZ5XFxcXC18c3VveW9cXFxcLmNjfGZlblxcXFwubGFvZGl8cnVpZmVuZ2xifHh1ZXJlblxcXFwtLykgIT0gLTE7XFxuICAgICAgICAgICAgICAgIGlmICgodGVzdDEgfHwgdGVzdDIpICYmIGVuRG4gPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCgnaGlrZXI6Ly9lbXB0eScpLmxhenlSdWxlKCh2bGluaykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFwi6LCD55So5pat5o+S6Kej5p6QLOinhumikemTvuaOpTpcXFwiICsgdmxpbmspO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoXFxcImxldCBjb25maWcgPVxcXCIgKyBmZXRjaChcXFwiaGlrZXI6Ly9maWxlcy9jYWNoZS9NeVBhcnNlU2V0Lmpzb25cXFwiKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChmZXRjaChjb25maWcuY2opKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXl0bVBhcnNlKHZsaW5rKTtcXG4gICAgICAgICAgICAgICAgICAgIH0sIHZsaW5rKVxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoXFxcImhpa2VyOi8vZW1wdHlcXFwiKS5sYXp5UnVsZSgocHRhYiwgc3JjdXJsLCBhcHBVcmwpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcIuS9v+eUqOm7mOiupOino+aekCzop4bpopHpk77mjqU6XFxcIiArIHNyY3VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHlvIDlp4tcXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFuZ2VWaWRlb1VybCh1cmwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/mlLnlj5jnibnlrprlnLDlnYDnmoRSZWZlcmVyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmwuaW5jbHVkZXMoXFxcIndrZmlsZVxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ2JpbGliaWxpJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsICsgJzt7UmVmZXJlckBodHRwczovL3d3dy5iaWxpYmlsaS5jb20vJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnbWd0dicpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybCArICc7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsLmluY2x1ZGVzKFxcXCJvamJrXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybCArICc7e1JlZmVyZXJAaHR0cHM6Ly9iYWsub2pia2p4LmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+i/lOWbnuinhumikemTvuaOpVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVybC5pbmNsdWRlcyhcXFwiaHR0cFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcIumTvuaOpeS4jeaYr+S7pWh0dHDlvIDlpLQo5Y+v6IO95Yqg5a+G5LqGKVxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcLm0zdTgvLnRlc3QodXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZU0zdTgodXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVybCArICcjaXNWaWRlbz10cnVlIyc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcLm0zdTh8XFxcXC5tcDR8b2JqXFxcXC90b3N8bmV0ZWFzZVxcXFwuY29tLy50ZXN0KHNyY3VybCkgJiYgL2h0dHAvLnRlc3Qoc3JjdXJsKSAmJiAhL1xcXFwuaHRtbC8udGVzdChzcmN1cmwpICYmICEvKHVybHx2fHZpZClcXFxcPS8udGVzdChzcmN1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIS9mZW5cXFxcLmxhb2RpfHJ1aWZlbmdsYnxzdW95b1xcXFwuY2MvLnRlc3Qoc3JjdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFwi5qOA5rWL5Yiw6LWE5rqQ5Zyw5Z2A5Y+v6IO95piv6KeG6aKR6ZO+5o6lXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKHNyY3VybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8tLS0t5YiG5Ymy57q/LS0tLS8vXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzY29kZSA9IEpTT04ucGFyc2UoZmV0Y2goc3JjdXJsLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXFxcIlVzZXItQWdlbnRcXFwiOiBNT0JJTEVfVUFcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoU3RhdHVzQ29kZTogdHJ1ZVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v6L+U5Zue6YeN5a6a5ZCR55qE6ZO+5o6lIFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAyJyB8fCBzY29kZS5zdGF0dXNDb2RlID09ICczMDEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVkdXJsID0gc2NvZGUuaGVhZGVycy5sb2NhdGlvblswXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+mHjeWumuWQkTonICsgcmVkdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghLyh1cmx8dmlkfHYpXFxcXD0vLnRlc3QocmVkdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChyZWR1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyplbHNlIGlmICgvXFxcXD1odHRwLy50ZXN0KHJlZHVybCkgJiYgL1xcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdi8udGVzdChyZWR1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVybCA9IHJlZHVybC5zdWJzdHJpbmcocmVkdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0qL1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvZGUuYm9keSA9IGZldGNoKHJlZHVybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/lvIDlp4vll4XmjqJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGh0bWwgPSBzY29kZS5ib2R5O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLzQwNCBOb3QgRm91bmR85aSH5qGI5ZCO5Y+v57un57ut6K6/6ZeuLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcIjQwNOS6hlxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcPGJvZHkvLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKFtcXFwi5byA5aeL6KeG6aKR5ZeF5o6iXFxcIiwgXFxcIuaJk+W8gOino+aekOe9kemhtVxcXCIsIFxcXCLkvb/nlKjlhoXnva7op6PmnpBcXFwiXSwgMSwgXFxcIuajgOa1i+WIsOino+aekOS4uue9kemhteaVsOaNrlxcXCIpLnNlbGVjdCgocHRhYiwgc3JjdXJsLCBhcHBVcmwpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW5wdXQgPT0gXFxcIuW8gOWni+inhumikeWXheaOolxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZUNhY2hlKCdodHRwczovL2NvZGUuYWxpeXVuLmNvbS9semsyMzU1OS9QdWJsaWNSdWxlL3Jhdy9tYXN0ZXIveDVydWxlLmpzJywgMjQpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4geDVydWxlKHNyY3VybCwgc3JjdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09IFxcXCLmiZPlvIDop6PmnpDnvZHpobVcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwid2ViOi8vXFxcIiArIHNyY3VybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09IFxcXCLkvb/nlKjlhoXnva7op6PmnpBcXFwiKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2bGluayA9IHNyY3VybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC8odXJsfHZpZHx2KVxcXFw9Ly50ZXN0KHNyY3VybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZsaW5rID0gc3JjdXJsLnN1YnN0cmluZyhzcmN1cmwuc2VhcmNoKC8odXJsfHZpZHx2KVxcXFw9LykpLnNwbGl0KCc9JylbMV0uc3BsaXQoJyYnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcIuS9v+eUqOWGhee9ruino+aekCzop4bpopHpk77mjqU6XFxcIiArIHZsaW5rKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvYWRpbmcoXFxcIuato+WcqOi/m+ihjOino+aekC4uLlxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXCJoaWtlcjovL3BhZ2UvbXlQYXJzZVxcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBwdGFiLCBzcmN1cmwsIGFwcFVybClcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKCflsJ3or5Xku45qc29u5pWw5o2u6I635Y+WJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gSlNPTi5wYXJzZShodG1sKS51cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKHB1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qbGV0IHB1cmwgPSBodG1sLm1hdGNoKC9bXFxcXCdcXFxcXFxcIl11cmxbXFxcXCdcXFxcXFxcIl06Lio/W1xcXFwnXFxcXFxcXCJdKC4qPylbXFxcXCdcXFxcXFxcIl0vKVsxXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKHB1cmwpOyovXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfop6PmnpDlj6/og73liqDlr4bkuoYnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCfmnKrog73miJDlip/ojrflj5bop4bpopHlnLDlnYA6JyArIGUubWVzc2FnZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2bGluayA9IHNyY3VybDtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC8odXJsfHZpZHx2KVxcXFw9Ly50ZXN0KHNyY3VybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZsaW5rID0gc3JjdXJsLnN1YnN0cmluZyhzcmN1cmwuc2VhcmNoKC8odXJsfHZpZHx2KVxcXFw9LykpLnNwbGl0KCc9JylbMV0uc3BsaXQoJyYnKVswXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcIuWwneivleS9v+eUqOWGhee9ruino+aekCzop4bpopHpk77mjqU6XFxcIiArIHZsaW5rKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9wYWdlL215UGFyc2VcXFwiKSkucnVsZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v5Yqo5oCB6Kej5p6Q5Luj56CB57uT5p2fXFxuICAgICAgICAgICAgICAgICAgICB9LCBwdGFiLCBzcmN1cmwsIGFwcFVybCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICBwYWdlcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgbmFtZTogXFxcIlRW5YiX6KGoXFxcIixcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcInR2bGlzdGRhdGFcXFwiLFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX3R2bGlzdGRhdGFcXG4gICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgIG5hbWU6IFxcXCJUVumAiembhlxcXCIsXFxuICAgICAgICAgICAgICAgIHBhdGg6IFxcXCJ0dm1vdmxpc3RcXFwiLFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX3R2bW92bGlzdFxcbiAgICAgICAgICAgIH0sIHtcXG4gICAgICAgICAgICAgICAgbmFtZTogXFxcIuinhumikeino+aekFxcXCIsXFxuICAgICAgICAgICAgICAgIHBhdGg6IFxcXCJsYXp5UGFyc2VcXFwiLFxcbiAgICAgICAgICAgICAgICBydWxlOiBsYXp5UGFyc2VcXG4gICAgICAgICAgICB9KTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgZmluZF9ydWxlID0gXFxcImpzOlxcXCIgKyAkLnRvU3RyaW5nKGZ1bmN0aW9uKGNoYW5nZVVybCwgYXBwVXJsLCBhcHBVYSkge1xcbiAgICAgICAgICAgICAgICBsZXQgaXRlbXMgPSBbXTtcXG4gICAgICAgICAgICAgICAgLy/ojrflj5bliIbnsbvlhoXlrrlcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCB0eXBlSnNvbiA9IFtdO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcyhcXFwiYXBpLnBocC9hcHBcXFwiKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBlVXJsID0gY2hhbmdlVXJsKGFwcFVybCArIFxcXCJuYXY/dG9rZW49XFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGNvZGUgPSByZXF1ZXN0KHR5cGVVcmwsIHsgaGVhZGVyczogeyBcXFwiVXNlci1BZ2VudFxcXCI6IGFwcFVhIH0gfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGNvZGUuaW5kZXhPZign5qOA5rWL5LitJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwY29kZSA9IGZldGNoKHR5cGVVcmwgKyAnJmJ0d2FmJyArIHR5cGNvZGUubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcIi8pWzFdLCB7IGhlYWRlcnM6IHsgXFxcIlVzZXItQWdlbnRcXFwiOiBhcHBVYSB9IH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlSnNvbiA9IEpTT04ucGFyc2UodHlwY29kZSkubGlzdDtcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXCJ4Z2FwcFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHR5cGVVcmwgPSBjaGFuZ2VVcmwoYXBwVXJsICsgXFxcIm5hdj90b2tlbj1cXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHlwY29kZSA9IHJlcXVlc3QodHlwZVVybCwgeyBoZWFkZXJzOiB7IFxcXCJVc2VyLUFnZW50XFxcIjogYXBwVWEgfSB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwY29kZS5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBjb2RlID0gZmV0Y2godHlwZVVybCArICcmYnR3YWYnICsgdHlwY29kZS5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFwiLylbMV0sIHsgaGVhZGVyczogeyBcXFwiVXNlci1BZ2VudFxcXCI6IGFwcFVhIH0gfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVKc29uID0gSlNPTi5wYXJzZSh0eXBjb2RlKS5kYXRhO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoXFxcIi52b2RcXFwiKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBlVXJsID0gY2hhbmdlVXJsKGFwcFVybCArIFxcXCIvdHlwZXNcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHlwY29kZSA9IHJlcXVlc3QodHlwZVVybCwgeyBoZWFkZXJzOiB7IFxcXCJVc2VyLUFnZW50XFxcIjogYXBwVWEgfSB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwY29kZS5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBjb2RlID0gZmV0Y2godHlwZVVybCArICc/YnR3YWYnICsgdHlwY29kZS5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFwiLylbMV0sIHsgaGVhZGVyczogeyBcXFwiVXNlci1BZ2VudFxcXCI6IGFwcFVhIH0gfSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVKc29uID0gSlNPTi5wYXJzZSh0eXBjb2RlKS5kYXRhLmxpc3Q7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAvL+iOt+WPluWIhuexu+WIl+ihqFxcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0eXBlSnNvbi5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v5YiG57G76KeG6aKR5Zyw5Z2AXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHR5dXJsID0gXFxcIlxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVBcnJheSA9IE9iamVjdC5rZXlzKHR5cGVKc29uW2ldLnR5cGVfZXh0ZW5kKS5maWx0ZXIoY3VyID0+IFtcXFwiY2xhc3NcXFwiLCBcXFwiYXJlYVxcXCIsIFxcXCJsYW5nXFxcIiwgXFxcInllYXJcXFwiXS5pbmNsdWRlcyhjdXIpKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZVVybCA9IHR5cGVBcnJheS5tYXAoY3VyID0+IGN1ciArIFxcXCI9ZlxcXCIgKyBjdXIpLmpvaW4oXFxcIiZcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKCdhcGkucGhwL2FwcCcpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gYXBwVXJsICsgJ3ZpZGVvP3RpZD0nICsgdHlwZUpzb25baV0udHlwZV9pZCArICcmcGFnZT1meXBhZ2UmdG9rZW49JicgKyB0eXBlVXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKCd4Z2FwcCcpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gYXBwVXJsICsgJ3ZpZGVvP3RpZD0nICsgdHlwZUpzb25baV0udHlwZV9pZCArICcmcGFnZT1meXBhZ2UmJyArIHR5cGVVcmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoXFxcIi52b2RcXFwiKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2lvcGVueXVuLy50ZXN0KGFwcFVybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gYXBwVXJsICsgJy9saXN0P3R5cGU9JyArIHR5cGVKc29uW2ldLnR5cGVfaWQgKyAnJnBhZ2U9ZnlwYWdlJmJ5PWZieSZsaW1pdD05JicgKyB0eXBlVXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHl1cmwgPSBhcHBVcmwgKyAnP3R5cGU9JyArIHR5cGVKc29uW2ldLnR5cGVfaWQgKyAnJnBhZ2U9ZnlwYWdlJmJ5PWZieSZsaW1pdD05JicgKyB0eXBlVXJsO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v5p6E5bu65Yqo5oCB5YiG57G7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0eXBlSnNvbltpXS50eXBlX25hbWUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJChcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcIiArIHR5dXJsKS5ydWxlKChhcHBVcmwsIHR5cGVfZXh0ZW5kLCBjaGFuZ2VVcmwsIGFwcFVhKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihcXFwib25DbG9zZVxcXCIsIFxcXCJjbGVhclZhcignZmlsdGVyJylcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1ZX1BBR0UgPT0gMSkgeyAvL+WKqOaAgeWIhuexu1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBrZXlzID0ge30sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlciA9IHt9LFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJOYW1lcyA9IHsgY2xhc3M6IFxcXCLnsbvlnotcXFwiLCBhcmVhOiBcXFwi5Zyw5Yy6XFxcIiwgbGFuZzogXFxcIuivreiogFxcXCIsIHllYXI6IFxcXCLlubTku71cXFwiLCBzdGFyOiBcXFwi5piO5pifXFxcIiwgZGlyZWN0b3I6IFxcXCLlr7zmvJRcXFwiLCBzdGF0ZTogXFxcIueKtuaAgVxcXCIsIHZlcnNpb246IFxcXCLniYjmnKxcXFwiIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRGaWx0ZXIgPSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmY2xhc3M6IFtcXFwi5YWo6YOo57G75Z6LXFxcIiwgXFxcIuWWnOWJp1xcXCIsIFxcXCLniLHmg4VcXFwiLCBcXFwi5oGQ5oCWXFxcIiwgXFxcIuWKqOS9nFxcXCIsIFxcXCLnp5HlubtcXFwiLCBcXFwi5Ymn5oOFXFxcIiwgXFxcIuaImOS6iVxcXCIsIFxcXCLorabljKpcXFwiLCBcXFwi54qv572qXFxcIiwgXFxcIuWKqOeUu1xcXCIsIFxcXCLlpYflubtcXFwiLCBcXFwi5q2m5L6gXFxcIiwgXFxcIuWGkumZqVxcXCIsIFxcXCLmnqrmiJhcXFwiLCBcXFwi5oKs55aRXFxcIiwgXFxcIuaDiuaCmlxcXCIsIFxcXCLnu4/lhbhcXFwiLCBcXFwi6Z2S5pilXFxcIiwgXFxcIuaWh+iJulxcXCIsIFxcXCLlvq7nlLXlvbFcXFwiLCBcXFwi5Y+k6KOFXFxcIiwgXFxcIuWOhuWPslxcXCIsIFxcXCLov5DliqhcXFwiLCBcXFwi5Yac5p2RXFxcIiwgXFxcIuWEv+erpVxcXCIsIFxcXCLnvZHnu5znlLXlvbFcXFwiXSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcmVhOiBbXFxcIuWFqOmDqOWcsOWMulxcXCIsIFxcXCLlhoXlnLBcXFwiLCBcXFwi6aaZ5rivXFxcIiwgXFxcIuWPsOa5vlxcXCIsIFxcXCLnvo7lm71cXFwiLCBcXFwi6Iux5Zu9XFxcIiwgXFxcIuazleWbvVxcXCIsIFxcXCLml6XmnKxcXFwiLCBcXFwi6Z+p5Zu9XFxcIiwgXFxcIuW+t+WbvVxcXCIsIFxcXCLms7Dlm71cXFwiLCBcXFwi5Y2w5bqmXFxcIiwgXFxcIuilv+ePreeJmVxcXCIsIFxcXCLliqDmi7/lpKdcXFwiLCBcXFwi5YW25LuWXFxcIl0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmeWVhcjogW1xcXCLlhajpg6jlubTku71cXFwiLCBcXFwiMjAyMlxcXCIsIFxcXCIyMDIxXFxcIiwgXFxcIjIwMjBcXFwiLCBcXFwiMjAxOVxcXCIsIFxcXCIyMDE4XFxcIiwgXFxcIjIwMTdcXFwiLCBcXFwiMjAxNlxcXCIsIFxcXCIyMDE1XFxcIiwgXFxcIjIwMTRcXFwiLCBcXFwiMjAxM1xcXCIsIFxcXCIyMDEyXFxcIiwgXFxcIjIwMTFcXFwiLCBcXFwiMjAxMFxcXCIsIFxcXCIyMDA5XFxcIiwgXFxcIjIwMDhcXFwiLCBcXFwiMjAwN1xcXCIsIFxcXCIyMDA2XFxcIiwgXFxcIjIwMDVcXFwiLCBcXFwiMjAwNFxcXCIsIFxcXCIyMDAzXFxcIiwgXFxcIjIwMDJcXFwiLCBcXFwiMjAwMVxcXCIsIFxcXCIyMDAwXFxcIl0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFuZzogW1xcXCLlhajpg6jor63oqIBcXFwiLCBcXFwi5Zu96K+tXFxcIiwgXFxcIuiLseivrVxcXCIsIFxcXCLnsqTor61cXFwiLCBcXFwi6Ze95Y2X6K+tXFxcIiwgXFxcIumfqeivrVxcXCIsIFxcXCLml6Xor61cXFwiLCBcXFwi5rOV6K+tXFxcIiwgXFxcIuW+t+ivrVxcXCIsIFxcXCLlhbbku5ZcXFwiXVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiB0eXBlX2V4dGVuZCkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVtcXFwiY2xhc3NcXFwiLCBcXFwiYXJlYVxcXCIsIFxcXCJsYW5nXFxcIiwgXFxcInllYXJcXFwiXS5pbmNsdWRlcyhrZXkpKSBjb250aW51ZTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5c1tcXFwiZlxcXCIgKyBrZXldID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXNbXFxcImZieVxcXCJdID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJOYW1lID0gXFxcIuWFqOmDqFxcXCIgKyBmaWx0ZXJOYW1lc1trZXldO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJbXFxcImZcXFwiICsga2V5XSA9IFtmaWx0ZXJOYW1lXS5jb25jYXQodHlwZV9leHRlbmRba2V5XS5zcGxpdChcXFwiLFxcXCIpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZpbHRlcltcXFwiZlxcXCIgKyBrZXldLmxlbmd0aCA9PSAyKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJbXFxcImZcXFwiICsga2V5XSA9IGRlZmF1bHRGaWx0ZXJbXFxcImZcXFwiICsga2V5XVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2V0VmFyKFxcXCJmaWx0ZXJcXFwiLCBcXFwiXFxcIikpIHsgcHV0VmFyKFxcXCJmaWx0ZXJcXFwiLCBKU09OLnN0cmluZ2lmeShrZXlzKSkgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcImZpbHRlclxcXCIpKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBcXFwiI0ZBNzI5OFxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBpbiBmaWx0ZXIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZpbHRlcltpdGVtXS5sZW5ndGg7IGluZGV4KyspIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0ZW1wW2l0ZW1dID09IFxcXCJcXFwiID8gKGluZGV4ID09PSAwID8gXFxcIuKAnOKAnOKAneKAnVxcXCIgKyBmaWx0ZXJbaXRlbV1bMF0uYm9sZCgpLmZvbnRjb2xvcihjb2xvcikgOiBmaWx0ZXJbaXRlbV1baW5kZXhdKSA6ICh0ZW1wW2l0ZW1dID09IGZpbHRlcltpdGVtXVtpbmRleF0gPyBcXFwi4oCc4oCc4oCd4oCdXFxcIiArIGZpbHRlcltpdGVtXVtpbmRleF0uYm9sZCgpLmZvbnRjb2xvcihjb2xvcikgOiBmaWx0ZXJbaXRlbV1baW5kZXhdKSxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcInNjcm9sbF9idXR0b25cXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJCgpLmxhenlSdWxlKChkZXMsIG5hbWUpID0+IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFwiZmlsdGVyXFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW25hbWVdID0gZGVzLmluZGV4T2YoXFxcIuWFqOmDqFxcXCIpICE9IC0xID8gXFxcIlxcXCIgOiBkZXM7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihcXFwiZmlsdGVyXFxcIiwgSlNPTi5zdHJpbmdpZnkodGVtcCkpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFwiaGlrZXI6Ly9lbXB0eVxcXCJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBmaWx0ZXJbaXRlbV1baW5kZXhdLCBpdGVtKVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHsgY29sX3R5cGU6IFxcXCJibGFua19ibG9ja1xcXCIgfSlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGJ5ID0geyDpu5jorqTpobrluo86IFxcXCJcXFwiLCDmnIDmlrA6IFxcXCJ0aW1lXFxcIiwg5pyA54OtOiBcXFwiaGl0c1xcXCIsIOivhOWIhjogXFxcInNjb3JlXFxcIiB9O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHBVcmwuaW5kZXhPZignYXBpLnBocC9hcHAnKSA9PSAtMSAmJiBhcHBVcmwuaW5kZXhPZigneGdhcHAnKSA9PSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIGluIGJ5KSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGVtcFtcXFwiZmJ5XFxcIl0gPT0gYnlbaXRlbV0gPyBcXFwi4oCc4oCc4oCd4oCdXFxcIiArIGl0ZW0uYm9sZCgpLmZvbnRjb2xvcihjb2xvcikgOiBpdGVtLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwic2Nyb2xsX2J1dHRvblxcXCIsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCkubGF6eVJ1bGUoKGRlcykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IEpTT04ucGFyc2UoZ2V0VmFyKFxcXCJmaWx0ZXJcXFwiKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbXFxcImZieVxcXCJdID0gZGVzO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRWYXIoXFxcImZpbHRlclxcXCIsIEpTT04uc3RyaW5naWZ5KHRlbXApKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcImhpa2VyOi8vZW1wdHlcXFwiXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYnlbaXRlbV0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdGVtcCA9IEpTT04ucGFyc2UoZ2V0VmFyKFxcXCJmaWx0ZXJcXFwiKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gTVlfVVJMLnNwbGl0KFxcXCIjI1xcXCIpWzFdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaXRlbSBpbiB0ZW1wKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsLnJlcGxhY2UoaXRlbSwgdGVtcFtpdGVtXSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSBjaGFuZ2VVcmwodXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNjb2RlID0gZmV0Y2godXJsLCB7IGhlYWRlcnM6IHsgXFxcIlVzZXItQWdlbnRcXFwiOiBhcHBVYSB9IH0pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc2NvZGUuaW5kZXhPZign5qOA5rWL5LitJykgIT0gLTEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNjb2RlID0gZmV0Y2godXJsICsgJyZidHdhZicgKyByZXNjb2RlLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXCIvKVsxXSwgeyBoZWFkZXJzOiB7IFxcXCJVc2VyLUFnZW50XFxcIjogYXBwVWEgfSB9KTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBodG1sID0gSlNPTi5wYXJzZShyZXNjb2RlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbGlzdGRhdGEnLCB7fSkpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFwi6KeG6aKR5YiX6KGo5Ye66ZSZOlxcXCIgKyBlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGl0ZW1zKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYXBwVXJsLCB0eXBlSnNvbltpXS50eXBlX2V4dGVuZCwgY2hhbmdlVXJsLCBhcHBVYSksXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgbG9nKCfpppbpobXliIbnsbvlh7rplJk6JyArIGUubWVzc2FnZSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgLy/ojrflj5bmjqjojZDop4bpopHliJfooahcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSBNWV9VUkwuc3BsaXQoJyMjJylbMV07XFxuICAgICAgICAgICAgICAgICAgICB1cmwgPSBjaGFuZ2VVcmwodXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBodG1sID0gcmVxdWVzdCh1cmwsIHsgaGVhZGVyczogeyBcXFwiVXNlci1BZ2VudFxcXCI6IGFwcFVhIH0gfSk7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbC5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGh0bWwgPSBmZXRjaCh1cmwgKyAnJmJ0d2FmJyArIGh0bWwubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcIi8pWzFdLCB7IGhlYWRlcnM6IHsgXFxcIlVzZXItQWdlbnRcXFwiOiBhcHBVYSB9IH0pO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoaHRtbCk7XFxuICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBpbmRleGRhdGEnKSkucnVsZSk7XFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxvZygn6aaW6aG15o6o6I2Q5Ye66ZSZOicgKyBlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIHNldFJlc3VsdChpdGVtcyk7XFxuICAgICAgICAgICAgfSwgY2hhbmdlVXJsLCBhcHBVcmwsIGFwcFVhKVxcblxcbiAgICAgICAgICAgIGxldCBydWxlX2FwcGxpc3RkYXRhID0gJC50b1N0cmluZyhmdW5jdGlvbigpIHtcXG4gICAgICAgICAgICAgICAgbGV0IGxpc3QgPSBbXTtcXG4gICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcygnYXBpLnBocC9hcHAnKSkge1xcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwubGlzdDtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoJ3hnYXBwJykpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLmRhdGE7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXCIudm9kXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLmRhdGEubGlzdDtcXG4gICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCB7IHZvZF9uYW1lLCB2b2RfcGljLCB2b2RfaWQsIHZvZF9yZW1hcmtzIH0gPSBsaXN0W2ldO1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxpbmsgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcHBVcmwuaW5jbHVkZXMoJ2FwaS5waHAvYXBwJykgfHwgYXBwVXJsLmluY2x1ZGVzKCd4Z2FwcCcpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9IGFwcFVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHZvZF9pZCArICcmdG9rZW49JztcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXCIudm9kXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9IGFwcFVybCArICcvZGV0YWlsP3ZvZF9pZD0nICsgdm9kX2lkICsgJyZyZWxfbGltaXQ9MTAma2V5PScgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgKyAoZGF0ZS5nZXREYXRlKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0RGF0ZSgpIDogZGF0ZS5nZXREYXRlKCkpO1xcbiAgICAgICAgICAgICAgICAgICAgfTtcXG5cXG4gICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QoYXBwVXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSBhcHBVcmwgKyAnL2RldGFpbElEP3ZvZF9pZD0nICsgdm9kX2lkICsgJyZyZWxfbGltaXQ9MTAnO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHZvZF9uYW1lLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHZvZF9waWMgKyAnQFJlZmVyZXI9JyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiB2b2RfcmVtYXJrcyxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZScsXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKFxcXCIjaW1tZXJzaXZlVGhlbWUjaGlrZXI6Ly9lbXB0eSMjXFxcIiArIGxpbmspLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKFxcXCLlvbHniYfor6bmg4Xlh7rplJk6XFxcIiArIGUubWVzc2FnZSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoW10pO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSlcXG4gICAgICAgICAgICBsZXQgcnVsZV9hcHBpbmRleGRhdGEgPSAkLnRvU3RyaW5nKGZ1bmN0aW9uKCkge1xcbiAgICAgICAgICAgICAgICBsZXQgbGlzdCA9IFtdO1xcbiAgICAgICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKCdhcGkucGhwL2FwcCcpKSB7XFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5saXN0O1xcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFwcFVybC5pbmNsdWRlcygneGdhcHAnKSkge1xcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwuZGF0YTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoXFxcIi52b2RcXFwiKSkge1xcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwuZGF0YS5saXN0O1xcbiAgICAgICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IGxpc3RzID0gW10sXFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcHBVcmwuaW5jbHVkZXMoJ2FwaS5waHAvYXBwJykgfHwgYXBwVXJsLmluY2x1ZGVzKCd4Z2FwcCcpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdHMgPSBsaXN0W2ldLnZsaXN0O1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lID0gbGlzdFtpXS50eXBlX25hbWU7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFwcFVybC5pbmNsdWRlcyhcXFwiLnZvZFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdHMgPSBsaXN0W2ldLnZvZF9saXN0O1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lID0gbGlzdFtpXS52b2RfdHlwZV9uYW1lO1xcblxcbiAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHR5cGVuYW1lLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5XFxcIlxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuXFxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3RzLmxlbmd0aDsgaisrKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHsgdm9kX25hbWUsIHZvZF9waWMsIHZvZF9pZCwgdm9kX3JlbWFya3MgfSA9IGxpc3RzW2pdO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5rID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcygnYXBpLnBocC9hcHAnKSB8fCBhcHBVcmwuaW5jbHVkZXMoJ3hnYXBwJykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9IGFwcFVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIHZvZF9pZCArICcmdG9rZW49JmtleT0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXCIudm9kXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSgpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gYXBwVXJsICsgJy9kZXRhaWw/dm9kX2lkPScgKyB2b2RfaWQgKyAnJnJlbF9saW1pdD0xMCZrZXk9JyArIChkYXRlLmdldE1vbnRoKCkgKyAxKSArIChkYXRlLmdldERhdGUoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXREYXRlKCkgOiBkYXRlLmdldERhdGUoKSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcXG5cXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2lvcGVueXVuLy50ZXN0KGFwcFVybCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9IGFwcFVybCArICcvZGV0YWlsSUQ/dm9kX2lkPScgKyB2b2RfaWQgKyAnJnJlbF9saW1pdD0xMCc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdm9kX25hbWUsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHZvZF9waWMgKyAnQFJlZmVyZXI9JyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzYzogdm9kX3JlbWFya3MsXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfM19tYXJxdWVlJyxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKFxcXCIjaW1tZXJzaXZlVGhlbWUjaGlrZXI6Ly9lbXB0eSMjXFxcIiArIGxpbmspLnJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBtb3ZsaXN0JykpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFwi5b2x54mH6K+m5oOF5Ye66ZSZOlxcXCIgKyBlLm1lc3NhZ2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChbXSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9KVxcbiAgICAgICAgICAgIGxldCBydWxlX2FwcG1vdmxpc3QgPSAkLnRvU3RyaW5nKGZ1bmN0aW9uKGNoYW5nZVVybCwgYXBwVXJsLCBhcHBVYSkge1xcbiAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihcXFwib25DbG9zZVxcXCIsICQudG9TdHJpbmcoKHVybCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJWYXIoJ2FwcG5vdycpO1xcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJWYXIodXJsKTtcXG4gICAgICAgICAgICAgICAgfSwgTVlfVVJMKSk7XFxuICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdLFxcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGdldFZhcihNWV9VUkwsIFxcXCJcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgIGRhdGEgPSB7fTtcXG4gICAgICAgICAgICAgICAgaWYgKGh0bWwgPT0gXFxcIlxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSBNWV9VUkwuc3BsaXQoXFxcIiMjXFxcIilbMV07XFxuICAgICAgICAgICAgICAgICAgICB1cmwgPSBjaGFuZ2VVcmwodXJsKTtcXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBmZXRjaCh1cmwsIHsgaGVhZGVyczogeyBcXFwiVXNlci1BZ2VudFxcXCI6IGFwcFVhIH0gfSk7XFxuICAgICAgICAgICAgICAgICAgICBwdXRWYXIoTVlfVVJMLCBodG1sKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXCJ4Z2FwcFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShodG1sKS5kYXRhLnZvZF9pbmZvO1xcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoaHRtbCkuZGF0YTtcXG4gICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICAvL+eugOS7i1xcbiAgICAgICAgICAgICAgICBsZXQgeyB2b2RfbmFtZSwgdm9kX3BpYywgdm9kX2NvbnRlbnQsIHZvZF9jbGFzcywgdm9kX3JlbWFya3MsIHZvZF9kaXJlY3Rvciwgdm9kX2FjdG9yLCB2b2RfYXJlYSwgdm9kX2xhbmcsIHZvZF95ZWFyIH0gPSBkYXRhO1xcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB2b2RfbmFtZSArICdcXFxcbicgKyB2b2RfY2xhc3MgKyBcXFwiLFxcXCIgKyB2b2RfcmVtYXJrcyArIFxcXCJcXFxcblxcXCIgKyB2b2RfYXJlYSArIFxcXCIvXFxcIiArIHZvZF9sYW5nICsgXFxcIi9cXFwiICsgdm9kX3llYXIsXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiBcXFwi5a+85ryUOlxcXCIgKyB2b2RfZGlyZWN0b3IgKyBcXFwiXFxcXG7kuLvmvJQ6XFxcIiArIHZvZF9hY3RvcixcXG4gICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHZvZF9waWMsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5XFxcIixcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1cidcXG4gICAgICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfliafmg4XnroDku4s6JyxcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6IHZvZF9jb250ZW50LFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5I25vUmVjb3JkSGlzdG9yeSMnKS5ydWxlKChkZXNjKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KFt7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBkZXNjLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XSk7XFxuICAgICAgICAgICAgICAgICAgICB9LCB2b2RfY29udGVudCksXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIC8v5pat5o+SXFxuICAgICAgICAgICAgICAgIGxldCBkbmVuID0gZ2V0TXlWYXIoXFxcImRuZW5cXFwiLCBcXFwiMFxcXCIpO1xcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5pat5o+SOicgKyAoZG5lbiA9PSAnMScgPyAn4oCc4oCc4pyF4oCd4oCdJyA6ICfinY4nKSxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoZG5lbikgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkbmVuID09ICcxJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFwiZG5lblxcXCIsIFxcXCIwXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suemgeeUqOaWreaPkuiwg+eUqCEnO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXCJkbmVuXFxcIiwgXFxcIjFcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5byA5ZCv5pat5o+S6LCD55SoISdcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICB9LCBkbmVuKSxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+e6v+i3r+mFjee9ricsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5I25vUmVjb3JkSGlzdG9yeSNAcnVsZT1qczp0aGlzLmQ9W107cmVxdWlyZSgnaHR0cHM6Ly9naXRlYS5jb20vQUk5NTcvSGlrZXIvcmF3L20vdi9Sb3V0ZS5qcycpO1JvdXRlLnNldFBhcnNlKCk7c2V0UmVzdWx0KGQpO1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICAvL3VybDogXFxcImhpa2VyOi8vcGFnZS9Sb3V0ZT9ydWxlPU15RmllbGThtLDigb8mdHlwZT3orr7nva4jbm9SZWNvcmRIaXN0b3J5I1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMidcXG4gICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIC8v57q/6Lev5YiX6KGoXFxuXFxuICAgICAgICAgICAgICAgIGxldCBjb250cyA9IFtdLFxcbiAgICAgICAgICAgICAgICAgICAgdGFicyA9IFtdO1xcbiAgICAgICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXCJhcGkucGhwL2FwcFxcXCIpIHx8IGFwcFVybC5pbmNsdWRlcyhcXFwieGdhcHBcXFwiKSkge1xcbiAgICAgICAgICAgICAgICAgICAgY29udHMgPSBkYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXI7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IGRhdGEudm9kX3BsYXlfbGlzdDtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgICAgICAgICAgICAgY29udHMgPSBkYXRhLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxuICAgICAgICAgICAgICAgICAgICB0YWJzID0gZGF0YS52b2RfcGxheV9mcm9tLnNwbGl0KCckJCQnKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAvL+e6v+i3r+WQjeensFxcbiAgICAgICAgICAgICAgICBsZXQgcHRhYiA9IFxcXCJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgcHRhYm5hbWUgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgaWYgKGdldFZhcihcXFwiYXBwbm93XFxcIiwgXFxcIlxcXCIpID09IFxcXCJcXFwiKSB7IHB1dFZhcihcXFwiYXBwbm93XFxcIiwgXFxcIjBcXFwiKSB9XFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29udHMubGVuZ3RoOyBpKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCBzcHRhYiA9IFxcXCJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYm5hbWUgPSBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcHBVcmwuaW5jbHVkZXMoXFxcImFwaS5waHAvYXBwXFxcIikgfHwgYXBwVXJsLmluY2x1ZGVzKFxcXCJ4Z2FwcFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgc3B0YWIgPSBjb250c1tpXS5jb2RlID8gY29udHNbaV0uY29kZSA6IHRhYnNbaV07XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IGNvbnRzW2ldLm5hbWUgfHwgc3B0YWI7XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwdGFiID0gY29udHNbaV0uZnJvbSA/IGNvbnRzW2ldLmZyb20gOiB0YWJzW2ldO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYm5hbWUgPSBjb250c1tpXS5wbGF5ZXJfaW5mbyA/IGNvbnRzW2ldLnBsYXllcl9pbmZvLnNob3cgOiBzcHRhYjtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBnZXRWYXIoXFxcImFwcG5vd1xcXCIpID09IGkgPyBcXFwi4oCc4oCc4oCd4oCdXFxcIiArIHRhYm5hbWUuYm9sZCgpLmZvbnRjb2xvcihcXFwiI0ZBNzI5OFxcXCIpIDogdGFibmFtZSxcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5I25vTG9hZGluZyNAbGF6eVJ1bGU9LmpzOnB1dFZhcignYXBwbm93JywnXFxcIiArIGkgKyBcXFwiJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKnyEnXFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxuICAgICAgICAgICAgICAgICAgICB9KVxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldFZhcihcXFwiYXBwbm93XFxcIikgPT0gaSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHB0YWIgPSBzcHRhYjtcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdGFibmFtZSA9IHRhYm5hbWU7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogXFxcIuKAnOKAnOKGk+KGkeKAneKAnVxcXCIgKyBwdGFibmFtZSArIFxcXCItXFxcIiArIHB0YWIsXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2FwcG1hcHBzb3J0JywgZ2V0VmFyKCdhcHBtYXBwc29ydCcsJzEnKT09JzEnPycwJzonMScpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip8hJ1xcXCIsXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxuICAgICAgICAgICAgICAgICAgICBleHRyYTogeyBsaW5lVmlzaWJsZTogZmFsc2UgfVxcbiAgICAgICAgICAgICAgICB9KTtcXG4gICAgICAgICAgICAgICAgLy/pk77mjqXliJfooahcXG4gICAgICAgICAgICAgICAgbGV0IGxpc3QgPSBbXSxcXG4gICAgICAgICAgICAgICAgICAgIGluZGV4ID0gZ2V0VmFyKFxcXCJhcHBub3dcXFwiKTtcXG4gICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcyhcXFwiYXBpLnBocC9hcHBcXFwiKSB8fCBhcHBVcmwuaW5jbHVkZXMoXFxcInhnYXBwXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBjb250c1tpbmRleF0udXJsLnNwbGl0KFxcXCIjXFxcIik7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gY29udHNbaW5kZXhdLnVybHMgPyBjb250c1tpbmRleF0udXJscyA6IGNvbnRzW2luZGV4XS51cmwuc3BsaXQoXFxcIiNcXFwiKTtcXG4gICAgICAgICAgICAgICAgfTtcXG4gICAgICAgICAgICAgICAgaWYgKGdldFZhcignYXBwbWFwcHNvcnQnLCAnMScpID09ICcwJykge1xcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5yZXZlcnNlKCk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgLy/op6PmnpDmjqXlj6NcXG4gICAgICAgICAgICAgICAgbGV0IGppZWsgPSBbXTtcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcHBVcmwuaW5jbHVkZXMoXFxcImFwaS5waHAvYXBwXFxcIikgfHwgYXBwVXJsLmluY2x1ZGVzKFxcXCJ4Z2FwcFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgamllay5wdXNoKGNvbnRzW2luZGV4XS5wYXJzZV9hcGkgfHwgXFxcIlxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBqaWVrID0gKGNvbnRzW2luZGV4XS5wbGF5ZXJfaW5mby5wYXJzZTIgfHwgXFxcIlxcXCIpLnNwbGl0KFxcXCIsXFxcIikuY29uY2F0KChjb250c1tpbmRleF0ucGxheWVyX2luZm8ucGFyc2UgfHwgXFxcIlxcXCIpLnNwbGl0KFxcXCIsXFxcIikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSBqaWVrLm1hcChjdXIgPT4gY3VyLnJlcGxhY2UoXFxcIi4uXFxcIiwgXFxcIi5cXFwiKS5yZXBsYWNlKCdqc29uYnMnLCAnJykpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxcbiAgICAgICAgICAgICAgICBqaWVrID0gamllay5maWx0ZXIoY3VyID0+ICEhY3VyKTtcXG4gICAgICAgICAgICAgICAgbGV0IGp4VXJsID0gamlla1swXSB8fCBcXFwiXFxcIjtcXG4gICAgICAgICAgICAgICAgLyppZiAoanhVcmwuc3Vic3RyaW5nKDAsIDIpID09ICdcXFxcL1xcXFwvJykge1xcbiAgICAgICAgICAgICAgICAgICAganhVcmwgPSAnaHR0cHM6JyArIGp4VXJsO1xcbiAgICAgICAgICAgICAgICB9Ki9cXG4gICAgICAgICAgICAgICAgLy/miZPljbDmjqXlj6NcXG4gICAgICAgICAgICAgICAgbG9nKCdcXFxcbuW9k+WJjee6v+i3rzonICsgcHRhYiArICdcXFxcbuino+aekOWIl+ihqDonICsgJC5zdHJpbmdpZnkoamllaykpO1xcbiAgICAgICAgICAgICAgICAvL+inhumikeWIl+ihqFxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3QubGVuZ3RoOyBqKyspIHtcXG4gICAgICAgICAgICAgICAgICAgIGxldCB2bGluayA9IFxcXCJcXFwiLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gXFxcIlxcXCI7XFxuICAgICAgICAgICAgICAgICAgICBpZiAobGlzdFtqXS51cmwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2bGluayA9IGxpc3Rbal0udXJsLnJlcGxhY2UoLyM0NTYjL2csICdodHRwJykucmVwbGFjZSgvIzEyMyMvZywgJy4nKS5yZXBsYWNlKC8jNzg5Iy9nLCAnOicpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlID0gbGlzdFtqXS5uYW1lO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICB2bGluayA9IGxpc3Rbal0uc3BsaXQoXFxcIiRcXFwiKVsxXTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IGxpc3Rbal0uc3BsaXQoXFxcIiRcXFwiKVswXTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIC8vdGl0bGUgPSB0aXRsZS5tYXRjaCgvKOesrHxcXFxcZHwtKSoo6ZuGfOivnXzmnJ8pL2cpID8gdGl0bGUucmVwbGFjZSgv56ysfOmbhnzor5185pyfL2csICcnKSA6IHRpdGxlO1xcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFwidGV4dF80XFxcIixcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IGV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFwiaGlrZXI6Ly9wYWdlL2xhenlQYXJzZVxcXCIpKS5ydWxlKVxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgc2V0UmVzdWx0KGl0ZW1zKTtcXG4gICAgICAgICAgICB9LCBjaGFuZ2VVcmwsIGFwcFVybCwgYXBwVWEpO1xcblxcbiAgICAgICAgICAgIGxldCBsYXp5UGFyc2UgPSAkLnRvU3RyaW5nKGZ1bmN0aW9uKCkge1xcbiAgICAgICAgICAgICAgICBsZXQgZW5EbiA9IGdldE15VmFyKFxcXCJkbmVuXFxcIiwgXFxcIjBcXFwiKSxcXG4gICAgICAgICAgICAgICAgICAgIHRlc3QxID0gdmxpbmsuc2VhcmNoKC95b3VrdXxtZ3R2fGl4aWd1YXxxcS5jb218cWl5aXxtaWd1fGJpbGliaWxpfHNvaHV8cHB0dnxsZXwxOTA1LmNvbS8pICE9IC0xLFxcbiAgICAgICAgICAgICAgICAgICAgdGVzdDIgPSB2bGluay5zZWFyY2goL0xUXFxcXC18Um9uZ1hpbmdWUlxcXFwtfHJlbnJlbm1pXFxcXC18eGZ5XFxcXC18c3VveW9cXFxcLmNjfGZlblxcXFwubGFvZGl8cnVpZmVuZ2xifHh1ZXJlblxcXFwtLykgIT0gLTE7XFxuICAgICAgICAgICAgICAgIGlmICgodGVzdDEgfHwgdGVzdDIpICYmIGVuRG4gPT0gJzEnKSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCgnaGlrZXI6Ly9lbXB0eScpLmxhenlSdWxlKCh2bGluaykgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFwiXFxcXG7osIPnlKjmlq3mj5Lop6PmnpAs6KeG6aKR6ZO+5o6lOlxcXCIgKyB2bGluayk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChcXFwibGV0IGNvbmZpZyA9XFxcIiArIGZldGNoKFxcXCJoaWtlcjovL2ZpbGVzL2NhY2hlL015UGFyc2VTZXQuanNvblxcXCIpKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKGZldGNoKGNvbmZpZy5jaikpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBheXRtUGFyc2UodmxpbmspO1xcbiAgICAgICAgICAgICAgICAgICAgfSwgdmxpbmspXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCgnaGlrZXI6Ly9lbXB0eScpLmxhenlSdWxlKChwdGFiLCB2bGluaywganhVcmwsIGFwcFVybCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFwiXFxcXG7kvb/nlKjpu5jorqTop6PmnpAs6KeG6aKR6ZO+5o6lOlxcXCIgKyB2bGluayk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/op4bpopHpk77mjqXlpITnkIZcXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFuZ2VWaWRlb1VybCh1cmwpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/mlLnlj5jnibnlrprlnLDlnYDnmoRSZWZlcmVyXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1cmwuaW5jbHVkZXMoXFxcIndrZmlsZVxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL30nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHB0YWIgPT0gJ2JpbGliaWxpJykge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsICsgJzt7UmVmZXJlckBodHRwczovL3d3dy5iaWxpYmlsaS5jb20vJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnbWd0dicpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybCArICc7e1JlZmVyZXJAd3d3Lm1ndHYuY29tJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsLmluY2x1ZGVzKFxcXCJvamJrXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybCArICc7e1JlZmVyZXJAaHR0cHM6Ly9iYWsub2pia2p4LmNvbS99JztcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+i/lOWbnuinhumikemTvuaOpVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXVybC5pbmNsdWRlcyhcXFwiaHR0cFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcIumTvuaOpeS4jeaYr+S7pWh0dHDlvIDlpLQo5Y+v6IO95Yqg5a+G5LqGKVxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcLm0zdTgvLnRlc3QodXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZU0zdTgodXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVybCArICcjaXNWaWRlbz10cnVlIyc7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHlvIDlp4tcXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+WkhOeQhuinhumikeagt+W8j+eahOi1hOa6kOmTvuaOpVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1xcXFwubTN1OHxcXFxcLm1wNHxvYmpcXFxcL3Rvc3xuZXRlYXNlXFxcXC5jb20vLnRlc3QodmxpbmspICYmIC9odHRwLy50ZXN0KHZsaW5rKSAmJiAhL1xcXFwuaHRtbC8udGVzdCh2bGluaykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghL2ZlblxcXFwubGFvZGl8cnVpZmVuZ2xifHN1b3lvXFxcXC5jYy8udGVzdCh2bGluaykpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcIuajgOa1i+WIsOi1hOa6kOWcsOWdgOWPr+iDveaYr+inhumikemTvuaOpVxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybCh2bGluayk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/ml6Dlj6/nlKjop6PmnpDnm7TmjqXmiqXplJlcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFqeFVybCB8fCAveFxcXFwtblxcXFwuY2MvLnRlc3QoanhVcmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcIuaXoOWPr+eUqOino+aekFxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5L2/55So6Kej5p6QXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFwi5L2/55So6Kej5p6QOlxcXCIgKyBqeFVybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5rID0ganhVcmwgKyB2bGluayxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb2RlID0gSlNPTi5wYXJzZShmZXRjaChsaW5rLCB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczoge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFwiVXNlci1BZ2VudFxcXCI6IFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcIlxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVkaXJlY3Q6IGZhbHNlLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhTdGF0dXNDb2RlOiB0cnVlXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v6L+U5Zue6YeN5a6a5ZCR55qE6ZO+5o6lIFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAyJyB8fCBzY29kZS5zdGF0dXNDb2RlID09ICczMDEnKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVkdXJsID0gc2NvZGUuaGVhZGVycy5sb2NhdGlvblswXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+mHjeWumuWQkTonICsgcmVkdXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghLyh1cmx8dmlkfHYpXFxcXD0vLnRlc3QocmVkdXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChyZWR1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyplbHNlIGlmICgvXFxcXD1odHRwLy50ZXN0KHJlZHVybCkgJiYgL1xcXFwubTN1OHxcXFxcLm1wNHxcXFxcLmZsdi8udGVzdChyZWR1cmwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVybCA9IHJlZHVybC5zdWJzdHJpbmcocmVkdXJsLmluZGV4T2YoJz1odHRwJykgKyAxKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0qL1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvZGUuYm9keSA9IGZldGNoKHJlZHVybCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/lvIDlp4vll4XmjqJcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGh0bWwgPSBzY29kZS5ib2R5O1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoLzQwNCBOb3QgRm91bmR85aSH5qGI5ZCO5Y+v57un57ut6K6/6ZeuLy50ZXN0KGh0bWwpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcIjQwNOS6hlxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKC9cXFxcPGJvZHkvLnRlc3QoaHRtbCkpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkKFtcXFwi5byA5aeL6KeG6aKR5ZeF5o6iXFxcIiwgXFxcIuaJk+W8gOino+aekOe9kemhtVxcXCIsIFxcXCLkvb/nlKjlhoXnva7op6PmnpBcXFwiXSwgMSwgXFxcIuajgOa1i+WIsOino+aekOS4uue9kemhteaVsOaNrlxcXCIpLnNlbGVjdCgobGluaywgcHRhYiwgdmxpbmssIGFwcFVybCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFwi5byA5aeL6KeG6aKR5ZeF5o6iXFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2FjaGUoJ2h0dHBzOi8vY29kZS5hbGl5dW4uY29tL2x6azIzNTU5L1B1YmxpY1J1bGUvcmF3L21hc3Rlci94NXJ1bGUuanMnLCAyNCk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4NXJ1bGUobGluaywgbGluayk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PSBcXFwi5omT5byA6Kej5p6Q572R6aG1XFxcIikge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcIndlYjovL1xcXCIgKyBsaW5rO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcIuS9v+eUqOWGhee9ruino+aekFxcXCIpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKFxcXCLkvb/nlKjlhoXnva7op6PmnpBcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvYWRpbmcoXFxcIuato+WcqOi/m+ihjOino+aekC4uLlxcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXCJoaWtlcjovL3BhZ2UvbXlQYXJzZVxcXCIpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBsaW5rLCBwdGFiLCB2bGluaywgYXBwVXJsKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbG9nKCflsJ3or5Xku45qc29u5pWw5o2u6I635Y+WJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gSlNPTi5wYXJzZShodG1sKS51cmw7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKHB1cmwpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qbGV0IHB1cmwgPSBodG1sLm1hdGNoKC9bXFxcXCdcXFxcXFxcIl11cmxbXFxcXCdcXFxcXFxcIl06Lio/W1xcXFwnXFxcXFxcXCJdKC4qPylbXFxcXCdcXFxcXFxcIl0vKVsxXS5yZXBsYWNlKC9cXFxcXFxcXC9nLCAnJyk7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKHB1cmwpOyovXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfop6PmnpDlj6/og73liqDlr4bkuoYnKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCdcXFxcbuacquiDveaIkOWKn+iOt+WPluinhumikeWcsOWdgDonICsgZS5tZXNzYWdlICsgXFxcIlxcXFxu5bCd6K+V5L2/55So6KeE5YiZ5YaF572u6Kej5p6QXFxcIik7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBldmFsKEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS9teVBhcnNlXFxcIikpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgICAgICAvL+WKqOaAgeino+aekOS7o+eggee7k+adn1xcbiAgICAgICAgICAgICAgICAgICAgfSwgcHRhYiwgdmxpbmssIGp4VXJsLCBhcHBVcmwpO1xcbiAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICAgICAgcGFnZXMucHVzaCh7XFxuICAgICAgICAgICAgICAgIG5hbWU6IFxcXCJBUFDliIbnsbvliJfooahcXFwiLFxcbiAgICAgICAgICAgICAgICBwYXRoOiBcXFwiYXBwbGlzdGRhdGFcXFwiLFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX2FwcGxpc3RkYXRhXFxuICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICBuYW1lOiBcXFwiQVBQ6aaW6aG15YiX6KGoXFxcIixcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcImFwcGluZGV4ZGF0YVxcXCIsXFxuICAgICAgICAgICAgICAgIHJ1bGU6IHJ1bGVfYXBwaW5kZXhkYXRhXFxuICAgICAgICAgICAgfSwge1xcbiAgICAgICAgICAgICAgICBuYW1lOiBcXFwiQVBQ6YCJ6ZuGXFxcIixcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcImFwcG1vdmxpc3RcXFwiLFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX2FwcG1vdmxpc3RcXG4gICAgICAgICAgICB9LCB7XFxuICAgICAgICAgICAgICAgIG5hbWU6IFxcXCLop4bpopHop6PmnpBcXFwiLFxcbiAgICAgICAgICAgICAgICBwYXRoOiBcXFwibGF6eVBhcnNlXFxcIixcXG4gICAgICAgICAgICAgICAgcnVsZTogbGF6eVBhcnNlXFxuICAgICAgICAgICAgfSk7XFxuICAgICAgICB9XFxuXFxuICAgICAgICBsZXQgbXlQYXJzZSA9IEpTT04ucGFyc2UoZmV0Y2goXFxcImhpa2VyOi8vcGFnZS9teVBhcnNlXFxcIikpLnJ1bGU7XFxuICAgICAgICBwYWdlcy5wdXNoKHtcXG4gICAgICAgICAgICBuYW1lOiBcXFwi5YaF572u6Kej5p6QXFxcIixcXG4gICAgICAgICAgICBwYXRoOiBcXFwibXlQYXJzZVxcXCIsXFxuICAgICAgICAgICAgcnVsZTogbXlQYXJzZVxcbiAgICAgICAgfSlcXG5cXG4gICAgICAgIHNlYXJjaEZpbmQgPSBcXFwianM6XFxcIiArICQudG9TdHJpbmcoZnVuY3Rpb24oY2hhbmdlVXJsLCBhcHB0eXBlLCBhcHBVcmwsIGFwcFVhKSB7XFxuICAgICAgICAgICAgbGV0IGl0ZW1zID0gW10sXFxuICAgICAgICAgICAgICAgIHNlYXJjaF91cmwgPSBjaGFuZ2VVcmwoTVlfVVJMLnNwbGl0KCcjIycpWzFdKSxcXG4gICAgICAgICAgICAgICAgYmh0bWwgPSBcXFwiXFxcIjtcXG5cXG4gICAgICAgICAgICBiaHRtbCA9IGZldGNoKHNlYXJjaF91cmwsIHsgaGVhZGVyczogeyBcXFwiVXNlci1BZ2VudFxcXCI6IGFwcFVhIH0gfSk7XFxuXFxuICAgICAgICAgICAgdHJ5IHtcXG4gICAgICAgICAgICAgICAgYmh0bWwgPSBiaHRtbC5zdGFydHNXaXRoKCdcXFxcclxcXFxuJykgPyBiaHRtbC5yZXBsYWNlKCdcXFxcclxcXFxuJywgJycpIDogYmh0bWw7XFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cXG5cXG4gICAgICAgICAgICBpZiAoL2J0d2FmLy50ZXN0KGJodG1sKSkge1xcbiAgICAgICAgICAgICAgICBiaHRtbCA9IGZldGNoKHNlYXJjaF91cmwgKyAnJmJ0d2FmJyArIGJodG1sLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXCIvKVsxXSwgeyBoZWFkZXJzOiB7IFxcXCJVc2VyLUFnZW50XFxcIjogYXBwVWEgfSB9KTtcXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgbGV0IGh0bWwgPSBKU09OLnBhcnNlKGJodG1sKSxcXG4gICAgICAgICAgICAgICAgbGlzdCA9IFtdO1xcbiAgICAgICAgICAgIGlmICgv56We6amsfFRWLy50ZXN0KGFwcHR5cGUpKSB7XFxuICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLmRhdGE7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcygnYXBpLnBocC9hcHAnKSkge1xcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwubGlzdDtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoJ3hnYXBwJykpIHtcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLmRhdGE7XFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5kYXRhLmxpc3Q7XFxuICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICB9XFxuXFxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgICAgIGlmICgv56We6amsfFRWLy50ZXN0KGFwcHR5cGUpKSB7XFxuICAgICAgICAgICAgICAgICAgICB2YXIgeyB0aXRsZSwgcGljLCBuZXh0bGluazogdXJsLCBzdGF0ZTogZGVzYyB9ID0gbGlzdFtpXTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChhcHBVcmwuaW5jbHVkZXMoJ2FwaS5waHAvYXBwJykgfHwgYXBwVXJsLmluY2x1ZGVzKCd4Z2FwcCcpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHsgdm9kX25hbWU6IHRpdGxlLCB2b2RfcGljOiBwaWMsIHZvZF9yZW1hcmtzOiBkZXNjIH0gPSBsaXN0W2ldLFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSBhcHBVcmwgKyAndmlkZW9fZGV0YWlsP2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHsgdm9kX25hbWU6IHRpdGxlLCB2b2RfcGljOiBwaWMsIHZvZF9yZW1hcmtzOiBkZXNjIH0gPSBsaXN0W2ldO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QoYXBwVXJsKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdXJsID0gYXBwVXJsICsgJy9kZXRhaWxJRD92b2RfaWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB1cmwgPSBhcHBVcmwgKyAnL2RldGFpbD92b2RfaWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcXG4gICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHBpYyArICdAUmVmZXJlcj0nLFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZGVzYyxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWMnLFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKFxcXCIjaW1tZXJzaXZlVGhlbWUjaGlrZXI6Ly9lbXB0eSMjXFxcIiArIHVybCkucnVsZSgoYXBwdHlwZSkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgv56We6amsfFRWLy50ZXN0KGFwcHR5cGUpKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3R2bW92bGlzdCcpKS5ydWxlKTtcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBtb3ZsaXN0JykpLnJ1bGUpO1xcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIH0sIGFwcHR5cGUpXFxuICAgICAgICAgICAgICAgIH0pO1xcbiAgICAgICAgICAgIH1cXG5cXG4gICAgICAgICAgICBzZXRSZXN1bHQoaXRlbXMpO1xcbiAgICAgICAgfSwgY2hhbmdlVXJsLCBhcHB0eXBlLCBhcHBVcmwsIGFwcFVhKVxcblxcbiAgICAgICAgbGFzdF9jaGFwdGVyX3J1bGUgPSBcXFwianM6XFxcIiArICQudG9TdHJpbmcoZnVuY3Rpb24oYXBwdHlwZSwgYXBwVXJsLCBhcHBVYSkge1xcbiAgICAgICAgICAgIGxldCBjaHAgPSBbXTtcXG4gICAgICAgICAgICB0cnkge1xcbiAgICAgICAgICAgICAgICBsZXQgY29udHMgPSBbXSxcXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBKU09OLnBhcnNlKGZldGNoKE1ZX1VSTC5zcGxpdChcXFwiIyNcXFwiKVsxXSwgeyBoZWFkZXJzOiB7IFxcXCJVc2VyLUFnZW50XFxcIjogYXBwVWEgfSB9KSk7XFxuICAgICAgICAgICAgICAgIGlmICgv56We6amsfFRWLy50ZXN0KGFwcHR5cGUpKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IE9iamVjdC5rZXlzKGh0bWwudmlkZW9saXN0KTtcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoXFxcImFwaS5waHAvYXBwXFxcIikpIHtcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF91cmxfd2l0aF9wbGF5ZXI7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxuICAgICAgICAgICAgICAgICAgICB9XFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXCJ4Z2FwcFxcXCIpKSB7XFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfaW5mby52b2RfdXJsX3dpdGhfcGxheWVyO1xcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfaW5mby52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcbiAgICAgICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcbiAgICAgICAgICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfbGlzdDtcXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgfVxcblxcbiAgICAgICAgICAgICAgICBsZXQgbGlzdCA9IFtdO1xcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbnRzLmxlbmd0aDsgaSsrKSB7XFxuICAgICAgICAgICAgICAgICAgICBpZiAoL+elnumprHxUVi8udGVzdChhcHB0eXBlKSkge1xcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLnZpZGVvbGlzdFtjb250c1tpXV07XFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRzW2ldLnVybHMpIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0ID0gY29udHNbaV0udXJscztcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJsKSB7XFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGNvbnRzW2ldLnVybC5zcGxpdChcXFwiI1xcXCIpO1xcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0ID0gY29udHNbaV0uc3BsaXQoXFxcIiNcXFwiKTtcXG4gICAgICAgICAgICAgICAgICAgIH1cXG4gICAgICAgICAgICAgICAgICAgIGNocC5wdXNoKGxpc3QubGVuZ3RoKTtcXG4gICAgICAgICAgICAgICAgfVxcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxuICAgICAgICAgICAgc2V0UmVzdWx0KCfmm7TmlrDoh7M6JyArIChNYXRoLm1heC5hcHBseShNYXRoLCBjaHApKSk7XFxuICAgICAgICB9LCBhcHB0eXBlLCBhcHBVcmwsIGFwcFVhKTtcXG5cXG4gICAgICAgIHJ1bGVzLnB1c2goe1xcbiAgICAgICAgICAgIHRpdGxlOiBhcHB0aXRsZSxcXG4gICAgICAgICAgICBhdXRob3I6IGdldE15VmFyKCdyZW1vdGVVcmwnKSxcXG4gICAgICAgICAgICB0eXBlOiBhcHB0eXBlLFxcbiAgICAgICAgICAgIHVybDogaG9tZV91cmwsXFxuICAgICAgICAgICAgZmluZF9ydWxlOiBmaW5kX3J1bGUsXFxuICAgICAgICAgICAgc2VhcmNoX3VybDogc2VhcmNoX3VybCxcXG4gICAgICAgICAgICBzZWFyY2hGaW5kOiBzZWFyY2hGaW5kLFxcbiAgICAgICAgICAgIHBhZ2VzOiBKU09OLnN0cmluZ2lmeShwYWdlcyksXFxuICAgICAgICAgICAgbGFzdF9jaGFwdGVyX3J1bGU6IGxhc3RfY2hhcHRlcl9ydWxlLFxcbiAgICAgICAgICAgIGljb246IGFwcGljb25cXG4gICAgICAgIH0pO1xcbiAgICB9XFxufVxcbi8qJC5leHBvcnRzID0ge1xcbiAgICBydWxlczogcnVsZXMsXFxuICAgIHR5cGVzOiB0eXBlc1xcbn0qL1xcbiQuZXhwb3J0cyA9IHJ1bGVzO1wifSx7XCJjb2xfdHlwZVwiOlwibW92aWVfM1wiLFwibmFtZVwiOlwi5YaF572u5pWw5o2uXCIsXCJwYXRoXCI6XCJSZXNDb2RlXCIsXCJydWxlXCI6XCJ7XFxuICAgIFxcXCJkYXRhXFxcIjpbXFxuICAgICAgICB7XFxuICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLkvJjotKhcXFwiLFxcbiAgICAgICAgXFxcImxpc3RcXFwiOltcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiMTA4MHBcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovLzEwODBwLm9uZS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzEwODBwLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCIxMjMxRFxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vdnVlLmFwcC55dW5ib3lzLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vMTIzMUQucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIjMwMOeci+S4lueVjFxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vMzAweXMueHl6L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vMzAw55yL5LiW55WMLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCI0S+W9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly8xYXBpLjRrZHl0di5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi80S+W9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiODBL5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly8xMDgwcC50di9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzgwS+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiQ0pU5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cuY2p0NTIxLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0NKVOW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiREPlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vY2hhb3JlbmJiLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0RD5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCJGN+mrmOa4hVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9iYy5oYW9rYW5qdTEuY2MvbHZkb3VfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9GN+mrmOa4hS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiSEflvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vaGd5eC52aXAvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9IR+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwibDBs5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9sMGwudHYvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9sMGzlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueIseeci+e+juWJp1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3LnV1bWp3LmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIseeci+e+juWJpy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi54ix6YW35b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cuemhhbmxhbmdidS5jb20vcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54ix6YW35b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLoj5zpuJ/ov73liadcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vODEuNzEuMTguOTU6NTU1NS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iPnOm4n+i/veWJpy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi55m95auW5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3pnanhkdGcuY24vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nmb3lq5blvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueIseeci+W9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly93d3cuYTkxLmNtL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6YCa55So5Zu+5qCHLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLliJ3lv4PlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3d3dy4xOG12LmNsdWIvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/liJ3lv4PlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueLrOaSreekvlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly8zNXlzLmNjL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54us5pKt56S+LnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlj67lvZPlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3R2LjA1NzN3bC5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lj67lvZPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuauteWPi+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly8xMjEuMjA0LjI0OS4xMzU6NDQzMy9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mrrXlj4vlvbHop4YzLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmrrXlj4vlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3NoYW5namlodW9rZS5jb20vYXBpLnBocC90di52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mrrXlj4vlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIumlreWQjueUteW9sVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9zdW1tLnZpcC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mlreWQjueUteW9sS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6aOe5o235b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cuZmo2MDgwLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mjnuaNt+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi55av54uC55yLXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FwcC5ma2tkeS52aXAvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nlq/ni4LnnIvnlLXlvbEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueyieixoeinhueVjFxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly80Mi4xNTcuMTI5LjE1OjM0NDQ0L2x2ZG91X2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57KJ6LGh6KeG55WMLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmsYfogZrlupNUVlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3Lnp6Y2xvdmU2NjYuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5rGH6IGa5bqTVFYucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuiZjueMq+inhumikVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vaHVtYW9zcC5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/omY7njKvop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWPr+exs+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly93d3cua215cy52aXAvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lj6/nsbPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuW6t+iAgOW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcHAueWJ5eWRzLmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bq36ICA5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnu7/nrq3lvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd3d3LjY5dHkuY2MvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nu7/nrq3lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaHkueMq+eUteW9sVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly93d3cuZXNlbGxhdXRvLmNvbS9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mh5LnjKvnlLXlvbEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuicnOicguW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcHAuZjh0cC5jb20vbHZkb3VfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/onJzonILlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIum6u+eTnOinhumikVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hbGl5dW4uazhhYS5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/purvnk5zop4bpopExLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnvo7liafomatcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL21laWp1Y2hvbmcuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v576O5Ymn6JmrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmnKjlrZDnlLXlvbFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd3d3Lm11emlkeS50b3AvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mnKjlrZDnlLXlvbEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWliOmdnui/t1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vYXBwLm5ldGZsaXhtaS5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpYjpnZ7ov7flvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWNl+W6nOW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9pYXBwLm5mdXhzLmNsdWIvZG5tYi5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Y2X5bqc5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmmpblhYnlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL2FwcC5ibDIxMC5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mmpblhYnlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuW/teW/teW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vOTk4Lnl1YW5tYWpzLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b+15b+15b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmn6Dmn5rlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vbnUuZTR0di5jbi9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+afoOafmuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5aWH5oCq6KeG6aKRXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9naWd1YWkubmV0L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6YCa55So5Zu+5qCHLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLkuIPpm7bliqjmvKtcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL2NmLjcweXUuY24vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuIPpm7bliqjmvKsucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueRnuS4sOi1hOa6kFxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vdHYueWpoYW4uY29tOjQ0MzMvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55Ge5LiwLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLpl6rlhYnlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vMTAxLjM1LjEyOC4xOTIvbXViYWlfYXBpLnBocC9tMi52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pl6rlhYnlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaAneS5kOW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3Lmh1YW5kaWFuLnRvcC9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mgJ3kuZDlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWkqeivmuW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly90Y3NwdmlwLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSp6K+a5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlpKnlpKnlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL2FwcC5kYWlzaHVzYy5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnlpKnlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIua4qeWmruW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3Lndlbm5peXMuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5rip5aau5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlsI/nmb3liqjmvKtcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vMTIxLjYyLjYwLjIyMjoyMDIyMi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wwj+eZveWKqOa8qy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5pif6L6w6KeG6aKRXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9tLmhqMDk5OS5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mmJ/ovrDop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWwj+aegeW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcHAuOGQ4cS5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/mnoHlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuW/g+m4vuW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly96aGl5dXR2Lnh5ei9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W/g+m4vuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6Zuq5Lq65b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly96eS5xZDIzNC5jbi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbquS6uuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi55uK6L6+5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2x1b2J1LnlzczYwODAuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55uK6L6+5b2x6ZmiLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLpm6jmnpzlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vMi55aHlzNjMuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Zuo5p6c5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlvbHop4blpKflhahcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBwLjI2OXcuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6KeG5aSn5YWoLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmnIjoibLlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vNjl0eS5jYy9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aciOiJsuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5LyY6KeG5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2NjLnlzeXMuYXNpYS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S8mOinhuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5b2x6ZiF6ZiBXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzIyMS4yMzYuMTguMTI6NjY1L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6ZiF6ZiBLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLov73liaflkKdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vemh1aWp1OC52aXAvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ov73liaflkKflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIF1cXG4gICAgICAgIH0sXFxuICAgICAgICB7XFxuICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmma7pgJpcXFwiLFxcbiAgICAgICAgXFxcImxpc3RcXFwiOltcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiNTHop4bpopFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vNTFzaGlwaW4uY2MvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi81MeinhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiODDlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd3d3LmNjYzgubmV0L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vODDlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIkpET0RPXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9hcHB5cy5qZG9kby54eXovbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9KRE9ET+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiUUPlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3d3dy5xY3N2aXAuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vUUPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIlU15b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9hcHB4LnV5MDcuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vVTXlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIlhH5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2Ntcy54Z2dtLnRvcC9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9YR+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwieW95b1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9qeC53bnZvZC5uZXQvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24veW95b+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6Zi/6YeM5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FsaXlzLmNuOjkwL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Zi/6YeM5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLll7flkZzlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYW93dS5wcm8vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ll7flkZzlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueIseW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3Lmh6bGZmLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54ix5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLniLHov73liadcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vODEuNzEuMTguOTU6NTIwL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54ix6L+95YmnLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLoib7nibnlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3d3dy5haXRlZS5jYy9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iJvueJueW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi55m96I+c6L+95YmnXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2xiYXBwLmh1aW1hb2ppYS5jb206MzAxMTkvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nmb3oj5zov73liacucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuavlOmCu+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly8waHp5LmNuOjk5OTAvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mr5TpgrvlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueZvuiur+inhumikVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vei5pb3Blbnl1bi5jb206OTkvYXBwX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m+6K6v6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLoj5zpuJ/liqjmvKtcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdGFpa29uZy5odWFuZ2d1YXkuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6I+c6bif5Yqo5ryrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlpKflpLTlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vZHkuaWRzYW8uY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSn5aS05b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmrrXlj4vlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vanMuNjZhcHAubWUvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mrrXlj4vlvbHop4YyLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLosYbmuKPlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vZG91emhheXNzLmNjL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6LGG5rij5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLkuozkuZ3lvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL2FwcC4xOWtwLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S6jOS5neW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6aOO5ZCv5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3lzdy5lZS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mjjuWQr+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6L6J5ZOl5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9hcHAueS5oZ3l1bGU4LmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+i+ieWTpeW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6buE5rKz5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2kubGVkdTguY24vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pu4TmsrPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueBq+aYn+S6ulxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vd3d3Lmh1b3hpbmc5LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eBq+aYn+S6uuW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5pmX5YWI5qOuXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9oYW50di50b3AvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mmZflhYjmo67lvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuebkuWtkOW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9pLm5paGFvaGV6aS5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nm5LlrZDlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueti+aWl+S6kVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vdHYuamluZGNsb3VkLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eti+aWl+S6keW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5p6B5YWJ5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FwcC53aW54ei5jYy9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aegeWFieW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6IGa5ZCI6KeG6aKRXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9hcHAuamh5c3R2LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iBmuWQiOinhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5LmF5LmF5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3M5dDkuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LmF5LmF5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLliafov7fop4bpopFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vcGFuLmh6YWZ3LmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WJp+i/t+inhumikS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5qmY5a2Q5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2p6Lmp1emlkeS52aXAvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mqZjlrZDlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuW/q+aSreWQp1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcHAuaGQ4LnB3L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b+r5pKt5ZCnLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnnIvliaflkKdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBwLmlzaGVuNTIwLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eci+WJp+WQpy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi55yL55yL5YmnXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cua2Fua2FuanUuY24vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nnIvnnIvliacucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIumFt+mFt+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly93d3cuY2NjOC5uZXQvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/phbfphbflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWPr+exs+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9zai5rbXlzLnZpcC9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lj6/nsbPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIue7v+ixhuinhumikVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vdi5sdmRvdWkuY24vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nu7/osYblvbHpn7MucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuiTneWFieinhumikVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly92aXAuOTFpcWl5aS5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ok53lhYnop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuael+iwt+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly95cy5saW5ndXl5Lnh5ei9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+ael+iwt+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5Ya36KeGVFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL2xlbi50di9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WGt+inhlRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnvo7liafojINcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdHR6bXoubmV0L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v576O5Ymn6IyDLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLllrXkuZDlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vbWlhb2xleXMuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Za15LmQ5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlkI3op4blvbFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBwLnFxY2N2LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WQjeinhuW9sS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6bq75a2Q6L+95YmnXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2IuMm1hei5jbi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+m6u+WtkOi/veWJpy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5aWI6aOe5Lit5paHXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cubmFpZmVpLm9yZy9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WliOmjnuS4reaWhy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6Iu55p6c5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9hcHBsZTY3OC54eXovYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/oi7nmnpzlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuearuearuWKqOa8q1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9kbS5tdXlpbmcubWUvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nmq7nmq7liqjmvKsucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWlh+i2o+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vYXBwLnFpcXUubWUvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpYfotqPlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuS7u+aAp+eci1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vcmVueGluZ2thbi5uZXQvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ku7vmgKfnnIsucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaAneWlh+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcHAuc2lxaXR2LnZpcC9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aAneWlh+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5LiJ5pel5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cuM3JpLm5ldC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S4ieaXpeW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi56We6ams5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3hzLjc4dHYuY2MvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/npZ7pqazlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuinhuWQrOaYn+eQg1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly96anlhcGlqenlzLnNoeW53bGtqLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+inhuWQrOaYn+eQgy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5Zyf6LGGVFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8veGl1eGlhbi5xZDIzNC5jbi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wcn+ixhlRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmt5jliafnpL5cXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL2FwcC5zaHVoYWk5OS5jb20vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mt5jliafnpL4ucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWkqeepuuW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vdHYuNTFhaXpuLmNvbS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WkqeepuuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5aSp5aSp6KeG6aKRXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FwcC5xaWFuanUuY2MvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnlpKnop4bpopEucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWFlOWtkOeqnVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9jai5odWltYW9qaWEuY29tOjEyMzQ1L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5YWU5a2Q56qdLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmiJHniLHot5/liadcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3d3dy5nZW5tb3YuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5oiR54ix6Lef5YmnLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlkL7niLHlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBwLjVscC5uZXQvYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lkL7niLHlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWQvueIseW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly81Mnlzdy54eXovbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lkL7niLHlvbHop4YxLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlkLvnl5Xop4bpopFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd3d3Lmtpc3NvbmUuY24vcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5ZC755eV6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLonJfniZvliqjmvKtcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd29uaXVkbS53b25pdS5jeW91OjIwMDAwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6JyX54mb5Yqo5ryrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlr7vluLjlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdHYuOTF5bXouY24vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lr7vluLjlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueGiueMq+WKqOa8q1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9kb25nbWFuLms4YWEuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54aK54yr5Yqo5ryrLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnhornjKvop4bpopFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYW5lZ2guY29tL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54aK54yr6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnjrrlqJzlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3BwLnd4aW5hLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54665aic5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlsI/onLvonJNcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vM2tldHYuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bCP6Jy76JyT6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmmJ/nkIPop4bpopFcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vMTE5LjI5LjEyMS40ODo4MDg4L2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pif55CD6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnjrrlv4PlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3R2LmFyYmQuY24vYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/njrrlv4PlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaWsOS6q+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vYXBwLmppYWdhbi5jeC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aWsOS6q+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5pif5b2x55u46ZqPXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FwcC5yb290dGhyZWUudG9wL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pif5b2x55u46ZqPLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlsI/mmJPlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8veHkuaXJvcC5jbi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wwj+aYk+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5LqR5Z+O5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly9heXlmLmNuL211YmFpX2FwaS5waHAvbTIudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LqR5Z+O5b2x6ZmiLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmnIjlhL/lvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwczovL3l1ZTUyLnh5ei9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mAmueUqOWbvuaghy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5qix6Iqx5Yqo5ryrXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cuZG13dS5jYy9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aoseiKseWKqOa8qy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5pyI5Lqu5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3lzLjEzdHYudG9wL2Fjal9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aciOS6ruW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5b2x6KeG5aSn5YWoXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly94Yy54aXhpMnl5Lnh5ei9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W9seinhuWkp+WFqEhELnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlvbHop4bng63liadcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vbGIuMjZ5cy5jbi9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W9seinhueDreWJpy5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5riU5riU5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2x1b2JvLnl1Z2VueWUuc2l0ZS9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+a4lOa4lOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5LyY5LyY5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3hpbi5qanN2aXAuY2MvbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kvJjkvJjlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuafmuWtkOinhumikVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly95ei4yNnlzLmNuL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p+a5a2Q6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLpsbzku5TlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8veXV6YWlvLnRvcC9hcGkucGhwL3YxLnZvZFxcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mxvOS7lOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6L+95Ymn6L6+5Lq6XFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cHM6Ly93d3cuemh1aWp1ZGFyZW4uY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6L+95Ymn6L6+5Lq6LnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLov73liafnjKtcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdHYua210dmIuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6L+95Ymn54yrMS5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpBUFDlvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5L6m5o6i5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3lzLmh1YW5nZ3VheS5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kvqbmjqLlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6QVBQ5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIueMqueMquW9semZolxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcHAuMnpkeXkuY29tL2FwaS5waHAvdjEudm9kXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54yq54yq5b2x6ZmiLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOkFQUOW9seinhlxcXCJcXG4gICAgICAgICAgICB9XFxuICAgICAgICBdXFxuICAgICAgICB9LFxcbiAgICAgICAge1xcbiAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiSVBUVlxcXCIsXFxuICAgICAgICBcXFwibGlzdFxcXCI6W1xcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCIy5Y+35biBXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3Bob2ViZS5jZi9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzLlj7fluIHlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwiQ1blvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd3d3LmNjY3Z2di50b3AvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9DVuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCJIR+W9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9hcGkuaGd5eC52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9IR+W9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlgrLop4blvbHpmaJcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vai56amoubGlmZTo4OC9tdi9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WCsuinhuW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLniLHopb/opb9UVlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly90di5haXhpeGkudmlwL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54ix6KW/6KW/VFYucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi55m954aK5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3F0LnloenkueHl6L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m954aK5b2x6ZmiLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWIuuahkOW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly90di5jdHR2LnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WIuuahkOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlsJjmopNUVlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9jenR2LnZpcDo4My9hcGkucGhwL2NoZW56aXlzdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WwmOaik1RWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWYgOWTqeWYgOWTqVxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vYXBpLmRpbGlrdHYueHl6L2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5ZiA5ZOp5ZiA5ZOpVFYucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5Yqo5Yqb5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3d3dy5sb3ZlOTk4OS5jb20vYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/liqjlipvlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5aSn5biI5YWEXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2RzeHR2LnR2LmNpL2FwaS5waHAvZHN4L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKfluIjlhYTlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5LqM6LSn5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2QuempqLmxpZmU6ODgvbXYvYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuozotKflvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6Z2e5Yeh5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2Ntcy5mZWlmYW4xMi54eXovYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pnZ7lh6HlvbHpmaIucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6aOe5omsVFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vZGlhbmNqLnpoZW5meS5jbi9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mjnuaJrFRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWYv+iNvOmUi1xcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly90di5oZnlzOC52aXAvYXBpLnBocC9TbnR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lmL/ojbzplIsucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6buR6b6Z5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3ZpcC5qaS1kaW5nLWhlLnNpdGUvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pu5HpvpnlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5rKz6ams5b2x6ZmiXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovLzEuMTQuNjMuMTAxL2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5rKz6ams5b2x6ZmiLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuiBmuWkmuW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9qZHl5LndlZXRhaS5jbi9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iBmuWkmuW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLkuYXkuYXlvbHpmaJcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vbC5iaHR2Lm9yZy5jbi9tdi9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S5heS5heW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLkuZDphbdUVlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly8xNTAuMTM4Ljc4LjE3NzoyMDIxL2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LmQ6YW3VFYucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5oeS54yrVFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd3d3LmVzZWxsYXV0by5jb20vYXBpLnBocC9saC92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5oeS54yrVFYucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi5YWt57u05b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2xpdXdlaWlwdHYuZ3E6MTM1Ny9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WFree7tOW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLmtYHmmJ/pm6hcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vbm4ubHh5eXkueHl6OjgvYy9hcGkucGhwL1dBaUxhb3dhbmcvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+a1geaYn+mbqOW9semZoi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlhrfmnIhUVlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHBzOi8vdHYuNTIxeDUuY29tL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Ya35pyIVFYucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6I2U5p6d5b2x6KeGXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FwaS56anlzLnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iNlOaeneW9seinhlRWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWFjei0ueeci1RWXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3d3dy5mcmVla2FuLnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WFjei0ueeci1RWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuicnOaenFRWXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3Z2Lm1pZ3VvdHYubmV0L20vYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/onJzmnpxUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLnsbPmnaXlvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vNDIuNTEuMzcuMTYxOjIzNDYvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nsbPmnaXlvbHop4YucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi57Gz5aWHVFZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vd3d3LnM2ZXAzLnRvcC9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+exs+Wlh1RWLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuS4g+enkeW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly90di43a2ZtLmNuL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LiD56eR5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuiLpeaDnOW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9yeHcucnVveGluZXcuY29tL2FwaS5waHAvU250di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Iul5oOc5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuaAneWlh1RWXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3R2LnNpcWl0di52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mgJ3lpYdUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlj4zlrZDmmJ9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vdHYuZGl5b3VpLmNjL2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Y+M5a2Q5pifLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWxsealguW9seinhlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly9keTYuZGNkMS5jbi9hcGkucGhwL2lwdHYvdm9kL1xcXCIsXFxuICAgICAgICAgICAgXFxcImltZ1xcXCI6XFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WxsealguW9seinhi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlpKnnqbpUVlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly90di50a3lzLnR2L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSp56m6VFYucG5nXFxcIixcXG4gICAgICAgICAgICBcXFwibXVybFxcXCI6XFxcInE6VFblvbHop4ZcXFwiXFxuICAgICAgICAgICAgfSxcXG4gICAgICAgICAgICB7XFxuICAgICAgICAgICAgXFxcInRpdGxlXFxcIjpcXFwi6Jm+55qu6KeG6aKRXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL3R2LmNtdDgueHl6L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Jm+55qu6KeG6aKRLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH0sXFxuICAgICAgICAgICAge1xcbiAgICAgICAgICAgIFxcXCJ0aXRsZVxcXCI6XFxcIuWwj+aegVRWXFxcIixcXG4gICAgICAgICAgICBcXFwidXJsXFxcIjpcXFwiaHR0cDovL2FwaS44ZDhxLmNvbS9tbXYvYXBpLnBocC9DaGVuZ2NoZW5nL3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/mnoFUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLlsI/nhornjKtUVlxcXCIsXFxuICAgICAgICAgICAgXFxcInVybFxcXCI6XFxcImh0dHA6Ly90djIuaGV0YW95cy52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFwiLFxcbiAgICAgICAgICAgIFxcXCJpbWdcXFwiOlxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/nhornjKtUVi5wbmdcXFwiLFxcbiAgICAgICAgICAgIFxcXCJtdXJsXFxcIjpcXFwicTpUVuW9seinhlxcXCJcXG4gICAgICAgICAgICB9LFxcbiAgICAgICAgICAgIHtcXG4gICAgICAgICAgICBcXFwidGl0bGVcXFwiOlxcXCLntKvmm6blvbHop4ZcXFwiLFxcbiAgICAgICAgICAgIFxcXCJ1cmxcXFwiOlxcXCJodHRwOi8vYXBweXMuYXp4LnRvb2xzOjg4L2FwaS5waHAvaXB0di92b2QvXFxcIixcXG4gICAgICAgICAgICBcXFwiaW1nXFxcIjpcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57Sr5pum5b2x6KeGLnBuZ1xcXCIsXFxuICAgICAgICAgICAgXFxcIm11cmxcXFwiOlxcXCJxOlRW5b2x6KeGXFxcIlxcbiAgICAgICAgICAgIH1cXG4gICAgICAgIF1cXG4gICAgICAgIH1cXG4gICAgXVxcbn1cIn0se1wiY29sX3R5cGVcIjpcIm1vdmllXzNcIixcIm5hbWVcIjpcIuiOt+WPlmFwcOWIl+ihqFwiLFwicGF0aFwiOlwiYXBwSnNvblwiLFwicnVsZVwiOlwibGV0IGFwcGZpbGUgPSBcXFwiXFxcIjtcXG50cnkge1xcbiAgICBhcHBmaWxlID0gZmV0Y2goZ2V0TXlWYXIoXFxcInN1YnNjcmlwdGlvblxcXCIpKTtcXG59IGNhdGNoIChlKSB7fVxcblxcbmxldCBhcHBqc29uID0ge307XFxuaWYgKC9Jbk1lbW9yeS8udGVzdChhcHBmaWxlKSkge1xcbiAgICBhcHBqc29uID0gSlNPTi5wYXJzZShhcHBmaWxlKTtcXG59IGVsc2Uge1xcbiAgICBhcHBqc29uID0gSlNPTi5wYXJzZShKU09OLnBhcnNlKGZldGNoKFxcXCJoaWtlcjovL3BhZ2UvUmVzQ29kZVxcXCIsIHt9KSkucnVsZSk7XFxufVxcblxcbiQuZXhwb3J0cyA9IGFwcGpzb247XCJ9LHtcImNvbF90eXBlXCI6XCJtb3ZpZV8zXCIsXCJuYW1lXCI6XCLlhoXnva7mlbDmja4yXCIsXCJwYXRoXCI6XCJteVBhcnNlXCIsXCJydWxlXCI6XCIoKCkgPT4ge1xcbiAgICBmdW5jdGlvbiBjaGFuZ2VWaWRlb1VybCh1cmwpIHtcXG4gICAgICAgIC8v5pS55Y+Y54m55a6a5Zyw5Z2A55qEUmVmZXJlclxcbiAgICAgICAgaWYgKHVybC5pbmNsdWRlcyhcXFwid2tmaWxlXFxcIikpIHtcXG4gICAgICAgICAgICB1cmwgPSB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL30nO1xcbiAgICAgICAgfSBlbHNlIGlmIChwdGFiID09ICdiaWxpYmlsaScpIHtcXG4gICAgICAgICAgICB1cmwgPSB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbS8mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXG4gICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnbWd0dicpIHtcXG4gICAgICAgICAgICB1cmwgPSB1cmwgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcbiAgICAgICAgfSBlbHNlIGlmICh1cmwuaW5jbHVkZXMoXFxcIm9qYmtcXFwiKSkge1xcbiAgICAgICAgICAgIHVybCA9IHVybCArICc7e1JlZmVyZXJAaHR0cHM6Ly9iYWsub2pia2p4LmNvbS99JztcXG4gICAgICAgIH1cXG4gICAgICAgIC8v6L+U5Zue6KeG6aKR6ZO+5o6lXFxuICAgICAgICBpZiAoIXVybC5pbmNsdWRlcyhcXFwiaHR0cFxcXCIpKSB7XFxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxcXCLpk77mjqXkuI3mmK/ku6VodHRw5byA5aS0KOWPr+iDveWKoOWvhuS6hilcXFwiKTtcXG4gICAgICAgIH0gZWxzZSB7XFxuICAgICAgICAgICAgaWYgKC9cXFxcLm0zdTgvLnRlc3QodXJsKSkge1xcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FjaGVNM3U4KHVybCk7XFxuICAgICAgICAgICAgfSBlbHNlIHtcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVybCArICcjaXNWaWRlbz10cnVlIyc7XFxuICAgICAgICAgICAgfVxcbiAgICAgICAgfVxcbiAgICB9XFxuICAgIC8vYWVz6Kej5a+GXFxuICAgIGZ1bmN0aW9uIERlKGRhdGEsIHRva2VuX2tleSwgdG9rZW5faXYpIHtcXG4gICAgICAgIGV2YWwoZ2V0Q3J5cHRvSlMoKSk7XFxuICAgICAgICB2YXIga2V5ID0gQ3J5cHRvSlMuZW5jLlV0ZjgucGFyc2UodG9rZW5fa2V5KTtcXG4gICAgICAgIHZhciBpdiA9IENyeXB0b0pTLmVuYy5VdGY4LnBhcnNlKHRva2VuX2l2KTtcXG4gICAgICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZGVjcnlwdChkYXRhLCBrZXksIHtcXG4gICAgICAgICAgICBpdjogaXYsXFxuICAgICAgICAgICAgbW9kZTogQ3J5cHRvSlMubW9kZS5DQkMsXFxuICAgICAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3XFxuICAgICAgICB9KS50b1N0cmluZyhDcnlwdG9KUy5lbmMuVXRmOCk7XFxuICAgIH07XFxuICAgIGlmICh2bGluay5pbmNsdWRlcygnbTN1OC5jYWNoZS5zdW95by5jYycpKSB7XFxuICAgICAgICBsZXQgdXJsID0gSlNPTi5wYXJzZShmZXRjaCgnaHR0cHM6Ly9qaHBjLm1hbmR1aHUuY29tL2R1b2R1by9hcGkucGhwJywgeyBib2R5OiAndXJsPScgKyB2bGluaywgbWV0aG9kOiAnUE9TVCcgfSkpLnVybDtcXG4gICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChEZSh1cmwsIG1kNSgnclhqV3ZYbDYnKSwgJ05YYkhvV0picHNFT2luOGInKSk7XFxuICAgIH0gZWxzZSBpZiAodmxpbmsuaW5jbHVkZXMoJ3J1aWZlbmdsYicpKSB7XFxuICAgICAgICBsZXQgdXJsID0gSlNPTi5wYXJzZShmZXRjaCgnaHR0cDovL3RzLnlqaGFuLmNvbTo4MDkwL2FwaS8/a2V5PURTUUZnWGRtajl4a0R5aVhkciZ1cmw9JyArIHZsaW5rKSkudXJsO1xcbiAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKHVybCk7XFxuICAgICAgICAvKmxldCBodG1sID0gZmV0Y2goJ2h0dHBzOi8vdHYueWpoYW4uY29tOjQ0MjMvQ0w0Sy8/dXJsPScgKyB2bGluayksXFxuICAgICAgICAgICAgbGVfdG9rZW4gPSBodG1sLm1hdGNoKC9sZV90b2tlbi4qPS4qXFxcIiguKilcXFwiLylbMV0sXFxuICAgICAgICAgICAgdXJsID0gaHRtbC5tYXRjaCgvXFxcInVybFxcXCIuKjouKlxcXCIoLiopXFxcIi8pWzFdO1xcbiAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKERlKHVybCwgXFxcIkE0MkVBQzBDMkI0MDg0NzJcXFwiLCBsZV90b2tlbikpOyovXFxuICAgIH0gZWxzZSBpZiAodmxpbmsuaW5jbHVkZXMoXFxcInh1ZXJlbi1cXFwiKSkge1xcbiAgICAgICAgbGV0IGh0bWwgPSBmZXRjaCgnaHR0cHM6Ly9kaWFveW9uZy5xZDIzNC5jbi8/dXJsPScgKyB2bGluayksXFxuICAgICAgICAgICAgbGVfdG9rZW4gPSBodG1sLm1hdGNoKC9sZV90b2tlblxcXFxzKj1cXFxccypcXFwiKC4qKVxcXCIvKVsxXSxcXG4gICAgICAgICAgICB1cmwgPSBodG1sLm1hdGNoKC9cXFwidXJsXFxcIlxcXFxzKjpcXFxccypcXFwiKC4qKVxcXCIvKVsxXTtcXG4gICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChEZSh1cmwsICdBNDJFQUMwQzJCNDA4NDczJywgbGVfdG9rZW4pKTtcXG4gICAgfSBlbHNlIGlmICh2bGluay5pbmNsdWRlcyhcXFwibmV0ZmxpeG1vbS1cXFwiKSkge1xcbiAgICAgICAgbGV0IGh0bWwgPSBmZXRjaCgnaHR0cHM6Ly9wbGF5ZXIuNGt5YS5jb20vP3VybD0nICsgdmxpbmssIHsgaGVhZGVyczogeyByZWZlcmVyOiAnaHR0cHM6Ly9uZXRmbGl4Lm1vbScgfSB9KSxcXG4gICAgICAgICAgICBsZV90b2tlbiA9IGh0bWwubWF0Y2goL2xlX3Rva2VuXFxcXHMqPVxcXFxzKlxcXCIoLiopXFxcIi8pWzFdLFxcbiAgICAgICAgICAgIHVybCA9IGh0bWwubWF0Y2goL1xcXCJ1cmxcXFwiXFxcXHMqOlxcXFxzKlxcXCIoLiopXFxcIi8pWzFdO1xcbiAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKERlKHVybCwgJzMzMzE4MEIzRUYwRUQ5RDAnLCBsZV90b2tlbikpO1xcbiAgICB9IGVsc2UgaWYgKHB0YWIuaW5jbHVkZXMoJ25mdXhzJykpIHtcXG4gICAgICAgIGxldCBodG1sID0gZmV0Y2goJ2h0dHBzOi8vYXBpLnhrdmlkZW8uZGVzaWduL20zdTgucGhwP3VybD0nICsgdmxpbmspLFxcbiAgICAgICAgICAgIGJ0X3Rva2VuID0gaHRtbC5tYXRjaCgvYnRfdG9rZW5cXFxccyo9XFxcXHMqXFxcIiguKilcXFwiLylbMV0sXFxuICAgICAgICAgICAgdXJsID0gaHRtbC5tYXRjaCgvXFxcInVybFxcXCJcXFxccyo6XFxcXHMqZ2V0VmlkZW9JbmZvXFxcXChcXFwiKC4qKVxcXCIvKVsxXTtcXG4gICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChEZSh1cmwsICd6c2RyZjg4MDIwM2dodXJkJywgYnRfdG9rZW4pKTtcXG4gICAgfSBlbHNlIGlmICgvcWl5aXx5b3VrdXxxcS5jb218bWd0dnxiaWxpYmlsaXxpeGlndWF8bWlndXxzb2h1fHBwdHZ8bGV8MTkwNVxcXFwuY29tfGZ1blxcXFwudHYvLnRlc3QodmxpbmspKSB7XFxuICAgICAgICBsZXQgaHRtbCA9IHJlcXVlc3QoXFxcImh0dHBzOi8vanhxZC50a3lzLnR2L2RubWEucGhwP3VybD1cXFwiICsgdmxpbmspLFxcbiAgICAgICAgICAgIGJ0X3Rva2VuID0gaHRtbC5tYXRjaCgvYnRfdG9rZW5cXFxccyo9XFxcXHMqXFxcIiguKilcXFwiLylbMV0sXFxuICAgICAgICAgICAgdXJsID0gaHRtbC5tYXRjaCgvXFxcInVybFxcXCJcXFxccyo6XFxcXHMqZ2V0VmlkZW9JbmZvXFxcXChcXFwiKC4qKVxcXCIvKVsxXTtcXG4gICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChEZSh1cmwsIFxcXCI3NjkyQUE3MEVFRjkyQjQyXFxcIiwgYnRfdG9rZW4pKTtcXG4gICAgfSBlbHNlIGlmICh2bGluay5pbmNsdWRlcyhcXFwiTFQtXFxcIikpIHtcXG4gICAgICAgIGxldCBodG1sID0gcmVxdWVzdChcXFwiaHR0cHM6Ly9qeHFkLnRreXMudHYvZG5tYS5waHA/dXJsPVxcXCIgKyB2bGluayksXFxuICAgICAgICAgICAgYnRfdG9rZW4gPSBodG1sLm1hdGNoKC9idF90b2tlblxcXFxzKj1cXFxccypcXFwiKC4qKVxcXCIvKVsxXSxcXG4gICAgICAgICAgICB1cmwgPSBodG1sLm1hdGNoKC9cXFwidXJsXFxcIlxcXFxzKjpcXFxccypnZXRWaWRlb0luZm9cXFxcKFxcXCIoLiopXFxcIi8pWzFdO1xcbiAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKERlKHVybCwgXFxcIjc2OTJBQTcwRUVGOTJCNDJcXFwiLCBidF90b2tlbikpO1xcbiAgICB9IGVsc2UgaWYgKHZsaW5rLmluY2x1ZGVzKFxcXCJyZW5yZW5taS1cXFwiKSkge1xcbiAgICAgICAgbGV0IGh0bWwgPSByZXF1ZXN0KFxcXCJodHRwczovL2p4cWQudGt5cy50di9kbm1hLnBocD91cmw9XFxcIiArIHZsaW5rKSxcXG4gICAgICAgICAgICBidF90b2tlbiA9IGh0bWwubWF0Y2goL2J0X3Rva2VuXFxcXHMqPVxcXFxzKlxcXCIoLiopXFxcIi8pWzFdLFxcbiAgICAgICAgICAgIHVybCA9IGh0bWwubWF0Y2goL1xcXCJ1cmxcXFwiXFxcXHMqOlxcXFxzKmdldFZpZGVvSW5mb1xcXFwoXFxcIiguKilcXFwiLylbMV07XFxuICAgICAgICByZXR1cm4gY2hhbmdlVmlkZW9VcmwoRGUodXJsLCBcXFwiNzY5MkFBNzBFRUY5MkI0MlxcXCIsIGJ0X3Rva2VuKSk7XFxuICAgIH0gZWxzZSBpZiAodmxpbmsuaW5jbHVkZXMoXFxcIlJvbmdYaW5nVlItXFxcIikpIHtcXG4gICAgICAgIGxldCB1cmwgPSBKU09OLnBhcnNlKHJlcXVlc3QoXFxcImh0dHBzOi8vdnZpcC5mdW5zbGluZS5jbjo4ODY2L2FwaS8/a2V5PWZLNngwNzZrMThMVTM0eDAyTiZ1cmw9XFxcIiArIHZsaW5rKSkudXJsO1xcbiAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKHVybCk7XFxuICAgIH0gZWxzZSBpZiAodmxpbmsuaW5jbHVkZXMoXFxcInhmeS1cXFwiKSkge1xcbiAgICAgICAgbGV0IHVybCA9IEpTT04ucGFyc2UocmVxdWVzdChcXFwiaHR0cHM6Ly92aXAueGZ5dW4ub25lL2hvbWUvYXBpP3R5cGU9eXMmdWlkPTI1ODE5MjMma2V5PWFlZmlrbG90d3pDRUZISk80OCZ1cmw9XFxcIiArIHZsaW5rKSkudXJsO1xcbiAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKHVybCk7XFxuICAgIH0gZWxzZSBpZiAodmxpbmsuaW5jbHVkZXMoXFxcImZlbi5sYW9kaVxcXCIpKSB7XFxuICAgICAgICBsZXQgaHRtbCA9IGZldGNoKFxcXCJodHRwczovL3BsYXkudGt5cy50di9sYW9kaS5waHAvP3VybD1cXFwiICsgdmxpbmspLFxcbiAgICAgICAgICAgIHVybCA9IGh0bWwubWF0Y2goL3Z1cmxcXFxccyo9XFxcXHMqJyguKiknLylbMV07XFxuICAgICAgICByZXR1cm4gY2hhbmdlVmlkZW9VcmwodXJsKTtcXG4gICAgfSBlbHNlIHtcXG4gICAgICAgIHJldHVybiB2bGluaztcXG4gICAgfVxcbn0pKCk7XCJ9XSxcInNhdmVkXCI6ZmFsc2UsXCJ0aXRsZVwiOlwi6L275ZCI6ZuGLmFwcFwiLFwidmVyc2lvblwiOjAsXCJ1cmxcIjpcImhpa2VyOi8vcGFnZS9Db25maWc/cnVsZT3ovbvlkIjpm4YuYXBwJiNub1JlY29yZEhpc3RvcnkjXCIsXCJjb2xfdHlwZVwiOlwiaWNvbl8yX3JvdW5kXCIsXCJmaW5kX3J1bGVcIjpcImpzOlxcbmFkZExpc3RlbmVyKCdvbkNsb3NlJywgJ2NsZWFyTXlWYXIoXFxcInNvcnRGbGFnXFxcIik7cmVmcmVzaFBhZ2UoKScpXFxuc2V0UGFnZVRpdGxlKCfimpkg6L275ZCI6ZuG6K6+572uIOKamScpXFxuY29uc3QgUUlOR19USVRMRSA9IGdldE15VmFyKCdteUNvbGxlY3Rpb24nKVxcbmxldCBkYXRhID0gJC5yZXF1aXJlKCdoaWtlcjovL3BhZ2UvZGF0YUxvYWQ/cnVsZT0nICsgUUlOR19USVRMRSkodHJ1ZSksXFxuICAgIGVsID0gW3tcXG4gICAgICAgIHRpdGxlOiAnPGI+IOa4hemZpOe8k+WtmO+8jOeri+WNs+abtOaWsCA8c21hbGw+IO+8iOWfuuS6jui/nOeoi+S7k+W6k++8jOS4jeimgemikee5geeCueWHu++8iScsXFxuICAgICAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKCkgPT4ge1xcbiAgICAgICAgICAgIGxldCB1cmwgPSBnZXRNeVZhcigncmVtb3RlVXJsJylcXG4gICAgICAgICAgICBpZih1cmwuc3RhcnRzV2l0aCgnaGlrZXI6Ly8nKSB8fCB1cmwuc3RhcnRzV2l0aCgnZmlsZTovLycpKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5LuT5bqT5Li65pys5Zyw5paH5Lu277yM5LiN5Lya6L+b6KGM57yT5a2Y77yM5pys5Yqf6IO95Lmf5peg5pWIJ1xcbiAgICAgICAgICAgIGRlbGV0ZUZpbGUoJ3VwZGF0ZVRpbWUnKVxcbiAgICAgICAgICAgIGJhY2soZmFsc2UpXFxuICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suabtOaWsCdcXG4gICAgICAgIH0pLFxcbiAgICAgICAgaW1nOiAnaGlrZXI6Ly9pbWFnZXMvaWNvbjQnLFxcbiAgICAgICAgY29sX3R5cGU6ICdhdmF0YXInXFxuICAgIH1dLFxcbiAgICB1cGRhdGVJbnRlcnZhbCA9IHJlYWRGaWxlKCd1cGRhdGVJbnRlcnZhbCcpIHx8ICcxJyxcXG4gICAgbmV3V2luZG93ID0gcmVhZEZpbGUoJ25ld1dpbmRvdycpLFxcbiAgICB0YWJGb2xkID0gcmVhZEZpbGUoJ3RhYkZvbGQnKSxcXG4gICAgZGlzYWJsZUN1c3RvbSA9IHJlYWRGaWxlKCdkaXNhYmxlQ3VzdG9tJyksXFxuICAgIGVkaXRNb2RlID0gZ2V0TXlWYXIoJ2VkaXRNb2RlJywgJ+WQr+eUqC/npoHnlKgnKVxcblxcbmVsLnB1c2goe1xcbiAgICB0aXRsZTogJyAg8J+SoSDmm7TmlrDpopHnjoc6ICcgKyAodXBkYXRlSW50ZXJ2YWwgPT0gMCA/ICfmiYvliqgnIDogdXBkYXRlSW50ZXJ2YWwgKyAn5aSpJykgKyAnICAnLFxcbiAgICB1cmw6ICQodXBkYXRlSW50ZXJ2YWwsICfovpPlhaXmm7TmlrDpl7TpmpTvvIjlpKnvvInvvIzkuLow5YiZ5omL5Yqo5pu05pawXFxcXG7mnKzlnLDmlofku7bpk77mjqXml6DmlYgnKS5pbnB1dCgoKSA9PiB7XFxuICAgICAgICBzYXZlRmlsZSgndXBkYXRlSW50ZXJ2YWwnLCBpbnB1dClcXG4gICAgICAgIHJlZnJlc2hQYWdlKClcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgfSksXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG59LCB7XFxuICAgIHRpdGxlOiAnICDwn5alIOeLrOeri+mmlumhtTogJyArIChuZXdXaW5kb3cgPyAn5pivJyA6ICflkKYnKSArICcgICcsXFxuICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgobmV3V2luZG93KSA9PiB7XFxuICAgICAgICBzYXZlRmlsZSgnbmV3V2luZG93JywgbmV3V2luZG93ID8gJycgOiAnMScpXFxuICAgICAgICByZWZyZXNoUGFnZSgpXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgIH0sIG5ld1dpbmRvdyksXFxuICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXG59LCAvKntcXG4gICAgdGl0bGU6ICcgIPCfkqAg5YiG57G75oqY5Y+gOiAnICsgKHRhYkZvbGQgPyAn5pivJyA6ICflkKYnKSArICcgICcsXFxuICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgodGFiRm9sZCkgPT4ge1xcbiAgICAgICAgc2F2ZUZpbGUoJ3RhYkZvbGQnLCB0YWJGb2xkID8gJycgOiAnMScpXFxuICAgICAgICByZWZyZXNoUGFnZSgpXFxuICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgIH0sIHRhYkZvbGQpLFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxufSwgKi97XFxuICAgIHRpdGxlOiAnICDwn5K8IOWkh+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/nlKgv56aB55So44CB6YeN5paw5o6S5bqP562J5pON5L2c5Z2H5LiN5Lya5L2T546w5Zyo6aaW6aG15bCP56iL5bqP5YiX6KGo5LitJ1xcbiAgICAgICAgfVxcbiAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5beyJyArIGlucHV0XFxuICAgIH0pLFxcbiAgICBjb2xfdHlwZTogJ3RleHRfY2VudGVyXzEnLFxcbiAgICBleHRyYTogeyBsaW5lVmlzaWJsZTogZmFsc2UgfVxcbn0pO1xcbihkaXNhYmxlQ3VzdG9tID8gWyflr7zlhaXmtbfpmJQnXSA6IFsn5ZCv55SoL+emgeeUqCcsICfph43mlrDmjpLluo8nLCAn5pu05pS55Zu+5qCHJywgJ+WvvOWFpea1t+mYlCddKS5mb3JFYWNoKCh2KSA9PiB7XFxuICAgIGVsLnB1c2goe1xcbiAgICAgICAgdGl0bGU6IHYgPT0gZWRpdE1vZGUgPyAn4oCc4oCc4oCd4oCdJyArIHYuYm9sZCgpLmZvbnRjb2xvcignIzEyYjY2OCcpIDogdixcXG4gICAgICAgIHVybDogdiA9PSBlZGl0TW9kZSA/ICdoaWtlcjovL2VtcHR5JyA6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKHYpID0+IHtcXG4gICAgICAgICAgICBwdXRNeVZhcignZWRpdE1vZGUnLCB2KVxcbiAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgIH0sIHYpLFxcbiAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcbiAgICB9KVxcbn0pO1xcbihkaXNhYmxlQ3VzdG9tID8gZGF0YSA6IEpTT04ucGFyc2UocmVhZEZpbGUoJ2N1c3RvbURhdGEnKSB8fCAnW10nKSkuZm9yRWFjaCgodiwgaSkgPT4ge1xcbiAgICBsZXQgZCA9IHsgdGl0bGU6IHYudGl0bGUsIGltZzogZGF0YVtpXS5pY29uIH1cXG4gICAgc3dpdGNoIChlZGl0TW9kZSkge1xcbiAgICAgICAgY2FzZSAn5ZCv55SoL+emgeeUqCc6XFxuICAgICAgICAgICAgZC50aXRsZSA9ICh2LnZpc2libGUgPyAn8J+foiAgJyA6ICfwn5S0ICAnKSArIGQudGl0bGVcXG4gICAgICAgICAgICBkLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGkpID0+IHtcXG4gICAgICAgICAgICAgICAgbGV0IHJ1bGVzID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnY3VzdG9tRGF0YScpIHx8ICdbXScpXFxuICAgICAgICAgICAgICAgIHJ1bGVzW2ldLnZpc2libGUgPSAhcnVsZXNbaV0udmlzaWJsZVxcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIEpTT04uc3RyaW5naWZ5KHJ1bGVzKSlcXG4gICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxuICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICB9LCBpKVxcbiAgICAgICAgICAgIGJyZWFrXFxuICAgICAgICBjYXNlICfph43mlrDmjpLluo8nOlxcbiAgICAgICAgICAgIGxldCBzb3J0RmxhZyA9IHBhcnNlSW50KGdldE15VmFyKCdzb3J0RmxhZycsICctMScpKVxcbiAgICAgICAgICAgIGQudGl0bGUgPSAoc29ydEZsYWcgPT0gaSA/ICfwn5SDICAnIDogJycpICsgZC50aXRsZVxcbiAgICAgICAgICAgIGlmIChzb3J0RmxhZyA9PSAtMSlcXG4gICAgICAgICAgICAgICAgZC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpKSA9PiB7XFxuICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcignc29ydEZsYWcnLCBpLnRvU3RyaW5nKCkpXFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/pgInmi6nopoHnp7vliqjliLDnmoTkvY3nva4nXFxuICAgICAgICAgICAgICAgIH0sIGkpXFxuICAgICAgICAgICAgZWxzZVxcbiAgICAgICAgICAgICAgICBkLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG9sZEluZGV4LCBuZXdJbmRleCkgPT4ge1xcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJ1bGVzID0gSlNPTi5wYXJzZShyZWFkRmlsZSgnY3VzdG9tRGF0YScpIHx8ICdbXScpXFxuICAgICAgICAgICAgICAgICAgICBydWxlcy5zcGxpY2UobmV3SW5kZXgsIDAsIHJ1bGVzLnNwbGljZShvbGRJbmRleCwgMSlbMF0pXFxuICAgICAgICAgICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIEpTT04uc3RyaW5naWZ5KHJ1bGVzKSlcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdzb3J0RmxhZycsICctMScpXFxuICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXG4gICAgICAgICAgICAgICAgfSwgc29ydEZsYWcsIGkpXFxuICAgICAgICAgICAgYnJlYWtcXG4gICAgICAgIGNhc2UgJ+abtOaUueWbvuaghyc6XFxuICAgICAgICAgICAgZC51cmwgPSAkKHYuaWNvbiB8fCAnJywgJ+i+k+WFpeaWsOWbvuagh+WcsOWdgOaIluminOiJsuS7o+egge+8micpLmlucHV0KChpKSA9PiB7XFxuICAgICAgICAgICAgICAgIGxldCBydWxlcyA9IEpTT04ucGFyc2UocmVhZEZpbGUoJ2N1c3RvbURhdGEnKSB8fCAnW10nKVxcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQpXFxuICAgICAgICAgICAgICAgICAgICBydWxlc1tpXS5pY29uID0gaW5wdXRcXG4gICAgICAgICAgICAgICAgZWxzZVxcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJ1bGVzW2ldLmljb25cXG4gICAgICAgICAgICAgICAgc2F2ZUZpbGUoJ2N1c3RvbURhdGEnLCBKU09OLnN0cmluZ2lmeShydWxlcykpXFxuICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxuICAgICAgICAgICAgfSwgaSlcXG4gICAgICAgICAgICBicmVha1xcbiAgICAgICAgY2FzZSAn5a+85YWl5rW36ZiUJzpcXG4gICAgICAgICAgICBkLnVybCA9ICdydWxlOi8vJyArIGJhc2U2NEVuY29kZShKU09OLnN0cmluZ2lmeShkYXRhW2ldKSlcXG4gICAgICAgICAgICBicmVha1xcbiAgICB9XFxuICAgIGVsLnB1c2goZClcXG59KVxcbnNldFJlc3VsdChlbClcIixcImdyb3VwXCI6XCLikaDovbvlkIjpm4ZcIixcInVhXCI6XCJhdXRvXCIsXCJwcmVSdWxlXCI6XCJwdXRNeVZhcignbXlDb2xsZWN0aW9uJywgTVlfUlVMRS50aXRsZSk7XFxucHV0TXlWYXIoJ3JlbW90ZVVybCcsICdhcHDlvbHop4YnKTtcXG5wdXRNeVZhcignc3Vic2NyaXB0aW9uJywnaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FQUC5qc29uJyk7XCIsXCJwYWdlc1wiOlwiW3tcXFwiY29sX3R5cGVcXFwiOlxcXCJ0ZXh0XzFcXFwiLFxcXCJuYW1lXFxcIjpcXFwiQ2xhc3NUYWJcXFwiLFxcXCJwYXRoXFxcIjpcXFwiQ2xhc3NUYWJcXFwiLFxcXCJydWxlXFxcIjpcXFwiY29uc3QgQ2xhc3NUYWIgPSBmdW5jdGlvbihjbGFzc0FycmF5LCBwYXJhbXMpIHtcXFxcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIHBhcmFtcylcXFxcbiAgICB0aGlzLmFyciA9IGNsYXNzQXJyYXkubWFwKHYgPT4gdGhpcy5pbml0KHYpKVxcXFxuICAgIHRoaXMuc2lnbiA9ICckJyArIFFJTkdfVElUTEUgKyAnXycgKyAodGhpcy5uYW1lIHx8ICcnKSArICdfJ1xcXFxuICAgIHRoaXMuY29sb3IgPSB0aGlzLmNvbG9yIHx8ICcjMTJiNjY4J1xcXFxuICAgIHRoaXMuYm91bmRhcnkgPSB0aGlzLmJvdW5kYXJ5IHx8ICdibGFua19ibG9jaydcXFxcbn1cXFxcbkNsYXNzVGFiLnByb3RvdHlwZSA9IHtcXFxcbiAgICBjb25zdHJ1Y3RvcjogQ2xhc3NUYWIsXFxcXG4gICAgbG9hZChlbCkge1xcXFxuICAgICAgICBsZXQgZm9sZGVkID0gdGhpcy5mb2xkICYmIGdldFZhcignZm9sZF8nICsgdGhpcy5zaWduLCAnJylcXFxcbiAgICAgICAgaWYgKHRoaXMuYXJyLmxlbmd0aCA+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+WQpicpICsgJyAgJyxcXFxcbiAgICB1cmw6ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG5ld1dpbmRvdykgPT4ge1xcXFxuICAgICAgICBzYXZlRmlsZSgnbmV3V2luZG93JywgbmV3V2luZG93ID8gJycgOiAnMScpXFxcXG4gICAgICAgIHJlZnJlc2hQYWdlKClcXFxcbiAgICAgICAgcmV0dXJuICdoaWtlcjovL2VtcHR5J1xcXFxuICAgIH0sIG5ld1dpbmRvdyksXFxcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxufSwgLyp7XFxcXG4gICAgdGl0bGU6ICcgIPCfkqAg5YiG57G75oqY5Y+gOiAnICsgKHRhYkZvbGQgPyAn5pivJyA6ICflkKYnKSArICcgICcsXFxcXG4gICAgdXJsOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCh0YWJGb2xkKSA9PiB7XFxcXG4gICAgICAgIHNhdmVGaWxlKCd0YWJGb2xkJywgdGFiRm9sZCA/ICcnIDogJzEnKVxcXFxuICAgICAgICByZWZyZXNoUGFnZSgpXFxcXG4gICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXFxcbiAgICB9LCB0YWJGb2xkKSxcXFxcbiAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG59LCAqL3tcXFxcbiAgICB0aXRsZTogJyAg8J+SvCDlpIfku73mgaLlpI0gICcsXFxcXG4gICAgdXJsOiAkKFsn5aSH5Lu9JywgJ+aBouWkjSddLCAxKS5zZWxlY3QoKFFJTkdfVElUTEUsIHVwZGF0ZUludGVydmFsLCBuZXdXaW5kb3csIHRhYkZvbGQsIGRpc2FibGVDdXN0b20pID0+IHtcXFxcbiAgICAgICAgbGV0IHVybCA9IGdldE15VmFyKCdyZW1vdGVVcmwnKVxcXFxuICAgICAgICBpZiAoIXVybC5zdGFydHNXaXRoKCdoaWtlcjovLycpICYmICF1cmwuc3RhcnRzV2l0aCgnZmlsZTovLycpKVxcXFxuICAgICAgICAgICAgdXJsID0gJ2hpa2VyOi8vZmlsZXMvbGlicy8nICsgbWQ1KHVybCkgKyAnLmpzJ1xcXFxuICAgICAgICBlbHNlIGlmKHVybC5zdGFydHNXaXRoKCdoaWtlcjovL3BhZ2UvJykpIHVybCA9ICdoaWtlcjovL2VtcHR5J1xcXFxuICAgICAgICBpZiAoaW5wdXQgPT0gJ+Wkh+S7vScpIHJldHVybiAkKCdoaWtlcjovL2ZpbGVzL3RtcC8nICsgUUlOR19USVRMRSArICdfYmFja3VwLmpzb24nLCAn6L6T5YWl5aSH5Lu96Lev5b6EJylcXFxcbiAgICAgICAgICAgIC5pbnB1dCgodXJsLCB1cGRhdGVJbnRlcnZhbCwgbmV3V2luZG93LCB0YWJGb2xkLCBkaXNhYmxlQ3VzdG9tKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IHJ1bGVzID0gcmVxdWVzdCh1cmwpLFxcXFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21EYXRhID0gcmVhZEZpbGUoJ2N1c3RvbURhdGEnKVxcXFxuICAgICAgICAgICAgICAgIHdyaXRlRmlsZShpbnB1dCwgSlNPTi5zdHJpbmdpZnkoe1xcXFxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVJbnRlcnZhbDogdXBkYXRlSW50ZXJ2YWwsXFxcXG4gICAgICAgICAgICAgICAgICAgIG5ld1dpbmRvdzogbmV3V2luZG93LFxcXFxuICAgICAgICAgICAgICAgICAgICB0YWJGb2xkOiB0YWJGb2xkLFxcXFxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlQ3VzdG9tOiBkaXNhYmxlQ3VzdG9tLFxcXFxuICAgICAgICAgICAgICAgICAgICBjdXN0b21EYXRhOiBjdXN0b21EYXRhLFxcXFxuICAgICAgICAgICAgICAgICAgICBydWxlczogcnVsZXNcXFxcbiAgICAgICAgICAgICAgICB9KSlcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5aSH5Lu977yM5rOo5oSP6Iul5LuT5bqT5Li65a2Q6aG16Z2i5YiZ5LiN5aSH5Lu9J1xcXFxuICAgICAgICAgICAgfSwgdXJsLCB1cGRhdGVJbnRlcnZhbCwgbmV3V2luZG93LCB0YWJGb2xkLCBkaXNhYmxlQ3VzdG9tKVxcXFxuICAgICAgICBlbHNlIHJldHVybiAkKCdoaWtlcjovL2ZpbGVzL3RtcC8nICsgUUlOR19USVRMRSArICdfYmFja3VwLmpzb24nLCAn6L6T5YWl5aSH5Lu96Lev5b6EJykuaW5wdXQoKHVybCkgPT4ge1xcXFxuICAgICAgICAgICAgbGV0IHsgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSwgY3VzdG9tRGF0YSwgcnVsZXMgfSA9IEpTT04ucGFyc2UocmVxdWVzdChpbnB1dCkpXFxcXG4gICAgICAgICAgICBzYXZlRmlsZSgndXBkYXRlSW50ZXJ2YWwnLCB1cGRhdGVJbnRlcnZhbClcXFxcbiAgICAgICAgICAgIHNhdmVGaWxlKCduZXdXaW5kb3cnLCBuZXdXaW5kb3cpXFxcXG4gICAgICAgICAgICBzYXZlRmlsZSgndGFiRm9sZCcsIHRhYkZvbGQpXFxcXG4gICAgICAgICAgICBzYXZlRmlsZSgnZGlzYWJsZUN1c3RvbScsIGRpc2FibGVDdXN0b20pXFxcXG4gICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIGN1c3RvbURhdGEpXFxcXG4gICAgICAgICAgICBpZihydWxlcykgd3JpdGVGaWxlKHVybCwgcnVsZXMpXFxcXG4gICAgICAgICAgICByZWZyZXNoUGFnZSgpXFxcXG4gICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5oGi5aSN77yM5aaC5p6c5LiN5oOz5ZCM5q2l6L+c56iL5LuT5bqT77yM5Y+v5Lul6K6+572u5pu05paw6aKR546H5Li65omL5YqoJ1xcXFxuICAgICAgICB9LCB1cmwpXFxcXG4gICAgfSwgUUlOR19USVRMRSwgdXBkYXRlSW50ZXJ2YWwsIG5ld1dpbmRvdywgdGFiRm9sZCwgZGlzYWJsZUN1c3RvbSksXFxcXG4gICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxufSwge1xcXFxuICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdPGZvbnQgY29sb3I9XFxcXFxcXCIjNjY2NjY2XFxcXFxcXCI+PHNtYWxsPueJueWIq+m4o+iwou+8jOWwj+eoi+W6j+aPkOS+m+iAhe+8mlxcXFxcXFxcbicgK1xcXFxuICAgICAgICBkYXRhLnJlZHVjZSgoc2VsZiwgdikgPT4gdi5hdXRob3IgPyBzZWxmLmNvbmNhdCh2LmF1dGhvci5zcGxpdCgnJicpKSA6IHNlbGYsIFtdKVxcXFxuICAgICAgICAuZmlsdGVyKCh2LCBpLCBhcnIpID0+IHYgJiYgYXJyLmluZGV4T2YodikgPT0gaSkuam9pbign44CBJyksXFxcXG4gICAgdXJsOiAnaGlrZXI6Ly9lbXB0eScsXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJ1xcXFxufSlcXFxcblxcXFxuZWwucHVzaCh7IGNvbF90eXBlOiAnbGluZScgfSwge1xcXFxuICAgIHRpdGxlOiAn4oCc4oCc4oCd4oCdJyArICfwn5OdJy5zbWFsbCgpICsgJyZuYnNwIOi9u+WQiOmbhuiHquWumuS5iSAmbmJzcCcuYm9sZCgpLmZvbnRjb2xvcignIzc1NzU3NScpICsgKGRpc2FibGVDdXN0b20gPyAn4p2MJyA6ICfirZUnKS5zbWFsbCgpLFxcXFxuICAgIHVybDogJChbKGRpc2FibGVDdXN0b20gPyAn5ZCv55SoJyA6ICfnpoHnlKgnKSArICflkIjpm4boh6rlrprkuYknLCAn5riF6Zmk6Ieq5a6a5LmJ5pWw5o2uJ10sIDEpLnNlbGVjdCgoKSA9PiB7XFxcXG4gICAgICAgIGlmIChpbnB1dCA9PSAn5riF6Zmk6Ieq5a6a5LmJ5pWw5o2uJykge1xcXFxuICAgICAgICAgICAgZGVsZXRlRmlsZSgnY3VzdG9tRGF0YScpXFxcXG4gICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gJ+WQr+eUqOWQiOmbhuiHquWumuS5iScpIHtcXFxcbiAgICAgICAgICAgIHNhdmVGaWxlKCdkaXNhYmxlQ3VzdG9tJywgJycpXFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICBzYXZlRmlsZSgnZGlzYWJsZUN1c3RvbScsICcxJylcXFxcbiAgICAgICAgICAgIGlucHV0ICs9ICdcXFxcXFxcXG7lsI/nqIvluo/lkK/nlKgv56aB55So44CB6YeN5paw5o6S5bqP562J5pON5L2c5Z2H5LiN5Lya5L2T546w5Zyo6aaW6aG15bCP56iL5bqP5YiX6KGo5LitJ1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKVxcXFxuICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5beyJyArIGlucHV0XFxcXG4gICAgfSksXFxcXG4gICAgY29sX3R5cGU6ICd0ZXh0X2NlbnRlcl8xJyxcXFxcbiAgICBleHRyYTogeyBsaW5lVmlzaWJsZTogZmFsc2UgfVxcXFxufSk7XFxcXG4oZGlzYWJsZUN1c3RvbSA/IFsn5a+85YWl5rW36ZiUJ10gOiBbJ+WQr+eUqC/npoHnlKgnLCAn6YeN5paw5o6S5bqPJywgJ+abtOaUueWbvuaghycsICflr7zlhaXmtbfpmJQnXSkuZm9yRWFjaCgodikgPT4ge1xcXFxuICAgIGVsLnB1c2goe1xcXFxuICAgICAgICB0aXRsZTogdiA9PSBlZGl0TW9kZSA/ICfigJzigJzigJ3igJ0nICsgdi5ib2xkKCkuZm9udGNvbG9yKCcjMTJiNjY4JykgOiB2LFxcXFxuICAgICAgICB1cmw6IHYgPT0gZWRpdE1vZGUgPyAnaGlrZXI6Ly9lbXB0eScgOiAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKCh2KSA9PiB7XFxcXG4gICAgICAgICAgICBwdXRNeVZhcignZWRpdE1vZGUnLCB2KVxcXFxuICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxcXG4gICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxcXG4gICAgICAgIH0sIHYpLFxcXFxuICAgICAgICBjb2xfdHlwZTogJ3Njcm9sbF9idXR0b24nXFxcXG4gICAgfSlcXFxcbn0pO1xcXFxuKGRpc2FibGVDdXN0b20gPyBkYXRhIDogSlNPTi5wYXJzZShyZWFkRmlsZSgnY3VzdG9tRGF0YScpIHx8ICdbXScpKS5mb3JFYWNoKCh2LCBpKSA9PiB7XFxcXG4gICAgbGV0IGQgPSB7IHRpdGxlOiB2LnRpdGxlLCBpbWc6IGRhdGFbaV0uaWNvbiB9XFxcXG4gICAgc3dpdGNoIChlZGl0TW9kZSkge1xcXFxuICAgICAgICBjYXNlICflkK/nlKgv56aB55SoJzpcXFxcbiAgICAgICAgICAgIGQudGl0bGUgPSAodi52aXNpYmxlID8gJ/Cfn6IgICcgOiAn8J+UtCAgJykgKyBkLnRpdGxlXFxcXG4gICAgICAgICAgICBkLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKGkpID0+IHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJylcXFxcbiAgICAgICAgICAgICAgICBydWxlc1tpXS52aXNpYmxlID0gIXJ1bGVzW2ldLnZpc2libGVcXFxcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIEpTT04uc3RyaW5naWZ5KHJ1bGVzKSlcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxcXG4gICAgICAgICAgICB9LCBpKVxcXFxuICAgICAgICAgICAgYnJlYWtcXFxcbiAgICAgICAgY2FzZSAn6YeN5paw5o6S5bqPJzpcXFxcbiAgICAgICAgICAgIGxldCBzb3J0RmxhZyA9IHBhcnNlSW50KGdldE15VmFyKCdzb3J0RmxhZycsICctMScpKVxcXFxuICAgICAgICAgICAgZC50aXRsZSA9IChzb3J0RmxhZyA9PSBpID8gJ/CflIMgICcgOiAnJykgKyBkLnRpdGxlXFxcXG4gICAgICAgICAgICBpZiAoc29ydEZsYWcgPT0gLTEpXFxcXG4gICAgICAgICAgICAgICAgZC51cmwgPSAkKCcjbm9Mb2FkaW5nIycpLmxhenlSdWxlKChpKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKCdzb3J0RmxhZycsIGkudG9TdHJpbmcoKSlcXFxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/pgInmi6nopoHnp7vliqjliLDnmoTkvY3nva4nXFxcXG4gICAgICAgICAgICAgICAgfSwgaSlcXFxcbiAgICAgICAgICAgIGVsc2VcXFxcbiAgICAgICAgICAgICAgICBkLnVybCA9ICQoJyNub0xvYWRpbmcjJykubGF6eVJ1bGUoKG9sZEluZGV4LCBuZXdJbmRleCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJylcXFxcbiAgICAgICAgICAgICAgICAgICAgcnVsZXMuc3BsaWNlKG5ld0luZGV4LCAwLCBydWxlcy5zcGxpY2Uob2xkSW5kZXgsIDEpWzBdKVxcXFxuICAgICAgICAgICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIEpTT04uc3RyaW5naWZ5KHJ1bGVzKSlcXFxcbiAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoJ3NvcnRGbGFnJywgJy0xJylcXFxcbiAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnaGlrZXI6Ly9lbXB0eSdcXFxcbiAgICAgICAgICAgICAgICB9LCBzb3J0RmxhZywgaSlcXFxcbiAgICAgICAgICAgIGJyZWFrXFxcXG4gICAgICAgIGNhc2UgJ+abtOaUueWbvuaghyc6XFxcXG4gICAgICAgICAgICBkLnVybCA9ICQodi5pY29uIHx8ICcnLCAn6L6T5YWl5paw5Zu+5qCH5Zyw5Z2A5oiW6aKc6Imy5Luj56CB77yaJykuaW5wdXQoKGkpID0+IHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgcnVsZXMgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJylcXFxcbiAgICAgICAgICAgICAgICBpZiAoaW5wdXQpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJ1bGVzW2ldLmljb24gPSBpbnB1dFxcXFxuICAgICAgICAgICAgICAgIGVsc2VcXFxcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHJ1bGVzW2ldLmljb25cXFxcbiAgICAgICAgICAgICAgICBzYXZlRmlsZSgnY3VzdG9tRGF0YScsIEpTT04uc3RyaW5naWZ5KHJ1bGVzKSlcXFxcbiAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSlcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gJ2hpa2VyOi8vZW1wdHknXFxcXG4gICAgICAgICAgICB9LCBpKVxcXFxuICAgICAgICAgICAgYnJlYWtcXFxcbiAgICAgICAgY2FzZSAn5a+85YWl5rW36ZiUJzpcXFxcbiAgICAgICAgICAgIGQudXJsID0gJ3J1bGU6Ly8nICsgYmFzZTY0RW5jb2RlKEpTT04uc3RyaW5naWZ5KGRhdGFbaV0pKVxcXFxuICAgICAgICAgICAgYnJlYWtcXFxcbiAgICB9XFxcXG4gICAgZWwucHVzaChkKVxcXFxufSlcXFxcbnNldFJlc3VsdChlbClcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLpobXpnaLovb3lhaVcXFwiLFxcXCJwYXRoXFxcIjpcXFwiZnJhbWVMb2FkXFxcIixcXFwicnVsZVxcXCI6XFxcImpzOlxcXFxuY29uc3QgUUlOR19USVRMRSA9IGdldE15VmFyKCdteUNvbGxlY3Rpb24nKVxcXFxubGV0IG15Q29sbGVjdGlvbl9lbCA9IFtdLFxcXFxuICAgIHsgUlVMRSwgaXNJbmRleCwgcGFnZVRpdGxlIH0gPSBNWV9QQVJBTVMsXFxcXG4gICAgdGhpc1JVTEUgPSAkLnJlcXVpcmUoJ2hpa2VyOi8vcGFnZS9kYXRhTG9hZD9ydWxlPScgKyBRSU5HX1RJVExFKSgpLmZpbmQoKHYpID0+IHYudGl0bGUgPT0gUlVMRS50aXRsZSlcXFxcbmlmIChpc0luZGV4KSB7XFxcXG4gICAgUlVMRSA9IHRoaXNSVUxFXFxcXG59IGVsc2Uge1xcXFxuICAgIFJVTEUucGFnZXMgPSB0aGlzUlVMRS5wYWdlc1xcXFxufVxcXFxuZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvcHJlRnVuYz9ydWxlPScgKyBRSU5HX1RJVExFKSkucnVsZSlcXFxcbmV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3VybFBhcnNlP3J1bGU9JyArIFFJTkdfVElUTEUpKS5ydWxlKVxcXFxuXFxcXG5pZiAoaXNJbmRleCkge1xcXFxuICAgIGlmIChNWV9QQUdFID09IDEpIHtcXFxcbiAgICAgICAgLy8g5Yqg6L29Q2xhc3NUYWLnu4Tku7ZcXFxcbiAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvQ2xhc3NUYWI/cnVsZT0nICsgUUlOR19USVRMRSkpLnJ1bGUpXFxcXG4gICAgICAgIHRhYkhlYWRlci5sb2FkKG15Q29sbGVjdGlvbl9lbClcXFxcbiAgICAgICAgaWYgKFJVTEUuc2VhcmNoX3VybCkgbXlDb2xsZWN0aW9uX2VsLnB1c2goe1xcXFxuICAgICAgICAgICAgdGl0bGU6IFxcXFxcXFwi5pCc57SiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBkZXNjOiBcXFxcXFxcIuaQnOS9oOaDs+imgeeahC4uLlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgdXJsOiAnXFxcXFxcXCJoaWtlcjovL3NlYXJjaD9zPVxcXFxcXFwiK2lucHV0JyxcXFxcbiAgICAgICAgICAgIGV4dHJhOiB7XFxcXG4gICAgICAgICAgICAgICAgcnVsZXM6ICQudG9TdHJpbmcoKFFJTkdfVElUTEUsIHRpdGxlKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxldCBydWxlcyA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2RhdGFMb2FkP3J1bGU9JyArIFFJTkdfVElUTEUpKClcXFxcbiAgICAgICAgICAgICAgICAgICAgcnVsZXMgPSBbcnVsZXMuZmluZCgodikgPT4gdi50aXRsZSA9PSB0aXRsZSldXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShydWxlcylcXFxcbiAgICAgICAgICAgICAgICB9LCBRSU5HX1RJVExFLCBSVUxFLnRpdGxlKSxcXFxcbiAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGdldE15VmFyKCdzZWFyY2hLZXknLCAnJyksXFxcXG4gICAgICAgICAgICAgICAgb25DaGFuZ2U6IFxcXFxcXFwicHV0TXlWYXIoJ3NlYXJjaEtleScsaW5wdXQpXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJpbnB1dFxcXFxcXFwiLFxcXFxuICAgICAgICB9KVxcXFxuICAgIH1cXFxcbiAgICAvLyDlpITnkIZNWV9SVUxFXFxcXG4gICAgTVlfUlVMRS51cmwgPSBSVUxFLnVybFxcXFxuICAgIE1ZX1JVTEUuY29sX3R5cGUgPSBSVUxFLmNvbF90eXBlXFxcXG4gICAgTVlfUlVMRS5kZXRhaWxfY29sX3R5cGUgPSBSVUxFLmRldGFpbF9jb2xfdHlwZVxcXFxuICAgIE1ZX1JVTEUuZmluZF9ydWxlID0gUlVMRS5maW5kX3J1bGVcXFxcbiAgICBNWV9SVUxFLmRldGFpbF9maW5kX3J1bGUgPSBSVUxFLmRldGFpbF9maW5kX3J1bGVcXFxcbiAgICBNWV9SVUxFLnBhcmFtcyA9IHt9XFxcXG59IGVsc2Uge1xcXFxuICAgIE1ZX1JVTEUudXJsID0gTVlfUEFSQU1TLnVybFxcXFxuICAgIE1ZX1JVTEUuY29sX3R5cGUgPSBSVUxFLmRldGFpbF9jb2xfdHlwZVxcXFxuICAgIE1ZX1JVTEUuZmluZF9ydWxlID0gUlVMRS5kZXRhaWxfZmluZF9ydWxlXFxcXG4gICAgTVlfUlVMRS5wYXJhbXMgPSBSVUxFLnBhcmFtc1xcXFxufVxcXFxuTVlfUlVMRS5wYWdlcyA9IFJVTEUucGFnZXNcXFxcbk1ZX1JVTEUucGFnZUxpc3QgPSBKU09OLnBhcnNlKE1ZX1JVTEUucGFnZXMgfHwgJ1tdJylcXFxcbk1ZX1JVTEUudGl0bGUgPSBSVUxFLnRpdGxlXFxcXG5cXFxcbmlmICghaXNJbmRleCkge1xcXFxuICAgIGlmIChwYWdlVGl0bGUpIHNldFBhZ2VUaXRsZShwYWdlVGl0bGUpXFxcXG4gICAgc2V0TGFzdENoYXB0ZXJSdWxlKHRoaXNSVUxFLmxhc3RfY2hhcHRlcl9ydWxlKVxcXFxuICAgIE1ZX1BBUkFNUyA9IE1ZX1JVTEUucGFyYW1zXFxcXG59XFxcXG4vLyDpooTlpITnkIblubbliJ3lp4vljJZjb25maWdcXFxcbmlmIChpc0luZGV4ICYmIE1ZX1BBR0UgPT0gMSkgZXZhbCh0aGlzUlVMRS5wcmVSdWxlKVxcXFxubGV0IF9jZmcgPSBnZXRNeVZhcignaW5pdENvbmZpZycsICd7fScpXFxcXG5pZiAoX2NmZyAmJiBfY2ZnLmxlbmd0aCA+IDApIHtcXFxcbiAgICBjb25maWcgPSBKU09OLnBhcnNlKF9jZmcpXFxcXG59XFxcXG5cXFxcbi8vIOato+aWh+ino+aekOmAmueUqOWPmOmHj1xcXFxubGV0IGFzc2lnbkxhenlSdWxlID0gJC50b1N0cmluZygoUUlOR19USVRMRSwgdGl0bGUpID0+IHtcXFxcbiAgICBsZXQgUlVMRSA9ICQucmVxdWlyZShcXFxcXFxcImhpa2VyOi8vcGFnZS9kYXRhTG9hZD9ydWxlPVxcXFxcXFwiICsgUUlOR19USVRMRSkoKS5maW5kKCh2KSA9PiB2LnRpdGxlID09IHRpdGxlKVxcXFxuICAgIHJldHVybiB7IHBhZ2VzOiBSVUxFLnBhZ2VzLCBwYWdlTGlzdDogUlVMRS5wYWdlTGlzdCB9XFxcXG59LCBRSU5HX1RJVExFLCBSVUxFLnRpdGxlKVxcXFxuZnVuY3Rpb24gZ2VuTXlSdWxlKCkge1xcXFxuICAgIGxldCBydWxlID0gT2JqZWN0LmFzc2lnbih7fSwgTVlfUlVMRSlcXFxcbiAgICBkZWxldGUgcnVsZS5sYXN0X2NoYXB0ZXJfcnVsZVxcXFxuICAgIGRlbGV0ZSBydWxlLnByZVJ1bGVcXFxcbiAgICBkZWxldGUgcnVsZS5wYWdlTGlzdFxcXFxuICAgIGRlbGV0ZSBydWxlLnBhZ2VzXFxcXG4gICAgcmV0dXJuIHJ1bGVcXFxcbn1cXFxcbmZ1bmN0aW9uIHJ1bkNvZGUocnVsZSkge1xcXFxuICAgIHRyeSB7XFxcXG4gICAgICAgIGxldCBbaW5wdXQsIGNvZGVdID0gcnVsZS5zcGxpdCgnLmpzOicpXFxcXG4gICAgICAgIHJldHVybiBjb2RlID8gZXZhbChjb2RlKSA6IHJ1bGVcXFxcbiAgICB9IGNhdGNoIChlKSB7IHJldHVybiBydWxlIH1cXFxcbn1cXFxcbmZ1bmN0aW9uIGdlbkV4VXJsKHVybCkge1xcXFxuICAgIHVybCA9IHVybC5zcGxpdCgnOycpXFxcXG4gICAgcmV0dXJuIHVybC5zaGlmdCgpICsgJzsnICsgcGFyYW1IYW5kbGUodXJsLCB0aGlzUlVMRS51YSwgTVlfUlVMRS51cmwpXFxcXG59XFxcXG4vLyDmraPmlofop6PmnpBcXFxcbmlmIChNWV9SVUxFLmZpbmRfcnVsZS5zdGFydHNXaXRoKCdqczonKSkge1xcXFxuICAgIHNldFJlc3VsdCA9IGZ1bmN0aW9uKGVsLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zKSB7XFxcXG4gICAgICAgIHBhcmFtMSA9IENBTExCQUNLX0tFWVxcXFxuICAgICAgICBwYXJhbTIgPSBNWV9SVUxFXFxcXG4gICAgICAgIHBhcmFtMyA9IE1ZX1RZUEVcXFxcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZWwuZGF0YSkpIGVsID0gZWwuZGF0YVxcXFxuICAgICAgICBBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShteUNvbGxlY3Rpb25fZWwsIGVsLm1hcCgodikgPT4ge1xcXFxuICAgICAgICAgICAgbGV0IE1ZX19SVUxFID0gT2JqZWN0LmFzc2lnbihnZW5NeVJ1bGUoKSwgeyBwYXJhbXM6IHYuZXh0cmEgfHwge30gfSlcXFxcbiAgICAgICAgICAgIHYuY29sX3R5cGUgPSB2LmNvbF90eXBlIHx8IE1ZX1JVTEUuY29sX3R5cGVcXFxcblxcXFxuICAgICAgICAgICAgaWYgKCF2LnVybCB8fCBbJ3J1bGUnLCAncGljcycsICd0b2FzdCcsICdpbnB1dCcsICdjb3B5JywgJ2VkaXRGaWxlJywgJ3g1JywgJ3g1V2ViVmlldycsICd4NVBsYXknLCAnd2ViJywgJ3NlbGVjdCcsICd4NVJ1bGUnLCAnd2ViUnVsZScsICdkb3dubG9hZCcsICdzaGFyZSddLmZpbmQoKHZ2KSA9PiB2LnVybC5zdGFydHNXaXRoKHZ2ICsgJzovLycpKSB8fCBbJ3g1X3dlYnZpZXdfc2luZ2xlJywgJ2lucHV0J10uZmluZCgodnYpID0+IHYuY29sX3R5cGUgPT0gdnYpKSB7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZcXFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodi51cmwuaW5jbHVkZXMoJ0BydWxlPScpKSB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IFtfLCB1cmwsIHJ1bGVdID0gdi51cmwubWF0Y2goL14oW1xcXFxcXFxcc1xcXFxcXFxcU10qPylAcnVsZT0oW1xcXFxcXFxcc1xcXFxcXFxcU10qKSQvKVxcXFxuICAgICAgICAgICAgICAgIHYudXJsID0gdXJsXFxcXG4gICAgICAgICAgICAgICAgTVlfX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSA9IHJ1bGVcXFxcbiAgICAgICAgICAgICAgICBNWV9fUlVMRS5kZXRhaWxfY29sX3R5cGUgPSBNWV9SVUxFLmNvbF90eXBlXFxcXG4gICAgICAgICAgICB9IGVsc2UgaWYgKHYudXJsLnN0YXJ0c1dpdGgoJ2hpa2VyOi8vcGFnZS8nKSkge1xcXFxuICAgICAgICAgICAgICAgIGlmICh2LnVybC5pbmNsdWRlcygncnVsZT0nKSB8fCAodi5leHRyYSB8fCB7fSkucnVsZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZcXFxcbiAgICAgICAgICAgICAgICBsZXQgW18sIHBhdGgsIGZsYWcsIHBhcmFtc10gPSB2LnVybC5tYXRjaCgvXmhpa2VyOlxcXFxcXFxcL1xcXFxcXFxcL3BhZ2VcXFxcXFxcXC8oLis/KSgjLio/KT8oPzpcXFxcXFxcXD8oLiopKT8kLyksXFxcXG4gICAgICAgICAgICAgICAgICAgIHN1YlBhZ2UgPSBNWV9SVUxFLnBhZ2VMaXN0LmZpbmQoKHYpID0+IHYucGF0aCA9PSBwYXRoKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgc3ViVXJsID0gKHBhcmFtcyB8fCAnJykuc3BsaXQoJyYnKS5maW5kKCh2KSA9PiB2LnN0YXJ0c1dpdGgoJ3VybD0nKSlcXFxcbiAgICAgICAgICAgICAgICB2LnVybCA9IHN1YlVybCA/IHN1YlVybC5zbGljZSg0KS5yZXBsYWNlKC/vvJ/vvJ8vZywgJz8nKS5yZXBsYWNlKC/vvIbvvIYvZywgJyYnKSA6ICh2LmV4dHJhIHx8IHt9KS51cmwgfHwgJ2hpa2VyOi8vZW1wdHknICsgZmxhZyArICc/JyArIChwYXJhbXMgfHwgJycpXFxcXG4gICAgICAgICAgICAgICAgTVlfX1JVTEUuZGV0YWlsX2ZpbmRfcnVsZSA9IHN1YlBhZ2UucnVsZVxcXFxuICAgICAgICAgICAgICAgIE1ZX19SVUxFLmRldGFpbF9jb2xfdHlwZSA9IHN1YlBhZ2UuY29sX3R5cGVcXFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodi51cmwuaW5jbHVkZXMoJ0BsYXp5UnVsZT0nKSkge1xcXFxuICAgICAgICAgICAgICAgIGxldCByZUluZGV4ID0gdi51cmwuaW5kZXhPZignLmpzOicpXFxcXG4gICAgICAgICAgICAgICAgaWYgKHJlSW5kZXggPj0gMCkgdi51cmwgPSB2LnVybC5zbGljZSgwLCByZUluZGV4KSArICcuanM6XFxcXFxcXFxuaWYoTVlfUlVMRSlPYmplY3QuYXNzaWduKE1ZX1JVTEUsICcgKyBhc3NpZ25MYXp5UnVsZSArICcpOycgKyB2LnVybC5zbGljZShyZUluZGV4ICsgNClcXFxcbiAgICAgICAgICAgICAgICByZXR1cm4gdlxcXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChpc0luZGV4KSB7XFxcXG4gICAgICAgICAgICAgICAgaWYgKCFNWV9SVUxFLmRldGFpbF9maW5kX3J1bGUgfHwgL2hpa2VyOlxcXFxcXFxcL1xcXFxcXFxcLyg/IWVtcHR5LiskKS8udGVzdCh2LnVybCkpIHJldHVybiB2XFxcXG4gICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiB2XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB2LmV4dHJhID0ge1xcXFxuICAgICAgICAgICAgICAgIHVybDogZ2VuRXhVcmwodi51cmwpLFxcXFxuICAgICAgICAgICAgICAgIFJVTEU6IE1ZX19SVUxFLFxcXFxuICAgICAgICAgICAgICAgIHBhZ2VUaXRsZTogaXNJbmRleCAmJiB2LnRpdGxlXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB2LnVybCA9ICdoaWtlcjovL3BhZ2UvZnJhbWVMb2FkP3J1bGU9JyArIFFJTkdfVElUTEVcXFxcbiAgICAgICAgICAgIHJldHVybiB2XFxcXG4gICAgICAgIH0pKVxcXFxuICAgICAgICBtZXRob2Rfc2V0UmVzdWx0Lmludm9rZShqYXZhQ29udGV4dCwgbXlDb2xsZWN0aW9uX2VsLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zKVxcXFxuICAgIH1cXFxcbiAgICBzZXRIb21lUmVzdWx0ID0gc2V0UmVzdWx0XFxcXG4gICAgc2V0U2VhcmNoUmVzdWx0ID0gc2V0UmVzdWx0XFxcXG5cXFxcbiAgICBldmFsKE1ZX1JVTEUuZmluZF9ydWxlLnNsaWNlKDMpKVxcXFxufSBlbHNlIHtcXFxcbiAgICBsZXQgW18sIGZpbmRSdWxlLCBkZXRhaWxGaW5kUnVsZV0gPSBNWV9SVUxFLmZpbmRfcnVsZS5tYXRjaCgvXihbXFxcXFxcXFxzXFxcXFxcXFxTXSo/KSg/Oj09PihbXFxcXFxcXFxzXFxcXFxcXFxTXSopKT8kLylcXFxcbiAgICBmaW5kUnVsZSA9IGZpbmRSdWxlLnNwbGl0KCc7JylcXFxcbiAgICBwYXJzZURvbUZvckFycmF5KGdldFJlc0NvZGUoKSwgZmluZFJ1bGUuc2hpZnQoKSkuZm9yRWFjaCgoZGF0YSkgPT4ge1xcXFxuICAgICAgICBsZXQgW3RpdGxlLCBpbWcsIGRlc2MsIHVybF0gPSBmaW5kUnVsZS5tYXAoKHYsIGkpID0+IHtcXFxcbiAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAodiA9PSAnKicpIHJldHVybiAnJ1xcXFxuICAgICAgICAgICAgICAgICAgICBlbHNlIHYgPSAoaSA9PSAxIHx8IGkgPT0gMykgP1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VEb20oZGF0YSwgdikgOlxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VEb21Gb3JIdG1sKGRhdGEsIHYpXFxcXG4gICAgICAgICAgICAgICAgICAgIGlmIChpICE9IDMpIHYgPSBydW5Db2RlKHYpXFxcXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2XFxcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkgeyByZXR1cm4gJycgfVxcXFxuICAgICAgICAgICAgfSksXFxcXG4gICAgICAgICAgICByZXMgPSB7XFxcXG4gICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLCB1cmw6IHVybCxcXFxcbiAgICAgICAgICAgICAgICBkZXNjOiBkZXNjLCBpbWc6IGltZyxcXFxcbiAgICAgICAgICAgICAgICBjb2xfdHlwZTogTVlfUlVMRS5jb2xfdHlwZVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICBpZiAocmVzLnVybCkge1xcXFxuICAgICAgICAgICAgaWYgKHJlcy51cmwuaW5jbHVkZXMoJ0BsYXp5UnVsZT0nKSkge1xcXFxuICAgICAgICAgICAgICAgIGxldCByZUluZGV4ID0gcmVzLnVybC5pbmRleE9mKCcuanM6JylcXFxcbiAgICAgICAgICAgICAgICBpZiAocmVJbmRleCA+PSAwKSByZXMudXJsID0gcmVzLnVybC5zbGljZSgwLCByZUluZGV4KSArICcuanM6XFxcXFxcXFxuaWYoTVlfUlVMRSlPYmplY3QuYXNzaWduKE1ZX1JVTEUsICcgKyBhc3NpZ25MYXp5UnVsZSArICcpOycgKyByZXMudXJsLnNsaWNlKHJlSW5kZXggKyA0KVxcXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChkZXRhaWxGaW5kUnVsZSkge1xcXFxuICAgICAgICAgICAgICAgIHJlcy5leHRyYSA9IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBnZW5FeFVybCh1cmwpLFxcXFxuICAgICAgICAgICAgICAgICAgICBSVUxFOiBPYmplY3QuYXNzaWduKGdlbk15UnVsZSgpLCB7IGRldGFpbF9maW5kX3J1bGU6IGRldGFpbEZpbmRSdWxlIH0pLFxcXFxuICAgICAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IGlzSW5kZXggJiYgdGl0bGVcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgcmVzLnVybCA9ICdoaWtlcjovL3BhZ2UvZnJhbWVMb2FkP3J1bGU9JyArIFFJTkdfVElUTEVcXFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoTVlfUlVMRS5kZXRhaWxfZmluZF9ydWxlKSB7XFxcXG4gICAgICAgICAgICAgICAgcmVzLmV4dHJhID0ge1xcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IGdlbkV4VXJsKHVybCksXFxcXG4gICAgICAgICAgICAgICAgICAgIFJVTEU6IGdlbk15UnVsZSgpLFxcXFxuICAgICAgICAgICAgICAgICAgICBwYWdlVGl0bGU6IGlzSW5kZXggJiYgdGl0bGVcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgcmVzLnVybCA9ICdoaWtlcjovL3BhZ2UvZnJhbWVMb2FkP3J1bGU9JyArIFFJTkdfVElUTEVcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgfVxcXFxuICAgICAgICBteUNvbGxlY3Rpb25fZWwucHVzaChyZXMpXFxcXG4gICAgfSlcXFxcbiAgICBzZXRSZXN1bHQobXlDb2xsZWN0aW9uX2VsKVxcXFxufVxcXFxuXFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5pWw5o2u6L295YWlXFxcIixcXFwicGF0aFxcXCI6XFxcImRhdGFMb2FkXFxcIixcXFwicnVsZVxcXCI6XFxcIiQuZXhwb3J0cyA9IGZ1bmN0aW9uKHNob3dBbGwpIHtcXFxcbiAgICBsZXQgdXJsID0gZ2V0TXlWYXIoJ3JlbW90ZVVybCcpLFxcXFxuICAgICAgICBpbnRlcnZhbCA9IHBhcnNlSW50KHJlYWRGaWxlKCd1cGRhdGVJbnRlcnZhbCcpIHx8ICcxJyksXFxcXG4gICAgICAgIHRpbWUgPSBwYXJzZUludChyZWFkRmlsZSgndXBkYXRlVGltZScpKSB8fCAwLFxcXFxuICAgICAgICBub3cgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSxcXFxcbiAgICAgICAgZGF0YSA9IFtdO1xcXFxuICAgIGlmICh0aW1lID09IDAgfHwgaW50ZXJ2YWwgPiAwICYmIG5vdyAtIHRpbWUgPiAxMDAwICogNjAgKiA2MCAqIDI0ICogaW50ZXJ2YWwpIHtcXFxcbiAgICAgICAgLy8g6I635Y+W6L+c56iL5pWw5o2uXFxcXG4gICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICBkYXRhID0gJC5yZXF1aXJlKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL2NyZWF0b3JcXFxcXFxcIik7XFxcXG4gICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgICAgIGlmKGRhdGEubGVuZ3RoID09IDApIHtcXFxcbiAgICAgICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL2xpYnMvJyArIG1kNSh1cmwpICsgJy5qcycpIHx8ICdbXScpXFxcXG4gICAgICAgICAgICBsb2coJ+ayoeacieiOt+WPluWIsOabtOaWsOaVsOaNricpXFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICB3cml0ZUZpbGUoJ2hpa2VyOi8vZmlsZXMvbGlicy8nICsgbWQ1KHVybCkgKyAnLmpzJywgSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xcXFxuICAgICAgICAgICAgc2F2ZUZpbGUoJ3VwZGF0ZVRpbWUnLCBub3cudG9TdHJpbmcoKSlcXFxcbiAgICAgICAgICAgIGxvZygn5pu05paw5pWw5o2u5bey5YaZ5YWl5pys5ZywJylcXFxcbiAgICAgICAgfVxcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIGRhdGEgPSBKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL2ZpbGVzL2xpYnMvJyArIG1kNSh1cmwpICsgJy5qcycpIHx8ICdbXScpXFxcXG4gICAgfVxcXFxuICAgIFxcXFxuICAgIC8vZGF0YSA9IGRhdGEuZmlsdGVyKCh2KSA9PiB7IHJldHVybiB2LnRpdGxlICE9IGdldE15VmFyKCdteUNvbGxlY3Rpb24nKSAmJiAhKHYuYXV0aG9yIHx8ICcnKS5pbmNsdWRlcygn6L275ZCI6ZuG55Sf5oiQ5ZmoJykgfSlcXFxcbiAgICAgICAgaWYgKHJlYWRGaWxlKCdkaXNhYmxlQ3VzdG9tJykpIHJldHVybiBkYXRhXFxcXG4gICAgICAgIGVsc2UgeyAvLyDlhpnlhaXoh6rlrprkuYnmlbDmja5cXFxcbiAgICAgICAgbGV0IGN1c3RvbURhdGEgPSBKU09OLnBhcnNlKHJlYWRGaWxlKCdjdXN0b21EYXRhJykgfHwgJ1tdJyksXFxcXG4gICAgICAgICAgICByZXdyaXRlRGF0YSA9IFtdXFxcXG4gICAgICAgIGN1c3RvbURhdGEgPSBjdXN0b21EYXRhLnJlZHVjZSgoc2VsZiwgdikgPT4ge1xcXFxuICAgICAgICAgICAgbGV0IGluZGV4ID0gZGF0YS5maW5kSW5kZXgoKHZ2KSA9PiB2LnRpdGxlID09IHZ2LnRpdGxlKVxcXFxuICAgICAgICAgICAgaWYgKGluZGV4ID49IDApIHtcXFxcbiAgICAgICAgICAgICAgICBzZWxmLnB1c2godilcXFxcbiAgICAgICAgICAgICAgICBsZXQgcnVsZSA9IGRhdGEuc3BsaWNlKGluZGV4LCAxKVswXVxcXFxuICAgICAgICAgICAgICAgIGlmIChzaG93QWxsIHx8IHYudmlzaWJsZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV3cml0ZURhdGEucHVzaChPYmplY3QuYXNzaWduKHJ1bGUsIHYpKVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgcmV0dXJuIHNlbGZcXFxcbiAgICAgICAgfSwgW10pXFxcXG4gICAgICAgIGRhdGEuZm9yRWFjaCgodikgPT4gY3VzdG9tRGF0YS5wdXNoKHsgdGl0bGU6IHYudGl0bGUsIHZpc2libGU6IHRydWUgfSkpXFxcXG4gICAgICAgIHNhdmVGaWxlKCdjdXN0b21EYXRhJywgSlNPTi5zdHJpbmdpZnkoY3VzdG9tRGF0YSkpXFxcXG4gICAgICAgIHJldHVybiByZXdyaXRlRGF0YS5jb25jYXQoZGF0YSlcXFxcbiAgICB9XFxcXG59XFxcXG5cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLlh73mlbDph43lhplcXFwiLFxcXCJwYXRoXFxcIjpcXFwicHJlRnVuY1xcXCIsXFxcInJ1bGVcXFwiOlxcXCIvLyDpmLLmraJyZXF1aXJl5aSa5qyh6L+Q6KGMXFxcXG5sZXQgckNhY2hlID0ge31cXFxcbnJlcXVpcmUgPSBmdW5jdGlvbihwYXJhbTAsIHBhcmFtMSwgcGFyYW0yLCBwYXJhbTMsIHBhcmFtNCkge1xcXFxuICAgIGlmICghcGFyYW0wIHx8IHJDYWNoZVtwYXJhbTBdICE9IG51bGwpIHtcXFxcbiAgICAgICAgcmV0dXJuXFxcXG4gICAgfVxcXFxuICAgIHJDYWNoZVtwYXJhbTBdID0gMVxcXFxuICAgIHBhcmFtMiA9IHBhcmFtMiB8fCAwXFxcXG4gICAgcGFyYW0zID0gTVlfVElDS0VUXFxcXG4gICAgcGFyYW00ID0gZXZhbFxcXFxuICAgIHJldHVybiBtZXRob2RfcmVxdWlyZS5pbnZva2UoamF2YUNvbnRleHQsIHBhcmFtMCwgcGFyYW0xLCBwYXJhbTIsIHBhcmFtMywgcGFyYW00KVxcXFxufVxcXFxucmVxdWlyZUNhY2hlID0gZnVuY3Rpb24ocGFyYW0wLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zLCBwYXJhbTQsIHBhcmFtNSkge1xcXFxuICAgIGlmICghcGFyYW0wIHx8IHJDYWNoZVtwYXJhbTBdICE9IG51bGwpIHtcXFxcbiAgICAgICAgcmV0dXJuXFxcXG4gICAgfVxcXFxuICAgIHJDYWNoZVtwYXJhbTBdID0gMVxcXFxuICAgIHBhcmFtMyA9IHBhcmFtMyB8fCAwXFxcXG4gICAgcGFyYW00ID0gTVlfVElDS0VUXFxcXG4gICAgcGFyYW01ID0gZXZhbFxcXFxuICAgIHJldHVybiBtZXRob2RfcmVxdWlyZUNhY2hlLmludm9rZShqYXZhQ29udGV4dCwgcGFyYW0wLCBwYXJhbTEsIHBhcmFtMiwgcGFyYW0zLCBwYXJhbTQsIHBhcmFtNSlcXFxcbn1cXFxcbnJjID0gcmVxdWlyZUNhY2hlXFxcXG5cXFxcbi8vIOacgOaWsOeroOiKguinhOWImeazqOWFpemihOWkhOeQhuS7o+eggVxcXFxuc2V0TGFzdENoYXB0ZXJSdWxlID0gZnVuY3Rpb24ocGFyYW0wKSB7XFxcXG4gICAgaWYgKCFwYXJhbTApIHJldHVyblxcXFxuICAgIGlmIChwYXJhbTAuc3RhcnRzV2l0aChcXFxcXFxcImpzOlxcXFxcXFwiKSAmJiB0aGlzUlVMRS5wcmVSdWxlKSB7XFxcXG4gICAgICAgIHBhcmFtMCA9ICdqczpcXFxcXFxcXG50cnl7ZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL3ByZUZ1bmM/cnVsZT0nICsgUUlOR19USVRMRSArICdcXFxcXFxcIikpLnJ1bGUpO1xcXFxcXFxcXFxcXG4gICAgICAgICAgICBldmFsKGJhc2U2NERlY29kZShcXFxcXFxcIicgKyBiYXNlNjRFbmNvZGUodGhpc1JVTEUucHJlUnVsZSkgKyAnXFxcXFxcXCIpKTtcXFxcXFxcXFxcXFxuICAgICAgICAgICAgbGV0IF9jZmcgPSBnZXRNeVZhcihcXFxcXFxcImluaXRDb25maWdcXFxcXFxcIiwgXFxcXFxcXCJ7fVxcXFxcXFwiKTtcXFxcXFxcXFxcXFxuICAgICAgICAgICAgaWYgKF9jZmcgJiYgX2NmZy5sZW5ndGg+MCkge2NvbmZpZyA9IEpTT04ucGFyc2UoX2NmZyl9fWNhdGNoKGUpe2xvZyhlLm1lc3NhZ2UpfVxcXFxcXFxcbjsnICtcXFxcbiAgICAgICAgICAgIHBhcmFtMC5zbGljZSgzKVxcXFxuICAgIH1cXFxcbiAgICBtZXRob2Rfc2V0TGFzdENoYXB0ZXJSdWxlLmludm9rZShqYXZhQ29udGV4dCwgcGFyYW0wKTtcXFxcbn1cXFxcblxcXCJ9LHtcXFwiY29sX3R5cGVcXFwiOlxcXCJtb3ZpZV8zXFxcIixcXFwibmFtZVxcXCI6XFxcIumTvuaOpeWkhOeQhlxcXCIsXFxcInBhdGhcXFwiOlxcXCJ1cmxQYXJzZVxcXCIsXFxcInJ1bGVcXFwiOlxcXCIvLyDpppbpobXpk77mjqXmm7/mjaLliIbnsbtcXFxcbmZ1bmN0aW9uIGluZGV4VXJsKHBhcmFtKSB7XFxcXG4gICAgZnVuY3Rpb24gcnVuQ29kZShydWxlKSB7XFxcXG4gICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICBsZXQgW2lucHV0LCBjb2RlXSA9IHJ1bGUuc3BsaXQoJy5qczonKVxcXFxuICAgICAgICAgICAgcmV0dXJuIGNvZGUgPyBldmFsKGNvZGUpIDogcnVsZVxcXFxuICAgICAgICB9IGNhdGNoIChlKSB7IHJldHVybiBydWxlIH1cXFxcbiAgICB9XFxcXG4gICAgbGV0IHsgUlVMRSwgcGFnZU51bSwgUUlOR19USVRMRSB9ID0gSlNPTi5wYXJzZShwYXJhbS5zcGxpdCgnIyMjJylbMV0pXFxcXG4gICAgUlVMRSA9IEpTT04ucGFyc2UoYmFzZTY0RGVjb2RlKFJVTEUpKVxcXFxuICAgIHBhZ2VOdW0gPSBwYXJzZUludChwYWdlTnVtKVxcXFxuICAgIGxldCB1cmwgPSBSVUxFLnVybFxcXFxuXFxcXG4gICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvQ2xhc3NUYWI/cnVsZT0nICsgUUlOR19USVRMRSkpLnJ1bGUpXFxcXG4gICAgdXJsID0gdGFiSGVhZGVyLnNldFVybChmeUFsbCA/IHVybC5yZXBsYWNlKC9meUFsbC9nLCAnJCR7ZnlBbGx9JykgOiB1cmwucmVwbGFjZSgvZnkoY2xhc3N8YXJlYXx5ZWFyfHNvcnQpL2csICckJHtmeSQxfScpKVxcXFxuICAgIHVybCA9IHVybC5yZXBsYWNlKC9meXBhZ2UoPzpAKC0/XFxcXFxcXFxkKylAKT8oPzpcXFxcXFxcXCooXFxcXFxcXFxkKylAKT8vZywgKF8sIHN0YXJ0LCBzcGFjZSkgPT4gcGFyc2VJbnQoc3RhcnQgfHwgMCkgKyAxICsgKHBhZ2VOdW0gLSAxKSAqIHBhcnNlSW50KHNwYWNlIHx8IDEpKVxcXFxuICAgIHVybCA9IC9eKFtcXFxcXFxcXHNcXFxcXFxcXFNdKj8pKD86XFxcXFxcXFxbZmlyc3RQYWdlPShbXFxcXFxcXFxzXFxcXFxcXFxTXSo/KVxcXFxcXFxcXSk/KD86KFxcXFxcXFxcLmpzOltcXFxcXFxcXHNcXFxcXFxcXFNdKj8pKT8kLy5leGVjKHVybClcXFxcbiAgICBpZiAocGFnZU51bSA9PSAxICYmIHVybFsyXSkgdXJsWzFdID0gdXJsWzJdXFxcXG4gICAgaWYgKHVybFszXSAmJiAhdXJsWzFdLmluY2x1ZGVzKCcuanM6JykpIHVybFsxXSArPSB1cmxbM11cXFxcbiAgICByZXR1cm4gcnVuQ29kZSh1cmxbMV0pXFxcXG59XFxcXG4vLyDpk77mjqXlj4LmlbDlpITnkIZcXFxcbmZ1bmN0aW9uIHBhcmFtSGFuZGxlKHVybFBhcmFtLCB1YSwgdXJsVG1wKSB7XFxcXG4gICAgbGV0IGNoYXJzZXQsIFVzZXJBZ2VudFxcXFxuICAgIHRyeSB7IC8vIOmTvuaOpeeahOe8lueggeWSjHVh5bqU6K+l5piv6aaW5YWI57un5om/6aaW6aG16ZO+5o6lXFxcXG4gICAgICAgIFssICwgY2hhcnNldCwgVXNlckFnZW50XSA9IHVybFRtcC5zcGxpdCgnOycpXFxcXG4gICAgICAgIFVzZXJBZ2VudCA9IFVzZXJBZ2VudC5tYXRjaCgvXnsoLiopfSQvKVsxXS5zcGxpdCgnJiYnKS5maW5kKCh2KSA9PiB2LnN0YXJ0c1dpdGgoJ1VzZXItQWdlbnRAJykpXFxcXG4gICAgfSBjYXRjaCAoZSkge31cXFxcbiAgICB1cmxQYXJhbVswXSA9IHVybFBhcmFtWzBdIHx8ICdHRVQnXFxcXG4gICAgdXJsUGFyYW1bMV0gPSB1cmxQYXJhbVsxXSB8fCBjaGFyc2V0IHx8ICdVVEYtOCdcXFxcbiAgICB0cnkge1xcXFxuICAgICAgICB1cmxQYXJhbVsyXSA9IHVybFBhcmFtWzJdLm1hdGNoKC9eeyguKil9JC8pWzFdLnNwbGl0KCcmJicpXFxcXG4gICAgfSBjYXRjaCAoZSkgeyB1cmxQYXJhbVsyXSA9IFtdIH1cXFxcbiAgICAvLyDmt7vliqDlhajlsYBVQVxcXFxuICAgIGlmICghdXJsUGFyYW1bMl0uc29tZSgodikgPT4gdi5zdGFydHNXaXRoKCdVc2VyLUFnZW50QCcpKSkge1xcXFxuICAgICAgICBpZiAoVXNlckFnZW50KSB1cmxQYXJhbVsyXS5wdXNoKFVzZXJBZ2VudClcXFxcbiAgICAgICAgZWxzZSBpZiAodWEgPT0gJ3BjJylcXFxcbiAgICAgICAgICAgIHVybFBhcmFtWzJdLnB1c2goJ1VzZXItQWdlbnRAJyArIFBDX1VBLnJlcGxhY2UoLzsvZywgJ++8m++8mycpLnJlcGxhY2UoL1xcXFxcXFxcPy8sICfvvJ/vvJ8nKSlcXFxcbiAgICAgICAgZWxzZSBpZiAodWEgPT0gJ21vYmlsZScpXFxcXG4gICAgICAgICAgICB1cmxQYXJhbVsyXS5wdXNoKCdVc2VyLUFnZW50QCcgKyBNT0JJTEVfVUEucmVwbGFjZSgvOy9nLCAn77yb77ybJykucmVwbGFjZSgvXFxcXFxcXFw/LywgJ++8n++8nycpKVxcXFxuICAgIH1cXFxcbiAgICB1cmxQYXJhbVsyXSA9ICd7JyArIHVybFBhcmFtWzJdLmpvaW4oJyYmJykgKyAnfSdcXFxcbiAgICByZXR1cm4gdXJsUGFyYW0uam9pbignOycpXFxcXG59XFxcXG5cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLnlJ/miJDop4TliJnpm4ZcXFwiLFxcXCJwYXRoXFxcIjpcXFwiY3JlYXRvclxcXCIsXFxcInJ1bGVcXFwiOlxcXCJsZXQgYXBwanNvbiA9ICQucmVxdWlyZSgnaGlrZXI6Ly9wYWdlL2FwcEpzb24nKTtcXFxcblxcXFxuZnVuY3Rpb24gcmFuZG9tU29ydDMoYXJyKSB7XFxcXG4gICAgLyphcnIuc29ydChmdW5jdGlvbigpIHtcXFxcbiAgICAgICAgcmV0dXJuIE1hdGgucmFuZG9tKCkgLSAwLjU7XFxcXG4gICAgfSk7Ki9cXFxcbiAgICByZXR1cm4gYXJyO1xcXFxufVxcXFxuXFxcXG5sZXQgYXBwY29udHMgPSBhcHBqc29uLmRhdGEsXFxcXG4gICAgcnVsZXMgPSBbXSxcXFxcbiAgICB0eXBlcyA9IHsgXFxcXFxcXCJcXFxcXFxcIjogXFxcXFxcXCLlhajpg6hcXFxcXFxcIiB9O1xcXFxuZm9yIChsZXQgaSA9IDA7IGkgPCBhcHBjb250cy5sZW5ndGg7IGkrKykge1xcXFxuICAgIGxldCBhcHBsaXN0ID0gcmFuZG9tU29ydDMoYXBwY29udHNbaV0ubGlzdCksXFxcXG4gICAgICAgIGFwcHR5cGUgPSBhcHBjb250c1tpXS50aXRsZSAvKiArIGFwcGxpc3QubGVuZ3RoKi8gO1xcXFxuICAgIHR5cGVzW2FwcHR5cGVdID0gYXBwdHlwZTtcXFxcbiAgICBpZiAoYXBwdHlwZS5pbmNsdWRlcyhcXFxcXFxcIuS4quS6uuaUtumbhlxcXFxcXFwiKSkgY29udGludWU7XFxcXG4gICAgZm9yIChsZXQgaiA9IDA7IGogPCBhcHBsaXN0Lmxlbmd0aDsgaisrKSB7XFxcXG4gICAgICAgIGxldCBhcHB0aXRsZSA9IGFwcGxpc3Rbal0udGl0bGUsXFxcXG4gICAgICAgICAgICBhcHBpY29uID0gYXBwbGlzdFtqXS5pbWcsXFxcXG4gICAgICAgICAgICBhcHBVcmwgPSBhcHBsaXN0W2pdLnVybCxcXFxcbiAgICAgICAgICAgIGhvbWVfdXJsID0gXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIGZpbmRfcnVsZSA9IFxcXFxcXFwiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBzZWFyY2hfdXJsID0gXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIHNlYXJjaEZpbmQgPSBcXFxcXFxcIlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgcGFnZXMgPSBbXSxcXFxcbiAgICAgICAgICAgIGxhc3RfY2hhcHRlcl9ydWxlID0gXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIGFwcFVhID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICAgICAgLy/lpITnkIbph43lkI3nmoRcXFxcbiAgICAgICAgbGV0IG51bSA9IDEsXFxcXG4gICAgICAgICAgICB0ZW1wID0gYXBwdGl0bGU7XFxcXG4gICAgICAgIHdoaWxlIChydWxlcy5zb21lKGN1ciA9PiBjdXIudGl0bGUgPT0gYXBwdGl0bGUpKSB7XFxcXG4gICAgICAgICAgICBudW0gPSBudW0gKyAxO1xcXFxuICAgICAgICAgICAgYXBwdGl0bGUgPSB0ZW1wICsgbnVtO1xcXFxuICAgICAgICB9XFxcXG4gICAgICAgIC8v6KeE5YiZ6ZO+5o6l5ZKM5pCc57Si6ZO+5o6lXFxcXG4gICAgICAgIGlmICgv56We6amsfFRWLy50ZXN0KGFwcHR5cGUpKSB7XFxcXG4gICAgICAgICAgICBob21lX3VybCA9IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcXFxcXCIgKyBhcHBVcmwgKyBcXFxcXFxcIj9hYz1saXN0JnBhZ2U9ZnlwYWdlXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICBpZiAoLzE5anh8MjkzeXN8emhhaWthbnlzfGppXFxcXFxcXFwtZGluZ1xcXFxcXFxcLWhlfHBob2ViZXx5dW5ib1xcXFxcXFxcLmJ4aW58bGFucmVudGt8aGV0YW95c3xweHVufDEzOVxcXFxcXFxcLjE1NXxma2tkeXwwNTYxNTh8YWl4aXhpfHJ1b3hpbmV3fGZlaWZhbjEyM3xzaXFpdHYvLnRlc3QoYXBwVXJsKSkge1xcXFxuICAgICAgICAgICAgICAgIHNlYXJjaF91cmwgPSBcXFxcXFxcImhpa2VyOi8vZW1wdHkjI1xcXFxcXFwiICsgYXBwVXJsICsgJz9hYz1saXN0JnBhZ2U9ZnlwYWdlJnptPSoqJztcXFxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgc2VhcmNoX3VybCA9IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcXFxcXCIgKyBhcHBVcmwgKyAnP2FjPWxpc3QmcGFnZT1meXBhZ2Umd2Q9KionO1xcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcyhcXFxcXFxcImFwaS5waHAvYXBwXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgaG9tZV91cmwgPSBcXFxcXFxcImhpa2VyOi8vZW1wdHkjI1xcXFxcXFwiICsgYXBwVXJsICsgXFxcXFxcXCJpbmRleF92aWRlbz90b2tlbj1cXFxcXFxcIjtcXFxcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwieGdhcHBcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgICAgICAgICBob21lX3VybCA9IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcXFxcXCIgKyBhcHBVcmwgKyBcXFxcXFxcImluZGV4X3ZpZGVvP3Rva2VuPVxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICBob21lX3VybCA9IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcXFxcXCIgKyBhcHBVcmwgKyBcXFxcXFxcIi92b2RQaGJBbGxcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcygnYXBpLnBocC9hcHAnKSkge1xcXFxuICAgICAgICAgICAgICAgIHNlYXJjaF91cmwgPSBcXFxcXFxcImhpa2VyOi8vZW1wdHkjI1xcXFxcXFwiICsgYXBwVXJsICsgJ3NlYXJjaD9wZz1meXBhZ2UmdG9rZW49JnRleHQ9KionO1xcXFxuICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoJ3hnYXBwJykpIHtcXFxcbiAgICAgICAgICAgICAgICBzZWFyY2hfdXJsID0gXFxcXFxcXCJoaWtlcjovL2VtcHR5IyNcXFxcXFxcIiArIGFwcFVybCArICdzZWFyY2g/cGc9ZnlwYWdlJnRleHQ9KionO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICBpZiAoL2lvcGVueXVuLy50ZXN0KGFwcFVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX3VybCA9IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eSMjXFxcXFxcXCIgKyBhcHBVcmwgKyAnL2xpc3Q/cGFnZT1meXBhZ2UmbGltaXQ9MTAmd2Q9KionO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHNlYXJjaF91cmwgPSBcXFxcXFxcImhpa2VyOi8vZW1wdHkjI1xcXFxcXFwiICsgYXBwVXJsICsgJz9wYWdlPWZ5cGFnZSZsaW1pdD0xMCZ3ZD0qKic7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgfVxcXFxuICAgICAgICB9XFxcXG4gICAgICAgIC8v6ZyA6KaB54m55q6K5aSE55CG55qE6ZO+5o6lXFxcXG4gICAgICAgIGZ1bmN0aW9uIGNoYW5nZVVybCh1cmwpIHtcXFxcbiAgICAgICAgICAgIGxldCBuZXdVcmwgPSB1cmw7XFxcXG4gICAgICAgICAgICBpZiAodXJsLmluY2x1ZGVzKFxcXFxcXFwib21vZnVuXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgbmV3VXJsID0gdXJsICsgXFxcXFxcXCImY3NyZj1hJTJCSUtHTHVuSkNadWFkJTJCeEVUTHJadUJvcWhsdUZDRDBkSDg2RThJRU52QnpNZkJMYTZkQjhSem94eEl2dkJFTWVKekpuVVN0NTFGaGxQQmQ0S3I1eWhHWGx5TnZEa0p5Tk1EZ0RaMWIlMkZzalhBZU10ajE3WHRlTThwdVRZMlBRblF3WU95aiUyRkhVQ0FWUlprcmZsc2s4N1lHMVZlU3duRVQ4VHByREQ4dDZ1ZyUzREBzaWduYXR1cmU9RkVENEEwOTJENUJCQkUxODExN0EzQjU1OEVCNjQ2MUE5MkE1MkNGN1xcXFxcXFwiO1xcXFxuICAgICAgICAgICAgfSBlbHNlIGlmICh1cmwuaW5jbHVkZXMoXFxcXFxcXCJ4aW5sdWFuXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgbmV3VXJsID0gdXJsICsgXFxcXFxcXCImY3NyZj1TUkVRQVBYOHRGRUtwVjJkTERqTFpoS2s4SXhKZkRXaE4lMkJta3NXSiUyRmtkUlZ3Z1VoJTJGUWtURFpFb1FBU2FBcDdIelVpeDg3VCUyQlBMa0FJdzZ5SCUyQjZNcnZhcUpNOXJKNWwyYjg1SVFSYkJiVyUyQkRiU1lSTzhibVRzS2RMWURUVnRSSGh6NW55bFJXbEdVaWR4SGZWeUxPOXRaVWlCazFZMkF3byUyRnpzYTJ0SDJ1OCUzREBzaWduYXR1cmU9RkJDNzA4OEM2NzdEMjk3RTZCQkJDODU4NEE5MzM3MkRERTEwRkQ5NlxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgfSBlbHNlIGlmICh1cmwuaW5jbHVkZXMoXFxcXFxcXCJzeGJyZFxcXFxcXFwiKSkge1xcXFxuICAgICAgICAgICAgICAgIG5ld1VybCA9IHVybCArIFxcXFxcXFwiJmNzcmY9cjJOREx0cFM4RXVxaCUyRiUyRjhZOTZ5Y09VT0tTOUlDek5ZenlhdzVDMlVmRWdvREZESFglMkZycWolMkJZY0xXUXpINSUyQlI2bW9VT2x3T0FvSlJFdFVhMzc2dWQ3NDYyN1VEek5RMXNSR2RURDhrYjM2czFlVE1lbWNuOGQwaTdXSjZrOWloNUlQNEFkN2ZwYTYlMkYzRHN0MWpvR25jeXI3MTZkUkhETWZjdnJzM1MyOWpJJTNEQGNsaWVudF9uYW1lPTU1V0Y1NXlMNWIyeDZLZUdcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIHJldHVybiBuZXdVcmw7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgLy/or7fmsYJVQVxcXFxuICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwiYXBpLnBocC9hcHBcXFxcXFxcIikgfHwgYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwieGdhcHBcXFxcXFxcIikgfHwgYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwiZnJlZWthblxcXFxcXFwiKSkge1xcXFxuICAgICAgICAgICAgYXBwVWEgPSBcXFxcXFxcIkRhcnQvMi4xNCAoZGFydDppbylcXFxcXFxcIjtcXFxcbiAgICAgICAgfSBlbHNlIGlmICgvenNifGZreHN8eGF5c3x4Y3lzfHN6eXN8ZHh5c3x5dHlzfHFueXMvLnRlc3QoYXBwVXJsKSkge1xcXFxuICAgICAgICAgICAgYXBwVWEgPSBcXFxcXFxcIkRhcnQvMi4xNSAoZGFydDppbylcXFxcXFxcIjtcXFxcbiAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoXFxcXFxcXCIudm9kXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICBhcHBVYSA9IFxcXFxcXFwib2todHRwLzQuMS4wXFxcXFxcXCI7XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICBhcHBVYSA9IFxcXFxcXFwiRGFsdmlrLzIuMS4wXFxcXFxcXCI7IC8vVFZcXFxcbiAgICAgICAgfVxcXFxuICAgICAgICAvL+mmlumhteinhOWImeOAgeWIhuexu+inhOWImeOAgeS6jOe6p+inhOWImeWSjOinhumikeino+aekFxcXFxuICAgICAgICBpZiAoL+elnumprHxUVi8udGVzdChhcHB0eXBlKSkge1xcXFxuICAgICAgICAgICAgZmluZF9ydWxlID0gXFxcXFxcXCJqczpcXFxcXFxcIiArICQudG9TdHJpbmcoZnVuY3Rpb24oYXBwVXJsLCBhcHBVYSkge1xcXFxuICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIGlmIChNWV9QQUdFID09IDEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBlSnNvbiA9IEpTT04ucGFyc2UoZmV0Y2goYXBwVXJsICsgXFxcXFxcXCI/YWM9ZmxpdHRlclxcXFxcXFwiKSwgeyBoZWFkZXJzOiB7IFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBhcHBVYSB9IH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQga2V5IGluIHR5cGVKc29uKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBrZXksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcImZsZXhfYnV0dG9uXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJChcXFxcXFxcImhpa2VyOi8vZW1wdHkjI1xcXFxcXFwiICsgYXBwVXJsICsgXFxcXFxcXCI/YWM9bGlzdCZwYWdlPWZ5cGFnZSZjbGFzcz1cXFxcXFxcIiArIGtleSkucnVsZSgodHlwZUpzb24sIGFwcFVhKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihcXFxcXFxcIm9uQ2xvc2VcXFxcXFxcIiwgXFxcXFxcXCJjbGVhclZhcignZmlsdGVyJylcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaXRlbXMgPSBbXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzID0ge30sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlrZXlzID0gW10sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyID0ge30sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBcXFxcXFxcIiNGQTcyOThcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4IGluIHR5cGVKc29uKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVKc29uW2luZGV4XS52YWx1ZXMubGVuZ3RoID09IDEpIGNvbnRpbnVlO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBrZXkgPSB0eXBlSnNvbltpbmRleF0uZmllbGQsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlck5hbWUgPSBcXFxcXFxcIuWFqOmDqFxcXFxcXFwiICsgdHlwZUpzb25baW5kZXhdLm5hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlrZXlzLnB1c2goa2V5KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlzW1xcXFxcXFwiZlxcXFxcXFwiICsga2V5XSA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyW1xcXFxcXFwiZlxcXFxcXFwiICsga2V5XSA9IFtmaWx0ZXJOYW1lXS5jb25jYXQodHlwZUpzb25baW5kZXhdLnZhbHVlcyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWdldFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFwiKSkgeyBwdXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIiwgSlNPTi5zdHJpbmdpZnkoa2V5cykpIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0ZW1wID0gSlNPTi5wYXJzZShnZXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKE1ZX1BBR0UgPT0gMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gaW4gZmlsdGVyKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBmaWx0ZXJbaXRlbV0ubGVuZ3RoOyBpbmRleCsrKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGVtcFtpdGVtXSA9PSBcXFxcXFxcIlxcXFxcXFwiID8gKGluZGV4ID09PSAwID8gXFxcXFxcXCLigJzigJzigJ3igJ1cXFxcXFxcIiArIGZpbHRlcltpdGVtXVswXS5ib2xkKCkuZm9udGNvbG9yKGNvbG9yKSA6IGZpbHRlcltpdGVtXVtpbmRleF0pIDogKHRlbXBbaXRlbV0gPT0gZmlsdGVyW2l0ZW1dW2luZGV4XSA/IFxcXFxcXFwi4oCc4oCc4oCd4oCdXFxcXFxcXCIgKyBmaWx0ZXJbaXRlbV1baW5kZXhdLmJvbGQoKS5mb250Y29sb3IoY29sb3IpIDogZmlsdGVyW2l0ZW1dW2luZGV4XSksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6IFxcXFxcXFwic2Nyb2xsX2J1dHRvblxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJCgpLmxhenlSdWxlKChkZXMsIG5hbWUpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXBbbmFtZV0gPSBkZXMuaW5kZXhPZihcXFxcXFxcIuWFqOmDqFxcXFxcXFwiKSAhPSAtMSA/IFxcXFxcXFwiXFxcXFxcXCIgOiBkZXM7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiLCBKU09OLnN0cmluZ2lmeSh0ZW1wKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgZmlsdGVyW2l0ZW1dW2luZGV4XSwgaXRlbSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7IGNvbF90eXBlOiBcXFxcXFxcImJsYW5rX2Jsb2NrXFxcXFxcXCIgfSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gTVlfVVJMLnNwbGl0KFxcXFxcXFwiIyNcXFxcXFxcIilbMV0gKyBcXFxcXFxcIiZcXFxcXFxcIiArIHR5a2V5cy5tYXAoY3VyID0+IGN1ciArIFxcXFxcXFwiPWZcXFxcXFxcIiArIGN1cikuam9pbihcXFxcXFxcIiZcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIGluIHRlbXApIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmwucmVwbGFjZShpdGVtLCB0ZW1wW2l0ZW1dKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByZXNjb2RlID0gZmV0Y2godXJsLCB7IGhlYWRlcnM6IHsgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IGFwcFVhIH0gfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzY29kZS5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2NvZGUgPSBmZXRjaCh1cmwgKyAnJmJ0d2FmJyArIHJlc2NvZGUubWF0Y2goL2J0d2FmKC4qPylcXFxcXFxcXFxcXFxcXFwiLylbMV0sIHsgaGVhZGVyczogeyBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogYXBwVWEgfSB9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBodG1sID0gSlNPTi5wYXJzZShyZXNjb2RlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvdHZsaXN0ZGF0YScpKS5ydWxlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcXFxcXCLop4bpopHliJfooajlh7rplJk6XFxcXFxcXCIgKyBlLm1lc3NhZ2UpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KGl0ZW1zKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgdHlwZUpzb25ba2V5XSwgYXBwVWEpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9nKFxcXFxcXFwi6aaW6aG15YiG57G75Ye66ZSZOlxcXFxcXFwiICsgZS5tZXNzYWdlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gTVlfVVJMLnNwbGl0KCcjIycpWzFdLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCA9IEpTT04ucGFyc2UoZmV0Y2godXJsKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL3R2bGlzdGRhdGEnKSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsb2coXFxcXFxcXCLpppbpobXmjqjojZDlh7rplJk6XFxcXFxcXCIgKyBlLm1lc3NhZ2UpO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICBzZXRSZXN1bHQoaXRlbXMpO1xcXFxuICAgICAgICAgICAgfSwgYXBwVXJsLCBhcHBVYSlcXFxcbiAgICAgICAgICAgIGxldCBydWxlX3R2bGlzdGRhdGEgPSAkLnRvU3RyaW5nKGZ1bmN0aW9uKCkge1xcXFxuICAgICAgICAgICAgICAgIGxldCBsaXN0ID0gaHRtbC5kYXRhO1xcXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgeyB0aXRsZSwgcGljLCBuZXh0bGluaywgc3RhdGUgfSA9IGxpc3RbaV07XFxcXG4gICAgICAgICAgICAgICAgICAgIGxldCB1cmwgPSBuZXh0bGluay5zdGFydHNXaXRoKCdodHRwJykgPyBuZXh0bGluayA6IGFwcFVybCArICc/YWM9ZGV0YWlsJmlkcz0nICsgbmV4dGxpbms7XFxcXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgcGljX3VybDogcGljICsgJ0BSZWZlcmVyPScsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiBzdGF0ZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfM19tYXJxdWVlJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJChcXFxcXFxcIiNpbW1lcnNpdmVUaGVtZSNoaWtlcjovL2VtcHR5IyNcXFxcXFxcIiArIHVybCkucnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvdHZtb3ZsaXN0JykpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKFxcXFxcXFwi5b2x54mH6K+m5oOF5Ye66ZSZOlxcXFxcXFwiICsgZS5tZXNzYWdlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KFtdKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgIGxldCBydWxlX3R2bW92bGlzdCA9ICQudG9TdHJpbmcoZnVuY3Rpb24oYXBwVXJsLCBhcHBVYSkge1xcXFxuICAgICAgICAgICAgICAgIGFkZExpc3RlbmVyKFxcXFxcXFwib25DbG9zZVxcXFxcXFwiLCAkLnRvU3RyaW5nKCh1cmwpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJWYXIoJ25vdycpO1xcXFxuICAgICAgICAgICAgICAgICAgICBjbGVhclZhcih1cmwpO1xcXFxuICAgICAgICAgICAgICAgIH0sIE1ZX1VSTCkpO1xcXFxuICAgICAgICAgICAgICAgIGxldCBpdGVtcyA9IFtdLFxcXFxuICAgICAgICAgICAgICAgICAgICBodG1sID0gZ2V0VmFyKE1ZX1VSTCwgXFxcXFxcXCJcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgLy9kb21pbiA9IE1ZX1VSTC5zcGxpdChcXFxcXFxcIiMjXFxcXFxcXCIpWzFdLm1hdGNoKC8oW1xcXFxcXFxcU10qPzpcXFxcXFxcXC9cXFxcXFxcXC9bXFxcXFxcXFxTXSo/KVxcXFxcXFxcLy8pWzFdO1xcXFxuICAgICAgICAgICAgICAgIGlmIChodG1sID09IFxcXFxcXFwiXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGZldGNoKE1ZX1VSTC5zcGxpdChcXFxcXFxcIiMjXFxcXFxcXCIpWzFdLCB7IGhlYWRlcnM6IHsgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IGFwcFVhIH0gfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9VUkwsIGh0bWwpO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICBodG1sID0gSlNPTi5wYXJzZShodG1sKTtcXFxcblxcXFxuICAgICAgICAgICAgICAgIC8v566A5LuLXFxcXG4gICAgICAgICAgICAgICAgbGV0IHsgdGl0bGUsIHB1YnRpbWUsIHRydW5rLCBhcmVhLCB0eXBlLCBkaXJlY3RvciwgYWN0b3IsIGltZ191cmwsIGludHJvIH0gPSBodG1sO1xcXFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUgKyBcXFxcXFxcIihcXFxcXFxcIiArIHB1YnRpbWUgKyBcXFxcXFxcIilcXFxcXFxcIiArIFxcXFxcXFwiXFxcXFxcXFxuXFxcXFxcXCIgKyBhcmVhLmpvaW4oXFxcXFxcXCIvXFxcXFxcXCIpICsgXFxcXFxcXCIvXFxcXFxcXCIgKyB0eXBlLmpvaW4oXFxcXFxcXCIvXFxcXFxcXCIpICsgXFxcXFxcXCIvXFxcXFxcXCIgKyB0cnVuayxcXFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogXFxcXFxcXCLlr7zmvJQ6XFxcXFxcXCIgKyBkaXJlY3Rvci5qb2luKFxcXFxcXFwiLFxcXFxcXFwiKSArIFxcXFxcXFwiXFxcXFxcXFxuXFxcXFxcXCIgKyBcXFxcXFxcIuS4u+a8lDpcXFxcXFxcIiArIGFjdG9yLmpvaW4oXFxcXFxcXCIsXFxcXFxcXCIpLFxcXFxuICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiBpbWdfdXJsLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzFfdmVydGljYWxfcGljX2JsdXInXFxcXG4gICAgICAgICAgICAgICAgfSwge1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+WJp+aDheeugOS7izonLFxcXFxuICAgICAgICAgICAgICAgICAgICBkZXNjOiBpbnRybyxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiAkKCdoaWtlcjovL2VtcHR5I25vUmVjb3JkSGlzdG9yeSMnKS5ydWxlKChkZXNjKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoW3tcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZGVzYyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ2xvbmdfdGV4dCdcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1dKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgaW50cm8pLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMSdcXFxcbiAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICAvL+aWreaPklxcXFxuICAgICAgICAgICAgICAgIGxldCBkbmVuID0gZ2V0TXlWYXIoXFxcXFxcXCJkbmVuXFxcXFxcXCIsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6ICfmlq3mj5I6JyArIChkbmVuID09ICcxJyA/ICfigJzigJzinIXigJ3igJ0nIDogJ+KdjicpLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJycpLmxhenlSdWxlKChkbmVuKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZG5lbiA9PSAnMScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFxcXFxcImRuZW5cXFxcXFxcIiwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey56aB55So5pat5o+S6LCD55SoISc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dE15VmFyKFxcXFxcXFwiZG5lblxcXFxcXFwiLCBcXFxcXFxcIjFcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAndG9hc3Q6Ly/lt7LlvIDlkK/mlq3mj5LosIPnlKghJ1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICB9LCBkbmVuKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzInXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn57q/6Lev6YWN572uJyxcXFxcbiAgICAgICAgICAgICAgICAgICAgdXJsOiBcXFxcXFxcImhpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5I0BydWxlPWpzOnRoaXMuZD1bXTtyZXF1aXJlKCdodHRwczovL2dpdGVhLmNvbS9BSTk1Ny9IaWtlci9yYXcvbS92L1JvdXRlLmpzJyk7Um91dGUuc2V0UGFyc2UoKTtzZXRSZXN1bHQoZCk7XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIC8vdXJsOlxcXFxcXFwiaGlrZXI6Ly9wYWdlL1JvdXRlP3J1bGU9TXlGaWVsZOG0sOKBvyZ0eXBlPeiuvue9riNub1JlY29yZEhpc3RvcnkjXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcXFxuICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgIC8v57q/6Lev5YiX6KGoXFxcXG4gICAgICAgICAgICAgICAgbGV0IHRhYnMgPSBPYmplY3Qua2V5cyhodG1sLnZpZGVvbGlzdCk7XFxcXG4gICAgICAgICAgICAgICAgaWYgKGdldFZhcihcXFxcXFxcIm5vd1xcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFwiKSA9PSBcXFxcXFxcIlxcXFxcXFwiKSB7IHB1dFZhcihcXFxcXFxcIm5vd1xcXFxcXFwiLCB0YWJzWzBdKSB9XFxcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuKAnOKAnOKGk+KGkeKAneKAnVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0VmFyKCdhcHBtdHZzb3J0JywgZ2V0VmFyKCdhcHBtdHZzb3J0JywnMScpPT0nMSc/JzAnOicxJyk7cmVmcmVzaFBhZ2UoZmFsc2UpOyd0b2FzdDovL+WIh+aNouaIkOWKnyEnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXFxcbiAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpIGluIHRhYnMpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogZ2V0VmFyKFxcXFxcXFwibm93XFxcXFxcXCIpID09IHRhYnNbaV0gPyBcXFxcXFxcIuKAnOKAnOKAneKAnVxcXFxcXFwiICsgdGFic1tpXS5ib2xkKCkuZm9udGNvbG9yKFxcXFxcXFwiI0ZBNzI5OFxcXFxcXFwiKSA6IHRhYnNbaV0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB1cmw6IFxcXFxcXFwiaGlrZXI6Ly9lbXB0eUBsYXp5UnVsZT0uanM6cHV0VmFyKCdub3cnLCdcXFxcXFxcIiArIHRhYnNbaV0gKyBcXFxcXFxcIicpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip8hJ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdzY3JvbGxfYnV0dG9uJ1xcXFxuICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAvL+inhumikeWIl+ihqFxcXFxuICAgICAgICAgICAgICAgIGxldCBwdGFiID0gZ2V0VmFyKFxcXFxcXFwibm93XFxcXFxcXCIpLFxcXFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC52aWRlb2xpc3RbcHRhYl07XFxcXG4gICAgICAgICAgICAgICAgbG9nKCflvZPliY3nur/ot686JyArIHB0YWIpO1xcXFxuICAgICAgICAgICAgICAgIGlmIChnZXRWYXIoJ2FwcG10dnNvcnQnLCAnMScpID09ICcwJykge1xcXFxuICAgICAgICAgICAgICAgICAgICBsaXN0LnJldmVyc2UoKTtcXFxcbiAgICAgICAgICAgICAgICB9O1xcXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbGlzdC5sZW5ndGg7IGorKykge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgc3JjdXJsID0gbGlzdFtqXS51cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvMjkzangxLy50ZXN0KHNyY3VybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNyY3VybCA9IHNyY3VybC5yZXBsYWNlKCcyOTNqeDEnLCAnangnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvOGQ4cXxkaWxpa3R2fGhhb2thbmp1MXxjenR2fGZpdFxcXFxcXFxcOjh8cHB6aHUvLnRlc3QoYXBwVXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgc3JjdXJsID0gc3JjdXJsICsgJyZhcHA9MTAwMDAmYWNjb3VudD0yNzI3NzUwMjgmcGFzc3dvcmQ9cXEyNzI3NzUwMjgnO1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIGxldCB0aXRsZSA9IGxpc3Rbal0udGl0bGU7XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vdGl0bGUgPSB0aXRsZS5tYXRjaCgvKOesrHxcXFxcXFxcXGR8LSkqKOmbhnzor5185pyfKS9nKSA/IHRpdGxlLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJykgOiB0aXRsZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0XzRcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL2xhenlQYXJzZVxcXFxcXFwiKSkucnVsZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIHNldFJlc3VsdChpdGVtcyk7XFxcXG4gICAgICAgICAgICB9LCBhcHBVcmwsIGFwcFVhKTtcXFxcbiAgICAgICAgICAgIGxldCBsYXp5UGFyc2UgPSAkLnRvU3RyaW5nKCgpID0+IHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgdmxpbmsgPSBzcmN1cmw7XFxcXG4gICAgICAgICAgICAgICAgaWYgKC8odXJsfHZpZHx2KVxcXFxcXFxcPS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHZsaW5rID0gc3JjdXJsLnN1YnN0cmluZyhzcmN1cmwuc2VhcmNoKC8odXJsfHZpZHx2KVxcXFxcXFxcPS8pKS5zcGxpdCgnPScpWzFdLnNwbGl0KCcmJylbMF07XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIGxldCBlbkRuID0gZ2V0TXlWYXIoXFxcXFxcXCJkbmVuXFxcXFxcXCIsIFxcXFxcXFwiMFxcXFxcXFwiKSxcXFxcbiAgICAgICAgICAgICAgICAgICAgdGVzdDEgPSB2bGluay5zZWFyY2goL3lvdWt1fG1ndHZ8aXhpZ3VhfHFxLmNvbXxxaXlpfG1pZ3V8YmlsaWJpbGl8c29odXxwcHR2fGxlfDE5MDUuY29tLykgIT0gLTEsXFxcXG4gICAgICAgICAgICAgICAgICAgIHRlc3QyID0gdmxpbmsuc2VhcmNoKC9MVFxcXFxcXFxcLXxSb25nWGluZ1ZSXFxcXFxcXFwtfHJlbnJlbm1pXFxcXFxcXFwtfHhmeVxcXFxcXFxcLXxzdW95b1xcXFxcXFxcLmNjfGZlblxcXFxcXFxcLmxhb2RpfHJ1aWZlbmdsYnx4dWVyZW5cXFxcXFxcXC0vKSAhPSAtMTtcXFxcbiAgICAgICAgICAgICAgICBpZiAoKHRlc3QxIHx8IHRlc3QyKSAmJiBlbkRuID09ICcxJykge1xcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJCgnaGlrZXI6Ly9lbXB0eScpLmxhenlSdWxlKCh2bGluaykgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbG9nKFxcXFxcXFwi6LCD55So5pat5o+S6Kej5p6QLOinhumikemTvuaOpTpcXFxcXFxcIiArIHZsaW5rKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoXFxcXFxcXCJsZXQgY29uZmlnID1cXFxcXFxcIiArIGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9maWxlcy9jYWNoZS9NeVBhcnNlU2V0Lmpzb25cXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChmZXRjaChjb25maWcuY2opKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBheXRtUGFyc2UodmxpbmspO1xcXFxuICAgICAgICAgICAgICAgICAgICB9LCB2bGluaylcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJChcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIikubGF6eVJ1bGUoKHB0YWIsIHNyY3VybCwgYXBwVXJsKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcXFxcXCLkvb/nlKjpu5jorqTop6PmnpAs6KeG6aKR6ZO+5o6lOlxcXFxcXFwiICsgc3JjdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v5Yqo5oCB6Kej5p6Q5Luj56CB5byA5aeLXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGFuZ2VWaWRlb1VybCh1cmwpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+aUueWPmOeJueWumuWcsOWdgOeahFJlZmVyZXJcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodXJsLmluY2x1ZGVzKFxcXFxcXFwid2tmaWxlXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybCArICc7e1JlZmVyZXJAaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwdGFiID09ICdiaWxpYmlsaScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsICsgJzt7UmVmZXJlckBodHRwczovL3d3dy5iaWxpYmlsaS5jb20vJiZVc2VyLUFnZW50QE1vemlsbGEvNS4wfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwdGFiID09ICdtZ3R2Jykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmwgKyAnO3tSZWZlcmVyQHd3dy5tZ3R2LmNvbSYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodXJsLmluY2x1ZGVzKFxcXFxcXFwib2pia1xcXFxcXFwiKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vYmFrLm9qYmtqeC5jb20vfSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v6L+U5Zue6KeG6aKR6ZO+5o6lXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF1cmwuaW5jbHVkZXMoXFxcXFxcXCJodHRwXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcXFxcXFxcIumTvuaOpeS4jeaYr+S7pWh0dHDlvIDlpLQo5Y+v6IO95Yqg5a+G5LqGKVxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1xcXFxcXFxcLm0zdTgvLnRlc3QodXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhY2hlTTN1OCh1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHVybCArICcjaXNWaWRlbz10cnVlIyc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgvXFxcXFxcXFwubTN1OHxcXFxcXFxcXC5tcDR8b2JqXFxcXFxcXFwvdG9zfG5ldGVhc2VcXFxcXFxcXC5jb20vLnRlc3Qoc3JjdXJsKSAmJiAvaHR0cC8udGVzdChzcmN1cmwpICYmICEvXFxcXFxcXFwuaHRtbC8udGVzdChzcmN1cmwpICYmICEvKHVybHx2fHZpZClcXFxcXFxcXD0vLnRlc3Qoc3JjdXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIS9mZW5cXFxcXFxcXC5sYW9kaXxydWlmZW5nbGJ8c3VveW9cXFxcXFxcXC5jYy8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcXFxcXCLmo4DmtYvliLDotYTmupDlnLDlnYDlj6/og73mmK/op4bpopHpk77mjqVcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hhbmdlVmlkZW9Vcmwoc3JjdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLy0tLS3liIblibLnur8tLS0tLy9cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2NvZGUgPSBKU09OLnBhcnNlKGZldGNoKHNyY3VybCwge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogTU9CSUxFX1VBXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZGlyZWN0OiBmYWxzZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2l0aFN0YXR1c0NvZGU6IHRydWVcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/ov5Tlm57ph43lrprlkJHnmoTpk77mjqUgXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb2RlLnN0YXR1c0NvZGUgPT0gJzMwMicgfHwgc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAxJykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVkdXJsID0gc2NvZGUuaGVhZGVycy5sb2NhdGlvblswXS5yZXBsYWNlKC9cXFxcXFxcXFxcXFxcXFxcL2csICcnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCfph43lrprlkJE6JyArIHJlZHVybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghLyh1cmx8dmlkfHYpXFxcXFxcXFw9Ly50ZXN0KHJlZHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChyZWR1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qZWxzZSBpZiAoL1xcXFxcXFxcPWh0dHAvLnRlc3QocmVkdXJsKSAmJiAvXFxcXFxcXFwubTN1OHxcXFxcXFxcXC5tcDR8XFxcXFxcXFwuZmx2Ly50ZXN0KHJlZHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1cmwgPSByZWR1cmwuc3Vic3RyaW5nKHJlZHVybC5pbmRleE9mKCc9aHR0cCcpICsgMSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0qL1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29kZS5ib2R5ID0gZmV0Y2gocmVkdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/lvIDlp4vll4XmjqJcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IHNjb2RlLmJvZHk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC80MDQgTm90IEZvdW5kfOWkh+ahiOWQjuWPr+e7p+e7reiuv+mXri8udGVzdChodG1sKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcXFxcXCI0MDTkuoZcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXFxcXFw8Ym9keS8udGVzdChodG1sKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJChbXFxcXFxcXCLlvIDlp4vop4bpopHll4XmjqJcXFxcXFxcIiwgXFxcXFxcXCLmiZPlvIDop6PmnpDnvZHpobVcXFxcXFxcIiwgXFxcXFxcXCLkvb/nlKjlhoXnva7op6PmnpBcXFxcXFxcIl0sIDEsIFxcXFxcXFwi5qOA5rWL5Yiw6Kej5p6Q5Li6572R6aG15pWw5o2uXFxcXFxcXCIpLnNlbGVjdCgocHRhYiwgc3JjdXJsLCBhcHBVcmwpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbnB1dCA9PSBcXFxcXFxcIuW8gOWni+inhumikeWXheaOolxcXFxcXFwiKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZUNhY2hlKCdodHRwczovL2NvZGUuYWxpeXVuLmNvbS9semsyMzU1OS9QdWJsaWNSdWxlL3Jhdy9tYXN0ZXIveDVydWxlLmpzJywgMjQpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4NXJ1bGUoc3JjdXJsLCBzcmN1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChpbnB1dCA9PSBcXFxcXFxcIuaJk+W8gOino+aekOe9kemhtVxcXFxcXFwiKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFxcXFxcXFwid2ViOi8vXFxcXFxcXCIgKyBzcmN1cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0ID09IFxcXFxcXFwi5L2/55So5YaF572u6Kej5p6QXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmxpbmsgPSBzcmN1cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC8odXJsfHZpZHx2KVxcXFxcXFxcPS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZsaW5rID0gc3JjdXJsLnN1YnN0cmluZyhzcmN1cmwuc2VhcmNoKC8odXJsfHZpZHx2KVxcXFxcXFxcPS8pKS5zcGxpdCgnPScpWzFdLnNwbGl0KCcmJylbMF07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFxcXFxcIuS9v+eUqOWGhee9ruino+aekCzop4bpopHpk77mjqU6XFxcXFxcXCIgKyB2bGluayk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd0xvYWRpbmcoXFxcXFxcXCLmraPlnKjov5vooYzop6PmnpAuLi5cXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFxcXFxcImhpa2VyOi8vcGFnZS9teVBhcnNlXFxcXFxcXCIpKS5ydWxlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgcHRhYiwgc3JjdXJsLCBhcHBVcmwpXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9sb2coJ+WwneivleS7jmpzb27mlbDmja7ojrflj5YnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwdXJsID0gSlNPTi5wYXJzZShodG1sKS51cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gY2hhbmdlVmlkZW9VcmwocHVybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qbGV0IHB1cmwgPSBodG1sLm1hdGNoKC9bXFxcXFxcXFwnXFxcXFxcXFxcXFxcXFxcIl11cmxbXFxcXFxcXFwnXFxcXFxcXFxcXFxcXFxcIl06Lio/W1xcXFxcXFxcJ1xcXFxcXFxcXFxcXFxcXCJdKC4qPylbXFxcXFxcXFwnXFxcXFxcXFxcXFxcXFxcIl0vKVsxXS5yZXBsYWNlKC9cXFxcXFxcXFxcXFxcXFxcL2csICcnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChwdXJsKTsqL1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCfop6PmnpDlj6/og73liqDlr4bkuoYnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coJ+acquiDveaIkOWKn+iOt+WPluinhumikeWcsOWdgDonICsgZS5tZXNzYWdlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmxpbmsgPSBzcmN1cmw7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC8odXJsfHZpZHx2KVxcXFxcXFxcPS8udGVzdChzcmN1cmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZsaW5rID0gc3JjdXJsLnN1YnN0cmluZyhzcmN1cmwuc2VhcmNoKC8odXJsfHZpZHx2KVxcXFxcXFxcPS8pKS5zcGxpdCgnPScpWzFdLnNwbGl0KCcmJylbMF07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFxcXFxcIuWwneivleS9v+eUqOWGhee9ruino+aekCzop4bpopHpk77mjqU6XFxcXFxcXCIgKyB2bGluayk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2YWwoSlNPTi5wYXJzZShmZXRjaChcXFxcXFxcImhpa2VyOi8vcGFnZS9teVBhcnNlXFxcXFxcXCIpKS5ydWxlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v5Yqo5oCB6Kej5p6Q5Luj56CB57uT5p2fXFxcXG4gICAgICAgICAgICAgICAgICAgIH0sIHB0YWIsIHNyY3VybCwgYXBwVXJsKTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgIHBhZ2VzLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgIG5hbWU6IFxcXFxcXFwiVFbliJfooahcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBwYXRoOiBcXFxcXFxcInR2bGlzdGRhdGFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX3R2bGlzdGRhdGFcXFxcbiAgICAgICAgICAgIH0sIHtcXFxcbiAgICAgICAgICAgICAgICBuYW1lOiBcXFxcXFxcIlRW6YCJ6ZuGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcXFxcXCJ0dm1vdmxpc3RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX3R2bW92bGlzdFxcXFxuICAgICAgICAgICAgfSwge1xcXFxuICAgICAgICAgICAgICAgIG5hbWU6IFxcXFxcXFwi6KeG6aKR6Kej5p6QXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcXFxcXCJsYXp5UGFyc2VcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBydWxlOiBsYXp5UGFyc2VcXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgZmluZF9ydWxlID0gXFxcXFxcXCJqczpcXFxcXFxcIiArICQudG9TdHJpbmcoZnVuY3Rpb24oY2hhbmdlVXJsLCBhcHBVcmwsIGFwcFVhKSB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IGl0ZW1zID0gW107XFxcXG4gICAgICAgICAgICAgICAgLy/ojrflj5bliIbnsbvlhoXlrrlcXFxcbiAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgdHlwZUpzb24gPSBbXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcyhcXFxcXFxcImFwaS5waHAvYXBwXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHlwZVVybCA9IGNoYW5nZVVybChhcHBVcmwgKyBcXFxcXFxcIm5hdj90b2tlbj1cXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHlwY29kZSA9IHJlcXVlc3QodHlwZVVybCwgeyBoZWFkZXJzOiB7IFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBhcHBVYSB9IH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGNvZGUuaW5kZXhPZign5qOA5rWL5LitJykgIT0gLTEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBjb2RlID0gZmV0Y2godHlwZVVybCArICcmYnR3YWYnICsgdHlwY29kZS5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXSwgeyBoZWFkZXJzOiB7IFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBhcHBVYSB9IH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZUpzb24gPSBKU09OLnBhcnNlKHR5cGNvZGUpLmxpc3Q7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwieGdhcHBcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBlVXJsID0gY2hhbmdlVXJsKGFwcFVybCArIFxcXFxcXFwibmF2P3Rva2VuPVxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBjb2RlID0gcmVxdWVzdCh0eXBlVXJsLCB7IGhlYWRlcnM6IHsgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IGFwcFVhIH0gfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwY29kZS5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGNvZGUgPSBmZXRjaCh0eXBlVXJsICsgJyZidHdhZicgKyB0eXBjb2RlLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdLCB7IGhlYWRlcnM6IHsgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IGFwcFVhIH0gfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlSnNvbiA9IEpTT04ucGFyc2UodHlwY29kZSkuZGF0YTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoXFxcXFxcXCIudm9kXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHlwZVVybCA9IGNoYW5nZVVybChhcHBVcmwgKyBcXFxcXFxcIi90eXBlc1xcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0eXBjb2RlID0gcmVxdWVzdCh0eXBlVXJsLCB7IGhlYWRlcnM6IHsgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IGFwcFVhIH0gfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwY29kZS5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGNvZGUgPSBmZXRjaCh0eXBlVXJsICsgJz9idHdhZicgKyB0eXBjb2RlLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdLCB7IGhlYWRlcnM6IHsgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IGFwcFVhIH0gfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlSnNvbiA9IEpTT04ucGFyc2UodHlwY29kZSkuZGF0YS5saXN0O1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIC8v6I635Y+W5YiG57G75YiX6KGoXFxcXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHlwZUpzb24ubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8v5YiG57G76KeG6aKR5Zyw5Z2AXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgdHl1cmwgPSBcXFxcXFxcIlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVBcnJheSA9IE9iamVjdC5rZXlzKHR5cGVKc29uW2ldLnR5cGVfZXh0ZW5kKS5maWx0ZXIoY3VyID0+IFtcXFxcXFxcImNsYXNzXFxcXFxcXCIsIFxcXFxcXFwiYXJlYVxcXFxcXFwiLCBcXFxcXFxcImxhbmdcXFxcXFxcIiwgXFxcXFxcXCJ5ZWFyXFxcXFxcXCJdLmluY2x1ZGVzKGN1cikpLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVVcmwgPSB0eXBlQXJyYXkubWFwKGN1ciA9PiBjdXIgKyBcXFxcXFxcIj1mXFxcXFxcXCIgKyBjdXIpLmpvaW4oXFxcXFxcXCImXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcygnYXBpLnBocC9hcHAnKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gYXBwVXJsICsgJ3ZpZGVvP3RpZD0nICsgdHlwZUpzb25baV0udHlwZV9pZCArICcmcGFnZT1meXBhZ2UmdG9rZW49JicgKyB0eXBlVXJsO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoJ3hnYXBwJykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXVybCA9IGFwcFVybCArICd2aWRlbz90aWQ9JyArIHR5cGVKc29uW2ldLnR5cGVfaWQgKyAnJnBhZ2U9ZnlwYWdlJicgKyB0eXBlVXJsO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoXFxcXFxcXCIudm9kXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdChhcHBVcmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gYXBwVXJsICsgJy9saXN0P3R5cGU9JyArIHR5cGVKc29uW2ldLnR5cGVfaWQgKyAnJnBhZ2U9ZnlwYWdlJmJ5PWZieSZsaW1pdD05JicgKyB0eXBlVXJsO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5dXJsID0gYXBwVXJsICsgJz90eXBlPScgKyB0eXBlSnNvbltpXS50eXBlX2lkICsgJyZwYWdlPWZ5cGFnZSZieT1mYnkmbGltaXQ9OSYnICsgdHlwZVVybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL+aehOW7uuWKqOaAgeWIhuexu1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHR5cGVKc29uW2ldLnR5cGVfbmFtZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoXFxcXFxcXCJoaWtlcjovL2VtcHR5IyNcXFxcXFxcIiArIHR5dXJsKS5ydWxlKChhcHBVcmwsIHR5cGVfZXh0ZW5kLCBjaGFuZ2VVcmwsIGFwcFVhKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZExpc3RlbmVyKFxcXFxcXFwib25DbG9zZVxcXFxcXFwiLCBcXFxcXFxcImNsZWFyVmFyKCdmaWx0ZXInKVxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW1zID0gW107XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChNWV9QQUdFID09IDEpIHsgLy/liqjmgIHliIbnsbtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBrZXlzID0ge30sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyID0ge30sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyTmFtZXMgPSB7IGNsYXNzOiBcXFxcXFxcIuexu+Wei1xcXFxcXFwiLCBhcmVhOiBcXFxcXFxcIuWcsOWMulxcXFxcXFwiLCBsYW5nOiBcXFxcXFxcIuivreiogFxcXFxcXFwiLCB5ZWFyOiBcXFxcXFxcIuW5tOS7vVxcXFxcXFwiLCBzdGFyOiBcXFxcXFxcIuaYjuaYn1xcXFxcXFwiLCBkaXJlY3RvcjogXFxcXFxcXCLlr7zmvJRcXFxcXFxcIiwgc3RhdGU6IFxcXFxcXFwi54q25oCBXFxcXFxcXCIsIHZlcnNpb246IFxcXFxcXFwi54mI5pysXFxcXFxcXCIgfSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0RmlsdGVyID0ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmY2xhc3M6IFtcXFxcXFxcIuWFqOmDqOexu+Wei1xcXFxcXFwiLCBcXFxcXFxcIuWWnOWJp1xcXFxcXFwiLCBcXFxcXFxcIueIseaDhVxcXFxcXFwiLCBcXFxcXFxcIuaBkOaAllxcXFxcXFwiLCBcXFxcXFxcIuWKqOS9nFxcXFxcXFwiLCBcXFxcXFxcIuenkeW5u1xcXFxcXFwiLCBcXFxcXFxcIuWJp+aDhVxcXFxcXFwiLCBcXFxcXFxcIuaImOS6iVxcXFxcXFwiLCBcXFxcXFxcIuitpuWMqlxcXFxcXFwiLCBcXFxcXFxcIueKr+e9qlxcXFxcXFwiLCBcXFxcXFxcIuWKqOeUu1xcXFxcXFwiLCBcXFxcXFxcIuWlh+W5u1xcXFxcXFwiLCBcXFxcXFxcIuatpuS+oFxcXFxcXFwiLCBcXFxcXFxcIuWGkumZqVxcXFxcXFwiLCBcXFxcXFxcIuaequaImFxcXFxcXFwiLCBcXFxcXFxcIuaCrOeWkVxcXFxcXFwiLCBcXFxcXFxcIuaDiuaCmlxcXFxcXFwiLCBcXFxcXFxcIue7j+WFuFxcXFxcXFwiLCBcXFxcXFxcIumdkuaYpVxcXFxcXFwiLCBcXFxcXFxcIuaWh+iJulxcXFxcXFwiLCBcXFxcXFxcIuW+rueUteW9sVxcXFxcXFwiLCBcXFxcXFxcIuWPpOijhVxcXFxcXFwiLCBcXFxcXFxcIuWOhuWPslxcXFxcXFwiLCBcXFxcXFxcIui/kOWKqFxcXFxcXFwiLCBcXFxcXFxcIuWGnOadkVxcXFxcXFwiLCBcXFxcXFxcIuWEv+erpVxcXFxcXFwiLCBcXFxcXFxcIue9kee7nOeUteW9sVxcXFxcXFwiXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFyZWE6IFtcXFxcXFxcIuWFqOmDqOWcsOWMulxcXFxcXFwiLCBcXFxcXFxcIuWGheWcsFxcXFxcXFwiLCBcXFxcXFxcIummmea4r1xcXFxcXFwiLCBcXFxcXFxcIuWPsOa5vlxcXFxcXFwiLCBcXFxcXFxcIue+juWbvVxcXFxcXFwiLCBcXFxcXFxcIuiLseWbvVxcXFxcXFwiLCBcXFxcXFxcIuazleWbvVxcXFxcXFwiLCBcXFxcXFxcIuaXpeacrFxcXFxcXFwiLCBcXFxcXFxcIumfqeWbvVxcXFxcXFwiLCBcXFxcXFxcIuW+t+WbvVxcXFxcXFwiLCBcXFxcXFxcIuazsOWbvVxcXFxcXFwiLCBcXFxcXFxcIuWNsOW6plxcXFxcXFwiLCBcXFxcXFxcIuilv+ePreeJmVxcXFxcXFwiLCBcXFxcXFxcIuWKoOaLv+Wkp1xcXFxcXFwiLCBcXFxcXFxcIuWFtuS7llxcXFxcXFwiXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnllYXI6IFtcXFxcXFxcIuWFqOmDqOW5tOS7vVxcXFxcXFwiLCBcXFxcXFxcIjIwMjJcXFxcXFxcIiwgXFxcXFxcXCIyMDIxXFxcXFxcXCIsIFxcXFxcXFwiMjAyMFxcXFxcXFwiLCBcXFxcXFxcIjIwMTlcXFxcXFxcIiwgXFxcXFxcXCIyMDE4XFxcXFxcXCIsIFxcXFxcXFwiMjAxN1xcXFxcXFwiLCBcXFxcXFxcIjIwMTZcXFxcXFxcIiwgXFxcXFxcXCIyMDE1XFxcXFxcXCIsIFxcXFxcXFwiMjAxNFxcXFxcXFwiLCBcXFxcXFxcIjIwMTNcXFxcXFxcIiwgXFxcXFxcXCIyMDEyXFxcXFxcXCIsIFxcXFxcXFwiMjAxMVxcXFxcXFwiLCBcXFxcXFxcIjIwMTBcXFxcXFxcIiwgXFxcXFxcXCIyMDA5XFxcXFxcXCIsIFxcXFxcXFwiMjAwOFxcXFxcXFwiLCBcXFxcXFxcIjIwMDdcXFxcXFxcIiwgXFxcXFxcXCIyMDA2XFxcXFxcXCIsIFxcXFxcXFwiMjAwNVxcXFxcXFwiLCBcXFxcXFxcIjIwMDRcXFxcXFxcIiwgXFxcXFxcXCIyMDAzXFxcXFxcXCIsIFxcXFxcXFwiMjAwMlxcXFxcXFwiLCBcXFxcXFxcIjIwMDFcXFxcXFxcIiwgXFxcXFxcXCIyMDAwXFxcXFxcXCJdLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbGFuZzogW1xcXFxcXFwi5YWo6YOo6K+t6KiAXFxcXFxcXCIsIFxcXFxcXFwi5Zu96K+tXFxcXFxcXCIsIFxcXFxcXFwi6Iux6K+tXFxcXFxcXCIsIFxcXFxcXFwi57Kk6K+tXFxcXFxcXCIsIFxcXFxcXFwi6Ze95Y2X6K+tXFxcXFxcXCIsIFxcXFxcXFwi6Z+p6K+tXFxcXFxcXCIsIFxcXFxcXFwi5pel6K+tXFxcXFxcXCIsIFxcXFxcXFwi5rOV6K+tXFxcXFxcXCIsIFxcXFxcXFwi5b636K+tXFxcXFxcXCIsIFxcXFxcXFwi5YW25LuWXFxcXFxcXCJdXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGtleSBpbiB0eXBlX2V4dGVuZCkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghW1xcXFxcXFwiY2xhc3NcXFxcXFxcIiwgXFxcXFxcXCJhcmVhXFxcXFxcXCIsIFxcXFxcXFwibGFuZ1xcXFxcXFwiLCBcXFxcXFxcInllYXJcXFxcXFxcIl0uaW5jbHVkZXMoa2V5KSkgY29udGludWU7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5c1tcXFxcXFxcImZcXFxcXFxcIiArIGtleV0gPSBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleXNbXFxcXFxcXCJmYnlcXFxcXFxcIl0gPSBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWx0ZXJOYW1lID0gXFxcXFxcXCLlhajpg6hcXFxcXFxcIiArIGZpbHRlck5hbWVzW2tleV07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyW1xcXFxcXFwiZlxcXFxcXFwiICsga2V5XSA9IFtmaWx0ZXJOYW1lXS5jb25jYXQodHlwZV9leHRlbmRba2V5XS5zcGxpdChcXFxcXFxcIixcXFxcXFxcIikpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJbXFxcXFxcXCJmXFxcXFxcXCIgKyBrZXldLmxlbmd0aCA9PSAyKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcltcXFxcXFxcImZcXFxcXFxcIiArIGtleV0gPSBkZWZhdWx0RmlsdGVyW1xcXFxcXFwiZlxcXFxcXFwiICsga2V5XVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZ2V0VmFyKFxcXFxcXFwiZmlsdGVyXFxcXFxcXCIsIFxcXFxcXFwiXFxcXFxcXCIpKSB7IHB1dFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiLCBKU09OLnN0cmluZ2lmeShrZXlzKSkgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiKSksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3IgPSBcXFxcXFxcIiNGQTcyOThcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gaW4gZmlsdGVyKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGZpbHRlcltpdGVtXS5sZW5ndGg7IGluZGV4KyspIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGVtcFtpdGVtXSA9PSBcXFxcXFxcIlxcXFxcXFwiID8gKGluZGV4ID09PSAwID8gXFxcXFxcXCLigJzigJzigJ3igJ1cXFxcXFxcIiArIGZpbHRlcltpdGVtXVswXS5ib2xkKCkuZm9udGNvbG9yKGNvbG9yKSA6IGZpbHRlcltpdGVtXVtpbmRleF0pIDogKHRlbXBbaXRlbV0gPT0gZmlsdGVyW2l0ZW1dW2luZGV4XSA/IFxcXFxcXFwi4oCc4oCc4oCd4oCdXFxcXFxcXCIgKyBmaWx0ZXJbaXRlbV1baW5kZXhdLmJvbGQoKS5mb250Y29sb3IoY29sb3IpIDogZmlsdGVyW2l0ZW1dW2luZGV4XSksXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJzY3JvbGxfYnV0dG9uXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmw6ICQoKS5sYXp5UnVsZSgoZGVzLCBuYW1lKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcFtuYW1lXSA9IGRlcy5pbmRleE9mKFxcXFxcXFwi5YWo6YOoXFxcXFxcXCIpICE9IC0xID8gXFxcXFxcXCJcXFxcXFxcIiA6IGRlcztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRWYXIoXFxcXFxcXCJmaWx0ZXJcXFxcXFxcIiwgSlNPTi5zdHJpbmdpZnkodGVtcCkpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGZpbHRlcltpdGVtXVtpbmRleF0sIGl0ZW0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goeyBjb2xfdHlwZTogXFxcXFxcXCJibGFua19ibG9ja1xcXFxcXFwiIH0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYnkgPSB7IOm7mOiupOmhuuW6jzogXFxcXFxcXCJcXFxcXFxcIiwg5pyA5pawOiBcXFxcXFxcInRpbWVcXFxcXFxcIiwg5pyA54OtOiBcXFxcXFxcImhpdHNcXFxcXFxcIiwg6K+E5YiGOiBcXFxcXFxcInNjb3JlXFxcXFxcXCIgfTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChhcHBVcmwuaW5kZXhPZignYXBpLnBocC9hcHAnKSA9PSAtMSAmJiBhcHBVcmwuaW5kZXhPZigneGdhcHAnKSA9PSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGl0ZW0gaW4gYnkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGVtcFtcXFxcXFxcImZieVxcXFxcXFwiXSA9PSBieVtpdGVtXSA/IFxcXFxcXFwi4oCc4oCc4oCd4oCdXFxcXFxcXCIgKyBpdGVtLmJvbGQoKS5mb250Y29sb3IoY29sb3IpIDogaXRlbSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiBcXFxcXFxcInNjcm9sbF9idXR0b25cXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybDogJCgpLmxhenlSdWxlKChkZXMpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdGVtcCA9IEpTT04ucGFyc2UoZ2V0VmFyKFxcXFxcXFwiZmlsdGVyXFxcXFxcXCIpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wW1xcXFxcXFwiZmJ5XFxcXFxcXCJdID0gZGVzO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1dFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiLCBKU09OLnN0cmluZ2lmeSh0ZW1wKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVmcmVzaFBhZ2UoZmFsc2UpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgYnlbaXRlbV0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRlbXAgPSBKU09OLnBhcnNlKGdldFZhcihcXFxcXFxcImZpbHRlclxcXFxcXFwiKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVybCA9IE1ZX1VSTC5zcGxpdChcXFxcXFxcIiMjXFxcXFxcXCIpWzFdO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpdGVtIGluIHRlbXApIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybC5yZXBsYWNlKGl0ZW0sIHRlbXBbaXRlbV0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IGNoYW5nZVVybCh1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVzY29kZSA9IGZldGNoKHVybCwgeyBoZWFkZXJzOiB7IFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBhcHBVYSB9IH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzY29kZS5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzY29kZSA9IGZldGNoKHVybCArICcmYnR3YWYnICsgcmVzY29kZS5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXSwgeyBoZWFkZXJzOiB7IFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBhcHBVYSB9IH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBodG1sID0gSlNPTi5wYXJzZShyZXNjb2RlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2FwcGxpc3RkYXRhJywge30pKS5ydWxlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKFxcXFxcXFwi6KeG6aKR5YiX6KGo5Ye66ZSZOlxcXFxcXFwiICsgZS5tZXNzYWdlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSZXN1bHQoaXRlbXMpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sIGFwcFVybCwgdHlwZUpzb25baV0udHlwZV9leHRlbmQsIGNoYW5nZVVybCwgYXBwVWEpLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnZmxleF9idXR0b24nXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KVxcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsb2coJ+mmlumhteWIhuexu+WHuumUmTonICsgZS5tZXNzYWdlKTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgLy/ojrflj5bmjqjojZDop4bpopHliJfooahcXFxcbiAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gTVlfVVJMLnNwbGl0KCcjIycpWzFdO1xcXFxuICAgICAgICAgICAgICAgICAgICB1cmwgPSBjaGFuZ2VVcmwodXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IGh0bWwgPSByZXF1ZXN0KHVybCwgeyBoZWFkZXJzOiB7IFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBhcHBVYSB9IH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoaHRtbC5pbmRleE9mKCfmo4DmtYvkuK0nKSAhPSAtMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGZldGNoKHVybCArICcmYnR3YWYnICsgaHRtbC5tYXRjaCgvYnR3YWYoLio/KVxcXFxcXFxcXFxcXFxcXCIvKVsxXSwgeyBoZWFkZXJzOiB7IFxcXFxcXFwiVXNlci1BZ2VudFxcXFxcXFwiOiBhcHBVYSB9IH0pO1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBKU09OLnBhcnNlKGh0bWwpO1xcXFxuICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBpbmRleGRhdGEnKSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsb2coJ+mmlumhteaOqOiNkOWHuumUmTonICsgZS5tZXNzYWdlKTtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgc2V0UmVzdWx0KGl0ZW1zKTtcXFxcbiAgICAgICAgICAgIH0sIGNoYW5nZVVybCwgYXBwVXJsLCBhcHBVYSlcXFxcblxcXFxuICAgICAgICAgICAgbGV0IHJ1bGVfYXBwbGlzdGRhdGEgPSAkLnRvU3RyaW5nKGZ1bmN0aW9uKCkge1xcXFxuICAgICAgICAgICAgICAgIGxldCBsaXN0ID0gW107XFxcXG4gICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcygnYXBpLnBocC9hcHAnKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5saXN0O1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKCd4Z2FwcCcpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLmRhdGE7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoXFxcXFxcXCIudm9kXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLmRhdGEubGlzdDtcXFxcbiAgICAgICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IHsgdm9kX25hbWUsIHZvZF9waWMsIHZvZF9pZCwgdm9kX3JlbWFya3MgfSA9IGxpc3RbaV07XFxcXG4gICAgICAgICAgICAgICAgICAgIGxldCBsaW5rID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcygnYXBpLnBocC9hcHAnKSB8fCBhcHBVcmwuaW5jbHVkZXMoJ3hnYXBwJykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSBhcHBVcmwgKyAndmlkZW9fZGV0YWlsP2lkPScgKyB2b2RfaWQgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwiLnZvZFxcXFxcXFwiKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSgpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9IGFwcFVybCArICcvZGV0YWlsP3ZvZF9pZD0nICsgdm9kX2lkICsgJyZyZWxfbGltaXQ9MTAma2V5PScgKyAoZGF0ZS5nZXRNb250aCgpICsgMSkgKyAoZGF0ZS5nZXREYXRlKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0RGF0ZSgpIDogZGF0ZS5nZXREYXRlKCkpO1xcXFxuICAgICAgICAgICAgICAgICAgICB9O1xcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgIGlmICgvaW9wZW55dW4vLnRlc3QoYXBwVXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGluayA9IGFwcFVybCArICcvZGV0YWlsSUQ/dm9kX2lkPScgKyB2b2RfaWQgKyAnJnJlbF9saW1pdD0xMCc7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiB2b2RfbmFtZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHZvZF9waWMgKyAnQFJlZmVyZXI9JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlc2M6IHZvZF9yZW1hcmtzLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8zX21hcnF1ZWUnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKFxcXFxcXFwiI2ltbWVyc2l2ZVRoZW1lI2hpa2VyOi8vZW1wdHkjI1xcXFxcXFwiICsgbGluaykucnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZhbChKU09OLnBhcnNlKGZldGNoKCdoaWtlcjovL3BhZ2UvYXBwbW92bGlzdCcpKS5ydWxlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFxcXFxcIuW9seeJh+ivpuaDheWHuumUmTpcXFxcXFxcIiArIGUubWVzc2FnZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChbXSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgIGxldCBydWxlX2FwcGluZGV4ZGF0YSA9ICQudG9TdHJpbmcoZnVuY3Rpb24oKSB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IGxpc3QgPSBbXTtcXFxcbiAgICAgICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKCdhcGkucGhwL2FwcCcpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLmxpc3Q7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoJ3hnYXBwJykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwuZGF0YTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFwcFVybC5pbmNsdWRlcyhcXFxcXFxcIi52b2RcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwuZGF0YS5saXN0O1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgbGlzdHMgPSBbXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcygnYXBpLnBocC9hcHAnKSB8fCBhcHBVcmwuaW5jbHVkZXMoJ3hnYXBwJykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RzID0gbGlzdFtpXS52bGlzdDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVuYW1lID0gbGlzdFtpXS50eXBlX25hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwiLnZvZFxcXFxcXFwiKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdHMgPSBsaXN0W2ldLnZvZF9saXN0O1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZW5hbWUgPSBsaXN0W2ldLnZvZF90eXBlX25hbWU7XFxcXG5cXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHR5cGVuYW1lLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzEnLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiBcXFxcXFxcImhpa2VyOi8vZW1wdHlcXFxcXFxcIlxcXFxuICAgICAgICAgICAgICAgICAgICB9KTtcXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGxpc3RzLmxlbmd0aDsgaisrKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgeyB2b2RfbmFtZSwgdm9kX3BpYywgdm9kX2lkLCB2b2RfcmVtYXJrcyB9ID0gbGlzdHNbal07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbGluayA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKCdhcGkucGhwL2FwcCcpIHx8IGFwcFVybC5pbmNsdWRlcygneGdhcHAnKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmsgPSBhcHBVcmwgKyAndmlkZW9fZGV0YWlsP2lkPScgKyB2b2RfaWQgKyAnJnRva2VuPSZrZXk9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwiLnZvZFxcXFxcXFwiKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXRlID0gbmV3IERhdGUoKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gYXBwVXJsICsgJy9kZXRhaWw/dm9kX2lkPScgKyB2b2RfaWQgKyAnJnJlbF9saW1pdD0xMCZrZXk9JyArIChkYXRlLmdldE1vbnRoKCkgKyAxKSArIChkYXRlLmdldERhdGUoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXREYXRlKCkgOiBkYXRlLmdldERhdGUoKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xcXFxuXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoL2lvcGVueXVuLy50ZXN0KGFwcFVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5rID0gYXBwVXJsICsgJy9kZXRhaWxJRD92b2RfaWQ9JyArIHZvZF9pZCArICcmcmVsX2xpbWl0PTEwJztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHZvZF9uYW1lLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHZvZF9waWMgKyAnQFJlZmVyZXI9JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNjOiB2b2RfcmVtYXJrcyxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ21vdmllXzNfbWFycXVlZScsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsOiAkKFxcXFxcXFwiI2ltbWVyc2l2ZVRoZW1lI2hpa2VyOi8vZW1wdHkjI1xcXFxcXFwiICsgbGluaykucnVsZSgoKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS9hcHBtb3ZsaXN0JykpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2coXFxcXFxcXCLlvbHniYfor6bmg4Xlh7rplJk6XFxcXFxcXCIgKyBlLm1lc3NhZ2UpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0UmVzdWx0KFtdKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0pXFxcXG4gICAgICAgICAgICBsZXQgcnVsZV9hcHBtb3ZsaXN0ID0gJC50b1N0cmluZyhmdW5jdGlvbihjaGFuZ2VVcmwsIGFwcFVybCwgYXBwVWEpIHtcXFxcbiAgICAgICAgICAgICAgICBhZGRMaXN0ZW5lcihcXFxcXFxcIm9uQ2xvc2VcXFxcXFxcIiwgJC50b1N0cmluZygodXJsKSA9PiB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVmFyKCdhcHBub3cnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJWYXIodXJsKTtcXFxcbiAgICAgICAgICAgICAgICB9LCBNWV9VUkwpKTtcXFxcbiAgICAgICAgICAgICAgICBsZXQgaXRlbXMgPSBbXSxcXFxcbiAgICAgICAgICAgICAgICAgICAgaHRtbCA9IGdldFZhcihNWV9VUkwsIFxcXFxcXFwiXFxcXFxcXCIpLFxcXFxuICAgICAgICAgICAgICAgICAgICBkYXRhID0ge307XFxcXG4gICAgICAgICAgICAgICAgaWYgKGh0bWwgPT0gXFxcXFxcXCJcXFxcXFxcIikge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgdXJsID0gTVlfVVJMLnNwbGl0KFxcXFxcXFwiIyNcXFxcXFxcIilbMV07XFxcXG4gICAgICAgICAgICAgICAgICAgIHVybCA9IGNoYW5nZVVybCh1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICBodG1sID0gZmV0Y2godXJsLCB7IGhlYWRlcnM6IHsgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IGFwcFVhIH0gfSk7XFxcXG4gICAgICAgICAgICAgICAgICAgIHB1dFZhcihNWV9VUkwsIGh0bWwpO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwieGdhcHBcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgZGF0YSA9IEpTT04ucGFyc2UoaHRtbCkuZGF0YS52b2RfaW5mbztcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICBkYXRhID0gSlNPTi5wYXJzZShodG1sKS5kYXRhO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcblxcXFxuICAgICAgICAgICAgICAgIC8v566A5LuLXFxcXG4gICAgICAgICAgICAgICAgbGV0IHsgdm9kX25hbWUsIHZvZF9waWMsIHZvZF9jb250ZW50LCB2b2RfY2xhc3MsIHZvZF9yZW1hcmtzLCB2b2RfZGlyZWN0b3IsIHZvZF9hY3Rvciwgdm9kX2FyZWEsIHZvZF9sYW5nLCB2b2RfeWVhciB9ID0gZGF0YTtcXFxcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHZvZF9uYW1lICsgJ1xcXFxcXFxcbicgKyB2b2RfY2xhc3MgKyBcXFxcXFxcIixcXFxcXFxcIiArIHZvZF9yZW1hcmtzICsgXFxcXFxcXCJcXFxcXFxcXG5cXFxcXFxcIiArIHZvZF9hcmVhICsgXFxcXFxcXCIvXFxcXFxcXCIgKyB2b2RfbGFuZyArIFxcXFxcXFwiL1xcXFxcXFwiICsgdm9kX3llYXIsXFxcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6IFxcXFxcXFwi5a+85ryUOlxcXFxcXFwiICsgdm9kX2RpcmVjdG9yICsgXFxcXFxcXCJcXFxcXFxcXG7kuLvmvJQ6XFxcXFxcXCIgKyB2b2RfYWN0b3IsXFxcXG4gICAgICAgICAgICAgICAgICAgIHBpY191cmw6IHZvZF9waWMsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbW92aWVfMV92ZXJ0aWNhbF9waWNfYmx1cidcXFxcbiAgICAgICAgICAgICAgICB9LCB7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiAn5Ymn5oOF566A5LuLOicsXFxcXG4gICAgICAgICAgICAgICAgICAgIGRlc2M6IHZvZF9jb250ZW50LFxcXFxuICAgICAgICAgICAgICAgICAgICB1cmw6ICQoJ2hpa2VyOi8vZW1wdHkjbm9SZWNvcmRIaXN0b3J5IycpLnJ1bGUoKGRlc2MpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFJlc3VsdChbe1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBkZXNjLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnbG9uZ190ZXh0J1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfV0pO1xcXFxuICAgICAgICAgICAgICAgICAgICB9LCB2b2RfY29udGVudCksXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8xJ1xcXFxuICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgIC8v5pat5o+SXFxcXG4gICAgICAgICAgICAgICAgbGV0IGRuZW4gPSBnZXRNeVZhcihcXFxcXFxcImRuZW5cXFxcXFxcIiwgXFxcXFxcXCIwXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+aWreaPkjonICsgKGRuZW4gPT0gJzEnID8gJ+KAnOKAnOKcheKAneKAnScgOiAn4p2OJyksXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJCgnI25vTG9hZGluZyMnKS5sYXp5UnVsZSgoZG5lbikgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRuZW4gPT0gJzEnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHV0TXlWYXIoXFxcXFxcXCJkbmVuXFxcXFxcXCIsIFxcXFxcXFwiMFxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWZyZXNoUGFnZShmYWxzZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICd0b2FzdDovL+W3suemgeeUqOaWreaPkuiwg+eUqCEnO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRNeVZhcihcXFxcXFxcImRuZW5cXFxcXFxcIiwgXFxcXFxcXCIxXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlZnJlc2hQYWdlKGZhbHNlKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ3RvYXN0Oi8v5bey5byA5ZCv5pat5o+S6LCD55SoISdcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgZG5lbiksXFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAndGV4dF8yJ1xcXFxuICAgICAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xcXFxuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ+e6v+i3r+mFjee9ricsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5I25vUmVjb3JkSGlzdG9yeSNAcnVsZT1qczp0aGlzLmQ9W107cmVxdWlyZSgnaHR0cHM6Ly9naXRlYS5jb20vQUk5NTcvSGlrZXIvcmF3L20vdi9Sb3V0ZS5qcycpO1JvdXRlLnNldFBhcnNlKCk7c2V0UmVzdWx0KGQpO1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICAvL3VybDogXFxcXFxcXCJoaWtlcjovL3BhZ2UvUm91dGU/cnVsZT1NeUZpZWxk4bSw4oG/JnR5cGU96K6+572uI25vUmVjb3JkSGlzdG9yeSNcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICd0ZXh0XzInXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgLy/nur/ot6/liJfooahcXFxcblxcXFxuICAgICAgICAgICAgICAgIGxldCBjb250cyA9IFtdLFxcXFxuICAgICAgICAgICAgICAgICAgICB0YWJzID0gW107XFxcXG4gICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcyhcXFxcXFxcImFwaS5waHAvYXBwXFxcXFxcXCIpIHx8IGFwcFVybC5pbmNsdWRlcyhcXFxcXFxcInhnYXBwXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRzID0gZGF0YS52b2RfdXJsX3dpdGhfcGxheWVyO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRzID0gZGF0YS52b2RfcGxheV9saXN0O1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICBpZiAoY29udHMubGVuZ3RoIDwgMSkge1xcXFxuICAgICAgICAgICAgICAgICAgICBjb250cyA9IGRhdGEudm9kX3BsYXlfdXJsLnNwbGl0KCckJCQnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGFicyA9IGRhdGEudm9kX3BsYXlfZnJvbS5zcGxpdCgnJCQkJyk7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIC8v57q/6Lev5ZCN56ewXFxcXG4gICAgICAgICAgICAgICAgbGV0IHB0YWIgPSBcXFxcXFxcIlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBwdGFibmFtZSA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG4gICAgICAgICAgICAgICAgaWYgKGdldFZhcihcXFxcXFxcImFwcG5vd1xcXFxcXFwiLCBcXFxcXFxcIlxcXFxcXFwiKSA9PSBcXFxcXFxcIlxcXFxcXFwiKSB7IHB1dFZhcihcXFxcXFxcImFwcG5vd1xcXFxcXFwiLCBcXFxcXFxcIjBcXFxcXFxcIikgfVxcXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29udHMubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGV0IHNwdGFiID0gXFxcXFxcXCJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYm5hbWUgPSBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwiYXBpLnBocC9hcHBcXFxcXFxcIikgfHwgYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwieGdhcHBcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNwdGFiID0gY29udHNbaV0uY29kZSA/IGNvbnRzW2ldLmNvZGUgOiB0YWJzW2ldO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFibmFtZSA9IGNvbnRzW2ldLm5hbWUgfHwgc3B0YWI7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBzcHRhYiA9IGNvbnRzW2ldLmZyb20gPyBjb250c1tpXS5mcm9tIDogdGFic1tpXTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhYm5hbWUgPSBjb250c1tpXS5wbGF5ZXJfaW5mbyA/IGNvbnRzW2ldLnBsYXllcl9pbmZvLnNob3cgOiBzcHRhYjtcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlOiBnZXRWYXIoXFxcXFxcXCJhcHBub3dcXFxcXFxcIikgPT0gaSA/IFxcXFxcXFwi4oCc4oCc4oCd4oCdXFxcXFxcXCIgKyB0YWJuYW1lLmJvbGQoKS5mb250Y29sb3IoXFxcXFxcXCIjRkE3Mjk4XFxcXFxcXCIpIDogdGFibmFtZSxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5I25vTG9hZGluZyNAbGF6eVJ1bGU9LmpzOnB1dFZhcignYXBwbm93JywnXFxcXFxcXCIgKyBpICsgXFxcXFxcXCInKTtyZWZyZXNoUGFnZShmYWxzZSk7J3RvYXN0Oi8v5YiH5o2i5oiQ5YqfISdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbF90eXBlOiAnc2Nyb2xsX2J1dHRvbidcXFxcbiAgICAgICAgICAgICAgICAgICAgfSlcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGdldFZhcihcXFxcXFxcImFwcG5vd1xcXFxcXFwiKSA9PSBpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdGFiID0gc3B0YWI7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBwdGFibmFtZSA9IHRhYm5hbWU7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgIHRpdGxlOiBcXFxcXFxcIuKAnOKAnOKGk+KGkeKAneKAnVxcXFxcXFwiICsgcHRhYm5hbWUgKyBcXFxcXFxcIi1cXFxcXFxcIiArIHB0YWIsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogXFxcXFxcXCJoaWtlcjovL2VtcHR5QGxhenlSdWxlPS5qczpwdXRWYXIoJ2FwcG1hcHBzb3J0JywgZ2V0VmFyKCdhcHBtYXBwc29ydCcsJzEnKT09JzEnPycwJzonMScpO3JlZnJlc2hQYWdlKGZhbHNlKTsndG9hc3Q6Ly/liIfmjaLmiJDlip8hJ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogJ3RleHRfMScsXFxcXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhOiB7IGxpbmVWaXNpYmxlOiBmYWxzZSB9XFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgLy/pk77mjqXliJfooahcXFxcbiAgICAgICAgICAgICAgICBsZXQgbGlzdCA9IFtdLFxcXFxuICAgICAgICAgICAgICAgICAgICBpbmRleCA9IGdldFZhcihcXFxcXFxcImFwcG5vd1xcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwiYXBpLnBocC9hcHBcXFxcXFxcIikgfHwgYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwieGdhcHBcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGNvbnRzW2luZGV4XS51cmwuc3BsaXQoXFxcXFxcXCIjXFxcXFxcXCIpO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBjb250c1tpbmRleF0udXJscyA/IGNvbnRzW2luZGV4XS51cmxzIDogY29udHNbaW5kZXhdLnVybC5zcGxpdChcXFxcXFxcIiNcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgfTtcXFxcbiAgICAgICAgICAgICAgICBpZiAoZ2V0VmFyKCdhcHBtYXBwc29ydCcsICcxJykgPT0gJzAnKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QucmV2ZXJzZSgpO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAvL+ino+aekOaOpeWPo1xcXFxuICAgICAgICAgICAgICAgIGxldCBqaWVrID0gW107XFxcXG4gICAgICAgICAgICAgICAgdHJ5IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFwcFVybC5pbmNsdWRlcyhcXFxcXFxcImFwaS5waHAvYXBwXFxcXFxcXCIpIHx8IGFwcFVybC5pbmNsdWRlcyhcXFxcXFxcInhnYXBwXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBqaWVrLnB1c2goY29udHNbaW5kZXhdLnBhcnNlX2FwaSB8fCBcXFxcXFxcIlxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSAoY29udHNbaW5kZXhdLnBsYXllcl9pbmZvLnBhcnNlMiB8fCBcXFxcXFxcIlxcXFxcXFwiKS5zcGxpdChcXFxcXFxcIixcXFxcXFxcIikuY29uY2F0KChjb250c1tpbmRleF0ucGxheWVyX2luZm8ucGFyc2UgfHwgXFxcXFxcXCJcXFxcXFxcIikuc3BsaXQoXFxcXFxcXCIsXFxcXFxcXCIpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGppZWsgPSBqaWVrLm1hcChjdXIgPT4gY3VyLnJlcGxhY2UoXFxcXFxcXCIuLlxcXFxcXFwiLCBcXFxcXFxcIi5cXFxcXFxcIikucmVwbGFjZSgnanNvbmJzJywgJycpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgICAgICAgICAgICAgamllayA9IGppZWsuZmlsdGVyKGN1ciA9PiAhIWN1cik7XFxcXG4gICAgICAgICAgICAgICAgbGV0IGp4VXJsID0gamlla1swXSB8fCBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgIC8qaWYgKGp4VXJsLnN1YnN0cmluZygwLCAyKSA9PSAnXFxcXFxcXFwvXFxcXFxcXFwvJykge1xcXFxuICAgICAgICAgICAgICAgICAgICBqeFVybCA9ICdodHRwczonICsganhVcmw7XFxcXG4gICAgICAgICAgICAgICAgfSovXFxcXG4gICAgICAgICAgICAgICAgLy/miZPljbDmjqXlj6NcXFxcbiAgICAgICAgICAgICAgICBsb2coJ1xcXFxcXFxcbuW9k+WJjee6v+i3rzonICsgcHRhYiArICdcXFxcXFxcXG7op6PmnpDliJfooag6JyArICQuc3RyaW5naWZ5KGppZWspKTtcXFxcbiAgICAgICAgICAgICAgICAvL+inhumikeWIl+ihqFxcXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbGlzdC5sZW5ndGg7IGorKykge1xcXFxuICAgICAgICAgICAgICAgICAgICBsZXQgdmxpbmsgPSBcXFxcXFxcIlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSBcXFxcXFxcIlxcXFxcXFwiO1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAobGlzdFtqXS51cmwpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZsaW5rID0gbGlzdFtqXS51cmwucmVwbGFjZSgvIzQ1NiMvZywgJ2h0dHAnKS5yZXBsYWNlKC8jMTIzIy9nLCAnLicpLnJlcGxhY2UoLyM3ODkjL2csICc6Jyk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IGxpc3Rbal0ubmFtZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZsaW5rID0gbGlzdFtqXS5zcGxpdChcXFxcXFxcIiRcXFxcXFxcIilbMV07XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSA9IGxpc3Rbal0uc3BsaXQoXFxcXFxcXCIkXFxcXFxcXCIpWzBdO1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIC8vdGl0bGUgPSB0aXRsZS5tYXRjaCgvKOesrHxcXFxcXFxcXGR8LSkqKOmbhnzor5185pyfKS9nKSA/IHRpdGxlLnJlcGxhY2UoL+esrHzpm4Z86K+dfOacny9nLCAnJykgOiB0aXRsZTtcXFxcbiAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB0aXRsZTogdGl0bGUsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xfdHlwZTogXFxcXFxcXCJ0ZXh0XzRcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHVybDogZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL2xhenlQYXJzZVxcXFxcXFwiKSkucnVsZSlcXFxcbiAgICAgICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgIHNldFJlc3VsdChpdGVtcyk7XFxcXG4gICAgICAgICAgICB9LCBjaGFuZ2VVcmwsIGFwcFVybCwgYXBwVWEpO1xcXFxuXFxcXG4gICAgICAgICAgICBsZXQgbGF6eVBhcnNlID0gJC50b1N0cmluZyhmdW5jdGlvbigpIHtcXFxcbiAgICAgICAgICAgICAgICBsZXQgZW5EbiA9IGdldE15VmFyKFxcXFxcXFwiZG5lblxcXFxcXFwiLCBcXFxcXFxcIjBcXFxcXFxcIiksXFxcXG4gICAgICAgICAgICAgICAgICAgIHRlc3QxID0gdmxpbmsuc2VhcmNoKC95b3VrdXxtZ3R2fGl4aWd1YXxxcS5jb218cWl5aXxtaWd1fGJpbGliaWxpfHNvaHV8cHB0dnxsZXwxOTA1LmNvbS8pICE9IC0xLFxcXFxuICAgICAgICAgICAgICAgICAgICB0ZXN0MiA9IHZsaW5rLnNlYXJjaCgvTFRcXFxcXFxcXC18Um9uZ1hpbmdWUlxcXFxcXFxcLXxyZW5yZW5taVxcXFxcXFxcLXx4ZnlcXFxcXFxcXC18c3VveW9cXFxcXFxcXC5jY3xmZW5cXFxcXFxcXC5sYW9kaXxydWlmZW5nbGJ8eHVlcmVuXFxcXFxcXFwtLykgIT0gLTE7XFxcXG4gICAgICAgICAgICAgICAgaWYgKCh0ZXN0MSB8fCB0ZXN0MikgJiYgZW5EbiA9PSAnMScpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJ2hpa2VyOi8vZW1wdHknKS5sYXp5UnVsZSgodmxpbmspID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFxcXFxcIlxcXFxcXFxcbuiwg+eUqOaWreaPkuino+aekCzop4bpopHpk77mjqU6XFxcXFxcXCIgKyB2bGluayk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBldmFsKFxcXFxcXFwibGV0IGNvbmZpZyA9XFxcXFxcXCIgKyBmZXRjaChcXFxcXFxcImhpa2VyOi8vZmlsZXMvY2FjaGUvTXlQYXJzZVNldC5qc29uXFxcXFxcXCIpKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoZmV0Y2goY29uZmlnLmNqKSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYXl0bVBhcnNlKHZsaW5rKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgdmxpbmspXFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQoJ2hpa2VyOi8vZW1wdHknKS5sYXp5UnVsZSgocHRhYiwgdmxpbmssIGp4VXJsLCBhcHBVcmwpID0+IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFxcXFxcIlxcXFxcXFxcbuS9v+eUqOm7mOiupOino+aekCzop4bpopHpk77mjqU6XFxcXFxcXCIgKyB2bGluayk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAvL+inhumikemTvuaOpeWkhOeQhlxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gY2hhbmdlVmlkZW9VcmwodXJsKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/mlLnlj5jnibnlrprlnLDlnYDnmoRSZWZlcmVyXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVybC5pbmNsdWRlcyhcXFxcXFxcIndrZmlsZVxcXFxcXFwiKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vZmFudHVhbi53a2ZpbGUuY29tL30nO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnYmlsaWJpbGknKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IHVybCArICc7e1JlZmVyZXJAaHR0cHM6Ly93d3cuYmlsaWJpbGkuY29tLyYmVXNlci1BZ2VudEBNb3ppbGxhLzUuMH0nO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnbWd0dicpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHVybC5pbmNsdWRlcyhcXFxcXFxcIm9qYmtcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsID0gdXJsICsgJzt7UmVmZXJlckBodHRwczovL2Jhay5vamJranguY29tL30nO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL+i/lOWbnuinhumikemTvuaOpVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdXJsLmluY2x1ZGVzKFxcXFxcXFwiaHR0cFxcXFxcXFwiKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcXFxcXCLpk77mjqXkuI3mmK/ku6VodHRw5byA5aS0KOWPr+iDveWKoOWvhuS6hilcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9cXFxcXFxcXC5tM3U4Ly50ZXN0KHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZU0zdTgodXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB1cmwgKyAnI2lzVmlkZW89dHJ1ZSMnO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHlvIDlp4tcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/lpITnkIbop4bpopHmoLflvI/nmoTotYTmupDpk77mjqVcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoL1xcXFxcXFxcLm0zdTh8XFxcXFxcXFwubXA0fG9ialxcXFxcXFxcL3Rvc3xuZXRlYXNlXFxcXFxcXFwuY29tLy50ZXN0KHZsaW5rKSAmJiAvaHR0cC8udGVzdCh2bGluaykgJiYgIS9cXFxcXFxcXC5odG1sLy50ZXN0KHZsaW5rKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIS9mZW5cXFxcXFxcXC5sYW9kaXxydWlmZW5nbGJ8c3VveW9cXFxcXFxcXC5jYy8udGVzdCh2bGluaykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFxcXFxcIuajgOa1i+WIsOi1hOa6kOWcsOWdgOWPr+iDveaYr+inhumikemTvuaOpVxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybCh2bGluayk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/ml6Dlj6/nlKjop6PmnpDnm7TmjqXmiqXplJlcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWp4VXJsIHx8IC94XFxcXFxcXFwtblxcXFxcXFxcLmNjLy50ZXN0KGp4VXJsKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcXFxcXCLml6Dlj6/nlKjop6PmnpBcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8v5L2/55So6Kej5p6QXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKFxcXFxcXFwi5L2/55So6Kej5p6QOlxcXFxcXFwiICsganhVcmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsaW5rID0ganhVcmwgKyB2bGluayxcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvZGUgPSBKU09OLnBhcnNlKGZldGNoKGxpbmssIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcXFxcXFxcIlVzZXItQWdlbnRcXFxcXFxcIjogXFxcXFxcXCJEYXJ0LzIuMTMgKGRhcnQ6aW8pXFxcXFxcXCJcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWRpcmVjdDogZmFsc2UsXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aXRoU3RhdHVzQ29kZTogdHJ1ZVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/ov5Tlm57ph43lrprlkJHnmoTpk77mjqUgXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjb2RlLnN0YXR1c0NvZGUgPT0gJzMwMicgfHwgc2NvZGUuc3RhdHVzQ29kZSA9PSAnMzAxJykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcmVkdXJsID0gc2NvZGUuaGVhZGVycy5sb2NhdGlvblswXS5yZXBsYWNlKC9cXFxcXFxcXFxcXFxcXFxcL2csICcnKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nKCfph43lrprlkJE6JyArIHJlZHVybCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghLyh1cmx8dmlkfHYpXFxcXFxcXFw9Ly50ZXN0KHJlZHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChyZWR1cmwpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qZWxzZSBpZiAoL1xcXFxcXFxcPWh0dHAvLnRlc3QocmVkdXJsKSAmJiAvXFxcXFxcXFwubTN1OHxcXFxcXFxcXC5tcDR8XFxcXFxcXFwuZmx2Ly50ZXN0KHJlZHVybCkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1cmwgPSByZWR1cmwuc3Vic3RyaW5nKHJlZHVybC5pbmRleE9mKCc9aHR0cCcpICsgMSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0qL1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29kZS5ib2R5ID0gZmV0Y2gocmVkdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy/lvIDlp4vll4XmjqJcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaHRtbCA9IHNjb2RlLmJvZHk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC80MDQgTm90IEZvdW5kfOWkh+ahiOWQjuWPr+e7p+e7reiuv+mXri8udGVzdChodG1sKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcXFxcXCI0MDTkuoZcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICgvXFxcXFxcXFw8Ym9keS8udGVzdChodG1sKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJChbXFxcXFxcXCLlvIDlp4vop4bpopHll4XmjqJcXFxcXFxcIiwgXFxcXFxcXCLmiZPlvIDop6PmnpDnvZHpobVcXFxcXFxcIiwgXFxcXFxcXCLkvb/nlKjlhoXnva7op6PmnpBcXFxcXFxcIl0sIDEsIFxcXFxcXFwi5qOA5rWL5Yiw6Kej5p6Q5Li6572R6aG15pWw5o2uXFxcXFxcXCIpLnNlbGVjdCgobGluaywgcHRhYiwgdmxpbmssIGFwcFVybCkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlucHV0ID09IFxcXFxcXFwi5byA5aeL6KeG6aKR5ZeF5o6iXFxcXFxcXCIpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2FjaGUoJ2h0dHBzOi8vY29kZS5hbGl5dW4uY29tL2x6azIzNTU5L1B1YmxpY1J1bGUvcmF3L21hc3Rlci94NXJ1bGUuanMnLCAyNCk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHg1cnVsZShsaW5rLCBsaW5rKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcXFxcXCLmiZPlvIDop6PmnpDnvZHpobVcXFxcXFxcIikge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBcXFxcXFxcIndlYjovL1xcXFxcXFwiICsgbGluaztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQgPT0gXFxcXFxcXCLkvb/nlKjlhoXnva7op6PmnpBcXFxcXFxcIikge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZyhcXFxcXFxcIuS9v+eUqOWGhee9ruino+aekFxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93TG9hZGluZyhcXFxcXFxcIuato+WcqOi/m+ihjOino+aekC4uLlxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL215UGFyc2VcXFxcXFxcIikpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBsaW5rLCBwdGFiLCB2bGluaywgYXBwVXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2xvZygn5bCd6K+V5LuOanNvbuaVsOaNruiOt+WPlicpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHB1cmwgPSBKU09OLnBhcnNlKGh0bWwpLnVybDtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChwdXJsKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLypsZXQgcHVybCA9IGh0bWwubWF0Y2goL1tcXFxcXFxcXCdcXFxcXFxcXFxcXFxcXFwiXXVybFtcXFxcXFxcXCdcXFxcXFxcXFxcXFxcXFwiXTouKj9bXFxcXFxcXFwnXFxcXFxcXFxcXFxcXFxcIl0oLio/KVtcXFxcXFxcXCdcXFxcXFxcXFxcXFxcXFwiXS8pWzFdLnJlcGxhY2UoL1xcXFxcXFxcXFxcXFxcXFwvZywgJycpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKHB1cmwpOyovXFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ+ino+aekOWPr+iDveWKoOWvhuS6hicpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvZygnXFxcXFxcXFxu5pyq6IO95oiQ5Yqf6I635Y+W6KeG6aKR5Zyw5Z2AOicgKyBlLm1lc3NhZ2UgKyBcXFxcXFxcIlxcXFxcXFxcbuWwneivleS9v+eUqOinhOWImeWGhee9ruino+aekFxcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZhbChKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL215UGFyc2VcXFxcXFxcIikpLnJ1bGUpO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgLy/liqjmgIHop6PmnpDku6PnoIHnu5PmnZ9cXFxcbiAgICAgICAgICAgICAgICAgICAgfSwgcHRhYiwgdmxpbmssIGp4VXJsLCBhcHBVcmwpO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0pO1xcXFxuICAgICAgICAgICAgcGFnZXMucHVzaCh7XFxcXG4gICAgICAgICAgICAgICAgbmFtZTogXFxcXFxcXCJBUFDliIbnsbvliJfooahcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBwYXRoOiBcXFxcXFxcImFwcGxpc3RkYXRhXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgcnVsZTogcnVsZV9hcHBsaXN0ZGF0YVxcXFxuICAgICAgICAgICAgfSwge1xcXFxuICAgICAgICAgICAgICAgIG5hbWU6IFxcXFxcXFwiQVBQ6aaW6aG15YiX6KGoXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcXFxcXCJhcHBpbmRleGRhdGFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBydWxlOiBydWxlX2FwcGluZGV4ZGF0YVxcXFxuICAgICAgICAgICAgfSwge1xcXFxuICAgICAgICAgICAgICAgIG5hbWU6IFxcXFxcXFwiQVBQ6YCJ6ZuGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgcGF0aDogXFxcXFxcXCJhcHBtb3ZsaXN0XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICAgICAgcnVsZTogcnVsZV9hcHBtb3ZsaXN0XFxcXG4gICAgICAgICAgICB9LCB7XFxcXG4gICAgICAgICAgICAgICAgbmFtZTogXFxcXFxcXCLop4bpopHop6PmnpBcXFxcXFxcIixcXFxcbiAgICAgICAgICAgICAgICBwYXRoOiBcXFxcXFxcImxhenlQYXJzZVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgICAgIHJ1bGU6IGxhenlQYXJzZVxcXFxuICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgIH1cXFxcblxcXFxuICAgICAgICBsZXQgbXlQYXJzZSA9IEpTT04ucGFyc2UoZmV0Y2goXFxcXFxcXCJoaWtlcjovL3BhZ2UvbXlQYXJzZVxcXFxcXFwiKSkucnVsZTtcXFxcbiAgICAgICAgcGFnZXMucHVzaCh7XFxcXG4gICAgICAgICAgICBuYW1lOiBcXFxcXFxcIuWGhee9ruino+aekFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgcGF0aDogXFxcXFxcXCJteVBhcnNlXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBydWxlOiBteVBhcnNlXFxcXG4gICAgICAgIH0pXFxcXG5cXFxcbiAgICAgICAgc2VhcmNoRmluZCA9IFxcXFxcXFwianM6XFxcXFxcXCIgKyAkLnRvU3RyaW5nKGZ1bmN0aW9uKGNoYW5nZVVybCwgYXBwdHlwZSwgYXBwVXJsLCBhcHBVYSkge1xcXFxuICAgICAgICAgICAgbGV0IGl0ZW1zID0gW10sXFxcXG4gICAgICAgICAgICAgICAgc2VhcmNoX3VybCA9IGNoYW5nZVVybChNWV9VUkwuc3BsaXQoJyMjJylbMV0pLFxcXFxuICAgICAgICAgICAgICAgIGJodG1sID0gXFxcXFxcXCJcXFxcXFxcIjtcXFxcblxcXFxuICAgICAgICAgICAgYmh0bWwgPSBmZXRjaChzZWFyY2hfdXJsLCB7IGhlYWRlcnM6IHsgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IGFwcFVhIH0gfSk7XFxcXG5cXFxcbiAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgYmh0bWwgPSBiaHRtbC5zdGFydHNXaXRoKCdcXFxcXFxcXHJcXFxcXFxcXG4nKSA/IGJodG1sLnJlcGxhY2UoJ1xcXFxcXFxcclxcXFxcXFxcbicsICcnKSA6IGJodG1sO1xcXFxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cXFxcblxcXFxuICAgICAgICAgICAgaWYgKC9idHdhZi8udGVzdChiaHRtbCkpIHtcXFxcbiAgICAgICAgICAgICAgICBiaHRtbCA9IGZldGNoKHNlYXJjaF91cmwgKyAnJmJ0d2FmJyArIGJodG1sLm1hdGNoKC9idHdhZiguKj8pXFxcXFxcXFxcXFxcXFxcIi8pWzFdLCB7IGhlYWRlcnM6IHsgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IGFwcFVhIH0gfSk7XFxcXG4gICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgIGxldCBodG1sID0gSlNPTi5wYXJzZShiaHRtbCksXFxcXG4gICAgICAgICAgICAgICAgbGlzdCA9IFtdO1xcXFxuICAgICAgICAgICAgaWYgKC/npZ7pqax8VFYvLnRlc3QoYXBwdHlwZSkpIHtcXFxcbiAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5kYXRhO1xcXFxuICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKCdhcGkucGhwL2FwcCcpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLmxpc3Q7XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChhcHBVcmwuaW5jbHVkZXMoJ3hnYXBwJykpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGh0bWwuZGF0YTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICBsaXN0ID0gaHRtbC5kYXRhLmxpc3Q7XFxcXG4gICAgICAgICAgICAgICAgfVxcXFxuICAgICAgICAgICAgfVxcXFxuXFxcXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGxpc3QubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgICAgICAgICBpZiAoL+elnumprHxUVi8udGVzdChhcHB0eXBlKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICB2YXIgeyB0aXRsZSwgcGljLCBuZXh0bGluazogdXJsLCBzdGF0ZTogZGVzYyB9ID0gbGlzdFtpXTtcXFxcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICBpZiAoYXBwVXJsLmluY2x1ZGVzKCdhcGkucGhwL2FwcCcpIHx8IGFwcFVybC5pbmNsdWRlcygneGdhcHAnKSkge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHsgdm9kX25hbWU6IHRpdGxlLCB2b2RfcGljOiBwaWMsIHZvZF9yZW1hcmtzOiBkZXNjIH0gPSBsaXN0W2ldLFxcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IGFwcFVybCArICd2aWRlb19kZXRhaWw/aWQ9JyArIGxpc3RbaV0udm9kX2lkICsgJyZ0b2tlbj0nO1xcXFxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHsgdm9kX25hbWU6IHRpdGxlLCB2b2RfcGljOiBwaWMsIHZvZF9yZW1hcmtzOiBkZXNjIH0gPSBsaXN0W2ldO1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC9pb3Blbnl1bi8udGVzdChhcHBVcmwpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHVybCA9IGFwcFVybCArICcvZGV0YWlsSUQ/dm9kX2lkPScgKyBsaXN0W2ldLnZvZF9pZCArICcmdG9rZW49JztcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHVybCA9IGFwcFVybCArICcvZGV0YWlsP3ZvZF9pZD0nICsgbGlzdFtpXS52b2RfaWQgKyAnJnRva2VuPSc7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgICAgICBpdGVtcy5wdXNoKHtcXFxcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU6IHRpdGxlLFxcXFxuICAgICAgICAgICAgICAgICAgICBwaWNfdXJsOiBwaWMgKyAnQFJlZmVyZXI9JyxcXFxcbiAgICAgICAgICAgICAgICAgICAgZGVzYzogZGVzYyxcXFxcbiAgICAgICAgICAgICAgICAgICAgY29sX3R5cGU6ICdtb3ZpZV8xX3ZlcnRpY2FsX3BpYycsXFxcXG4gICAgICAgICAgICAgICAgICAgIHVybDogJChcXFxcXFxcIiNpbW1lcnNpdmVUaGVtZSNoaWtlcjovL2VtcHR5IyNcXFxcXFxcIiArIHVybCkucnVsZSgoYXBwdHlwZSkgPT4ge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKC/npZ7pqax8VFYvLnRlc3QoYXBwdHlwZSkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmFsKEpTT04ucGFyc2UoZmV0Y2goJ2hpa2VyOi8vcGFnZS90dm1vdmxpc3QnKSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2YWwoSlNPTi5wYXJzZShmZXRjaCgnaGlrZXI6Ly9wYWdlL2FwcG1vdmxpc3QnKSkucnVsZSk7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgICAgIH0sIGFwcHR5cGUpXFxcXG4gICAgICAgICAgICAgICAgfSk7XFxcXG4gICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgIHNldFJlc3VsdChpdGVtcyk7XFxcXG4gICAgICAgIH0sIGNoYW5nZVVybCwgYXBwdHlwZSwgYXBwVXJsLCBhcHBVYSlcXFxcblxcXFxuICAgICAgICBsYXN0X2NoYXB0ZXJfcnVsZSA9IFxcXFxcXFwianM6XFxcXFxcXCIgKyAkLnRvU3RyaW5nKGZ1bmN0aW9uKGFwcHR5cGUsIGFwcFVybCwgYXBwVWEpIHtcXFxcbiAgICAgICAgICAgIGxldCBjaHAgPSBbXTtcXFxcbiAgICAgICAgICAgIHRyeSB7XFxcXG4gICAgICAgICAgICAgICAgbGV0IGNvbnRzID0gW10sXFxcXG4gICAgICAgICAgICAgICAgICAgIGh0bWwgPSBKU09OLnBhcnNlKGZldGNoKE1ZX1VSTC5zcGxpdChcXFxcXFxcIiMjXFxcXFxcXCIpWzFdLCB7IGhlYWRlcnM6IHsgXFxcXFxcXCJVc2VyLUFnZW50XFxcXFxcXCI6IGFwcFVhIH0gfSkpO1xcXFxuICAgICAgICAgICAgICAgIGlmICgv56We6amsfFRWLy50ZXN0KGFwcHR5cGUpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRzID0gT2JqZWN0LmtleXMoaHRtbC52aWRlb2xpc3QpO1xcXFxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYXBwVXJsLmluY2x1ZGVzKFxcXFxcXFwiYXBpLnBocC9hcHBcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3VybF93aXRoX3BsYXllcjtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFwcFVybC5pbmNsdWRlcyhcXFxcXFxcInhnYXBwXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9pbmZvLnZvZF91cmxfd2l0aF9wbGF5ZXI7XFxcXG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250cy5sZW5ndGggPCAxKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cyA9IGh0bWwuZGF0YS52b2RfaW5mby52b2RfcGxheV91cmwuc3BsaXQoJyQkJCcpO1xcXFxuICAgICAgICAgICAgICAgICAgICB9XFxcXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgY29udHMgPSBodG1sLmRhdGEudm9kX3BsYXlfbGlzdDtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnRzLmxlbmd0aCA8IDEpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRzID0gaHRtbC5kYXRhLnZvZF9wbGF5X3VybC5zcGxpdCgnJCQkJyk7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICB9XFxcXG5cXFxcbiAgICAgICAgICAgICAgICBsZXQgbGlzdCA9IFtdO1xcXFxuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29udHMubGVuZ3RoOyBpKyspIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgaWYgKC/npZ7pqax8VFYvLnRlc3QoYXBwdHlwZSkpIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgPSBodG1sLnZpZGVvbGlzdFtjb250c1tpXV07XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJscykge1xcXFxuICAgICAgICAgICAgICAgICAgICAgICAgbGlzdCA9IGNvbnRzW2ldLnVybHM7XFxcXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udHNbaV0udXJsKSB7XFxcXG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0ID0gY29udHNbaV0udXJsLnNwbGl0KFxcXFxcXFwiI1xcXFxcXFwiKTtcXFxcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcXFxcbiAgICAgICAgICAgICAgICAgICAgICAgIGxpc3QgPSBjb250c1tpXS5zcGxpdChcXFxcXFxcIiNcXFxcXFxcIik7XFxcXG4gICAgICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgICAgICAgICAgY2hwLnB1c2gobGlzdC5sZW5ndGgpO1xcXFxuICAgICAgICAgICAgICAgIH1cXFxcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9XFxcXG4gICAgICAgICAgICBzZXRSZXN1bHQoJ+abtOaWsOiHszonICsgKE1hdGgubWF4LmFwcGx5KE1hdGgsIGNocCkpKTtcXFxcbiAgICAgICAgfSwgYXBwdHlwZSwgYXBwVXJsLCBhcHBVYSk7XFxcXG5cXFxcbiAgICAgICAgcnVsZXMucHVzaCh7XFxcXG4gICAgICAgICAgICB0aXRsZTogYXBwdGl0bGUsXFxcXG4gICAgICAgICAgICBhdXRob3I6IGdldE15VmFyKCdyZW1vdGVVcmwnKSxcXFxcbiAgICAgICAgICAgIHR5cGU6IGFwcHR5cGUsXFxcXG4gICAgICAgICAgICB1cmw6IGhvbWVfdXJsLFxcXFxuICAgICAgICAgICAgZmluZF9ydWxlOiBmaW5kX3J1bGUsXFxcXG4gICAgICAgICAgICBzZWFyY2hfdXJsOiBzZWFyY2hfdXJsLFxcXFxuICAgICAgICAgICAgc2VhcmNoRmluZDogc2VhcmNoRmluZCxcXFxcbiAgICAgICAgICAgIHBhZ2VzOiBKU09OLnN0cmluZ2lmeShwYWdlcyksXFxcXG4gICAgICAgICAgICBsYXN0X2NoYXB0ZXJfcnVsZTogbGFzdF9jaGFwdGVyX3J1bGUsXFxcXG4gICAgICAgICAgICBpY29uOiBhcHBpY29uXFxcXG4gICAgICAgIH0pO1xcXFxuICAgIH1cXFxcbn1cXFxcbi8qJC5leHBvcnRzID0ge1xcXFxuICAgIHJ1bGVzOiBydWxlcyxcXFxcbiAgICB0eXBlczogdHlwZXNcXFxcbn0qL1xcXFxuJC5leHBvcnRzID0gcnVsZXM7XFxcIn0se1xcXCJjb2xfdHlwZVxcXCI6XFxcIm1vdmllXzNcXFwiLFxcXCJuYW1lXFxcIjpcXFwi5YaF572u5pWw5o2uXFxcIixcXFwicGF0aFxcXCI6XFxcIlJlc0NvZGVcXFwiLFxcXCJydWxlXFxcIjpcXFwie1xcXFxuICAgIFxcXFxcXFwiZGF0YVxcXFxcXFwiOltcXFxcbiAgICAgICAge1xcXFxuICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLkvJjotKhcXFxcXFxcIixcXFxcbiAgICAgICAgXFxcXFxcXCJsaXN0XFxcXFxcXCI6W1xcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiMTA4MHBcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovLzEwODBwLm9uZS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzEwODBwLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiMTIzMURcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3Z1ZS5hcHAueXVuYm95cy5jbi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzEyMzFELnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiMzAw55yL5LiW55WMXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly8zMDB5cy54eXovYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi8zMDDnnIvkuJbnlYwucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCI0S+W9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly8xYXBpLjRrZHl0di5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi80S+W9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIjgwS+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vMTA4MHAudHYvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi84MEvlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJDSlTlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy5janQ1MjEuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vQ0pU5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiREPlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vY2hhb3JlbmJiLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0RD5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiRjfpq5jmuIVcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYmMuaGFva2FuanUxLmNjL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vRjfpq5jmuIUucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJIR+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9oZ3l4LnZpcC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0hH5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwibDBs5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9sMGwudHYvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9sMGzlvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLniLHnnIvnvo7liadcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy51dW1qdy5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHnnIvnvo7liacucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLniLHphbflvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy56aGFubGFuZ2J1LmNvbS9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/niLHphbflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLoj5zpuJ/ov73liadcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vODEuNzEuMTguOTU6NTU1NS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iPnOm4n+i/veWJpy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueZveWrluW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly96Z2p4ZHRnLmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55m95auW5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi54ix55yL5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3d3dy5hOTEuY20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pgJrnlKjlm77moIcucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLliJ3lv4PlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy4xOG12LmNsdWIvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/liJ3lv4PlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLni6zmkq3npL5cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vMzV5cy5jYy9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eLrOaSreekvi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWPruW9k+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vdHYuMDU3M3dsLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WPruW9k+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuauteWPi+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly8xMjEuMjA0LjI0OS4xMzU6NDQzMy9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mrrXlj4vlvbHop4YzLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5q615Y+L5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9zaGFuZ2ppaHVva2UuY29tL2FwaS5waHAvdHYudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5q615Y+L5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6aWt5ZCO55S15b2xXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3N1bW0udmlwL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6aWt5ZCO55S15b2xLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6aOe5o235b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly93d3cuZmo2MDgwLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mjnuaNt+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueWr+eLgueci1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hcHAuZmtrZHkudmlwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55av54uC55yL55S15b2xLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi57KJ6LGh6KeG55WMXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzQyLjE1Ny4xMjkuMTU6MzQ0NDQvbHZkb3VfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nsonosaHop4bnlYwucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmsYfogZrlupNUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3Lnp6Y2xvdmU2NjYuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5rGH6IGa5bqTVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLomY7njKvop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2h1bWFvc3AuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6JmO54yr6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5Y+v57Gz5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3d3dy5rbXlzLnZpcC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WPr+exs+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuW6t+iAgOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hcHAueWJ5eWRzLmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bq36ICA5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi57u/566t5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3d3dy42OXR5LmNjL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57u/566t5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5oeS54yr55S15b2xXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3d3dy5lc2VsbGF1dG8uY29tL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aHkueMq+eUteW9sS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuicnOicguW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hcHAuZjh0cC5jb20vbHZkb3VfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/onJzonILlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLpurvnk5zop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYWxpeXVuLms4YWEuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6bq755Oc6KeG6aKRMS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIue+juWJp+iZq1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vbWVpanVjaG9uZy5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nvo7liafomasucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmnKjlrZDnlLXlvbFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3Lm11emlkeS50b3AvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mnKjlrZDnlLXlvbEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlpYjpnZ7ov7dcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2FwcC5uZXRmbGl4bWkuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aWI6Z2e6L+35b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5Y2X5bqc5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2lhcHAubmZ1eHMuY2x1Yi9kbm1iLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ljZflupzlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmmpblhYnlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2FwcC5ibDIxMC5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mmpblhYnlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlv7Xlv7XlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovLzk5OC55dWFubWFqcy5jbi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W/teW/teW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuafoOafmuW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9udS5lNHR2LmNuL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5p+g5p+a5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5aWH5oCq6KeG6aKRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9naWd1YWkubmV0L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6YCa55So5Zu+5qCHLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5LiD6Zu25Yqo5ryrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9jZi43MHl1LmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LiD6Zu25Yqo5ryrLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi55Ge5Liw6LWE5rqQXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly90di55amhhbi5jb206NDQzMy9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nkZ7kuLAucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLpl6rlhYnlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vMTAxLjM1LjEyOC4xOTIvbXViYWlfYXBpLnBocC9tMi52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pl6rlhYnlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmgJ3kuZDlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy5odWFuZGlhbi50b3AvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5oCd5LmQ5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5aSp6K+a5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3Rjc3B2aXAuY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnor5rlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlpKnlpKnlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2FwcC5kYWlzaHVzYy5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnlpKnlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmuKnlpq7lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy53ZW5uaXlzLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+a4qeWmruW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWwj+eZveWKqOa8q1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly8xMjEuNjIuNjAuMjIyOjIwMjIyL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bCP55m95Yqo5ryrLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5pif6L6w6KeG6aKRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9tLmhqMDk5OS5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mmJ/ovrDop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlsI/mnoHlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBwLjhkOHEuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bCP5p6B5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5b+D6bi+5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3poaXl1dHYueHl6L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b+D6bi+5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6Zuq5Lq65b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly96eS5xZDIzNC5jbi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mbquS6uuW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuebiui+vuW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9sdW9idS55c3M2MDgwLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+ebiui+vuW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIumbqOaenOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly8yLnloeXM2My5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/pm6jmnpzlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlvbHop4blpKflhahcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBwLjI2OXcuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6KeG5aSn5YWoLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5pyI6Imy5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzY5dHkuY2MvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mnIjoibLlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLkvJjop4blvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vY2MueXN5cy5hc2lhL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LyY6KeG5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5b2x6ZiF6ZiBXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzIyMS4yMzYuMTguMTI6NjY1L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5b2x6ZiF6ZiBLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6L+95Ymn5ZCnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3podWlqdTgudmlwL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6L+95Ymn5ZCn5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIF1cXFxcbiAgICAgICAgfSxcXFxcbiAgICAgICAge1xcXFxuICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmma7pgJpcXFxcXFxcIixcXFxcbiAgICAgICAgXFxcXFxcXCJsaXN0XFxcXFxcXCI6W1xcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiNTHop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vNTFzaGlwaW4uY2MvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi81MeinhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIjgw5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3d3dy5jY2M4Lm5ldC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uLzgw5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiSkRPRE9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2FwcHlzLmpkb2RvLnh5ei9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL0pET0RP5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiUUPlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3d3dy5xY3N2aXAuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vUUPlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJVNeW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vYXBweC51eTA3LmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL1U15b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiWEflvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vY21zLnhnZ20udG9wL3J1aWZlbmdsYl9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL1hH5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwieW95b1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9qeC53bnZvZC5uZXQvcnVpZmVuZ2xiX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24veW95b+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIumYv+mHjOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hbGl5cy5jbjo5MC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mYv+mHjOW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWXt+WRnOW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hb3d1LnByby9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WXt+WRnOW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueIseW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3Lmh6bGZmLmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54ix5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi54ix6L+95YmnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzgxLjcxLjE4Ljk1OjUyMC9sdmRvdV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eIsei/veWJpy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuiJvueJueW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3LmFpdGVlLmNjL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Im+54m55b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi55m96I+c6L+95YmnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2xiYXBwLmh1aW1hb2ppYS5jb206MzAxMTkvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nmb3oj5zov73liacucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmr5TpgrvlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vMGh6eS5jbjo5OTkwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5q+U6YK75b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi55m+6K6v6KeG6aKRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly96LmlvcGVueXVuLmNvbTo5OS9hcHBfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nmb7orq/op4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLoj5zpuJ/liqjmvKtcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vdGFpa29uZy5odWFuZ2d1YXkuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6I+c6bif5Yqo5ryrLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5aSn5aS05b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2R5Lmlkc2FvLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wkp+WktOW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuauteWPi+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9qcy42NmFwcC5tZS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+auteWPi+W9seinhjIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLosYbmuKPlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vZG91emhheXNzLmNjL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6LGG5rij5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5LqM5Lmd5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9hcHAuMTlrcC5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuozkuZ3lvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLpo47lkK/lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8veXN3LmVlL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6aOO5ZCv5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6L6J5ZOl5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9hcHAueS5oZ3l1bGU4LmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+i+ieWTpeW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIum7hOays+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9pLmxlZHU4LmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6buE5rKz5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi54Gr5pif5Lq6XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly93d3cuaHVveGluZzkuY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54Gr5pif5Lq65b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5pmX5YWI5qOuXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9oYW50di50b3AvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mmZflhYjmo67lvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnm5LlrZDlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vaS5uaWhhb2hlemkuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55uS5a2Q5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi562L5paX5LqRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly90di5qaW5kY2xvdWQuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v562L5paX5LqR5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5p6B5YWJ5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FwcC53aW54ei5jYy9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aegeWFieW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuiBmuWQiOinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vYXBwLmpoeXN0di5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ogZrlkIjop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLkuYXkuYXlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vczl0OS5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kuYXkuYXlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLliafov7fop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vcGFuLmh6YWZ3LmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WJp+i/t+inhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuapmOWtkOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9qei5qdXppZHkudmlwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5qmY5a2Q5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5b+r5pKt5ZCnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FwcC5oZDgucHcvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lv6vmkq3lkKcucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnnIvliaflkKdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBwLmlzaGVuNTIwLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eci+WJp+WQpy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueci+eci+WJp1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3Lmthbmthbmp1LmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v55yL55yL5YmnLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6YW36YW35b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3d3dy5jY2M4Lm5ldC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mFt+mFt+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWPr+exs+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9zai5rbXlzLnZpcC9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lj6/nsbPlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnu7/osYbop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3YubHZkb3VpLmNuL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v57u/6LGG5b2x6Z+zLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6JOd5YWJ6KeG6aKRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3ZpcC45MWlxaXlpLmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iTneWFieinhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuael+iwt+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly95cy5saW5ndXl5Lnh5ei9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+ael+iwt+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWGt+inhlRWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9sZW4udHYvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lhrfop4ZUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIue+juWJp+iMg1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly90dHptei5uZXQvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nvo7liafojIMucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLllrXkuZDlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vbWlhb2xleXMuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Za15LmQ5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5ZCN6KeG5b2xXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FwcC5xcWNjdi5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lkI3op4blvbEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLpurvlrZDov73liadcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYi4ybWF6LmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6bq75a2Q6L+95YmnLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5aWI6aOe5Lit5paHXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly93d3cubmFpZmVpLm9yZy9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WliOmjnuS4reaWhy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuiLueaenOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vYXBwbGU2NzgueHl6L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Iu55p6c5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi55qu55qu5Yqo5ryrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2RtLm11eWluZy5tZS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+earuearuWKqOa8qy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWlh+i2o+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vYXBwLnFpcXUubWUvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpYfotqPlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLku7vmgKfnnItcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3JlbnhpbmdrYW4ubmV0L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Lu75oCn55yLLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5oCd5aWH5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FwcC5zaXFpdHYudmlwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5oCd5aWH5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5LiJ5pel5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly93d3cuM3JpLm5ldC9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S4ieaXpeW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuelnumprOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly94cy43OHR2LmNjL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v56We6ams5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6KeG5ZCs5pif55CDXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3pqeWFwaWp6eXMuc2h5bndsa2ouY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6KeG5ZCs5pif55CDLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5Zyf6LGGVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8veGl1eGlhbi5xZDIzNC5jbi9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wcn+ixhlRWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5reY5Ymn56S+XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9hcHAuc2h1aGFpOTkuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5reY5Ymn56S+LnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5aSp56m65b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly90di41MWFpem4uY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSp56m65b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5aSp5aSp6KeG6aKRXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FwcC5xaWFuanUuY2MvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKnlpKnop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlhZTlrZDnqp1cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vY2ouaHVpbWFvamlhLmNvbToxMjM0NS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WFlOWtkOeqnS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuaIkeeIsei3n+WJp1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3Lmdlbm1vdi5jb20vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/miJHniLHot5/liacucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlkL7niLHlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBwLjVscC5uZXQvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lkL7niLHlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlkL7niLHlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vNTJ5c3cueHl6L21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5ZC+54ix5b2x6KeGMS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWQu+eXleinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly93d3cua2lzc29uZS5jbi9ydWlmZW5nbGJfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lkLvnl5Xop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLonJfniZvliqjmvKtcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd29uaXVkbS53b25pdS5jeW91OjIwMDAwL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6JyX54mb5Yqo5ryrLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5a+75bi45b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3R2LjkxeW16LmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5a+75bi45b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi54aK54yr5Yqo5ryrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2RvbmdtYW4uazhhYS5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/nhornjKvliqjmvKsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLnhornjKvop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYW5lZ2guY29tL2x2ZG91X2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54aK54yr6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi54665aic5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9wcC53eGluYS5jbi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eOuuWonOW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWwj+icu+ick1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly8za2V0di5jb20vbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/onLvonJPop4bpopEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmmJ/nkIPop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vMTE5LjI5LjEyMS40ODo4MDg4L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pif55CD6KeG6aKRLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi54665b+D5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly90di5hcmJkLmNuL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54665b+D5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5paw5Lqr5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9hcHAuamlhZ2FuLmN4L2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5paw5Lqr5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5pif5b2x55u46ZqPXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FwcC5yb290dGhyZWUudG9wL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pif5b2x55u46ZqPLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5bCP5piT5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3h5Lmlyb3AuY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/mmJPlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLkupHln47lvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2F5eWYuY24vbXViYWlfYXBpLnBocC9tMi52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kupHln47lvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmnIjlhL/lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3l1ZTUyLnh5ei9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mAmueUqOWbvuaghy5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuaoseiKseWKqOa8q1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vd3d3LmRtd3UuY2MvYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mqLHoirHliqjmvKsucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmnIjkuq7lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8veXMuMTN0di50b3AvYWNqX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5pyI5Lqu5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5b2x6KeG5aSn5YWoXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly94Yy54aXhpMnl5Lnh5ei9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+W9seinhuWkp+WFqEhELnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5b2x6KeG54Ot5YmnXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2xiLjI2eXMuY24vYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lvbHop4bng63liacucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmuJTmuJTlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vbHVvYm8ueXVnZW55ZS5zaXRlL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5riU5riU5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5LyY5LyY5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3hpbi5qanN2aXAuY2MvbW9nYWlfYXBpLnBocC92MS52b2RcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/kvJjkvJjlvbHpmaIucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmn5rlrZDop4bpopFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8veXouMjZ5cy5jbi9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+afmuWtkOinhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIumxvOS7lOW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly95dXphaW8udG9wL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6bG85LuU5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6L+95Ymn6L6+5Lq6XFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly93d3cuemh1aWp1ZGFyZW4uY29tL21vZ2FpX2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6L+95Ymn6L6+5Lq6LnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6L+95Ymn54yrXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3R2LmttdHZiLmNvbS9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+i/veWJp+eMqzEucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6QVBQ5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLkvqbmjqLlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8veXMuaHVhbmdndWF5LmNvbS9tb2dhaV9hcGkucGhwL3YxLnZvZFxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S+puaOouW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpBUFDlvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueMqueMquW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9hcHAuMnpkeXkuY29tL2FwaS5waHAvdjEudm9kXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54yq54yq5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOkFQUOW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIF1cXFxcbiAgICAgICAgfSxcXFxcbiAgICAgICAge1xcXFxuICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCJJUFRWXFxcXFxcXCIsXFxcXG4gICAgICAgIFxcXFxcXFwibGlzdFxcXFxcXFwiOltcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIjLlj7fluIFcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vcGhvZWJlLmNmL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vMuWPt+W4geW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiQ1blvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3LmNjY3Z2di50b3AvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi9DVuW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwiSEflvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBpLmhneXgudmlwL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24vSEflvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWCsuinhuW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9qLnpqai5saWZlOjg4L212L2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5YKy6KeG5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLniLHopb/opb9UVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly90di5haXhpeGkudmlwL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v54ix6KW/6KW/VFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIueZveeGiuW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9xdC55aHp5Lnh5ei9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+eZveeGiuW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5Yi65qGQ5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3R2LmN0dHYudmlwL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Yi65qGQ5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlsJjmopNUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9jenR2LnZpcDo4My9hcGkucGhwL2NoZW56aXlzdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WwmOaik1RWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlmIDlk6nlmIDlk6lcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2FwaS5kaWxpa3R2Lnh5ei9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WYgOWTqeWYgOWTqVRWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLliqjlipvlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3LmxvdmU5OTg5LmNvbS9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WKqOWKm+W9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5aSn5biI5YWEXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2RzeHR2LnR2LmNpL2FwaS5waHAvZHN4L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lpKfluIjlhYTlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuS6jOi0p+W9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9kLnpqai5saWZlOjg4L212L2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LqM6LSn5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLpnZ7lh6HlvbHpmaJcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vY21zLmZlaWZhbjEyLnh5ei9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mdnuWHoeW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6aOe5omsVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vZGlhbmNqLnpoZW5meS5jbi9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+mjnuaJrFRWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlmL/ojbzplItcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vdHYuaGZ5czgudmlwL2FwaS5waHAvU250di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5Zi/6I286ZSLLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLpu5HpvpnlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vdmlwLmppLWRpbmctaGUuc2l0ZS9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+m7kem+meW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5rKz6ams5b2x6ZmiXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovLzEuMTQuNjMuMTAxL2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5rKz6ams5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLogZrlpJrlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vamR5eS53ZWV0YWkuY24vYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/ogZrlpJrlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuS5heS5heW9semZolxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly9sLmJodHYub3JnLmNuL212L2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LmF5LmF5b2x6ZmiLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLkuZDphbdUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly8xNTAuMTM4Ljc4LjE3NzoyMDIxL2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5LmQ6YW3VFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuaHkueMq1RWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3d3dy5lc2VsbGF1dG8uY29tL2FwaS5waHAvbGgvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+aHkueMq1RWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlha3nu7TlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vbGl1d2VpaXB0di5ncToxMzU3L2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5YWt57u05b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLmtYHmmJ/pm6hcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vbm4ubHh5eXkueHl6OjgvYy9hcGkucGhwL1dBaUxhb3dhbmcvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+a1geaYn+mbqOW9semZoi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5Ya35pyIVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL3R2LjUyMXg1LmNvbS9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WGt+aciFRWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLojZTmnp3lvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBpLnpqeXMudmlwL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6I2U5p6d5b2x6KeGVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuWFjei0ueeci1RWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3d3dy5mcmVla2FuLnZpcC9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WFjei0ueeci1RWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLonJzmnpxUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly92di5taWd1b3R2Lm5ldC9tL2FwaS5waHAvQ2hlbmdjaGVuZy92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v6Jyc5p6cVFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuexs+adpeW9seinhlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly80Mi41MS4zNy4xNjE6MjM0Ni9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+exs+adpeW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi57Gz5aWHVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vd3d3LnM2ZXAzLnRvcC9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+exs+Wlh1RWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLkuIPnp5HlvbHop4ZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vdHYuN2tmbS5jbi9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+S4g+enkeW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi6Iul5oOc5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3J4dy5ydW94aW5ldy5jb20vYXBpLnBocC9TbnR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/oi6Xmg5zlvbHop4YucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuaAneWlh1RWXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3R2LnNpcWl0di52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/mgJ3lpYdUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5Y+M5a2Q5pifXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL3R2LmRpeW91aS5jYy9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+WPjOWtkOaYny5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5bGx5qWC5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2R5Ni5kY2QxLmNuL2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5bGx5qWC5b2x6KeGLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlpKnnqbpUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly90di50a3lzLnR2L2FwaS5waHAvaXB0di92b2QvXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcImltZ1xcXFxcXFwiOlxcXFxcXFwiaHR0cHM6Ly9pbm1lbW9yeS5jb2RpbmcubmV0L3AvSW5NZW1vcnkvZC9NQnJvd3Nlci9naXQvcmF3L21hc3Rlci9BcHBGaWxlL0FwcEljb24v5aSp56m6VFYucG5nXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcIm11cmxcXFxcXFxcIjpcXFxcXFxcInE6VFblvbHop4ZcXFxcXFxcIlxcXFxuICAgICAgICAgICAgfSxcXFxcbiAgICAgICAgICAgIHtcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidGl0bGVcXFxcXFxcIjpcXFxcXFxcIuiZvuearuinhumikVxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly90di5jbXQ4Lnh5ei9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+iZvuearuinhumikS5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi5bCP5p6BVFZcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwidXJsXFxcXFxcXCI6XFxcXFxcXCJodHRwOi8vYXBpLjhkOHEuY29tL21tdi9hcGkucGhwL0NoZW5nY2hlbmcvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+Wwj+aegVRWLnBuZ1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJtdXJsXFxcXFxcXCI6XFxcXFxcXCJxOlRW5b2x6KeGXFxcXFxcXCJcXFxcbiAgICAgICAgICAgIH0sXFxcXG4gICAgICAgICAgICB7XFxcXG4gICAgICAgICAgICBcXFxcXFxcInRpdGxlXFxcXFxcXCI6XFxcXFxcXCLlsI/nhornjKtUVlxcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJ1cmxcXFxcXFxcIjpcXFxcXFxcImh0dHA6Ly90djIuaGV0YW95cy52aXAvYXBpLnBocC9pcHR2L3ZvZC9cXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwiaW1nXFxcXFxcXCI6XFxcXFxcXCJodHRwczovL2lubWVtb3J5LmNvZGluZy5uZXQvcC9Jbk1lbW9yeS9kL01Ccm93c2VyL2dpdC9yYXcvbWFzdGVyL0FwcEZpbGUvQXBwSWNvbi/lsI/nhornjKtUVi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9LFxcXFxuICAgICAgICAgICAge1xcXFxuICAgICAgICAgICAgXFxcXFxcXCJ0aXRsZVxcXFxcXFwiOlxcXFxcXFwi57Sr5pum5b2x6KeGXFxcXFxcXCIsXFxcXG4gICAgICAgICAgICBcXFxcXFxcInVybFxcXFxcXFwiOlxcXFxcXFwiaHR0cDovL2FwcHlzLmF6eC50b29sczo4OC9hcGkucGhwL2lwdHYvdm9kL1xcXFxcXFwiLFxcXFxuICAgICAgICAgICAgXFxcXFxcXCJpbWdcXFxcXFxcIjpcXFxcXFxcImh0dHBzOi8vaW5tZW1vcnkuY29kaW5nLm5ldC9wL0luTWVtb3J5L2QvTUJyb3dzZXIvZ2l0L3Jhdy9tYXN0ZXIvQXBwRmlsZS9BcHBJY29uL+e0q+abpuW9seinhi5wbmdcXFxcXFxcIixcXFxcbiAgICAgICAgICAgIFxcXFxcXFwibXVybFxcXFxcXFwiOlxcXFxcXFwicTpUVuW9seinhlxcXFxcXFwiXFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIF1cXFxcbiAgICAgICAgfVxcXFxuICAgIF1cXFxcbn1cXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLojrflj5ZhcHDliJfooahcXFwiLFxcXCJwYXRoXFxcIjpcXFwiYXBwSnNvblxcXCIsXFxcInJ1bGVcXFwiOlxcXCJsZXQgYXBwZmlsZSA9IFxcXFxcXFwiXFxcXFxcXCI7XFxcXG50cnkge1xcXFxuICAgIGFwcGZpbGUgPSBmZXRjaChnZXRNeVZhcihcXFxcXFxcInN1YnNjcmlwdGlvblxcXFxcXFwiKSk7XFxcXG59IGNhdGNoIChlKSB7fVxcXFxuXFxcXG5sZXQgYXBwanNvbiA9IHt9O1xcXFxuaWYgKC9Jbk1lbW9yeS8udGVzdChhcHBmaWxlKSkge1xcXFxuICAgIGFwcGpzb24gPSBKU09OLnBhcnNlKGFwcGZpbGUpO1xcXFxufSBlbHNlIHtcXFxcbiAgICBhcHBqc29uID0gSlNPTi5wYXJzZShKU09OLnBhcnNlKGZldGNoKFxcXFxcXFwiaGlrZXI6Ly9wYWdlL1Jlc0NvZGVcXFxcXFxcIiwge30pKS5ydWxlKTtcXFxcbn1cXFxcblxcXFxuJC5leHBvcnRzID0gYXBwanNvbjtcXFwifSx7XFxcImNvbF90eXBlXFxcIjpcXFwibW92aWVfM1xcXCIsXFxcIm5hbWVcXFwiOlxcXCLlhoXnva7mlbDmja4yXFxcIixcXFwicGF0aFxcXCI6XFxcIm15UGFyc2VcXFwiLFxcXCJydWxlXFxcIjpcXFwiKCgpID0+IHtcXFxcbiAgICBmdW5jdGlvbiBjaGFuZ2VWaWRlb1VybCh1cmwpIHtcXFxcbiAgICAgICAgLy/mlLnlj5jnibnlrprlnLDlnYDnmoRSZWZlcmVyXFxcXG4gICAgICAgIGlmICh1cmwuaW5jbHVkZXMoXFxcXFxcXCJ3a2ZpbGVcXFxcXFxcIikpIHtcXFxcbiAgICAgICAgICAgIHVybCA9IHVybCArICc7e1JlZmVyZXJAaHR0cHM6Ly9mYW50dWFuLndrZmlsZS5jb20vfSc7XFxcXG4gICAgICAgIH0gZWxzZSBpZiAocHRhYiA9PSAnYmlsaWJpbGknKSB7XFxcXG4gICAgICAgICAgICB1cmwgPSB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vd3d3LmJpbGliaWxpLmNvbS8mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXFxcbiAgICAgICAgfSBlbHNlIGlmIChwdGFiID09ICdtZ3R2Jykge1xcXFxuICAgICAgICAgICAgdXJsID0gdXJsICsgJzt7UmVmZXJlckB3d3cubWd0di5jb20mJlVzZXItQWdlbnRATW96aWxsYS81LjB9JztcXFxcbiAgICAgICAgfSBlbHNlIGlmICh1cmwuaW5jbHVkZXMoXFxcXFxcXCJvamJrXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICB1cmwgPSB1cmwgKyAnO3tSZWZlcmVyQGh0dHBzOi8vYmFrLm9qYmtqeC5jb20vfSc7XFxcXG4gICAgICAgIH1cXFxcbiAgICAgICAgLy/ov5Tlm57op4bpopHpk77mjqVcXFxcbiAgICAgICAgaWYgKCF1cmwuaW5jbHVkZXMoXFxcXFxcXCJodHRwXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXFxcXFxcXCLpk77mjqXkuI3mmK/ku6VodHRw5byA5aS0KOWPr+iDveWKoOWvhuS6hilcXFxcXFxcIik7XFxcXG4gICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICBpZiAoL1xcXFxcXFxcLm0zdTgvLnRlc3QodXJsKSkge1xcXFxuICAgICAgICAgICAgICAgIHJldHVybiBjYWNoZU0zdTgodXJsKTtcXFxcbiAgICAgICAgICAgIH0gZWxzZSB7XFxcXG4gICAgICAgICAgICAgICAgcmV0dXJuIHVybCArICcjaXNWaWRlbz10cnVlIyc7XFxcXG4gICAgICAgICAgICB9XFxcXG4gICAgICAgIH1cXFxcbiAgICB9XFxcXG4gICAgLy9hZXPop6Plr4ZcXFxcbiAgICBmdW5jdGlvbiBEZShkYXRhLCB0b2tlbl9rZXksIHRva2VuX2l2KSB7XFxcXG4gICAgICAgIGV2YWwoZ2V0Q3J5cHRvSlMoKSk7XFxcXG4gICAgICAgIHZhciBrZXkgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZSh0b2tlbl9rZXkpO1xcXFxuICAgICAgICB2YXIgaXYgPSBDcnlwdG9KUy5lbmMuVXRmOC5wYXJzZSh0b2tlbl9pdik7XFxcXG4gICAgICAgIHJldHVybiBDcnlwdG9KUy5BRVMuZGVjcnlwdChkYXRhLCBrZXksIHtcXFxcbiAgICAgICAgICAgIGl2OiBpdixcXFxcbiAgICAgICAgICAgIG1vZGU6IENyeXB0b0pTLm1vZGUuQ0JDLFxcXFxuICAgICAgICAgICAgcGFkZGluZzogQ3J5cHRvSlMucGFkLlBrY3M3XFxcXG4gICAgICAgIH0pLnRvU3RyaW5nKENyeXB0b0pTLmVuYy5VdGY4KTtcXFxcbiAgICB9O1xcXFxuICAgIGlmICh2bGluay5pbmNsdWRlcygnbTN1OC5jYWNoZS5zdW95by5jYycpKSB7XFxcXG4gICAgICAgIGxldCB1cmwgPSBKU09OLnBhcnNlKGZldGNoKCdodHRwczovL2pocGMubWFuZHVodS5jb20vZHVvZHVvL2FwaS5waHAnLCB7IGJvZHk6ICd1cmw9JyArIHZsaW5rLCBtZXRob2Q6ICdQT1NUJyB9KSkudXJsO1xcXFxuICAgICAgICByZXR1cm4gY2hhbmdlVmlkZW9VcmwoRGUodXJsLCBtZDUoJ3JYald2WGw2JyksICdOWGJIb1dKYnBzRU9pbjhiJykpO1xcXFxuICAgIH0gZWxzZSBpZiAodmxpbmsuaW5jbHVkZXMoJ3J1aWZlbmdsYicpKSB7XFxcXG4gICAgICAgIGxldCB1cmwgPSBKU09OLnBhcnNlKGZldGNoKCdodHRwOi8vdHMueWpoYW4uY29tOjgwOTAvYXBpLz9rZXk9RFNRRmdYZG1qOXhrRHlpWGRyJnVybD0nICsgdmxpbmspKS51cmw7XFxcXG4gICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybCh1cmwpO1xcXFxuICAgICAgICAvKmxldCBodG1sID0gZmV0Y2goJ2h0dHBzOi8vdHYueWpoYW4uY29tOjQ0MjMvQ0w0Sy8/dXJsPScgKyB2bGluayksXFxcXG4gICAgICAgICAgICBsZV90b2tlbiA9IGh0bWwubWF0Y2goL2xlX3Rva2VuLio9LipcXFxcXFxcIiguKilcXFxcXFxcIi8pWzFdLFxcXFxuICAgICAgICAgICAgdXJsID0gaHRtbC5tYXRjaCgvXFxcXFxcXCJ1cmxcXFxcXFxcIi4qOi4qXFxcXFxcXCIoLiopXFxcXFxcXCIvKVsxXTtcXFxcbiAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKERlKHVybCwgXFxcXFxcXCJBNDJFQUMwQzJCNDA4NDcyXFxcXFxcXCIsIGxlX3Rva2VuKSk7Ki9cXFxcbiAgICB9IGVsc2UgaWYgKHZsaW5rLmluY2x1ZGVzKFxcXFxcXFwieHVlcmVuLVxcXFxcXFwiKSkge1xcXFxuICAgICAgICBsZXQgaHRtbCA9IGZldGNoKCdodHRwczovL2RpYW95b25nLnFkMjM0LmNuLz91cmw9JyArIHZsaW5rKSxcXFxcbiAgICAgICAgICAgIGxlX3Rva2VuID0gaHRtbC5tYXRjaCgvbGVfdG9rZW5cXFxcXFxcXHMqPVxcXFxcXFxccypcXFxcXFxcIiguKilcXFxcXFxcIi8pWzFdLFxcXFxuICAgICAgICAgICAgdXJsID0gaHRtbC5tYXRjaCgvXFxcXFxcXCJ1cmxcXFxcXFxcIlxcXFxcXFxccyo6XFxcXFxcXFxzKlxcXFxcXFwiKC4qKVxcXFxcXFwiLylbMV07XFxcXG4gICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChEZSh1cmwsICdBNDJFQUMwQzJCNDA4NDczJywgbGVfdG9rZW4pKTtcXFxcbiAgICB9IGVsc2UgaWYgKHZsaW5rLmluY2x1ZGVzKFxcXFxcXFwibmV0ZmxpeG1vbS1cXFxcXFxcIikpIHtcXFxcbiAgICAgICAgbGV0IGh0bWwgPSBmZXRjaCgnaHR0cHM6Ly9wbGF5ZXIuNGt5YS5jb20vP3VybD0nICsgdmxpbmssIHsgaGVhZGVyczogeyByZWZlcmVyOiAnaHR0cHM6Ly9uZXRmbGl4Lm1vbScgfSB9KSxcXFxcbiAgICAgICAgICAgIGxlX3Rva2VuID0gaHRtbC5tYXRjaCgvbGVfdG9rZW5cXFxcXFxcXHMqPVxcXFxcXFxccypcXFxcXFxcIiguKilcXFxcXFxcIi8pWzFdLFxcXFxuICAgICAgICAgICAgdXJsID0gaHRtbC5tYXRjaCgvXFxcXFxcXCJ1cmxcXFxcXFxcIlxcXFxcXFxccyo6XFxcXFxcXFxzKlxcXFxcXFwiKC4qKVxcXFxcXFwiLylbMV07XFxcXG4gICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChEZSh1cmwsICczMzMxODBCM0VGMEVEOUQwJywgbGVfdG9rZW4pKTtcXFxcbiAgICB9IGVsc2UgaWYgKHB0YWIuaW5jbHVkZXMoJ25mdXhzJykpIHtcXFxcbiAgICAgICAgbGV0IGh0bWwgPSBmZXRjaCgnaHR0cHM6Ly9hcGkueGt2aWRlby5kZXNpZ24vbTN1OC5waHA/dXJsPScgKyB2bGluayksXFxcXG4gICAgICAgICAgICBidF90b2tlbiA9IGh0bWwubWF0Y2goL2J0X3Rva2VuXFxcXFxcXFxzKj1cXFxcXFxcXHMqXFxcXFxcXCIoLiopXFxcXFxcXCIvKVsxXSxcXFxcbiAgICAgICAgICAgIHVybCA9IGh0bWwubWF0Y2goL1xcXFxcXFwidXJsXFxcXFxcXCJcXFxcXFxcXHMqOlxcXFxcXFxccypnZXRWaWRlb0luZm9cXFxcXFxcXChcXFxcXFxcIiguKilcXFxcXFxcIi8pWzFdO1xcXFxuICAgICAgICByZXR1cm4gY2hhbmdlVmlkZW9VcmwoRGUodXJsLCAnenNkcmY4ODAyMDNnaHVyZCcsIGJ0X3Rva2VuKSk7XFxcXG4gICAgfSBlbHNlIGlmICgvcWl5aXx5b3VrdXxxcS5jb218bWd0dnxiaWxpYmlsaXxpeGlndWF8bWlndXxzb2h1fHBwdHZ8bGV8MTkwNVxcXFxcXFxcLmNvbXxmdW5cXFxcXFxcXC50di8udGVzdCh2bGluaykpIHtcXFxcbiAgICAgICAgbGV0IGh0bWwgPSByZXF1ZXN0KFxcXFxcXFwiaHR0cHM6Ly9qeHFkLnRreXMudHYvZG5tYS5waHA/dXJsPVxcXFxcXFwiICsgdmxpbmspLFxcXFxuICAgICAgICAgICAgYnRfdG9rZW4gPSBodG1sLm1hdGNoKC9idF90b2tlblxcXFxcXFxccyo9XFxcXFxcXFxzKlxcXFxcXFwiKC4qKVxcXFxcXFwiLylbMV0sXFxcXG4gICAgICAgICAgICB1cmwgPSBodG1sLm1hdGNoKC9cXFxcXFxcInVybFxcXFxcXFwiXFxcXFxcXFxzKjpcXFxcXFxcXHMqZ2V0VmlkZW9JbmZvXFxcXFxcXFwoXFxcXFxcXCIoLiopXFxcXFxcXCIvKVsxXTtcXFxcbiAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKERlKHVybCwgXFxcXFxcXCI3NjkyQUE3MEVFRjkyQjQyXFxcXFxcXCIsIGJ0X3Rva2VuKSk7XFxcXG4gICAgfSBlbHNlIGlmICh2bGluay5pbmNsdWRlcyhcXFxcXFxcIkxULVxcXFxcXFwiKSkge1xcXFxuICAgICAgICBsZXQgaHRtbCA9IHJlcXVlc3QoXFxcXFxcXCJodHRwczovL2p4cWQudGt5cy50di9kbm1hLnBocD91cmw9XFxcXFxcXCIgKyB2bGluayksXFxcXG4gICAgICAgICAgICBidF90b2tlbiA9IGh0bWwubWF0Y2goL2J0X3Rva2VuXFxcXFxcXFxzKj1cXFxcXFxcXHMqXFxcXFxcXCIoLiopXFxcXFxcXCIvKVsxXSxcXFxcbiAgICAgICAgICAgIHVybCA9IGh0bWwubWF0Y2goL1xcXFxcXFwidXJsXFxcXFxcXCJcXFxcXFxcXHMqOlxcXFxcXFxccypnZXRWaWRlb0luZm9cXFxcXFxcXChcXFxcXFxcIiguKilcXFxcXFxcIi8pWzFdO1xcXFxuICAgICAgICByZXR1cm4gY2hhbmdlVmlkZW9VcmwoRGUodXJsLCBcXFxcXFxcIjc2OTJBQTcwRUVGOTJCNDJcXFxcXFxcIiwgYnRfdG9rZW4pKTtcXFxcbiAgICB9IGVsc2UgaWYgKHZsaW5rLmluY2x1ZGVzKFxcXFxcXFwicmVucmVubWktXFxcXFxcXCIpKSB7XFxcXG4gICAgICAgIGxldCBodG1sID0gcmVxdWVzdChcXFxcXFxcImh0dHBzOi8vanhxZC50a3lzLnR2L2RubWEucGhwP3VybD1cXFxcXFxcIiArIHZsaW5rKSxcXFxcbiAgICAgICAgICAgIGJ0X3Rva2VuID0gaHRtbC5tYXRjaCgvYnRfdG9rZW5cXFxcXFxcXHMqPVxcXFxcXFxccypcXFxcXFxcIiguKilcXFxcXFxcIi8pWzFdLFxcXFxuICAgICAgICAgICAgdXJsID0gaHRtbC5tYXRjaCgvXFxcXFxcXCJ1cmxcXFxcXFxcIlxcXFxcXFxccyo6XFxcXFxcXFxzKmdldFZpZGVvSW5mb1xcXFxcXFxcKFxcXFxcXFwiKC4qKVxcXFxcXFwiLylbMV07XFxcXG4gICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybChEZSh1cmwsIFxcXFxcXFwiNzY5MkFBNzBFRUY5MkI0MlxcXFxcXFwiLCBidF90b2tlbikpO1xcXFxuICAgIH0gZWxzZSBpZiAodmxpbmsuaW5jbHVkZXMoXFxcXFxcXCJSb25nWGluZ1ZSLVxcXFxcXFwiKSkge1xcXFxuICAgICAgICBsZXQgdXJsID0gSlNPTi5wYXJzZShyZXF1ZXN0KFxcXFxcXFwiaHR0cHM6Ly92dmlwLmZ1bnNsaW5lLmNuOjg4NjYvYXBpLz9rZXk9Zks2eDA3NmsxOExVMzR4MDJOJnVybD1cXFxcXFxcIiArIHZsaW5rKSkudXJsO1xcXFxuICAgICAgICByZXR1cm4gY2hhbmdlVmlkZW9VcmwodXJsKTtcXFxcbiAgICB9IGVsc2UgaWYgKHZsaW5rLmluY2x1ZGVzKFxcXFxcXFwieGZ5LVxcXFxcXFwiKSkge1xcXFxuICAgICAgICBsZXQgdXJsID0gSlNPTi5wYXJzZShyZXF1ZXN0KFxcXFxcXFwiaHR0cHM6Ly92aXAueGZ5dW4ub25lL2hvbWUvYXBpP3R5cGU9eXMmdWlkPTI1ODE5MjMma2V5PWFlZmlrbG90d3pDRUZISk80OCZ1cmw9XFxcXFxcXCIgKyB2bGluaykpLnVybDtcXFxcbiAgICAgICAgcmV0dXJuIGNoYW5nZVZpZGVvVXJsKHVybCk7XFxcXG4gICAgfSBlbHNlIGlmICh2bGluay5pbmNsdWRlcyhcXFxcXFxcImZlbi5sYW9kaVxcXFxcXFwiKSkge1xcXFxuICAgICAgICBsZXQgaHRtbCA9IGZldGNoKFxcXFxcXFwiaHR0cHM6Ly9wbGF5LnRreXMudHYvbGFvZGkucGhwLz91cmw9XFxcXFxcXCIgKyB2bGluayksXFxcXG4gICAgICAgICAgICB1cmwgPSBodG1sLm1hdGNoKC92dXJsXFxcXFxcXFxzKj1cXFxcXFxcXHMqJyguKiknLylbMV07XFxcXG4gICAgICAgIHJldHVybiBjaGFuZ2VWaWRlb1VybCh1cmwpO1xcXFxuICAgIH0gZWxzZSB7XFxcXG4gICAgICAgIHJldHVybiB2bGluaztcXFxcbiAgICB9XFxcXG59KSgpO1xcXCJ9XVwifSIsInBpY1VybCI6Imh0dHBzOi8vbGFubWVpZ3VvamlhbmcuY29tL3R1Ymlhby9xLzUyLnBuZyIsInRpdGxlIjoi4pqZIOi9u+WQiOmbhuiuvue9riDimpkifQ==
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement