@co0ontty/wand 1.75.7 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,9 +3,9 @@ import { Buffer } from "node:buffer";
3
3
  function decode(value) {
4
4
  return Buffer.from(value, "base64").toString("utf8");
5
5
  }
6
- export const EMBEDDED_WEB_ASSET_VERSION = "b09a314a4de7";
6
+ export const EMBEDDED_WEB_ASSET_VERSION = "bb6c1b57e185";
7
7
  export const EMBEDDED_WEB_ASSETS = {
8
- scriptsJs: decode("InVzZSBzdHJpY3QiOygoKT0+e3ZhciB3dT0id2FuZC1sZWdhY3ktcHdhLWNsZWFudXAtdjEiLEtsPVsid2FuZC1zdGF0aWMtIiwid2FuZC1ydW50aW1lLSJdO2Z1bmN0aW9uIHpyKGUpe2lmKCFlKXJldHVybiExO3RyeXtjb25zdCB0PW5ldyBVUkwoZS5zY3JpcHRVUkwsbG9jYXRpb24uaHJlZik7cmV0dXJuIHQub3JpZ2luPT09bG9jYXRpb24ub3JpZ2luJiZ0LnBhdGhuYW1lPT09Ii9zdy5qcyJ9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIEpsKGUpe3JldHVybiB6cihlLmluc3RhbGxpbmcpfHx6cihlLndhaXRpbmcpfHx6cihlLmFjdGl2ZSl9ZnVuY3Rpb24gR2woKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHd1KT09PSJkb25lIn1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gWWwoKXt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0od3UsImRvbmUiKX1jYXRjaHt9fWFzeW5jIGZ1bmN0aW9uIFFsKCl7aWYoISgic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3IpKXJldHVybiEwO3RyeXtjb25zdCB0PShhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkpLmZpbHRlcihKbCk7cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHQubWFwKG49Pm4udW5yZWdpc3RlcigpKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uICRsKCl7aWYoISgiY2FjaGVzImluIHdpbmRvdykpcmV0dXJuITA7dHJ5e2NvbnN0IHQ9KGF3YWl0IGNhY2hlcy5rZXlzKCkpLmZpbHRlcihuPT5LbC5zb21lKGk9Pm4uc3RhcnRzV2l0aChpKSkpO3JldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChuPT5jYWNoZXMuZGVsZXRlKG4pKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIFhsKCl7aWYoR2woKSlyZXR1cm47Y29uc3QgZT0ic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJnpyKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIpLFt0LG5dPWF3YWl0IFByb21pc2UuYWxsKFtRbCgpLCRsKCldKTshdHx8IW58fChZbCgpLGUmJmxvY2F0aW9uLnJlbG9hZCgpKX1YbCgpO3ZhciBCZz0iJHtlc2NhcGVIdG1sKGNvbmZpZ1BhdGgpfSIsVWk9IndhbmQtY2hhdC1leHBhbmQtc3RhdGUtdjEiLFVyPVtmdW5jdGlvbigpe31dOyhmdW5jdGlvbigpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1scy1zY2hlbWEiKSxuPXQ9PW51bGw/MDpwYXJzZUludCh0LDEwKTtuPj0wfHwobj0wKTtmb3IodmFyIGk9bjtpPFVyLmxlbmd0aDtpKyspdHJ5e1VyW2ldKCl9Y2F0Y2h7fW48VXIubGVuZ3RoJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1scy1zY2hlbWEiLFN0cmluZyhVci5sZW5ndGgpKX1jYXRjaHt9fSkoKTtmdW5jdGlvbiBWaShlLHQpe3RyeXt2YXIgbj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKTtyZXR1cm4gbj09PSJ0cnVlIj8hMDpuPT09ImZhbHNlIj8hMTp0fWNhdGNoe3JldHVybiB0fX1mdW5jdGlvbiB4ZShlLHQpe3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLFN0cmluZyghIXQpKX1jYXRjaHt9fXZhciByPXtzZWxlY3RlZElkOihmdW5jdGlvbigpe3RyeXt2YXIgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0PWUuc2VhcmNoUGFyYW1zLmdldCgic2Vzc2lvbiIpO2lmKHQpcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iLHQpLGUuc2VhcmNoUGFyYW1zLmRlbGV0ZSgic2Vzc2lvbiIpLGhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3Rvcnkuc3RhdGUsIiIsZS50b1N0cmluZygpKSx0fWNhdGNoe310cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iKXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19KSgpLHBvbGxUaW1lcjpudWxsLGNvbmZpZzpudWxsLHNlc3Npb25zOltdLHN1Z2dlc3Rpb25UaW1lcjpudWxsLHRlcm1pbmFsOm51bGwsdGVybWluYWxGaXRJblByb2dyZXNzOiExLHRlcm1pbmFsU2Vzc2lvbklkOm51bGwsdGVybWluYWxPdXRwdXQ6IiIsdGVybWluYWxPdXRwdXRNYXJrZXI6MCx0ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uczp7fSxzeW5jT3V0cHV0QnVmZmVyOm51bGwsc3luY091dHB1dERlYWRsaW5lOjAsc3luY0ZyYW1pbmdSZXNpZHVlOiExLGxhc3RDaHVua0F0OjAsdGVybWluYWxIZWFsdGhUaW1lcjpudWxsLGxhc3RUZXJtaW5hbFJlc3luY0F0OjAsdGVybWluYWxBdXRvRm9sbG93OiEwLHRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw6MCx0ZXJtaW5hbFNjcm9sbElkbGVUaW1lcjpudWxsLHRlcm1pbmFsU2Nyb2xsVGhyZXNob2xkOjEyLHNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbTohMSx0ZXJtaW5hbFZpZXdwb3J0RWw6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcjpudWxsLHRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFRvdWNoU3RhcnRZOjAsdGVybWluYWxDb21wb3Npbmc6ITEscmVzaXplT2JzZXJ2ZXI6bnVsbCxyZXNpemVIYW5kbGVyOm51bGwscmVzaXplVGltZXI6bnVsbCxpbnB1dFF1ZXVlOlByb21pc2UucmVzb2x2ZSgpLHBlbmRpbmdNZXNzYWdlczpbXSxtZXNzYWdlUXVldWU6W10sY3Jvc3NTZXNzaW9uUXVldWU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKSx0PWU/SlNPTi5wYXJzZShlKTpbXTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OltdfWNhdGNoe3JldHVybltdfX0pKCksc3RydWN0dXJlZElucHV0UXVldWU6W10scXVldWVCYXJFeHBhbmRlZDohMSxxdWV1ZUJhckhvdmVySW5kZXg6bnVsbCxxdWV1ZUJhckRyYWc6bnVsbCxxdWV1ZUJhclByb21vdGluZzohMSxkcmFmdHM6e30saXNTeW5jaW5nSW5wdXRCb3g6ITEsbG9naW5QZW5kaW5nOiExLGxvZ2luQ2hlY2tlZDohMSxib290c3RyYXBwaW5nOiEwLHNlc3Npb25zRHJhd2VyT3BlbjpWaSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxzaWRlYmFyUGlubmVkOlZpKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCksc2lkZWJhckNvbGxhcHNlZDpWaSgid2FuZC1zaWRlYmFyLWNvbGxhcHNlZCIsITEpLG1vZGFsT3BlbjohMSxwcmVzZXRWYWx1ZToiIixjd2RWYWx1ZToiIixtb2RlVmFsdWU6Im1hbmFnZWQiLGNoYXRNb2RlOiJtYW5hZ2VkIixjaGF0TW9kZWw6KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsIil8fCIifWNhdGNoe3JldHVybiIifX0pKCksY2hhdFRoaW5raW5nOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC10aGlua2luZy1lZmZvcnQiKXx8Im9mZiI7cmV0dXJuIGU9PT0ib2ZmInx8ZT09PSJzdGFuZGFyZCJ8fGU9PT0iZGVlcCJ8fGU9PT0ibWF4Ij9lOiJvZmYifWNhdGNoe3JldHVybiJvZmYifX0pKCksYXZhaWxhYmxlTW9kZWxzOltdLGF2YWlsYWJsZUNvZGV4TW9kZWxzOltdLG1vZGVsc1JlZnJlc2hpbmc6ITEsc2Vzc2lvbkNyZWF0ZUtpbmQ6InN0cnVjdHVyZWQiLHNlc3Npb25DcmVhdGVXb3JrdHJlZTohMSxzZXNzaW9uVG9vbDoiY2xhdWRlIixhY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkOm51bGwsd29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0Om51bGwsd29ya3RyZWVNZXJnZUxvYWRpbmc6ITEsd29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc6ITEsd29ya3RyZWVNZXJnZUVycm9yOiIiLHByZWZlcnJlZENvbW1hbmQ6ImNsYXVkZSIsc3RydWN0dXJlZFJ1bm5lcjoiY2xhdWRlLWNsaS1wcmludCIsbGFzdFJlc2l6ZTp7Y29sczowLHJvd3M6MH0saXNPbmxpbmU6bmF2aWdhdG9yLm9uTGluZSx3czpudWxsLHdzQ29ubmVjdGVkOiExLGxhc3RXc01lc3NhZ2VBdDowLHdzSGVhcnRiZWF0Q2hlY2tUaW1lcjpudWxsLF91cGRhdGVCdWJibGVTaG93bjohMSxub3RpZmljYXRpb25IaXN0b3J5Ont9LGRlbGF5ZWROb3RpZmljYXRpb25UaW1lcjpudWxsLG5vdGlmU291bmQ6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLW5vdGlmLXNvdW5kIik7cmV0dXJuIGU9PT1udWxsPyEwOmU9PT0idHJ1ZSJ9Y2F0Y2h7cmV0dXJuITB9fSkoKSxub3RpZlZvbHVtZTooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtbm90aWYtdm9sdW1lIik7cmV0dXJuIGU9PT1udWxsPzgwOk1hdGgubWF4KDAsTWF0aC5taW4oMTAwLHBhcnNlSW50KGUsMTApfHw4MCkpfWNhdGNoe3JldHVybiA4MH19KSgpLG5vdGlmQnViYmxlOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1ub3RpZi1idWJibGUiKTtyZXR1cm4gZT09PW51bGw/ITA6ZT09PSJ0cnVlIn1jYXRjaHtyZXR1cm4hMH19KSgpLHRvb2xDb250ZW50Q2FjaGU6e30sbGFzdFNlcUJ5U2Vzc2lvbjp7fSxjdXJyZW50VmlldzoidGVybWluYWwiLHRlcm1pbmFsU2NhbGU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXRlcm1pbmFsLXNjYWxlIik7cmV0dXJuIGU/cGFyc2VGbG9hdChlKToxfWNhdGNoe3JldHVybiAxfX0pKCksdGVybWluYWxCYXNlRm9udFNpemU6MTMsa2V5Ym9hcmRQb3B1cE9wZW46ITEsZmlsZVBhbmVsT3BlbjooZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIpPT09InRydWUifWNhdGNoe3JldHVybiExfX0pKCksdG9wYmFyTW9yZU9wZW46ITEsZ2l0U3RhdHVzOm51bGwsZ2l0U3RhdHVzU2Vzc2lvbklkOm51bGwsZ2l0U3RhdHVzTG9hZGluZzohMSxnaXRTdGF0dXNJbmZsaWdodDpudWxsLGdpdFN0YXR1c0xhc3RGZXRjaEF0OjAscXVpY2tDb21taXRPcGVuOiExLHF1aWNrQ29tbWl0U3VibWl0dGluZzohMSxxdWlja0NvbW1pdEdlbmVyYXRpbmc6ITEscXVpY2tDb21taXRFcnJvcjoiIixxdWlja0NvbW1pdEZvcm06e2N1c3RvbU1lc3NhZ2U6IiIsdGFnOiIiLHRhZ0VkaXRlZDohMX0scXVpY2tDb21taXRQdXNoaW5nOiExLHF1aWNrQ29tbWl0UHVzaEVycm9yOiIiLHF1aWNrQ29tbWl0UmVzdWx0Om51bGwscXVpY2tDb21taXREcmFnQWN0aW9uOiJjb21taXQiLHF1aWNrQ29tbWl0U3VibW9kdWxlSW50ZW50OiExLGNoYXRTdGlja1RvQm90dG9tOiEwLGNoYXRQaW5UdXJuVG9Ub3A6ITEsY2hhdFBpbk1pblVzZXJJbmRleDowLGNoYXRBdXRvRm9sZEVuYWJsZWQ6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNoYXQtYXV0by1mb2xkIik7cmV0dXJuIGU9PT1udWxsPyEwOmU9PT0idHJ1ZSJ9Y2F0Y2h7cmV0dXJuITB9fSkoKSxjaGF0QXV0b0ZvbGRTbmFwc2hvdDpudWxsLGNoYXRVbnJlYWRDb3VudDowLGNoYXRVbnJlYWRTdGFydEluZGV4Oi0xLGNoYXRTY3JvbGxUaHJlc2hvbGQ6MTYwLGNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbDohMSxjaGF0UHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw6MCxjaGF0U2Nyb2xsRWxlbWVudDpudWxsLGNoYXRTY3JvbGxIYW5kbGVyOm51bGwsY2hhdFNjcm9sbFdoZWVsSGFuZGxlcjpudWxsLGNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlcjpudWxsLGNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyOm51bGwsY2hhdFRvdWNoU3RhcnRZOjAsY2hhdEluaXRpYWxSZW5kZXJEb25lOiExLGxhc3RGb3JlZ3JvdW5kU3luY0F0OjAsZm9yZWdyb3VuZFN5bmNUaW1lcjpudWxsLHdzUmVjb25uZWN0QXR0ZW1wdHM6MCx3c1JlY29ubmVjdFRpbWVyOm51bGwsY3VycmVudE1lc3NhZ2VzOltdLGxhc3RSZW5kZXJlZEhhc2g6MCxsYXN0UmVuZGVyZWRNc2dDb3VudDowLGxhc3RSZW5kZXJlZEVtcHR5Om51bGwscmVuZGVyUGVuZGluZzohMSxjaGF0UGFnZVNpemU6MjAsY2hhdFJlbmRlcmVkQ291bnQ6MjAsY3VycmVudFRhc2s6bnVsbCx0ZXJtaW5hbEludGVyYWN0aXZlOiExLG1pbmlLZXlib2FyZFZpc2libGU6ITEsbW9kaWZpZXJzOntjdHJsOiExLGFsdDohMSxzaGlmdDohMX0sam95c3RpY2tQb3M6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWJhbGwtcG9zIik7aWYoIWUpcmV0dXJuIG51bGw7dmFyIHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gdCYmdHlwZW9mIHQ9PSJvYmplY3QiP3Q6bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19KSgpLGpveXN0aWNrUGlubmVkT3BlbjohMSxqb3lzdGlja1Jvb3RFbDpudWxsLGpveXN0aWNrUGFuZWxFbDpudWxsLGpveXN0aWNrQmFja2Ryb3BFbDpudWxsLGpveXN0aWNrQmFsbEVsOm51bGwsam95c3RpY2tQb2ludGVySWQ6bnVsbCxqb3lzdGlja0dlc3R1cmU6bnVsbCxqb3lzdGlja1ByZXNzU3RhcnQ6bnVsbCxqb3lzdGlja0xvbmdQcmVzc1RpbWVyOm51bGwsam95c3RpY2tNb3ZlSGFuZGxlcjpudWxsLGpveXN0aWNrVXBIYW5kbGVyOm51bGwsam95c3RpY2tSZXNpemVIYW5kbGVyOm51bGwsZmlsZVNlYXJjaFF1ZXJ5OiIiLGZpbGVFeHBsb3JlckxvYWRpbmc6ITEsYWxsRmlsZXM6W10sZmlsZUV4cGxvcmVyQ3dkOiIiLGZpbGVFeHBsb3JlclRydW5jYXRlZDohMSxmaWxlRXhwbG9yZXJUb3RhbDowLGNsYXVkZUhpc3Rvcnk6W10sY2xhdWRlSGlzdG9yeUxvYWRlZDohMSxjbGF1ZGVIaXN0b3J5RXhwYW5kZWQ6ITEsY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyczp7fSxhcmNoaXZlZEV4cGFuZGVkOiExLHNlc3Npb25zTWFuYWdlTW9kZTohMSxzZWxlY3RlZFNlc3Npb25JZHM6e30sc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzOnt9LGNvZGV4SGlzdG9yeTpbXSxjb2RleEhpc3RvcnlMb2FkZWQ6ITEsY29kZXhIaXN0b3J5RXhwYW5kZWREaXJzOnt9LHNlbGVjdGVkQ29kZXhIaXN0b3J5SWRzOnt9LGFza1VzZXJTZWxlY3Rpb25zOnt9LHF1ZXVlRXBvY2g6MCxwZW5kaW5nQXR0YWNobWVudHM6W10sd29ya2luZ0RpcjooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtd29ya2luZy1kaXIiKTtyZXR1cm4gZXx8IiJ9Y2F0Y2h7cmV0dXJuIiJ9fSkoKX0sS2k9Ilx1NEUyRFx1NjU4NyIsVnI9e1x1NEUyRFx1NjU4Nzp7InN1YmFnZW50LnRhZyI6Ilx1NUI1MFx1NEVFM1x1NzQwNiIsInN1YmFnZW50LmhhbmRvZmYiOiJ7cGFyZW50fSBcdThCQTkge3N1Yn0gXHU1RTJFXHU1RkQ5Iiwic3ViYWdlbnQuaGFuZG9mZi53aXRoX2Rlc2MiOiJ7cGFyZW50fSBcdThCQTkge3N1Yn0gXHU1RTJFXHU1RkQ5XHVGRjFBIiwic3ViYWdlbnQuY29udGludWVkIjoiXHU3RUU3XHU3RUVEXHU4RjkzXHU1MUZBIiwic3ViYWdlbnQudGFzay5kb25lIjoiXHU0RUZCXHU1MkExXHU1QjhDXHU2MjEwIiwic3ViYWdlbnQudGFzay5mYWlsZWQiOiJcdTRFRkJcdTUyQTFcdTU5MzFcdThEMjUiLCJzdWJhZ2VudC5ydW5uaW5nIjoiXHU4RkQwXHU4ODRDXHU0RTJEIiwic3ViYWdlbnQubm9fb3V0cHV0IjoiXHVGRjA4XHU2NUUwXHU4RjkzXHU1MUZBXHVGRjA5Iiwic3ViYWdlbnQuaGVscGVyX2ZhbGxiYWNrX3ByZWZpeCI6Ilx1NTM0Rlx1NEY1Q1x1NzMyQlx4QjciLCJzdWJhZ2VudC50aXRsZV9hcmlhIjoiXHU3MEI5XHU1MUZCXHU1QzU1XHU1RjAwIC8gXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIiwic3ViYWdlbnQudGFnX3RpdGxlIjoiXHU1QjUwXHU0RUUzXHU3NDA2IC8gc3ViYWdlbnQiLCJ1aS5leHBhbmQiOiJcdTVDNTVcdTVGMDAiLCJ1aS5jb2xsYXBzZSI6Ilx1NjUzNlx1OEQ3NyIsInVpLmV4cGFuZF9wYW5lbF9hcmlhIjoiXHU1QzU1XHU1RjAwXHU1QjUwXHU0RUUzXHU3NDA2XHU4RjkzXHU1MUZBIiwidWkuY29sbGFwc2VfcGFuZWxfYXJpYSI6Ilx1NjUzNlx1OEQ3N1x1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIsImhpc3RvcnkuZXhwYW5kIjoiXHU1QzU1XHU1RjAwXHU1Mzg2XHU1M0YyXHU1QkY5XHU4QkREIiwiaGlzdG9yeS5jb2xsYXBzZSI6Ilx1NjUzNlx1OEQ3N1x1NTM4Nlx1NTNGMlx1NUJGOVx1OEJERCIsImhpc3Rvcnkucm91bmRzIjoie259IFx1OEY2RVx1NUJGOVx1OEJERCIsImhpc3RvcnkudG9vbHMiOiJ7bn0gXHU2QjIxXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4IiwiaGlzdG9yeS5hZ2VudHMiOiJ7bn0gXHU0RTJBXHU1QjUwXHU0RUUzXHU3NDA2IiwiaGlzdG9yeS5lcnJvcnMiOiJ7bn0gXHU0RTJBXHU1OTMxXHU4RDI1Iiwic3RvcC5jb25maXJtLnRpdGxlIjoiXHU1MDVDXHU2QjYyXHU0RUZCXHU1MkExIiwic3RvcC5jb25maXJtLm1lc3NhZ2UiOiJcdTc4NkVcdTVCOUFcdTg5ODFcdTUwNUNcdTZCNjJcdTVGNTNcdTUyNERcdTZCNjNcdTU3MjhcdThGRDBcdTg4NENcdTc2ODRcdTRFRkJcdTUyQTFcdTU0MTdcdUZGMUYiLCJzdG9wLmNvbmZpcm0ub2siOiJcdTUwNUNcdTZCNjIiLCJzdG9wLmNvbmZpcm0uY2FuY2VsIjoiXHU1M0Q2XHU2RDg4In0sRW5nbGlzaDp7InN1YmFnZW50LnRhZyI6IlN1YmFnZW50Iiwic3ViYWdlbnQuaGFuZG9mZiI6IntwYXJlbnR9IGFza2VkIHtzdWJ9IGZvciBoZWxwIiwic3ViYWdlbnQuaGFuZG9mZi53aXRoX2Rlc2MiOiJ7cGFyZW50fSBhc2tlZCB7c3VifSBmb3IgaGVscCB3aXRoOiAiLCJzdWJhZ2VudC5jb250aW51ZWQiOiJjb250aW51ZWQiLCJzdWJhZ2VudC50YXNrLmRvbmUiOiJUYXNrIGNvbXBsZXRlIiwic3ViYWdlbnQudGFzay5mYWlsZWQiOiJUYXNrIGZhaWxlZCIsInN1YmFnZW50LnJ1bm5pbmciOiJSdW5uaW5nIiwic3ViYWdlbnQubm9fb3V0cHV0IjoiKG5vIG91dHB1dCkiLCJzdWJhZ2VudC5oZWxwZXJfZmFsbGJhY2tfcHJlZml4IjoiSGVscGVyXHhCNyIsInN1YmFnZW50LnRpdGxlX2FyaWEiOiJDbGljayB0byBleHBhbmQgLyBjb2xsYXBzZSBzdWJhZ2VudCBvdXRwdXQiLCJzdWJhZ2VudC50YWdfdGl0bGUiOiJTdWJhZ2VudCIsInVpLmV4cGFuZCI6IkV4cGFuZCIsInVpLmNvbGxhcHNlIjoiQ29sbGFwc2UiLCJ1aS5leHBhbmRfcGFuZWxfYXJpYSI6IkV4cGFuZCBzdWJhZ2VudCBvdXRwdXQiLCJ1aS5jb2xsYXBzZV9wYW5lbF9hcmlhIjoiQ29sbGFwc2Ugc3ViYWdlbnQgb3V0cHV0IiwiaGlzdG9yeS5leHBhbmQiOiJTaG93IGVhcmxpZXIgY29udmVyc2F0aW9uIiwiaGlzdG9yeS5jb2xsYXBzZSI6IkhpZGUgZWFybGllciBjb252ZXJzYXRpb24iLCJoaXN0b3J5LnJvdW5kcyI6IntufSByb3VuZHMiLCJoaXN0b3J5LnRvb2xzIjoie259IHRvb2wgY2FsbHMiLCJoaXN0b3J5LmFnZW50cyI6IntufSBzdWJhZ2VudHMiLCJoaXN0b3J5LmVycm9ycyI6IntufSBmYWlsZWQiLCJzdG9wLmNvbmZpcm0udGl0bGUiOiJTdG9wIHRhc2siLCJzdG9wLmNvbmZpcm0ubWVzc2FnZSI6IlN0b3AgdGhlIHRhc2sgdGhhdCdzIGN1cnJlbnRseSBydW5uaW5nPyIsInN0b3AuY29uZmlybS5vayI6IlN0b3AiLCJzdG9wLmNvbmZpcm0uY2FuY2VsIjoiQ2FuY2VsIn19O2Z1bmN0aW9uIEN1KCl7dmFyIGU9ci5jb25maWcmJnR5cGVvZiByLmNvbmZpZy5sYW5ndWFnZT09InN0cmluZyI/ci5jb25maWcubGFuZ3VhZ2UudHJpbSgpOiIiO2lmKCFlKXJldHVybiBLaTtpZihWcltlXSlyZXR1cm4gZTt2YXIgdD1lLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHQ9PT0iZW5nbGlzaCJ8fHQ9PT0iZW4ifHx0LmluZGV4T2YoImVuZ2xpc2giKT09PTB8fHQuaW5kZXhPZigiXHU4MkYxIik9PT0wPyJFbmdsaXNoIjp0PT09Ilx1NEUyRFx1NjU4NyJ8fHQ9PT0iemgifHx0LmluZGV4T2YoInpoIik9PT0wfHx0LmluZGV4T2YoIlx1NEUyRCIpPT09MHx8dC5pbmRleE9mKCJjaGluZXNlIik9PT0wPyJcdTRFMkRcdTY1ODciOiJFbmdsaXNoIn1mdW5jdGlvbiBsZShlLHQpe3ZhciBuPUN1KCksaT1WcltuXXx8VnJbS2ldLGE9aSYmZSBpbiBpP2lbZV06bnVsbDtpZihhPT1udWxsKXt2YXIgdT1WcltLaV07YT11JiZlIGluIHU/dVtlXTplfWlmKHQmJnR5cGVvZiBhPT0ic3RyaW5nIilmb3IodmFyIHMgaW4gdClPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodCxzKSYmKGE9YS5zcGxpdCgieyIrcysifSIpLmpvaW4odFtzXSkpO3JldHVybiBhfXZhciBabD17c2hpZWxkOic8cGF0aCBkPSJNMTIgMjJzOC00IDgtMTBWNWwtOC0zLTggM3Y3YzAgNiA4IDEwIDggMTB6Ii8+JyxzaGllbGRDaGVjazonPHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPjxwb2x5bGluZSBwb2ludHM9IjkgMTIgMTEgMTQgMTUgMTAiLz4nLGNwdTonPHJlY3QgeD0iNyIgeT0iNyIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiByeD0iMiIvPjxwYXRoIGQ9Ik05IDF2MyIvPjxwYXRoIGQ9Ik0xNSAxdjMiLz48cGF0aCBkPSJNOSAyMHYzIi8+PHBhdGggZD0iTTE1IDIwdjMiLz48cGF0aCBkPSJNMjAgOWgzIi8+PHBhdGggZD0iTTIwIDE1aDMiLz48cGF0aCBkPSJNMSA5aDMiLz48cGF0aCBkPSJNMSAxNWgzIi8+PHJlY3QgeD0iMTAiIHk9IjEwIiB3aWR0aD0iNCIgaGVpZ2h0PSI0IiByeD0iMSIvPicsYnJhaW46JzxwYXRoIGQ9Ik05LjUgNC41YTMgMyAwIDAgMC00LjcgMy4xIDMuMyAzLjMgMCAwIDAgLjMgNi4xQTMgMyAwIDAgMCA4IDE5aDEuNVY0LjV6Ii8+PHBhdGggZD0iTTE0LjUgNC41YTMgMyAwIDAgMSA0LjcgMy4xIDMuMyAzLjMgMCAwIDEtLjMgNi4xQTMgMyAwIDAgMSAxNiAxOWgtMS41VjQuNXoiLz48cGF0aCBkPSJNOS41IDhINy44Ii8+PHBhdGggZD0iTTE0LjUgOGgxLjciLz48cGF0aCBkPSJNOS41IDEzSDcuNiIvPjxwYXRoIGQ9Ik0xNC41IDEzaDEuOSIvPicsa2V5Ym9hcmQ6JzxyZWN0IHg9IjIiIHk9IjYiIHdpZHRoPSIyMCIgaGVpZ2h0PSIxMiIgcng9IjIiLz48bGluZSB4MT0iNiIgeTE9IjEwIiB4Mj0iNiIgeTI9IjEwIi8+PGxpbmUgeDE9IjEwIiB5MT0iMTAiIHgyPSIxMCIgeTI9IjEwIi8+PGxpbmUgeDE9IjE0IiB5MT0iMTAiIHgyPSIxNCIgeTI9IjEwIi8+PGxpbmUgeDE9IjE4IiB5MT0iMTAiIHgyPSIxOCIgeTI9IjEwIi8+PGxpbmUgeDE9IjYiIHkxPSIxNCIgeDI9IjYiIHkyPSIxNCIvPjxsaW5lIHgxPSIxOCIgeTE9IjE0IiB4Mj0iMTgiIHkyPSIxNCIvPjxsaW5lIHgxPSI5IiB5MT0iMTQiIHgyPSIxNSIgeTI9IjE0Ii8+Jyx0ZXJtaW5hbDonPHBvbHlsaW5lIHBvaW50cz0iNCA3IDkgMTIgNCAxNyIvPjxsaW5lIHgxPSIxMiIgeTE9IjE3IiB4Mj0iMjAiIHkyPSIxNyIvPicsY2hhdDonPHBhdGggZD0iTTIxIDEyYTggOCAwIDAgMS0xMi45IDYuM0wzIDIwbDEuNy01LjFBOCA4IDAgMSAxIDIxIDEyeiIvPicsZm9sZGVyOic8cGF0aCBkPSJNMyA3YTIgMiAwIDAgMSAyLTJoNGwyIDJoOGEyIDIgMCAwIDEgMiAydjhhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ6Ii8+Jyx0cmFzaDonPHBvbHlsaW5lIHBvaW50cz0iMyA2IDUgNiAyMSA2Ii8+PHBhdGggZD0iTTE5IDZsLTEgMTNhMiAyIDAgMCAxLTIgMkg4YTIgMiAwIDAgMS0yLTJMNSA2Ii8+PHBhdGggZD0iTTEwIDExdjYiLz48cGF0aCBkPSJNMTQgMTF2NiIvPjxwYXRoIGQ9Ik05IDZWNGExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXYyIi8+JyxjaGV2cm9uRG93bjonPHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiLz4nLGJlbGw6JzxwYXRoIGQ9Ik0xOCAxNnYtNWE2IDYgMCAxIDAtMTIgMHY1bC0yIDJoMTZ6Ii8+PHBhdGggZD0iTTEwIDIxYTIgMiAwIDAgMCA0IDAiLz4nLG11c2ljOic8cGF0aCBkPSJNOSAxOFY1bDEyLTJ2MTMiLz48Y2lyY2xlIGN4PSI2IiBjeT0iMTgiIHI9IjMiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjE2IiByPSIzIi8+Jyx2aWJyYXRlOic8cmVjdCB4PSI5IiB5PSI0IiB3aWR0aD0iNiIgaGVpZ2h0PSIxNiIgcng9IjEiLz48cGF0aCBkPSJNNSA4djgiLz48cGF0aCBkPSJNMyAxMHY0Ii8+PHBhdGggZD0iTTE5IDh2OCIvPjxwYXRoIGQ9Ik0yMSAxMHY0Ii8+JyxnbG9iZTonPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iOSIvPjxsaW5lIHgxPSIzIiB5MT0iMTIiIHgyPSIyMSIgeTI9IjEyIi8+PHBhdGggZD0iTTEyIDNhMTQgMTQgMCAwIDEgMCAxOCIvPjxwYXRoIGQ9Ik0xMiAzYTE0IDE0IDAgMCAwIDAgMTgiLz4nLHNtYXJ0cGhvbmU6JzxyZWN0IHg9IjYiIHk9IjIiIHdpZHRoPSIxMiIgaGVpZ2h0PSIyMCIgcng9IjIuNSIvPjxsaW5lIHgxPSIxMSIgeTE9IjE4IiB4Mj0iMTMiIHkyPSIxOCIvPicsZGVza3RvcDonPHJlY3QgeD0iMyIgeT0iNCIgd2lkdGg9IjE4IiBoZWlnaHQ9IjEyIiByeD0iMiIvPjxsaW5lIHgxPSI4IiB5MT0iMjAiIHgyPSIxNiIgeTI9IjIwIi8+PGxpbmUgeDE9IjEyIiB5MT0iMTYiIHgyPSIxMiIgeTI9IjIwIi8+JyxsaW5rOic8cGF0aCBkPSJNMTAgMTRhNC41IDQuNSAwIDAgMCA2LjM2IDBsMy0zYTQuNSA0LjUgMCAxIDAtNi4zNi02LjM2bC0xLjQyIDEuNDEiLz48cGF0aCBkPSJNMTQgMTBhNC41IDQuNSAwIDAgMC02LjM2IDBsLTMgM2E0LjUgNC41IDAgMSAwIDYuMzYgNi4zNmwxLjQyLTEuNDEiLz4nLHBhbGV0dGU6JzxjaXJjbGUgY3g9IjEzLjUiIGN5PSI2LjUiIHI9IjEiLz48Y2lyY2xlIGN4PSIxNy41IiBjeT0iMTAuNSIgcj0iMSIvPjxjaXJjbGUgY3g9IjguNSIgY3k9IjcuNSIgcj0iMSIvPjxjaXJjbGUgY3g9IjYuNSIgY3k9IjEyLjUiIHI9IjEiLz48cGF0aCBkPSJNMTIgM2E5IDkgMCAxIDAgMCAxOCAxLjUgMS41IDAgMCAwIDEuMS0yLjUgMS41IDEuNSAwIDAgMSAxLjEtMi41aDIuM0E0LjUgNC41IDAgMCAwIDIxIDExLjVDMjEgNi44IDE2Ljk3IDMgMTIgM3oiLz4nLHBsYXk6Jzxwb2x5Z29uIHBvaW50cz0iNiA0IDIwIDEyIDYgMjAgNiA0Ii8+Jyx3cmVuY2g6JzxwYXRoIGQ9Ik0xNC43IDYuM2E0IDQgMCAxIDEgNCA0bC05IDktMy41IDEgMS0zLjUgNy41LTcuNXoiLz4nLHBhdzonPGNpcmNsZSBjeD0iNy41IiBjeT0iOSIgcj0iMiIgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9Im5vbmUiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjYuOCIgcj0iMiIgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9Im5vbmUiLz48Y2lyY2xlIGN4PSIxNi41IiBjeT0iOSIgcj0iMiIgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9Im5vbmUiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjEzLjMiIHI9IjEuOCIgZmlsbD0iY3VycmVudENvbG9yIiBzdHJva2U9Im5vbmUiLz48cGF0aCBkPSJNNy4yIDE2LjNjLjUtMi45IDIuMy00LjggNC44LTQuOHM0LjMgMS45IDQuOCA0LjhjLjMgMS44LS45IDMuMi0yLjYgMi42LS44LS4zLTEuNC0uNi0yLjItLjZzLTEuNC4zLTIuMi42Yy0xLjcuNi0yLjktLjgtMi42LTIuNnoiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+JyxlZGl0Oic8cGF0aCBkPSJNMTIgMjBoOSIvPjxwYXRoIGQ9Ik0xNi41IDMuNWEyLjEyIDIuMTIgMCAwIDEgMyAzTDcgMTlsLTQgMSAxLTR6Ii8+JyxzaWduYWw6JzxwYXRoIGQ9Ik0yIDEyYTE1IDE1IDAgMCAxIDIwIDAiLz48cGF0aCBkPSJNNSAxNmExMCAxMCAwIDAgMSAxNCAwIi8+PHBhdGggZD0iTTkgMjBhNCA0IDAgMCAxIDYgMCIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMjAiIHI9IjAuNSIgZmlsbD0iY3VycmVudENvbG9yIi8+JyxmaWxlOic8cGF0aCBkPSJNMTQgM0g2YTIgMiAwIDAgMC0yIDJ2MTRhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0yVjl6Ii8+PHBvbHlsaW5lIHBvaW50cz0iMTQgMyAxNCA5IDIwIDkiLz4nLHNpZ21hOic8cG9seWxpbmUgcG9pbnRzPSIxOCA0IDYgNCAxMyAxMiA2IDIwIDE4IDIwIi8+Jyx4Oic8cGF0aCBkPSJNMTggNiA2IDE4Ii8+PHBhdGggZD0iTTYgNmwxMiAxMiIvPicscGx1czonPGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiLz48bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiIvPicsbWljOic8cmVjdCB4PSI5IiB5PSIzIiB3aWR0aD0iNiIgaGVpZ2h0PSIxMSIgcng9IjMiLz48cGF0aCBkPSJNNSAxMWE3IDcgMCAwIDAgMTQgMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjE4IiB4Mj0iMTIiIHkyPSIyMSIvPjxsaW5lIHgxPSI5IiB5MT0iMjEiIHgyPSIxNSIgeTI9IjIxIi8+JyxwYXBlcmNsaXA6JzxwYXRoIGQ9Ik0yMS40NCAxMS4wNSAxMi4yNSAyMC4yNGE2IDYgMCAwIDEtOC40OS04LjQ5bDguODQtOC44NGE0IDQgMCAxIDEgNS42NiA1LjY2TDkuNDEgMTcuNDFhMiAyIDAgMSAxLTIuODMtMi44M2w4Ljg0LTguODMiLz4nfTtmdW5jdGlvbiBWKGUsdCl7dmFyIG49WmxbZV07aWYoIW4pcmV0dXJuIiI7dD10fHx7fTt2YXIgaT10LnNpemV8fDE0LGE9dC5zdHJva2VXaWR0aHx8MS44LHU9dC5jbHM/JyBjbGFzcz0iJyt0LmNscysnIic6IiIscz10LmZpbGx8fCJub25lIjtyZXR1cm4iPHN2ZyIrdSsnIHdpZHRoPSInK2krJyIgaGVpZ2h0PSInK2krJyIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSInK3MrJyIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iJythKyciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPicrbisiPC9zdmc+In1mdW5jdGlvbiAkdCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpO2lmKCFlKXJldHVybiByLmNoYXRTY3JvbGxFbGVtZW50PW51bGwsbnVsbDt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7cmV0dXJuIHQ/KHIuY2hhdFNjcm9sbEVsZW1lbnQ9dCx0KTooci5jaGF0U2Nyb2xsRWxlbWVudD1udWxsLG51bGwpfWZ1bmN0aW9uIEppKGUpe3ZhciB0PWV8fCR0KCk7cmV0dXJuIHQ/TWF0aC5hYnModC5zY3JvbGxUb3ApPHIuY2hhdFNjcm9sbFRocmVzaG9sZDohMH1mdW5jdGlvbiBEZyhlKXtyLmNoYXRTdGlja1RvQm90dG9tPSEhZSxyLmNoYXRTdGlja1RvQm90dG9tJiZNdCh7cmVtb3ZlRGl2aWRlcjohMH0pLFJlKCl9ZnVuY3Rpb24gTXQoZSl7ZT1lfHx7fTt2YXIgdD1yLmNoYXRVbnJlYWRDb3VudD4wfHxyLmNoYXRVbnJlYWRTdGFydEluZGV4Pj0wO2lmKHIuY2hhdFVucmVhZENvdW50PTAsci5jaGF0VW5yZWFkU3RhcnRJbmRleD0tMSxlLnJlbW92ZURpdmlkZXIhPT0hMSl7dmFyIG49JHQoKTtpZihuKXt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LXVucmVhZC1kaXZpZGVyIik7aSYmaS5wYXJlbnROb2RlJiZpLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoaSl9fXQmJlJlKCl9ZnVuY3Rpb24gR2koZSl7aWYoZXx8KGU9JHQoKSksISFlKXt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LXVucmVhZC1kaXZpZGVyIik7aWYoci5jaGF0VW5yZWFkU3RhcnRJbmRleDwwfHxyLmNoYXRVbnJlYWRDb3VudDw9MCl7dCYmdC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCk7cmV0dXJufWZvcih2YXIgbj1yLmNoYXRVbnJlYWRTdGFydEluZGV4LGk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlIiksYT1udWxsLHU9MDt1PGkubGVuZ3RoO3UrKyl7dmFyIHM9aVt1XS5nZXRBdHRyaWJ1dGUoImRhdGEtbXNnLWluZGV4Iik7aWYocyE9PW51bGwpe3ZhciBvPXBhcnNlSW50KHMsMTApO2lmKCFpc05hTihvKSYmbzxuKXthPWlbdV07YnJlYWt9fX12YXIgbD1yLmNoYXRVbnJlYWRDb3VudCsiIFx1Njc2MVx1NjVCMFx1NkQ4OFx1NjA2RiI7dHx8KHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksdC5jbGFzc05hbWU9ImNoYXQtdW5yZWFkLWRpdmlkZXIiLHQuc2V0QXR0cmlidXRlKCJyb2xlIiwic2VwYXJhdG9yIiksdC5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJjaGF0LXVucmVhZC1kaXZpZGVyLWxpbmUiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtZGl2aWRlci1sYWJlbCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LXVucmVhZC1kaXZpZGVyLWxpbmUiPjwvc3Bhbj4nKSx0LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LXVucmVhZC1kaXZpZGVyLWxhYmVsIikudGV4dENvbnRlbnQ9bCxhPyh0Lm5leHRTaWJsaW5nIT09YXx8dC5wYXJlbnROb2RlIT09ZSkmJmUuaW5zZXJ0QmVmb3JlKHQsYSk6KHQucGFyZW50Tm9kZSE9PWV8fHQubmV4dFNpYmxpbmchPT1udWxsKSYmZS5hcHBlbmRDaGlsZCh0KX19ZnVuY3Rpb24gUmUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC11bnJlYWQtYnViYmxlIik7aWYoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09ci5zZWxlY3RlZElkfSksbj0hSmkoKSxpPSEhdCYmci5jdXJyZW50Vmlldz09PSJjaGF0IiYmbiYmIXIuY2hhdFBpblR1cm5Ub1RvcDtlLmNsYXNzTGlzdC50b2dnbGUoInZpc2libGUiLGkpLGUuY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLXVucmVhZCIsci5jaGF0VW5yZWFkQ291bnQ+MCk7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtYnViYmxlLWNvdW50Iik7YSYmKHIuY2hhdFVucmVhZENvdW50PjA/KGEudGV4dENvbnRlbnQ9ci5jaGF0VW5yZWFkQ291bnQ+OTk/Ijk5KyI6U3RyaW5nKHIuY2hhdFVucmVhZENvdW50KSxhLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKSk6KGEudGV4dENvbnRlbnQ9IiIsYS5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIikpKTt2YXIgdT1yLmNoYXRVbnJlYWRDb3VudD4wP3IuY2hhdFVucmVhZENvdW50KyIgXHU2NzYxXHU2NUIwXHU2RDg4XHU2MDZGXHVGRjBDXHU3MEI5XHU1MUZCXHU2N0U1XHU3NzBCIjoiXHU1NkRFXHU1MjMwXHU2NzAwXHU2NUIwXHU2RDg4XHU2MDZGIjtlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdSksZS5zZXRBdHRyaWJ1dGUoInRpdGxlIix1KTt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKTtzJiZzLmNsYXNzTGlzdC50b2dnbGUoImhhcy1qdW1wLWJ0biIsaSl9fWZ1bmN0aW9uIGtnKGUpe3IuY2hhdFBpblR1cm5Ub1RvcD0hMCxyLmNoYXRQaW5NaW5Vc2VySW5kZXg9dHlwZW9mIGU9PSJudW1iZXIiP2U6MCxyLmNoYXRTdGlja1RvQm90dG9tPSExLE10KHtyZW1vdmVEaXZpZGVyOiEwfSl9ZnVuY3Rpb24gYXIoKXtyLmNoYXRQaW5UdXJuVG9Ub3AmJihyLmNoYXRQaW5UdXJuVG9Ub3A9ITEsci5jaGF0UGluTWluVXNlckluZGV4PTAsWWkoKSl9ZnVuY3Rpb24gZWMoZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LXBpbi1zcGFjZXIiKTtyZXR1cm4hbiYmdCYmKG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iiksbi5jbGFzc05hbWU9ImNoYXQtcGluLXNwYWNlciIsbi5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLG4uc3R5bGUuZmxleD0iMCAwIGF1dG8iLG4uc3R5bGUud2lkdGg9IjEwMCUiLG4uc3R5bGUuaGVpZ2h0PSIwcHgiLG4uc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsZS5pbnNlcnRCZWZvcmUobixlLmZpcnN0Q2hpbGQpKSxufHxudWxsfWZ1bmN0aW9uIFlpKGUpe3ZhciB0PWV8fCR0KCk7aWYodCl7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1waW4tc3BhY2VyIik7biYmbi5wYXJlbnROb2RlJiZuLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobil9fWZ1bmN0aW9uIEJ1KGUpe2lmKCFyLmNoYXRQaW5UdXJuVG9Ub3ApcmV0dXJuITE7dmFyIHQ9ZXx8JHQoKTtpZighdHx8IXQuaXNDb25uZWN0ZWQpcmV0dXJuITE7Zm9yKHZhciBuPXIuY3VycmVudE1lc3NhZ2VzfHxbXSxpPS0xLGE9bi5sZW5ndGgtMTthPj0wO2EtLSlpZihuW2FdJiZuW2FdLnJvbGU9PT0idXNlciIpe2k9YTticmVha31pZihpPDB8fGk8ci5jaGF0UGluTWluVXNlckluZGV4KXJldHVybiExO3ZhciB1PXQucXVlcnlTZWxlY3RvcignLmNoYXQtbWVzc2FnZVtkYXRhLW1zZy1pbmRleD0iJytpKyciXScpO2lmKCF1KXJldHVybiExO3ZhciBzPTEyLG89ZWModCwhMCk7byYmKG8uc3R5bGUuaGVpZ2h0PSIwcHgiKTtmb3IodmFyIGw9bnVsbCxjPXQuY2hpbGRyZW4sZj0wO2Y8Yy5sZW5ndGg7ZisrKWlmKCFjW2ZdLmNsYXNzTGlzdHx8IWNbZl0uY2xhc3NMaXN0LmNvbnRhaW5zKCJjaGF0LXBpbi1zcGFjZXIiKSl7bD1jW2ZdO2JyZWFrfWlmKGwpe3ZhciBkPWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuYm90dG9tLXUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLHY9dC5jbGllbnRIZWlnaHQtcyxoPXYtZDtvJiYoby5zdHlsZS5oZWlnaHQ9KGg+MD9NYXRoLmNlaWwoaCk6MCkrInB4Iil9dmFyIGc9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsbT11LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcC1nLXM7cmV0dXJuIE1hdGguYWJzKG0pPi41JiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsci5jaGF0UHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw9RGF0ZS5ub3coKSszNTAsdC5zY3JvbGxUb3ArPW0scmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksITB9ZnVuY3Rpb24gdGMoZSl7dmFyIHQ9JHQoKTtpZighKCF0fHwhdC5pc0Nvbm5lY3RlZCkpe2FyKCksWWkodCksci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITA7dmFyIG49ZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLE10KHtyZW1vdmVEaXZpZGVyOiEwfSksUmUoKX07aWYoZSYmdHlwZW9mIHQuc2Nyb2xsVG89PSJmdW5jdGlvbiIpe3Quc2Nyb2xsVG8oe3RvcDowLGJlaGF2aW9yOiJzbW9vdGgifSksc2V0VGltZW91dChuLDI2MCk7cmV0dXJufXQuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pfX1mdW5jdGlvbiBEdSgpe3ZhciBlPSR0KCk7YXIoKSxlJiZZaShlKSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLE10KHtyZW1vdmVEaXZpZGVyOiEwfSksZSYmZS5pc0Nvbm5lY3RlZCYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLHIuY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPURhdGUubm93KCkrMTgwLGUuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksUmUoKX1mdW5jdGlvbiB1cigpe3ZhciBlPSR0KCk7aWYoISghZXx8IWUuaXNDb25uZWN0ZWQpKXtpZihyLmNoYXRTY3JvbGxFbGVtZW50PT09ZSYmci5jaGF0U2Nyb2xsSGFuZGxlcil7UmUoKTtyZXR1cm59ci5jaGF0U2Nyb2xsRWxlbWVudCYmKHIuY2hhdFNjcm9sbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLmNoYXRTY3JvbGxIYW5kbGVyKSxyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlciksci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyKSksci5jaGF0U2Nyb2xsRWxlbWVudD1lLHIuY2hhdFNjcm9sbEhhbmRsZXI9ZnVuY3Rpb24oKXtpZihlLmlzQ29ubmVjdGVkKXtpZihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbHx8RGF0ZS5ub3coKTxyLmNoYXRQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCl7UmUoKTtyZXR1cm59YXIoKTt2YXIgdD1KaShlKTt0PyhyLmNoYXRTdGlja1RvQm90dG9tPSEwLE10KHtyZW1vdmVEaXZpZGVyOiEwfSkpOnIuY2hhdFN0aWNrVG9Cb3R0b209ITEsUmUoKX19LHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlcj1mdW5jdGlvbih0KXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbHx8dC5kZWx0YVk8MCYmKGFyKCksci5jaGF0U3RpY2tUb0JvdHRvbT0hMSxSZSgpKX0sci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXI9ZnVuY3Rpb24odCl7IXQudG91Y2hlc3x8dC50b3VjaGVzLmxlbmd0aD09PTB8fChyLmNoYXRUb3VjaFN0YXJ0WT10LnRvdWNoZXNbMF0uY2xpZW50WSl9LHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXI9ZnVuY3Rpb24odCl7aWYoIXIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsJiYhKCF0LnRvdWNoZXN8fHQudG91Y2hlcy5sZW5ndGg9PT0wKSl7dmFyIG49dC50b3VjaGVzWzBdLmNsaWVudFktci5jaGF0VG91Y2hTdGFydFk7bj40JiYoYXIoKSxyLmNoYXRTdGlja1RvQm90dG9tPSExLFJlKCkpfX0sZS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIuY2hhdFNjcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXIse3Bhc3NpdmU6ITB9KSxSZSgpfX1mdW5jdGlvbiBrdSgpe2lmKHIuY2hhdFJlbmRlcmVkQ291bnQ8ci5jdXJyZW50TWVzc2FnZXMubGVuZ3RoKXtyLmNoYXRSZW5kZXJlZENvdW50Kz1yLmNoYXRQYWdlU2l6ZSxKZSghMCk7cmV0dXJufXZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO2UmJnR5cGVvZiBlLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiZlLm1lc3NhZ2VPZmZzZXQ+MCYmYm0oKX12YXIgc3I9bnVsbDtmdW5jdGlvbiBuYygpe3NyJiYoc3IuZGlzY29ubmVjdCgpLHNyPW51bGwpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LWxvYWQtbW9yZS1zZW50aW5lbCIpO2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtbG9hZC1tb3JlLWJ0biIpO3QmJih0Lm9uY2xpY2s9ZnVuY3Rpb24oKXtrdSgpfSk7dmFyIG49ISEod2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocG9pbnRlcjogY29hcnNlKSIpLm1hdGNoZXMpLGk9d2luZG93LmlubmVyV2lkdGg8PTc2ODtufHxpfHx3aW5kb3cuX193YW5kSW1lTmF0aXZlfHx3aW5kb3cuX193YW5kSW9zTmF0aXZlfHx0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI+InUifHwoc3I9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGEpe2Zvcih2YXIgdT0wO3U8YS5sZW5ndGg7dSsrKWlmKGFbdV0uaXNJbnRlcnNlY3Rpbmcpe2t1KCk7YnJlYWt9fSx7cm9vdDokdCgpLHJvb3RNYXJnaW46IjIwMHB4In0pLHNyLm9ic2VydmUoZSkpfX1mdW5jdGlvbiB3ZSgpe3RyeXtyLnNlbGVjdGVkSWQ/bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtc2VsZWN0ZWQtc2Vzc2lvbiIsci5zZWxlY3RlZElkKTpsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1zZWxlY3RlZC1zZXNzaW9uIil9Y2F0Y2h7fX1mdW5jdGlvbiBRaShlKXtyZXR1cm4gZSYmQXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzOnIuc3RydWN0dXJlZElucHV0UXVldWV9ZnVuY3Rpb24gcmMoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtyZXR1cm4gUWkoZSl9ZnVuY3Rpb24gS3IoZSl7dmFyIHQ9UWkoZSk7ci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1BcnJheS5pc0FycmF5KHQpP3Quc2xpY2UoKTpbXX1mdW5jdGlvbiBBdShlLHQpe3JldHVybiEhKGUmJkFycmF5LmlzQXJyYXkoZS5jb250ZW50KSYmZS5jb250ZW50LnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIG4mJnR5cGVvZiBuPT0ib2JqZWN0IiYmblt0XX0pKX1mdW5jdGlvbiBpYyhlKXtyZXR1cm4hIShlJiZlLnJvbGU9PT0idXNlciImJkF1KGUsIl9fcXVldWVkIikpfWZ1bmN0aW9uIGFjKGUpe3JldHVybiEhKGUmJmUucm9sZT09PSJhc3Npc3RhbnQiJiZBdShlLCJfX3Byb2Nlc3NpbmciKSl9ZnVuY3Rpb24gb3IoZSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuW107Zm9yKHZhciB0PSExLG49W10saT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgYT1lW2ldO2lmKGljKGEpfHxhYyhhKSl7dD0hMDtjb250aW51ZX1uLnB1c2goYSl9cmV0dXJuIHQ/bjplfWZ1bmN0aW9uIHVjKGUsdCl7aWYoIWV8fCFBcnJheS5pc0FycmF5KGUubWVzc2FnZXMpKXJldHVybiBlO3ZhciBuPWUuc2Vzc2lvbktpbmR8fHQmJnQuc2Vzc2lvbktpbmQ7aWYobiE9PSJzdHJ1Y3R1cmVkIilyZXR1cm4gZTt2YXIgaT1vcihlLm1lc3NhZ2VzKTtyZXR1cm4gaT09PWUubWVzc2FnZXM/ZTpPYmplY3QuYXNzaWduKHt9LGUse21lc3NhZ2VzOml9KX1mdW5jdGlvbiB4dSgpe3RyeXt2YXIgZT1yYygpO2lmKCFyLnNlbGVjdGVkSWR8fGUubGVuZ3RoPT09MClyZXR1cm47bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIsSlNPTi5zdHJpbmdpZnkoe3Nlc3Npb25JZDpyLnNlbGVjdGVkSWQsaXRlbXM6ZX0pKX1jYXRjaHt9fWZ1bmN0aW9uIFN1KGUpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIik7aWYoIXQpcmV0dXJuO3ZhciBuPUpTT04ucGFyc2UodCk7KCFlfHwhbnx8bi5zZXNzaW9uSWQ9PT1lKSYmbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpfWNhdGNoe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLXN0cnVjdHVyZWQtcXVldWUiKX19ZnVuY3Rpb24gSXUoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlJiZBcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpKXtLcihlKSx4dSgpO3JldHVybn10cnl7dmFyIHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpO2lmKCF0KXJldHVybjt2YXIgbj1KU09OLnBhcnNlKHQpO2lmKCFufHxuLnNlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZHx8IUFycmF5LmlzQXJyYXkobi5pdGVtcykpcmV0dXJuO3Iuc3RydWN0dXJlZElucHV0UXVldWU9bi5pdGVtcy5zbGljZSgwLDEwKX1jYXRjaHtyLnN0cnVjdHVyZWRJbnB1dFF1ZXVlPVtdfX1mdW5jdGlvbiBYdCgpe3RyeXtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD09PTApe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKTtyZXR1cm59bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIsSlNPTi5zdHJpbmdpZnkoci5jcm9zc1Nlc3Npb25RdWV1ZSkpfWNhdGNoe319ZnVuY3Rpb24gdW4oKXtyZXR1cm4gci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRDd2R8fCIvdG1wIn1mdW5jdGlvbiBUdSgpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShVaSk7aWYoIWUpcmV0dXJue307dmFyIHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gdCYmdHlwZW9mIHQ9PSJvYmplY3QiP3Q6e319Y2F0Y2h7cmV0dXJue319fWZ1bmN0aW9uIHNjKGUpe3RyeXtpZighZXx8T2JqZWN0LmtleXMoZSkubGVuZ3RoPT09MCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oVWkpO3JldHVybn1sb2NhbFN0b3JhZ2Uuc2V0SXRlbShVaSxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2h7fX1mdW5jdGlvbiBvYygpe3ZhciBlPXIuc2VsZWN0ZWRJZDtpZighZSlyZXR1cm57fTt2YXIgdD1UdSgpLG49dFtlXTtyZXR1cm4gbiYmdHlwZW9mIG49PSJvYmplY3QiP246e319ZnVuY3Rpb24gWmUoZSl7aWYoIWV8fCFyLnNlbGVjdGVkSWQpcmV0dXJuIG51bGw7dmFyIHQ9b2MoKTtyZXR1cm4gdHlwZW9mIHRbZV09PSJib29sZWFuIj90W2VdOm51bGx9ZnVuY3Rpb24gTHUoZSx0KXtpZighKCFlfHwhci5zZWxlY3RlZElkKSl7dmFyIG49VHUoKSxpPXIuc2VsZWN0ZWRJZCxhPW5baV07KCFhfHx0eXBlb2YgYSE9Im9iamVjdCIpJiYoYT17fSksYVtlXT0hIXQsbltpXT1hLHNjKG4pfX1mdW5jdGlvbiBNdShlLHQpe3JldHVybiBlP2UudXVpZD8ibXNnOiIrZS51dWlkOmUuaWQ/Im1zZzoiK2UuaWQ6ZS5tZXNzYWdlSWQ/Im1zZzoiK2UubWVzc2FnZUlkOmUudHVybklkPyJtc2c6IitlLnR1cm5JZDoibXNnOiIrKHR5cGVvZiB0PT0ibnVtYmVyIj90OjApOiJtc2c6dW5rbm93bi0iKyh0eXBlb2YgdD09Im51bWJlciI/dDowKX1mdW5jdGlvbiBQdChlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07YT09bnVsbHx8YT09PSIifHxuLnB1c2goU3RyaW5nKGEpKX1yZXR1cm4gZSsiOiIrbi5qb2luKCI6Iil9ZnVuY3Rpb24gUG4oZSl7cmV0dXJuIWV8fCFlLmRhdGFzZXQ/IiI6ZS5kYXRhc2V0LmV4cGFuZEtleXx8IiJ9ZnVuY3Rpb24gbGMoZSx0KXtpZighZSlyZXR1cm4hMTtzd2l0Y2godCl7Y2FzZSJ0b29sLWNhcmQiOmNhc2UiZGlmZiI6cmV0dXJuIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtjYXNlInRoaW5raW5nIjpyZXR1cm4gZS5jbGFzc0xpc3QuY29udGFpbnMoImV4cGFuZGVkIikmJiFlLmNsYXNzTGlzdC5jb250YWlucygiY29sbGFwc2VkIik7Y2FzZSJpbmxpbmUtdG9vbCI6cmV0dXJuIGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJpbmxpbmUtdG9vbC1vcGVuIik7Y2FzZSJ0ZXJtaW5hbCI6e3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO3JldHVybiBuP24uc3R5bGUuZGlzcGxheSE9PSJub25lIjplLmRhdGFzZXQuZXhwYW5kZWQ9PT0idHJ1ZSJ9Y2FzZSJ0b29sLWdyb3VwIjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtjYXNlInN1YmFnZW50LXJlcGx5IjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtjYXNlInN1YmFnZW50LXBhbmVsIjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiAkaShlLHQsbil7aWYoZSlzd2l0Y2godCl7Y2FzZSJ0b29sLWNhcmQiOmNhc2UiZGlmZiI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIiwhbik7YnJlYWt9Y2FzZSJ0aGlua2luZyI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIiwhbiksZS5jbGFzc0xpc3QudG9nZ2xlKCJleHBhbmRlZCIsISFuKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtcHJldmlldyIpO2lmKGkpe3ZhciBhPWUuZGF0YXNldC50aGlua2luZ3x8IiIsdT1hLnNsaWNlKDAsNTcpKyhhLmxlbmd0aD42MD8iXHUyMDI2IjoiIik7aS50ZXh0Q29udGVudD1uP2E6dX12YXIgcz1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtYWN0aW9uIik7cyYmKHMudGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIik7YnJlYWt9Y2FzZSJpbmxpbmUtdG9vbCI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiaW5saW5lLXRvb2wtb3BlbiIsISFuKTt2YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoIi5pbmxpbmUtdG9vbC1leHBhbmRlZCIpO28mJihvLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIik7YnJlYWt9Y2FzZSJ0ZXJtaW5hbCI6e3ZhciBsPWUucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO2wmJihsLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIiksZS5kYXRhc2V0LmV4cGFuZGVkPW4/InRydWUiOiJmYWxzZSI7dmFyIGM9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS10b2dnbGUtaWNvbiIpO2MmJihjLnRleHRDb250ZW50PW4/Ilx1MjVCQyI6Ilx1MjVCNiIpO2JyZWFrfWNhc2UidG9vbC1ncm91cCI6e2Uuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKTt2YXIgZj1lLnF1ZXJ5U2VsZWN0b3IoIi50b29sLWdyb3VwLWJvZHkiKTtmJiYoZi5zdHlsZS5kaXNwbGF5PW4/ImJsb2NrIjoibm9uZSIpO3ZhciBkPWUucXVlcnlTZWxlY3RvcigiLnRvb2wtZ3JvdXAtY2hldnJvbiIpO2QmJihkLnN0eWxlLnRyYW5zZm9ybT1uPyJyb3RhdGUoMTgwZGVnKSI6IiIpO2JyZWFrfWNhc2Uic3ViYWdlbnQtcmVwbHkiOntlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIik7dmFyIHY9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcmVwbHktdG9nZ2xlLWxhYmVsIik7diYmKHYudGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIik7dmFyIGg9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcmVwbHktdG9nZ2xlIik7aCYmKGguc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKSxoLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsbj8iXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU1NkRFXHU1OTBEIjoiXHU1QzU1XHU1RjAwXHU1QjUwXHU0RUUzXHU3NDA2XHU1NkRFXHU1OTBEXHU1MTY4XHU2NTg3IikpO2JyZWFrfWNhc2Uic3ViYWdlbnQtcGFuZWwiOntlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIik7Zm9yKHZhciBnPWUucXVlcnlTZWxlY3RvckFsbCgiLnN1YmFnZW50LXBhbmVsLXRvZ2dsZSIpLG09MDttPGcubGVuZ3RoO20rKyl7dmFyIHk9Z1ttXTt5LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIikseS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLG4/Ilx1NjUzNlx1OEQ3N1x1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSI6Ilx1NUM1NVx1NUYwMFx1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIpO3ZhciB3PXkucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLXRvZ2dsZS1sYWJlbCIpO3cmJih3LnRleHRDb250ZW50PW4/Ilx1NjUzNlx1OEQ3NyI6Ilx1NUM1NVx1NUYwMCIpfXZhciBFPWUucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLWJvZHkiKTtFJiYobj9FLnNjcm9sbFRvcD0wOkUuc2Nyb2xsVG9wPUUuc2Nyb2xsSGVpZ2h0KTticmVha319fWZ1bmN0aW9uIHduKGUsdCl7dmFyIG49UG4oZSk7biYmTHUobixsYyhlLHQpKX1mdW5jdGlvbiBYaShlKXshZXx8IXIuc2VsZWN0ZWRJZHx8ZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1leHBhbmQta2V5XSIpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49UG4odCksaT10LmRhdGFzZXQuZXhwYW5kS2luZHx8IiIsYT1aZShuKTthPT09bnVsbHx8IWl8fCRpKHQsaSxhKX0pfWZ1bmN0aW9uIGplKCl7cmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoPD03Njh9ZnVuY3Rpb24gUHUoKXtyZXR1cm4hIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiYoamUoKXx8IXIuc2lkZWJhclBpbm5lZCl9ZnVuY3Rpb24gWmkoZSl7ci5maWxlUGFuZWxPcGVuPWU7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIsU3RyaW5nKHIuZmlsZVBhbmVsT3BlbikpfWNhdGNoe31yLmZpbGVQYW5lbE9wZW4mJmplKCkmJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSx4ZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSksc24oKSxyLmZpbGVQYW5lbE9wZW4mJnF0KCl9ZnVuY3Rpb24gSnIoKXtaaSghci5maWxlUGFuZWxPcGVuKX1mdW5jdGlvbiBjYygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNpZGUtcGFuZWwiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWNvbnRlbnQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLXRvZ2dsZS1idG4iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLWJhY2tkcm9wIik7ZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixyLmZpbGVQYW5lbE9wZW4pLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgiZmlsZS1wYW5lbC1vcGVuIixyLmZpbGVQYW5lbE9wZW4pLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsci5maWxlUGFuZWxPcGVuKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci5maWxlUGFuZWxPcGVuKX1mdW5jdGlvbiBzbigpe01yKCksY2MoKX1mdW5jdGlvbiBkYyhlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3Jlci1jd2QiKTtpZih0KXt2YXIgbj1lJiZlLmN3ZD9lLmN3ZDp1bigpO3QudGFnTmFtZT09PSJJTlBVVCI/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXQmJih0LnZhbHVlPW4sRWcodCkpOnQudGV4dENvbnRlbnQ9bix0LnRpdGxlPW47dmFyIGk9dC5jbG9zZXN0KCIuZmlsZS1leHBsb3Jlci1oZWFkZXIiKTtpJiZOaShpKX19ZnVuY3Rpb24gcXUoKXtyLmZpbGVQYW5lbE9wZW4mJlppKCExKX1mdW5jdGlvbiBPdShlKXt2YXIgdD1yLnRlcm1pbmFsU2NhbGUrZTtpZih0PU1hdGgubWF4KC41LE1hdGgubWluKDIsdCkpLHQ9TWF0aC5yb3VuZCh0KjQpLzQsdCE9PXIudGVybWluYWxTY2FsZSl7ci50ZXJtaW5hbFNjYWxlPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXRlcm1pbmFsLXNjYWxlIixTdHJpbmcodCkpfWNhdGNoe31IdSgpLGZjKCl9fWZ1bmN0aW9uIEh1KCl7aWYoISghci50ZXJtaW5hbHx8IXIudGVybWluYWwuZWxlbWVudCkpe3ZhciBlPXIudGVybWluYWxCYXNlRm9udFNpemUqci50ZXJtaW5hbFNjYWxlLHQ9TWF0aC5tYXgoMSxNYXRoLnJvdW5kKGUpKSxuPU1hdGgubWF4KDEsTWF0aC5yb3VuZChlKjEuNSkpO3IudGVybWluYWwuZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10ZXJtLWZvbnQtc2l6ZSIsdCsicHgiKSxyLnRlcm1pbmFsLmVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0tdGVybS1yb3ctaGVpZ2h0IixuKyJweCIpLHR5cGVvZiByLnRlcm1pbmFsLnJlbWVhc3VyZT09ImZ1bmN0aW9uIiYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKX0pfX1mdW5jdGlvbiBmYygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1zY2FsZS1sYWJlbC10b3AiKTtlJiYoZS50ZXh0Q29udGVudD1NYXRoLnJvdW5kKHIudGVybWluYWxTY2FsZSoxMDApKyIlIil9dmFyIHBjPXsiY2hldnJvbi1sZWZ0IjonPHBhdGggZD0iTTE1IDE4bC02LTYgNi02Ii8+JywiYXJyb3ctdXAiOic8cGF0aCBkPSJNMTIgMTlWNSIvPjxwYXRoIGQ9Ik01IDEybDctNyA3IDciLz4nLHJlZnJlc2g6JzxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAxIDEtMy02LjciLz48cGF0aCBkPSJNMjEgNHY1aC01Ii8+JyxleWU6JzxwYXRoIGQ9Ik0xIDEyczQtNyAxMS03IDExIDcgMTEgNy00IDctMTEgN1MxIDEyIDEgMTJ6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIvPicsImV5ZS1vZmYiOic8cGF0aCBkPSJNMTcuOTQgMTcuOTRBMTAuOTQgMTAuOTQgMCAwIDEgMTIgMTljLTcgMC0xMS03LTExLTdhMTkuODYgMTkuODYgMCAwIDEgNC4yMi01LjE4Ii8+PHBhdGggZD0iTTEgMWwyMiAyMiIvPjxwYXRoIGQ9Ik05LjkgNC4yNEExMC45NCAxMC45NCAwIDAgMSAxMiA0YzcgMCAxMSA3IDExIDdhMTkuODMgMTkuODMgMCAwIDEtMy4zNiA0LjI3Ii8+PHBhdGggZD0iTTE0LjEyIDE0LjEyYTMgMyAwIDEgMS00LjI0LTQuMjQiLz4nLHg6JzxwYXRoIGQ9Ik0xOCA2TDYgMTgiLz48cGF0aCBkPSJNNiA2bDEyIDEyIi8+JyxzZWFyY2g6JzxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjciLz48cGF0aCBkPSJNMjEgMjFsLTQuMy00LjMiLz4nLGNvcHk6JzxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgcng9IjIiLz48cGF0aCBkPSJNNSAxNVY1YTIgMiAwIDAgMSAyLTJoMTAiLz4nLGNsaXBib2FyZDonPHJlY3QgeD0iOCIgeT0iMyIgd2lkdGg9IjgiIGhlaWdodD0iNCIgcng9IjEiLz48cGF0aCBkPSJNMTYgNWgyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDIiLz4nLGRvd25sb2FkOic8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIvPjxwYXRoIGQ9Ik03IDEwbDUgNSA1LTUiLz48cGF0aCBkPSJNMTIgMTVWMyIvPicsZWRpdDonPHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYuNSAzLjVhMi4xMjEgMi4xMjEgMCAwIDEgMyAzTDcgMTlsLTQgMSAxLTR6Ii8+JyxzYXZlOic8cGF0aCBkPSJNMTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMWw1IDV2MTFhMiAyIDAgMCAxLTIgMnoiLz48cGF0aCBkPSJNMTcgMjF2LThIN3Y4Ii8+PHBhdGggZD0iTTcgM3Y1aDgiLz4nLCJyb3RhdGUtY2N3IjonPHBhdGggZD0iTTMgMTJhOSA5IDAgMSAwIDMtNi43Ii8+PHBhdGggZD0iTTMgNHY1aDUiLz4nLCJ3cmFwLXRleHQiOic8cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTMgMTJoMTVhMyAzIDAgMSAxIDAgNmgtNCIvPjxwYXRoIGQ9Ik0xNiAxNmwtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0zIDE4aDYiLz4nLHR5cGU6JzxwYXRoIGQ9Ik00IDdWNGgxNnYzIi8+PHBhdGggZD0iTTkgMjBoNiIvPjxwYXRoIGQ9Ik0xMiA0djE2Ii8+JyxtaW51czonPHBhdGggZD0iTTUgMTJoMTQiLz4nLHBsdXM6JzxwYXRoIGQ9Ik0xMiA1djE0Ii8+PHBhdGggZD0iTTUgMTJoMTQiLz4nLCJzZW5kLXRvLWlucHV0IjonPHBhdGggZD0iTTIyIDJMMTEgMTMiLz48cGF0aCBkPSJNMjIgMmwtNyAyMC00LTktOS00eiIvPicsdGVybWluYWw6Jzxwb2x5bGluZSBwb2ludHM9IjQgMTcgMTAgMTEgNCA1Ii8+PGxpbmUgeDE9IjEyIiB5MT0iMTkiIHgyPSIyMCIgeTI9IjE5Ii8+JywiZm9sZGVyLW9wZW4iOic8cGF0aCBkPSJNNiAxNGwxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiIvPicsaW5mbzonPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyIiB5Mj0iMTIiLz48bGluZSB4MT0iMTIiIHkxPSI4IiB4Mj0iMTIuMDEiIHkyPSI4Ii8+J307ZnVuY3Rpb24gUGUoZSx0KXt0PXR8fHt9O3ZhciBuPXBjW2VdfHwiIixpPXQuc2l6ZXx8MTYsYT10LmNsYXNzTmFtZT8iICIrdC5jbGFzc05hbWU6IiI7cmV0dXJuJzxzdmcgY2xhc3M9IndhbmQtaWNvbiB3YW5kLWljb24tJytlK2ErJyIgd2lkdGg9IicraSsnIiBoZWlnaHQ9IicraSsnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPicrbisiPC9zdmc+In1mdW5jdGlvbiB2YyhlKXt2YXIgdD1lfHx1bigpO3JldHVybiB0Pyc8ZGl2IGNsYXNzPSJmaWxlLXRyZWUiIGlkPSJmaWxlLXRyZWUiIGRhdGEtY3dkPSInK3AodCkrJyI+PGRpdiBjbGFzcz0idHJlZS1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj4nOic8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTY3MkFcdTkxNERcdTdGNkVcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L2Rpdj4nfXZhciBtYz17cG5nOiJcdXsxRjVCQ31cdUZFMEYiLGpwZzoiXHV7MUY1QkN9XHVGRTBGIixqcGVnOiJcdXsxRjVCQ31cdUZFMEYiLGdpZjoiXHV7MUY1QkN9XHVGRTBGIix3ZWJwOiJcdXsxRjVCQ31cdUZFMEYiLHN2ZzoiXHV7MUY1QkN9XHVGRTBGIixhdmlmOiJcdXsxRjVCQ31cdUZFMEYiLGJtcDoiXHV7MUY1QkN9XHVGRTBGIixpY286Ilx1ezFGNUJDfVx1RkUwRiIsaGVpYzoiXHV7MUY1QkN9XHVGRTBGIixoZWlmOiJcdXsxRjVCQ31cdUZFMEYiLHBkZjoiXHV7MUY0RDV9Iixkb2M6Ilx1ezFGNEQ4fSIsZG9jeDoiXHV7MUY0RDh9IixvZHQ6Ilx1ezFGNEQ4fSIseGxzOiJcdXsxRjRDQX0iLHhsc3g6Ilx1ezFGNENBfSIsY3N2OiJcdXsxRjRDQX0iLHRzdjoiXHV7MUY0Q0F9IixwcHQ6Ilx1ezFGNEQ5fSIscHB0eDoiXHV7MUY0RDl9IixtcDQ6Ilx1ezFGM0FDfSIsd2VibToiXHV7MUYzQUN9Iixtb3Y6Ilx1ezFGM0FDfSIsbWt2OiJcdXsxRjNBQ30iLG00djoiXHV7MUYzQUN9IixvZ3Y6Ilx1ezFGM0FDfSIsbXAzOiJcdXsxRjNCNX0iLHdhdjoiXHV7MUYzQjV9IixvZ2c6Ilx1ezFGM0I1fSIsbTRhOiJcdXsxRjNCNX0iLGZsYWM6Ilx1ezFGM0I1fSIsYWFjOiJcdXsxRjNCNX0iLG9wdXM6Ilx1ezFGM0I1fSIsemlwOiJcdXsxRjRFNn0iLHRhcjoiXHV7MUY0RTZ9IixnejoiXHV7MUY0RTZ9Iix0Z3o6Ilx1ezFGNEU2fSIsYnoyOiJcdXsxRjRFNn0iLCI3eiI6Ilx1ezFGNEU2fSIscmFyOiJcdXsxRjRFNn0iLHh6OiJcdXsxRjRFNn0iLG1kOiJcdXsxRjRERH0iLG1hcmtkb3duOiJcdXsxRjRERH0iLG1keDoiXHV7MUY0RER9Iixyc3Q6Ilx1ezFGNEREfSIsdHh0OiJcdXsxRjRERH0iLGxvZzoiXHV7MUY0RER9IixodG1sOiJcdXsxRjMxMH0iLGh0bToiXHV7MUYzMTB9Iix4bWw6Ilx1ezFGMzEwfSIsY3NzOiJcdXsxRjNBOH0iLHNjc3M6Ilx1ezFGM0E4fSIsbGVzczoiXHV7MUYzQTh9Iixqc29uOiJcdTI2OTlcdUZFMEYiLGpzb25jOiJcdTI2OTlcdUZFMEYiLHlhbWw6Ilx1MjY5OVx1RkUwRiIseW1sOiJcdTI2OTlcdUZFMEYiLHRvbWw6Ilx1MjY5OVx1RkUwRiIsaW5pOiJcdTI2OTlcdUZFMEYiLGNmZzoiXHUyNjk5XHVGRTBGIixjb25mOiJcdTI2OTlcdUZFMEYiLGVudjoiXHUyNjk5XHVGRTBGIixlZGl0b3Jjb25maWc6Ilx1MjY5OVx1RkUwRiIsdHM6Ilx1ezFGNERDfSIsdHN4OiJcdXsxRjREQ30iLGpzOiJcdXsxRjREQ30iLGpzeDoiXHV7MUY0REN9IixtanM6Ilx1ezFGNERDfSIsY2pzOiJcdXsxRjREQ30iLHB5OiJcdXsxRjREQ30iLHJiOiJcdXsxRjREQ30iLGdvOiJcdXsxRjREQ30iLHJzOiJcdXsxRjREQ30iLGphdmE6Ilx1ezFGNERDfSIsYzoiXHV7MUY0REN9IixjcHA6Ilx1ezFGNERDfSIsaDoiXHV7MUY0REN9IixocHA6Ilx1ezFGNERDfSIsY3M6Ilx1ezFGNERDfSIsc3dpZnQ6Ilx1ezFGNERDfSIsa3Q6Ilx1ezFGNERDfSIsc2NhbGE6Ilx1ezFGNERDfSIscGhwOiJcdXsxRjREQ30iLHNoOiJcdXsxRjREQ30iLGJhc2g6Ilx1ezFGNERDfSIsenNoOiJcdXsxRjREQ30iLGZpc2g6Ilx1ezFGNERDfSIsbHVhOiJcdXsxRjREQ30iLHNxbDoiXHV7MUY0REN9IixncmFwaHFsOiJcdXsxRjREQ30iLHByb3RvOiJcdXsxRjREQ30iLHZ1ZToiXHV7MUY0REN9IixzdmVsdGU6Ilx1ezFGNERDfSIsZGlmZjoiXHV7MUY0REN9IixwYXRjaDoiXHV7MUY0REN9Iix0dGY6Ilx1ezFGNTI0fSIsb3RmOiJcdXsxRjUyNH0iLHdvZmY6Ilx1ezFGNTI0fSIsd29mZjI6Ilx1ezFGNTI0fSIsZW90OiJcdXsxRjUyNH0ifTtmdW5jdGlvbiBfdShlKXtpZighZSlyZXR1cm4iXHV7MUY0QzR9IjtpZihlLnR5cGU9PT0iZGlyIilyZXR1cm4iXHV7MUY0QzF9Ijt2YXIgdD0oZS5uYW1lfHwiIikudG9Mb3dlckNhc2UoKTtpZih0PT09ImRvY2tlcmZpbGUiKXJldHVybiJcdXsxRjQzM30iO2lmKHQ9PT0ibWFrZWZpbGUiKXJldHVybiJcdXsxRjZFMH1cdUZFMEYiO2lmKHQ9PT0ibGljZW5zZSIpcmV0dXJuIlx1ezFGNERDfSI7aWYodD09PSJyZWFkbWUiKXJldHVybiJcdXsxRjRERH0iO3ZhciBuPXQubGFzdEluZGV4T2YoIi4iKTtpZihuPDB8fG49PT10Lmxlbmd0aC0xKXJldHVybiJcdXsxRjRDNH0iO3ZhciBpPXQuc2xpY2UobisxKTtyZXR1cm4gbWNbaV18fCJcdXsxRjRDNH0ifWZ1bmN0aW9uIHFuKGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyInx8IWlzRmluaXRlKGUpfHxlPDApcmV0dXJuIiI7aWYoZTwxMDI0KXJldHVybiBlKyIgQiI7dmFyIHQ9ZS8xMDI0O2lmKHQ8MTAyNClyZXR1cm4odD49MTA/TWF0aC5yb3VuZCh0KTp0LnRvRml4ZWQoMSkpKyIgS0IiO3ZhciBuPXQvMTAyNDtpZihuPDEwMjQpcmV0dXJuKG4+PTEwP01hdGgucm91bmQobik6bi50b0ZpeGVkKDEpKSsiIE1CIjt2YXIgaT1uLzEwMjQ7cmV0dXJuKGk+PTEwP01hdGgucm91bmQoaSk6aS50b0ZpeGVkKDEpKSsiIEdCIn1mdW5jdGlvbiBnYyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1EYXRlLnBhcnNlKGUpO3JldHVybiBpc05hTih0KT8iIjpuZXcgRGF0ZSh0KS50b0xvY2FsZVN0cmluZygpfWZ1bmN0aW9uIE51KCl7aWYoci5maWxlRXhwbG9yZXJDd2QpcmV0dXJuIHIuZmlsZUV4cGxvcmVyQ3dkO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7aWYoZSYmZS5jd2QpcmV0dXJuIGUuY3dkfXJldHVybiB1bigpfWZ1bmN0aW9uIHF0KGUpe2U9ZXx8e307dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLWN3ZCIpO2lmKHQpe3ZhciBpPWUuY3dkfHxOdSgpO2lmKCFpKXt0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciBlbXB0eSI+XHU2Q0ExXHU2NzA5XHU1M0VGXHU2NjNFXHU3OTNBXHU3Njg0XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHUzMDAyPC9kaXY+JztyZXR1cm59ci5maWxlRXhwbG9yZXJDd2Q9aSxyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITAsci5hbGxGaWxlcz1bXSxyLmZpbGVFeHBsb3JlclRydW5jYXRlZD0hMSxyLmZpbGVFeHBsb3JlclRvdGFsPTAsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIiPjxkaXYgY2xhc3M9InRyZWUtbG9hZGluZyIgc3R5bGU9InBhZGRpbmc6MTJweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6MC44MTI1cmVtOyI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+PC9kaXY+JyxuJiYobi50YWdOYW1lPT09IklOUFVUIj9kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09biYmKG4udmFsdWU9aSk6bi50ZXh0Q29udGVudD1pLG4udGl0bGU9aSk7dmFyIGE9Ii9hcGkvZGlyZWN0b3J5P3E9IitlbmNvZGVVUklDb21wb25lbnQoaSkrIiZnaXRTdGF0dXM9dHJ1ZSI7ZmV0Y2goYSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7aWYoIXUub2spdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkuIik7cmV0dXJuIHUuanNvbigpfSkudGhlbihmdW5jdGlvbih1KXtyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITE7dmFyIHMsbyxsO2lmKEFycmF5LmlzQXJyYXkodSk/KHM9dSxvPSExLGw9dS5sZW5ndGgpOihzPXUmJnUuaXRlbXN8fFtdLG89ISEodSYmdS50cnVuY2F0ZWQpLGw9dSYmdS50b3RhbHx8cy5sZW5ndGgpLCFzfHxzLmxlbmd0aD09PTApe3QuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTdBN0FcdTc2RUVcdTVGNTVcdTYyMTZcdTY1RTBcdTZDRDVcdThCQkZcdTk1RUVcdTMwMDI8L2Rpdj4nO3JldHVybn1yLmFsbEZpbGVzPXMsci5maWxlRXhwbG9yZXJUcnVuY2F0ZWQ9byxyLmZpbGVFeHBsb3JlclRvdGFsPWwsUnUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ci5maWxlRXhwbG9yZXJMb2FkaW5nPSExLHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTY4QzBcdTY3RTVcdThERUZcdTVGODRcdTYyMTZcdTY3NDNcdTk2NTBcdTMwMDI8L2Rpdj4nfSl9fWZ1bmN0aW9uIFJ1KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXIiKTtpZihlKXt2YXIgdD1yLmZpbGVFeHBsb3JlckN3ZHx8IiI7aWYodCl7dmFyIG49ci5maWxlU2VhcmNoUXVlcnksaT1yLmFsbEZpbGVzfHxbXSxhPWk7aWYobil7dmFyIHU9bi50b0xvd2VyQ2FzZSgpO2E9aS5maWx0ZXIoZnVuY3Rpb24obCl7cmV0dXJuIGwubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodSkhPT0tMX0pfWlmKGEubGVuZ3RoPT09MCl7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPicrKG4/Ilx1NkNBMVx1NjcwOVx1NjI3RVx1NTIzMFx1NTMzOVx1OTE0RFx1NzY4NFx1NjU4N1x1NEVGNiI6Ilx1N0E3QVx1NzZFRVx1NUY1NSIpKyI8L2Rpdj4iO3JldHVybn12YXIgcz0iIjtpZighbiYmci5maWxlRXhwbG9yZXJUcnVuY2F0ZWQpe3ZhciBvPWkubGVuZ3RoO3M9JzxkaXYgY2xhc3M9InRyZWUtdHJ1bmNhdGVkIiB0aXRsZT0iXHU1NDBFXHU3QUVGXHU2MzA5XHU1QjU3XHU2QkNEXHU1RThGXHU2NzAwXHU1OTFBXHU4RkQ0XHU1NkRFICcrbysnIFx1OTg3OSI+XHU2NjNFXHU3OTNBXHU1MjREICcrbysiIFx1OTg3OSAvIFx1NTE3MSAiK3IuZmlsZUV4cGxvcmVyVG90YWwrIiBcdTk4Nzk8L2Rpdj4ifWUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXRyZWUiIGlkPSJmaWxlLXRyZWUiIGRhdGEtY3dkPSInK3AodCkrJyI+JythLm1hcChmdW5jdGlvbihsKXtyZXR1cm4ganUobCl9KS5qb2luKCIiKSsiPC9kaXY+IitzLFd1KCl9fX1mdW5jdGlvbiBqdShlLHQpe3Q9dHx8MDt2YXIgbj1wKGUubmFtZSksaT1lLnR5cGU9PT0iZGlyIixhPV91KGUpLHU9aT8iXHUyNUI4IjoiIixzPWk/IiI6IiBlbXB0eSIsbz1lLmdpdFN0YXR1cyxsPWhjKG8pLGM9IiI7cmV0dXJuIWkmJnR5cGVvZiBlLnNpemU9PSJudW1iZXIiJiYoYz0nPHNwYW4gY2xhc3M9InRyZWUtbWV0YSIgdGl0bGU9Ilx1NTkyN1x1NUMwRlx1RkYxQScrcChxbihlLnNpemUpKSsoZS5tdGltZT9gClx1NEZFRVx1NjUzOVx1NjVGNlx1OTVGNFx1RkYxQWArcChnYyhlLm10aW1lKSk6IiIpKyciPicrcChxbihlLnNpemUpKSsiPC9zcGFuPiIpLCc8ZGl2IGNsYXNzPSJ0cmVlLWl0ZW0iIGRhdGEtcGF0aD0iJytwKGUucGF0aCkrJyIgZGF0YS10eXBlPSInK3AoZS50eXBlKSsnIiBkYXRhLW5hbWU9IicrcChlLm5hbWUpKyciIHRhYmluZGV4PSIwIj48c3BhbiBjbGFzcz0idHJlZS10b2dnbGUnK3MrJyI+Jyt1Kyc8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtaWNvbiI+JythKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtbmFtZSI+JytuKyI8L3NwYW4+IitjKyhsPyc8c3BhbiBjbGFzcz0iZ2l0LXN0YXR1cy1iYWRnZSAnK2wuY2xhc3MrJyIgdGl0bGU9IicrbC50aXRsZSsnIj4nK2wudGV4dCsiPC9zcGFuPiI6IiIpKyI8L2Rpdj4ifWZ1bmN0aW9uIGhjKGUpe3JldHVybiBlP2Uuc3RhZ2VkPT09ImFkZGVkIj97dGV4dDoiQSIsY2xhc3M6ImdpdC1hZGRlZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NjVCMFx1NTg5RVx1RkYwOSJ9OmUuc3RhZ2VkPT09Im1vZGlmaWVkIj97dGV4dDoiTSIsY2xhc3M6ImdpdC1tb2RpZmllZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NEZFRVx1NjUzOVx1RkYwOSJ9OmUuc3RhZ2VkPT09ImRlbGV0ZWQiP3t0ZXh0OiJEIixjbGFzczoiZ2l0LWRlbGV0ZWQiLHRpdGxlOiJcdTVERjJcdTY2ODJcdTVCNThcdUZGMDhcdTUyMjBcdTk2NjRcdUZGMDkifTplLnN0YWdlZD09PSJyZW5hbWVkIj97dGV4dDoiUiIsY2xhc3M6ImdpdC1yZW5hbWVkIix0aXRsZToiXHU1REYyXHU2NjgyXHU1QjU4XHVGRjA4XHU5MUNEXHU1NDdEXHU1NDBEXHVGRjA5In06ZS51bnN0YWdlZD09PSJtb2RpZmllZCI/e3RleHQ6Ik0iLGNsYXNzOiJnaXQtdW5zdGFnZWQiLHRpdGxlOiJcdTY3MkFcdTY2ODJcdTVCNThcdUZGMDhcdTRGRUVcdTY1MzlcdUZGMDkifTplLnVuc3RhZ2VkPT09ImRlbGV0ZWQiP3t0ZXh0OiJEIixjbGFzczoiZ2l0LXVuc3RhZ2VkLWRlbGV0ZWQiLHRpdGxlOiJcdTY3MkFcdTY2ODJcdTVCNThcdUZGMDhcdTUyMjBcdTk2NjRcdUZGMDkifTplLnVudHJhY2tlZD97dGV4dDoiPyIsY2xhc3M6ImdpdC11bnRyYWNrZWQiLHRpdGxlOiJcdTY3MkFcdThEREZcdThFMkEifTpudWxsOm51bGx9ZnVuY3Rpb24gV3UoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS10cmVlIik7aWYoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIudHJlZS1pdGVtW2RhdGEtdHlwZT0nZGlyJ10iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe3ljKGkpfSl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW1bZGF0YS10eXBlPSdmaWxlJ10iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBhPWZ1bmN0aW9uKCl7WXIoaS5kYXRhc2V0LnBhdGgpfTtpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhKSxpLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIixhKX0pO3ZhciB0PW51bGwsbj0hMTtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKSx6dShhLmNsaWVudFgsYS5jbGllbnRZLGkpfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihhKXtuPSExLHQ9c2V0VGltZW91dChmdW5jdGlvbigpe249ITA7dmFyIHU9YS50b3VjaGVzJiZhLnRvdWNoZXNbMF07enUodT91LmNsaWVudFg6MCx1P3UuY2xpZW50WTowLGkpfSw1MDApfSx7cGFzc2l2ZTohMH0pLGkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGZ1bmN0aW9uKCl7dCYmKGNsZWFyVGltZW91dCh0KSx0PW51bGwpfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGZ1bmN0aW9uKCl7dCYmKGNsZWFyVGltZW91dCh0KSx0PW51bGwpfSl9KX19ZnVuY3Rpb24geWMoZSl7dmFyIHQ9ZS5kYXRhc2V0LnBhdGgsbj1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLXRvZ2dsZSIpLGk9ZS5uZXh0RWxlbWVudFNpYmxpbmc7aWYoaSYmaS5jbGFzc0xpc3QuY29udGFpbnMoInRyZWUtY2hpbGRyZW4iKSl7dmFyIGE9aS5jbGFzc0xpc3QuY29udGFpbnMoIm9wZW4iKTtpLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iLCFhKTt2YXIgdT1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLWljb24iKTt1JiYodS50ZXh0Q29udGVudD1hPyJcdXsxRjRDMX0iOiJcdXsxRjRDMn0iKTtyZXR1cm59biYmbi5jbGFzc0xpc3QuYWRkKCJvcGVuIik7dmFyIHM9ZS5xdWVyeVNlbGVjdG9yKCIudHJlZS1pY29uIik7cyYmKHMudGV4dENvbnRlbnQ9Ilx1ezFGNEMyfSIpO3ZhciBvPSIvYXBpL2RpcmVjdG9yeT9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyImZ2l0U3RhdHVzPXRydWUiO2ZldGNoKG8se2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBsLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obCl7dmFyIGM7QXJyYXkuaXNBcnJheShsKT9jPWw6Yz1sJiZsLml0ZW1zfHxbXTt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLmNsYXNzTmFtZT0idHJlZS1jaGlsZHJlbiBvcGVuIiwhY3x8Yy5sZW5ndGg9PT0wP2YuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJ0cmVlLWl0ZW0iIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6ZGVmYXVsdDsiPjxzcGFuIGNsYXNzPSJ0cmVlLXRvZ2dsZSBlbXB0eSI+XHUyNUI4PC9zcGFuPjxzcGFuIGNsYXNzPSJ0cmVlLW5hbWUiPlx1RkYwOFx1N0E3QVx1NzZFRVx1NUY1NVx1RkYwOTwvc3Bhbj48L2Rpdj4nOmYuaW5uZXJIVE1MPWMubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBqdShkKX0pLmpvaW4oIiIpLGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZixlLm5leHRTaWJsaW5nKSxXdSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBiYygpe3ZhciBlPU51KCk7aWYoZSl7dmFyIHQ9ZS5yZXBsYWNlKC9cLyskLywiIikucmVwbGFjZSgvXC9bXlwvXSskLywiIik7dHx8KHQ9Ii8iKSx0IT09ZSYmcXQoe2N3ZDp0fSl9fWZ1bmN0aW9uIGVhKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZighdClyZXR1cm4hMTt2YXIgbj10LnZhbHVlfHwiIixpPW4mJiFuLmVuZHNXaXRoKCIgIikmJiFuLmVuZHNXaXRoKGAKYCk/IiAiOiIiO3QudmFsdWU9bitpK2UsdC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiLHtidWJibGVzOiEwfSkpO3RyeXt0LmZvY3VzKCksdC5zZXRTZWxlY3Rpb25SYW5nZSh0LnZhbHVlLmxlbmd0aCx0LnZhbHVlLmxlbmd0aCl9Y2F0Y2h7fXJldHVybiEwfWZ1bmN0aW9uIEdyKGUpe2lmKG5hdmlnYXRvci5jbGlwYm9hcmQmJm5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KXJldHVybiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiB0KCl9KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQoKSk7ZnVuY3Rpb24gdCgpe3RyeXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO24udmFsdWU9ZSxuLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsbi5zdHlsZS5sZWZ0PSItOTk5OXB4Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLG4uc2VsZWN0KCk7dmFyIGk9ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTtyZXR1cm4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuKSxpfWNhdGNoe3JldHVybiExfX19ZnVuY3Rpb24ga3QoZSl7aWYodHlwZW9mIHdpbmRvdy5zaG93VG9hc3Q9PSJmdW5jdGlvbiIpe3dpbmRvdy5zaG93VG9hc3QoZSk7cmV0dXJufXZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ3YW5kLW1pbmktdG9hc3QiLHQudGV4dENvbnRlbnQ9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5hZGQoInNob3ciKX0sMTApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5yZW1vdmUoInNob3ciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZW1vdmUoKX0sMjIwKX0sMTYwMCl9ZnVuY3Rpb24gT24oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1jb250ZXh0LW1lbnUiKTtlJiZlLnJlbW92ZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixPbiwhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixPbiwhMCl9ZnVuY3Rpb24genUoZSx0LG4pe09uKCk7dmFyIGk9bi5kYXRhc2V0LnBhdGh8fCIiLGE9bi5kYXRhc2V0LnR5cGV8fCJmaWxlIix1PXIuZmlsZUV4cGxvcmVyQ3dkfHwiIixzPWk7dSYmaS5pbmRleE9mKHUpPT09MCYmKHM9aS5zbGljZSh1Lmxlbmd0aCkucmVwbGFjZSgvXlwvKy8sIiIpfHwiLiIpO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uaWQ9ImZpbGUtY29udGV4dC1tZW51IixvLmNsYXNzTmFtZT0iZmlsZS1jb250ZXh0LW1lbnUiO3ZhciBsPVtdO2E9PT0iZmlsZSI/bC5wdXNoKHtsYWJlbDoiXHU2MjUzXHU1RjAwXHU5ODg0XHU4OUM4IixpY29uOiJcdXsxRjQ0MX0iLHJ1bjpmdW5jdGlvbigpe1lyKGkpfX0pOmwucHVzaCh7bGFiZWw6Ilx1OEZEQlx1NTE2NVx1NkI2NFx1NzZFRVx1NUY1NSIsaWNvbjoiXHV7MUY0QzJ9IixydW46ZnVuY3Rpb24oKXtxdCh7Y3dkOml9KX19KSxsLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTVCOENcdTY1NzRcdThERUZcdTVGODQiLGljb246Ilx1ezFGNENCfSIscnVuOmZ1bmN0aW9uKCl7R3IoaSkudGhlbihmdW5jdGlvbigpe2t0KCJcdTVERjJcdTU5MERcdTUyMzZcdThERUZcdTVGODQiKX0pfX0pLHMmJnMhPT1pJiZsLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTc2RjhcdTVCRjlcdThERUZcdTVGODQiLGljb246Ilx1ezFGNENCfSIscnVuOmZ1bmN0aW9uKCl7R3IocykudGhlbihmdW5jdGlvbigpe2t0KCJcdTVERjJcdTU5MERcdTUyMzZcdTc2RjhcdTVCRjlcdThERUZcdTVGODQiKX0pfX0pLGwucHVzaCh7bGFiZWw6Ilx1N0M5OFx1OEQzNFx1OERFRlx1NUY4NFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIsaWNvbjoiXHUyNzBGXHVGRTBGIixydW46ZnVuY3Rpb24oKXtlYShpKSYma3QoIlx1NURGMlx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIpfX0pLGE9PT0iZmlsZSImJmwucHVzaCh7bGFiZWw6Ilx1NEUwQlx1OEY3RFx1NjU4N1x1NEVGNiIsaWNvbjoiXHUyQjA3IixydW46ZnVuY3Rpb24oKXt2YXIgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Zy5ocmVmPSIvYXBpL2ZpbGUtcmF3P2Rvd25sb2FkPTEmcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChpKSxnLnJlbD0ibm9vcGVuZXIiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZyksZy5jbGljaygpLGcucmVtb3ZlKCl9fSksby5pbm5lckhUTUw9bC5tYXAoZnVuY3Rpb24oZyxtKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJmaWxlLWNvbnRleHQtbWVudS1pdGVtIiBkYXRhLWlkeD0iJyttKyciPjxzcGFuIGNsYXNzPSJjdHgtaWNvbiI+JytnLmljb24rJzwvc3Bhbj48c3BhbiBjbGFzcz0iY3R4LWxhYmVsIj4nK3AoZy5sYWJlbCkrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvKTt2YXIgYz13aW5kb3cuaW5uZXJXaWR0aCxmPXdpbmRvdy5pbm5lckhlaWdodCxkPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj1NYXRoLm1pbihlLGMtZC53aWR0aC04KSxoPU1hdGgubWluKHQsZi1kLmhlaWdodC04KTtvLnN0eWxlLmxlZnQ9TWF0aC5tYXgoOCx2KSsicHgiLG8uc3R5bGUudG9wPU1hdGgubWF4KDgsaCkrInB4IixvLnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWxlLWNvbnRleHQtbWVudS1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihnKXtnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihtKXttLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB5PXBhcnNlSW50KGcuZGF0YXNldC5pZHgsMTApO09uKCksbFt5XSYmbFt5XS5ydW4oKX0pfSksc2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixPbiwhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixPbiwhMCl9LDApfXZhciBPPW51bGw7ZnVuY3Rpb24gWXIoZSl7dmFyIHQ9TyYmTy5vdmVybGF5O2lmKHQpe08ucGF0aD1lLE8uZWRpdGluZz0hMSxPLmRpcnR5PSExO3ZhciBzPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10aXRsZSIpO3MmJihzLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1pY29uIj5cdXsxRjRDNH08L3NwYW4+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW5hbWUtYmxvY2siPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLXJvdyI+PHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1maWxlbmFtZSI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctcGF0aCIgdGl0bGU9IiI+PC9zcGFuPjwvZGl2PicpO3ZhciBvPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10b29sYmFyIik7byYmKG8uaW5uZXJIVE1MPSIiKTt2YXIgbD10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctcGF0aCIpO2wmJihsLnRleHRDb250ZW50PSIiLGwudGl0bGU9IiIpO3ZhciBjPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7YyYmKGMuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHUyMDI2PC9kaXY+Jyl9ZWxzZXt0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctb3ZlcmxheSIsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1tb2RhbCIgdGFiaW5kZXg9Ii0xIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctaGVhZGVyIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctdGl0bGUiPjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctaWNvbiI+XHV7MUY0QzR9PC9zcGFuPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLWJsb2NrIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbmFtZS1yb3ciPjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctZmlsZW5hbWUiPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0iZmlsZS1wcmV2aWV3LXBhdGgiIHRpdGxlPSIiPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctdG9vbGJhciI+PC9kaXY+PGJ1dHRvbiBjbGFzcz0iZmlsZS1wcmV2aWV3LWNsb3NlIiB0aXRsZT0iXHU1MTczXHU5NUVEIChFc2MpIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPicrUGUoIngiLHtzaXplOjE4fSkrJzwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1ib2R5Ij48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHUyMDI2PC9kaXY+PC9kaXY+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1jbG9zZSIpLGk9ZnVuY3Rpb24oKXtpZihPJiZPLmRpcnR5JiZ0eXBlb2Ygb249PSJmdW5jdGlvbiIpe29uKHt0eXBlOiJ3YXJuaW5nIix0aXRsZToiXHU2NTNFXHU1RjAzXHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU0RkVFXHU2NTM5XHVGRjFGIixtZXNzYWdlOiJcdTVGNTNcdTUyNERcdTY1ODdcdTRFRjZcdTY3MDlcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTY1MzlcdTUyQThcdUZGMENcdTUxNzNcdTk1RURcdTU0MEVcdTRGMUFcdTRFMjJcdTU5MzFcdTMwMDIiLGJ1dHRvbnM6W3tsYWJlbDoiXHU3RUU3XHU3RUVEXHU3RjE2XHU4RjkxIix2YWx1ZTohMSxraW5kOiJnaG9zdCJ9LHtsYWJlbDoiXHU2NTNFXHU1RjAzXHU0RkVFXHU2NTM5Iix2YWx1ZTohMCxraW5kOiJkYW5nZXIiLGF1dG9mb2N1czohMH1dLGNhbmNlbFZhbHVlOiExfSkudGhlbihmdW5jdGlvbihkKXtkJiZhKCl9KTtyZXR1cm59YSgpfSxhPWZ1bmN0aW9uKCl7dC5yZW1vdmUoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix1KSxPPW51bGx9O24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGkpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGQpe2QudGFyZ2V0PT09dCYmaSgpfSk7dmFyIHU9ZnVuY3Rpb24oZCl7aWYoKGQua2V5PT09InMifHxkLmtleT09PSJTIikmJihkLmN0cmxLZXl8fGQubWV0YUtleSkmJk8mJk8uZWRpdGluZyl7ZC5wcmV2ZW50RGVmYXVsdCgpLFl1KCk7cmV0dXJufWlmKGQua2V5PT09IkVzY2FwZSIpe2lmKE8mJk8uZWRpdGluZyl7ZC5wcmV2ZW50RGVmYXVsdCgpLEd1KCk7cmV0dXJufWkoKTtyZXR1cm59TyYmKGQudGFyZ2V0JiYoZC50YXJnZXQudGFnTmFtZT09PSJJTlBVVCJ8fGQudGFyZ2V0LnRhZ05hbWU9PT0iVEVYVEFSRUEiKXx8Ty5lZGl0aW5nfHwoZC5rZXk9PT0iQXJyb3dMZWZ0Ij8oZC5wcmV2ZW50RGVmYXVsdCgpLFV1KC0xKSk6ZC5rZXk9PT0iQXJyb3dSaWdodCImJihkLnByZXZlbnREZWZhdWx0KCksVXUoMSkpKSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHUpLE89e292ZXJsYXk6dCxjbG9zZTppLHBhdGg6ZSxkYXRhOm51bGwsZWRpdGluZzohMSxkaXJ0eTohMX19dmFyIGY9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXBhdGgiKTtmJiYoZi50ZXh0Q29udGVudD1lLGYudGl0bGU9ZSksZmV0Y2goIi9hcGkvZmlsZS1wcmV2aWV3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQoZSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGQpe3JldHVybiBkLmpzb24oKS50aGVuKGZ1bmN0aW9uKHYpe3JldHVybntvazpkLm9rLHN0YXR1czpkLnN0YXR1cyxkYXRhOnZ9fSl9KS50aGVuKGZ1bmN0aW9uKGQpe3ZhciB2PXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7aWYoIWQub2t8fGQuZGF0YSYmZC5kYXRhLmVycm9yKXt2YXIgaD1kLmRhdGEmJmQuZGF0YS5lcnJvcnx8Ilx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNSI7ZC5zdGF0dXM9PT00MTMmJmQuZGF0YSYmZC5kYXRhLnNpemUmJihoKz0iXHVGRjA4XHU2NTg3XHU0RUY2XHU1OTI3XHU1QzBGXHVGRjFBIitxbihkLmRhdGEuc2l6ZSkrIlx1RkYwOSIpLHYuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctZXJyb3IiPjxzcGFuIGNsYXNzPSJwcmV2aWV3LWVycm9yLWljb24iPlx1MjZBMDwvc3Bhbj48c3Bhbj4nK3AoaCkrIjwvc3Bhbj48L2Rpdj4iLGQuc3RhdHVzPT09NDEzJiZ0YSh0LHtraW5kOiJiaW5hcnkiLHBhdGg6ZSxuYW1lOmUuc3BsaXQoIi8iKS5wb3AoKXx8ZSxleHQ6IiIsc2l6ZTpkLmRhdGEmJmQuZGF0YS5zaXplfHwwfSk7cmV0dXJufU8uZGF0YT1kLmRhdGEsVnUodCxkLmRhdGEpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgZD10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO2QuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctZXJyb3IiPjxzcGFuIGNsYXNzPSJwcmV2aWV3LWVycm9yLWljb24iPlx1MjZBMDwvc3Bhbj48c3Bhbj5cdTUyQTBcdThGN0RcdTk4ODRcdTg5QzhcdTU5MzFcdThEMjU8L3NwYW4+PC9kaXY+J30pfWZ1bmN0aW9uIFV1KGUpe2lmKE8pe3ZhciB0PShyLmFsbEZpbGVzfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvLnR5cGU9PT0iZmlsZSJ9KTtpZih0Lmxlbmd0aCl7Zm9yKHZhciBuPU8ucGF0aCxpPS0xLGE9MDthPHQubGVuZ3RoO2ErKylpZih0W2FdLnBhdGg9PT1uKXtpPWE7YnJlYWt9aWYoIShpPDApKXt2YXIgdT0oaStlK3QubGVuZ3RoKSV0Lmxlbmd0aCxzPXRbdV0ucGF0aDtzJiZzIT09biYmWXIocyl9fX19ZnVuY3Rpb24gVnUoZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctZmlsZW5hbWUiKTtuJiYobi50ZXh0Q29udGVudD10Lm5hbWUpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1pY29uIik7aSYmKGkudGV4dENvbnRlbnQ9X3Uoe25hbWU6dC5uYW1lLHR5cGU6ImZpbGUifSkpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10aXRsZSIpLHU9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWxhbmciKTt1JiZ1LnJlbW92ZSgpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LWxhbmciO3ZhciBvPXtpbWFnZToiXHU1NkZFXHU3MjQ3IixwZGY6IlBERiIsdmlkZW86Ilx1ODlDNlx1OTg5MSIsYXVkaW86Ilx1OTdGM1x1OTg5MSIsYmluYXJ5OiJcdTRFOENcdThGREJcdTUyMzYifTt0LmtpbmQ9PT0idGV4dCI/cy50ZXh0Q29udGVudD10Lmxhbmd8fCh0LmV4dHx8IiIpLnJlcGxhY2UoIi4iLCIiKXx8InRleHQiOnMudGV4dENvbnRlbnQ9b1t0LmtpbmRdfHwodC5leHR8fCIiKS5yZXBsYWNlKCIuIiwiIil8fHQua2luZCxhJiZhLmFwcGVuZENoaWxkKHMpLHRhKGUsdCk7dmFyIGw9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtsLmlubmVySFRNTD0iIixsLmNsYXNzTGlzdC5yZW1vdmUoImtpbmQtdGV4dCIsImtpbmQtaW1hZ2UiLCJraW5kLXBkZiIsImtpbmQtdmlkZW8iLCJraW5kLWF1ZGlvIiwia2luZC1iaW5hcnkiKSxsLmNsYXNzTGlzdC5hZGQoImtpbmQtIisodC5raW5kfHwidGV4dCIpKSx0LmtpbmQ9PT0iaW1hZ2UiP0ZjKGwsdCk6dC5raW5kPT09InBkZiI/d2MobCx0KTp0LmtpbmQ9PT0idmlkZW8iP0NjKGwsdCk6dC5raW5kPT09ImF1ZGlvIj9CYyhsLHQpOnQua2luZD09PSJiaW5hcnkiP0RjKGwsdCk6dC5sYW5nPT09Im1hcmtkb3duInx8L1wuKG1kfG1hcmtkb3dufG1keCkkL2kudGVzdCh0Lm5hbWV8fCIiKT9sLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibWFya2Rvd24tcHJldmlldyI+JytTYyh0LmNvbnRlbnR8fCIiKSsiPC9kaXY+IjpFYyhsLHQpfWZ1bmN0aW9uIEVjKGUsdCl7dmFyIG49JHUodC5jb250ZW50fHwiIix0LmxhbmcpLGk9bi5zcGxpdChgCmApLGE9aS5tYXAoZnVuY3Rpb24odSxzKXtyZXR1cm4gcysxfSk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvZGUtcHJldmlldy13cmFwcGVyIj48ZGl2IGNsYXNzPSJjb2RlLXByZXZpZXctbGluZXMiPicrYS5qb2luKGAKYCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvZGUtcHJldmlldy1jb250ZW50Ij48cHJlPicraS5qb2luKGAKYCkrIjwvcHJlPjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gRmMoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImltYWdlLXByZXZpZXctd3JhcHBlciI+PGltZyBjbGFzcz0iaW1hZ2UtcHJldmlldy1pbWciIHNyYz0iJytuKyciIGFsdD0iJytwKHQubmFtZSkrJyIgLz48L2Rpdj4nO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmltYWdlLXByZXZpZXctaW1nIik7aWYoaSl7dmFyIGE9ITE7aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXthPSFhLGkuY2xhc3NMaXN0LnRvZ2dsZSgiem9vbWVkIixhKX0pfX1mdW5jdGlvbiB3YyhlLHQpe3ZhciBuPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGlmcmFtZSBjbGFzcz0icGRmLXByZXZpZXctZnJhbWUiIHNyYz0iJytuKyciIHRpdGxlPSInK3AodC5uYW1lKSsnIj48L2lmcmFtZT4nfWZ1bmN0aW9uIENjKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LXdyYXBwZXIiPjx2aWRlbyBjbGFzcz0ibWVkaWEtcHJldmlldy12aWRlbyIgY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHNyYz0iJytuKyciPlx1NjBBOFx1NzY4NFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUwRFx1NjUyRlx1NjMwMSB2aWRlbyBcdTY4MDdcdTdCN0VcdTMwMDI8L3ZpZGVvPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctbWV0YSI+JytwKHFuKHQuc2l6ZSkpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIEJjKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LXdyYXBwZXIgYXVkaW8iPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctaWNvbiI+XHV7MUYzQjV9PC9kaXY+PGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy1uYW1lIj4nK3AodC5uYW1lKSsnPC9kaXY+PGF1ZGlvIGNsYXNzPSJtZWRpYS1wcmV2aWV3LWF1ZGlvIiBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3JjPSInK24rJyI+XHU2MEE4XHU3Njg0XHU2RDRGXHU4OUM4XHU1NjY4XHU0RTBEXHU2NTJGXHU2MzAxIGF1ZGlvIFx1NjgwN1x1N0I3RVx1MzAwMjwvYXVkaW8+PGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy1tZXRhIj4nK3AocW4odC5zaXplKSkrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gRGMoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9kb3dubG9hZD0xJnBhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctY2FyZCI+PGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctaWNvbiI+XHV7MUY0RTZ9PC9kaXY+PGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctbmFtZSI+JytwKHQubmFtZSkrJzwvZGl2PjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LW1ldGEiPjxzcGFuPicrcCgodC5leHR8fCIiKS5yZXBsYWNlKC9eXC4vLCIiKXx8Ilx1NjcyQVx1NzdFNVx1NjgzQ1x1NUYwRiIpKyI8L3NwYW4+PHNwYW4+XHhCNzwvc3Bhbj48c3Bhbj4iK3AocW4odC5zaXplKSkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJiaW5hcnktcHJldmlldy1wYXRoIiB0aXRsZT0iJytwKHQucGF0aCkrJyI+JytwKHQucGF0aCkrJzwvZGl2PjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWFjdGlvbnMiPjxhIGNsYXNzPSJiaW5hcnktcHJldmlldy1idG4iIGhyZWY9IicrbisnIiBkb3dubG9hZD0iJytwKHQubmFtZSkrJyI+XHU0RTBCXHU4RjdEXHU2NTg3XHU0RUY2PC9hPjxidXR0b24gY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWJ0biIgdHlwZT0iYnV0dG9uIiBkYXRhLWFjdGlvbj0idmlldy1jYXQiPlx1NTcyOFx1N0VDOFx1N0FFRlx1NEUyRFx1NjdFNVx1NzcwQjwvYnV0dG9uPjwvZGl2PjwvZGl2Pic7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1hY3Rpb249InZpZXctY2F0Il0nKTtpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2VhKCdjYXQgLS0gIicrdC5wYXRoKyciJykmJmt0KCJcdTU0N0RcdTRFRTRcdTVERjJcdTdDOThcdThEMzRcdTUyMzBcdThGOTNcdTUxNjVcdTY4NDYiKX0pfWZ1bmN0aW9uIHRhKGUsdCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXRvb2xiYXIiKTtpZihuKXtpZihuLmlubmVySFRNTD0iIixuLmNsYXNzTGlzdC5yZW1vdmUoImVkaXRpbmciKSxPJiZPLmVkaXRpbmcpe24uY2xhc3NMaXN0LmFkZCgiZWRpdGluZyIpLGxyKGUsdCk7cmV0dXJufXZhciBpPVtdO3Qua2luZD09PSJ0ZXh0IiYmaS5wdXNoKHtsYWJlbDoiXHU3RjE2XHU4RjkxXHU2NTg3XHU0RUY2IChFKSIsaWNvbjpQZSgiZWRpdCIpLHByaW1hcnk6ITAsYWN0aW9uOmZ1bmN0aW9uKCl7a2MoKX19KSxpLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdThERUZcdTVGODQiLGljb246UGUoImNsaXBib2FyZCIpLGFjdGlvbjpmdW5jdGlvbigpe0dyKHQucGF0aCkudGhlbihmdW5jdGlvbigpe2t0KCJcdTVERjJcdTU5MERcdTUyMzZcdThERUZcdTVGODQiKX0pfX0pLGkucHVzaCh7bGFiZWw6Ilx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIsaWNvbjpQZSgic2VuZC10by1pbnB1dCIpLGFjdGlvbjpmdW5jdGlvbigpe2VhKHQucGF0aCkmJmt0KCJcdTVERjJcdTdDOThcdThEMzRcdTUyMzBcdThGOTNcdTUxNjVcdTY4NDYiKX19KSxpLnB1c2goe2xhYmVsOiJcdTRFMEJcdThGN0QiLGljb246UGUoImRvd25sb2FkIiksYWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2EuaHJlZj0iL2FwaS9maWxlLXJhdz9kb3dubG9hZD0xJnBhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKSxhLmRvd25sb2FkPXQubmFtZXx8IiIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKSxhLmNsaWNrKCksYS5yZW1vdmUoKX19KSx0LmtpbmQ9PT0idGV4dCImJihpLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTUxNjhcdTkwRThcdTUxODVcdTVCQjkiLGljb246UGUoImNvcHkiKSxhY3Rpb246ZnVuY3Rpb24oKXtHcih0LmNvbnRlbnR8fCIiKS50aGVuKGZ1bmN0aW9uKCl7a3QoIlx1NURGMlx1NTkwRFx1NTIzNlx1NTE4NVx1NUJCOSIpfSl9fSksaS5wdXNoKHtsYWJlbDoiXHU1MjA3XHU2MzYyXHU4MUVBXHU1MkE4XHU2MzYyXHU4ODRDIixpY29uOlBlKCJ3cmFwLXRleHQiKSx0b2dnbGVDbGFzczoidG9vbGJhci1hY3RpdmUiLGdldEluaXRpYWw6ZnVuY3Rpb24oKXt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLXByZXZpZXctY29udGVudCBwcmUiKTtyZXR1cm4gYSYmYS5jbGFzc0xpc3QuY29udGFpbnMoIndyYXAiKX0sYWN0aW9uOmZ1bmN0aW9uKGEpe3ZhciB1PWUucXVlcnlTZWxlY3RvcigiLmNvZGUtcHJldmlldy1jb250ZW50IHByZSIpO3UmJih1LmNsYXNzTGlzdC50b2dnbGUoIndyYXAiKSxhLmNsYXNzTGlzdC50b2dnbGUoInRvb2xiYXItYWN0aXZlIix1LmNsYXNzTGlzdC5jb250YWlucygid3JhcCIpKSl9fSksaS5wdXNoKHtraW5kOiJncm91cCIsY2xhc3NOYW1lOiJ0b29sYmFyLWdyb3VwLWZvbnRzaXplIixjaGlsZHJlbjpbe2xhYmVsOiJcdTdGMjlcdTVDMEZcdTVCNTdcdTUzRjciLGljb246UGUoIm1pbnVzIiksYWN0aW9uOmZ1bmN0aW9uKCl7UXUoZSwtMSl9fSx7a2luZDoibGFiZWwiLGljb246UGUoInR5cGUiKSxsYWJlbDoiXHU1QjU3XHU1M0Y3In0se2xhYmVsOiJcdTY1M0VcdTU5MjdcdTVCNTdcdTUzRjciLGljb246UGUoInBsdXMiKSxhY3Rpb246ZnVuY3Rpb24oKXtRdShlLDEpfX1dfSkpLEt1KG4saSxlKX19ZnVuY3Rpb24gS3UoZSx0LG4pe3QuZm9yRWFjaChmdW5jdGlvbihpKXtpZihpLmtpbmQ9PT0iZ3JvdXAiKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXAiKyhpLmNsYXNzTmFtZT8iICIraS5jbGFzc05hbWU6IiIpLGkuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbih1KXtpZih1LmtpbmQ9PT0ibGFiZWwiKXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cy5jbGFzc05hbWU9ImZpbGUtcHJldmlldy10b29sYmFyLWdyb3VwbGFiZWwiLHMudGl0bGU9dS5sYWJlbHx8IiIscy5pbm5lckhUTUw9dS5pY29ufHwiIixhLmFwcGVuZENoaWxkKHMpO3JldHVybn1hLmFwcGVuZENoaWxkKEp1KHUpKX0pLGUuYXBwZW5kQ2hpbGQoYSk7cmV0dXJufWUuYXBwZW5kQ2hpbGQoSnUoaSkpfSl9ZnVuY3Rpb24gSnUoZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7cmV0dXJuIHQudHlwZT0iYnV0dG9uIix0LmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuIixlLnByaW1hcnkmJnQuY2xhc3NMaXN0LmFkZCgicHJpbWFyeSIpLGUuZGFuZ2VyJiZ0LmNsYXNzTGlzdC5hZGQoImRhbmdlciIpLHQudGl0bGU9ZS5sYWJlbCx0LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsZS5sYWJlbCksdC5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJ0b29sYmFyLWljb24iPicrKGUuaWNvbnx8IiIpKyI8L3NwYW4+IisoZS50ZXh0Pyc8c3BhbiBjbGFzcz0idG9vbGJhci10ZXh0Ij4nK3AoZS50ZXh0KSsiPC9zcGFuPiI6IiIpLGUuZ2V0SW5pdGlhbCYmZS5nZXRJbml0aWFsKCkmJnQuY2xhc3NMaXN0LmFkZCgidG9vbGJhci1hY3RpdmUiKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihuKXtuLnN0b3BQcm9wYWdhdGlvbigpLHR5cGVvZiBlLmFjdGlvbj09ImZ1bmN0aW9uIiYmZS5hY3Rpb24odCl9KSx0fWZ1bmN0aW9uIGxyKGUsdCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXRvb2xiYXIiKTtpZihuKXtuLmlubmVySFRNTD0iIjt2YXIgaT1PJiZPLnNhdmluZyxhPVt7bGFiZWw6Ilx1NEZERFx1NUI1OCAoQ3RybCtTKSIsaWNvbjpQZSgic2F2ZSIpLHRleHQ6Ilx1NEZERFx1NUI1OCIscHJpbWFyeTohMCxhY3Rpb246ZnVuY3Rpb24oKXtZdSgpfX0se2xhYmVsOiJcdTY0QTRcdTk1MDBcdTY1MzlcdTUyQTgiLGljb246UGUoInJvdGF0ZS1jY3ciKSxhY3Rpb246ZnVuY3Rpb24oKXtBYygpfX0se2xhYmVsOiJcdTkwMDBcdTUxRkFcdTdGMTZcdThGOTEgKEVzYykiLGljb246UGUoIngiKSxhY3Rpb246ZnVuY3Rpb24oKXtHdSgpfX1dO0t1KG4sYSxlKSxpJiZuLnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWxlLXByZXZpZXctdG9vbGJhci1idG4iKS5mb3JFYWNoKGZ1bmN0aW9uKHUpe3UuZGlzYWJsZWQ9ITB9KX19ZnVuY3Rpb24ga2MoKXtpZighKCFPfHwhTy5kYXRhKSl7dmFyIGU9Ty5kYXRhO2lmKGUua2luZD09PSJ0ZXh0Iil7Ty5lZGl0aW5nPSEwLE8uZGlydHk9ITEsTy5vcmlnaW5hbENvbnRlbnQ9ZS5jb250ZW50fHwiIjt2YXIgdD1PLm92ZXJsYXksbj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO2lmKG4pe24uY2xhc3NMaXN0LmFkZCgiZWRpdGluZyIpLG4uaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJjb2RlLWVkaXRvci13cmFwcGVyIj48dGV4dGFyZWEgY2xhc3M9ImNvZGUtZWRpdG9yLXRleHRhcmVhIiBzcGVsbGNoZWNrPSJmYWxzZSIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHdyYXA9Im9mZiI+PC90ZXh0YXJlYT48L2Rpdj4nO3ZhciBpPW4ucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yLXRleHRhcmVhIik7aSYmKGkudmFsdWU9ZS5jb250ZW50fHwiIixpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3ZhciBhPWkudmFsdWUhPT0oTy5vcmlnaW5hbENvbnRlbnR8fCIiKTthIT09Ty5kaXJ0eSYmKE8uZGlydHk9YSxjcigpKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYSl7aWYoYS5rZXk9PT0iVGFiIil7YS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB1PWkuc2VsZWN0aW9uU3RhcnQscz1pLnNlbGVjdGlvbkVuZCxvPSIgICI7aS52YWx1ZT1pLnZhbHVlLnNsaWNlKDAsdSkrbytpLnZhbHVlLnNsaWNlKHMpLGkuc2VsZWN0aW9uU3RhcnQ9aS5zZWxlY3Rpb25FbmQ9dStvLmxlbmd0aCxpLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIpKX19KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5mb2N1cygpLGkuc2V0U2VsZWN0aW9uUmFuZ2UoMCwwKSxpLnNjcm9sbFRvcD0wfSwzMCkpLHRhKHQsZSksY3IoKX19fX1mdW5jdGlvbiBHdSgpe2lmKCEoIU98fCFPLmVkaXRpbmcpKXt2YXIgZT1mdW5jdGlvbigpe08uZWRpdGluZz0hMSxPLmRpcnR5PSExO3ZhciB0PU8ub3ZlcmxheSxuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7biYmbi5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0aW5nIiksVnUodCxPLmRhdGEpLGNyKCl9O2lmKE8uZGlydHkmJnR5cGVvZiBvbj09ImZ1bmN0aW9uIil7b24oe3R5cGU6Indhcm5pbmciLHRpdGxlOiJcdTY1M0VcdTVGMDNcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTRGRUVcdTY1MzlcdUZGMUYiLG1lc3NhZ2U6Ilx1NUY1M1x1NTI0RFx1NjU4N1x1NEVGNlx1NjcwOVx1NjcyQVx1NEZERFx1NUI1OFx1NzY4NFx1NjUzOVx1NTJBOFx1RkYwQ1x1OTAwMFx1NTFGQVx1N0YxNlx1OEY5MVx1NTQwRVx1NEYxQVx1NEUyMlx1NTkzMVx1MzAwMiIsYnV0dG9uczpbe2xhYmVsOiJcdTdFRTdcdTdFRURcdTdGMTZcdThGOTEiLHZhbHVlOiExLGtpbmQ6Imdob3N0In0se2xhYmVsOiJcdTY1M0VcdTVGMDNcdTRGRUVcdTY1MzkiLHZhbHVlOiEwLGtpbmQ6ImRhbmdlciIsYXV0b2ZvY3VzOiEwfV0sY2FuY2VsVmFsdWU6ITF9KS50aGVuKGZ1bmN0aW9uKHQpe3QmJmUoKX0pO3JldHVybn1lKCl9fWZ1bmN0aW9uIEFjKCl7aWYoISghT3x8IU8uZWRpdGluZykpe3ZhciBlPU8ub3ZlcmxheSx0PWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yLXRleHRhcmVhIik7dCYmKHQudmFsdWU9Ty5vcmlnaW5hbENvbnRlbnR8fCIiLE8uZGlydHk9ITEsY3IoKSx0LmZvY3VzKCkpfX1mdW5jdGlvbiBZdSgpe2lmKCEoIU98fCFPLmVkaXRpbmcpJiYhTy5zYXZpbmcpe3ZhciBlPU8ub3ZlcmxheSx0PWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yLXRleHRhcmVhIik7aWYodCl7dmFyIG49dC52YWx1ZTtpZihuPT09KE8ub3JpZ2luYWxDb250ZW50fHwiIikpe2t0KCJcdTZDQTFcdTY3MDlcdTY1MzlcdTUyQTgiKTtyZXR1cm59Ty5zYXZpbmc9ITAsbHIoZSxPLmRhdGEpLGZldGNoKCIvYXBpL2ZpbGUtd3JpdGUiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwYXRoOk8ucGF0aCxjb250ZW50Om59KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJue29rOmkub2ssc3RhdHVzOmkuc3RhdHVzLGRhdGE6YX19KX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoTy5zYXZpbmc9ITEsIWkub2t8fGkuZGF0YSYmaS5kYXRhLmVycm9yKXt2YXIgYT1pLmRhdGEmJmkuZGF0YS5lcnJvcnx8Ilx1NEZERFx1NUI1OFx1NTkzMVx1OEQyNSAoIitpLnN0YXR1cysiKSI7a3QoYSksbHIoZSxPLmRhdGEpO3JldHVybn1pZihPLmRhdGEuY29udGVudD1uLE8uZGF0YS5zaXplPWkuZGF0YSYmaS5kYXRhLnNpemV8fG4ubGVuZ3RoLE8ub3JpZ2luYWxDb250ZW50PW4sTy5kaXJ0eT0hMSxrdCgiXHU1REYyXHU0RkREXHU1QjU4IiksY3IoKSxscihlLE8uZGF0YSksdHlwZW9mIHF0PT0iZnVuY3Rpb24iKXRyeXtxdCgpfWNhdGNoe319KS5jYXRjaChmdW5jdGlvbihpKXtPLnNhdmluZz0hMSxrdCgiXHU0RkREXHU1QjU4XHU1OTMxXHU4RDI1XHVGRjFBIisoaSYmaS5tZXNzYWdlP2kubWVzc2FnZToiXHU3RjUxXHU3RURDXHU5NTE5XHU4QkVGIikpLGxyKGUsTy5kYXRhKX0pfX19ZnVuY3Rpb24gY3IoKXtpZihPKXt2YXIgZT1PLm92ZXJsYXk7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LW5hbWUtcm93Iik7aWYodCl7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWRpcnR5Iik7aWYoTy5kaXJ0eSl7aWYoIW4pe3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtpLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LWRpcnR5IixpLnRpdGxlPSJcdTY3MDlcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTRGRUVcdTY1MzkiLGkudGV4dENvbnRlbnQ9Ilx1MjVDRiBcdTY3MkFcdTRGRERcdTVCNTgiLHQuYXBwZW5kQ2hpbGQoaSl9fWVsc2UgbiYmbi5yZW1vdmUoKX19fX1mdW5jdGlvbiBRdShlLHQpe3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtcHJldmlldy1jb250ZW50IHByZSIpLGk9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1wcmV2aWV3LWxpbmVzIik7aWYobil7dmFyIGE9cGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKG4pLmZvbnRTaXplKXx8MTMsdT1NYXRoLm1heCgxMCxNYXRoLm1pbigyMixhK3QpKTtuLnN0eWxlLmZvbnRTaXplPXUrInB4IixpJiYoaS5zdHlsZS5mb250U2l6ZT11KyJweCIpfX1mdW5jdGlvbiAkdShlLHQpe3ZhciBuPWUucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLGk9eGMoKTtpZighaSlyZXR1cm4gbjt2YXIgYT1bXTtmb3IodmFyIHUgaW4gaSl7dmFyIHM9aVt1XTtzJiZzLnBhdHRlcm4mJmEucHVzaCh7cGF0dGVybjpzLnBhdHRlcm4sY2xzOnMuY2xzLHByaW9yaXR5OnMucHJpb3JpdHl8fDV9KX1hLnNvcnQoZnVuY3Rpb24oYyxmKXtyZXR1cm4gZi5wcmlvcml0eS1jLnByaW9yaXR5fSk7dmFyIG89YS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIigiK2MucGF0dGVybi5zb3VyY2UrIikifSksbD1uZXcgUmVnRXhwKG8uam9pbigifCIpLCJnbSIpO3JldHVybiBuLnJlcGxhY2UobCxmdW5jdGlvbihjKXtmb3IodmFyIGY9MDtmPGEubGVuZ3RoO2YrKyl7dmFyIGQ9YVtmXSx2PW5ldyBSZWdFeHAoIl4iK2QucGF0dGVybi5zb3VyY2UrIiQiLCJnbSIpO2lmKHYudGVzdChjKSlyZXR1cm4nPHNwYW4gY2xhc3M9IicrZC5jbHMrJyI+JytjKyI8L3NwYW4+In1yZXR1cm4gY30pfWZ1bmN0aW9uIHhjKCl7cmV0dXJue2NvbW1lbnQ6e3BhdHRlcm46L1wvXC8uKnwjW15cbl0qL3ksY2xzOiJzeW50YXgtY29tbWVudCIscHJpb3JpdHk6MX0sc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXFxdfFxcLikqInwnKD86W14nXFxdfFxcLikqJ3xgKD86W15gXFxdfFxcLikqYC95LGNsczoic3ludGF4LXN0cmluZyIscHJpb3JpdHk6Mn0sa2V5d29yZDp7cGF0dGVybjovXGIoPzphc3luY3xhd2FpdHxicmVha3xjYXNlfGNhdGNofGNsYXNzfGNvbnN0fGNvbnRpbnVlfGRlYnVnZ2VyfGRlY2xhcmV8ZGVmYXVsdHxkZWxldGV8ZG98ZWxzZXxlbnVtfGV4cG9ydHxleHRlbmRzfGZpbmFsbHl8Zm9yfGZyb218ZnVuY3Rpb258Z2V0fGlmfGltcGxlbWVudHN8aW1wb3J0fGlufGluc3RhbmNlb2Z8aW50ZXJmYWNlfGxldHxtb2R1bGV8bmFtZXNwYWNlfG5ld3xudWxsfG9mfG92ZXJyaWRlfHByaXZhdGV8cHJvdGVjdGVkfHB1YmxpY3xyZWFkb25seXxyZXR1cm58c2V0fHN0YXRpY3xzdXBlcnxzd2l0Y2h8dGhpc3x0aHJvd3x0cnl8dHlwZXx0eXBlb2Z8dW5kZWZpbmVkfHZhcnx2b2lkfHdoaWxlfHlpZWxkfGFic3RyYWN0fGFzfGJhc2V8Ym9vbHxieXRlfGNoYXJ8ZGVjaW1hbHxkb3VibGV8ZXZlbnR8ZXhwbGljaXR8ZXh0ZXJufGZhbHNlfGZpeGVkfGZsb2F0fGZvcmVhY2h8Z290b3xpbXBsaWNpdHxpbnxpbnR8aW50ZXJuYWx8aXN8bG9ja3xsb25nfG9iamVjdHxvcGVyYXRvcnxvdXR8cGFyYW1zfHBhcnRpYWx8cmVhZG9ubHl8cmVmfHNieXRlfHNlYWxlZHxzaG9ydHxzaXplb2Z8c3RhY2thbGxvY3xzdHJpbmd8c3RydWN0fHN3aXRjaHx0aHJvd3x0cnVlfHRyeXx1aW50fHVsb25nfHVuY2hlY2tlZHx1bnNhZmV8dXNob3J0fHVzaW5nfHZpcnR1YWx8dm9sYXRpbGV8d2hlcmV8d2hpbGV8d2l0aHx5aWVsZHxkZWZ8ZWxpZnxlbHNlfGV4Y2VwdHxleGVjfGZpbmFsbHl8Zm9yfGZyb218Z2xvYmFsfGlmfGltcG9ydHxsYW1iZGF8bm9ubG9jYWx8bm90fG9yfHBhc3N8cHJpbnR8cmFpc2V8cmV0dXJufHRyeXx3aGlsZXx3aXRofHlpZWxkfFRydWV8RmFsc2V8Tm9uZXxhbmR8aW58aXN8bGFtYmRhfG5vdHxvcnxmbnxwdWJ8dXNlfG1vZHxpbXBsfHRyYWl0fHN0cnVjdHxlbnVtfG1hdGNofGxvb3B8d2hpbGV8Zm9yfGlmfGVsc2V8cmV0dXJufHNlbGZ8c3VwZXJ8Y3JhdGV8d2hlcmV8YXN5bmN8YXdhaXR8bW92ZXxyZWZ8bXV0fHN0YXRpY3xjb25zdHx1bnNhZmV8ZXh0ZXJufHVzZXxhc3xpbXBsfHN0cnVjdHxlbnVtfHR5cGV8Zm58bGV0fGxvb3B8aWZ8ZWxzZXxtYXRjaHxyZXR1cm58c2VsZnxTZWxmfG1vZHxwdWJ8Y3JhdGV8bWFjcm98ZGVyaXZlfHdoZXJlfGFzeW5jfGF3YWl0fGR5bnxzZWxmfHBhY2thZ2V8ZnVuY3xnb3xyZXR1cm58ZGVmZXJ8Z298aWZ8ZWxzZXxzd2l0Y2h8Y2FzZXxkZWZhdWx0fGZvcnxyYW5nZXxzZWxlY3R8YnJlYWt8Y29udGludWV8ZmFsbHRocm91Z2h8Y29uc3R8c3RydWN0fGVudW18dHlwZXxpbnRlcmZhY2V8bWFwfGNoYW58dmFyfG5pbHx0cnVlfGZhbHNlfGlvdGF8bGVufGNhcHxhcHBlbmR8bWFrZXxuZXd8cGFuaWN8cmVjb3ZlcnxzZWxlY3R8ZWxzZXxpZnxlbGlmfGVuZHxmb3J8ZnVuY3Rpb258aWZ8aW58bG9jYWx8bmlsfG5vdHxvcnxyZXBlYXR8cmV0dXJufHRoZW58dHJ1ZXx1bnRpbHx3aGlsZXxlbmR8YW5kfGJlZ2lufGRvfGVuZHxmYWxzZXxmb3J8ZnVuY3Rpb258aWZ8aW58bG9jYWx8bmlsfG5vdHxvcnxyZXBlYXR8cmV0dXJufHRoZW58dHJ1ZXx1bnRpbHx3aGlsZSlcYi95LGNsczoic3ludGF4LWtleXdvcmQiLHByaW9yaXR5OjN9LG51bWJlcjp7cGF0dGVybjovXGIoPzoweFtcZGEtZkEtRl0rfDBiWzAxXSt8MG9bMC03XSt8XGQrXC4/XGQqKD86ZVsrLV0/XGQrKT8pXGIveSxjbHM6InN5bnRheC1udW1iZXIiLHByaW9yaXR5OjJ9LGZ1bmN0aW9uOntwYXR0ZXJuOi9cYltBLVpdW2EtekEtWjAtOV0qW2Etel1cdyooPz1ccypcKCkveSxjbHM6InN5bnRheC1mdW5jdGlvbiIscHJpb3JpdHk6NH0sdHlwZTp7cGF0dGVybjovXGIoPzpzdHJpbmd8bnVtYmVyfGJvb2xlYW58dm9pZHxhbnl8dW5rbm93bnxuZXZlcnxvYmplY3R8c3ltYm9sfGJpZ2ludHxBcnJheXxPYmplY3R8U3RyaW5nfE51bWJlcnxCb29sZWFufE1hcHxTZXR8V2Vha01hcHxXZWFrU2V0fFByb21pc2V8RXJyb3J8VHlwZXxJbnRlcmZhY2V8RW51bXxDbGFzc3xTdHJ1Y3R8SW1wbHxUcmFpdHxmbnxmbmN8ZnVuY3xmdW5jdGlvbnxkZWZ8cHJvY3xmdW58cHVifHN0YXRpY3xjb25zdHxsZXR8dmFyfGludHxmbG9hdHxkb3VibGV8Ym9vbHxjaGFyfGJ5dGV8c3RyaW5nfHU4fHUxNnx1MzJ8dTY0fGk4fGkxNnxpMzJ8aTY0fGYzMnxmNjR8dXNpemV8aXNpemV8c3RyfFZlY3xIYXNoTWFwfE9wdGlvbnxSZXN1bHR8Qm94fFJjfEFyY3xDZWxsfFJlZkNlbGwpXGIveSxjbHM6InN5bnRheC10eXBlIixwcmlvcml0eTo0fSxvcGVyYXRvcjp7cGF0dGVybjovWytcLSovJT08PiEmfF5+PzpdK3xcLlwuXC4/L3ksY2xzOiJzeW50YXgtb3BlcmF0b3IiLHByaW9yaXR5OjV9LHB1bmN0dWF0aW9uOntwYXR0ZXJuOi9be31bXF0oKTssXC5dL3ksY2xzOiJzeW50YXgtcHVuY3R1YXRpb24iLHByaW9yaXR5OjZ9fX1mdW5jdGlvbiBTYyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1wKGUpO3Q9dC5yZXBsYWNlKC9gYGAoXHcqKVxuKFtcc1xTXSo/KWBgYC9nLGZ1bmN0aW9uKGksYSx1KXt2YXIgcz0kdSh1LnRyaW0oKSxhKSxvPXMucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7Iik7cmV0dXJuJzxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLScrYSsnIj4nK28rIjwvY29kZT48L3ByZT4ifSksdD10LnJlcGxhY2UoL2AoW15gXSspYC9nLGZ1bmN0aW9uKGksYSl7cmV0dXJuIjxjb2RlPiIrYS5yZXBsYWNlKC9fL2csIiYjOTU7IikucmVwbGFjZSgvXCovZywiJiM0MjsiKSsiPC9jb2RlPiJ9KSx0PXQucmVwbGFjZSgvXiMjIyMjI1xzKyguKikkL2dtLCI8aDY+JDE8L2g2PiIpLHQ9dC5yZXBsYWNlKC9eIyMjIyNccysoLiopJC9nbSwiPGg1PiQxPC9oNT4iKSx0PXQucmVwbGFjZSgvXiMjIyNccysoLiopJC9nbSwiPGg0PiQxPC9oND4iKSx0PXQucmVwbGFjZSgvXiMjI1xzKyguKikkL2dtLCI8aDM+JDE8L2gzPiIpLHQ9dC5yZXBsYWNlKC9eIyNccysoLiopJC9nbSwiPGgyPiQxPC9oMj4iKSx0PXQucmVwbGFjZSgvXiNccysoLiopJC9nbSwiPGgxPiQxPC9oMT4iKSx0PXQucmVwbGFjZSgvXCpcKlwqKC4rPylcKlwqXCovZywiPHN0cm9uZz48ZW0+JDE8L2VtPjwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC9cKlwqKC4rPylcKlwqL2csIjxzdHJvbmc+JDE8L3N0cm9uZz4iKSx0PXQucmVwbGFjZSgvXCooLis/KVwqL2csIjxlbT4kMTwvZW0+IiksdD10LnJlcGxhY2UoLyhefFteXHddKV9fXyhcUyg/OlteXG5dKj9cUyk/KV9fXyg/IVx3KS9nLCIkMTxzdHJvbmc+PGVtPiQyPC9lbT48L3N0cm9uZz4iKSx0PXQucmVwbGFjZSgvKF58W15cd10pX18oXFMoPzpbXlxuXSo/XFMpPylfXyg/IVx3KS9nLCIkMTxzdHJvbmc+JDI8L3N0cm9uZz4iKSx0PXQucmVwbGFjZSgvKF58W15cd10pXyhcUyg/OlteXG5fXSo/XFMpPylfKD8hXHcpL2csIiQxPGVtPiQyPC9lbT4iKSx0PXQucmVwbGFjZSgvfn4oLis/KX5+L2csIjxkZWw+JDE8L2RlbD4iKSx0PXQucmVwbGFjZSgvXFsoW15cXV0rKVxdXCgoW14pXSspXCkvZywnPGEgaHJlZj0iJDIiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4kMTwvYT4nKSx0PXQucmVwbGFjZSgvIVxbKFteXF1dKilcXVwoKFteKV0rKVwpL2csJzxpbWcgc3JjPSIkMiIgYWx0PSIkMSI+JyksdD10LnJlcGxhY2UoL14mZ3Q7XHMrKC4qKSQvZ20sIjxibG9ja3F1b3RlPiQxPC9ibG9ja3F1b3RlPiIpLHQ9dC5yZXBsYWNlKC9eLS0tKyQvZ20sIjxocj4iKSx0PXQucmVwbGFjZSgvXlwqXCpcKiskL2dtLCI8aHI+IiksdD10LnJlcGxhY2UoL15bXC1cKl1ccysoLiopJC9nbSwiPGxpPiQxPC9saT4iKSx0PXQucmVwbGFjZSgvKDxsaT4uKjxcL2xpPlxuPykrL2csIjx1bD4kJjwvdWw+IiksdD10LnJlcGxhY2UoL15cZCtcLlxzKyguKikkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9Wm8odCk7dmFyIG49dC5zcGxpdCgvXG57Mix9Lyk7cmV0dXJuIHQ9bi5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIGk9aS50cmltKCksaT8vXjwoaFsxLTZdfHVsfG9sfGxpfGJsb2NrcXVvdGV8cHJlfHRhYmxlfGhyfGRpdikvLnRlc3QoaSk/aToiPHA+IitpLnJlcGxhY2UoL1xuL2csIjxicj4iKSsiPC9wPiI6IiJ9KS5qb2luKGAKYCksdH1mdW5jdGlvbiBYdSgpe2lmKCFyLnNlbGVjdGVkSWR8fCFyLmdpdFN0YXR1c3x8IXIuZ2l0U3RhdHVzLmlzR2l0fHxyLmdpdFN0YXR1c1Nlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZClyZXR1cm4iIjt2YXIgZT1yLmdpdFN0YXR1cy5icmFuY2h8fCI/Iix0PXIuZ2l0U3RhdHVzLm1vZGlmaWVkQ291bnR8fDAsbj1lKyh0PyIgIFx4QjcgICIrdCsiIFx1NEUyQVx1NjU4N1x1NEVGNlx1NUY4NVx1NjNEMFx1NEVBNCI6IiAgXHhCNyAgXHU1REU1XHU0RjVDXHU1MzNBXHU1RTcyXHU1MUMwIik7cmV0dXJuJzxidXR0b24gaWQ9InRvcGJhci1naXQtYmFkZ2UiIGNsYXNzPSJ0b3BiYXItZ2l0LWJhZGdlIiB0eXBlPSJidXR0b24iIHRpdGxlPSInK3AobikrJyIgYXJpYS1sYWJlbD0iXHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0Ij48c3ZnIGNsYXNzPSJ0b3BiYXItZ2l0LWljb24iIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iMiIvPjxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMiIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iOSIgcj0iMiIvPjxwYXRoIGQ9Ik02IDh2OCIvPjxwYXRoIGQ9Ik0xOCAxMXYxYTMgMyAwIDAgMS0zIDNIOSIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJ0b3BiYXItZ2l0LWJyYW5jaCI+JytwKGUpKyI8L3NwYW4+IisodD4wPyc8c3BhbiBjbGFzcz0idG9wYmFyLWdpdC1jb3VudCI+XHhCNycrdCsiPC9zcGFuPiI6JzxzcGFuIGNsYXNzPSJ0b3BiYXItZ2l0LWNsZWFuIiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHUyNzEzPC9zcGFuPicpKyI8L2J1dHRvbj4ifWZ1bmN0aW9uIG5hKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1naXQtc2xvdCIpO2lmKGUpe2UuaW5uZXJIVE1MPVh1KCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1naXQtYmFkZ2UiKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihuKXtuLnByZXZlbnREZWZhdWx0KCksWnUoKX0pfX1mdW5jdGlvbiBJYyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1yLnRvcGJhck1vcmVPcGVuLG49ISFlLmNsYXVkZVNlc3Npb25JZCxpPSEhZS5jd2QsYT1lLndvcmt0cmVlRW5hYmxlZCYmZS53b3JrdHJlZSYmZS53b3JrdHJlZS5icmFuY2gmJmUud29ya3RyZWUucGF0aCx1PWUud29ya3RyZWVNZXJnZVN0YXR1cz09PSJtZXJnZWQiJiZlLndvcmt0cmVlTWVyZ2VJbmZvJiZlLndvcmt0cmVlTWVyZ2VJbmZvLmNsZWFudXBEb25lPT09ITEscz1lLnN0YXR1cz09PSJydW5uaW5nInx8ZS53b3JrdHJlZU1lcmdlU3RhdHVzPT09Im1lcmdpbmciLG89YSYmZS53b3JrdHJlZU1lcmdlU3RhdHVzIT09Im1lcmdlZCIsbD11LGM9bnx8aXx8ITAsZj1vfHxsfHwhMCxkPSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgcng9IjIiIHJ5PSIyIi8+PHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSIvPjwvc3ZnPicsdj0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTcuNSAxOWE0LjUgNC41IDAgMSAwLTEuNS04Ljc0QTYgNiAwIDEgMCA2IDE0aDExLjV6Ii8+PC9zdmc+JyxoPSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIvPjwvc3ZnPicsZz0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48bGluZSB4MT0iNCIgeTE9IjkiIHgyPSIyMCIgeTI9IjkiLz48bGluZSB4MT0iNCIgeTE9IjE1IiB4Mj0iMjAiIHkyPSIxNSIvPjxsaW5lIHgxPSIxMCIgeTE9IjMiIHgyPSI4IiB5Mj0iMjEiLz48bGluZSB4MT0iMTYiIHkxPSIzIiB4Mj0iMTQiIHkyPSIyMSIvPjwvc3ZnPicsbT0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNNyA3aDEwIi8+PHBhdGggZD0iTTcgMTJoMTAiLz48cGF0aCBkPSJNNyAxN2gxMCIvPjxwYXRoIGQ9Ik01IDdsLTIgMiAyIDIiLz48cGF0aCBkPSJNMTkgMTVsMiAyLTIgMiIvPjwvc3ZnPicseT0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz4nLHc9IiI7aWYobil7dmFyIEU9ZS5wcm92aWRlcj09PSJjb2RleCI/Ilx1NTkwRFx1NTIzNiBDb2RleCB0aHJlYWQgSUQiOiJcdTU5MERcdTUyMzYgQ2xhdWRlIFx1NEYxQVx1OEJERCBJRCI7dys9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJjb3B5LWNsYXVkZS1zZXNzaW9uLWlkIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK3YrIjxzcGFuPiIrRSsiPC9zcGFuPjwvYnV0dG9uPiJ9aSYmKHcrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0iY29weS1jd2QiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicraCsiPHNwYW4+XHU1OTBEXHU1MjM2XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9zcGFuPjwvYnV0dG9uPiIpLHcrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0iY29weS1zZXNzaW9uLWlkIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK2crIjxzcGFuPlx1NTkwRFx1NTIzNlx1NEYxQVx1OEJERCBJRDwvc3Bhbj48L2J1dHRvbj4iO3ZhciBCPSIiO28/Qis9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJ3b3JrdHJlZS1tZXJnZSIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSInKyhzPyIgZGlzYWJsZWQiOiIiKSsiPiIrbSsiPHNwYW4+XHU1NDA4XHU1RTc2XHU1MjMwXHU0RTNCXHU1MjA2XHU2NTJGXHUyMDI2PC9zcGFuPjwvYnV0dG9uPiI6bCYmKEIrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0id29ya3RyZWUtY2xlYW51cCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+JyttKyI8c3Bhbj5cdTkxQ0RcdThCRDUgd29ya3RyZWUgXHU2RTA1XHU3NDA2PC9zcGFuPjwvYnV0dG9uPiIpLEIrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIHRvcGJhci1tb3JlLWl0ZW0tZGFuZ2VyIiBkYXRhLWFjdGlvbj0iZGVsZXRlLXNlc3Npb24iIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicreSsiPHNwYW4+XHU1MjIwXHU5NjY0XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREPC9zcGFuPjwvYnV0dG9uPiI7dmFyIEY9YyYmZj8nPGRpdiBjbGFzcz0idG9wYmFyLW1vcmUtZGl2aWRlciIgcm9sZT0ic2VwYXJhdG9yIj48L2Rpdj4nOiIiO3JldHVybic8ZGl2IGNsYXNzPSJ0b3BiYXItbW9yZS13cmFwIj48YnV0dG9uIGlkPSJ0b3BiYXItbW9yZS1idXR0b24iIGNsYXNzPSJ0b3BiYXItYnRuIHNxdWFyZScrKHQ/IiBhY3RpdmUiOiIiKSsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERFx1NjRDRFx1NEY1QyIgYXJpYS1oYXNwb3B1cD0ibWVudSIgYXJpYS1leHBhbmRlZD0iJysodD8idHJ1ZSI6ImZhbHNlIikrJyIgdGl0bGU9Ilx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERFx1NjRDRFx1NEY1QyI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSI1IiByPSIxIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxOSIgcj0iMSIvPjwvc3ZnPjwvYnV0dG9uPjxkaXYgaWQ9InRvcGJhci1tb3JlLW1lbnUiIGNsYXNzPSJ0b3BiYXItbW9yZS1tZW51JysodD8iIjoiIGhpZGRlbiIpKyciIHJvbGU9Im1lbnUiIGFyaWEtbGFiZWw9Ilx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERCI+Jyt3K0YrQisiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiBDbihlLHQpe2lmKCFlKXJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7dmFyIG49dCYmdC5mb3JjZSxpPURhdGUubm93KCk7aWYoIW4mJnIuZ2l0U3RhdHVzU2Vzc2lvbklkPT09ZSYmci5naXRTdGF0dXMmJmktci5naXRTdGF0dXNMYXN0RmV0Y2hBdDwxZTMpcmV0dXJuIFByb21pc2UucmVzb2x2ZShyLmdpdFN0YXR1cyk7aWYoci5naXRTdGF0dXNJbmZsaWdodCYmci5naXRTdGF0dXNJbmZsaWdodC5zZXNzaW9uSWQ9PT1lKXJldHVybiByLmdpdFN0YXR1c0luZmxpZ2h0LnByb21pc2U7ci5naXRTdGF0dXNMb2FkaW5nPSEwO3ZhciBhPWZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvZ2l0LXN0YXR1cyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lm9rP3UuanNvbigpOntpc0dpdDohMX19KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiByLmdpdFN0YXR1cz11fHx7aXNHaXQ6ITF9LHIuZ2l0U3RhdHVzU2Vzc2lvbklkPWUsci5naXRTdGF0dXNMYXN0RmV0Y2hBdD1EYXRlLm5vdygpLG5hKCksdX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIHIuZ2l0U3RhdHVzPXtpc0dpdDohMX0sci5naXRTdGF0dXNTZXNzaW9uSWQ9ZSxyLmdpdFN0YXR1c0xhc3RGZXRjaEF0PURhdGUubm93KCksbmEoKSxudWxsfSkuZmluYWxseShmdW5jdGlvbigpe3IuZ2l0U3RhdHVzTG9hZGluZz0hMSxyLmdpdFN0YXR1c0luZmxpZ2h0JiZyLmdpdFN0YXR1c0luZmxpZ2h0LnNlc3Npb25JZD09PWUmJihyLmdpdFN0YXR1c0luZmxpZ2h0PW51bGwpfSk7cmV0dXJuIHIuZ2l0U3RhdHVzSW5mbGlnaHQ9e3Nlc3Npb25JZDplLHByb21pc2U6YX0sYX12YXIgQm49bnVsbCxEbj1udWxsLEFnPW51bGw7ZnVuY3Rpb24gVGMoZSl7cmV0dXJuIGU9PT0iY29tbWl0LXRhZyJ8fGU9PT0iY29tbWl0LXRhZy1wdXNoInx8ZT09PSJjb21taXQtcHVzaCI/ZToiY29tbWl0In1mdW5jdGlvbiBMYyhlKXtyZXR1cm4gZT1UYyhlKSxlPT09ImNvbW1pdC10YWctcHVzaCI/e2FjdGlvbjplLGxhYmVsOiJDb21taXQgKyBUYWcgKyBQdXNoIix2ZXJiOiJcdTYzRDBcdTRFQTRcdTMwMDFcdTYyNTMgVGFnIFx1NUU3Nlx1NjNBOFx1OTAwMSIsd2l0aFRhZzohMCxwdXNoOiEwLHRvbmU6ImFsbCJ9OmU9PT0iY29tbWl0LXRhZyI/e2FjdGlvbjplLGxhYmVsOiJDb21taXQgKyBUYWciLHZlcmI6Ilx1NjNEMFx1NEVBNFx1NUU3Nlx1NjI1MyBUYWciLHdpdGhUYWc6ITAscHVzaDohMSx0b25lOiJ0YWcifTplPT09ImNvbW1pdC1wdXNoIj97YWN0aW9uOmUsbGFiZWw6IkNvbW1pdCArIFB1c2giLHZlcmI6Ilx1NjNEMFx1NEVBNFx1NUU3Nlx1NjNBOFx1OTAwMSIsd2l0aFRhZzohMSxwdXNoOiEwLHRvbmU6InB1c2gifTp7YWN0aW9uOiJjb21taXQiLGxhYmVsOiJDb21taXQiLHZlcmI6Ilx1NEVDNVx1NjNEMFx1NEVBNCIsd2l0aFRhZzohMSxwdXNoOiExLHRvbmU6ImNvbW1pdCJ9fWZ1bmN0aW9uIFp1KCl7aWYoci5zZWxlY3RlZElkKXtyLnF1aWNrQ29tbWl0T3Blbj0hMCxyLnF1aWNrQ29tbWl0U3VibWl0dGluZz0hMSxyLnF1aWNrQ29tbWl0QXV0b0dlbmVyYXRpbmc9ITEsci5xdWlja0NvbW1pdEVycm9yPSIiLHIucXVpY2tDb21taXRGb3JtPXtjdXN0b21NZXNzYWdlOiIiLHRhZzoiIix0YWdFZGl0ZWQ6ITF9LHIucXVpY2tDb21taXRQdXNoaW5nPSExLHIucXVpY2tDb21taXRQdXNoRXJyb3I9IiIsci5xdWlja0NvbW1pdFJlc3VsdD1udWxsLHIucXVpY2tDb21taXREcmFnQWN0aW9uPSJjb21taXQiLFpuKCksaG4oKSxlcigpLE90KCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tb2RhbCIpO2UmJihlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHIubGFzdEZvY3VzZWRFbGVtZW50PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsT2koZSkpLEJuJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixCbiksQm49ZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmci5xdWlja0NvbW1pdE9wZW4mJiFyLnF1aWNrQ29tbWl0U3VibWl0dGluZyYmIXIucXVpY2tDb21taXRQdXNoaW5nJiZIbigpfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixCbiksQ24oci5zZWxlY3RlZElkLHtmb3JjZTohMH0pLnRoZW4oZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0T3BlbiYmT3QoKX0pfX1mdW5jdGlvbiBIbigpe3IucXVpY2tDb21taXRPcGVuPSExLHIucXVpY2tDb21taXRTdWJtaXR0aW5nPSExLHIucXVpY2tDb21taXRFcnJvcj0iIixyLnF1aWNrQ29tbWl0UmVzdWx0PW51bGwsci5xdWlja0NvbW1pdERyYWdBY3Rpb249ImNvbW1pdCI7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tb2RhbCIpO2UmJmUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksci5mb2N1c1RyYXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKSxyLmZvY3VzVHJhcEhhbmRsZXI9bnVsbCksQm4mJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixCbiksQm49bnVsbCksRG4mJihEbigpLERuPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCl9ZnVuY3Rpb24gT3QoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1vZGFsIik7aWYoZSl7RG4mJihEbigpLERuPW51bGwpO3ZhciB0PW5zKCksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmlubmVySFRNTD10O3ZhciBpPW4ucXVlcnlTZWxlY3RvcigiI3F1aWNrLWNvbW1pdC1tb2RhbCIpO2kmJihlLmlubmVySFRNTD1pLmlubmVySFRNTCxlcygpKX19ZnVuY3Rpb24gZXMoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LWNsb3NlLWJ0biIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEhuKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LWNhbmNlbC1idG4iKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixIbik7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1haS1idG4iKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixPYyk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tZXNzYWdlIik7aSYmKGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdEZvcm0uY3VzdG9tTWVzc2FnZT1pLnZhbHVlfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihzKXsocy5tZXRhS2V5fHxzLmN0cmxLZXkpJiZzLmtleT09PSJFbnRlciImJihzLnByZXZlbnREZWZhdWx0KCksX24oImNvbW1pdCIpKX0pKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LXRhZyIpO2EmJihhLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3IucXVpY2tDb21taXRGb3JtLnRhZz1hLnZhbHVlLHIucXVpY2tDb21taXRGb3JtLnRhZ0VkaXRlZD0hMH0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24ocyl7cy5rZXk9PT0iRW50ZXIiJiYocy5wcmV2ZW50RGVmYXVsdCgpLF9uKCJjb21taXQtdGFnIikpfSkpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtcHVzaC1hZnRlci1idG4iKTt1JiZ1LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBzPXIucXVpY2tDb21taXRSZXN1bHR8fHt9O0hjKHtwdXNoQ29tbWl0czohMCxwdXNoVGFnczohIXMudGFnTmFtZSxjbG9zZU9uU3VjY2VzczohMH0pfSkscWMoKX1mdW5jdGlvbiBNYyhlKXt2YXIgdD0hIShlJiZlLnRhZyksbj0hIShlJiZlLnB1c2gpO3JldHVybiB0JiZuPyJjb21taXQtdGFnLXB1c2giOnQ/ImNvbW1pdC10YWciOm4/ImNvbW1pdC1wdXNoIjoiY29tbWl0In12YXIgUGM9NTgsUXI9MTA7ZnVuY3Rpb24gdHMoZSl7cmV0dXJuIGU9PT0idGFnIj97YWN0aW9uOiJjb21taXQtdGFnIixzdWI6ITF9OmU9PT0icHVzaCI/e2FjdGlvbjoiY29tbWl0LXB1c2giLHN1YjohMX06ZT09PSJzdWIiP3thY3Rpb246ImNvbW1pdCIsc3ViOiEwfTp7YWN0aW9uOiJjb21taXQiLHN1YjohMX19ZnVuY3Rpb24gcWMoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1maWVsZCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInFjLWRvY2stc3RhZ2UiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWxhdW5jaCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInFjLWRvY2stY2x1c3RlciIpO2lmKCFlfHwhdHx8IW58fCFpKXJldHVybjt2YXIgYT1bImNvbW1pdCIsInRhZyIsInB1c2giXSx1PXt9O2lmKGEuZm9yRWFjaChmdW5jdGlvbihEKXt1W0RdPWUucXVlcnlTZWxlY3RvcignW2RhdGEtY2hpcD0iJytEKyciXScpfSksIXUuY29tbWl0fHwhdS50YWd8fCF1LnB1c2gpcmV0dXJuO3Uuc3ViPWUucXVlcnlTZWxlY3RvcignW2RhdGEtY2hpcD0ic3ViIl0nKTt2YXIgcz0hIXUuc3ViLG89cz9hLmNvbmNhdChbInN1YiJdKTphO2Z1bmN0aW9uIGwoRCl7cmV0dXJuIHVbRF0/dVtEXS5vZmZzZXRXaWR0aDo5MH1mdW5jdGlvbiBjKCl7cmV0dXJuIHUuY29tbWl0P3UuY29tbWl0Lm9mZnNldEhlaWdodDozOH1mdW5jdGlvbiBmKCl7cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNzIwcHgpIikubWF0Y2hlc31mdW5jdGlvbiBkKCl7dmFyIEQ9ZS5jbGllbnRXaWR0aCxMPWUuY2xpZW50SGVpZ2h0LFA9YygpLHo9bCgiY29tbWl0IiksVT1sKCJ0YWciKSxlZT1sKCJwdXNoIik7aWYoZigpJiZzKXt2YXIgdGU9TWF0aC5tYXgoOCxMKi4yLVAvMiksYWU9TWF0aC5taW4oTC1QLTgsTCouNy1QLzIpLHVlPWZ1bmN0aW9uKG5lKXtyZXR1cm4gTWF0aC5tYXgoOCxEKi4yNy1uZS8yKX0sVD1mdW5jdGlvbihuZSl7cmV0dXJuIE1hdGgubWluKEQtbmUtOCxEKi43My1uZS8yKX07cmV0dXJue2NvbW1pdDp7eDp1ZSh6KSx5OnRlfSx0YWc6e3g6VChVKSx5OnRlfSxwdXNoOnt4OnVlKGVlKSx5OmFlfSxzdWI6e3g6VChsKCJzdWIiKSkseTphZX19fXZhciBNPWYoKSxOPU0/TWF0aC5tYXgoOCxMKi4xOC1QLzIpOk1hdGgubWF4KDgsTCouMTIpLEo9TT9NYXRoLm1pbihMLVAtOCxMKi43Mi1QLzIpOk1hdGgubWluKEwtUC04LEwqLjg4LVApLEc9TT8uMjQ6LjI4LHJlPU0/Ljc2Oi43MixzZT17Y29tbWl0Ont4Ok1hdGgubWF4KDgsKEQteikvMikseTpOfSx0YWc6e3g6TWF0aC5tYXgoOCxEKkctVS8yKSx5Okp9LHB1c2g6e3g6TWF0aC5taW4oRC1lZS04LEQqcmUtZWUvMikseTpKfX07aWYocyl7dmFyIG9lPWwoInN1YiIpO3NlLnN1Yj17eDpNYXRoLm1pbihELW9lLTgsRCouOTQtb2UvMikseTpNYXRoLm1heCg4LE1hdGgubWluKEwtUC04LChMLVApLzIpKX19cmV0dXJuIHNlfXZhciB2PXt9O2Z1bmN0aW9uIGgoRCxMLFApe3VbRF0mJih1W0RdLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIrTC50b0ZpeGVkKDEpKyJweCwiK1AudG9GaXhlZCgxKSsicHgpIil9ZnVuY3Rpb24gZyhEKXt2PWQoKSxvLmZvckVhY2goZnVuY3Rpb24oTCl7dVtMXS5jbGFzc0xpc3QudG9nZ2xlKCJxYy1jaGlwLS1hbmltIiwhIUQpLGgoTCx2W0xdLngsdltMXS55KX0pfWcoITEpO3ZhciBtPW51bGw7ZnVuY3Rpb24geShELEwsUCl7dmFyIHo9YygpLFU9MjQsZWU9by5maWx0ZXIoZnVuY3Rpb24oTil7cmV0dXJuIEQuaW5kZXhPZihOKT49MH0pLHRlPWVlLnJlZHVjZShmdW5jdGlvbihOLEope3JldHVybiBNYXRoLm1heChOLGwoSikpfSwwKSxhZT10ZStNYXRoLm1heCgwLGVlLmxlbmd0aC0xKSpVLHVlPWUuY2xpZW50SGVpZ2h0LFQ9TC1hZS8yLE09TWF0aC5tYXgoMixNYXRoLm1pbih1ZS16LTIsUC16LzIpKTtyZXR1cm4gZWUuZm9yRWFjaChmdW5jdGlvbihOKXtoKE4sVCxNKSxUKz1VfSkse3g6TC1hZS8yLTcseTpNLTcsdzphZSsxNCxoOnorMTR9fWZ1bmN0aW9uIHcoRCl7aS5jbGFzc0xpc3QuYWRkKCJpcy1hY3RpdmUiKSxpLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlKCIrRC54LnRvRml4ZWQoMSkrInB4LCIrRC55LnRvRml4ZWQoMSkrInB4KSIsaS5zdHlsZS53aWR0aD1ELncudG9GaXhlZCgxKSsicHgiLGkuc3R5bGUuaGVpZ2h0PUQuaC50b0ZpeGVkKDEpKyJweCJ9ZnVuY3Rpb24gRSgpe2kuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYWN0aXZlIil9ZnVuY3Rpb24gQihEKXtyZXR1cm4gTWMoe2NvbW1pdDohMCx0YWc6RC5pbmRleE9mKCJ0YWciKT49MCxwdXNoOkQuaW5kZXhPZigicHVzaCIpPj0wfSl9ZnVuY3Rpb24gRihEKXtyZXR1cm4gRC5pbmRleE9mKCJzdWIiKT49MH1mdW5jdGlvbiB4KEQpe3ZhciBMPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWxhdW5jaC1sYWJlbCIpO0wmJihMLnRleHRDb250ZW50PUQpfWZ1bmN0aW9uIFMoRCxMKXt2YXIgUD1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiBEPj1QLmxlZnQmJkQ8PVAucmlnaHQmJkw+PVAudG9wJiZMPD1QLmJvdHRvbX1mdW5jdGlvbiBfKEQpe3JldHVybiBmdW5jdGlvbihMKXtpZighKHVbRF0uZGlzYWJsZWR8fCRyKCkpKXttPXthbmNob3I6RCxwb2ludGVySWQ6TC5wb2ludGVySWQsc3RhcnRYOkwuY2xpZW50WCxzdGFydFk6TC5jbGllbnRZLG1vdmVkOiExLG1lbWJlcnM6W0RdfSxvLmZvckVhY2goZnVuY3Rpb24oUCl7dVtQXS5jbGFzc0xpc3QucmVtb3ZlKCJxYy1jaGlwLS1hbmltIil9KSx1W0RdLmNsYXNzTGlzdC5hZGQoImlzLWdyYWJiaW5nIik7dHJ5e3VbRF0uc2V0UG9pbnRlckNhcHR1cmUoTC5wb2ludGVySWQpfWNhdGNoe310LmNsYXNzTGlzdC5hZGQoImlzLWRyYWdnaW5nIiksTC5wcmV2ZW50RGVmYXVsdCgpfX19ZnVuY3Rpb24gSyhEKXtpZighKCFtfHxtLnBvaW50ZXJJZCE9PUQucG9pbnRlcklkKSl7KE1hdGguYWJzKEQuY2xpZW50WC1tLnN0YXJ0WCk+M3x8TWF0aC5hYnMoRC5jbGllbnRZLW0uc3RhcnRZKT4zKSYmKG0ubW92ZWQ9ITApO3ZhciBMPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksUD1ELmNsaWVudFgtTC5sZWZ0LHo9RC5jbGllbnRZLUwudG9wO2lmKGEuZm9yRWFjaChmdW5jdGlvbihNKXtpZighKG0ubWVtYmVycy5pbmRleE9mKE0pPj0wKSl7dmFyIE49dltNXS54K2woTSkvMixKPXZbTV0ueStjKCkvMixHPVAtTixyZT16LUo7TWF0aC5zcXJ0KEcqRytyZSpyZSk8UGMmJihtLm1lbWJlcnMucHVzaChNKSx1W01dLmNsYXNzTGlzdC5yZW1vdmUoInFjLWNoaXAtLWFuaW0iKSx1W01dLmNsYXNzTGlzdC5hZGQoImlzLWF0dGFjaGVkIikpfX0pLHMmJm0ubWVtYmVycy5pbmRleE9mKCJzdWIiKTwwKXt2YXIgVT12LnN1Yi54LVFyLGVlPXYuc3ViLnktUXIsdGU9di5zdWIueCtsKCJzdWIiKStRcixhZT12LnN1Yi55K2MoKStRcjtQPj1VJiZQPD10ZSYmej49ZWUmJno8PWFlJiYobS5tZW1iZXJzLnB1c2goInN1YiIpLHUuc3ViLmNsYXNzTGlzdC5yZW1vdmUoInFjLWNoaXAtLWFuaW0iKSx1LnN1Yi5jbGFzc0xpc3QuYWRkKCJpcy1hdHRhY2hlZCIpKX12YXIgdWU9eShtLm1lbWJlcnMsUCx6KSxUPVMoRC5jbGllbnRYLEQuY2xpZW50WSk7dC5zZXRBdHRyaWJ1dGUoImRhdGEtaG90IixUPyIxIjoiMCIpLHQuc2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIsQihtLm1lbWJlcnMpKSxtLm1lbWJlcnMubGVuZ3RoPjE/dyh1ZSk6RSgpLHgoVD8iXHU2NzdFXHU2MjRCXHU2MjY3XHU4ODRDIjoiXHU2M0QwXHU0RUE0Iil9fWZ1bmN0aW9uIFkoRCxMKXtpZighKCFtfHxtLnBvaW50ZXJJZCE9PUQucG9pbnRlcklkKSl7dmFyIFA9bTttPW51bGwsdC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1kcmFnZ2luZyIpLHQuc2V0QXR0cmlidXRlKCJkYXRhLWhvdCIsIjAiKSx4KCJcdTYzRDBcdTRFQTQiKSxFKCksby5mb3JFYWNoKGZ1bmN0aW9uKFUpe3VbVV0uY2xhc3NMaXN0LnJlbW92ZSgiaXMtZ3JhYmJpbmciLCJpcy1hdHRhY2hlZCIpfSk7dHJ5e3VbUC5hbmNob3JdLnJlbGVhc2VQb2ludGVyQ2FwdHVyZShQLnBvaW50ZXJJZCl9Y2F0Y2h7fWlmKCFMJiYhUC5tb3ZlZCl7dmFyIHo9dHMoUC5hbmNob3IpO19uKHouYWN0aW9uLHouc3ViKTtyZXR1cm59aWYoIUwmJlMoRC5jbGllbnRYLEQuY2xpZW50WSkpe19uKEIoUC5tZW1iZXJzKSxGKFAubWVtYmVycykpO3JldHVybn10LnNldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iLCJjb21taXQiKSxnKCEwKX19dmFyIEk9ZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0T3BlbiYmIW0mJmcoITEpfTt3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixJKSxvLmZvckVhY2goZnVuY3Rpb24oRCl7dmFyIEw9dVtEXTtMLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixfKEQpKSxMLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixLKSxMLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsZnVuY3Rpb24oUCl7WShQLCExKX0pLEwuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsZnVuY3Rpb24oUCl7WShQLCEwKX0pLEwuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oUCl7aWYoIShMLmRpc2FibGVkfHwkcigpKSYmKFAua2V5PT09IkVudGVyInx8UC5rZXk9PT0iICJ8fFAua2V5PT09IlNwYWNlYmFyIikpe1AucHJldmVudERlZmF1bHQoKTt2YXIgej10cyhEKTtfbih6LmFjdGlvbix6LnN1Yil9fSl9KSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe24uZGlzYWJsZWR8fCRyKCl8fG18fF9uKCJjb21taXQiKX0pLERuPWZ1bmN0aW9uKCl7d2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsSSksbT1udWxsfX1mdW5jdGlvbiBPYygpe2lmKCEoIXIuc2VsZWN0ZWRJZHx8ci5xdWlja0NvbW1pdEdlbmVyYXRpbmcpKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1lc3NhZ2UiKTtlJiYoci5xdWlja0NvbW1pdEZvcm0uY3VzdG9tTWVzc2FnZT1lLnZhbHVlKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LXRhZyIpO3QmJihyLnF1aWNrQ29tbWl0Rm9ybS50YWc9dC52YWx1ZSksci5xdWlja0NvbW1pdEdlbmVyYXRpbmc9ITAsci5xdWlja0NvbW1pdEVycm9yPSIiLE90KCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL2dlbmVyYXRlLWNvbW1pdC1tZXNzYWdlIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeSh7fSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybntvazpuLm9rLGRhdGE6aX19KX0pLnRoZW4oZnVuY3Rpb24obil7aWYoIW4ub2spdGhyb3cgbmV3IEVycm9yKG4uZGF0YSYmbi5kYXRhLmVycm9yfHwiQUkgXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1XHUzMDAyIik7dmFyIGk9bi5kYXRhfHx7fSxhPXR5cGVvZiBpLm1lc3NhZ2U9PSJzdHJpbmciP2kubWVzc2FnZToiIix1PXR5cGVvZiBpLnN1Z2dlc3RlZFRhZz09InN0cmluZyI/aS5zdWdnZXN0ZWRUYWcudHJpbSgpOiIiLHM9KHIucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2V8fCIiKS50cmltKCk7IXMmJmEmJihyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPWEpLHUmJihyLnF1aWNrQ29tbWl0Rm9ybS50YWdFZGl0ZWR8fChyLnF1aWNrQ29tbWl0Rm9ybS50YWc9dSksci5xdWlja0NvbW1pdERyYWdBY3Rpb249ImNvbW1pdC10YWciKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3IucXVpY2tDb21taXRFcnJvcj1uJiZuLm1lc3NhZ2V8fCJBSSBcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjVcdTMwMDIifSkuZmluYWxseShmdW5jdGlvbigpe3IucXVpY2tDb21taXRHZW5lcmF0aW5nPSExLHIucXVpY2tDb21taXRPcGVuJiZPdCgpfSl9fWZ1bmN0aW9uIF9uKGUsdCl7aWYoISghci5zZWxlY3RlZElkfHxyLnF1aWNrQ29tbWl0U3VibWl0dGluZykpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbWVzc2FnZSIpO24mJihyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPW4udmFsdWUpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtdGFnIik7aSYmKHIucXVpY2tDb21taXRGb3JtLnRhZz1pLnZhbHVlKTt2YXIgYT1yLnF1aWNrQ29tbWl0Rm9ybXx8e30sdT1MYyhlfHxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbnx8ImNvbW1pdCIpLHM9dS53aXRoVGFnLG89cz8oYS50YWd8fCIiKS50cmltKCk6IiIsbD0oYS5jdXN0b21NZXNzYWdlfHwiIikudHJpbSgpLGM9IWwsZj17YnJhbmNoOihyLmdpdFN0YXR1c3x8e30pLmJyYW5jaHx8IiIsY29tbWl0SGFzaDooci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0JiYoci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnNob3J0SGFzaD8oci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnNob3J0SGFzaDooci5naXRTdGF0dXN8fHt9KS5oZWFkPyhyLmdpdFN0YXR1c3x8e30pLmhlYWQuc3Vic3RyaW5nKDAsNyk6IiIsY29tbWl0U3ViamVjdDooci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0JiYoci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnN1YmplY3Q/KHIuZ2l0U3RhdHVzfHx7fSkubGFzdENvbW1pdC5zdWJqZWN0OiIiLHRhZzooci5naXRTdGF0dXN8fHt9KS5sYXRlc3RUYWd8fCIifSxkPXthdXRvTWVzc2FnZTpjLGN1c3RvbU1lc3NhZ2U6Yz8iIjpsLHRhZzpvLGF1dG9UYWc6ISEocyYmIW8pLHB1c2g6ISF1LnB1c2gsc3VibW9kdWxlOiEhdH07ci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITAsci5xdWlja0NvbW1pdFN1Ym1vZHVsZUludGVudD0hIXQsci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPWN8fGQuYXV0b1RhZyxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsci5xdWlja0NvbW1pdFB1c2hFcnJvcj0iIixyLnF1aWNrQ29tbWl0UmVzdWx0PW51bGwsci5xdWlja0NvbW1pdERyYWdBY3Rpb249dS5hY3Rpb24sT3QoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvcXVpY2stY29tbWl0Iix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sYm9keTpKU09OLnN0cmluZ2lmeShkKX0pLnRoZW4oZnVuY3Rpb24odil7cmV0dXJuIHYuanNvbigpLnRoZW4oZnVuY3Rpb24oaCl7cmV0dXJue29rOnYub2ssZGF0YTpofX0pfSkudGhlbihmdW5jdGlvbih2KXtpZighdi5vayl0aHJvdyBuZXcgRXJyb3Iodi5kYXRhJiZ2LmRhdGEuZXJyb3J8fCJcdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTRcdTU5MzFcdThEMjVcdTMwMDIiKTt2YXIgaD12LmRhdGF8fHt9LGc9aC5jb21taXQmJmguY29tbWl0Lmhhc2g/aC5jb21taXQuaGFzaC5zdWJzdHJpbmcoMCw3KToiIixtPWgudGFnJiZoLnRhZy5uYW1lP2gudGFnLm5hbWU6IiIseT1BcnJheS5pc0FycmF5KGguc3VibW9kdWxlQ29tbWl0cyk/aC5zdWJtb2R1bGVDb21taXRzOltdLHc9eS5sZW5ndGg+MD8iXHU1REYyXHU1MTQ4XHU2M0QwXHU0RUE0ICIreS5sZW5ndGgrIiBcdTRFMkEgc3VibW9kdWxlXHVGRjA4Iit5Lm1hcChmdW5jdGlvbihCKXtyZXR1cm4gQi5wYXRofSkuam9pbigiXHUzMDAxIikrIlx1RkYwOVx1RkYwQyI6IiIsRT13KyJcdTVERjJcdTYzRDBcdTRFQTQiKyhnPyIgIitnOiIiKSsobT8iXHVGRjBDXHU1REYyXHU2MjUzIFRhZyAiK206IiIpO3IucXVpY2tDb21taXRSZXN1bHQ9e2FjdGlvbjp1LmFjdGlvbixpbmNsdWRlU3VibW9kdWxlOiEhdCxwdXNoZWQ6ISFoLnB1c2hlZCxwdXNoRXJyb3I6aC5wdXNoRXJyb3J8fCIiLGNvbW1pdEhhc2g6Zyxjb21taXRNZXNzYWdlOmguY29tbWl0JiZoLmNvbW1pdC5tZXNzYWdlP2guY29tbWl0Lm1lc3NhZ2U6bCx0YWdOYW1lOm0sb2xkVGFnOmYudGFnLG9sZENvbW1pdEhhc2g6Zi5jb21taXRIYXNoLG9sZENvbW1pdFN1YmplY3Q6Zi5jb21taXRTdWJqZWN0LHN1Ym1vZHVsZUNvdW50OnkubGVuZ3RofSx1LnB1c2gmJiFoLnB1c2hFcnJvcj8odHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoRSsiXHVGRjBDXHU1REYyXHU2M0E4XHU5MDAxXHUzMDAyIiwic3VjY2VzcyIpLEhuKCkpOih0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmayhFKyhoLnB1c2hFcnJvcj8iXHVGRjFCcHVzaCBcdTU5MzFcdThEMjVcdUZGMUEiK2gucHVzaEVycm9yOiJcdTMwMDIiKSxoLnB1c2hFcnJvcj8iZXJyb3IiOiJzdWNjZXNzIiksci5zZWxlY3RlZElkJiZDbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkudGhlbihmdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiZPdCgpfSkpfSkuY2F0Y2goZnVuY3Rpb24odil7ci5xdWlja0NvbW1pdEVycm9yPXYmJnYubWVzc2FnZXx8Ilx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNFx1NTkzMVx1OEQyNVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc9ITEsci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPSExLHIucXVpY2tDb21taXRPcGVuJiZPdCgpfSl9fWZ1bmN0aW9uIEhjKGUpe2lmKCEoIXIuc2VsZWN0ZWRJZHx8ci5xdWlja0NvbW1pdFB1c2hpbmcpKXt2YXIgdD0hIShlJiZlLnB1c2hDb21taXRzKSxuPSEhKGUmJmUucHVzaFRhZ3MpLGk9ISEoZSYmZS5jbG9zZU9uU3VjY2Vzcyk7aWYoISghdCYmIW4pKXt2YXIgYT1yLnF1aWNrQ29tbWl0UmVzdWx0fHx7fSx1PSEhYS5pbmNsdWRlU3VibW9kdWxlO3IucXVpY2tDb21taXRQdXNoaW5nPSEwLHIucXVpY2tDb21taXRQdXNoRXJyb3I9IiIsT3QoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvZ2l0L3B1c2giLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwdXNoQ29tbWl0czp0LHB1c2hUYWdzOm4sc3VibW9kdWxlOnUsdGFnOmEudGFnTmFtZXx8IiJ9KX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJue29rOnMub2ssZGF0YTpvfX0pfSkudGhlbihmdW5jdGlvbihzKXt2YXIgbz1zLmRhdGF8fHt9O2lmKCFzLm9rKXRocm93IG5ldyBFcnJvcihvJiZvLmVycm9yfHwiXHU2M0E4XHU5MDAxXHU1OTMxXHU4RDI1XHUzMDAyIik7aWYoby5lcnJvcil7ci5xdWlja0NvbW1pdFB1c2hFcnJvcj1vLmVycm9yLHR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKCJcdTYzQThcdTkwMDFcdTU5MzFcdThEMjVcdUZGMUEiK28uZXJyb3IsImVycm9yIik7cmV0dXJufXZhciBsPVtdO28ucHVzaGVkQ29tbWl0cyYmbC5wdXNoKCJjb21taXRzIiksby5wdXNoZWRUYWdzJiZsLnB1c2goInRhZ3MiKTt2YXIgYz1sLmxlbmd0aD9sLmpvaW4oIiBcdTU0OEMgIik6Ilx1RkYwOFx1NjVFMFx1NTE4NVx1NUJCOVx1RkYwOSI7dHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoIlx1NURGMlx1NjNBOFx1OTAwMSAiK2MsInN1Y2Nlc3MiKSxyLnF1aWNrQ29tbWl0UmVzdWx0JiYoci5xdWlja0NvbW1pdFJlc3VsdC5wdXNoZWQ9ITApLGk/KEhuKCksci5zZWxlY3RlZElkJiZDbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkpOnIuc2VsZWN0ZWRJZCYmQ24oci5zZWxlY3RlZElkLHtmb3JjZTohMH0pLnRoZW4oZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0T3BlbiYmT3QoKX0pfSkuY2F0Y2goZnVuY3Rpb24ocyl7ci5xdWlja0NvbW1pdFB1c2hFcnJvcj1zJiZzLm1lc3NhZ2V8fCJcdTYzQThcdTkwMDFcdTU5MzFcdThEMjVcdTMwMDIiLHR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKHIucXVpY2tDb21taXRQdXNoRXJyb3IsImVycm9yIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdFB1c2hpbmc9ITEsci5xdWlja0NvbW1pdE9wZW4mJk90KCl9KX19fWZ1bmN0aW9uIF9jKGUpe3ZhciB0PShlfHwiIikudHJpbSgpO2lmKHQ9PT0iPz8iKXJldHVybntsZXR0ZXI6IlUiLGNsczoidW50cmFja2VkIix0aXRsZToiXHU2NzJBXHU4RERGXHU4RTJBIn07aWYodD09PSIhISIpcmV0dXJue2xldHRlcjoiSSIsY2xzOiJpZ25vcmVkIix0aXRsZToiXHU1REYyXHU1RkZEXHU3NTY1In07Zm9yKHZhciBuPSIiLGk9MDtpPGUubGVuZ3RoO2krKylpZihlW2ldJiZlW2ldIT09Ii4iJiZlW2ldIT09IiAiKXtuPWVbaV07YnJlYWt9bj0obnx8dFswXXx8Ij8iKS50b1VwcGVyQ2FzZSgpO3ZhciBhPXtBOntjbHM6ImFkZCIsdGl0bGU6Ilx1NjVCMFx1NTg5RSJ9LE06e2NsczoibW9kIix0aXRsZToiXHU0RkVFXHU2NTM5In0sRDp7Y2xzOiJkZWwiLHRpdGxlOiJcdTUyMjBcdTk2NjQifSxSOntjbHM6InJlbiIsdGl0bGU6Ilx1OTFDRFx1NTQ3RFx1NTQwRCJ9LEM6e2NsczoicmVuIix0aXRsZToiXHU1OTBEXHU1MjM2In0sVDp7Y2xzOiJtb2QiLHRpdGxlOiJcdTdDN0JcdTU3OEJcdTUzRDhcdTY2RjQifSxVOntjbHM6ImRlbCIsdGl0bGU6Ilx1NTFCMlx1N0E4MSJ9fSx1PWFbbl18fHtjbHM6Im90aGVyIix0aXRsZToiXHU1REYyXHU2NkY0XHU2NTM5In07cmV0dXJue2xldHRlcjpuLGNsczp1LmNscyx0aXRsZTp1LnRpdGxlfX1mdW5jdGlvbiB4ZyhlKXt2YXIgdD1lLm1hcChmdW5jdGlvbihuKXt2YXIgaT1fYyhuLnN0YXR1c3x8IiIpLGE9bi5wYXRofHwiIix1PWEubGFzdEluZGV4T2YoIi8iKSxzPXU+PTA/YS5zbGljZSgwLHUrMSk6IiIsbz11Pj0wP2Euc2xpY2UodSsxKTphLGw9IiI7aWYobi5pc1N1Ym1vZHVsZSl7dmFyIGM9bi5zdWJtb2R1bGVTdGF0ZXx8e30sZj1bXTtjLmNvbW1pdENoYW5nZWQmJmYucHVzaCgiXHU2NUIwXHU2MzA3XHU5NDg4IiksYy5oYXNUcmFja2VkQ2hhbmdlcyYmZi5wdXNoKCJkaXJ0eSIpLGMuaGFzVW50cmFja2VkJiZmLnB1c2goIlx1NjcyQVx1OERERlx1OEUyQSIpO3ZhciBkPWYubGVuZ3RoPyJzdWJtb2R1bGUgXHhCNyAiK2Yuam9pbigiIC8gIik6InN1Ym1vZHVsZSI7bD0nPHNwYW4gY2xhc3M9InFjLXN1Ym1vZHVsZS1iYWRnZSI+JytwKGQpKyI8L3NwYW4+In1yZXR1cm4nPGRpdiBjbGFzcz0icWMtZmlsZS1yb3ciIHRpdGxlPSInK3AoYSkrJyI+PHNwYW4gY2xhc3M9InFjLWZpbGUtYmFkZ2UgcWMtYmFkZ2UtJytpLmNscysnIiB0aXRsZT0iJytwKGkudGl0bGUpKyciPicrcChpLmxldHRlcikrJzwvc3Bhbj48c3BhbiBjbGFzcz0icWMtZmlsZS1wYXRoIj4nKyhzPyc8c3BhbiBjbGFzcz0icWMtZmlsZS1kaXIiPicrcChzKSsiPC9zcGFuPiI6IiIpKyc8c3BhbiBjbGFzcz0icWMtZmlsZS1uYW1lIj4nK3AobykrIjwvc3Bhbj48L3NwYW4+IitsKyI8L2Rpdj4ifSkuam9pbigiIik7cmV0dXJuIHR8fCc8ZGl2IGNsYXNzPSJxYy1lbXB0eSI+XHU2Q0ExXHU2NzA5XHU1M0VGXHU2M0QwXHU0RUE0XHU3Njg0XHU2NTM5XHU1MkE4XHUzMDAyPC9kaXY+J31mdW5jdGlvbiAkcigpe3JldHVybiByLnF1aWNrQ29tbWl0U3VibWl0dGluZ3x8ci5xdWlja0NvbW1pdFB1c2hpbmd9ZnVuY3Rpb24gWHIoZSx0LG4saSl7cmV0dXJuJzxkaXYgY2xhc3M9InFjLXBhaXInKyhpPyIgIitpOiIiKSsnIj48ZGl2IGNsYXNzPSJxYy1wYWlyLWxhYmVsIj4nK3AoZSkrJzwvZGl2PjxkaXYgY2xhc3M9InFjLXBhaXItZmxvdyI+PGRpdiBjbGFzcz0icWMtcGFpci12YWx1ZSBxYy1wYWlyLXZhbHVlLS1mcm9tIj4nK3QrJzwvZGl2PjxkaXYgY2xhc3M9InFjLXBhaXItYXJyb3ciIGFyaWEtaGlkZGVuPSJ0cnVlIj5cdTIxOTI8L2Rpdj48ZGl2IGNsYXNzPSJxYy1wYWlyLXZhbHVlIHFjLXBhaXItdmFsdWUtLXRvIj4nK24rIjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gTmMoKXt2YXIgZT1yLmdpdFN0YXR1c3x8e307aWYoZS5oYXNTdWJtb2R1bGU9PT0hMClyZXR1cm4hMDtmb3IodmFyIHQ9ZS5maWxlc3x8W10sbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl0mJnRbbl0uaXNTdWJtb2R1bGU9PT0hMClyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBSYyhlKXt2YXIgdD0hZXx8JHIoKSxuPU5jKCk7aWYoci5xdWlja0NvbW1pdFN1Ym1pdHRpbmcpe3ZhciBpPXIucXVpY2tDb21taXRTdWJtb2R1bGVJbnRlbnQ/Ilx1RkYwOFx1NTQyQiBzdWJtb2R1bGVcdUZGMDkiOiIiLGE9KHIucXVpY2tDb21taXRBdXRvR2VuZXJhdGluZz8iQUkgXHU3NTFGXHU2MjEwICsgXHU2M0QwXHU0RUE0XHU0RTJEXHUyMDI2IjoiXHU2MjY3XHU4ODRDXHU0RTJEXHUyMDI2IikraTtyZXR1cm4nPGRpdiBjbGFzcz0icWMtZG9jay13cmFwIj48ZGl2IGNsYXNzPSJxYy1kb2NrLWJ1c3kiIHJvbGU9InN0YXR1cyI+PHNwYW4gY2xhc3M9InFjLWRvY2stYnVzeS1kb3QiPjwvc3Bhbj4nK3AoYSkrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gdShvLGwsYyl7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0icWMtY2hpcCBxYy1jaGlwLS0nK28rJyIgZGF0YS1jaGlwPSInK28rJyInKyhjPycgdGl0bGU9IicrcChjKSsnIic6IiIpKyh0PyIgZGlzYWJsZWQiOiIiKSsnPjxzcGFuIGNsYXNzPSJxYy1jaGlwLWRvdCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48c3BhbiBjbGFzcz0icWMtY2hpcC1sYWJlbCI+JytsKyI8L3NwYW4+PC9idXR0b24+In12YXIgcz10P2U/IiI6Ilx1NURFNVx1NEY1Q1x1NTMzQVx1NUU3Mlx1NTFDMFx1RkYwQ1x1NjVFMFx1NTNFRlx1NjNEMFx1NEVBNCI6Ilx1NjJENlx1NTJBOFx1NzhDMVx1NTQzOFx1N0VDNFx1NTQwOCBceEI3IFx1NEUyMlx1OEZEQlx1NjNEMFx1NEVBNFx1NTMzQVx1NjI2N1x1ODg0QyBceEI3IFx1NTM1NVx1NTFGQlx1NzZGNFx1NjNBNVx1NjI2N1x1ODg0Q1x1OEJFNVx1OTg3OSIrKG4/IiBceEI3IFN1YiBcdTc0MDNcdTUzRUZcdTkwMDlcdUZGMENcdTdFQjNcdTUxNjVcdTU0MEVcdTkwMTJcdTVGNTJcdTU5MDRcdTc0MDYgc3VibW9kdWxlIjoiIik7cmV0dXJuJzxkaXYgY2xhc3M9InFjLWRvY2std3JhcCBxYy1kb2NrLXdyYXAtLW1hZ25ldGljIicrKHQ/JyBkYXRhLWRpc2FibGVkPSIxIic6IiIpKyc+PGRpdiBpZD0icWMtZG9jay1zdGFnZSIgY2xhc3M9InFjLWRvY2stc3RhZ2UiIGRhdGEtYWN0aW9uPSJjb21taXQiIGRhdGEtaG90PSIwIj48ZGl2IGlkPSJxYy1kb2NrLWZpZWxkIiBjbGFzcz0icWMtZG9jay1maWVsZCI+PGRpdiBpZD0icWMtZG9jay1jbHVzdGVyIiBjbGFzcz0icWMtZG9jay1jbHVzdGVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+Jyt1KCJjb21taXQiLCJDb21taXQiKSt1KCJ0YWciLCJUYWciKSt1KCJwdXNoIiwiUHVzaCIpKyhuP3UoInN1YiIsIlN1YiIsIlx1NjNEMFx1NEVBNFx1NzIzNlx1NEVEM1x1NUU5M1x1NUU3Nlx1OTAxMlx1NUY1Mlx1OEZEQlx1NTE2NSBzdWJtb2R1bGVcdUZGMDhjb21taXQgLyB0YWcgLyBcdTUyMDZcdTUyMkJcdTYzQThcdTkwMDFcdUZGMDkiKToiIikrJzwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0icWMtZG9jay1sYXVuY2giIGNsYXNzPSJxYy1kb2NrLWxhdW5jaCInKyh0PyIgZGlzYWJsZWQiOiIiKSsnIGFyaWEtbGFiZWw9Ilx1NjI2N1x1ODg0Q1x1NjNEMFx1NEVBNCI+PHNwYW4gY2xhc3M9InFjLWRvY2stbGF1bmNoLWFycm93IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIyMiIgaGVpZ2h0PSIyMiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4zIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik01IDEyaDEyTTEzIDZsNiA2LTYgNiIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBpZD0icWMtZG9jay1sYXVuY2gtbGFiZWwiIGNsYXNzPSJxYy1kb2NrLWxhdW5jaC1sYWJlbCI+XHU2M0QwXHU0RUE0PC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9InFjLWRvY2staGludCI+JytwKHMpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGpjKCl7dmFyIGU9ci5xdWlja0NvbW1pdFJlc3VsdDtpZighZSlyZXR1cm4iIjt2YXIgdD1lLm9sZENvbW1pdEhhc2g/Ijxjb2RlPiIrcChlLm9sZENvbW1pdEhhc2gpKyI8L2NvZGU+IisoZS5vbGRDb21taXRTdWJqZWN0PyI8c3Bhbj4iK3AoZS5vbGRDb21taXRTdWJqZWN0KSsiPC9zcGFuPiI6IiIpOic8c3BhbiBjbGFzcz0icWMtbXV0ZWQiPlx1NjVFMDwvc3Bhbj4nLG49ZS5jb21taXRIYXNoPyI8Y29kZT4iK3AoZS5jb21taXRIYXNoKSsiPC9jb2RlPjxzcGFuPiIrcChlLmNvbW1pdE1lc3NhZ2V8fCIiKSsiPC9zcGFuPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwPC9zcGFuPicsaT1lLm9sZFRhZz8iPGNvZGU+IitwKGUub2xkVGFnKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwIHRhZzwvc3Bhbj4nLGE9ZS50YWdOYW1lPyI8Y29kZT4iK3AoZS50YWdOYW1lKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NzJBXHU2MjUzIHRhZzwvc3Bhbj4nLHU9ZS5wdXNoZWQ/JzxzcGFuIGNsYXNzPSJxYy1yZXN1bHQtcHVzaGVkIj5cdTVERjJcdTYzQThcdTkwMDE8L3NwYW4+JzonPGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LXB1c2gtYWZ0ZXItYnRuIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIicrKHIucXVpY2tDb21taXRQdXNoaW5nPyIgZGlzYWJsZWQiOiIiKSsiPiIrKHIucXVpY2tDb21taXRQdXNoaW5nPyJcdTYzQThcdTkwMDFcdTRFMkQuLi4iOiJQdXNoICYgQ2xvc2UiKSsiPC9idXR0b24+IjtyZXR1cm4nPHNlY3Rpb24gY2xhc3M9InFjLXJlc3VsdC1wYW5lbCI+JytYcigiQ29tbWl0Iix0LG4sIiIpK1hyKCJUYWciLGksYSwicWMtcGFpci0tdGFnIikrKGUucHVzaEVycm9yfHxyLnF1aWNrQ29tbWl0UHVzaEVycm9yPyc8cCBjbGFzcz0iZXJyb3ItbWVzc2FnZSI+JytwKGUucHVzaEVycm9yfHxyLnF1aWNrQ29tbWl0UHVzaEVycm9yKSsiPC9wPiI6IiIpKyc8ZGl2IGNsYXNzPSJxYy1yZXN1bHQtYWN0aW9ucyI+PGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LWNhbmNlbC1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUxNzNcdTk1RUQ8L2J1dHRvbj4nK3UrIjwvZGl2Pjwvc2VjdGlvbj4ifWZ1bmN0aW9uIG5zKCl7dmFyIGU9ci5naXRTdGF0dXN8fHt9LHQ9ci5xdWlja0NvbW1pdEZvcm18fHtjdXN0b21NZXNzYWdlOiIiLHRhZzoiIix0YWdFZGl0ZWQ6ITF9LG49KGUubW9kaWZpZWRDb3VudHx8MCk+MCxpPXIucXVpY2tDb21taXRHZW5lcmF0aW5nLGE9ZS5sYXN0Q29tbWl0fHx7fSx1PWEuc2hvcnRIYXNoPyI8Y29kZT4iK3AoYS5zaG9ydEhhc2gpKyI8L2NvZGU+PHNwYW4+IitwKGEuc3ViamVjdHx8IiIpKyI8L3NwYW4+IjplLmhlYWQ/Ijxjb2RlPiIrcChlLmhlYWQuc3Vic3RyaW5nKDAsNykpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTAgY29tbWl0PC9zcGFuPicscz1lLmxhdGVzdFRhZz8iPGNvZGU+IitwKGUubGF0ZXN0VGFnKSsiPC9jb2RlPiI6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwIHRhZzwvc3Bhbj4nLG89JzxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0icXVpY2stY29tbWl0LXRhZyIgY2xhc3M9ImZpZWxkLWlucHV0IHFjLXRhZy1maWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1NzU1OVx1N0E3QVx1NTIxOSBBSSBcdTc1MUZcdTYyMTAiIHZhbHVlPSInK3AodC50YWd8fCIiKSsnIicrKHIucXVpY2tDb21taXRTdWJtaXR0aW5nPyIgZGlzYWJsZWQiOiIiKSsiPiIsbD0nPHRleHRhcmVhIGlkPSJxdWljay1jb21taXQtbWVzc2FnZSIgY2xhc3M9ImZpZWxkLWlucHV0IHFjLW1lc3NhZ2UtaW5wdXQiIHJvd3M9IjMiIHBsYWNlaG9sZGVyPSJOZXcgY29tbWl0IG1lc3NhZ2UiICcrKHIucXVpY2tDb21taXRTdWJtaXR0aW5nPyJkaXNhYmxlZCI6IiIpKyI+IitwKHQuY3VzdG9tTWVzc2FnZXx8IiIpKyI8L3RleHRhcmVhPiIsYz1bXTtjLnB1c2goZS5icmFuY2h8fCIobm8gYnJhbmNoKSIpLGMucHVzaChuPyhlLm1vZGlmaWVkQ291bnR8fDApKyIgXHU0RTJBXHU2NTM5XHU1MkE4IjoiXHU1REU1XHU0RjVDXHU1MzNBXHU1RTcyXHU1MUMwIiksdHlwZW9mIGUuYWhlYWQ9PSJudW1iZXIiJiZlLmFoZWFkPjAmJmMucHVzaCgiXHUyMTkxIitlLmFoZWFkKSx0eXBlb2YgZS5iZWhpbmQ9PSJudW1iZXIiJiZlLmJlaGluZD4wJiZjLnB1c2goIlx1MjE5MyIrZS5iZWhpbmQpO3ZhciBmPXIucXVpY2tDb21taXRSZXN1bHQ/IiI6JzxzZWN0aW9uIGNsYXNzPSJxYy1yZWxlYXNlLXBhbmVsIj48ZGl2IGNsYXNzPSJxYy1tZXNzYWdlLWhlYWRlciI+PHNwYW4gY2xhc3M9InFjLXNlY3Rpb24tdGl0bGUiPk5ldzwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InF1aWNrLWNvbW1pdC1haS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBxYy1haS1idG4iJysoaT8iIGRpc2FibGVkIjoiIikrJyB0aXRsZT0iQUkgXHU3NTFGXHU2MjEwIGNvbW1pdCBtZXNzYWdlIFx1NEUwRSB0YWciPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOCAxLjVsMS40IDMuNkwxMyA2LjUgOS40IDcuOSA4IDExLjUgNi42IDcuOSAzIDYuNWwzLjYtMS40TDggMS41ek0xMi41IDEwLjVsLjcgMS44IDEuOC43LTEuOC43LS43IDEuOC0uNy0xLjgtMS44LS43IDEuOC0uNy43LTEuOHoiIGZpbGw9ImN1cnJlbnRDb2xvciIvPjwvc3ZnPjxzcGFuPicrKGk/Ilx1NzUxRlx1NjIxMFx1NEUyRC4uLiI6IkFJIikrIjwvc3Bhbj48L2J1dHRvbj48L2Rpdj4iK1hyKCJDb21taXQiLHUsbCwicWMtcGFpci0tY29tbWl0IikrWHIoIlRhZyIscyxvLCJxYy1wYWlyLS10YWciKSsoci5xdWlja0NvbW1pdEVycm9yPyc8cCBjbGFzcz0iZXJyb3ItbWVzc2FnZSI+JytwKHIucXVpY2tDb21taXRFcnJvcikrIjwvcD4iOiIiKStSYyhuKSsnPGRpdiBjbGFzcz0icWMtbW9kYWwtYWN0aW9ucyI+PGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LWNhbmNlbC1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUzRDZcdTZEODg8L2J1dHRvbj48L2Rpdj48L3NlY3Rpb24+JyxkPWpjKCk7cmV0dXJuJzxzZWN0aW9uIGlkPSJxdWljay1jb21taXQtbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCcrKHIucXVpY2tDb21taXRPcGVuPyIiOiIgaGlkZGVuIikrJyI+PGRpdiBjbGFzcz0ibW9kYWwgcXVpY2stY29tbWl0LW1vZGFsIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0icXVpY2stY29tbWl0LXRpdGxlIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGlkPSJxdWljay1jb21taXQtdGl0bGUiIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0PC9oMj48cCBjbGFzcz0ibW9kYWwtc3VidGl0bGUiPicrcChjLmpvaW4oIiBceEI3ICIpKSsnPC9wPjwvZGl2PjxidXR0b24gaWQ9InF1aWNrLWNvbW1pdC1jbG9zZS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij4nK2YrZCsiPC9kaXY+PC9kaXY+PC9zZWN0aW9uPiJ9ZnVuY3Rpb24gV2MoKXtyZXR1cm4nPHNlY3Rpb24gaWQ9Indvcmt0cmVlLW1lcmdlLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCB3b3JrdHJlZS1tZXJnZS1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIj48ZGl2PjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1NTQwOFx1NUU3NiBXb3JrdHJlZTwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIj5cdTY4QzBcdTY3RTVcdTVGNTNcdTUyNERcdTRFRkJcdTUyQTFcdTUyMDZcdTY1MkZcdTVFNzZcdTVGRUJcdTYzNzdcdTU0MDhcdTVFNzZcdTUyMzBcdTRFM0JcdTUyMDZcdTY1MkZcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2Utd29ya3RyZWUtbWVyZ2UtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSI+PGRpdiBpZD0id29ya3RyZWUtbWVyZ2UtY29udGVudCIgY2xhc3M9Indvcmt0cmVlLW1lcmdlLWNvbnRlbnQiPjwvZGl2PjxwIGlkPSJ3b3JrdHJlZS1tZXJnZS1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2UtYWN0aW9ucyI+PGJ1dHRvbiBpZD0id29ya3RyZWUtbWVyZ2UtY2FuY2VsLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5Ij5cdTUzRDZcdTZEODg8L2J1dHRvbj48YnV0dG9uIGlkPSJ3b3JrdHJlZS1tZXJnZS1jb25maXJtLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSI+XHU3ODZFXHU4QkE0XHU1NDA4XHU1RTc2XHU1RTc2XHU2RTA1XHU3NDA2PC9idXR0b24+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPid9ZnVuY3Rpb24gemMoKXtyZXR1cm4nPHNlY3Rpb24gaWQ9InNldHRpbmdzLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCBzZXR0aW5ncy1tb2RhbCI+PGRpdiBjbGFzcz0ibW9kYWwtaGVhZGVyIHNldHRpbmdzLW1vZGFsLWhlYWRlciI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtbW9kYWwtdGl0bGUtZ3JvdXAiPjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1OEJCRVx1N0Y2RTwvaDI+PHAgY2xhc3M9InNldHRpbmdzLW1vZGFsLXN1YnRpdGxlIj5cdThDMDNcdTY1NzRcdTVFOTRcdTc1MjhcdTkxNERcdTdGNkVcdTMwMDFcdTkwMUFcdTc3RTVcdTMwMDFcdTVCODlcdTUxNjhcdTU0OENcdTY2M0VcdTc5M0FcdTUwNEZcdTU5N0Q8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iY2xvc2Utc2V0dGluZ3MtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSBzZXR0aW5ncy1tb2RhbC1ib2R5Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy1sYXlvdXQiPjxhc2lkZSBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhciI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhci1oZWFkZXIiPjxkaXYgY2xhc3M9InNldHRpbmdzLXNpZGViYXItdGl0bGUiPlx1NTA0Rlx1NTk3RFx1OEJCRVx1N0Y2RTwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXNpZGViYXItaGludCI+XHU1REU2XHU0RkE3XHU1MjA3XHU2MzYyXHU1MjA2XHU1MzNBXHVGRjBDXHU1M0YzXHU0RkE3XHU2N0U1XHU3NzBCXHU4QkU2XHU3RUM2XHU4QkY0XHU2NjBFXHU0RTBFXHU5MDA5XHU5ODc5XHUzMDAyPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdGFicyIgcm9sZT0idGFibGlzdCIgYXJpYS1sYWJlbD0iXHU4QkJFXHU3RjZFXHU1MjA2XHU3RUM0IiBhcmlhLW9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIGFjdGl2ZSIgZGF0YS10YWI9ImFib3V0IiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9InRydWUiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1hYm91dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTUxNzNcdTRFOEU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTcyNDhcdTY3MkNcdTMwMDFcdTY2RjRcdTY1QjBcdTRFMEVcdThGREVcdTYzQTVcdTY1QjlcdTVGMEY8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0iZ2VuZXJhbCIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLWdlbmVyYWwiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU1N0ZBXHU2NzJDXHU5MTREXHU3RjZFPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU0RTNCXHU2NzNBXHUzMDAxXHU2QTIxXHU1RjBGXHUzMDAxXHU4QkVEXHU4QTAwXHUzMDAxXHU3NkVFXHU1RjU1PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9Im5vdGlmaWNhdGlvbnMiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1ub3RpZmljYXRpb25zIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1OTAxQVx1NzdFNTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NjNEMFx1NzkzQVx1OTdGM1x1NEUwRVx1NkQ0Rlx1ODlDOFx1NTY2OFx1OTAxQVx1NzdFNTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJzZWN1cml0eSIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLXNlY3VyaXR5Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NUI4OVx1NTE2ODwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NUJDNlx1NzgwMVx1NEUwRVx1OEJDMVx1NEU2Njwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJwcmVzZXRzIiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItcHJlc2V0cyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTU0N0RcdTRFRTRcdTk4ODRcdThCQkU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTY3RTVcdTc3MEJcdTVERjJcdTY3MDlcdTk4ODRcdThCQkU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0iZGlzcGxheSIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLWRpc3BsYXkiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU2NjNFXHU3OTNBPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU1MzYxXHU3MjQ3XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwXHU4ODRDXHU0RTNBPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvYXNpZGU+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29udGVudCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwgYWN0aXZlIiBpZD0ic2V0dGluZ3MtdGFiLWFib3V0IiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTUxNzNcdTRFOEUgV2FuZDwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1NjdFNVx1NzcwQlx1NzI0OFx1NjcyQ1x1NEZFMVx1NjA2Rlx1MzAwMVx1NjZGNFx1NjVCMFx1NzJCNlx1NjAwMVx1NTQ4QyBBbmRyb2lkIEFwcCBcdThGREVcdTYzQTVcdTY1QjlcdTVGMEZcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtaW5mbyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NTMwNVx1NTQwRDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1wa2ctbmFtZSI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1RjUzXHU1MjREXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLXZlcnNpb24iPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPk5vZGUuanMgXHU4OTgxXHU2QzQyPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLW5vZGUtcmVxIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTRFRDNcdTVFOTNcdTU3MzBcdTU3NDA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtcmVwby11cmwiPjxhIGhyZWY9IiMiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4tPC9hPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtc2VjdGlvbiIgaWQ9IndlYi11cGRhdGUtc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoImdsb2JlIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+V2ViIFx1N0FFRjwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTZENEZcdTg5QzhcdTU2NjhcdThCQkZcdTk1RUVcdTc2ODRcdTY3MERcdTUyQTFcdTcyNDhcdTY3MkM8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjcwMFx1NjVCMFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1sYXRlc3QtdmVyc2lvbiI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtYWN0aW9ucyI+PGJ1dHRvbiBpZD0iY2hlY2stdXBkYXRlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSI+XHU2OEMwXHU2N0U1XHU2NkY0XHU2NUIwPC9idXR0b24+PGJ1dHRvbiBpZD0iZG8tdXBkYXRlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tc20gaGlkZGVuIj5cdTY2RjRcdTY1QjBcdTUyMzBcdTY3MDBcdTY1QjBcdTcyNDg8L2J1dHRvbj48YnV0dG9uIGlkPSJkby1yZXN0YXJ0LWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc3VjY2VzcyBidG4tc20gaGlkZGVuIj5cdTkxQ0RcdTU0MkZcdTc1MUZcdTY1NDg8L2J1dHRvbj48L2Rpdj48cCBpZD0idXBkYXRlLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5CZXRhIFx1OTAxQVx1OTA1Mzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NjZGNFx1NjVCMFx1NTIzMCBucG0gYmV0YSBcdTcyNDhcdTY3MkNcdUZGMDh0YWcgKyBjb21taXQgXHU1QzNFXHU2ODA3XHVGRjA5XHVGRjBDXHU1QzFEXHU5QzlDXHU2NUIwXHU1MjlGXHU4MEZEXHVGRjBDXHU1M0VGXHU4MEZEXHU0RTBEXHU3QTMzXHU1QjlBXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJiZXRhLWNoYW5uZWwtdG9nZ2xlIiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSI+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTY4QzBcdTZENEJcdTUyMzBcdTY1QjBcdTcyNDhcdTY3MkNcdTVDMDZcdTgxRUFcdTUyQThcdTRFMEJcdThGN0RcdTVCODlcdTg4QzVcdTVFNzZcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24gaGlkZGVuIiBpZD0iYW5kcm9pZC1hcGstc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoInNtYXJ0cGhvbmUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5BbmRyb2lkIEFwcDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTUzOUZcdTc1MUZcdTVCQTJcdTYyMzdcdTdBRUZcdTcyNDhcdTY3MkNcdTRFMEUgQVBLIFx1NEUwQlx1OEY3RDwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWFway1jdXJyZW50LXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1RjUzXHU1MjREXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLWFuZHJvaWQtYXBrLWN1cnJlbnQiPi08L3NwYW4+PC9kaXY+PGRpdiBpZD0iYW5kcm9pZC1hcGstZ2l0aHViLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTdFQkZcdTRFMEFcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1hbmRyb2lkLWFway1naXRodWIiPi08L3NwYW4+PGJ1dHRvbiBpZD0iZG93bmxvYWQtZ2l0aHViLWFway1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImFuZHJvaWQtYXBrLWxvY2FsLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTY3MkNcdTU3MzBcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1hbmRyb2lkLWFway1sb2NhbCI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1sb2NhbC1hcGstYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWF1dG8tdXBkYXRlLXJvdyIgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3cgaGlkZGVuIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSI+XHU4MUVBXHU1MkE4XHU2NkY0XHU2NUIwPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyIgaWQ9ImFuZHJvaWQtYXV0by11cGRhdGUtaGludCI+XHU2OEMwXHU2RDRCXHU1MjMwXHU2NUIwXHU3MjQ4IEFQSyBcdTY1RjZcdTgxRUFcdTUyQThcdTYyQzlcdThENzdcdTRFMEJcdThGN0RcdUZGMENcdTVCODlcdTg4QzVcdTRFQ0RcdTk3MDBcdTU3MjhcdTdDRkJcdTdFREZcdTRFMkRcdTc4NkVcdThCQTRcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImF1dG8tdXBkYXRlLWFway10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PHAgaWQ9ImFuZHJvaWQtYXBrLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIGhpZGRlbiIgaWQ9Im1hY29zLWRtZy1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigiZGVza3RvcCIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPm1hY09TIEFwcDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTUzOUZcdTc1MUZcdTVCQTJcdTYyMzdcdTdBRUZcdTcyNDhcdTY3MkNcdTRFMEUgRE1HIFx1NEUwQlx1OEY3RDwvcD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctY3VycmVudC1yb3ciIGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3cgaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NUY1M1x1NTI0RFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1tYWNvcy1kbWctY3VycmVudCI+LTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctZ2l0aHViLXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBzZXR0aW5ncy1hYm91dC1yb3ctYWN0aW9uIGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTdFQkZcdTRFMEFcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIHNldHRpbmdzLXZhbHVlLWZsZXgiIGlkPSJzZXR0aW5ncy1tYWNvcy1kbWctZ2l0aHViIj4tPC9zcGFuPjxidXR0b24gaWQ9ImRvd25sb2FkLWdpdGh1Yi1kbWctYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1kbWctbG9jYWwtcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjcyQ1x1NTczMFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLW1hY29zLWRtZy1sb2NhbCI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1sb2NhbC1kbWctYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTRFMEJcdThGN0Q8L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJtYWNvcy1hdXRvLXVwZGF0ZS1yb3ciIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93IGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjZGNFx1NjVCMDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiIGlkPSJtYWNvcy1hdXRvLXVwZGF0ZS1oaW50Ij5cdTY4QzBcdTZENEJcdTUyMzBcdTY1QjBcdTcyNDggRE1HIFx1NUMwNlx1ODFFQVx1NTJBOFx1NEUwQlx1OEY3RFx1NUU3Nlx1NjMwMlx1OEY3RFx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIgY2xhc3M9InN3aXRjaC10b2dnbGUiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48cCBpZD0ibWFjb3MtZG1nLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIiBpZD0iYW5kcm9pZC1jb25uZWN0LXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+JytWKCJsaW5rIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+QXBwIFx1OEZERVx1NjNBNVx1NzgwMTwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTdDOThcdThEMzRcdTUyMzAgQW5kcm9pZCBBcHAgXHU1MzczXHU1M0VGXHU4MUVBXHU1MkE4XHU4RkRFXHU2M0E1XHVGRjBDXHU2NUUwXHU5NzAwXHU1QkM2XHU3ODAxXHVGRjFCXHU2NTM5XHU1QkM2XHU3ODAxXHU1NDBFXHU1OTMxXHU2NTQ4XHUzMDAyPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtdXJsLWJveCI+PGNvZGUgaWQ9ImFuZHJvaWQtY29ubmVjdC1jb2RlIiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC11cmwtdGV4dCI+LTwvY29kZT48YnV0dG9uIGlkPSJjb3B5LWNvbm5lY3QtY29kZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTkwRFx1NTIzNlx1OEZERVx1NjNBNVx1NzgwMSI+XHU1OTBEXHU1MjM2PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci1ib3giPjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtcXItd3JhcCIgaWQ9ImFuZHJvaWQtY29ubmVjdC1xci13cmFwIiB0aXRsZT0iXHU3MEI5XHU1MUZCXHU2NTNFXHU1OTI3Ij48Y2FudmFzIGlkPSJhbmRyb2lkLWNvbm5lY3QtcXIiIHdpZHRoPSIxODAiIGhlaWdodD0iMTgwIj48L2NhbnZhcz48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXFyLWVtcHR5IiBpZD0iYW5kcm9pZC1jb25uZWN0LXFyLWVtcHR5Ij5cdTc1MUZcdTYyMTBcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj48cCBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci1oaW50Ij5cdTc1MjggV2FuZCBBcHAgXHU2MjZCXHU0RTAwXHU2MjZCXHVGRjBDXHU1MzczXHU1M0VGXHU0RTAwXHU5NTJFXHU1ODZCXHU1MTY1XHU2NzBEXHU1MkExXHU1NjY4XHU1NzMwXHU1NzQwXHU0RTBFXHU4RkRFXHU2M0E1XHU3ODAxXHUzMDAyPC9wPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLW5vdGlmaWNhdGlvbnMiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1OTAxQVx1NzdFNTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1OEJCRVx1N0Y2RVx1NjNEMFx1NzkzQVx1OTdGM1x1MzAwMVx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NTQ4Q1x1NkQ0Rlx1ODlDOFx1NTY2OFx1OTAxQVx1NzdFNVx1NzY4NFx1ODg0Q1x1NEUzQVx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoImJlbGwiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTkwMUFcdTc3RTVcdTUwNEZcdTU5N0Q8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2M0QwXHU3OTNBXHU5N0YzXHU0RTBFXHU1RTk0XHU3NTI4XHU1MTg1XHU5MDFBXHU3N0U1XHU2QzE0XHU2Q0UxPC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctbm90aWYtc291bmQiPlx1NjRBRFx1NjUzRVx1NjNEMFx1NzkzQVx1OTdGMzwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTkxQ0RcdTg5ODFcdTkwMUFcdTc3RTVcdUZGMDhcdTcyNDhcdTY3MkNcdTY2RjRcdTY1QjBcdTMwMDFcdTY3NDNcdTk2NTBcdTdCNDlcdTVGODVcdTdCNDlcdUZGMDlcdTY1RjZcdTY0QURcdTY1M0VcdTY3RDRcdTU0OENcdTYzRDBcdTc5M0FcdTk3RjNcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLW5vdGlmLXNvdW5kIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXJhbmdlLXJvdyIgaWQ9Im5vdGlmLXZvbHVtZS1maWVsZCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1yYW5nZS1sYWJlbCIgZm9yPSJjZmctbm90aWYtdm9sdW1lIj5cdTk3RjNcdTkxQ0Y8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLW5vdGlmLXZvbHVtZSIgdHlwZT0icmFuZ2UiIG1pbj0iMCIgbWF4PSIxMDAiIHN0ZXA9IjUiIGNsYXNzPSJzZXR0aW5ncy1yYW5nZSIgLz48c3BhbiBpZD0iY2ZnLW5vdGlmLXZvbHVtZS12YWwiIGNsYXNzPSJzZXR0aW5ncy1yYW5nZS12YWx1ZSI+ODAlPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctbm90aWYtYnViYmxlIj5cdTVFOTRcdTc1MjhcdTUxODVcdTkwMUFcdTc3RTVcdTZDMTRcdTZDRTE8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU1NzI4XHU5ODc1XHU5NzYyXHU5ODc2XHU5MEU4XHU1RjM5XHU1MUZBXHU2RDZFXHU1MkE4XHU5MDFBXHU3N0U1XHU2QzE0XHU2Q0UxXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgaWQ9ImNmZy1ub3RpZi1idWJibGUiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibmF0aXZlLXNvdW5kLXNlY3Rpb24iIGNsYXNzPSJzZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiBoaWRkZW4iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+JytWKCJtdXNpYyIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1OTRDM1x1NThGMDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTkwMDlcdTYyRTkgQW5kcm9pZCBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTRGN0ZcdTc1MjhcdTc2ODRcdTk0QzNcdTU4RjA8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uIj48c2VsZWN0IGlkPSJuYXRpdmUtc291bmQtc2VsZWN0IiBjbGFzcz0iZmllbGQtaW5wdXQgZmllbGQtc2VsZWN0Ij48L3NlbGVjdD48YnV0dG9uIGlkPSJuYXRpdmUtc291bmQtcHJldmlldyIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBidG4td2l0aC1pY29uIiB0eXBlPSJidXR0b24iPicrVigicGxheSIse3NpemU6MTEsc3Ryb2tlV2lkdGg6MS44LGZpbGw6ImN1cnJlbnRDb2xvciJ9KSsnPHNwYW4+XHU4QkQ1XHU1NDJDPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgaWQ9Im5hdGl2ZS1oYXB0aWMtc2VjdGlvbiIgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK1YoInZpYnJhdGUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTg5RTZcdTYxMUZcdTUzQ0RcdTk5ODg8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2MzA5XHU5NEFFXHU2NENEXHU0RjVDXHU1NDhDXHU0RUZCXHU1MkExXHU1QjhDXHU2MjEwXHU2NUY2XHU2M0QwXHU0RjlCXHU2MzJGXHU1MkE4XHU1M0NEXHU5OTg4PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctaGFwdGljLWVuYWJsZWQiPlx1NTQyRlx1NzUyOFx1ODlFNlx1NjExRlx1NTNDRFx1OTk4ODwvbGFiZWw+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLWhhcHRpYy1lbmFibGVkIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicrVigiZ2xvYmUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTZENEZcdTg5QzhcdTU2NjhcdTkwMUFcdTc3RTU8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU2NzY1XHU4MUVBXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU0RTJEXHU1RkMzXHU3Njg0XHU1RjM5XHU3QTk3PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTYzODhcdTY3NDNcdTcyQjZcdTYwMDE8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ibm90aWZpY2F0aW9uLXBlcm1pc3Npb24tc3RhdHVzIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1hY3Rpb25zIj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tcmVxdWVzdC1idG4iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLXNtIGhpZGRlbiIgdHlwZT0iYnV0dG9uIj5cdTYzODhcdTY3NDNcdTkwMUFcdTc3RTU8L2J1dHRvbj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tcmVzZXQtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1OTFDRFx1NjVCMFx1NjM4OFx1Njc0MzwvYnV0dG9uPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi10ZXN0LWJ0biIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUzRDFcdTkwMDFcdTZENEJcdThCRDVcdTkwMUFcdTc3RTU8L2J1dHRvbj48YnV0dG9uIGlkPSJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj4xMCBcdTc5RDJcdTU0MEVcdTUzRDFcdTkwMDE8L2J1dHRvbj48L2Rpdj48cCBpZD0ibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItZ2VuZXJhbCIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU1N0ZBXHU2NzJDXHU5MTREXHU3RjZFPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU5MTREXHU3RjZFXHU2NzBEXHU1MkExXHU3NkQxXHU1NDJDXHU1NzMwXHU1NzQwXHUzMDAxXHU5RUQ4XHU4QkE0XHU2QTIxXHU1RjBGXHUzMDAxXHU4QkVEXHU4QTAwXHU1NDhDXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWhvc3QiPlx1NzZEMVx1NTQyQ1x1NTczMFx1NTc0MCAoaG9zdCk8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLWhvc3QiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9IjEyNy4wLjAuMSIgLz48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctcG9ydCI+XHU3QUVGXHU1M0UzIChwb3J0KTwvbGFiZWw+PGlucHV0IGlkPSJjZmctcG9ydCIgdHlwZT0ibnVtYmVyIiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSI4NDQzIiBtaW49IjEiIG1heD0iNjU1MzUiIC8+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1odHRwcyI+XHU1NDJGXHU3NTI4IEhUVFBTPC9sYWJlbD48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NEY3Rlx1NzUyOFx1ODFFQVx1N0I3RVx1NTQwRFx1OEJDMVx1NEU2Nlx1NTJBMFx1NUJDNlx1NkQ0Rlx1ODlDOFx1NTY2OFx1NTIzMFx1NjcwRFx1NTJBMVx1NzY4NFx1OEZERVx1NjNBNVx1RkYwQ2hvc3QgXHU0RTNBXHU5NzVFIDEyNy4wLjAuMSBcdTY1RjZcdTVFRkFcdThCQUVcdTVGMDBcdTU0MkZcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLWh0dHBzIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkLXJvdyI+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLW1vZGUiPlx1OUVEOFx1OEJBNFx1NjI2N1x1ODg0Q1x1NkEyMVx1NUYwRjwvbGFiZWw+PHNlbGVjdCBpZD0iY2ZnLW1vZGUiIGNsYXNzPSJmaWVsZC1pbnB1dCI+PG9wdGlvbiB2YWx1ZT0iZGVmYXVsdCI+ZGVmYXVsdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImFzc2lzdCI+YXNzaXN0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWdlbnQiPmFnZW50PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYWdlbnQtbWF4Ij5hZ2VudC1tYXg8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhdXRvLWVkaXQiPmF1dG8tZWRpdDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImZ1bGwtYWNjZXNzIj5mdWxsLWFjY2Vzczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Im5hdGl2ZSI+bmF0aXZlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibWFuYWdlZCI+bWFuYWdlZDwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1sYW5ndWFnZSI+XHU1NkRFXHU1OTBEXHU4QkVEXHU4QTAwPC9sYWJlbD48c2VsZWN0IGlkPSJjZmctbGFuZ3VhZ2UiIGNsYXNzPSJmaWVsZC1pbnB1dCI+PG9wdGlvbiB2YWx1ZT0iIj5cdTgxRUFcdTUyQThcdUZGMDhcdTRFMERcdTYzMDdcdTVCOUFcdUZGMDk8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTRFMkRcdTY1ODciPlx1NEUyRFx1NjU4Nzwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkVuZ2xpc2giPkVuZ2xpc2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTY1RTVcdTY3MkNcdThBOUUiPlx1NjVFNVx1NjcyQ1x1OEE5RTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1RDU1Q1x1QUQ2RFx1QzVCNCI+XHVENTVDXHVBRDZEXHVDNUI0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRXNwYVx4RjFvbCI+RXNwYVx4RjFvbDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkZyYW5ceEU3YWlzIj5GcmFuXHhFN2Fpczwvb3B0aW9uPjxvcHRpb24gdmFsdWU9IkRldXRzY2giPkRldXRzY2g8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJcdTA0MjBcdTA0NDNcdTA0NDFcdTA0NDFcdTA0M0FcdTA0MzhcdTA0MzkiPlx1MDQyMFx1MDQ0M1x1MDQ0MVx1MDQ0MVx1MDQzQVx1MDQzOFx1MDQzOTwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJmaWVsZC1oaW50IiBzdHlsZT0ibWFyZ2luLXRvcDotNHB4OyI+XHU4QkJFXHU3RjZFXHU1NkRFXHU1OTBEXHU4QkVEXHU4QTAwXHU1NDBFXHVGRjBDQ2xhdWRlIFx1NUMwNlx1NUMzRFx1OTFDRlx1NEY3Rlx1NzUyOFx1NjMwN1x1NUI5QVx1OEJFRFx1OEEwMFx1NTZERVx1NTkwRFx1MzAwMjwvcD48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctc3RydWN0dXJlZC1ydW5uZXIiPlx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERCBSdW5uZXI8L2xhYmVsPjxzZWxlY3QgaWQ9ImNmZy1zdHJ1Y3R1cmVkLXJ1bm5lciIgY2xhc3M9ImZpZWxkLWlucHV0Ij48b3B0aW9uIHZhbHVlPSJzZGsiPlNES1x1RkYwOEBhbnRocm9waWMtYWkvY2xhdWRlLWFnZW50LXNka1x1RkYwQ1x1OUVEOFx1OEJBNFx1RkYwOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImNsaSI+Q0xJXHVGRjA4c3Bhd24gY2xhdWRlIC1wXHVGRjA5PC9vcHRpb24+PC9zZWxlY3Q+PHAgY2xhc3M9ImZpZWxkLWhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOjRweDsiPlNESyBcdTZBMjFcdTVGMEZcdTRGN0ZcdTc1MjhcdTVCOThcdTY1QjkgQWdlbnQgU0RLIFx1NjZGRlx1NEVFMyBDTEkgc3VicHJvY2Vzc1x1RkYwQ1x1NjNBNVx1NTNFM1x1NjZGNFx1NjU3NFx1NkQwMVx1RkYwQ1x1NTI5Rlx1ODBGRFx1N0I0OVx1NEVGN1x1MzAwMlx1NEZERFx1NUI1OFx1NTQwRVx1NUJGOVx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1N0FDQlx1NTM3M1x1NzUxRlx1NjU0OFx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiIGZvcj0iY2ZnLWluaGVyaXQtZW52Ij5cdTdFRTdcdTYyN0ZcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0Y8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU1NDJGXHU1MkE4IFBUWSAvIFx1N0VEM1x1Njc4NFx1NTMxNlx1NUI1MFx1OEZEQlx1N0EwQlx1NjVGNlx1RkYwQ1x1NjI4QVx1NUY1M1x1NTI0RFx1NjcwRFx1NTJBMVx1OEZEQlx1N0EwQlx1NzY4NFx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRlx1NEYyMFx1N0VEOSBjbGF1ZGUgLyBjb2RleFx1MzAwMlx1NTE3M1x1OTVFRFx1NTQwRVx1NUI1MFx1OEZEQlx1N0EwQlx1NEVDNVx1ODNCN1x1NUY5N1x1NjcwMFx1NUMwRlx1NTNFRlx1NzUyOFx1NzNBRlx1NTg4M1x1RkYwOFBBVEgvSE9NRS9TSEVMTC9MQU5HL1RFUk0gXHU3QjQ5XHVGRjA5XHVGRjBDXHU1M0VGXHU3NTI4XHU0RThFXHU5Njk0XHU3OUJCIEFQSSBrZXkgXHU3QjQ5XHU2NTRGXHU2MTFGXHU1MUVEXHU2MzZFXHUzMDAyPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1hc2lkZSI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJjZmctdmlldy1lbnYtYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIiB0aXRsZT0iXHU2N0U1XHU3NzBCXHU1QjlFXHU5NjQ1XHU0RjFBXHU2Q0U4XHU1MTY1XHU1MjMwXHU1QjUwXHU4RkRCXHU3QTBCXHU3Njg0XHU3M0FGXHU1ODgzXHU1M0Q4XHU5MUNGIj5cdTY3RTVcdTc3MEI8L2J1dHRvbj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctaW5oZXJpdC1lbnYiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWRlZmF1bHQtbW9kZWwiPlx1OUVEOFx1OEJBNFx1NkEyMVx1NTc4QjwvbGFiZWw+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uIj48c2VsZWN0IGlkPSJjZmctZGVmYXVsdC1tb2RlbCIgY2xhc3M9ImZpZWxkLWlucHV0IGZpZWxkLXNlbGVjdCI+PG9wdGlvbiB2YWx1ZT0iIj5cdThEREZcdTk2OEYgQ2xhdWRlIENvZGUgXHU5RUQ4XHU4QkE0PC9vcHRpb24+PC9zZWxlY3Q+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJjZmctZGVmYXVsdC1tb2RlbC1yZWZyZXNoIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIiB0aXRsZT0iXHU1MjM3XHU2NUIwXHU2QTIxXHU1NzhCXHU1MjE3XHU4ODY4Ij5cdTUyMzdcdTY1QjA8L2J1dHRvbj48L2Rpdj48cCBjbGFzcz0iZmllbGQtaGludCIgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsLXZlcnNpb24iPlx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1NjVGNlx1OUVEOFx1OEJBNFx1NEY3Rlx1NzUyOFx1OEJFNVx1NkEyMVx1NTc4Qlx1RkYxQlx1OEZEMFx1ODg0Q1x1NEUyRFx1NzY4NFx1NEYxQVx1OEJERFx1NTNFRlx1NTcyOFx1OEY5M1x1NTE2NVx1Njg0Nlx1NTIwN1x1NjM2Mlx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctY3dkIj5cdTlFRDhcdThCQTRcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTU8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLWN3ZCIgdHlwZT0idGV4dCIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iL2hvbWUvdXNlciIgLz48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctc2hlbGwiPlNoZWxsPC9sYWJlbD48aW5wdXQgaWQ9ImNmZy1zaGVsbCIgdHlwZT0idGV4dCIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iL2Jpbi9iYXNoIiAvPjwvZGl2PicrKHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0QXBwSWNvbj09ImZ1bmN0aW9uIj8nPGRpdiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tYmxvY2siPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+JytWKCJwYWxldHRlIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+XHU1RTk0XHU3NTI4XHU1NkZFXHU2ODA3PC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1OTAwOVx1NjJFOSBBcHAgXHU1NDJGXHU1MkE4XHU1NjY4XHU1NkZFXHU2ODA3XHVGRjBDXHU4RkQ0XHU1NkRFXHU2ODRDXHU5NzYyXHU1NDBFXHU3NTFGXHU2NTQ4PC9wPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImFwcC1pY29uLXBpY2tlciIgY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLXBpY2tlciI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24iIGRhdGEtaWNvbj0ic2hvcnRoYWlyIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tcHJldmlldyI+JytEaS51c2VyKyc8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLWxhYmVsIj5cdThENUJcdTUzNUFcdTg2NEVcdTU5OUU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24iIGRhdGEtaWNvbj0iZ2FyZmllbGQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1wcmV2aWV3Ij4nK0RpLmFzc2lzdGFudCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1sYWJlbCI+XHU1MkU0XHU1MkIzXHU1MjFEXHU0RThDPC9zcGFuPjwvYnV0dG9uPjwvZGl2PjxwIGlkPSJhcHAtaWNvbi1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4iPjwvcD48L2Rpdj4nOiIiKSsnPGRpdiBjbGFzcz0ic2V0dGluZ3MtYWN0aW9ucyBzZXR0aW5ncy1hY3Rpb25zLXN0aWNreSI+PGJ1dHRvbiBpZD0ic2F2ZS1jb25maWctYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayI+XHU0RkREXHU1QjU4XHU5MTREXHU3RjZFPC9idXR0b24+PC9kaXY+PHAgaWQ9ImNvbmZpZy1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4gc2V0dGluZ3Mtc3RhdHVzLW1lc3NhZ2UiPjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCIgaWQ9InNldHRpbmdzLXRhYi1zZWN1cml0eSIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU1Qjg5XHU1MTY4PC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU3QkExXHU3NDA2XHU3NjdCXHU1RjU1XHU1QkM2XHU3ODAxXHU0RTBFIFNTTCBcdThCQzFcdTRFNjZcdUZGMENcdTY1NEZcdTYxMUZcdTUzRDhcdTY2RjRcdThCRjdcdTc4NkVcdThCQTRcdTU0MEVcdTUxOERcdTRGRERcdTVCNThcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1pY29uIj5cdXsxRjUxMn08L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1oZWFkLXRleHQiPjxoMyBjbGFzcz0ic2V0dGluZ3MtY2FyZC10aXRsZSI+XHU0RkVFXHU2NTM5XHU1QkM2XHU3ODAxPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtY2FyZC1kZXNjIj5cdTgxRjNcdTVDMTEgNiBcdTRFMkFcdTVCNTdcdTdCMjZcdUZGMUJcdTRGRERcdTVCNThcdTU0MEVcdTRFMEJcdTZCMjFcdTc2N0JcdTVGNTVcdTc1MUZcdTY1NDhcdTMwMDI8L3A+PC9kaXY+PC9kaXY+PGZvcm0gaWQ9ImNoYW5nZS1wYXNzd29yZC1mb3JtIiBhdXRvY29tcGxldGU9Im9uIiBvbnN1Ym1pdD0icmV0dXJuIGZhbHNlOyI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBhdXRvY29tcGxldGU9InVzZXJuYW1lIiB2YWx1ZT0id2FuZCIgdGFiaW5kZXg9Ii0xIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTk5OTlweDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZSIgcmVhZG9ubHkgLz48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJuZXctcGFzc3dvcmQiPlx1NjVCMFx1NUJDNlx1NzgwMTwvbGFiZWw+PGlucHV0IGlkPSJuZXctcGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTY1QjBcdTVCQzZcdTc4MDFcdUZGMDhcdTgxRjNcdTVDMTEgNiBcdTRFMkFcdTVCNTdcdTdCMjZcdUZGMDkiIGF1dG9jb21wbGV0ZT0ibmV3LXBhc3N3b3JkIiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNvbmZpcm0tcGFzc3dvcmQiPlx1Nzg2RVx1OEJBNFx1NUJDNlx1NzgwMTwvbGFiZWw+PGlucHV0IGlkPSJjb25maXJtLXBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU1MThEXHU2QjIxXHU4RjkzXHU1MTY1XHU2NUIwXHU1QkM2XHU3ODAxIiBhdXRvY29tcGxldGU9Im5ldy1wYXNzd29yZCIgLz48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWFjdGlvbnMiPjxidXR0b24gaWQ9InNhdmUtcGFzc3dvcmQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IiB0eXBlPSJzdWJtaXQiPlx1NEZERFx1NUI1OFx1NUJDNlx1NzgwMTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJzZXR0aW5ncy1lcnJvciIgY2xhc3M9ImVycm9yLW1lc3NhZ2UgaGlkZGVuIj48L3A+PHAgaWQ9InNldHRpbmdzLXN1Y2Nlc3MiIGNsYXNzPSJoaW50IHNldHRpbmdzLXN1Y2Nlc3MtbWVzc2FnZSBoaWRkZW4iPjwvcD48L2Zvcm0+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1pY29uIj5cdXsxRjUxMH08L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1oZWFkLXRleHQiPjxoMyBjbGFzcz0ic2V0dGluZ3MtY2FyZC10aXRsZSI+U1NMIFx1OEJDMVx1NEU2NjwvaDM+PHAgY2xhc3M9InNldHRpbmdzLWNhcmQtZGVzYyIgaWQ9ImNlcnQtc3RhdHVzIj5cdTUyQTBcdThGN0RcdTRFMkQuLi48L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2VydC1rZXktZmlsZSI+XHU3OUMxXHU5NEE1XHU2NTg3XHU0RUY2ICgua2V5KTwvbGFiZWw+PGRpdiBjbGFzcz0iZmlsZS1waWNrZXIiPjxpbnB1dCBpZD0iY2VydC1rZXktZmlsZSIgdHlwZT0iZmlsZSIgY2xhc3M9ImZpbGUtcGlja2VyLWlucHV0IiBhY2NlcHQ9Ii5rZXksLnBlbSIgLz48bGFiZWwgZm9yPSJjZXJ0LWtleS1maWxlIiBjbGFzcz0iZmlsZS1waWNrZXItdHJpZ2dlciI+PHN2ZyBjbGFzcz0iZmlsZS1waWNrZXItaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMjEuNDQgMTEuMDVsLTkuMTkgOS4xOWE2IDYgMCAwIDEtOC40OS04LjQ5bDkuMTktOS4xOWE0IDQgMCAwIDEgNS42NiA1LjY2bC05LjIgOS4xOWEyIDIgMCAwIDEtMi44My0yLjgzbDguNDktOC40OCI+PC9wYXRoPjwvc3ZnPjxzcGFuIGNsYXNzPSJmaWxlLXBpY2tlci1sYWJlbCI+XHU5MDA5XHU2MkU5XHU3OUMxXHU5NEE1PC9zcGFuPjwvbGFiZWw+PHNwYW4gY2xhc3M9ImZpbGUtcGlja2VyLW5hbWUiIGRhdGEtZGVmYXVsdD0iXHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2Ij5cdTY3MkFcdTkwMDlcdTYyRTlcdTY1ODdcdTRFRjY8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2VydC1jZXJ0LWZpbGUiPlx1OEJDMVx1NEU2Nlx1NjU4N1x1NEVGNiAoLmNydC8ucGVtKTwvbGFiZWw+PGRpdiBjbGFzcz0iZmlsZS1waWNrZXIiPjxpbnB1dCBpZD0iY2VydC1jZXJ0LWZpbGUiIHR5cGU9ImZpbGUiIGNsYXNzPSJmaWxlLXBpY2tlci1pbnB1dCIgYWNjZXB0PSIuY3J0LC5wZW0sLmNlcnQiIC8+PGxhYmVsIGZvcj0iY2VydC1jZXJ0LWZpbGUiIGNsYXNzPSJmaWxlLXBpY2tlci10cmlnZ2VyIj48c3ZnIGNsYXNzPSJmaWxlLXBpY2tlci1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xNCAySDZhMiAyIDAgMCAwLTIgMnYxNmEyIDIgMCAwIDAgMiAyaDEyYTIgMiAwIDAgMCAyLTJWOHoiPjwvcGF0aD48cG9seWxpbmUgcG9pbnRzPSIxNCAyIDE0IDggMjAgOCI+PC9wb2x5bGluZT48L3N2Zz48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbGFiZWwiPlx1OTAwOVx1NjJFOVx1OEJDMVx1NEU2Njwvc3Bhbj48L2xhYmVsPjxzcGFuIGNsYXNzPSJmaWxlLXBpY2tlci1uYW1lIiBkYXRhLWRlZmF1bHQ9Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNiI+XHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtYWN0aW9ucyI+PGJ1dHRvbiBpZD0idXBsb2FkLWNlcnQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5Ij5cdTRFMEFcdTRGMjBcdThCQzFcdTRFNjY8L2J1dHRvbj48L2Rpdj48cCBpZD0iY2VydC1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4iPjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCIgaWQ9InNldHRpbmdzLXRhYi1wcmVzZXRzIiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTU0N0RcdTRFRTRcdTk4ODRcdThCQkU8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1kZXNjIj5cdTVGNTNcdTUyNERcdTU0N0RcdTRFRTRcdTk4ODRcdThCQkVcdTRFQ0UgY29uZmlnLmpzb24gXHU4QkZCXHU1M0Q2XHVGRjBDXHU1M0VGXHU1NzI4XHU4RkQ5XHU5MUNDXHU1RkVCXHU5MDFGXHU2N0U1XHU3NzBCXHU1REYyXHU2NzA5XHU5MTREXHU3RjZFXHUzMDAyPC9wPjwvZGl2PjxkaXYgaWQ9InByZXNldHMtbGlzdCIgY2xhc3M9InByZXNldHMtbGlzdCI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItZGlzcGxheSIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU2NjNFXHU3OTNBPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU2M0E3XHU1MjM2XHU4MDRBXHU1OTI5XHU4OUM2XHU1NkZFXHU5MUNDXHU0RTBEXHU1NDBDXHU1MzYxXHU3MjQ3XHU3QzdCXHU1NzhCXHU3Njg0XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwXHU3MkI2XHU2MDAxXHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tdGl0bGUiPlx1NTM2MVx1NzI0N1x1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMFx1NzJCNlx1NjAwMTwvZGl2PjxwIGNsYXNzPSJoaW50IHNldHRpbmdzLWlubGluZS1oaW50Ij5cdThCQkVcdTdGNkVcdTdFRDNcdTY3ODRcdTUzMTZcdTgwNEFcdTU5MjlcdTg5QzZcdTU2RkVcdTRFMkRcdTU0MDRcdTdDN0JcdTUzNjFcdTcyNDdcdTc2ODRcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDAvXHU2Mjk4XHU1M0UwXHU3MkI2XHU2MDAxXHUzMDAyXHU2MjRCXHU1MkE4XHU2NENEXHU0RjVDXHU3Njg0XHU1QzU1XHU1RjAwXHU3MkI2XHU2MDAxXHU0RjE4XHU1MTQ4XHU0RThFXHU2QjY0XHU5RUQ4XHU4QkE0XHU4QkJFXHU3RjZFXHUzMDAyPC9wPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWxpc3QiPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtZWRpdCI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1N0YxNlx1OEY5MVx1NTM2MVx1NzI0NyAoRWRpdC9Xcml0ZSk8L3NwYW4+PGlucHV0IGlkPSJjZmctY2FyZC1lZGl0IiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdTY1ODdcdTRFRjZcdTdGMTZcdThGOTFcdTU0OENcdTUxOTlcdTUxNjVcdTY0Q0RcdTRGNUNcdTc2ODQgZGlmZiBcdTg5QzZcdTU2RkU8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtaW5saW5lIj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU1MTg1XHU4MDU0XHU1REU1XHU1MTc3IChSZWFkL0dsb2IvR3JlcCk8L3NwYW4+PGlucHV0IGlkPSJjZmctY2FyZC1pbmxpbmUiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPlx1NjU4N1x1NEVGNlx1OEJGQlx1NTNENlx1MzAwMVx1NjQxQ1x1N0QyMlx1N0I0OVx1NURFNVx1NTE3N1x1NzY4NFx1N0VEM1x1Njc5QzwvZGl2PjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC10ZXJtaW5hbCI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1N0VDOFx1N0FFRlx1OEY5M1x1NTFGQSAoQmFzaCk8L3NwYW4+PGlucHV0IGlkPSJjZmctY2FyZC10ZXJtaW5hbCIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+XHU1NDdEXHU0RUU0XHU4ODRDXHU2MjY3XHU4ODRDXHU3RUQzXHU2NzlDPC9kaXY+PC9sYWJlbD48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLXRoaW5raW5nIj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU2MDFEXHU4MDAzXHU4RkM3XHU3QTBCIChUaGlua2luZyk8L3NwYW4+PGlucHV0IGlkPSJjZmctY2FyZC10aGlua2luZyIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+Q2xhdWRlIFx1NzY4NFx1NjAxRFx1ODAwM1x1OEZDN1x1N0EwQlx1NTc1NzwvZGl2PjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC10b29sZ3JvdXAiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTVERTVcdTUxNzdcdTdFQzQ8L3NwYW4+PGlucHV0IGlkPSJjZmctY2FyZC10b29sZ3JvdXAiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPlx1OEZERVx1N0VFRFx1NTQwQ1x1N0M3Qlx1NURFNVx1NTE3N1x1OEMwM1x1NzUyOFx1NzY4NFx1NjI5OFx1NTNFMFx1N0VDNDwvZGl2PjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWN0aW9ucyBzZXR0aW5ncy1hY3Rpb25zLXN0aWNreSI+PGJ1dHRvbiBpZD0ic2F2ZS1kaXNwbGF5LWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tYmxvY2siPlx1NEZERFx1NUI1OFx1NjYzRVx1NzkzQVx1OEJCRVx1N0Y2RTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJkaXNwbGF5LW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiBzZXR0aW5ncy1zdGF0dXMtbWVzc2FnZSI+PC9wPjwvZGl2PjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj4nfWZ1bmN0aW9uIFNnKGUpe3ZhciB0PXR0KCk7cmV0dXJuIGUuc2VsZWN0ZWRJZD8iIjonPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1jb21wYWN0IiBpZD0iZm9sZGVyLXBpY2tlci1jb250YWluZXIiPjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdC1yb3ciPjxzcGFuIGNsYXNzPSJmb2xkZXItcGlja2VyLWNvbXBhY3QtaWNvbiI+JytWKCJmb2xkZXIiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGlucHV0IHR5cGU9InRleHQiIGlkPSJmb2xkZXItcGlja2VyLWlucHV0IiBjbGFzcz0iZm9sZGVyLXBpY2tlci1jb21wYWN0LWlucHV0IiB2YWx1ZT0iJytwKHQpKyciIHBsYWNlaG9sZGVyPSJcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTUiIGF1dG9jb21wbGV0ZT0ib2ZmIiAvPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iZm9sZGVyLXBpY2tlci10b2dnbGUiIGNsYXNzPSJmb2xkZXItcGlja2VyLXRvZ2dsZSIgdGl0bGU9Ilx1OTAwOVx1NjJFOVx1NzZFRVx1NUY1NSIgYXJpYS1sYWJlbD0iXHU5MDA5XHU2MkU5XHU3NkVFXHU1RjU1Ij4nK1YoImNoZXZyb25Eb3duIix7c2l6ZToxMSxzdHJva2VXaWR0aDoyfSkrJzwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImZvbGRlci1waWNrZXItZHJvcGRvd24iIGNsYXNzPSJmb2xkZXItcGlja2VyLWRyb3Bkb3duIGhpZGRlbiI+PGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1yb3ciPjxidXR0b24gY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stYnRuIiBkYXRhLXBhdGg9Ii90bXAiPlx1NEUzNFx1NjVGNjwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stYnRuIiBkYXRhLXBhdGg9Ii8iPlx1NjgzOVx1NzZFRVx1NUY1NTwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiIgY2xhc3M9ImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiI+PC9kaXY+PC9kaXY+J31mdW5jdGlvbiBJZyhlKXt2YXIgdD10dCgpLG49dDtpZihlLnNlbGVjdGVkSWQpe3ZhciBpPWUuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PWUuc2VsZWN0ZWRJZH0pO249aSYmaS5jd2Q/aS5jd2Q6dH1yZXR1cm4nPGRpdiBjbGFzcz0id29ya2luZy1kaXItaW5kaWNhdG9yIiBpZD0id29ya2luZy1kaXItaW5kaWNhdG9yIiB0aXRsZT0iJytwKG4pKyciIGRhdGEtcGF0aD0iJytwKG4pKyciPjxzcGFuIGNsYXNzPSJ3b3JraW5nLWRpci1pbmRpY2F0b3ItaWNvbiI+JytWKCJmb2xkZXIiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PHNwYW4gY2xhc3M9IndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoIiBpZD0id29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGgiPicrcChuKSsiPC9zcGFuPjwvZGl2PiJ9ZnVuY3Rpb24gcnMoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9RGF0ZS5ub3coKSxuPW5ldyBEYXRlKGUpLmdldFRpbWUoKSxpPU1hdGgubWF4KDAsdC1uKSxhPU1hdGguZmxvb3IoaS8xZTMpO2lmKGE8NjApcmV0dXJuIlx1NTIxQVx1NTIxQSI7dmFyIHU9TWF0aC5mbG9vcihhLzYwKTtpZih1PDYwKXJldHVybiB1KyJcdTUyMDZcdTk0OUZcdTUyNEQiO3ZhciBzPU1hdGguZmxvb3IodS82MCk7aWYoczwyNClyZXR1cm4gcysiXHU1QzBGXHU2NUY2XHU1MjREIjt2YXIgbz1NYXRoLmZsb29yKHMvMjQpO3JldHVybiBvPDMwP28rIlx1NTkyOVx1NTI0RCI6TWF0aC5mbG9vcihvLzMwKSsiXHU0RTJBXHU2NzA4XHU1MjREIn1mdW5jdGlvbiBpcyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1EYXRlLm5vdygpLG49bmV3IERhdGUoZSkuZ2V0VGltZSgpLGk9TWF0aC5tYXgoMCx0LW4pLGE9TWF0aC5mbG9vcihpLzFlMyksdT1NYXRoLmZsb29yKGEvNjApLHM9TWF0aC5mbG9vcih1LzYwKTtyZXR1cm4gcz4wP3MrImgiKyh1JTYwPjA/dSU2MCsibSI6IiIpOnU+MD91KyJtIjphKyJzIn1mdW5jdGlvbiBkcihlKXtpZighZSlyZXR1cm4iIjtpZihlLmFyY2hpdmVkKXJldHVybiJcdTVERjJcdTVGNTJcdTY4NjMiO2lmKGUucGVybWlzc2lvbkJsb2NrZWQpcmV0dXJuIlx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0MyI7aWYoaWUoZSkmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodClyZXR1cm4iXHU2MDFEXHU4MDAzXHU0RTJEIjt2YXIgdD17aWRsZToiXHU3QTdBXHU5NUYyIixzdG9wcGVkOiJcdTVERjJcdTUwNUNcdTZCNjIiLHJ1bm5pbmc6Ilx1OEZEMFx1ODg0Q1x1NEUyRCIsZXhpdGVkOiJcdTVERjJcdTkwMDBcdTUxRkEiLGZhaWxlZDoiXHU1REYyXHU1OTMxXHU4RDI1In07cmV0dXJuIHRbZS5zdGF0dXNdfHxlLnN0YXR1c31mdW5jdGlvbiBhcyhlKXtyZXR1cm4gZT9lLmFyY2hpdmVkPyJhcmNoaXZlZCI6ZS5wZXJtaXNzaW9uQmxvY2tlZD8icGVybWlzc2lvbi1ibG9ja2VkIjppZShlKSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0PyJydW5uaW5nIjplLnN0YXR1c3x8IiI6IiJ9ZnVuY3Rpb24gVWMoZSl7cmV0dXJuIGU/ZS5wZXJtaXNzaW9uQmxvY2tlZD8iXHU3QjQ5XHU1Rjg1XHU0RjYwXHU3Njg0XHU2Mzg4XHU2NzQzIjplLnN0YXR1cyE9PSJydW5uaW5nIj8iIjplLmlkPT09ci5zZWxlY3RlZElkJiZyLmN1cnJlbnRUYXNrJiZyLmN1cnJlbnRUYXNrLnRpdGxlP3IuY3VycmVudFRhc2sudGl0bGU6ZS5jdXJyZW50VGFza1RpdGxlP2UuY3VycmVudFRhc2tUaXRsZToiIjoiIn1mdW5jdGlvbiBWYyhlKXt2YXIgdD1lJiZlLm1lc3NhZ2VzO2lmKCF0fHx0Lmxlbmd0aD09PTApcmV0dXJuIiI7Zm9yKHZhciBuPXQubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBpPXRbbl07aWYoISghaXx8aS5yb2xlIT09InVzZXIiKSl7dmFyIGE9aS5jb250ZW50O2lmKHR5cGVvZiBhPT0ic3RyaW5nIil7dmFyIHU9YS50cmltKCk7aWYodSlyZXR1cm4gdTtjb250aW51ZX1pZihBcnJheS5pc0FycmF5KGEpKWZvcih2YXIgcz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbz1hW3NdO2lmKCEoIW98fG8udHlwZSE9PSJ0ZXh0Inx8IW8udGV4dCkmJiFvLl9fcXVldWVkKXt2YXIgbD1TdHJpbmcoby50ZXh0KS50cmltKCk7aWYobClyZXR1cm4gbH19fX1yZXR1cm4iIn1mdW5jdGlvbiBLYyhlKXt2YXIgdD1lJiZlLm1lc3NhZ2VzO2lmKCF0fHx0Lmxlbmd0aD09PTApcmV0dXJuIiI7Zm9yKHZhciBuPXQubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBpPXRbbl07aWYoaS5yb2xlPT09ImFzc2lzdGFudCIpe2Zvcih2YXIgYT1pLmNvbnRlbnR8fFtdLHU9MDt1PGEubGVuZ3RoO3UrKylpZihhW3VdLnR5cGU9PT0idGV4dCImJmFbdV0udGV4dCYmYVt1XS50ZXh0LnRyaW0oKSl7dmFyIHM9YVt1XS50ZXh0LnRyaW0oKTtzPXMucmVwbGFjZSgvXiMrXHMrL2dtLCIiKS5yZXBsYWNlKC9cKlwqL2csIiIpLnJlcGxhY2UoL2AvZywiIik7dmFyIG89cy5zcGxpdChgCmApWzBdLnRyaW0oKTtyZXR1cm4gby5zbGljZSgwLDEwMCl9fX1yZXR1cm4iIn1mdW5jdGlvbiByYShlLHQpe3ZhciBuPWUuaWQ9PT1yLnNlbGVjdGVkSWQ/IiBhY3RpdmUiOiIiLGk9ci5zZXNzaW9uc01hbmFnZU1vZGUmJnIuc2VsZWN0ZWRTZXNzaW9uSWRzW2UuaWRdPyIgc2VsZWN0ZWQiOiIiLGE9ZHIoZSksdT1hcyhlKSxzPSIiLG89dnMoInNlc3Npb25zIixlLmlkLCJcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQgIitlLmNvbW1hbmQpO2lmKChlLnByb3ZpZGVyPT09ImNsYXVkZSJ8fGUucHJvdmlkZXI9PT0iY29kZXgiKSYmZS5jbGF1ZGVTZXNzaW9uSWQmJmUuc3RhdHVzIT09InJ1bm5pbmciJiYhci5zZXNzaW9uc01hbmFnZU1vZGUmJiFpZShlKSl7dmFyIGw9ZS5wcm92aWRlcj09PSJjb2RleCI/Ilx1NjA2Mlx1NTkwRCBDb2RleCBcdTRGMUFcdThCREQiOiJcdTYwNjJcdTU5MEQgQ2xhdWRlIFx1NEYxQVx1OEJERCI7cz0nPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIiBkYXRhLWFjdGlvbj0icmVzdW1lIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9IicrbCsnIiB0aXRsZT0iJytsKyciPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEgNHY2aDYiLz48cGF0aCBkPSJNMy41MSAxNWE5IDkgMCAxMDUuNjQtMTEuMzZMMyAxMCIvPjwvc3ZnPjwvYnV0dG9uPid9dmFyIGM9IXIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiZlLndvcmt0cmVlRW5hYmxlZCYmZS53b3JrdHJlZSYmZS53b3JrdHJlZS5icmFuY2gmJmUud29ya3RyZWUucGF0aCxmPWUud29ya3RyZWVNZXJnZVN0YXR1cz09PSJtZXJnZWQiJiZlLndvcmt0cmVlTWVyZ2VJbmZvJiZlLndvcmt0cmVlTWVyZ2VJbmZvLmNsZWFudXBEb25lPT09ITEsZD1lLnN0YXR1cz09PSJydW5uaW5nInx8ZS53b3JrdHJlZU1lcmdlU3RhdHVzPT09Im1lcmdpbmciLHY9Zj8iXHU5MUNEXHU4QkQ1XHU2RTA1XHU3NDA2IHdvcmt0cmVlIjoiXHU1NDA4XHU1RTc2XHU1MjMwXHU0RTNCXHU1MjA2XHU2NTJGIixoPWMmJmUud29ya3RyZWVNZXJnZVN0YXR1cyE9PSJtZXJnZWQiPyc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gbWVyZ2UtYnRuIiBkYXRhLWFjdGlvbj0id29ya3RyZWUtbWVyZ2UiIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iJytwKHYpKyciIHRpdGxlPSInK3AodikrJyInKyhkPyIgZGlzYWJsZWQiOiIiKSsnPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTcgN2gxMCIvPjxwYXRoIGQ9Ik03IDEyaDEwIi8+PHBhdGggZD0iTTcgMTdoMTAiLz48cGF0aCBkPSJNNSA3bC0yIDIgMiAyIi8+PHBhdGggZD0iTTE5IDE1bDIgMi0yIDIiLz48L3N2Zz48L2J1dHRvbj4nOmY/JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biBtZXJnZS1idG4iIGRhdGEtYWN0aW9uPSJ3b3JrdHJlZS1jbGVhbnVwIiBkYXRhLXNlc3Npb24taWQ9IicrZS5pZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1OTFDRFx1OEJENVx1NkUwNVx1NzQwNiB3b3JrdHJlZSIgdGl0bGU9Ilx1OTFDRFx1OEJENVx1NkUwNVx1NzQwNiB3b3JrdHJlZSI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz48L2J1dHRvbj4nOiIiLGc9ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biBkZWxldGUtYnRuIiBkYXRhLWFjdGlvbj0iZGVsZXRlLXNlc3Npb24iIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREIiB0aXRsZT0iXHU1MjIwXHU5NjY0XHU2QjY0XHU0RjFBXHU4QkREIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPjwvYnV0dG9uPicsbT0nPHNwYW4gY2xhc3M9InNlc3Npb24tYWN0aW9ucyI+JytzK2grZysiPC9zcGFuPiIseT1lLnRpdGxlfHxlLnN1bW1hcnk/JzxkaXYgY2xhc3M9InNlc3Npb24tdGl0bGUiPicrcChlLnRpdGxlfHxlLnN1bW1hcnkpKyI8L2Rpdj4iOic8ZGl2IGNsYXNzPSJzZXNzaW9uLWNvbW1hbmQiPicrcChlLnJlc3VtZWRGcm9tU2Vzc2lvbklkP2UuY29tbWFuZC5yZXBsYWNlKC9ccystLXJlc3VtZVxzK1xTKy8sIiIpLnJlcGxhY2UoL1xzK3Jlc3VtZVxzK1swLTlhLWYtXSsvLCIiKTplLmNvbW1hbmQpKyI8L2Rpdj4iLHc9VWMoZSksRT0iIjtlLnN0YXR1cz09PSJydW5uaW5nIiYmdyYmKEU9JzxkaXYgY2xhc3M9InNlc3Npb24tYWN0aXZpdHkiPicrcCh3KSsiPC9kaXY+Iik7dmFyIEI9ZS5kZXNjcmlwdGlvbj8nPGRpdiBjbGFzcz0ic2Vzc2lvbi1kZXNjcmlwdGlvbiI+JytwKGUuZGVzY3JpcHRpb24pKyI8L2Rpdj4iOiIiLEY9IiI7ZS5zdGF0dXM9PT0icnVubmluZyI/Rj0nPHNwYW4gY2xhc3M9InNlc3Npb24tdGltZSIgdGl0bGU9Ilx1NURGMlx1OEZEMFx1ODg0QyAnK3AoaXMoZS5zdGFydGVkQXQpKSsnIj4nK3AoaXMoZS5zdGFydGVkQXQpKSsiPC9zcGFuPiI6ZS5lbmRlZEF0P0Y9JzxzcGFuIGNsYXNzPSJzZXNzaW9uLXRpbWUiIHRpdGxlPSInK3AobmV3IERhdGUoZS5lbmRlZEF0KS50b0xvY2FsZVN0cmluZygpKSsnIj4nK3AocnMoZS5lbmRlZEF0KSkrIjwvc3Bhbj4iOmUuc3RhcnRlZEF0JiYoRj0nPHNwYW4gY2xhc3M9InNlc3Npb24tdGltZSIgdGl0bGU9IicrcChuZXcgRGF0ZShlLnN0YXJ0ZWRBdCkudG9Mb2NhbGVTdHJpbmcoKSkrJyI+JytwKHJzKGUuc3RhcnRlZEF0KSkrIjwvc3Bhbj4iKTt2YXIgeD11cyhlKSxTPWUuYXV0b1JlY292ZXJlZD8nPHNwYW4gY2xhc3M9InNlc3Npb24tcmVjb3ZlcnktaGludCI+XHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEPC9zcGFuPic6IiIsXz1yLnNlc3Npb25zTWFuYWdlTW9kZT8iIjonPGRpdiBjbGFzcz0ic2Vzc2lvbi1zd2lwZS1iZyIgYXJpYS1oaWRkZW49InRydWUiPjxidXR0b24gY2xhc3M9InNlc3Npb24tc3dpcGUtZGVsZXRlIiBkYXRhLWFjdGlvbj0ic3dpcGUtZGVsZXRlLXNlc3Npb24iIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHR5cGU9ImJ1dHRvbiIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PHNwYW4+XHU1MjIwXHU5NjY0PC9zcGFuPjwvYnV0dG9uPjwvZGl2Pic7cmV0dXJuJzxkaXYgY2xhc3M9InNlc3Npb24taXRlbScrbitpKyciIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiPicrXysnPGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtLWNvbnRlbnQiPjxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1yb3ciPicrbysnPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYWluIj48ZGl2IGNsYXNzPSJzZXNzaW9uLXRpdGxlLXJvdyI+Jyt5K0YrIjwvZGl2PiIrQitFKyc8ZGl2IGNsYXNzPSJzZXNzaW9uLW1ldGEiPjxzcGFuIGNsYXNzPSJzZXNzaW9uLXN0YXR1cyAnK3UrJyI+JytwKGEpKyI8L3NwYW4+Iit4K1MrIjwvZGl2PjwvZGl2PiIrbSsiPC9kaXY+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiBKYyhlKXtpZighZXx8IWUud29ya3RyZWVNZXJnZVN0YXR1cylyZXR1cm4iIjt2YXIgdD17cmVhZHk6Ilx1NTNFRlx1NTQwOFx1NUU3NiIsY2hlY2tpbmc6Ilx1NjhDMFx1NjdFNVx1NEUyRCIsbWVyZ2luZzoiXHU1NDA4XHU1RTc2XHU0RTJEIixtZXJnZWQ6ZS53b3JrdHJlZU1lcmdlSW5mbyYmZS53b3JrdHJlZU1lcmdlSW5mby5jbGVhbnVwRG9uZT09PSExPyJcdTVERjJcdTU0MDhcdTVFNzZcdTVGODVcdTZFMDVcdTc0MDYiOiJcdTVERjJcdTU0MDhcdTVFNzYiLGZhaWxlZDoiXHU1NDA4XHU1RTc2XHU1OTMxXHU4RDI1In07cmV0dXJuIHRbZS53b3JrdHJlZU1lcmdlU3RhdHVzXXx8IiJ9ZnVuY3Rpb24gR2MoZSl7dmFyIHQ9SmMoZSk7cmV0dXJuIHQ/JzxzcGFuIGNsYXNzPSJzZXNzaW9uLWtpbmQtYmFkZ2Ugd29ya3RyZWUtbWVyZ2UgJytwKGUud29ya3RyZWVNZXJnZVN0YXR1c3x8IiIpKyciPicrcCh0KSsiPC9zcGFuPiI6IiJ9ZnVuY3Rpb24gdXMoZSl7aWYoIWV8fCFlLndvcmt0cmVlRW5hYmxlZClyZXR1cm4iIjt2YXIgdD1bXTtlLndvcmt0cmVlJiZlLndvcmt0cmVlLmJyYW5jaCYmdC5wdXNoKCJXb3JrdHJlZTogIitlLndvcmt0cmVlLmJyYW5jaCksZS53b3JrdHJlZSYmZS53b3JrdHJlZS5wYXRoJiZ0LnB1c2goIlBhdGg6ICIrZS53b3JrdHJlZS5wYXRoKTt2YXIgbj10Lmxlbmd0aD4wPycgdGl0bGU9IicrcCh0LmpvaW4oYApgKSkrJyInOiIiO3JldHVybic8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHdvcmt0cmVlIicrbisiPldvcmt0cmVlPC9zcGFuPiIrR2MoZSl9ZnVuY3Rpb24gVGcoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9aWUoZSk/JzxzcGFuIGNsYXNzPSJzZXNzaW9uLWtpbmQtYmFkZ2Ugc3RydWN0dXJlZCI+U3RydWN0dXJlZDwvc3Bhbj4nOic8c3BhbiBjbGFzcz0ic2Vzc2lvbi1raW5kLWJhZGdlIHB0eSI+UFRZPC9zcGFuPic7cmV0dXJuIHQrdXMoZSl9ZnVuY3Rpb24gWWMoZSl7dmFyIHQ9W3tpZDoibWFuYWdlZCIsbGFiZWw6Ilx1NjI1OFx1N0JBMSIsZGVzYzoiXHU1MTY4XHU4MUVBXHU1MkE4XHU1QjhDXHU2MjEwXHU0RUZCXHU1MkExIn0se2lkOiJmdWxsLWFjY2VzcyIsbGFiZWw6Ilx1NTE2OFx1Njc0M1x1OTY1MCIsZGVzYzoiXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU2NzQzXHU5NjUwIn0se2lkOiJhdXRvLWVkaXQiLGxhYmVsOiJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEiLGRlc2M6Ilx1ODFFQVx1NTJBOFx1Nzg2RVx1OEJBNFx1NEZFRVx1NjUzOSJ9LHtpZDoiZGVmYXVsdCIsbGFiZWw6Ilx1NjgwN1x1NTFDNiIsZGVzYzoiXHU5MDEwXHU2QjY1XHU3ODZFXHU4QkE0XHU2NENEXHU0RjVDIn0se2lkOiJuYXRpdmUiLGxhYmVsOiJcdTUzOUZcdTc1MUYiLGRlc2M6Ilx1NTM5Rlx1NzUxRlx1N0VEM1x1Njc4NFx1NTMxNlx1OEY5M1x1NTFGQSJ9XTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24obil7dmFyIGk9bi5pZD09PWU/IiBhY3RpdmUiOiIiO3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGUtY2FyZCcraSsnIiBkYXRhLW1vZGU9Iicrbi5pZCsnIj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWxhYmVsIj4nK24ubGFiZWwrJzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWRlc2MiPicrbi5kZXNjKyI8L3NwYW4+PC9idXR0b24+In0pLmpvaW4oIiIpfWZ1bmN0aW9uIFFjKGUpe3ZhciB0PVt7aWQ6ImNsYXVkZSIsbGFiZWw6IkNsYXVkZSIsZGVzYzoiXHU1QjhDXHU2NTc0IENsYXVkZSBcdTRGMUFcdThCRERcdTgwRkRcdTUyOUIifSx7aWQ6ImNvZGV4IixsYWJlbDoiQ29kZXgiLGRlc2M6Ilx1N0VEM1x1Njc4NFx1NTMxNiBKU09OTCBcdTYyMTYgUFRZIFx1NEYxQVx1OEJERCJ9XTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24obil7dmFyIGk9bi5pZD09PWU/IiBhY3RpdmUiOiIiO3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGUtY2FyZCBwcm92aWRlci1jYXJkJytpKyciIGRhdGEtcHJvdmlkZXI9Iicrbi5pZCsnIj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWxhYmVsIj4nK24ubGFiZWwrJzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWRlc2MiPicrbi5kZXNjKyI8L3NwYW4+PC9idXR0b24+In0pLmpvaW4oIiIpfWZ1bmN0aW9uICRjKGUpe3ZhciB0PVt7aWQ6InN0cnVjdHVyZWQiLGxhYmVsOiJcdTdFRDNcdTY3ODRcdTUzMTYiLGRlc2M6Ilx1NjY3QVx1ODBGRFx1NUJGOVx1OEJERFx1NkEyMVx1NUYwRiJ9LHtpZDoicHR5IixsYWJlbDoiUFRZIixkZXNjOiJcdTRFQTRcdTRFOTJcdTVGMEZcdTdFQzhcdTdBRUZcdTRGMUFcdThCREQifV07cmV0dXJuIHQubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPW4uaWQ9PT1lPyIgYWN0aXZlIjoiIixhPSIiO3JldHVybic8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Im1vZGUtY2FyZCBzZXNzaW9uLWtpbmQtY2FyZCcraSthKyciIGRhdGEtc2Vzc2lvbi1raW5kPSInK24uaWQrJyI+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1sYWJlbCI+JytuLmxhYmVsKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im1vZGUtY2FyZC1kZXNjIj4nK24uZGVzYysiPC9zcGFuPjwvYnV0dG9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBMZyhlKXtyZXR1cm4nPGxhYmVsIGNsYXNzPSJzZXNzaW9uLWlubGluZS10b2dnbGUiIGZvcj0ic2Vzc2lvbi13b3JrdHJlZS10b2dnbGUiIHRpdGxlPSJcdTRFM0FcdThCRTVcdTRGMUFcdThCRERcdTUyMUJcdTVFRkFcdTcyRUNcdTdBQ0JcdTc2ODQgZ2l0IHdvcmt0cmVlIFx1NTIwNlx1NjUyRiI+PHN2ZyBjbGFzcz0ic2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iMi4yIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSI2IiByPSIyLjIiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjE4IiByPSIyLjIiLz48cGF0aCBkPSJNNiA4LjJ2My40YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0yVjguMiIvPjxwYXRoIGQ9Ik0xMiAxMy42djIuMiIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJzZXNzaW9uLWlubGluZS10b2dnbGUtbGFiZWwiPldvcmt0cmVlIFx1NkEyMVx1NUYwRjwvc3Bhbj48aW5wdXQgaWQ9InNlc3Npb24td29ya3RyZWUtdG9nZ2xlIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiJysoZT8iIGNoZWNrZWQiOiIiKSsnIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9sYWJlbD4nfWZ1bmN0aW9uIHNzKGUpe3ZhciB0PXIuc2Vzc2lvblRvb2x8fCJjbGF1ZGUiO3JldHVybiBlPT09InN0cnVjdHVyZWQiP3Q9PT0iY29kZXgiPyJDb2RleCBKU09OTCBcdTdFRDNcdTY3ODRcdTUzMTZcdTgwNEFcdTU5MjlcdTc1NENcdTk3NjJcdUZGMENcdTY1MkZcdTYzMDFcdTU5MUFcdThGNkVcdTVCRjlcdThCRERcdTU0OENcdTVERTVcdTUxNzdcdThDMDNcdTc1MjhcdTVDNTVcdTc5M0FcdTMwMDIiOiJcdTdFRDNcdTY3ODRcdTUzMTZcdTgwNEFcdTU5MjlcdTc1NENcdTk3NjJcdUZGMENcdTY1MkZcdTYzMDFcdTU5MUFcdThGNkVcdTVCRjlcdThCRERcdTMwMDFcdTZENDFcdTVGMEZcdThGOTNcdTUxRkFcdTU0OENcdTVERTVcdTUxNzdcdThDMDNcdTc1MjhcdTVDNTVcdTc5M0FcdTMwMDIiOnQ9PT0iY29kZXgiPyJDb2RleCBQVFkgXHU3RUM4XHU3QUVGXHU0RjFBXHU4QkREXHVGRjFCdGVybWluYWwgXHU2NjJGXHU1MzlGXHU1OUNCXHU4RjkzXHU1MUZBXHVGRjBDY2hhdCBcdTY2MkZcdTg5RTNcdTY3OTBcdTU0MEVcdTc2ODRcdTk2MDVcdThCRkJcdTg5QzZcdTU2RkVcdTMwMDIiOiJcdTUzOUZcdTU5Q0IgUFRZIFx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERFx1RkYwQ1x1NjUyRlx1NjMwMVx1NjMwMVx1N0VFRFx1NEVBNFx1NEU5Mlx1MzAwMVx1N0VDOFx1N0FFRlx1ODlDNlx1NTZGRVx1NTQ4Q1x1Njc0M1x1OTY1MFx1NkQ0MVx1MzAwMiJ9ZnVuY3Rpb24gWGMoKXt2YXIgZT1udCgpLHQ9SXQoZSxyLm1vZGVWYWx1ZXx8ci5jaGF0TW9kZXx8ImRlZmF1bHQiKSxuPXIuc2Vzc2lvbkNyZWF0ZUtpbmR8fCJzdHJ1Y3R1cmVkIixpPXIuc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlPT09ITA7cmV0dXJuJzxzZWN0aW9uIGlkPSJzZXNzaW9uLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCBzZXNzaW9uLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU2NUIwXHU1QkY5XHU4QkREPC9oMj48cCBjbGFzcz0ibW9kYWwtc3VidGl0bGUiPlx1NTQyRlx1NTJBOCBDbGF1ZGUgXHU2MjE2IENvZGV4IFx1NEYxQVx1OEJERFx1RkYwQ1x1OTAwOVx1NjJFOSBwcm92aWRlclx1MzAwMVx1NEYxQVx1OEJERFx1N0M3Qlx1NTc4Qlx1MzAwMVx1NkEyMVx1NUYwRlx1NTQ4Q1x1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NVx1MzAwMjwvcD48L2Rpdj48YnV0dG9uIGlkPSJjbG9zZS1tb2RhbC1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCI+UHJvdmlkZXI8L2xhYmVsPjxkaXYgaWQ9InByb3ZpZGVyLWNhcmRzIiBjbGFzcz0ibW9kZS1jYXJkcyI+JytRYyhlKSsnPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiPlx1NEYxQVx1OEJERFx1N0M3Qlx1NTc4QjwvbGFiZWw+PGRpdiBpZD0ic2Vzc2lvbi1raW5kLWNhcmRzIiBjbGFzcz0ibW9kZS1jYXJkcyI+JyskYyhuKSsnPC9kaXY+PGRpdiBjbGFzcz0iZmllbGQtaGludCBzZXNzaW9uLWtpbmQtaGludC1yb3ciPjxzcGFuIGlkPSJzZXNzaW9uLWtpbmQtZGVzY3JpcHRpb24iPicrcChzcyhuKSkrJzwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCI+XHU2QTIxXHU1RjBGPC9sYWJlbD48ZGl2IGlkPSJtb2RlLWNhcmRzIiBjbGFzcz0ibW9kZS1jYXJkcyI+JytZYyh0KSsnPC9kaXY+PHAgaWQ9Im1vZGUtZGVzY3JpcHRpb24iIGNsYXNzPSJmaWVsZC1oaW50Ij4nK3AocmwoZSx0KSkrJzwvcD48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjd2QiPlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvbGFiZWw+PGRpdiBjbGFzcz0ic3VnZ2VzdGlvbnMtd3JhcCI+PGlucHV0IGlkPSJjd2QiIHR5cGU9InRleHQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgYXV0b2NvbXBsZXRlPSJvZmYiIHBsYWNlaG9sZGVyPSInK3AodHQoKSkrJyIgLz48ZGl2IGlkPSJjd2Qtc3VnZ2VzdGlvbnMiIGNsYXNzPSJzdWdnZXN0aW9ucyBoaWRkZW4iPjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJmaWVsZC1oaW50Ij5cdTc1NTlcdTdBN0FcdTUyMTlcdTRGN0ZcdTc1MjhcdTRFMEFcdTY1QjlcdTc2RUVcdTVGNTVcdUZGMENcdTY1MkZcdTYzMDFcdThERUZcdTVGODRcdTgxRUFcdTUyQThcdTg4NjVcdTUxNjhcdTMwMDI8L3A+PGRpdiBpZD0icmVjZW50LXBhdGhzLWJ1YmJsZXMiIGNsYXNzPSJyZWNlbnQtcGF0aHMtYnViYmxlcyI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtZm9vdGVyIj48YnV0dG9uIGlkPSJydW4tYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayI+XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREPC9idXR0b24+PHAgaWQ9Im1vZGFsLWVycm9yIiBjbGFzcz0iZXJyb3ItbWVzc2FnZSBoaWRkZW4iPjwvcD48L2Rpdj48L2Rpdj48L3NlY3Rpb24+J31mdW5jdGlvbiBvcygpe3ZhciBlPURhdGUubm93KCktODY0ZTUsdD1bXTtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKCFuLmFyY2hpdmVkKXt2YXIgaT1uLnN0YXJ0ZWRBdD9uZXcgRGF0ZShuLnN0YXJ0ZWRBdCkuZ2V0VGltZSgpOjA7dC5wdXNoKHtraW5kOiJzZXNzaW9uIixyZWY6bix0OmlzRmluaXRlKGkpP2k6MH0pfX0pLHIuY2xhdWRlSGlzdG9yeUxvYWRlZCYmTm4oKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKG4udGltZXN0YW1wKXt2YXIgaT1uZXcgRGF0ZShuLnRpbWVzdGFtcCkuZ2V0VGltZSgpOyFpc0Zpbml0ZShpKXx8aTw9ZXx8dC5wdXNoKHtraW5kOiJoaXN0b3J5IixyZWY6bix0Oml9KX19KSx0LnNvcnQoZnVuY3Rpb24obixpKXtyZXR1cm4gaS50LW4udH0pLHR9ZnVuY3Rpb24gWmMoKXt2YXIgZT1yLnNlc3Npb25zLmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5hcmNoaXZlZH0pLHQ9W107dC5wdXNoKGxzKCkpO3ZhciBuPW9zKCksaT1hZCgpO3JldHVybiBuLmxlbmd0aD4wJiZ0LnB1c2gocmQobikpLGUubGVuZ3RoPjAmJnQucHVzaChuZChlKSksbi5sZW5ndGg9PT0wJiZlLmxlbmd0aD09PTAmJiFpP2xzKCkrJzxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlIj48c3Ryb25nPlx1OEZEOFx1NkNBMVx1NjcwOVx1NEYxQVx1OEJERFx1OEJCMFx1NUY1NTwvc3Ryb25nPjxicj5cdTcwQjlcdTUxRkJcdTRFMEFcdTY1QjlcdTMwMENcdTY1QjBcdTVCRjlcdThCRERcdTMwMERcdTVGMDBcdTU5Q0JcdTRGNjBcdTc2ODRcdTdCMkNcdTRFMDBcdTZCMjFcdTVCRjlcdThCRERcdTMwMDI8L2Rpdj4nOihpJiZ0LnB1c2goaSksdC5qb2luKCIiKSl9ZnVuY3Rpb24gZWQoKXtyZXR1cm4hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWR9ZnVuY3Rpb24gdGQoKXt2YXIgZT1vcygpLHQ9ZS5tYXAoZnVuY3Rpb24oaSxhKXt2YXIgdT1hKzE7aWYoaS5raW5kPT09InNlc3Npb24iKXt2YXIgcz1pLnJlZixvPXMuaWQ9PT1yLnNlbGVjdGVkSWQ/IiBhY3RpdmUiOiIiLGw9cy50aXRsZXx8cy5kZXNjcmlwdGlvbnx8cy5zdW1tYXJ5fHxzLmNvbW1hbmR8fCJcdTRGMUFcdThCREQgIit1O3JldHVybic8YnV0dG9uIGNsYXNzPSJzaWRlYmFyLWNvbGxhcHNlZC10aWxlJytvKyciIHR5cGU9ImJ1dHRvbiIgZGF0YS1jb2xsYXBzZWQtc2Vzc2lvbi1pZD0iJytwKHMuaWQpKyciIHRpdGxlPSInK3AobCkrJyI+Jyt1KyI8L2J1dHRvbj4ifXZhciBjPWkucmVmLGY9Yy5maXJzdFVzZXJNZXNzYWdlfHwiKFx1N0E3QVx1NEYxQVx1OEJERCkiLGQ9ZisiIFx4QjcgIittcyhjLnRpbWVzdGFtcCk7cmV0dXJuJzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUgaGlzdG9yeSIgdHlwZT0iYnV0dG9uIiBkYXRhLWNvbGxhcHNlZC1oaXN0b3J5LWlkPSInK3AoYy5jbGF1ZGVTZXNzaW9uSWQpKyciIGRhdGEtY3dkPSInK3AoYy5jd2R8fCIiKSsnIiB0aXRsZT0iJytwKGQpKyciPicrdSsiPC9idXR0b24+In0pLmpvaW4oIiIpLG49JzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUgYWRkIiB0eXBlPSJidXR0b24iIGRhdGEtY29sbGFwc2VkLW5ldy1zZXNzaW9uPSIxIiB0aXRsZT0iXHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREIiBhcmlhLWxhYmVsPSJcdTY1QjBcdTVFRkFcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE4IiBoZWlnaHQ9IjE4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjEyIiB5MT0iNSIgeDI9IjEyIiB5Mj0iMTkiLz48bGluZSB4MT0iNSIgeTE9IjEyIiB4Mj0iMTkiIHkyPSIxMiIvPjwvc3ZnPjwvYnV0dG9uPic7cmV0dXJuJzxkaXYgY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGVzIj4nK3QrbisiPC9kaXY+In1mdW5jdGlvbiBpYSgpe3JldHVybiBlZCgpP3RkKCk6WmMoKX1mdW5jdGlvbiBscygpe2lmKCFyLnNlc3Npb25zTWFuYWdlTW9kZSlyZXR1cm4nPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtYmFyIj48c3BhbiBjbGFzcz0ic2lkZWJhci1pbnRybyI+XHU2NzAwXHU4RkQxXHU3Njg0XHU0RjFBXHU4QkREXHU4QkIwXHU1RjU1PC9zcGFuPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXhzIHNlc3Npb24tbWFuYWdlLXRvZ2dsZSIgZGF0YS1hY3Rpb249InRvZ2dsZS1tYW5hZ2UtbW9kZSIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik05IDExbDMgM0wyMiA0Ii8+PHBhdGggZD0iTTIxIDEydjdhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDExIi8+PC9zdmc+PHNwYW4+XHU3QkExXHU3NDA2PC9zcGFuPjwvYnV0dG9uPjwvZGl2Pic7dmFyIGU9Y3MoKS5sZW5ndGgsdD1kcygpLmxlbmd0aCxuPWUrdCxpPW4+MCxhPW9kKCksdT1hPjAmJm4+PWEscz11PyJcdTUzRDZcdTZEODhcdTUxNjhcdTkwMDkiOiJcdTUxNjhcdTkwMDkiLG89dT8iY2xlYXItc2VsZWN0aW9uIjoic2VsZWN0LWFsbC12aXNpYmxlIixsPWE9PT0wPyIgZGlzYWJsZWQiOiIiLGM9JzxidXR0b24gY2xhc3M9InNlc3Npb24tbWFuYWdlLWV4aXQiIGRhdGEtYWN0aW9uPSJ0b2dnbGUtbWFuYWdlLW1vZGUiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU5MDAwXHU1MUZBXHU3QkExXHU3NDA2XHU2QTIxXHU1RjBGIiB0aXRsZT0iXHU5MDAwXHU1MUZBXHU3QkExXHU3NDA2XHU2QTIxXHU1RjBGIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+JyxmPWk/JzxzcGFuIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1jb3VudCI+JytuKyc8L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tbWFuYWdlLXN1bW1hcnktbGFiZWwiPlx1NURGMlx1OTAwOVx1NjJFOTwvc3Bhbj4nOic8c3BhbiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2Utc3VtbWFyeS1sYWJlbCBtdXRlZCI+XHU5MDA5XHU2MkU5XHU4OTgxXHU3QkExXHU3NDA2XHU3Njg0XHU5ODc5XHU3NkVFPC9zcGFuPic7cmV0dXJuJzxkaXYgY2xhc3M9InNlc3Npb24tbWFuYWdlLWJhciBhY3RpdmUiPicrYysnPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2Utc3VtbWFyeSI+JytmKyc8L2Rpdj48ZGl2IGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1hY3Rpb25zIj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi14cyIgZGF0YS1hY3Rpb249IicrbysnIiB0eXBlPSJidXR0b24iJytsKyI+IitzKyc8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRhbmdlciBidG4teHMiIGRhdGEtYWN0aW9uPSJkZWxldGUtc2VsZWN0ZWQiIHR5cGU9ImJ1dHRvbiInKyhpPyIiOiIgZGlzYWJsZWQiKSsiPlx1NTIyMFx1OTY2NCIrKGk/IiAiK246IiIpKyI8L2J1dHRvbj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIE1nKGUsdCxuKXtyZXR1cm4nPHNlY3Rpb24gY2xhc3M9InNlc3Npb24tZ3JvdXAiPjxkaXYgY2xhc3M9InNlc3Npb24tZ3JvdXAtdGl0bGUiPicrcChlKSsiPC9kaXY+Iit0Lm1hcChmdW5jdGlvbihpKXtyZXR1cm4gcmEoaSxuKX0pLmpvaW4oIiIpKyI8L3NlY3Rpb24+In1mdW5jdGlvbiBuZChlKXt2YXIgdD0hIXIuYXJjaGl2ZWRFeHBhbmRlZCxuPXQ/IiYjOTY2MjsiOiImIzk2NTY7IixpPSc8ZGl2IGNsYXNzPSJzZXNzaW9uLWdyb3VwLXRpdGxlIGNsYXVkZS1oaXN0b3J5LXRvZ2dsZSIgZGF0YS1hY3Rpb249InRvZ2dsZS1hcmNoaXZlZC1ncm91cCI+PHNwYW4gY2xhc3M9ImNoZXZyb24iPicrbisnPC9zcGFuPiBcdTVERjJcdTVGNTJcdTY4NjMgPHNwYW4gY2xhc3M9Imhpc3RvcnktY291bnQiPicrZS5sZW5ndGgrIjwvc3Bhbj48L2Rpdj4iO2lmKCF0KXJldHVybic8c2VjdGlvbiBjbGFzcz0ic2Vzc2lvbi1ncm91cCI+JytpKyI8L3NlY3Rpb24+Ijt2YXIgYT1lLm1hcChmdW5jdGlvbih1KXtyZXR1cm4gcmEodSwic2Vzc2lvbnMiKX0pLmpvaW4oIiIpO3JldHVybic8c2VjdGlvbiBjbGFzcz0ic2Vzc2lvbi1ncm91cCI+JytpK2ErIjwvc2VjdGlvbj4ifWZ1bmN0aW9uIHJkKGUpe3ZhciB0PSc8c2VjdGlvbiBjbGFzcz0ic2Vzc2lvbi1ncm91cCBzZXNzaW9uLWdyb3VwLS1yZWNlbnQiPic7cmV0dXJuIHQrPWUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLmtpbmQ9PT0ic2Vzc2lvbiI/cmEobi5yZWYsInNlc3Npb25zIik6YWEobi5yZWYsImhpc3RvcnkiKX0pLmpvaW4oIiIpLHQrPSI8L3NlY3Rpb24+Iix0fWZ1bmN0aW9uIGlkKCl7dmFyIGU9RGF0ZS5ub3coKS04NjRlNTtyZXR1cm4gTm4oKS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIXQudGltZXN0YW1wfHxuZXcgRGF0ZSh0LnRpbWVzdGFtcCkuZ2V0VGltZSgpPD1lfSl9ZnVuY3Rpb24gYWQoKXt2YXIgZT1pZCgpLHQ9ISFyLmNsYXVkZUhpc3RvcnlMb2FkZWQsbj1oZCgpLGk9ISFyLmNvZGV4SGlzdG9yeUxvYWRlZCxhPXQmJmksdT0odD9lLmxlbmd0aDowKSsoaT9uLmxlbmd0aDowKTtpZihhJiZ1PT09MClyZXR1cm4iIjt2YXIgcz0hIXIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkLG89cz8iJiM5NjYyOyI6IiYjOTY1NjsiLGw9YT91Pjk5OT8iOTk5KyI6U3RyaW5nKHUpOiJceEI3XHhCN1x4QjciLGM9JzxkaXYgY2xhc3M9InNlc3Npb24tZ3JvdXAtdGl0bGUgY2xhdWRlLWhpc3RvcnktdG9nZ2xlIHNlc3Npb24taGlzdG9yeS10b2dnbGUiIGlkPSJjbGF1ZGUtaGlzdG9yeS10b2dnbGUiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGFyaWEtZXhwYW5kZWQ9IicrcysnIiB0aXRsZT0iJysocz8iXHU2NTM2XHU4RDc3XHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIjoiXHU1QzU1XHU1RjAwXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIikrJyI+PHNwYW4gY2xhc3M9ImNoZXZyb24iPicrbysnPC9zcGFuPiBcdTUzODZcdTUzRjJcdTRGMUFcdThCREQgPHNwYW4gY2xhc3M9Imhpc3RvcnktY291bnQnKyhhPyIiOiIgbG9hZGluZyIpKyciPicrbCsiPC9zcGFuPjwvZGl2PiIsZj1zPyc8ZGl2IGNsYXNzPSJzZXNzaW9uLWhpc3RvcnktYm9keSI+Jyt1ZChlKStwZChuKSsiPC9kaXY+IjoiIjtyZXR1cm4nPHNlY3Rpb24gY2xhc3M9InNlc3Npb24tZ3JvdXAgc2Vzc2lvbi1ncm91cC0taGlzdG9yeSI+JytjK2YrIjwvc2VjdGlvbj4ifWZ1bmN0aW9uIHVkKGUpe2lmKCFyLmNsYXVkZUhpc3RvcnlMb2FkZWQpcmV0dXJuJzxkaXYgY2xhc3M9ImNsYXVkZS1oaXN0b3J5LWxvYWRpbmciPlx1NjI2Qlx1NjNDRlx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1NEUyRFx1MjAyNjwvZGl2Pic7aWYoZS5sZW5ndGg9PT0wKXJldHVybiIiO3ZhciB0PXt9LG49W107ZS5mb3JFYWNoKGZ1bmN0aW9uKHUpe3RbdS5jd2RdfHwodFt1LmN3ZF09W10sbi5wdXNoKHUuY3dkKSksdFt1LmN3ZF0ucHVzaCh1KX0pO3ZhciBpPSc8ZGl2IGNsYXNzPSJzaWRlYmFyLWhpc3RvcnktdG9vbGJhciI+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4teHMgc2lkZWJhci1oaXN0b3J5LWNsZWFyIiBkYXRhLWFjdGlvbj0iY2xlYXItYWxsLWhpc3RvcnkiIHR5cGU9ImJ1dHRvbiI+XHU2RTA1XHU3QTdBXHU1MTY4XHU5MEU4PC9idXR0b24+PC9kaXY+JyxhPSIiO3JldHVybiBuLmZvckVhY2goZnVuY3Rpb24odSl7dmFyIHM9dS5zcGxpdCgiLyIpLmZpbHRlcihCb29sZWFuKS5zbGljZSgtMykuam9pbigiLyIpLG89ISFyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZERpcnNbdV07YSs9dmQodSxzLHRbdV0ubGVuZ3RoLG8pLG8mJihhKz10W3VdLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gYWEobCwiaGlzdG9yeSIpfSkuam9pbigiIikpfSksaSsnPGRpdiBjbGFzcz0ic2lkZWJhci1oaXN0b3J5LXNjcm9sbCI+JythKyI8L2Rpdj4ifWZ1bmN0aW9uIE5uKCl7dmFyIGU9bmV3IFNldDtyZXR1cm4gci5zZXNzaW9ucy5mb3JFYWNoKGZ1bmN0aW9uKHQpe3QuY2xhdWRlU2Vzc2lvbklkJiZlLmFkZCh0LmNsYXVkZVNlc3Npb25JZCl9KSxyLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmhhc0NvbnZlcnNhdGlvbiYmIXQubWFuYWdlZEJ5V2FuZCYmIWUuaGFzKHQuY2xhdWRlU2Vzc2lvbklkKX0pfWZ1bmN0aW9uIGNzKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRTZXNzaW9uSWRzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFyLnNlbGVjdGVkU2Vzc2lvbklkc1tlXX0pfWZ1bmN0aW9uIGRzKCl7cmV0dXJuIE9iamVjdC5rZXlzKHIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzKS5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuISFyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkc1tlXX0pfWZ1bmN0aW9uIFpyKCl7ci5zZWxlY3RlZFNlc3Npb25JZHM9e30sci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM9e319ZnVuY3Rpb24gc2QoZSl7ci5zZXNzaW9uc01hbmFnZU1vZGU9dHlwZW9mIGU9PSJib29sZWFuIj9lOiFyLnNlc3Npb25zTWFuYWdlTW9kZSxyLnNlc3Npb25zTWFuYWdlTW9kZSYmIXIuY2xhdWRlSGlzdG9yeUxvYWRlZCYmZWkoKS50aGVuKGZlKSxyLnNlc3Npb25zTWFuYWdlTW9kZXx8KFpyKCkseHIoKSksZmUoKX1mdW5jdGlvbiBmcygpe3JldHVybiByLnNlc3Npb25zLnNsaWNlKCl9ZnVuY3Rpb24gb2QoKXtyZXR1cm4gZnMoKS5sZW5ndGgrTm4oKS5sZW5ndGh9ZnVuY3Rpb24gcHMoKXtpZighci5jbGF1ZGVIaXN0b3J5TG9hZGVkKXtlaSgpLnRoZW4ocHMpO3JldHVybn1yLmNsYXVkZUhpc3RvcnlFeHBhbmRlZD0hMDt2YXIgZT17fTtmcygpLmZvckVhY2goZnVuY3Rpb24obil7ZVtuLmlkXT0hMH0pO3ZhciB0PXt9O05uKCkuZm9yRWFjaChmdW5jdGlvbihuKXt0W24uY2xhdWRlU2Vzc2lvbklkXT0hMH0pLHIuc2VsZWN0ZWRTZXNzaW9uSWRzPWUsci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHM9dCxmZSgpfWZ1bmN0aW9uIGxkKCl7WnIoKSxmZSgpfWZ1bmN0aW9uIGZyKGUsdCl7aWYoISghci5zZXNzaW9uc01hbmFnZU1vZGV8fCF0KSl7dmFyIG49ZT09PSJoaXN0b3J5Ij9yLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkczpyLnNlbGVjdGVkU2Vzc2lvbklkcztuW3RdP2RlbGV0ZSBuW3RdOm5bdF09ITAsZmUoKX19ZnVuY3Rpb24gdnMoZSx0LG4pe2lmKCFyLnNlc3Npb25zTWFuYWdlTW9kZSlyZXR1cm4iIjt2YXIgaT1lPT09Imhpc3RvcnkiPyEhci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHNbdF06ISFyLnNlbGVjdGVkU2Vzc2lvbklkc1t0XTtyZXR1cm4nPGxhYmVsIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1jaGVjayI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBkYXRhLWFjdGlvbj0idG9nZ2xlLXNlbGVjdGlvbiIgZGF0YS1raW5kPSInK3AoZSkrJyIgZGF0YS1pZD0iJytwKHQpKyciJysoaT8iIGNoZWNrZWQiOiIiKSsnIGFyaWEtbGFiZWw9IicrcChuKSsnIj48c3Bhbj48L3NwYW4+PC9sYWJlbD4nfWZ1bmN0aW9uIGtuKGUsdCl7cmV0dXJuIHR5cGVvZiB3aW5kb3cud2FuZENvbmZpcm09PSJmdW5jdGlvbiI/d2luZG93LndhbmRDb25maXJtKGUsT2JqZWN0LmFzc2lnbih7dHlwZToiZGFuZ2VyIixkYW5nZXI6ITAsb2tMYWJlbDoiXHU1MjIwXHU5NjY0In0sdHx8e30pKTpQcm9taXNlLnJlc29sdmUod2luZG93LmNvbmZpcm0oZSkpfWZ1bmN0aW9uIGNkKCl7dmFyIGU9Y3MoKSx0PWRzKCksbj1lLmxlbmd0aCt0Lmxlbmd0aDtuJiZrbigiXHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5ICIrbisiIFx1OTg3OVx1NTQxN1x1RkYxRlx1NkI2NFx1NjRDRFx1NEY1Q1x1NjVFMFx1NkNENVx1NjRBNFx1OTUwMFx1MzAwMiIse3RpdGxlOiJcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDkgIituKyIgXHU5ODc5In0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaSl7dmFyIGE9W107ZS5sZW5ndGg+MCYmYS5wdXNoKGZldGNoKCIvYXBpL3Nlc3Npb25zL2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3Nlc3Npb25JZHM6ZX0pfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5qc29uKCl9KSksdC5sZW5ndGg+MCYmYS5wdXNoKGZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5L2JhdGNoLWRlbGV0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2NsYXVkZVNlc3Npb25JZHM6dH0pfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5qc29uKCl9KSksUHJvbWlzZS5hbGwoYSkudGhlbihmdW5jdGlvbigpe3JldHVybiBlLmluZGV4T2Yoci5zZWxlY3RlZElkKSE9PS0xJiYoci5zZWxlY3RlZElkPW51bGwsd2UoKSksci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHQuaW5kZXhPZih1LmNsYXVkZVNlc3Npb25JZCk9PT0tMX0pLFpyKCksanQoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO0hlKHUsIlx1NjVFMFx1NkNENVx1NjI3OVx1OTFDRlx1NTIyMFx1OTY2NFx1NjI0MFx1OTAwOVx1OTg3OVx1NzZFRVx1MzAwMiIpfSl9fSl9ZnVuY3Rpb24gZGQoKXt2YXIgZT1EYXRlLm5vdygpLTg2NGU1LHQ9Tm4oKS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIW4udGltZXN0YW1wfHxuZXcgRGF0ZShuLnRpbWVzdGFtcCkuZ2V0VGltZSgpPD1lfSk7aWYodC5sZW5ndGgpcmV0dXJuIGtuKCJcdTc4NkVcdThCQTRcdTZFMDVcdTdBN0FcdTVGNTNcdTUyNERcdTY2M0VcdTc5M0FcdTc2ODQgIit0Lmxlbmd0aCsiIFx1Njc2MSBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1NkUwNVx1N0E3QSBDbGF1ZGUgXHU1Mzg2XHU1M0YyIixva0xhYmVsOiJcdTZFMDVcdTdBN0EifSkudGhlbihmdW5jdGlvbihuKXtpZihuKXt2YXIgaT10Lm1hcChmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWR9KTtyZXR1cm4gZmV0Y2goIi9hcGkvY2xhdWRlLWhpc3RvcnkvYmF0Y2gtZGVsZXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7Y2xhdWRlU2Vzc2lvbklkczppfSl9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoYSYmYS5lcnJvcil0aHJvdyBuZXcgRXJyb3IoYS5lcnJvcik7ci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIGkuaW5kZXhPZih1LmNsYXVkZVNlc3Npb25JZCk9PT0tMX0pLFpyKCksZmUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO0hlKGEsIlx1NjVFMFx1NkNENVx1NkUwNVx1N0E3QVx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1MzAwMiIpfSl9fSl9ZnVuY3Rpb24gZmQoZSx0LG4saSl7dmFyIGE9aT8iXHUyNUJFIjoiXHUyNUI4IjtyZXR1cm4nPGRpdiBjbGFzcz0iY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWhlYWRlciBjb2RleC1oaXN0b3J5LWRpcmVjdG9yeS1oZWFkZXIiIGRhdGEtYWN0aW9uPSJ0b2dnbGUtY29kZXgtaGlzdG9yeS1kaXJlY3RvcnkiIGRhdGEtY3dkPSInK3AoZSkrJyIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1ncm91cC10aXRsZSBjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktdGl0bGUiPjxzcGFuIGNsYXNzPSJjaGV2cm9uIj4nK2ErJzwvc3Bhbj48c3BhbiBjbGFzcz0iY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWxhYmVsIj4nK3AodCkrIiAoIituKyIpPC9zcGFuPjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gcGQoZSl7aWYoIXIuY29kZXhIaXN0b3J5TG9hZGVkKXJldHVybic8ZGl2IGNsYXNzPSJjbGF1ZGUtaGlzdG9yeS1sb2FkaW5nIj5cdTYyNkJcdTYzQ0YgQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHU0RTJEXHUyMDI2PC9kaXY+JztpZihlLmxlbmd0aD09PTApcmV0dXJuIiI7dmFyIHQ9e30sbj1bXTtlLmZvckVhY2goZnVuY3Rpb24oYSl7dFthLmN3ZF18fCh0W2EuY3dkXT1bXSxuLnB1c2goYS5jd2QpKSx0W2EuY3dkXS5wdXNoKGEpfSk7dmFyIGk9JzxkaXYgY2xhc3M9InNpZGViYXItaGlzdG9yeS1zZWN0aW9uLWxhYmVsIj5Db2RleDwvZGl2Pic7cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbihhKXt2YXIgdT1hLnNwbGl0KCIvIikuZmlsdGVyKEJvb2xlYW4pLnNsaWNlKC0zKS5qb2luKCIvIikscz0hIXIuY29kZXhIaXN0b3J5RXhwYW5kZWREaXJzW2FdO2krPWZkKGEsdSx0W2FdLmxlbmd0aCxzKSxzJiYoaSs9dFthXS5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIGFhKG8sImNvZGV4Iil9KS5qb2luKCIiKSl9KSwnPGRpdiBjbGFzcz0ic2lkZWJhci1oaXN0b3J5LXNjcm9sbCBjb2RleC1oaXN0b3J5LXNjcm9sbCI+JytpKyI8L2Rpdj4ifWZ1bmN0aW9uIHZkKGUsdCxuLGkpe3ZhciBhPWk/IiYjOTY2MjsiOiImIzk2NTY7IjtyZXR1cm4nPGRpdiBjbGFzcz0iY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWhlYWRlciIgZGF0YS1hY3Rpb249InRvZ2dsZS1oaXN0b3J5LWRpcmVjdG9yeSIgZGF0YS1jd2Q9IicrcChlKSsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj48ZGl2IGNsYXNzPSJzZXNzaW9uLWdyb3VwLXRpdGxlIGNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS10aXRsZSI+PHNwYW4gY2xhc3M9ImNoZXZyb24iPicrYSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktbGFiZWwiPicrcCh0KSsiICgiK24rJyk8L3NwYW4+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1kYW5nZXIgYnRuLXhzIGNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS1jbGVhci1idG4iIGRhdGEtYWN0aW9uPSJkZWxldGUtaGlzdG9yeS1kaXJlY3RvcnkiIGRhdGEtY3dkPSInK3AoZSkrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTZFMDVcdTdBN0FcdTZCNjRcdTc2RUVcdTVGNTVcdTc2ODRcdTUzODZcdTUzRjJcdTRGMUFcdThCREQiIHRpdGxlPSJcdTZFMDVcdTdBN0FcdTZCNjRcdTc2RUVcdTVGNTVcdTc2ODRcdTUzODZcdTUzRjJcdTRGMUFcdThCREQiPlx1NkUwNVx1N0E3QVx1NkI2NFx1NzZFRVx1NUY1NTwvYnV0dG9uPjwvZGl2PjwvZGl2Pid9ZnVuY3Rpb24gYWEoZSx0KXt2YXIgbj10PT09ImNvZGV4IixpPW4/InJlc3VtZS1jb2RleC1oaXN0b3J5IjoicmVzdW1lLWhpc3RvcnkiLGE9bj8iZGVsZXRlLWNvZGV4LWhpc3RvcnkiOiJkZWxldGUtaGlzdG9yeSIsdT1uP3Iuc2VsZWN0ZWRDb2RleEhpc3RvcnlJZHM6ci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHMscz1lLmNsYXVkZVNlc3Npb25JZC5zbGljZSgwLDgpLG89ZS5maXJzdFVzZXJNZXNzYWdlfHwiKFx1N0E3QVx1NEYxQVx1OEJERCkiLGw9bXMoZS50aW1lc3RhbXApLGM9dnModCxlLmNsYXVkZVNlc3Npb25JZCwiXHU5MDA5XHU2MkU5XHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREICIrbyksZj1yLnNlc3Npb25zTWFuYWdlTW9kZT8iIjonPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIGRlbGV0ZS1idG4iIGRhdGEtYWN0aW9uPSInK2ErJyIgZGF0YS1jbGF1ZGUtc2Vzc2lvbi1pZD0iJytlLmNsYXVkZVNlc3Npb25JZCsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCIgdGl0bGU9Ilx1OTY5MFx1ODVDRlx1NkI2NFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERCI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz48L2J1dHRvbj4nLGQ9ci5zZXNzaW9uc01hbmFnZU1vZGU/IiI6JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biIgZGF0YS1hY3Rpb249IicraSsnIiBkYXRhLWNsYXVkZS1zZXNzaW9uLWlkPSInK2UuY2xhdWRlU2Vzc2lvbklkKyciIGRhdGEtY3dkPSInK3AoZS5jd2QpKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU2MDYyXHU1OTBEXHU0RjFBXHU4QkREIiB0aXRsZT0iJysobj8iXHU2MDYyXHU1OTBEXHU2QjY0IENvZGV4IFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERCI6Ilx1NjA2Mlx1NTkwRFx1NkI2NCBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIikrJyI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMSA0djZoNiIvPjxwYXRoIGQ9Ik0zLjUxIDE1YTkgOSAwIDEwNS42NC0xMS4zNkwzIDEwIi8+PC9zdmc+PC9idXR0b24+JztyZXR1cm4nPGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtIGNsYXVkZS1oaXN0b3J5LWl0ZW0nKyhyLnNlc3Npb25zTWFuYWdlTW9kZSYmdVtlLmNsYXVkZVNlc3Npb25JZF0/IiBzZWxlY3RlZCI6IiIpKyciIGRhdGEtY2xhdWRlLWhpc3RvcnktaWQ9IicrZS5jbGF1ZGVTZXNzaW9uSWQrJyIgZGF0YS1jd2Q9IicrcChlLmN3ZCkrJyIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtLWNvbnRlbnQiPjxkaXYgY2xhc3M9InNlc3Npb24taXRlbS1yb3ciPicrYysnPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYWluIj48ZGl2IGNsYXNzPSJzZXNzaW9uLWNvbW1hbmQgY2xhdWRlLWhpc3RvcnktcHJldmlldyI+JytwKG8pKyc8L2Rpdj48ZGl2IGNsYXNzPSJzZXNzaW9uLW1ldGEiPjxzcGFuIGNsYXNzPSJzZXNzaW9uLWlkIiB0aXRsZT0iJytwKGUuY2xhdWRlU2Vzc2lvbklkKSsnIj4nK3AocykrIjwvc3Bhbj48c3Bhbj4iK3AobCkrJzwvc3Bhbj48L2Rpdj48L2Rpdj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb25zIj4nK2QrZisiPC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gbXMoZSl7aWYoIWUpcmV0dXJuIiI7dHJ5e3ZhciB0PW5ldyBEYXRlKGUpLG49bmV3IERhdGUsaT1uLXQsYT1NYXRoLmZsb29yKGkvNmU0KTtpZihhPDEpcmV0dXJuIlx1NTIxQVx1NTIxQSI7aWYoYTw2MClyZXR1cm4gYSsiIFx1NTIwNlx1OTQ5Rlx1NTI0RCI7dmFyIHU9TWF0aC5mbG9vcihhLzYwKTtpZih1PDI0KXJldHVybiB1KyIgXHU1QzBGXHU2NUY2XHU1MjREIjt2YXIgcz1NYXRoLmZsb29yKHUvMjQpO3JldHVybiBzPDMwP3MrIiBcdTU5MjlcdTUyNEQiOnQudG9Mb2NhbGVEYXRlU3RyaW5nKCl9Y2F0Y2h7cmV0dXJuIiJ9fWZ1bmN0aW9uIGdzKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NsYXVkZS1oaXN0b3J5Iix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUub2s/ZS5qc29uKCk6W119KS50aGVuKGZ1bmN0aW9uKGUpe3IuY2xhdWRlSGlzdG9yeT1lfHxbXSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQ9ITAsZmUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ci5jbGF1ZGVIaXN0b3J5TG9hZGVkPSEwLHIuY2xhdWRlSGlzdG9yeT1bXSxmZSgpfSl9dmFyIFJuPW51bGw7ZnVuY3Rpb24gZWkoKXtyZXR1cm4gZ2QoKSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQ/UHJvbWlzZS5yZXNvbHZlKCk6Um58fChSbj1ncygpLnRoZW4oZnVuY3Rpb24oKXtSbj1udWxsfSxmdW5jdGlvbigpe1JuPW51bGx9KSxSbil9ZnVuY3Rpb24gbWQoKXtyZXR1cm4gZmV0Y2goIi9hcGkvY29kZXgtaGlzdG9yeSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLm9rP2UuanNvbigpOltdfSkudGhlbihmdW5jdGlvbihlKXtyLmNvZGV4SGlzdG9yeT1lfHxbXSxyLmNvZGV4SGlzdG9yeUxvYWRlZD0hMCxmZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtyLmNvZGV4SGlzdG9yeUxvYWRlZD0hMCxyLmNvZGV4SGlzdG9yeT1bXSxmZSgpfSl9dmFyIGpuPW51bGw7ZnVuY3Rpb24gZ2QoKXtyZXR1cm4gci5jb2RleEhpc3RvcnlMb2FkZWQ/UHJvbWlzZS5yZXNvbHZlKCk6am58fChqbj1tZCgpLnRoZW4oZnVuY3Rpb24oKXtqbj1udWxsfSxmdW5jdGlvbigpe2puPW51bGx9KSxqbil9ZnVuY3Rpb24gaGQoKXt2YXIgZT1uZXcgU2V0O3JldHVybiByLnNlc3Npb25zLmZvckVhY2goZnVuY3Rpb24odCl7dC5jbGF1ZGVTZXNzaW9uSWQmJmUuYWRkKHQuY2xhdWRlU2Vzc2lvbklkKX0pLHIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4gdC5oYXNDb252ZXJzYXRpb24mJiF0Lm1hbmFnZWRCeVdhbmQmJiFlLmhhcyh0LmNsYXVkZVNlc3Npb25JZCl9KX1mdW5jdGlvbiBocygpe0NzKCksIXRpKCkmJihyLnBvbGxUaW1lcj1zZXRJbnRlcnZhbChqdCwxNjAwKSl9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2Vzc2lvbi10aW1lIik7ZS5sZW5ndGg+MCYmdXUoKX0sM2U0KTtmdW5jdGlvbiB1YSgpe3Iud3NSZWNvbm5lY3RUaW1lciYmKGNsZWFyVGltZW91dChyLndzUmVjb25uZWN0VGltZXIpLHIud3NSZWNvbm5lY3RUaW1lcj1udWxsKX12YXIgeWQ9MWU0LGJkPTRlNDtmdW5jdGlvbiBFZCgpe3lzKCksci53c0hlYXJ0YmVhdENoZWNrVGltZXI9c2V0SW50ZXJ2YWwoYnMseWQpfWZ1bmN0aW9uIHlzKCl7ci53c0hlYXJ0YmVhdENoZWNrVGltZXImJihjbGVhckludGVydmFsKHIud3NIZWFydGJlYXRDaGVja1RpbWVyKSxyLndzSGVhcnRiZWF0Q2hlY2tUaW1lcj1udWxsKX1mdW5jdGlvbiBicygpe2lmKCEoIXIud3N8fHIud3MucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOKSYmci5sYXN0V3NNZXNzYWdlQXQpe3ZhciBlPURhdGUubm93KCktci5sYXN0V3NNZXNzYWdlQXQ7ZT5iZCYmc2EoImhlYXJ0YmVhdC1zdGFsZS0iK01hdGgucm91bmQoZS8xZTMpKyJzIil9fWZ1bmN0aW9uIHNhKGUpe2lmKHVhKCksci53cyl7dmFyIHQ9ci53czt0cnl7dC5vbmNsb3NlPW51bGx9Y2F0Y2h7fXRyeXt0Lm9uZXJyb3I9bnVsbH1jYXRjaHt9dHJ5e3Qub25tZXNzYWdlPW51bGx9Y2F0Y2h7fXRyeXt0LmNsb3NlKCl9Y2F0Y2h7fXIud3M9bnVsbH1yLndzQ29ubmVjdGVkPSExLHIud3NSZWNvbm5lY3RBdHRlbXB0cz0wLHRpKGUpfWZ1bmN0aW9uIEVzKCl7aWYoIXIud3NSZWNvbm5lY3RUaW1lciYmIWRvY3VtZW50LmhpZGRlbil7dmFyIGU9ci53c1JlY29ubmVjdEF0dGVtcHRzfHwwLHQ9WzUwMCwxZTMsMmUzLDRlMyw4ZTNdLG49dFtlPHQubGVuZ3RoP2U6dC5sZW5ndGgtMV07ci53c1JlY29ubmVjdEF0dGVtcHRzPWUrMSxyLndzUmVjb25uZWN0VGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3Iud3NSZWNvbm5lY3RUaW1lcj1udWxsLHIuY29uZmlnJiYhci53cyYmIWRvY3VtZW50LmhpZGRlbiYmdGkoImJhY2tvZmYiKX0sbil9fWZ1bmN0aW9uIHRpKGUpe2lmKCF3aW5kb3cuV2ViU29ja2V0KXJldHVybiExO2lmKHIud3Mpe3RyeXtyLndzLmNsb3NlKCl9Y2F0Y2h7fXIud3M9bnVsbH12YXIgdD13aW5kb3cubG9jYXRpb24ucHJvdG9jb2w9PT0iaHR0cHM6Ij8id3NzOiI6IndzOiIsbj10KyIvLyIrd2luZG93LmxvY2F0aW9uLmhvc3QrIi93cyI7dHJ5e3ZhciBpPW5ldyBXZWJTb2NrZXQobik7cmV0dXJuIGkub25vcGVuPWZ1bmN0aW9uKCl7ci53cz1pLHIud3NDb25uZWN0ZWQ9ITAsci5sYXN0V3NNZXNzYWdlQXQ9RGF0ZS5ub3coKSxyLndzUmVjb25uZWN0QXR0ZW1wdHM9MCx1YSgpLHIubGFzdFNlcUJ5U2Vzc2lvbj17fSxFZCgpLExuKHIuc2VsZWN0ZWRJZCksVnAoKSx5cigid3MtcmVjb25uZWN0Iil9LGkub25tZXNzYWdlPWZ1bmN0aW9uKGEpe3IubGFzdFdzTWVzc2FnZUF0PURhdGUubm93KCk7dHJ5e3ZhciB1PUpTT04ucGFyc2UoYS5kYXRhKTtpZih1JiZ1LnR5cGU9PT0icGluZyIpe2lmKHIud3MmJnIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOKXRyeXtyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InBvbmciLHQ6dS50fSkpfWNhdGNoe31yZXR1cm59aWYodSYmdS50eXBlPT09InJlc3luY19yZXF1aXJlZCImJnUuc2Vzc2lvbklkKXtpZihyLndzJiZyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTil0cnl7ci53cy5zZW5kKEpTT04uc3RyaW5naWZ5KHt0eXBlOiJyZXN5bmMiLHNlc3Npb25JZDp1LnNlc3Npb25JZH0pKX1jYXRjaHt9ci5sYXN0U2VxQnlTZXNzaW9ufHwoci5sYXN0U2VxQnlTZXNzaW9uPXt9KSxyLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPTA7cmV0dXJufWlmKHUmJih1LnR5cGU9PT0iaW5pdCJ8fHUudHlwZT09PSJvdXRwdXQiKSYmdS5zZXNzaW9uSWQmJnR5cGVvZiB1LnNlcT09Im51bWJlciIpe3IubGFzdFNlcUJ5U2Vzc2lvbnx8KHIubGFzdFNlcUJ5U2Vzc2lvbj17fSk7dmFyIHM9ci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXXx8MDtpZih1LnR5cGU9PT0iaW5pdCIpci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT11LnNlcTtlbHNlIGlmKHUuc2VxPT09cysxKXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09dS5zZXE7ZWxzZSBpZih1LnNlcT5zKzEmJnM+MCl7aWYoci53cyYmci53cy5yZWFkeVN0YXRlPT09V2ViU29ja2V0Lk9QRU4pdHJ5e3Iud3Muc2VuZChKU09OLnN0cmluZ2lmeSh7dHlwZToicmVzeW5jIixzZXNzaW9uSWQ6dS5zZXNzaW9uSWR9KSl9Y2F0Y2h7fXIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09MDtyZXR1cm59ZWxzZXtpZih1LnNlcTxzKXJldHVybjtyLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPXUuc2VxfX1GZCh1KX1jYXRjaHt9fSxpLm9uY2xvc2U9ZnVuY3Rpb24oKXtyLndzPW51bGwsci53c0Nvbm5lY3RlZD0hMSx5cygpLEVzKCl9LGkub25lcnJvcj1mdW5jdGlvbigpe2kuY2xvc2UoKX0sITB9Y2F0Y2h7cmV0dXJuIEVzKCksITF9fWZ1bmN0aW9uIEZkKGUpe3N3aXRjaChlLnR5cGUpe2Nhc2Uib3V0cHV0IjppZihlLmRhdGEmJmUuc2Vzc2lvbklkJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJpc1Jlc3BvbmRpbmciKSYmKHIuX2xhc3RJc1Jlc3BvbmRpbmd8fChyLl9sYXN0SXNSZXNwb25kaW5nPXt9KSxyLl9sYXN0SXNSZXNwb25kaW5nW2Uuc2Vzc2lvbklkXT0hIWUuZGF0YS5pc1Jlc3BvbmRpbmcpLGUuZGF0YSYmZS5zZXNzaW9uSWQpe3ZhciB0PSEhZS5kYXRhLmluY3JlbWVudGFsLG49e2lkOmUuc2Vzc2lvbklkfSxpPSExO2lmKCF0JiZlLmRhdGEub3V0cHV0IT09dm9pZCAwJiYobi5vdXRwdXQ9ZS5kYXRhLm91dHB1dCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwicGVybWlzc2lvbkJsb2NrZWQiKSYmKG4ucGVybWlzc2lvbkJsb2NrZWQ9ISFlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInF1ZXVlZE1lc3NhZ2VzIikmJihuLnF1ZXVlZE1lc3NhZ2VzPWUuZGF0YS5xdWV1ZWRNZXNzYWdlc3x8W10sci5xdWV1ZUVwb2NoKyspLGUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUmJihuLnN0cnVjdHVyZWRTdGF0ZT1lLmRhdGEuc3RydWN0dXJlZFN0YXRlKSxlLmRhdGEuc2Vzc2lvbktpbmQmJihuLnNlc3Npb25LaW5kPWUuZGF0YS5zZXNzaW9uS2luZCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwidGl0bGUiKSYmKG4udGl0bGU9ZS5kYXRhLnRpdGxlLGk9ITApLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsImRlc2NyaXB0aW9uIikmJihuLmRlc2NyaXB0aW9uPWUuZGF0YS5kZXNjcmlwdGlvbixpPSEwKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJzdW1tYXJ5IikmJihuLnN1bW1hcnk9ZS5kYXRhLnN1bW1hcnkpLGUuZGF0YS5tZXNzYWdlcyluLm1lc3NhZ2VzPWUuZGF0YS5tZXNzYWdlcyx0eXBlb2YgZS5kYXRhLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiYobi5tZXNzYWdlT2Zmc2V0PWUuZGF0YS5tZXNzYWdlT2Zmc2V0KSx0eXBlb2YgZS5kYXRhLm1lc3NhZ2VUb3RhbD09Im51bWJlciImJihuLm1lc3NhZ2VUb3RhbD1lLmRhdGEubWVzc2FnZVRvdGFsKTtlbHNlIGlmKHQmJmUuZGF0YS5sYXN0TWVzc2FnZSl7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKE0pe3JldHVybiBNLmlkPT09ZS5zZXNzaW9uSWR9KTtpZihhKXt2YXIgdT1BcnJheS5pc0FycmF5KGEubWVzc2FnZXMpP2EubWVzc2FnZXMuc2xpY2UoKTpbXSxzPWUuZGF0YS5tZXNzYWdlQ291bnR8fDAsbz10eXBlb2YgYS5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIj9hLm1lc3NhZ2VPZmZzZXQ6MCxsPXUubGVuZ3RoPjA/dVt1Lmxlbmd0aC0xXTpudWxsLGM9ZS5kYXRhLmxhc3RNZXNzYWdlO2wmJmMucm9sZSYmbC5yb2xlPT09Yy5yb2xlP3VbdS5sZW5ndGgtMV09bXAobCxjKTpvK3UubGVuZ3RoPHMmJnUucHVzaChjKSxuLm1lc3NhZ2VzPXUscz4wJiYobi5tZXNzYWdlVG90YWw9cyl9fXZhciBmPXQmJmUuZGF0YS5jaHVuayYmIWUuZGF0YS5sYXN0TWVzc2FnZSYmIW4ubWVzc2FnZXMmJm4ub3V0cHV0PT09dm9pZCAwJiYhZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSYmIWUuZGF0YS5zZXNzaW9uS2luZDtpZihmKXtpZihlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQhPT12b2lkIDApe3ZhciBkPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihNKXtyZXR1cm4gTS5pZD09PWUuc2Vzc2lvbklkfSk7ZCYmISFkLnBlcm1pc3Npb25CbG9ja2VkIT0hIWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCYmKCQobiksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJlp0KCkpfX1lbHNlIGlmKChuLm91dHB1dCE9PXZvaWQgMHx8bi5tZXNzYWdlc3x8dHx8ZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkIT09dm9pZCAwfHxuLnRpdGxlfHxuLmRlc2NyaXB0aW9uKSYmKCQobiksaSYmdXUoKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCkpe3ZhciB2PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihNKXtyZXR1cm4gTS5pZD09PWUuc2Vzc2lvbklkfSl8fG47ci5jdXJyZW50TWVzc2FnZXM9emUodixydCh2LHYub3V0cHV0LCExKSksWnQoKSx2LnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQifHxlLmRhdGEuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCI/cHIoKTpvYSgpfX1lLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmci50ZXJtaW5hbCYmZS5kYXRhJiYoZS5kYXRhLmNodW5rJiZEcChlLnNlc3Npb25JZCk/KHIubGFzdENodW5rQXQ9RGF0ZS5ub3coKSxyLnRlcm1pbmFsTGl2ZVN0cmVhbVNlc3Npb25zW2Uuc2Vzc2lvbklkXT0hMCxVbihyLnRlcm1pbmFsLGUuZGF0YS5jaHVuayksci50ZXJtaW5hbFNlc3Npb25JZD1lLnNlc3Npb25JZCxlLmRhdGEub3V0cHV0PyhyLnRlcm1pbmFsT3V0cHV0PVJzKFFhKGUuZGF0YS5vdXRwdXQpKSxyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTApOnIudGVybWluYWxPdXRwdXQ9UnMoKHIudGVybWluYWxPdXRwdXR8fCIiKStRYShlLmRhdGEuY2h1bmspKSxFdCgib3V0cHV0IiksZHQoKSk6IWUuZGF0YS5pbmNyZW1lbnRhbCYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwib3V0cHV0IikmJnNpKGUuc2Vzc2lvbklkLGUuZGF0YS5vdXRwdXR8fCIiLHttb2RlOiJhcHBlbmQifSkpO2JyZWFrO2Nhc2Uic3RhcnRlZCI6bW4oKTticmVhaztjYXNlImVuZGVkIjp7dmFyIGg9ZS5kYXRhJiZlLmRhdGEuc3RhdHVzP2UuZGF0YS5zdGF0dXM6ImV4aXRlZCIsZz1lLmRhdGEmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInBlcm1pc3Npb25CbG9ja2VkIik/ISFlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQ6ITEsbT17aWQ6ZS5zZXNzaW9uSWQsc3RhdHVzOmgscGVybWlzc2lvbkJsb2NrZWQ6Z307ZS5kYXRhJiZlLmRhdGEubWVzc2FnZXMmJihtLm1lc3NhZ2VzPWUuZGF0YS5tZXNzYWdlcyx0eXBlb2YgZS5kYXRhLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiYobS5tZXNzYWdlT2Zmc2V0PWUuZGF0YS5tZXNzYWdlT2Zmc2V0KSx0eXBlb2YgZS5kYXRhLm1lc3NhZ2VUb3RhbD09Im51bWJlciImJihtLm1lc3NhZ2VUb3RhbD1lLmRhdGEubWVzc2FnZVRvdGFsKSksZS5kYXRhJiZlLmRhdGEuc3RydWN0dXJlZFN0YXRlJiYobS5zdHJ1Y3R1cmVkU3RhdGU9ZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSksZS5kYXRhJiZlLmRhdGEucXVldWVkTWVzc2FnZXMmJihtLnF1ZXVlZE1lc3NhZ2VzPWUuZGF0YS5xdWV1ZWRNZXNzYWdlcyksJChtKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKEpuKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSxvYSghMCkpO3ZhciB5PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihNKXtyZXR1cm4gTS5pZD09PWUuc2Vzc2lvbklkfSksdz1lLmRhdGEmJmUuZGF0YS5leGl0Q29kZSxFPXchPW51bGwmJnchPT0wLEI9eSYmeS5zdW1tYXJ5fHwiIixGPXk/S2MoeSk6IiIseD1FPyJcdTRFRkJcdTUyQTFcdTVGMDJcdTVFMzhcdTdFRDNcdTY3NUYiOiJcdTRFRkJcdTUyQTFcdTVERjJcdTVCOENcdTYyMTAiLFM9IiI7Qj8oUz1CLEYmJiFFJiYoUys9YApgK0YpKTpTPXkmJnkuY29tbWFuZHx8ZS5zZXNzaW9uSWQsS24oRT8iZXJyb3IiOiJzdWNjZXNzIiksT2YoZS5zZXNzaW9uSWQseCxTKSxKcyhlLnNlc3Npb25JZCksd2EoKSwoZS5zZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWR8fGRvY3VtZW50LmhpZGRlbikmJkVhKHt0aXRsZTp4LGJvZHk6Uyx0eXBlOkU/Indhcm5pbmciOiJzdWNjZXNzIixpY29uOkU/IiEiOiJcdTI3MTMiLGR1cmF0aW9uOjZlMyxhY3Rpb25MYWJlbDoiXHU2N0U1XHU3NzBCIixhY3Rpb246ZnVuY3Rpb24oKXt6dChlLnNlc3Npb25JZCl9fSksci5tZXNzYWdlUXVldWU9W10sci5wZW5kaW5nTWVzc2FnZXM9W107dmFyIF89ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKE0pe3JldHVybiBNLmlkPT09ZS5zZXNzaW9uSWR9KSxLPWUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkP3Iuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihNKXtyZXR1cm4gTS5pZD09PXIuc2VsZWN0ZWRJZH0pOm51bGwsWT0hIShfJiZfLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQifHxLJiZLLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiKTtZJiZlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZD8oc28oKSxTdShlLnNlc3Npb25JZCkpOll8fChyLnN0cnVjdHVyZWRJbnB1dFF1ZXVlPVtdLFN1KHIuc2VsZWN0ZWRJZCksZG4oKSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihZfHxUbighMSksci5jdXJyZW50VGFzaz1udWxsLFp0KCkpLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiZMcigpLG1uKCkudGhlbihmdW5jdGlvbigpe3BpKCl9KSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKFl8fGduKGUuc2Vzc2lvbklkKSk7YnJlYWt9Y2FzZSJpbml0IjppZihlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmZS5kYXRhKXtyLmNoYXRSZW5kZXJUaW1lciYmKGNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksci5jaGF0UmVuZGVyVGltZXI9bnVsbCksJChlLmRhdGEpO3ZhciBJPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihNKXtyZXR1cm4gTS5pZD09PWUuc2Vzc2lvbklkfSk7ci5jdXJyZW50TWVzc2FnZXM9emUoSXx8ZS5kYXRhLHJ0KEl8fGUuZGF0YSxlLmRhdGEub3V0cHV0LCExKSkscHIoITApLFp0KCksRnMoKTt2YXIgRD1lLmRhdGEub3V0cHV0fHwiIixMPXIudGVybWluYWxTZXNzaW9uSWQ9PT1lLnNlc3Npb25JZCxQPXIudGVybWluYWxPdXRwdXR8fCIiLHo9TCYmUC5sZW5ndGg+MCYmRC5sZW5ndGg+PVAubGVuZ3RoJiZELnN0YXJ0c1dpdGgoUCk7RGQoRCxlLnNlc3Npb25JZCx6PyJhcHBlbmQiOiJyZXBsYWNlIikseXIoImluaXQiKX1icmVhaztjYXNlInVzYWdlIjpicmVhaztjYXNlInRhc2siOmUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYoci5jdXJyZW50VGFzaz1lLmRhdGF8fG51bGwsWnQoKSksUGYoZS5zZXNzaW9uSWQsZS5kYXRhfHxudWxsKSxDYShlLnNlc3Npb25JZCksdXUoKTticmVhaztjYXNlInN0YXR1cyI6aWYoZS5zZXNzaW9uSWQmJmUuZGF0YSl7dmFyIFU9e2lkOmUuc2Vzc2lvbklkfTtpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJzdGF0dXMiKSYmKFUuc3RhdHVzPWUuZGF0YS5zdGF0dXMpLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsImV4aXRDb2RlIikmJihVLmV4aXRDb2RlPWUuZGF0YS5leGl0Q29kZSksZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSlVLnN0cnVjdHVyZWRTdGF0ZT1lLmRhdGEuc3RydWN0dXJlZFN0YXRlO2Vsc2UgaWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwic3RhdHVzIikpe3ZhciBhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihOKXtyZXR1cm4gTi5pZD09PWUuc2Vzc2lvbklkfSk7YSYmYS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIiYmKFUuc3RydWN0dXJlZFN0YXRlPU9iamVjdC5hc3NpZ24oe30sYS5zdHJ1Y3R1cmVkU3RhdGV8fHt9LHtpbkZsaWdodDplLmRhdGEuc3RhdHVzPT09InJ1bm5pbmcifSkpfWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInF1ZXVlZE1lc3NhZ2VzIikmJihVLnF1ZXVlZE1lc3NhZ2VzPWUuZGF0YS5xdWV1ZWRNZXNzYWdlc3x8W10sci5xdWV1ZUVwb2NoKyspLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInBlcm1pc3Npb25CbG9ja2VkIikmJihVLnBlcm1pc3Npb25CbG9ja2VkPSEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkKSxlLmRhdGEucGVybWlzc2lvblJlcXVlc3Qpe1UucGVuZGluZ0VzY2FsYXRpb249e3Njb3BlOmUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC5zY29wZSx0YXJnZXQ6ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnRhcmdldCxyZWFzb246ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnByb21wdH07dmFyIGVlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihNKXtyZXR1cm4gTS5pZD09PWUuc2Vzc2lvbklkfSksdGU9ZWUmJihlZS5zdW1tYXJ5fHxlZS5jb21tYW5kKXx8ZS5zZXNzaW9uSWQsYWU9ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnByb21wdHx8Ilx1OTcwMFx1ODk4MVx1Njc0M1x1OTY1MFx1NUJBMVx1NjI3OSIsdWU9ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnRhcmdldCxUPXRlO3VlP1QrPWAKYCthZSsiIFx4QjcgIit1ZTpUKz1gCmArYWUsS24oIm1lZGl1bSIpLHFmKGUuc2Vzc2lvbklkLFQpLGUuc2Vzc2lvbklkIT09ci5zZWxlY3RlZElkJiZFYSh7dGl0bGU6Ilx1OTcwMFx1ODk4MVx1NEY2MFx1NzY4NFx1NjM4OFx1Njc0MyIsYm9keTpULHR5cGU6Indhcm5pbmciLGljb246IiEiLGR1cmF0aW9uOjAsYWN0aW9uTGFiZWw6Ilx1NTNCQlx1NTkwNFx1NzQwNiIsYWN0aW9uOmZ1bmN0aW9uKCl7enQoZS5zZXNzaW9uSWQpfX0pfWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZD09PSExJiYoVS5wZW5kaW5nRXNjYWxhdGlvbj1udWxsKSxlLmRhdGEuYXBwcm92YWxTdGF0cyYmKFUuYXBwcm92YWxTdGF0cz1lLmRhdGEuYXBwcm92YWxTdGF0cyksJChVKSxDYShlLnNlc3Npb25JZCksd2EoKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKFp0KCksZS5kYXRhLmFwcHJvdmFsU3RhdHMmJkZzKCksVS5zdHJ1Y3R1cmVkU3RhdGUmJihVLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodHx8KEpuKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSxzbygpKSxvYSgpKSl9YnJlYWs7Y2FzZSJub3RpZmljYXRpb24iOmUuZGF0YSYmKGUuZGF0YS5raW5kPT09InVwZGF0ZSI/VnMoZS5kYXRhLmN1cnJlbnR8fCItIixlLmRhdGEubGF0ZXN0fHwiLSIpOmUuZGF0YS5raW5kPT09ImF1dG8tdXBkYXRlLXN0YXJ0Ij9XZihlLmRhdGEuY3VycmVudHx8Ii0iLGUuZGF0YS5sYXRlc3R8fCItIik6KGUuZGF0YS5raW5kPT09ImF1dG8tdXBkYXRlLXJlc3RhcnQifHxlLmRhdGEua2luZD09PSJyZXN0YXJ0IikmJmNuKCkpO2JyZWFrfX1mdW5jdGlvbiBadCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjdXJyZW50LXRhc2siKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwZXJtaXNzaW9uLWFjdGlvbnMiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiKTtpZihlKXt2YXIgaT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odil7cmV0dXJuIHYuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpJiZpLnByb3ZpZGVyPT09ImNvZGV4IiYmKHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKSk7dmFyIGE9aSYmaS5wZW5kaW5nRXNjYWxhdGlvbj9pLnBlbmRpbmdFc2NhbGF0aW9uOm51bGwsdT1pJiZpLnByb3ZpZGVyIT09ImNvZGV4Ij9hfHxpLnBlcm1pc3Npb25CbG9ja2VkOiExO2lmKHUpe3ZhciBzPWkmJmkuYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztpZihuKWlmKHMpbi50ZXh0Q29udGVudD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU0RTJELi4uIjtlbHNlIGlmKGEpe3ZhciBvPWEucmVhc29ufHwiXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIixsPWEudGFyZ2V0PyIgXHhCNyAiK2EudGFyZ2V0OiIiO24udGV4dENvbnRlbnQ9bytsfWVsc2Ugbi50ZXh0Q29udGVudD0iXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIjtpZih0KXt0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiksZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO2MmJmMuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhIXMpLGYmJmYuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhIXMpfWUudGV4dENvbnRlbnQ9IiIsZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLmNsYXNzTGlzdC5yZW1vdmUoInBlcm1pc3Npb24tYmxvY2tlZCIpO3JldHVybn1lLmNsYXNzTGlzdC5yZW1vdmUoInBlcm1pc3Npb24tYmxvY2tlZCIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGQ9ci5jdXJyZW50VGFzaztkJiZkLnRpdGxlPyhlLnRleHRDb250ZW50PWQudGl0bGUsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk6KGUudGV4dENvbnRlbnQ9IiIsZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSl9fWZ1bmN0aW9uIEZzKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmFsLXN0YXRzIik7aWYoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LmFwcHJvdmFsU3RhdHM7aWYoIW58fG4udG90YWw9PT0wKXtlLmNsYXNzTmFtZT0iYXBwcm92YWwtc3RhdHMgaGlkZGVuIixlLmlubmVySFRNTD0iIjtyZXR1cm59ZS5jbGFzc05hbWU9ImFwcHJvdmFsLXN0YXRzIixlLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWRpdmlkZXIiPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIGlkPSJhcHByb3ZhbC1zdGF0cy1iYWRnZSIgdGl0bGU9Ilx1NjcyQ1x1NkIyMVx1NEYxQVx1OEJERFx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMSI+PHN2ZyBjbGFzcz0iYXBwcm92YWwtc3RhdHMtaWNvbiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy10b3RhbCI+JytuLnRvdGFsKyc8L3NwYW4+PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCIgaWQ9ImFwcHJvdmFsLXN0YXRzLXBvcHVwIj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1N0VERlx1OEJBMTwvc3Bhbj4nKyhuLmNvbW1hbmQ+MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1YoInRlcm1pbmFsIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQ3RFx1NEVFNFx1NjI2N1x1ODg0Qzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24uY29tbWFuZCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsobi5maWxlPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJlZGl0Iix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NjU4N1x1NEVGNlx1NTE5OVx1NTE2NTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24uZmlsZSsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsobi50b29sPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJ3cmVuY2giLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuOH0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1sYWJlbCI+XHU1MTc2XHU0RUQ2XHU1REU1XHU1MTc3PC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctY291bnQiPicrbi50b29sKyI8L3NwYW4+PC9zcGFuPiI6IiIpKyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93IGFwcHJvdmFsLXN0YXRzLXJvdy10b3RhbCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1pY29uIj4nK1YoInNpZ21hIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTQwOFx1OEJBMTwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24udG90YWwrIjwvc3Bhbj48L3NwYW4+PC9zcGFuPiI7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIuYXBwcm92YWwtc3RhdHMtYmFkZ2UiKTtpJiYoaS5jbGFzc0xpc3QucmVtb3ZlKCJhcHByb3ZhbC1zdGF0cy1wdWxzZSIpLGkub2Zmc2V0V2lkdGgsaS5jbGFzc0xpc3QuYWRkKCJhcHByb3ZhbC1zdGF0cy1wdWxzZSIpKX19ZnVuY3Rpb24gd2QoKXtpZihLbigibGlnaHQiKSwhIXIuc2VsZWN0ZWRJZCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmUtcGVybWlzc2lvbi1idG4iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7ZSYmKGUuZGlzYWJsZWQ9ITApLHQmJih0LmRpc2FibGVkPSEwKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvYXBwcm92ZS1wZXJtaXNzaW9uIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3Ipe2sobi5lcnJvciwiZXJyb3IiKTtyZXR1cm59JChuKSxadCgpfSkuY2F0Y2goZnVuY3Rpb24obil7ayhuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYyNzlcdTUxQzZcdTYzODhcdTY3NDNcdTMwMDIiLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe2UmJihlLmRpc2FibGVkPSExKSx0JiYodC5kaXNhYmxlZD0hMSl9KX19ZnVuY3Rpb24gQ2QoKXtpZihLbigibGlnaHQiKSwhIXIuc2VsZWN0ZWRJZCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcHJvdmUtcGVybWlzc2lvbi1idG4iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7ZSYmKGUuZGlzYWJsZWQ9ITApLHQmJih0LmRpc2FibGVkPSEwKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvZGVueS1wZXJtaXNzaW9uIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3Ipe2sobi5lcnJvciwiZXJyb3IiKTtyZXR1cm59JChuKSxadCgpfSkuY2F0Y2goZnVuY3Rpb24obil7ayhuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYyRDJcdTdFRERcdTYzODhcdTY3NDNcdTMwMDIiLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe2UmJihlLmRpc2FibGVkPSExKSx0JiYodC5kaXNhYmxlZD0hMSl9KX19ZnVuY3Rpb24gQmQoKXtpZihyLnNlbGVjdGVkSWQpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKGUmJmUucHJvdmlkZXI9PT0iY29kZXgiKXtrKCJDb2RleCBcdTRGMUFcdThCRERcdTU2RkFcdTVCOUFcdTRFRTUgZnVsbC1hY2Nlc3MgUFRZIFx1NTQyRlx1NTJBOFx1RkYwQ1x1NEUwRFx1NjUyRlx1NjMwMVx1NTIwN1x1NjM2Mlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1MzAwMiIsImluZm8iKTtyZXR1cm59dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tYXBwcm92ZS10b2dnbGUiKTt0JiYodC5zdHlsZS5vcGFjaXR5PSIwLjUiKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvdG9nZ2xlLWF1dG8tYXBwcm92ZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXtrKG4uZXJyb3IsImVycm9yIik7cmV0dXJufSQobiksd3MoKTt2YXIgaT1uLmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7ayhpPyJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTVGMDBcdTU0MkYiOiJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQiLCJpbmZvIil9KS5jYXRjaChmdW5jdGlvbihuKXtrKG4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTIwN1x1NjM2Mlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1MzAwMiIsImVycm9yIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dCYmKHQuc3R5bGUub3BhY2l0eT0iIil9KX19ZnVuY3Rpb24gd3MoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by1hcHByb3ZlLXRvZ2dsZSIpLHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoZmwodCkpe2UmJmUucGFyZW50Tm9kZSYmZS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGUpO3JldHVybn1pZihlKXt2YXIgbj0iY29tcG9zZXItcGlsbCBjb21wb3Nlci1waWxsLWNoaXAgYXV0by1hcHByb3ZlLWluZGljYXRvciIsaT10JiZ0LmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7aT8oZS5jbGFzc05hbWU9bisiIGFjdGl2ZSIsZS50aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4IFx1MjAxNCBcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiLGUuc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLCJ0cnVlIiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTU0MkZcdTc1MjhcdUZGMENcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiKSxlLmlubmVySFRNTD1WKCJzaGllbGRDaGVjayIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS43LGNsczoiY29tcG9zZXItcGlsbC1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItcGlsbC1sYWJlbCI+XHU4MUVBXHU1MkE4PC9zcGFuPicpOihlLmNsYXNzTmFtZT1uLGUudGl0bGU9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTE3M1x1OTVFRCBcdTIwMTQgXHU3MEI5XHU1MUZCXHU1RjAwXHU1NDJGIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsIlx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTE3M1x1OTVFRFx1RkYwQ1x1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiIpLGUuaW5uZXJIVE1MPVYoInNoaWVsZCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS43LGNsczoiY29tcG9zZXItcGlsbC1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItcGlsbC1sYWJlbCI+XHU2MjRCXHU1MkE4PC9zcGFuPicpfX1mdW5jdGlvbiBEZChlLHQsbil7cmV0dXJuIHIudGVybWluYWw/c2kodHx8ci5zZWxlY3RlZElkLGUse21vZGU6bnx8ImFwcGVuZCJ9KTohMX1mdW5jdGlvbiBDcygpe3IucG9sbFRpbWVyJiYoY2xlYXJJbnRlcnZhbChyLnBvbGxUaW1lciksci5wb2xsVGltZXI9bnVsbCl9ZnVuY3Rpb24gUGcoZSl7ci5jdXJyZW50Vmlldz1lfHwidGVybWluYWwiLHIuY3VycmVudFZpZXchPT0idGVybWluYWwiJiYoVG4oITEpLGdvKCkpLFBpKCksTWEoKTt2YXIgdD1OdCgpO3QmJihyLmN1cnJlbnRNZXNzYWdlcz16ZSh0LHJ0KHQsdC5vdXRwdXQsITApKSksZHQoKSxyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmKEh0KCEwKSxyLnRlcm1pbmFsJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKX0pKX1mdW5jdGlvbiBwcihlKXtyLnJlbmRlclBlbmRpbmcmJiFlfHwoci5yZW5kZXJQZW5kaW5nPSEwLGU/KEZpKCEwKSxyLnJlbmRlclBlbmRpbmc9ITEpOnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe0ZpKCExKSxyLnJlbmRlclBlbmRpbmc9ITF9KSl9ci5jaGF0UmVuZGVyVGltZXI9bnVsbDtmdW5jdGlvbiBvYShlKXtpZighKHIuY2hhdFJlbmRlclRpbWVyJiYhZSkpe2lmKHIuY2hhdFJlbmRlclRpbWVyJiZjbGVhclRpbWVvdXQoci5jaGF0UmVuZGVyVGltZXIpLGUpe3IuY2hhdFJlbmRlclRpbWVyPW51bGwscHIoKTtyZXR1cm59dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LnN0YXR1cz09PSJydW5uaW5nIiYmdC5zZXNzaW9uS2luZCE9PSJzdHJ1Y3R1cmVkIixpPW4/X3M6TnM7ci5jaGF0UmVuZGVyVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2hhdFJlbmRlclRpbWVyPW51bGw7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHUpe3JldHVybiB1LmlkPT09ci5zZWxlY3RlZElkfSk7YSYmKHIuY3VycmVudE1lc3NhZ2VzPXplKGEscnQoYSxhLm91dHB1dCwhMCkpKSxwcigpfSxpKX19dmFyIGxhPTAsbmk9MCxCcz0wLHZyPTA7ZnVuY3Rpb24gY2EoKXtyZXR1cm4gd2luZG93Ll9fd2FuZElvc05hdGl2ZT09PSEwfWZ1bmN0aW9uIERzKGUpe0JzPU1hdGgubWF4KEJzLERhdGUubm93KCkrKGV8fDE4MDApKX1mdW5jdGlvbiBrcyhlLHQpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgbj1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3JpKG4pJiZuIT09dHx8RHMoZSl9LDMwKX1mdW5jdGlvbiBrZChlKXtyZXR1cm4gTWF0aC5tYXgod2luZG93LmlubmVySGVpZ2h0fHwwLGUmJmUuaGVpZ2h0fHwwLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodHx8MCxkb2N1bWVudC5ib2R5JiZkb2N1bWVudC5ib2R5LmNsaWVudEhlaWdodHx8MCl9ZnVuY3Rpb24gQWQoZSl7dmFyIHQ9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LG49TWF0aC5tYXgod2luZG93LmlubmVyV2lkdGh8fDAsZSYmZS53aWR0aHx8MCx0JiZ0LmNsaWVudFdpZHRofHwwKSxpPWtkKGUpO3JldHVybiFsYXx8TWF0aC5hYnMobi1sYSk+OD8obGE9bixuaT1pKTppPm5pJiYobmk9aSksTWF0aC5tYXgoMSxNYXRoLnJvdW5kKG5pfHxpfHwxKSl9ZnVuY3Rpb24geGQoZSx0LG4saSl7cmV0dXJuIGV8fCFjYSgpPyExOnQ+MHx8aT5uKzF9ZnVuY3Rpb24gV24oZSl7dmFyIHQ9d2luZG93LnZpc3VhbFZpZXdwb3J0O2lmKHQpe3ZhciBuPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtpZihuLmNsYXNzTGlzdC50b2dnbGUoImlzLWtleWJvYXJkLW9wZW4iLCEhZSksd2luZG93Ll9fd2FuZEltZU5hdGl2ZSl7bi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtdG9wIiwiMHB4Iiksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtaGVpZ2h0IixNYXRoLnJvdW5kKHQuaGVpZ2h0KSsicHgiKTtyZXR1cm59dmFyIGk9QWQodCksYT1NYXRoLm1heCgwLE1hdGgucm91bmQodC5vZmZzZXRUb3B8fDApKSx1PU1hdGgubWF4KDEsTWF0aC5yb3VuZCh0LmhlaWdodCkpOyghZSYmY2EoKXx8eGQoZSxhLHUsaSkpJiYoYT0wLHU9TWF0aC5tYXgodSxpKSksbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1hcHAtdmlld3BvcnQtdG9wIixhKyJweCIpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LWhlaWdodCIsdSsicHgiKSwoZXx8KHdpbmRvdy5zY3JvbGxZfHwwKT4wKSYmX2EoKX19ZnVuY3Rpb24gcmkoZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ZS50YWdOYW1lO2lmKHQ9PT0iVEVYVEFSRUEifHx0PT09IlNFTEVDVCIpcmV0dXJuITA7aWYodD09PSJJTlBVVCIpe3ZhciBuPShlLmdldEF0dHJpYnV0ZSgidHlwZSIpfHwidGV4dCIpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIS9eKGJ1dHRvbnxjaGVja2JveHxjb2xvcnxmaWxlfGhpZGRlbnxpbWFnZXxyYWRpb3xyYW5nZXxyZXNldHxzdWJtaXQpJC9pLnRlc3Qobil9cmV0dXJuISFlLmlzQ29udGVudEVkaXRhYmxlfWZ1bmN0aW9uIFNkKCl7aWYoISgidmlzdWFsVmlld3BvcnQiaW4gd2luZG93KXx8d2luZG93Ll9fd2FuZFZpZXdwb3J0SGFuZGxlcnNCb3VuZClyZXR1cm47d2luZG93Ll9fd2FuZFZpZXdwb3J0SGFuZGxlcnNCb3VuZD0hMDt2YXIgZT13aW5kb3cudmlzdWFsVmlld3BvcnQsdD1lLmhlaWdodCxuPSExLGk9TWF0aC5tYXgod2luZG93LmlubmVyV2lkdGh8fDAsZS53aWR0aHx8MCksYT1NYXRoLm1heCh3aW5kb3cuaW5uZXJIZWlnaHR8fDAsZS5oZWlnaHR8fDApLHU9W107ZnVuY3Rpb24gcygpe3JldHVybiBNYXRoLm1heCh3aW5kb3cuaW5uZXJIZWlnaHR8fDAsZS5oZWlnaHR8fDApfWZ1bmN0aW9uIG8oKXt2YXIgZz1NYXRoLm1heCh3aW5kb3cuaW5uZXJXaWR0aHx8MCxlLndpZHRofHwwKSxtPXMoKTtpZihNYXRoLmFicyhnLWkpPjgpe2k9ZyxhPW07cmV0dXJufW0+YSYmKGE9bSl9ZnVuY3Rpb24gbChnLG0pe3ZhciB5PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsdz15PT09Z3x8cmkoeSksRT1hLWUuaGVpZ2h0LEI9YS0od2luZG93LmlubmVySGVpZ2h0fHxlLmhlaWdodHx8MCksRj1EYXRlLm5vdygpPHZyO3JldHVybiBGPyEhKHcmJihFPjEyMHx8Qj4xMjApKTohIShtPjgwfHx3JiYoRT4xMjB8fEI+MTIwKXx8biYmKEU+ODB8fG0+MzIpKX1mdW5jdGlvbiBjKCl7dS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2NsZWFyVGltZW91dChnKX0pLHU9WzYwLDE4MCwzNjAsNjIwLDkwMF0ubWFwKGZ1bmN0aW9uKGcpe3JldHVybiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7V24obil9LGcpfSl9ZnVuY3Rpb24gZigpe1swLDUwLDEyMCwyMjAsMzYwLDU2MF0uZm9yRWFjaChmdW5jdGlvbihnKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZCgpO3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTttJiZkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09bSYmRWkobSl9LGcpfSl9ZnVuY3Rpb24gZCgpe2lmKGUpe3ZhciBnPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxtPXdpbmRvdy5pbm5lckhlaWdodC1lLmhlaWdodC1lLm9mZnNldFRvcDtvKCk7dmFyIHk9bChnLG0pLHc9TWF0aC5hYnMoZS5oZWlnaHQtdCk+ODtpZihXbih5KSx5JiYoIW58fHcpJiZjdihlLGcpJiZFaShnKSwhbiYmeSl7dmFyIEU9ci50ZXJtaW5hbEF1dG9Gb2xsb3d8fG1hKCk7ZXQoImtleWJvYXJkLW9wZW4iLHtmb3JjZVJlcGxheTohMH0pLHdpbmRvdy5fX3dhbmRJbWVOYXRpdmV8fHNldFRpbWVvdXQoZnVuY3Rpb24oKXtXbighMCl9LDIyMCksYygpLEUmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZFdCgiZm9yY2UiKX0sMjIwKX1pZihuJiYheSl7dmFyIEI9ISF3aW5kb3cuX193YW5kSW1lTmF0aXZlO0J8fChEcygyMjAwKSx2cj1EYXRlLm5vdygpKzEyMDAsV24oITEpLF9hKCkpLGMoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Qnx8KFduKCExKSxfYSgpKSxldCgia2V5Ym9hcmQtY2xvc2UiLHtmb3JjZVJlcGxheTohMH0pLEV0KCJrZXlib2FyZCIpfSwyMDApfXcmJm49PT15JiZldCgidmlld3BvcnQiKSxuPXksdD1lLmhlaWdodH19dmFyIHY9bnVsbDtmdW5jdGlvbiBoKCl7diE9PW51bGwmJmNhbmNlbEFuaW1hdGlvbkZyYW1lKHYpLHY9cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dj1udWxsLGQoKX0pfWUuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixoKSxlLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsaCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsZnVuY3Rpb24oKXtkb2N1bWVudC52aXNpYmlsaXR5U3RhdGU9PT0idmlzaWJsZSImJihoKCksc2V0VGltZW91dChoLDI0MCksc2V0VGltZW91dChoLDcyMCkpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IixmdW5jdGlvbihnKXtnJiZnLnBlcnNpc3RlZCYmKGgoKSxzZXRUaW1lb3V0KGgsMjQwKSl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJmb2N1c291dCIsZnVuY3Rpb24oZyl7IWd8fCFnLnRhcmdldHx8cmkoZy50YXJnZXQpJiYoa3MoMTYwMCxnLnRhcmdldCksY2EoKSYmKHZyPU1hdGgubWF4KHZyLERhdGUubm93KCkrMTIwMCkpLHNldFRpbWVvdXQoaCw4MCksc2V0VGltZW91dChoLDQyMCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNpbiIsZnVuY3Rpb24oZyl7IWd8fCFnLnRhcmdldHx8IXJpKGcudGFyZ2V0KXx8ZigpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIndhbmQtaW9zLWltZS1zdGF0ZSIsZnVuY3Rpb24oZyl7dmFyIG09ZyYmZy5kZXRhaWwmJmcuZGV0YWlsLnN0YXRlO209PT0iaGlkZGVuIiYmKHZyPURhdGUubm93KCkrOTAwKSxmKCksYygpfSksZCgpfWZ1bmN0aW9uIElkKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1yZXNpemUtaGFuZGxlIix0LmlubmVySFRNTD0iJiM4OTQyOyIsZS5hcHBlbmRDaGlsZCh0KTt2YXIgbj0hMSxpPTAsYT0wO3QuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbih1KXtuPSEwLGk9dS5jbGllbnRZLGE9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9Im5zLXJlc2l6ZSIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSJub25lIix1LnByZXZlbnREZWZhdWx0KCl9KSxyLnJlc2l6ZU1vdXNlTW92ZT1mdW5jdGlvbih1KXtpZihuKXt2YXIgcz11LmNsaWVudFktaSxvPU1hdGgubWF4KDIwMCxNYXRoLm1pbihhK3Msd2luZG93LmlubmVySGVpZ2h0LTIwMCkpO2Uuc3R5bGUuaGVpZ2h0PW8rInB4IixlLnN0eWxlLmZsZXg9Im5vbmUiLEh0KCl9fSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHIucmVzaXplTW91c2VNb3ZlKSxyLnJlc2l6ZU1vdXNlVXA9ZnVuY3Rpb24oKXtuJiYobj0hMSxkb2N1bWVudC5ib2R5LnN0eWxlLmN1cnNvcj0iIixkb2N1bWVudC5ib2R5LnN0eWxlLnVzZXJTZWxlY3Q9IiIsSHQoKSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHIucmVzaXplTW91c2VVcCksdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbih1KXtuPSEwLGk9dS50b3VjaGVzWzBdLmNsaWVudFksYT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmhlaWdodCx1LnByZXZlbnREZWZhdWx0KCl9LHtwYXNzaXZlOiExfSksci5yZXNpemVUb3VjaE1vdmU9ZnVuY3Rpb24odSl7aWYobil7dmFyIHM9dS50b3VjaGVzWzBdLmNsaWVudFktaSxvPU1hdGgubWF4KDIwMCxNYXRoLm1pbihhK3Msd2luZG93LmlubmVySGVpZ2h0LTIwMCkpO2Uuc3R5bGUuaGVpZ2h0PW8rInB4IixlLnN0eWxlLmZsZXg9Im5vbmUiLEh0KCksdS5wcmV2ZW50RGVmYXVsdCgpfX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnJlc2l6ZVRvdWNoTW92ZSx7cGFzc2l2ZTohMX0pLHIucmVzaXplVG91Y2hFbmQ9ZnVuY3Rpb24oKXtuJiYobj0hMSxIdCgpKX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLHIucmVzaXplVG91Y2hFbmQpfX1mdW5jdGlvbiBBcygpe3JldHVybiEhTnQoKX1mdW5jdGlvbiBkYShlKXt2YXIgdD1NYXRoLm1heChmbix3aW5kb3cuaW5uZXJXaWR0aC1taS1mbiksbj1NYXRoLm1heChmbix3aW5kb3cuaW5uZXJIZWlnaHQtbWktZm4pO3JldHVybntyaWdodDpNYXRoLm1pbihNYXRoLm1heChmbixlLnJpZ2h0KSx0KSxib3R0b206TWF0aC5taW4oTWF0aC5tYXgoZm4sZS5ib3R0b20pLG4pfX1mdW5jdGlvbiB4cygpe2lmKHIuam95c3RpY2tCYWxsRWwpe3ZhciBlPWRhKHIuam95c3RpY2tQb3N8fHtyaWdodDoxOCxib3R0b206OTZ9KTtyLmpveXN0aWNrQmFsbEVsLnN0eWxlLnJpZ2h0PWUucmlnaHQrInB4IixyLmpveXN0aWNrQmFsbEVsLnN0eWxlLmJvdHRvbT1lLmJvdHRvbSsicHgifX1mdW5jdGlvbiBUZChlLHQpe3ZhciBuPWRhKHtyaWdodDplLGJvdHRvbTp0fSk7ci5qb3lzdGlja1Bvcz1uO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1iYWxsLXBvcyIsSlNPTi5zdHJpbmdpZnkobikpfWNhdGNoe319ZnVuY3Rpb24gTGQoKXtmdW5jdGlvbiBlKHUscyxvKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ3anAta2V5Jysobz8iICIrbzoiIikrJyIgZGF0YS1rZXk9IicrdSsnIj4nK3MrIjwvYnV0dG9uPiJ9dmFyIHQ9JzxkaXYgY2xhc3M9IndqcC1kcGFkIj48ZGl2IGNsYXNzPSJ3anAtZHBhZC1yb3ciPicrZSgidXAiLCJcdTIxOTEiLCJ3anAtZGlyIikrJzwvZGl2PjxkaXYgY2xhc3M9IndqcC1kcGFkLXJvdyI+JytlKCJsZWZ0IiwiXHUyMTkwIiwid2pwLWRpciIpK2UoImRvd24iLCJcdTIxOTMiLCJ3anAtZGlyIikrZSgicmlnaHQiLCJcdTIxOTIiLCJ3anAtZGlyIikrIjwvZGl2PjwvZGl2PiIsbj0iIixpO2ZvcihpPTA7aTxUYS5sZW5ndGg7aSsrKW4rPWUoVGFbaV0ua2V5LFRhW2ldLmxhYmVsLCIiKTt2YXIgYT0nPGRpdiBjbGFzcz0id2pwLWhlYWRlciI+PHNwYW4gY2xhc3M9IndqcC10aXRsZSI+JytWKCJwYXciLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuNixjbHM6IndqcC10aXRsZS1pY29uIn0pKyc8c3Bhbj5cdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0Y8L3NwYW4+PC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0id2pwLWNsb3NlIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RURcdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0YiPicrVigieCIse3NpemU6MTMsc3Ryb2tlV2lkdGg6Mn0pKyI8L2J1dHRvbj48L2Rpdj4iK3QrJzxkaXYgY2xhc3M9IndqcC1ncmlkIHdqcC1mbmtleXMiPicrbisiPC9kaXY+IjtyZXR1cm4gYX1mdW5jdGlvbiBNZCgpe2lmKCFyLmpveXN0aWNrUm9vdEVsKXt2YXIgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtlLmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1yb290IixbInBvaW50ZXJkb3duIiwicG9pbnRlcnVwIiwidG91Y2hzdGFydCIsInRvdWNoZW5kIiwiY2xpY2siXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2UuYWRkRXZlbnRMaXN0ZW5lcihhLFNzLCEwKX0pO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLWJhY2tkcm9wIixlLmFwcGVuZENoaWxkKHQpO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLXBhbmVsIixuLmlubmVySFRNTD1MZCgpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGpkKSxlLmFwcGVuZENoaWxkKG4pO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJ3YW5kLWpveXN0aWNrLWJhbGwiLGkuc2V0QXR0cmlidXRlKCJyb2xlIiwiYnV0dG9uIiksaS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJXYW5kIFx1OTA2NVx1NjNBN1x1OTc2Mlx1Njc3RiIpLGkuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlx1NzBCOVx1NTFGQlx1NjI1M1x1NUYwMFx1OTA2NVx1NjNBN1x1OTc2Mlx1Njc3Rlx1RkYwQ1x1NjJENlx1NTJBOFx1NTNFRlx1NzlGQlx1NTJBOFx1NEY0RFx1N0Y2RSIpLGkuaW5uZXJIVE1MPVYoInBhdyIse3NpemU6MjUsc3Ryb2tlV2lkdGg6MS42LGNsczoid2FuZC1qb3lzdGljay1sb2dvIn0pLGUuYXBwZW5kQ2hpbGQoaSksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKSxyLmpveXN0aWNrUm9vdEVsPWUsci5qb3lzdGlja0JhY2tkcm9wRWw9dCxyLmpveXN0aWNrUGFuZWxFbD1uLHIuam95c3RpY2tCYWxsRWw9aSx4cygpLGkuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLFBkKSxpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLGZ1bmN0aW9uKGEpe3Iuam95c3RpY2tQaW5uZWRPcGVuJiZyLmpveXN0aWNrR2VzdHVyZT09bnVsbCYmKGEucHJldmVudERlZmF1bHQoKSxtcigpKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKSxhLnN0b3BQcm9wYWdhdGlvbigpfSksci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXI9ZnVuY3Rpb24oKXt4cygpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLmpveXN0aWNrUmVzaXplSGFuZGxlciksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLmpveXN0aWNrUmVzaXplSGFuZGxlciksTXMoKX19ZnVuY3Rpb24gU3MoKXtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLW5hdGl2ZS1pbnB1dCIpKXt2YXIgZT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O2lmKGUmJnR5cGVvZiBlLmJsdXI9PSJmdW5jdGlvbiIpdHJ5e2UuYmx1cigpfWNhdGNoe31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZih0JiZ0eXBlb2YgdC5ibHVyPT0iZnVuY3Rpb24iKXRyeXt0LmJsdXIoKX1jYXRjaHt9fSwwKX19ZnVuY3Rpb24gUGQoZSl7aWYoQXMoKSYmISgoZS5wb2ludGVyVHlwZT09PSJtb3VzZSJ8fGUucG9pbnRlclR5cGU9PT0icGVuIikmJmUuYnV0dG9uIT09MCkmJnIuam95c3RpY2tQb2ludGVySWQ9PT1udWxsKXtTcygpLGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB0PWUucG9pbnRlclR5cGU9PT0ibW91c2UifHxlLnBvaW50ZXJUeXBlPT09InBlbiI7ci5qb3lzdGlja1BvaW50ZXJJZD1lLnBvaW50ZXJJZCxyLmpveXN0aWNrUHJlc3NTdGFydD17eDplLmNsaWVudFgseTplLmNsaWVudFksdDpEYXRlLm5vdygpfSxyLmpveXN0aWNrR2VzdHVyZT0icGVuZGluZyI7dHJ5e3Iuam95c3RpY2tCYWxsRWwuc2V0UG9pbnRlckNhcHR1cmUoZS5wb2ludGVySWQpfWNhdGNoe310fHwoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmpveXN0aWNrR2VzdHVyZT09PSJwZW5kaW5nIiYmSXMoKX0seHApKSxyLmpveXN0aWNrTW92ZUhhbmRsZXI9cWQsci5qb3lzdGlja1VwSGFuZGxlcj1PZCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5qb3lzdGlja01vdmVIYW5kbGVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHIuam95c3RpY2tVcEhhbmRsZXIpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHIuam95c3RpY2tVcEhhbmRsZXIpfX1mdW5jdGlvbiBJcygpe3Iuam95c3RpY2tHZXN0dXJlPSJtb3ZlIixyLmpveXN0aWNrUGlubmVkT3BlbiYmbXIoKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpfWZ1bmN0aW9uIFRzKGUsdCl7aWYoci5qb3lzdGlja0JhbGxFbCl7dmFyIG49ZGEoe3JpZ2h0OndpbmRvdy5pbm5lcldpZHRoLWUtbWkvMixib3R0b206d2luZG93LmlubmVySGVpZ2h0LXQtbWkvMn0pO3Iuam95c3RpY2tCYWxsRWwuc3R5bGUucmlnaHQ9bi5yaWdodCsicHgiLHIuam95c3RpY2tCYWxsRWwuc3R5bGUuYm90dG9tPW4uYm90dG9tKyJweCJ9fWZ1bmN0aW9uIHFkKGUpe2lmKCEoZS5wb2ludGVySWQhPT1yLmpveXN0aWNrUG9pbnRlcklkfHwhci5qb3lzdGlja0JhbGxFbCkpe2lmKGUucHJldmVudERlZmF1bHQoKSxyLmpveXN0aWNrR2VzdHVyZT09PSJtb3ZlIil7VHMoZS5jbGllbnRYLGUuY2xpZW50WSk7cmV0dXJufWlmKHIuam95c3RpY2tHZXN0dXJlPT09InBlbmRpbmciKXt2YXIgdD1lLmNsaWVudFgtci5qb3lzdGlja1ByZXNzU3RhcnQueCxuPWUuY2xpZW50WS1yLmpveXN0aWNrUHJlc3NTdGFydC55O01hdGguc3FydCh0KnQrbipuKTw9U3B8fChlLnBvaW50ZXJUeXBlPT09Im1vdXNlInx8ZS5wb2ludGVyVHlwZT09PSJwZW4iPyhJcygpLFRzKGUuY2xpZW50WCxlLmNsaWVudFkpKTooci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpLHIuam95c3RpY2tHZXN0dXJlPSJjYW5jZWxsZWQiKSl9fX1mdW5jdGlvbiBPZChlKXtpZihlLnBvaW50ZXJJZD09PXIuam95c3RpY2tQb2ludGVySWQpe3Iuam95c3RpY2tMb25nUHJlc3NUaW1lciYmKGNsZWFyVGltZW91dChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXIpLHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1udWxsKTt2YXIgdD1yLmpveXN0aWNrR2VzdHVyZTtpZih0PT09InBlbmRpbmciKXt2YXIgbj1lLmNsaWVudFgtci5qb3lzdGlja1ByZXNzU3RhcnQueCxpPWUuY2xpZW50WS1yLmpveXN0aWNrUHJlc3NTdGFydC55O01hdGguc3FydChuKm4raSppKTw9SXAmJk5kKCl9ZWxzZSBpZih0PT09Im1vdmUiKXt2YXIgYT1yLmpveXN0aWNrQmFsbEVsP3Iuam95c3RpY2tCYWxsRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk6bnVsbDthJiZUZCh3aW5kb3cuaW5uZXJXaWR0aC1hLnJpZ2h0LHdpbmRvdy5pbm5lckhlaWdodC1hLmJvdHRvbSl9THMoKX19ZnVuY3Rpb24gTHMoKXtpZihyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXImJihjbGVhclRpbWVvdXQoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyKSxyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXI9bnVsbCksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja1BvaW50ZXJJZCE9PW51bGwpdHJ5e3Iuam95c3RpY2tCYWxsRWwucmVsZWFzZVBvaW50ZXJDYXB0dXJlKHIuam95c3RpY2tQb2ludGVySWQpfWNhdGNoe31yLmpveXN0aWNrTW92ZUhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5qb3lzdGlja01vdmVIYW5kbGVyKSxyLmpveXN0aWNrTW92ZUhhbmRsZXI9bnVsbCksci5qb3lzdGlja1VwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsci5qb3lzdGlja1VwSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsci5qb3lzdGlja1VwSGFuZGxlciksci5qb3lzdGlja1VwSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJiFyLmpveXN0aWNrUGlubmVkT3BlbiYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksci5qb3lzdGlja1BvaW50ZXJJZD1udWxsLHIuam95c3RpY2tHZXN0dXJlPW51bGwsci5qb3lzdGlja1ByZXNzU3RhcnQ9bnVsbH1mdW5jdGlvbiBIZChlKXtpZihlPT09ImN0cmwifHxlPT09ImFsdCJ8fGU9PT0ic2hpZnQiKXtyLm1vZGlmaWVyc1tlXT0hci5tb2RpZmllcnNbZV0sZ3IoKTtyZXR1cm59dmFyIHQ9TnQoKTtpZih0JiZpZSh0KSl7KGU9PT0iY3RybF9jInx8ZT09PSJlc2NhcGUiKSYmX2QodCxlKSxoaSgpLGdyKCk7cmV0dXJufXZhciBuPWhvKGUse2N0cmw6ci5tb2RpZmllcnMuY3RybCxhbHQ6ci5tb2RpZmllcnMuYWx0LHNoaWZ0OnIubW9kaWZpZXJzLnNoaWZ0fSk7biYmbW8obixlKSxoaSgpLGdyKCksUnAoKX1mdW5jdGlvbiBfZChlLHQpeyFlfHwhZS5pZHx8ZmV0Y2goIi9hcGkvc3RydWN0dXJlZC1zZXNzaW9ucy8iK2UuaWQrIi9tZXNzYWdlcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2lucHV0OiIiLGludGVycnVwdDohMCxwcmVzZXJ2ZVF1ZXVlOiEwfSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLm9rP24uanNvbigpOm4uanNvbigpLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJue319KS50aGVuKGZ1bmN0aW9uKGkpe3Rocm93IG5ldyBFcnJvcihpJiZpLmVycm9yfHwiXHU0RTJEXHU2NUFEXHU1OTMxXHU4RDI1IChrZXk9Iit0KyIpIil9KX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5pZCYmKCQobiksbi5pZD09PXIuc2VsZWN0ZWRJZCkpe3ZhciBpPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PW4uaWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz16ZShpLHJ0KGksbi5vdXRwdXQsITEpKSxwcighMCksdHlwZW9mIHV0PT0iZnVuY3Rpb24iJiZ1dCgpfX0pLmNhdGNoKGZ1bmN0aW9uKG4pe24mJm4ubWVzc2FnZSYmY29uc29sZS5kZWJ1ZygiW3dhbmRdIGpveXN0aWNrIGludGVycnVwdCBuby1vcDoiLG4ubWVzc2FnZSl9KX1mdW5jdGlvbiBOZCgpe3Iuam95c3RpY2tQaW5uZWRPcGVuP21yKCk6UmQoKX1mdW5jdGlvbiBSZCgpe2lmKCEoIXIuam95c3RpY2tQYW5lbEVsfHwhci5qb3lzdGlja0JhbGxFbCkpe3Iuam95c3RpY2tQaW5uZWRPcGVuPSEwO3ZhciBlPXIuam95c3RpY2tCYWxsRWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7ci5qb3lzdGlja1BhbmVsRWwuc3R5bGUucmlnaHQ9TWF0aC5tYXgoZm4sd2luZG93LmlubmVyV2lkdGgtZS5yaWdodCkrInB4IixyLmpveXN0aWNrUGFuZWxFbC5zdHlsZS5ib3R0b209TWF0aC5tYXgoZm4sd2luZG93LmlubmVySGVpZ2h0LWUudG9wKzEwKSsicHgiLHIuam95c3RpY2tQYW5lbEVsLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLHIuam95c3RpY2tCYWxsRWwuY2xhc3NMaXN0LmFkZCgicGFuZWwtb3BlbiIpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxncigpfX1mdW5jdGlvbiBtcigpe3Iuam95c3RpY2tQaW5uZWRPcGVuPSExLHIuam95c3RpY2tQYW5lbEVsJiZyLmpveXN0aWNrUGFuZWxFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxyLmpveXN0aWNrQmFsbEVsJiZyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5yZW1vdmUoInBhbmVsLW9wZW4iKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmci5qb3lzdGlja0dlc3R1cmU9PW51bGwmJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpfWZ1bmN0aW9uIGdyKCl7ci5qb3lzdGlja1BhbmVsRWwmJlsiY3RybCIsImFsdCJdLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9ci5qb3lzdGlja1BhbmVsRWwucXVlcnlTZWxlY3RvcignLndqcC1tb2RbZGF0YS1rZXk9IicrZSsnIl0nKTt0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFyLm1vZGlmaWVyc1tlXSl9KX1mdW5jdGlvbiBqZChlKXt2YXIgdD1lLnRhcmdldCYmZS50YXJnZXQuY2xvc2VzdD9lLnRhcmdldC5jbG9zZXN0KCIud2pwLWNsb3NlIik6bnVsbDtpZih0KXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxtcigpO3JldHVybn12YXIgbj1lLnRhcmdldCYmZS50YXJnZXQuY2xvc2VzdD9lLnRhcmdldC5jbG9zZXN0KCIud2pwLWtleSIpOm51bGw7aWYobil7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGk9bi5nZXRBdHRyaWJ1dGUoImRhdGEta2V5Iik7aSYmSGQoaSl9fWZ1bmN0aW9uIE1zKCl7dmFyIGU9ci5qb3lzdGlja1Jvb3RFbDtpZihlKXt2YXIgdD1BcygpO2UuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJsZSIsdCksdHx8KChyLmpveXN0aWNrUG9pbnRlcklkIT09bnVsbHx8ci5qb3lzdGlja0dlc3R1cmUpJiZMcygpLHIuam95c3RpY2tQaW5uZWRPcGVuJiZtcigpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSl9fWZ1bmN0aW9uIFdkKCl7ci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpLHIuam95c3RpY2tNb3ZlSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixyLmpveXN0aWNrTW92ZUhhbmRsZXIpLHIuam95c3RpY2tNb3ZlSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrVXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixyLmpveXN0aWNrVXBIYW5kbGVyKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixyLmpveXN0aWNrVXBIYW5kbGVyKSxyLmpveXN0aWNrVXBIYW5kbGVyPW51bGwpLHIuam95c3RpY2tSZXNpemVIYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLHIuam95c3RpY2tSZXNpemVIYW5kbGVyPW51bGwpLHIuam95c3RpY2tSb290RWwmJnIuam95c3RpY2tSb290RWwucGFyZW50Tm9kZSYmci5qb3lzdGlja1Jvb3RFbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHIuam95c3RpY2tSb290RWwpLHIuam95c3RpY2tSb290RWw9bnVsbCxyLmpveXN0aWNrUGFuZWxFbD1udWxsLHIuam95c3RpY2tCYWNrZHJvcEVsPW51bGwsci5qb3lzdGlja0JhbGxFbD1udWxsLHIuam95c3RpY2tQb2ludGVySWQ9bnVsbCxyLmpveXN0aWNrR2VzdHVyZT1udWxsLHIuam95c3RpY2tQcmVzc1N0YXJ0PW51bGwsci5qb3lzdGlja1Bpbm5lZE9wZW49ITF9ZnVuY3Rpb24gemQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoZSl7dmFyIHQ9IWplKCk7ci5yZXNpemVIYW5kbGVyPWZ1bmN0aW9uKCl7SHQoITApO3ZhciBuPSFqZSgpO3QhPT1uJiYodD1uLCFuJiZyLnNpZGViYXJQaW5uZWQmJnIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyhyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSx4ZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxNcigpKTpuJiZyLnNpZGViYXJQaW5uZWQmJiFyLnNlc3Npb25zRHJhd2VyT3BlbiYmKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApLE1yKCkpKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5yZXNpemVIYW5kbGVyKSx3aW5kb3cudmlzdWFsVmlld3BvcnQmJihyLnZpc3VhbFZpZXdwb3J0SGFuZGxlcj1mdW5jdGlvbigpe0h0KCEwKX0sd2luZG93LnZpc3VhbFZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci52aXN1YWxWaWV3cG9ydEhhbmRsZXIpKSxyLnZpc2liaWxpdHlIYW5kbGVyPWZ1bmN0aW9uKCl7ZG9jdW1lbnQuaGlkZGVufHxldCgidmlzaWJpbGl0eSIse2ZvcmNlUmVwbGF5OiEwfSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLHIudmlzaWJpbGl0eUhhbmRsZXIpLHIub3JpZW50YXRpb25IYW5kbGVyPWZ1bmN0aW9uKCl7ZXQoIm9yaWVudGF0aW9uIix7Zm9yY2VSZXBsYXk6ITB9KX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLm9yaWVudGF0aW9uSGFuZGxlcikscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7SHQoITApfSl9fWZ1bmN0aW9uIFVkKCl7ci50ZXJtaW5hbEhlYWx0aFRpbWVyfHwoci50ZXJtaW5hbEhlYWx0aFRpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoISghci50ZXJtaW5hbHx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCJ8fGRvY3VtZW50LmhpZGRlbikpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih1KXtyZXR1cm4gdS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCEoIWV8fGUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIpKXtldCgiaGVhbHRoIik7dmFyIHQ9RGF0ZS5ub3coKSxuPXIubGFzdENodW5rQXQ+MCYmdC1yLmxhc3RDaHVua0F0PjMwMCxpPXQtci5sYXN0VGVybWluYWxSZXN5bmNBdD4zZTQsYT1yLmxhc3RDaHVua0F0PnIubGFzdFRlcm1pbmFsUmVzeW5jQXQ7aSYmYSYmKG58fGUuc3RhdHVzIT09InJ1bm5pbmciKSYmci50ZXJtaW5hbE91dHB1dCYmQW4oKX19fSw1ZTMpKX1mdW5jdGlvbiBWZCgpe3IudGVybWluYWxIZWFsdGhUaW1lciYmKGNsZWFySW50ZXJ2YWwoci50ZXJtaW5hbEhlYWx0aFRpbWVyKSxyLnRlcm1pbmFsSGVhbHRoVGltZXI9bnVsbCl9ZnVuY3Rpb24gaHIoKXtWZCgpLHIucmVzaXplVGltZXImJihjbGVhclRpbWVvdXQoci5yZXNpemVUaW1lciksci5yZXNpemVUaW1lcj1udWxsKSxyLnJlc2l6ZU9ic2VydmVyJiYoci5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KCksci5yZXNpemVPYnNlcnZlcj1udWxsKSxyLnJlc2l6ZUhhbmRsZXImJih3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixyLnJlc2l6ZUhhbmRsZXIpLHIucmVzaXplSGFuZGxlcj1udWxsKSxyLnZpc3VhbFZpZXdwb3J0SGFuZGxlciYmd2luZG93LnZpc3VhbFZpZXdwb3J0JiYod2luZG93LnZpc3VhbFZpZXdwb3J0LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci52aXN1YWxWaWV3cG9ydEhhbmRsZXIpLHIudmlzdWFsVmlld3BvcnRIYW5kbGVyPW51bGwpLHIudmlzaWJpbGl0eUhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixyLnZpc2liaWxpdHlIYW5kbGVyKSxyLnZpc2liaWxpdHlIYW5kbGVyPW51bGwpLHIub3JpZW50YXRpb25IYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm9yaWVudGF0aW9uY2hhbmdlIixyLm9yaWVudGF0aW9uSGFuZGxlciksci5vcmllbnRhdGlvbkhhbmRsZXI9bnVsbCksW1sibW91c2Vtb3ZlIiwicmVzaXplTW91c2VNb3ZlIl0sWyJtb3VzZXVwIiwicmVzaXplTW91c2VVcCJdLFsidG91Y2htb3ZlIiwicmVzaXplVG91Y2hNb3ZlIl0sWyJ0b3VjaGVuZCIsInJlc2l6ZVRvdWNoRW5kIl1dLmZvckVhY2goZnVuY3Rpb24oYSl7clthWzFdXSYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoYVswXSxyW2FbMV1dKSxyW2FbMV1dPW51bGwpfSksem4oKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoci50ZXJtaW5hbFZpZXdwb3J0RWwmJihyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyJiZyLnRlcm1pbmFsVmlld3BvcnRFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXIpLHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlciYmci50ZXJtaW5hbFZpZXdwb3J0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXIpLHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyJiZyLnRlcm1pbmFsVmlld3BvcnRFbC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcikpLGUmJihyLnRlcm1pbmFsV2hlZWxIYW5kbGVyJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixyLnRlcm1pbmFsV2hlZWxIYW5kbGVyKSxyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyJiZlLnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixyLnRlcm1pbmFsQ2xpY2tIYW5kbGVyKSksci50ZXJtaW5hbFZpZXdwb3J0RWw9bnVsbCxyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyPW51bGwsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyPW51bGwsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI9bnVsbCxyLnRlcm1pbmFsV2hlZWxIYW5kbGVyPW51bGwsci50ZXJtaW5hbENsaWNrSGFuZGxlcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXImJihjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRWwmJnIudGVybWluYWxTY3JvbGxiYXJFbC5wYXJlbnROb2RlJiZyLnRlcm1pbmFsU2Nyb2xsYmFyRWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyLnRlcm1pbmFsU2Nyb2xsYmFyRWwpLHIudGVybWluYWxTY3JvbGxiYXJFbD1udWxsLHIudGVybWluYWxTY3JvbGxiYXJUaHVtYkVsPW51bGwsci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLHIudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSExLHIudGVybWluYWwmJihyLnRlcm1pbmFsLmRlc3Ryb3koKSxyLnRlcm1pbmFsPW51bGwpLGUpZm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLnRlcm1pbmFsLXNjcm9sbC13cmFwIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kucGFyZW50Tm9kZT09PWUmJmUucmVtb3ZlQ2hpbGQoaSl9eWEoKSxyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNPdXRwdXREZWFkbGluZT0wLHIuc3luY0ZyYW1pbmdSZXNpZHVlPSExLHIudGVybWluYWxTZXNzaW9uSWQ9bnVsbCxyLnRlcm1pbmFsT3V0cHV0PSIiLHIudGVybWluYWxPdXRwdXRNYXJrZXI9MCxyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCxyLnNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbT0hMSxkdCgpLHIuc29mdFJlc3luY1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuc29mdFJlc3luY1RpbWVyKSxyLnNvZnRSZXN5bmNUaW1lcj1udWxsKSxyLl9yZXN5bmNDaHVua1RhaWxUaW1lciYmKGNsZWFyVGltZW91dChyLl9yZXN5bmNDaHVua1RhaWxUaW1lciksci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbCksci5fcmVzeW5jQ2h1bmtMYXN0QXQ9MCxyLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PTAsci5fcmVzeW5jU3RhdHNDb3VudD0wLHIuX3Jlc3luY0xhc3RXYXJuQXQ9MCxyLl9yZXN5bmNJblByb2dyZXNzPSExLHIubGFzdFJlc2l6ZT17Y29sczowLHJvd3M6MH0sV2QoKX1mdW5jdGlvbiBpaShlLHQpe2lmKHIuc2VsZWN0ZWRJZCl7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoISghbnx8bi5zdGF0dXMhPT0icnVubmluZyIpJiYhaWUobikpe2U+MjU2JiYoZT0yNTYpLHQ+MTYwJiYodD0xNjApO3ZhciBpPXtjb2xzOmUscm93czp0fTsoci5sYXN0UmVzaXplLmNvbHMhPT1pLmNvbHN8fHIubGFzdFJlc2l6ZS5yb3dzIT09aS5yb3dzKSYmKHIubGFzdFJlc2l6ZT1pLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrci5zZWxlY3RlZElkKyIvcmVzaXplIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShpKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSkpfX19ZnVuY3Rpb24gZXQoZSx0KXtpZighci50ZXJtaW5hbClyZXR1cm4hMTt2YXIgbj10fHx7fSxpPW4uZm9yY2VSZXBsYXk9PT0hMCxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighYXx8YS5vZmZzZXRXaWR0aD09PTB8fGEub2Zmc2V0SGVpZ2h0PT09MClyZXR1cm4geXIoZXx8ImZpdC1yZXRyeSIse2ZvcmNlUmVwbGF5Oml9KSwhMTt2YXIgdT1yLnRlcm1pbmFsQXV0b0ZvbGxvd3x8bWEoKSxzPXIudGVybWluYWwuY29scyxvPXIudGVybWluYWwucm93cztyZXR1cm4gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoci50ZXJtaW5hbCl7dHlwZW9mIHIudGVybWluYWwucmVtZWFzdXJlPT0iZnVuY3Rpb24iJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSgpLGlpKHIudGVybWluYWwuY29scyxyLnRlcm1pbmFsLnJvd3MpO3ZhciBsPXIudGVybWluYWwuY29scyE9PXN8fHIudGVybWluYWwucm93cyE9PW87IWwmJmkmJnIudGVybWluYWxPdXRwdXQmJkFuKHtza2lwRml0OiEwfSksdSYmRXQoImZvcmNlIil9fSl9KSwhMH1mdW5jdGlvbiB5cihlLHQpe2lmKCFyLnRlcm1pbmFsKXJldHVybjt2YXIgbj10fHx7fSxpPW4uZm9yY2VSZXBsYXkhPT0hMSxhPTAsdT04O2Z1bmN0aW9uIHMoKXtpZihyLnRlcm1pbmFsKXt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYobyYmby5vZmZzZXRIZWlnaHQsbyYmby5vZmZzZXRXaWR0aD4wJiZvLm9mZnNldEhlaWdodD4wKXtldChlLHtmb3JjZVJlcGxheTppfSk7cmV0dXJufSsrYT49dXx8KGE8PTQ/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHMpOnNldFRpbWVvdXQocywzMikpfX1zKCl9ZnVuY3Rpb24gSHQoZSl7ci5yZXNpemVUaW1lciYmKGNsZWFyVGltZW91dChyLnJlc2l6ZVRpbWVyKSxyLnJlc2l6ZVRpbWVyPW51bGwpO3ZhciB0PWU/MDoxMDA7ci5yZXNpemVUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5yZXNpemVUaW1lcj1udWxsLHJlcXVlc3RBbmltYXRpb25GcmFtZShLZCl9LHQpfWZ1bmN0aW9uIEtkKCl7aWYoci50ZXJtaW5hbCl7dmFyIGU9ci50ZXJtaW5hbEF1dG9Gb2xsb3d8fG1hKCk7ZSYmRXQoImZvcmNlIiksaWkoci50ZXJtaW5hbC5jb2xzLHIudGVybWluYWwucm93cyl9fWZ1bmN0aW9uIGVuKGUpe3Iud29ya2luZ0Rpcj1lO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC13b3JraW5nLWRpciIsZSl9Y2F0Y2h7fUpkKGUpfWZ1bmN0aW9uIGZhKGUpe2ZldGNoKCIvYXBpL3JlY2VudC1wYXRocyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7ZSh0fHxbXSl9KS5jYXRjaChmdW5jdGlvbigpe2UoW10pfSl9ZnVuY3Rpb24gSmQoZSl7cmV0dXJuIGZldGNoKCIvYXBpL3JlY2VudC1wYXRocyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3BhdGg6ZX0pfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBwYShlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1lfSk7dCYmdC5zdGF0dXMhPT0icnVubmluZyImJiFpZSh0KT9DbyhlKTp6dChlKSxVdCgpfWZ1bmN0aW9uIEdkKGUpe3ZhciB0PWUudGFyZ2V0O2lmKCEoIXR8fCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpKSl7dmFyIG49dC5jbG9zZXN0KCIuc2lkZWJhci1jb2xsYXBzZWQtdGlsZSIpO2lmKG4mJm4gaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7aWYobi5kYXRhc2V0LmNvbGxhcHNlZE5ld1Nlc3Npb24pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLG91KCk7cmV0dXJufWlmKG4uZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWQpe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLHBhKG4uZGF0YXNldC5jb2xsYXBzZWRTZXNzaW9uSWQpO3JldHVybn1pZihuLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgaT1uLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkLGE9bi5kYXRhc2V0LmN3ZHx8IiI7eWkoaSxhKS50aGVuKGZ1bmN0aW9uKHYpe3YmJnYuaWQmJihyLnNlbGVjdGVkSWQ9di5pZCx3ZSgpLHIuZHJhZnRzW3YuaWRdPSIiLG1uKCkudGhlbihmdW5jdGlvbigpe3p0KHYuaWQpfSkpfSk7cmV0dXJufX12YXIgdT10LmNsb3Nlc3QoIiNjbGF1ZGUtaGlzdG9yeS10b2dnbGUiKTtpZih1KXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZD0hci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQmJiFyLmNsYXVkZUhpc3RvcnlMb2FkZWQmJmVpKCksZmUoKTtyZXR1cm59dmFyIHM9dC5jbG9zZXN0KCJbZGF0YS1hY3Rpb25dIik7aWYocyYmcyBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KXtpZihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1tYW5hZ2UtbW9kZSIpc2QoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0ic2VsZWN0LWFsbC12aXNpYmxlIilwcygpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJjbGVhci1zZWxlY3Rpb24iKWxkKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1zZWxlY3RlZCIpY2QoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLXNlbGVjdGlvbiIpZnIocy5kYXRhc2V0LmtpbmQscy5kYXRhc2V0LmlkKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iZGVsZXRlLXNlc3Npb24iJiZzLmRhdGFzZXQuc2Vzc2lvbklkKShmdW5jdGlvbih2KXtrbigiXHU3ODZFXHU4QkE0XHU1MjIwXHU5NjY0XHU4RkQ5XHU0RTJBXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGXHU2QjY0XHU2NENEXHU0RjVDXHU2NUUwXHU2Q0Q1XHU2NEE0XHU5NTAwXHUzMDAyIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKGgpe2gmJnlvKHYpfSl9KShzLmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iZGVsZXRlLWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKShmdW5jdGlvbih2LGgpe2tuKCJcdTc4NkVcdThCQTRcdTk2OTBcdTg1Q0ZcdThGRDlcdTY3NjEgQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NTQxN1x1RkYxRiIse3RpdGxlOiJcdTk2OTBcdTg1Q0ZcdTUzODZcdTUzRjJcdTRGMUFcdThCREQiLG9rTGFiZWw6Ilx1OTY5MFx1ODVDRiJ9KS50aGVuKGZ1bmN0aW9uKGcpe2cmJmJvKHYsaCl9KX0pKHMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQscy5jbG9zZXN0KCIuc2Vzc2lvbi1pdGVtIikpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtaGlzdG9yeS1kaXJlY3RvcnkiJiZzLmRhdGFzZXQuY3dkKXt2YXIgbz1zLmRhdGFzZXQuY3dkO3IuY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyc1tvXT0hci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzW29dLGZlKCl9ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1oaXN0b3J5LWRpcmVjdG9yeSImJnMuZGF0YXNldC5jd2QpKGZ1bmN0aW9uKHYsaCl7dmFyIGc9R3AodiksbT1ObigpLmZpbHRlcihmdW5jdGlvbih5KXtyZXR1cm4geS5jd2Q9PT12fSkubGVuZ3RoO2tuKCJcdTc4NkVcdThCQTRcdTZFMDVcdTdBN0FcdTZCNjRcdTc2RUVcdTVGNTVcdTRFMEJcdTc2ODQgIittKyIgXHU2NzYxIENsYXVkZSBcdTUzODZcdTUzRjJcdTU0MTdcdUZGMUYiLHt0aXRsZToiXHU2RTA1XHU3QTdBXHU3NkVFXHU1RjU1XHU1Mzg2XHU1M0YyIixva0xhYmVsOiJcdTZFMDVcdTdBN0EifSkudGhlbihmdW5jdGlvbih5KXt5JiYoRW8oZywhMCksSnAodixoLGcpKX0pfSkocy5kYXRhc2V0LmN3ZCxzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iY2xlYXItYWxsLWhpc3RvcnkiKWRkKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1hcmNoaXZlZC1ncm91cCIpci5hcmNoaXZlZEV4cGFuZGVkPSFyLmFyY2hpdmVkRXhwYW5kZWQsZmUoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lIiYmcy5kYXRhc2V0LnNlc3Npb25JZCkkcChzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lLWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKXR2KHMpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJyZXN1bWUtY29kZXgtaGlzdG9yeSImJnMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQpWHAocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1jb2RleC1oaXN0b3J5IiYmcy5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZClldihzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLWNvZGV4LWhpc3RvcnktZGlyZWN0b3J5IiYmcy5kYXRhc2V0LmN3ZCl7dmFyIGw9cy5kYXRhc2V0LmN3ZDtyLmNvZGV4SGlzdG9yeUV4cGFuZGVkRGlyc1tsXT0hci5jb2RleEhpc3RvcnlFeHBhbmRlZERpcnNbbF0sZmUoKX1lbHNlIHMuZGF0YXNldC5hY3Rpb249PT0id29ya3RyZWUtbWVyZ2UiJiZzLmRhdGFzZXQuc2Vzc2lvbklkP3lsKHMuZGF0YXNldC5zZXNzaW9uSWQpOnMuZGF0YXNldC5hY3Rpb249PT0id29ya3RyZWUtY2xlYW51cCImJnMuZGF0YXNldC5zZXNzaW9uSWQmJmJsKHMuZGF0YXNldC5zZXNzaW9uSWQpO3JldHVybn12YXIgYz10LmNsb3Nlc3QoIi5zZXNzaW9uLWl0ZW0iKTtpZihjKXtpZihyLnNlc3Npb25zTWFuYWdlTW9kZSl7Yy5kYXRhc2V0LnNlc3Npb25JZD9mcigic2Vzc2lvbnMiLGMuZGF0YXNldC5zZXNzaW9uSWQpOmMuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQmJmZyKCJoaXN0b3J5IixjLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKTtyZXR1cm59aWYoYy5jbGFzc0xpc3QuY29udGFpbnMoInN3aXBlZCIpKXt4cigpO3JldHVybn1pZihGbylyZXR1cm47aWYoYy5kYXRhc2V0LnNlc3Npb25JZClwYShjLmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKGMuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQpe3ZhciBmPWMuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQsZD1jLmRhdGFzZXQuY3dkO3lpKGYsZCkudGhlbihmdW5jdGlvbih2KXt2JiZ2LmlkJiYoci5zZWxlY3RlZElkPXYuaWQsd2UoKSxyLmRyYWZ0c1t2LmlkXT0iIixtbigpLnRoZW4oZnVuY3Rpb24oKXt6dCh2LmlkKSxVdCgpfSkpfSl9fX19ZnVuY3Rpb24gWWQoZSl7aWYoIShlLmtleSE9PSJFbnRlciImJmUua2V5IT09IiAiKSl7dmFyIHQ9ZS50YXJnZXQuY2xvc2VzdCgiLnNlc3Npb24taXRlbSIpO2lmKHQpe2lmKGUucHJldmVudERlZmF1bHQoKSxyLnNlc3Npb25zTWFuYWdlTW9kZSl7dC5kYXRhc2V0LnNlc3Npb25JZD9mcigic2Vzc2lvbnMiLHQuZGF0YXNldC5zZXNzaW9uSWQpOnQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQmJmZyKCJoaXN0b3J5Iix0LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKTtyZXR1cm59aWYodC5kYXRhc2V0LnNlc3Npb25JZClwYSh0LmRhdGFzZXQuc2Vzc2lvbklkKTtlbHNlIGlmKHQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQpe3ZhciBuPXQuZGF0YXNldC5jbGF1ZGVIaXN0b3J5SWQsaT10LmRhdGFzZXQuY3dkO3lpKG4saSkudGhlbihmdW5jdGlvbihhKXthJiZhLmlkJiYoci5zZWxlY3RlZElkPWEuaWQsd2UoKSxyLmRyYWZ0c1thLmlkXT0iIixtbigpLnRoZW4oZnVuY3Rpb24oKXt6dChhLmlkKSxVdCgpfSkpfSl9fX19ZnVuY3Rpb24gdmEoZSx0KXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihuKXt2YXIgaT1uW2VdO2lmKCFpKXtrKCJcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTZDQTFcdTY3MDlcdTUzRUZcdTU5MERcdTUyMzZcdTc2ODRcdTUxODVcdTVCQjlcdTMwMDIiLCJlcnJvciIpO3JldHVybn1IcihTdHJpbmcoaSksbnVsbCxmdW5jdGlvbigpe2sodHx8Ilx1NURGMlx1NTkwRFx1NTIzNiIsImluZm8iKX0pfX1mdW5jdGlvbiBBdCgpe3JldHVybiFyLnRlcm1pbmFsfHwhci50ZXJtaW5hbC5lbGVtZW50P251bGw6KHIudGVybWluYWxWaWV3cG9ydEVsPXIudGVybWluYWwuZWxlbWVudCxyLnRlcm1pbmFsVmlld3BvcnRFbCl9ZnVuY3Rpb24gem4oKXtyLnRlcm1pbmFsU2Nyb2xsSWRsZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIudGVybWluYWxTY3JvbGxJZGxlVGltZXIpLHIudGVybWluYWxTY3JvbGxJZGxlVGltZXI9bnVsbCl9ZnVuY3Rpb24gZHQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtanVtcC1ib3R0b20iKSx0PSEhci5zZWxlY3RlZElkJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmIXIudGVybWluYWxBdXRvRm9sbG93JiYhUHMoKTtyLnNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbT10LGUmJmUuY2xhc3NMaXN0LnRvZ2dsZSgidmlzaWJsZSIsdCk7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO24mJm4uY2xhc3NMaXN0LnRvZ2dsZSgiaGFzLWp1bXAtYnRuIix0KX1mdW5jdGlvbiBtYSgpe3ZhciBlPUF0KCk7aWYoIWUpcmV0dXJuITA7dmFyIHQ9ZS5zY3JvbGxIZWlnaHQtZS5jbGllbnRIZWlnaHQtZS5zY3JvbGxUb3A7cmV0dXJuIHQ8PXIudGVybWluYWxTY3JvbGxUaHJlc2hvbGR9ZnVuY3Rpb24gUHMoKXt2YXIgZT1BdCgpO2lmKCFlKXJldHVybiEwO3ZhciB0PWUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LWUuc2Nyb2xsVG9wO3JldHVybiB0PD0yfWZ1bmN0aW9uIHFzKGUpe2lmKHIudGVybWluYWwpe3ZhciB0PUF0KCk7aWYodCl7dmFyIG49ZT81MDA6MTIwO3IudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD1NYXRoLm1heChyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWwsRGF0ZS5ub3coKStuKSxlP3Quc2Nyb2xsVG8oe3RvcDp0LnNjcm9sbEhlaWdodCxiZWhhdmlvcjoic21vb3RoIn0pOnQuc2Nyb2xsVG9wPXQuc2Nyb2xsSGVpZ2h0fX19ZnVuY3Rpb24gZ2EoKXtyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMSx6bigpLHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD0wLHIudGVybWluYWwmJiJfc2hvdWxkU2Nyb2xsVG9Cb3R0b20iaW4gci50ZXJtaW5hbCYmKHIudGVybWluYWwuX3Nob3VsZFNjcm9sbFRvQm90dG9tPSExKSxkdCgpfWZ1bmN0aW9uIEV0KGUpe2lmKHIudGVybWluYWwpe3ZhciB0PWU9PT0iZm9yY2UiO2lmKHQpe3IudGVybWluYWxBdXRvRm9sbG93PSEwLHpuKCkscXMoITEpLGR0KCk7cmV0dXJufWlmKCFyLnRlcm1pbmFsQXV0b0ZvbGxvdyl7ZHQoKTtyZXR1cm59cXMoITEpLGR0KCl9fWZ1bmN0aW9uIFFkKGUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXIiO3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXItdHJhY2siO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGxiYXItdGh1bWIiLG4uYXBwZW5kQ2hpbGQoaSksdC5hcHBlbmRDaGlsZChuKSxlLmFwcGVuZENoaWxkKHQpLHIudGVybWluYWxTY3JvbGxiYXJFbD10LHIudGVybWluYWxTY3JvbGxiYXJUaHVtYkVsPWksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZz0hMTtmdW5jdGlvbiBhKCl7ci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciYmKGNsZWFyVGltZW91dChyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyKSxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyPW51bGwpLHQuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpfWZ1bmN0aW9uIHUoKXtyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmd8fChyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyJiZjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZ3x8dC5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9LDE1MDApKX1mdW5jdGlvbiBzKCl7ci50ZXJtaW5hbFNjcm9sbGJhclJhZlBlbmRpbmc9ITE7dmFyIG09QXQoKTtpZihtKXt2YXIgeT1tLnNjcm9sbEhlaWdodCx3PW0uY2xpZW50SGVpZ2h0O2lmKHk8PXcpe3QuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpO3JldHVybn12YXIgRT1uLmNsaWVudEhlaWdodCxCPU1hdGgubWF4KDI4LHcveSpFKSxGPXktdyx4PW0uc2Nyb2xsVG9wL0YsUz14KihFLUIpO2kuc3R5bGUuaGVpZ2h0PUIrInB4IixpLnN0eWxlLnRvcD1TKyJweCJ9fWZ1bmN0aW9uIG8oKXtyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZ3x8KHIudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSEwLHJlcXVlc3RBbmltYXRpb25GcmFtZShzKSl9dmFyIGw9QXQoKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsZnVuY3Rpb24oKXthKCksbygpLHUoKX0se3Bhc3NpdmU6ITB9KSxuLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24obSl7aWYobS50YXJnZXQhPT1pKXttLnByZXZlbnREZWZhdWx0KCk7dmFyIHk9QXQoKTtpZih5KXt2YXIgdz1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEU9KG0uY2xpZW50WS13LnRvcCkvdy5oZWlnaHQsQj15LnNjcm9sbEhlaWdodC15LmNsaWVudEhlaWdodDt5LnNjcm9sbFRvcD1FKkJ9fX0pO3ZhciBjPTAsZj0wO2kuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixmdW5jdGlvbihtKXttLnByZXZlbnREZWZhdWx0KCksbS5zdG9wUHJvcGFnYXRpb24oKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITAsaS5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLGM9bS5jbGllbnRZO3ZhciB5PUF0KCk7Zj15P3kuc2Nyb2xsVG9wOjAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixkKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIix2KX0pO2Z1bmN0aW9uIGQobSl7bS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB5PUF0KCk7aWYoeSl7dmFyIHc9bi5jbGllbnRIZWlnaHQsRT15LnNjcm9sbEhlaWdodCxCPXkuY2xpZW50SGVpZ2h0LEY9RS1CO2lmKCEoRjw9MCkpe3ZhciB4PU1hdGgubWF4KDI4LEIvRSp3KSxTPXcteDtpZighKFM8PTApKXt2YXIgXz1tLmNsaWVudFktYyxLPV8vUypGO3kuc2Nyb2xsVG9wPWYrS319fX1mdW5jdGlvbiB2KCl7ci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSExLGkuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZ2dpbmciKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLGQpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLHYpLHUoKX1pLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGZ1bmN0aW9uKG0pe2lmKG0udG91Y2hlcy5sZW5ndGg9PT0xKXttLnN0b3BQcm9wYWdhdGlvbigpLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMCxpLmNsYXNzTGlzdC5hZGQoImRyYWdnaW5nIiksYz1tLnRvdWNoZXNbMF0uY2xpZW50WTt2YXIgeT1BdCgpO2Y9eT95LnNjcm9sbFRvcDowLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsaCx7cGFzc2l2ZTohMX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixnKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGNhbmNlbCIsZyl9fSx7cGFzc2l2ZTohMX0pO2Z1bmN0aW9uIGgobSl7aWYobS50b3VjaGVzLmxlbmd0aD09PTEpe20ucHJldmVudERlZmF1bHQoKTt2YXIgeT1BdCgpO2lmKHkpe3ZhciB3PW4uY2xpZW50SGVpZ2h0LEU9eS5zY3JvbGxIZWlnaHQsQj15LmNsaWVudEhlaWdodCxGPUUtQjtpZighKEY8PTApKXt2YXIgeD1NYXRoLm1heCgyOCxCL0UqdyksUz13LXg7aWYoIShTPD0wKSl7dmFyIF89bS50b3VjaGVzWzBdLmNsaWVudFktYyxLPV8vUypGO3kuc2Nyb2xsVG9wPWYrS319fX19ZnVuY3Rpb24gZygpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxpLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZyksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGcpLHUoKX10LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKCl7YSgpfSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZ3x8dSgpfSksbygpfWZ1bmN0aW9uICRkKGUpe3JldHVybiBlPDQzNTI/ITE6ZT49NDM1MiYmZTw9NDQ0N3x8ZT49OTAwMSYmZTw9OTAwMnx8ZT49MTE5MDQmJmU8PTEyMzUwfHxlPj0xMjM1MyYmZTw9MTMzMTF8fGU+PTEzMzEyJiZlPD0xOTkwM3x8ZT49MTk5NjgmJmU8PTQwOTU5fHxlPj00MDk2MCYmZTw9NDIxOTF8fGU+PTQ0MDMyJiZlPD01NTIwM3x8ZT49NjM3NDQmJmU8PTY0MjU1fHxlPj02NTA3MiYmZTw9NjUxMDN8fGU+PTY1MjgwJiZlPD02NTM3Nnx8ZT49NjU1MDQmJmU8PTY1NTEwfHxlPj0xMjY5NzYmJmU8PTEyOTUzNXx8ZT49MTMxMDcyJiZlPD0xOTY2MDV8fGU+PTE5NjYwOCYmZTw9MjYyMTQxfXZhciBPcz0iXHUyMDYwIjtmdW5jdGlvbiBIcygpe3JldHVybnttb2RlOiJub3JtYWwifX1mdW5jdGlvbiBYZChlKXtyZXR1cm4hL1teXHgwMC1ceDdmXS8udGVzdChlKSYmZS5pbmRleE9mKCJceDFCIik9PT0tMX1mdW5jdGlvbiBaZChlLHQpe2lmKCFlKXJldHVybiIiO3ZhciBuPVN0cmluZyhlKTtpZih0Lm1vZGU9PT0ibm9ybWFsIiYmWGQobikpcmV0dXJuIG47Zm9yKHZhciBpPSIiLGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIHU9bi5jaGFyQ29kZUF0KGEpLHM9dSxvPTE7aWYodT49NTUyOTYmJnU8PTU2MzE5JiZhKzE8bi5sZW5ndGgpe3ZhciBsPW4uY2hhckNvZGVBdChhKzEpO2w+PTU2MzIwJiZsPD01NzM0MyYmKHM9KHUtNTUyOTYpKjEwMjQrKGwtNTYzMjApKzY1NTM2LG89Mil9dmFyIGM9bz09PTI/bi5zdWJzdHIoYSwyKTpuLmNoYXJBdChhKTtzd2l0Y2godC5tb2RlKXtjYXNlIm5vcm1hbCI6cz09PTI3Pyh0Lm1vZGU9ImVzYyIsaSs9Yyk6cz09PTE1NT8odC5tb2RlPSJjc2kiLGkrPWMpOnM9PT0xNTd8fHM9PT0xNDR8fHM9PT0xNTh8fHM9PT0xNTk/KHQubW9kZT0ic3RyaW5nIixpKz1jKTooaSs9YywkZChzKSYmKGkrPU9zKSk7YnJlYWs7Y2FzZSJlc2MiOmkrPWMscz09PTkxP3QubW9kZT0iY3NpIjpzPT09OTN8fHM9PT04MHx8cz09PTg4fHxzPT09OTR8fHM9PT05NT90Lm1vZGU9InN0cmluZyI6dC5tb2RlPSJub3JtYWwiO2JyZWFrO2Nhc2UiY3NpIjppKz1jLHM+PTY0JiZzPD0xMjYmJih0Lm1vZGU9Im5vcm1hbCIpO2JyZWFrO2Nhc2Uic3RyaW5nIjppKz1jLHM9PT03fHxzPT09MTU2P3QubW9kZT0ibm9ybWFsIjpzPT09MjcmJih0Lm1vZGU9InN0cmluZy1lc2MiKTticmVhaztjYXNlInN0cmluZy1lc2MiOmkrPWMscz09PTkyP3QubW9kZT0ibm9ybWFsIjp0Lm1vZGU9InN0cmluZyI7YnJlYWt9YSs9by0xfXJldHVybiBpfXZhciBhaT0iXHgxQls/MjAyNmgiLGhhPSJceDFCWz8yMDI2bCIsZWY9MjAwLHRmPTI1NioxMDI0O2Z1bmN0aW9uIG5mKGUpe2lmKCFlfHxyLnN5bmNPdXRwdXRCdWZmZXI9PT1udWxsJiZlLmluZGV4T2YoYWkpPT09LTEpcmV0dXJuIGU7Zm9yKHZhciB0PSIiLG49MDtuPGUubGVuZ3RoOylpZihyLnN5bmNPdXRwdXRCdWZmZXIhPT1udWxsKXt2YXIgaT1lLmluZGV4T2YoaGEsbik7aWYoaT09PS0xKXJldHVybiByLnN5bmNPdXRwdXRCdWZmZXIrPWUuc2xpY2UobiksKHIuc3luY091dHB1dEJ1ZmZlci5sZW5ndGg+dGZ8fERhdGUubm93KCk+ci5zeW5jT3V0cHV0RGVhZGxpbmUpJiYodCs9ci5zeW5jT3V0cHV0QnVmZmVyLHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLHIuc3luY0ZyYW1pbmdSZXNpZHVlPSEwKSx0O3Iuc3luY091dHB1dEJ1ZmZlcis9ZS5zbGljZShuLGkraGEubGVuZ3RoKSx0Kz1yLnN5bmNPdXRwdXRCdWZmZXIsci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsbj1pK2hhLmxlbmd0aH1lbHNle3ZhciBhPWUuaW5kZXhPZihhaSxuKTtpZihhPT09LTEpcmV0dXJuIHQrPWUuc2xpY2UobiksdDt0Kz1lLnNsaWNlKG4sYSksci5zeW5jT3V0cHV0QnVmZmVyPWFpLHIuc3luY091dHB1dERlYWRsaW5lPURhdGUubm93KCkrZWYsbj1hK2FpLmxlbmd0aH1yZXR1cm4gdH1mdW5jdGlvbiBxZygpe2lmKHIuc3luY091dHB1dEJ1ZmZlciE9PW51bGwpe3ZhciBlPXIuc3luY091dHB1dEJ1ZmZlcjtyZXR1cm4gci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsZX1yZXR1cm4iIn1mdW5jdGlvbiBVbihlLHQpe2lmKCEoIWV8fHQ9PW51bGwpKXtyLndpZGVQYXJzZXJTdGF0ZXx8KHIud2lkZVBhcnNlclN0YXRlPUhzKCkpO3ZhciBuPVpkKHQsci53aWRlUGFyc2VyU3RhdGUpLGk9bmYobiksYT1yLnRlcm1pbmFsQXV0b0ZvbGxvdyE9PSExOyJfc2hvdWxkU2Nyb2xsVG9Cb3R0b20iaW4gZSYmKGUuX3Nob3VsZFNjcm9sbFRvQm90dG9tPWEpLGkmJmUud3JpdGUoaSksIl9zaG91bGRTY3JvbGxUb0JvdHRvbSJpbiBlJiYoZS5fc2hvdWxkU2Nyb2xsVG9Cb3R0b209YSksYSYmKHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbD1NYXRoLm1heChyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWwsRGF0ZS5ub3coKSsxMjApKSxwZih0KX19ZnVuY3Rpb24geWEoKXtyLndpZGVQYXJzZXJTdGF0ZT1IcygpfWZ1bmN0aW9uIHJmKCl7dHlwZW9mIGRvY3VtZW50PiJ1Inx8ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY29weSIsZnVuY3Rpb24oZSl7dmFyIHQ9d2luZG93LmdldFNlbGVjdGlvbiYmd2luZG93LmdldFNlbGVjdGlvbigpO2lmKCEoIXR8fHQuaXNDb2xsYXBzZWQpKXt2YXIgbj10LmFuY2hvck5vZGUsaT1uJiZuLm5vZGVUeXBlPT09Mz9uLnBhcmVudE5vZGU6bixhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighKCFhfHwhaXx8IWEuY29udGFpbnMoaSkpKXt2YXIgdT10LnRvU3RyaW5nKCkscz11LnNwbGl0KGAKYCkubWFwKGZ1bmN0aW9uKG8pe3JldHVybiBvLnNwbGl0KE9zKS5qb2luKCIiKS5yZXBsYWNlKC9bIFx0XSskLywiIil9KS5qb2luKGAKYCk7cyE9PXUmJmUuY2xpcGJvYXJkRGF0YSYmKGUuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCJ0ZXh0L3BsYWluIixzKSxlLnByZXZlbnREZWZhdWx0KCkpfX19KX1yZigpO3ZhciBfcz0xNTAsTnM9MzAsYWY9MTYwKjEwMjQsdWY9MTkyKjEwMjQ7ZnVuY3Rpb24gUnMoZSl7aWYoIWV8fGUubGVuZ3RoPD11ZilyZXR1cm4gZTt2YXIgdD1lLmxlbmd0aCxuPWZ1bmN0aW9uKHgpe2lmKCEodHlwZW9mIHI+InUifHwhcikpe3ZhciBTPXIudGVybWluYWxPdXRwdXRNYXJrZXJ8MDtpZighKFM8PTApKXt2YXIgXz10LXg7ci50ZXJtaW5hbE91dHB1dE1hcmtlcj1TPl8/Uy1fOjB9fX0saT1lLmxlbmd0aC1hZjtpZihpPjAmJmk8ZS5sZW5ndGgpe3ZhciBhPWUuY2hhckNvZGVBdChpKTthPj01NjMyMCYmYTw9NTczNDMmJmkrK31mb3IodmFyIHU9NDA5NixzPU1hdGgubWluKGkrdSxlLmxlbmd0aCksbz1pO288cztvKyspaWYoZS5jaGFyQ29kZUF0KG8pPT09MTApe3ZhciBsPWUuc2xpY2UobysxKTtyZXR1cm4gbihsLmxlbmd0aCksbH1mb3IodmFyIGM9TWF0aC5tYXgoMCxpLTI1NiksZj0tMSxkPWktMTtkPj1jO2QtLSl7dmFyIHY9ZS5jaGFyQ29kZUF0KGQpO2lmKHY9PT0yNyl7Zj1kO2JyZWFrfWlmKHY9PT03fHx2Pj02NCYmdjw9MTI2KWJyZWFrfWlmKGYhPT0tMSl7Zm9yKHZhciBoPSExLGc9ZisxO2c8aTtnKyspe3ZhciBtPWUuY2hhckNvZGVBdChnKTtpZihtPT09Nyl7aD0hMDticmVha31pZihtPj02NCYmbTw9MTI2KXtoPSEwO2JyZWFrfX1pZighaClmb3IodmFyIHk9TWF0aC5taW4oaSsyNTYsZS5sZW5ndGgpLHc9aTt3PHk7dysrKXt2YXIgRT1lLmNoYXJDb2RlQXQodyk7aWYoRT09PTd8fEU+PTY0JiZFPD0xMjYpe3ZhciBCPWUuc2xpY2UodysxKTtyZXR1cm4gbihCLmxlbmd0aCksQn19fXZhciBGPWUuc2xpY2UoaSk7cmV0dXJuIG4oRi5sZW5ndGgpLEZ9ZnVuY3Rpb24gdWkoKXtpZihyLnRlcm1pbmFsKXtpZih0eXBlb2Ygci50ZXJtaW5hbC5yZXNldD09ImZ1bmN0aW9uIil7ci50ZXJtaW5hbC5yZXNldCgpLHlhKCksci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsci5zeW5jT3V0cHV0RGVhZGxpbmU9MDtyZXR1cm59dHlwZW9mIHIudGVybWluYWwud3JpdGU9PSJmdW5jdGlvbiImJnIudGVybWluYWwud3JpdGUoIlx4MUJjIikseWEoKSxyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNPdXRwdXREZWFkbGluZT0wfX1yLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PTAsci5fcmVzeW5jU3RhdHNDb3VudD0wLHIuX3Jlc3luY0xhc3RXYXJuQXQ9MDt2YXIgc2Y9NWUzLG9mPTEyLGxmPTNlNDtyLl9yZXN5bmNJblByb2dyZXNzPSExO2Z1bmN0aW9uIEFuKGUpe2lmKCFyLnRlcm1pbmFsfHwhci50ZXJtaW5hbE91dHB1dClyZXR1cm4hMTt2YXIgdD1lfHx7fSxuPXIudGVybWluYWxPdXRwdXRNYXJrZXJ8MDtuPDAmJihuPTApLG4+ci50ZXJtaW5hbE91dHB1dC5sZW5ndGgmJihuPXIudGVybWluYWxPdXRwdXQubGVuZ3RoKTt2YXIgaT1uPjA/ci50ZXJtaW5hbE91dHB1dC5zbGljZShuKTpyLnRlcm1pbmFsT3V0cHV0LGE9aS5sZW5ndGgsdT10eXBlb2YgcGVyZm9ybWFuY2U8InUiJiZwZXJmb3JtYW5jZS5ub3c/cGVyZm9ybWFuY2Uubm93KCk6RGF0ZS5ub3coKTtyLl9yZXN5bmNJblByb2dyZXNzPSEwO3RyeXt1aSgpLFVuKHIudGVybWluYWwsaSl9ZmluYWxseXtyLl9yZXN5bmNJblByb2dyZXNzPSExfXIubGFzdFRlcm1pbmFsUmVzeW5jQXQ9RGF0ZS5ub3coKSxFdCgib3V0cHV0IiksdC5za2lwRml0fHxldCgicmVmcmVzaCIpO3ZhciBzPURhdGUubm93KCk7aWYocy1yLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PnNmKXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQ9cyxyLl9yZXN5bmNTdGF0c0NvdW50PTE7ZWxzZSBpZihyLl9yZXN5bmNTdGF0c0NvdW50Kyssci5fcmVzeW5jU3RhdHNDb3VudD5vZiYmcy1yLl9yZXN5bmNMYXN0V2FybkF0PmxmKXtyLl9yZXN5bmNMYXN0V2FybkF0PXM7dmFyIG89dHlwZW9mIHBlcmZvcm1hbmNlPCJ1IiYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOkRhdGUubm93KCk7Y29uc29sZS53YXJuKCJbd2FuZF0gc29mdFJlc3luY1Rlcm1pbmFsIGhpZ2ggZnJlcXVlbmN5IiwiY291bnQ9IityLl9yZXN5bmNTdGF0c0NvdW50KyIvIitNYXRoLnJvdW5kKChzLXIuX3Jlc3luY1N0YXRzV2luZG93U3RhcnQpLzEwMCkvMTArInMiLCJidWZMZW49IithLCJsYXN0UmVwbGF5TXM9IitNYXRoLnJvdW5kKG8tdSkpfXJldHVybiEwfWZ1bmN0aW9uIGNmKGUpe3Iuc29mdFJlc3luY1RpbWVyJiZjbGVhclRpbWVvdXQoci5zb2Z0UmVzeW5jVGltZXIpLHIuc29mdFJlc3luY1RpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnNvZnRSZXN5bmNUaW1lcj1udWxsLEFuKCl9LHR5cGVvZiBlPT0ibnVtYmVyIj9lOjE1MCl9dmFyIGRmPS9ceDFiXFtcZCooPzo7XGQqKT9bQUJDRGZISktdLyxqcz0xNTAwLGZmPTgwMDtyLl9yZXN5bmNDaHVua0xhc3RBdD0wLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGw7ZnVuY3Rpb24gcGYoZSl7aWYoIXIuX3Jlc3luY0luUHJvZ3Jlc3MmJnIuc3luY0ZyYW1pbmdSZXNpZHVlJiYoci5zeW5jRnJhbWluZ1Jlc2lkdWU9ITEsISghZXx8dHlwZW9mIGUhPSJzdHJpbmciKSYmZS5pbmRleE9mKCJceDFCWyIpIT09LTEmJmRmLnRlc3QoZSkpKXt2YXIgdD1EYXRlLm5vdygpLG49dC1yLl9yZXN5bmNDaHVua0xhc3RBdDtpZihuPj1qcyl7ci5fcmVzeW5jQ2h1bmtUYWlsVGltZXImJihjbGVhclRpbWVvdXQoci5fcmVzeW5jQ2h1bmtUYWlsVGltZXIpLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGwpLHIuX3Jlc3luY0NodW5rTGFzdEF0PXQsQW4oKTtyZXR1cm59aWYoIXIuX3Jlc3luY0NodW5rVGFpbFRpbWVyKXt2YXIgaT1NYXRoLm1heChmZixqcy1uKTtyLl9yZXN5bmNDaHVua1RhaWxUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9bnVsbCxyLl9yZXN5bmNDaHVua0xhc3RBdD1EYXRlLm5vdygpLEFuKCl9LGkpfX19ZnVuY3Rpb24gc2koZSx0LG4pe2lmKCFyLnRlcm1pbmFsKXJldHVybiExO3ZhciBpPVFhKHR8fCIiKSxhPWV8fG51bGwsdT1ufHx7fSxzPXUubW9kZXx8ImFwcGVuZCIsbz11LnNjcm9sbCE9PSExLGw9ci50ZXJtaW5hbFNlc3Npb25JZCE9PWEsYz1yLnRlcm1pbmFsT3V0cHV0fHwiIixmPSEhKGEmJnIudGVybWluYWxMaXZlU3RyZWFtU2Vzc2lvbnNbYV0pLGQ9ITE7aWYoaT09PWMmJiFsKXJldHVybiBvJiZFdCgib3V0cHV0IiksZHQoKSwhMTtpZihsJiYodWkoKSxjPSIiLHIudGVybWluYWxPdXRwdXQ9IiIsci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wLHIudGVybWluYWxBdXRvRm9sbG93PSEwLHpuKCksZHQoKSkscz09PSJyZXBsYWNlIilpIT09YyYmKHVpKCksaSYmVW4oci50ZXJtaW5hbCxpKSxkPSEwKTtlbHNle2lmKGkubGVuZ3RoPGMubGVuZ3RoJiYhbClyZXR1cm4hMTtpZihmJiYhbCYmcyE9PSJyZXBsYWNlIiYmYyYmIWkuc3RhcnRzV2l0aChjKSlyZXR1cm4hMTtpZihpLnN0YXJ0c1dpdGgoYykpe3ZhciB2PWkuc2xpY2UoYy5sZW5ndGgpO3YmJihVbihyLnRlcm1pbmFsLHYpLGQ9ITApfWVsc2V7aWYoYyYmYy5zdGFydHNXaXRoKGkpKXJldHVybiExO3VpKCksaSYmVW4oci50ZXJtaW5hbCxpKSxkPSEwfX1yZXR1cm4gci50ZXJtaW5hbFNlc3Npb25JZD1hLHIudGVybWluYWxPdXRwdXQ9aSxyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTAsbyYmKGR8fGx8fHM9PT0icmVwbGFjZSIpP0V0KGx8fHM9PT0icmVwbGFjZSI/ImZvcmNlIjoib3V0cHV0Iik6ZHQoKSxsJiZpaShyLnRlcm1pbmFsLmNvbHMsci50ZXJtaW5hbC5yb3dzKSxkfHxsfWZ1bmN0aW9uIFZuKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKCEoIWV8fHIudGVybWluYWx8fHIudGVybWluYWxJbml0aWFsaXppbmcpKXtpZih0eXBlb2YgV1Rlcm1MaWI+InUifHwhV1Rlcm1MaWIuV1Rlcm0pe3IudGVybWluYWxJbml0UmV0cmllc3x8KHIudGVybWluYWxJbml0UmV0cmllcz0wKSxyLnRlcm1pbmFsSW5pdFJldHJpZXM8MTAmJihyLnRlcm1pbmFsSW5pdFJldHJpZXMrKyxzZXRUaW1lb3V0KFZuLDIwMCkpO3JldHVybn1yLnRlcm1pbmFsSW5pdFJldHJpZXM9MCxyLnRlcm1pbmFsSW5pdGlhbGl6aW5nPSEwLHIuc2VsZWN0ZWRJZCYmKGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSk7Zm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLnRlcm1pbmFsLXNjcm9sbC13cmFwIiksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2kucGFyZW50Tm9kZT09PWUmJmUucmVtb3ZlQ2hpbGQoaSl9dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9InRlcm1pbmFsLXNjcm9sbC13cmFwIixlLmFwcGVuZENoaWxkKGEpO3ZhciB1PW5ldyBXVGVybUxpYi5XVGVybShhLHtjb2xzOjEyMCxyb3dzOjM2LGF1dG9SZXNpemU6ITAsY3Vyc29yQmxpbms6ITEsb25EYXRhOmZ1bmN0aW9uKCl7fSxvblJlc2l6ZTpmdW5jdGlvbihvLGwpe2lpKG8sbCksci50ZXJtaW5hbCYmci50ZXJtaW5hbE91dHB1dCYmQW4oe3NraXBGaXQ6ITB9KX19KSxzPWRvY3VtZW50LmZvbnRzJiZ0eXBlb2YgZG9jdW1lbnQuZm9udHMucmVhZHk9PSJvYmplY3QiP1Byb21pc2UucmFjZShbZG9jdW1lbnQuZm9udHMucmVhZHksbmV3IFByb21pc2UoZnVuY3Rpb24obyl7c2V0VGltZW91dChvLDgwMCl9KV0pOlByb21pc2UucmVzb2x2ZSgpO3MudGhlbihmdW5jdGlvbigpe3JldHVybiB1LmluaXQoKX0pLnRoZW4oZnVuY3Rpb24oKXtpZihyLnRlcm1pbmFsPXUsci50ZXJtaW5hbEluaXRpYWxpemluZz0hMSxIdSgpLGEuaXNDb25uZWN0ZWQmJihhLm9mZnNldEhlaWdodCx0eXBlb2YgdS5yZW1lYXN1cmU9PSJmdW5jdGlvbiIpKXRyeXt1LnJlbWVhc3VyZSgpfWNhdGNoe31yLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCx6bigpO3ZhciBvPUF0KCk7aWYobyYmKHIudGVybWluYWxWaWV3cG9ydFNjcm9sbEhhbmRsZXI9ZnVuY3Rpb24oKXtpZihEYXRlLm5vdygpPHIudGVybWluYWxQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCl7ZHQoKTtyZXR1cm59aWYoUHMoKSl7ci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsem4oKSxkdCgpO3JldHVybn1nYSgpfSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcj1mdW5jdGlvbihjKXtjLnRvdWNoZXMmJmMudG91Y2hlcy5sZW5ndGg9PT0xJiYoci50ZXJtaW5hbFRvdWNoU3RhcnRZPWMudG91Y2hlc1swXS5jbGllbnRZKX0sci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyPWZ1bmN0aW9uKGMpeyFjLnRvdWNoZXN8fGMudG91Y2hlcy5sZW5ndGghPT0xfHx0eXBlb2Ygci50ZXJtaW5hbFRvdWNoU3RhcnRZPT0ibnVtYmVyIiYmYy50b3VjaGVzWzBdLmNsaWVudFktci50ZXJtaW5hbFRvdWNoU3RhcnRZPjQmJmdhKCl9LG8uYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyLHtwYXNzaXZlOiEwfSksby5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlcix7cGFzc2l2ZTohMH0pLG8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXIse3Bhc3NpdmU6ITB9KSksci50ZXJtaW5hbFdoZWVsSGFuZGxlcj1mdW5jdGlvbihjKXtjLmRlbHRhWTwwJiZnYSgpLGMuc3RvcFByb3BhZ2F0aW9uKCl9LGUuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIudGVybWluYWxXaGVlbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxRZChlKSxyLnNlbGVjdGVkSWQpe3ZhciBsPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5pZD09PXIuc2VsZWN0ZWRJZH0pO2wmJnNpKGwuaWQsbC5vdXRwdXR8fCIiLHttb2RlOiJhcHBlbmQiLHNjcm9sbDohMX0pfWVsc2UgVW4odSxgXHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCXHU0RjYwXHU3Njg0XHU3QjJDXHU0RTAwXHU2QjIxXHU1QkY5XHU4QkREXHUzMDAyXHIKYCk7ci50ZXJtaW5hbENsaWNrSGFuZGxlcj1mdW5jdGlvbihjKXtnaSgpfHxSdChjKX0sZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsci50ZXJtaW5hbENsaWNrSGFuZGxlciksZHQoKSxJZCgpLE1kKCksemQoKSxVZCgpLGV0KCJtb3VudCIse2ZvcmNlUmVwbGF5OiEwfSksZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCIpJiZbMTIwLDM1MCw3MDBdLmZvckVhY2goZnVuY3Rpb24oYyl7c2V0VGltZW91dChmdW5jdGlvbigpe3IudGVybWluYWwmJmV0KCJlbWJlZC1zZXR0bGUiKX0sYyl9KX0pLmNhdGNoKGZ1bmN0aW9uKG8pe3IudGVybWluYWxJbml0aWFsaXppbmc9ITEsY29uc29sZS5lcnJvcigiW3dhbmRdIHd0ZXJtIGluaXQgZmFpbGVkOiIsbyl9KX19ZnVuY3Rpb24gdmYoZSx0KXtpZighKCFyLnNlbGVjdGVkSWR8fCFlKSl7dmFyIG49ci5zZWxlY3RlZElkKyI6IitlO2lmKHIudG9vbENvbnRlbnRDYWNoZVtuXSl7dChudWxsLHIudG9vbENvbnRlbnRDYWNoZVtuXSk7cmV0dXJufWZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi90b29sLWNvbnRlbnQvIitlbmNvZGVVUklDb21wb25lbnQoZSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aS5lcnJvcj90KGkuZXJyb3IsbnVsbCk6KHIudG9vbENvbnRlbnRDYWNoZVtuXT1pLHQobnVsbCxpKSl9KS5jYXRjaChmdW5jdGlvbigpe3QoIlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNSIsbnVsbCl9KX19ZnVuY3Rpb24geG4oZSl7cmV0dXJuISEoci5jb25maWcmJnIuY29uZmlnLmNhcmREZWZhdWx0cyYmci5jb25maWcuY2FyZERlZmF1bHRzW2VdKX1mdW5jdGlvbiBiYShlLHQsbixpKXtpZighKCFlfHxlLmRhdGFzZXQudHJ1bmNhdGVkIT09InRydWUifHxlLmRhdGFzZXQubG9hZGVkPT09InRydWUiKSl7dmFyIGE9ZS5kYXRhc2V0LnRvb2xVc2VJZDthJiYodCYmKHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJ0b29sLWNvbnRlbnQtbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+JyksZS5kYXRhc2V0LmxvYWRlZD0ibG9hZGluZyIsdmYoYSxmdW5jdGlvbih1LHMpe2lmKHUpe3QmJih0LmlubmVySFRNTD1pfHwnPGRpdiBjbGFzcz0idG9vbC1jb250ZW50LWVycm9yIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdTcwQjlcdTUxRkJcdTkxQ0RcdThCRDU8L2Rpdj4nKSxlLmRhdGFzZXQubG9hZGVkPSIiO3JldHVybn1lLmRhdGFzZXQudHJ1bmNhdGVkPSJmYWxzZSIsZS5kYXRhc2V0LmxvYWRlZD0idHJ1ZSI7dmFyIG89dHlwZW9mIHMuY29udGVudD09InN0cmluZyI/cy5jb250ZW50OkpTT04uc3RyaW5naWZ5KHMuY29udGVudCk7bihvLHMpfSkpfX13aW5kb3cuX190Y1RvZ2dsZT1mdW5jdGlvbihlLHQpe3ZhciBuPXQuY2xvc2VzdCgiLnRvb2wtdXNlLWNhcmQiKXx8dC5jbG9zZXN0KCIuaW5saW5lLWRpZmYiKTtpZihuKXt2YXIgaT1uLmNsYXNzTGlzdC5jb250YWlucygiY29sbGFwc2VkIik7bi5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiKTt2YXIgYT1uLmRhdGFzZXQuZXhwYW5kS2luZHx8InRvb2wtY2FyZCI7aWYod24obixhKSxpKXt2YXIgdT1uLnF1ZXJ5U2VsZWN0b3IoIi50b29sLXVzZS1yZXN1bHQiKTtiYShuLHUsZnVuY3Rpb24ocyl7dSYmKHUuaW5uZXJIVE1MPSc8cHJlIGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQtY29udGVudCI+JytwKHMpKyI8L3ByZT4iKX0sYDxkaXYgY2xhc3M9InRvb2wtY29udGVudC1lcnJvciIgb25jbGljaz0iX190Y1RvZ2dsZShudWxsLCB0aGlzLmNsb3Nlc3QoJy50b29sLXVzZS1jYXJkLC5pbmxpbmUtZGlmZicpLnF1ZXJ5U2VsZWN0b3IoJy50b29sLXVzZS1oZWFkZXIsLmRpZmYtaGVhZGVyJykpIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdTcwQjlcdTUxRkJcdTkxQ0RcdThCRDU8L2Rpdj5gKX19ZSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKX0sd2luZG93Ll9fdGhpbmtpbmdUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jbGFzc0xpc3QuY29udGFpbnMoImNvbGxhcHNlZCIpO2lmKHQpe2UuY2xhc3NMaXN0LnJlbW92ZSgiY29sbGFwc2VkIiksZS5jbGFzc0xpc3QuYWRkKCJleHBhbmRlZCIpLGUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1wcmV2aWV3IikudGV4dENvbnRlbnQ9ZS5kYXRhc2V0LnRoaW5raW5nfHwiIjt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtYWN0aW9uIik7biYmKG4udGV4dENvbnRlbnQ9Ilx1NjUzNlx1OEQ3NyIpfWVsc2V7ZS5jbGFzc0xpc3QucmVtb3ZlKCJleHBhbmRlZCIpLGUuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIik7dmFyIGk9KGUuZGF0YXNldC50aGlua2luZ3x8IiIpLnNsaWNlKDAsNTcpKygoZS5kYXRhc2V0LnRoaW5raW5nfHwiIikubGVuZ3RoPjYwPyJcdTIwMjYiOiIiKTtlLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtcHJldmlldyIpLnRleHRDb250ZW50PWk7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctaW5saW5lLWFjdGlvbiIpO24mJihuLnRleHRDb250ZW50PSJcdTVDNTVcdTVGMDAiKX13bihlLCJ0aGlua2luZyIpfSx3aW5kb3cuX19zdWJhZ2VudFJlcGx5VG9nZ2xlPWZ1bmN0aW9uKGUsdCl7ZSYmKGUucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpKTt2YXIgbj10JiZ0LmNsb3Nlc3Q/dC5jbG9zZXN0KCIuc3ViYWdlbnQtcmVwbHkiKTpudWxsO2lmKG4pe3ZhciBpPW4uZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIik9PT0idHJ1ZSI7JGkobiwic3ViYWdlbnQtcmVwbHkiLCFpKSx3bihuLCJzdWJhZ2VudC1yZXBseSIpfX0sd2luZG93Ll9fc3ViYWdlbnRQYW5lbFRvZ2dsZT1mdW5jdGlvbihlLHQpe2UmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk7dmFyIG49dCYmdC5jbG9zZXN0P3QuY2xvc2VzdCgiLnN1YmFnZW50LXBhbmVsIik6bnVsbDtpZihuKXt2YXIgaT1uLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiOyRpKG4sInN1YmFnZW50LXBhbmVsIiwhaSksd24obiwic3ViYWdlbnQtcGFuZWwiKX19O2Z1bmN0aW9uIG1mKGUpe2lmKGUpZm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgnLnN1YmFnZW50LXBhbmVsW2RhdGEtZXhwYW5kZWQ9ImZhbHNlIl0nKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl0ucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLWJvZHkiKTtpJiYoaS5zY3JvbGxUb3A9aS5zY3JvbGxIZWlnaHQpfX13aW5kb3cuX19vcGVuRmlsZVByZXZpZXc9ZnVuY3Rpb24oZSl7ZSYmWXIoZSl9LHdpbmRvdy5fX2lubGluZVRvb2xUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jbGFzc0xpc3QudG9nZ2xlKCJpbmxpbmUtdG9vbC1vcGVuIiksbj1lLnF1ZXJ5U2VsZWN0b3IoIi5pbmxpbmUtdG9vbC1leHBhbmRlZCIpO24mJihuLnN0eWxlLmRpc3BsYXk9dD8iYmxvY2siOiJub25lIik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIuaW5saW5lLXRvb2wtc3RhdHVzIik7aSYmKGUuZGF0YXNldC5zdGF0dXM9PT0iZXJyb3IiP2kudGV4dENvbnRlbnQ9Ilx1MjcxNyI6ZS5kYXRhc2V0LnN0YXR1cz09PSJkb25lIiYmKGkudGV4dENvbnRlbnQ9Ilx1MjcxMyIpKSx0JiZiYShlLG4sZnVuY3Rpb24oYSl7ZS5kYXRhc2V0LnJlc3VsdD1hLG4mJihuLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0Ij4nKyRvKGEsIiIpKyI8L2Rpdj4iKX0pLHduKGUsImlubGluZS10b29sIil9LHdpbmRvdy5fX3Rlcm1pbmFsRXhwYW5kPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xvc2VzdCgiLmlubGluZS10ZXJtaW5hbCIpO2lmKHQpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO2lmKG4pe3ZhciBpPW4uc3R5bGUuZGlzcGxheT09PSJub25lIjtuLnN0eWxlLmRpc3BsYXk9aT8iYmxvY2siOiJub25lIix0LmRhdGFzZXQuZXhwYW5kZWQ9aT8idHJ1ZSI6ImZhbHNlIjt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLXRvZ2dsZS1pY29uIik7aWYoYSYmKGEudGV4dENvbnRlbnQ9aT8iXHUyNUJDIjoiXHUyNUI2Iiksd24odCwidGVybWluYWwiKSxpKXt2YXIgdT1uLnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLW91dHB1dCIpO2JhKHQsdSxmdW5jdGlvbihzKXtpZih1KXtmb3IodmFyIG89cy5zcGxpdChgCmApLGw9IiIsYz0wO2M8by5sZW5ndGg7YysrKSFvW2NdJiZjPT09by5sZW5ndGgtMXx8KGwrPSc8ZGl2IGNsYXNzPSJ0ZXJtLWxpbmUiPicrcChvW2NdKSsiPC9kaXY+Iik7dS5pbm5lckhUTUw9bH19KX19fX07ZnVuY3Rpb24gT2coZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLXN0cmVhbWluZyIpO2lmKHQpe3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLXN0cmVhbWluZy10ZXh0Iik7aWYobil7dmFyIGk9ZS5zcGxpdChgCmApLGE9aS5zbGljZSgtMyk7bi50ZXh0Q29udGVudD1hLmpvaW4oYApgKSxuLnNjcm9sbFRvcD1uLnNjcm9sbEhlaWdodH19fXdpbmRvdy5fX2Fza1NlbGVjdD1mdW5jdGlvbihlLHQsbixpKXt2YXIgYT1yLmFza1VzZXJTZWxlY3Rpb25zW2VdO2lmKGF8fChhPXtzdWJtaXR0ZWQ6ITF9LHIuYXNrVXNlclNlbGVjdGlvbnNbZV09YSksIWEuc3VibWl0dGVkKXt2YXIgdT1hW3RdfHxbXTtpZihpKXt2YXIgcz11LmluZGV4T2Yobik7cz09PS0xP3UucHVzaChuKTp1LnNwbGljZShzLDEpfWVsc2UgdT11WzBdPT09bj9bXTpbbl07YVt0XT11LHdpbmRvdy5fX2Fza1JlbmRlcihlKX19LHdpbmRvdy5fX2Fza1JlbmRlcj1mdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sLXVzZS1pZD0iJytlKyciXScpO2lmKHQpe3ZhciBuPXIuYXNrVXNlclNlbGVjdGlvbnNbZV18fHt9O3QucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLW9wdGlvbiIpLmZvckVhY2goZnVuY3Rpb24ocyl7dmFyIG89cGFyc2VJbnQocy5kYXRhc2V0LnF1ZXN0aW9uSW5kZXgsMTApLGw9cGFyc2VJbnQocy5kYXRhc2V0Lm9wdGlvbkluZGV4LDEwKSxjPShuW29dfHxbXSkuaW5kZXhPZihsKSE9PS0xO3MuY2xhc3NMaXN0LnRvZ2dsZSgic2VsZWN0ZWQiLGMpfSk7dmFyIGk9dC5xdWVyeVNlbGVjdG9yKCIuYXNrLXVzZXItc3VibWl0Iik7aWYoaSl7dmFyIGE9dC5xdWVyeVNlbGVjdG9yQWxsKCIuYXNrLXVzZXItcXVlc3Rpb24tZ3JvdXAiKSx1PSEwO2EuZm9yRWFjaChmdW5jdGlvbihzLG8peyghbltvXXx8bltvXS5sZW5ndGg9PT0wKSYmKHU9ITEpfSksaS5kaXNhYmxlZD0hdXx8ISFuLnN1Ym1pdHRlZCxuLnN1Ym1pdHRlZCYmKGkudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjNEMFx1NEVBNC4uLiIsaS5jbGFzc0xpc3QuYWRkKCJhc2stdXNlci1zdWJtaXR0ZWQiKSl9fX0sd2luZG93Ll9fYXNrU3VibWl0PWZ1bmN0aW9uKGUpe3ZhciB0PXIuYXNrVXNlclNlbGVjdGlvbnNbZV07aWYoISghdHx8dC5zdWJtaXR0ZWR8fCFyLnNlbGVjdGVkSWQpKXt2YXIgbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdbZGF0YS10b29sLXVzZS1pZD0iJytlKyciXScpO2lmKG4pe3ZhciBpPW4ucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwIiksYT1bXSx1PSEwO2lmKGkuZm9yRWFjaChmdW5jdGlvbihvLGwpe3ZhciBjPXRbbF18fFtdO2lmKGMubGVuZ3RoPT09MCl7dT0hMTtyZXR1cm59dmFyIGY9W107Yy5mb3JFYWNoKGZ1bmN0aW9uKGQpe3ZhciB2PW8ucXVlcnlTZWxlY3RvcignW2RhdGEtb3B0aW9uLWluZGV4PSInK2QrJyJdJyk7diYmZi5wdXNoKHYuZGF0YXNldC5vcHRpb25MYWJlbCl9KSxhLnB1c2goZi5qb2luKCIsICIpKX0pLCEhdSl7dC5zdWJtaXR0ZWQ9ITAsd2luZG93Ll9fYXNrUmVuZGVyKGUpO3ZhciBzPWEuam9pbihgCmApO2ZldGNoKCIvYXBpL3Nlc3Npb25zLyIrci5zZWxlY3RlZElkKyIvaW5wdXQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDpzK2AKYCx2aWV3OnIuY3VycmVudFZpZXd9KX0pLmNhdGNoKGZ1bmN0aW9uKG8pe2NvbnNvbGUuZXJyb3IoIlt3YW5kXSBFcnJvciBzZW5kaW5nIGFuc3dlcjoiLG8pLHQuc3VibWl0dGVkPSExLHdpbmRvdy5fX2Fza1JlbmRlcihlKX0pfX19fTtmdW5jdGlvbiBnZigpe2lmKCFyLl9fZ2xvYmFsTGlzdGVuZXJzQm91bmQpe3IuX19nbG9iYWxMaXN0ZW5lcnNCb3VuZD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1vdmVyZmxvdy1tZW51Iik7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIixmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLW92ZXJmbG93LW1lbnUiKTt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKX0pO3ZhciBlPWZ1bmN0aW9uKCl7ci50b3BiYXJNb3JlT3Blbj0hMTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtbWVudSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLWJ1dHRvbiIpO3QmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbiYmKG4uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksbi5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpKX07ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKHIudG9wYmFyTW9yZU9wZW4pe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1tZW51IiksaT1uJiZuLnBhcmVudEVsZW1lbnQ7aSYmIWkuY29udGFpbnModC50YXJnZXQpJiZlKCl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmci50b3BiYXJNb3JlT3BlbiYmZSgpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKHIucGx1c1BvcG92ZXJPcGVuKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpO24mJm4uY29udGFpbnModC50YXJnZXQpfHxpJiZpLmNvbnRhaW5zKHQudGFyZ2V0KXx8cWkoKX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbih0KXt0LmtleT09PSJFc2NhcGUiJiZyLnBsdXNQb3BvdmVyT3BlbiYmcWkoKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXt2YXIgbj10LnRhcmdldDtpZighKCFufHx0eXBlb2Ygbi5jbG9zZXN0IT0iZnVuY3Rpb24iKSl7dmFyIGk9bi5jbG9zZXN0KCIjYXV0by1hcHByb3ZlLXRvZ2dsZSIpO2kmJih0LnByZXZlbnREZWZhdWx0KCksQmQoKSl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe2lmKCF0LnRhcmdldC5jbG9zZXN0KCIuZm9sZGVyLXBpY2tlci1jb250YWluZXIiKSl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItZHJvcGRvd24iKTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24odCl7dmFyIG49dC50YXJnZXQ7aWYoISghbnx8bi5ub2RlVHlwZSE9PTEpJiYhKHR5cGVvZiBuLm1hdGNoZXMhPSJmdW5jdGlvbiJ8fCFuLm1hdGNoZXMoIltkYXRhLW1vZGUtY29udHJvbF0iKSkpe3ZhciBpPW4uZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUtY29udHJvbCIpLGE9bi52YWx1ZTtpPT09Im1vZGUiP21tKGEpOmk9PT0ibW9kZWwiP3ZtKGEpOmk9PT0idGhpbmtpbmciJiZjbShhKSxuLmNsb3Nlc3QmJm4uY2xvc2VzdCgiI2NvbXBvc2VyLXBsdXMtcG9wb3ZlciIpJiZxaSgpfX0pfX1mdW5jdGlvbiBoZigpe2dmKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWJ1dHRvbiIpO2lmKGUpe2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCRhKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tZm9ybSIpO3QmJnQuYWRkRXZlbnRMaXN0ZW5lcigic3VibWl0IixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksJGEoKX0pO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1zd2l0Y2gtc2VydmVyLWJ1dHRvbiIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGVsKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2dnbGUtcGFzc3dvcmQtYnV0dG9uIik7YSYmaSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj1pLnR5cGU9PT0idGV4dCI7aS50eXBlPWI/InBhc3N3b3JkIjoidGV4dCIsYS50ZXh0Q29udGVudD1iPyJcdTY2M0VcdTc5M0EiOiJcdTk2OTBcdTg1Q0YiLGEuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixiPyJcdTY2M0VcdTc5M0FcdTVCQzZcdTc4MDEiOiJcdTk2OTBcdTg1Q0ZcdTVCQzZcdTc4MDEiKSxhLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixiPyJmYWxzZSI6InRydWUiKSxpLmZvY3VzKCl9KSxpJiYoaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXtiLmtleT09PSJFbnRlciImJiRhKCl9KSxpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe2kuZGF0YXNldC5lcnJvcj0iZmFsc2UiLGkuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJmYWxzZSIpO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1lcnJvciIpO2ImJmxpKGIpfSksaS5mb2N1cygpKTtyZXR1cm59dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKTt1JiYodS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXtiLmtleT09PSJFbnRlciImJiFiLnNoaWZ0S2V5JiYoYi5wcmV2ZW50RGVmYXVsdCgpLHRvKCkpfSksdS5mb2N1cygpKTt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS1zZW5kLWJ0biIpO3MmJnMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dG8oKX0pO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLXRvb2wtY2xhdWRlIik7byYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtBbCgpfSk7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtdG9vbC1jb2RleCIpO2wmJmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5zZXNzaW9uVG9vbD0iY29kZXgiLHIucHJlZmVycmVkQ29tbWFuZD0iY29kZXgiLHIubW9kZVZhbHVlPSJmdWxsLWFjY2VzcyIsQWwoKX0pO3ZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLXRvb2wtc3RydWN0dXJlZCIpO2MmJmMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7Z2woKS50aGVuKGZ1bmN0aW9uKCl7UnQoITApfSkuY2F0Y2goZnVuY3Rpb24oYil7ayhiJiZiLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTdFRDNcdTY3ODRcdTUzMTZcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpfSl9KSx0ZygpO3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1saXN0Iik7ZiYmKGYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEdkKSxmLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLFlkKSxmLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsQW0pLGYuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLHhtKSxZcChmKSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIscm4sITApLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHJuKTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvdmlkZXItY2FyZHMiKTtkJiZkLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgQT1iLnRhcmdldC5jbG9zZXN0KCIucHJvdmlkZXItY2FyZCIpO2lmKCEoIUF8fEEuY2xhc3NMaXN0LmNvbnRhaW5zKCJkaXNhYmxlZCIpKSl7dmFyIGo9QS5nZXRBdHRyaWJ1dGUoImRhdGEtcHJvdmlkZXIiKTtqJiYoci5zZXNzaW9uVG9vbD1qLHIucHJlZmVycmVkQ29tbWFuZD1qLFRyKCkpfX0pO3ZhciB2PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWtpbmQtY2FyZHMiKTt2JiZ2LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgQT1iLnRhcmdldC5jbG9zZXN0KCIuc2Vzc2lvbi1raW5kLWNhcmQiKTtpZighKCFBfHxBLmNsYXNzTGlzdC5jb250YWlucygiZGlzYWJsZWQiKSkpe3ZhciBqPUEuZ2V0QXR0cmlidXRlKCJkYXRhLXNlc3Npb24ta2luZCIpO2omJihyLnNlc3Npb25DcmVhdGVLaW5kPWosVHIoKSl9fSk7dmFyIGg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGUtY2FyZHMiKTtoJiZoLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgQT1iLnRhcmdldC5jbG9zZXN0KCIubW9kZS1jYXJkIik7aWYoQSl7dmFyIGo9QS5nZXRBdHRyaWJ1dGUoImRhdGEtbW9kZSIpO2omJihyLm1vZGVWYWx1ZT1qLFRyKCkpfX0pO3ZhciBnPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLXdvcmt0cmVlLXRvZ2dsZSIpO2cmJmcuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3Iuc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlPWcuY2hlY2tlZH0pO3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTttJiYobS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLmN3ZFZhbHVlPW0udmFsdWV9KSxtLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLmN3ZFZhbHVlPW0udmFsdWV9KSxtLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixTbCksbS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsU2wpLG0uYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KG5yLDEyMCl9KSk7dmFyIHk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLXRvZ2dsZS1idXR0b24iKTt5JiZ5LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixGbSk7dmFyIHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWRyYXdlci1iYWNrZHJvcCIpO3cmJncuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFByKTt2YXIgRT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2UtZHJhd2VyLWJ1dHRvbiIpO0UmJkUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFByKTt2YXIgQj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1jb2xsYXBzZS1idG4iKTtCJiZCLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixTbSk7dmFyIEY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItcGluLWJ0biIpO0YmJkYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEltKTt2YXIgeD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1tb3JlLWJ0biIpLFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItb3ZlcmZsb3ctbWVudSIpO3gmJlMmJnguYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIEE9IVMuY2xhc3NMaXN0LmNvbnRhaW5zKCJvcGVuIik7Uy5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixBKSxBJiZMbShTKX0pO3ZhciBfPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLWhvbWUtYnRuIik7XyYmXy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLnNlbGVjdGVkSWQ9bnVsbCx3ZSgpLHh0KCksVXQoKSx0bigpfSk7dmFyIEs9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItcmVmcmVzaC1idG4iKTtLJiZLLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3dpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKX0pO3ZhciBZPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dvdXQtYnV0dG9uIik7WSYmWS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGwpO3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzd2l0Y2gtc2VydmVyLWJ1dHRvbiIpO0kmJkkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGVsKTt2YXIgRD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmFjay10by1uYXRpdmUtYnV0dG9uIik7RCYmRC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbm0pO3ZhciBMPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1idXR0b24iKTtMJiZMLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixxbSk7dmFyIFA9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLXNldHRpbmdzLWJ1dHRvbiIpO1AmJlAuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGVyKTt2YXIgej1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTt6JiZ6LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldC5pZD09PSJzZXR0aW5ncy1tb2RhbCImJmVyKCl9KTt2YXIgVT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2F2ZS1wYXNzd29yZC1idXR0b24iKTtVJiZVLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixPbSk7Zm9yKHZhciBlZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksdGU9MDt0ZTxlZS5sZW5ndGg7dGUrKyllZVt0ZV0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBBPWIuY3VycmVudFRhcmdldHx8dGhpcyxqPUEmJkEuZ2V0QXR0cmlidXRlP0EuZ2V0QXR0cmlidXRlKCJkYXRhLXRhYiIpOm51bGw7aiYmY3Uoail9KTt2YXIgYWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtY29uZmlnLWJ1dHRvbiIpO2FlJiZhZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsV20pO3ZhciB1ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwtcmVmcmVzaCIpO3VlJiZ1ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZm0pO3ZhciBUPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctdmlldy1lbnYtYnRuIik7VCYmVC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscG0pO3ZhciBNPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXZlLWRpc3BsYXktYnV0dG9uIik7TSYmTS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsem0pO3ZhciBOPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAtaWNvbi1waWNrZXIiKTtpZihOKWZvcih2YXIgSj1OLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24iKSxHPTA7RzxKLmxlbmd0aDtHKyspSltHXS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj10aGlzLmdldEF0dHJpYnV0ZSgiZGF0YS1pY29uIik7aWYoISghYnx8dHlwZW9mIFdhbmROYXRpdmU+InUifHx0eXBlb2YgV2FuZE5hdGl2ZS5zZXRBcHBJY29uIT0iZnVuY3Rpb24iKSl0cnl7V2FuZE5hdGl2ZS5zZXRBcHBJY29uKGIpLENsKGIpO3ZhciBBPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAtaWNvbi1tZXNzYWdlIik7QSYmKEEudGV4dENvbnRlbnQ9Ilx1NTZGRVx1NjgwN1x1NURGMlx1NTIwN1x1NjM2Mlx1RkYwQ1x1OEZENFx1NTZERVx1Njg0Q1x1OTc2Mlx1NTQwRVx1NzUxRlx1NjU0OCIsQS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLEEuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksc2V0VGltZW91dChmdW5jdGlvbigpe0EuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9LDNlMykpfWNhdGNoe319KTt2YXIgcmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwbG9hZC1jZXJ0LWJ1dHRvbiIpO3JlJiZyZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsVW0pO2Zvcih2YXIgc2U9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmZpbGUtcGlja2VyLWlucHV0Iiksb2U9MDtvZTxzZS5sZW5ndGg7b2UrKykoZnVuY3Rpb24oYil7Yi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIEE9Yi5jbG9zZXN0KCIuZmlsZS1waWNrZXIiKTtpZihBKXt2YXIgaj1BLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXBpY2tlci1uYW1lIik7aiYmKGIuZmlsZXMmJmIuZmlsZXNbMF0/KGoudGV4dENvbnRlbnQ9Yi5maWxlc1swXS5uYW1lLEEuY2xhc3NMaXN0LmFkZCgiZmlsZS1waWNrZXItaGFzLWZpbGUiKSk6KGoudGV4dENvbnRlbnQ9ai5nZXRBdHRyaWJ1dGUoImRhdGEtZGVmYXVsdCIpfHwiXHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2IixBLmNsYXNzTGlzdC5yZW1vdmUoImZpbGUtcGlja2VyLWhhcy1maWxlIikpKX19KX0pKHNlW29lXSk7dmFyIG5lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGVjay11cGRhdGUtYnV0dG9uIik7bmUmJm5lLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix3bCk7dmFyIHFlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby11cGRhdGUtYnV0dG9uIik7cWUmJnFlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixWbSk7dmFyIERlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby1yZXN0YXJ0LWJ1dHRvbiIpO0RlJiZEZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsS20pO3ZhciBoZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtd2ViLXRvZ2dsZSIpO2hlJiZoZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ZHUoIndlYiIsaGUuY2hlY2tlZCl9KTt2YXIgcT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIpO3EmJnEuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe2R1KCJhcGsiLHEuY2hlY2tlZCl9KTt2YXIgVWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWRtZy10b2dnbGUiKTtVZSYmVWUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe2R1KCJkbWciLFVlLmNoZWNrZWQpfSk7dmFyIHZ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJiZXRhLWNoYW5uZWwtdG9nZ2xlIik7dnQmJnZ0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtZbSh2dC5jaGVja2VkPyJiZXRhIjoic3RhYmxlIil9KTt2YXIgd3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHktY29ubmVjdC1jb2RlLWJ1dHRvbiIpO3d0JiZ3dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LWNvZGUiKTtiJiZIcihiLnRleHRDb250ZW50LHd0KX0pO3ZhciBXPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtc291bmQiKTtXJiYoVy5jaGVja2VkPXIubm90aWZTb3VuZCxXLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLm5vdGlmU291bmQ9Vy5jaGVja2VkO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi1zb3VuZCIsU3RyaW5nKHIubm90aWZTb3VuZCkpfWNhdGNoe31yLm5vdGlmU291bmQmJmZpKCk7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmLXZvbHVtZS1maWVsZCIpO2ImJihiLnN0eWxlLmRpc3BsYXk9ci5ub3RpZlNvdW5kPyIiOiJub25lIil9KSk7dmFyIFg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi12b2x1bWUiKSxwZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZS12YWwiKSx5ZT1mdW5jdGlvbihiKXtpZihiKXt2YXIgQT1OdW1iZXIoYi5taW58fDApLGo9TnVtYmVyKGIubWF4fHwxMDApLEJlPU51bWJlcihiLnZhbHVlfHwwKSxEdD1qPkE/TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsKEJlLUEpLyhqLUEpKjEwMCkpOjA7Yi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1yYW5nZS1maWxsIixEdCsiJSIpfX07aWYoWCl7WC52YWx1ZT1TdHJpbmcoci5ub3RpZlZvbHVtZSkscGUmJihwZS50ZXh0Q29udGVudD1yLm5vdGlmVm9sdW1lKyIlIikseWUoWCk7dmFyIENlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZi12b2x1bWUtZmllbGQiKTtDZSYmKENlLnN0eWxlLmRpc3BsYXk9ci5ub3RpZlNvdW5kPyIiOiJub25lIik7dmFyIG10PW51bGw7WC5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLm5vdGlmVm9sdW1lPXBhcnNlSW50KFgudmFsdWUsMTApLHBlJiYocGUudGV4dENvbnRlbnQ9ci5ub3RpZlZvbHVtZSsiJSIpLHllKFgpO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi12b2x1bWUiLFN0cmluZyhyLm5vdGlmVm9sdW1lKSl9Y2F0Y2h7fWlmKFdlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zZXROb3RpZmljYXRpb25Wb2x1bWU9PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc2V0Tm90aWZpY2F0aW9uVm9sdW1lKHIubm90aWZWb2x1bWUpfWNhdGNoe319KSxYLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtmaSgpfSl9dmFyIG90PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtYnViYmxlIik7b3QmJihvdC5jaGVja2VkPXIubm90aWZCdWJibGUsb3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3Iubm90aWZCdWJibGU9b3QuY2hlY2tlZDt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtbm90aWYtYnViYmxlIixTdHJpbmcoci5ub3RpZkJ1YmJsZSkpfWNhdGNoe319KSk7dmFyIGd0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcmVxdWVzdC1idG4iKTtndCYmZ3QuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7aWYoV2Upe3dpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0PWZ1bmN0aW9uKCl7Ym4oKSxkZWxldGUgd2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHR9O3RyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fX1lbHNlIHR5cGVvZiBOb3RpZmljYXRpb248InUiJiZOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKGZ1bmN0aW9uKCl7Ym4oKX0pfSk7dmFyIFZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tcmVzZXQtYnRuIik7VmUmJlZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixRbSk7dmFyIGh0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1idG4iKTtodCYmaHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLERsKTt2YXIgbHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LWRlbGF5LWJ0biIpO2lmKGx0JiZsdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsJG0pLGJuKCksV2UmJnR5cGVvZiBXYW5kTmF0aXZlLmdldEF2YWlsYWJsZVNvdW5kcz09ImZ1bmN0aW9uIil7dmFyIEdlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYXRpdmUtc291bmQtc2VjdGlvbiIpLGtlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYXRpdmUtc291bmQtc2VsZWN0IiksbWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdGl2ZS1zb3VuZC1wcmV2aWV3Iik7aWYoR2UmJmtlKXtHZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt0cnl7dmFyIGJlPUpTT04ucGFyc2UoV2FuZE5hdGl2ZS5nZXRBdmFpbGFibGVTb3VuZHMoKSksQz1XYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblNvdW5kKCk7a2UuaW5uZXJIVE1MPSIiO2Zvcih2YXIgaXQ9MDtpdDxiZS5sZW5ndGg7aXQrKyl7dmFyIHl0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIm9wdGlvbiIpO3l0LnZhbHVlPWJlW2l0XS5pZCx5dC50ZXh0Q29udGVudD1iZVtpdF0ubmFtZSxiZVtpdF0uaWQ9PT1DJiYoeXQuc2VsZWN0ZWQ9ITApLGtlLmFwcGVuZENoaWxkKHl0KX1rZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUuc2V0Tm90aWZpY2F0aW9uU291bmQoa2UudmFsdWUpfWNhdGNoe319KSxtZSYmbWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUucHJldmlld1NvdW5kKGtlLnZhbHVlKX1jYXRjaHt9fSl9Y2F0Y2h7fX19aWYoV2UmJnR5cGVvZiBXYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZD09ImZ1bmN0aW9uIil7dmFyIEN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYXRpdmUtaGFwdGljLXNlY3Rpb24iKSxCdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhhcHRpYy1lbmFibGVkIik7aWYoQ3QmJkJ0KXtDdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt0cnl7QnQuY2hlY2tlZD1XYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZCgpfWNhdGNoe31CdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUuc2V0SGFwdGljRW5hYmxlZChCdC5jaGVja2VkKX1jYXRjaHt9QnQuY2hlY2tlZCYmS24oIm1lZGl1bSIpfSl9fXZhciBLdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW5ldy1zZXNzaW9uLWJ1dHRvbiIpO0t0JiZLdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsb3UpO3ZhciBKdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJhd2VyLW5ldy1zZXNzaW9uLWJ1dHRvbiIpO0p0JiZKdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsb3UpO3ZhciBHdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2UtbW9kYWwtYnV0dG9uIik7R3QmJkd0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixobik7dmFyIEVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS13b3JrdHJlZS1tZXJnZS1idXR0b24iKTtFZSYmRWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFpuKTt2YXIgX2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNhbmNlbC1idXR0b24iKTtfZSYmX2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFpuKTt2YXIgQWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIik7QWUmJkFlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixQbSk7dmFyIE5lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJydW4tYnV0dG9uIik7TmUmJk5lLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixYbSk7dmFyIGJ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIik7YnQmJmJ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIix3ZCk7dmFyIGF0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkZW55LXBlcm1pc3Npb24tYnRuIik7YXQmJmF0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixDZCk7dmFyIFR0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZW5kLWlucHV0LWJ1dHRvbiIpO1R0JiZUdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtVdCgpLGVwKCl9KTt2YXIgWWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN0b3AtYnV0dG9uIik7WWUmJlllLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixxYSk7dmFyIE1uPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7TW4mJk1uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldC5pZD09PSJzZXNzaW9uLW1vZGFsIiYmaG4oKSxiLnRhcmdldC5pZD09PSJ3b3JrdHJlZS1tZXJnZS1tb2RhbCImJlpuKCl9KTt2YXIgY2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2NlJiYoa28oY2UpLGNlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHVnKSxjZS5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsdmcpLGNlLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3IudGVybWluYWxDb21wb3Npbmd8fElsKGNlKXx8KGx2KGNlKSxzdChjZS52YWx1ZSwhMCksSGkoY2UpKX0pLGNlLmFkZEV2ZW50TGlzdGVuZXIoImNvbXBvc2l0aW9uc3RhcnQiLGZ1bmN0aW9uKCl7ci50ZXJtaW5hbEludGVyYWN0aXZlJiYoci50ZXJtaW5hbENvbXBvc2luZz0hMCl9KSxjZS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsZnVuY3Rpb24oKXtyLnRlcm1pbmFsQ29tcG9zaW5nJiYoci50ZXJtaW5hbENvbXBvc2luZz0hMSxyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJklsKGNlKSl9KSxjZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXtVdCgpLG52KHt0YXJnZXQ6Y2V9KX0pLGNlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLHJ2KSk7dmFyIGN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2gtYnRuIiksWj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS11cGxvYWQtaW5wdXQiKSxJZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksVGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBsdXMtYXR0YWNoLWl0ZW0iKTtjdCYmSWUmJmN0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpLENtKCl9KSxUZSYmWiYmVGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7cWkoKSxaLmNsaWNrKCl9KSxaJiZaLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgYj1aLmZpbGVzO2lmKGIpZm9yKHZhciBBPTA7QTxiLmxlbmd0aDtBKyspZnUoYltBXSk7Wi52YWx1ZT0iIn0pO3ZhciBRZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtYnRuIik7UWUmJlFlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2thKCl9KTt2YXIgJGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLWNhbmNlbC1idG4iKTskZSYmJGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7a2EoITEpfSk7dmFyIEZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIik7RmUmJihGZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyZG93biIsVmYpLEZlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIixLZiksRmUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIiwkcyksRmUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsJHMpKTt2YXIgTGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb21wdC1vcHRpbWl6ZS1idG4iKTtMZSYmTGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7Z2coKX0pO3ZhciBYZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtYZSYmKFhlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSxYZS5jbGFzc0xpc3QuYWRkKCJkcmFnLW92ZXIiKX0pLFhlLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdsZWF2ZSIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksWGUuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxYZS5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSxYZS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTt2YXIgQT1iLmRhdGFUcmFuc2ZlciYmYi5kYXRhVHJhbnNmZXIuZmlsZXM7aWYoQSlmb3IodmFyIGo9MDtqPEEubGVuZ3RoO2orKylmdShBW2pdKX0pKTt2YXIgWXQ9WyJ0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUtdG9wIl07WXQuZm9yRWFjaChmdW5jdGlvbihiKXt2YXIgQT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKTtBJiZBLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixOcCl9KTt2YXIgSD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1wYW5lbC10b2dnbGUtYnRuIik7SCYmSC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsSnIpO3ZhciBSPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNpZGUtcGFuZWwtY2xvc2UiKTtSJiZSLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixxdSk7dmFyIFE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGFuZWwtYmFja2Ryb3AiKTtRJiZRLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixxdSk7dmFyIGRlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZmlsZS1idXR0b24iKTtkZSYmZGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEpyKTt2YXIgdmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1jd2QiKTt2ZSYmKHZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3IuZmlsZVBhbmVsT3Blbnx8SnIoKX0pLHZlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpeyhiLmtleT09PSJFbnRlciJ8fGIua2V5PT09IiAiKSYmKGIucHJldmVudERlZmF1bHQoKSxyLmZpbGVQYW5lbE9wZW58fEpyKCkpfSkpO3ZhciBPZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtYnV0dG9uIikscnI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLW1lbnUiKTtPZSYmcnImJihPZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKSxyLnRvcGJhck1vcmVPcGVuPSFyLnRvcGJhck1vcmVPcGVuLHJyLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXIudG9wYmFyTW9yZU9wZW4pLE9lLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci50b3BiYXJNb3JlT3BlbiksT2Uuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixyLnRvcGJhck1vcmVPcGVuPyJ0cnVlIjoiZmFsc2UiKX0pLHJyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgQT1iLnRhcmdldCYmYi50YXJnZXQuY2xvc2VzdD9iLnRhcmdldC5jbG9zZXN0KCIudG9wYmFyLW1vcmUtaXRlbSIpOm51bGw7aWYoQSl7dmFyIGo9QS5nZXRBdHRyaWJ1dGUoImRhdGEtYWN0aW9uIik7c3dpdGNoKHIudG9wYmFyTW9yZU9wZW49ITEscnIuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksT2UuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksT2Uuc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSxqKXtjYXNlImNvcHktY2xhdWRlLXNlc3Npb24taWQiOnZhKCJjbGF1ZGVTZXNzaW9uSWQiLE50KCkmJk50KCkucHJvdmlkZXI9PT0iY29kZXgiPyJDb2RleCB0aHJlYWQgSUQgXHU1REYyXHU1OTBEXHU1MjM2IjoiQ2xhdWRlIFx1NEYxQVx1OEJERCBJRCBcdTVERjJcdTU5MERcdTUyMzYiKTticmVhaztjYXNlImNvcHktY3dkIjp2YSgiY3dkIiwiXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHU1REYyXHU1OTBEXHU1MjM2Iik7YnJlYWs7Y2FzZSJjb3B5LXNlc3Npb24taWQiOnZhKCJpZCIsIlx1NEYxQVx1OEJERCBJRCBcdTVERjJcdTU5MERcdTUyMzYiKTticmVhaztjYXNlIndvcmt0cmVlLW1lcmdlIjpyLnNlbGVjdGVkSWQmJnlsKHIuc2VsZWN0ZWRJZCk7YnJlYWs7Y2FzZSJ3b3JrdHJlZS1jbGVhbnVwIjpyLnNlbGVjdGVkSWQmJmJsKHIuc2VsZWN0ZWRJZCk7YnJlYWs7Y2FzZSJkZWxldGUtc2Vzc2lvbiI6ci5zZWxlY3RlZElkJiYoZnVuY3Rpb24oQmUpe2tuKCJcdTc4NkVcdTVCOUFcdTg5ODFcdTUyMjBcdTk2NjRcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTU0MTdcdUZGMUZcdTZCNjRcdTY0Q0RcdTRGNUNcdTY1RTBcdTZDRDVcdTY0QTRcdTk1MDBcdTMwMDIiLHt0aXRsZToiXHU1MjIwXHU5NjY0XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREIn0pLnRoZW4oZnVuY3Rpb24oRHQpe0R0JiZ5byhCZSl9KX0pKHIuc2VsZWN0ZWRJZCk7YnJlYWt9fX0pKTt2YXIgUnI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXNjYWxlLWRvd24tdG9wIiksUmk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLXNjYWxlLXVwLXRvcCIpO1JyJiZSci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtPdSgtLjI1KX0pLFJpJiZSaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtPdSguMjUpfSk7dmFyIFRsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwYWdlLXJlZnJlc2gtYnRuIik7VGwmJlRsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtpZihiJiZiLnNoaWZ0S2V5KXtsb2NhdGlvbi5yZWxvYWQoKTtyZXR1cm59QW4oKSx4dCh7cHJlc2VydmVTdGlja1N0YXRlOiEwfSksTmEoITApfSk7dmFyIExsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1qdW1wLWJvdHRvbSIpO0xsJiZMbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtFdCgiZm9yY2UiKX0pO3ZhciBNbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC11bnJlYWQtYnViYmxlIik7TWwmJk1sLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3RjKCEwKX0pO3ZhciBQbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3Jlci1yZWZyZXNoIik7UGwmJlBsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3F0KCl9KTt2YXIgcWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItdXAiKTtxbCYmcWwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGJjKTt2YXIgS2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItY3dkIik7aWYoS2UmJktlLnRhZ05hbWU9PT0iSU5QVVQiKXt2YXIgaXI9S2UudmFsdWUsT2w9ZnVuY3Rpb24oYil7dmFyIEE9KGJ8fCIiKS50cmltKCk7cmV0dXJuIEE/KEE9QS5yZXBsYWNlKC9cL3syLH0vZywiLyIpLEEubGVuZ3RoPjEmJihBPUEucmVwbGFjZSgvXC8rJC8sIiIpKSxBKToiIn07S2UuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7aXI9S2UudmFsdWUsc2V0VGltZW91dChmdW5jdGlvbigpe3RyeXtLZS5zZWxlY3QoKX1jYXRjaHt9fSwwKX0pLEtlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKGIpe2lmKGIua2V5PT09IkVudGVyIil7Yi5wcmV2ZW50RGVmYXVsdCgpO3ZhciBBPU9sKEtlLnZhbHVlKTtpZighQSlyZXR1cm47aXI9QSxLZS52YWx1ZT1BLHF0KHtjd2Q6QX0pLEtlLmJsdXIoKX1lbHNlIGIua2V5PT09IkVzY2FwZSImJihiLnByZXZlbnREZWZhdWx0KCksS2UudmFsdWU9aXIsS2UuYmx1cigpKX0pLEtlLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGZ1bmN0aW9uKCl7dmFyIGI9T2woS2UudmFsdWUpO2lmKCFiKXtLZS52YWx1ZT1pcjtyZXR1cm59aWYoYj09PWlyKXtLZS52YWx1ZT1iO3JldHVybn1pcj1iLEtlLnZhbHVlPWIscXQoe2N3ZDpifSl9KX12YXIgamk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2VhcmNoLWlucHV0IiksanI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtc2VhcmNoLWNsZWFyIik7amkmJmppLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbihiKXtyLmZpbGVTZWFyY2hRdWVyeT1iLnRhcmdldC52YWx1ZS50cmltKCksanImJmpyLmNsYXNzTGlzdC50b2dnbGUoInZpc2libGUiLHIuZmlsZVNlYXJjaFF1ZXJ5Lmxlbmd0aD4wKSxSdSgpfSksanImJmpyLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3IuZmlsZVNlYXJjaFF1ZXJ5PSIiLGppJiYoamkudmFsdWU9IiIpLGpyLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKX0pO3ZhciBnZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1pbnB1dCIpLE1lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWRyb3Bkb3duIiksYnU9bnVsbCxRdD0tMSxFbj1bXTtmdW5jdGlvbiBIbChiKXtnZSYmZ2UuY2xhc3NMaXN0LmFkZCgiaW52YWxpZCIpO3ZhciBBPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iKTtBJiYoQS50ZXh0Q29udGVudD1iLEEuY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpKX1mdW5jdGlvbiBfbCgpe2dlJiZnZS5jbGFzc0xpc3QucmVtb3ZlKCJpbnZhbGlkIik7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItdmFsaWRhdGlvbiIpO2ImJihiLnRleHRDb250ZW50PSIiLGIuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpKX1mdW5jdGlvbiBGZyhiKXtpZighYi5sZW5ndGgpcmV0dXJuIiI7dmFyIEE9JzxkaXYgY2xhc3M9ImZvbGRlci1yZWNlbnQtc2VjdGlvbiI+PGRpdiBjbGFzcz0iZm9sZGVyLXJlY2VudC10aXRsZSI+XHU2NzAwXHU4RkQxXHU0RjdGXHU3NTI4PC9kaXY+JztyZXR1cm4gYi5mb3JFYWNoKGZ1bmN0aW9uKGope3ZhciBCZT1qLnBhdGh8fGo7QSs9JzxkaXYgY2xhc3M9ImZvbGRlci1yZWNlbnQtaXRlbSIgZGF0YS1wYXRoPSInK3AoQmUpKyciPjxzcGFuIGNsYXNzPSJmb2xkZXItcmVjZW50LWl0ZW0tcGF0aCI+JytwKEJlKSsiPC9zcGFuPjwvZGl2PiJ9KSxBKz0iPC9kaXY+IixBfWZ1bmN0aW9uIHdnKCl7TWUmJmZhKGZ1bmN0aW9uKGIpe3ZhciBBPUZnKGIpO0E/KE1lLmlubmVySFRNTD1BLE1lLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLE1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5mb2xkZXItcmVjZW50LWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKGope2ouYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIEJlPXRoaXMuZGF0YXNldC5wYXRoO2dlJiYoZ2UudmFsdWU9QmUsZW4oQmUpLGFuKEJlKSl9KX0pKTpXcigpfSl9dmFyIE5sPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JraW5nLWRpci1pbmRpY2F0b3IiKTtObCYmTmwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5zZWxlY3RlZElkPW51bGwsd2UoKSxyLmRyYWZ0cz17fSx0bigpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1pbnB1dCIpO2ImJmIuZm9jdXMoKX0sNTApfSk7dmFyIEV1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLXRvZ2dsZSIpLE1lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWRyb3Bkb3duIik7RXUmJk1lJiZFdS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtNZS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iKSxFdS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIil9KTt2YXIgV2k9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmZvbGRlci1waWNrZXItY29tcGFjdCIpO2lmKFdpJiYoV2kuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSxXaS5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLHRoaXMuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIil9KSxXaS5hZGRFdmVudExpc3RlbmVyKCJkcm9wIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpO3ZhciBBPWIuZGF0YVRyYW5zZmVyJiZiLmRhdGFUcmFuc2Zlci5pdGVtcztpZihBKWZvcih2YXIgaj0wO2o8QS5sZW5ndGg7aisrKXt2YXIgQmU9QVtqXTtpZihCZS5raW5kPT09ImZpbGUiJiZCZS53ZWJraXRHZXRBc0VudHJ5KXt2YXIgRHQ9QmUud2Via2l0R2V0QXNFbnRyeSgpO2lmKER0JiZEdC5pc0RpcmVjdG9yeSYmZ2Upe3ZhciBMdD1EdC5mdWxsUGF0aDtnZS52YWx1ZT1MdCxlbihMdCksYW4oTHQpO2JyZWFrfX19fSkpLE1lJiZNZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIEE9Yi50YXJnZXQuY2xvc2VzdCgiLmZvbGRlci1waWNrZXItcXVpY2stYnRuIik7aWYoQSYmZ2Upe3ZhciBqPUEuZGF0YXNldC5wYXRoO2dlLnZhbHVlPWosZW4oaiksYW4oaiksTWUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIEJlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLXRvZ2dsZSIpO0JlJiZCZS5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIil9fSksZ2Upe3ZhciBDZz10dCgpO2FuKENnKSxnZS5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsZnVuY3Rpb24oKXt2YXIgYj10aGlzLnZhbHVlLnRyaW0oKTtiP2FuKGIpOndnKCl9KSxnZS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oYil7dmFyIEE9Yi50YXJnZXQudmFsdWUudHJpbSgpO1F0PS0xLGJ1JiZjbGVhclRpbWVvdXQoYnUpLGJ1PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtBP2FuKEEpOldyKCl9LDE1MCl9KSxnZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXtpZihiLmtleT09PSJFc2NhcGUiKVdyKCksdGhpcy5ibHVyKCk7ZWxzZSBpZihiLmtleT09PSJBcnJvd0Rvd24iKWIucHJldmVudERlZmF1bHQoKSxFbi5sZW5ndGg+MCYmKFF0PU1hdGgubWluKFF0KzEsRW4ubGVuZ3RoLTEpLFJsKCkpO2Vsc2UgaWYoYi5rZXk9PT0iQXJyb3dVcCIpYi5wcmV2ZW50RGVmYXVsdCgpLFF0PjAmJihRdC0tLFJsKCkpO2Vsc2UgaWYoYi5rZXk9PT0iRW50ZXIiJiZRdD49MCl7Yi5wcmV2ZW50RGVmYXVsdCgpO3ZhciBBPUVuW1F0XTtpZihBKXt2YXIgaj1BLmRhdGFzZXQucGF0aDtpZihqPT09Ii4uIil7dmFyIEJlPWdlLnZhbHVlLnRyaW0oKSxEdD1CZS5zdWJzdHJpbmcoMCxCZS5sYXN0SW5kZXhPZigiLyIpKTtEdCYmKGdlLnZhbHVlPUR0fHwiLyIsZW4oZ2UudmFsdWUpLGFuKER0fHwiLyIpKX1lbHNlIGdlLnZhbHVlPWosZW4oaiksV3IoKX19fSl9ZnVuY3Rpb24gUmwoKXtFbi5mb3JFYWNoKGZ1bmN0aW9uKGIsQSl7Yi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLEE9PT1RdCl9KX1mdW5jdGlvbiBpaChiKXt9ZnVuY3Rpb24gYW4oYil7TWUmJihNZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJELi4uPC9kaXY+JyxNZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxRdD0tMSxFbj1bXSxmZXRjaCgiL2FwaS9mb2xkZXJzP3E9IitlbmNvZGVVUklDb21wb25lbnQoYikse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKEEpe3JldHVybiBBLmpzb24oKS50aGVuKGZ1bmN0aW9uKGope3JldHVybntvazpBLm9rLHN0YXR1czpBLnN0YXR1cyxkYXRhOmp9fSl9KS50aGVuKGZ1bmN0aW9uKEEpe3ZhciBqPUEuZGF0YTtpZighQS5va3x8ai5lcnJvcil7SGwoai5lcnJvcnx8Ilx1OERFRlx1NUY4NFx1NjVFMFx1NjU0OCIpLE1lLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1lcnJvciI+JytwKGouZXJyb3J8fCJcdThERUZcdTVGODRcdTY1RTBcdTY1NDgiKSsiPC9kaXY+IjtyZXR1cm59X2woKSxqLmN1cnJlbnRQYXRoO3ZhciBCZT1qLml0ZW1zfHxbXSxEdD1qLmN1cnJlbnRQYXRofHxiO2lmKEJlLmxlbmd0aD09PTApe01lLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1sb2FkaW5nIj5cdTdBN0FcdTc2RUVcdTVGNTU8L2Rpdj4nO3JldHVybn1NZS5pbm5lckhUTUw9QmUubWFwKGZ1bmN0aW9uKEx0KXt2YXIgemk9THQudHlwZT09PSJwYXJlbnQiPyJcdTIxQTlcdUZFMEYiOiJcdXsxRjRDMX0iLEZ1PUx0LnR5cGU9PT0icGFyZW50Ij8iLi4gKFx1OEZENFx1NTZERVx1NEUwQVx1N0VBNykiOkx0Lm5hbWU7cmV0dXJuJzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItaXRlbSIgZGF0YS1wYXRoPSInK3AoTHQucGF0aCkrJyIgZGF0YS10eXBlPSInK0x0LnR5cGUrJyI+PHNwYW4gY2xhc3M9ImZvbGRlci1waWNrZXItaXRlbS1pY29uIj4nK3ppKyI8L3NwYW4+PHNwYW4+IitwKEZ1KSsiPC9zcGFuPjwvZGl2PiJ9KS5qb2luKCIiKSxFbj1BcnJheS5mcm9tKE1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi5mb2xkZXItcGlja2VyLWl0ZW0iKSksRW4uZm9yRWFjaChmdW5jdGlvbihMdCl7THQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHppPXRoaXMuZGF0YXNldC5wYXRoLEZ1PXRoaXMuZGF0YXNldC50eXBlO2lmKGdlKWlmKEZ1PT09InBhcmVudCIpe3ZhciBVbD1nZS52YWx1ZS50cmltKCksVmw9VWwuc3Vic3RyaW5nKDAsVWwubGFzdEluZGV4T2YoIi8iKSk7Z2UudmFsdWU9Vmx8fCIvIixlbihnZS52YWx1ZSksYW4oVmx8fCIvIil9ZWxzZSBnZS52YWx1ZT16aSxlbih6aSksX2woKSxXcigpfSl9KX0pLmNhdGNoKGZ1bmN0aW9uKEEpe0hsKCJcdTUyQTBcdThGN0RcdTU5MzFcdThEMjUiKSxNZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItZXJyb3IiPlx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNTwvZGl2Pid9KSl9ZnVuY3Rpb24gV3IoKXtNZSYmTWUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksUXQ9LTEsRW49W119dmFyIEZuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLW1vZGFsIiksamw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLWZvbGRlci1waWNrZXIiKTtmdW5jdGlvbiBhaCgpe2lmKEZuKXtGbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxnZSYmKGdlLnZhbHVlPXR0KCkpO3ZhciBiPXR0KCk7YW4oYil9fWpsJiZGbiYmamwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7Rm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9KSxGbiYmRm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2IudGFyZ2V0PT09Rm4mJkZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfSk7dmFyIFdsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItZ2l0LWJhZGdlIik7V2wmJldsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksWnUoKX0pO3ZhciB6bD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1vZGFsIik7emwmJnpsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldC5pZD09PSJxdWljay1jb21taXQtbW9kYWwiJiYhci5xdWlja0NvbW1pdFN1Ym1pdHRpbmcmJkhuKCl9KSxlcygpLFZuKCksZHYoKSxTZCgpLHZwKCksdXQoKX1mdW5jdGlvbiB4dChlKXt2YXIgdD1lfHx7fTtyLmxhc3RSZW5kZXJlZEhhc2g9MCxyLmxhc3RSZW5kZXJlZE1zZ0NvdW50PTAsci5sYXN0UmVuZGVyZWRFbXB0eT1udWxsLHIucmVuZGVyUGVuZGluZz0hMSxyLmNoYXRSZW5kZXJlZENvdW50PXIuY2hhdFBhZ2VTaXplLHIuYXNrVXNlclNlbGVjdGlvbnM9e30sci5jaGF0U2Nyb2xsRWxlbWVudCYmKHIuY2hhdFNjcm9sbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLmNoYXRTY3JvbGxIYW5kbGVyKSxyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlciksci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyKSksci5jaGF0U2Nyb2xsRWxlbWVudD1udWxsLHIuY2hhdFNjcm9sbEhhbmRsZXI9bnVsbCxyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXI9bnVsbCxyLmNoYXRTY3JvbGxUb3VjaFN0YXJ0SGFuZGxlcj1udWxsLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXI9bnVsbCxyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMSx0LnByZXNlcnZlU3RpY2tTdGF0ZXx8KHIuY2hhdFN0aWNrVG9Cb3R0b209ITAsci5jaGF0VW5yZWFkQ291bnQ9MCxyLmNoYXRVbnJlYWRTdGFydEluZGV4PS0xLHIuY2hhdEluaXRpYWxSZW5kZXJEb25lPSExLHIuY2hhdFBpblR1cm5Ub1RvcD0hMSxyLmNoYXRQaW5NaW5Vc2VySW5kZXg9MCl9ZnVuY3Rpb24gdHQoKXtyZXR1cm4gci53b3JraW5nRGlyfHx1bigpfXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbmxpbmUiLGZ1bmN0aW9uKCl7ci5pc09ubGluZT0hMCxvaSgpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLGZ1bmN0aW9uKCl7ci5pc09ubGluZT0hMSxvaSgpfSk7ZnVuY3Rpb24gb2koKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2ZmbGluZS1iYW5uZXIiKTtpZighci5pc09ubGluZSYmIWUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuaWQ9Im9mZmxpbmUtYmFubmVyIix0LmNsYXNzTmFtZT0ib2ZmbGluZS1iYW5uZXIiLHQudGV4dENvbnRlbnQ9IllvdSBhcmUgb2ZmbGluZSAtIHNvbWUgZmVhdHVyZXMgbWF5IGJlIGxpbWl0ZWQiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCl9ZWxzZSByLmlzT25saW5lJiZlJiZlLnJlbW92ZSgpfWZ1bmN0aW9uIHlmKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpO2UmJihlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nIj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctY2FyZCI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXNwaW5uZXIiPjwvZGl2PjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0Ij5cdTZCNjNcdTU3MjhcdThGREVcdTYzQTUgV2FuZFx1MjAyNjwvZGl2PjwvZGl2PjwvZGl2PicpfWZ1bmN0aW9uIGJyKGUsdCl7aWYoci5jb25maWcmJiFkb2N1bWVudC5oaWRkZW4pe3ZhciBuPXQmJnQuaW1tZWRpYXRlPT09ITAsaT1EYXRlLm5vdygpOyFuJiZpLXIubGFzdEZvcmVncm91bmRTeW5jQXQ8MTUwMHx8KHIubGFzdEZvcmVncm91bmRTeW5jQXQ9aSxyLmZvcmVncm91bmRTeW5jVGltZXImJihjbGVhclRpbWVvdXQoci5mb3JlZ3JvdW5kU3luY1RpbWVyKSxyLmZvcmVncm91bmRTeW5jVGltZXI9bnVsbCksYmYoZSxuKSl9fWZ1bmN0aW9uIGJmKGUsdCl7cmV0dXJuIXIuY29uZmlnfHxkb2N1bWVudC5oaWRkZW4/UHJvbWlzZS5yZXNvbHZlKCk6KGJzKCksdD9zYSgicmVzdW1lLWZvcmNlIik6KCFyLndzfHxyLndzLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTiYmci53cy5yZWFkeVN0YXRlIT09V2ViU29ja2V0LkNPTk5FQ1RJTkcpJiZ0aSgpLHIuY2xhdWRlSGlzdG9yeUxvYWRlZCYmZ3MoKSxtbih7c2tpcFNlbGVjdGVkT3V0cHV0UmVsb2FkOiEwfSkuY2F0Y2goZnVuY3Rpb24obil7Y29uc29sZS5lcnJvcigiW3dhbmRdIGZvcmVncm91bmQgc3luYyBmYWlsZWQ6IixlLG4pfSkpfWZ1bmN0aW9uIEVmKCl7d2luZG93Ll9fd2FuZEZvcmVncm91bmRTeW5jQm91bmR8fCh3aW5kb3cuX193YW5kRm9yZWdyb3VuZFN5bmNCb3VuZD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe2RvY3VtZW50LmhpZGRlbj91YSgpOihicigidmlzaWJpbGl0eSIpLHlyKCJ2aXNpYmlsaXR5IikpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe2JyKCJmb2N1cyIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IixmdW5jdGlvbigpe2JyKCJwYWdlc2hvdyIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc3VtZSIsZnVuY3Rpb24oKXticigicmVzdW1lIil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1hbmRyb2lkLXJlc3VtZSIsZnVuY3Rpb24oKXticigiYW5kcm9pZC1yZXN1bWUiLHtpbW1lZGlhdGU6ITB9KSx5cigiYW5kcm9pZC1yZXN1bWUiKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3YW5kLWltZS1zdGF0ZSIsZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5kZXRhaWwmJmUuZGV0YWlsLnN0YXRlO2lmKHQ9PT0ic2hvd24ifHx0PT09ImhpZGRlbiIpdHJ5e2V0KCJuYXRpdmUtaW1lLSIrdCx7Zm9yY2VSZXBsYXk6ITB9KSxFdCgibmF0aXZlLWltZSIpfWNhdGNoe319KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1hbmRyb2lkLW5ldHdvcmsiLGZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuZGV0YWlsJiZlLmRldGFpbC5zdGF0ZTtpZih0PT09Imxvc3QiKXtyLmlzT25saW5lPSExO3RyeXtvaSgpfWNhdGNoe31yZXR1cm59aWYodD09PSJhdmFpbGFibGUifHx0PT09ImNoYW5nZWQifHx0PT09InZhbGlkYXRlZCIpe3IuaXNPbmxpbmU9ITA7dHJ5e29pKCl9Y2F0Y2h7fXNhKCJhbmRyb2lkLW5ldHdvcmstIit0KX19KSl9ZnVuY3Rpb24gRmYoKXtmZXRjaCgiL2FwaS9zZXNzaW9uLWNoZWNrIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUub2s/ZS5qc29uKCk6e2F1dGhlZDohMX19KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiFlfHwhZS5hdXRoZWQ/KHIubG9naW5DaGVja2VkPSEwLHRuKCksbnVsbCk6ZmV0Y2goIi9hcGkvY29uZmlnIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQub2s/dC5qc29uKCk6KHIubG9naW5DaGVja2VkPSEwLHRuKCksbnVsbCl9KX0pLnRoZW4oZnVuY3Rpb24oZSl7ZSYmKHIuY29uZmlnPWUsci5sb2dpbkNoZWNrZWQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dHJ5e3RuKHtza2lwU2hlbGxDaHJvbWU6ITB9KX1jYXRjaHt9RWYoKSxocygpLGp0KCkscGwoKSxUZigpLGUudXBkYXRlQXZhaWxhYmxlJiZlLmxhdGVzdFZlcnNpb24mJlZzKGUuY3VycmVudFZlcnNpb258fCItIixlLmxhdGVzdFZlcnNpb24pLFNuJiZKbSgpLGxuJiZHbSgpLHIuY2xhdWRlSGlzdG9yeUxvYWRlZHx8c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2xhdWRlSGlzdG9yeUxvYWRlZHx8ZWkoKX0sNjAwKX0pKX0pLmNhdGNoKGZ1bmN0aW9uKCl7aWYoci5sb2dpbkNoZWNrZWQ9ITAsIW5hdmlnYXRvci5vbkxpbmUpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKTtlJiYoZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZyI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLWNhcmQiPjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEuM2VtO21hcmdpbi1ib3R0b206MTJweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweCI+JytWKCJzaWduYWwiLHtzaXplOjIwLHN0cm9rZVdpZHRoOjEuOH0pKyc8c3Bhbj5cdTY1RTBcdTZDRDVcdThGREVcdTYzQTVcdTUyMzBcdTY3MERcdTUyQTFcdTU2Njg8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXRleHQiIHN0eWxlPSJvcGFjaXR5OjAuNztmb250LXNpemU6MC45NWVtIj5cdThCRjdcdTY4QzBcdTY3RTVcdTdGNTFcdTdFRENcdThGREVcdTYzQTVcdTYyMTZcdTc4NkVcdThCQTQgV2FuZCBcdTY3MERcdTUyQTFcdTZCNjNcdTU3MjhcdThGRDBcdTg4NENcdTMwMDI8L2Rpdj48YnV0dG9uIG9uY2xpY2s9ImxvY2F0aW9uLnJlbG9hZCgpIiBzdHlsZT0ibWFyZ2luLXRvcDoxOHB4O3BhZGRpbmc6OHB4IDI0cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE1MCwxMTgsODUsMC4zKTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MC45NWVtIj5cdTkxQ0RcdThCRDU8L2J1dHRvbj48L2Rpdj48L2Rpdj4nKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIixmdW5jdGlvbigpe2xvY2F0aW9uLnJlbG9hZCgpfSx7b25jZTohMH0pO3JldHVybn10bigpfSl9ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpe2lmKCFqZSgpJiYhci5zaWRlYmFyUGlubmVkJiYhci5zaWRlYmFyQ29sbGFwc2VkJiZyLnNlc3Npb25zRHJhd2VyT3Blbil7dmFyIHQ9ZS50YXJnZXQ7IXR8fCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpfHx0LmNsb3Nlc3QoIiNzZXNzaW9ucy1kcmF3ZXIiKXx8dC5jbG9zZXN0KCIjc2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIpfHx0LmNsb3Nlc3QoIi5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZSIpfHx0LmNsb3Nlc3QoIi5zaWRlYmFyLXRpbGUtYnViYmxlIil8fHQuY2xvc2VzdCgiLm1vZGFsLWJhY2tkcm9wLCAubW9kYWwtb3ZlcmxheSwgLm1vZGFsLWNvbnRhaW5lciwgW3JvbGU9J2RpYWxvZyddLCBbcm9sZT0nbWVudSddLCAudG9wYmFyLW1vcmUtbWVudSwgLnNpZGViYXItaGVhZGVyLW92ZXJmbG93LCAuZm9sZGVyLXBpY2tlci1kcm9wZG93biwgLnBhdGgtc3VnZ2VzdGlvbnMsIC5wZXJtaXNzaW9uLXByb21wdC1vdmVybGF5LCAucmVzdGFydC1vdmVybGF5Iil8fHdtKCl9fSwhMCkseWYoKSxGZigpO2Z1bmN0aW9uIHRuKGUpe3ZhciB0PWUmJmUuc2tpcFNoZWxsQ2hyb21lLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpLGk9ci5jb25maWchPT1udWxsLGE9ci5tb2RhbE9wZW4sdT0haXx8ISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYodSYmaHIoKSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm8tdHJhbnNpdGlvbiIpLHIuc2lkZWJhclBpbm5lZCYmIXIuc2lkZWJhckNvbGxhcHNlZCYmIWplKCkmJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCx4ZSgid2FuZC1zaWRlYmFyLW9wZW4iLCEwKSksbi5pbm5lckhUTUw9aT9CZigpOkNmKCkseHQoKSxoZigpLE1yKCkseGkoKSxYbihOdCgpKSxQaSgpLHR8fExyKCksaSYmci5maWxlUGFuZWxPcGVuJiZxdCgpLGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9KSxhJiZyLm1vZGFsT3Blbil7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtpZihzKXtzLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTtvJiYoby52YWx1ZT1yLmN3ZFZhbHVlKSxUcigpfX1pZihpJiZyLnNlbGVjdGVkSWQmJnIuZ2l0U3RhdHVzU2Vzc2lvbklkIT09ci5zZWxlY3RlZElkJiZDbihyLnNlbGVjdGVkSWQpLGkpe3ZhciBsPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5pZD09PXIuc2VsZWN0ZWRJZH0pO2d1KGwpfU5pKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItY3dkIikpLE5pKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1wYXRoIikpLE5pKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aCIpKX1mdW5jdGlvbiB3Zigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pLHQ9ZSYmZS5hcHByb3ZhbFN0YXRzO3JldHVybiF0fHx0LnRvdGFsPT09MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzIGhpZGRlbiIgaWQ9ImFwcHJvdmFsLXN0YXRzIj48L3NwYW4+JzonPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzIiBpZD0iYXBwcm92YWwtc3RhdHMiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1kaXZpZGVyIj48L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWJhZGdlIiBpZD0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIHRpdGxlPSJcdTY3MkNcdTZCMjFcdTRGMUFcdThCRERcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTEiPjxzdmcgY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWljb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48L3N2Zz48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtdG90YWwiPicrdC50b3RhbCsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAiIGlkPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXBvcHVwLXRpdGxlIj5cdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTE8L3NwYW4+JysodC5jb21tYW5kPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJ0ZXJtaW5hbCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0N0RcdTRFRTRcdTYyNjdcdTg4NEM8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LmNvbW1hbmQrIjwvc3Bhbj48L3NwYW4+IjoiIikrKHQuZmlsZT4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicrVigiZWRpdCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTY1ODdcdTRFRjZcdTUxOTlcdTUxNjU8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LmZpbGUrIjwvc3Bhbj48L3NwYW4+IjoiIikrKHQudG9vbD4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicrVigid3JlbmNoIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTE3Nlx1NEVENlx1NURFNVx1NTE3Nzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QudG9vbCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsnPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyBhcHByb3ZhbC1zdGF0cy1yb3ctdG90YWwiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+JytWKCJzaWdtYSIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0MDhcdThCQTE8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LnRvdGFsKyI8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+In1mdW5jdGlvbiBDZigpe3JldHVybiByLmxvZ2luQ2hlY2tlZD8nPGRpdiBjbGFzcz0ibG9naW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIj48ZGl2IGNsYXNzPSJsb2dpbi1oZWFkZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28iPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28taWNvbiI+VzwvZGl2PjxzcGFuIGNsYXNzPSJsb2dpbi1sb2dvLXRleHQiPldhbmQ8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibG9naW4tc3VidGl0bGUiPlx1NTcyOFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUyRFx1OEZEMFx1ODg0Q1x1NjcyQ1x1NjczQVx1N0VDOFx1N0FFRjwvZGl2PjwvZGl2Pjxmb3JtIGlkPSJsb2dpbi1mb3JtIiBjbGFzcz0ibG9naW4tYm9keSIgYXV0b2NvbXBsZXRlPSJvbiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBhdXRvY29tcGxldGU9InVzZXJuYW1lIiB2YWx1ZT0id2FuZCIgdGFiaW5kZXg9Ii0xIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTk5OTlweDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZSIgcmVhZG9ubHkgLz48cCBjbGFzcz0ibG9naW4taGludCI+XHU4RjkzXHU1MTY1IFdhbmQgXHU4QkJGXHU5NUVFXHU1QkM2XHU3ODAxXHU0RUU1XHU4RkRCXHU1MTY1XHU2M0E3XHU1MjM2XHU1M0YwXHUzMDAyPC9wPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9InBhc3N3b3JkIj5cdTVCQzZcdTc4MDE8L2xhYmVsPjxkaXYgY2xhc3M9InBhc3N3b3JkLWZpZWxkIj48aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgY2xhc3M9ImZpZWxkLWlucHV0IHBhc3N3b3JkLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU4QkJGXHU5NUVFXHU1QkM2XHU3ODAxIiBhdXRvY29tcGxldGU9ImN1cnJlbnQtcGFzc3dvcmQiIGRhdGEtZXJyb3I9ImZhbHNlIiBhcmlhLWRlc2NyaWJlZGJ5PSJwYXNzd29yZC1oaW50IGxvZ2luLWVycm9yIiBhcmlhLWludmFsaWQ9ImZhbHNlIiAvPjxidXR0b24gaWQ9InRvZ2dsZS1wYXNzd29yZC1idXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgYXJpYS1sYWJlbD0iXHU2NjNFXHU3OTNBXHU1QkM2XHU3ODAxIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj5cdTY2M0VcdTc5M0E8L2J1dHRvbj48L2Rpdj48cCBpZD0icGFzc3dvcmQtaGludCIgY2xhc3M9ImhpbnQiPlx1NEY3Rlx1NzUyOFx1NEY2MFx1NTcyOCBXYW5kIFx1NEUyRFx1OEJCRVx1N0Y2RVx1NzY4NFx1OEJCRlx1OTVFRVx1NUJDNlx1NzgwMVx1MzAwMjwvcD48cCBpZD0ibG9naW4tZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiIgcm9sZT0iYWxlcnQiPjwvcD48L2Rpdj48ZGl2IGlkPSJsb2dpbi1jZXJ0LWhpbnQiIGNsYXNzPSJsb2dpbi1jZXJ0LWhpbnQgaGlkZGVuIiByb2xlPSJhbGVydCI+PGRpdiBjbGFzcz0ibG9naW4tY2VydC1oaW50LXRpdGxlIj5cdThCQzFcdTRFNjZcdTRFMERcdTUzRDdcdTRGRTFcdTRFRkJcdUZGMENcdTc2N0JcdTVGNTVcdTYwMDFcdTY1RTBcdTZDRDVcdTRGRERcdTVCNTg8L2Rpdj48cCBjbGFzcz0ibG9naW4tY2VydC1oaW50LWJvZHkiPlx1NUJDNlx1NzgwMVx1NjYyRlx1NUJGOVx1NzY4NFx1RkYwQ1x1NEY0Nlx1NUY1M1x1NTI0RCBIVFRQUyBcdThCQzFcdTRFNjZcdTRFMERcdTUzRDdcdTZENEZcdTg5QzhcdTU2NjhcdTRGRTFcdTRFRkJcdUZGMENcdTZENEZcdTg5QzhcdTU2NjhcdTU2RTBcdTZCNjRcdTYyRDJcdTdFRERcdTRGRERcdTVCNThcdTc2N0JcdTVGNTUgQ29va2llXHVGRjBDXHU2MjQwXHU0RUU1XHU4RkRCXHU0RTBEXHU0RTg2XHU2M0E3XHU1MjM2XHU1M0YwXHUzMDAyPGJyLz5cdTg5RTNcdTUxQjNcdTUyOUVcdTZDRDVcdUZGMDhcdTRFRkJcdTkwMDlcdTUxNzZcdTRFMDBcdUZGMDlcdUZGMUFcdTY1MzlcdTc1MjggSFRUUCBcdThCQkZcdTk1RUVcdTY3MkNcdTY3MERcdTUyQTFcdUZGMUJcdTYyMTZcdTYyOEFcdTY3MkNcdTY3MERcdTUyQTFcdThCQzFcdTRFNjZcdThCQkVcdTRFM0FcdTMwMENcdTUzRDdcdTRGRTFcdTRFRkJcdTMwMERcdUZGMDhcdTYzQThcdTgzNTAgbWtjZXJ0XHVGRjA5XHVGRjFCXHU2MjE2XHU1NzI4XHU2NzJDXHU2NzNBXHU1QzA2XHU4QkU1XHU4MUVBXHU3QjdFXHU4QkMxXHU0RTY2XHU4QkJFXHU0RTNBXHU1QjhDXHU1MTY4XHU0RkUxXHU0RUZCXHU1NDBFXHU5MUNEXHU4QkQ1XHUzMDAyPC9wPjxhIGlkPSJsb2dpbi1jZXJ0LWh0dHAtbGluayIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWJsb2NrIiBocmVmPSIjIiByZWw9Im5vb3BlbmVyIj5cdTY1MzlcdTc1MjggSFRUUCBcdThCQkZcdTk1RUU8L2E+PC9kaXY+PGJ1dHRvbiBpZD0ibG9naW4tYnV0dG9uIiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdThGREJcdTUxNjVcdTYzQTdcdTUyMzZcdTUzRjA8L2J1dHRvbj4nKyhYYSgpPyc8YnV0dG9uIGlkPSJsb2dpbi1zd2l0Y2gtc2VydmVyLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWJsb2NrIGxvZ2luLXN3aXRjaC1zZXJ2ZXIiIHR5cGU9ImJ1dHRvbiI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48cmVjdCB4PSIyIiB5PSIxMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSI3IiB4Mj0iNi4wMSIgeTI9IjciLz48bGluZSB4MT0iNiIgeTE9IjE3IiB4Mj0iNi4wMSIgeTI9IjE3Ii8+PC9zdmc+PHNwYW4+XHU1MjA3XHU2MzYyXHU2NzBEXHU1MkExXHU1NjY4PC9zcGFuPjwvYnV0dG9uPic6IiIpKyI8L2Zvcm0+PC9kaXY+PC9kaXY+IjonPGRpdiBjbGFzcz0ibG9naW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIGxvZ2luLWNhcmQtbG9hZGluZyI+PGRpdiBjbGFzcz0ibG9naW4taGVhZGVyIj48ZGl2IGNsYXNzPSJsb2dpbi1sb2dvIj48ZGl2IGNsYXNzPSJsb2dpbi1sb2dvLWljb24iPlc8L2Rpdj48c3BhbiBjbGFzcz0ibG9naW4tbG9nby10ZXh0Ij5XYW5kPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImxvZ2luLXN1YnRpdGxlIj5cdTZCNjNcdTU3MjhcdTYwNjJcdTU5MERcdTc2N0JcdTVGNTVcdTcyQjZcdTYwMDE8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJsb2dpbi1ib2R5Ij48ZGl2IGNsYXNzPSJsb2dpbi1zdGF0dXMiPjxzcGFuIGNsYXNzPSJsb2dpbi1zcGlubmVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjxkaXY+PHAgY2xhc3M9ImxvZ2luLWhpbnQiPlx1NkI2M1x1NTcyOFx1NjhDMFx1NjdFNVx1NjcyQ1x1NTczMFx1NzY3Qlx1NUY1NVx1NEYxQVx1OEJERFx1RkYwQ1x1OEJGN1x1N0EwRFx1NTAxOVx1MzAwMjwvcD48cCBjbGFzcz0ibG9naW4tbXV0ZWQiPlx1NTk4Mlx1Njc5Q1x1NEY2MFx1NTIxQVx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mlx1RkYwQ1x1OEZEOVx1NjYyRlx1NkI2M1x1NUUzOFx1NzNCMFx1OEM2MVx1MzAwMjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4nfWZ1bmN0aW9uIEJmKCl7dmFyIGU9IjxcL3NjcmlwdD4iLHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGcpe3JldHVybiBnLmlkPT09ci5zZWxlY3RlZElkfSksbj10P1FuKHQuY29tbWFuZCk6Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NEYxQVx1OEJERCIsaT10P3QubW9kZSsiIHwgIit0LnN0YXR1czoiXHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCIixhPXIuc2VsZWN0ZWRJZCYmci5kcmFmdHNbci5zZWxlY3RlZElkXXx8IiIsdT1yLnNlc3Npb25zRHJhd2VyT3Blbj8iIG9wZW4iOiIiLHM9UHUoKT8iIG9wZW4iOiIiLG89cm0oKSxsPUl0KG8sci5jaGF0TW9kZSksYz1qZSgpLGY9ISFyLnNpZGViYXJQaW5uZWQmJiEhci5zaWRlYmFyQ29sbGFwc2VkLGQ9Znx8IWMmJighIXIuc2lkZWJhclBpbm5lZHx8ISFyLnNlc3Npb25zRHJhd2VyT3Blbiksdj1mPyIgc2lkZWJhci1jb2xsYXBzZWQiOiIiLGg9Zj8iIGNvbGxhcHNlZCI6IiI7cmV0dXJuJzxkaXYgY2xhc3M9ImFwcC1jb250YWluZXIiPjxkaXYgaWQ9InNlc3Npb25zLWRyYXdlci1iYWNrZHJvcCIgY2xhc3M9ImRyYXdlci1iYWNrZHJvcCcrcysnIj48L2Rpdj48ZGl2IGNsYXNzPSJtYWluLWxheW91dCcrKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyIgc2lkZWJhci1vcGVuIjoiIikrKGQ/IiBzaWRlYmFyLXBpbm5lZCI6IiIpK3YrJyI+PGFzaWRlIGlkPSJzZXNzaW9ucy1kcmF3ZXIiIGNsYXNzPSJzaWRlYmFyJyt1KyhkPyIgcGlubmVkIjoiIikraCsnIj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlciI+PGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXItbWFpbiI+PGRpdiBjbGFzcz0idG9wYmFyLWxvZ28taWNvbiI+VzwvZGl2PjxzcGFuIGNsYXNzPSJzaWRlYmFyLXRpdGxlIj5cdTRGMUFcdThCREQ8L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tY291bnQiIGlkPSJzZXNzaW9uLWNvdW50Ij4nK1N0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1hY3Rpb25zIj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1tb3JlIj48YnV0dG9uIGlkPSJzaWRlYmFyLW1vcmUtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjZGNFx1NTkxQVx1NjRDRFx1NEY1QyI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjEuNSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEuNSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTkiIHI9IjEuNSIvPjwvc3ZnPjwvYnV0dG9uPjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyLW92ZXJmbG93IiBpZD0ic2lkZWJhci1vdmVyZmxvdy1tZW51Ij48YnV0dG9uIGNsYXNzPSJvdmVyZmxvdy1pdGVtIiBpZD0ic2lkZWJhci1ob21lLWJ0biIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDlsOS03IDkgN3YxMWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoiLz48cG9seWxpbmUgcG9pbnRzPSI5IDIyIDkgMTIgMTUgMTIgMTUgMjIiLz48L3N2Zz48c3Bhbj5cdTU2REVcdTUyMzBcdTk5OTZcdTk4NzU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ib3ZlcmZsb3ctaXRlbSIgaWQ9InNpZGViYXItcmVmcmVzaC1idG4iIHR5cGU9ImJ1dHRvbiI+PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cG9seWxpbmUgcG9pbnRzPSIyMyA0IDIzIDEwIDE3IDEwIi8+PHBhdGggZD0iTTIwLjQ5IDE1YTkgOSAwIDEgMS0yLjEyLTkuMzZMMjMgMTAiLz48L3N2Zz48c3Bhbj5cdTUyMzdcdTY1QjBcdTk4NzVcdTk3NjI8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PGJ1dHRvbiBpZD0ic2lkZWJhci1waW4tYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1waW4tdG9nZ2xlJysoci5zaWRlYmFyUGlubmVkPyIgcGlubmVkIjoiIikrJyIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iJysoci5zaWRlYmFyUGlubmVkPyJcdTVERjJcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0JcdUZGMDhcdTcwQjlcdTUxRkJcdTg5RTNcdTk2NjRcdTk1MDFcdTVCOUFcdUZGMDkiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiKSsnIiBhcmlhLWxhYmVsPSInKyhyLnNpZGViYXJQaW5uZWQ/Ilx1ODlFM1x1OTY2NFx1NTZGQVx1NUI5QVx1NUUzOFx1OUE3QiI6Ilx1NTZGQVx1NUI5QVx1NEZBN1x1NjgwRlx1NUUzOFx1OUE3QiIpKyciIGFyaWEtcHJlc3NlZD0iJysoci5zaWRlYmFyUGlubmVkPyJ0cnVlIjoiZmFsc2UiKSsnIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjEyIiB5Mj0iMjIiLz48cGF0aCBkPSJNNSAxN2gxNHYtMS43NmEyIDIgMCAwIDAtMS4xMS0xLjc5bC0xLjc4LS45QTIgMiAwIDAgMSAxNSAxMC43NlY2aDFhMiAyIDAgMCAwIDAtNEg4YTIgMiAwIDAgMCAwIDRoMXY0Ljc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNHoiLz48L3N2Zz48L2J1dHRvbj48YnV0dG9uIGlkPSJzaWRlYmFyLWNvbGxhcHNlLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItY29sbGFwc2UtdG9nZ2xlJysoZj8iIGNvbGxhcHNlZCI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9IicrKGY/Ilx1NUM1NVx1NUYwMFx1NEUzQVx1NTE2OFx1NUMzQVx1NUJGOCI6Ilx1NjUzNlx1OEQ3N1x1NEUzQVx1N0E4NFx1Njc2MSIpKyciIGFyaWEtbGFiZWw9IicrKGY/Ilx1NUM1NVx1NUYwMFx1NEUzQVx1NTE2OFx1NUMzQVx1NUJGOCI6Ilx1NjUzNlx1OEQ3N1x1NEUzQVx1N0E4NFx1Njc2MSIpKyciPicrKGY/Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBvbHlsaW5lIHBvaW50cz0iMTAgNiAxNiAxMiAxMCAxOCIvPjxsaW5lIHgxPSIyMCIgeTE9IjUiIHgyPSIyMCIgeTI9IjE5Ii8+PC9zdmc+JzonPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxNCA2IDggMTIgMTQgMTgiLz48bGluZSB4MT0iNCIgeTE9IjUiIHgyPSI0IiB5Mj0iMTkiLz48L3N2Zz4nKSsnPC9idXR0b24+PGJ1dHRvbiBpZD0iY2xvc2UtZHJhd2VyLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gc2lkZWJhci1jbG9zZSBkcmF3ZXItY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRFx1ODNEQ1x1NTM1NSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXItYm9keSI+PGRpdiBpZD0ic2Vzc2lvbnMtcGFuZWwiPjxkaXYgY2xhc3M9InNlc3Npb25zLWxpc3QiIGlkPSJzZXNzaW9ucy1saXN0Ij4nK2lhKCkrJzwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXItZm9vdGVyIj48YnV0dG9uIGlkPSJkcmF3ZXItbmV3LXNlc3Npb24tYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayI+PHNwYW4+Kzwvc3Bhbj4gXHU2NUIwXHU0RjFBXHU4QkREPC9idXR0b24+PGRpdiBjbGFzcz0ic2lkZWJhci1mb290ZXItYWN0aW9ucyI+PGJ1dHRvbiBpZD0iZmlsZS1wYW5lbC10b2dnbGUtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20nKyhyLmZpbGVQYW5lbE9wZW4/IiBhY3RpdmUiOiIiKSsnIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTY3RTVcdTc3MEJcdTY1ODdcdTRFRjYiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+PC9zdmc+PHNwYW4+XHU2NTg3XHU0RUY2PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9InNldHRpbmdzLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdThCQkVcdTdGNkUiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIvPjxwYXRoIGQ9Ik0xOS40IDE1YTEuNjUgMS42NSAwIDAgMCAuMzMgMS44MmwuMDYuMDZhMiAyIDAgMCAxLTIuODMgMi44M2wtLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAtMS44Mi0uMzMgMS42NSAxLjY1IDAgMCAwLTEgMS41MVYyMWEyIDIgMCAwIDEtNCAwdi0uMDlBMS42NSAxLjY1IDAgMCAwIDkgMTkuNGExLjY1IDEuNjUgMCAwIDAtMS44Mi4zM2wtLjA2LjA2YTIgMiAwIDAgMS0yLjgzLTIuODNsLjA2LS4wNkExLjY1IDEuNjUgMCAwIDAgNC42OCAxNWExLjY1IDEuNjUgMCAwIDAtMS41MS0xSDNhMiAyIDAgMCAxIDAtNGguMDlBMS42NSAxLjY1IDAgMCAwIDQuNiA5YTEuNjUgMS42NSAwIDAgMC0uMzMtMS44MmwtLjA2LS4wNmEyIDIgMCAwIDEgMi44My0yLjgzbC4wNi4wNkExLjY1IDEuNjUgMCAwIDAgOSA0LjY4YTEuNjUgMS42NSAwIDAgMCAxLTEuNTFWM2EyIDIgMCAwIDEgNCAwdi4wOWExLjY1IDEuNjUgMCAwIDAgMSAxLjUxIDEuNjUgMS42NSAwIDAgMCAxLjgyLS4zM2wuMDYtLjA2YTIgMiAwIDAgMSAyLjgzIDIuODNsLS4wNi4wNkExLjY1IDEuNjUgMCAwIDAgMTkuNCA5YTEuNjUgMS42NSAwIDAgMCAxLjUxIDFIMjFhMiAyIDAgMCAxIDAgNGgtLjA5YTEuNjUgMS42NSAwIDAgMC0xLjUxIDF6Ii8+PC9zdmc+PHNwYW4+XHU4QkJFXHU3RjZFPC9zcGFuPjwvYnV0dG9uPicrKHRtKCk/JzxidXR0b24gaWQ9ImJhY2stdG8tbmF0aXZlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItYmFjay10by1uYXRpdmUiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OEZENFx1NTZERSBBcHAgXHU1MzlGXHU3NTFGXHU3NTRDXHU5NzYyIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjEwIiB5PSIzIiB3aWR0aD0iMTEiIGhlaWdodD0iMTgiIHJ4PSIyIi8+PGxpbmUgeDE9IjE0IiB5MT0iMTciIHgyPSIxNyIgeTI9IjE3Ii8+PHBvbHlsaW5lIHBvaW50cz0iNyA4IDMgMTIgNyAxNiIvPjwvc3ZnPjxzcGFuPlx1OEZENFx1NTZERUFwcDwvc3Bhbj48L2J1dHRvbj4nOiIiKSsoWGEoKT8nPGJ1dHRvbiBpZD0ic3dpdGNoLXNlcnZlci1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLXN3aXRjaC1zZXJ2ZXIiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIwN1x1NjM2Mlx1NjcwRFx1NTJBMVx1NTY2OCI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48cmVjdCB4PSIyIiB5PSIxMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSI3IiB4Mj0iNi4wMSIgeTI9IjciLz48bGluZSB4MT0iNiIgeTE9IjE3IiB4Mj0iNi4wMSIgeTI9IjE3Ii8+PC9zdmc+PHNwYW4+XHU1MjA3XHU2MzYyPC9zcGFuPjwvYnV0dG9uPic6IiIpKyc8YnV0dG9uIGlkPSJsb2dvdXQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1sb2dvdXQiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OTAwMFx1NTFGQVx1NzY3Qlx1NUY1NSI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQiLz48cG9seWxpbmUgcG9pbnRzPSIxNiAxNyAyMSAxMiAxNiA3Ii8+PGxpbmUgeDE9IjIxIiB5MT0iMTIiIHgyPSI5IiB5Mj0iMTIiLz48L3N2Zz48c3Bhbj5cdTkwMDBcdTUxRkE8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9hc2lkZT48bWFpbiBjbGFzcz0ibWFpbi1jb250ZW50Ij48ZGl2IGNsYXNzPSJtYWluLWhlYWRlci1yb3ciPjxkaXYgY2xhc3M9InRvcGJhci1sZWZ0Ij48YnV0dG9uIGlkPSJzZXNzaW9ucy10b2dnbGUtYnV0dG9uIiBjbGFzcz0iZmxvYXRpbmctc2lkZWJhci10b2dnbGUnKyhyLnNlc3Npb25zRHJhd2VyT3Blbj8iIGFjdGl2ZSI6IiIpKyciIGFyaWEtbGFiZWw9Ilx1NTIwN1x1NjM2Mlx1NEYxQVx1OEJERFx1NEZBN1x1NjgwRiIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0iaGFtYnVyZ2VyLWljb24iPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvc3Bhbj48L2J1dHRvbj48c3BhbiBjbGFzcz0idG9wYmFyLWJyYW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Vzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ0b3BiYXItY2VudGVyIj4nKyh0Pyc8c3BhbiBjbGFzcz0idG9wYmFyLXNlc3Npb24tdGl0bGUiIHRpdGxlPSInK3AodC5kZXNjcmlwdGlvbnx8dC5jb21tYW5kfHwiIikrJyI+JytwKHQudGl0bGV8fFFuKHQuY29tbWFuZCkpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tc3RhdHVzLXBpbGwgJythcyh0KSsnIiB0aXRsZT0iJytwKGRyKHQpKSsnIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMtZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tc3RhdHVzLXRleHQiPicrcChkcih0KSkrJzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImN1cnJlbnQtdGFzayBoaWRkZW4iIGlkPSJjdXJyZW50LXRhc2siPjwvc3Bhbj4nKyh0LmN3ZD8nPHNwYW4gY2xhc3M9InRvcGJhci1jd2QiIGlkPSJ0b3BiYXItY3dkIiB0aXRsZT0iJytwKHQuY3dkKSsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj4nK3AodC5jd2QpKyI8L3NwYW4+IjoiIik6JzxzcGFuIGNsYXNzPSJ0b3BiYXItdGFnbGluZSI+V2FuZCBcdTYzQTdcdTUyMzZcdTUzRjA8L3NwYW4+PHNwYW4gY2xhc3M9ImN1cnJlbnQtdGFzayBoaWRkZW4iIGlkPSJjdXJyZW50LXRhc2siPjwvc3Bhbj4nKSsnPC9kaXY+PGRpdiBjbGFzcz0idG9wYmFyLXJpZ2h0Ij48YnV0dG9uIGlkPSJ0b3BiYXItZmlsZS1idXR0b24iIGNsYXNzPSJ0b3BiYXItYnRuIHNxdWFyZScrKHIuZmlsZVBhbmVsT3Blbj8iIGFjdGl2ZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU2NTg3XHU0RUY2IiB0aXRsZT0iXHU2N0U1XHU3NzBCXHU2NTg3XHU0RUY2XHVGRjA4XHU1M0VGXHU0RkVFXHU2NTM5XHU4REVGXHU1Rjg0XHVGRjA5Ij48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIvPjwvc3ZnPjwvYnV0dG9uPjxzcGFuIGlkPSJ0b3BiYXItZ2l0LXNsb3QiIGNsYXNzPSJ0b3BiYXItZ2l0LXNsb3QiPicrWHUoKSsiPC9zcGFuPiIrKHQ/SWModCk6IiIpKyc8L2Rpdj48L2Rpdj48ZGl2IGlkPSJmaWxlLXBhbmVsLWJhY2tkcm9wIiBjbGFzcz0iZmlsZS1wYW5lbC1iYWNrZHJvcCcrKHIuZmlsZVBhbmVsT3Blbj8iIG9wZW4iOiIiKSsnIj48L2Rpdj48ZGl2IGlkPSJmaWxlLXNpZGUtcGFuZWwiIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwnKyhyLmZpbGVQYW5lbE9wZW4/IiBvcGVuIjoiIikrJyI+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWhlYWRlciI+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLXRpdGxlLWdyb3VwIj48c3BhbiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWljb24iPicrUGUoImZvbGRlci1vcGVuIix7c2l6ZToxNn0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC10aXRsZSI+XHU2NTg3XHU0RUY2PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1oZWFkZXItYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWljb25idG4iIGlkPSJmaWxlLWV4cGxvcmVyLXJlZnJlc2giIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIzN1x1NjVCMCIgYXJpYS1sYWJlbD0iXHU1MjM3XHU2NUIwXHU2NTg3XHU0RUY2XHU1MjE3XHU4ODY4Ij4nK1BlKCJyZWZyZXNoIix7c2l6ZToxNX0pKyc8L2J1dHRvbj48YnV0dG9uIGlkPSJmaWxlLXNpZGUtcGFuZWwtY2xvc2UiIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaWNvbmJ0biBjbG9zZSIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RURcdTY1ODdcdTRFRjZcdTk3NjJcdTY3N0YiIHRpdGxlPSJcdTUxNzNcdTk1RUQiPicrUGUoIngiLHtzaXplOjE2fSkrJzwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1ib2R5Ij48ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyLWhlYWRlciI+PGJ1dHRvbiBjbGFzcz0iZmlsZS1leHBsb3Jlci11cCIgaWQ9ImZpbGUtZXhwbG9yZXItdXAiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OEZENFx1NTZERVx1NEUwQVx1N0VBN1x1NzZFRVx1NUY1NSIgYXJpYS1sYWJlbD0iXHU4RkQ0XHU1NkRFXHU0RTBBXHU3RUE3XHU3NkVFXHU1RjU1Ij4nK1BlKCJhcnJvdy11cCIse3NpemU6MTV9KSsnPC9idXR0b24+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmaWxlLWV4cGxvcmVyLXBhdGgiIGlkPSJmaWxlLWV4cGxvcmVyLWN3ZCIgdmFsdWU9IicrcCh0JiZ0LmN3ZD90LmN3ZDp1bigpKSsnIiB0aXRsZT0iJytwKHQmJnQuY3dkP3QuY3dkOnVuKCkpKyciIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdThERUZcdTVGODRcdTVFNzZcdTU2REVcdThGNjYuLi4iIHNwZWxsY2hlY2s9ImZhbHNlIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXJpYS1sYWJlbD0iXHU1RjUzXHU1MjREXHU4REVGXHU1Rjg0XHVGRjBDXHU1M0VGXHU3NkY0XHU2M0E1XHU0RkVFXHU2NTM5XHU1NDBFXHU1NkRFXHU4RjY2IiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2VhcmNoLWJveCI+PHNwYW4gY2xhc3M9ImZpbGUtc2VhcmNoLWljb24iPicrUGUoInNlYXJjaCIse3NpemU6MTR9KSsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZmlsZS1zZWFyY2gtaW5wdXQiIGNsYXNzPSJmaWxlLXNlYXJjaC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1NjQxQ1x1N0QyMlx1NUY1M1x1NTI0RFx1NzZFRVx1NUY1NVx1MjAyNiIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiAvPjxidXR0b24gY2xhc3M9ImZpbGUtc2VhcmNoLWNsZWFyIiBpZD0iZmlsZS1zZWFyY2gtY2xlYXIiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU2RTA1XHU5NjY0XHU2NDFDXHU3RDIyIiB0aXRsZT0iXHU2RTA1XHU5NjY0Ij4nK1BlKCJ4Iix7c2l6ZToxM30pKyc8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIiBpZD0iZmlsZS1leHBsb3JlciI+Jyt2Yyh0JiZ0LmN3ZD90LmN3ZDp1bigpKSsnPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0ib3V0cHV0IiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyJysoci5zZWxlY3RlZElkPyIiOiIgaGlkZGVuIikrJyBhY3RpdmUiPjxkaXYgY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXkiIGFyaWEtbGFiZWw9Ilx1N0VDOFx1N0FFRlx1N0YyOVx1NjUzRVx1NjNBN1x1NEVGNiI+PGJ1dHRvbiBpZD0idGVybWluYWwtc2NhbGUtZG93bi10b3AiIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0biB0ZXJtaW5hbC1zY2FsZS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1N0YyOVx1NUMwRiI+XHUyMjEyPC9idXR0b24+PHNwYW4gY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktbGFiZWwgdGVybWluYWwtc2NhbGUtbGFiZWwiIGlkPSJ0ZXJtaW5hbC1zY2FsZS1sYWJlbC10b3AiPicrTWF0aC5yb3VuZChyLnRlcm1pbmFsU2NhbGUqMTAwKSsnJTwvc3Bhbj48YnV0dG9uIGlkPSJ0ZXJtaW5hbC1zY2FsZS11cC10b3AiIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0biB0ZXJtaW5hbC1zY2FsZS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjUzRVx1NTkyNyI+KzwvYnV0dG9uPjxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWRpdmlkZXIiPjwvc3Bhbj48YnV0dG9uIGlkPSJwYWdlLXJlZnJlc2gtYnRuIiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2MiI+XHUyMUJCPC9idXR0b24+PC9kaXY+PGJ1dHRvbiBpZD0idGVybWluYWwtanVtcC1ib3R0b20iIGNsYXNzPSJ0ZXJtaW5hbC1qdW1wLWJvdHRvbScrKHIuc2hvd1Rlcm1pbmFsSnVtcFRvQm90dG9tPyIgdmlzaWJsZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTZERVx1NTIzMFx1NUU5NVx1OTBFOCIgYXJpYS1sYWJlbD0iXHU1NkRFXHU1MjMwXHU1RTk1XHU5MEU4Ij48c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOCAzLjV2OU0zLjUgOGw0LjUgNC41TDEyLjUgOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImNoYXQtb3V0cHV0IiBjbGFzcz0iY2hhdC1jb250YWluZXIgaGlkZGVuIj48ZGl2IGlkPSJjaGF0LWZvbGQtYmFyIiBjbGFzcz0iY2hhdC1mb2xkLWJhciBoaWRkZW4iIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj48YnV0dG9uIGlkPSJjaGF0LXVucmVhZC1idWJibGUiIGNsYXNzPSJjaGF0LXVucmVhZC1idWJibGUiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTZERVx1NTIzMFx1NjcwMFx1NjVCMFx1NkQ4OFx1NjA2RiIgYXJpYS1sYWJlbD0iXHU1NkRFXHU1MjMwXHU2NzAwXHU2NUIwXHU2RDg4XHU2MDZGIj48c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtYnViYmxlLWljb24iPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik04IDMuNXY5TTMuNSA4bDQuNSA0LjVMMTIuNSA4Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LXVucmVhZC1idWJibGUtY291bnQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iYmxhbmstY2hhdCIgY2xhc3M9ImJsYW5rLWNoYXQnKyhyLnNlbGVjdGVkSWQ/IiBoaWRkZW4iOiIiKSsnIj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWlubmVyIj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWxvZ28iPlc8L2Rpdj48aDIgY2xhc3M9ImJsYW5rLWNoYXQtdGl0bGUiPldhbmQ8L2gyPjxwIGNsYXNzPSJibGFuay1jaGF0LXN1YnRpdGxlIj5cdTY1MkZcdTYzMDFcdTdFQzhcdTdBRUYgUFRZIFx1NEYxQVx1OEJERFx1NEUwRVx1N0VEM1x1Njc4NFx1NTMxNiBjaGF0IFx1NEYxQVx1OEJERFx1RkYwQ1x1NEUyNFx1NzlDRFx1NkEyMVx1NUYwRlx1NTNFRlx1NUU3Nlx1NUI1OFx1MzAwMjwvcD48ZGl2IGNsYXNzPSJibGFuay1jaGF0LXRvb2xzIj48YnV0dG9uIGNsYXNzPSJibGFuay1jaGF0LXRvb2wtYnRuIiBpZD0id2VsY29tZS10b29sLWNsYXVkZSIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idG9vbC1pY29uIj4nK1YoInRlcm1pbmFsIix7c2l6ZToxNixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPlx1NjVCMFx1NUVGQVx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJsYW5rLWNoYXQtdG9vbC1idG4iIGlkPSJ3ZWxjb21lLXRvb2wtY29kZXgiIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InRvb2wtaWNvbiB0b29sLWljb24tdGV4dCI+XHUyMzE4PC9zcGFuPlx1NjVCMFx1NUVGQSBDb2RleCBcdTRGMUFcdThCREQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJibGFuay1jaGF0LXRvb2wtYnRuIiBpZD0id2VsY29tZS10b29sLXN0cnVjdHVyZWQiIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InRvb2wtaWNvbiI+JytWKCJjaGF0Iix7c2l6ZToxNixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPlx1NjVCMFx1NUVGQVx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERDwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLXdyYXAiPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkIiBpZD0iYmxhbmstY2hhdC1jd2QiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIHRpdGxlPSJcdTcwQjlcdTUxRkJcdTUyMDdcdTYzNjJcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTUiPjxzcGFuIGNsYXNzPSJibGFuay1jaGF0LWN3ZC1pY29uIj4nK1YoImZvbGRlciIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtcGF0aCIgaWQ9ImJsYW5rLWNoYXQtY3dkLXBhdGgiPicrcCh0dCgpKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJibGFuay1jaGF0LWN3ZC1hcnJvdyIgaWQ9ImJsYW5rLWNoYXQtY3dkLWFycm93Ij4nK1YoImNoZXZyb25Eb3duIix7c2l6ZToxMSxzdHJva2VXaWR0aDoyfSkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZC1kcm9wZG93biBoaWRkZW4iIGlkPSJibGFuay1jaGF0LWN3ZC1kcm9wZG93biI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaW5wdXQtcGFuZWwnKyhyLnNlbGVjdGVkSWQ/IiI6IiBoaWRkZW4iKSsnIj48ZGl2IGNsYXNzPSJjb21wb3Nlci10b3Atcm93Ij48ZGl2IGlkPSJ0b2RvLXByb2dyZXNzIiBjbGFzcz0idG9kby1wcm9ncmVzcyBoaWRkZW4iPjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtaGVhZGVyIiBpZD0idG9kby1wcm9ncmVzcy10b2dnbGUiPjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtZmlsbCIgaWQ9InRvZG8tcHJvZ3Jlc3MtZmlsbCIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSItLXByb2dyZXNzOjAiPjwvZGl2PjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtbGVmdCI+PHNwYW4gY2xhc3M9InRvZG8tcHJvZ3Jlc3MtcmluZyIgaWQ9InRvZG8tcHJvZ3Jlc3MtcmluZyIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSItLXByb2dyZXNzOjAiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMzYgMzYiPjxjaXJjbGUgY2xhc3M9InRvZG8tcmluZy10cmFjayIgY3g9IjE4IiBjeT0iMTgiIHI9IjE1LjUiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNCIvPjxjaXJjbGUgY2xhc3M9InRvZG8tcmluZy1maWxsIiBjeD0iMTgiIGN5PSIxOCIgcj0iMTUuNSIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9InRvZG8tcHJvZ3Jlc3MtY291bnRlciIgaWQ9InRvZG8tcHJvZ3Jlc3MtY291bnRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtdGFzay13cmFwIj48c3BhbiBjbGFzcz0idG9kby1wcm9ncmVzcy10YXNrIiBpZD0idG9kby1wcm9ncmVzcy10YXNrIj48L3NwYW4+PC9kaXY+PHN2ZyBjbGFzcz0idG9kby1wcm9ncmVzcy1jaGV2cm9uIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSI2IDE1IDEyIDkgMTggMTUiLz48L3N2Zz48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ0b2RvLXByb2dyZXNzLWJvZHkgaGlkZGVuIiBpZD0idG9kby1wcm9ncmVzcy1ib2R5Ij48dWwgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtbGlzdCIgaWQ9InRvZG8tcHJvZ3Jlc3MtbGlzdCI+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJxdWV1ZS1iYXItaG9zdCIgY2xhc3M9InF1ZXVlLWJhci1ob3N0IiBoaWRkZW4+PC9kaXY+PGRpdiBjbGFzcz0iaW5wdXQtY29tcG9zZXInKyhhPyIgaGFzLXRleHQiOiIiKSsnIj48ZGl2IGNsYXNzPSJjb21wb3Nlci1zdGF0dXMtcm93IiBpZD0iY29tcG9zZXItc3RhdHVzLXJvdyI+JytkbSh0KSsnPHNwYW4gY2xhc3M9InBlcm1pc3Npb24tYWN0aW9ucyBoaWRkZW4iIGlkPSJwZXJtaXNzaW9uLWFjdGlvbnMiPjxzcGFuIGNsYXNzPSJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiIGlkPSJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiPlx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0Mzwvc3Bhbj48YnV0dG9uIGlkPSJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiBjbGFzcz0iYnRuIGJ0bi1wZXJtaXNzaW9uIGJ0bi1wZXJtaXNzaW9uLWFwcHJvdmUiIHR5cGU9ImJ1dHRvbiI+XHU2Mjc5XHU1MUM2PC9idXR0b24+PGJ1dHRvbiBpZD0iZGVueS1wZXJtaXNzaW9uLWJ0biIgY2xhc3M9ImJ0biBidG4tcGVybWlzc2lvbiBidG4tcGVybWlzc2lvbi1kZW55IiB0eXBlPSJidXR0b24iPlx1NjJEMlx1N0VERDwvYnV0dG9uPjwvc3Bhbj4nK3dmKCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLW1haW4tcm93Ij48ZGl2IGNsYXNzPSJjb21wb3Nlci1hY3Rpb25zLWxlZnQiPjxidXR0b24gaWQ9ImF0dGFjaC1idG4iIGNsYXNzPSJidG4tY2lyY2xlIGJ0bi1jaXJjbGUtYWN0aW9uIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTY2RjRcdTU5MUEiIGFyaWEtbGFiZWw9Ilx1NjZGNFx1NTkxQSIgYXJpYS1oYXNwb3B1cD0ibWVudSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPicrVigicGx1cyIse3NpemU6MTgsc3Ryb2tlV2lkdGg6Mi4yfSkrJzwvYnV0dG9uPjxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZS11cGxvYWQtaW5wdXQiIG11bHRpcGxlIHRhYmluZGV4PSItMSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtvdmVyZmxvdzpoaWRkZW47Y2xpcDpyZWN0KDAsMCwwLDApO3BvaW50ZXItZXZlbnRzOm5vbmUiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLWlubGluZS1jb25maWciPicrbGwodCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLWlucHV0LXdyYXAiPjx0ZXh0YXJlYSBpZD0iaW5wdXQtYm94IiBjbGFzcz0iaW5wdXQtdGV4dGFyZWEiIHBsYWNlaG9sZGVyPSInK25sKHQsci50ZXJtaW5hbEludGVyYWN0aXZlKSsnIiByb3dzPSIxIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIGVudGVya2V5aGludD0ic2VuZCI+JytwKGEpKyc8L3RleHRhcmVhPjxidXR0b24gaWQ9InByb21wdC1vcHRpbWl6ZS1idG4iIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtYnRuIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdUZGMDhBSVx1RkYwOSIgYXJpYS1sYWJlbD0iXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2Ij48c3ZnIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtaWNvbiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xMiAzbDEuNiA0LjRMMTggOWwtNC40IDEuNkwxMiAxNWwtMS42LTQuNEw2IDlsNC40LTEuNnoiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4yNSIvPjxwYXRoIGQ9Ik0xMiAzbDEuNiA0LjRMMTggOWwtNC40IDEuNkwxMiAxNWwtMS42LTQuNEw2IDlsNC40LTEuNnoiLz48cGF0aCBkPSJNMTkgMTRsLjcgMS45TDIxLjYgMTdsLTEuOS43TDE5IDE5LjZsLS43LTEuOUwxNi40IDE3bDEuOS0uN3oiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4zNSIvPjxwYXRoIGQ9Ik01IDRsLjUgMS40TDcgNmwtMS41LjZMNSA4bC0uNS0xLjRMMyA2bDEuNS0uNnoiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4zNSIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtc3Bpbm5lciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48L2J1dHRvbj48ZGl2IGNsYXNzPSJ2b2ljZS1pbnB1dC1tb2RlIGhpZGRlbiIgaWQ9InZvaWNlLWlucHV0LW1vZGUiPjxidXR0b24gaWQ9InZvaWNlLXJlY29yZC1idG4iIGNsYXNzPSJ2b2ljZS1yZWNvcmQtYnRuIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJ2b2ljZS1yZWNvcmQtcHVsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PHNwYW4gY2xhc3M9InZvaWNlLXJlY29yZC1sYWJlbCI+XHU2MzA5XHU0RjRGIFx1OEJGNFx1OEJERDwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJ2b2ljZS1jYW5jZWwtYnRuIiBjbGFzcz0idm9pY2UtY2FuY2VsLWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU5MDAwXHU1MUZBXHU4QkVEXHU5N0YzXHU2QTIxXHU1RjBGIiBhcmlhLWxhYmVsPSJcdTkwMDBcdTUxRkFcdThCRURcdTk3RjNcdTZBMjFcdTVGMEYiPicrVigieCIse3NpemU6MTQsc3Ryb2tlV2lkdGg6Mn0pKyc8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb21wb3Nlci1hY3Rpb25zLXJpZ2h0Ij48YnV0dG9uIGlkPSJzdG9wLWJ1dHRvbiIgY2xhc3M9ImJ0bi1jaXJjbGUgYnRuLWNpcmNsZS1zdG9wIGhpZGRlbiIgdGl0bGU9Ilx1NTA1Q1x1NkI2MiI+PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj48cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIi8+PC9zdmc+PC9idXR0b24+PGJ1dHRvbiBpZD0ic2VuZC1pbnB1dC1idXR0b24iIGNsYXNzPSJidG4tY2lyY2xlIGJ0bi1jaXJjbGUtc2VuZCIgdGl0bGU9Ilx1NTNEMVx1OTAwMSI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxsaW5lIHgxPSIyMiIgeTE9IjIiIHgyPSIxMSIgeTI9IjEzIi8+PHBvbHlnb24gcG9pbnRzPSIyMiAyIDE1IDIyIDExIDEzIDIgOSAyMiAyIi8+PC9zdmc+PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBpZD0iYXR0YWNobWVudC1wcmV2aWV3IiBjbGFzcz0iYXR0YWNobWVudC1wcmV2aWV3IGhpZGRlbiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItcGx1cy1wb3BvdmVyIGhpZGRlbiIgaWQ9ImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIgcm9sZT0ibWVudSIgYXJpYS1sYWJlbD0iXHU2NkY0XHU1OTFBXHU2NENEXHU0RjVDIj48YnV0dG9uIGNsYXNzPSJwbHVzLXBvcG92ZXItaXRlbSIgaWQ9InBsdXMtYXR0YWNoLWl0ZW0iIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicrVigicGFwZXJjbGlwIix7c2l6ZToxNCxzdHJva2VXaWR0aDoxLjgsY2xzOiJwbHVzLXBvcG92ZXItaWNvbiJ9KSsnPHNwYW4gY2xhc3M9InBsdXMtcG9wb3Zlci1sYWJlbCI+XHU0RTBBXHU0RjIwXHU5NjQ0XHU0RUY2PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InBsdXMtcG9wb3Zlci1pdGVtJysoci50ZXJtaW5hbEludGVyYWN0aXZlPyIgaXMtb24iOiIiKSsnIiBpZD0idGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlLXRvcCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbWNoZWNrYm94IiBhcmlhLWNoZWNrZWQ9IicrKHIudGVybWluYWxJbnRlcmFjdGl2ZT8idHJ1ZSI6ImZhbHNlIikrJyI+JytWKCJrZXlib2FyZCIse3NpemU6MTQsc3Ryb2tlV2lkdGg6MS44LGNsczoicGx1cy1wb3BvdmVyLWljb24ifSkrJzxzcGFuIGNsYXNzPSJwbHVzLXBvcG92ZXItbGFiZWwiPlx1N0VDOFx1N0FFRlx1NEVBNFx1NEU5Mjwvc3Bhbj48c3BhbiBjbGFzcz0icGx1cy1wb3BvdmVyLXRvZ2dsZS1zdGF0ZSI+Jysoci50ZXJtaW5hbEludGVyYWN0aXZlPyJcdTVGMDAiOiJcdTUxNzMiKSsnPC9zcGFuPjwvYnV0dG9uPjxkaXYgY2xhc3M9InBsdXMtcG9wb3Zlci1zZXAiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj48ZGl2IGNsYXNzPSJwbHVzLXBvcG92ZXItdHJpby13cmFwIj4nK2xsKHQpKyc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSBoaWRkZW4iIGlkPSJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIgYXJpYS1saXZlPSJwb2xpdGUiPjxkaXYgY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtdGV4dCIgaWQ9InZvaWNlLXRyYW5zY3JpcHQtdGV4dCI+PC9kaXY+PGRpdiBjbGFzcz0idm9pY2UtdHJhbnNjcmlwdC1oaW50IiBpZD0idm9pY2UtdHJhbnNjcmlwdC1oaW50Ij48c3BhbiBjbGFzcz0idm9pY2Utd2F2ZSIgYXJpYS1oaWRkZW49InRydWUiPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48L3NwYW4+PHNwYW4gY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtc3RhdHVzIiBpZD0idm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiPlx1NkI2M1x1NTcyOFx1ODA0Nlx1NTQyQ1x1MjAyNlx1NEUwQVx1NkVEMVx1NTNENlx1NkQ4ODwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0idm9pY2UtYnViYmxlLWFycm93IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvZGl2PjxwIGlkPSJhY3Rpb24tZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiI+PC9wPjwvZGl2PjxzZWN0aW9uIGlkPSJmb2xkZXItcGlja2VyLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCBmb2xkZXItcGlja2VyLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1OTAwOVx1NjJFOVx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvaDI+PGJ1dHRvbiBpZD0iY2xvc2UtZm9sZGVyLXBpY2tlciIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stcm93Ij48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biBidG4td2l0aC1pY29uIiBkYXRhLXBhdGg9Ii90bXAiPicrVigidHJhc2giLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuN30pKyc8c3Bhbj5cdTRFMzRcdTY1RjZcdTc2RUVcdTVGNTU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1idG4gYnRuLXdpdGgtaWNvbiIgZGF0YS1wYXRoPSIvIj4nK1YoImZvbGRlciIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrJzxzcGFuPlx1NjgzOVx1NzZFRVx1NUY1NTwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItYnJlYWRjcnVtYiIgY2xhc3M9ImZvbGRlci1icmVhZGNydW1iIj48L2Rpdj48ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyIj48c3BhbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1pY29uIj4nK1YoImZvbGRlciIse3NpemU6MTUsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZvbGRlci1waWNrZXItaW5wdXQiIGNsYXNzPSJmb2xkZXItcGlja2VyLWlucHV0IiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2MjE2XHU5MDA5XHU2MkU5XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1Li4uIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIC8+PC9kaXY+PGRpdiBpZD0iZm9sZGVyLXBpY2tlci1kcm9wZG93biIgY2xhc3M9ImZvbGRlci1waWNrZXItZHJvcGRvd24gaGlkZGVuIj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iIGNsYXNzPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iPjwvZGl2PjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj48L21haW4+PC9kaXY+PC9kaXY+JytYYygpK1djKCkremMoKStucygpfWZ1bmN0aW9uIEhlKGUsdCl7aWYoZSl7ZS50ZXh0Q29udGVudD10LGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7Zm9yKHZhciBuPWUucHJldmlvdXNFbGVtZW50U2libGluZztuOyl7aWYobi50YWdOYW1lPT09IklOUFVUIil7bi5zZXRBdHRyaWJ1dGUoImRhdGEtZXJyb3IiLCJ0cnVlIik7YnJlYWt9bj1uLnByZXZpb3VzRWxlbWVudFNpYmxpbmd9fX1mdW5jdGlvbiBsaShlKXtpZihlKXtlLnRleHRDb250ZW50PSIiLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7Zm9yKHZhciB0PWUucHJldmlvdXNFbGVtZW50U2libGluZzt0Oyl7aWYodC50YWdOYW1lPT09IklOUFVUIil7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXJyb3IiLCJmYWxzZSIpO2JyZWFrfXQ9dC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nfX19ZnVuY3Rpb24gayhlLHQpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ0b2FzdC1tZXNzYWdlIisodD09PSJlcnJvciI/IiB0b2FzdC1lcnJvciI6IiIpLHQhPT0iZXJyb3IiJiYobi5zdHlsZS5iYWNrZ3JvdW5kPSJ2YXIoLS1hY2NlbnQpIixuLnN0eWxlLmNvbG9yPSJ3aGl0ZSIpLG4udGV4dENvbnRlbnQ9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnJlbW92ZSgpfSx0PT09ImVycm9yIj80ZTM6MjIwMCl9dmFyIEVyPVtdO2Z1bmN0aW9uIERmKGUpe3N3aXRjaChlKXtjYXNlIndhcm5pbmciOnJldHVybiIhIjtjYXNlImRhbmdlciI6cmV0dXJuIlx1MjZBMFx1RkUwRSI7Y2FzZSJzdWNjZXNzIjpyZXR1cm4iXHUyNzEzIjtjYXNlInF1ZXN0aW9uIjpyZXR1cm4iPyI7ZGVmYXVsdDpyZXR1cm4iaSJ9fWZ1bmN0aW9uIG9uKGUpe2U9ZXx8e307dmFyIHQ9ZS5kaXNtaXNzYWJsZSE9PSExLG49ZS50eXBlfHwiaW5mbyIsaT1lLmljb258fERmKG4pLGE9ISFlLmlucHV0O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih1KXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctYmFja2Ryb3AiLHMuc2V0QXR0cmlidXRlKCJyb2xlIiwicHJlc2VudGF0aW9uIik7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc05hbWU9IndhbmQtZGlhbG9nIixvLnNldEF0dHJpYnV0ZSgicm9sZSIsYT8iZGlhbG9nIjoiYWxlcnRkaWFsb2ciKSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1tb2RhbCIsInRydWUiKSxlLnRpdGxlJiZvLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsZS50aXRsZSk7dmFyIGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWhlYWRlciI7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yy5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWljb24gIituLGMudGV4dENvbnRlbnQ9aSxsLmFwcGVuZENoaWxkKGMpO3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKGYuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy10ZXh0d3JhcCIsZS50aXRsZSl7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5jbGFzc05hbWU9IndhbmQtZGlhbG9nLXRpdGxlIixkLnRleHRDb250ZW50PWUudGl0bGUsZi5hcHBlbmRDaGlsZChkKX1pZihlLm1lc3NhZ2Upe3ZhciB2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3YuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1tZXNzYWdlIix2LnRleHRDb250ZW50PWUubWVzc2FnZSxmLmFwcGVuZENoaWxkKHYpfWwuYXBwZW5kQ2hpbGQoZiksby5hcHBlbmRDaGlsZChsKTt2YXIgaD1udWxsO2lmKGEpe3ZhciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1ib2R5IixoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksaC50eXBlPSJ0ZXh0IixoLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctaW5wdXQiLGUuaW5wdXRQbGFjZWhvbGRlciYmKGgucGxhY2Vob2xkZXI9ZS5pbnB1dFBsYWNlaG9sZGVyKSxlLmlucHV0VmFsdWUhPW51bGwmJihoLnZhbHVlPVN0cmluZyhlLmlucHV0VmFsdWUpKSxnLmFwcGVuZENoaWxkKGgpLG8uYXBwZW5kQ2hpbGQoZyl9dmFyIG09ZS5idXR0b25zJiZlLmJ1dHRvbnMubGVuZ3RoP2UuYnV0dG9uczpbe2xhYmVsOiJcdTU5N0QiLHZhbHVlOiEwLGtpbmQ6InByaW1hcnkiLGF1dG9mb2N1czohMH1dLHk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7eS5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWZvb3RlciI7dmFyIHc9bnVsbCxFPW51bGw7ZnVuY3Rpb24gQih4KXtpZighcy5jbGFzc0xpc3QuY29udGFpbnMoImNsb3NpbmciKSl7cy5jbGFzc0xpc3QuYWRkKCJjbG9zaW5nIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRiwhMCk7dmFyIFM9RXIuaW5kZXhPZihCKTtTPj0wJiZFci5zcGxpY2UoUywxKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cy5wYXJlbnROb2RlJiZzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocyksdSh4KX0sMTYwKX19bS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpLF89eC5raW5kfHwic2Vjb25kYXJ5IjtTLmNsYXNzTmFtZT0iYnRuIGJ0bi0iK18sUy50eXBlPSJidXR0b24iLFMudGV4dENvbnRlbnQ9eC5sYWJlbCxTLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2EmJngua2luZD09PSJwcmltYXJ5Ij9CKGg/aC52YWx1ZToiIik6Qih4LnZhbHVlKX0pLHd8fCh3PVMpLHguYXV0b2ZvY3VzJiYoRT1TKSx5LmFwcGVuZENoaWxkKFMpfSksby5hcHBlbmRDaGlsZCh5KSxzLmFwcGVuZENoaWxkKG8pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHgpe3gudGFyZ2V0PT09cyYmdCYmQihlLmNhbmNlbFZhbHVlIT09dm9pZCAwP2UuY2FuY2VsVmFsdWU6YT9udWxsOiExKX0pO2Z1bmN0aW9uIEYoeCl7aWYoRXJbRXIubGVuZ3RoLTFdPT09Qil7aWYoeC5rZXk9PT0iRXNjYXBlIiYmdCl7eC5wcmV2ZW50RGVmYXVsdCgpLHguc3RvcFByb3BhZ2F0aW9uKCksQihlLmNhbmNlbFZhbHVlIT09dm9pZCAwP2UuY2FuY2VsVmFsdWU6YT9udWxsOiExKTtyZXR1cm59aWYoeC5rZXk9PT0iRW50ZXIiKXtmb3IodmFyIFM9bnVsbCxfPTA7XzxtLmxlbmd0aDtfKyspaWYobVtfXS5raW5kPT09InByaW1hcnkiKXtTPW1bX107YnJlYWt9U3x8KFM9bVttLmxlbmd0aC0xXSksUyYmKHgucHJldmVudERlZmF1bHQoKSx4LnN0b3BQcm9wYWdhdGlvbigpLGEmJlMua2luZD09PSJwcmltYXJ5Ij9CKGg/aC52YWx1ZToiIik6QihTLnZhbHVlKSl9fX1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixGLCEwKSxFci5wdXNoKEIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocykscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoYSYmaCl7aC5mb2N1cygpO3RyeXtoLnNlbGVjdCgpfWNhdGNoe319ZWxzZSBFP0UuZm9jdXMoKTp3JiZ3LmZvY3VzKCl9KX0pfWZ1bmN0aW9uIGtmKGUsdCl7cmV0dXJuIHQ9dHx8e30sb24oe3RpdGxlOnQudGl0bGV8fCJcdTYzRDBcdTc5M0EiLG1lc3NhZ2U6dHlwZW9mIGU9PSJzdHJpbmciP2U6U3RyaW5nKGU/PyIiKSx0eXBlOnQudHlwZXx8ImluZm8iLGJ1dHRvbnM6W3tsYWJlbDp0Lm9rTGFiZWx8fCJcdTU5N0QiLHZhbHVlOnZvaWQgMCxraW5kOiJwcmltYXJ5IixhdXRvZm9jdXM6ITB9XX0pfWZ1bmN0aW9uIFdzKGUsdCl7dD10fHx7fTt2YXIgbj0hIXQuZGFuZ2VyfHx0LnR5cGU9PT0iZGFuZ2VyIjtyZXR1cm4gb24oe3RpdGxlOnQudGl0bGV8fChuPyJcdTc4NkVcdThCQTRcdTY0Q0RcdTRGNUMiOiJcdThCRjdcdTc4NkVcdThCQTQiKSxtZXNzYWdlOnR5cGVvZiBlPT0ic3RyaW5nIj9lOlN0cmluZyhlPz8iIiksdHlwZTp0LnR5cGV8fChuPyJkYW5nZXIiOiJxdWVzdGlvbiIpLGNhbmNlbFZhbHVlOiExLGJ1dHRvbnM6W3tsYWJlbDp0LmNhbmNlbExhYmVsfHwiXHU1M0Q2XHU2RDg4Iix2YWx1ZTohMSxraW5kOiJzZWNvbmRhcnkifSx7bGFiZWw6dC5va0xhYmVsfHwobj8iXHU1MjIwXHU5NjY0IjoiXHU3ODZFXHU1QjlBIiksdmFsdWU6ITAsa2luZDpuPyJkYW5nZXIiOiJwcmltYXJ5IixhdXRvZm9jdXM6IW59XX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGk9PT0hMH0pfWZ1bmN0aW9uIEFmKGUsdCxuKXtyZXR1cm4gbj1ufHx7fSxvbih7dGl0bGU6bi50aXRsZXx8Ilx1OEJGN1x1OEY5M1x1NTE2NSIsbWVzc2FnZTp0eXBlb2YgZT09InN0cmluZyI/ZTpTdHJpbmcoZT8/IiIpLHR5cGU6bi50eXBlfHwicXVlc3Rpb24iLGlucHV0OiEwLGlucHV0VmFsdWU6dD09bnVsbD8iIjpTdHJpbmcodCksaW5wdXRQbGFjZWhvbGRlcjpuLnBsYWNlaG9sZGVyfHwiIixjYW5jZWxWYWx1ZTpudWxsLGJ1dHRvbnM6W3tsYWJlbDpuLmNhbmNlbExhYmVsfHwiXHU1M0Q2XHU2RDg4Iix2YWx1ZTpudWxsLGtpbmQ6InNlY29uZGFyeSJ9LHtsYWJlbDpuLm9rTGFiZWx8fCJcdTc4NkVcdTVCOUEiLHZhbHVlOnZvaWQgMCxraW5kOiJwcmltYXJ5In1dfSl9d2luZG93LndhbmRBbGVydD1rZix3aW5kb3cud2FuZENvbmZpcm09V3Msd2luZG93LndhbmRQcm9tcHQ9QWYsd2luZG93Lm9wZW5XYW5kRGlhbG9nPW9uO3ZhciBubj1bXSx6cz0wLHhmPTYsU2Y9MTY7ZnVuY3Rpb24gRWEoZSl7aWYoKGUuYWN0aW9uTGFiZWx8fGUucGxheVNvdW5kKSYmR3MoKSwhci5ub3RpZkJ1YmJsZSlyZXR1cm57ZGlzbWlzczpmdW5jdGlvbigpe319O3ZhciB0PSsrenMsbj1lLnR5cGV8fCJpbmZvIixpPWUuaWNvbnx8KG49PT0id2FybmluZyI/IiEiOm49PT0ic3VjY2VzcyI/Ilx1MjcxMyI6ImkiKSxhPWUuZHVyYXRpb24hPT12b2lkIDA/ZS5kdXJhdGlvbjo4ZTMsdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LmNsYXNzTmFtZT0ibm90aWZpY2F0aW9uLWJ1YmJsZSIsdS5zZXRBdHRyaWJ1dGUoImRhdGEtbmlkIixTdHJpbmcodCkpO3ZhciBzPSc8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWhlYWRlciI+PHNwYW4gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtaWNvbiAnK24rJyI+JytpKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtdGl0bGUiPicrcChlLnRpdGxlKSsnPC9zcGFuPjxidXR0b24gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtY2xvc2UiIHRpdGxlPSJcdTUxNzNcdTk1RUQiPlx4RDc8L2J1dHRvbj48L2Rpdj4nLG89ZS5ib2R5Pyc8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWJvZHkiPicrcChlLmJvZHkpLnJlcGxhY2UoL1xuL2csIjxicj4iKSsiPC9kaXY+IjoiIixsPWUuYWN0aW9uTGFiZWw/JzxkaXYgY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0icHJpbWFyeSI+JytwKGUuYWN0aW9uTGFiZWwpKyI8L2J1dHRvbj48L2Rpdj4iOiIiO3UuaW5uZXJIVE1MPXMrbytsLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodSk7dmFyIGM9e2lkOnQsZWw6dX07bm4ucHVzaChjKSxGYSgpO3ZhciBmPXUucXVlcnlTZWxlY3RvcigiLm5vdGlmaWNhdGlvbi1idWJibGUtY2xvc2UiKTtpZihmJiYoZi5vbmNsaWNrPWZ1bmN0aW9uKCl7RnIodCl9KSxlLmFjdGlvbkxhYmVsJiZlLmFjdGlvbil7dmFyIGQ9dS5xdWVyeVNlbGVjdG9yKCIubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbiIpO2QmJihkLm9uY2xpY2s9ZnVuY3Rpb24oKXtlLmFjdGlvbigpLEZyKHQpfSl9dmFyIHY9bnVsbDtyZXR1cm4gYT4wJiYodj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7RnIodCl9LGEpKSx7ZGlzbWlzczpmdW5jdGlvbigpe0ZyKHQpfX19ZnVuY3Rpb24gRnIoZSl7Zm9yKHZhciB0PS0xLG49MDtuPG5uLmxlbmd0aDtuKyspaWYobm5bbl0uaWQ9PT1lKXt0PW47YnJlYWt9aWYodCE9PS0xKXt2YXIgaT1ublt0XTtpLmVsLmNsYXNzTGlzdC5hZGQoInNsaWRlLW91dCIpLG5uLnNwbGljZSh0LDEpLEZhKCksc2V0VGltZW91dChmdW5jdGlvbigpe2kuZWwucGFyZW50Tm9kZSYmaS5lbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkuZWwpfSwzMDApfX1mdW5jdGlvbiBGYSgpe2Zvcih2YXIgZT1TZix0PTA7dDxubi5sZW5ndGg7dCsrKW5uW3RdLmVsLnN0eWxlLnRvcD1lKyJweCIsZSs9bm5bdF0uZWwub2Zmc2V0SGVpZ2h0K3hmfXRyeXtRcz1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XYW5kUGxhdGZvcm1cL21hY09TLyksQmE9d2luZG93LndlYmtpdCYmd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMmJndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLndhbmROYXRpdmV8fG51bGwsUXMmJkJhJiZ0eXBlb2Ygd2luZG93LldhbmROYXRpdmU+InUiJiYod2luZG93LldhbmROYXRpdmU9e2Rvd25sb2FkVXBkYXRlOmZ1bmN0aW9uKGUsdCxuKXt0cnl7QmEucG9zdE1lc3NhZ2Uoe3R5cGU6ImRvd25sb2FkVXBkYXRlIix1cmw6U3RyaW5nKGV8fCIiKSxmaWxlTmFtZTpTdHJpbmcodHx8IndhbmQtdXBkYXRlLmRtZyIpLHNvdXJjZTpTdHJpbmcobnx8ImxvY2FsIil9KX1jYXRjaHt9fX0pfWNhdGNoe312YXIgV2U9dHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uPT0iZnVuY3Rpb24iLHdyPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1dhbmRBcHBcLyhbXlxzXSspLyksVXM9L1dhbmRQbGF0Zm9ybVwvbWFjT1MvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksSWY9ISF3ciYmIVVzLFNuPXdyJiZJZj93clsxXTpudWxsLGxuPXdyJiZVcz93clsxXTpudWxsO2Z1bmN0aW9uIEtuKGUpe2lmKCEoIVdlfHx0eXBlb2YgV2FuZE5hdGl2ZS52aWJyYXRlIT0iZnVuY3Rpb24iKSl0cnl7V2FuZE5hdGl2ZS52aWJyYXRlKGV8fCJsaWdodCIpfWNhdGNoe319ZnVuY3Rpb24gd2EoKXtpZihXZSl7dmFyIGU9ci5zZXNzaW9ucy5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiF0LmFyY2hpdmVkJiYodC5zdGF0dXM9PT0icnVubmluZyJ8fHQuc3RhdHVzPT09InRoaW5raW5nInx8dC5zdGF0dXM9PT0iaW5pdGlhbGl6aW5nIil9KTtpZih0eXBlb2YgV2FuZE5hdGl2ZS5zZXRLZWVwU2NyZWVuT249PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc2V0S2VlcFNjcmVlbk9uKGUpfWNhdGNoe31pZihlKXtpZih0eXBlb2YgV2FuZE5hdGl2ZS5zdGFydEtlZXBBbGl2ZT09ImZ1bmN0aW9uIil0cnl7V2FuZE5hdGl2ZS5zdGFydEtlZXBBbGl2ZSgpfWNhdGNoe319ZWxzZSBpZih0eXBlb2YgV2FuZE5hdGl2ZS5zdG9wS2VlcEFsaXZlPT0iZnVuY3Rpb24iKXRyeXtXYW5kTmF0aXZlLnN0b3BLZWVwQWxpdmUoKX1jYXRjaHt9fX1mdW5jdGlvbiBjaSgpe2lmKFdlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXRQZXJtaXNzaW9uPT0iZnVuY3Rpb24iKXRyeXtyZXR1cm4gV2FuZE5hdGl2ZS5nZXRQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybiBudWxsfWZ1bmN0aW9uIFRmKCl7aWYoV2Upe3ZhciBlPWNpKCk7aWYoZT09PSJkZWZhdWx0Inx8ZT09PSJkZW5pZWQiKXRyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybn10eXBlb2YgTm90aWZpY2F0aW9uPCJ1IiYmTm90aWZpY2F0aW9uLnBlcm1pc3Npb249PT0iZGVmYXVsdCImJk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpfWZ1bmN0aW9uIExmKGUpe3ZhciB0PWV8fHt9O3JldHVybiEodC5vbmx5V2hlbkhpZGRlbiYmIWRvY3VtZW50LmhpZGRlbnx8dC5za2lwV2hlblNlbGVjdGVkU2Vzc2lvbklkJiZ0LnNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJiFkb2N1bWVudC5oaWRkZW4pfWZ1bmN0aW9uIE1mKGUsdCl7aWYoIWV8fCF0fHx0PD0wKXJldHVybiExO3ZhciBuPXIubm90aWZpY2F0aW9uSGlzdG9yeVtlXXx8MCxpPURhdGUubm93KCk7cmV0dXJuIGktbjx0PyEwOihyLm5vdGlmaWNhdGlvbkhpc3RvcnlbZV09aSwhMSl9ZnVuY3Rpb24gZGkoZSx0LG4pe3ZhciBpPW58fHt9LGE9aS50YWd8fCIiO2lmKExmKGkpJiYhTWYoYSxpLm1pbkludGVydmFsTXN8fDApKXtpZihXZSl7dmFyIHU9Y2koKTtpZih1IT09ImdyYW50ZWQiKXJldHVybjt0cnl7dmFyIHM9YTtpLmtpbmQmJihzPWkua2luZCsoYT8iOiIrYToiIikpLFdhbmROYXRpdmUuc2VuZE5vdGlmaWNhdGlvbihlfHwiV2FuZCIsdHx8IiIsc3x8IiIpfWNhdGNoe31yZXR1cm59aWYoISh0eXBlb2YgTm90aWZpY2F0aW9uPiJ1Inx8Tm90aWZpY2F0aW9uLnBlcm1pc3Npb24hPT0iZ3JhbnRlZCIpJiZkb2N1bWVudC5oaWRkZW4pdHJ5e3ZhciBvPW5ldyBOb3RpZmljYXRpb24oZSx7Ym9keTp0fHwiIixpY29uOmkuaWNvbnx8Ii9mYXZpY29uLmljbyIsdGFnOmF8fHZvaWQgMH0pO28ub25jbGljaz1mdW5jdGlvbigpe3dpbmRvdy5mb2N1cygpLG8uY2xvc2UoKSxpLm9uQ2xpY2smJmkub25DbGljaygpfSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7by5jbG9zZSgpfSwxZTQpfWNhdGNoe319fWZ1bmN0aW9uIFBmKGUsdCl7aWYoISghdHx8IXQudGl0bGUpKXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lfSk7aWYobil7dmFyIGk9bi5zdW1tYXJ5fHxuLmNvbW1hbmR8fGU7ZGkoIlx1NEVGQlx1NTJBMVx1OEZEQlx1ODg0Q1x1NEUyRCIsaStgCmArdC50aXRsZSx7a2luZDoidGFzayIsdGFnOiJ3YW5kLXRhc2stIitlKyItIit0LnRpdGxlLG1pbkludGVydmFsTXM6OWU0LG9ubHlXaGVuSGlkZGVuOiEwLHNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQ6ZSxvbkNsaWNrOmZ1bmN0aW9uKCl7ZSE9PXIuc2VsZWN0ZWRJZCYmenQoZSl9fSl9fX1mdW5jdGlvbiBWcyhlLHQpe1JmKGV8fCItIix0fHwiLSIpLGRpKCJXYW5kIFx1NTNEMVx1NzNCMFx1NjVCMFx1NzI0OFx1NjcyQyIsIlx1NUY1M1x1NTI0RCAiKyhlfHwiLSIpKyIgXHUyMTkyIFx1NjcwMFx1NjVCMCAiKyh0fHwiLSIpLHtraW5kOiJ1cGRhdGUiLHRhZzoid2FuZC11cGRhdGUiLG1pbkludGVydmFsTXM6M2U1fSl9ZnVuY3Rpb24gcWYoZSx0KXtkaSgiXHU5NzAwXHU4OTgxXHU0RjYwXHU3Njg0XHU2Mzg4XHU2NzQzIix0LHtraW5kOiJwZXJtaXNzaW9uIix0YWc6IndhbmQtcGVybS0iK2UsbWluSW50ZXJ2YWxNczo2ZTQsb25seVdoZW5IaWRkZW46ITAsc2tpcFdoZW5TZWxlY3RlZFNlc3Npb25JZDplLG9uQ2xpY2s6ZnVuY3Rpb24oKXtlIT09ci5zZWxlY3RlZElkJiZ6dChlKX19KX1mdW5jdGlvbiBPZihlLHQsbil7ZGkodCxuLHtraW5kOiJ0YXNrLWVuZGVkIix0YWc6IndhbmQtZW5kZWQtIitlLG1pbkludGVydmFsTXM6MWU0LG9uQ2xpY2s6ZnVuY3Rpb24oKXtlIT09ci5zZWxlY3RlZElkJiZ6dChlKX19KX12YXIgSW49e30sSGY9MzA7ZnVuY3Rpb24gS3MoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9U3RyaW5nKGUpLnJlcGxhY2UoL14jK1xzKy9nbSwiIikucmVwbGFjZSgvXCpcKi9nLCIiKS5yZXBsYWNlKC9gL2csIiIpLnRyaW0oKSxuPXQuc3BsaXQoYApgKVswXS50cmltKCk7cmV0dXJuIG4ubGVuZ3RoPjEwMCYmKG49bi5zbGljZSgwLDEwMCkrIlx1MjAyNiIpLG59ZnVuY3Rpb24gQ2EoZSl7IVdlfHx0eXBlb2YgV2FuZE5hdGl2ZS51cGRhdGVTZXNzaW9uUHJvZ3Jlc3MhPSJmdW5jdGlvbiJ8fGUmJihJbltlXSYmY2xlYXJUaW1lb3V0KEluW2VdKSxJbltlXT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZGVsZXRlIEluW2VdLF9mKGUpfSxIZikpfWZ1bmN0aW9uIF9mKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5pZD09PWV9KTtpZih0KXt2YXIgbj10LnN1bW1hcnl8fHQuY29tbWFuZHx8ZSxpPXQuc3RhdHVzfHwicnVubmluZyI7aWYoaT09PSJpZGxlInx8aT09PSJhcmNoaXZlZCJ8fGk9PT0iZXhpdGVkIil7SnMoZSk7cmV0dXJufWZvcih2YXIgYT1udWxsLHU9IiIscz0iIixvPVtdLGw9dC5tZXNzYWdlc3x8W10sYz1sLmxlbmd0aC0xO2M+PTA7Yy0tKXt2YXIgZj1sW2NdO2lmKCEoIWYuY29udGVudHx8IUFycmF5LmlzQXJyYXkoZi5jb250ZW50KSkpe2lmKCFzJiZmLnJvbGU9PT0iYXNzaXN0YW50Iilmb3IodmFyIGQ9Zi5jb250ZW50Lmxlbmd0aC0xO2Q+PTA7ZC0tKXt2YXIgdj1mLmNvbnRlbnRbZF07aWYodiYmdi50eXBlPT09InRleHQiJiZ2LnRleHQmJnYudGV4dC50cmltKCkpe3M9S3Modi50ZXh0KTticmVha319aWYoZi5yb2xlPT09InVzZXIiKXt2YXIgaD1mLmNvbnRlbnQuc29tZShmdW5jdGlvbih4KXtyZXR1cm4geCYmeC5fX3F1ZXVlZH0pO2lmKCFoKWZvcih2YXIgZz0wO2c8Zi5jb250ZW50Lmxlbmd0aDtnKyspe3ZhciBtPWYuY29udGVudFtnXTtpZihtJiZtLnR5cGU9PT0idGV4dCImJm0udGV4dCYmbS50ZXh0LnRyaW0oKSl7dmFyIHk9S3MobS50ZXh0KTt1fHwodT15KSxvLmxlbmd0aDw0JiZvLnB1c2goeSk7YnJlYWt9fX1pZighYSlmb3IodmFyIHc9Zi5jb250ZW50Lmxlbmd0aC0xO3c+PTA7dy0tKXt2YXIgRT1mLmNvbnRlbnRbd107aWYoRSYmRS50eXBlPT09InRvb2xfdXNlIiYmRS5uYW1lPT09IlRvZG9Xcml0ZSImJkUuaW5wdXQmJkUuaW5wdXQudG9kb3Mpe2E9RS5pbnB1dC50b2RvczticmVha319aWYoYSYmby5sZW5ndGg+PTQmJnMpYnJlYWt9fW8ucmV2ZXJzZSgpO3ZhciBCPSIiO2U9PT1yLnNlbGVjdGVkSWQmJnIuY3VycmVudFRhc2smJnIuY3VycmVudFRhc2sudGl0bGUmJihCPXIuY3VycmVudFRhc2sudGl0bGUpO3ZhciBGPXtzZXNzaW9uTGFiZWw6bixzdGF0dXM6aSxjdXJyZW50VGFzazpCLGxhdGVzdFVzZXJUZXh0OnUsbGF0ZXN0QXNzaXN0YW50VGV4dDpzLHRvZG9zOmF8fFtdLHJlY2VudFVzZXJUZXh0czpvfTt0cnl7V2FuZE5hdGl2ZS51cGRhdGVTZXNzaW9uUHJvZ3Jlc3MoZSxKU09OLnN0cmluZ2lmeShGKSl9Y2F0Y2h7fX19ZnVuY3Rpb24gSnMoZSl7aWYoISghV2V8fHR5cGVvZiBXYW5kTmF0aXZlLmNsZWFyU2Vzc2lvblByb2dyZXNzIT0iZnVuY3Rpb24iKSl7SW5bZV0mJihjbGVhclRpbWVvdXQoSW5bZV0pLGRlbGV0ZSBJbltlXSk7dHJ5e1dhbmROYXRpdmUuY2xlYXJTZXNzaW9uUHJvZ3Jlc3MoZSl9Y2F0Y2h7fX19d2luZG93LmhhbmRsZU5hdGl2ZUJhY2s9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtpZihlJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXJldHVybiBlcigpLCEwO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7aWYodCYmIXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSlyZXR1cm4gaG4oKSwhMDt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtbW9kYWwiKTtyZXR1cm4gbiYmIW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKT8oWm4oKSwhMCk6ci5maWxlUGFuZWxPcGVuJiZqZSgpPyhaaSghMSksITApOnIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiZqZSgpPyhQcigpLCEwKTpqZSgpJiZyLnNlbGVjdGVkSWQ/KHIuc2VsZWN0ZWRJZD1udWxsLHdlKCksci5zZXNzaW9uc0RyYXdlck9wZW49ITAseGUoIndhbmQtc2lkZWJhci1vcGVuIiwhMCksdG4oKSwhMCk6ITF9O2Z1bmN0aW9uIEdzKCl7ci5ub3RpZlNvdW5kJiZmaSgpfWZ1bmN0aW9uIE5mKCl7cmV0dXJuIGZpKCl9ZnVuY3Rpb24gZmkoKXt0cnl7bGV0IGE9ZnVuY3Rpb24odSxzLG8pe3ZhciBsPW4uY3JlYXRlT3NjaWxsYXRvcigpLGM9bi5jcmVhdGVHYWluKCk7bC50eXBlPSJzaW5lIixsLmZyZXF1ZW5jeS52YWx1ZT11LGMuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLG4uY3VycmVudFRpbWUrcyksYy5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKC41Kmksbi5jdXJyZW50VGltZStzKy4wNCksYy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoLjAwMSxuLmN1cnJlbnRUaW1lK3MrbyksbC5jb25uZWN0KGMpLGMuY29ubmVjdChuLmRlc3RpbmF0aW9uKSxsLnN0YXJ0KG4uY3VycmVudFRpbWUrcyksbC5zdG9wKG4uY3VycmVudFRpbWUrcytvKX07dmFyIGU9YSx0PXdpbmRvdy5BdWRpb0NvbnRleHR8fHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQ7aWYoIXQpcmV0dXJuITE7dmFyIG49bmV3IHQ7bi5zdGF0ZT09PSJzdXNwZW5kZWQiJiZuLnJlc3VtZSgpO3ZhciBpPShyLm5vdGlmVm9sdW1lfHwwKS8xMDA7cmV0dXJuIGEoNTIzLDAsLjI1KSxhKDY1OSwuMTIsLjMpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLmNsb3NlKCl9LDYwMCksITB9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIFJmKGUsdCl7aWYoci5fdXBkYXRlQnViYmxlU2hvd24pcmV0dXJuO3IuX3VwZGF0ZUJ1YmJsZVNob3duPSEwLEdzKCk7dmFyIG49Kyt6cyxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJub3RpZmljYXRpb24tYnViYmxlIHVwZGF0ZS1jYXJkIixpLnNldEF0dHJpYnV0ZSgiZGF0YS1uaWQiLFN0cmluZyhuKSksaS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXNoaW5lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtaGVhZGVyIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAxOVY1Ii8+PHBhdGggZD0iTTUgMTJsNy03IDcgNyIvPjwvc3ZnPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLWhlYWRpbmciPjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXRpdGxlIj5cdTUzRDFcdTczQjBcdTY1QjBcdTcyNDhcdTY3MkM8L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1zdWJ0aXRsZSIgaWQ9InVwZGF0ZS1jYXJkLXN1YnRpdGxlIj5cdTcwQjlcdTUxRkJcdTRFMEJcdTY1QjlcdTYzMDlcdTk0QUVcdTRFMDBcdTk1MkVcdTY2RjRcdTY1QjA8L2Rpdj48L2Rpdj48YnV0dG9uIGNsYXNzPSJ1cGRhdGUtY2FyZC1jbG9zZSIgdGl0bGU9Ilx1N0EwRFx1NTQwRVx1NjNEMFx1OTE5MiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE4IDZMNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uIj48c3BhbiBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbi1jaGlwIHVwZGF0ZS1jYXJkLXZlcnNpb24tY3VycmVudCI+dicrcChTdHJpbmcoZSkucmVwbGFjZSgvXnYvLCIiKSkrJzwvc3Bhbj48c3ZnIGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uLWFycm93IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNNSAxMmgxNCIvPjxwYXRoIGQ9Ik0xMyA1bDcgNy03IDciLz48L3N2Zz48c3BhbiBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbi1jaGlwIHVwZGF0ZS1jYXJkLXZlcnNpb24tbGF0ZXN0Ij52JytwKFN0cmluZyh0KS5yZXBsYWNlKC9edi8sIiIpKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXByb2dyZXNzIiBpZD0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MiIGFyaWEtaGlkZGVuPSJ0cnVlIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1wcm9ncmVzcy10cmFjayI+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MtZmlsbCI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtc3RhdHVzIGhpZGRlbiIgaWQ9InVwZGF0ZS1jYXJkLXN0YXR1cyI+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0idXBkYXRlLWNhcmQtYWN0aW9uIHVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5IiBpZD0idXBkYXRlLWJ1YmJsZS1hY3Rpb24iIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InVwZGF0ZS1jYXJkLWFjdGlvbi1sYWJlbCI+XHU3QUNCXHU1MzczXHU2NkY0XHU2NUIwPC9zcGFuPjwvYnV0dG9uPjwvZGl2PicsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt2YXIgYT17aWQ6bixlbDppfTtubi5wdXNoKGEpLEZhKCk7dmFyIHU9aS5xdWVyeVNlbGVjdG9yKCIudXBkYXRlLWNhcmQtY2xvc2UiKTt1JiYodS5vbmNsaWNrPWZ1bmN0aW9uKCl7RnIobiksci5fdXBkYXRlQnViYmxlU2hvd249ITF9KTt2YXIgcz1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtYnViYmxlLWFjdGlvbiIpLG89aS5xdWVyeVNlbGVjdG9yKCIudXBkYXRlLWNhcmQtYWN0aW9uLWxhYmVsIiksbD1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtY2FyZC1zdWJ0aXRsZSIpLGM9aS5xdWVyeVNlbGVjdG9yKCIjdXBkYXRlLWNhcmQtc3RhdHVzIiksZj1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtY2FyZC1wcm9ncmVzcyIpO2Z1bmN0aW9uIGQoZyxtKXtpZihjKXtpZihjLnRleHRDb250ZW50PWd8fCIiLGMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiwiZXJyb3IiLCJzdWNjZXNzIiksIWcpe2MuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7cmV0dXJufW0mJmMuY2xhc3NMaXN0LmFkZChtKX19ZnVuY3Rpb24gdihnKXtsJiYobC50ZXh0Q29udGVudD1nfHwiIil9ZnVuY3Rpb24gaChnKXtmJiZmLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFnKX1zJiYocy5vbmNsaWNrPWZ1bmN0aW9uKCl7cy5kaXNhYmxlZD0hMCxpLmNsYXNzTGlzdC5hZGQoImlzLWJ1c3kiKSxvJiYoby50ZXh0Q29udGVudD0iXHU2NkY0XHU2NUIwXHU0RTJEXHUyMDI2IiksdigiXHU2QjYzXHU1NzI4XHU0RTBCXHU4RjdEXHU1RTc2XHU1Qjg5XHU4OEM1XHU2NUIwXHU3MjQ4XHU2NzJDXHUyMDI2IiksaCghMCksZCgiIiksZmV0Y2goIi9hcGkvdXBkYXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGcpe3JldHVybiBnLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZyl7aWYoZy5lcnJvcil7aCghMSksaS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1idXN5IiksdigiXHU2NkY0XHU2NUIwXHU2NzJBXHU1QjhDXHU2MjEwIiksZChnLmVycm9yLCJlcnJvciIpLHMuZGlzYWJsZWQ9ITEsbyYmKG8udGV4dENvbnRlbnQ9Ilx1OTFDRFx1OEJENSIpO3JldHVybn1pZihpLmNsYXNzTGlzdC5hZGQoImlzLXN1Y2Nlc3MiKSx2KChnLm1lc3NhZ2V8fCJcdTY2RjRcdTY1QjBcdTVCOENcdTYyMTAiKSsiXHVGRjBDXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHU2NzBEXHU1MkExXHUyMDI2IiksZCgiIiksbyYmKG8udGV4dENvbnRlbnQ9Ilx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1MjAyNiIpLGcuZGV0YWNoZWRVcGRhdGUpe2NuKCk7cmV0dXJufWlmKGcucmVzdGFydFJlcXVpcmVkPT09ITEpe2goITEpLGkuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYnVzeSIpLHMuZGlzYWJsZWQ9ITEsbyYmKG8udGV4dENvbnRlbnQ9Ilx1NURGMlx1NUI4Q1x1NjIxMCIpO3JldHVybn1qZihzLG8sbCxjLGYpfSkuY2F0Y2goZnVuY3Rpb24oKXtoKCExKSxpLmNsYXNzTGlzdC5yZW1vdmUoImlzLWJ1c3kiKSx2KCJcdTY2RjRcdTY1QjBcdTY3MkFcdTVCOENcdTYyMTAiKSxkKCJcdThCRjdcdTY4QzBcdTY3RTVcdTdGNTFcdTdFRENcdThGREVcdTYzQTVcdTU0MEVcdTkxQ0RcdThCRDUiLCJlcnJvciIpLHMuZGlzYWJsZWQ9ITEsbyYmKG8udGV4dENvbnRlbnQ9Ilx1OTFDRFx1OEJENSIpfSl9KX1mdW5jdGlvbiBqZihlLHQsbixpLGEpe2ZldGNoKCIvYXBpL3Jlc3RhcnQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUuanNvbigpfSkudGhlbihmdW5jdGlvbigpe2NuKCl9KS5jYXRjaChmdW5jdGlvbigpe2NuKCl9KX1mdW5jdGlvbiBZcyhlLHQpe2UmJihlLmRpc2FibGVkPSEwLGUudGV4dENvbnRlbnQ9Ilx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1MjAyNiIpLHQmJih0LnRleHRDb250ZW50PSJcdTY3MERcdTUyQTFcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTIwMjYiLHQuc3R5bGUuY29sb3I9InZhcigtLXRleHQtc2Vjb25kYXJ5KSIpLGZldGNoKCIvYXBpL3Jlc3RhcnQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbigpe2NuKCl9KS5jYXRjaChmdW5jdGlvbigpe2NuKCl9KX1mdW5jdGlvbiBjbigpe2lmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdGFydC1vdmVybGF5Iikpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuaWQ9InJlc3RhcnQtb3ZlcmxheSIsZS5jbGFzc05hbWU9InJlc3RhcnQtb3ZlcmxheSIsZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InJlc3RhcnQtb3ZlcmxheS1jb250ZW50Ij48ZGl2IGNsYXNzPSJyZXN0YXJ0LXNwaW5uZXIiPjwvZGl2PjxkaXYgY2xhc3M9InJlc3RhcnQtdGl0bGUiPlx1NjcwRFx1NTJBMVx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRjwvZGl2PjxkaXYgY2xhc3M9InJlc3RhcnQtc3VidGl0bGUiPlx1N0EwRFx1NTQwRVx1NUMwNlx1ODFFQVx1NTJBOFx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mlx1MjAyNjwvZGl2PjwvZGl2PicsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTt2YXIgdD0wLG49MTgwLGk9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZih0KyssZmV0Y2goIi9hcGkvY29uZmlnIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7dS5vayYmKGNsZWFySW50ZXJ2YWwoaSksbG9jYXRpb24ucmVsb2FkKCkpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KSx0Pj1uKXtjbGVhckludGVydmFsKGkpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLnJlc3RhcnQtc3VidGl0bGUiKTthJiYoYS5pbm5lckhUTUw9J1x1OTFDRFx1NTQyRlx1OEQ4NVx1NjVGNlx1RkYwQ1x1OEJGNyA8YSBocmVmPSJqYXZhc2NyaXB0OmxvY2F0aW9uLnJlbG9hZCgpIiBzdHlsZT0iY29sb3I6dmFyKC0tYWNjZW50KTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIj5cdTYyNEJcdTUyQThcdTUyMzdcdTY1QjA8L2E+IFx1OTg3NVx1OTc2Mlx1MzAwMicpfX0sMmUzKX19ZnVuY3Rpb24gV2YoZSx0KXtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3RhcnQtb3ZlcmxheSIpKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmlkPSJyZXN0YXJ0LW92ZXJsYXkiLG4uY2xhc3NOYW1lPSJyZXN0YXJ0LW92ZXJsYXkiLG4uaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJyZXN0YXJ0LW92ZXJsYXktY29udGVudCI+PGRpdiBjbGFzcz0icmVzdGFydC1zcGlubmVyIj48L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjBcdTRFMkQ8L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXN1YnRpdGxlIj4nK3AoZSkrIiBcdTIxOTIgIitwKHQpKyI8YnI+XHU2QjYzXHU1NzI4XHU0RTBCXHU4RjdEXHU1RTc2XHU1Qjg5XHU4OEM1XHU2NUIwXHU3MjQ4XHU2NzJDXHVGRjBDXHU3QTBEXHU1NDBFXHU1QzA2XHU4MUVBXHU1MkE4XHU5MUNEXHU1NDJGXHUyMDI2PC9kaXY+PC9kaXY+Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pfX12YXIgUXMsQmEsU2U9e3JlY29yZGluZzohMSxjYW5jZWxpbmc6ITEsdHJhbnNjcmlwdDoiIixzdGFydFk6MH0semY9NjA7ZnVuY3Rpb24gVWYoZSl7U2UudHJhbnNjcmlwdD1lfHwiIjt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC10ZXh0Iik7dCYmKHQudGV4dENvbnRlbnQ9U2UudHJhbnNjcmlwdCk7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIik7biYmbi5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtdGV4dCIsISFTZS50cmFuc2NyaXB0KX1mdW5jdGlvbiBWZihlKXtpZihlKXtlLnByZXZlbnREZWZhdWx0KCksU2Uuc3RhcnRZPXR5cGVvZiBlLmNsaWVudFk9PSJudW1iZXIiP2UuY2xpZW50WTowO3RyeXtlLnBvaW50ZXJJZCE9PXZvaWQgMCYmZS50YXJnZXQmJmUudGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlJiZlLnRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShlLnBvaW50ZXJJZCl9Y2F0Y2h7fX1TZS5yZWNvcmRpbmc9ITAsU2UuY2FuY2VsaW5nPSExLFNlLnRyYW5zY3JpcHQ9IiI7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXJlY29yZC1idG4iKTtpZih0KXt0LmNsYXNzTGlzdC5hZGQoImlzLXJlY29yZGluZyIpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLnZvaWNlLXJlY29yZC1sYWJlbCIpO24mJihuLnRleHRDb250ZW50PSJcdTY3N0VcdTVGMDAgXHU1M0QxXHU5MDAxIil9dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIik7aSYmaS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iLCJpcy1jYW5jZWxpbmciLCJoYXMtdGV4dCIpLFVmKCIiKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiKTthJiYoYS50ZXh0Q29udGVudD0iXHU3RjUxXHU5ODc1XHU3QUVGXHU2NjgyXHU0RTBEXHU2NTJGXHU2MzAxXHU4QkVEXHU5N0YzXHU4RjkzXHU1MTY1XHVGRjBDXHU4QkY3XHU0RjdGXHU3NTI4IEFwcCIpfWZ1bmN0aW9uIEtmKGUpe2lmKCEoIVNlLnJlY29yZGluZ3x8IWUpKXt2YXIgdD1TZS5zdGFydFktKHR5cGVvZiBlLmNsaWVudFk9PSJudW1iZXIiP2UuY2xpZW50WTpTZS5zdGFydFkpLG49dD56ZjtpZihuIT09U2UuY2FuY2VsaW5nKXtTZS5jYW5jZWxpbmc9bjt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1idWJibGUiKTtpJiZpLmNsYXNzTGlzdC50b2dnbGUoImlzLWNhbmNlbGluZyIsbik7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXJlY29yZC1idG4iKSx1PWEmJmEucXVlcnlTZWxlY3RvcigiLnZvaWNlLXJlY29yZC1sYWJlbCIpO3UmJih1LnRleHRDb250ZW50PW4/Ilx1Njc3RVx1NUYwMCBcdTUzRDZcdTZEODgiOiJcdTY3N0VcdTVGMDAgXHU1M0QxXHU5MDAxIik7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtc3RhdHVzIik7cyYmKHMudGV4dENvbnRlbnQ9bj8iXHU2NzdFXHU1RjAwXHU2MjRCXHU2MzA3IFx1NTNENlx1NkQ4OCI6Ilx1NkI2M1x1NTcyOFx1ODA0Nlx1NTQyQ1x1MjAyNlx1NEUwQVx1NkVEMVx1NTNENlx1NkQ4OCIpfX19ZnVuY3Rpb24gJHMoZSl7aWYoU2UucmVjb3JkaW5nKXtlJiZlLnByZXZlbnREZWZhdWx0KCksU2UucmVjb3JkaW5nPSExO3ZhciB0PSFTZS5jYW5jZWxpbmcmJiEhU2UudHJhbnNjcmlwdC50cmltKCksbj1TZS50cmFuc2NyaXB0O0RhKCksdCYmKEpmKG4pLGthKCExKSl9fWZ1bmN0aW9uIERhKCl7U2UuY2FuY2VsaW5nPSExO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIik7aWYoZSl7ZS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1yZWNvcmRpbmciKTt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi52b2ljZS1yZWNvcmQtbGFiZWwiKTt0JiYodC50ZXh0Q29udGVudD0iXHU2MzA5XHU0RjRGIFx1OEJGNFx1OEJERCIpfXZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gSmYoZSl7dmFyIHQ9KGV8fCIiKS50cmltKCk7aWYodCl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKG4pe3ZhciBpPW4udmFsdWV8fCIiLGE9aT9pLnJlcGxhY2UoL1xzKyQvLCIiKSsiICIrdDp0O24udmFsdWU9YSxzdChhLCEwKSxfdChuKTt0cnl7bi5zZXRTZWxlY3Rpb25SYW5nZShhLmxlbmd0aCxhLmxlbmd0aCl9Y2F0Y2h7fX19fWZ1bmN0aW9uIGthKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2lmKHQpe3ZhciBuPXR5cGVvZiBlPT0iYm9vbGVhbiI/ZTohdC5jbGFzc0xpc3QuY29udGFpbnMoInZvaWNlLW1vZGUiKTtpZih0LmNsYXNzTGlzdC50b2dnbGUoInZvaWNlLW1vZGUiLG4pLCFuKXtTZS5yZWNvcmRpbmc9ITEsRGEoKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYoaSYmIXIudGVybWluYWxJbnRlcmFjdGl2ZSl0cnl7aS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfWNhdGNoe319fX1mdW5jdGlvbiBfdChlKXtpZihlKXt2YXIgdD0zNixuPTEyMCxpPVNyKCk7aWYoIWUudmFsdWV8fGUudmFsdWUudHJpbSgpPT09IiIpe2Uuc3R5bGUuaGVpZ2h0PXQrInB4IixlLnN0eWxlLm1pbkhlaWdodD10KyJweCIsZS5zdHlsZS5vdmVyZmxvd1k9aT8iYXV0byI6ImhpZGRlbiIsZS5zY3JvbGxUb3A9MCxIaShlKTtyZXR1cm59dmFyIGE9ZS5zdHlsZS5vdmVyZmxvd1k7ZS5zdHlsZS5vdmVyZmxvd1k9ImhpZGRlbiIsZS5zdHlsZS5oZWlnaHQ9dCsicHgiO3ZhciB1PWUuc2Nyb2xsSGVpZ2h0LHM9TWF0aC5tYXgodCxNYXRoLm1pbih1LG4pKSxvPXU+bjtlLnN0eWxlLmhlaWdodD1zKyJweCIsZS5zdHlsZS5taW5IZWlnaHQ9dCsicHgiLGUuc3R5bGUub3ZlcmZsb3dZPW98fGk/ImF1dG8iOiJoaWRkZW4iLG8/RWkoZSk6ZS5zY3JvbGxUb3A9MCxIaShlKX19ZnVuY3Rpb24gR2YoKXtpZighci5zZWxlY3RlZElkKXJldHVybiExO3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO3JldHVybiBpZShlKT8hIShlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpOiEhZSYmZS5zdGF0dXM9PT0icnVubmluZyJ9dmFyIENyPSExO2Z1bmN0aW9uIFhzKGUpe3JldHVybiFlfHxlLmFyY2hpdmVkPyExOmllKGUpPyEhKGUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCk6ZS5zdGF0dXM9PT0icnVubmluZyJ9ZnVuY3Rpb24gQWEoKXtyZXR1cm4gci5zZXNzaW9ucy5zb21lKFhzKX1mdW5jdGlvbiBZZigpe3ZhciBlPXIuc2Vzc2lvbnMuZmlsdGVyKFhzKTtpZihlLmxlbmd0aD09PTApcmV0dXJuIG51bGw7aWYoci5zZWxlY3RlZElkKXt2YXIgdD1lLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZih0KXJldHVybiB0fXJldHVybiBlLnNvcnQoZnVuY3Rpb24obixpKXtyZXR1cm4oRGF0ZS5wYXJzZShpLnN0YXJ0ZWRBdCl8fDApLShEYXRlLnBhcnNlKG4uc3RhcnRlZEF0KXx8MCl9KSxlWzBdfWZ1bmN0aW9uIFFmKGUsdCl7dmFyIG49dHlwZW9mIGNyeXB0bzwidSImJmNyeXB0by5yYW5kb21VVUlEP2NyeXB0by5yYW5kb21VVUlEKCk6RGF0ZS5ub3coKS50b1N0cmluZygzNikrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsMTApLGk9QXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W10sYT1pLnNsaWNlKCk7YS5wdXNoKHQpLCQoe2lkOmUuaWQscXVldWVkTWVzc2FnZXM6YX0pLGUuaWQ9PT1yLnNlbGVjdGVkSWQmJnV0KCk7dmFyIHU9ZS50aXRsZXx8UW4oZS5jb21tYW5kKXx8Ilx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERCI7cmV0dXJuIGsoIlx1NURGMlx1NTJBMFx1NTE2NVx1MzAwQyIrdSsiXHUzMDBEXHU3Njg0XHU2MzkyXHU5NjFGXHVGRjBDXHU1NkRFXHU1OTBEXHU3RUQzXHU2NzVGXHU1NDBFXHU4MUVBXHU1MkE4XHU1M0QxXHU5MDAxXHVGRjA4XHU1NDJCXHU0RTBBXHU0RTBCXHU2NTg3XHVGRjA5XHUzMDAyIiwiaW5mbyIpLGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIitlLmlkKyIvbWVzc2FnZXMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDp0LGlkZW1wb3RlbmN5S2V5Om59KX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMub2s/cy5qc29uKCk6cy5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihvKXt0aHJvdyBuZXcgRXJyb3IobyYmby5lcnJvcnx8Ilx1NjVFMFx1NkNENVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1MzAwMiIpfSl9KS50aGVuKGZ1bmN0aW9uKHMpe3MmJnMuaWQmJigkKHMpLHMuaWQ9PT1yLnNlbGVjdGVkSWQmJnV0KCkpfSkuY2F0Y2goZnVuY3Rpb24ocyl7JCh7aWQ6ZS5pZCxxdWV1ZWRNZXNzYWdlczppfSksZS5pZD09PXIuc2VsZWN0ZWRJZCYmdXQoKSxrKHMmJnMubWVzc2FnZXx8Ilx1NjM5Mlx1OTYxRlx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIsImVycm9yIil9KX1mdW5jdGlvbiBacyhlKXt2YXIgdD1ZZigpO2lmKHQmJmllKHQpKXtRZih0LGUpO3JldHVybn1pZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD49MTApe2soIlx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1NURGMlx1NkVFMVx1RkYwOFx1NjcwMFx1NTkxQSAxMCBcdTY3NjFcdUZGMDlcdUZGMENcdThCRjdcdTdCNDlcdTVGODVcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTVCOENcdTYyMTBcdTMwMDIiLCJ3YXJuaW5nIik7cmV0dXJufXZhciBuPSJjc3EtIitEYXRlLm5vdygpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDgpO3IuY3Jvc3NTZXNzaW9uUXVldWUucHVzaCh7aWQ6bix0ZXh0OmUsY3dkOnR0KCksbW9kZTpyLmNoYXRNb2RlfHwibWFuYWdlZCIsdG9vbDpudCgpLHF1ZXVlZEF0OkRhdGUubm93KCl9KSxYdCgpLFN0KCksaygiXHU1REYyXHU2MzkyXHU5NjFGXHVGRjBDXHU1QzA2XHU1NzI4XHU3QTdBXHU5NUYyXHU1NDBFXHU4MUVBXHU1MkE4XHU1RjAwXHU1OUNCXHU2NUIwXHU0RjFBXHU4QkREXHUzMDAyIiwiaW5mbyIpfWZ1bmN0aW9uICRmKGUpe0NyfHwoQ3I9ITAsZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHB0KHtjb21tYW5kOmUudG9vbCxjd2Q6ZS5jd2QsbW9kZTplLm1vZGUsaW5pdGlhbElucHV0OmUudGV4dH0pKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gQ3I9ITEsdC5lcnJvcj8oayh0LmVycm9yLCJlcnJvciIpLHIuY3Jvc3NTZXNzaW9uUXVldWUudW5zaGlmdChlKSxYdCgpLFN0KCksbnVsbCk6cG4odCl9KS5jYXRjaChmdW5jdGlvbih0KXtDcj0hMSxrKHQmJnQubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NjM5Mlx1OTYxRlx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksci5jcm9zc1Nlc3Npb25RdWV1ZS51bnNoaWZ0KGUpLFh0KCksU3QoKX0pKX1mdW5jdGlvbiBYZihlKXt2YXIgdD1yLmNyb3NzU2Vzc2lvblF1ZXVlLmZpbmRJbmRleChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PWV9KTtpZighKHQ8MCkpe3ZhciBuPXIuY3Jvc3NTZXNzaW9uUXVldWUuc3BsaWNlKHQsMSlbMF07WHQoKSxTdCgpLGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShwdCh7Y29tbWFuZDpuLnRvb2wsY3dkOm4uY3dkLG1vZGU6bi5tb2RlLGluaXRpYWxJbnB1dDpuLnRleHR9KSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuZXJyb3I/KGsoaS5lcnJvciwiZXJyb3IiKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLnNwbGljZSh0LDAsbiksWHQoKSxTdCgpLG51bGwpOnBuKGkpfSkuY2F0Y2goZnVuY3Rpb24oaSl7ayhpJiZpLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTYzOTJcdTk2MUZcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLHIuY3Jvc3NTZXNzaW9uUXVldWUuc3BsaWNlKHQsMCxuKSxYdCgpLFN0KCl9KX19ZnVuY3Rpb24gWmYoZSl7dmFyIHQ9ci5jcm9zc1Nlc3Npb25RdWV1ZS5maW5kSW5kZXgoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1lfSk7dDwwfHwoci5jcm9zc1Nlc3Npb25RdWV1ZS5zcGxpY2UodCwxKSxYdCgpLFN0KCksci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg9PT0wJiZrKCJcdTYzOTJcdTk2MUZcdTVERjJcdTZFMDVcdTdBN0FcdTMwMDIiLCJpbmZvIikpfWZ1bmN0aW9uIHBpKCl7aWYoci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGghPT0wJiYhQWEoKSYmIUNyKXt2YXIgZT1yLmNyb3NzU2Vzc2lvblF1ZXVlLnNoaWZ0KCk7U3QoKSwkZihlKX19ZnVuY3Rpb24gZW8oZSl7dmFyIHQ9TWF0aC5mbG9vcigoRGF0ZS5ub3coKS1lKS8xZTMpO2lmKHQ8NjApcmV0dXJuIHQrInMiO3ZhciBuPU1hdGguZmxvb3IodC82MCk7cmV0dXJuIG48NjA/bisibSI6TWF0aC5mbG9vcihuLzYwKSsiaCJ9ZnVuY3Rpb24gU3QoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LXBhbmVsIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3RydWN0dXJlZC1zdGF0dXMtYmFyIiksaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0Iik7aWYoci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg9PT0wKXtlJiZlLnJlbW92ZSgpLFh0KCk7cmV0dXJufXZhciB1PXQmJiF0LmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikscz11P3Q6YSxvPXU/bnx8aTpudWxsO2lmKHMpe2UmJmUucGFyZW50Tm9kZSE9PXMmJihlLnJlbW92ZSgpLGU9bnVsbCksZT91JiZvJiZlLm5leHRTaWJsaW5nIT09byYmcy5pbnNlcnRCZWZvcmUoZSxvKTooZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlLmNsYXNzTmFtZT0iY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIsbz9zLmluc2VydEJlZm9yZShlLG8pOnMuYXBwZW5kQ2hpbGQoZSkpO3ZhciBsPXIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoLGM9ci5jcm9zc1Nlc3Npb25RdWV1ZS5tYXAoZnVuY3Rpb24oZCx2KXt2YXIgaD1kLnRleHQubGVuZ3RoPjYwP2QudGV4dC5zbGljZSgwLDYwKSsiXHUyMDI2IjpkLnRleHQsZz1lbyhkLnF1ZXVlZEF0KTtyZXR1cm4nPGRpdiBjbGFzcz0icXVldWUtaXRlbSIgZGF0YS1xdWV1ZS1pZD0iJytwKGQuaWQpKyciPjxzcGFuIGNsYXNzPSJxdWV1ZS1pdGVtLWRvdCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJxdWV1ZS1pdGVtLXRleHQiIHRpdGxlPSInK3AoZC50ZXh0KSsnIj4nK3AoaCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0icXVldWUtaXRlbS1hZ2UiPicrZysnPC9zcGFuPjxidXR0b24gY2xhc3M9InF1ZXVlLWl0ZW0tc2VuZC1ub3ciIGRhdGEtcXVldWUtaWQ9IicrcChkLmlkKSsnIiB0aXRsZT0iXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxIiB0eXBlPSJidXR0b24iPlx1NTNEMVx1OTAwMTwvYnV0dG9uPjxidXR0b24gY2xhc3M9InF1ZXVlLWl0ZW0tY2FuY2VsIiBkYXRhLXF1ZXVlLWlkPSInK3AoZC5pZCkrJyIgdGl0bGU9Ilx1NTNENlx1NkQ4OCIgdHlwZT0iYnV0dG9uIj5ceEQ3PC9idXR0b24+PC9kaXY+J30pLmpvaW4oIiIpLGY9bD4xPyc8ZGl2IGNsYXNzPSJxdWV1ZS1oZWFkZXIiPjxzcGFuIGNsYXNzPSJxdWV1ZS1oZWFkZXItbGFiZWwiPlx1NjM5Mlx1OTYxRiAnK2wrJyBcdTY3NjE8L3NwYW4+PGJ1dHRvbiBjbGFzcz0icXVldWUtaGVhZGVyLWNsZWFyIiBpZD0icXVldWUtY2xlYXItYWxsIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTZFMDVcdTdBN0FcdTYzOTJcdTk2MUYiPlx1NkUwNVx1N0E3QTwvYnV0dG9uPjwvZGl2Pic6IiI7ZS5pbm5lckhUTUw9ZitjfX1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPjApe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5xdWV1ZS1pdGVtLWFnZSIpO3IuY3Jvc3NTZXNzaW9uUXVldWUuZm9yRWFjaChmdW5jdGlvbih0LG4pe2Vbbl0mJihlW25dLnRleHRDb250ZW50PWVvKHQucXVldWVkQXQpKX0pLHBpKCl9fSw1ZTMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldDtpZih0LmNsb3Nlc3QoIiNxdWV1ZS1jbGVhci1hbGwiKSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHIuY3Jvc3NTZXNzaW9uUXVldWU9W10sWHQoKSxTdCgpLGsoIlx1NjM5Mlx1OTYxRlx1NURGMlx1NkUwNVx1N0E3QVx1MzAwMiIsImluZm8iKTtyZXR1cm59dmFyIG49dC5jbG9zZXN0KCIucXVldWUtaXRlbS1zZW5kLW5vdyIpO2lmKG4pe2UucHJldmVudERlZmF1bHQoKSxYZihuLmRhdGFzZXQucXVldWVJZCk7cmV0dXJufXZhciBpPXQuY2xvc2VzdCgiLnF1ZXVlLWl0ZW0tY2FuY2VsIik7aWYoaSl7ZS5wcmV2ZW50RGVmYXVsdCgpLFpmKGkuZGF0YXNldC5xdWV1ZUlkKTtyZXR1cm59fSk7ZnVuY3Rpb24gdG8oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS1pbnB1dCIpLHQ9ZT9lLnZhbHVlLnRyaW0oKToiIjtpZih0KXtpZihBYSgpKXtlLnZhbHVlPSIiLFpzKHQpO3JldHVybn12YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS52YWx1ZT0iIixlLnBsYWNlaG9sZGVyPSJcdTZCNjNcdTU3MjhcdTU0MkZcdTUyQThcdTIwMjYiLGUuZGlzYWJsZWQ9ITA7dmFyIGk9ci5jaGF0TW9kZXx8Im1hbmFnZWQiLGE9dHQoKSx1PW50KCk7ZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHB0KHtjb21tYW5kOnUscHJvdmlkZXI6dSxjd2Q6YSxtb2RlOmksaW5pdGlhbElucHV0OnR9KSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ocyl7aWYocy5lcnJvcil7ayhzLmVycm9yLCJlcnJvciIpLGUucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsZS5kaXNhYmxlZD0hMTtyZXR1cm59ci5zZWxlY3RlZElkPXMuaWQsd2UoKSxyLmRyYWZ0c1tzLmlkXT0iIix4dCgpLCQocyksZmUoKSxCcihzLmlkKSxMbihzLmlkKSxnbihzLmlkKS50aGVuKGZ1bmN0aW9uKCl7ZS5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIixlLmRpc2FibGVkPSExLFJ0KCEwKX0pfSkuY2F0Y2goZnVuY3Rpb24ocyl7ayhzJiZzLm1lc3NhZ2V8fCh1PT09ImNvZGV4Ij8iXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENvZGV4IFx1NEYxQVx1OEJERFx1MzAwMiI6Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDbGF1ZGUgXHU0RjFBXHU4QkREXHUzMDAyIiksImVycm9yIiksZS5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIixlLmRpc2FibGVkPSExfSl9fWZ1bmN0aW9uIGVwKGUpe2U9ZXx8e307dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxpPXQmJnQudmFsdWUudHJpbSgpP3QudmFsdWUudHJpbSgpOm4/bi52YWx1ZS50cmltKCk6IiI7aWYoci5zZWxlY3RlZElkKXtpJiZubyhlKTtyZXR1cm59aWYoaSYmQWEoKSl7biYmKG4udmFsdWU9IiIpLHQmJih0LnZhbHVlPSIiKSxIaShuKSxacyhpKTtyZXR1cm59dmFyIGE9ci5jaGF0TW9kZXx8Im1hbmFnZWQiLHU9dHQoKSxzPW50KCk7ZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHB0KHtjb21tYW5kOnMscHJvdmlkZXI6cyxjd2Q6dSxtb2RlOmEsaW5pdGlhbElucHV0Oml8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5lcnJvcj8oayhvLmVycm9yLCJlcnJvciIpLG51bGwpOihyLnNlbGVjdGVkSWQ9by5pZCx3ZSgpLHIuZHJhZnRzW28uaWRdPSIiLHh0KCksbiYmKG4udmFsdWU9IiIpLHQmJih0LnZhbHVlPSIiKSwkKG8pLGZlKCksQnIoby5pZCksTG4oby5pZCksZ24oby5pZCkpfSkuY2F0Y2goZnVuY3Rpb24obyl7ayhvJiZvLm1lc3NhZ2V8fChzPT09ImNvZGV4Ij8iXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENvZGV4IFx1NEYxQVx1OEJERFx1MzAwMiI6Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDbGF1ZGUgXHU0RjFBXHU4QkREXHUzMDAyIiksImVycm9yIil9KX1mdW5jdGlvbiBCcihlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odil7cmV0dXJuIHYuaWQ9PT1lfSksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0IiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcC1idXR0b24iKSxzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC10aXRsZSIpLG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLWluZm8iKSxsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN1bW1hcnktdmFsdWUiKSxjPWllKHQpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksaSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLGMpLGEmJmEuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksYz9yLmN1cnJlbnRWaWV3PSJjaGF0IjpyLmN1cnJlbnRWaWV3PSJ0ZXJtaW5hbCI7dmFyIGY9dD9Rbih0LmNvbW1hbmQpOiJXYW5kIixkPXQ/ZHIodCk6Ilx1NUYwMFx1NTlDQlx1NUJGOVx1OEJERCI7cyYmKHMudGV4dENvbnRlbnQ9ZiksbyYmKG8udGV4dENvbnRlbnQ9ZCksbCYmKGwudGV4dENvbnRlbnQ9ZiksY3x8ci50ZXJtaW5hbHx8Vm4oKSxQaSgpLFJ0KCEwKSxjfHxldCgidmlldy1zd2l0Y2giLHtmb3JjZVJlcGxheTohMH0pfWZ1bmN0aW9uIG5vKGUpe2U9ZXx8e307dmFyIHQ9ISFlLmludGVycnVwdCxuPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKTtpZihyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJiFuKXJldHVybiBrKCJcdTdFQzhcdTdBRUZcdTRFQTRcdTRFOTJcdTZBMjFcdTVGMEZcdTVGMDBcdTU0MkZcdTY1RjZcdUZGMENcdThCRjdcdTc2RjRcdTYzQTVcdTU3MjhcdTdFQzhcdTdBRUZcdTRFMkRcdThGOTNcdTUxNjVcdTMwMDIiLCJpbmZvIiksUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGE9aT9pLnZhbHVlOiIiLHU9TnQoKSxzPXIucGVuZGluZ0F0dGFjaG1lbnRzLmxlbmd0aD4wO2lmKGF8fHMpe3ZhciBvPXMmJnIuc2VsZWN0ZWRJZD9mZyhyLnNlbGVjdGVkSWQpLmNhdGNoKGZ1bmN0aW9uKGwpe2soIlx1OTY0NFx1NEVGNlx1NEUwQVx1NEYyMFx1NTkzMVx1OEQyNTogIisobCYmbC5tZXNzYWdlfHxsKSwiZXJyb3IiKTt2YXIgYz1sIGluc3RhbmNlb2YgRXJyb3I/bDpuZXcgRXJyb3IoU3RyaW5nKGwpKTt0aHJvdyBjLl9fd2FuZFRvYXN0ZWQ9ITAsY30pOlByb21pc2UucmVzb2x2ZShbXSk7cmV0dXJuIG8udGhlbihmdW5jdGlvbihsKXt2YXIgYz1wZyhsKSxmPWMrKGF8fChsLmxlbmd0aD8iXHU4QkY3XHU2N0U1XHU3NzBCXHU5NjQ0XHU0RUY2XHUzMDAyIjoiIikpO2wubGVuZ3RoJiZkZygpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzIik7aWYoZCYmZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxpZSh1KSlyZXR1cm4gdHAoZixpLHUse2ludGVycnVwdDp0fSk7dmFyIHY9eXAodSxmKSxoPSFyLndzQ29ubmVjdGVkO3JldHVybiBoPyh3cCh2KSxpJiYoaS52YWx1ZT0iIixfdChpKSksc3QoIiIpLFByb21pc2UucmVzb2x2ZSgpKTpocCh1KS50aGVuKGZ1bmN0aW9uKGcpe2lmKCFnKXJldHVybiBudWxsO3ZhciBtPXIuY3VycmVudFZpZXc7aWYoZyYmZy5wcm92aWRlcj09PSJjb2RleCImJnIuc2VsZWN0ZWRJZCE9PWcuaWQpdGhyb3cgbmV3IEVycm9yKCJDb2RleCBzZXNzaW9uIGNoYW5nZWQgYmVmb3JlIGlucHV0IHNlbmQuIik7cmV0dXJuIER1KCksYnAodiwiZW50ZXJfdGV4dCIsMzAsbSkudGhlbihmdW5jdGlvbigpe2kmJmkudmFsdWU9PT1hJiYoaS52YWx1ZT0iIixfdChpKSksc3QoIiIpfSl9KS5jYXRjaChmdW5jdGlvbihnKXt0aHJvdyBrKG9vKGcpLCJlcnJvciIpLGcmJihnLl9fd2FuZFRvYXN0ZWQ9ITApLGd9KX0pLmNhdGNoKGZ1bmN0aW9uKGwpe3Rocm93IGwmJmwuX193YW5kVG9hc3RlZHx8ayhvbyhsKSwiZXJyb3IiKSxsfSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfXZhciBybz17fSxpbz0zNTA7ZnVuY3Rpb24gdHAoZSx0LG4saSl7aT1pfHx7fTt2YXIgYT0hIWkuaW50ZXJydXB0O2lmKCFyLnNlbGVjdGVkSWR8fCFlKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTtpZighbilyZXR1cm4gaygiXHU0RjFBXHU4QkREXHU0RTBEXHU1QjU4XHU1NzI4XHVGRjBDXHU4QkY3XHU5MUNEXHU2NUIwXHU5MDA5XHU2MkU5XHU2MjE2XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxQcm9taXNlLnJlc29sdmUoKTt2YXIgdT1EYXRlLm5vdygpLHM9cm9bbi5pZF18fDA7aWYodS1zPGlvKXJldHVybiBjb25zb2xlLmxvZygiW3dhbmRdIHBvc3RTdHJ1Y3R1cmVkSW5wdXQ6IGR1cGxpY2F0ZSBzdWJtaXQgKHdpdGhpbiAiK2lvKyJtcykgaWdub3JlZCBmb3Igc2Vzc2lvbiIsbi5pZCksUHJvbWlzZS5yZXNvbHZlKCk7cm9bbi5pZF09dTt2YXIgbz0hIShuLnN0cnVjdHVyZWRTdGF0ZSYmbi5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJm4uc3RhdHVzPT09InJ1bm5pbmciKSxsPW8mJmEsYz1vJiYhYSxmPW9yKEFycmF5LmlzQXJyYXkobi5tZXNzYWdlcyk/bi5tZXNzYWdlcy5zbGljZSgpOltdKSxkO2lmKGMpe3ZhciB2PUFycmF5LmlzQXJyYXkobi5xdWV1ZWRNZXNzYWdlcyk/bi5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO3YucHVzaChlKSxkPXtpZDpuLmlkLHF1ZXVlZE1lc3NhZ2VzOnZ9LCQoZCk7dmFyIGg9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKEUpe3JldHVybiBFLmlkPT09bi5pZH0pfHxuO3IuY3VycmVudE1lc3NhZ2VzPXplKGgscnQoaCxoLm91dHB1dCwhMSkpLEpuKCJcdTVERjJcdTUyQTBcdTUxNjVcdTYzOTJcdTk2MUZcdTIwMjYiKSxKZSghMCksZG4oKSxrKHYubGVuZ3RoPjE/Ilx1NURGMlx1NTJBMFx1NTE2NVx1NjM5Mlx1OTYxRlx1RkYwOFx1NTE3MSAiK3YubGVuZ3RoKyIgXHU2NzYxXHU3QjQ5XHU1Rjg1XHVGRjA5IjoiXHU1REYyXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHVGRjBDXHU3QjQ5XHU1RjUzXHU1MjREXHU1NkRFXHU1OTBEXHU1QjhDXHU2MjEwXHU0RjFBXHU4MUVBXHU1MkE4XHU1M0QxXHU5MDAxXHUzMDAyIiwiaW5mbyIpfWVsc2V7dmFyIGc9e3JvbGU6InVzZXIiLGNvbnRlbnQ6W3t0eXBlOiJ0ZXh0Iix0ZXh0OmV9XX07Zi5wdXNoKGcpO3ZhciBtPU9iamVjdC5hc3NpZ24oe30sbi5zdHJ1Y3R1cmVkU3RhdGV8fHt9LHtpbkZsaWdodDohMH0pOyQoe2lkOm4uaWQsc3RhdHVzOiJydW5uaW5nIixtZXNzYWdlczpmLHN0cnVjdHVyZWRTdGF0ZTptfSksci5jdXJyZW50TWVzc2FnZXM9emUoT2JqZWN0LmFzc2lnbih7fSxuLHtzdGF0dXM6InJ1bm5pbmciLG1lc3NhZ2VzOmYsc3RydWN0dXJlZFN0YXRlOm19KSxmKSxKbihsPyJcdTVERjJcdTRFMkRcdTY1QURcdUZGMENcdTZCNjNcdTU3MjhcdTU5MDRcdTc0MDZcdTY1QjBcdTZEODhcdTYwNkZcdTIwMjYiOiJcdTYwMURcdTgwMDNcdTRFMkRcdTIwMjYiKSxEdSgpLEplKCEwKSxsJiZrKCJcdTVERjJcdTRFMkRcdTY1QURcdTRFMEFcdTRFMDBcdTY3NjFcdTU2REVcdTU5MERcdUZGMENcdTZCNjNcdTU3MjhcdTU5MDRcdTc0MDZcdTY1QjBcdTZEODhcdTYwNkZcdTIwMjYiLCJpbmZvIil9dCYmKHQudmFsdWU9IiIsX3QodCkpLHN0KCIiKTt2YXIgeT1yLnF1ZXVlRXBvY2gsdz10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnJhbmRvbVVVSUQ/Y3J5cHRvLnJhbmRvbVVVSUQoKTpEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwxMCk7cmV0dXJuIGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIituLmlkKyIvbWVzc2FnZXMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDplLGludGVycnVwdDpsfHx2b2lkIDAsaWRlbXBvdGVuY3lLZXk6d30pfSkudGhlbihmdW5jdGlvbihFKXtyZXR1cm4gRS5vaz9FLmpzb24oKTpFLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybntlcnJvcjoiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1In19KS50aGVuKGZ1bmN0aW9uKEIpe3ZhciBGPW5ldyBFcnJvcihCJiZCLmVycm9yfHwiXHU2NUUwXHU2Q0Q1XHU1M0QxXHU5MDAxXHU3RUQzXHU2Nzg0XHU1MzE2XHU2RDg4XHU2MDZGXHUzMDAyIik7dGhyb3cgRi5lcnJvckNvZGU9QiYmQi5lcnJvckNvZGUsRi5odHRwU3RhdHVzPUUuc3RhdHVzLEZ9KX0pLnRoZW4oZnVuY3Rpb24oRSl7aWYoRSYmRS5lcnJvcil0aHJvdyBuZXcgRXJyb3IoRS5lcnJvcik7aWYoRSYmRS5pZCYmKHIucXVldWVFcG9jaD55JiZFLnF1ZXVlZE1lc3NhZ2VzJiZkZWxldGUgRS5xdWV1ZWRNZXNzYWdlcywkKEUpLEUuaWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgQj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oRil7cmV0dXJuIEYuaWQ9PT1FLmlkfSl8fEU7ci5jdXJyZW50TWVzc2FnZXM9emUoQixydChCLEUub3V0cHV0LCExKSksSmUoITApLGRuKCl9fSkuY2F0Y2goZnVuY3Rpb24oRSl7aWYoRSYmRS5lcnJvckNvZGU9PT0iZHVwbGljYXRlX2lkZW1wb3RlbmN5X2tleSIpe2soRS5tZXNzYWdlfHwiXHU2OEMwXHU2RDRCXHU1MjMwXHU5MUNEXHU1OTBEXHU1M0QxXHU5MDAxXHVGRjBDXHU1REYyXHU2MkU2XHU2MjJBXHUzMDAyIiwid2FybmluZyIpLEpuKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKTtyZXR1cm59aWYoYyl7dmFyIEI9QXJyYXkuaXNBcnJheShuLnF1ZXVlZE1lc3NhZ2VzKT9uLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYoJCh7aWQ6bi5pZCxxdWV1ZWRNZXNzYWdlczpCfSksbi5pZD09PXIuc2VsZWN0ZWRJZCl7dmFyIEY9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKEspe3JldHVybiBLLmlkPT09bi5pZH0pfHxuO3IuY3VycmVudE1lc3NhZ2VzPXplKEYscnQoRixGLm91dHB1dCwhMSkpLEplKCEwKSxkbigpfX1lbHNle3ZhciB4PWYuc2xpY2UoMCwtMSk7JCh7aWQ6bi5pZCxzdGF0dXM6bi5zdGF0dXMsbWVzc2FnZXM6eCxzdHJ1Y3R1cmVkU3RhdGU6T2JqZWN0LmFzc2lnbih7fSxuLnN0cnVjdHVyZWRTdGF0ZXx8e30se2luRmxpZ2h0OiExfSl9KSxuLmlkPT09ci5zZWxlY3RlZElkJiYoci5jdXJyZW50TWVzc2FnZXM9emUoT2JqZWN0LmFzc2lnbih7fSxuLHttZXNzYWdlczp4LHN0cnVjdHVyZWRTdGF0ZTpPYmplY3QuYXNzaWduKHt9LG4uc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ITF9KX0pLHgpLEplKCEwKSl9dmFyIFM9RSYmRS5tZXNzYWdlfHwiIixfPVM9PT0iRmFpbGVkIHRvIGZldGNoInx8Uz09PSJOZXR3b3JrRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIGZldGNoIHJlc291cmNlLiJ8fFM9PT0iTG9hZCBmYWlsZWQifHwvYWJvcnRlZHxhYm9ydGVycm9yfG5ldHdvcmtlcnJvcnxmYWlsZWQgdG8gZmV0Y2gvaS50ZXN0KFMpO198fGsoRSYmRS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1M0QxXHU5MDAxXHU3RUQzXHU2Nzg0XHU1MzE2XHU2RDg4XHU2MDZGXHUzMDAyIiwiZXJyb3IiKSxKbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIil9KX1mdW5jdGlvbiBKbihlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtaGludCIpO3QmJih0LnRleHRDb250ZW50PWUpfWZ1bmN0aW9uIGRuKCl7dXQoKX12YXIgbnA9MTAsYW89MjY7ZnVuY3Rpb24gcnAoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXJldHVybiIiO3ZhciB0PWUucmVwbGFjZSgvXHMrL2csIiAiKS50cmltKCk7cmV0dXJuIHQubGVuZ3RoPD1hbz90OnQuc2xpY2UoMCxhbykrIlx1MjAyNiJ9ZnVuY3Rpb24gaXAoKXtyZXR1cm4hIXIucXVldWVCYXJFeHBhbmRlZH1mdW5jdGlvbiBhcChlKXtpZighIXIucXVldWVCYXJFeHBhbmRlZCE9ISFlKXtyLnF1ZXVlQmFyRXhwYW5kZWQ9ISFlO3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5xdWV1ZS1iYXIiKTt0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImV4cGFuZGVkIiwhIWUpfX1mdW5jdGlvbiB1cChlLHQsbil7dmFyIGk9ZS5sZW5ndGgsYT0icXVldWUtYmFyIjtuJiYoYSs9IiBxdWV1ZS1iYXItY2FwYWNpdHkiKSx0JiYoYSs9IiBxdWV1ZS1iYXItaW5mbGlnaHQiKTtmb3IodmFyIHU9dD8iXHU0RTJEXHU2NUFEXHU1RjUzXHU1MjREXHU1NkRFXHU1OTBEXHVGRjBDXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU4RkQ5XHU2NzYxIjoiXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU4RkQ5XHU2NzYxIixzPSIiLG89MDtvPGk7bysrKXt2YXIgbD1lW29dPT1udWxsPyIiOlN0cmluZyhlW29dKSxjPXJwKGwpLGY9bCsiXHVGRjA4XHU2MzA5XHU0RjRGXHU1M0VGXHU2MkQ2XHU1MkE4XHU4QzAzXHU1RThGXHVGRjA5IjtzKz0nPGxpIGNsYXNzPSJxdWV1ZS1iYXItaXRlbSIgZGF0YS1pbmRleD0iJytvKyciIGRhdGEtYWN0aW9uPSJkcmFnIiB0aXRsZT0iJytwKGYpKyciPjxzcGFuIGNsYXNzPSJxdWV1ZS1iYXItaXRlbS1pbmRleCIgYXJpYS1oaWRkZW49InRydWUiPicrKG8rMSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0icXVldWUtYmFyLWl0ZW0tdGV4dCI+JytwKGMpKyc8L3NwYW4+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxdWV1ZS1iYXItaXRlbS1wcm9tb3RlIiBkYXRhLWFjdGlvbj0icHJvbW90ZS1pdGVtIiB0aXRsZT0iJytwKHUpKyciIGFyaWEtbGFiZWw9Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1N0IyQyAnKyhvKzEpKycgXHU2NzYxIj48c3ZnIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTMgMiBMNCAxNCBMMTEgMTQgTDEwIDIyIEwyMCA5IEwxMyA5IFoiLz48L3N2Zz48L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InF1ZXVlLWJhci1pdGVtLWRlbGV0ZSIgZGF0YS1hY3Rpb249ImRlbGV0ZSIgYXJpYS1sYWJlbD0iXHU1MjIwXHU5NjY0XHU3QjJDICcrKG8rMSkrJyBcdTY3NjFcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkYiIHRpdGxlPSJcdTUyMjBcdTk2NjQiPjxzdmcgd2lkdGg9IjExIiBoZWlnaHQ9IjExIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSI2IiB5MT0iMTgiIHgyPSIxOCIgeTI9IjYiLz48L3N2Zz48L2J1dHRvbj48L2xpPid9dmFyIGQ9IiI7cmV0dXJuIGk+PTImJihkPSc8ZGl2IGNsYXNzPSJxdWV1ZS1iYXItaGVhZCI+PHNwYW4gY2xhc3M9InF1ZXVlLWJhci1oZWFkLWNvdW50Ij4nK2krJyBcdTY3NjFcdTYzOTJcdTk2MUY8L3NwYW4+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxdWV1ZS1iYXItY2xlYXItYWxsIiBkYXRhLWFjdGlvbj0iY2xlYXItYWxsIiB0aXRsZT0iXHU2RTA1XHU3QTdBXHU1MTY4XHU5MEU4XHU2MzkyXHU5NjFGIiBhcmlhLWxhYmVsPSJcdTZFMDVcdTdBN0FcdTUxNjhcdTkwRTggJytpKycgXHU2NzYxXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGIj5cdTZFMDVcdTdBN0E8L2J1dHRvbj48L2Rpdj4nKSwnPGRpdiBjbGFzcz0iJythKyciIGRhdGEtcXVldWUtYmFyPSIxIiB0aXRsZT0iXHU2MzkyXHU5NjFGICcraSsnIFx1Njc2MVx1RkYwOFx1NjMwOVx1NEY0Rlx1NkMxNFx1NkNFMVx1NTNFRlx1OEMwM1x1NUU4Rlx1RkYwOSI+JytkKyc8b2wgY2xhc3M9InF1ZXVlLWJhci1saXN0IiBkYXRhLXF1ZXVlLWxpc3Q9IjEiPicrcysiPC9vbD48L2Rpdj4ifWZ1bmN0aW9uIHV0KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1ZXVlLWJhci1ob3N0Iik7aWYoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiLGk9bj9RaSh0KTpbXTtpZihpPUFycmF5LmlzQXJyYXkoaSk/aTpbXSwhbnx8aS5sZW5ndGg9PT0wKXtlLmhpZGRlbj0hMCxlLmlubmVySFRNTD0iIixyLnF1ZXVlQmFyRXhwYW5kZWQ9ITE7cmV0dXJufWlmKCFyLnF1ZXVlQmFyRHJhZyl7ZS5oaWRkZW49ITE7dmFyIGE9ISEodC5zdHJ1Y3R1cmVkU3RhdGUmJnQuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZ0LnN0YXR1cz09PSJydW5uaW5nIiksdT1pLmxlbmd0aD49bnA7ZS5pbm5lckhUTUw9dXAoaSxhLHUpfX19ZnVuY3Rpb24gdmkoZSx0KXskKHtpZDplLmlkLHF1ZXVlZE1lc3NhZ2VzOnR9KTt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1lLmlkfSl8fGU7ci5jdXJyZW50TWVzc2FnZXM9emUobixydChuLG4ub3V0cHV0LCExKSksSmUoITApLHV0KCl9ZnVuY3Rpb24gc3AoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09ci5zZWxlY3RlZElkfSk7aWYodCl7dmFyIG49QXJyYXkuaXNBcnJheSh0LnF1ZXVlZE1lc3NhZ2VzKT90LnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYoIShlPDB8fGU+PW4ubGVuZ3RoKSl7dmFyIGk9bi5zbGljZSgpLGE9bi5zbGljZSgwLGUpLmNvbmNhdChuLnNsaWNlKGUrMSkpOyQoe2lkOnQuaWQscXVldWVkTWVzc2FnZXM6YX0pO3ZhciB1PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PXQuaWR9KXx8dDtyLmN1cnJlbnRNZXNzYWdlcz16ZSh1LHJ0KHUsdS5vdXRwdXQsITEpKSxKZSghMCksdXQoKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrdC5pZCsiL3F1ZXVlZC8iK2Use21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihzKXtpZighcy5vaylyZXR1cm4gcy5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24obyl7dGhyb3cgbmV3IEVycm9yKG8mJm8uZXJyb3J8fCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjUiKX0pfSkuY2F0Y2goZnVuY3Rpb24ocyl7dmkodCxpKSxrKHMmJnMubWVzc2FnZXx8Ilx1NTIyMFx1OTY2NFx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19fWZ1bmN0aW9uIG9wKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoZSl7dmFyIHQ9QXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYodC5sZW5ndGghPT0wKXtyLnF1ZXVlQmFyRXhwYW5kZWQ9ITEsJCh7aWQ6ZS5pZCxxdWV1ZWRNZXNzYWdlczpbXX0pO3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PWUuaWR9KXx8ZTtyLmN1cnJlbnRNZXNzYWdlcz16ZShuLHJ0KG4sbi5vdXRwdXQsITEpKSxKZSghMCksdXQoKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrZS5pZCsiL3F1ZXVlZCIse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtpZighaS5vaylyZXR1cm4gaS5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24oYSl7dGhyb3cgbmV3IEVycm9yKGEmJmEuZXJyb3J8fCJcdTZFMDVcdTdBN0FcdTU5MzFcdThEMjUiKX0pO2soIlx1NURGMlx1NkUwNVx1N0E3QSAiK3QubGVuZ3RoKyIgXHU2NzYxXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGXHUzMDAyIiwiaW5mbyIpfSkuY2F0Y2goZnVuY3Rpb24oaSl7dmkoZSx0KSxrKGkmJmkubWVzc2FnZXx8Ilx1NkUwNVx1N0E3QVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19fWZ1bmN0aW9uIGxwKGUpe2lmKCFyLnF1ZXVlQmFyUHJvbW90aW5nKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obCl7cmV0dXJuIGwuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZih0KXt2YXIgbj1BcnJheS5pc0FycmF5KHQucXVldWVkTWVzc2FnZXMpP3QucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZighKGU8MHx8ZT49bi5sZW5ndGgpKXt2YXIgaT1uW2VdLGE9bi5zbGljZSgwLGUpLmNvbmNhdChuLnNsaWNlKGUrMSkpLHU9bi5zbGljZSgpLHM9ISEodC5zdHJ1Y3R1cmVkU3RhdGUmJnQuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZ0LnN0YXR1cz09PSJydW5uaW5nIik7ci5xdWV1ZUJhclByb21vdGluZz0hMCxhLmxlbmd0aD09PTAmJihyLnF1ZXVlQmFyRXhwYW5kZWQ9ITEpLCQoe2lkOnQuaWQscXVldWVkTWVzc2FnZXM6YX0pO3ZhciBvPXR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8ucmFuZG9tVVVJRD9jcnlwdG8ucmFuZG9tVVVJRCgpOkRhdGUubm93KCkudG9TdHJpbmcoMzYpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDEwKTtrKHM/Ilx1NURGMlx1OEJGN1x1NkM0Mlx1NEUyRFx1NjVBRFx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1RkYwQ1x1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MVx1MzAwMiI6Ilx1NURGMlx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MVx1NkQ4OFx1NjA2Rlx1MzAwMiIsImluZm8iKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrdC5pZCsiL3F1ZXVlZC8iK2UrIi9wcm9tb3RlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7ZXhwZWN0ZWRUZXh0OmksaWRlbXBvdGVuY3lLZXk6b30pfSkudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gbC5vaz9sLmpzb24oKTpsLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihjKXt0aHJvdyBuZXcgRXJyb3IoYyYmYy5lcnJvcnx8Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNSIpfSl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKGwmJmwuaWQmJigkKGwpLGwuaWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgYz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZil7cmV0dXJuIGYuaWQ9PT1sLmlkfSl8fGw7ci5jdXJyZW50TWVzc2FnZXM9emUoYyxydChjLGwub3V0cHV0LCExKSksSmUoITApLHV0KCl9ci5xdWV1ZUJhclByb21vdGluZz0hMX0pLmNhdGNoKGZ1bmN0aW9uKGwpe3IucXVldWVCYXJQcm9tb3Rpbmc9ITEsdmkodCx1KSxrKGwmJmwubWVzc2FnZXx8Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19fX1mdW5jdGlvbiBjcChlLHQpe3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihkKXtyZXR1cm4gZC5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKG4pe3ZhciBpPUFycmF5LmlzQXJyYXkobi5xdWV1ZWRNZXNzYWdlcyk/bi5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKCEoaS5sZW5ndGg8PTEpJiZ0KXt2YXIgYT10LnBhcmVudEVsZW1lbnQ7aWYoYSl7dmFyIHU9TnVtYmVyKHQuZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IikpLHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYS5jaGlsZHJlbiksbz1zLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX0pLGw9MztvLmxlbmd0aD49MiYmKGw9TWF0aC5tYXgoMCxvWzFdLnRvcC1vWzBdLnRvcC1vWzBdLmhlaWdodCkpLGUucHJldmVudERlZmF1bHQoKTt0cnl7dC5zZXRQb2ludGVyQ2FwdHVyZShlLnBvaW50ZXJJZCl9Y2F0Y2h7fWlmKG5hdmlnYXRvciYmbmF2aWdhdG9yLnZpYnJhdGUpdHJ5e25hdmlnYXRvci52aWJyYXRlKDgpfWNhdGNoe31yLnF1ZXVlQmFyRHJhZz17cG9pbnRlcklkOmUucG9pbnRlcklkLGhhbmRsZUVsOnQsaXRlbUVsOnQsbGlzdEVsOmEsc2libGluZ3M6cyxyZWN0czpvLG9yaWdJbmRleDp1LHRhcmdldEluZGV4OnUsc3RhcnRZOmUuY2xpZW50WSxnYXA6bCxxdWV1ZVNuYXBzaG90Oml9LHQuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSxzLmZvckVhY2goZnVuY3Rpb24oZCl7ZCE9PXQmJmQuY2xhc3NMaXN0LmFkZCgicXVldWUtYmFyLWl0ZW0tc2xpZGluZyIpfSk7dmFyIGM9ZnVuY3Rpb24oZCl7ZnAoZCl9LGY9ZnVuY3Rpb24oZCl7cHAoZCl9O3IucXVldWVCYXJEcmFnLm1vdmVIYW5kbGVyPWMsci5xdWV1ZUJhckRyYWcudXBIYW5kbGVyPWYsdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsYyksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLGYpLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsZil9fX19ZnVuY3Rpb24gZHAoZSx0LG4saSl7Zm9yKHZhciBhPW4ubGVuZ3RoLHU9W10scz0wO3M8YTtzKyspdS5wdXNoKHMpO3Uuc3BsaWNlKGUsMSksdS5zcGxpY2UodCwwLGUpO2Zvcih2YXIgbz1uWzBdLnRvcCxsPW5bMF0udG9wLGM9MTtjPGE7YysrKW5bY10udG9wPGwmJihsPW5bY10udG9wKTtmb3IodmFyIGY9e30sZD1sLHY9MDt2PGE7disrKXt2YXIgaD11W3ZdO2ZbaF09ZCxkKz1uW2hdLmhlaWdodCtpfXJldHVybiBmfWZ1bmN0aW9uIGZwKGUpe3ZhciB0PXIucXVldWVCYXJEcmFnO2lmKCEoIXR8fGUucG9pbnRlcklkIT09dC5wb2ludGVySWQpKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG49ZS5jbGllbnRZLXQuc3RhcnRZO3QuaXRlbUVsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgiK24rInB4KSI7Zm9yKHZhciBpPXQucmVjdHNbdC5vcmlnSW5kZXhdLnRvcCt0LnJlY3RzW3Qub3JpZ0luZGV4XS5oZWlnaHQvMituLGE9dC5vcmlnSW5kZXgsdT0wO3U8dC5yZWN0cy5sZW5ndGg7dSsrKWlmKHUhPT10Lm9yaWdJbmRleCl7dmFyIHM9dC5yZWN0c1t1XS50b3ArdC5yZWN0c1t1XS5oZWlnaHQvMjt1PHQub3JpZ0luZGV4JiZpPHM/YT1NYXRoLm1pbihhLHUpOnU+dC5vcmlnSW5kZXgmJmk+cyYmKGE9TWF0aC5tYXgoYSx1KSl9aWYoYSE9PXQudGFyZ2V0SW5kZXgpe3QudGFyZ2V0SW5kZXg9YTt2YXIgbz1kcCh0Lm9yaWdJbmRleCxhLHQucmVjdHMsdC5nYXApO3Quc2libGluZ3MuZm9yRWFjaChmdW5jdGlvbihsLGMpe2lmKGMhPT10Lm9yaWdJbmRleCl7dmFyIGY9b1tjXS10LnJlY3RzW2NdLnRvcDtsLnN0eWxlLnRyYW5zZm9ybT1mPyJ0cmFuc2xhdGVZKCIrZisicHgpIjoiIn19KX19fWZ1bmN0aW9uIHBwKGUpe3ZhciB0PXIucXVldWVCYXJEcmFnO2lmKCEoIXR8fGUmJmUucG9pbnRlcklkIT09dC5wb2ludGVySWQpKXt0cnl7dC5oYW5kbGVFbC5yZWxlYXNlUG9pbnRlckNhcHR1cmUodC5wb2ludGVySWQpfWNhdGNoe310LmhhbmRsZUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0Lm1vdmVIYW5kbGVyKSx0LmhhbmRsZUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdC51cEhhbmRsZXIpLHQuaGFuZGxlRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsdC51cEhhbmRsZXIpO3ZhciBuPXQub3JpZ0luZGV4LGk9dC50YXJnZXRJbmRleCxhPXQucXVldWVTbmFwc2hvdDtpZih0LnNpYmxpbmdzLmZvckVhY2goZnVuY3Rpb24oYyl7Yy5zdHlsZS50cmFuc2Zvcm09IiIsYy5jbGFzc0xpc3QucmVtb3ZlKCJxdWV1ZS1iYXItaXRlbS1zbGlkaW5nIil9KSx0Lml0ZW1FbC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHIucXVldWVCYXJEcmFnPW51bGwsbj09PWkpe3V0KCk7cmV0dXJufWZvcih2YXIgdT1bXSxzPTA7czxhLmxlbmd0aDtzKyspdS5wdXNoKHMpO3Uuc3BsaWNlKG4sMSksdS5zcGxpY2UoaSwwLG4pO3ZhciBvPXUubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBhW2NdfSksbD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZighbCl7dXQoKTtyZXR1cm59JCh7aWQ6bC5pZCxxdWV1ZWRNZXNzYWdlczpvfSksdXQoKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrbC5pZCsiL3F1ZXVlZCIse21ldGhvZDoiUEFUQ0giLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtvcmRlcjp1fSl9KS50aGVuKGZ1bmN0aW9uKGMpe2lmKCFjLm9rKXJldHVybiBjLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihmKXt0aHJvdyBuZXcgRXJyb3IoZiYmZi5lcnJvcnx8Ilx1NjM5Mlx1NUU4Rlx1NTkzMVx1OEQyNSIpfSl9KS5jYXRjaChmdW5jdGlvbihjKXt2aShsLGEpLGsoYyYmYy5tZXNzYWdlfHwiXHU4QzAzXHU2NTc0XHU2MzkyXHU5NjFGXHU5ODdBXHU1RThGXHU1OTMxXHU4RDI1XHUzMDAyIiwiZXJyb3IiKX0pfX1mdW5jdGlvbiB2cCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWV1ZS1iYXItaG9zdCIpOyFlfHxlLl9fcXVldWVEZWxlZ2F0ZWR8fChlLl9fcXVldWVEZWxlZ2F0ZWQ9ITAsZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7dmFyIG49dC50YXJnZXQsaT1uJiZuLmNsb3Nlc3Q/bi5jbG9zZXN0KCJbZGF0YS1hY3Rpb25dIik6bnVsbDtpZihpJiZlLmNvbnRhaW5zKGkpKXt2YXIgYT1pLmdldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iKTtpZihhPT09ImRyYWciKXJldHVybjtpZih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxhPT09InByb21vdGUtaXRlbSIpe3ZhciB1PWkuY2xvc2VzdCgiLnF1ZXVlLWJhci1pdGVtIik7dSYmbHAoTnVtYmVyKHUuZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IikpKX1lbHNlIGlmKGE9PT0iZGVsZXRlIil7dmFyIHM9aS5jbG9zZXN0KCIucXVldWUtYmFyLWl0ZW0iKTtzJiZzcChOdW1iZXIocy5nZXRBdHRyaWJ1dGUoImRhdGEtaW5kZXgiKSkpfWVsc2UgYT09PSJjbGVhci1hbGwiJiZvcCgpO3JldHVybn19KSxlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixmdW5jdGlvbih0KXtpZighKHQuYnV0dG9uIT09dm9pZCAwJiZ0LmJ1dHRvbiE9PTApKXt2YXIgbj10LnRhcmdldDtpZighKG4mJm4uY2xvc2VzdCYmbi5jbG9zZXN0KCdbZGF0YS1hY3Rpb249ImRlbGV0ZSJdLCBbZGF0YS1hY3Rpb249InByb21vdGUtaXRlbSJdLCBbZGF0YS1hY3Rpb249ImNsZWFyLWFsbCJdLCBbZGF0YS1hY3Rpb249ImV4cGFuZCJdJykpKXt2YXIgaT1uJiZuLmNsb3Nlc3Q/bi5jbG9zZXN0KCIucXVldWUtYmFyLWl0ZW0iKTpudWxsO2kmJmNwKHQsaSl9fX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmaXAoKSYmKHQuc3RvcFByb3BhZ2F0aW9uKCksYXAoITEpKX0pKX1mdW5jdGlvbiB1byhlKXtpZighZXx8IUFycmF5LmlzQXJyYXkoZS5jb250ZW50KSlyZXR1cm4gMDtmb3IodmFyIHQ9MCxuPTA7bjxlLmNvbnRlbnQubGVuZ3RoO24rKyl7dmFyIGk9ZS5jb250ZW50W25dO2lmKGkpe2lmKHR5cGVvZiBpLnRleHQ9PSJzdHJpbmciJiYodCs9aS50ZXh0Lmxlbmd0aCksdHlwZW9mIGkudGhpbmtpbmc9PSJzdHJpbmciJiYodCs9aS50aGlua2luZy5sZW5ndGgpLHR5cGVvZiBpLmNvbnRlbnQ9PSJzdHJpbmciKXQrPWkuY29udGVudC5sZW5ndGg7ZWxzZSBpZihBcnJheS5pc0FycmF5KGkuY29udGVudCkpZm9yKHZhciBhPTA7YTxpLmNvbnRlbnQubGVuZ3RoO2ErKyl7dmFyIHU9aS5jb250ZW50W2FdO3UmJnR5cGVvZiB1LnRleHQ9PSJzdHJpbmciJiYodCs9dS50ZXh0Lmxlbmd0aCl9aWYoaS5pbnB1dCl0cnl7dCs9SlNPTi5zdHJpbmdpZnkoaS5pbnB1dCkubGVuZ3RofWNhdGNoe319fXJldHVybiB0fWZ1bmN0aW9uIG1wKGUsdCl7aWYoIWUpcmV0dXJuIHQ7aWYoIXQpcmV0dXJuIGU7dmFyIG49dW8oZSksaT11byh0KTtyZXR1cm4gaT49bj90Ok9iamVjdC5hc3NpZ24oe30sZSx7dXNhZ2U6dC51c2FnZXx8ZS51c2FnZX0pfWZ1bmN0aW9uIHplKGUsdCl7dmFyIG49QXJyYXkuaXNBcnJheSh0KT9vcih0KTpbXSxpPUFycmF5LmlzQXJyYXkobik/bi5zbGljZSgpOltdO2lmKCFlfHxlLnNlc3Npb25LaW5kIT09InN0cnVjdHVyZWQiKXJldHVybiBpO2lmKGUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCl7dmFyIGE9aVtpLmxlbmd0aC0xXTsoIWF8fGEucm9sZSE9PSJhc3Npc3RhbnQiKSYmaS5wdXNoKHtyb2xlOiJhc3Npc3RhbnQiLGNvbnRlbnQ6W3t0eXBlOiJ0ZXh0Iix0ZXh0OiIiLF9fcHJvY2Vzc2luZzohMH1dfSl9cmV0dXJuIGl9ZnVuY3Rpb24gc28oKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtLcihlKSxkbigpfWZ1bmN0aW9uIG9vKGUpe3ZhciB0PU50KCksbj10JiZ0LnByb3ZpZGVyPT09ImNvZGV4IjtyZXR1cm4gZSYmKGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9UX1JVTk5JTkcifHxlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PX1BUWSIpP24/IkNvZGV4IFx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1Rlx1RkYxQlx1ODJFNVx1NUI1OFx1NTcyOCBDb2RleCBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTU3MjhcdTRGNjBcdTRFMEJcdTZCMjFcdTUzRDFcdTkwMDFcdTZEODhcdTYwNkZcdTY1RjZcdTgxRUFcdTUyQThcdTYwNjJcdTU5MERcdTMwMDIiOiJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUZcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1RkYwQ1x1NUMwNlx1NTcyOFx1NEY2MFx1NEUwQlx1NkIyMVx1NTNEMVx1OTAwMVx1NkQ4OFx1NjA2Rlx1NjVGNlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1MzAwMiI6ZSYmZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT1RfRk9VTkQiPyJcdTRGMUFcdThCRERcdTRFMERcdTVCNThcdTU3MjhcdUZGMENcdThCRjdcdTkxQ0RcdTY1QjBcdTkwMDlcdTYyRTlcdTYyMTZcdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTMwMDIiOmUmJmUubWVzc2FnZXx8KG4/IkNvZGV4IFx1NEYxQVx1OEJERFx1NjY4Mlx1NEUwRFx1NTNFRlx1NzUyOFx1RkYxQlx1ODJFNVx1NUI1OFx1NTcyOCBDb2RleCBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTgxRUFcdTUyQThcdTVDMURcdThCRDVcdTYwNjJcdTU5MERcdTMwMDIiOiJcdTRGMUFcdThCRERcdTY2ODJcdTRFMERcdTUzRUZcdTc1MjhcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1RkYwQ1x1NUMwNlx1ODFFQVx1NTJBOFx1NUMxRFx1OEJENVx1NjA2Mlx1NTkwRFx1MzAwMiIpfWZ1bmN0aW9uIGxvKGUpe3ZhciB0PW5ldyBFcnJvcihlJiZlLmVycm9yfHwiXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGXHUzMDAyIik7cmV0dXJuIGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKHQuZXJyb3JDb2RlPWUuZXJyb3JDb2RlfHxudWxsLHQuc2Vzc2lvbklkPWUuc2Vzc2lvbklkfHxyLnNlbGVjdGVkSWR8fG51bGwsdC5zZXNzaW9uU3RhdHVzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJzZXNzaW9uU3RhdHVzIik/ZS5zZXNzaW9uU3RhdHVzOm51bGwpLHR9ZnVuY3Rpb24gY28oZSl7cmV0dXJuIGUmJihlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PVF9SVU5OSU5HInx8ZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT19QVFkifHxlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PVF9GT1VORCIpfWZ1bmN0aW9uIGdwKGUsdCl7ZSYmJCh7aWQ6ZSxzdGF0dXM6dHx8ImV4aXRlZCJ9KX1mdW5jdGlvbiBIZyhlKXtpZighZXx8IUFycmF5LmlzQXJyYXkoZS5tZXNzYWdlcyl8fGUubWVzc2FnZXMubGVuZ3RoPDIpcmV0dXJuITE7dmFyIHQ9ZS5tZXNzYWdlcy5zb21lKGZ1bmN0aW9uKGkpe3JldHVybiBpJiZpLnJvbGU9PT0idXNlciImJkFycmF5LmlzQXJyYXkoaS5jb250ZW50KSYmaS5jb250ZW50LnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEudHlwZT09PSJ0ZXh0IiYmdHlwZW9mIGEudGV4dD09InN0cmluZyImJmEudGV4dC50cmltKCkubGVuZ3RoPjB9KX0pLG49ZS5tZXNzYWdlcy5zb21lKGZ1bmN0aW9uKGkpe3JldHVybiBpJiZpLnJvbGU9PT0iYXNzaXN0YW50IiYmQXJyYXkuaXNBcnJheShpLmNvbnRlbnQpJiZpLmNvbnRlbnQuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gYSYmYS50eXBlPT09InRleHQiJiZ0eXBlb2YgYS50ZXh0PT0ic3RyaW5nIiYmYS50ZXh0LnRyaW0oKS5sZW5ndGg+MH0pfSk7cmV0dXJuIHQmJm59ZnVuY3Rpb24geGEoZSl7cmV0dXJuISEoZSYmIWllKGUpJiYoZS5wcm92aWRlcj09PSJjbGF1ZGUifHxlLnByb3ZpZGVyPT09ImNvZGV4IikmJmUuc3RhdHVzIT09InJ1bm5pbmciJiZlLmNsYXVkZVNlc3Npb25JZCl9ZnVuY3Rpb24gaHAoZSx0KXtpZighZSlyZXR1cm4gaygiXHU0RjFBXHU4QkREXHU0RTBEXHU1QjU4XHU1NzI4XHVGRjBDXHU4QkY3XHU5MUNEXHU2NUIwXHU5MDA5XHU2MkU5XHU2MjE2XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxQcm9taXNlLnJlc29sdmUobnVsbCk7aWYoZS5zdGF0dXM9PT0icnVubmluZyIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShlKTtpZigheGEoZSkpe3ZhciBuPWUmJmUucHJvdmlkZXI9PT0iY29kZXgiPyJDb2RleCI6IkNsYXVkZSI7cmV0dXJuIGsoIlx1OEJFNVx1NEYxQVx1OEJERFx1NkNBMVx1NjcwOVx1NTNFRlx1NjA2Mlx1NTkwRFx1NzY4NCAiK24rIiBcdTUzODZcdTUzRjJcdTRFMEFcdTRFMEJcdTY1ODdcdUZGMENcdThCRjdcdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLFByb21pc2UucmVzb2x2ZShudWxsKX1yZXR1cm4gd28oZS5pZCx0KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpPygkKGkpLGZlKCksTG4oaS5pZCksZ24oaS5pZCkudGhlbihmdW5jdGlvbigpe3JldHVybiBSdCghMCksaX0pKTpudWxsfSl9ZnVuY3Rpb24geXAoZSx0KXtyZXR1cm5bdCwiXHIiXX1mdW5jdGlvbiBicChlLHQsbixpKXt2YXIgYT1BcnJheS5pc0FycmF5KGUpP2UuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiEhc30pOltdO2lmKGEubGVuZ3RoPT09MClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHU9dHlwZW9mIG49PSJudW1iZXIiP246MDtyZXR1cm4gYS5yZWR1Y2UoZnVuY3Rpb24ocyxvLGwpe3JldHVybiBzLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbD4wJiZ1PjA/bmV3IFByb21pc2UoZnVuY3Rpb24oYyl7c2V0VGltZW91dChjLHUpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBGdChvLGw9PT1hLmxlbmd0aC0xP3Q6dm9pZCAwLGkpfSk6RnQobyxsPT09YS5sZW5ndGgtMT90OnZvaWQgMCxpKX0pfSxQcm9taXNlLnJlc29sdmUoKSl9dmFyIEVwPTVlMyxGcD0xMDA7ZnVuY3Rpb24gU2EoZSl7ZSYmKHIucGVuZGluZ01lc3NhZ2VzLmxlbmd0aD49RnAmJnIucGVuZGluZ01lc3NhZ2VzLnNoaWZ0KCksci5wZW5kaW5nTWVzc2FnZXMucHVzaCh7aW5wdXQ6ZSxhdDpEYXRlLm5vdygpfSkpfWZ1bmN0aW9uIHdwKGUpe3ZhciB0PUFycmF5LmlzQXJyYXkoZSk/ZS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuISFufSk6W107dC5mb3JFYWNoKGZ1bmN0aW9uKG4pe1NhKG4pfSl9ZnVuY3Rpb24gQ3AoZSl7aWYoISh0eXBlb2YgZSE9InN0cmluZyJ8fCFlKSl7dmFyIHQ9ZS5yZXBsYWNlKC9ceDFiXFsyMDB+L2csIiIpLnJlcGxhY2UoL1x4MWJcWzIwMX4vZywiIik7Lyg/Ol58XG4pXHMqXC9jbGVhclxzKig/OlxyfFxufCQpLy50ZXN0KHQpJiZ0eXBlb2YgcjwidSImJnImJihyLnRlcm1pbmFsT3V0cHV0TWFya2VyPShyLnRlcm1pbmFsT3V0cHV0JiZyLnRlcm1pbmFsT3V0cHV0Lmxlbmd0aCl8MCl9fWZ1bmN0aW9uIEZ0KGUsdCxuKXtyZXR1cm4hZXx8IXIuc2VsZWN0ZWRJZD9Qcm9taXNlLnJlc29sdmUoKTooQ3AoZSksci5tZXNzYWdlUXVldWUucHVzaChlKSxyLmlucHV0UXVldWU9ci5pbnB1dFF1ZXVlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gQnAoZSx0LG4pLmZpbmFsbHkoZnVuY3Rpb24oKXt2YXIgaT1yLm1lc3NhZ2VRdWV1ZS5pbmRleE9mKGUpO2k+LTEmJnIubWVzc2FnZVF1ZXVlLnNwbGljZShpLDEpfSl9KSxyLmlucHV0UXVldWUpfWZ1bmN0aW9uIEJwKGUsdCxuKXtpZighci5zZWxlY3RlZElkKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgaT1yLnNlbGVjdGVkSWQsYT1ufHxyLmN1cnJlbnRWaWV3O3JldHVybiBHZigpP3Iud3NDb25uZWN0ZWQ/ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitpKyIvaW5wdXQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDplLHZpZXc6YSxzaG9ydGN1dEtleTp0fHx2b2lkIDB9KX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUub2s/dS5qc29uKCk6dS5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihzKXt2YXIgbz1sbyhzKTt0aHJvdyBvLmh0dHBTdGF0dXM9dS5zdGF0dXMsY29uc29sZS5lcnJvcigiW3dhbmRdIHBvc3RJbnB1dDogcmVxdWVzdCBmYWlsZWQiLHtzdGF0dXM6dS5zdGF0dXMsZXJyb3JDb2RlOm8uZXJyb3JDb2RlLG1lc3NhZ2U6by5tZXNzYWdlLHNlc3Npb25JZDppfSksY28obykmJmdwKGksby5zZXNzaW9uU3RhdHVzfHwiZXhpdGVkIiksb30pfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdSYmdS5pZCYmKCQodSksdS5pZD09PXIuc2VsZWN0ZWRJZCYmKHUubWVzc2FnZXMmJnUubWVzc2FnZXMubGVuZ3RoPjAmJihyLmN1cnJlbnRNZXNzYWdlcz11Lm1lc3NhZ2VzKSxKZSghMCkpKSx1fSk6KFNhKGUpLGNvbnNvbGUubG9nKCJbd2FuZF0gcG9zdElucHV0OiBXZWJTb2NrZXQgZGlzY29ubmVjdGVkLCBxdWV1ZWQgbWVzc2FnZSIse3Nlc3Npb25JZDpyLnNlbGVjdGVkSWQsaW5wdXRMZW5ndGg6ZS5sZW5ndGh9KSxQcm9taXNlLnJlc29sdmUoKSk6ci53c0Nvbm5lY3RlZD8oY29uc29sZS53YXJuKCJbd2FuZF0gcG9zdElucHV0OiBzZXNzaW9uIG5vdCBydW5uaW5nLCBza2lwcGluZyBzZW5kIix7c2Vzc2lvbklkOnIuc2VsZWN0ZWRJZH0pLGsoIlx1NEYxQVx1OEJERFx1NjcyQVx1OEZEMFx1ODg0Q1x1RkYwQ1x1NkI2M1x1NTcyOFx1N0I0OVx1NUY4NVx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1NTQwRVx1OTFDRFx1OEJENVx1MzAwMiIsImluZm8iKSxQcm9taXNlLnJlc29sdmUoKSk6KFNhKGUpLGNvbnNvbGUubG9nKCJbd2FuZF0gcG9zdElucHV0OiBzZXNzaW9uIG5vdCBydW5uaW5nLCBxdWV1ZWQgZm9yIHJlY29ubmVjdCIse3Nlc3Npb25JZDpyLnNlbGVjdGVkSWQsaW5wdXRMZW5ndGg6ZS5sZW5ndGh9KSxQcm9taXNlLnJlc29sdmUoKSl9ZnVuY3Rpb24gX2coZSl7cmV0dXJuIEZ0KGUpfWZ1bmN0aW9uIE50KCl7cmV0dXJuIHIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZD09PXIuc2VsZWN0ZWRJZH0pfHxudWxsfWZ1bmN0aW9uIE5nKGUpe3JldHVybiBlJiZlLnByb3ZpZGVyPT09ImNvZGV4Ij9gCmA6IlxyIn1mdW5jdGlvbiBJYSgpe3JldHVybiEhci5zZWxlY3RlZElkJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIn1mdW5jdGlvbiBEcChlKXtyZXR1cm4hKCFyLnRlcm1pbmFsfHwhZXx8ZSE9PXIuc2VsZWN0ZWRJZHx8ci50ZXJtaW5hbFNlc3Npb25JZCYmci50ZXJtaW5hbFNlc3Npb25JZCE9PWUpfWZ1bmN0aW9uIGZvKGUpe2lmKCFyLnRlcm1pbmFsSW50ZXJhY3RpdmV8fCFJYSgpfHxlLmRlZmF1bHRQcmV2ZW50ZWR8fGUuaXNDb21wb3NpbmcpcmV0dXJuITE7dmFyIHQ9ZS50YXJnZXQ7cmV0dXJuIHQ/IShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIikmJnQuY2xvc2VzdCYmdC5jbG9zZXN0KCIjaW5wdXQtYm94Iil8fHQuY2xvc2VzdCYmdC5jbG9zZXN0KCIjbWluaS1rZXlib2FyZCIpfHxMcCh0KSk6ITB9dmFyIGtwPXtFc2M6ImVzY2FwZSIsQXJyb3dVcDoidXAiLEFycm93RG93bjoiZG93biIsQXJyb3dMZWZ0OiJsZWZ0IixBcnJvd1JpZ2h0OiJyaWdodCIsRW50ZXI6ImVudGVyIixUYWI6InRhYiIsQmFja3NwYWNlOiJiYWNrc3BhY2UiLEhvbWU6ImhvbWUiLEVuZDoiZW5kIixQYWdlVXA6InBhZ2V1cCIsUGFnZURvd246InBhZ2Vkb3duIixEZWxldGU6ImRlbGV0ZSIsSW5zZXJ0OiJpbnNlcnQiLCIgIjoic3BhY2UifSxBcD17c3BhY2U6IiAiLHRhYjoiCSIsc2hpZnRfdGFiOiJceDFCW1oiLGJhY2tzcGFjZToiXHg3RiIsaG9tZToiXHgxQltIIixlbmQ6Ilx4MUJbRiIscGFnZXVwOiJceDFCWzV+IixwYWdlZG93bjoiXHgxQls2fiIsZGVsZXRlOiJceDFCWzN+IixpbnNlcnQ6Ilx4MUJbMn4ifSxwbz17IiAiOjAsIlsiOjI3LCJcXCI6MjgsIl0iOjI5LCJeIjozMCxfOjMxfSx4cD00MDAsU3A9MTAsSXA9OCxtaT01NCxmbj04LFRhPVt7a2V5OiJlbnRlciIsbGFiZWw6IkVudGVyIn0se2tleToiY3RybF9jIixsYWJlbDoiQ3RybCtDIn0se2tleToiZXNjYXBlIixsYWJlbDoiRXNjIn0se2tleToic2hpZnRfdGFiIixsYWJlbDoiU2hpZnQrVGFiIn1dLFRwPW5ldyBTZXQoWyJtaW5pLWtleWJvYXJkLWZhYiIsIm1pbmkta2V5Ym9hcmQtdG9nZ2xlIiwidGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlIl0pO2Z1bmN0aW9uIExwKGUpe3JldHVybiEhKGUmJlRwLmhhcyhlLmlkKSl9dmFyIE1wPW5ldyBTZXQoWyJjdHJsIiwiYWx0Iiwic2hpZnQiXSk7ZnVuY3Rpb24gdm8oZSl7cmV0dXJuIE1wLmhhcyhlKX1mdW5jdGlvbiBQcChlKXtyZXR1cm4gQXBbZV18fCIifWZ1bmN0aW9uIHFwKGUpe3ZhciB0PWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdD49ImEiJiZ0PD0ieiI/U3RyaW5nLmZyb21DaGFyQ29kZSh0LmNoYXJDb2RlQXQoMCktOTYpOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwbyx0KT9TdHJpbmcuZnJvbUNoYXJDb2RlKHBvW3RdKToiIn1mdW5jdGlvbiBPcChlKXtyZXR1cm4ga3BbZS5rZXldfHxlLmtleX1mdW5jdGlvbiBIcChlLHQpe3JldHVybntjdHJsOmUuY3RybEtleSxhbHQ6ZS5hbHRLZXksc2hpZnQ6ZS5zaGlmdEtleSYmKHQubGVuZ3RoPT09MXx8dD09PSJ0YWIiKSxtZXRhOmUubWV0YUtleX19ZnVuY3Rpb24gbW8oZSx0KXtlJiZGdChlLHQpLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gX3AoKXtTbygpfWZ1bmN0aW9uIExhKGUpe3Iua2V5Ym9hcmRQb3B1cE9wZW49ITEsZSE9PSExJiZoaSgpLGpwKCl9ZnVuY3Rpb24gTnAoKXtJYSgpJiZUbighci50ZXJtaW5hbEludGVyYWN0aXZlKX1mdW5jdGlvbiBUbihlKXt2YXIgdD0hIWUmJklhKCk7ci50ZXJtaW5hbEludGVyYWN0aXZlIT09dCYmKHIudGVybWluYWxJbnRlcmFjdGl2ZT10LHQ/KFdwKCksTGEoITEpLF9wKCksaygiXHU3RUM4XHU3QUVGXHU0RUE0XHU0RTkyXHU2QTIxXHU1RjBGXHU1REYyXHU1RjAwXHU1NDJGIiwiaW5mbyIpKTooenAoKSxoaSgpKSxEcigpKX1mdW5jdGlvbiBNYSgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pLHQ9IWV8fGUuc3RhdHVzIT09InJ1bm5pbmcifHxyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsIjtpZih0JiZyLnRlcm1pbmFsSW50ZXJhY3RpdmUpe1RuKCExKTtyZXR1cm59KCFlfHxyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsIikmJnIua2V5Ym9hcmRQb3B1cE9wZW4mJihyLmtleWJvYXJkUG9wdXBPcGVuPSExKSxEcigpfWZ1bmN0aW9uIERyKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHkpe3JldHVybiB5LmlkPT09ci5zZWxlY3RlZElkfSksdD1pZShlKSxuPWUmJmUucHJvdmlkZXI9PT0iY29kZXgiLGk9dD8hIShlJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpOiEhZSYmZS5zdGF0dXM9PT0icnVubmluZyIsYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksdT1bInRlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZS10b3AiXTt1LmZvckVhY2goZnVuY3Rpb24oeSl7dmFyIHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeSk7aWYodyl7dy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHIudGVybWluYWxJbnRlcmFjdGl2ZSksdy5jbGFzc0xpc3QudG9nZ2xlKCJpcy1vbiIsci50ZXJtaW5hbEludGVyYWN0aXZlKSx3LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsdHx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCJ8fCFlKSx3LnNldEF0dHJpYnV0ZSgiYXJpYS1jaGVja2VkIixyLnRlcm1pbmFsSW50ZXJhY3RpdmU/InRydWUiOiJmYWxzZSIpO3ZhciBFPXcucXVlcnlTZWxlY3RvcigiLnBsdXMtcG9wb3Zlci10b2dnbGUtc3RhdGUiKTtFJiYoRS50ZXh0Q29udGVudD1yLnRlcm1pbmFsSW50ZXJhY3RpdmU/Ilx1NUYwMCI6Ilx1NTE3MyIpfX0pO3ZhciBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1oaW50Iik7cyYmKHMuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIix0PyEwOnIuY3VycmVudFZpZXc9PT0idGVybWluYWwiKSwhdCYmZSYmKHMudGV4dENvbnRlbnQ9bj8iRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgY2hhdCBcdTRFM0FcdTg5RTNcdTY3OTBcdTg5QzZcdTU2RkVcdUZGMEN0ZXJtaW5hbCBcdTRFM0FcdTUzOUZcdTU5Q0JcdThGOTNcdTUxRkEiOiJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSk7dmFyIG89IXQmJiFpJiZ4YShlKTthJiYoYS5wbGFjZWhvbGRlcj1ubChlLHIudGVybWluYWxJbnRlcmFjdGl2ZSksYS5kaXNhYmxlZD0hdCYmISFlJiYhaSYmIW8sYS5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLGEuZGlzYWJsZWQ/InRydWUiOiJmYWxzZSIpLGEucmVhZE9ubHk9ITEsYS5jbGFzc0xpc3QudG9nZ2xlKCJpcy10ZXJtaW5hbC1wYXNzdGhyb3VnaCIsISFyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJiFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIikpKTt2YXIgbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtsJiZyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJmwuY2xhc3NMaXN0LmNvbnRhaW5zKCJ2b2ljZS1tb2RlIikmJihsLmNsYXNzTGlzdC5yZW1vdmUoInZvaWNlLW1vZGUiKSxTZS5yZWNvcmRpbmc9ITEsRGEoKSk7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbmQtaW5wdXQtYnV0dG9uIiksZj10JiZpO2MmJihjLmRpc2FibGVkPSF0JiYhIWUmJiFpJiYhbyxjLnNldEF0dHJpYnV0ZSgidGl0bGUiLHQ/Zj8iXHU2MzkyXHU5NjFGXHU1M0QxXHU5MDAxXHVGRjA4XHU1RjUzXHU1MjREXHU1NkRFXHU1OTBEXHU3RUQzXHU2NzVGXHU1NDBFXHU1OTA0XHU3NDA2XHVGRjA5IjoiXHU1M0QxXHU5MDAxIjpuP2k/Ilx1NTNEMVx1OTAwMVx1N0VEOSBDb2RleCI6IkNvZGV4IFx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1RiI6IWV8fGl8fG8/Ilx1NTNEMVx1OTAwMSI6Ilx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1RiIpLGMuY2xhc3NMaXN0LnRvZ2dsZSgicXVldWUtbW9kZSIsZikpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO2lmKGQpe3ZhciB2PW11KGUpO2QuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhdi5hY3RpdmUpfXZhciBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO2lmKGgpe3ZhciBnPW11KGUpO2guY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhZy5hY3RpdmUpfXZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTttJiZtLmNsYXNzTGlzdC50b2dnbGUoImludGVyYWN0aXZlIiwhdCYmci50ZXJtaW5hbEludGVyYWN0aXZlKSxNcygpfWZ1bmN0aW9uIGdpKCl7dmFyIGU9d2luZG93LmdldFNlbGVjdGlvbiYmd2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFlfHxlLmlzQ29sbGFwc2VkKXJldHVybiExO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighdClyZXR1cm4hMTt2YXIgbj1lLmFuY2hvck5vZGU7cmV0dXJuIG4mJm4ubm9kZVR5cGU9PT0zJiYobj1uLnBhcmVudE5vZGUpLCEhKG4mJnQuY29udGFpbnMobikpfWZ1bmN0aW9uIFBhKGUpe2lmKGZvKGUpJiYhZS5tZXRhS2V5KXt2YXIgdD1PcChlKTtpZih0KXt2YXIgbj1IcChlLHQpO2lmKCF2byh0KSYmIShuLmN0cmwmJnQubGVuZ3RoPT09MSYmdC50b0xvd2VyQ2FzZSgpPT09ImMiJiZnaSgpKSl7dmFyIGk9aG8odCxuKTtpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLG1vKGksdCkpfX19fWZ1bmN0aW9uIFJwKCl7ci50ZXJtaW5hbCYmY2YoNTAwKX1mdW5jdGlvbiBqcCgpe2dyKCl9ZnVuY3Rpb24gUmcoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksIShyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsInx8IXIuc2VsZWN0ZWRJZCkmJihyLmtleWJvYXJkUG9wdXBPcGVuPSFyLmtleWJvYXJkUG9wdXBPcGVuLERyKCkpfWZ1bmN0aW9uIGdvKCl7ci5rZXlib2FyZFBvcHVwT3Blbj0hMSxEcigpfWZ1bmN0aW9uIFdwKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsUGEsITApfWZ1bmN0aW9uIHpwKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsUGEsITApfWZ1bmN0aW9uIGhvKGUsdCl7dmFyIG49dHx8e2N0cmw6ITEsYWx0OiExLHNoaWZ0OiExfTtpZih2byhlKSlyZXR1cm4iIjtpZihlPT09InRhYiImJm4uc2hpZnQpcmV0dXJuIlx4MUJbWiI7dmFyIGk9UHAoZSk7aWYoaSlyZXR1cm4gaTtpZihlLmluZGV4T2YoImN0cmxfIik9PT0wKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGUuY2hhckNvZGVBdChlLmxlbmd0aC0xKS05Nik7dmFyIGE9a3IoZSk7aWYoYSlyZXR1cm4gYTtpZighZSlyZXR1cm4iIjt2YXIgdT1lLmxlbmd0aD09PTE/ZToiIjtyZXR1cm4gdT8obi5zaGlmdCYmKHU9dS50b1VwcGVyQ2FzZSgpKSxuLmN0cmw/cXAodSk6bi5hbHQ/Ilx4MUIiK3U6dSk6IiJ9ZnVuY3Rpb24gaGkoKXtyLm1vZGlmaWVycy5jdHJsPSExLHIubW9kaWZpZXJzLmFsdD0hMSxyLm1vZGlmaWVycy5zaGlmdD0hMSxVcCgpfWZ1bmN0aW9uIFVwKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1pbmkta2V5Ym9hcmQiKTtlJiZbImN0cmwiLCJhbHQiLCJzaGlmdCJdLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1rZXk9IicrdCsnIl0nKTtuJiZuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFyLm1vZGlmaWVyc1t0XSl9KX1mdW5jdGlvbiBrcihlKXtzd2l0Y2goZSl7Y2FzZSJ5ZXMiOnJldHVybiJ5XHIiO2Nhc2Uibm8iOnJldHVybiJuXHIiO2Nhc2UidXAiOnJldHVybiJceDFCW0EiO2Nhc2UiZG93biI6cmV0dXJuIlx4MUJbQiI7Y2FzZSJsZWZ0IjpyZXR1cm4iXHgxQltEIjtjYXNlInJpZ2h0IjpyZXR1cm4iXHgxQltDIjtjYXNlImVudGVyIjpyZXR1cm4iXHIiO2Nhc2UiY3RybF9jIjpyZXR1cm4iAyI7Y2FzZSJjdHJsX2QiOnJldHVybiIEIjtjYXNlImN0cmxfbCI6cmV0dXJuIlxmIjtjYXNlImN0cmxfdSI6cmV0dXJuIhUiO2Nhc2UiY3RybF9rIjpyZXR1cm4iXHYiO2Nhc2UiY3RybF93IjpyZXR1cm4iFyI7Y2FzZSJjdHJsX3oiOnJldHVybiIaIjtjYXNlImVzY2FwZSI6cmV0dXJuIlx4MUIiO2RlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIFZwKCl7aWYoci5wZW5kaW5nTWVzc2FnZXMubGVuZ3RoIT09MCl7dmFyIGU9TnQoKTtpZihpZShlKSl7ci5wZW5kaW5nTWVzc2FnZXM9W107cmV0dXJufXZhciB0PURhdGUubm93KCksbj1bXSxpPTA7ci5wZW5kaW5nTWVzc2FnZXMuZm9yRWFjaChmdW5jdGlvbih1KXtpZih0eXBlb2YgdT09InN0cmluZyIpe24ucHVzaCh1KTtyZXR1cm59aWYoISghdXx8dHlwZW9mIHUuaW5wdXQhPSJzdHJpbmciKSl7aWYodC0odS5hdHx8MCk+RXApe2krKztyZXR1cm59bi5wdXNoKHUuaW5wdXQpfX0pLHIucGVuZGluZ01lc3NhZ2VzPVtdLGk+MCYmY29uc29sZS5sb2coIlt3YW5kXSBmbHVzaFBlbmRpbmdNZXNzYWdlczogZHJvcHBlZCAiK2krIiBzdGFsZSBpbnB1dChzKSIpO3ZhciBhPVByb21pc2UucmVzb2x2ZSgpO24uZm9yRWFjaChmdW5jdGlvbih1KXthPWEudGhlbihmdW5jdGlvbigpe3JldHVybiBLcCh1KS5jYXRjaChmdW5jdGlvbigpe30pfSl9KX19ZnVuY3Rpb24gS3AoZSl7aWYoIWV8fCFyLnNlbGVjdGVkSWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciB0PXIuc2VsZWN0ZWRJZDtyZXR1cm4gZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIit0KyIvaW5wdXQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDplLHZpZXc6ci5jdXJyZW50Vmlld30pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5vaz9uLmpzb24oKTpuLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybntlcnJvcjoiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1In19KS50aGVuKGZ1bmN0aW9uKGkpe3ZhciBhPWxvKGkpO2lmKGEuaHR0cFN0YXR1cz1uLnN0YXR1cyxjbyhhKSlyZXR1cm4gY29uc29sZS5sb2coIlt3YW5kXSBzZW5kSW5wdXREaXJlY3Q6IHNlc3Npb24gdW5hdmFpbGFibGUsIGRyb3BwaW5nIix7c2Vzc2lvbklkOnQsZXJyb3JDb2RlOmEuZXJyb3JDb2RlfSksbnVsbDt0aHJvdyBhfSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuJiZuLmlkJiYoJChuKSxuLmlkPT09ci5zZWxlY3RlZElkJiYobi5tZXNzYWdlcyYmbi5tZXNzYWdlcy5sZW5ndGg+MCYmKHIuY3VycmVudE1lc3NhZ2VzPW4ubWVzc2FnZXMpLEplKCEwKSkpLG59KX1mdW5jdGlvbiBxYSgpe2lmKHIuc2VsZWN0ZWRJZCl7dmFyIGU9ci5zZWxlY3RlZElkO1dzKGxlKCJzdG9wLmNvbmZpcm0ubWVzc2FnZSIpLHt0aXRsZTpsZSgic3RvcC5jb25maXJtLnRpdGxlIiksZGFuZ2VyOiEwLG9rTGFiZWw6bGUoInN0b3AuY29uZmlybS5vayIpLGNhbmNlbExhYmVsOmxlKCJzdG9wLmNvbmZpcm0uY2FuY2VsIil9KS50aGVuKGZ1bmN0aW9uKHQpe3QmJnIuc2VsZWN0ZWRJZD09PWUmJmZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZSsiL3N0b3AiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGp0KX0pfX1mdW5jdGlvbiB5byhlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2Vzc2lvbi1pdGVtW2RhdGEtc2Vzc2lvbi1pZD0iJytlKyciXScpO3QmJnQuY2xhc3NMaXN0LmFkZCgiZGVsZXRpbmciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXRocm93IG5ldyBFcnJvcihuLmVycm9yKTtyZXR1cm4gci5zZWxlY3RlZElkPT09ZSYmKHIuc2VsZWN0ZWRJZD1udWxsLHdlKCkpLGp0KCl9KS5jYXRjaChmdW5jdGlvbigpe3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgiZGVsZXRpbmciKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7SGUobiwiXHU2NUUwXHU2Q0Q1XHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREXHUzMDAyIil9KX0sMjUwKX1mdW5jdGlvbiBibyhlLHQpe3QmJnQuY2xhc3NMaXN0LmFkZCgiZGVsZXRpbmciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZmV0Y2goIi9hcGkvY2xhdWRlLWhpc3RvcnkvIitlbmNvZGVVUklDb21wb25lbnQoZSkse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3IpdGhyb3cgbmV3IEVycm9yKG4uZXJyb3IpO3IuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKGkpe3JldHVybiBpLmNsYXVkZVNlc3Npb25JZCE9PWV9KSxkZWxldGUgci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHNbZV0sZmUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJkZWxldGluZyIpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtIZShuLCJcdTY1RTBcdTZDRDVcdTUyMjBcdTk2NjRcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiKX0pfSwyNTApfWZ1bmN0aW9uIGpnKGUsdCl7Ym8oZSx0KX1mdW5jdGlvbiBKcChlLHQsbil7ZSYmZmV0Y2goIi9hcGkvY2xhdWRlLWhpc3Rvcnk/Y3dkPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXRocm93IG5ldyBFcnJvcihpLmVycm9yKTtyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jd2QhPT1lfSksZmUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7RW8obiwhMSk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO0hlKGksIlx1NjVFMFx1NkNENVx1NkUwNVx1NzQwNlx1OEJFNVx1NzZFRVx1NUY1NVx1NzY4NFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1MzAwMiIpfSl9ZnVuY3Rpb24gRW8oZSx0KXtlLmZvckVhY2goZnVuY3Rpb24obil7bi5jbGFzc0xpc3QudG9nZ2xlKCJkZWxldGluZyIsdCl9KX1mdW5jdGlvbiBHcChlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNsYXVkZS1oaXN0b3J5LWl0ZW1bZGF0YS1jd2Q9Iicrd2luZG93LkNTUy5lc2NhcGUoU3RyaW5nKGUpKSsnIl0nKSl9dmFyIEZvPW51bGwsQXI9bnVsbDtmdW5jdGlvbiB4cigpe2lmKEFyKXtBci5jbGFzc0xpc3QucmVtb3ZlKCJzd2lwZWQiKTt2YXIgZT1Bci5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1pdGVtLWNvbnRlbnQiKTtlJiYoZS5zdHlsZS50cmFuc2Zvcm09IiIpLEFyPW51bGx9fWZ1bmN0aW9uIFlwKGUpe0ZvPW51bGwsQXI9bnVsbH1mdW5jdGlvbiBRcChlLHQsbil7ZT09PSJjbGF1ZGUiJiYoci5wcmVmZXJyZWRDb21tYW5kPWUsci5jaGF0TW9kZT1JdChlLHIuY2hhdE1vZGUpKTt2YXIgaT1yLmNoYXRNb2RlbHx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiI7cmV0dXJuIGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShwdCh7Y29tbWFuZDplLGN3ZDp0fHwiIixtb2RlOnIuY2hhdE1vZGV8fHIuY29uZmlnLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIsbW9kZWw6aXx8dm9pZCAwLHRoaW5raW5nRWZmb3J0OnIuY2hhdFRoaW5raW5nfHx2b2lkIDB9KSl9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuZXJyb3I/KG4mJkhlKG4sYS5lcnJvciksbnVsbCk6KHIuc2VsZWN0ZWRJZD1hLmlkLHdlKCksci5kcmFmdHNbYS5pZF09IiIsYSl9KX12YXIgT2E9ITE7ZnVuY3Rpb24gd28oZSx0KXtyZXR1cm4hZXx8T2E/UHJvbWlzZS5yZXNvbHZlKG51bGwpOihPYT0hMCxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkocHQoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0In0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8odD9IZSh0LG4uZXJyb3IpOmsobi5lcnJvciwiZXJyb3IiKSxudWxsKTooci5zZWxlY3RlZElkPW4uaWQsd2UoKSxyLmRyYWZ0c1tuLmlkXT0iIixuKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3ZhciBpPW4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERFx1MzAwMiI7cmV0dXJuIHQ/SGUodCxpKTprKGksImVycm9yIiksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXtPYT0hMX0pKX1mdW5jdGlvbiBXZyhlLHQpe3JldHVybiBlP2ZldGNoKCIvYXBpL2NsYXVkZS1zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkocHQoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0In0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8odD9IZSh0LG4uZXJyb3IpOmsobi5lcnJvciwiZXJyb3IiKSxudWxsKTooci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkuY2xhdWRlU2Vzc2lvbklkIT09ZX0pLHIuc2VsZWN0ZWRJZD1uLmlkLHdlKCksci5kcmFmdHNbbi5pZF09IiIsbil9KS5jYXRjaChmdW5jdGlvbihuKXt2YXIgaT1uJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYzMDkgQ2xhdWRlIFx1NEYxQVx1OEJERCBJRCBcdTYwNjJcdTU5MERcdTRGMUFcdThCRERcdTMwMDIiO3JldHVybiB0P0hlKHQsaSk6ayhpLCJlcnJvciIpLG51bGx9KTpQcm9taXNlLnJlc29sdmUobnVsbCl9ZnVuY3Rpb24gcG4oZSl7cmV0dXJuIWV8fCFlLmlkP1Byb21pc2UucmVzb2x2ZSgpOihyLnNlbGVjdGVkSWQ9ZS5pZCx3ZSgpLHIuY3VycmVudE1lc3NhZ2VzPVtdLGhyKCkseHQoKSxCcihlLmlkKSwkKGUpLGZlKCksTG4oZS5pZCksZ24oZS5pZCkudGhlbihmdW5jdGlvbigpe1J0KCEwKX0pKX1mdW5jdGlvbiBDbyhlKXtyZXR1cm4gd28oZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdD8odC5jbGF1ZGVTZXNzaW9uSWQmJih0LnByb3ZpZGVyPT09ImNvZGV4Ij9yLmNvZGV4SGlzdG9yeT1yLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG4uY2xhdWRlU2Vzc2lvbklkIT09dC5jbGF1ZGVTZXNzaW9uSWR9KTpyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5jbGF1ZGVTZXNzaW9uSWQhPT10LmNsYXVkZVNlc3Npb25JZH0pKSxwbih0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSk6bnVsbH0pfWZ1bmN0aW9uIHpnKGUsdCxuKXtyZXR1cm4gUXAoZSx0LG4pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGk/cG4oaSkudGhlbihmdW5jdGlvbigpe3JldHVybiBpfSk6bnVsbH0pfWZ1bmN0aW9uIFVnKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0Iik7aWYodCl7dC5wbGFjZWhvbGRlcj0iXHU2QjYzXHU1NzI4XHU2MDFEXHU4MDAzXHUyMDI2Iix0LmRpc2FibGVkPSEwO3ZhciBuPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIixpPXR0KCksYT1udCgpLHU9ci5jaGF0TW9kZWx8fHIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZWx8fCIiO2ZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShwdCh7Y29tbWFuZDphLGN3ZDppLG1vZGU6bixpbml0aWFsSW5wdXQ6ZSxtb2RlbDp1fHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5lcnJvcj8oayhzLmVycm9yLCJlcnJvciIpLHQucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsdC5kaXNhYmxlZD0hMSxudWxsKTpwbihzKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe2socyYmcy5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSx0LnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLHQuZGlzYWJsZWQ9ITF9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIix0LmRpc2FibGVkPSExfSl9fWZ1bmN0aW9uIFZnKGUsdCxuKXt2YXIgaT1yLmNoYXRNb2RlfHwibWFuYWdlZCIsYT10dCgpLHU9bnQoKSxzPXIuY2hhdE1vZGVsfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsfHwiIjtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkocHQoe2NvbW1hbmQ6dSxjd2Q6YSxtb2RlOmksaW5pdGlhbElucHV0OmV8fHZvaWQgMCxtb2RlbDpzfHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5lcnJvcj8oayhvLmVycm9yLCJlcnJvciIpLG51bGwpOih0JiYodC52YWx1ZT0iIiksbiYmKG4udmFsdWU9IiIpLHBuKG8pKX0pLmNhdGNoKGZ1bmN0aW9uKG8pe2sobyYmby5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uICRwKGUpe2UuZGlzYWJsZWQ9ITAsQ28oZS5kYXRhc2V0LnNlc3Npb25JZCkuZmluYWxseShmdW5jdGlvbigpe2UuZGlzYWJsZWQ9ITF9KX1mdW5jdGlvbiBYcChlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLG49ZS5kYXRhc2V0LmN3ZDt0JiYoZS5kaXNhYmxlZD0hMCxacCh0LG4pLnRoZW4oZnVuY3Rpb24oaSl7aSYmaS5pZCYmKHIuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksci5zZWxlY3RlZElkPWkuaWQsd2UoKSxyLmRyYWZ0c1tpLmlkXT0iIixwbihpKS50aGVuKGZ1bmN0aW9uKCl7VXQoKX0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlLmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIFpwKGUsdCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvZGV4LXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShwdCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixjd2Q6dH0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8oayhuLmVycm9yLCJlcnJvciIpLG51bGwpOm59KS5jYXRjaChmdW5jdGlvbihuKXtyZXR1cm4gayhuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYwNjJcdTU5MERcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLG51bGx9KX1mdW5jdGlvbiBldihlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkO3QmJmtuKCJcdTc4NkVcdThCQTRcdTk2OTBcdTg1Q0ZcdThGRDlcdTY3NjEgQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1OTY5MFx1ODVDRiBDb2RleCBcdTUzODZcdTUzRjIiLG9rTGFiZWw6Ilx1OTY5MFx1ODVDRiJ9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4pe3ZhciBpPWUuY2xvc2VzdCgiLmNsYXVkZS1oaXN0b3J5LWl0ZW0iKTtpJiYoaS5zdHlsZS5vcGFjaXR5PSIwLjUiKSxmZXRjaCgiL2FwaS9jb2RleC1oaXN0b3J5LyIrZW5jb2RlVVJJQ29tcG9uZW50KHQpLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXthJiZhLm9rPyhyLmNvZGV4SGlzdG9yeT1yLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuY2xhdWRlU2Vzc2lvbklkIT09dH0pLGZlKCkpOmkmJihpLnN0eWxlLm9wYWNpdHk9IjEiKX0pLmNhdGNoKGZ1bmN0aW9uKCl7aSYmKGkuc3R5bGUub3BhY2l0eT0iMSIpfSl9fSl9ZnVuY3Rpb24gdHYoZSl7dmFyIHQ9ZS5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZCxuPWUuZGF0YXNldC5jd2Q7dCYmKGUuZGlzYWJsZWQ9ITAseWkodCxuKS50aGVuKGZ1bmN0aW9uKGkpe2kmJmkuaWQmJihyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksci5zZWxlY3RlZElkPWkuaWQsd2UoKSxyLmRyYWZ0c1tpLmlkXT0iIixwbihpKS50aGVuKGZ1bmN0aW9uKCl7VXQoKX0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlLmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIHlpKGUsdCl7cmV0dXJuIGZldGNoKCIvYXBpL2NsYXVkZS1zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkocHQoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIsY3dkOnR9KSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uZXJyb3I/KGsobi5lcnJvciwiZXJyb3IiKSxudWxsKTpufSkuY2F0Y2goZnVuY3Rpb24obil7cmV0dXJuIGsobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MDYyXHU1OTBEXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxudWxsfSl9ZnVuY3Rpb24gU3IoKXtyZXR1cm4ib250b3VjaHN0YXJ0ImluIHdpbmRvd3x8bmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjB9ZnVuY3Rpb24gUnQoZSl7aWYoIXIudGVybWluYWxJbnRlcmFjdGl2ZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpOyF0fHwhci5zZWxlY3RlZElkfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dCYmKGUmJlNyKCl8fEhhKHQpKX19ZnVuY3Rpb24gS2coKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO2UmJihlLnNjcm9sbFRvcD0wKX1mdW5jdGlvbiBCbygpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpO2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0ta2V5Ym9hcmQtb2Zmc2V0Iil9ZnVuY3Rpb24gRG8oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKTtlJiZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWtleWJvYXJkLW9mZnNldCIpfWZ1bmN0aW9uIGJpKGUpe2lmKGUpe3ZhciB0PWUuc2VsZWN0aW9uU3RhcnQsbj1lLnNlbGVjdGlvbkVuZDtFaShlKSx0eXBlb2YgdD09Im51bWJlciImJnR5cGVvZiBuPT0ibnVtYmVyIiYmZS5zZXRTZWxlY3Rpb25SYW5nZSh0LG4pfX1mdW5jdGlvbiBrbyhlKXshZXx8ZS5kYXRhc2V0LnRvdWNoU2Nyb2xsQm91bmQ9PT0idHJ1ZSJ8fChlLmRhdGFzZXQudG91Y2hTY3JvbGxCb3VuZD0idHJ1ZSIsZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbigpe2Uuc2Nyb2xsSGVpZ2h0PD1lLmNsaWVudEhlaWdodCsxfHwoZS5zY3JvbGxUb3A8PTA/ZS5zY3JvbGxUb3A9MTplLnNjcm9sbFRvcCtlLmNsaWVudEhlaWdodD49ZS5zY3JvbGxIZWlnaHQmJihlLnNjcm9sbFRvcD1NYXRoLm1heCgxLGUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LTEpKSl9LHtwYXNzaXZlOiEwfSkpfWZ1bmN0aW9uIEFvKGUpe2UmJihfdChlKSxiaShlKSl9ZnVuY3Rpb24gbnYoZSl7dmFyIHQ9ZSYmZS50YXJnZXQ/ZS50YXJnZXQ6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO3QmJihCbygpLEFvKHQpKX1mdW5jdGlvbiBydihlKXt2YXIgdD1lJiZlLnRhcmdldD9lLnRhcmdldDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7RG8oKSxrcygyMjAwLHQpO3ZhciBuPVs4MCwyMDAsMzgwLDYyMCw5MDBdO24uZm9yRWFjaChmdW5jdGlvbihpLGEpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtXbighMSksYT09PTEmJlNyKCkmJihldCgia2V5Ym9hcmQtYmx1ciIse2ZvcmNlUmVwbGF5OiEwfSksRXQoImtleWJvYXJkIikpfSxpKX0pfWZ1bmN0aW9uIGl2KGUpe2UmJihlLnNldFNlbGVjdGlvblJhbmdlKGUudmFsdWUubGVuZ3RoLGUudmFsdWUubGVuZ3RoKSxiaShlKSl9ZnVuY3Rpb24gSGEoZSl7ZSYmKGUuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSxpdihlKSl9ZnVuY3Rpb24gYXYoZSl7a28oZSksQW8oZSl9ZnVuY3Rpb24gdXYoZSl7SGEoZSl9ZnVuY3Rpb24gSmcoZSl7Qm8oKSxiaShlKX1mdW5jdGlvbiBzdigpe0RvKCl9ZnVuY3Rpb24gb3YoZSl7YmkoZSl9ZnVuY3Rpb24gR2coZSl7dXYoZSl9ZnVuY3Rpb24gbHYoZSl7YXYoZSl9ZnVuY3Rpb24gWWcoKXtzdigpfWZ1bmN0aW9uIFFnKGUpe292KGUpfWZ1bmN0aW9uIGN2KGUsdCl7aWYoIWV8fCF0fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dClyZXR1cm4hMTt2YXIgbj13aW5kb3cuaW5uZXJIZWlnaHQtZS5oZWlnaHQtZS5vZmZzZXRUb3A7aWYobjw9NTApcmV0dXJuITE7dmFyIGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gaS5ib3R0b20+ZS5oZWlnaHQtMTJ9ZnVuY3Rpb24gRWkoZSl7aWYoZSl7dmFyIHQ9ZS5zY3JvbGxIZWlnaHQ+ZS5jbGllbnRIZWlnaHQrMTtpZighdCl7ZS5zY3JvbGxUb3A9MDtyZXR1cm59ZS5zY3JvbGxUb3A9ZS5zY3JvbGxIZWlnaHR9fWZ1bmN0aW9uIHhvKCl7aWYoci50ZXJtaW5hbEludGVyYWN0aXZlKXtTbygpO3JldHVybn1pZighU3IoKSl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpOyFlfHwhci5zZWxlY3RlZElkfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ZXx8SGEoZSl9fWZ1bmN0aW9uIFNvKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2UmJihlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksZS5mb2N1cygpLHIudGVybWluYWwmJnIudGVybWluYWwuZm9jdXMmJnIudGVybWluYWwuZm9jdXMoKSl9ZnVuY3Rpb24gZHYoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7aWYoInZpcnR1YWxLZXlib2FyZCJpbiBuYXZpZ2F0b3Ipe3ZhciBuPW5hdmlnYXRvci52aXJ0dWFsS2V5Ym9hcmQ7bi5hZGRFdmVudExpc3RlbmVyKCJnZW9tZXRyeWNoYW5nZSIsZnVuY3Rpb24oKXtlJiZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIpfSl9dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7eG8oKX0pLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe3ZhciB1PWEudGFyZ2V0O3UudGFnTmFtZSE9PSJBIiYmdS50YWdOYW1lIT09IkJVVFRPTiImJiF1LmNsb3Nlc3QoImJ1dHRvbiIpJiYhdS5jbG9zZXN0KCJbZGF0YS10b29sLXRvZ2dsZV0iKSYmeG8oKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXtpZihTcigpKXt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYoISghdXx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXUpKXt2YXIgcz1hLnRhcmdldDshc3x8dHlwZW9mIHMuY2xvc2VzdCE9ImZ1bmN0aW9uInx8cy5jbG9zZXN0KCIuaW5wdXQtcGFuZWwiKXx8cy5jbG9zZXN0KCIjbWluaS1rZXlib2FyZCIpfHxzLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkLWZhYiIpfHxzLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkLXRvZ2dsZSIpfHxzLmNsb3Nlc3QoIiN0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUiKXx8cy5jbG9zZXN0KCIud2FuZC1qb3lzdGljay1yb290Iil8fHUuYmx1cigpfX19LCEwKX1mdW5jdGlvbiBfYSgpe3RyeXt3aW5kb3cuc2Nyb2xsVG8oMCwwKX1jYXRjaHt9ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCYmKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wPTApLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A9MCksZG9jdW1lbnQuYm9keSYmKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wPTApfWZ1bmN0aW9uIEplKGUpe3IucmVuZGVyUGVuZGluZyYmIWV8fChyLnJlbmRlclBlbmRpbmc9ITAsZT8oRmkoITApLHIucmVuZGVyUGVuZGluZz0hMSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7RmkoITEpLHIucmVuZGVyUGVuZGluZz0hMX0pKX1yLmNoYXRSZW5kZXJUaW1lcj1udWxsO2Z1bmN0aW9uIE5hKGUpe2lmKCEoci5jaGF0UmVuZGVyVGltZXImJiFlKSl7aWYoci5jaGF0UmVuZGVyVGltZXImJmNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksZSl7ci5jaGF0UmVuZGVyVGltZXI9bnVsbCxKZSgpO3JldHVybn10cnl7d2luZG93Ll9fc2NoZWR1bGVDaGF0UmVuZGVyPWZ1bmN0aW9uKCl7TmEoITApfX1jYXRjaHt9dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LnN0YXR1cz09PSJydW5uaW5nIiYmdC5zZXNzaW9uS2luZCE9PSJzdHJ1Y3R1cmVkIixpPW4/X3M6TnM7ci5jaGF0UmVuZGVyVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2hhdFJlbmRlclRpbWVyPW51bGw7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHUpe3JldHVybiB1LmlkPT09ci5zZWxlY3RlZElkfSk7YSYmKHIuY3VycmVudE1lc3NhZ2VzPXplKGEscnQoYSxhLm91dHB1dCwhMCkpKSxKZSgpfSxpKX19ZnVuY3Rpb24gZnYoZSx0KXtpZighZXx8IXR8fHQubGVuZ3RoPT09MClyZXR1cm5bXTtmdW5jdGlvbiBuKHcpe3JldHVybiB3LnJlcGxhY2UoL1x4MUIoPzpbQC1aXFwtX118XFtbMC0/XSpbIC0vXSpbQC1+XSkvZywiIil9Zm9yKHZhciBpPW4oZSksYT1bXSx1PVtdLHM9MDtzPHQubGVuZ3RoO3MrKylpZih0W3NdLnJvbGU9PT0idXNlciIpe3ZhciBvPSIiLGw9dFtzXS5jb250ZW50O2lmKHR5cGVvZiBsPT0ic3RyaW5nIilvPWw7ZWxzZSBpZihBcnJheS5pc0FycmF5KGwpKXtmb3IodmFyIGM9MDtjPGwubGVuZ3RoO2MrKylpZihsW2NdLnR5cGU9PT0idGV4dCIpe289bFtjXS50ZXh0O2JyZWFrfX1vJiZ1LnB1c2goe3RleHQ6byxpbmRleDpzfSl9Zm9yKHZhciBmPTAscz0wO3M8dS5sZW5ndGg7cysrKXt2YXIgZD11W3NdLHY9aS5pbmRleE9mKCJcdTI3NkYgIitkLnRleHQsZik7aWYodj09PS0xJiYodj1pLmluZGV4T2YoYApcdTI3NkYgYCtkLnRleHQsZiksdiE9PS0xJiYodis9MSkpLHY+Zil7Zm9yKHZhciBoPWkuc3Vic3RyaW5nKGYsdiksZz1oLnNwbGl0KGAKYCksbT1bXSxjPTA7YzxnLmxlbmd0aDtjKyspe3ZhciB5PWdbY10udHJpbSgpOyF5fHx5LnN0YXJ0c1dpdGgoIlx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCIpfHx5PT09Ilx1Mjc2RiJ8fHk9PT0iPyJ8fHk9PT0iInx8eS5pbmNsdWRlcygiQ2xhdWRlIENvZGUgdiIpfHx5LmluY2x1ZGVzKCJPcHVzIikmJnkuaW5jbHVkZXMoIndpdGgiKXx8eS5pbmNsdWRlcygiU29ubmV0IikmJnkuaW5jbHVkZXMoIndpdGgiKXx8eS5pbmNsdWRlcygiQVBJIFVzYWdlIil8fHkuaW5jbHVkZXMoIkJpbGxpbmciKXx8eS5pbmNsdWRlcygiZm9yIHNob3J0Y3V0cyIpfHx5LmluY2x1ZGVzKCIvZWZmb3J0Iil8fHkubWF0Y2goL15b4pa44paQ4pad4paY4paX4paW4paI4paM4paN4paO4paP4paU4paB4paC4paD4paE4paF4paG4paH4paI4paIXS8pfHx5Lm1hdGNoKC9eW+KWuOKWkOKWneKWmOKWl+KWluKWiOKWjOKWjeKWjuKWj+KWlOKWgeKWguKWg+KWhOKWheKWhuKWh+KWiOKWiF17Myx9Lyl8fHkubGVuZ3RoPjMmJm0ucHVzaCh5KX1tLmxlbmd0aD4wJiZhLnB1c2goe2JlZm9yZU1lc3NhZ2U6ZC5pbmRleCxjb250ZW50Om0uam9pbihgCmApfSl9Zj12K2QudGV4dC5sZW5ndGgrMn1yZXR1cm4gYX1mdW5jdGlvbiBSYShlKXtpZighZSlyZXR1cm4gbnVsbDt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7cmV0dXJuIHR8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJjaGF0LW1lc3NhZ2VzIixlLmFwcGVuZENoaWxkKHQpLHQpfWZ1bmN0aW9uIElvKGUsdCl7dmFyIG49UmEoZSk7cmV0dXJuIG4/KG4uaW5uZXJIVE1MPXQsdXIoKSxSZSgpLG4pOm51bGx9ZnVuY3Rpb24gRmkoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0Iik7aWYoIXQpcmV0dXJuO3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihXKXtyZXR1cm4gVy5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCFuKXtyLmxhc3RSZW5kZXJlZEVtcHR5IT09Im5vbmUiJiYoSW8odCwnPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPjxzdHJvbmc+XHU2NzJBXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREPC9zdHJvbmc+PGJyPlx1NzBCOVx1NTFGQlx1NEUwQVx1NjVCOVx1MzAwQ1x1NjVCMFx1NUJGOVx1OEJERFx1MzAwRFx1NUYwMFx1NTlDQlx1NEY2MFx1NzY4NFx1N0IyQ1x1NEUwMFx1NkIyMVx1NUJGOVx1OEJERFx1MzAwMjwvZGl2PicpLHIubGFzdFJlbmRlcmVkRW1wdHk9Im5vbmUiLHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9MCk7cmV0dXJufXZhciBpPXIuY3VycmVudE1lc3NhZ2VzLGE9TnYoaSk7aWYoemE9UnYoaSksaS5sZW5ndGg9PT0wKXtpZihyLmxhc3RSZW5kZXJlZEVtcHR5IT09ImVtcHR5Iil7dmFyIHU9IiI7aWUobikmJih1PSc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZS10cmlvLXdyYXAiPjxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlLXRyaW8taGludCI+XHU5RUQ4XHU4QkE0XHU0RjFBXHU2MzA5XHU0RUU1XHU0RTBCXHU4QkJFXHU3RjZFXHU1M0QxXHU5MDAxXHVGRjBDXHU1M0VGXHU3MEI5XHU1MUZCXHU4QzAzXHU2NTc0XHVGRjFBPC9kaXY+Jyt1bChuLHtraW5kOiJkcm9wZG93biJ9KSsiPC9kaXY+IiksSW8odCwnPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPjxzdHJvbmc+XHU1QkY5XHU4QkREXHU1REYyXHU1RjAwXHU1OUNCPC9zdHJvbmc+PGJyPlx1NTcyOFx1NEUwQlx1NjVCOVx1OEY5M1x1NTE2NVx1Njg0Nlx1NTNEMVx1OTAwMVx1NkQ4OFx1NjA2Rlx1RkYwQ0NsYXVkZSBcdTRGMUFcdTgxRUFcdTUyQThcdTU2REVcdTU5MERcdTMwMDI8L2Rpdj4nK3UpLHIubGFzdFJlbmRlcmVkRW1wdHk9ImVtcHR5IixyLmxhc3RSZW5kZXJlZE1zZ0NvdW50PTB9aHUobnVsbCxuKSxXYShbXSk7cmV0dXJufXZhciBzPWkubGVuZ3RoO3M+ci5jaGF0UmVuZGVyZWRDb3VudCYmKHIuY2hhdFJlbmRlcmVkQ291bnQ9cyk7dmFyIG89TWF0aC5tYXgoMCxzLXIuY2hhdFJlbmRlcmVkQ291bnQpLGw9bz4wP2kuc2xpY2Uobyk6aSxjPXR5cGVvZiBuLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiZuLm1lc3NhZ2VPZmZzZXQ+MCxmPW8+MHx8YyxkPWwubGVuZ3RoLHY9bi5vdXRwdXQ/bi5vdXRwdXQubGVuZ3RoOjA7aWYobi5tZXNzYWdlcyYmbi5tZXNzYWdlcy5sZW5ndGg+MCl7Zm9yKHZhciBoPTAsZz0wLG09MDttPG4ubWVzc2FnZXMubGVuZ3RoO20rKyl7dmFyIHk9bi5tZXNzYWdlc1ttXS5jb250ZW50O2lmKHkpaWYoQXJyYXkuaXNBcnJheSh5KSl7aCs9eS5sZW5ndGg7Zm9yKHZhciB3PTA7dzx5Lmxlbmd0aDt3Kyspe3ZhciBFPXlbd107RS50ZXh0JiYoZys9RS50ZXh0Lmxlbmd0aCksRS50aGlua2luZyYmKGcrPUUudGhpbmtpbmcubGVuZ3RoKSxFLmNvbnRlbnQmJihnKz1FLmNvbnRlbnQubGVuZ3RoKSxFLmlkJiYoZys9RS5pZC5sZW5ndGgpLEUudG9vbF91c2VfaWQmJihnKz1FLnRvb2xfdXNlX2lkLmxlbmd0aCksRS5kZXNjcmlwdGlvbiYmKGcrPUUuZGVzY3JpcHRpb24ubGVuZ3RoKSxFLmlucHV0JiYoZys9SlNPTi5zdHJpbmdpZnkoRS5pbnB1dCkubGVuZ3RoKX19ZWxzZSBoKz0xLGc9U3RyaW5nKHkpLmxlbmd0aH12PWQqMWU1K2gqMWUzK2d9dmFyIEI9ZXx8ZCE9PXIubGFzdFJlbmRlcmVkTXNnQ291bnQ7aWYoIUImJmQ9PT1yLmxhc3RSZW5kZXJlZE1zZ0NvdW50JiZ2PT09ci5sYXN0UmVuZGVyZWRIYXNoKXt2YXIgRj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7RiYmaHUoRixuKSxXYShpKTtyZXR1cm59dmFyIHg9ci5sYXN0UmVuZGVyZWRIYXNoLFM9ci5sYXN0UmVuZGVyZWRNc2dDb3VudDtpZihyLmxhc3RSZW5kZXJlZE1zZ0NvdW50PWQsci5sYXN0UmVuZGVyZWRIYXNoPXYsRj1SYSh0KSwhRilyZXR1cm47dmFyIF89SmkoRiksSz0hci5jaGF0SW5pdGlhbFJlbmRlckRvbmUsWT1yLmNoYXRQaW5UdXJuVG9Ub3AsST1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKS5sZW5ndGgsRD1CfHxJPT09MHx8ZCE9PUk7ZnVuY3Rpb24gTCgpe2Zvcih2YXIgVz1mdihuLm91dHB1dCxsKSxYPSIiLHBlPWwuc2xpY2UoKS5yZXZlcnNlKCkseWU9bC5sZW5ndGgsQ2U9MDtDZTxwZS5sZW5ndGg7Q2UrKyl7Zm9yKHZhciBtdD1wZVtDZV0sb3Q9eWUtMS1DZSxndD1vdCtvLFZlPW51bGwsaHQ9MDtodDxXLmxlbmd0aDtodCsrKWlmKFdbaHRdLmJlZm9yZU1lc3NhZ2U9PT1vdCl7VmU9V1todF07YnJlYWt9VmUmJihYKz0nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlIHN5c3RlbS1pbmZvIj48ZGl2IGNsYXNzPSJzeXN0ZW0taW5mby1jYXJkIj48ZGl2IGNsYXNzPSJzeXN0ZW0taW5mby1oZWFkZXIiPlx1MjEzOVx1RkUwRiBcdTdDRkJcdTdFREZcdTRGRTFcdTYwNkY8L2Rpdj48ZGl2IGNsYXNzPSJzeXN0ZW0taW5mby1jb250ZW50Ij4nK3AoVmUuY29udGVudCkrIjwvZGl2PjwvZGl2PjwvZGl2PiIpLFgrPVZhKG10LHpbZ3RdfHxudWxsLGd0LGEpfWlmKGYpe3ZhciBsdD1vPjA/Ilx1NTJBMFx1OEY3RFx1NjZGNFx1NjVFOVx1NzY4NCAiK01hdGgubWluKHIuY2hhdFBhZ2VTaXplLG8pKyIgXHU2NzYxXHU2RDg4XHU2MDZGIjoiXHU1MkEwXHU4RjdEXHU2NkY0XHU2NUU5XHU3Njg0XHU2RDg4XHU2MDZGIjtYKz0nPGRpdiBjbGFzcz0iY2hhdC1sb2FkLW1vcmUiIGlkPSJjaGF0LWxvYWQtbW9yZS1zZW50aW5lbCI+PGJ1dHRvbiBjbGFzcz0iY2hhdC1sb2FkLW1vcmUtYnRuIiB0eXBlPSJidXR0b24iPicrbHQrIjwvYnV0dG9uPjwvZGl2PiJ9dmFyIEdlPS0xLGtlPTA7aWYoST4wJiYhXylmb3IodmFyIG1lPUYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLGJlPUYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpLEM9MDtDPGJlLmxlbmd0aDtDKyspe3ZhciBpdD1iZVtDXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtpZihpdC5ib3R0b20+PW1lKXt2YXIgeXQ9YmVbQ10uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO3l0IT1udWxsJiYoR2U9cGFyc2VJbnQoeXQsMTApLGtlPWl0LnRvcC1tZSk7YnJlYWt9fWlmKEYuaW5uZXJIVE1MPVgsKGZ1bmN0aW9uKCl7Zm9yKHZhciBhdD1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxUdD1hdC5sZW5ndGgsWWU9MDtZZTxUdDtZZSsrKWF0W1llXS5zZXRBdHRyaWJ1dGUoImRhdGEtbXNnLWluZGV4IixTdHJpbmcobytUdC0xLVllKSl9KSgpLFkpTXQoe3JlbW92ZURpdmlkZXI6ITB9KSxyLmNoYXRJbml0aWFsUmVuZGVyRG9uZT0hMDtlbHNlIGlmKFM9PT0wJiYhci5jaGF0SW5pdGlhbFJlbmRlckRvbmUpRi5zY3JvbGxUb3A9MCxyLmNoYXRTdGlja1RvQm90dG9tPSEwLE10KHtyZW1vdmVEaXZpZGVyOiEwfSksci5jaGF0SW5pdGlhbFJlbmRlckRvbmU9ITA7ZWxzZSBpZihTPT09MCYmci5jaGF0U3RpY2tUb0JvdHRvbSlGLnNjcm9sbFRvcD0wO2Vsc2UgaWYoXylGLnNjcm9sbFRvcD0wO2Vsc2UgaWYoR2U+PTApe3ZhciBDdD1GLnF1ZXJ5U2VsZWN0b3IoJy5jaGF0LW1lc3NhZ2VbZGF0YS1tc2ctaW5kZXg9IicrR2UrJyJdJyk7aWYoQ3Qpe3ZhciBCdD1GLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCxLdD1DdC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxKdD1LdC50b3AtQnQta2U7TWF0aC5hYnMoSnQpPi41JiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsRi5zY3JvbGxUb3ArPUp0LHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpfX1UbyhGKSx1cigpLFhpKEYpO3ZhciBHdD1GLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKTtpZihHdCl7dmFyIEVlPUd0LnF1ZXJ5U2VsZWN0b3JBbGwoIi50b29sLXVzZS1jYXJkLCAuaW5saW5lLWRpZmZbZGF0YS1leHBhbmQta2V5XSIpO2lmKEVlLmxlbmd0aD4wKXt2YXIgX2U9RWVbMF0sQWU9UG4oX2UpO1plKEFlKT09PW51bGwmJl9lLmNsYXNzTGlzdC5yZW1vdmUoImNvbGxhcHNlZCIpO2Zvcih2YXIgTmU9MTtOZTxFZS5sZW5ndGg7TmUrKyl7dmFyIGJ0PVBuKEVlW05lXSk7aWYoWmUoYnQpPT09bnVsbCl7aWYoRWVbTmVdLmNsYXNzTGlzdC5jb250YWlucygiYXNrLXVzZXIiKSYmIUVlW05lXS5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyLWFuc3dlcmVkIikpY29udGludWU7RWVbTmVdLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpfX19fXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe0dpKEYpLFJlKCksbmMoKX0pfWZ1bmN0aW9uIFAoVyxYKXt2YXIgcGU9Vy5xdWVyeVNlbGVjdG9yQWxsKCIudG9vbC11c2UtY2FyZCwgLmlubGluZS1kaWZmW2RhdGEtZXhwYW5kLWtleV0iKTtwZS5mb3JFYWNoKGZ1bmN0aW9uKHllKXt2YXIgQ2U9UG4oeWUpO2lmKFplKENlKT09PW51bGwmJiEoeWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJhc2stdXNlciIpJiYheWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJhc2stdXNlci1hbnN3ZXJlZCIpKSl7aWYoWCl7Zm9yKHZhciBtdD0wO210PFgubGVuZ3RoO210KyspaWYoWFttdF0uY29udGFpbnMoeWUpKXJldHVybn15ZS5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKX19KX12YXIgej17fTtpZigoZnVuY3Rpb24oKXtmb3IodmFyIFc9e2lucHV0VG9rZW5zOjAsb3V0cHV0VG9rZW5zOjAsY2FjaGVSZWFkSW5wdXRUb2tlbnM6MCx0b3RhbENvc3RVc2Q6MH0sWD0tMSxwZT0wO3BlPGkubGVuZ3RoO3BlKyspe3ZhciB5ZT1pW3BlXTtpZih5ZS5yb2xlPT09InVzZXIiKVg+PTAmJihXLmlucHV0VG9rZW5zPjB8fFcub3V0cHV0VG9rZW5zPjB8fFcudG90YWxDb3N0VXNkPjApJiYoeltYXT17aW5wdXRUb2tlbnM6Vy5pbnB1dFRva2VucyxvdXRwdXRUb2tlbnM6Vy5vdXRwdXRUb2tlbnMsY2FjaGVSZWFkSW5wdXRUb2tlbnM6Vy5jYWNoZVJlYWRJbnB1dFRva2Vucyx0b3RhbENvc3RVc2Q6Vy50b3RhbENvc3RVc2R9KSxXPXtpbnB1dFRva2VuczowLG91dHB1dFRva2VuczowLGNhY2hlUmVhZElucHV0VG9rZW5zOjAsdG90YWxDb3N0VXNkOjB9LFg9LTE7ZWxzZSBpZih5ZS5yb2xlPT09ImFzc2lzdGFudCImJnllLnVzYWdlKXt2YXIgQ2U9eWUudXNhZ2U7Vy5pbnB1dFRva2Vucys9Q2UuaW5wdXRUb2tlbnN8fDAsVy5vdXRwdXRUb2tlbnMrPUNlLm91dHB1dFRva2Vuc3x8MCxXLmNhY2hlUmVhZElucHV0VG9rZW5zKz1DZS5jYWNoZVJlYWRJbnB1dFRva2Vuc3x8MCxXLnRvdGFsQ29zdFVzZCs9Q2UudG90YWxDb3N0VXNkfHwwLFg9cGV9ZWxzZSB5ZS5yb2xlPT09ImFzc2lzdGFudCImJihYPXBlKX1YPj0wJiYoVy5pbnB1dFRva2Vucz4wfHxXLm91dHB1dFRva2Vucz4wfHxXLnRvdGFsQ29zdFVzZD4wKSYmKHpbWF09e2lucHV0VG9rZW5zOlcuaW5wdXRUb2tlbnMsb3V0cHV0VG9rZW5zOlcub3V0cHV0VG9rZW5zLGNhY2hlUmVhZElucHV0VG9rZW5zOlcuY2FjaGVSZWFkSW5wdXRUb2tlbnMsdG90YWxDb3N0VXNkOlcudG90YWxDb3N0VXNkfSl9KSgpLEQpTCgpO2Vsc2UgaWYoZD5JKXt2YXIgVT1sLnNsaWNlKEkpO1UucmV2ZXJzZSgpO2Zvcih2YXIgZWU9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLHRlPVtdLGFlPVtdLHVlPW8rSSxUPTA7VDxVLmxlbmd0aDtUKyspe3ZhciBNPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLE49bytJKyhVLmxlbmd0aC0xLVQpO00uaW5uZXJIVE1MPVZhKFVbVF0seltOXXx8bnVsbCxOLGEpO3ZhciBKPU0uZmlyc3RFbGVtZW50Q2hpbGQ7SiYmKEouY2xhc3NMaXN0LmFkZCgiYW5pbWF0ZS1pbiIpLEouc2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIsU3RyaW5nKE4pKSx0ZS5wdXNoKEopLGFlLnB1c2goTiksZWUuYXBwZW5kQ2hpbGQoSikpfUYuaW5zZXJ0QmVmb3JlKGVlLEYuZmlyc3RDaGlsZCksdXIoKSxUbyhGKSxYaShGKSxQKEYsdGUpLFk/KE10KHtyZW1vdmVEaXZpZGVyOiEwfSksUmUoKSk6Xz9yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtGLmlzQ29ubmVjdGVkJiZNYXRoLmFicyhGLnNjcm9sbFRvcCk+MSYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLEYuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksTXQoe3JlbW92ZURpdmlkZXI6ITB9KSxSZSgpfSk6KHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg8MCYmKHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg9dWUpLHIuY2hhdFVucmVhZENvdW50Kz10ZS5sZW5ndGgsR2koRiksUmUoKSl9ZWxzZSBpZihkPT09SSYmdiE9PXgpe2Zvcih2YXIgRz1BcnJheS5mcm9tKEYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpKSxyZT1sLnNsaWNlKCkucmV2ZXJzZSgpLHNlPSExLG9lPU1hdGgubWluKDQscmUubGVuZ3RoLEcubGVuZ3RoKSxuZT0wO25lPG9lO25lKyspe3ZhciBxZT1HW25lXSxEZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxoZT1vK3JlLmxlbmd0aC0xLW5lO0RlLmlubmVySFRNTD1WYShyZVtuZV0seltoZV18fG51bGwsaGUsYSk7dmFyIHE9RGUuZmlyc3RFbGVtZW50Q2hpbGQ7aWYocSl7aWYocWUuaW5uZXJIVE1MIT09cS5pbm5lckhUTUx8fHFlLmNsYXNzTmFtZSE9PXEuY2xhc3NOYW1lKUYucmVwbGFjZUNoaWxkKHEscWUpLG12KHEpLHNlPSEwO2Vsc2UgaWYobmU+MClicmVha319aWYoIXNlJiZyZS5sZW5ndGg+b2UmJkwoKSxzZSl7dXIoKSxYaShGKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXshWSYmXyYmRi5pc0Nvbm5lY3RlZCYmTWF0aC5hYnMoRi5zY3JvbGxUb3ApPjEmJihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMCxGLnNjcm9sbFRvcD0wLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpLEdpKEYpLFJlKCl9KTt2YXIgVWU9Ri5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlIiksdnQ9Ri5xdWVyeVNlbGVjdG9yQWxsKCIudG9vbC11c2UtY2FyZCwgLmlubGluZS1kaWZmW2RhdGEtZXhwYW5kLWtleV0iKSx3dD1udWxsO3Z0LmZvckVhY2goZnVuY3Rpb24oVyl7dmFyIFg9UG4oVyk7WmUoWCk9PT1udWxsJiYoVy5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyIikmJiFXLmNsYXNzTGlzdC5jb250YWlucygiYXNrLXVzZXItYW5zd2VyZWQiKXx8KFVlJiZVZS5jb250YWlucyhXKT93dD9XLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpOnd0PVc6Vy5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKSkpfSl9fWVsc2UgZDxJJiZMKCk7bWYoRiksX3YoRiksTHYodCxGLGksSyksci5jaGF0UGluVHVyblRvVG9wJiZyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtCdShGKXx8Vm8oRil9KSxodShGLG4pLFdhKGkpfXZhciBqYT0hMTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYoISghdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpKXt2YXIgbj10LmNsb3Nlc3QoIiN0b2RvLXByb2dyZXNzLXRvZ2dsZSIpO2lmKG4pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLGphPSFqYTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2kmJmEmJihqYT8oaS5jbGFzc0xpc3QuYWRkKCJleHBhbmRlZCIpLGEuY2xhc3NMaXN0LmFkZCgiZXhwYW5kZWQiKSk6KGkuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kZWQiKSxhLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZGVkIikpKSx3aSgpfX19KTtmdW5jdGlvbiB3aSgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1tZXNzYWdlcyIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2lmKCEoIWV8fCF0KSl7dmFyIG49ZSxpPSF0LmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIiksYT10LmNsYXNzTGlzdC5jb250YWlucygiZXhwYW5kZWQiKSx1PXQub2Zmc2V0SGVpZ2h0O2kmJmEmJnU+MD9uLnN0eWxlLnBhZGRpbmdCb3R0b209dSs4KyJweCI6bi5zdHlsZS5wYWRkaW5nQm90dG9tPSIifX1mdW5jdGlvbiBwdihlKXtpZih0eXBlb2YgZT09InN0cmluZyIpcmV0dXJuIGU7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTt0eXBlb2YgaT09InN0cmluZyI/dC5wdXNoKGkpOmkmJnR5cGVvZiBpLnRleHQ9PSJzdHJpbmciJiZ0LnB1c2goaS50ZXh0KX1yZXR1cm4gdC5qb2luKCIiKX1yZXR1cm4iIn1mdW5jdGlvbiB2dihlLHQpe2Zvcih2YXIgbj17fSxpPXQ7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYoISghYXx8IUFycmF5LmlzQXJyYXkoYS5jb250ZW50KSkpZm9yKHZhciB1PTA7dTxhLmNvbnRlbnQubGVuZ3RoO3UrKyl7dmFyIHM9YS5jb250ZW50W3VdO3MmJnMudHlwZT09PSJ0b29sX3Jlc3VsdCImJnMudG9vbF91c2VfaWQmJihuW3MudG9vbF91c2VfaWRdPXB2KHMuY29udGVudCkpfX1mb3IodmFyIG89e30sbD0wLGM9MCxmPSExLGQ9dDtkPGUubGVuZ3RoO2QrKyl7dmFyIHY9ZVtkXTtpZighKCF2fHwhQXJyYXkuaXNBcnJheSh2LmNvbnRlbnQpKSlmb3IodmFyIGg9MDtoPHYuY29udGVudC5sZW5ndGg7aCsrKXt2YXIgZz12LmNvbnRlbnRbaF07aWYoISghZ3x8Zy50eXBlIT09InRvb2xfdXNlIikpe3ZhciBtPWcuaW5wdXR8fHt9O2lmKGcubmFtZT09PSJUYXNrQ3JlYXRlIil7Zj0hMCxjKys7dmFyIHk9bltnLmlkXXx8IiIsdz15Lm1hdGNoKC8jKFxkKykvKSxFPXc/d1sxXTpTdHJpbmcoYyk7b1tFXT17aWQ6RSxjb250ZW50Om0uc3ViamVjdHx8IiIsYWN0aXZlRm9ybTptLmFjdGl2ZUZvcm18fCIiLHN0YXR1czoicGVuZGluZyIsb3JkZXI6bCsrfX1lbHNlIGlmKGcubmFtZT09PSJUYXNrVXBkYXRlIil7Zj0hMDt2YXIgQj1TdHJpbmcobS50YXNrSWQpLEY9b1tCXTtGfHwoRj17aWQ6Qixjb250ZW50OiIiLGFjdGl2ZUZvcm06IiIsc3RhdHVzOiJwZW5kaW5nIixvcmRlcjpsKyt9LG9bQl09RiksbS5zdGF0dXMmJihGLnN0YXR1cz1tLnN0YXR1cyksbS5zdWJqZWN0JiYoRi5jb250ZW50PW0uc3ViamVjdCksbS5hY3RpdmVGb3JtJiYoRi5hY3RpdmVGb3JtPW0uYWN0aXZlRm9ybSl9fX19aWYoIWYpcmV0dXJuIG51bGw7dmFyIHg9W107Zm9yKHZhciBTIGluIG8pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sUykmJm9bU10uc3RhdHVzIT09ImRlbGV0ZWQiJiZ4LnB1c2gob1tTXSk7cmV0dXJuIHguc29ydChmdW5jdGlvbihfLEspe3JldHVybiBfLm9yZGVyLUsub3JkZXJ9KSx4Lmxlbmd0aD94Om51bGx9ZnVuY3Rpb24gV2EoZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aC0xO24+PTA7bi0tKWlmKGVbbl0mJmVbbl0ucm9sZT09PSJ1c2VyIil7dD1uKzE7YnJlYWt9Zm9yKHZhciBpPW51bGwsYT1lLmxlbmd0aC0xO2E+PXQ7YS0tKXt2YXIgdT1lW2FdO2lmKCEoIXUuY29udGVudHx8IUFycmF5LmlzQXJyYXkodS5jb250ZW50KSkpe2Zvcih2YXIgcz11LmNvbnRlbnQubGVuZ3RoLTE7cz49MDtzLS0pe3ZhciBvPXUuY29udGVudFtzXTtpZihvLnR5cGU9PT0idG9vbF91c2UiJiZvLm5hbWU9PT0iVG9kb1dyaXRlIiYmby5pbnB1dCYmby5pbnB1dC50b2Rvcyl7aT1vLmlucHV0LnRvZG9zO2JyZWFrfX1pZihpKWJyZWFrfX1pfHwoaT12dihlLHQpKTt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpLGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2lmKGwpe2lmKCFpfHxpLmxlbmd0aD09PTApe2wuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksYyYmYy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx3aSgpO3JldHVybn1mb3IodmFyIGY9MCxkPTAsdj0iIixoPTA7aDxpLmxlbmd0aDtoKyspaVtoXS5zdGF0dXM9PT0iY29tcGxldGVkIiYmZisrLGlbaF0uc3RhdHVzPT09ImluX3Byb2dyZXNzIiYmKGQrKyx2fHwodj1pW2hdLmFjdGl2ZUZvcm18fGlbaF0uY29udGVudHx8IiIpKTt2YXIgZz1mPT09aS5sZW5ndGgsbT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oVSl7cmV0dXJuIFUuaWQ9PT1yLnNlbGVjdGVkSWR9KSx5PSEhbSYmbS5zdGF0dXM9PT0icnVubmluZyI7aWYoIXl8fGcpe2wuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksYyYmYy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx3aSgpO3JldHVybn1sLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGwuY2xhc3NMaXN0LnJlbW92ZSgiYWxsLWRvbmUiKSxjJiZjLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciB3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWNvdW50ZXIiKTt3JiYody50ZXh0Q29udGVudD1mKyIvIitpLmxlbmd0aCk7dmFyIEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtdGFzayIpO2lmKEUpe2lmKCF2KXtmb3IodmFyIEI9MDtCPGkubGVuZ3RoO0IrKylpZihpW0JdLnN0YXR1cz09PSJwZW5kaW5nIiYmKGlbQl0uYWN0aXZlRm9ybXx8aVtCXS5jb250ZW50KSl7dj1pW0JdLmFjdGl2ZUZvcm18fGlbQl0uY29udGVudDticmVha319RS50ZXh0Q29udGVudD12fHwiXHU1MUM2XHU1OTA3XHU0RTJEXHUyMDI2In12YXIgRj1pLmxlbmd0aD4wP2YvaS5sZW5ndGg6MCx4PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLXJpbmciKTt4JiZ4LnN0eWxlLnNldFByb3BlcnR5KCItLXByb2dyZXNzIixGLnRvRml4ZWQoMykpO3ZhciBTPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWZpbGwiKTtTJiZTLnN0eWxlLnNldFByb3BlcnR5KCItLXByb2dyZXNzIixGLnRvRml4ZWQoMykpO3ZhciBfPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWxpc3QiKTtpZihfKXtmb3IodmFyIEs9IiIsWT0wO1k8aS5sZW5ndGg7WSsrKXt2YXIgST1pW1ldLEQ9SS5zdGF0dXN8fCJwZW5kaW5nIixMPUQ9PT0iaW5fcHJvZ3Jlc3MiPyJhY3RpdmUiOkQ9PT0iY29tcGxldGVkIj8iZG9uZSI6IiIsUD1EPT09ImluX3Byb2dyZXNzIj8iYWN0aXZlIjpEPT09ImNvbXBsZXRlZCI/ImRvbmUiOiJwZW5kaW5nIix6PUQ9PT0iY29tcGxldGVkIj8iXHUyNzEzIjpEPT09ImluX3Byb2dyZXNzIj8iXHUyMDNBIjoiXHUyNUNCIjtLKz0nPGxpIGNsYXNzPSJ0b2RvLXByb2dyZXNzLWl0ZW0gJytMKyciPjxzcGFuIGNsYXNzPSJ0b2RvLWl0ZW0taWNvbiAnK1ArJyI+Jyt6KyI8L3NwYW4+PHNwYW4+IitwKEkuY29udGVudHx8IiIpKyI8L3NwYW4+PC9saT4ifV8uaW5uZXJIVE1MPUt9ci5zZWxlY3RlZElkJiZDYShyLnNlbGVjdGVkSWQpLHdpKCl9fWZ1bmN0aW9uIG12KGUpe2UucXVlcnlTZWxlY3RvckFsbCgiLmNvZGUtY29weSIpLmZvckVhY2goZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgbj10LmNsb3Nlc3QoIi5jb2RlLWJsb2NrIiksaT1uP24ucXVlcnlTZWxlY3RvcigiY29kZSIpOm51bGw7aSYmSHIoaS50ZXh0Q29udGVudHx8IiIsbnVsbCxmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9IkNvcGllZCEiLHQuY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dChmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9IkNvcHkiLHQuY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9KX0pfSl9ZnVuY3Rpb24gVG8oZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY29kZS1jb3B5IikuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LmNsb25lTm9kZSghMCk7dC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuLHQpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGk9bi5jbG9zZXN0KCIuY29kZS1ibG9jayIpLGE9aT9pLnF1ZXJ5U2VsZWN0b3IoImNvZGUiKTpudWxsO2EmJkhyKGEudGV4dENvbnRlbnR8fCIiLG51bGwsZnVuY3Rpb24oKXtuLnRleHRDb250ZW50PSJDb3BpZWQhIixuLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnRleHRDb250ZW50PSJDb3B5IixuLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfSl9KX0pLGd2KGUpfXZhciAkZz17dGltZXI6bnVsbCxhY3RpdmVCdG46bnVsbH07ZnVuY3Rpb24gZ3YoZSl7dmFyIHQ9d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlczt0JiZlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2UiKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKCFuLnF1ZXJ5U2VsZWN0b3IoIi5tc2ctY29weS1idG4iKSl7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlLWJ1YmJsZSIpO2lmKGkpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2EuY2xhc3NOYW1lPSJtc2ctY29weS1idG4iLGEudGV4dENvbnRlbnQ9Ilx1NTkwRFx1NTIzNiIsYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odSl7dS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgcz1pLmlubmVyVGV4dHx8aS50ZXh0Q29udGVudHx8IiI7SHIocy50cmltKCksbnVsbCxmdW5jdGlvbigpe2EudGV4dENvbnRlbnQ9Ilx1NURGMlx1NTkwRFx1NTIzNiIsYS5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50ZXh0Q29udGVudD0iXHU1OTBEXHU1MjM2IixhLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpLGEuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSwxNTAwKX0pfSksbi5hcHBlbmRDaGlsZChhKX19fSl9KGZ1bmN0aW9uKCl7dmFyIHQ9d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlcztpZih0KXt2YXIgbj1udWxsLGk9MDtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihhKXt2YXIgdT1hLnRhcmdldC5jbG9zZXN0KCIuY2hhdC1tZXNzYWdlIik7aWYodSl7dmFyIHM9dS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlLWJ1YmJsZSIpO3MmJihpPWEudG91Y2hlc1swXS5jbGllbnRZLG49c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBvPXUucXVlcnlTZWxlY3RvcigiLm1zZy1jb3B5LWJ0biIpO28mJihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubXNnLWNvcHktYnRuLnZpc2libGUiKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2wuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSksby5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikpfSw1MDApKX19LHtwYXNzaXZlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixmdW5jdGlvbihhKXtuJiZNYXRoLmFicyhhLnRvdWNoZXNbMF0uY2xpZW50WS1pKT4xMCYmKGNsZWFyVGltZW91dChuKSxuPW51bGwpfSx7cGFzc2l2ZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixmdW5jdGlvbigpe24mJihjbGVhclRpbWVvdXQobiksbj1udWxsKX0se3Bhc3NpdmU6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7YS50YXJnZXQuY2xvc2VzdCgiLm1zZy1jb3B5LWJ0biIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubXNnLWNvcHktYnRuLnZpc2libGUiKS5mb3JFYWNoKGZ1bmN0aW9uKHUpe3UuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSl9KX19KSgpO2Z1bmN0aW9uIGh2KGUpe2lmKCFlKXJldHVybiExO3ZhciB0PVN0cmluZyhlKS50cmltKCk7cmV0dXJuIHQ/ISEodC5pbmRleE9mKCJcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAiKT09PTB8fHQ9PT0iXHUyNzZGInx8dD09PSJcdTIwM0EifHwvXlvila3ilbDilILilIzilJTilJDilJjilJzilKTilKzilLTilLzilIDilZBdezIsfSQvLnRlc3QodCl8fC9eW+KWgeKWguKWg+KWhOKWheKWhuKWh+KWiOKWlOKWleKWj+KWkF0rJC8udGVzdCh0KXx8dC5pbmRleE9mKCJlc2MgdG8gaW50ZXJydXB0IikhPT0tMXx8dC5pbmRleE9mKCJDbGF1ZGUgQ29kZSB2IikhPT0tMXx8L15Tb25uZXRcYi8udGVzdCh0KXx8dC5pbmRleE9mKCJGYWlsZWQgdG8gaW5zdGFsbCBBbnRocm9waWMiKSE9PS0xfHx0LmluZGV4T2YoIkNsYXVkZSBDb2RlIGhhcyBzd2l0Y2hlZCIpIT09LTF8fHQuaW5kZXhPZigiPyBmb3Igc2hvcnRjdXRzIikhPT0tMXx8dC5pbmRleE9mKCJDbGF1ZGUgaXMgd2FpdGluZyIpIT09LTF8fHQuaW5kZXhPZigiW3dhbmRdIikhPT0tMXx8dC5pbmRleE9mKCIwOyIpPT09MHx8dC5pbmRleE9mKCI5OyIpPT09MHx8dC5pbmRleE9mKCJjdHJsK2ciKSE9PS0xfHx0LmluZGV4T2YoIi9lZmZvcnQiKSE9PS0xfHwvXlVzaW5nIC4qIGZvciAuKiBzZXNzaW9uLy50ZXN0KHQpfHx0LmluZGV4T2YoIlByZXNzICIpPT09MCYmdC5pbmRleE9mKCIgZm9yIikhPT0tMXx8dC5pbmRleE9mKCJ0eXBlICIpPT09MCYmdC5pbmRleE9mKCIgdG8gIikhPT0tMXx8dC5pbmRleE9mKCJhdXRvIG1vZGUgaXMgdW5hdmFpbGFibGUiKSE9PS0xfHwvTUNQIHNlcnZlci4qZmFpbGVkL2kudGVzdCh0KXx8dC5pbmRleE9mKCJHZXJtaW5hdGluZyIpIT09LTF8fHQuaW5kZXhPZigiRG9vZGxpbmciKSE9PS0xfHx0LmluZGV4T2YoIkJyZXdpbmciKSE9PS0xfHx0LmluZGV4T2YoIlBlcm1pc3Npb25zIikhPT0tMSYmdC5pbmRleE9mKCJtb2RlIikhPT0tMXx8dC5pbmRleE9mKCJcdTI1Q0YiKT09PTAmJnQuaW5kZXhPZigiXHhCNyIpIT09LTF8fHQuaW5kZXhPZigiWz4iKT09PTB8fHQuaW5kZXhPZigiWzwiKT09PTB8fHQuaW5kZXhPZigiQ2FwdHVyZWQgQ2xhdWRlIHNlc3Npb24gSUQiKSE9PS0xfHwvXj5fXHMqT3BlbkFJIENvZGV4XGIvLnRlc3QodCl8fC9eT3BlbkFJIENvZGV4XGIvaS50ZXN0KHQpfHwvXihtb2RlbHxkaXJlY3RvcnkpOlxzKy9pLnRlc3QodCl8fC9eKHRpcHxjb250ZXh0KTpccysvaS50ZXN0KHQpfHwvXndvcmsodHJlZXxzcGFjZSk6XHMrL2kudGVzdCh0KXx8L14oYXBwcm92YWxzP3xzYW5kYm94fHByb3ZpZGVyfHNlc3Npb24gaWQpOlxzKy9pLnRlc3QodCl8fC9eKHRoaW5raW5nfHdvcmtpbmcpKFwuXC5cLnzigKYpPyQvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccytXb3JraW5nXGIvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccysoUnVubmluZ3xQbGFubmluZ3xBcHBseWluZ3xSZWFkaW5nfFNlYXJjaGluZylcYi9pLnRlc3QodCl8fC9eW+KAouKXpsK3XVxzKyhJbnNwZWN0aW5nfFJldmlld2luZ3xTdW1tYXJpemluZ3xFZGl0aW5nfFVwZGF0aW5nfFdyaXRpbmcpXGIvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccytDb21wbGV0ZWRcYi9pLnRlc3QodCl8fC9eKGN0cmx8ZW50ZXJ8dGFifHNoaWZ0fGVzY3xhbHQpXCsvaS50ZXN0KHQpfHwvXGIob3BlbnxjbG9zZXx0b2dnbGUpIChjaGF0fHRlcm1pbmFsKVxiL2kudGVzdCh0KXx8L1xiKGFwcHJvdmV8ZGVueSlcYi4qXGIocGVybWlzc2lvbnxhcHByb3ZhbClcYi9pLnRlc3QodCl8fC9eKHVzZXxwcmVzcykgLiogKHRvfGZvcikgLiovaS50ZXN0KHQpfHwvXig/OnRva2VufGNvbnRleHQgd2luZG93fHJlbWFpbmluZyBjb250ZXh0fGNvbnZlcnNhdGlvbik6XHMrL2kudGVzdCh0KXx8L14oPzpjd2R8cGF0aCk6XHMrXC8vaS50ZXN0KHQpfHwvXls8PuKUguKUhuKVjl0uKls8PuKUguKUhuKVjl0kLy50ZXN0KHQpJiZ0Lmxlbmd0aDw4KTohMX1mdW5jdGlvbiB5dihlKXtyZXR1cm4gU3RyaW5nKGV8fCIiKS5yZXBsYWNlKC9ceDFiXF1bXlx4MDddKihceDA3fFx4MWJcXCkvZywiIikucmVwbGFjZSgvXHgxYlxbKFxkKylDL2csZnVuY3Rpb24odCxuKXtyZXR1cm4iICIucmVwZWF0KE51bWJlcihuKXx8MSl9KS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltBQl0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW3N1XS9nLCIiKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltIZkpLcl0vZyxgCmApLnJlcGxhY2UoL1x4MWJNL2csYApgKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltTVF0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW2EtekEtWl0vZywiIikucmVwbGFjZSgvXHgxYls+PD1lUFheX10vZywiIikucmVwbGFjZSgvW1x1MDBhMFx1MjAwYi1cdTIwMGRcdWZlZmZdL2csIiAiKS5yZXBsYWNlKC9bXHgwMC1ceDA4XHgwYlx4MGNceDBlLVx4MWZdL2csIiIpLnJlcGxhY2UoL1xyXG4/L2csYApgKS5yZXBsYWNlKC9bIFx0XStcbi9nLGAKYCkucmVwbGFjZSgvXG57Myx9L2csYAoKYCl9ZnVuY3Rpb24gYnYoZSx0KXt2YXIgbj1bXTtpZighZSlyZXR1cm4gbjt2YXIgaT1TdHJpbmcoZXx8IiIpLGE9YApgLHU9IlxyIixzPSJceDFCIjtpZigvXmNvZGV4XGIvLnRlc3QoU3RyaW5nKHR8fCIiKS50cmltKCkpKXtsZXQgY2U9ZnVuY3Rpb24oSCl7cmV0dXJuIFN0cmluZyhIfHwiIikucmVwbGFjZSgvXHgxYlxdW15ceDA3XSooXHgwN3xceDFiXFwpL2csIiIpLnJlcGxhY2UoL1x4MWJcWyhcZCspQy9nLGZ1bmN0aW9uKFIsUSl7cmV0dXJuIiAiLnJlcGVhdChOdW1iZXIoUSl8fDEpfSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbQUJdL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbc3VdL2csIiIpLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW0hmSktyXS9nLGEpLnJlcGxhY2UoL1x4MWJNL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbU1RdL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbYS16QS1aXS9nLCIiKS5yZXBsYWNlKC9ceDFiWz48PWVQWF5fXS9nLCIiKS5yZXBsYWNlKC9bXHUwMGEwXHUyMDBiLVx1MjAwZFx1ZmVmZl0vZywiICIpLnJlcGxhY2UoL1tceDAwLVx4MDhceDBiXHgwY1x4MGUtXHgxZl0vZywiIikucmVwbGFjZSgvWyBcdF0rXG4vZyxhKX0sY3Q9ZnVuY3Rpb24oSCl7cmV0dXJuIFN0cmluZyhIfHwiIikucmVwbGFjZSgvXHMrL2csIiAiKS5yZXBsYWNlKC9bTV0rJC9nLCIiKS50cmltKCl9LFo9ZnVuY3Rpb24oSCl7cmV0dXJuIFN0cmluZyhIfHwiIikucmVwbGFjZSgvXuKAulxzKi8sIiIpLnJlcGxhY2UoL14+XHMqLywiIikudHJpbSgpfSxJZT1mdW5jdGlvbihIKXt2YXIgUj1TdHJpbmcoSHx8IiIpLnRyaW0oKTtyZXR1cm4hISghUnx8aHYoUil8fEUudGVzdChSKXx8L15b4pWt4pWw4pSC4pSM4pSU4pSQ4pSY4pSc4pSk4pSs4pS04pS84pSA4pWQXS8udGVzdChSKXx8L15cWz5bMC05Oz9dKnUkL2kudGVzdChSKXx8L15NKyQvaS50ZXN0KFIpfHwvXig/Ok9wZW5BSSBDb2RleHxDb2RleClcYi9pLnRlc3QoUil8fC9eKD86dG9rZW5zP3xjb250ZXh0IHdpbmRvd3xyZW1haW5pbmcgY29udGV4dHxhcHByb3ZhbHM/fHNhbmRib3h8cHJvdmlkZXJ8c2Vzc2lvbiBpZCk6XHMqL2kudGVzdChSKXx8L14oPzp0aGlua2luZ3x3b3JraW5nKVxzKig/OlwuXC5cLnzigKYpPyQvaS50ZXN0KFIpfHwvXlvigKLil6bCt11ccysoPzp0aGlua2luZ3x3b3JraW5nfHJ1bm5pbmd8cGxhbm5pbmd8YXBwbHlpbmd8cmVhZGluZ3xzZWFyY2hpbmd8aW5zcGVjdGluZ3xyZXZpZXdpbmd8c3VtbWFyaXppbmd8ZWRpdGluZ3x1cGRhdGluZ3x3cml0aW5nfGNvbXBsZXRlZClcYi9pLnRlc3QoUil8fC9eKD86bW9kZWx8ZGlyZWN0b3J5fHRpcHxjb250ZXh0fGN3ZHxwYXRoKTpccysvaS50ZXN0KFIpKX0sVGU9ZnVuY3Rpb24oSCl7dmFyIFI9U3RyaW5nKEh8fCIiKS50cmltKCk7aWYoIS9e4oC6KD86XHN8JCkvLnRlc3QoUil8fEUudGVzdChSKSlyZXR1cm4gbnVsbDt2YXIgUT1jdChaKFIpKTtyZXR1cm4hUXx8SWUoUSk/bnVsbDpRfSxRZT1mdW5jdGlvbihIKXt2YXIgUj1TdHJpbmcoSHx8IiIpLnRyaW0oKTtpZighL15b4oCi4pemwrfij7pdLy50ZXN0KFIpKXJldHVybiBudWxsO3ZhciBRPVIucmVwbGFjZSgvXlvigKLil6bCt11ccyovLCIiKS5yZXBsYWNlKC9e4o+6XHMrLywiIikucmVwbGFjZSgvXuKUglxzKi8sIiIpLnRyaW0oKTtyZXR1cm4hUXx8L15b4oCi4pemwrfij7pdJC8udGVzdChRKXx8KFE9US5yZXBsYWNlKC9ccypcKFxkK1tzbWhdP1xzKuKAolxzKmVzYyB0byBpbnRlcnJ1cHRcKVtcc1xTXSokL2ksIiIpLnJlcGxhY2UoLyg/OlthLXpdezEsNn0pP+KAultcc1xTXSokLywiIikucmVwbGFjZSgvXHN7Mix9Z3B0LVxkW1xzXFNdKiQvaSwiIikucmVwbGFjZSgvXGIoPzpPcGVuQUkgQ29kZXh8bW9kZWw6fGRpcmVjdG9yeTp8VGlwOilcYltcc1xTXSokL2ksIiIpLFE9Y3QoUSksIVF8fFEubGVuZ3RoPDJ8fEIudGVzdChRKXx8SWUoUSkpP251bGw6UX0sJGU9ZnVuY3Rpb24oSCl7dmFyIFI9Y3QoSCk7cmV0dXJuIVJ8fEllKFIpfHwvXlvigKLil6bCt+KPuuKAul0vLnRlc3QoUil8fC9eW1xbXF08PjAtOTs/XSt1PyQvaS50ZXN0KFIpfHwvXlvila3ilbDilILilIzilJTilJDilJjilJzilKTilKzilLTilLzilIDilZBdLy50ZXN0KFIpfHxSLmxlbmd0aD41MDA/bnVsbDpSfSxGZT1mdW5jdGlvbihILFIpe2lmKEguaW5kZXhPZihSKSE9PTApcmV0dXJuITE7dmFyIFE9SC5zbGljZShSLmxlbmd0aCk7cmV0dXJuL15bYS16XXsxLDR9JC9pLnRlc3QoUSl9LExlPWZ1bmN0aW9uKEgpe2Zvcih2YXIgUj1bXSxRPTA7UTxILmxlbmd0aDtRKyspe3ZhciBkZT1jdChIW1FdKTtpZighKCFkZXx8ZGUubGVuZ3RoPDJ8fEllKGRlKSkpe3ZhciB2ZT1SW1IubGVuZ3RoLTFdO2lmKCF2ZSl7Ui5wdXNoKGRlKTtjb250aW51ZX1pZihkZSE9PXZlKXtpZihkZS5pbmRleE9mKHZlKT09PTApe1JbUi5sZW5ndGgtMV09ZGU7Y29udGludWV9aWYodmUuaW5kZXhPZihkZSk9PT0wKXtGZSh2ZSxkZSkmJihSW1IubGVuZ3RoLTFdPWRlKTtjb250aW51ZX1SLnB1c2goZGUpfX19cmV0dXJuIFIuam9pbihhKS50cmltKCl9LFhlPWZ1bmN0aW9uKEgpe2Zvcih2YXIgUj0wO1I8SC5sZW5ndGg7UisrKXt2YXIgUT1TdHJpbmcoSFtSXXx8IiIpLnRyaW0oKTtpZihRKXt2YXIgZGU9VGUoUSk7aWYoZGUpcmV0dXJuIGRlO2lmKFE9PT0iXHUyMDNBIilmb3IodmFyIHZlPVIrMTt2ZTxILmxlbmd0aDt2ZSsrKXt2YXIgT2U9Y3QoSFt2ZV0pO2lmKCEoIU9lfHxFLnRlc3QoT2UpfHxJZShPZSkpKXJldHVybiBPZX19fXJldHVybiBudWxsfSxZdD1mdW5jdGlvbihIKXtmb3IodmFyIFI9W10sUT0hMSxkZT0wO2RlPEgubGVuZ3RoO2RlKyspe3ZhciB2ZT1TdHJpbmcoSFtkZV18fCIiKS50cmltKCk7aWYoIXZlKXtpZihRKWJyZWFrO2NvbnRpbnVlfXZhciBPZT1RZSh2ZSk7aWYoT2Upe1IucHVzaChPZSksUT0hMDtjb250aW51ZX1pZihRKXtpZih2ZT09PSJcdTIwM0EifHwvXuKAuig/OlxzfCQpLy50ZXN0KHZlKXx8RS50ZXN0KHZlKXx8SWUodmUpKWJyZWFrO1IucHVzaChjdCh2ZSkpfX1yZXR1cm4gUn07Zm9yKHZhciBvPWNlLGw9Y3QsYz1aLGY9SWUsZD1UZSx2PVFlLGg9JGUsZz1GZSxtPUxlLHk9WGUsdz1ZdCxFPS9cYmdwdC1cZCsoPzpcLlxkKyk/KD86XHMrW2EtejAtOS4tXSspP1xzK8K3XHMrXGQrJVxzK2xlZnRccyvCt1xzKyg/OlwvfH5cLykuKy9pLEI9L14oPzp0aGlua2luZ3x3b3JraW5nfHJ1bm5pbmd8cGxhbm5pbmd8YXBwbHlpbmd8cmVhZGluZ3xzZWFyY2hpbmd8aW5zcGVjdGluZ3xyZXZpZXdpbmd8c3VtbWFyaXppbmd8ZWRpdGluZ3x1cGRhdGluZ3x3cml0aW5nfGNvbXBsZXRlZClcYi9pLEY9W10seD0wLFM9aS5yZXBsYWNlKC9cclxuPy9nLGEpLnNwbGl0KGEpLF89MDtfPFMubGVuZ3RoO18rKylmb3IodmFyIEs9Y2UoU1tfXSksWT1LLnNwbGl0KGEpLEk9MDtJPFkubGVuZ3RoO0krKyl7dmFyIEQ9U3RyaW5nKFlbSV18fCIiKS50cmltKCk7aWYoRCl7dmFyIEw9VGUoRCk7aWYoTCl7Ri5wdXNoKHtraW5kOiJ1c2VyIixvcmRlcjp4KyssdGV4dDpMfSk7Y29udGludWV9dmFyIFA9UWUoRCk7aWYoUCl7Ri5wdXNoKHtraW5kOiJhc3Npc3RhbnQiLG9yZGVyOngrKyx0ZXh0OlB9KTtjb250aW51ZX12YXIgej0kZShEKTt6JiZGLnB1c2goe2tpbmQ6ImVjaG8iLG9yZGVyOngrKyx0ZXh0Onp9KX19Zm9yKHZhciBVPUYuZmlsdGVyKGZ1bmN0aW9uKEgsUixRKXt2YXIgZGU9UVtSLTFdO3JldHVybiFkZXx8ZGUua2luZCE9PUgua2luZHx8ZGUudGV4dCE9PUgudGV4dH0pLGVlPVUuZmlsdGVyKGZ1bmN0aW9uKEgpe3JldHVybiBILmtpbmQ9PT0idXNlciJ9KSx0ZT1VLmZpbHRlcihmdW5jdGlvbihIKXtyZXR1cm4gSC5raW5kPT09ImFzc2lzdGFudCJ9KSxhZT1VLmZpbHRlcihmdW5jdGlvbihIKXtyZXR1cm4gSC5raW5kPT09ImVjaG8ifSksdWU9eXYoaSksVD11ZS5zcGxpdChhKS5tYXAoZnVuY3Rpb24oSCl7cmV0dXJuIFN0cmluZyhIfHwiIikudHJpbUVuZCgpfSksTT1YZShUKSxOPWVlLmxlbmd0aD9lZVtlZS5sZW5ndGgtMV06bnVsbCxKPWFlLm1hcChmdW5jdGlvbihIKXtyZXR1cm4gSC50ZXh0fSkuZmlsdGVyKGZ1bmN0aW9uKEgpe3JldHVybiBILmxlbmd0aD49M30pLEc9bnVsbCxyZT1KLmxlbmd0aC0xO3JlPj0wO3JlLS0paWYoSltyZV0hPT1NKXtHPUpbcmVdO2JyZWFrfSFHJiZKLmxlbmd0aCYmKEc9SltKLmxlbmd0aC0xXSk7Zm9yKHZhciBzZT1OP04udGV4dDpHLG9lPXRlLmZpbHRlcihmdW5jdGlvbihIKXtyZXR1cm4hTnx8SC5vcmRlcj5OLm9yZGVyfSkubWFwKGZ1bmN0aW9uKEgpe3JldHVybiBILnRleHR9KSxuZT1bXSxxZT11ZS5tYXRjaCgvXlsgXHRdKlvigKLil6bCt+KPul1bIFx0XSooLispJC9nbSl8fFtdLERlPTA7RGU8cWUubGVuZ3RoO0RlKyspe3ZhciBoZT1jdChxZVtEZV0ucmVwbGFjZSgvXlsgXHRdKlvigKLil6bCt+KPul1bIFx0XSovLCIiKSk7aGUmJihCLnRlc3QoaGUpfHxFLnRlc3QoaGUpfHwvXGIoPzpPcGVuQUkgQ29kZXh8bW9kZWw6fGRpcmVjdG9yeTp8VGlwOnxlc2MgdG8gaW50ZXJydXB0KVxiL2kudGVzdChoZSl8fG5lLnB1c2goaGUpKX12YXIgcT1MZShvZSl8fExlKFl0KFQpKXx8KG5lLmxlbmd0aD9uZVtuZS5sZW5ndGgtMV06bnVsbCk7cmV0dXJuIHNlJiZuLnB1c2goe3JvbGU6InVzZXIiLGNvbnRlbnQ6c2V9KSxxJiZuLnB1c2goe3JvbGU6ImFzc2lzdGFudCIsY29udGVudDpxfSksIW4ubGVuZ3RoJiZOP24ucHVzaCh7cm9sZToidXNlciIsY29udGVudDpOLnRleHR9KTohbi5sZW5ndGgmJkcmJm4ucHVzaCh7cm9sZToidXNlciIsY29udGVudDpHfSksbn1mb3IodmFyIFVlPSJcMCIsdnQ9IlxiIix3dD0iXHYiLFc9IlxmIixYPSIOIixwZT0iHyIseWU9Ilx4QTAiLENlPSJceDA3IixtdD1uZXcgUmVnRXhwKHMrIlxcW1swLTk7P10qW2EtekEtWl18IitzKyJcXF1bXiIrQ2UrIl0qKCIrQ2UrInwiK3MrIlxcXFxcXFxcKXwiK3MrIls+PD1lUF9YXl18WyIrVWUrIi0iK3Z0K3d0K1crWCsiLSIrcGUrIl18Iit5ZSsifCIrdSwiZyIpLG90PWkucmVwbGFjZShtdCxmdW5jdGlvbihjZSl7cmV0dXJuIGNlPT09eWU/IiAiOmNlPT09dT9hOiIifSkuc3BsaXQodSkuam9pbihhKSxndD1vdC5zcGxpdChhKS5tYXAoZnVuY3Rpb24oY2Upe3JldHVybiBjZS50cmltKCl9KS5maWx0ZXIoQm9vbGVhbiksVmU9Wy90aGlua2luZyB3aXRoIGhpZ2ggZWZmb3J0L2ksL3RoaW5raW5nIHdpdGggbWVkaXVtIGVmZm9ydC9pLC90aGlua2luZyB3aXRoIGxvdyBlZmZvcnQvaSxuZXcgUmVnRXhwKCJ0aG91Z2h0IGZvciBbMC05XStzIiwiaSIpLG5ldyBSZWdFeHAoIlNhdXRlZWQgZm9yIFswLTldK20iLCJpIiksL0dlcm1pbmF0aW5nL2ksL0Rvb2RsaW5nL2ksL0JyZXdpbmcvaV0saHQ9bnVsbCxsdD0tMSxHZT1bXSxrZT1bXSxtZT1bXSxiZT0wO2JlPGd0Lmxlbmd0aDtiZSsrKXt2YXIgQz1ndFtiZV0saXQ9Qy5yZXBsYWNlKC9e4p2vXHMqLywiIik7aWYoaXQuaW5kZXhPZignVHJ5IicpPT09MHx8aXQuaW5kZXhPZignVHJ5ICInKT09PTApe0dlLnB1c2goaXQpO2NvbnRpbnVlfWZvcih2YXIgeXQ9ITEsQ3Q9MDtDdDxWZS5sZW5ndGg7Q3QrKylpZihWZVtDdF0udGVzdChDKSl7eXQ9ITAsbWUucHVzaChDKTticmVha31pZigheXQmJkMmJkMuaW5kZXhPZigiXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwXHUyNTAwIikhPT0wJiZDIT09Ilx1Mjc2RiImJkMuaW5kZXhPZigiZXNjIHRvIGludGVycnVwdCIpPT09LTEmJkMuaW5kZXhPZigiQ2xhdWRlIENvZGUgdiIpPT09LTEmJkMuaW5kZXhPZigiU29ubmV0Iik9PT0tMSYmQy5pbmRleE9mKCJ+LyIpIT09MCYmQy5pbmRleE9mKCJcdTI1Q0YgaGlnaCIpPT09LTEmJkMuaW5kZXhPZigiRmFpbGVkIHRvIGluc3RhbGwgQW50aHJvcGljIG1hcmtldHBsYWNlIik9PT0tMSYmQy5pbmRleE9mKCJDbGF1ZGUgQ29kZSBoYXMgc3dpdGNoZWQgZnJvbSBucG0gdG8gbmF0aXZlIGluc3RhbGxlciIpPT09LTEmJkMuaW5kZXhPZigiRmx1dHRlcmluZyIpPT09LTEmJkMuaW5kZXhPZigiPyBmb3Igc2hvcnRjdXRzIik9PT0tMSYmQy5pbmRleE9mKCIwOyIpIT09MCYmQy5pbmRleE9mKCI5OyIpIT09MCYmQy5pbmRleE9mKCJDbGF1ZGUgaXMgd2FpdGluZyIpPT09LTEmJiEoQy5pbmRleE9mKCJcdTI3MjIiKSE9PS0xfHxDLmluZGV4T2YoIlx1MjczMyIpIT09LTF8fEMuaW5kZXhPZigiXHUyNzM2IikhPT0tMXx8Qy5pbmRleE9mKCJcdTI3M0IiKSE9PS0xfHxDLmluZGV4T2YoIlx1MjczRCIpIT09LTEpJiYhKEMuaW5kZXhPZigiXHUyNTkwIik9PT0wfHxDLmluZGV4T2YoIlx1MjU5RCIpPT09MHx8Qy5pbmRleE9mKCJcdTI1OTgiKT09PTApJiYhKChDPT09Imx1Inx8Qz09PSJ1ZSJ8fEM9PT0idHIifHxDPT09InRpInx8Qz09PSJnInx8Qz09PSJuInx8Qz09PSJpXHUyMDI2Inx8Qz09PSJcdTIwMjYifHxDPT09InV0cyJ8fEM9PT0ibHQifHxDPT09InJnInx8Qz09PSJceEI3IikmJkMubGVuZ3RoPDQpJiYhKEMuaW5kZXhPZigiXHUyNzNERiIpPT09MHx8Qy5pbmRleE9mKCJcdTI3M0JGIik9PT0wKSYmQy5pbmRleE9mKCJucG0gV0FSTiIpPT09LTEmJkMuaW5kZXhPZigibnBtIG5vdGljZSIpPT09LTEmJiEoQy5pbmRleE9mKCJhZGRlZCAiKSE9PS0xJiZDLmluZGV4T2YoIiBwYWNrYWdlcyIpIT09LTEpJiZDLmluZGV4T2YoImF1ZGl0ZWQgIik9PT0tMSYmIShDLmluZGV4T2YoImZvdW5kICIpIT09LTEmJkMuaW5kZXhPZigiIHZ1bG5lcmFiaWxpdGllcyIpIT09LTEpJiYhKEMuaW5kZXhPZigiVXNpbmcgIikhPT0tMSYmQy5pbmRleE9mKCIgZm9yICIpIT09LTEmJkMuaW5kZXhPZigic2Vzc2lvbiIpIT09LTEpJiZDLmluZGV4T2YoIllvdSBjYW4gdXNlIik9PT0tMSYmIShDLmluZGV4T2YoIlByZXNzICIpIT09LTEmJkMuaW5kZXhPZigiIGZvciIpIT09LTEpJiYhKEMuaW5kZXhPZigidHlwZSAiKT09PTAmJkMuaW5kZXhPZigiIHRvICIpIT09LTEpJiZDLmluZGV4T2YoIlt3YW5kXSIpIT09MCYmQy5pbmRleE9mKCJDYXB0dXJlZCBDbGF1ZGUgc2Vzc2lvbiBJRCIpPT09LTEmJkMuaW5kZXhPZigiXHUyM0Y1Iik9PT0tMSYmQy5pbmRleE9mKCJhY2NlcHRlZGl0Iik9PT0tMSYmQy5pbmRleE9mKCJzaGlmdCt0YWIiKT09PS0xJiZDLmluZGV4T2YoInRhYnRvY3ljbGUiKT09PS0xJiZDLmluZGV4T2YoImN0cmwrZyIpPT09LTEmJkMuaW5kZXhPZigiL2VmZm9ydCIpPT09LTEmJiEoQy5pbmRleE9mKCJPcHVzIikhPT0tMSYmQy5pbmRleE9mKCJtb2RlbCIpIT09LTEpJiZDLmluZGV4T2YoIkhhaWt1Iik9PT0tMSYmQy5pbmRleE9mKCJ0byBjeWNsZSIpPT09LTEmJiEoQy5pbmRleE9mKCJoaWdoIFx4QjciKSE9PS0xfHxDLmluZGV4T2YoImhpZ2hceEI3IikhPT0tMSkmJiEoQy5pbmRleE9mKCJtZWRpdW0gXHhCNyIpIT09LTF8fEMuaW5kZXhPZigibWVkaXVtXHhCNyIpIT09LTEpJiYhKEMuaW5kZXhPZigibG93IFx4QjciKSE9PS0xfHxDLmluZGV4T2YoImxvd1x4QjciKSE9PS0xKSl7aWYoQy5pbmRleE9mKCJcdTI1Q0YiKT09PTApe2lmKEM9Qy5zbGljZSgxKS50cmltKCksIUMpY29udGludWU7a2UucHVzaChDKTtjb250aW51ZX1DLmxlbmd0aDwzJiYhL15bYS16QS1aXXszfSQvLnRlc3QoQyl8fGtlLnB1c2goQyl9fWlmKG1lLmxlbmd0aD4wKXt2YXIgQnQ9bWVbbWUubGVuZ3RoLTFdLEt0PUJ0Lm1hdGNoKG5ldyBSZWdFeHAoImZvciAoWzAtOV0rW21zXSt8IFswLTldK20gWzAtOV0rcykiLCJpIikpLEp0PUt0PyJcdTZERjFcdTVFQTZcdTYwMURcdTgwMDMgIitLdFswXS5yZXBsYWNlKC9mb3IgL2ksIiIpOiJcdTZERjFcdTVFQTZcdTYwMURcdTgwMDNcdTRFMkQuLi4iO24ucHVzaCh7cm9sZToidGhpbmtpbmciLGNvbnRlbnQ6SnQsdHlwZToiZGVlcC10aG91Z2h0In0pfWlmKEdlLmxlbmd0aD4wKXt2YXIgR3Q9R2VbR2UubGVuZ3RoLTFdLnJlcGxhY2UoL15UcnlccyovLCIiKS50cmltKCk7bi5wdXNoKHtyb2xlOiJwcm9tcHQiLGNvbnRlbnQ6R3QsdHlwZToic3VnZ2VzdGlvbiJ9KX1pZigha2UubGVuZ3RoKXJldHVybiBuO2Zvcih2YXIgRWU9W10sX2U9bnVsbCxBZT1bXSxiZT0wO2JlPGtlLmxlbmd0aDtiZSsrKWlmKEM9a2VbYmVdLEMuaW5kZXhPZigiXHUyNzZGIik9PT0wKXt2YXIgTmU9Qy5yZXBsYWNlKC9e4p2vXHMqLywiIikudHJpbSgpO2lmKE5lLmluZGV4T2YoJ1RyeSInKT09PTB8fE5lLmluZGV4T2YoJ1RyeSAiJyk9PT0wKWNvbnRpbnVlO19lIT09bnVsbCYmQWUubGVuZ3RoPjAmJihFZS5wdXNoKHt1c2VyOl9lLGFzc2lzdGFudExpbmVzOkFlfSksQWU9W10pLE5lP19lPU5lOihfZSE9PW51bGwmJkFlLmxlbmd0aD4wJiYoRWUucHVzaCh7dXNlcjpfZSxhc3Npc3RhbnRMaW5lczpBZX0pLEFlPVtdKSxfZT1udWxsKX1lbHNlIF9lIT09bnVsbCYmKEMuaW5kZXhPZigiXHUyM0ZBIikhPT0tMSYmKEMuaW5kZXhPZigiSGkhIikhPT0tMXx8Qy5pbmRleE9mKCJIZWxsbyIpIT09LTF8fEMuaW5kZXhPZigiV2hhdCIpIT09LTF8fEMuaW5kZXhPZigid29ya2luZyIpIT09LTEpP0FlLnB1c2goQyk6Qy5pbmRleE9mKCJcdTIzRkEiKT09PTA/QWUucHVzaChDLnNsaWNlKDEpLnRyaW0oKXx8Qyk6Qy5sZW5ndGg+PTgmJkMuaW5kZXhPZigiXHUyNzIyIik9PT0tMSYmQy5pbmRleE9mKCJcdTI3MzMiKT09PS0xJiZDLmluZGV4T2YoIlx1MjczNiIpPT09LTEmJkMuaW5kZXhPZigiXHUyNzNCIik9PT0tMSYmQy5pbmRleE9mKCJcdTI3M0QiKT09PS0xJiZDLmluZGV4T2YoIlx1MjU5MCIpIT09MCYmQy5pbmRleE9mKCJcdTI1OUQiKSE9PTAmJkMuaW5kZXhPZigiXHUyNTk4IikhPT0wJiZDLmluZGV4T2YoImVzY3RvaW50ZXJydXB0Iik9PT0tMSYmQy5pbmRleE9mKCI/Zm9yIikhPT0wJiZDLmluZGV4T2YoIj8gZm9yIikhPT0wJiZBZS5wdXNoKEMpKTtpZihfZSE9PW51bGwmJkFlLmxlbmd0aD4wJiZFZS5wdXNoKHt1c2VyOl9lLGFzc2lzdGFudExpbmVzOkFlfSksRWUubGVuZ3RoPT09MCl7Zm9yKHZhciBidD0iIixhdD0tMSxiZT0wO2JlPGtlLmxlbmd0aDtiZSsrKWlmKEM9a2VbYmVdLCEoQy5pbmRleE9mKCdUcnkiJyk9PT0wfHxDLmluZGV4T2YoJ1RyeSAiJyk9PT0wKSYmQy5pbmRleE9mKCJGYWlsZWQgdG8gaW5zdGFsbCIpPT09LTEmJkMuaW5kZXhPZigiY3RybCtnIik9PT0tMSYmQy5pbmRleE9mKCJcdTI1Q0YgIikhPT0wJiYhKEMubGVuZ3RoPDJ8fEMubGVuZ3RoPjEwMCkmJi9eW2EtekEtWl0vLnRlc3QoQykpe2J0PUMudHJpbSgpLGF0PWJlO2JyZWFrfWlmKGJ0JiZhdD49MCl7dmFyIFR0PWtlLnNsaWNlKGF0KzEpLmZpbHRlcihmdW5jdGlvbihjZSl7cmV0dXJuIGNlLmxlbmd0aD49OH0pO1R0Lmxlbmd0aD4wJiZFZS5wdXNoKHt1c2VyOmJ0LGFzc2lzdGFudExpbmVzOlR0fSl9fWZvcih2YXIgWWU9MDtZZTxFZS5sZW5ndGg7WWUrKylpZihuLnB1c2goe3JvbGU6InVzZXIiLGNvbnRlbnQ6RWVbWWVdLnVzZXJ9KSxFZVtZZV0uYXNzaXN0YW50TGluZXMubGVuZ3RoPjApe3ZhciBNbj0kdihFZVtZZV0uYXNzaXN0YW50TGluZXMuam9pbihhKSk7bi5wdXNoKHtyb2xlOiJhc3Npc3RhbnQiLGNvbnRlbnQ6TW59KX1yZXR1cm4gbn12YXIgTG89InRyYW5zcGFyZW50IjtmdW5jdGlvbiBDaShlLHQpe2Zvcih2YXIgbj10fHwzLGk9ZVswXS5sZW5ndGgqbixhPWUubGVuZ3RoKm4sdT0iIixzPTA7czxlLmxlbmd0aDtzKyspZm9yKHZhciBvPTA7bzxlW3NdLmxlbmd0aDtvKyspZVtzXVtvXSE9PUxvJiYodSs9JzxyZWN0IHg9IicrbypuKyciIHk9IicrcypuKyciIHdpZHRoPSInK24rJyIgaGVpZ2h0PSInK24rJyIgZmlsbD0iJytlW3NdW29dKyciLz4nKTtyZXR1cm4nPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAnK2krIiAiK2ErJyIgY2xhc3M9InBpeGVsLWF2YXRhci1zdmciPicrdSsiPC9zdmc+In1mdW5jdGlvbiBCaShlKXt2YXIgdD1MbyxuPWUuYmFzZSxpPWUuZGFyayxhPWUubGlnaHR8fGUuYmFzZSx1PWUuYWNjZW50fHwiI0ZGRkZGRiIscz1lLmV5ZXx8IiMyRDJEMkQiLG89ZS5tb3V0aHx8IiNGMjhCOUEiLGw9ZS5ub3NlfHxlLmRhcms7cmV0dXJuW1t0LGksdCx0LHQsdCx0LHQsaSx0XSxbaSxuLGksdCx0LHQsdCxpLG4saV0sW2ksbixuLG4sbixuLG4sbixuLGldLFtuLG4sdSxzLG4sbix1LHMsbixuXSxbbixuLHUsdSxuLG4sdSx1LG4sbl0sW24sbixuLG4sbyxvLG4sbixuLG5dLFtuLGwsbixhLG4sbixhLG4sbCxuXSxbdCxuLG4sbixuLG4sbixuLG4sdF0sW3QsdCxuLGksbixuLGksbix0LHRdLFt0LHQsdCxuLHQsdCxuLHQsdCx0XV19dmFyIEV2PXtiYXNlOiIjRjA5MjNBIixkYXJrOiIjQzQ2QTFBIixsaWdodDoiI0YwOTIzQSIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRjI4QjlBIixub3NlOiIjRTg3RDVBIn0sRnY9e2Jhc2U6IiM5RUFBQjgiLGRhcms6IiM2QjdCOEQiLGxpZ2h0OiIjQzVDRUQ4IixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiIzdFQzg4QiIsbW91dGg6IiNGMjhCOUEifSxNbz1be2Jhc2U6IiM1QThGRTAiLGRhcms6IiMyRTVCQjMiLGxpZ2h0OiIjOUNDMEYyIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiI0ZGRDY2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiM1QThGRTAifSx7YmFzZToiI0EwNkZFMCIsZGFyazoiIzZCNDVBOCIsbGlnaHQ6IiNDOEE0RjIiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjRkZFMzZFIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiI0EwNkZFMCJ9LHtiYXNlOiIjN0JCNzZCIixkYXJrOiIjNEY4QTQwIixsaWdodDoiI0E5RDQ5QyIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjN0JCNzZCIn0se2Jhc2U6IiNEODZBODgiLGRhcms6IiM5QzNBNTciLGxpZ2h0OiIjRThBNEI1IixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiIzJEMkQyRCIsbW91dGg6IiNGRkZGRkYiLHByaW1hcnk6IiNEODZBODgifSx7YmFzZToiIzVCQjdCMCIsZGFyazoiIzJFNzg3MyIsbGlnaHQ6IiM5Q0Q2RDIiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjRkZENjZFIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzVCQjdCMCJ9LHtiYXNlOiIjNEE0QTYwIixkYXJrOiIjMUYxRjJFIixsaWdodDoiIzZFNkU4NCIsYWNjZW50OiIjRjVGNUY1IixleWU6IiNGRkQ2NkUiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjNEE0QTYwIn0se2Jhc2U6IiNEOEE4NUEiLGRhcms6IiM5QzcwMjgiLGxpZ2h0OiIjRUJDNzhBIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiIzJEMkQyRCIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiNEOEE4NUEifV07ZnVuY3Rpb24gd3YoZSx0KXtmb3IodmFyIG49U3RyaW5nKGV8fCIiKSxpPTAsYT0wO2E8bi5sZW5ndGg7YSsrKWk9KGk8PDUpLWkrbi5jaGFyQ29kZUF0KGEpfDA7cmV0dXJuIE1hdGguYWJzKGkpJXR9dmFyIFBvPXsiZ2VuZXJhbC1wdXJwb3NlIjoiXHU0RTA3XHU4MEZEXHU3MzJCIixFeHBsb3JlOiJcdTRGQTZcdTYzQTJcdTczMkIiLCJjb2RlLWV4cGxvcmVyIjoiXHU0RkE2XHU2M0EyXHU3MzJCIiwiY29kZS1yZXZpZXdlciI6Ilx1NUJBMVx1NjdFNVx1NzMyQiIsImNvZGUtYXJjaGl0ZWN0IjoiXHU2N0I2XHU2Nzg0XHU3MzJCIiwiY29kZS1zaW1wbGlmaWVyIjoiXHU3QjgwXHU1MzE2XHU3MzJCIiwiY29kZS1ndWlkZSI6Ilx1NTQxMVx1NUJGQ1x1NzMyQiIsUGxhbjoiXHU3QjU2XHU1MjEyXHU3MzJCIiwiZmVhdHVyZS1kZXYiOiJcdTVGMDBcdTUzRDFcdTczMkIiLCJwci10ZXN0LWFuYWx5emVyIjoiXHU2RDRCXHU4QkQ1XHU3MzJCIiwic2lsZW50LWZhaWx1cmUtaHVudGVyIjoiXHU2MkE0XHU1MzZCXHU3MzJCIiwidHlwZS1kZXNpZ24tYW5hbHl6ZXIiOiJcdTdDN0JcdTU3OEJcdTczMkIiLCJjb21tZW50LWFuYWx5emVyIjoiXHU2Q0U4XHU5MUNBXHU3MzJCIn0semE9bnVsbDtmdW5jdGlvbiBxbyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1lLmFnZW50VHlwZXx8IiI7aWYodCYmUG9bdF0pcmV0dXJuIFBvW3RdO2lmKHQpcmV0dXJuIHQ7dmFyIG49KGUudGFza0lkfHwiIikuc2xpY2UoLTQpfHwoQ3UoKT09PSJFbmdsaXNoIj8iPyI6Ilx1NjcyQVx1NzdFNSIpO3JldHVybiBsZSgic3ViYWdlbnQuaGVscGVyX2ZhbGxiYWNrX3ByZWZpeCIpK259ZnVuY3Rpb24gT28oZSl7dmFyIHQ9cW8oZSk7aWYoIXQpcmV0dXJuIHQ7dmFyIG49emEmJmUmJmUudGFza0lkP3phLmdldChlLnRhc2tJZCk6bnVsbDtyZXR1cm4gbj90K246dH1mdW5jdGlvbiBIbyhlKXt2YXIgdD1lJiYoZS5hZ2VudFR5cGV8fGUudGFza0lkKXx8InN1YmFnZW50IjtyZXR1cm4gTW9bd3YodCxNby5sZW5ndGgpXX1mdW5jdGlvbiBYZyhlKXt2YXIgdD1IbyhlKSxuPU9vKGUpLGk9Q2koQmkodCkpO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtYXZhdGFyIGFzc2lzdGFudCBzdWJhZ2VudCIgc3R5bGU9Ii0tYWdlbnQtY29sb3I6Jyt0LnByaW1hcnkrJyI+PGRpdiBjbGFzcz0icGl4ZWwtYXZhdGFyIj4nK2krJzwvZGl2PjxzcGFuIGNsYXNzPSJhdmF0YXItbmFtZSI+JytwKG4pKyI8L3NwYW4+PC9kaXY+In1mdW5jdGlvbiBDdihlLHQpe2lmKCFlfHxlLnR5cGUhPT0idG9vbF9yZXN1bHQiKXJldHVybiIiO3ZhciBuPXZuKGUuY29udGVudCksaT1lLmlzX2Vycm9yPT09ITAsYT10eXBlb2Ygbj09InN0cmluZyI/bjpuPT1udWxsPyIiOlN0cmluZyhuKTtpZighaSYmIWEudHJpbSgpKXJldHVybic8ZGl2IGNsYXNzPSJzdWJhZ2VudC1yZXBseSBwZW5kaW5nIj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktbWFya2VyIHBlbmRpbmciPicrcChsZSgic3ViYWdlbnQucnVubmluZyIpKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0eXBpbmctaW5kaWNhdG9yIj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48L3NwYW4+PC9kaXY+Jzt2YXIgdT1hLnRyaW0oKT9hOmxlKCJzdWJhZ2VudC5ub19vdXRwdXQiKSxzPWEudHJpbSgpP1lhKHUpOnAodSksbz1sZShpPyJzdWJhZ2VudC50YXNrLmZhaWxlZCI6InN1YmFnZW50LnRhc2suZG9uZSIpLGw9aT8iXHUyNzE3IjoiXHUyNzEzIjtyZXR1cm4nPGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHkgZmluYWwnKyhpPyIgZXJyb3IiOiIiKSsnIj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXIgJysoaT8iZXJyb3IiOiJkb25lIikrJyI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXJlcGx5LW1hcmtlci1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+JytsKyc8L3NwYW4+PHNwYW4gY2xhc3M9InN1YmFnZW50LXJlcGx5LW1hcmtlci1sYWJlbCI+JytwKG8pKyc8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktY29udGVudCI+JytzKyI8L2Rpdj48L2Rpdj4ifXZhciBEaT17YXNzaXN0YW50OkNpKEJpKEV2KSksdXNlcjpDaShCaShGdikpfSxfbz17dXNlcjp7bmFtZToiXHU4RDVCXHU1MzVBXHU4NjRFXHU1OTlFIixhdmF0YXJTdmc6RGkudXNlcn0sYXNzaXN0YW50OntuYW1lOiJcdTUyRTRcdTUyQjNcdTUyMURcdTRFOEMiLGF2YXRhclN2ZzpEaS5hc3Npc3RhbnR9fTtmdW5jdGlvbiBVYShlKXt2YXIgdD1yLmNvbmZpZyYmci5jb25maWcuc3RydWN0dXJlZENoYXRQZXJzb25hLG49dCYmdFtlXT90W2VdOm51bGwsaT1fb1tlXXx8X28uYXNzaXN0YW50O3JldHVybntuYW1lOm4mJnR5cGVvZiBuLm5hbWU9PSJzdHJpbmciJiZuLm5hbWUudHJpbSgpP24ubmFtZS50cmltKCk6aS5uYW1lLGF2YXRhcjpuJiZ0eXBlb2Ygbi5hdmF0YXI9PSJzdHJpbmciJiZuLmF2YXRhci50cmltKCk/bi5hdmF0YXIudHJpbSgpOm51bGwsYXZhdGFyU3ZnOmkuYXZhdGFyU3ZnfX1mdW5jdGlvbiBObyhlKXtyZXR1cm4nPGRpdiBjbGFzcz0icGl4ZWwtYXZhdGFyIj4nK2UrIjwvZGl2PiJ9ZnVuY3Rpb24gWmcoZSx0KXtpZighKCFlfHwhZS5wYXJlbnROb2RlKSl7dmFyIG49VWEodD09PSJ1c2VyIj8idXNlciI6ImFzc2lzdGFudCIpO2Uub3V0ZXJIVE1MPU5vKG4uYXZhdGFyU3ZnKX19ZnVuY3Rpb24gR24oZSx0KXt0PXR8fHt9O3ZhciBuPWU9PT0idXNlciI/InVzZXIiOiJhc3Npc3RhbnQiLGk9VWEobiksYT1pLmF2YXRhcj8nPGltZyBjbGFzcz0icGl4ZWwtYXZhdGFyLWltYWdlIiBzcmM9IicrcChpLmF2YXRhcikrJyIgYWx0PSInK3AoaS5uYW1lKSsnIiBvbmVycm9yPSJoYW5kbGVDaGF0QXZhdGFySW1hZ2VFcnJvcih0aGlzLCAnK0pTT04uc3RyaW5naWZ5KG4pKycpIiAvPic6Tm8oaS5hdmF0YXJTdmcpLHU9dC5sZWZ0U2xvdD90LmxlZnRTbG90OiIiO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtYXZhdGFyICcrZSsnIj4nK2ErJzxzcGFuIGNsYXNzPSJhdmF0YXItbmFtZSI+JytwKGkubmFtZSkrIjwvc3Bhbj4iK3UrIjwvZGl2PiJ9ZnVuY3Rpb24gQnYoKXt2YXIgZT1OdCgpO3JldHVybiFlfHwhaWUoZSk/IiI6dWwoZSx7a2luZDoiY29tcGFjdCJ9KX1mdW5jdGlvbiBWYShlLHQsbixpKXtpZihlLnJvbGU9PT0idGhpbmtpbmciKXt2YXIgYT10eXBlb2YgZS5jb250ZW50PT0ic3RyaW5nIj9lLmNvbnRlbnQ6IiI7aWYoIWEudHJpbSgpKXJldHVybiIiO3ZhciB1PVB0KCJ0aGlua2luZyIsW011KGUsbiksInB0eSJdKSxzPVplKHUpLG89cz09PW51bGw/eG4oInRoaW5raW5nIik6cztyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlIHRoaW5raW5nIj48ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgdGhpbmtpbmctcHR5ICcrKG8/ImV4cGFuZGVkIjoiY29sbGFwc2VkIikrJyIgZGF0YS1leHBhbmQta2luZD0idGhpbmtpbmciIGRhdGEtZXhwYW5kLWtleT0iJytwKHUpKyciIGRhdGEtdGhpbmtpbmc9IicrcChhKSsnIiBvbmNsaWNrPSJfX3RoaW5raW5nVG9nZ2xlKHRoaXMpIj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLWljb24iPlx1MjlCRjwvc3Bhbj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLXByZXZpZXciPicrcChhKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtYWN0aW9uIj4nKyhvPyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKSsiPC9zcGFuPjwvZGl2PjwvZGl2PiJ9aWYoZS5yb2xlPT09InByb21wdCIpcmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSBwcm9tcHQiPjxkaXYgY2xhc3M9InByb21wdC1jYXJkIj48ZGl2IGNsYXNzPSJwcm9tcHQtaWNvbiI+XHUyMTkyPC9kaXY+PGRpdiBjbGFzcz0icHJvbXB0LWNvbnRlbnQiPlx1OEJENVx1OEJENVx1RkYxQTxzcGFuIGNsYXNzPSJwcm9tcHQtdGV4dCI+JytwKGUuY29udGVudCkrIjwvc3Bhbj48L2Rpdj48L2Rpdj48L2Rpdj4iO2lmKEFycmF5LmlzQXJyYXkoZS5jb250ZW50KSlyZXR1cm4gV3YoZSx0LG4saSk7dmFyIGw9R24oZS5yb2xlKSxjPWUucm9sZT09PSJhc3Npc3RhbnQiP1lhKGUuY29udGVudCk6ZS5yb2xlPT09InVzZXIiP1lvKGUuY29udGVudCk6cChlLmNvbnRlbnQpO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJytlLnJvbGUrJyI+JytsKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtYnViYmxlIj4nK2MrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gRHYoZSl7dmFyIHQ9e307aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQ7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl07aWYoaSYmaS50eXBlPT09InRvb2xfcmVzdWx0Iil7dmFyIGE9aS50b29sX3VzZV9pZDtpZighYSljb250aW51ZTt0W2FdfHwodFthXT1bXSksdFthXS5wdXNoKGkpfX1yZXR1cm4gdH1mdW5jdGlvbiBSbyhlLHQpe3ZhciBuPWUmJnQ/ZVt0XTpudWxsO2lmKCFufHwhbi5sZW5ndGgpcmV0dXJuIG51bGw7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aC0xO2krKylpZihhbChuW2ldLG5baSsxXSkpcmV0dXJuIG5baSsxXTtyZXR1cm4gbltuLmxlbmd0aC0xXX1mdW5jdGlvbiBrdihlLHQpe3ZhciBuPWUmJnQ/ZVt0XTpudWxsO2lmKCFufHxuLmxlbmd0aDwyKXJldHVybiExO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGgtMTtpKyspaWYoYWwobltpXSxuW2krMV0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIEF2KGUpe3JldHVybic8ZGl2IGNsYXNzPSJzdHJ1Y3R1cmVkLXRvb2wtaGludCI+XHU1REYyXHU4MUVBXHU1MkE4XHU2MDYyXHU1OTBEXHU0RTAwXHU2QjIxICcrcChHYShlKSkrIiBcdTUzQzJcdTY1NzBcdTk1RUVcdTk4OTg8L2Rpdj4ifXZhciB4dj17UmVhZDoxLEdsb2I6MSxHcmVwOjEsV2ViRmV0Y2g6MSxXZWJTZWFyY2g6MSxUb2RvUmVhZDoxfTtmdW5jdGlvbiBqbyhlKXtpZighZXx8ZS50eXBlIT09InRvb2xfdXNlInx8IXh2W2UubmFtZV0pcmV0dXJuITE7aWYoZS5uYW1lPT09IlJlYWQiKXt2YXIgdD1lLmlucHV0fHx7fTtpZih5dSh0LmZpbGVfcGF0aHx8dC5wYXRofHwiIikpcmV0dXJuITF9cmV0dXJuITB9ZnVuY3Rpb24gU3YoZSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoOyl7dmFyIGk9ZVtuXTtpZihpLnR5cGU9PT0idG9vbF9yZXN1bHQiKXtuKys7Y29udGludWV9aWYoam8oaSkpe2Zvcih2YXIgYT1be2Jsb2NrOmksaW5kZXg6bn1dLHU9bisxO3U8ZS5sZW5ndGg7KXtpZihlW3VdLnR5cGU9PT0idG9vbF9yZXN1bHQiKXt1Kys7Y29udGludWV9aWYoam8oZVt1XSkpYS5wdXNoKHtibG9jazplW3VdLGluZGV4OnV9KSx1Kys7ZWxzZSBicmVha31hLmxlbmd0aD49Mj90LnB1c2goe3R5cGU6Imdyb3VwIixpdGVtczphLGVuZEluZGV4OnV9KTp0LnB1c2goe3R5cGU6InNpbmdsZSIsYmxvY2s6aSxpbmRleDpufSksbj11fWVsc2UgdC5wdXNoKHt0eXBlOiJzaW5nbGUiLGJsb2NrOmksaW5kZXg6bn0pLG4rK31yZXR1cm4gdH12YXIgSXY9e1JlYWQ6Ilx1OEJGQlx1NTNENiIsR2xvYjoiXHU2NDFDXHU3RDIyIixHcmVwOiJcdTY0MUNcdTdEMjIiLFdlYkZldGNoOiJcdTYyOTNcdTUzRDYiLFdlYlNlYXJjaDoiXHU2NDFDXHU3RDIyIixUb2RvUmVhZDoiXHU1Rjg1XHU1MjlFIn07ZnVuY3Rpb24gVHYoZSx0LG4saSl7Zm9yKHZhciBhPXt9LHU9MDt1PGUubGVuZ3RoO3UrKyl7dmFyIHM9ZVt1XS5ibG9jay5uYW1lO2Fbc109KGFbc118fDApKzF9Zm9yKHZhciBvPSEwLGw9ITEsdT0wO3U8ZS5sZW5ndGg7dSsrKXt2YXIgYz1lW3VdLmJsb2NrLGY9Um8obixjLmlkKTtmP2YuaXNfZXJyb3ImJihsPSEwKTpvPSExfXZhciBkPW8/bD8iXHUyNzE3IjoiXHUyNzEzIjoiXHUyMDI2Iix2PW8/bD8iZXJyb3IiOiJkb25lIjoicGVuZGluZyIsaD1bXTtmb3IodmFyIGcgaW4gYSloLnB1c2goYVtnXSsiICIrKEl2W2ddfHxnKSk7Zm9yKHZhciBtPWguam9pbigiIFx4QjcgIikseT1QdCgidG9vbC1ncm91cCIsW2ksZVswXSYmZVswXS5pbmRleCxlLmxlbmd0aF0pLHc9WmUoeSksRT13PT09bnVsbD94bigidG9vbEdyb3VwIik6dyxCPSIiLHU9MDt1PGUubGVuZ3RoO3UrKyl0cnl7Qis9UW8oZVt1XS5ibG9jayx0LG4sZVt1XS5pbmRleCxpKX1jYXRjaHtCKz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTVERTVcdTUxNzdcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfXJldHVybic8ZGl2IGNsYXNzPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWdyb3VwIiBkYXRhLWV4cGFuZC1rZXk9IicrcCh5KSsnIiBkYXRhLWV4cGFuZGVkPSInKyhFPyJ0cnVlIjoiZmFsc2UiKSsnIiBkYXRhLXN0YXR1cz0iJyt2KyciPjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtc3VtbWFyeSIgb25jbGljaz0iX190b29sR3JvdXBUb2dnbGUodGhpcy5wYXJlbnROb2RlKSI+PHNwYW4gY2xhc3M9InRvb2wtZ3JvdXAtc3RhdHVzIj4nK2QrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC10ZXh0Ij4nK3AobSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC1ncm91cC1jb3VudCI+JytlLmxlbmd0aCsnIFx1NEUyQVx1OEMwM1x1NzUyODwvc3Bhbj48c3ZnIGNsYXNzPSJ0b29sLWdyb3VwLWNoZXZyb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0eWxlPSJ0cmFuc2Zvcm06JysoRT8icm90YXRlKDE4MGRlZykiOiIiKSsnIj48cG9seWxpbmUgcG9pbnRzPSI2IDkgMTIgMTUgMTggOSIvPjwvc3ZnPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtZ3JvdXAtYm9keSIgc3R5bGU9ImRpc3BsYXk6JysoRT8iYmxvY2siOiJub25lIikrJzsiPicrQisiPC9kaXY+PC9kaXY+In13aW5kb3cuX190b29sR3JvdXBUb2dnbGU9ZnVuY3Rpb24oZSl7aWYoZSl7dmFyIHQ9ZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsdD8iZmFsc2UiOiJ0cnVlIik7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudG9vbC1ncm91cC1ib2R5Iik7biYmKG4uc3R5bGUuZGlzcGxheT10PyJub25lIjoiYmxvY2siKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi50b29sLWdyb3VwLWNoZXZyb24iKTtpJiYoaS5zdHlsZS50cmFuc2Zvcm09dD8iIjoicm90YXRlKDE4MGRlZykiKSx3bihlLCJ0b29sLWdyb3VwIil9fTtmdW5jdGlvbiBXbyhlLHQpe2Zvcih2YXIgbj0wLGk9MCxhPTAsdT17fSxzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBvPWVbdFtzXV07aWYobyl7by5yb2xlPT09InVzZXIiJiZuKys7dmFyIGw9by5jb250ZW50O2lmKEFycmF5LmlzQXJyYXkobCkpZm9yKHZhciBjPTA7YzxsLmxlbmd0aDtjKyspe3ZhciBmPWxbY107aWYoZilpZihmLl9fc3ViYWdlbnQmJmYuX19zdWJhZ2VudC50YXNrSWQmJih1W2YuX19zdWJhZ2VudC50YXNrSWRdPTEpLGYudHlwZT09PSJ0b29sX3VzZSIpe2krKzt2YXIgZD1BaShmKTtkJiZkLnRhc2tJZCYmKHVbZC50YXNrSWRdPTEpfWVsc2UgZi50eXBlPT09InRvb2xfcmVzdWx0IiYmZi5pc19lcnJvciYmYSsrfX19dmFyIHY9MDtmb3IodmFyIGggaW4gdSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodSxoKSYmdisrO3JldHVybntyb3VuZHM6bix0b29sczppLGFnZW50czp2LGVycm9yczphfX1mdW5jdGlvbiB6byhlKXt2YXIgdD1bXTtyZXR1cm4gdC5wdXNoKGxlKCJoaXN0b3J5LnJvdW5kcyIse246U3RyaW5nKGUucm91bmRzKX0pKSxlLnRvb2xzPjAmJnQucHVzaChsZSgiaGlzdG9yeS50b29scyIse246U3RyaW5nKGUudG9vbHMpfSkpLGUuYWdlbnRzPjAmJnQucHVzaChsZSgiaGlzdG9yeS5hZ2VudHMiLHtuOlN0cmluZyhlLmFnZW50cyl9KSksZS5lcnJvcnM+MCYmdC5wdXNoKGxlKCJoaXN0b3J5LmVycm9ycyIse246U3RyaW5nKGUuZXJyb3JzKX0pKSx0LmpvaW4oIiBceEI3ICIpfWZ1bmN0aW9uIEthKGUsdCl7Zm9yKHZhciBuPWUubmV4dEVsZW1lbnRTaWJsaW5nO247KW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJjaGF0LWxvYWQtbW9yZSIpfHwodD9uLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTpuLmNsYXNzTGlzdC5hZGQoImNoYXQtaGlzdG9yeS1oaWRkZW4iKSksbj1uLm5leHRFbGVtZW50U2libGluZ31mdW5jdGlvbiBMdihlLHQsbixpKXtpZighKCFlfHwhdCkpe2lmKCFyLmNoYXRBdXRvRm9sZEVuYWJsZWQpe0lyKGUsdCwhMSksWW4odCksa2koZSk7cmV0dXJufXZhciBhPW58fHIuY3VycmVudE1lc3NhZ2VzfHxbXTtpZighYXx8YS5sZW5ndGg9PT0wKXtJcihlLHQsITEpLFluKHQpLGtpKGUpO3JldHVybn1mb3IodmFyIHU9LTEscz1hLmxlbmd0aC0xO3M+PTA7cy0tKWlmKGFbc10mJmFbc10ucm9sZT09PSJ1c2VyIil7dT1zO2JyZWFrfWlmKHU8MCl7SXIoZSx0LCExKSxZbih0KSxraShlKTtyZXR1cm59Zm9yKHZhciBvPS0xLGw9YS5sZW5ndGgtMTtsPnU7bC0tKWlmKGFbbF0mJmFbbF0ucm9sZT09PSJhc3Npc3RhbnQiKXtvPWw7YnJlYWt9dmFyIGM9ZS5jbGllbnRIZWlnaHR8fDAsZj10LmNsaWVudEhlaWdodHx8YyxkPXQuc2Nyb2xsSGVpZ2h0fHwwLHY9UHYoYSx1KSxoPXYubGVuZ3RoPjB8fCEhdC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSxnPWM+MCYmKGQ+ZisyNHx8aCk7aWYoIWcpe2tpKGUpLFluKHQpLElyKGUsdCwhMSk7cmV0dXJufXZhciBtPU12KGUpLHk9di5sZW5ndGg+MD9XbyhhLHYpOm51bGw7bS5pbm5lckhUTUw9SHYoYVt1XSxvPj0wP2Fbb106bnVsbCx5KSxtLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLElyKGUsdCwhMCkscXYodCx1LHYubGVuZ3RoPjApLHIuY2hhdFBpblR1cm5Ub1RvcCYmVW8odCksci5jaGF0QXV0b0ZvbGRTbmFwc2hvdD17dXNlcklkeDp1LGFzc2lzdGFudElkeDpvfX19ZnVuY3Rpb24gTXYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY2hhdC1mb2xkLWJhciIpO3JldHVybiB0fHwodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0LmlkPSJjaGF0LWZvbGQtYmFyIix0LmNsYXNzTmFtZT0iY2hhdC1mb2xkLWJhciBoaWRkZW4iLGUuaW5zZXJ0QmVmb3JlKHQsZS5maXJzdENoaWxkKSx0KX1mdW5jdGlvbiBJcihlLHQsbil7ZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJhdXRvLWZvbGQiLCEhbil9ZnVuY3Rpb24gUHYoZSx0KXtmb3IodmFyIG49W10saT0wO2k8dDtpKyspZVtpXSYmbi5wdXNoKGkpO3JldHVybiBufWZ1bmN0aW9uIFluKGUpe2lmKGUpZm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtYXV0by1mb2xkLWhpZGRlbiIpLG49MDtuPHQubGVuZ3RoO24rKyl0W25dLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpfWZ1bmN0aW9uIHF2KGUsdCxuKXtpZihZbihlKSwhKCFufHx0PDEpKXtmb3IodmFyIGk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIiksYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgdT1pW2FdLmdldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiKTtpZih1IT1udWxsKXt2YXIgcz1wYXJzZUludCh1LDEwKTshaXNOYU4ocykmJnM8dCYmaVthXS5jbGFzc0xpc3QuYWRkKCJjaGF0LWF1dG8tZm9sZC1oaWRkZW4iKX19T3YoZSl9fWZ1bmN0aW9uIE92KGUpe3ZhciB0PWU/ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKTpudWxsO2lmKHQpe3Quc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIiwiZmFsc2UiKTt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS1idG4iKTtuJiZuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIik7dmFyIGk9dC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktdGl0bGUiKTtpJiYoaS50ZXh0Q29udGVudD1sZSgiaGlzdG9yeS5leHBhbmQiKSksS2EodCwhMSksdC5jbGFzc0xpc3QuYWRkKCJjaGF0LWF1dG8tZm9sZC1oaWRkZW4iKTt2YXIgYT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpO2lmKGEpe3ZhciB1PWEuc3BsaXQoIjoiKTt1Lmxlbmd0aD49MyYmKHVbMl09IjAiLGUuc2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIix1LmpvaW4oIjoiKSkpfX19ZnVuY3Rpb24gVW8oZSl7IWV8fCFlLmlzQ29ubmVjdGVkfHwoci5jaGF0UGluVHVyblRvVG9wPSEwLHIuY2hhdFN0aWNrVG9Cb3R0b209ITEsTXQoe3JlbW92ZURpdmlkZXI6ITB9KSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXshZS5pc0Nvbm5lY3RlZHx8IXIuY2hhdFBpblR1cm5Ub1RvcHx8QnUoZSl8fFZvKGUpfSkpfWZ1bmN0aW9uIFZvKGUpe3ZhciB0PWV8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1tZXNzYWdlcyIpO2lmKCF0fHwhdC5pc0Nvbm5lY3RlZClyZXR1cm4hMTt2YXIgbj10LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2UudXNlcjpub3QoLmNoYXQtaGlzdG9yeS1oaWRkZW4pOm5vdCguY2hhdC1hdXRvLWZvbGQtaGlkZGVuKSIpO2lmKCFufHxuLmxlbmd0aD09PTApcmV0dXJuITE7dmFyIGk9blswXSxhPTEyLHU9dC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1waW4tc3BhY2VyIik7dT91LnN0eWxlLmhlaWdodD0iMHB4IjoodT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx1LmNsYXNzTmFtZT0iY2hhdC1waW4tc3BhY2VyIix1LnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCJ0cnVlIiksdS5zdHlsZS5mbGV4PSIwIDAgYXV0byIsdS5zdHlsZS53aWR0aD0iMTAwJSIsdS5zdHlsZS5oZWlnaHQ9IjBweCIsdS5zdHlsZS5wb2ludGVyRXZlbnRzPSJub25lIix0Lmluc2VydEJlZm9yZSh1LHQuZmlyc3RDaGlsZCkpO2Zvcih2YXIgcz1udWxsLG89MDtvPHQuY2hpbGRyZW4ubGVuZ3RoO28rKyl7dmFyIGw9dC5jaGlsZHJlbltvXTtpZihsLmNsYXNzTGlzdCYmIWwuY2xhc3NMaXN0LmNvbnRhaW5zKCJjaGF0LXBpbi1zcGFjZXIiKSYmIWwuY2xhc3NMaXN0LmNvbnRhaW5zKCJjaGF0LWhpc3RvcnktaGlkZGVuIikmJiFsLmNsYXNzTGlzdC5jb250YWlucygiY2hhdC1hdXRvLWZvbGQtaGlkZGVuIikpe3M9bDticmVha319aWYocyl7dmFyIGM9cy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20taS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsZj10LmNsaWVudEhlaWdodC1hLGQ9Zi1jO3Uuc3R5bGUuaGVpZ2h0PShkPjA/TWF0aC5jZWlsKGQpOjApKyJweCJ9dmFyIHY9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3AsaD1pLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcC12LWE7cmV0dXJuIE1hdGguYWJzKGgpPi41JiYoci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITAsci5jaGF0UHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw9RGF0ZS5ub3coKSszNTAsdC5zY3JvbGxUb3ArPWgscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksITB9ZnVuY3Rpb24ga2koZSl7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY2hhdC1mb2xkLWJhciIpO3QmJih0LmlubmVySFRNTD0iIix0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuY2hhdEF1dG9Gb2xkU25hcHNob3Q9bnVsbCl9fWZ1bmN0aW9uIEh2KGUsdCxuKXt2YXIgaT1LbyhlKXx8Ilx1NjVCMFx1NkQ4OFx1NjA2RiIsYT10P0tvKHQpOiJcdTdCNDlcdTVGODVcdTU2REVcdTU5MEQuLi4iLHU9IiI7cmV0dXJuIG4mJih1PSc8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImNoYXQtZm9sZC1yb3cgaGlzdG9yeSIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRUb2dnbGVIaXN0b3J5ICYmIHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeSgpIiB0aXRsZT0iXHU1QzU1XHU1RjAwXHU2MjE2XHU2NTM2XHU4RDc3XHU2NkY0XHU2NUU5XHU1QkY5XHU4QkREIj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXJvbGUiPlx1NTM4Nlx1NTNGMjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXRleHQiPlx1NURGMlx1NjUzNlx1OEQ3NyAnK3Aoem8obikpKyI8L3NwYW4+PC9idXR0b24+IiksdSsnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IHVzZXIiIG9uY2xpY2s9IndpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0ICYmIHdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0KCkiIHRpdGxlPSJcdTVCOUFcdTRGNERcdTUyMzBcdTY3MDBcdTY1QjBcdTZEODhcdTYwNkYiPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtcm9sZSI+XHU2MjExPC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtdGV4dCI+JytwKGkpKyc8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IGFzc2lzdGFudCIgb25jbGljaz0id2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QgJiYgd2luZG93Ll9fY2hhdEZvbGRKdW1wVG9MYXRlc3QoKSIgdGl0bGU9Ilx1NUI5QVx1NEY0RFx1NTIzMFx1NjcwMFx1NjVCMFx1NTZERVx1NTkwRCI+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC1yb2xlIj5DbGF1ZGU8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC10ZXh0Ij4nK3AoYSkrIjwvc3Bhbj48L2J1dHRvbj4ifWZ1bmN0aW9uIEtvKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PVtdO2Z1bmN0aW9uIG4ocyl7aWYodHlwZW9mIHM9PSJzdHJpbmciKXt2YXIgbz1zLnJlcGxhY2UoL1xzKy9nLCIgIikudHJpbSgpO28mJnQucHVzaChvKX19aWYodHlwZW9mIGUuY29udGVudD09InN0cmluZyIpbihlLmNvbnRlbnQpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlLmNvbnRlbnQpKWZvcih2YXIgaT0wO2k8ZS5jb250ZW50Lmxlbmd0aCYmdC5qb2luKCIgIikubGVuZ3RoPDE4MDtpKyspe3ZhciBhPWUuY29udGVudFtpXTthJiYoYS50eXBlPT09InRleHQiP24oYS50ZXh0KTphLnR5cGU9PT0idGhpbmtpbmciP24oYS50aGlua2luZyk6YS50eXBlPT09InRvb2xfdXNlIj9uKGEubmFtZT8iXHU4QzAzXHU3NTI4ICIrYS5uYW1lOiJcdTVERTVcdTUxNzdcdThDMDNcdTc1MjgiKTphLnR5cGU9PT0idG9vbF9yZXN1bHQiP24oYS5pc19lcnJvcj8iXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU5NTE5XHU4QkVGIjoiXHU1REU1XHU1MTc3XHU4RkQ0XHU1NkRFXHU3RUQzXHU2NzlDIik6YS50ZXh0JiZuKGEudGV4dCkpfXZhciB1PXQuam9pbigiIFx4QjcgIik7cmV0dXJuIHUubGVuZ3RoPjE4MD91LnNsaWNlKDAsMTc3KSsiLi4uIjp1fXdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0PWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI2NoYXQtb3V0cHV0IC5jaGF0LW1lc3NhZ2VzIik7ZSYmVW8oZSl9LHdpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeT1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSx0PWU/ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuIik6bnVsbDtlJiZlLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpLHQmJndpbmRvdy5fX2hpc3RvcnlTdW1tYXJ5VG9nZ2xlJiZ3aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZSh0KX07ZnVuY3Rpb24gX3YoZSl7aWYoIWUpcmV0dXJuO2Zvcih2YXIgdD1yLmN1cnJlbnRNZXNzYWdlc3x8W10sbj0tMSxpPXQubGVuZ3RoLTE7aT49MDtpLS0paWYodFtpXSYmdFtpXS5yb2xlPT09InVzZXIiKXtuPWk7YnJlYWt9ZnVuY3Rpb24gYSgpe3ZhciB4PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik7eCYmeC5yZW1vdmUoKTtmb3IodmFyIFM9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1oaXN0b3J5LWhpZGRlbiIpLF89MDtfPFMubGVuZ3RoO18rKylTW19dLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTtlLnJlbW92ZUF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpfWlmKG48MSl7YSgpO3JldHVybn1mb3IodmFyIHU9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIikscz1bXSxvPW51bGwsbD0wO2w8dS5sZW5ndGg7bCsrKXt2YXIgYz11W2xdLmdldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiKTtpZihjIT1udWxsKXt2YXIgZj1wYXJzZUludChjLDEwKTtpc05hTihmKXx8ZjxuJiYocy5wdXNoKGYpLG98fChvPXVbbF0pKX19aWYocy5sZW5ndGg8Mnx8IW8pe2EoKTtyZXR1cm59dmFyIGQ9V28odCxzKSx2PVB0KCJoaXN0b3J5LXN1bW1hcnkiLFtuXSksaD1aZSh2KT09PSEwLGc9bisiOiIrcy5sZW5ndGgrIjoiKyhoPzE6MCkrIjoiK2Qucm91bmRzKyI6IitkLnRvb2xzKyI6IitkLmFnZW50cysiOiIrZC5lcnJvcnM7aWYoIShlLmdldEF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpPT09ZyYmZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKSkpe3ZhciBtPWUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik7bSYmbS5yZW1vdmUoKTtmb3IodmFyIHk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1oaXN0b3J5LWhpZGRlbiIpLHc9MDt3PHkubGVuZ3RoO3crKyl5W3ddLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtaGlzdG9yeS1oaWRkZW4iKTt2YXIgRT16byhkKSxCPWxlKGg/Imhpc3RvcnkuY29sbGFwc2UiOiJoaXN0b3J5LmV4cGFuZCIpLEY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ri5jbGFzc05hbWU9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5IixGLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmQta2V5Iix2KSxGLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsaD8idHJ1ZSI6ImZhbHNlIiksRi5pbm5lckhUTUw9JzxidXR0b24gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0biIgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJ3aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZSh0aGlzKSIgYXJpYS1leHBhbmRlZD0iJysoaD8idHJ1ZSI6ImZhbHNlIikrJyI+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LWljb24iPicrVigiZm9sZGVyIix7c2l6ZToxNX0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJvZHkiPjxzcGFuIGNsYXNzPSJjaGF0LWhpc3Rvcnktc3VtbWFyeS10aXRsZSI+JytwKEIpKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LW1ldGEiPicrcChFKSsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktY2hldnJvbiI+JytWKCJjaGV2cm9uRG93biIse3NpemU6MTZ9KSsiPC9zcGFuPjwvYnV0dG9uPiIsZS5pbnNlcnRCZWZvcmUoRixvKSxLYShGLGgpLGUuc2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIixnKX19d2luZG93Ll9faGlzdG9yeVN1bW1hcnlUb2dnbGU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5jbG9zZXN0P2UuY2xvc2VzdCgiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5Iik6bnVsbDtpZih0KXt2YXIgbj10LmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmQta2V5IiksaT10LmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpIT09InRydWUiO3Quc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixpPyJ0cnVlIjoiZmFsc2UiKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsaT8idHJ1ZSI6ImZhbHNlIik7dmFyIGE9dC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktdGl0bGUiKTthJiYoYS50ZXh0Q29udGVudD1sZShpPyJoaXN0b3J5LmNvbGxhcHNlIjoiaGlzdG9yeS5leHBhbmQiKSksbiYmTHUobixpKSxLYSh0LGkpO3ZhciB1PXQucGFyZW50RWxlbWVudDtpZihpJiZZbih1KSx1KXt2YXIgcz11LmdldEF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpO2lmKHMpe3ZhciBvPXMuc3BsaXQoIjoiKTtvLmxlbmd0aD49MyYmKG9bMl09aT8iMSI6IjAiLHUuc2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIixvLmpvaW4oIjoiKSkpfX19fTtmdW5jdGlvbiBBaShlKXtpZighZXx8ZS50eXBlIT09InRvb2xfdXNlIilyZXR1cm4gbnVsbDt2YXIgdD1lLmlucHV0fHx7fSxuPXR5cGVvZiB0LnN1YmFnZW50X3R5cGU9PSJzdHJpbmciP3Quc3ViYWdlbnRfdHlwZTpudWxsO3JldHVybiFuJiZlLm5hbWUhPT0iVGFzayImJmUubmFtZSE9PSJBZ2VudCI/bnVsbDp7dGFza0lkOmUuaWQsYWdlbnRUeXBlOm58fHZvaWQgMCx0YXNrRGVzY3JpcHRpb246dHlwZW9mIHQuZGVzY3JpcHRpb249PSJzdHJpbmciP3QuZGVzY3JpcHRpb246dm9pZCAwfX1mdW5jdGlvbiBOdihlKXt2YXIgdD1uZXcgTWFwO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0O2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2lmKCEoIWl8fGkucm9sZSE9PSJhc3Npc3RhbnQifHwhQXJyYXkuaXNBcnJheShpLmNvbnRlbnQpKSlmb3IodmFyIGE9MDthPGkuY29udGVudC5sZW5ndGg7YSsrKXt2YXIgdT1pLmNvbnRlbnRbYV07aWYoISghdXx8dS50eXBlIT09InRvb2xfdXNlIikpe3ZhciBzPXUuX19zdWJhZ2VudHx8QWkodSk7cyYmdC5zZXQodS5pZCxzKX19fXJldHVybiB0fWZ1bmN0aW9uIFJ2KGUpe3ZhciB0PW5ldyBNYXA7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHQ7dmFyIG49bmV3IE1hcCxpPW5ldyBTZXQ7ZnVuY3Rpb24gYShmKXtpZighKCFmfHwhZi50YXNrSWQpJiYhaS5oYXMoZi50YXNrSWQpKXtpLmFkZChmLnRhc2tJZCk7dmFyIGQ9cW8oZik7ZCYmKG4uaGFzKGQpfHxuLnNldChkLFtdKSxuLmdldChkKS5wdXNoKGYudGFza0lkKSl9fWZvcih2YXIgdT0wO3U8ZS5sZW5ndGg7dSsrKXt2YXIgcz1lW3VdO2lmKCEoIXN8fCFBcnJheS5pc0FycmF5KHMuY29udGVudCkpKWZvcih2YXIgbz0wO288cy5jb250ZW50Lmxlbmd0aDtvKyspe3ZhciBsPXMuY29udGVudFtvXTtpZihsKXt2YXIgYz1sLl9fc3ViYWdlbnR8fChsLnR5cGU9PT0idG9vbF91c2UiP0FpKGwpOm51bGwpO2MmJmEoYyl9fX1yZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKGYpe2lmKCEoZi5sZW5ndGg8MikpZm9yKHZhciBkPTA7ZDxmLmxlbmd0aDtkKyspdC5zZXQoZltkXSwiICMiKyhkKzEpKX0pLHR9ZnVuY3Rpb24gSm8oZSx0KXt2YXIgbj1bXTtpZighQXJyYXkuaXNBcnJheShlKXx8IWUubGVuZ3RoKXJldHVybiBuO2Zvcih2YXIgaT1udWxsLGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIHU9ZVthXSxzPXUmJnUudHlwZT09PSJ0ZXh0IiYmdS5fX3Byb2Nlc3Npbmc9PT0hMDtpZihzJiZpKXtpLmJsb2Nrcy5wdXNoKHUpO2NvbnRpbnVlfXZhciBvPXUmJnUuX19zdWJhZ2VudD91Ll9fc3ViYWdlbnQ6bnVsbDtvfHwobz1BaSh1KSksIW8mJnUmJnUudHlwZT09PSJ0b29sX3Jlc3VsdCImJnQmJnQuaGFzKHUudG9vbF91c2VfaWQpJiYobz10LmdldCh1LnRvb2xfdXNlX2lkKSk7dmFyIGw9bz9vLnRhc2tJZDpudWxsOyghaXx8aS5rZXkhPT1sKSYmKGk9e2tleTpsLHN1YmFnZW50Om8sYmxvY2tzOltdLGZpcnN0SW5kZXg6YX0sbi5wdXNoKGkpKSxpLmJsb2Nrcy5wdXNoKHUpfXJldHVybiBufWZ1bmN0aW9uIEphKGUsdCxuLGksYSl7dmFyIHU9IiI7dHJ5e2Zvcih2YXIgcz1TdihlKSxvPTA7bzxzLmxlbmd0aDtvKyspe3ZhciBsPXNbb107dHJ5e2lmKGwudHlwZT09PSJncm91cCIpe2Zvcih2YXIgYz1bXSxmPTA7ZjxsLml0ZW1zLmxlbmd0aDtmKyspYy5wdXNoKHtibG9jazpsLml0ZW1zW2ZdLmJsb2NrLGluZGV4OmwuaXRlbXNbZl0uaW5kZXgrdH0pO3UrPVR2KGMsbixpLGEpfWVsc2UgdSs9UW8obC5ibG9jayxuLGksbC5pbmRleCt0LGEpfWNhdGNoe3UrPSc8ZGl2IGNsYXNzPSJyZW5kZXItZXJyb3IiPlx1NkQ4OFx1NjA2Rlx1NTc1N1x1NkUzMlx1NjdEM1x1NTkzMVx1OEQyNTwvZGl2Pid9fX1jYXRjaHt1Kz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTZEODhcdTYwNkZcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfXJldHVybiB1fWZ1bmN0aW9uIEdvKGUsdCxuLGksYSx1KXtmb3IodmFyIHM9dXx8e30sbz1zLnNob3dIYW5kb2ZmIT09ITEsbD0iIixjPW51bGwsZj0wO2Y8ZS5sZW5ndGg7ZisrKXt2YXIgZD1lW2ZdLHY9SmEoZC5ibG9ja3MsZC5maXJzdEluZGV4LHQsaSxhKTtpZighKCF2fHwhdi50cmltKCkpKWlmKGQuc3ViYWdlbnQpe3ZhciBoPW8mJmMhPT1kLnN1YmFnZW50LnRhc2tJZDtsKz1qdihkLG4sdixhLGgpLGM9ZC5zdWJhZ2VudC50YXNrSWR9ZWxzZSBsKz0nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLXNlZ21lbnQgcGFyZW50Ij4nK0duKHQpKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtY29udGVudCI+Jyt2KyI8L2Rpdj48L2Rpdj4iLGM9bnVsbH1yZXR1cm4gbH1mdW5jdGlvbiBqdihlLHQsbixpLGEpe3ZhciB1PWUuc3ViYWdlbnQscz1Ibyh1KSxvPU9vKHUpLGw9dS50YXNrSWR8fCIiLGM9Q2koQmkocykpLGY7aWYoYSl7dmFyIGQ9JzxzdHJvbmcgY2xhc3M9InN1YmFnZW50LXBhbmVsLW5hbWUiPicrcChvKSsnPC9zdHJvbmc+PHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLXRhZyIgdGl0bGU9IicrcChsZSgic3ViYWdlbnQudGFnX3RpdGxlIikpKyciPicrcChsZSgic3ViYWdlbnQudGFnIikpKyI8L3NwYW4+Iix2PSEhKHUudGFza0Rlc2NyaXB0aW9uJiZTdHJpbmcodS50YXNrRGVzY3JpcHRpb24pLnRyaW0oKSksaD12P2xlKCJzdWJhZ2VudC5oYW5kb2ZmLndpdGhfZGVzYyIse3BhcmVudDpwKHQpLHN1YjpkfSk6bGUoInN1YmFnZW50LmhhbmRvZmYiLHtwYXJlbnQ6cCh0KSxzdWI6ZH0pLGc9dj8nPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLXRhc2stZGVzYyI+JytwKHUudGFza0Rlc2NyaXB0aW9uKSsiPC9zcGFuPiI6IiI7Zj0nPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWFycm93IiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHUyMUIzPC9zcGFuPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1hdHRyaWJ1dGlvbiI+JytoK2crIjwvc3Bhbj4ifWVsc2UgZj0nPHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWF0dHJpYnV0aW9uIj48c3Ryb25nIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1uYW1lIj4nK3AobykrJzwvc3Ryb25nPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10YXNrLWRlc2MiPiAnK3AobGUoInN1YmFnZW50LmNvbnRpbnVlZCIpKSsiPC9zcGFuPjwvc3Bhbj4iO3ZhciBtPVB0KCJzdWJhZ2VudC1wYW5lbCIsW2ksbF0pLHk9WmUobSksdz15PT09bnVsbD8hMTohIXk7ZnVuY3Rpb24gRShCKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10b2dnbGUiIGRhdGEtcG9zaXRpb249IicrQisnIiBvbmNsaWNrPSJfX3N1YmFnZW50UGFuZWxUb2dnbGUoZXZlbnQsIHRoaXMpIiBhcmlhLWV4cGFuZGVkPSInKyh3PyJ0cnVlIjoiZmFsc2UiKSsnIiBhcmlhLWxhYmVsPSInK3AobGUodz8idWkuY29sbGFwc2VfcGFuZWxfYXJpYSI6InVpLmV4cGFuZF9wYW5lbF9hcmlhIikpKyciPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10b2dnbGUtbGFiZWwiPicrcChsZSh3PyJ1aS5jb2xsYXBzZSI6InVpLmV4cGFuZCIpKSsnPC9zcGFuPjxzdmcgY2xhc3M9InN1YmFnZW50LXBhbmVsLXRvZ2dsZS1pY29uIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHZpZXdCb3g9IjAgMCAxMCAxMCIgZmlsbD0ibm9uZSIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0yLjUgMy43NUw1IDYuMjVMNy41IDMuNzUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIi8+PC9zdmc+PC9idXR0b24+J31yZXR1cm4nPGRpdiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwiIGRhdGEtZXhwYW5kLWtpbmQ9InN1YmFnZW50LXBhbmVsIiBkYXRhLWV4cGFuZC1rZXk9IicrcChtKSsnIiBkYXRhLWFnZW50LWlkPSInK3AobCkrJyIgZGF0YS1leHBhbmRlZD0iJysodz8idHJ1ZSI6ImZhbHNlIikrJyIgc3R5bGU9Ii0tYWdlbnQtY29sb3I6JytzLnByaW1hcnkrJyI+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtaGVhZGVyIiBvbmNsaWNrPSJfX3N1YmFnZW50UGFuZWxUb2dnbGUoZXZlbnQsIHRoaXMpIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBhcmlhLWxhYmVsPSInK3AobGUoInN1YmFnZW50LnRpdGxlX2FyaWEiKSkrJyI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXBhbmVsLWF2YXRhciIgYXJpYS1oaWRkZW49InRydWUiPicrYysiPC9zcGFuPiIrZitFKCJ0b3AiKSsnPC9kaXY+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtYm9keSI+JytuKyc8L2Rpdj48ZGl2IGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1mb290ZXIiPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1mb290ZXItaGludCIgYXJpYS1oaWRkZW49InRydWUiPlx1MjAxNCAnK3AobykrIiBcdTIwMTQ8L3NwYW4+IitFKCJib3R0b20iKSsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiBXdihlLHQsbixpKXt2YXIgYT1lLnJvbGUsdT1NdShlLG4pLHM9YT09PSJ1c2VyIiYmZS5jb250ZW50JiZlLmNvbnRlbnQuc29tZShmdW5jdGlvbihGKXtyZXR1cm4gRi5fX3F1ZXVlZH0pO2lmKCFlLmNvbnRlbnR8fGUuY29udGVudC5sZW5ndGg9PT0wKXJldHVybiBhPT09ImFzc2lzdGFudCI/JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyI+JytHbihhKSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWJ1YmJsZSI+PGRpdiBjbGFzcz0idHlwaW5nLWluZGljYXRvciI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+JzonPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSsnIGVtcHR5LW1lc3NhZ2UiIGRhdGEtbWVzc2FnZS1rZXk9IicrcCh1KSsnIj4nK0duKGEpKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtY29udGVudCI+PHNwYW4gY2xhc3M9ImVtcHR5LW1lc3NhZ2UtaGludCI+XHVGRjA4XHU3QTdBXHU2RDg4XHU2MDZGXHVGRjA5PC9zcGFuPjwvZGl2PjwvZGl2Pic7dmFyIG89RHYoZS5jb250ZW50KSxsPVVhKCJhc3Npc3RhbnQiKTtpZihhIT09ImFzc2lzdGFudCIpe3ZhciBjPUpvKGUuY29udGVudCxpKSxmPWMuc29tZShmdW5jdGlvbihGKXtyZXR1cm4gRi5zdWJhZ2VudH0pLGQ9cz8iIHF1ZXVlZCI6IiIsdj1zPyc8c3BhbiBjbGFzcz0icXVldWVkLWJhZGdlIj5cdTYzOTJcdTk2MUZcdTRFMkQ8L3NwYW4+JzoiIixoPUJ2KCk7aWYoZil7dmFyIGc9R28oYyxhLGwubmFtZSxvLHUse3Nob3dIYW5kb2ZmOiExfSk7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErZCsnIG11bHRpLWFnZW50IiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JytnK3YrIjwvZGl2PiJ9dmFyIG09SmEoZS5jb250ZW50LDAsYSxvLHUpO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythK2QrJyIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrR24oYSx7bGVmdFNsb3Q6aH0pKyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UtY29udGVudCI+JyttK3YrIjwvZGl2PjwvZGl2PiJ9dmFyIHk9Sm8oZS5jb250ZW50LGkpLHc9eS5zb21lKGZ1bmN0aW9uKEYpe3JldHVybiBGLnN1YmFnZW50fSk7aWYoIXcpe3ZhciBFPUphKGUuY29udGVudCwwLGEsbyx1KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSsnIiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JytHbihhKSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPicrRSsiPC9kaXY+PC9kaXY+In12YXIgQj0nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYSsnIG11bHRpLWFnZW50IiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JztyZXR1cm4gQis9R28oeSxhLGwubmFtZSxvLHUse3Nob3dIYW5kb2ZmOiEwfSksQis9IjwvZGl2PiIsQn12YXIgenY9L15ccypcW+mZhOS7tuW3suS4iuS8oO+8jOivt+afpeeci+S7peS4i+aWh+S7tjpcbihbXHNcU10qPylcXVxuKy87ZnVuY3Rpb24gVXYoZSl7dmFyIHQ9KGV8fCIiKS50cmltKCk7aWYoIXQpcmV0dXJuIiI7dmFyIG49dC5zcGxpdCgiLyIpLnBvcCgpfHx0O2lmKHl1KHQpKXt2YXIgaT0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpO3JldHVybic8ZGl2IGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtaW1hZ2UiPjxpbWcgY2xhc3M9InVzZXItYXR0YWNobWVudC10aHVtYiIgbG9hZGluZz0ibGF6eSIgc3JjPSInK2krJyIgYWx0PSInK3AobikrJyIgZGF0YS1wYXRoPSInK3AodCkrYCIgb25jbGljaz0iZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGlmKHdpbmRvdy5fX29wZW5GaWxlUHJldmlldyl3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcodGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGF0aCcpKTsiIG9uZXJyb3I9InZhciB3PXRoaXMuY2xvc2VzdCgnLnVzZXItYXR0YWNobWVudC1pbWFnZScpOyBpZih3KXcuc3R5bGUuZGlzcGxheT0nbm9uZSc7IiAvPjwvZGl2PmB9cmV0dXJuJzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudC1maWxlIiBkYXRhLXBhdGg9IicrcCh0KStgIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyI+PHNwYW4gY2xhc3M9InVzZXItYXR0YWNobWVudC1maWxlLWljb24iPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PHBhdGggZD0iTTkgMS41SDRhMSAxIDAgMCAwLTEgMXYxMWExIDEgMCAwIDAgMSAxaDhhMSAxIDAgMCAwIDEtMVY1LjVMOSAxLjV6Ii8+PHBhdGggZD0iTTkgMS41VjUuNWg0Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtZmlsZS1uYW1lIj5gK3AobikrIjwvc3Bhbj48L2Rpdj4ifWZ1bmN0aW9uIFlvKGUpe3ZhciB0PWV8fCIiLG49dC5tYXRjaCh6dik7aWYoIW4pcmV0dXJuIHAodCk7Zm9yKHZhciBpPSIiLGE9blsxXS5zcGxpdChgCmApLHU9MDt1PGEubGVuZ3RoO3UrKylpKz1VdihhW3VdKTt2YXIgcz10LnNsaWNlKG5bMF0ubGVuZ3RoKSxvPWk/JzxkaXYgY2xhc3M9InVzZXItYXR0YWNobWVudHMiPicraSsiPC9kaXY+IjoiIixsPXMudHJpbSgpPyc8ZGl2IGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtdGV4dCI+JytwKHMpKyI8L2Rpdj4iOiIiO3JldHVybiBvK2x9ZnVuY3Rpb24gUW8oZSx0LG4saSxhKXtpZighZXx8IWUudHlwZXx8ZS50eXBlPT09InRvb2xfdXNlIiYmZS5fX3N1YmFnZW50JiZlLl9fc3ViYWdlbnQudGFza0lkPT09ZS5pZClyZXR1cm4iIjtpZihlLnR5cGU9PT0idG9vbF9yZXN1bHQiJiZlLl9fc3ViYWdlbnQmJmUuX19zdWJhZ2VudC50YXNrSWQ9PT1lLnRvb2xfdXNlX2lkKXJldHVybiBDdihlLHQpO3N3aXRjaChlLnR5cGUpe2Nhc2UidGV4dCI6cmV0dXJuIHQ9PT0iYXNzaXN0YW50IiYmZS5fX3Byb2Nlc3Npbmc/JzxkaXYgY2xhc3M9InR5cGluZy1pbmRpY2F0b3IiPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvZGl2Pic6dD09PSJhc3Npc3RhbnQiP1lhKGUudGV4dHx8IiIpOllvKGUudGV4dHx8IiIpO2Nhc2UidGhpbmtpbmciOnZhciB1PWUudGhpbmtpbmd8fCIiLHM9ZS50aGlua2luZz09PXZvaWQgMCYmZS50eXBlPT09InRoaW5raW5nIjtpZihzKXJldHVybic8ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgdGhpbmtpbmctc3RyZWFtaW5nIiBkYXRhLXRoaW5raW5nPSIiPjxkaXYgY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy1pbm5lciI+PHNwYW4gY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy1pY29uIHNwaW5uaW5nIj5cdTI5QkY8L3NwYW4+PGRpdiBjbGFzcz0idGhpbmtpbmctc3RyZWFtaW5nLXRleHQiPjwvZGl2PjwvZGl2PjwvZGl2Pic7aWYoIXUudHJpbSgpKXJldHVybiIiO3ZhciBvPXUubGVuZ3RoPjYwP3Uuc2xpY2UoMCw1NykrIlx1MjAyNiI6dSxsPVB0KCJ0aGlua2luZyIsW2EsaV0pLGM9WmUobCksZj1jPT09bnVsbD94bigidGhpbmtpbmciKTpjO3JldHVybic8ZGl2IGNsYXNzPSJ0aGlua2luZy1pbmxpbmUgJysoZj8iZXhwYW5kZWQiOiJjb2xsYXBzZWQiKSsnIiBkYXRhLWV4cGFuZC1raW5kPSJ0aGlua2luZyIgZGF0YS1leHBhbmQta2V5PSInK3AobCkrJyIgZGF0YS10aGlua2luZz0iJytwKHUpKyciIG9uY2xpY2s9Il9fdGhpbmtpbmdUb2dnbGUodGhpcykiPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtaWNvbiI+XHUyOUJGPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtcHJldmlldyI+JytwKGY/dTpvKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1pbmxpbmUtYWN0aW9uIj4nKyhmPyJcdTY1MzZcdThENzciOiJcdTVDNTVcdTVGMDAiKSsiPC9zcGFuPjwvZGl2PiI7Y2FzZSJ0b29sX3VzZSI6dmFyIGQ9Um8obixlLmlkKSx2PUd2KGUsZCxpLGEpO3JldHVybiBrdihuLGUuaWQpJiYodj1BdihlLm5hbWV8fCJcdTVERTVcdTUxNzciKSt2KSx2O2Nhc2UidG9vbF9yZXN1bHQiOnJldHVybiIiO2RlZmF1bHQ6dmFyIGg9ZSYmZS50eXBlP1N0cmluZyhlLnR5cGUpOiJcdTY3MkFcdTc3RTUiLGc9IiI7dHJ5e2c9SlNPTi5zdHJpbmdpZnkoZSxudWxsLDIpfWNhdGNoe2c9Int9In1yZXR1cm5gPGRpdiBjbGFzcz0idW5rbm93bi1ibG9jayBjb2xsYXBzZWQiIG9uY2xpY2s9InRoaXMuY2xhc3NMaXN0LnRvZ2dsZSgnY29sbGFwc2VkJykiPjxkaXYgY2xhc3M9InVua25vd24tYmxvY2staGVhZGVyIj48c3BhbiBjbGFzcz0idW5rbm93bi1ibG9jay1pY29uIj4/PC9zcGFuPjxzcGFuIGNsYXNzPSJ1bmtub3duLWJsb2NrLWxhYmVsIj5cdTY3MkFcdThCQzZcdTUyMkJcdTc2ODRcdTUxODVcdTVCQjlcdTU3NTdcdUZGMUFgK3AoaCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idW5rbm93bi1ibG9jay10b2dnbGUiPlx1MjVCQzwvc3Bhbj48L2Rpdj48cHJlIGNsYXNzPSJ1bmtub3duLWJsb2NrLWJvZHkiPicrcChnKSsiPC9wcmU+PC9kaXY+In19ZnVuY3Rpb24gVnYoZSx0LG4saSxhLHUscyl7dmFyIG89ZS5pZHx8InRvb2wtIituLGw9UHQoImlubGluZS10b29sIixbdSxvfHxzLHNdKSxjPVplKGwpLGY9ZS5pbnB1dHx8e30sZD12bih0JiZ0LmNvbnRlbnQpLHY9dCYmdC5pc19lcnJvcixoPWQubGVuZ3RoPjAsZz12PyJcdTI3MTciOmg/Ilx1MjcxMyI6Ilx1MjAyNiIsbT0iIix5PSIiLHc9IiIsRT0iIjtpZihuPT09IlJlYWQiKXttPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cGF0aCBkPSJNMSAzLjVBMS41IDEuNSAwIDAgMSAyLjUgMmgyLjc2NGMuOTU4IDAgMS43Ni41NiAyLjMxMSAxLjE4NEM4LjQwNSAzLjc3IDkuMTQ2IDQgMTAgNGgzLjVBMS41IDEuNSAwIDAgMSAxNSA1LjV2N2ExLjUgMS41IDAgMCAxLTEuNSAxLjVoLTExQTEuNSAxLjUgMCAwIDEgMSAxMi41di05eiIvPjxwYXRoIGQ9Ik0yIDUuNWgxMk0yIDhoOE0yIDEwLjVoNSIvPjwvc3ZnPic7dmFyIEI9Zi5maWxlX3BhdGh8fGYucGF0aHx8aXx8IiIsRj0iIjtmLmxpbWl0JiYoRj0iICIrZi5vZmZzZXQrIi0iKyhmLm9mZnNldCtmLmxpbWl0KSkseT1CLHc9Rn1lbHNlIGlmKG49PT0iR2xvYiIpe209JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjciIGN5PSI3IiByPSI1Ii8+PHBhdGggZD0iTTEwLjUgMTAuNUwxNCAxNCIvPjwvc3ZnPic7dmFyIHg9Zi5wYXR0ZXJufHwiIixTPWYucGF0aHx8aXx8IiI7eT14LHc9U31lbHNlIGlmKG49PT0iR3JlcCIpe209JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjYuNSIgY3k9IjYuNSIgcj0iNC41Ii8+PHBhdGggZD0iTTExLjUgMTEuNUwxNSAxNSIvPjwvc3ZnPic7dmFyIHg9Zi5wYXR0ZXJufHwiIixTPWYucGF0aHx8aXx8IiI7eT14LHc9UyxmLmNvbnRleHQmJih3Kz0iIC1DIitmLmNvbnRleHQpfWVsc2UgaWYobj09PSJXZWJGZXRjaCIpe209JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjgiIGN5PSI4IiByPSI2LjUiLz48cGF0aCBkPSJNOCAxLjV2MTNNMS41IDhoMTMiLz48L3N2Zz4nO3ZhciBfPWYudXJsfHwiIjt5PV8sdz1hfHwiIn1lbHNlIGlmKG49PT0iV2ViU2VhcmNoIil7bT0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PGNpcmNsZSBjeD0iNyIgY3k9IjciIHI9IjUiLz48cGF0aCBkPSJNMTAuNSAxMC41TDE0IDE0Ii8+PHBhdGggZD0iTTUgN2g0TTcgNXY0Ii8+PC9zdmc+Jzt2YXIgSz1mLnF1ZXJ5fHwiIjt5PUssdz1hfHwiIn1lbHNlIG49PT0iVG9kb1JlYWQiPyhtPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48cmVjdCB4PSIyIiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PHBhdGggZD0iTTUgOGwyIDIgNC00Ii8+PC9zdmc+Jyx5PSJcdThCRkJcdTUzRDZcdTVGODVcdTUyOUVcdTUyMTdcdTg4NjgiLHc9YXx8IiIpOihtPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iNi41Ii8+PHBhdGggZD0iTTggNXYzLjVNOCAxMWguMDEiLz48L3N2Zz4nLHk9R2Eobiksdz1hfHwiIik7aWYoaCl7dmFyIFk9ZC5zcGxpdChgCmApO1kubGVuZ3RoPjEwP0U9WS5zbGljZSgwLDEwKS5qb2luKGAKYCkrYApcdTIwMjZgOkU9ZH12YXIgST1wKGQpLEQ9cChFKSxMPWQsUD0iIix6PWM9PT1udWxsP3huKCJpbmxpbmVUb29scyIpOmM7aD9QPSc8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1leHBhbmRlZCIgc3R5bGU9ImRpc3BsYXk6ICcrKHo/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1yZXN1bHQiPicrJG8oZCxuKSsiPC9kaXY+PC9kaXY+Ijp2P1A9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWV4cGFuZGVkIiBzdHlsZT0iZGlzcGxheTogJysoej8iYmxvY2siOiJub25lIikrJzsiPjxkaXYgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdCBpbmxpbmUtdG9vbC1lcnJvciI+JytwKGR8fCJcdTY0Q0RcdTRGNUNcdTU5MzFcdThEMjUiKSsiPC9kaXY+PC9kaXY+Ijp0fHwoUD0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtZXhwYW5kZWQiIHN0eWxlPSJkaXNwbGF5OiAnKyh6PyJibG9jayI6Im5vbmUiKSsnOyI+PGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtbG9hZGluZyI+XHU3QjQ5XHU1Rjg1XHU1NENEXHU1RTk0XHUyMDI2PC9kaXY+PC9kaXY+Jyk7dmFyIFU9dCYmdC5fdHJ1bmNhdGVkPT09ITAsZWU9IiI7aWYobj09PSJSZWFkIil7dmFyIHRlPWYuZmlsZV9wYXRofHxmLnBhdGh8fGl8fCIiO2lmKHRlJiZ5dSh0ZSkpe3ZhciBhZT0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHRlKTtlZT0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtaW1hZ2UiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyI+PGltZyBjbGFzcz0iaW5saW5lLXRvb2wtaW1hZ2UtdGh1bWIiIGxvYWRpbmc9ImxhenkiIHNyYz0iJythZSsnIiBhbHQ9IicrcChCKSsnIiBkYXRhLXBhdGg9IicrcCh0ZSkrYCIgb25jbGljaz0iZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGlmKHdpbmRvdy5fX29wZW5GaWxlUHJldmlldyl3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcodGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGF0aCcpKTsiIG9uZXJyb3I9InZhciB3PXRoaXMuY2xvc2VzdCgnLmlubGluZS10b29sLWltYWdlJyk7IGlmKHcpdy5zdHlsZS5kaXNwbGF5PSdub25lJzsiIC8+PC9kaXY+YH19dmFyIHVlPXc/JzxzcGFuIGNsYXNzPSJpbmxpbmUtdG9vbC1tZXRhIj4nK3AodykrIjwvc3Bhbj4iOiIiLFQ9dj8iaW5saW5lLXRvb2wtZXJyb3ItaW5saW5lIjoiIjt6JiYoVCs9IiBpbmxpbmUtdG9vbC1vcGVuIik7dmFyIE09VT8nZGF0YS10cnVuY2F0ZWQ9InRydWUiIGRhdGEtdG9vbC11c2UtaWQ9IicrcChlLmlkfHwiIikrJyIgJzoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wgJytUKyciIGRhdGEtZXhwYW5kLWtpbmQ9ImlubGluZS10b29sIiBkYXRhLWV4cGFuZC1rZXk9IicrcChsKSsnIiBkYXRhLXJlc3VsdD0iJytwKEwpKyciIGRhdGEtcHJldmlldz0iJytEKyciIGRhdGEtc3RhdHVzPSInKyh2PyJlcnJvciI6aD8iZG9uZSI6InBlbmRpbmciKSsnIiAnK00rJ29uY2xpY2s9Il9faW5saW5lVG9vbFRvZ2dsZSh0aGlzKSI+PGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcm93Ij48c3BhbiBjbGFzcz0iaW5saW5lLXRvb2wtc3RhdHVzIj4nK2crIjwvc3Bhbj4iK20rJzxzcGFuIGNsYXNzPSJpbmxpbmUtdG9vbC10aXRsZSI+JytwKHkpKyI8L3NwYW4+Iit1ZSsiPC9kaXY+IitlZStQKyI8L2Rpdj4ifWZ1bmN0aW9uIEt2KGUsdCxuLGksYSl7dmFyIHU9ZS5pbnB1dHx8e30scz11LmNvbW1hbmR8fHUuY21kfHwiIixvPXZuKHQmJnQuY29udGVudCksbD1lLmlkfHwidG9vbC0iK24sYz1QdCgidGVybWluYWwiLFtpLGx8fGEsYV0pLGY9WmUoYyksZD10JiZ0LmlzX2Vycm9yLHY9dS5leGl0Q29kZSxoPW8ubGVuZ3RoPjAsZz0iIjt0P2Q/Zz0nPHNwYW4gY2xhc3M9InRlcm0tc3RhdHVzLWRvdCB0ZXJtLWVycm9yIj48L3NwYW4+Jzp2PT09MHx8dj09PXZvaWQgMD9nPSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0tc3VjY2VzcyI+PC9zcGFuPic6Zz0nPHNwYW4gY2xhc3M9InRlcm0tc3RhdHVzLWRvdCB0ZXJtLXdhcm4iPjwvc3Bhbj4nOmc9JzxzcGFuIGNsYXNzPSJ0ZXJtLXN0YXR1cy1kb3QgdGVybS1ydW5uaW5nIj48L3NwYW4+Jztmb3IodmFyIG09JzxzcGFuIGNsYXNzPSJ0ZXJtLXByb21wdCI+JDwvc3Bhbj4nLHk9cChzKSx3PW8uc3BsaXQoYApgKSxFPSIiLEI9MDtCPHcubGVuZ3RoO0IrKyl7dmFyIEY9d1tCXTshRiYmQj09PXcubGVuZ3RoLTF8fChFKz0nPGRpdiBjbGFzcz0idGVybS1saW5lIj4nK3AoRikrIjwvZGl2PiIpfXZhciB4PSIiO2lmKHQmJnYhPT12b2lkIDApe3ZhciBTPXY9PT0wPyJ0ZXJtLWV4aXQtc3VjY2VzcyI6InRlcm0tZXhpdC1lcnJvciI7eD0nPGRpdiBjbGFzcz0idGVybS1leGl0ICcrUysnIj5leGl0ICcrdisiPC9kaXY+In12YXIgXz1zLmxlbmd0aD44MD9zLnNsaWNlKDAsNzcpKyJcdTIwMjYiOnMsSz1mPT09bnVsbD94bigidGVybWluYWwiKTpmLFk9dCYmdC5fdHJ1bmNhdGVkPT09ITAsST1ZPycgZGF0YS10cnVuY2F0ZWQ9InRydWUiIGRhdGEtdG9vbC11c2UtaWQ9IicrcChlLmlkfHwiIikrJyInOiIiO3JldHVybic8ZGl2IGNsYXNzPSJpbmxpbmUtdGVybWluYWwiIGRhdGEtZXhwYW5kLWtpbmQ9InRlcm1pbmFsIiBkYXRhLWV4cGFuZC1rZXk9IicrcChjKSsnIiBkYXRhLWV4cGFuZGVkPSInKyhLPyJ0cnVlIjoiZmFsc2UiKSsnIicrSSsnPjxkaXYgY2xhc3M9InRlcm0taGVhZGVyIiBvbmNsaWNrPSJfX3Rlcm1pbmFsRXhwYW5kKHRoaXMpIj4nK2crJzxzcGFuIGNsYXNzPSJ0ZXJtLWNtZC1wcmV2aWV3Ij48c3BhbiBjbGFzcz0idGVybS1wcm9tcHQiPiQ8L3NwYW4+ICcrcChfKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJ0ZXJtLXRvZ2dsZS1pY29uIj4nKyhLPyJcdTI1QkMiOiJcdTI1QjYiKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRlcm0tYm9keSIgc3R5bGU9ImRpc3BsYXk6JysoSz8iYmxvY2siOiJub25lIikrJzsiPjxkaXYgY2xhc3M9InRlcm0tY29tbWFuZCI+PHNwYW4gY2xhc3M9InRlcm0tcHJvbXB0Ij4kPC9zcGFuPiAnK3krIjwvZGl2PiIrKEU/JzxkaXYgY2xhc3M9InRlcm0tb3V0cHV0Ij4nK0UrIjwvZGl2PiI6IiIpK3grIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gdm4oZSl7cmV0dXJuIGU/dHlwZW9mIGU9PSJzdHJpbmciP2U6QXJyYXkuaXNBcnJheShlKT9lLm1hcChmdW5jdGlvbih0KXtpZighdHx8dHlwZW9mIHQhPSJvYmplY3QiKXJldHVybiIiO2lmKHQudHlwZT09PSJ0ZXh0IiYmdHlwZW9mIHQudGV4dD09InN0cmluZyIpcmV0dXJuIHQudGV4dDt0cnl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpfWNhdGNoe3JldHVybiIifX0pLmZpbHRlcihCb29sZWFuKS5qb2luKGAKYCk6IiI6IiJ9ZnVuY3Rpb24gSnYoZSx0LG4saSxhKXt2YXIgdT1lLmlucHV0fHx7fSxzPXUuZmlsZV9wYXRofHx1LnBhdGh8fCIiLG89cy5zcGxpdCgiLyIpLnBvcCgpfHxzLGw9ZS5pZHx8InRvb2wtIituKyItIisodHlwZW9mIGE9PSJudW1iZXIiP2E6MCksYz11Lm9sZF9zdHJpbmd8fCIiLGY9dS5uZXdfc3RyaW5nfHx1LmNvbnRlbnR8fCIiLGQ9dS5vbGRfY29udGVudHx8IiIsdj11Lm5ld19jb250ZW50fHwiIixoPW49PT0iV3JpdGUifHxuPT09Ik11bHRpRWRpdCIsZz10JiZ0LmlzX2Vycm9yLG09dm4odCYmdC5jb250ZW50KSx5PSEhKG0mJm0udHJpbSgpLmxlbmd0aD4wKSx3PSIiLEU9IiI7aD9FPSc8ZGl2IGNsYXNzPSJkaWZmLWxpbmUgZGlmZi1hZGQiPisgJytwKHYpKyI8L2Rpdj4iOihjJiYodz0nPGRpdiBjbGFzcz0iZGlmZi1saW5lIGRpZmYtcmVtb3ZlIj4tICcrcChjKSsiPC9kaXY+IiksZiYmKEU9JzxkaXYgY2xhc3M9ImRpZmYtbGluZSBkaWZmLWFkZCI+KyAnK3AoZikrIjwvZGl2PiIpKTt2YXIgQj0iIixGPSIiO3Q/Zz8oQj0iZGlmZi1lcnJvciIsRj1tLmluZGV4T2YoImhhdmVuJ3QgZ3JhbnRlZCIpIT09LTF8fG0uaW5kZXhPZigicGVybWlzc2lvbiIpIT09LTE/Ilx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0MyI6Ilx1NTkzMVx1OEQyNSIpOihCPSJkaWZmLXN1Y2Nlc3MiLEY9Ilx1NURGMlx1NEZFRVx1NjUzOSIpOihCPSJkaWZmLXBlbmRpbmciLEY9Ilx1NjI2N1x1ODg0Q1x1NEUyRCIpO3ZhciB4PVB0KCJkaWZmIixbaSxsfHxhLGFdKSxTPVplKHgpLF89eG4oImVkaXRDYXJkcyIpLEs9Uz09PW51bGw/Qj09PSJkaWZmLXBlbmRpbmcifHxfOlMsWT1LPyIiOiIgY29sbGFwc2VkIixJPXcmJkUsRD1JPyJkaWZmLWNvbC1oYWxmIjoiZGlmZi1jb2wtZnVsbCI7cmV0dXJuJzxkaXYgY2xhc3M9ImlubGluZS1kaWZmJytZKyciIGRhdGEtdG9vbC1uYW1lPSInK3AobikrJyIgZGF0YS1leHBhbmQta2luZD0iZGlmZiIgZGF0YS1leHBhbmQta2V5PSInK3AoeCkrJyIgZGF0YS10b29sLXVzZS1pZD0iJytwKGwpKyciPjxkaXYgY2xhc3M9ImRpZmYtaGVhZGVyIiBvbmNsaWNrPSJfX3RjVG9nZ2xlKGV2ZW50LHRoaXMpIj48c3BhbiBjbGFzcz0iZGlmZi1maWxlLWljb24iPjwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1maWxlLW5hbWUiPicrcChvKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLXBhdGgiPicrcChzKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLXN0YXR1cyAnK0IrJyI+JytGKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtdG9nZ2xlIj5cdTI1QkM8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iZGlmZi1ib2R5Ij48ZGl2IGNsYXNzPSJkaWZmLWNvbHVtbnMiPicrKEk/JzxkaXYgY2xhc3M9ImRpZmYtY29sICcrRCsnIj48ZGl2IGNsYXNzPSJkaWZmLWNvbC1sYWJlbCI+XHU2NUU3PC9kaXY+Jyt3KyI8L2Rpdj4iOiIiKSsnPGRpdiBjbGFzcz0iZGlmZi1jb2wgJytEKyciPjxkaXYgY2xhc3M9ImRpZmYtY29sLWxhYmVsIj4nKyhJPyJcdTY1QjAiOiIiKSsiPC9kaXY+IisoRXx8dykrIjwvZGl2PjwvZGl2PjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gJG8oZSx0KXtyZXR1cm4gZT8nPHByZSBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0LXRleHQiIHN0eWxlPSJtYXgtaGVpZ2h0OiAzMDBweDsgb3ZlcmZsb3cteTogYXV0bzsiPicrcChlKSsiPC9wcmU+IjonPHNwYW4gY2xhc3M9ImlubGluZS10b29sLWVtcHR5Ij5cdTY1RTBcdThGOTNcdTUxRkE8L3NwYW4+J31mdW5jdGlvbiBHdihlLHQsbixpKXt2YXIgYT1lLm5hbWV8fCJ1bmtub3duIix1PWUuaWR8fCJ0b29sLSIrYSsiLSIrKHR5cGVvZiBuPT0ibnVtYmVyIj9uOjApLHM9UXYoYSxlLmlucHV0KTtpZihhPT09IlJlYWQifHxhPT09Ikdsb2IifHxhPT09IkdyZXAifHxhPT09IldlYkZldGNoInx8YT09PSJXZWJTZWFyY2gifHxhPT09IlRvZG9SZWFkIilyZXR1cm4gVnYoZSx0LGEscywiIixpLG4pO2lmKGE9PT0iQmFzaCIpcmV0dXJuIEt2KGUsdCxhLGksbik7aWYoYT09PSJFZGl0Inx8YT09PSJXcml0ZSJ8fGE9PT0iTXVsdGlFZGl0IilyZXR1cm4gSnYoZSx0LGEsaSxuKTtpZihhPT09IkFza1VzZXJRdWVzdGlvbiImJmUuaW5wdXQmJmUuaW5wdXQucXVlc3Rpb25zKXt2YXIgbz1lLmlucHV0LnF1ZXN0aW9ucztpZihvJiZvLmxlbmd0aD4wKXtmb3IodmFyIGw9ISF0LGM9ci5hc2tVc2VyU2VsZWN0aW9uc1t1XXx8e30sZj0hIWMuc3VibWl0dGVkLGQ9bD92bih0LmNvbnRlbnQpOiIiLHY9ZD9kLnRyaW0oKS5zcGxpdChgCmApOltdLGg9IiIsZz0wO2c8by5sZW5ndGg7ZysrKWlmKG9bZ10uaGVhZGVyKXtoPW9bZ10uaGVhZGVyO2JyZWFrfXZhciBtPWg/JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1zdW1tYXJ5Ij4nK3AoaCkrIjwvc3Bhbj4iOiIiLHk9IiI7by5mb3JFYWNoKGZ1bmN0aW9uKHEsVWUpe3ZhciB2dD0hIXEubXVsdGlTZWxlY3Qsd3Q9cS5xdWVzdGlvbj8nPGRpdiBjbGFzcz0iYXNrLXVzZXItdGl0bGUiPicrcChxLnF1ZXN0aW9uKSsiPC9kaXY+IjoiIixXPSIiO3Eub3B0aW9ucyYmcS5vcHRpb25zLmxlbmd0aD4wJiYoVz0nPGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9ucyIgZGF0YS1tdWx0aS1zZWxlY3Q9IicrdnQrJyI+JyxxLm9wdGlvbnMuZm9yRWFjaChmdW5jdGlvbihYLHBlKXt2YXIgeWU9WC5sYWJlbD9wKFgubGFiZWwpOiJcdTkwMDlcdTk4NzkgIisocGUrMSksQ2U9WC5kZXNjcmlwdGlvbj8nPGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWRlc2MiPicrcChYLmRlc2NyaXB0aW9uKSsiPC9kaXY+IjoiIjtpZihsKXt2YXIgbXQ9dltVZV18fHZbMF18fCIiLG90PW10LnNwbGl0KCIsIikubWFwKGZ1bmN0aW9uKGx0KXtyZXR1cm4gbHQudHJpbSgpfSksZ3Q9b3QuaW5kZXhPZihYLmxhYmVsfHwiIikhPT0tMTtXKz0nPGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uIGFzay11c2VyLW9wdGlvbi1yZWFkb25seScrKGd0PyIgYXNrLXVzZXItb3B0aW9uLWNob3NlbiI6IiIpKyciPjxzcGFuIGNsYXNzPSJhc2stdXNlci1pbmRpY2F0b3IiPjwvc3Bhbj48ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tY29udGVudCI+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWxhYmVsIj4nK3llKyI8L2Rpdj4iK0NlKyI8L2Rpdj48L2Rpdj4ifWVsc2V7dmFyIFZlPShjW1VlXXx8W10pLmluZGV4T2YocGUpIT09LTEsaHQ9Zj8iIGRpc2FibGVkIjoiIjtXKz0nPGJ1dHRvbiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uJysoVmU/IiBzZWxlY3RlZCI6IiIpKyciIGRhdGEtb3B0aW9uLWluZGV4PSInK3BlKyciIGRhdGEtcXVlc3Rpb24taW5kZXg9IicrVWUrJyIgZGF0YS1vcHRpb24tbGFiZWw9IicrcChYLmxhYmVsfHwiXHU5MDA5XHU5ODc5ICIrKHBlKzEpKStgIiBvbmNsaWNrPSJfX2Fza1NlbGVjdCgnYCtwKHUpKyInLCIrVWUrIiwiK3BlKyIsIit2dCsnKSInK2h0Kyc+PHNwYW4gY2xhc3M9ImFzay11c2VyLWluZGljYXRvciI+PC9zcGFuPjxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1jb250ZW50Ij48ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tbGFiZWwiPicreWUrIjwvZGl2PiIrQ2UrIjwvZGl2PjwvYnV0dG9uPiJ9fSksVys9IjwvZGl2PiIpLHkrPSc8ZGl2IGNsYXNzPSJhc2stdXNlci1xdWVzdGlvbi1ncm91cCIgZGF0YS1xdWVzdGlvbi1pbmRleD0iJytVZSsnIj4nK3d0K1crIjwvZGl2PiJ9KTt2YXIgdz0iIjtpZighbCl7Zm9yKHZhciBFPSEwLEI9MDtCPG8ubGVuZ3RoO0IrKylpZighY1tCXXx8Y1tCXS5sZW5ndGg9PT0wKXtFPSExO2JyZWFrfXZhciBGPSFFfHxmPyIgZGlzYWJsZWQiOiIiLHg9Zj8iIGFzay11c2VyLXN1Ym1pdHRlZCI6IiIsUz1mPyJcdTVERjJcdTYzRDBcdTRFQTQuLi4iOiJcdTc4NkVcdThCQTRcdTYzRDBcdTRFQTQiO3c9JzxkaXYgY2xhc3M9ImFzay11c2VyLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImFzay11c2VyLXN1Ym1pdCcreCsnIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AodSkrYCIgb25jbGljaz0iX19hc2tTdWJtaXQoJ2ArcCh1KStgJykiYCtGKyI+IitTKyI8L2J1dHRvbj48L2Rpdj4ifXZhciBfPSIiO2lmKGwmJmQpe3ZhciBLPWQudHJpbSgpLnJlcGxhY2UoL1xuL2csIiwgIik7Sy5sZW5ndGg+NDAmJihLPUsuc2xpY2UoMCwzNykrIi4uLiIpLF89JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1maWxlIj4nK3AoSykrIjwvc3Bhbj4ifXZhciBZPVB0KCJ0b29sLWNhcmQiLFtpLHVdKSxJPVplKFkpLEQ9ST09PW51bGw/IWw6SSxMPUQ/IiI6IiBjb2xsYXBzZWQiLFA9bD8iIGFzay11c2VyLWFuc3dlcmVkIjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0idG9vbC11c2UtY2FyZCBhc2stdXNlcicrUCtMKyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcCh1KSsnIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWNhcmQiIGRhdGEtZXhwYW5kLWtleT0iJytwKFkpKyciPjxkaXYgY2xhc3M9InRvb2wtdXNlLWhlYWRlciIgZGF0YS10b29sLXRvZ2dsZSBvbmNsaWNrPSJfX3RjVG9nZ2xlKGV2ZW50LHRoaXMpIj48c3BhbiBjbGFzcz0idG9vbC11c2UtaWNvbiI+JysobD8iXHUyNzEzIjoiPyIpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRvb2wtdXNlLW5hbWUiPlx1NjNEMFx1OTVFRTwvc3Bhbj4nK20rXysnPHNwYW4gY2xhc3M9InRvb2wtdXNlLXRvZ2dsZSI+XHUyNUJDPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtdXNlLWJvZHkgYXNrLXVzZXItYm9keSI+Jyt5K3crIjwvZGl2PjwvZGl2PiJ9fXZhciB6PWUuZGVzY3JpcHRpb258fGUuaW5wdXQmJmUuaW5wdXQuZGVzY3JpcHRpb258fCIiLFU9WXYoZS5uYW1lLGUuaW5wdXQpLGVlPSIiLHRlPSIiO3o/KGVlPXoubGVuZ3RoPjgwP3ouc2xpY2UoMCw3NykrIi4uLiI6eixzJiYodGU9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1maWxlIj4nK3AocykrIjwvc3Bhbj4iKSk6KGVlPUdhKGEpLHMmJih0ZT0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLWZpbGUiPicrcChzKSsiPC9zcGFuPiIpLFUmJih0ZSs9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1zdW1tYXJ5Ij4nK3AoVSkrIjwvc3Bhbj4iKSk7dmFyIGFlPWUuaW5wdXQ/SlNPTi5zdHJpbmdpZnkoZS5pbnB1dCxudWxsLDIpOiJ7fSIsdWU9ImxvYWRpbmciLFQ9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1zcGlubmVyIj48L3NwYW4+JyxNPSIiO2lmKHQpe3ZhciBOPXQuaXNfZXJyb3IsSj12bih0LmNvbnRlbnQpO3VlPU4/ImVycm9yIjoic3VjY2VzcyIsVD1YbyhhKTt2YXIgRz1KJiZKLnRyaW0oKS5sZW5ndGg+MDtHP009JzxwcmUgY2xhc3M9InRvb2wtdXNlLXJlc3VsdC1jb250ZW50Ij4nK3AoSikrIjwvcHJlPiI6TT0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLXJlc3VsdC1lbXB0eSI+XHU2NUUwXHU4RjkzXHU1MUZBPC9zcGFuPid9ZWxzZSBUPVhvKGEpO3ZhciByZT1QdCgidG9vbC1jYXJkIixbaSx1XSksc2U9WmUocmUpLG9lPXhuKCJlZGl0Q2FyZHMiKSxuZT1zZT09PW51bGw/dWU9PT0ibG9hZGluZyJ8fG9lOnNlLHFlPXQmJnQuX3RydW5jYXRlZD09PSEwLERlPW5lPyIiOiIgY29sbGFwc2VkIixoZT0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLXRvZ2dsZSI+XHUyNUJDPC9zcGFuPic7cmV0dXJuJzxkaXYgY2xhc3M9InRvb2wtdXNlLWNhcmQgJyt1ZStEZSsnIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWNhcmQiIGRhdGEtZXhwYW5kLWtleT0iJytwKHJlKSsnIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AodSkrJyInKyhxZT8nIGRhdGEtdHJ1bmNhdGVkPSJ0cnVlIic6IiIpKyc+PGRpdiBjbGFzcz0idG9vbC11c2UtaGVhZGVyIiBkYXRhLXRvb2wtdG9nZ2xlIG9uY2xpY2s9Il9fdGNUb2dnbGUoZXZlbnQsdGhpcykiPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1pY29uIj4nK1QrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC11c2UtbmFtZSI+JytwKGVlKSsiPC9zcGFuPiIrdGUraGUrJzwvZGl2PjxkaXYgY2xhc3M9InRvb2wtdXNlLWJvZHkiPicrKHo/JzxkaXYgY2xhc3M9InRvb2wtdXNlLW1ldGEiPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1tZXRhLWxhYmVsIj5cdTVERTVcdTUxNzdcdUZGMUE8L3NwYW4+JytwKGEpKyI8L2Rpdj4iOiIiKSsnPHByZSBjbGFzcz0idG9vbC11c2UtY29udGVudCI+JytwKGFlKSsiPC9wcmU+IisoTT8nPGRpdiBjbGFzcz0idG9vbC11c2UtcmVzdWx0Ij4nK00rIjwvZGl2PiI6IiIpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIEdhKGUpe3ZhciB0PXtSZWFkOiJcdThCRkJcdTUzRDZcdTY1ODdcdTRFRjYiLFdyaXRlOiJcdTUxOTlcdTUxNjVcdTY1ODdcdTRFRjYiLEVkaXQ6Ilx1N0YxNlx1OEY5MVx1NjU4N1x1NEVGNiIsTXVsdGlFZGl0OiJcdTU5MUFcdTU5MDRcdTdGMTZcdThGOTEiLEJhc2g6Ilx1NjI2N1x1ODg0Q1x1NTQ3RFx1NEVFNCIsR3JlcDoiXHU2NDFDXHU3RDIyXHU1MTg1XHU1QkI5IixHbG9iOiJcdTY3RTVcdTYyN0VcdTY1ODdcdTRFRjYiLFdlYkZldGNoOiJcdTgzQjdcdTUzRDZcdTdGNTFcdTk4NzUiLFdlYlNlYXJjaDoiXHU2NDFDXHU3RDIyXHU3RjUxXHU5ODc1IixUYXNrOiJcdTRFRkJcdTUyQTEiLFRvZG9Xcml0ZToiXHU2NkY0XHU2NUIwXHU1Rjg1XHU1MjlFIixUb2RvUmVhZDoiXHU4QkZCXHU1M0Q2XHU1Rjg1XHU1MjlFIixOb3RlYm9va0VkaXQ6Ilx1N0YxNlx1OEY5MVx1N0IxNFx1OEJCMFx1NjcyQyIsQWdlbnQ6Ilx1NUI1MFx1NEVFM1x1NzQwNiIsQXNrVXNlclF1ZXN0aW9uOiJcdTYzRDBcdTk1RUUiLEV4aXQ6Ilx1OTAwMFx1NTFGQSJ9O3JldHVybiB0W2VdfHxlfWZ1bmN0aW9uIFhvKGUpe3ZhciB0PXtSZWFkOiJSIixXcml0ZToiVyIsRWRpdDoiRSIsTXVsdGlFZGl0OiJFIixCYXNoOiIkIixHcmVwOiJHIixHbG9iOiJGIixXZWJGZXRjaDoiXHUyMUUzIixXZWJTZWFyY2g6Ilx1MjFFMiIsVGFzazoiVCIsVG9kb1dyaXRlOiJcdTI2MTAiLFRvZG9SZWFkOiJcdTI2MTEiLE5vdGVib29rRWRpdDoiTiIsQWdlbnQ6IkEiLEV4aXQ6Ilx4RDcifTtyZXR1cm4gdFtlXXx8Ilx4QjcifWZ1bmN0aW9uIFl2KGUsdCl7aWYoIXR8fHR5cGVvZiB0IT0ib2JqZWN0IilyZXR1cm4iIjt2YXIgbj1PYmplY3Qua2V5cyh0KTtpZihuLmxlbmd0aD09PTApcmV0dXJuInt9IjtpZihlPT09IlJlYWQiKXJldHVybiJcdThCRkJcdTUzRDZcdTY1ODdcdTRFRjYiO2lmKGU9PT0iV3JpdGUiKXJldHVybiJcdTUxOTlcdTUxNjVcdTY1ODdcdTRFRjYiO2lmKGU9PT0iRWRpdCIpe3ZhciBpPXQuZWRpdHM/dC5lZGl0cy5sZW5ndGg6MDtyZXR1cm4iXHU3RjE2XHU4RjkxICgiK2krIiBcdTU5MDRcdTRGRUVcdTY1MzkpIn1pZihlPT09IkJhc2giKXt2YXIgYT10LmNvbW1hbmR8fCIiO2lmKGEpe3ZhciB1PWEubGVuZ3RoPjYwP2Euc2xpY2UoMCw2MCkrIi4uLiI6YTtyZXR1cm4iXHU1NDdEXHU0RUU0XHVGRjFBIit1fX1pZihlPT09IkdyZXAiKXt2YXIgcz10LnBhdHRlcm58fCIiLG89dC5wYXRofHwiIjtpZihzKXJldHVybiJcdTY0MUNcdTdEMjJcdUZGMUEiK3MrKG8/IiAoXHU1NzI4ICIrbysiKSI6IiIpfWlmKGU9PT0iR2xvYiIpe3ZhciBzPXQucGF0dGVybnx8IiI7aWYocylyZXR1cm4iXHU2N0U1XHU2MjdFXHVGRjFBIitzfWlmKGU9PT0iQWdlbnQiKXt2YXIgbD10LnByb21wdHx8dC50YXNrfHwiIjtpZihsKXt2YXIgYz1sLmxlbmd0aD40MD9sLnNsaWNlKDAsNDApKyIuLi4iOmw7cmV0dXJuIlx1NEVGQlx1NTJBMVx1RkYxQSIrY319aWYoZT09PSJUYXNrIil7dmFyIGw9dC50YXNrfHx0LmRlc2NyaXB0aW9ufHwiIjtpZihsKXt2YXIgYz1sLmxlbmd0aD40MD9sLnNsaWNlKDAsNDApKyIuLi4iOmw7cmV0dXJuIlx1NEVGQlx1NTJBMVx1RkYxQSIrY319aWYoZT09PSJUb2RvV3JpdGUiKXt2YXIgZj10LnRvZG9zfHxbXTtyZXR1cm4iXHU2NkY0XHU2NUIwXHU1Rjg1XHU1MjlFICgiK2YubGVuZ3RoKyIgXHU5ODc5KSJ9aWYoZT09PSJXZWJTZWFyY2giKXt2YXIgZD10LnF1ZXJ5fHwiIjtpZihkKXJldHVybiJcdTY0MUNcdTdEMjJcdUZGMUEiK2R9dmFyIHY9blswXSxoPXRbdl07aWYodHlwZW9mIGg9PSJzdHJpbmciKXt2YXIgZz1oLmxlbmd0aD41MD9oLnNsaWNlKDAsNTApKyIuLi4iOmg7cmV0dXJuIHYrIjogIitnfXJldHVybiBuLmxlbmd0aCsiIFx1NEUyQVx1NTNDMlx1NjU3MCJ9ZnVuY3Rpb24gUXYoZSx0KXtpZighdClyZXR1cm4gbnVsbDt2YXIgbj10LmZpbGVfcGF0aHx8dC5wYXRofHx0LmN3ZDtyZXR1cm4gbj9uLmxlbmd0aD41MD8iLi4uIituLnNsaWNlKC00Nyk6bjpudWxsfWZ1bmN0aW9uICR2KGUpe2lmKCFlKXJldHVybiIiO2Zvcih2YXIgdD1gCmAsbj1lLnNwbGl0KHQpLGk9W10sYT0hMSx1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBzPW5bdV0sbz1zLnRyaW0oKTtpZighKCFhJiYhbykpe2lmKGE9ITAsby5pbmRleE9mKCJcdTIzRkEiKT09PTAmJm8ubGVuZ3RoPjIpe2kucHVzaChvLnNsaWNlKDEpLnRyaW0oKSk7Y29udGludWV9aWYoby5pbmRleE9mKCJcdTI1Q0YiKT09PTApe2lmKG89by5zbGljZSgxKS50cmltKCksIW8pY29udGludWU7cz1vfWkucHVzaChzKX19Zm9yKDtpLmxlbmd0aD4wJiYhaVtpLmxlbmd0aC0xXS50cmltKCk7KWkucG9wKCk7Zm9yKHZhciBsPVtdLGM9e30sZj0wO2Y8aS5sZW5ndGg7ZisrKXt2YXIgZD1pW2ZdLnJlcGxhY2UoL1xzKy9nLCIiKTtkLmxlbmd0aD41JiZjW2RdfHwoZC5sZW5ndGg+NSYmKGNbZF09ITApLGwucHVzaChpW2ZdKSl9cmV0dXJuIGwuam9pbih0KX1mdW5jdGlvbiBabyhlKXt2YXIgdD1gCmAsbj1lLnNwbGl0KHQpLGk9W10sYT0wO2Z1bmN0aW9uIHUobSl7dmFyIHk9bS50cmltKCk7cmV0dXJuIHkuY2hhckF0KDApPT09InwiJiYoeT15LnNsaWNlKDEpKSx5LmNoYXJBdCh5Lmxlbmd0aC0xKT09PSJ8IiYmKHk9eS5zbGljZSgwLC0xKSkseS5zcGxpdCgifCIpfWZ1bmN0aW9uIHMobSl7cmV0dXJuIG0/JyBzdHlsZT0idGV4dC1hbGlnbjonK20rJyInOiIifWZ1bmN0aW9uIG8obSx5LHcpe3ZhciBFPSI8dGhlYWQ+PHRyPiIrbS5tYXAoZnVuY3Rpb24oRix4KXtyZXR1cm4iPHRoIitzKHlbeF0pKyI+IitGLnRyaW0oKSsiPC90aD4ifSkuam9pbigiIikrIjwvdHI+PC90aGVhZD4iLEI9dy5sZW5ndGg/Ijx0Ym9keT4iK3cubWFwKGZ1bmN0aW9uKEYpe3JldHVybiI8dHI+IitGLm1hcChmdW5jdGlvbih4LFMpe3JldHVybiI8dGQiK3MoeVtTXSkrIj4iK3gudHJpbSgpKyI8L3RkPiJ9KS5qb2luKCIiKSsiPC90cj4ifSkuam9pbigiIikrIjwvdGJvZHk+IjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0ibWQtdGFibGUtd3JhcCI+PHRhYmxlIGNsYXNzPSJtZC10YWJsZSI+JytFK0IrIjwvdGFibGU+PC9kaXY+In1mb3IoO2E8bi5sZW5ndGg7KXt2YXIgbD1uW2FdO2lmKGwuaW5kZXhPZigifCIpIT09LTEmJmErMTxuLmxlbmd0aCl7dmFyIGM9blthKzFdLnRyaW0oKTtpZigvXlx8P1xzKjo/LSs6PyhccypcfFxzKjo/LSs6PykrXHMqXHw/JC8udGVzdChjKSl7Zm9yKHZhciBmPXUobCksZD11KGMpLm1hcChmdW5jdGlvbihtKXt2YXIgeT1tLnRyaW0oKSx3PXkuY2hhckF0KDApPT09IjoiLEU9eS5jaGFyQXQoeS5sZW5ndGgtMSk9PT0iOiI7cmV0dXJuIHcmJkU/ImNlbnRlciI6RT8icmlnaHQiOnc/ImxlZnQiOiIifSksdj1bXSxoPWErMjtoPG4ubGVuZ3RoOyl7dmFyIGc9bltoXS50cmltKCk7aWYoIWd8fGcuaW5kZXhPZigifCIpPT09LTEpYnJlYWs7di5wdXNoKHUobltoXSkpLGgrPTF9aS5wdXNoKCIiLG8oZixkLHYpLCIiKSxhPWg7Y29udGludWV9fWkucHVzaChsKSxhKz0xfXJldHVybiBpLmpvaW4odCl9ZnVuY3Rpb24gWWEoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9cChlKSxuPSJgIixpPWAKYDtmdW5jdGlvbiBhKFQsTSxOLEope2Zvcih2YXIgRz0wOzspe3ZhciByZT1ULmluZGV4T2YoTSxHKTtpZihyZT09PS0xKWJyZWFrO3ZhciBzZT1ULmluZGV4T2YoTSxyZStNLmxlbmd0aCk7aWYoc2U9PT0tMSlicmVhazt2YXIgb2U9VC5zbGljZShyZStNLmxlbmd0aCxzZSk7aWYoIW9lKXtHPXNlK00ubGVuZ3RoO2NvbnRpbnVlfXZhciBuZT1OK29lK0o7VD1ULnNsaWNlKDAscmUpK25lK1Quc2xpY2Uoc2UrTS5sZW5ndGgpLEc9cmUrbmUubGVuZ3RofXJldHVybiBUfWZ1bmN0aW9uIHUoVCl7cmV0dXJuIFQ+PTQ4JiZUPD01N3x8VD49NjUmJlQ8PTkwfHxUPj05NyYmVDw9MTIyfHxUPT09OTV9ZnVuY3Rpb24gcyhULE0sTil7Zm9yKHZhciBKPTA7SjxULmxlbmd0aDspe3ZhciBHPVQuaW5kZXhPZigiXyIsSik7aWYoRz09PS0xKWJyZWFrO3ZhciByZT1HPjA/VC5jaGFyQ29kZUF0KEctMSk6MDtpZih1KHJlKSl7Sj1HKzE7Y29udGludWV9Zm9yKHZhciBzZT1HKzEsb2U9LTE7c2U8VC5sZW5ndGg7KXt2YXIgbmU9VC5pbmRleE9mKCJfIixzZSk7aWYobmU9PT0tMSlicmVhazt2YXIgcWU9bmUrMSxEZT1xZTxULmxlbmd0aD9ULmNoYXJDb2RlQXQocWUpOjA7aWYoIXUoRGUpKXtvZT1uZTticmVha31zZT1uZSsxfWlmKG9lPT09LTEpYnJlYWs7dmFyIGhlPVQuc2xpY2UoRysxLG9lKTtpZighaGUpe0o9b2UrMTtjb250aW51ZX12YXIgcT1NK2hlK047VD1ULnNsaWNlKDAsRykrcStULnNsaWNlKG9lKzEpLEo9RytxLmxlbmd0aH1yZXR1cm4gVH1mdW5jdGlvbiBvKFQsTSxOLEope3JldHVybiBULnNwbGl0KGkpLm1hcChmdW5jdGlvbihHKXtyZXR1cm4gRy5pbmRleE9mKE0pIT09MD9HOk4rRy5zbGljZShNLmxlbmd0aCkrSn0pLmpvaW4oaSl9ZnVuY3Rpb24gbChUKXtyZXR1cm4gVC5zcGxpdChpKS5tYXAoZnVuY3Rpb24oTSl7dmFyIE49TS5pbmRleE9mKCIuICIpO2lmKE48PTApcmV0dXJuIE07Zm9yKHZhciBKPTA7SjxOO0orPTEpe3ZhciBHPU0uY2hhckNvZGVBdChKKTtpZihHPDQ4fHxHPjU3KXJldHVybiBNfXJldHVybiI8bGk+IitNLnNsaWNlKE4rMikrIjwvbGk+In0pLmpvaW4oaSl9ZnVuY3Rpb24gYyhUKXtyZXR1cm4gVC5zcGxpdChpK2kpLm1hcChmdW5jdGlvbihNKXt2YXIgTj1NLnRyaW0oKTtyZXR1cm4gTj9OLmluZGV4T2YoIjxkaXYiKT09PTB8fE4uaW5kZXhPZigiPGgxIik9PT0wfHxOLmluZGV4T2YoIjxoMiIpPT09MHx8Ti5pbmRleE9mKCI8aDMiKT09PTB8fE4uaW5kZXhPZigiPGg0Iik9PT0wfHxOLmluZGV4T2YoIjxoNSIpPT09MHx8Ti5pbmRleE9mKCI8aDYiKT09PTB8fE4uaW5kZXhPZigiPHVsIik9PT0wfHxOLmluZGV4T2YoIjxvbCIpPT09MHx8Ti5pbmRleE9mKCI8bGkiKT09PTB8fE4uaW5kZXhPZigiPGJsb2NrcXVvdGUiKT09PTB8fE4uaW5kZXhPZigiPHByZSIpPT09MD9OOiI8cD4iK04uc3BsaXQoaSkuam9pbigiPGJyPiIpKyI8L3A+IjoiIn0pLmpvaW4oIiIpfWZvcih2YXIgZj0wOzspe3ZhciBkPXQuaW5kZXhPZihuK24rbixmKTtpZihkPT09LTEpYnJlYWs7dmFyIHY9dC5pbmRleE9mKG4rbituLGQrMyk7aWYodj09PS0xKWJyZWFrO3ZhciBoPXQuc2xpY2UoZCszLHYpLGc9aC5pbmRleE9mKGkpLG09IiIseT1oO2lmKGchPT0tMSYmZzwzMCl7Zm9yKHZhciB3PWguc2xpY2UoMCxnKS50cmltKCksRT13Lmxlbmd0aD4wLEI9MDtCPHcubGVuZ3RoO0IrPTEpe3ZhciBGPXcuY2hhckNvZGVBdChCKSx4PUY+PTQ4JiZGPD01NyxTPUY+PTY1JiZGPD05MCxfPUY+PTk3JiZGPD0xMjI7aWYoIXgmJiFTJiYhXyl7RT0hMTticmVha319RSYmKG09dyx5PWguc2xpY2UoZysxKSl9dmFyIEs9WHYoeS50cmltKCksbSksWT1LLnJlcGxhY2UoL18vZywiJiM5NTsiKS5yZXBsYWNlKC9cKi9nLCImIzQyOyIpLEk9JzxkaXYgY2xhc3M9ImNvZGUtYmxvY2siPjxkaXYgY2xhc3M9ImNvZGUtYmxvY2staGVhZGVyIj48c3BhbiBjbGFzcz0iY29kZS1sYW5nIj4nKyhtfHwiY29kZSIpKyc8L3NwYW4+PGJ1dHRvbiBjbGFzcz0iY29kZS1jb3B5Ij5Db3B5PC9idXR0b24+PC9kaXY+PHByZT48Y29kZT4nK1krIjwvY29kZT48L3ByZT48L2Rpdj4iO3Q9dC5zbGljZSgwLGQpK0krdC5zbGljZSh2KzMpLGY9ZCtJLmxlbmd0aH1mb3IoZj0wOzspe3ZhciBEPXQuaW5kZXhPZihuLGYpO2lmKEQ9PT0tMSlicmVhazt2YXIgTD10LmluZGV4T2YobixEKzEpO2lmKEw9PT0tMSlicmVhaztpZihMPT09RCsxKXtmPUwrMTtjb250aW51ZX12YXIgUD10LnNsaWNlKEQrMSxMKSx6PVAucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7IiksVT0nPGNvZGUgY2xhc3M9ImNvZGUtaW5saW5lIj4nK3orIjwvY29kZT4iO3Q9dC5zbGljZSgwLEQpK1UrdC5zbGljZShMKzEpLGY9RCtVLmxlbmd0aH10PWEodCwiKioiLCI8c3Ryb25nPiIsIjwvc3Ryb25nPiIpLHQ9YSh0LCIqIiwiPGVtPiIsIjwvZW0+IiksdD1zKHQsIjxlbT4iLCI8L2VtPiIpLHQ9byh0LCIjIyMgIiwiPGgzPiIsIjwvaDM+IiksdD1vKHQsIiMjICIsIjxoMj4iLCI8L2gyPiIpLHQ9byh0LCIjICIsIjxoMT4iLCI8L2gxPiIpLHQ9byh0LCImZ3Q7ICIsIjxibG9ja3F1b3RlPiIsIjwvYmxvY2txdW90ZT4iKSx0PW8odCwiLSAiLCI8bGk+IiwiPC9saT4iKSx0PW8odCwiKiAiLCI8bGk+IiwiPC9saT4iKSx0PWwodCksdD1abyh0KTt2YXIgZWU9dC5zcGxpdChpKSx0ZT1bXSxhZT1bXTtmdW5jdGlvbiB1ZSgpe2FlLmxlbmd0aCYmKHRlLnB1c2goIjx1bD4iK2FlLmpvaW4oIiIpKyI8L3VsPiIpLGFlPVtdKX1yZXR1cm4gZWUuZm9yRWFjaChmdW5jdGlvbihUKXtpZihULmluZGV4T2YoIjxsaT4iKT09PTAmJlQubGFzdEluZGV4T2YoIjwvbGk+Iik9PT1ULmxlbmd0aC01KXthZS5wdXNoKFQpO3JldHVybn11ZSgpLHRlLnB1c2goVCl9KSx1ZSgpLHQ9Yyh0ZS5qb2luKGkpKSwnPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+Jyt0KyI8L2Rpdj4ifWZ1bmN0aW9uIFh2KGUsdCl7cmV0dXJuIGU9ZS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IiksZX1mdW5jdGlvbiBRbihlKXt2YXIgdD1TdHJpbmcoZXx8IiIpLnRyaW0oKTtyZXR1cm4gdC5sZW5ndGg8PTI0P3R8fCJcdTY3MkFcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQiOnQuc2xpY2UoMCwyMSkrIi4uLiJ9ZnVuY3Rpb24gUWEoZSl7cmV0dXJuIFN0cmluZyhlfHwiIikucmVwbGFjZSgvXHJcclxuL2csYFxyCmApLnJlcGxhY2UoL1x1MDAwMC9nLCIiKX1mdW5jdGlvbiBadigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWhpbnQiKTtlJiZlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWh0dHAtbGluayIpO3QmJih0LmhyZWY9Imh0dHA6Ly8iK2xvY2F0aW9uLmhvc3QrbG9jYXRpb24ucGF0aG5hbWUsdC5zdHlsZS5kaXNwbGF5PWxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiI/IiI6Im5vbmUiKX1mdW5jdGlvbiBlbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWhpbnQiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfWZ1bmN0aW9uICRhKCl7aWYoIXIubG9naW5QZW5kaW5nKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1idXR0b24iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1lcnJvciIpOyFlfHwhdHx8IW58fChsaShuKSxlbSgpLGUuZGF0YXNldC5lcnJvcj0iZmFsc2UiLGUuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJmYWxzZSIpLHIubG9naW5QZW5kaW5nPSEwLHQuZGlzYWJsZWQ9ITAsdC50ZXh0Q29udGVudD0iXHU3NjdCXHU1RjU1XHU0RTJELi4uIixmZXRjaCgiL2FwaS9sb2dpbiIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwYXNzd29yZDplLnZhbHVlfSksY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuc3RhdHVzPT09NDI5PyhIZShuLCJcdTc2N0JcdTVGNTVcdTVDMURcdThCRDVcdTZCMjFcdTY1NzBcdThGQzdcdTU5MUFcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTUxOERcdThCRDVcdTMwMDIiKSxQcm9taXNlLnJlamVjdCgiaGFuZGxlZCIpKTppLm9rP2ZldGNoKCIvYXBpL2NvbmZpZyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KTooZS5kYXRhc2V0LmVycm9yPSJ0cnVlIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwidHJ1ZSIpLEhlKG4sIlx1NUJDNlx1NzgwMVx1OTUxOVx1OEJFRlx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpLFByb21pc2UucmVqZWN0KCJoYW5kbGVkIikpfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5vaz9pLmpzb24oKToobG9jYXRpb24ucHJvdG9jb2w9PT0iaHR0cHM6Ij9adigpOkhlKG4sIlx1NzY3Qlx1NUY1NVx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpLFByb21pc2UucmVqZWN0KCJoYW5kbGVkIikpfSkudGhlbihmdW5jdGlvbihpKXtyLmNvbmZpZz1pO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGF0dXMtZG90IiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhdHVzLXRleHQiKTtyZXR1cm4gYSYmYS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSx1JiYodS50ZXh0Q29udGVudD0iXHU1REYyXHU3NjdCXHU1RjU1IiksanQoKX0pLnRoZW4oZnVuY3Rpb24oKXtocygpLHRuKCl9KS5jYXRjaChmdW5jdGlvbihpKXtpIT09ImhhbmRsZWQiJiYoY29uc29sZS5lcnJvcigiW3dhbmRdIExvZ2luIGVycm9yOiIsaSksSGUobiwiXHU3NjdCXHU1RjU1XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1XHUzMDAyIikpfSkuZmluYWxseShmdW5jdGlvbigpe3IubG9naW5QZW5kaW5nPSExLHQuZGlzYWJsZWQ9ITEsdC50ZXh0Q29udGVudD0iXHU4RkRCXHU1MTY1XHU2M0E3XHU1MjM2XHU1M0YwIn0pKX19ZnVuY3Rpb24gWGEoKXtyZXR1cm4gdHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zd2l0Y2hTZXJ2ZXI9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gZWwoKXtpZihYYSgpKXRyeXtXYW5kTmF0aXZlLnN3aXRjaFNlcnZlcigpfWNhdGNoe319ZnVuY3Rpb24gdG0oKXtyZXR1cm4gdHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5iYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiI/ITA6dHlwZW9mIHdpbmRvdy5fX3dhbmRCYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gbm0oKXt0cnl7aWYodHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5iYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiIpe1dhbmROYXRpdmUuYmFja1RvTmF0aXZlKCk7cmV0dXJufXR5cGVvZiB3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlPT0iZnVuY3Rpb24iJiZ3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlKCl9Y2F0Y2h7fX1mdW5jdGlvbiB0bCgpe2ZldGNoKCIvYXBpL2xvZ291dCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLmNhdGNoKGZ1bmN0aW9uKCl7fSksQ3MoKSxUbighMSksTGEoKSxocigpLHIuY29uZmlnPW51bGwsci5zZWxlY3RlZElkPW51bGwsd2UoKSxyLnNlc3Npb25zPVtdLHIuY2xhdWRlSGlzdG9yeT1bXSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQ9ITEsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQ9ITEsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzPXt9LHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLHRuKCl9ZnVuY3Rpb24ganQoKXtyZXR1cm4gbW4oKX1mdW5jdGlvbiBaYShlKXtyZXR1cm4gZT09PSJmdWxsLWFjY2VzcyI/Ilx1NTE2OFx1Njc0M1x1OTY1MCI6ZT09PSJkZWZhdWx0Ij8iXHU5RUQ4XHU4QkE0IjplPT09Im5hdGl2ZSI/Ilx1NTM5Rlx1NzUxRiI6ZT09PSJhdXRvLWVkaXQiPyJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEiOmU9PT0ibWFuYWdlZCI/Ilx1NjI1OFx1N0JBMSI6ZX1mdW5jdGlvbiBudCgpe3JldHVybiByLnNlc3Npb25Ub29sfHxyLnByZWZlcnJlZENvbW1hbmR8fCJjbGF1ZGUifWZ1bmN0aW9uIHJtKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIGUmJmUucHJvdmlkZXJ8fHIucHJlZmVycmVkQ29tbWFuZHx8ImNsYXVkZSJ9ZnVuY3Rpb24gbmwoZSx0KXtyZXR1cm4gdD8iXHU5NTJFXHU3NkQ4XHU4RjkzXHU1MTY1XHU1QzA2XHU1M0QxXHU5MDAxXHU1MjMwXHU3RUM4XHU3QUVGIjplJiYoZS5zdGF0dXM9PT0iZXhpdGVkInx8ZS5zdGF0dXM9PT0iZmFpbGVkInx8ZS5zdGF0dXM9PT0ic3RvcHBlZCIpP3hhKGUpPyJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkZcdTRFRTVcdTdFRTdcdTdFRURcdTRGMUFcdThCREQiOiJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUYiOmllKGUpJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQ/Ilx1NTZERVx1NTkwRFx1NEUyRFx1RkYwQ1x1NTNFRlx1N0VFN1x1N0VFRFx1OEY5M1x1NTE2NSI6Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiJ9ZnVuY3Rpb24gcmwoZSx0KXtyZXR1cm4gZT09PSJjb2RleCI/IkNvZGV4IFx1NjUyRlx1NjMwMSBQVFkgXHU3RUM4XHU3QUVGXHU0RTBFXHU3RUQzXHU2Nzg0XHU1MzE2XHVGRjA4SlNPTkxcdUZGMDlcdTRFMjRcdTc5Q0RcdTRGMUFcdThCRERcdUZGMENcdTdFRDNcdTY3ODRcdTUzMTZcdTZBMjFcdTVGMEZcdTYzMDkgZnVsbC1hY2Nlc3MgXHU1NDJGXHU1MkE4XHUzMDAyIjp0PT09ImZ1bGwtYWNjZXNzIj8iXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU2NzQzXHU5NjUwXHU4QkY3XHU2QzQyXHU0RTBFXHU5QUQ4XHU2NzQzXHU5NjUwXHU2NENEXHU0RjVDXHVGRjBDXHU5MDAyXHU1NDA4XHU0RjYwXHU3ODZFXHU4QkE0XHU3M0FGXHU1ODgzXHU1Qjg5XHU1MTY4XHU1NDBFXHU3Njg0XHU4RkRFXHU3RUVEXHU0RkVFXHU2NTM5XHUzMDAyIjp0PT09ImF1dG8tZWRpdCI/Ilx1NEZERFx1NzU1OVx1NEVBNFx1NEU5Mlx1NUYwRlx1NEYxQVx1OEJERFx1RkYwQ1x1NTQwQ1x1NjVGNlx1NjZGNFx1NTA0Rlx1NTQxMVx1NzZGNFx1NjNBNVx1N0YxNlx1OEY5MVx1NEVFM1x1NzgwMVx1MzAwMiI6dD09PSJuYXRpdmUiPyJcdThDMDNcdTc1MjggQ2xhdWRlIFx1NTM5Rlx1NzUxRiBBUEkgXHU4RjkzXHU1MUZBXHVGRjBDXHU5MDAyXHU1NDA4XHU1RkVCXHU5MDFGXHU5NUVFXHU3QjU0XHU2MjE2XHU0RTAwXHU2QjIxXHU2MDI3XHU3NTFGXHU2MjEwXHUzMDAyIjp0PT09Im1hbmFnZWQiPyJBSSBcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTYyNDBcdTY3MDlcdTVERTVcdTRGNUNcdUZGMENcdTY1RTBcdTk3MDBcdTRFMkRcdTkwMTRcdTc4NkVcdThCQTRcdUZGMENcdTkwMDJcdTU0MDhcdTY3MDlcdTY2MEVcdTc4NkVcdTc2RUVcdTY4MDdcdTc2ODRcdTRFRkJcdTUyQTFcdTMwMDIiOiJcdTRGRERcdTc1NTlcdTY4MDdcdTUxQzZcdTRFQTRcdTRFOTJcdTZENDFcdTdBMEJcdUZGMENcdTkwMDJcdTU0MDhcdTYyNEJcdTUyQThcdTc4NkVcdThCQTRcdTZCQ0ZcdTRFMDBcdTZCNjVcdTMwMDIifWZ1bmN0aW9uIGV1KGUpe3JldHVybiBlPT09ImNvZGV4Ij9bImZ1bGwtYWNjZXNzIl06WyJkZWZhdWx0IiwiZnVsbC1hY2Nlc3MiLCJhdXRvLWVkaXQiLCJuYXRpdmUiLCJtYW5hZ2VkIl19ZnVuY3Rpb24gSXQoZSx0KXt2YXIgbj1ldShlKTtpZihuLmluZGV4T2YodCkhPT0tMSlyZXR1cm4gdDt2YXIgaT1yLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGU/ci5jb25maWcuZGVmYXVsdE1vZGU6ImRlZmF1bHQiO3JldHVybiBuLmluZGV4T2YoaSkhPT0tMT9pOm5bMF19ZnVuY3Rpb24gZWgoZSx0KXtyZXR1cm4gZXUoZSkubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPWlsKG4pO3JldHVybic8b3B0aW9uIHZhbHVlPSInK3AobikrJyInKyhuPT09dD8iIHNlbGVjdGVkIjoiIikrJyB0aXRsZT0iJytpKyciPicrcChaYShuKSkrIjwvb3B0aW9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBpbChlKXt2YXIgdD17ZGVmYXVsdDoiXHU2ODA3XHU1MUM2XHU2QTIxXHU1RjBGIC0gXHU5NzAwXHU4OTgxXHU3ODZFXHU4QkE0XHU2NTg3XHU0RUY2XHU0RkVFXHU2NTM5IiwiZnVsbC1hY2Nlc3MiOiJcdTVCOENcdTUxNjhcdThCQkZcdTk1RUUgLSBcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY3NDNcdTk2NTBcdTRFMEVcdTY0Q0RcdTRGNUMiLCJhdXRvLWVkaXQiOiJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEgLSBcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY1ODdcdTRFRjZcdTRGRUVcdTY1MzkiLG5hdGl2ZToiXHU1MzlGXHU3NTFGXHU2QTIxXHU1RjBGIC0gXHU4RkQ0XHU1NkRFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4RjkzXHU1MUZBIixtYW5hZ2VkOiJcdTYyNThcdTdCQTFcdTZBMjFcdTVGMEYgLSBBSSBcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTYyNDBcdTY3MDlcdTVERTVcdTRGNUMifTtyZXR1cm4gdFtlXXx8IiJ9ZnVuY3Rpb24gaW0oZSl7dmFyIHQ9ZSYmZS5wcm92aWRlcj9lLnByb3ZpZGVyOiJjbGF1ZGUiO3JldHVybihpZShlKT8iXHU3RUQzXHU2Nzg0XHU1MzE2IjoiXHU3RUM4XHU3QUVGIikrIiBceEI3ICIrdH1mdW5jdGlvbiBhbShlKXtyZXR1cm4gaWUoZSk/Ilx1N0VEM1x1Njc4NFx1NTMxNiBceEI3IFx1NTc1N1x1N0VBN1x1OEJCMFx1NUY1NSI6ZSYmZS5wcm92aWRlcj09PSJjb2RleCI/Ilx1N0VDOFx1N0FFRiBceEI3IENvZGV4IFBUWVx1RkYwOGNoYXQgXHU0RTNBXHU4OUUzXHU2NzkwXHU4OUM2XHU1NkZFXHVGRjA5IjoiXHU3RUM4XHU3QUVGIFx4QjcgUFRZIFx1NEYxQVx1OEJERCJ9ZnVuY3Rpb24gdW0oZSl7cmV0dXJuIGU/aWUoZSl8fGUucHJvdmlkZXI9PT0iY29kZXgiOiExfWZ1bmN0aW9uIGFsKGUsdCl7aWYoIWV8fCFlLmlzX2Vycm9yfHwhdHx8dC5pc19lcnJvcilyZXR1cm4hMTt2YXIgbj12bihlLmNvbnRlbnQpLnRvTG93ZXJDYXNlKCksaT12bih0LmNvbnRlbnQpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIG4/bi5pbmRleE9mKCJpbnZhbGlkIHBhZ2VzIHBhcmFtZXRlciIpIT09LTEmJmkubGVuZ3RoPjA6ITF9ZnVuY3Rpb24gaWUoZSl7cmV0dXJuISFlJiYoZS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8ZS5ydW5uZXI9PT0iY2xhdWRlLWNsaS1wcmludCIpfWZ1bmN0aW9uIHhpKCl7ci5jaGF0TW9kZT1JdCgiY2xhdWRlIixyLmNoYXRNb2RlKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1oaW50Iik7ZSYmKGUudGV4dENvbnRlbnQ9aWwoci5jaGF0TW9kZSkpLCRuKCl9ZnVuY3Rpb24gdWwoZSx0KXt0PXR8fHt9O3ZhciBuPXQua2luZD09PSJjb21wYWN0Inx8dC5raW5kPT09InBvcG92ZXIiP3Qua2luZDoiZHJvcGRvd24iLGk9bnQoKSxhPXIuY2hhdE1vZGV8fCJkZWZhdWx0Iix1PUxpKGUpfHwiIixzPUlpKHUsZSksbz1ydShlKTtmdW5jdGlvbiBsKGMsZixkLHYpe3ZhciBoPW49PT0iY29tcGFjdCI/IiI6JzxzcGFuIGNsYXNzPSJjaGF0LW1vZGUtdHJpby10YWciPicrcChmKSsiPC9zcGFuPiI7cmV0dXJuJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXBpbGwgY2hhdC1tb2RlLXRyaW8tcGlsbCIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0iJytjKyciIHRpdGxlPSInK3AoZikrJyI+JytoKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1sYWJlbCI+JytwKGQpKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0iJytjKyciIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iJytwKGYpKyciPicrdisiPC9zZWxlY3Q+PC9zcGFuPiJ9cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbW9kZS10cmlvIGNoYXQtbW9kZS10cmlvLScrbisnIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iXHU0RjFBXHU4QkREXHU4QkJFXHU3RjZFIj4nK2woIm1vZGUiLCJcdTZBMjFcdTVGMEYiLGEsVGkoaSxhKSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXNlcCIgYXJpYS1oaWRkZW49InRydWUiPlx4Qjc8L3NwYW4+JytsKCJtb2RlbCIsIlx1NkEyMVx1NTc4QiIscyxjbCh1LGUpKSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXRleHQtc2VwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHhCNzwvc3Bhbj4nK2woInRoaW5raW5nIiwiXHU2MDFEXHU4MDAzIixvLGRsKG8pKSsiPC9kaXY+In1mdW5jdGlvbiBzbChlKXtyZXR1cm4gZT09PSJzdGFuZGFyZCI/Ilx1NEY0RSI6ZT09PSJkZWVwIj8iXHU0RTJEIjplPT09Im1heCI/Ilx1OUFEOCI6Ilx1NTE3MyJ9ZnVuY3Rpb24gc20oZSl7cmV0dXJuIGU9PT0ic3RhbmRhcmQiPyJcdTRGNEUiOmU9PT0iZGVlcCI/Ilx1NEUyRCI6ZT09PSJtYXgiPyJcdTlBRDgiOiJcdTUxNzNcdTk1RUQifWZ1bmN0aW9uIFNpKGUsdCl7dmFyIG49ZXx8IiIsaT10dSh0KTtpZighbnx8bj09PSJkZWZhdWx0Iil7Zm9yKHZhciBhPTA7YTxpLmxlbmd0aDthKyspaWYoaVthXS5pZD09PSJkZWZhdWx0IilyZXR1cm4gaVthXS5sYWJlbHx8aVthXS5pZDtyZXR1cm4iXHU5RUQ4XHU4QkE0In1mb3IodmFyIHU9MDt1PGkubGVuZ3RoO3UrKylpZihpW3VdLmlkPT09bilyZXR1cm4gaVt1XS5sYWJlbHx8aVt1XS5pZDtyZXR1cm4gbn1mdW5jdGlvbiBJaShlLHQpe3ZhciBuPVNpKGUsdCk7aWYoIW58fG49PT0iXHU4RERGXHU5NjhGXHU2NzBEXHU1MkExXHU3QUVGXHU5RUQ4XHU4QkE0IilyZXR1cm4iXHU5RUQ4XHU4QkE0Ijt2YXIgaT1uLnNlYXJjaCgvW++8iChdLyk7aT4wJiYobj1uLnNsaWNlKDAsaSkudHJpbSgpKTt2YXIgYT1uLmxhc3RJbmRleE9mKCIvIik7YT49MCYmYTxuLmxlbmd0aC0xJiYobj1uLnNsaWNlKGErMSkudHJpbSgpKTt2YXIgdT1uLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHUuaW5kZXhPZigib3B1cyIpIT09LTE/Ik9wdXMiOnUuaW5kZXhPZigic29ubmV0IikhPT0tMT8iU29ubmV0Ijp1LmluZGV4T2YoImhhaWt1IikhPT0tMT8iSGFpa3UiOnUuaW5kZXhPZigiZ3B0LTUuNSIpIT09LTE/IkdQVC01LjUiOnUuaW5kZXhPZigiZ3B0LTUiKSE9PS0xPyJHUFQtNSI6dS5pbmRleE9mKCJncHQtNCIpIT09LTE/IkdQVC00IjpuLmxlbmd0aD4xMj9uLnNsaWNlKDAsMTApKyJcdTIwMjYiOm59ZnVuY3Rpb24gb2woZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8V3QubGVuZ3RoO2krKyl7dmFyIGE9V3RbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsnIHRpdGxlPSInK3AoYS5oaW50KSsnIj4nK3Aoc20oYS5pZCkpKyI8L29wdGlvbj4ifXJldHVybiBufWZ1bmN0aW9uIGxsKGUpe3ZhciB0PW50KCksbj1yLmNoYXRNb2RlfHwiZGVmYXVsdCIsaT1MaShlKXx8IiIsYT1ydShlKSx1PVphKG4pLHM9SWkoaSxlKSxvPXNsKGEpLGw9Ilx1NkEyMVx1NUYwRiAiK3UrIiBceEI3IFx1NkEyMVx1NTc4QiAiK3MrIiBceEI3IFx1NjAxRFx1ODAwMyAiK287cmV0dXJuJzxkaXYgY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1jb250cm9scyIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9Ilx1NEYxQVx1OEJERFx1OEJCRVx1N0Y2RSIgdGl0bGU9IicrcChsKSsnIj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWNoaXAgY29tcG9zZXItY29uZmlnLWNoaXAtbW9kZSIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZSIgdGl0bGU9Ilx1NkEyMVx1NUYwRlx1RkYxQScrcCh1KSsnIj4nK1YoInNoaWVsZCIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44LGNsczoiY29tcG9zZXItY29uZmlnLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctbGFiZWwiPicrcCh1KSsnPC9zcGFuPjxzZWxlY3QgY2xhc3M9ImNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdCIgZGF0YS1tb2RlLWNvbnRyb2w9Im1vZGUiIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU2QTIxXHU1RjBGIj4nK1RpKHQsbikrJzwvc2VsZWN0Pjwvc3Bhbj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5nIiBkYXRhLXRoaW5raW5nPSInK3AoYSkrJyIgdGl0bGU9Ilx1NkEyMVx1NTc4Qlx1NEUwRVx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNiI+PHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1wYXJ0IGNvbXBvc2VyLWNvbmZpZy1tb2RlbCIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZWwiPicrVigiY3B1Iix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjgsY2xzOiJjb21wb3Nlci1jb25maWctaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1sYWJlbCI+JytwKHMpKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0ibW9kZWwiIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU2QTIxXHU1NzhCIj4nK251KGksZSkrJzwvc2VsZWN0Pjwvc3Bhbj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLXBhcnQgY29tcG9zZXItY29uZmlnLXRoaW5raW5nIiBkYXRhLW1vZGUtY29udHJvbC1waWxsPSJ0aGlua2luZyIgZGF0YS10aGlua2luZz0iJytwKGEpKyciPicrVigiYnJhaW4iLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuOCxjbHM6ImNvbXBvc2VyLWNvbmZpZy1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWxhYmVsIj4nK3AobykrJzwvc3Bhbj48c2VsZWN0IGNsYXNzPSJjb21wb3Nlci10ZXh0LWhpZGRlbi1zZWxlY3QiIGRhdGEtbW9kZS1jb250cm9sPSJ0aGlua2luZyIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYiPicrb2woYSkrIjwvc2VsZWN0Pjwvc3Bhbj48L3NwYW4+PC9kaXY+In1mdW5jdGlvbiAkbigpe3ZhciBlPWZ0KCksdD1udCgpLG49ci5jaGF0TW9kZXx8ImRlZmF1bHQiLGk9TGkoZSl8fCIiLGE9SWkoaSxlKSx1PXJ1KGUpLHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbW9kZS10cmlvIik7cy5mb3JFYWNoKGZ1bmN0aW9uKG8pe2Z1bmN0aW9uIGwoYyxmLGQsdil7dmFyIGg9by5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0iJytjKyciXScpO2lmKGgpe3ZhciBnPWgucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLXRleHQtbGFiZWwiKTtnJiYoZy50ZXh0Q29udGVudD12fHxmKTt2YXIgbT1oLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbD0iJytjKyciXScpO20mJihkJiYobS5pbm5lckhUTUw9ZCksbS52YWx1ZSE9PWYmJihtLnZhbHVlPWYpKX19bCgibW9kZSIsbixUaSh0LG4pKSxsKCJtb2RlbCIsaSxjbChpLGUpLGEpLGwoInRoaW5raW5nIix1LGRsKHUpKX0pLG9tKGUsbixMaShlKXx8IiIsdSl9ZnVuY3Rpb24gb20oZSx0LG4saSl7dmFyIGE9bnQoKSx1PVphKHQpLHM9SWkobixlKSxvPXNsKGkpLGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbXBvc2VyLWNvbmZpZy1jb250cm9scyIpO2wuZm9yRWFjaChmdW5jdGlvbihjKXt2YXIgZj0iXHU2QTIxXHU1RjBGICIrdSsiIFx4QjcgXHU2QTIxXHU1NzhCICIrcysiIFx4QjcgXHU2MDFEXHU4MDAzICIrbztjLnNldEF0dHJpYnV0ZSgidGl0bGUiLGYpO2Z1bmN0aW9uIGQoQixGLHgpe3ZhciBTPUIucXVlcnlTZWxlY3RvcigiW2RhdGEtbW9kZS1jb250cm9sXSIpO1MmJihTLmlubmVySFRNTD14LFMudmFsdWU9Ril9dmFyIHY9Yy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZSJdJyk7aWYodil7dmFyIGg9di5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLWxhYmVsIik7aCYmKGgudGV4dENvbnRlbnQ9dSksdi5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU2QTIxXHU1RjBGXHVGRjFBIit1KSxkKHYsdCxUaShhLHQpKX12YXIgZz1jLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbC1waWxsPSJtb2RlbCJdJyk7aWYoZyl7dmFyIG09Zy5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLWxhYmVsIik7bSYmKG0udGV4dENvbnRlbnQ9cyksZChnLG4sbnUobixlKSl9dmFyIHk9Yy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0idGhpbmtpbmciXScpO2lmKHkpe3ZhciB3PXkucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLWNvbmZpZy1sYWJlbCIpO3cmJih3LnRleHRDb250ZW50PW8pLHkuc2V0QXR0cmlidXRlKCJkYXRhLXRoaW5raW5nIixpKSxkKHksaSxvbChpKSl9dmFyIEU9Yy5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5nIik7RSYmRS5zZXRBdHRyaWJ1dGUoImRhdGEtdGhpbmtpbmciLGkpfSl9ZnVuY3Rpb24gVGkoZSx0KXtyZXR1cm4gZXUoZSkubWFwKGZ1bmN0aW9uKG4pe3JldHVybic8b3B0aW9uIHZhbHVlPSInK3AobikrJyInKyhuPT09dD8iIHNlbGVjdGVkIjoiIikrIj4iK3AobikrIjwvb3B0aW9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBMaShlKXtyZXR1cm4gZSYmZS5zZWxlY3RlZE1vZGVsP2Uuc2VsZWN0ZWRNb2RlbDpyLmNoYXRNb2RlbD9yLmNoYXRNb2RlbDpyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsP3IuY29uZmlnLmRlZmF1bHRNb2RlbDoiIn1mdW5jdGlvbiB0dShlKXt2YXIgdD1lJiZlLnByb3ZpZGVyfHxyLnNlc3Npb25Ub29sfHwiY2xhdWRlIjtyZXR1cm4gdD09PSJjb2RleCI/ci5hdmFpbGFibGVDb2RleE1vZGVsc3x8W106ci5hdmFpbGFibGVNb2RlbHN8fFtdfWZ1bmN0aW9uIG51KGUsdCl7Zm9yKHZhciBuPXR1KHQpLGk9ZT09PSJkZWZhdWx0Ij8iIjplfHwiIixhPSc8b3B0aW9uIHZhbHVlPSIiJysoaT8iIjoiIHNlbGVjdGVkIikrIj5cdTlFRDhcdThCQTQgXHhCNyAiK3AoU2koIiIsdCkpKyI8L29wdGlvbj4iLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIHM9blt1XTtpZihzLmlkIT09ImRlZmF1bHQiKXt2YXIgbz1zLmxhYmVsfHxzLmlkO2ErPSc8b3B0aW9uIHZhbHVlPSInK3Aocy5pZCkrJyInKyhzLmlkPT09aT8iIHNlbGVjdGVkIjoiIikrIj4iK3AobykrIjwvb3B0aW9uPiJ9fXJldHVybiBpJiYhbi5zb21lKGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkPT09aX0pJiYoYSs9JzxvcHRpb24gdmFsdWU9IicrcChpKSsnIiBzZWxlY3RlZD4nK3AoaSkrIlx1RkYwOFx1ODFFQVx1NUI5QVx1NEU0OVx1RkYwOTwvb3B0aW9uPiIpLGF9ZnVuY3Rpb24gY2woZSx0KXtmb3IodmFyIG49dHUodCksaT1lPT09ImRlZmF1bHQiPyIiOmV8fCIiLGE9JzxvcHRpb24gdmFsdWU9IiInKyhpPyIiOiIgc2VsZWN0ZWQiKSsiPiIrcChTaSgiIix0KSkrIjwvb3B0aW9uPiIsdT0wO3U8bi5sZW5ndGg7dSsrKXt2YXIgcz1uW3VdO3MuaWQhPT0iZGVmYXVsdCImJihhKz0nPG9wdGlvbiB2YWx1ZT0iJytwKHMuaWQpKyciJysocy5pZD09PWk/IiBzZWxlY3RlZCI6IiIpKyI+IitwKHMuaWQpKyI8L29wdGlvbj4iKX1yZXR1cm4gaSYmIW4uc29tZShmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PWl9KSYmKGErPSc8b3B0aW9uIHZhbHVlPSInK3AoaSkrJyIgc2VsZWN0ZWQ+JytwKGkpKyI8L29wdGlvbj4iKSxhfWZ1bmN0aW9uIFhuKGUpeyRuKCl9dmFyIFd0PVt7aWQ6Im9mZiIsbGFiZWw6Im9mZiIsaGludDoiXHU0RTBEXHU1NDJGXHU3NTI4XHU2MDFEXHU4MDAzXHVGRjA4Q0xJIFx1NjVFMFx1NTI0RFx1N0YwMFx1RkYxQlNESyBcdTUxNzNcdTk1RUQgdGhpbmtpbmdcdUZGMUJDb2RleCBtaW5pbWFsXHVGRjA5In0se2lkOiJzdGFuZGFyZCIsbGFiZWw6InRoaW5rIixoaW50OiJDbGF1ZGUgQ0xJOiB0aGluayBceEI3IFNESyBidWRnZXQgNDA5NiBceEI3IENvZGV4IGxvdyJ9LHtpZDoiZGVlcCIsbGFiZWw6InRoaW5rIGhhcmQiLGhpbnQ6IkNsYXVkZSBDTEk6IHRoaW5rIGhhcmQgXHhCNyBTREsgYnVkZ2V0IDE2MDAwIFx4QjcgQ29kZXggbWVkaXVtIn0se2lkOiJtYXgiLGxhYmVsOiJ1bHRyYXRoaW5rIixoaW50OiJDbGF1ZGUgQ0xJOiB1bHRyYXRoaW5rIFx4QjcgU0RLIGJ1ZGdldCAzMTk5OSBceEI3IENvZGV4IGhpZ2gifV07ZnVuY3Rpb24gbG0oZSl7Zm9yKHZhciB0PTA7dDxXdC5sZW5ndGg7dCsrKWlmKFd0W3RdLmlkPT09ZSlyZXR1cm4gV3RbdF0ubGFiZWw7cmV0dXJuIFd0WzBdLmxhYmVsfWZ1bmN0aW9uIHJ1KGUpe3JldHVybiBlJiZlLnRoaW5raW5nRWZmb3J0P2UudGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmc/ci5jaGF0VGhpbmtpbmc6Im9mZiJ9ZnVuY3Rpb24gdGgoZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8V3QubGVuZ3RoO2krKyl7dmFyIGE9V3RbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsnIHRpdGxlPSInK3AoYS5oaW50KSsnIj4nK3AoYS5sYWJlbCkrIjwvb3B0aW9uPiJ9cmV0dXJuIG59ZnVuY3Rpb24gZGwoZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8V3QubGVuZ3RoO2krKyl7dmFyIGE9V3RbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsiPiIrcChhLmlkKSsiPC9vcHRpb24+In1yZXR1cm4gbn1mdW5jdGlvbiBuaChlKXskbigpfWZ1bmN0aW9uIGNtKGUpe3ZhciB0PShlfHwib2ZmIikudHJpbSgpO3QhPT0ib2ZmIiYmdCE9PSJzdGFuZGFyZCImJnQhPT0iZGVlcCImJnQhPT0ibWF4IiYmKHQ9Im9mZiIpLHIuY2hhdFRoaW5raW5nPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXRoaW5raW5nLWVmZm9ydCIsdCl9Y2F0Y2h7fSRuKCk7dmFyIG49ZnQoKTtuJiZmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSsiL3RoaW5raW5nLWVmZm9ydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe3RoaW5raW5nRWZmb3J0OnR9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWkmJmkuaWQmJigkKGkpLHR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKCJcdTVERjJcdTUyMDdcdTYzNjJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYgXHUyMTkyICIrbG0odCksInN1Y2Nlc3MiKSl9KS5jYXRjaChmdW5jdGlvbigpe2soIlx1NTIwN1x1NjM2Mlx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBmbChlKXtpZighZSlyZXR1cm4hMTt2YXIgdD1lLm1vZGU7cmV0dXJuIHQ9PT0ibWFuYWdlZCJ8fHQ9PT0iZnVsbC1hY2Nlc3MifWZ1bmN0aW9uIGRtKGUpe2lmKCFlfHxmbChlKSlyZXR1cm4iIjt2YXIgdD0hIWUuYXV0b0FwcHJvdmVQZXJtaXNzaW9ucztyZXR1cm4gdD8nPGJ1dHRvbiBpZD0iYXV0by1hcHByb3ZlLXRvZ2dsZSIgY2xhc3M9ImNvbXBvc2VyLXBpbGwgY29tcG9zZXItcGlsbC1jaGlwIGF1dG8tYXBwcm92ZS1pbmRpY2F0b3IgYWN0aXZlIiB0eXBlPSJidXR0b24iIGFyaWEtcHJlc3NlZD0idHJ1ZSIgYXJpYS1sYWJlbD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4XHVGRjBDXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIiB0aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4IFx1MjAxNCBcdTcwQjlcdTUxRkJcdTUxNzNcdTk1RUQiPicrVigic2hpZWxkQ2hlY2siLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1ODFFQVx1NTJBODwvc3Bhbj48L2J1dHRvbj4nOic8YnV0dG9uIGlkPSJhdXRvLWFwcHJvdmUtdG9nZ2xlIiBjbGFzcz0iY29tcG9zZXItcGlsbCBjb21wb3Nlci1waWxsLWNoaXAgYXV0by1hcHByb3ZlLWluZGljYXRvciIgdHlwZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9ImZhbHNlIiBhcmlhLWxhYmVsPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RURcdUZGMENcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiIHRpdGxlPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQgXHUyMDE0IFx1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiI+JytWKCJzaGllbGQiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1NjI0Qlx1NTJBODwvc3Bhbj48L2J1dHRvbj4nfWZ1bmN0aW9uIHBsKCl7cmV0dXJuIGZldGNoKCIvYXBpL21vZGVscyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUmJkFycmF5LmlzQXJyYXkoZS5tb2RlbHMpJiYoci5hdmFpbGFibGVNb2RlbHM9ZS5tb2RlbHMsci5hdmFpbGFibGVDb2RleE1vZGVscz1BcnJheS5pc0FycmF5KGUuY29kZXhNb2RlbHMpP2UuY29kZXhNb2RlbHM6W10sWG4oZnQoKSksTWkoZSkpLGV9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiBudWxsfSl9ZnVuY3Rpb24gZm0oKXtpZihyLm1vZGVsc1JlZnJlc2hpbmcpcmV0dXJuIFByb21pc2UucmVzb2x2ZShudWxsKTtyLm1vZGVsc1JlZnJlc2hpbmc9ITA7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsLXJlZnJlc2giKTtyZXR1cm4gZSYmKGUuZGlzYWJsZWQ9ITAsZS50ZXh0Q29udGVudD0iXHU1MjM3XHU2NUIwXHU0RTJELi4uIiksZmV0Y2goIi9hcGkvbW9kZWxzL3JlZnJlc2giLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQmJkFycmF5LmlzQXJyYXkodC5tb2RlbHMpJiYoci5hdmFpbGFibGVNb2RlbHM9dC5tb2RlbHMsci5hdmFpbGFibGVDb2RleE1vZGVscz1BcnJheS5pc0FycmF5KHQuY29kZXhNb2RlbHMpP3QuY29kZXhNb2RlbHM6W10sWG4oZnQoKSksTWkodCksdHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoIlx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OFx1NURGMlx1NTIzN1x1NjVCMCIrKHQuY2xhdWRlVmVyc2lvbj8iXHVGRjA4Y2xhdWRlICIrdC5jbGF1ZGVWZXJzaW9uKyJcdUZGMDkiOiIiKSwic3VjY2VzcyIpKSx0fSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoIlx1NTIzN1x1NjVCMFx1NkEyMVx1NTc4Qlx1NTIxN1x1ODg2OFx1NTkzMVx1OEQyNSIsImVycm9yIiksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLm1vZGVsc1JlZnJlc2hpbmc9ITEsZSYmKGUuZGlzYWJsZWQ9ITEsZS50ZXh0Q29udGVudD0iXHU1MjM3XHU2NUIwIil9KX1mdW5jdGlvbiBwbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1tb2RhbCIpO2lmKCFlKXtlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlY3Rpb24iKSxlLmlkPSJlbnYtcHJldmlldy1tb2RhbCIsZS5jbGFzc05hbWU9Im1vZGFsLWJhY2tkcm9wIGhpZGRlbiIsZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9Im1vZGFsIGVudi1wcmV2aWV3LW1vZGFsIiByb2xlPSJkaWFsb2ciIGFyaWEtbGFiZWxsZWRieT0iZW52LXByZXZpZXctdGl0bGUiIGFyaWEtbW9kYWw9InRydWUiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGRpdj48aDIgY2xhc3M9Im1vZGFsLXRpdGxlIiBpZD0iZW52LXByZXZpZXctdGl0bGUiPlx1NUMwNlx1NkNFOFx1NTE2NVx1NUI1MFx1OEZEQlx1N0EwQlx1NzY4NFx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRjwvaDI+PHAgY2xhc3M9Im1vZGFsLXN1YnRpdGxlIiBpZD0iZW52LXByZXZpZXctc3VidGl0bGUiPlx1OEZEOVx1NEU5Qlx1NTNEOFx1OTFDRlx1NEYxQVx1ODhBQlx1NEYyMFx1N0VEOSBjbGF1ZGUgLyBjb2RleFx1RkYwOFBUWSBcdTRFMEVcdTdFRDNcdTY3ODRcdTUzMTZcdThGRDBcdTg4NENcdTU2NjhcdTRFMDBcdTgxRjRcdUZGMDlcdTMwMDI8L3A+PC9kaXY+PGJ1dHRvbiBpZD0iZW52LXByZXZpZXctY2xvc2UiIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5IGVudi1wcmV2aWV3LWJvZHkiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LXRvb2xiYXIiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LW1ldGEiIGlkPSJlbnYtcHJldmlldy1tZXRhIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1jb250cm9scyI+PGlucHV0IGlkPSJlbnYtcHJldmlldy1zZWFyY2giIGNsYXNzPSJlbnYtcHJldmlldy1zZWFyY2giIHR5cGU9InNlYXJjaCIgcGxhY2Vob2xkZXI9Ilx1NjQxQ1x1N0QyMlx1NTNEOFx1OTFDRlx1NTQwRFx1MjAyNiIgLz48bGFiZWwgY2xhc3M9ImVudi1wcmV2aWV3LXJldmVhbCI+PGlucHV0IGlkPSJlbnYtcHJldmlldy1yZXZlYWwtdG9nZ2xlIiB0eXBlPSJjaGVja2JveCIgLz48c3Bhbj5cdTY2M0VcdTc5M0FcdTY1NEZcdTYxMUZcdTUwM0M8L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1saXN0IiBpZD0iZW52LXByZXZpZXctbGlzdCIgdGFiaW5kZXg9IjAiPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWZvb3RlciBlbnYtcHJldmlldy1mb290ZXIiPjxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1oaW50Ij5cdTY1NEZcdTYxMUZcdTVCNTdcdTZCQjVcdUZGMDhcdTU0MkIgS0VZL1RPS0VOL1NFQ1JFVCBcdTdCNDlcdUZGMDlcdTlFRDhcdThCQTRcdTYzQTlcdTc4MDFcdUZGMENcdTUzRUZcdTUyRkVcdTkwMDlcdTMwMENcdTY2M0VcdTc5M0FcdTY1NEZcdTYxMUZcdTUwM0NcdTMwMERcdTRFMzRcdTY1RjZcdThGRDhcdTUzOUZcdTMwMDI8L3NwYW4+PGJ1dHRvbiBpZD0iZW52LXByZXZpZXctY2xvc2UtMiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIj5cdTUxNzNcdTk1RUQ8L2J1dHRvbj48L2Rpdj48L2Rpdj4nLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obyl7by50YXJnZXQ9PT1lJiZpdSgpfSk7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctY2xvc2UiKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixpdSk7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctY2xvc2UtMiIpO24mJm4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGl1KTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1zZWFyY2giKTthJiZhLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe21sKCl9KTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1yZXZlYWwtdG9nZ2xlIik7aSYmaS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmwoaS5jaGVja2VkKX0pfWUuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctcmV2ZWFsLXRvZ2dsZSIpO2kmJihpLmNoZWNrZWQ9ITEpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LXNlYXJjaCIpO2EmJihhLnZhbHVlPSIiKSx2bCghMSl9ZnVuY3Rpb24gaXUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbW9kYWwiKTtlJiZsdShlKX1mdW5jdGlvbiB2bChlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbGlzdCIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LW1ldGEiKTt0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdTUyQTBcdThGN0RcdTRFMkRcdTIwMjYiKTt2YXIgaT0iL2FwaS9zZXR0aW5ncy9lbnYtcHJldmlldyIrKGU/Ij9yZXZlYWw9MSI6IiIpO2ZldGNoKGkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoIWF8fCFBcnJheS5pc0FycmF5KGEuZW50cmllcykpe3QmJih0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1OEJGQlx1NTNENlx1NTkzMVx1OEQyNVx1MzAwMjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdThCRkJcdTUzRDZcdTU5MzFcdThEMjUiKTtyZXR1cm59aWYoci5fZW52UHJldmlldz1hLG4pe3ZhciB1PWEuaW5oZXJpdEVudj8iXHU3RUU3XHU2MjdGXHU3MjM2XHU4RkRCXHU3QTBCIjoiXHU2NzAwXHU1QzBGXHU3NjdEXHU1NDBEXHU1MzU1IjtuLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LXBpbGwgJysoYS5pbmhlcml0RW52PyJpcy1pbmhlcml0IjoiaXMtbWluaW1hbCIpKyciPicrdSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1jb3VudCI+XHU1MTcxICcrYS50b3RhbCsiIFx1OTg3OTwvc3Bhbj4ifW1sKCl9KS5jYXRjaChmdW5jdGlvbigpe3QmJih0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1OEJGQlx1NTNENlx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1N0EwRFx1NTQwRVx1OTFDRFx1OEJENVx1MzAwMjwvZGl2PicpLG4mJihuLnRleHRDb250ZW50PSJcdThCRkJcdTUzRDZcdTU5MzFcdThEMjUiKX0pfWZ1bmN0aW9uIG1sKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LWxpc3QiKTtpZihlKXt2YXIgdD1yLl9lbnZQcmV2aWV3O2lmKCF0fHwhQXJyYXkuaXNBcnJheSh0LmVudHJpZXMpKXtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1NUMxQVx1NjcyQVx1NTJBMFx1OEY3RFx1MzAwMjwvZGl2Pic7cmV0dXJufWZvcih2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctc2VhcmNoIiksaT0obiYmbi52YWx1ZXx8IiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLGE9IiIsdT0wLHM9MDtzPHQuZW50cmllcy5sZW5ndGg7cysrKXt2YXIgbz10LmVudHJpZXNbc107aWYoIShpJiZvLm5hbWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGkpPT09LTEpKXt1Kys7dmFyIGw9dHlwZW9mIG8udmFsdWU9PSJzdHJpbmciJiZvLnZhbHVlLmNoYXJBdCgwKT09PSI8IiYmby52YWx1ZS5jaGFyQXQoby52YWx1ZS5sZW5ndGgtMSk9PT0iPiI7YSs9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LXJvdycrKG8uc2Vuc2l0aXZlPyIgaXMtc2Vuc2l0aXZlIjoiIikrJyI+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbmFtZSI+JytwKG8ubmFtZSkrKG8uc2Vuc2l0aXZlPyc8c3BhbiBjbGFzcz0iZW52LXByZXZpZXctYmFkZ2UiIHRpdGxlPSJcdTg4QUJcdThCQzZcdTUyMkJcdTRFM0FcdTY1NEZcdTYxMUZcdTVCNTdcdTZCQjUiPlx1NjU0Rlx1NjExRjwvc3Bhbj4nOiIiKSsobD8nPHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LWJhZGdlIGVudi1wcmV2aWV3LWJhZGdlLXJ1bnRpbWUiIHRpdGxlPSJcdTYzMDlcdTRGMUFcdThCRERcdTUyQThcdTYwMDFcdTZDRThcdTUxNjUiPlx1OEZEMFx1ODg0Q1x1NjVGNjwvc3Bhbj4nOiIiKSsnPC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctdmFsdWUnKyhsPyIgaXMtcnVudGltZSI6IiIpKyciIHRpdGxlPSInK3AoU3RyaW5nKG8udmFsdWUpKSsnIj4nK3AoU3RyaW5nKG8udmFsdWUpKSsnPC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbGVuIj4nK28ubGVuZ3RoKyIgXHU1QjU3XHU3QjI2PC9kaXY+PC9kaXY+In19dT09PTAmJihhPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1lbXB0eSI+XHU2Q0ExXHU2NzA5XHU1MzM5XHU5MTREXHU3Njg0XHU1M0Q4XHU5MUNGXHUzMDAyPC9kaXY+JyksZS5pbm5lckhUTUw9YX19ZnVuY3Rpb24gTWkoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsIik7aWYodCl7dmFyIG49dC52YWx1ZSxpPW58fHIuY29uZmlnRGVmYXVsdE1vZGVsfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsfHwiIjt0LmlubmVySFRNTD1udShpLHtwcm92aWRlcjoiY2xhdWRlIn0pLHQudmFsdWU9aTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwtdmVyc2lvbiIpO2EmJmUmJihhLnRleHRDb250ZW50PWUuY2xhdWRlVmVyc2lvbj8iXHU1REYyXHU2OEMwXHU2RDRCXHU1MjMwIGNsYXVkZSAiK2UuY2xhdWRlVmVyc2lvbjoiXHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHU2NUY2XHU5RUQ4XHU4QkE0XHU0RjdGXHU3NTI4XHU4QkU1XHU2QTIxXHU1NzhCXHUzMDAyIil9fWZ1bmN0aW9uIGZ0KCl7aWYoIXIuc2VsZWN0ZWRJZClyZXR1cm4gbnVsbDtmb3IodmFyIGU9MDtlPHIuc2Vzc2lvbnMubGVuZ3RoO2UrKylpZihyLnNlc3Npb25zW2VdLmlkPT09ci5zZWxlY3RlZElkKXJldHVybiByLnNlc3Npb25zW2VdO3JldHVybiBudWxsfWZ1bmN0aW9uIHZtKGUpe3ZhciB0PShlfHwiIikudHJpbSgpO3IuY2hhdE1vZGVsPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWNoYXQtbW9kZWwiLHQpfWNhdGNoe30kbigpO3ZhciBuPWZ0KCk7biYmZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQobi5pZCkrIi9tb2RlbCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe21vZGVsOnR8fG51bGx9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWlmKGkmJmkuaWQmJigkKGkpLHR5cGVvZiBrPT0iZnVuY3Rpb24iKSl7dmFyIGE9U2kodCxuKSx1PW4ucHJvdmlkZXI9PT0iY29kZXgiPyJcdUZGMDhcdTRFMEJcdTZCMjFcdTVCRjlcdThCRERcdTc1MUZcdTY1NDhcdUZGMDkiOiIiO2soIlx1NURGMlx1NTIwN1x1NjM2Mlx1NkEyMVx1NTc4QiBcdTIxOTIgIithK3UsInN1Y2Nlc3MiKX19KS5jYXRjaChmdW5jdGlvbigpe2soIlx1NTIwN1x1NjM2Mlx1NkEyMVx1NTc4Qlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBtbShlKXt2YXIgdD1JdChudCgpLChlfHwiZGVmYXVsdCIpLnRyaW0oKSk7ci5jaGF0TW9kZT10LCRuKCk7dmFyIG49ZnQoKTtpZighbnx8IW4uaWR8fG4uc2Vzc2lvbktpbmQhPT0ic3RydWN0dXJlZCIpe2smJmsoIlx1NjVCMFx1NEYxQVx1OEJERFx1NkEyMVx1NUYwRlx1RkYxQSIrdCwiaW5mbyIpO3JldHVybn1mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChuLmlkKSsiL21vZGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHttb2RlOnR9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufWlmKGkmJmkuaWQmJigkKGkpLHR5cGVvZiBrPT0iZnVuY3Rpb24iKSl7dmFyIGE9bi5wcm92aWRlcj09PSJjb2RleCI/Ilx1RkYwOENvZGV4IFx1NTZGQVx1NUI5QVx1NTE2OFx1Njc0M1x1OTY1MFx1RkYwOSI6IiI7aygiXHU1REYyXHU1MjA3XHU2MzYyXHU2QTIxXHU1RjBGIFx1MjE5MiAiK3QrYSwic3VjY2VzcyIpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7aygiXHU1MjA3XHU2MzYyXHU2QTIxXHU1RjBGXHU1OTMxXHU4RDI1IiwiZXJyb3IiKX0pfWZ1bmN0aW9uIGdsKGUsdCxuLGkpe3ZhciBhPXIuc2Vzc2lvblRvb2w9PT0iY29kZXgiPyJjb2RleCI6ImNsYXVkZSIsdT1yLmNoYXRNb2RlbHx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiIscz1yLmNoYXRUaGlua2luZ3x8Im9mZiIsbz17Y3dkOnR8fHR0KCksbW9kZTpufHxyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixwcm92aWRlcjphLHJ1bm5lcjphPT09ImNvZGV4Ij8iY29kZXgtY2xpLWV4ZWMiOnIuY29uZmlnJiZyLmNvbmZpZy5zdHJ1Y3R1cmVkUnVubmVyPT09InNkayI/ImNsYXVkZS1zZGsiOnIuc3RydWN0dXJlZFJ1bm5lcnx8ImNsYXVkZS1jbGktcHJpbnQiLHByb21wdDplfHx2b2lkIDAsd29ya3RyZWVFbmFibGVkOmk9PT0hMCxtb2RlbDp1fHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6c307cmV0dXJuIGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KG8pfSkudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gbC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKGwuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGwuZXJyb3IpO3JldHVybiByLnNlbGVjdGVkSWQ9bC5pZCx3ZSgpLHIuZHJhZnRzW2wuaWRdPSIiLHh0KCksJChsKSxmZSgpLEJyKGwuaWQpLExuKGwuaWQpLGduKGwuaWQpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbH0pfSl9ZnVuY3Rpb24gUGkoKXt2YXIgZT0hIXIuc2VsZWN0ZWRJZCx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LW91dHB1dCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQiKSxhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PXIuc2VsZWN0ZWRJZH0pLHU9aWUoYSkscz1lJiYhdSYmci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCIsbz1lJiYodXx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCIpO3U/ci5jdXJyZW50Vmlldz0iY2hhdCI6ZXx8KHIuY3VycmVudFZpZXc9InRlcm1pbmFsIiksdCYmKHQuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixzKSx0LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIXMpKSxuJiYobi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLG8pLG4uY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhbykpLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIixlKSxuJiZvJiZSYShuKSx1cigpLFJlKCksRHIoKX1mdW5jdGlvbiBUcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWRlc2NyaXB0aW9uIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1raW5kLWRlc2NyaXB0aW9uIiksbj1yLnNlc3Npb25Ub29sfHwiY2xhdWRlIixpPXIuc2Vzc2lvbkNyZWF0ZUtpbmR8fCJzdHJ1Y3R1cmVkIjtyLnNlc3Npb25Ub29sPW4sci5tb2RlVmFsdWU9SXQobixyLm1vZGVWYWx1ZXx8ci5jaGF0TW9kZXx8ImRlZmF1bHQiKTt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjcHJvdmlkZXItY2FyZHMgLnByb3ZpZGVyLWNhcmQiKTthLmxlbmd0aCYmYS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBsPW8uZ2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIik7by5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLGw9PT1uKSxvLmNsYXNzTGlzdC5yZW1vdmUoImRpc2FibGVkIil9KTt2YXIgdT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIjc2Vzc2lvbi1raW5kLWNhcmRzIC5zZXNzaW9uLWtpbmQtY2FyZCIpO3UubGVuZ3RoJiZ1LmZvckVhY2goZnVuY3Rpb24obyl7dmFyIGw9by5nZXRBdHRyaWJ1dGUoImRhdGEtc2Vzc2lvbi1raW5kIiksYz0hMTtvLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsbD09PWkpLG8uY2xhc3NMaXN0LnRvZ2dsZSgiZGlzYWJsZWQiLGMpfSk7dmFyIHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI21vZGUtY2FyZHMgLm1vZGUtY2FyZCIpO3MubGVuZ3RoJiZzLmZvckVhY2goZnVuY3Rpb24obyl7by5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLG8uZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUiKT09PXIubW9kZVZhbHVlKX0pLHQmJih0LnRleHRDb250ZW50PXNzKGkpKSxlJiYoZS50ZXh0Q29udGVudD1ybChuLHIubW9kZVZhbHVlKSl9ZnVuY3Rpb24gZ20oZSx0LG4saSl7dmFyIGE9bnx8MCx1PXR5cGVvZiBpPT0ibnVtYmVyIj9pOk1hdGgubWF4KGErdC5sZW5ndGgsdC5sZW5ndGgpLHM9ZSYmQXJyYXkuaXNBcnJheShlLm1lc3NhZ2VzKT9lLm1lc3NhZ2VzOltdLG89ZSYmdHlwZW9mIGUubWVzc2FnZU9mZnNldD09Im51bWJlciI/ZS5tZXNzYWdlT2Zmc2V0OjA7aWYodC5sZW5ndGg9PT0wJiZzLmxlbmd0aD4wJiZ1PT09MClyZXR1cm57bWVzc2FnZXM6cyxtZXNzYWdlT2Zmc2V0Om8sbWVzc2FnZVRvdGFsOmUmJmUubWVzc2FnZVRvdGFsfHxzLmxlbmd0aH07aWYocy5sZW5ndGg9PT0wKXJldHVybnttZXNzYWdlczp0LG1lc3NhZ2VPZmZzZXQ6YSxtZXNzYWdlVG90YWw6dX07aWYobzw9YSl7dmFyIGw9TWF0aC5taW4oTWF0aC5tYXgoYS1vLDApLHMubGVuZ3RoKSxjPXMuc2xpY2UoMCxsKS5jb25jYXQodCk7cmV0dXJue21lc3NhZ2VzOmMsbWVzc2FnZU9mZnNldDpvLG1lc3NhZ2VUb3RhbDpNYXRoLm1heCh1LG8rYy5sZW5ndGgpfX1yZXR1cm57bWVzc2FnZXM6dCxtZXNzYWdlT2Zmc2V0OmEsbWVzc2FnZVRvdGFsOnV9fWZ1bmN0aW9uICQoZSl7aWYoISghZXx8IWUuaWQpKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT1lLmlkfSl8fG51bGwsbj11YyhlLHQpO2lmKEFycmF5LmlzQXJyYXkobi5tZXNzYWdlcykmJnR5cGVvZiBuLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiKXt2YXIgaT1nbSh0LG4ubWVzc2FnZXMsbi5tZXNzYWdlT2Zmc2V0LG4ubWVzc2FnZVRvdGFsKTtuLm1lc3NhZ2VzPWkubWVzc2FnZXMsbi5tZXNzYWdlT2Zmc2V0PWkubWVzc2FnZU9mZnNldCxuLm1lc3NhZ2VUb3RhbD1pLm1lc3NhZ2VUb3RhbH12YXIgYT0hMSx1PW51bGw7ci5zZXNzaW9ucz1yLnNlc3Npb25zLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gby5pZCE9PW4uaWQ/bzoodT1vLGE9ITAsT2JqZWN0LmFzc2lnbih7fSxvLG4pKX0pLGF8fHIuc2Vzc2lvbnMudW5zaGlmdChuKTt2YXIgcz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQ9PT1uLmlkfSl8fG47cyYmQXJyYXkuaXNBcnJheShzLnF1ZXVlZE1lc3NhZ2VzKSYmbi5pZD09PXIuc2VsZWN0ZWRJZCYmKEtyKHMpLHh1KCksZG4oKSksbi5pZD09PXIuc2VsZWN0ZWRJZCYmKE1hKCksWnQoKSksbi5zdGF0dXMmJm4uc3RhdHVzIT09InJ1bm5pbmciJiZyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZzZXRUaW1lb3V0KHBpLDApfX1mdW5jdGlvbiBMbihlKXshZXx8IXIud3N8fHIud3MucmVhZHlTdGF0ZSE9PVdlYlNvY2tldC5PUEVOfHxyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InN1YnNjcmliZSIsc2Vzc2lvbklkOmV9KSl9ZnVuY3Rpb24gaG0oZSx0KXtpZighZSlyZXR1cm4gdDt2YXIgbj1PYmplY3QuYXNzaWduKHt9LGUsdCksaT1lLm91dHB1dHx8IiIsYT10Lm91dHB1dHx8IiIsdT1pLmxlbmd0aD5hLmxlbmd0aCxzPWUuc3RydWN0dXJlZFN0YXRlfHxudWxsLG89dC5zdHJ1Y3R1cmVkU3RhdGV8fG51bGwsbD1lLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQifHx0LnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiLGM9ISEoZS5tZXNzYWdlcyYmZS5tZXNzYWdlcy5sZW5ndGgmJihmdW5jdGlvbigpe3ZhciBtPWUubWVzc2FnZXNbZS5tZXNzYWdlcy5sZW5ndGgtMV07cmV0dXJuIG0mJm0ucm9sZT09PSJhc3Npc3RhbnQiJiZBcnJheS5pc0FycmF5KG0uY29udGVudCkmJm0uY29udGVudC5zb21lKGZ1bmN0aW9uKHkpe3JldHVybiB5JiZ5Ll9fcHJvY2Vzc2luZ30pfSkoKSksZj1BcnJheS5pc0FycmF5KGUubWVzc2FnZXMpP2w/b3IoZS5tZXNzYWdlcyk6ZS5tZXNzYWdlczpbXSxkPUFycmF5LmlzQXJyYXkodC5tZXNzYWdlcyk/bD9vcih0Lm1lc3NhZ2VzKTp0Lm1lc3NhZ2VzOltdLHY9ZC5sZW5ndGg+MCYmKGZ1bmN0aW9uKCl7dmFyIG09ZFtkLmxlbmd0aC0xXTtyZXR1cm4gbSYmbS5yb2xlPT09ImFzc2lzdGFudCImJkFycmF5LmlzQXJyYXkobS5jb250ZW50KSYmIW0uY29udGVudC5zb21lKGZ1bmN0aW9uKHkpe3JldHVybiB5JiZ5Ll9fcHJvY2Vzc2luZ30pfSkoKSxoPWUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCImJiEhcyYmcy5pbkZsaWdodD09PSEwJiYoIW98fG8uaW5GbGlnaHQhPT0hMCkmJmMmJiEhcy5hY3RpdmVSZXF1ZXN0SWQmJiEhbyYmISFvLmFjdGl2ZVJlcXVlc3RJZCYmby5hY3RpdmVSZXF1ZXN0SWQ9PT1zLmFjdGl2ZVJlcXVlc3RJZCYmIXYsZz1mLmxlbmd0aD5kLmxlbmd0aHx8Zi5sZW5ndGg+MCYmZC5sZW5ndGg+MCYmSlNPTi5zdHJpbmdpZnkoZltmLmxlbmd0aC0xXSkhPT1KU09OLnN0cmluZ2lmeShkW2QubGVuZ3RoLTFdKSYmSlNPTi5zdHJpbmdpZnkoZikubGVuZ3RoPkpTT04uc3RyaW5naWZ5KGQpLmxlbmd0aDtyZXR1cm4gdSYmKG4ub3V0cHV0PWkpLGgmJihuLnN0YXR1cz1lLnN0YXR1c3x8bi5zdGF0dXMsbi5zdHJ1Y3R1cmVkU3RhdGU9T2JqZWN0LmFzc2lnbih7fSxvfHx7fSxzLHtpbkZsaWdodDohMH0pLG4ubWVzc2FnZXM9ZS5tZXNzYWdlcyksZyYmKG4ubWVzc2FnZXM9ZiksZS5pZD09PXIuc2VsZWN0ZWRJZCYmKGUucGVybWlzc2lvbkJsb2NrZWQmJnQucGVybWlzc2lvbkJsb2NrZWQ9PT0hMXx8ZS5wZXJtaXNzaW9uQmxvY2tlZCYmIXQucGVybWlzc2lvbkJsb2NrZWQmJihuLnBlcm1pc3Npb25CbG9ja2VkPSEwKSxlLnBlbmRpbmdFc2NhbGF0aW9uJiYhdC5wZW5kaW5nRXNjYWxhdGlvbiYmdC5wZXJtaXNzaW9uQmxvY2tlZCE9PSExJiYobi5wZW5kaW5nRXNjYWxhdGlvbj1lLnBlbmRpbmdFc2NhbGF0aW9uKSxlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aD4wJiYoIXQubWVzc2FnZXN8fHQubWVzc2FnZXMubGVuZ3RoPT09MCkmJihuLm1lc3NhZ2VzPWUubWVzc2FnZXMpKSxufWZ1bmN0aW9uIHJ0KGUsdCxuKXtpZihlJiZlLm1lc3NhZ2VzJiZlLm1lc3NhZ2VzLmxlbmd0aD4wKXJldHVybiBlLm1lc3NhZ2VzO2lmKGUmJmUuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIpcmV0dXJuW107aWYoIW4pcmV0dXJuW107dmFyIGk9dHlwZW9mIHQ9PSJzdHJpbmciP3Q6ZSYmZS5vdXRwdXR8fCIiO3JldHVybiBpP2J2KGksZSYmZS5jb21tYW5kKTpbXX1mdW5jdGlvbiB5bShlKXtpZighZXx8IWUubGVuZ3RoKXJldHVybiBudWxsO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIHQ9ZS5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIHQ/dC5pZDpudWxsfXZhciBuPWUuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5zdGF0dXM9PT0icnVubmluZyJ9KTtpZihuKXJldHVybiBuLmlkO3ZhciBpPWUuZmluZChmdW5jdGlvbihhKXtyZXR1cm4hYS5hcmNoaXZlZH0pO3JldHVybiBpP2kuaWQ6ZVswXS5pZH1mdW5jdGlvbiBtbihlKXt2YXIgdD1lfHx7fTtyZXR1cm4gZmV0Y2goIi9hcGkvc2Vzc2lvbnMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtpZihuLnN0YXR1cz09PTQwMSl7dGwoKTtyZXR1cm59cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXt2YXIgaT1ufHxbXSxhPW5ldyBTZXQoaS5tYXAoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWR9KSk7T2JqZWN0LmtleXMoci5kcmFmdHMpLmZvckVhY2goZnVuY3Rpb24oZCl7YS5oYXMoZCl8fGRlbGV0ZSByLmRyYWZ0c1tkXX0pLHIuc2Vzc2lvbnM9aS5tYXAoZnVuY3Rpb24oZCl7dmFyIHY9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGgpe3JldHVybiBoLmlkPT09ZC5pZH0pO3JldHVybiBobSh2LGQpfSk7dmFyIHU9eW0oci5zZXNzaW9ucyk7aWYodSE9PXZvaWQgMCYmKHIuc2VsZWN0ZWRJZD11KSxJdSgpLGRuKCksci5ib290c3RyYXBwaW5nPSExLHdlKCksci5tb2RhbE9wZW4pZmUoKTtlbHNle3ZhciBzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1saXN0Iiksbz1pYSgpO2lmKHMmJnMuaW5uZXJIVE1MPT09byl7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tY291bnQiKTtsJiYobC50ZXh0Q29udGVudD1TdHJpbmcoci5zZXNzaW9ucy5sZW5ndGgpKX1lbHNle3MmJihzLmlubmVySFRNTD1vKTt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1jb3VudCIpO2wmJihsLnRleHRDb250ZW50PVN0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkpfX1McigpLHIuc2VsZWN0ZWRJZCYmci5naXRTdGF0dXNTZXNzaW9uSWQhPT1yLnNlbGVjdGVkSWQmJkNuKHIuc2VsZWN0ZWRJZCk7dmFyIGM9UHJvbWlzZS5yZXNvbHZlKCk7aWYoIXQuc2tpcFNlbGVjdGVkT3V0cHV0UmVsb2FkJiZyLnNlbGVjdGVkSWQpYz1nbihyLnNlbGVjdGVkSWQpO2Vsc2UgaWYoci5zZWxlY3RlZElkKXt2YXIgZj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZCl7cmV0dXJuIGQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZShmKSYmKHh0KHtwcmVzZXJ2ZVN0aWNrU3RhdGU6ITB9KSxOYSghMCkpfXJldHVybiBjLnRoZW4oZnVuY3Rpb24oKXtyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD4wJiZwaSgpLFN0KCksd2EoKX0pfSkuY2F0Y2goZnVuY3Rpb24obil7dmFyIGk9biYmbi5tZXNzYWdlfHwiIixhPWk9PT0iRmFpbGVkIHRvIGZldGNoInx8aT09PSJOZXR3b3JrRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIGZldGNoIHJlc291cmNlLiJ8fGk9PT0iTG9hZCBmYWlsZWQifHwvYWJvcnRlZHxhYm9ydGVycm9yfG5ldHdvcmtlcnJvcnxmYWlsZWQgdG8gZmV0Y2gvaS50ZXN0KGkpO2F8fGNvbnNvbGUuZXJyb3IoIlt3YW5kXSBsb2FkU2Vzc2lvbnMgZmFpbGVkOiIsbil9KX12YXIgYXU9bnVsbDtmdW5jdGlvbiB1dSgpe2F1fHwoYXU9c2V0VGltZW91dChmdW5jdGlvbigpe2F1PW51bGwsZmUoKX0sMjAwKSl9ZnVuY3Rpb24gZmUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtbGlzdCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tY291bnQiKTtlJiYoZS5pbm5lckhUTUw9aWEoKSksdCYmKHQudGV4dENvbnRlbnQ9U3RyaW5nKHIuc2Vzc2lvbnMubGVuZ3RoKSksdHlwZW9mIHJuPT0iZnVuY3Rpb24iJiZybigpLExyKCksci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+MCYmU3QoKX1mdW5jdGlvbiBMcigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihnKXtyZXR1cm4gZy5pZD09PXIuc2VsZWN0ZWRJZH0pO2V8fChUbighMSksTGEoKSxnbygpKTt2YXIgdD1lP1FuKGUuY29tbWFuZCk6IldhbmQiLG49ZT9kcihlKToiXHU1RjAwXHU1OUNCXHU1QkY5XHU4QkREIixpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN1bW1hcnktdmFsdWUiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC10aXRsZSIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLWluZm8iKSxzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50b3BiYXItc2Vzc2lvbi10aXRsZSwgLnRvcGJhci10YWdsaW5lIik7cyYmZSYmKHMuY2xhc3NMaXN0LnJlbW92ZSgidG9wYmFyLXRhZ2xpbmUiKSxzLmNsYXNzTGlzdC5hZGQoInRvcGJhci1zZXNzaW9uLXRpdGxlIikscy50ZXh0Q29udGVudD1lLnRpdGxlfHxRbihlLmNvbW1hbmQpLHMuc2V0QXR0cmlidXRlKCJ0aXRsZSIsZS5kZXNjcmlwdGlvbnx8ZS5jb21tYW5kfHwiIikpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0IiksbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0IiksYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKSxmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO2kmJmkudGV4dENvbnRlbnQhPT10JiYoaS50ZXh0Q29udGVudD10KSxhJiZhLnRleHRDb250ZW50IT09dCYmKGEudGV4dENvbnRlbnQ9dCksdSYmKHUudGV4dENvbnRlbnQ9ZT9uKyIgXHhCNyAiK2FtKGUpOm4pO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWtpbmQtZGlzcGxheSIpLHY9ZT9pbShlKToiXHU3RUM4XHU3QUVGIjtkJiZkLnRleHRDb250ZW50IT09diYmKGQudGV4dENvbnRlbnQ9diksd3MoKSwhci50ZXJtaW5hbCYmbCYmZSYmVm4oKSxyLnRlcm1pbmFsJiZsJiYhbC5jb250YWlucyhyLnRlcm1pbmFsLmVsZW1lbnQpJiYoaHIoKSxWbigpKSxlfHwoci50ZXJtaW5hbFNlc3Npb25JZD1udWxsLHIudGVybWluYWxPdXRwdXQ9IiIsci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wKSxyLnRlcm1pbmFsJiZlJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIiYmRXQoInZpZXciKTt2YXIgaD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKTtlPyhvJiZvLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGwmJmwuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksYyYmYy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxoJiZoLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKToobyYmby5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxsJiZsLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGMmJmMuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZiYmZi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxoJiZoLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKSx4aSgpLFhuKGZ0KCkpLFBpKCksTWEoKX1mdW5jdGlvbiBnbihlKXtyLmNoYXRSZW5kZXJUaW1lciYmKGNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksci5jaGF0UmVuZGVyVGltZXI9bnVsbCk7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ZX0pLG49Ii9hcGkvc2Vzc2lvbnMvIitlO3JldHVybiB1bSh0KSYmKG4rPSI/Zm9ybWF0PWNoYXQiKSxmZXRjaChuLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkuZXJyb3Ipe3Iuc2VsZWN0ZWRJZD09PWUmJihyLnNlbGVjdGVkSWQ9bnVsbCx3ZSgpKSxtbigpO3JldHVybn1pZigkKGkpLExyKCksci50ZXJtaW5hbCYmZT09PXIuc2VsZWN0ZWRJZCYmaS5vdXRwdXQhPT12b2lkIDApe3ZhciBhPSEhci53cyYmKHIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOfHxyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuQ09OTkVDVElORyk7YT9ldCgic2Vzc2lvbi1zd2l0Y2giKTooc2koZSxpLm91dHB1dCx7bW9kZToiYXBwZW5kIn0pLGV0KCJzZXNzaW9uLXN3aXRjaCIse2ZvcmNlUmVwbGF5OiEwfSkpfXZhciB1PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PWV9KTtyLmN1cnJlbnRNZXNzYWdlcz16ZSh1LHJ0KHUsaS5vdXRwdXQsITEpKSxKZSghMSl9KX12YXIgc3U9ITE7ZnVuY3Rpb24gYm0oKXtpZihzdSlyZXR1cm4hMTt2YXIgZT1yLnNlbGVjdGVkSWQ7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09ZX0pO2lmKCF0KXJldHVybiExO3ZhciBuPXR5cGVvZiB0Lm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiP3QubWVzc2FnZU9mZnNldDowO2lmKG48PTApcmV0dXJuITE7dmFyIGk9NDAsYT1NYXRoLm1heCgwLG4taSksdT1uLWE7cmV0dXJuIHN1PSEwLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvbWVzc2FnZXM/b2Zmc2V0PSIrYSsiJmxpbWl0PSIrdSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpfSkudGhlbihmdW5jdGlvbihzKXtpZihzJiZBcnJheS5pc0FycmF5KHMubWVzc2FnZXMpJiZ0Lm1lc3NhZ2VPZmZzZXQ9PT1uKXt2YXIgbz1BcnJheS5pc0FycmF5KHQubWVzc2FnZXMpP3QubWVzc2FnZXM6W107dC5tZXNzYWdlcz1zLm1lc3NhZ2VzLmNvbmNhdChvKSx0Lm1lc3NhZ2VPZmZzZXQ9YSx0eXBlb2Ygcy50b3RhbD09Im51bWJlciImJih0Lm1lc3NhZ2VUb3RhbD1zLnRvdGFsKSxlPT09ci5zZWxlY3RlZElkJiYoci5jdXJyZW50TWVzc2FnZXM9emUodCxydCh0LHQub3V0cHV0LCExKSksci5jaGF0UmVuZGVyZWRDb3VudD1yLmN1cnJlbnRNZXNzYWdlcy5sZW5ndGgsSmUoITApKX19KS5jYXRjaChmdW5jdGlvbigpe30pLmZpbmFsbHkoZnVuY3Rpb24oKXtzdT0hMX0pLCEwfWZ1bmN0aW9uIHp0KGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PWV9KTtpZih0KXtyLnNlbGVjdGVkSWQhPT1lJiZocigpLHIuc2VsZWN0ZWRJZD1lLHdlKCksci50b29sQ29udGVudENhY2hlPXt9LHIubWVzc2FnZVF1ZXVlPVtdLHIucGVuZGluZ01lc3NhZ2VzPVtdLEtyKHQpLEl1KCksZG4oKSx4dCgpLHIuY3VycmVudE1lc3NhZ2VzPVtdLHIuY2hhdFJlbmRlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxyLmNoYXRSZW5kZXJUaW1lcj1udWxsKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGk9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhciIpO2kmJmkucmVtb3ZlKCksci5fc3RhdHVzQmFyVGltZXJJZCYmKGNsZWFySW50ZXJ2YWwoci5fc3RhdHVzQmFyVGltZXJJZCksci5fc3RhdHVzQmFyVGltZXJJZD1udWxsKSxyLl9zdGF0dXNCYXJTdGFydFRpbWU9MDt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTthJiZhLmNsYXNzTGlzdC5yZW1vdmUoImluLWZsaWdodCIpO3ZhciB1PXQ7ci5wcmVmZXJyZWRDb21tYW5kPW50KCksci5jaGF0TW9kZT1JdCgiY2xhdWRlIix1JiZ1Lm1vZGU/dS5tb2RlOnIuY2hhdE1vZGUpLHIudGVybWluYWxJbnRlcmFjdGl2ZSYmdSYmdS5zdGF0dXMhPT0icnVubmluZyImJlRuKCExKSxmZSgpLEJyKGUpLHIuZmlsZVBhbmVsT3BlbiYmKGRjKHUpLHF0KCkpLGduKGUpLnRoZW4oZnVuY3Rpb24oKXtSdCghMCl9KSxMbihlKSxyLmdpdFN0YXR1cz1udWxsLHIuZ2l0U3RhdHVzU2Vzc2lvbklkPW51bGwsbmEoKSxDbihlLHtmb3JjZTohMH0pfX1mdW5jdGlvbiBFbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXIiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpLG49amUoKSxpPSEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZCxhPWl8fCFuJiYoISFyLnNpZGViYXJQaW5uZWR8fCEhci5zZXNzaW9uc0RyYXdlck9wZW4pO2UmJihlLmNsYXNzTGlzdC50b2dnbGUoInBpbm5lZCIsYSksZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLGkpKSx0JiYodC5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLXBpbm5lZCIsYSksdC5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLWNvbGxhcHNlZCIsaSkpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXBpbi1idG4iKTt1JiYodS5jbGFzc0xpc3QudG9nZ2xlKCJwaW5uZWQiLCEhci5zaWRlYmFyUGlubmVkKSx1LnRpdGxlPXIuc2lkZWJhclBpbm5lZD8iXHU1REYyXHU1NkZBXHU1QjlBXHU1RTM4XHU5QTdCXHVGRjA4XHU3MEI5XHU1MUZCXHU4OUUzXHU5NjY0XHU5NTAxXHU1QjlBXHVGRjA5IjoiXHU1NkZBXHU1QjlBXHU0RkE3XHU2ODBGXHU1RTM4XHU5QTdCIix1LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsci5zaWRlYmFyUGlubmVkPyJcdTg5RTNcdTk2NjRcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0IiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiKSx1LnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixyLnNpZGViYXJQaW5uZWQ/InRydWUiOiJmYWxzZSIpKX1mdW5jdGlvbiBNcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXIiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXItYmFja2Ryb3AiKSxuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpO2UmJmUuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsUHUoKSksbiYmbi5jbGFzc0xpc3QudG9nZ2xlKCJzaWRlYmFyLW9wZW4iLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIpO2kmJmkuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixyLnNlc3Npb25zRHJhd2VyT3BlbiksRW0oKX1mdW5jdGlvbiBGbSgpe3ZhciBlPWplKCk7aWYoIWUpe3ZhciB0PXIuc2lkZWJhclBpbm5lZD8hMTohci5zZXNzaW9uc0RyYXdlck9wZW47ci5zZXNzaW9uc0RyYXdlck9wZW49dCx0JiYoci5zaWRlYmFyQ29sbGFwc2VkPSExLHhlKCJ3YW5kLXNpZGViYXItY29sbGFwc2VkIiwhMSkpLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHNuKCkscXIoKTtyZXR1cm59aWYoci5zZXNzaW9uc0RyYXdlck9wZW49IXIuc2Vzc2lvbnNEcmF3ZXJPcGVuLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKXtyLmZpbGVQYW5lbE9wZW49ITE7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIsImZhbHNlIil9Y2F0Y2h7fX1zbigpfWZ1bmN0aW9uIFByKCl7dmFyIGU9amUoKTtpZighZSl7aWYoIXIuc2lkZWJhclBpbm5lZCYmIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuKXJldHVybjt4cigpLHIuc2lkZWJhclBpbm5lZD0hMSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSx4ZSgid2FuZC1zaWRlYmFyLXBpbm5lZCIsITEpLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLHNuKCkscXIoKTtyZXR1cm59ci5zZXNzaW9uc0RyYXdlck9wZW4mJih4cigpLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLHNuKCkpfWZ1bmN0aW9uIHdtKCl7aWYoamUoKSl7UHIoKTtyZXR1cm59ci5zaWRlYmFyUGlubmVkfHxyLnNpZGViYXJDb2xsYXBzZWR8fCFyLnNlc3Npb25zRHJhd2VyT3Blbnx8KHhyKCksci5zZXNzaW9uc0RyYXdlck9wZW49ITEseGUoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksc24oKSxxcigpKX1mdW5jdGlvbiBobChlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29tcG9zZXItcGx1cy1wb3BvdmVyIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpO3IucGx1c1BvcG92ZXJPcGVuPSEhZSx0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIWUpLG4mJihuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFlKSxuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsZT8idHJ1ZSI6ImZhbHNlIikpfWZ1bmN0aW9uIENtKCl7aGwoIXIucGx1c1BvcG92ZXJPcGVuKX1mdW5jdGlvbiBxaSgpe3IucGx1c1BvcG92ZXJPcGVuJiZobCghMSl9ZnVuY3Rpb24gVXQoKXtqZSgpJiZyLnNlc3Npb25zRHJhd2VyT3BlbiYmUHIoKX1mdW5jdGlvbiBxcigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWxheW91dCIpO2lmKGUpe3ZhciB0PWZ1bmN0aW9uKG4pe24ucHJvcGVydHlOYW1lPT09InBhZGRpbmctbGVmdCImJihlLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHQpLEh0KCEwKSl9O2UuYWRkRXZlbnRMaXN0ZW5lcigidHJhbnNpdGlvbmVuZCIsdCl9c2V0VGltZW91dChmdW5jdGlvbigpe0h0KCEwKX0sMzUwKX12YXIgVnQ9bnVsbDtmdW5jdGlvbiBCbSgpe3JldHVybiBWdCYmZG9jdW1lbnQuYm9keS5jb250YWlucyhWdCl8fChWdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxWdC5jbGFzc05hbWU9InNpZGViYXItdGlsZS1idWJibGUiLFZ0LnNldEF0dHJpYnV0ZSgicm9sZSIsInRvb2x0aXAiKSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKFZ0KSksVnR9ZnVuY3Rpb24gcm4oKXtWdCYmVnQuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfWZ1bmN0aW9uIERtKGUsdCl7aWYoIXQpe3JuKCk7cmV0dXJufXZhciBuPUJtKCk7bi50ZXh0Q29udGVudD10Lmxlbmd0aD40MDA/dC5zbGljZSgwLDQwMCkrIlx1MjAyNiI6dDt2YXIgaT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO24uY2xhc3NMaXN0LmFkZCgidmlzaWJsZSIpO3ZhciBhPW4uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdT1pLnRvcCtpLmhlaWdodC8yLHM9dS1hLmhlaWdodC8yLG89OCxsPXdpbmRvdy5pbm5lckhlaWdodC1hLmhlaWdodC04O3M8byYmKHM9bykscz5sJiYocz1NYXRoLm1heChvLGwpKSxuLnN0eWxlLmxlZnQ9aS5yaWdodCsxMisicHgiLG4uc3R5bGUudG9wPXMrInB4IixuLnN0eWxlLnNldFByb3BlcnR5KCItLWJ1YmJsZS10YWlsLXkiLHUtcysicHgiKX1mdW5jdGlvbiBrbShlKXtpZihlLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkfSk7aWYoIXQpcmV0dXJuIiI7dmFyIG49VmModCk7cmV0dXJuIG58fHQuc3VtbWFyeXx8dC5jb21tYW5kfHwiIn1pZihlLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkKXt2YXIgaT1yLmNsYXVkZUhpc3RvcnkuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQ9PT1lLmRhdGFzZXQuY29sbGFwc2VkSGlzdG9yeUlkfSk7aWYoaSYmaS5maXJzdFVzZXJNZXNzYWdlKXJldHVybiBpLmZpcnN0VXNlck1lc3NhZ2V9cmV0dXJuIiJ9ZnVuY3Rpb24gQW0oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYoISghdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpKXt2YXIgbj10LmNsb3Nlc3QoIi5zaWRlYmFyLWNvbGxhcHNlZC10aWxlIik7aWYoIW4pe3JuKCk7cmV0dXJufXZhciBpPWttKG4pO2lmKCFpKXtybigpO3JldHVybn1EbShuLGkpfX1mdW5jdGlvbiB4bShlKXt2YXIgdD1lLnJlbGF0ZWRUYXJnZXQ7dCYmdCBpbnN0YW5jZW9mIEVsZW1lbnQmJnQuY2xvc2VzdCgiLnNpZGViYXItY29sbGFwc2VkLXRpbGUiKXx8cm4oKX1mdW5jdGlvbiBTbSgpe3ZhciBlPWplKCk7ci5zaWRlYmFyUGlubmVkfHwoci5zaWRlYmFyUGlubmVkPSEwLHhlKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCkpLHIuc2lkZWJhckNvbGxhcHNlZD0hci5zaWRlYmFyQ29sbGFwc2VkLHhlKCJ3YW5kLXNpZGViYXItY29sbGFwc2VkIixyLnNpZGViYXJDb2xsYXBzZWQpLHIuc2lkZWJhckNvbGxhcHNlZD9yLnNlc3Npb25zRHJhd2VyT3Blbj0hMTplPyhyLnNpZGViYXJQaW5uZWQ9ITEsci5zZXNzaW9uc0RyYXdlck9wZW49ITAseGUoIndhbmQtc2lkZWJhci1waW5uZWQiLCExKSk6ci5zZXNzaW9uc0RyYXdlck9wZW49ITAseGUoIndhbmQtc2lkZWJhci1vcGVuIixyLnNlc3Npb25zRHJhd2VyT3Blbiksc24oKSxmZSgpLFRtKCkscm4oKSxxcigpfWZ1bmN0aW9uIEltKCl7amUoKXx8KHIuc2lkZWJhclBpbm5lZD0hci5zaWRlYmFyUGlubmVkLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLHhlKCJ3YW5kLXNpZGViYXItcGlubmVkIixyLnNpZGViYXJQaW5uZWQpLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITApLHNuKCkscXIoKSl9ZnVuY3Rpb24gVG0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1jb2xsYXBzZS1idG4iKTtpZihlKXt2YXIgdD0hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWQ7ZS5jbGFzc0xpc3QudG9nZ2xlKCJjb2xsYXBzZWQiLHQpLGUudGl0bGU9dD8iXHU1QzU1XHU1RjAwXHU0RkE3XHU2ODBGIjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdD8iXHU1QzU1XHU1RjAwXHU0RkE3XHU2ODBGIjoiXHU2NTM2XHU4RDc3XHU0RTNBXHU3QTg0XHU2NzYxIiksZS5pbm5lckhUTUw9dD8nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxMCA2IDE2IDEyIDEwIDE4Ii8+PGxpbmUgeDE9IjIwIiB5MT0iNSIgeDI9IjIwIiB5Mj0iMTkiLz48L3N2Zz4nOic8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwb2x5bGluZSBwb2ludHM9IjE0IDYgOCAxMiAxNCAxOCIvPjxsaW5lIHgxPSI0IiB5MT0iNSIgeDI9IjQiIHkyPSIxOSIvPjwvc3ZnPid9fWZ1bmN0aW9uIExtKGUpe2lmKGUpe2Uuc3R5bGUubGVmdD0iIixlLnN0eWxlLnJpZ2h0PSIiO3ZhciB0PWUub2Zmc2V0UGFyZW50fHxlLnBhcmVudEVsZW1lbnQ7aWYodCl7dmFyIG49OCxpPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9d2luZG93LmlubmVyV2lkdGg7YS5sZWZ0PG4/KGUuc3R5bGUucmlnaHQ9ImF1dG8iLGUuc3R5bGUubGVmdD1uLWkubGVmdCsicHgiKTphLnJpZ2h0PnUtbiYmKGUuc3R5bGUubGVmdD0iYXV0byIsZS5zdHlsZS5yaWdodD1pLnJpZ2h0LSh1LW4pKyJweCIpfX19ZnVuY3Rpb24gb3UoKXtlcigpLHIubW9kYWxPcGVuPSEwLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLHhlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLE1yKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtlJiYoZS5fd2FuZENsb3NlVGltZXImJihjbGVhclRpbWVvdXQoZS5fd2FuZENsb3NlVGltZXIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGwpLGUuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxyLnNlc3Npb25Ub29sPW50KCksci5wcmVmZXJyZWRDb21tYW5kPXIuc2Vzc2lvblRvb2wsci5zZXNzaW9uQ3JlYXRlS2luZD0ic3RydWN0dXJlZCIsci5zZXNzaW9uQ3JlYXRlV29ya3RyZWU9ITEsci5tb2RlVmFsdWU9SXQoci5zZXNzaW9uVG9vbCxyLm1vZGVWYWx1ZXx8ci5jaGF0TW9kZSksVHIoKSxyZygpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1jYXJkcyIpO3QmJnQuZm9jdXMoKX0sMjApLE9pKGUpKX1mdW5jdGlvbiBobigpe3IubW9kYWxPcGVuPSExO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7ZSYmKHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCksbHUoZSkpLG5yKCl9ZnVuY3Rpb24gbHUoZSl7aWYoZSYmIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSl7dmFyIHQ9ITE7dHJ5e3Q9d2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSIpLm1hdGNoZXN9Y2F0Y2h7fWlmKHR8fGRvY3VtZW50LmhpZGRlbil7ZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtyZXR1cm59ZS5fd2FuZENsb3NlVGltZXImJihjbGVhclRpbWVvdXQoZS5fd2FuZENsb3NlVGltZXIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGwpLGUuY2xhc3NMaXN0LmFkZCgiY2xvc2luZyIpLGUuX3dhbmRDbG9zZVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGx9LDE3MCl9fWZ1bmN0aW9uIE9pKGUpe3IuZm9jdXNUcmFwSGFuZGxlciYmZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKTt2YXIgdD0nYnV0dG9uOm5vdChbZGlzYWJsZWRdKSwgaW5wdXQ6bm90KFtkaXNhYmxlZF0pLCBzZWxlY3Q6bm90KFtkaXNhYmxlZF0pLCB0ZXh0YXJlYTpub3QoW2Rpc2FibGVkXSksIGFbaHJlZl0sIFt0YWJpbmRleF06bm90KFt0YWJpbmRleD0iLTEiXSknO3IuZm9jdXNUcmFwSGFuZGxlcj1mdW5jdGlvbihuKXtpZihuLmtleT09PSJUYWIiKXt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3JBbGwodCksYT1pWzBdLHU9aVtpLmxlbmd0aC0xXTshYXx8IXV8fChuLnNoaWZ0S2V5P2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1hJiYobi5wcmV2ZW50RGVmYXVsdCgpLHUuZm9jdXMoKSk6ZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PXUmJihuLnByZXZlbnREZWZhdWx0KCksYS5mb2N1cygpKSl9fSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpfWZ1bmN0aW9uIE1tKCl7cmV0dXJuIHIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZCYmci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09ci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkfSl8fG51bGx9ZnVuY3Rpb24gT3IoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtY29udGVudCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtZXJyb3IiKSxpPU1tKCksYT1yLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdDtpZighKCFlfHwhdCkpe2lmKCFpfHwhaS53b3JrdHJlZSl7ZS5pbm5lckhUTUw9JzxwIGNsYXNzPSJmaWVsZC1oaW50Ij5cdTY3MkFcdTYyN0VcdTUyMzBcdTUzRUZcdTU0MDhcdTVFNzZcdTc2ODQgd29ya3RyZWUgXHU0RjFBXHU4QkREXHUzMDAyPC9wPicsdC5kaXNhYmxlZD0hMDtyZXR1cm59biYmKHIud29ya3RyZWVNZXJnZUVycm9yP0hlKG4sci53b3JrdHJlZU1lcmdlRXJyb3IpOmxpKG4pKTt2YXIgdT1bJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU2NzY1XHU2RTkwXHU1MjA2XHU2NTJGPC9zcGFuPjxzdHJvbmc+JytwKGkud29ya3RyZWUuYnJhbmNofHwiLSIpKyI8L3N0cm9uZz48L2Rpdj4iLCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvc3Bhbj48c3Ryb25nPicrcChpLndvcmt0cmVlLnBhdGh8fCItIikrIjwvc3Ryb25nPjwvZGl2PiJdO2E/KHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTc2RUVcdTY4MDdcdTUyMDZcdTY1MkY8L3NwYW4+PHN0cm9uZz4nK3AoYS50YXJnZXRCcmFuY2h8fCItIikrIjwvc3Ryb25nPjwvZGl2PiIpLHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTVGODVcdTU0MDhcdTVFNzZcdTYzRDBcdTRFQTQ8L3NwYW4+PHN0cm9uZz4nK3AoU3RyaW5nKGEuYWhlYWRDb3VudHx8MCkpKyI8L3N0cm9uZz48L2Rpdj4iKSx1LnB1c2goJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU2NzJBXHU2M0QwXHU0RUE0XHU2NTM5XHU1MkE4PC9zcGFuPjxzdHJvbmc+JytwKGEuaGFzVW5jb21taXR0ZWRDaGFuZ2VzPyJcdTY3MDkiOiJcdTY1RTAiKSsiPC9zdHJvbmc+PC9kaXY+IiksdS5wdXNoKCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NTFCMlx1N0E4MVx1OThDRVx1OTY2OTwvc3Bhbj48c3Ryb25nPicrcChhLmhhc0NvbmZsaWN0cz8iXHU2NzA5IjoiXHU2NUUwIikrIjwvc3Ryb25nPjwvZGl2PiIpLGEucmVhc29uJiZ1LnB1c2goJzxwIGNsYXNzPSJmaWVsZC1oaW50Ij4nK3AoYS5yZWFzb24pKyI8L3A+IikpOnIud29ya3RyZWVNZXJnZUxvYWRpbmcmJnUucHVzaCgnPHAgY2xhc3M9ImZpZWxkLWhpbnQiPlx1NkI2M1x1NTcyOFx1NjhDMFx1NjdFNSB3b3JrdHJlZSBcdTU0MDhcdTVFNzZcdTcyQjZcdTYwMDFcdTIwMjY8L3A+JyksZS5pbm5lckhUTUw9dS5qb2luKCIiKSx0LmRpc2FibGVkPXIud29ya3RyZWVNZXJnZUxvYWRpbmd8fHIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmd8fCFhfHxhLm9rIT09ITAsdC50ZXh0Q29udGVudD1yLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPyJcdTU0MDhcdTVFNzZcdTRFMkQuLi4iOiJcdTc4NkVcdThCQTRcdTU0MDhcdTVFNzZcdTVFNzZcdTZFMDVcdTc0MDYifX1mdW5jdGlvbiB5bChlKXtyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ9ZSxyLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdD1udWxsLHIud29ya3RyZWVNZXJnZUxvYWRpbmc9ITAsci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixobigpLGVyKCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLW1vZGFsIik7dCYmKHQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxPaSh0KSksT3IoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3dvcmt0cmVlL21lcmdlL2NoZWNrIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3IpdGhyb3cgbmV3IEVycm9yKG4uZXJyb3IpO24mJm4uc2Vzc2lvbiYmJChuLnNlc3Npb24pLHIud29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0PW4ucmVzdWx0fHxudWxsLHIud29ya3RyZWVNZXJnZUVycm9yPSIifSkuY2F0Y2goZnVuY3Rpb24obil7ci53b3JrdHJlZU1lcmdlRXJyb3I9biYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2OEMwXHU2N0U1IHdvcmt0cmVlIFx1NTQwOFx1NUU3Nlx1NzJCNlx1NjAwMVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci53b3JrdHJlZU1lcmdlTG9hZGluZz0hMSxPcigpfSl9ZnVuY3Rpb24gWm4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtbW9kYWwiKTtyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQ9bnVsbCxyLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdD1udWxsLHIud29ya3RyZWVNZXJnZUxvYWRpbmc9ITEsci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMSxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHIuZm9jdXNUcmFwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlciksci5mb2N1c1RyYXBIYW5kbGVyPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCl9ZnVuY3Rpb24gUG0oKXshci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkfHxyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nfHwoci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz0hMCxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIixPcigpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZCkrIi93b3JrdHJlZS9tZXJnZSIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe30pfSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUmJmUuZXJyb3IpdGhyb3cgbmV3IEVycm9yKGUuZXJyb3IpO3JldHVybiBlJiZlLnNlc3Npb24mJiQoZS5zZXNzaW9uKSxrKCJcdTVERjJcdTU0MDhcdTVFNzZcdTUyMzAgIitwKGUucmVzdWx0JiZlLnJlc3VsdC50YXJnZXRCcmFuY2h8fCJcdTRFM0JcdTUyMDZcdTY1MkYiKSsoZS5yZXN1bHQmJmUucmVzdWx0LmNsZWFudXBEb25lPT09ITE/Ilx1RkYwQ1x1NEY0Nlx1NURFNVx1NEY1Q1x1NjgxMVx1NUY4NVx1NkUwNVx1NzQwNlx1MzAwMiI6Ilx1MzAwMiIpLCJpbmZvIiksWm4oKSxqdCgpfSkuY2F0Y2goZnVuY3Rpb24oZSl7ci53b3JrdHJlZU1lcmdlRXJyb3I9ZSYmZS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDA4XHU1RTc2IHdvcmt0cmVlXHUzMDAyIixPcigpfSkuZmluYWxseShmdW5jdGlvbigpe3Iud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc9ITEsT3IoKX0pKX1mdW5jdGlvbiBibChlKXtmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3dvcmt0cmVlL2NsZWFudXAiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7aWYodCYmdC5lcnJvcil0aHJvdyBuZXcgRXJyb3IodC5lcnJvcik7cmV0dXJuIHQmJnQuc2Vzc2lvbiYmJCh0LnNlc3Npb24pLGsoIlx1NURGMlx1NUI4Q1x1NjIxMCB3b3JrdHJlZSBcdTZFMDVcdTc0MDZcdTMwMDIiLCJpbmZvIiksanQoKX0pLmNhdGNoKGZ1bmN0aW9uKHQpe2sodCYmdC5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2RTA1XHU3NDA2IHdvcmt0cmVlXHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIHFtKCl7aG4oKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtpZihlKXtlLl93YW5kQ2xvc2VUaW1lciYmKGNsZWFyVGltZW91dChlLl93YW5kQ2xvc2VUaW1lciksZS5fd2FuZENsb3NlVGltZXI9bnVsbCksZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyLmxhc3RGb2N1c2VkRWxlbWVudD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXctcGFzc3dvcmQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIik7dCYmKHQudmFsdWU9IiIpLG4mJihuLnZhbHVlPSIiKSxFbCgpLE9pKGUpLEhtKCksY3UoImFib3V0Iiksam0oKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXNvdW5kIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLWJ1YmJsZSIpO2kmJihpLmNoZWNrZWQ9ci5ub3RpZlNvdW5kKSxhJiYoYS5jaGVja2VkPXIubm90aWZCdWJibGUpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbm90aWYtdm9sdW1lIikscz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZS12YWwiKTtpZih1KXt1LnZhbHVlPXIubm90aWZWb2x1bWUscyYmKHMudGV4dENvbnRlbnQ9ci5ub3RpZlZvbHVtZSsiJSIpO3RyeXt1LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSl9Y2F0Y2h7fX12YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWYtdm9sdW1lLWZpZWxkIik7aWYobyYmKG8uc3R5bGUuZGlzcGxheT1yLm5vdGlmU291bmQ/IiI6Im5vbmUiKSxibigpLHR5cGVvZiBXYW5kTmF0aXZlPCJ1IiYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0QXBwSWNvbj09ImZ1bmN0aW9uIil0cnl7Q2woV2FuZE5hdGl2ZS5nZXRBcHBJY29uKCl8fCJzaG9ydGhhaXIiKX1jYXRjaHt9aWYoV2UmJnR5cGVvZiBXYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblNvdW5kPT0iZnVuY3Rpb24iKXRyeXt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlbGVjdCIpO2wmJihsLnZhbHVlPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uU291bmQoKSl9Y2F0Y2h7fWlmKFdlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXROb3RpZmljYXRpb25Wb2x1bWU9PSJmdW5jdGlvbiIpdHJ5e3ZhciBjPVdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uVm9sdW1lKCk7aWYoci5ub3RpZlZvbHVtZT1jLHUmJih1LnZhbHVlPVN0cmluZyhjKSkscyYmKHMudGV4dENvbnRlbnQ9YysiJSIpLHUpdHJ5e3UuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoImlucHV0Iix7YnViYmxlczohMH0pKX1jYXRjaHt9dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLXZvbHVtZSIsU3RyaW5nKGMpKX1jYXRjaHt9fWNhdGNoe31pZihXZSYmdHlwZW9mIFdhbmROYXRpdmUuaXNIYXB0aWNFbmFibGVkPT0iZnVuY3Rpb24iKXRyeXt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhhcHRpYy1lbmFibGVkIik7ZiYmKGYuY2hlY2tlZD1XYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZCgpKX1jYXRjaHt9fX1mdW5jdGlvbiBlcigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tb2RhbCIpO2UmJihyLmZvY3VzVHJhcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpLHIuZm9jdXNUcmFwSGFuZGxlcj1udWxsKSxyLmxhc3RGb2N1c2VkRWxlbWVudCYmdHlwZW9mIHIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzPT0iZnVuY3Rpb24iJiZyLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cygpLGx1KGUpKX1mdW5jdGlvbiBFbCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1lcnJvciIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXN1Y2Nlc3MiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gT20oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV3LXBhc3N3b3JkIikudmFsdWUsdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uZmlybS1wYXNzd29yZCIpLnZhbHVlLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWVycm9yIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3Mtc3VjY2VzcyIpO2lmKEVsKCksIWV8fGUubGVuZ3RoPDYpe24udGV4dENvbnRlbnQ9Ilx1NUJDNlx1NzgwMVx1OTU3Rlx1NUVBNlx1ODFGM1x1NUMxMVx1NEUzQSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1MzAwMiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtyZXR1cm59aWYoZSE9PXQpe24udGV4dENvbnRlbnQ9Ilx1NEUyNFx1NkIyMVx1OEY5M1x1NTE2NVx1NzY4NFx1NUJDNlx1NzgwMVx1NEUwRFx1NEUwMFx1ODFGNFx1MzAwMiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtyZXR1cm59ZmV0Y2goIi9hcGkvc2V0LXBhc3N3b3JkIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3Bhc3N3b3JkOmV9KSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKGEuZXJyb3Ipe24udGV4dENvbnRlbnQ9YS5lcnJvcixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3JldHVybn1pLnRleHRDb250ZW50PSJcdTVCQzZcdTc4MDFcdTRGRUVcdTY1MzlcdTYyMTBcdTUyOUZcdUZGMDEiLGkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5ldy1wYXNzd29yZCIpLnZhbHVlPSIiLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maXJtLXBhc3N3b3JkIikudmFsdWU9IiJ9KS5jYXRjaChmdW5jdGlvbigpe24udGV4dENvbnRlbnQ9IkZhaWxlZCB0byBzYXZlIHBhc3N3b3JkLiIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX0pfWZ1bmN0aW9uIGN1KGUpe2Zvcih2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtcGFuZWwiKSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV0uZ2V0QXR0cmlidXRlKCJkYXRhLXRhYiIpPT09ZTthP3RbaV0uY2xhc3NMaXN0LmFkZCgiYWN0aXZlIik6dFtpXS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSx0W2ldLnNldEF0dHJpYnV0ZSgiYXJpYS1zZWxlY3RlZCIsYT8idHJ1ZSI6ImZhbHNlIiksdFtpXS5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IixhPyIwIjoiLTEiKX1mb3IodmFyIHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIHM9blt1XS5pZD09PSJzZXR0aW5ncy10YWItIitlO3M/KG5bdV0uY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksblt1XS5yZW1vdmVBdHRyaWJ1dGUoImhpZGRlbiIpKTooblt1XS5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKSxuW3VdLnNldEF0dHJpYnV0ZSgiaGlkZGVuIiwiaGlkZGVuIikpfX1mdW5jdGlvbiBGbChlKXtpZihlJiYhKGUua2V5IT09IkFycm93VXAiJiZlLmtleSE9PSJBcnJvd0Rvd24iJiZlLmtleSE9PSJIb21lIiYmZS5rZXkhPT0iRW5kIikpe3ZhciB0PUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy10YWIiKSk7aWYodC5sZW5ndGgpe3ZhciBuPXQuaW5kZXhPZihlLmN1cnJlbnRUYXJnZXQpO2lmKG4hPT0tMSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBpPW47ZS5rZXk9PT0iQXJyb3dVcCImJihpPW4+MD9uLTE6dC5sZW5ndGgtMSksZS5rZXk9PT0iQXJyb3dEb3duIiYmKGk9bjx0Lmxlbmd0aC0xP24rMTowKSxlLmtleT09PSJIb21lIiYmKGk9MCksZS5rZXk9PT0iRW5kIiYmKGk9dC5sZW5ndGgtMSk7dmFyIGE9dFtpXTtpZihhKXt2YXIgdT1hLmdldEF0dHJpYnV0ZSgiZGF0YS10YWIiKTt1JiZjdSh1KSx0eXBlb2YgYS5mb2N1cz09ImZ1bmN0aW9uIiYmYS5mb2N1cygpfX19fX1mdW5jdGlvbiBIbSgpe2Zvcih2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0ucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRmwpLGVbdF0uYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRmwpfWZ1bmN0aW9uIF9tKGUpe2lmKGUpe3ZhciB0PWUuY29uZmlnfHx7fSxuPXthYm91dDplLnZlcnNpb24/Ilx1NUY1M1x1NTI0RCB2IitlLnZlcnNpb246Ilx1NzI0OFx1NjcyQ1x1NEUwRVx1NjZGNFx1NjVCMFx1NEZFMVx1NjA2RiIsZ2VuZXJhbDpbdC5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiLHQubGFuZ3VhZ2V8fCJcdTgxRUFcdTUyQThcdThCRURcdThBMDAiXS5maWx0ZXIoQm9vbGVhbikuam9pbigiIFx4QjcgIiksbm90aWZpY2F0aW9uczpyLm5vdGlmU291bmQ/Ilx1NjNEMFx1NzkzQVx1OTdGMyAiK3Iubm90aWZWb2x1bWUrIiUiOiJcdTYzRDBcdTc5M0FcdTk3RjNcdTVERjJcdTUxNzNcdTk1RUQiLHNlY3VyaXR5OmUuaGFzQ2VydD8iXHU1REYyXHU1Qjg5XHU4OEM1IFNTTCBcdThCQzFcdTRFNjYiOiJcdTVCQzZcdTc4MDFcdTRFMEVcdThCQzFcdTRFNjZcdTdCQTFcdTc0MDYiLHByZXNldHM6dC5jb21tYW5kUHJlc2V0cyYmdC5jb21tYW5kUHJlc2V0cy5sZW5ndGg/dC5jb21tYW5kUHJlc2V0cy5sZW5ndGgrIiBcdTY3NjFcdTk4ODRcdThCQkUiOiJcdTY2ODJcdTY1RTBcdTk4ODRcdThCQkUiLGRpc3BsYXk6Ilx1NjNBN1x1NTIzNlx1NTM2MVx1NzI0N1x1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMCJ9O2Zvcih2YXIgaSBpbiBuKWlmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLGkpKXt2YXIgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2V0dGluZ3MtdGFiW2RhdGEtdGFiPSInK2krJyJdIC5zZXR0aW5ncy10YWItbWV0YScpO2EmJihhLnRleHRDb250ZW50PW5baV18fCIiKX19fWZ1bmN0aW9uIE5tKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXItZW1wdHkiKSxpPXdpbmRvdy5RUkNvZGVMaWI7aWYodCl7aWYoIWl8fHR5cGVvZiBpLnRvQ2FudmFzIT0iZnVuY3Rpb24iKXtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU1RTkzXHU2NzJBXHU1MkEwXHU4RjdEIik7cmV0dXJufXRyeXtpLnRvQ2FudmFzKHQsZSx7d2lkdGg6MjIwLG1hcmdpbjoxLGVycm9yQ29ycmVjdGlvbkxldmVsOiJNIixjb2xvcjp7ZGFyazoiIzFmMWIxNyIsbGlnaHQ6IiNmZmZmZmYwMCJ9fSxmdW5jdGlvbihhKXtpZihhKXtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixuLnN0eWxlLmRpc3BsYXk9IiIpLHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjtyZXR1cm59biYmKG4uc3R5bGUuZGlzcGxheT0ibm9uZSIpLHQuc3R5bGUudmlzaWJpbGl0eT0idmlzaWJsZSJ9KX1jYXRjaHtuJiYobi50ZXh0Q29udGVudD0iXHU0RThDXHU3RUY0XHU3ODAxXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixuLnN0eWxlLmRpc3BsYXk9IiIpLHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIn19fWZ1bmN0aW9uIFJtKGUpe3ZhciB0PXdpbmRvdy5RUkNvZGVMaWI7aWYoIXR8fHR5cGVvZiB0LnRvQ2FudmFzIT0iZnVuY3Rpb24iKXJldHVybjt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29ubmVjdC1xci1tb2RhbCIpO24mJm4ucmVtb3ZlKCk7dmFyIGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7aS5pZD0iY29ubmVjdC1xci1tb2RhbCIsaS5jbGFzc05hbWU9ImNvbm5lY3QtcXItbW9kYWwtb3ZlcmxheSIsaS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvbm5lY3QtcXItbW9kYWwtY2FyZCI+PGNhbnZhcyBpZD0iY29ubmVjdC1xci1tb2RhbC1jYW52YXMiPjwvY2FudmFzPjxwIGNsYXNzPSJjb25uZWN0LXFyLW1vZGFsLWhpbnQiPlx1NzUyOCBXYW5kIEFwcCBcdTYyNkJcdTRFMDBcdTYyNkJcdUZGMENcdThGREVcdTYzQTVcdTVGNTNcdTUyNERcdTY3MERcdTUyQTFcdTU2Njg8L3A+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gY29ubmVjdC1xci1tb2RhbC1jbG9zZSI+XHU1MTczXHU5NUVEPC9idXR0b24+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGkpO3ZhciBhPWkucXVlcnlTZWxlY3RvcigiI2Nvbm5lY3QtcXItbW9kYWwtY2FudmFzIiksdT1NYXRoLm1pbih3aW5kb3cuaW5uZXJXaWR0aCx3aW5kb3cuaW5uZXJIZWlnaHQpKi43O3U8MjQwJiYodT0yNDApLHU+NDgwJiYodT00ODApO3RyeXt0LnRvQ2FudmFzKGEsZSx7d2lkdGg6dSxtYXJnaW46MixlcnJvckNvcnJlY3Rpb25MZXZlbDoiTSIsY29sb3I6e2Rhcms6IiMxZjFiMTciLGxpZ2h0OiIjZmZmZmZmIn19KX1jYXRjaHt9ZnVuY3Rpb24gcygpe2kucmVtb3ZlKCl9aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obCl7bC50YXJnZXQ9PT1pJiZzKCl9KTt2YXIgbz1pLnF1ZXJ5U2VsZWN0b3IoIi5jb25uZWN0LXFyLW1vZGFsLWNsb3NlIik7byYmby5hZGRFdmVudExpc3RlbmVyKCJjbGljayIscyl9ZnVuY3Rpb24gSHIoZSx0LG4pe2lmKCFlKXJldHVybjtmdW5jdGlvbiBpKCl7aWYoS24oImxpZ2h0Iiksbil7bigpO3JldHVybn1pZih0KXt2YXIgYT10LnRleHRDb250ZW50O3QudGV4dENvbnRlbnQ9Ilx1NURGMlx1NTkwRFx1NTIzNiIsc2V0VGltZW91dChmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9YX0sMTUwMCl9fWlmKFdlJiZ0eXBlb2YgV2FuZE5hdGl2ZS5jb3B5VG9DbGlwYm9hcmQ9PSJmdW5jdGlvbiIpdHJ5e2lmKFdhbmROYXRpdmUuY29weVRvQ2xpcGJvYXJkKGUpPT09Im9rIil7aSgpO3JldHVybn19Y2F0Y2h7fW5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KGUpLnRoZW4oaSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO2EudmFsdWU9ZSxhLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsYS5zdHlsZS5vcGFjaXR5PSIwIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGEpLGEuc2VsZWN0KCksZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGEpLGkoKX0pfWZ1bmN0aW9uIHluKGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyInx8IWlzRmluaXRlKGUpfHxlPDApcmV0dXJuIi0iO2lmKGU8MTAyNClyZXR1cm4gZSsiIEIiO2Zvcih2YXIgdD1bIktCIiwiTUIiLCJHQiIsIlRCIl0sbj1lLzEwMjQsaT0wO24+PTEwMjQmJmk8dC5sZW5ndGgtMTspbj1uLzEwMjQsaSs9MTt2YXIgYT1uPj0xMD9uLnRvRml4ZWQoMCk6bi50b0ZpeGVkKDEpO3JldHVybiBhKyIgIit0W2ldfWZ1bmN0aW9uIGptKCl7ZmV0Y2goIi9hcGkvc2V0dGluZ3MiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe19tKGUpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1wa2ctbmFtZSIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXZlcnNpb24iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1ub2RlLXJlcSIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXJlcG8tdXJsIik7dCYmKHQudGV4dENvbnRlbnQ9ZS5wYWNrYWdlTmFtZXx8Ii0iKSxuJiYobi50ZXh0Q29udGVudD1lLnZlcnNpb258fCItIiksaSYmKGkudGV4dENvbnRlbnQ9ZS5ub2RlVmVyc2lvbnx8Ii0iKSxhJiZlLnJlcG9VcmwmJihhLmlubmVySFRNTD0nPGEgaHJlZj0iJytwKGUucmVwb1VybCkrJyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPicrcChlLnJlcG9VcmwpKyI8L2E+Iik7dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWxhdGVzdC12ZXJzaW9uIikscz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tdXBkYXRlLWJ1dHRvbiIpO2UubGF0ZXN0VmVyc2lvbiYmdSYmKHUudGV4dENvbnRlbnQ9ZS5sYXRlc3RWZXJzaW9uLGUudXBkYXRlQXZhaWxhYmxlJiZzJiZzLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO28mJihvLmNoZWNrZWQ9ZS51cGRhdGVDaGFubmVsPT09ImJldGEiKTt2YXIgbD1lLmF1dG9VcGRhdGV8fHt9LGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiKTtjJiYoYy5jaGVja2VkPSEhbC53ZWIpO3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1hcGstdG9nZ2xlIik7ZiYmKGYuY2hlY2tlZD0hIVNuJiYhIWwuYXBrKTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtZG1nLXRvZ2dsZSIpO2QmJihkLmNoZWNrZWQ9ISFsbiYmISFsLmRtZyk7ZnVuY3Rpb24gdihaLEllKXt0eXBlb2Ygd2luZG93LndhbmRBbGVydD09ImZ1bmN0aW9uIj93aW5kb3cud2FuZEFsZXJ0KFose3R5cGU6SWU9PT0iZXJyb3IiPyJkYW5nZXIiOiJpbmZvIn0pOnR5cGVvZiBrPT0iZnVuY3Rpb24iP2soWixJZT09PSJlcnJvciI/ImVycm9yIjoiaW5mbyIpOkllPT09ImVycm9yIiYmYWxlcnQoWil9ZnVuY3Rpb24gaChaLEllLFRlKXt2YXIgUWU9VGU/VGUudGV4dENvbnRlbnQ6IiI7VGUmJihUZS5kaXNhYmxlZD0hMCxUZS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEXHU0RTJEXHUyMDI2Iik7ZnVuY3Rpb24gJGUoKXtUZSYmKFRlLmRpc2FibGVkPSExLFRlLnRleHRDb250ZW50PVFlKX1mZXRjaChaLHttZXRob2Q6IkhFQUQiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKEZlKXtpZighRmUub2spe3YoRmUuc3RhdHVzPT09NDA0PyJcdTRFMEJcdThGN0RcdTY3MkFcdTU0MkZcdTc1MjhcdTYyMTZcdTY1ODdcdTRFRjZcdTVERjJcdTc5RkJcdTk2NjQiOiJcdTRFMEJcdThGN0RcdTU5MzFcdThEMjUgKEhUVFAgIitGZS5zdGF0dXMrIikiLCJlcnJvciIpLCRlKCk7cmV0dXJufXZhciBMZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7TGUuaHJlZj1aLExlLmRvd25sb2FkPUllfHwiIixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKExlKSxMZS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoTGUpLHYoIlx1NURGMlx1NUYwMFx1NTlDQlx1NEUwQlx1OEY3RFx1RkYwQ1x1OEJGN1x1NTcyOFx1OTAxQVx1NzdFNVx1NjgwRi9cdTRFMEJcdThGN0RcdTdCQTFcdTc0MDZcdTRFMkRcdTY3RTVcdTc3MEIiLCJpbmZvIiksJGUoKX0pLmNhdGNoKGZ1bmN0aW9uKEZlKXt2KCJcdTRFMEJcdThGN0RcdTU5MzFcdThEMjU6ICIrKEZlJiZGZS5tZXNzYWdlP0ZlLm1lc3NhZ2U6RmUpLCJlcnJvciIpLCRlKCl9KX1mdW5jdGlvbiBnKFosSWUpe2Z1bmN0aW9uIFRlKGRlKXt2YXIgdmU9U3RyaW5nKGRlfHwiIikucmVwbGFjZSgvXnYvLCIiKSxPZT12ZS5pbmRleE9mKCItIikscnI9T2U+PTA/dmUuc2xpY2UoMCxPZSk6dmUsUnI9T2U+PTA/dmUuc2xpY2UoT2UrMSk6IiI7cmV0dXJue3BhcnRzOnJyLnNwbGl0KCIuIikubWFwKGZ1bmN0aW9uKFJpKXtyZXR1cm4gcGFyc2VJbnQoUmksMTApfHwwfSkscHJlOlJyLGlzRGVidWc6UnIuaW5kZXhPZigiZGVidWciKT09PTB9fWZvcih2YXIgUWU9VGUoWiksJGU9VGUoSWUpLEZlPTA7RmU8MztGZSsrKXt2YXIgTGU9KFFlLnBhcnRzW0ZlXXx8MCktKCRlLnBhcnRzW0ZlXXx8MCk7aWYoTGUhPT0wKXJldHVybiBMZT4wPzE6LTF9aWYoUWUuaXNEZWJ1ZyE9PSRlLmlzRGVidWcpcmV0dXJuIFFlLmlzRGVidWc/MTotMTtpZihRZS5pc0RlYnVnJiYkZS5pc0RlYnVnKWZvcih2YXIgWGU9UWUucHJlLnNwbGl0KCIuIiksWXQ9JGUucHJlLnNwbGl0KCIuIiksSD0wO0g8TWF0aC5tYXgoWGUubGVuZ3RoLFl0Lmxlbmd0aCk7SCsrKXtpZihYZVtIXT09PXZvaWQgMClyZXR1cm4tMTtpZihZdFtIXT09PXZvaWQgMClyZXR1cm4gMTt2YXIgUj1wYXJzZUludChYZVtIXSwxMCksUT1wYXJzZUludChZdFtIXSwxMCk7aWYoIWlzTmFOKFIpJiYhaXNOYU4oUSkpe2lmKFIhPT1RKXJldHVybiBSPlE/MTotMX1lbHNlIGlmKFhlW0hdIT09WXRbSF0pcmV0dXJuIFhlW0hdPll0W0hdPzE6LTF9cmV0dXJuIDB9ZnVuY3Rpb24gbShaLEllLFRlLFFlLCRlLEZlKXtaLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFouZGlzYWJsZWQ9ITEsSWU+MD9aLnRleHRDb250ZW50PSJcdTUzNDdcdTdFQTciOkllPT09MD8oWi50ZXh0Q29udGVudD0iXHU1REYyXHU2NjJGXHU2NzAwXHU2NUIwIixaLmRpc2FibGVkPSEwKTpGZT9aLnRleHRDb250ZW50PSJcdTkxQ0RcdTY1QjBcdTVCODlcdTg4QzUiOihaLnRleHRDb250ZW50PSJcdTcyNDhcdTY3MkNcdThGODNcdTY1RTciLFouZGlzYWJsZWQ9ITApLFoub25jbGljaz1aLmRpc2FibGVkP251bGw6ZnVuY3Rpb24oKXt0cnl7V2FuZE5hdGl2ZS5kb3dubG9hZFVwZGF0ZShUZSxRZSwkZSl9Y2F0Y2goTGUpe3YoIlx1OEMwM1x1NzUyOFx1NEUwQlx1OEY3RFx1NTkzMVx1OEQyNTogIisoTGUmJkxlLm1lc3NhZ2U/TGUubWVzc2FnZTpMZSksImVycm9yIil9fX12YXIgeT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hcGstc2VjdGlvbiIpLHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLWN1cnJlbnQtcm93IiksRT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYW5kcm9pZC1hcGstY3VycmVudCIpLEI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLWdpdGh1Yi1yb3ciKSxGPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1hbmRyb2lkLWFway1naXRodWIiKSx4PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3dubG9hZC1naXRodWItYXBrLWJ0biIpLFM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLWxvY2FsLXJvdyIpLF89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWFuZHJvaWQtYXBrLWxvY2FsIiksSz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtbG9jYWwtYXBrLWJ0biIpLFk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLW1lc3NhZ2UiKSxJPWUuYW5kcm9pZEFwa3x8e30sRD0hIVNuLEw9SS5lbmFibGVkIT09ITEsUD1EfHxMJiYoISFJLmdpdGh1Ynx8ISFJLmxvY2FsKTtpZih5JiYoUD95LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpOnkuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpLEQpe2lmKHcmJkUmJihFLnRleHRDb250ZW50PSJ2IitTbix3LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxJLmdpdGh1YiYmQiYmRil7dmFyIHo9SS5naXRodWIudmVyc2lvbj8idiIrSS5naXRodWIudmVyc2lvbjpJLmdpdGh1Yi5maWxlTmFtZTtpZih0eXBlb2YgSS5naXRodWIuc2l6ZT09Im51bWJlciImJih6Kz0iIFx4QjcgIit5bihJLmdpdGh1Yi5zaXplKSksRi50ZXh0Q29udGVudD16LEIuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikseCl7dmFyIFU9SS5naXRodWIudmVyc2lvbj9nKEkuZ2l0aHViLnZlcnNpb24sU24pOjE7bSh4LFUsSS5naXRodWIuZG93bmxvYWRVcmwsSS5naXRodWIuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5hcGsiLCJnaXRodWIiLCExKX19aWYoSS5sb2NhbCYmUyYmXyl7dmFyIGVlPUkubG9jYWwudmVyc2lvbj8idiIrSS5sb2NhbC52ZXJzaW9uOkkubG9jYWwuZmlsZU5hbWU7aWYodHlwZW9mIEkubG9jYWwuc2l6ZT09Im51bWJlciImJihlZSs9IiBceEI3ICIreW4oSS5sb2NhbC5zaXplKSksXy50ZXh0Q29udGVudD1lZSxTLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLEspe3ZhciB0ZT1JLmxvY2FsLnZlcnNpb24/ZyhJLmxvY2FsLnZlcnNpb24sU24pOjE7bShLLHRlLEkubG9jYWwuZG93bmxvYWRVcmwsSS5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmFwayIsImxvY2FsIiwhMSl9fSFJLmdpdGh1YiYmIUkubG9jYWwmJlkmJihZLnRleHRDb250ZW50PSJcdTY2ODJcdTY1RTBcdTUzRUZcdTc1MjhcdTY2RjRcdTY1QjAiLFkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3ZhciBhZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hdXRvLXVwZGF0ZS1yb3ciKSx1ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1hdXRvLXVwZGF0ZS1oaW50Iik7YWUmJmFlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHVlJiZ1ZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX1lbHNle2lmKEkuZ2l0aHViJiZCJiZGKXt2YXIgVD1JLmdpdGh1Yi52ZXJzaW9uPyJ2IitJLmdpdGh1Yi52ZXJzaW9uOkkuZ2l0aHViLmZpbGVOYW1lO3R5cGVvZiBJLmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKFQrPSIgXHhCNyAiK3luKEkuZ2l0aHViLnNpemUpKSxGLnRleHRDb250ZW50PVQsQi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx4JiYoeC50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEIix4LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHgub25jbGljaz1mdW5jdGlvbigpe3dpbmRvdy5vcGVuKEkuZ2l0aHViLmRvd25sb2FkVXJsLCJfYmxhbmsiKSx2KCJcdTZCNjNcdTU3MjhcdTYyNTNcdTVGMDBcdTRFMEJcdThGN0RcdTk4NzVcdTIwMjYiLCJpbmZvIil9KX1pZihJLmxvY2FsJiZTJiZfKXt2YXIgTT1JLmxvY2FsLnZlcnNpb24/InYiK0kubG9jYWwudmVyc2lvbjpJLmxvY2FsLmZpbGVOYW1lO3R5cGVvZiBJLmxvY2FsLnNpemU9PSJudW1iZXIiJiYoTSs9IiBceEI3ICIreW4oSS5sb2NhbC5zaXplKSksXy50ZXh0Q29udGVudD1NLFMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksSyYmKEsudGV4dENvbnRlbnQ9Ilx1NEUwQlx1OEY3RCIsSy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxLLm9uY2xpY2s9ZnVuY3Rpb24oKXtoKEkubG9jYWwuZG93bmxvYWRVcmwsSS5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmFwayIsSyl9KX0hSS5naXRodWImJiFJLmxvY2FsJiZZJiYoWS50ZXh0Q29udGVudD1MPyJcdTU3MjhcdTdFQkZcdTcyNDhcdTY3MkNcdTY2ODJcdTY1RjZcdTgzQjdcdTUzRDZcdTU5MzFcdThEMjVcdUZGMENcdTUzRUZcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDUiOiJBbmRyb2lkIFx1NEUwQlx1OEY3RFx1NjcyQVx1NTcyOFx1NjcwRFx1NTJBMVx1N0FFRlx1NTQyRlx1NzUyOCIsWS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9dmFyIE49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1zZWN0aW9uIiksSj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLWN1cnJlbnQtcm93IiksRz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbWFjb3MtZG1nLWN1cnJlbnQiKSxyZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLWdpdGh1Yi1yb3ciKSxzZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbWFjb3MtZG1nLWdpdGh1YiIpLG9lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3dubG9hZC1naXRodWItZG1nLWJ0biIpLG5lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctbG9jYWwtcm93IikscWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1hY29zLWRtZy1sb2NhbCIpLERlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkb3dubG9hZC1sb2NhbC1kbWctYnRuIiksaGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1tZXNzYWdlIikscT1lLm1hY29zRG1nfHx7fSxVZT0hIWxuLHZ0PXEuZW5hYmxlZCE9PSExLHd0PVVlfHx2dCYmKCEhcS5naXRodWJ8fCEhcS5sb2NhbCk7aWYoTiYmKHd0P04uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik6Ti5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSksVWUpe2lmKEomJkcmJihHLnRleHRDb250ZW50PSJ2IitsbixKLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxxLmdpdGh1YiYmcmUmJnNlKXt2YXIgVz1xLmdpdGh1Yi52ZXJzaW9uPyJ2IitxLmdpdGh1Yi52ZXJzaW9uOnEuZ2l0aHViLmZpbGVOYW1lO2lmKHR5cGVvZiBxLmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKFcrPSIgXHhCNyAiK3luKHEuZ2l0aHViLnNpemUpKSxzZS50ZXh0Q29udGVudD1XLHJlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLG9lKXt2YXIgWD1xLmdpdGh1Yi52ZXJzaW9uP2cocS5naXRodWIudmVyc2lvbixsbik6MTttKG9lLFgscS5naXRodWIuZG93bmxvYWRVcmwscS5naXRodWIuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5kbWciLCJnaXRodWIiLCEwKX19aWYocS5sb2NhbCYmbmUmJnFlKXt2YXIgcGU9cS5sb2NhbC52ZXJzaW9uPyJ2IitxLmxvY2FsLnZlcnNpb246cS5sb2NhbC5maWxlTmFtZTtpZih0eXBlb2YgcS5sb2NhbC5zaXplPT0ibnVtYmVyIiYmKHBlKz0iIFx4QjcgIit5bihxLmxvY2FsLnNpemUpKSxxZS50ZXh0Q29udGVudD1wZSxuZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxEZSl7dmFyIHllPXEubG9jYWwudmVyc2lvbj9nKHEubG9jYWwudmVyc2lvbixsbik6MTttKERlLHllLHEubG9jYWwuZG93bmxvYWRVcmwscS5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmRtZyIsImxvY2FsIiwhMCl9fSFxLmdpdGh1YiYmIXEubG9jYWwmJmhlJiYoaGUudGV4dENvbnRlbnQ9Ilx1NjY4Mlx1NjVFMFx1NTNFRlx1NzUyOFx1NjZGNFx1NjVCMCIsaGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3ZhciBDZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtYXV0by11cGRhdGUtcm93IiksbXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWF1dG8tdXBkYXRlLWhpbnQiKTtDZSYmQ2UuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksbXQmJm10LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfWVsc2V7aWYocS5naXRodWImJnJlJiZzZSl7dmFyIG90PXEuZ2l0aHViLnZlcnNpb24/InYiK3EuZ2l0aHViLnZlcnNpb246cS5naXRodWIuZmlsZU5hbWU7dHlwZW9mIHEuZ2l0aHViLnNpemU9PSJudW1iZXIiJiYob3QrPSIgXHhCNyAiK3luKHEuZ2l0aHViLnNpemUpKSxzZS50ZXh0Q29udGVudD1vdCxyZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxvZSYmKG9lLnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QiLG9lLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLG9lLm9uY2xpY2s9ZnVuY3Rpb24oKXt3aW5kb3cub3BlbihxLmdpdGh1Yi5kb3dubG9hZFVybCwiX2JsYW5rIiksdigiXHU2QjYzXHU1NzI4XHU2MjUzXHU1RjAwXHU0RTBCXHU4RjdEXHU5ODc1XHUyMDI2IiwiaW5mbyIpfSl9aWYocS5sb2NhbCYmbmUmJnFlKXt2YXIgZ3Q9cS5sb2NhbC52ZXJzaW9uPyJ2IitxLmxvY2FsLnZlcnNpb246cS5sb2NhbC5maWxlTmFtZTt0eXBlb2YgcS5sb2NhbC5zaXplPT0ibnVtYmVyIiYmKGd0Kz0iIFx4QjcgIit5bihxLmxvY2FsLnNpemUpKSxxZS50ZXh0Q29udGVudD1ndCxuZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxEZSYmKERlLnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QiLERlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLERlLm9uY2xpY2s9ZnVuY3Rpb24oKXtoKHEubG9jYWwuZG93bmxvYWRVcmwscS5sb2NhbC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmRtZyIsRGUpfSl9IXEuZ2l0aHViJiYhcS5sb2NhbCYmaGUmJihoZS50ZXh0Q29udGVudD12dD8iXHU1NzI4XHU3RUJGXHU3MjQ4XHU2NzJDXHU2NjgyXHU2NUY2XHU4M0I3XHU1M0Q2XHU1OTMxXHU4RDI1XHVGRjBDXHU1M0VGXHU3QTBEXHU1NDBFXHU5MUNEXHU4QkQ1IjoibWFjT1MgXHU0RTBCXHU4RjdEXHU2NzJBXHU1NzI4XHU2NzBEXHU1MkExXHU3QUVGXHU1NDJGXHU3NTI4IixoZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9dmFyIFZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtY29kZSIpLGh0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXIiKSxsdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyLWVtcHR5IiksR2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1xci13cmFwIik7aWYoVmUpe1ZlLnRleHRDb250ZW50PSJcdTUyQTBcdThGN0RcdTRFMkQuLi4iLGx0JiYobHQudGV4dENvbnRlbnQ9Ilx1NzUxRlx1NjIxMFx1NEUyRFx1MjAyNiIpLGh0JiYoaHQuc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIik7dmFyIGtlPSIvYXBpL2FwcC1jb25uZWN0LWNvZGUiO3dpbmRvdy5sb2NhdGlvbiYmd2luZG93LmxvY2F0aW9uLm9yaWdpbiYmKGtlKz0iP29yaWdpbj0iK2VuY29kZVVSSUNvbXBvbmVudCh3aW5kb3cubG9jYXRpb24ub3JpZ2luKSksZmV0Y2goa2Use2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKFope3JldHVybiBaLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oWil7Wi5jb2RlPyhWZS50ZXh0Q29udGVudD1aLmNvZGUsci5hbmRyb2lkQ29ubmVjdENvZGU9Wi5jb2RlLE5tKFouY29kZSkpOihWZS50ZXh0Q29udGVudD0iXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IixsdCYmKGx0LnRleHRDb250ZW50PSJcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjUiKSl9KS5jYXRjaChmdW5jdGlvbigpe1ZlLnRleHRDb250ZW50PSJcdTgzQjdcdTUzRDZcdTU5MzFcdThEMjUiLGx0JiYobHQudGV4dENvbnRlbnQ9Ilx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNSIpfSl9R2UmJiFHZS5kYXRhc2V0LmJvdW5kJiYoR2UuZGF0YXNldC5ib3VuZD0iMSIsR2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5hbmRyb2lkQ29ubmVjdENvZGUmJlJtKHIuYW5kcm9pZENvbm5lY3RDb2RlKX0pKTt2YXIgbWU9ZS5jb25maWd8fHt9LGJlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaG9zdCIpLEM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1wb3J0IiksaXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1odHRwcyIpLHl0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbW9kZSIpLEN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY3dkIiksQnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1zaGVsbCIpO2JlJiYoYmUudmFsdWU9bWUuaG9zdHx8IiIpLEMmJihDLnZhbHVlPW1lLnBvcnR8fCIiKSxpdCYmKGl0LmNoZWNrZWQ9bWUuaHR0cHM9PT0hMCkseXQmJih5dC52YWx1ZT1tZS5kZWZhdWx0TW9kZXx8ImRlZmF1bHQiKSxDdCYmKEN0LnZhbHVlPW1lLmRlZmF1bHRDd2R8fCIiKSxCdCYmKEJ0LnZhbHVlPW1lLnNoZWxsfHwiIik7dmFyIEt0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbGFuZ3VhZ2UiKTtLdCYmKEt0LnZhbHVlPW1lLmxhbmd1YWdlfHwiIik7dmFyIEp0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc3RydWN0dXJlZC1ydW5uZXIiKTtKdCYmKEp0LnZhbHVlPW1lLnN0cnVjdHVyZWRSdW5uZXJ8fCJjbGkiKTt2YXIgR3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1pbmhlcml0LWVudiIpO0d0JiYoR3QuY2hlY2tlZD1tZS5pbmhlcml0RW52IT09ITEpLHIuY29uZmlnRGVmYXVsdE1vZGVsPW1lLmRlZmF1bHRNb2RlbHx8IiIsTWkoKSxwbCgpLnRoZW4oZnVuY3Rpb24oKXtNaSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KTt2YXIgRWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQtc3RhdHVzIik7RWUmJihFZS50ZXh0Q29udGVudD1lLmhhc0NlcnQ/Ilx1NURGMlx1NUI4OVx1ODhDNSBTU0wgXHU4QkMxXHU0RTY2IjoiXHU2NzJBXHU1Qjg5XHU4OEM1XHU4QkMxXHU0RTY2XHVGRjA4XHU0RjdGXHU3NTI4XHU4MUVBXHU3QjdFXHU1NDBEXHU2MjE2IEhUVFBcdUZGMDkiLEVlLnN0eWxlLmNvbG9yPWUuaGFzQ2VydD8idmFyKC0tc3VjY2VzcykiOiJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiKTt2YXIgX2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByZXNldHMtbGlzdCIpO2lmKF9lJiZtZS5jb21tYW5kUHJlc2V0cyl7Zm9yKHZhciBBZT0iIixOZT0wO05lPG1lLmNvbW1hbmRQcmVzZXRzLmxlbmd0aDtOZSsrKXt2YXIgYnQ9bWUuY29tbWFuZFByZXNldHNbTmVdO0FlKz0nPGRpdiBjbGFzcz0icHJlc2V0LWl0ZW0iPjxzcGFuIGNsYXNzPSJwcmVzZXQtbGFiZWwiPicrcChidC5sYWJlbCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0icHJlc2V0LWRldGFpbCI+JytwKGJ0LmNvbW1hbmQpKyhidC5tb2RlPyIgKCIrcChidC5tb2RlKSsiKSI6IiIpKyI8L3NwYW4+PC9kaXY+In1BZXx8KEFlPSc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZS1jb21wYWN0Ij48c3BhbiBjbGFzcz0iZW1wdHktaWNvbiI+XHUyNjk5PC9zcGFuPjxzcGFuPlx1NkNBMVx1NjcwOVx1NTQ3RFx1NEVFNFx1OTg4NFx1OEJCRTwvc3Bhbj48c3BhbiBjbGFzcz0iaGludCI+XHU1NzI4IGNvbmZpZy5qc29uIFx1NzY4NCBjb21tYW5kUHJlc2V0cyBcdTRFMkRcdTkxNERcdTdGNkU8L3NwYW4+PC9kaXY+JyksX2UuaW5uZXJIVE1MPUFlfXZhciBhdD1tZS5jYXJkRGVmYXVsdHN8fHt9LFR0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1lZGl0IiksWWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLWlubGluZSIpLE1uPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10ZXJtaW5hbCIpLGNlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10aGlua2luZyIpLGN0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10b29sZ3JvdXAiKTtUdCYmKFR0LmNoZWNrZWQ9YXQuZWRpdENhcmRzPT09ITApLFllJiYoWWUuY2hlY2tlZD1hdC5pbmxpbmVUb29scz09PSEwKSxNbiYmKE1uLmNoZWNrZWQ9YXQudGVybWluYWw9PT0hMCksY2UmJihjZS5jaGVja2VkPWF0LnRoaW5raW5nPT09ITApLGN0JiYoY3QuY2hlY2tlZD1hdC50b29sR3JvdXA9PT0hMCl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIFdtKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbmZpZy1tZXNzYWdlIik7ZSYmKGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS50ZXh0Q29udGVudD0iIik7dmFyIHQ9e2hvc3Q6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaG9zdCIpfHx7fSkudmFsdWUscG9ydDpOdW1iZXIoKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctcG9ydCIpfHx7fSkudmFsdWUpLGh0dHBzOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWh0dHBzIil8fHt9KS5jaGVja2VkLGRlZmF1bHRNb2RlOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW1vZGUiKXx8e30pLnZhbHVlLGRlZmF1bHRDd2Q6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY3dkIil8fHt9KS52YWx1ZSxzaGVsbDooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1zaGVsbCIpfHx7fSkudmFsdWUsbGFuZ3VhZ2U6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctbGFuZ3VhZ2UiKXx8e30pLnZhbHVlfHwiIixkZWZhdWx0TW9kZWw6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpfHx7fSkudmFsdWV8fCIiLHN0cnVjdHVyZWRSdW5uZXI6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc3RydWN0dXJlZC1ydW5uZXIiKXx8e30pLnZhbHVlfHwiY2xpIixpbmhlcml0RW52Oihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWluaGVyaXQtZW52Iil8fHt9KS5jaGVja2VkIT09ITF9LG49ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiIsaT10LmRlZmF1bHRNb2RlbHx8IiI7ZmV0Y2goIi9hcGkvc2V0dGluZ3MvY29uZmlnIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh0KX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtpZihlJiYoYS5lcnJvcj8oZS50ZXh0Q29udGVudD1hLmVycm9yLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIpOihlLnRleHRDb250ZW50PWEucmVzdGFydFJlcXVpcmVkPyJcdTkxNERcdTdGNkVcdTVERjJcdTRGRERcdTVCNThcdUZGMENcdTkwRThcdTUyMDZcdTkwRThcdTdGNzJcdTVCNTdcdTZCQjVcdUZGMDhob3N0L3BvcnQvaHR0cHMvc2hlbGxcdUZGMDlcdTk3MDBcdTg5ODFcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTYyNERcdTc1MUZcdTY1NDhcdTMwMDIiOiJcdTkxNERcdTdGNkVcdTVERjJcdTRGRERcdTVCNThcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksKCFhfHwhYS5lcnJvcikmJihyLmNvbmZpZyYmKHIuY29uZmlnLmRlZmF1bHRNb2RlbD1pKSxyLmNvbmZpZ0RlZmF1bHRNb2RlbD1pLGkhPT1uKSl7ci5jaGF0TW9kZWw9IiI7dHJ5e2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLWNoYXQtbW9kZWwiKX1jYXRjaHt9WG4oZnQoKSl9fSkuY2F0Y2goZnVuY3Rpb24oKXtlJiYoZS50ZXh0Q29udGVudD0iXHU0RkREXHU1QjU4XHU1OTMxXHU4RDI1XHUzMDAyIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfSl9ZnVuY3Rpb24gem0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGlzcGxheS1tZXNzYWdlIik7ZSYmKGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS50ZXh0Q29udGVudD0iIik7dmFyIHQ9e2NhcmREZWZhdWx0czp7ZWRpdENhcmRzOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1lZGl0Iil8fHt9KS5jaGVja2VkLGlubGluZVRvb2xzOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1pbmxpbmUiKXx8e30pLmNoZWNrZWQsdGVybWluYWw6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRlcm1pbmFsIil8fHt9KS5jaGVja2VkLHRoaW5raW5nOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10aGlua2luZyIpfHx7fSkuY2hlY2tlZCx0b29sR3JvdXA6ISEoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1jYXJkLXRvb2xncm91cCIpfHx7fSkuY2hlY2tlZH19O2ZldGNoKCIvYXBpL3NldHRpbmdzL2NvbmZpZyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkodCl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7ZSYmKG4uZXJyb3I/KGUudGV4dENvbnRlbnQ9bi5lcnJvcixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiKTooZS50ZXh0Q29udGVudD0iXHU2NjNFXHU3OTNBXHU4QkJFXHU3RjZFXHU1REYyXHU0RkREXHU1QjU4IixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLCFuLmVycm9yJiZyLmNvbmZpZyYmKHIuY29uZmlnLmNhcmREZWZhdWx0cz10LmNhcmREZWZhdWx0cyl9KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTRGRERcdTVCNThcdTU5MzFcdThEMjVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KX1mdW5jdGlvbiBVbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LWtleS1maWxlIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1jZXJ0LWZpbGUiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LW1lc3NhZ2UiKTtpZihuJiYobi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuLnRleHRDb250ZW50PSIiKSwhZXx8IWUuZmlsZXN8fCFlLmZpbGVzWzBdfHwhdHx8IXQuZmlsZXN8fCF0LmZpbGVzWzBdKXtuJiYobi50ZXh0Q29udGVudD0iXHU4QkY3XHU5MDA5XHU2MkU5XHU3OUMxXHU5NEE1XHU1NDhDXHU4QkMxXHU0RTY2XHU2NTg3XHU0RUY2XHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO3JldHVybn12YXIgaT1uZXcgRmlsZVJlYWRlcjtpLm9ubG9hZD1mdW5jdGlvbigpe3ZhciBhPWkucmVzdWx0LHU9bmV3IEZpbGVSZWFkZXI7dS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgcz11LnJlc3VsdDtmZXRjaCgiL2FwaS9zZXR0aW5ncy91cGxvYWQtY2VydCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoe2tleTphLGNlcnQ6c30pfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG8pe2lmKG4pe2lmKG8uZXJyb3Ipbi50ZXh0Q29udGVudD1vLmVycm9yLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSI7ZWxzZXtuLnRleHRDb250ZW50PSJcdThCQzFcdTRFNjZcdTVERjJcdTRFMEFcdTRGMjBcdUZGMENcdTkxQ0RcdTU0MkZcdTU0MEVcdTc1MUZcdTY1NDhcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIjt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1zdGF0dXMiKTtsJiYobC50ZXh0Q29udGVudD0iXHU1REYyXHU1Qjg5XHU4OEM1IFNTTCBcdThCQzFcdTRFNjYiLGwuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIil9bi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19KS5jYXRjaChmdW5jdGlvbigpe24mJihuLnRleHRDb250ZW50PSJcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjVcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9KX0sdS5yZWFkQXNUZXh0KHQuZmlsZXNbMF0pfSxpLnJlYWRBc1RleHQoZS5maWxlc1swXSl9ZnVuY3Rpb24gd2woKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbGF0ZXN0LXZlcnNpb24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby11cGRhdGUtYnV0dG9uIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLW1lc3NhZ2UiKTtlJiYoZS50ZXh0Q29udGVudD0iXHU2OEMwXHU2N0U1XHU0RTJELi4uIiksbiYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGZldGNoKCIvYXBpL2NoZWNrLXVwZGF0ZSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaS5lcnJvcil7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NjhDMFx1NjdFNVx1NTkzMVx1OEQyNSIpO3JldHVybn12YXIgYT1pLmNoYW5uZWw9PT0iYmV0YSI7aWYoZSYmKGUudGV4dENvbnRlbnQ9aS5sYXRlc3R8fChhPyJiZXRhIFx1NjcyQVx1NTNEMVx1NUUwMyI6Ii0iKSksIWkubGF0ZXN0KXtuJiYobi50ZXh0Q29udGVudD1hPyJcdTY1RTBcdTZDRDVcdThCRkJcdTUzRDYgbnBtIGJldGEgXHU3MjQ4XHU2NzJDXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU4RkRFXHU2M0E1XHU1MjMwIG5wbSByZWdpc3RyeVx1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTtyZXR1cm59aS51cGRhdGVBdmFpbGFibGUmJnQmJih0LnRleHRDb250ZW50PWE/Ilx1NjZGNFx1NjVCMFx1NTIzMCBCZXRhIjoiXHU2NkY0XHU2NUIwXHU1MjMwXHU2NzAwXHU2NUIwXHU3MjQ4Iix0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSwhaS51cGRhdGVBdmFpbGFibGUmJm4mJihuLnRleHRDb250ZW50PWE/Ilx1NURGMlx1NjYyRlx1NjcwMFx1NjVCMCBCZXRhIFx1NzI0OFx1NjcyQ1x1MzAwMiI6Ilx1NURGMlx1NjYyRlx1NjcwMFx1NjVCMFx1NzI0OFx1NjcyQ1x1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfSkuY2F0Y2goZnVuY3Rpb24oKXtlJiYoZS50ZXh0Q29udGVudD0iXHU2OEMwXHU2N0U1XHU1OTMxXHU4RDI1Iil9KX1mdW5jdGlvbiBWbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtbWVzc2FnZSIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXVwZGF0ZS1idXR0b24iKTt0JiYodC5kaXNhYmxlZD0hMCxlJiYoZS50ZXh0Q29udGVudD0iXHU2QjYzXHU1NzI4XHU2NkY0XHU2NUIwXHVGRjBDXHU4QkY3XHU3QTBEXHU1MDE5Li4uIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS10ZXh0LXNlY29uZGFyeSkiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLGZldGNoKCIvYXBpL3VwZGF0ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4uZXJyb3Ipe2UmJihlLnRleHRDb250ZW50PW4uZXJyb3IsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSx0LmRpc2FibGVkPSExO3JldHVybn1pZihlJiYoZS50ZXh0Q29udGVudD0obi5tZXNzYWdlfHwiXHU2NkY0XHU2NUIwXHU1QjhDXHU2MjEwIikrIlx1RkYwQ1x1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1NjcwRFx1NTJBMVx1MjAyNiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbi5kZXRhY2hlZFVwZGF0ZSljbigpO2Vsc2UgaWYobi5yZXN0YXJ0UmVxdWlyZWQhPT0hMSlZcyhudWxsLGUpO2Vsc2V7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXJlc3RhcnQtYnV0dG9uIik7aSYmaS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19KS5jYXRjaChmdW5jdGlvbigpe2UmJihlLnRleHRDb250ZW50PSJcdTY2RjRcdTY1QjBcdTU5MzFcdThEMjVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksdC5kaXNhYmxlZD0hMX0pKX1mdW5jdGlvbiBLbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby1yZXN0YXJ0LWJ1dHRvbiIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1tZXNzYWdlIik7WXMoZSx0KX1mdW5jdGlvbiBKbSgpe2ZldGNoKCIvYXBpL2F1dG8tdXBkYXRlIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtpZihlLmFwaylyZXR1cm4gZmV0Y2goIi9hcGkvYW5kcm9pZC1hcGstdXBkYXRlP2N1cnJlbnRWZXJzaW9uPSIrZW5jb2RlVVJJQ29tcG9uZW50KFNuKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtpZighKCF0LnVwZGF0ZUF2YWlsYWJsZXx8IXQuZG93bmxvYWRVcmwpKXRyeXtXYW5kTmF0aXZlLmRvd25sb2FkVXBkYXRlKHQuZG93bmxvYWRVcmwsdC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmFwayIsdC5zb3VyY2V8fCJsb2NhbCIpfWNhdGNoe319KX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gR20oKXtsbiYmZmV0Y2goIi9hcGkvYXV0by11cGRhdGUiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe2lmKGUuZG1nKXJldHVybiBmZXRjaCgiL2FwaS9tYWNvcy1kbWctdXBkYXRlP2N1cnJlbnRWZXJzaW9uPSIrZW5jb2RlVVJJQ29tcG9uZW50KGxuKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtpZighKCF0LnVwZGF0ZUF2YWlsYWJsZXx8IXQuZG93bmxvYWRVcmwpKXRyeXtXYW5kTmF0aXZlLmRvd25sb2FkVXBkYXRlKHQuZG93bmxvYWRVcmwsdC5maWxlTmFtZXx8IndhbmQtdXBkYXRlLmRtZyIsdC5zb3VyY2V8fCJsb2NhbCIpfWNhdGNoe319KX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gZHUoZSx0KXt2YXIgbj17fTtuW2VdPXQsZmV0Y2goIi9hcGkvYXV0by11cGRhdGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KG4pfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS13ZWItdG9nZ2xlIiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIpLHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWRtZy10b2dnbGUiKTthJiYoYS5jaGVja2VkPSEhaS53ZWIpLHUmJih1LmNoZWNrZWQ9ISFpLmFwaykscyYmKHMuY2hlY2tlZD0hIWkuZG1nKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLSIrZSsiLXRvZ2dsZSIpO2kmJihpLmNoZWNrZWQ9IXQpfSl9ZnVuY3Rpb24gWW0oZSl7ZmV0Y2goIi9hcGkvdXBkYXRlLWNoYW5uZWwiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtjaGFubmVsOmV9KX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO24mJihuLmNoZWNrZWQ9dC5jaGFubmVsPT09ImJldGEiKSx3bCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO3QmJih0LmNoZWNrZWQ9ZSE9PSJiZXRhIil9KX1mdW5jdGlvbiBDbChlKXtmb3IodmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbiIpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXS5nZXRBdHRyaWJ1dGUoImRhdGEtaWNvbiIpPT09ZTt0W25dLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdGVkIixpKSx0W25dLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIixpPyJ0cnVlIjoiZmFsc2UiKX19ZnVuY3Rpb24gYm4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXBlcm1pc3Npb24tc3RhdHVzIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlcXVlc3QtYnRuIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlc2V0LWJ0biIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LW1lc3NhZ2UiKTtpZihlKXt2YXIgYT1jaSgpO2lmKGE9PT1udWxsKXtpZih0eXBlb2YgTm90aWZpY2F0aW9uPiJ1Iil7ZS50ZXh0Q29udGVudD0iXHU0RTBEXHU2NTJGXHU2MzAxIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1mZy1tdXRlZCkiLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbiYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTtyZXR1cm59YT1Ob3RpZmljYXRpb24ucGVybWlzc2lvbn1hPT09ImdyYW50ZWQiPyhlLnRleHRDb250ZW50PSJcdTVERjJcdTYzODhcdTY3NDMgXHUyNzEzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKTphPT09ImRlbmllZCI/KGUudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjJEMlx1N0VERCIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZGFuZ2VyKSIsdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTooZS50ZXh0Q29udGVudD0iXHU2NzJBXHU2Mzg4XHU2NzQzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS13YXJuaW5nKSIsdCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX19ZnVuY3Rpb24gUW0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpO2lmKFdlKXt3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdD1mdW5jdGlvbih0KXtibigpLGUmJih0PT09ImdyYW50ZWQiPyhlLnRleHRDb250ZW50PSJcdTI3MTMgXHU1REYyXHU2Mzg4XHU2NzQzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIpOihlLnRleHRDb250ZW50PSJcdTI3MTcgXHU2NzJBXHU2Mzg4XHU2NzQzXHVGRjBDXHU4QkY3XHU1NzI4XHU3Q0ZCXHU3RURGXHU4QkJFXHU3RjZFXHU0RTJEXHU1RjAwXHU1NDJGIFdhbmQgXHU3Njg0XHU5MDFBXHU3N0U1XHU2NzQzXHU5NjUwIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1kYW5nZXIpIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksZGVsZXRlIHdpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0fTt0cnl7V2FuZE5hdGl2ZS5yZXF1ZXN0UGVybWlzc2lvbigpfWNhdGNoe31yZXR1cm59dHlwZW9mIE5vdGlmaWNhdGlvbj4idSJ8fE5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oZnVuY3Rpb24odCl7aWYoYm4oKSx0PT09ImdyYW50ZWQiKWUmJihlLnRleHRDb250ZW50PSJcdTI3MTMgXHU1REYyXHU2Mzg4XHU2NzQzIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7ZWxzZSBpZih0PT09ImRlbmllZCImJmUpe3ZhciBuPWxvY2F0aW9uLm9yaWdpbjtlLmlubmVySFRNTD0nXHU2RDRGXHU4OUM4XHU1NjY4XHU1REYyXHU2MkU2XHU2MjJBXHU2Mzg4XHU2NzQzXHU1RjM5XHU3QTk3XHVGRjBDXHU4QkY3XHU2MjRCXHU1MkE4XHU5MUNEXHU3RjZFXHVGRjFBPGJyPjxzcGFuIHN0eWxlPSJkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O21hcmdpbjo0cHggMCI+XHUyNDYwIFx1NzBCOVx1NTFGQlx1NTczMFx1NTc0MFx1NjgwRlx1NURFNlx1NEZBN1x1NzY4NCA8c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtmb250LXNpemU6MTFweDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUiPmk8L3NwYW4+IFx1NjIxNlx1OTUwMVx1NTZGRVx1NjgwNzwvc3Bhbj48YnI+XHUyNDYxIFx1NjI3RVx1NTIzMFx1MzAwQ1x1OTAxQVx1NzdFNVx1MzAwRFx1MjE5MiBcdTY1MzlcdTRFM0FcdTMwMENcdTUxNDFcdThCQjhcdTMwMEQ8YnI+XHUyNDYyIFx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mlx1NTM3M1x1NTNFRicsZS5zdHlsZS5jb2xvcj0idmFyKC0tZmctbXV0ZWQpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX0pfWZ1bmN0aW9uIEJsKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LWRlbGF5LWJ0biIpO2UmJihlLmRpc2FibGVkPSExLGUudGV4dENvbnRlbnQ9IjEwIFx1NzlEMlx1NTQwRVx1NTNEMVx1OTAwMSIpfWZ1bmN0aW9uICRtKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LW1lc3NhZ2UiKTtyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciYmKGNsZWFyVGltZW91dChyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lciksci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXI9bnVsbCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LWRlbGF5LWJ0biIpO3QmJih0LmRpc2FibGVkPSEwLHQudGV4dENvbnRlbnQ9Ilx1NURGMlx1NUI4OVx1NjM5Mlx1RkYwODEwc1x1RkYwOSIpLGUmJihlLmlubmVySFRNTD0iXHU1REYyXHU1Qjg5XHU2MzkyIDEwIFx1NzlEMlx1NTQwRVx1NTNEMVx1OTAwMVx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNVx1RkYwQ1x1OEJGN1x1NTIwN1x1NTIzMFx1NTQwRVx1NTNGMFx1N0I0OVx1NUY4NVx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tdGV4dC1zZWNvbmRhcnkpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXI9bnVsbCxCbCgpLERsKCl9LDFlNCl9ZnVuY3Rpb24gRGwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtbWVzc2FnZSIpLHQ9W107ci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXImJihjbGVhclRpbWVvdXQoci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXIpLHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyPW51bGwsQmwoKSk7dmFyIG49TmYoKTt0LnB1c2gobj8iXHUyNzEzIFx1NjNEMFx1NzkzQVx1OTdGMyI6Ilx1MjcxNyBcdTYzRDBcdTc5M0FcdTk3RjNcdUZGMDhcdTY1RTBcdTZDRDVcdTY0QURcdTY1M0VcdUZGMDkiKTt2YXIgaT1yLm5vdGlmQnViYmxlO2lmKEVhKHt0aXRsZToiXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1Iixib2R5OiJcdThGRDlcdTY2MkZcdTRFMDBcdTY3NjFcdTZENEJcdThCRDVcdTkwMUFcdTc3RTVcdTMwMDIiLHR5cGU6ImluZm8iLGljb246Ilx1MjY2QSIsZHVyYXRpb246NWUzLHBsYXlTb3VuZDohMX0pLHQucHVzaChpPyJcdTI3MTMgXHU1RTk0XHU3NTI4XHU1MTg1XHU2QzE0XHU2Q0UxIjoiXHUyMDEzIFx1NUU5NFx1NzUyOFx1NTE4NVx1NkMxNFx1NkNFMVx1RkYwOFx1NURGMlx1NTE3M1x1OTVFRFx1RkYwOSIpLFdlKXt2YXIgYT1jaSgpO2lmKGE9PT0iZ3JhbnRlZCIpdHJ5e1dhbmROYXRpdmUuc2VuZE5vdGlmaWNhdGlvbigiV2FuZCBcdTZENEJcdThCRDVcdTkwMUFcdTc3RTUiLCJcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTVERjJcdTZCNjNcdTVFMzhcdTVERTVcdTRGNUNcdTMwMDIiLCJ3YW5kLXRlc3QiKSx0LnB1c2goIlx1MjcxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTUiKX1jYXRjaHt0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjVcdUZGMDkiKX1lbHNlIGlmKGE9PT0iZGVuaWVkIil0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTVERjJcdTYyRDJcdTdFRERcdUZGMENcdThCRjdcdTU3MjhcdTdDRkJcdTdFREZcdThCQkVcdTdGNkVcdTRFMkRcdTVGMDBcdTU0MkZcdUZGMDkiKTtlbHNle3dpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0PWZ1bmN0aW9uKG8pe2lmKGJuKCksbz09PSJncmFudGVkIil0cnl7V2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uKCJXYW5kIFx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNSIsIlx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NURGMlx1NkI2M1x1NUUzOFx1NURFNVx1NEY1Q1x1MzAwMiIsIndhbmQtdGVzdCIpLHQucHVzaCgiXHUyNzEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NURGMlx1NjM4OFx1Njc0M1x1RkYwOSIpfWNhdGNoe3QucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNVx1RkYwOSIpfWVsc2UgdC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU2NzJBXHU2Mzg4XHU2NzQzXHVGRjA5Iik7dHIoZSx0KSxkZWxldGUgd2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHR9O3RyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybn10cihlLHQpO3JldHVybn1pZih0eXBlb2YgTm90aWZpY2F0aW9uPiJ1Iil7dC5wdXNoKCJcdTIwMTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU0RTBEXHU2NTJGXHU2MzAxXHVGRjA5IiksdHIoZSx0KTtyZXR1cm59dmFyIHU9Tm90aWZpY2F0aW9uLnBlcm1pc3Npb247aWYodT09PSJncmFudGVkIil7dHJ5e3ZhciBzPW5ldyBOb3RpZmljYXRpb24oIldhbmQgXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1Iix7Ym9keToiXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU1REYyXHU2QjYzXHU1RTM4XHU1REU1XHU0RjVDXHUzMDAyIixpY29uOiIvZmF2aWNvbi5pY28iLHRhZzoid2FuZC10ZXN0In0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtzLmNsb3NlKCl9LDVlMyksdC5wdXNoKCJcdTI3MTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1Iil9Y2F0Y2h7dC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1XHVGRjBDXHU1M0VGXHU4MEZEXHU5NzAwXHU4OTgxIEhUVFBTXHVGRjA5Iil9dHIoZSx0KX1lbHNlIHU9PT0iZGVuaWVkIj8odC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1REYyXHU2MkQyXHU3RUREXHVGRjA5IiksdHIoZSx0KSk6Tm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihmdW5jdGlvbihvKXtibigpLG89PT0iZ3JhbnRlZCI/dC5wdXNoKCJcdTI3MTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1REYyXHU2Mzg4XHU2NzQzXHVGRjA5Iik6dC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU2NzJBXHU2Mzg4XHU2NzQzXHVGRjA5IiksdHIoZSx0KX0pfWZ1bmN0aW9uIHRyKGUsdCl7aWYoZSl7ZS5pbm5lckhUTUw9dC5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIHAoaSl9KS5qb2luKCI8YnI+Iik7dmFyIG49dC5ldmVyeShmdW5jdGlvbihpKXtyZXR1cm4gaS5pbmRleE9mKCJcdTI3MTMiKT09PTB8fGkuaW5kZXhPZigiXHUyMDEzIik9PT0wfSk7ZS5zdHlsZS5jb2xvcj1uPyJ2YXIoLS1zdWNjZXNzKSI6InZhcigtLXdhcm5pbmcpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfX1mdW5jdGlvbiBwdChlKXtpZighZXx8dHlwZW9mIGUhPSJvYmplY3QifHwhci50ZXJtaW5hbClyZXR1cm4gZTt0cnl7dHlwZW9mIHIudGVybWluYWwucmVtZWFzdXJlPT0iZnVuY3Rpb24iJiZyLnRlcm1pbmFsLnJlbWVhc3VyZSgpfWNhdGNoe312YXIgdD1yLnRlcm1pbmFsLmNvbHMsbj1yLnRlcm1pbmFsLnJvd3M7cmV0dXJuIHR5cGVvZiB0PT0ibnVtYmVyIiYmdHlwZW9mIG49PSJudW1iZXIiJiZOdW1iZXIuaXNGaW5pdGUodCkmJk51bWJlci5pc0Zpbml0ZShuKSYmdD4wJiZuPjAmJihlLmNvbHM9dCxlLnJvd3M9biksZX1mdW5jdGlvbiBrbCgpe3JldHVybiByLnRlcm1pbmFsJiZyLnRlcm1pbmFsLmNvbHM/UHJvbWlzZS5yZXNvbHZlKCk6bmV3IFByb21pc2UoZnVuY3Rpb24oZSl7dmFyIHQ9ITEsbj1mdW5jdGlvbigpe3R8fCh0PSEwLGUoKSl9LGk9c2V0VGltZW91dChuLDJlMyk7dHJ5e1ZuKCl9Y2F0Y2h7fXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IudGVybWluYWwmJnIudGVybWluYWwuY29scyYmKGNsZWFyVGltZW91dChpKSxuKCkpfSl9KX0pfWZ1bmN0aW9uIEFsKCl7dmFyIGU9bnQoKSx0PXR0KCksbj1JdChlLHIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZT9yLmNvbmZpZy5kZWZhdWx0TW9kZToiZGVmYXVsdCIpO3IucHJlZmVycmVkQ29tbWFuZD1lLHIuY2hhdE1vZGU9SXQoZSxyLmNoYXRNb2RlKSxrbCgpLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHB0KHtjb21tYW5kOmUscHJvdmlkZXI6ZSxjd2Q6dCxtb2RlOm59KSl9KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpLmVycm9yKXtrKGkuZXJyb3IsImVycm9yIik7cmV0dXJufXJldHVybiByLnNlbGVjdGVkSWQ9aS5pZCx3ZSgpLHIuZHJhZnRzW2kuaWRdPSIiLHh0KCksanQoKX0pLnRoZW4oZnVuY3Rpb24oKXtSdCghMCl9KS5jYXRjaChmdW5jdGlvbigpe2soIlx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIil9KX12YXIgX3I9ITE7ZnVuY3Rpb24gWG0oKXtpZighX3Ipe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RhbC1lcnJvciIpLG49bnQoKSxpPXIuc2Vzc2lvbkNyZWF0ZUtpbmR8fCJzdHJ1Y3R1cmVkIixhPXIuc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlPT09ITA7bGkodCk7dmFyIHU9dHQoKSxzPShlP2UudmFsdWUudHJpbSgpOiIiKXx8dSxvPUl0KG4sci5tb2RlVmFsdWUpO2lmKGk9PT0ic3RydWN0dXJlZCIpe1ptKHMsbyxhLHQpO3JldHVybn1lZyhuLHMsbyxhLHQpfX1mdW5jdGlvbiBabShlLHQsbixpKXt2YXIgYT1yLnNlc3Npb25Ub29sPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiO3JldHVybiBfcj0hMCxyLm1vZGVWYWx1ZT10LHIuY2hhdE1vZGU9dCxyLnNlc3Npb25Ub29sPWEsci5wcmVmZXJyZWRDb21tYW5kPWEseGkoKSxYbihmdCgpKSxnbCh2b2lkIDAsZSx0LG4pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIGVuKGUpLGhuKCksVXQoKSx1fSkudGhlbihmdW5jdGlvbigpe1J0KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKHUpe0hlKGksdSYmdS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREXHVGRjBDXHU4QkY3XHU3ODZFXHU4QkE0IENsYXVkZSBcdTVERjJcdTZCNjNcdTc4NkVcdTVCODlcdTg4QzVcdTMwMDIiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtfcj0hMX0pfWZ1bmN0aW9uIGVnKGUsdCxuLGksYSl7X3I9ITAsci5tb2RlVmFsdWU9bixyLmNoYXRNb2RlPW4sci5zZXNzaW9uVG9vbD1lLHIucHJlZmVycmVkQ29tbWFuZD1lLHhpKCksa2woKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShwdCh7Y29tbWFuZDplLHByb3ZpZGVyOmUsY3dkOnQsbW9kZTpuLHdvcmt0cmVlRW5hYmxlZDppfSkpfSl9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odSl7aWYodS5lcnJvcil7SGUoYSx1LmVycm9yKTtyZXR1cm59cmV0dXJuIHIuc2VsZWN0ZWRJZD11LmlkLHdlKCksZW4odCksci5kcmFmdHNbdS5pZF09IiIseHQoKSxobigpLFV0KCksanQoKX0pLnRoZW4oZnVuY3Rpb24oKXtyLnNlbGVjdGVkSWQ/enQoci5zZWxlY3RlZElkKTpSdCghMCl9KS5jYXRjaChmdW5jdGlvbigpe0hlKGEsZT09PSJjb2RleCI/Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDb2RleCBcdTRGMUFcdThCRERcdUZGMENcdThCRjdcdTc4NkVcdThCQTQgY29kZXggXHU1REYyXHU2QjYzXHU3ODZFXHU1Qjg5XHU4OEM1XHU1RTc2XHU1M0VGXHU1NzI4XHU3RUM4XHU3QUVGXHU0RTJEXHU2MjY3XHU4ODRDXHUzMDAyIjoiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENsYXVkZSBcdTRGMUFcdThCRERcdUZGMENcdThCRjdcdTc4NkVcdThCQTQgQ2xhdWRlIFx1NURGMlx1NkI2M1x1Nzg2RVx1NUI4OVx1ODhDNVx1MzAwMiIpfSkuZmluYWxseShmdW5jdGlvbigpe19yPSExfSl9ZnVuY3Rpb24gdGcoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QiKTtlJiYoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIseGwpLGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7KHQua2V5PT09IkVudGVyInx8dC5rZXk9PT0iICIpJiYodC5wcmV2ZW50RGVmYXVsdCgpLHhsKCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHQpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1kcm9wZG93biIpO2lmKCEoIW58fG4uY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSkmJiF0LnRhcmdldC5jbG9zZXN0KCIuYmxhbmstY2hhdC1jd2Qtd3JhcCIpKXtuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1hcnJvdyIpO2kmJihpLnRleHRDb250ZW50PSJcdTI1QkMiKX19KSl9ZnVuY3Rpb24geGwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtZHJvcGRvd24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1hcnJvdyIpO2lmKGUpe3ZhciBuPWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKTtuPyhuZyhlKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHQmJih0LnRleHRDb250ZW50PSJcdTI1QjIiKSk6KGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdCYmKHQudGV4dENvbnRlbnQ9Ilx1MjVCQyIpKX19ZnVuY3Rpb24gbmcoZSl7dmFyIHQ9dW4oKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU0RTJELi4uPC9kaXY+JyxmYShmdW5jdGlvbihuKXt2YXIgaT0iIixhPXIud29ya2luZ0Rpcnx8dDtpZihpKz0nPGRpdiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtaXRlbScrKGE9PT10PyIgYWN0aXZlIjoiIikrJyIgZGF0YS1wYXRoPSInK3AodCkrJyI+PHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0tbGFiZWwiPlx1OUVEOFx1OEJBNDwvc3Bhbj48c3BhbiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtaXRlbS1wYXRoIj4nK3AodCkrIjwvc3Bhbj48L2Rpdj4iLG4ubGVuZ3RoKXt2YXIgdT17fTt1W3RdPSEwLG4uZm9yRWFjaChmdW5jdGlvbihzKXt1W3MucGF0aF18fCh1W3MucGF0aF09ITAsaSs9JzxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0nKyhhPT09cy5wYXRoPyIgYWN0aXZlIjoiIikrJyIgZGF0YS1wYXRoPSInK3Aocy5wYXRoKSsnIj48c3BhbiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtaXRlbS1wYXRoIj4nK3Aocy5wYXRoKSsiPC9zcGFuPjwvZGl2PiIpfSl9ZS5pbm5lckhUTUw9aSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5ibGFuay1jaGF0LWN3ZC1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihzKXtzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihvKXtvLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBsPXMuZGF0YXNldC5wYXRoO3Iud29ya2luZ0Rpcj1sO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC13b3JraW5nLWRpciIsbCl9Y2F0Y2h7fXZhciBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1wYXRoIik7YyYmKGMudGV4dENvbnRlbnQ9bCksZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtYXJyb3ciKTtmJiYoZi50ZXh0Q29udGVudD0iXHUyNUJDIik7dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItaW5wdXQiKTtkJiYoZC52YWx1ZT1sKX0pfSl9KX1mdW5jdGlvbiByZygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZWNlbnQtcGF0aHMtYnViYmxlcyIpO2UmJmZhKGZ1bmN0aW9uKHQpe2lmKCF0Lmxlbmd0aCl7ZS5pbm5lckhUTUw9IiI7cmV0dXJufWUuaW5uZXJIVE1MPXQubWFwKGZ1bmN0aW9uKG4pe3JldHVybic8YnV0dG9uIGNsYXNzPSJyZWNlbnQtcGF0aC1idWJibGUiIGRhdGEtcGF0aD0iJytwKG4ucGF0aCkrJyIgdGl0bGU9IicrcChuLnBhdGgpKyciPicrcChuLm5hbWUpKyI8L2J1dHRvbj4ifSkuam9pbigiIiksZS5xdWVyeVNlbGVjdG9yQWxsKCIucmVjZW50LXBhdGgtYnViYmxlIikuZm9yRWFjaChmdW5jdGlvbihuKXtuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTtpJiYoaS52YWx1ZT1uLmRhdGFzZXQucGF0aHx8IiIsci5jd2RWYWx1ZT1uLmRhdGFzZXQucGF0aHx8IiIpfSl9KX0pfWZ1bmN0aW9uIFNsKCl7ci5zdWdnZXN0aW9uVGltZXImJmNsZWFyVGltZW91dChyLnN1Z2dlc3Rpb25UaW1lciksci5zdWdnZXN0aW9uVGltZXI9c2V0VGltZW91dChpZywxMjApfWZ1bmN0aW9uIGlnKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtpZihlJiZlLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikpe25yKCk7cmV0dXJufXZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTt0JiZmZXRjaCgiL2FwaS9wYXRoLXN1Z2dlc3Rpb25zP3E9IitlbmNvZGVVUklDb21wb25lbnQodC52YWx1ZS50cmltKCkpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGFnKS5jYXRjaChucil9ZnVuY3Rpb24gYWcoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZC1zdWdnZXN0aW9ucyIpO2lmKCF0fHwhZS5sZW5ndGgpe25yKCk7cmV0dXJufXQuaW5uZXJIVE1MPWUubWFwKGZ1bmN0aW9uKG4pe3JldHVybic8YnV0dG9uIGNsYXNzPSJzdWdnZXN0aW9uLWl0ZW0iIGRhdGEtcGF0aD0iJytwKG4ucGF0aCkrJyI+PHN0cm9uZz4nK3Aobi5uYW1lKSsiPC9zdHJvbmc+PHNtYWxsPiIrcChuLnBhdGgpKyI8L3NtYWxsPjwvYnV0dG9uPiJ9KS5qb2luKCIiKSx0LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zdWdnZXN0aW9uLWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZCIpLnZhbHVlPW4uZGF0YXNldC5wYXRofHwiIixyLmN3ZFZhbHVlPW4uZGF0YXNldC5wYXRofHwiIixucigpfSl9KSx0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpfWZ1bmN0aW9uIG5yKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImN3ZC1zdWdnZXN0aW9ucyIpO2UmJihlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuaW5uZXJIVE1MPSIiKX1mdW5jdGlvbiB1ZyhlKXtpZighZS5pc0NvbXBvc2luZyl7aWYoZm8oZSkpe1BhKGUpO3JldHVybn1pZihlLmtleT09PSJFbnRlciIpe2lmKGUuc2hpZnRLZXkpe2UucHJldmVudERlZmF1bHQoKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYodCl7dmFyIG49dC5zZWxlY3Rpb25TdGFydHx8MCxpPXQudmFsdWUsYT1pLnNsaWNlKDAsbikrYApgK2kuc2xpY2Uobik7dC52YWx1ZT1hLHQuc2VsZWN0aW9uU3RhcnQ9bisxLHQuc2VsZWN0aW9uRW5kPW4rMSxzdChhLCEwKSxfdCh0KX1yZXR1cm59ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB1PSEhKGUubWV0YUtleXx8ZS5jdHJsS2V5KTtubyh1P3tpbnRlcnJ1cHQ6ITB9OnZvaWQgMCk7cmV0dXJufWlmKGUua2V5PT09IkJhY2tzcGFjZSIpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7bSYmc3QobS52YWx1ZSwhMCl9LDApO3JldHVybn1pZihlLmtleT09PSJUYWIiKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKHQpe3ZhciBuPXQuc2VsZWN0aW9uU3RhcnR8fDAsaT10LnZhbHVlLGE9aS5zbGljZSgwLG4pKyIJIitpLnNsaWNlKG4pO3QudmFsdWU9YSxzdChhLCEwKX1yZXR1cm59aWYoZS5rZXk9PT0iRXNjYXBlIil7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciBzPWZ0KCk7aWUocyk/cyYmcy5zdHJ1Y3R1cmVkU3RhdGUmJnMuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZxYSgpOkZ0KGtyKCJlc2NhcGUiKSwiZXNjYXBlIik7cmV0dXJufWlmKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0iYyIpe3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxsPW8mJm8uc2VsZWN0aW9uU3RhcnQhPT1vLnNlbGVjdGlvbkVuZHx8Z2koKTtpZihsKXJldHVybjt2YXIgYz1mdCgpO2lmKGllKGMpKXtlLnByZXZlbnREZWZhdWx0KCksYyYmYy5zdHJ1Y3R1cmVkU3RhdGUmJmMuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZxYSgpO3JldHVybn1lLnByZXZlbnREZWZhdWx0KCksRnQoa3IoImN0cmxfYyIpLCJjdHJsX2MiKTtyZXR1cm59aWYoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJkIil7dmFyIGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGQ9ZiYmZi5zZWxlY3Rpb25TdGFydCE9PWYuc2VsZWN0aW9uRW5kfHxnaSgpO2lmKGQpcmV0dXJuO3ZhciB2PWZ0KCk7aWYoaWUodikpe2UucHJldmVudERlZmF1bHQoKTtyZXR1cm59ZS5wcmV2ZW50RGVmYXVsdCgpLEZ0KGtyKCJjdHJsX2QiKSwiY3RybF9kIik7cmV0dXJufWlmKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0ibCIpe2UucHJldmVudERlZmF1bHQoKTt2YXIgaD1mdCgpO2lmKGllKGgpKXJldHVybjtGdChrcigiY3RybF9sIiksImN0cmxfbCIpO3JldHVybn1pZighKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0iYSIpJiYhKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0idiIpKXtpZigoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09IngiKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksZz10JiZ0LnNlbGVjdGlvblN0YXJ0IT09dC5zZWxlY3Rpb25FbmQ7aWYoZylyZXR1cm47ZS5wcmV2ZW50RGVmYXVsdCgpLEZ0KCIYIiwiY3RybF94Iik7cmV0dXJufWUua2V5Lmxlbmd0aD09PTEmJiFlLmN0cmxLZXkmJiFlLm1ldGFLZXkmJiFlLmFsdEtleSYmc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTttJiZzdChtLnZhbHVlKX0sMCl9fX12YXIgc2c9MTAqMTAyNCoxMDI0O2Z1bmN0aW9uIG9nKGUpe3JldHVybiBlPDEwMjQ/ZSsiIEIiOmU8MTAyNCoxMDI0PyhlLzEwMjQpLnRvRml4ZWQoMSkrIiBLQiI6KGUvKDEwMjQqMTAyNCkpLnRvRml4ZWQoMSkrIiBNQiJ9ZnVuY3Rpb24gbGcoZSl7cmV0dXJuL15pbWFnZVwvKHBuZ3xqcGU/Z3xnaWZ8d2VicHxibXB8c3ZnXCt4bWwpLy50ZXN0KGUpfWZ1bmN0aW9uIGZ1KGUpe2lmKGUpe2lmKGUuc2l6ZT5zZyl7aygiXHU2NTg3XHU0RUY2XHU4RkM3XHU1OTI3XHVGRjA4XHU0RTBBXHU5NjUwIDEwIE1CXHVGRjA5OiAiK2UubmFtZSwiZXJyb3IiKTtyZXR1cm59dmFyIHQ9e2ZpbGU6ZSxuYW1lOmUubmFtZSxzaXplOmUuc2l6ZSxwcmV2aWV3VXJsOm51bGx9O2xnKGUudHlwZSkmJih0LnByZXZpZXdVcmw9VVJMLmNyZWF0ZU9iamVjdFVSTChlKSksci5wZW5kaW5nQXR0YWNobWVudHMucHVzaCh0KSxwdSgpfX1mdW5jdGlvbiBjZyhlKXt2YXIgdD1yLnBlbmRpbmdBdHRhY2htZW50cy5zcGxpY2UoZSwxKTt0Lmxlbmd0aCYmdFswXS5wcmV2aWV3VXJsJiZVUkwucmV2b2tlT2JqZWN0VVJMKHRbMF0ucHJldmlld1VybCkscHUoKX1mdW5jdGlvbiBkZygpe3IucGVuZGluZ0F0dGFjaG1lbnRzLmZvckVhY2goZnVuY3Rpb24oZSl7ZS5wcmV2aWV3VXJsJiZVUkwucmV2b2tlT2JqZWN0VVJMKGUucHJldmlld1VybCl9KSxyLnBlbmRpbmdBdHRhY2htZW50cz1bXSxwdSgpfWZ1bmN0aW9uIHB1KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF0dGFjaG1lbnQtcHJldmlldyIpO2lmKGUpe3ZhciB0PXIucGVuZGluZ0F0dGFjaG1lbnRzO2lmKHQubGVuZ3RoPT09MCl7ZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLmlubmVySFRNTD0iIjtyZXR1cm59ZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtmb3IodmFyIG49IiIsaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10W2ldLHU9YS5wcmV2aWV3VXJsPyc8aW1nIHNyYz0iJytwKGEucHJldmlld1VybCkrJyIgYWx0PSIiPic6JzxzcGFuIGNsYXNzPSJhdHQtaWNvbiI+JytWKCJmaWxlIix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjd9KSsiPC9zcGFuPiI7bis9JzxzcGFuIGNsYXNzPSJhdHRhY2htZW50LXBpbGwiIGRhdGEtaW5kZXg9IicraSsnIj4nK3UrJzxzcGFuIGNsYXNzPSJhdHQtbmFtZSIgdGl0bGU9IicrcChhLm5hbWUpKyciPicrcChhLm5hbWUpKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImF0dC1zaXplIj4nK29nKGEuc2l6ZSkrJzwvc3Bhbj48YnV0dG9uIGNsYXNzPSJhdHQtcmVtb3ZlIiBkYXRhLWluZGV4PSInK2krJyIgdGl0bGU9Ilx1NzlGQlx1OTY2NCI+XHhENzwvYnV0dG9uPjwvc3Bhbj4nfWUuaW5uZXJIVE1MPW4sZS5xdWVyeVNlbGVjdG9yQWxsKCIuYXR0LXJlbW92ZSIpLmZvckVhY2goZnVuY3Rpb24ocyl7cy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obyl7by5wcmV2ZW50RGVmYXVsdCgpLG8uc3RvcFByb3BhZ2F0aW9uKCksY2cocGFyc2VJbnQocy5nZXRBdHRyaWJ1dGUoImRhdGEtaW5kZXgiKSwxMCkpfSl9KX19ZnVuY3Rpb24gZmcoZSl7aWYoIXIucGVuZGluZ0F0dGFjaG1lbnRzLmxlbmd0aClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKFtdKTt2YXIgdD1uZXcgRm9ybURhdGE7cmV0dXJuIHIucGVuZGluZ0F0dGFjaG1lbnRzLmZvckVhY2goZnVuY3Rpb24obil7dC5hcHBlbmQoImZpbGVzIixuLmZpbGUsbi5uYW1lKX0pLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvdXBsb2FkIix7bWV0aG9kOiJQT1NUIixib2R5OnQsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4ub2s/bi5qc29uKCk6bi5qc29uKCkudGhlbihmdW5jdGlvbihpKXt0aHJvdyBuZXcgRXJyb3IoaS5lcnJvcnx8Ilx1NEUwQVx1NEYyMFx1NTkzMVx1OEQyNSIpfSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmZpbGVzfHxbXX0pfWZ1bmN0aW9uIHBnKGUpe2lmKCFlfHwhZS5sZW5ndGgpcmV0dXJuIiI7dmFyIHQ9ZS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4uc2F2ZWRQYXRofSk7cmV0dXJuYFtcdTk2NDRcdTRFRjZcdTVERjJcdTRFMEFcdTRGMjBcdUZGMENcdThCRjdcdTY3RTVcdTc3MEJcdTRFRTVcdTRFMEJcdTY1ODdcdTRFRjY6CmArdC5qb2luKGAKYCkrYF0KCmB9ZnVuY3Rpb24gSWwoZSl7aWYoIXIudGVybWluYWxJbnRlcmFjdGl2ZXx8IWV8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSlyZXR1cm4hMTt2YXIgdD1lLnZhbHVlfHwiIjtyZXR1cm4gdD8oRnQodCwiaW50ZXJhY3RpdmVfdGV4dCIpLmNhdGNoKGZ1bmN0aW9uKCl7fSksZS52YWx1ZT0iIixfdChlKSxzdCgiIiwhMCksITApOiExfWZ1bmN0aW9uIHZnKGUpe3ZhciB0PWUuY2xpcGJvYXJkRGF0YSYmZS5jbGlwYm9hcmREYXRhLml0ZW1zO2lmKHQmJiFyLnRlcm1pbmFsSW50ZXJhY3RpdmUpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl0udHlwZS5pbmRleE9mKCJpbWFnZS8iKT09PTApe2UucHJldmVudERlZmF1bHQoKTt2YXIgaT10W25dLmdldEFzRmlsZSgpO2kmJmZ1KGkpO3JldHVybn19dmFyIGE9ZS5jbGlwYm9hcmREYXRhJiZlLmNsaXBib2FyZERhdGEuZ2V0RGF0YSgidGV4dCIpO2lmKGEpe2lmKGUucHJldmVudERlZmF1bHQoKSxyLnRlcm1pbmFsSW50ZXJhY3RpdmUpe0Z0KGEsInBhc3RlIikuY2F0Y2goZnVuY3Rpb24oKXt9KTtyZXR1cm59dmFyIHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKHUpe3ZhciBzPXUuc2VsZWN0aW9uU3RhcnR8fDAsbz11LnNlbGVjdGlvbkVuZHx8MCxsPXUudmFsdWUsYz1sLnNsaWNlKDAscykrYStsLnNsaWNlKG8pO3UudmFsdWU9YyxzdChjKX19fWZ1bmN0aW9uIHJoKGUpe0Z0KGUpLHN0KG1nKCkrZSl9ZnVuY3Rpb24gbWcoKXtpZihyLnNlbGVjdGVkSWQpe2lmKHIuZHJhZnRzW3Iuc2VsZWN0ZWRJZF0hPT12b2lkIDApcmV0dXJuIHIuZHJhZnRzW3Iuc2VsZWN0ZWRJZF07dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWRyYWZ0LSIrci5zZWxlY3RlZElkKTtpZihlKXJldHVybiBlfWNhdGNoe319cmV0dXJuIiJ9ZnVuY3Rpb24gc3QoZSx0KXtpZihyLnNlbGVjdGVkSWQpe3IuZHJhZnRzW3Iuc2VsZWN0ZWRJZF09ZTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtZHJhZnQtIityLnNlbGVjdGVkSWQsZSl9Y2F0Y2h7fWlmKCF0KXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7biYmKG4udmFsdWU9ZSl9fX12YXIgdnU9ITE7ZnVuY3Rpb24gZ2coKXtpZighdnUpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQtb3B0aW1pemUtYnRuIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtpZihlKXt2YXIgaT0oZS52YWx1ZXx8IiIpLnRyaW0oKTtpZighaSl7dHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoIlx1OEJGN1x1NTE0OFx1OEY5M1x1NTE2NVx1ODk4MVx1NEYxOFx1NTMxNlx1NzY4NFx1NTE4NVx1NUJCOVx1MzAwMiIsImluZm8iKSxlLmZvY3VzKCk7cmV0dXJufXZ1PSEwLHQmJih0LmNsYXNzTGlzdC5hZGQoImlzLWxvYWRpbmciKSx0LmRpc2FibGVkPSEwLHQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlx1NkI2M1x1NTcyOFx1NEYxOFx1NTMxNlx1MjAyNiIpKSxuJiZuLmNsYXNzTGlzdC5hZGQoImlzLW9wdGltaXppbmciKSxlLnNldEF0dHJpYnV0ZSgiYXJpYS1idXN5IiwidHJ1ZSIpO3ZhciBhPWUucmVhZE9ubHk7ZS5yZWFkT25seT0hMDt2YXIgdT17dGV4dDppfTtyJiZyLnNlbGVjdGVkSWQmJih1LnNlc3Npb25JZD1yLnNlbGVjdGVkSWQpLGZldGNoKCIvYXBpL29wdGltaXplLXByb21wdCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkodSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybntvazpzLm9rLGRhdGE6b319KX0pLnRoZW4oZnVuY3Rpb24ocyl7aWYoIXMub2spdGhyb3cgbmV3IEVycm9yKHMuZGF0YSYmcy5kYXRhLmVycm9yfHwiXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2XHU1OTMxXHU4RDI1XHUzMDAyIik7dmFyIG89cy5kYXRhJiZzLmRhdGEub3B0aW1pemVkfHwiIjtpZighbyl0aHJvdyBuZXcgRXJyb3IoIkNsYXVkZSBcdThGRDRcdTU2REVcdTRFM0FcdTdBN0FcdTMwMDIiKTtoZyhlLG8pfSkuY2F0Y2goZnVuY3Rpb24ocyl7dHlwZW9mIGs9PSJmdW5jdGlvbiImJmsocyYmcy5tZXNzYWdlfHwiXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2XHU1OTMxXHU4RDI1XHUzMDAyIiwiZXJyb3IiKSx0JiYodC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1sb2FkaW5nIiksdC5jbGFzc0xpc3QuYWRkKCJpcy1zaGFrZSIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0JiZ0LmNsYXNzTGlzdC5yZW1vdmUoImlzLXNoYWtlIil9LDQwMCkpfSkuZmluYWxseShmdW5jdGlvbigpe3Z1PSExLHQmJih0LmNsYXNzTGlzdC5yZW1vdmUoImlzLWxvYWRpbmciKSx0LmRpc2FibGVkPSExLHQuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIlx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNlx1RkYwOEFJXHVGRjA5IikpLG4mJm4uY2xhc3NMaXN0LnJlbW92ZSgiaXMtb3B0aW1pemluZyIpLGUucmVtb3ZlQXR0cmlidXRlKCJhcmlhLWJ1c3kiKSxlLnJlYWRPbmx5PWF9KX19fWZ1bmN0aW9uIGhnKGUsdCl7aWYoIWUpcmV0dXJuO3ZhciBuPUFycmF5LmZyb20odCksaT1uLmxlbmd0aDtpZihpPT09MCl7ZS52YWx1ZT0iIixzdCgiIiwhMCksX3QoZSk7cmV0dXJufXZhciBhPU1hdGgubWluKDcwMCxNYXRoLm1heCgyMjAsaSo4KSksdT1NYXRoLm1pbihpLDYwKSxzPU1hdGguY2VpbChpL3UpLG89YS91LGw9MDtlLnZhbHVlPSIiLF90KGUpO2Z1bmN0aW9uIGMoKXtpZihsPU1hdGgubWluKGksbCtzKSxlLnZhbHVlPW4uc2xpY2UoMCxsKS5qb2luKCIiKSxfdChlKSxsPGkpc2V0VGltZW91dChjLG8pO2Vsc2V7c3QodCwhMCk7dHJ5e2Uuc2V0U2VsZWN0aW9uUmFuZ2UodC5sZW5ndGgsdC5sZW5ndGgpfWNhdGNoe319fWMoKX1mdW5jdGlvbiBIaShlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtpZih0KXt2YXIgbj1lfHxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksaT0hIShuJiZuLnZhbHVlJiZuLnZhbHVlLmxlbmd0aD4wKTt0LmNsYXNzTGlzdC50b2dnbGUoImhhcy10ZXh0IixpKX19ci5fc3RhdHVzQmFyVGltZXJJZD1udWxsLHIuX3N0YXR1c0JhclN0YXJ0VGltZT0wO3ZhciBOcj1udWxsLF9pPTA7ZnVuY3Rpb24gbXUoZSl7aWYoIWUpcmV0dXJue2FjdGl2ZTohMX07aWYoZS5hcmNoaXZlZClyZXR1cm57YWN0aXZlOiExfTt2YXIgdD0hIWUucGVybWlzc2lvbkJsb2NrZWQsbj0hIShpZShlKSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KSxpPSFpZShlKSYmZS5zdGF0dXM9PT0icnVubmluZyI7cmV0dXJue2FjdGl2ZTpufHxpfHx0LGluRmxpZ2h0Om4scHR5UnVubmluZzppLHBlcm1pc3Npb25CbG9ja2VkOnR9fWZ1bmN0aW9uIHlnKGUpe3ZhciB0PU1hdGgubWF4KDAsTWF0aC5mbG9vcihlLzFlMykpO2lmKHQ8NjApcmV0dXJuIHQrInMiO3ZhciBuPU1hdGguZmxvb3IodC82MCksaT10JTYwO2lmKG48NjApcmV0dXJuIG4rIm0iKyhpPyIgIitpKyJzIjoiIik7dmFyIGE9TWF0aC5mbG9vcihuLzYwKSx1PW4lNjA7cmV0dXJuIGErImgiKyh1PyIgIit1KyJtIjoiIil9ZnVuY3Rpb24gZ3UoZSl7dmFyIHQ9bXUoZSksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubWFpbi1oZWFkZXItcm93IiksaT1uP24ucXVlcnlTZWxlY3RvcigiLnNlc3Npb24tc3RhdHVzLXBpbGwiKTpudWxsLGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNoYXQtbWVzc2FnZXMiKTtpZihuJiYobi5jbGFzc0xpc3QudG9nZ2xlKCJpcy1ydW5uaW5nIix0LmFjdGl2ZSksbi5jbGFzc0xpc3QudG9nZ2xlKCJpcy1wZXJtaXNzaW9uLWJsb2NrZWQiLHQucGVybWlzc2lvbkJsb2NrZWQpKSxpKXt2YXIgdT1pLnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN0YXR1cy1lbGFwc2VkIik7aWYodC5pbkZsaWdodCl7X2l8fChfaT1yLl9zdGF0dXNCYXJTdGFydFRpbWU+MD9yLl9zdGF0dXNCYXJTdGFydFRpbWU6RGF0ZS5ub3coKSk7dmFyIHM9eWcoRGF0ZS5ub3coKS1faSk7dXx8KHU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpLHUuY2xhc3NOYW1lPSJzZXNzaW9uLXN0YXR1cy1lbGFwc2VkIixpLmFwcGVuZENoaWxkKHUpKSx1LnRleHRDb250ZW50PXN9ZWxzZSBfaT0wLHUmJnUucmVtb3ZlKCl9dC5hY3RpdmU/TnJ8fChOcj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBvPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihsKXtyZXR1cm4gbC5pZD09PXIuc2VsZWN0ZWRJZH0pO2d1KG8pfSwxZTMpKTpOciYmKGNsZWFySW50ZXJ2YWwoTnIpLE5yPW51bGwpfWZ1bmN0aW9uIGh1KGUsdCl7Z3UodCk7dmFyIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLXRvcC1yb3ciKSxpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIiKSxhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2lmKCF0fHwhaWUodCkpe2kmJmkucmVtb3ZlKCksYSYmYS5jbGFzc0xpc3QucmVtb3ZlKCJpbi1mbGlnaHQiKSxjbGVhckludGVydmFsKHIuX3N0YXR1c0JhclRpbWVySWQpLHIuX3N0YXR1c0JhclRpbWVySWQ9bnVsbDtyZXR1cm59dmFyIHU9dC5zdHJ1Y3R1cmVkU3RhdGUmJnQuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0O2lmKHUpe2lmKHIuX3N0YXR1c0JhclRpbWVySWR8fChyLl9zdGF0dXNCYXJTdGFydFRpbWU9RGF0ZS5ub3coKSksYSYmYS5jbGFzc0xpc3QuYWRkKCJpbi1mbGlnaHQiKSwhaSYmbil7dmFyIHM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7cy5jbGFzc05hbWU9InN0cnVjdHVyZWQtc3RhdHVzLWJhciIscy5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJzdGF0dXMtYmFyLWRvdCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJzdGF0dXMtYmFyLWxhYmVsIj5cdTU2REVcdTU5MERcdTRFMkQ8L3NwYW4+PHNwYW4gY2xhc3M9InN0YXR1cy1iYXItdGltZXIiPjAuMHM8L3NwYW4+JyxuLmFwcGVuZENoaWxkKHMpLGk9c31lbHNlIGlmKGkmJmkuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb21wbGV0ZWQiKSl7aS5jbGFzc0xpc3QucmVtb3ZlKCJjb21wbGV0ZWQiKSxpLnN0eWxlLmFuaW1hdGlvbj0ibm9uZSIsaS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci1sYWJlbCIpLnRleHRDb250ZW50PSJcdTU2REVcdTU5MERcdTRFMkQiO3ZhciBvPWkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItZG90Iik7byYmKG8uc3R5bGUuZGlzcGxheT0iIiksci5fc3RhdHVzQmFyU3RhcnRUaW1lPURhdGUubm93KCl9ci5fc3RhdHVzQmFyVGltZXJJZHx8KHIuX3N0YXR1c0JhclRpbWVySWQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgYz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3RydWN0dXJlZC1zdGF0dXMtYmFyOm5vdCguY29tcGxldGVkKSIpO2lmKCFjKXtjbGVhckludGVydmFsKHIuX3N0YXR1c0JhclRpbWVySWQpLHIuX3N0YXR1c0JhclRpbWVySWQ9bnVsbDtyZXR1cm59dmFyIGY9KChEYXRlLm5vdygpLXIuX3N0YXR1c0JhclN0YXJ0VGltZSkvMWUzKS50b0ZpeGVkKDEpLGQ9Yy5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci10aW1lciIpO2QmJihkLnRleHRDb250ZW50PWYrInMiKX0sMTAwKSl9ZWxzZSBpZihjbGVhckludGVydmFsKHIuX3N0YXR1c0JhclRpbWVySWQpLHIuX3N0YXR1c0JhclRpbWVySWQ9bnVsbCxhJiZhLmNsYXNzTGlzdC5yZW1vdmUoImluLWZsaWdodCIpLGkmJiFpLmNsYXNzTGlzdC5jb250YWlucygiY29tcGxldGVkIikpe3ZhciBsPXIuX3N0YXR1c0JhclN0YXJ0VGltZT8oKERhdGUubm93KCktci5fc3RhdHVzQmFyU3RhcnRUaW1lKS8xZTMpLnRvRml4ZWQoMSk6IjAuMCI7aS5jbGFzc0xpc3QuYWRkKCJjb21wbGV0ZWQiKSxpLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLWxhYmVsIikudGV4dENvbnRlbnQ9Ilx1NUI4Q1x1NjIxMCIsaS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci10aW1lciIpLnRleHRDb250ZW50PWwrInMiO3ZhciBvPWkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItZG90Iik7byYmKG8uc3R5bGUuZGlzcGxheT0ibm9uZSIpLHIuX3N0YXR1c0JhclN0YXJ0VGltZT0wLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLnBhcmVudE5vZGUmJmkucmVtb3ZlKCl9LDNlMyl9fWZ1bmN0aW9uIHAoZSl7cmV0dXJuIFN0cmluZyhlKS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IikucmVwbGFjZSgvIi9nLCImcXVvdDsiKS5yZXBsYWNlKC8nL2csIiYjMzk7Iil9dmFyIGJnPS9cLihwbmd8anBlP2d8Z2lmfHdlYnB8c3ZnfGF2aWZ8Ym1wfGljb3xoZWljfGhlaWYpJC9pO2Z1bmN0aW9uIHl1KGUpe2lmKHR5cGVvZiBlIT0ic3RyaW5nIilyZXR1cm4hMTt2YXIgdD1lLnRyaW0oKS5zcGxpdCgvWz8jXS8pWzBdO3JldHVybiBiZy50ZXN0KHQpfWZ1bmN0aW9uIE5pKGUpe2lmKGUpe3ZhciB0PWZ1bmN0aW9uKCl7dHJ5e2Uuc2Nyb2xsV2lkdGg+ZS5jbGllbnRXaWR0aCYmKGUuc2Nyb2xsTGVmdD1lLnNjcm9sbFdpZHRoKX1jYXRjaHt9fTt0KCksdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT09ImZ1bmN0aW9uIiYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHQpfX1mdW5jdGlvbiBFZyhlKXtpZihlKXt2YXIgdD1mdW5jdGlvbigpe3RyeXtpZih0eXBlb2YgZS5zZXRTZWxlY3Rpb25SYW5nZT09ImZ1bmN0aW9uIiYmZS52YWx1ZSE9bnVsbCl7dmFyIG49ZS52YWx1ZS5sZW5ndGg7dHJ5e2Uuc2V0U2VsZWN0aW9uUmFuZ2UobixuKX1jYXRjaHt9fWUuc2Nyb2xsV2lkdGg+ZS5jbGllbnRXaWR0aCYmKGUuc2Nyb2xsTGVmdD1lLnNjcm9sbFdpZHRoKX1jYXRjaHt9fTt0KCksdHlwZW9mIHJlcXVlc3RBbmltYXRpb25GcmFtZT09ImZ1bmN0aW9uIiYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKHQpfX0oZnVuY3Rpb24oKXt0cnl7dmFyIGU9bmF2aWdhdG9yJiZuYXZpZ2F0b3IudXNlckFnZW50fHwiIjsvV2FuZEFwcFwvLy50ZXN0KGUpJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtd2FuZC1hcHAiKSwvV2FuZFBsYXRmb3JtXC9pT1MvLnRlc3QoZSkmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpcy13YW5kLWlvcyIpfWNhdGNoe310cnl7Y29uc3QgdD1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKS5zZWFyY2hQYXJhbXM7dC5nZXQoImVtYmVkIik9PT0idGVybWluYWwiJiYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSx0LmdldCgibmF0aXZlSW5wdXQiKT09PSIxIiYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtbmF0aXZlLWlucHV0IikpfWNhdGNoe310cnl7d2luZG93Ll9fd2FuZE5hdGl2ZUJhY2tIb29rZWQ9ITB9Y2F0Y2h7fX0pKCl9KSgpOwo="),
8
+ scriptsJs: decode("InVzZSBzdHJpY3QiOygoKT0+e3ZhciBFdT0id2FuZC1sZWdhY3ktcHdhLWNsZWFudXAtdjEiLFJsPVsid2FuZC1zdGF0aWMtIiwid2FuZC1ydW50aW1lLSJdO2Z1bmN0aW9uIFJyKGUpe2lmKCFlKXJldHVybiExO3RyeXtjb25zdCB0PW5ldyBVUkwoZS5zY3JpcHRVUkwsbG9jYXRpb24uaHJlZik7cmV0dXJuIHQub3JpZ2luPT09bG9jYXRpb24ub3JpZ2luJiZ0LnBhdGhuYW1lPT09Ii9zdy5qcyJ9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIFdsKGUpe3JldHVybiBScihlLmluc3RhbGxpbmcpfHxScihlLndhaXRpbmcpfHxScihlLmFjdGl2ZSl9ZnVuY3Rpb24gemwoKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKEV1KT09PSJkb25lIn1jYXRjaHtyZXR1cm4hMX19ZnVuY3Rpb24gVWwoKXt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oRXUsImRvbmUiKX1jYXRjaHt9fWFzeW5jIGZ1bmN0aW9uIFZsKCl7aWYoISgic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3IpKXJldHVybiEwO3RyeXtjb25zdCB0PShhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5nZXRSZWdpc3RyYXRpb25zKCkpLmZpbHRlcihXbCk7cmV0dXJuIGF3YWl0IFByb21pc2UuYWxsKHQubWFwKG49Pm4udW5yZWdpc3RlcigpKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIEtsKCl7aWYoISgiY2FjaGVzImluIHdpbmRvdykpcmV0dXJuITA7dHJ5e2NvbnN0IHQ9KGF3YWl0IGNhY2hlcy5rZXlzKCkpLmZpbHRlcihuPT5SbC5zb21lKGk9Pm4uc3RhcnRzV2l0aChpKSkpO3JldHVybiBhd2FpdCBQcm9taXNlLmFsbCh0Lm1hcChuPT5jYWNoZXMuZGVsZXRlKG4pKSksITB9Y2F0Y2h7cmV0dXJuITF9fWFzeW5jIGZ1bmN0aW9uIEpsKCl7aWYoemwoKSlyZXR1cm47Y29uc3QgZT0ic2VydmljZVdvcmtlciJpbiBuYXZpZ2F0b3ImJlJyKG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLmNvbnRyb2xsZXIpLFt0LG5dPWF3YWl0IFByb21pc2UuYWxsKFtWbCgpLEtsKCldKTshdHx8IW58fChVbCgpLGUmJmxvY2F0aW9uLnJlbG9hZCgpKX1KbCgpO3ZhciBoZz0iJHtlc2NhcGVIdG1sKGNvbmZpZ1BhdGgpfSIsUmk9IndhbmQtY2hhdC1leHBhbmQtc3RhdGUtdjEiLFdyPVtmdW5jdGlvbigpe31dOyhmdW5jdGlvbigpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1scy1zY2hlbWEiKSxuPXQ9PW51bGw/MDpwYXJzZUludCh0LDEwKTtuPj0wfHwobj0wKTtmb3IodmFyIGk9bjtpPFdyLmxlbmd0aDtpKyspdHJ5e1dyW2ldKCl9Y2F0Y2h7fW48V3IubGVuZ3RoJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1scy1zY2hlbWEiLFN0cmluZyhXci5sZW5ndGgpKX1jYXRjaHt9fSkoKTtmdW5jdGlvbiBXaShlLHQpe3RyeXt2YXIgbj1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShlKTtyZXR1cm4gbj09PSJ0cnVlIj8hMDpuPT09ImZhbHNlIj8hMTp0fWNhdGNoe3JldHVybiB0fX1mdW5jdGlvbiBBZShlLHQpe3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLFN0cmluZyghIXQpKX1jYXRjaHt9fXZhciByPXtzZWxlY3RlZElkOihmdW5jdGlvbigpe3RyeXt2YXIgZT1uZXcgVVJMKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSx0PWUuc2VhcmNoUGFyYW1zLmdldCgic2Vzc2lvbiIpO2lmKHQpcmV0dXJuIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iLHQpLGUuc2VhcmNoUGFyYW1zLmRlbGV0ZSgic2Vzc2lvbiIpLGhpc3RvcnkucmVwbGFjZVN0YXRlKGhpc3Rvcnkuc3RhdGUsIiIsZS50b1N0cmluZygpKSx0fWNhdGNoe310cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXNlbGVjdGVkLXNlc3Npb24iKXx8bnVsbH1jYXRjaHtyZXR1cm4gbnVsbH19KSgpLHBvbGxUaW1lcjpudWxsLGNvbmZpZzpudWxsLHNlc3Npb25zOltdLHN1Z2dlc3Rpb25UaW1lcjpudWxsLHRlcm1pbmFsOm51bGwsdGVybWluYWxGaXRJblByb2dyZXNzOiExLHRlcm1pbmFsU2Vzc2lvbklkOm51bGwsdGVybWluYWxPdXRwdXQ6IiIsdGVybWluYWxPdXRwdXRNYXJrZXI6MCx0ZXJtaW5hbExpdmVTdHJlYW1TZXNzaW9uczp7fSxzeW5jT3V0cHV0QnVmZmVyOm51bGwsc3luY091dHB1dERlYWRsaW5lOjAsc3luY0ZyYW1pbmdSZXNpZHVlOiExLGxhc3RDaHVua0F0OjAsdGVybWluYWxIZWFsdGhUaW1lcjpudWxsLGxhc3RUZXJtaW5hbFJlc3luY0F0OjAsdGVybWluYWxBdXRvRm9sbG93OiEwLHRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw6MCx0ZXJtaW5hbFNjcm9sbElkbGVUaW1lcjpudWxsLHRlcm1pbmFsU2Nyb2xsVGhyZXNob2xkOjEyLHNob3dUZXJtaW5hbEp1bXBUb0JvdHRvbTohMSx0ZXJtaW5hbFZpZXdwb3J0RWw6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcjpudWxsLHRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI6bnVsbCx0ZXJtaW5hbFRvdWNoU3RhcnRZOjAsdGVybWluYWxDb21wb3Npbmc6ITEscmVzaXplT2JzZXJ2ZXI6bnVsbCxyZXNpemVIYW5kbGVyOm51bGwscmVzaXplVGltZXI6bnVsbCxpbnB1dFF1ZXVlOlByb21pc2UucmVzb2x2ZSgpLHBlbmRpbmdNZXNzYWdlczpbXSxtZXNzYWdlUXVldWU6W10sY3Jvc3NTZXNzaW9uUXVldWU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKSx0PWU/SlNPTi5wYXJzZShlKTpbXTtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90OltdfWNhdGNoe3JldHVybltdfX0pKCksc3RydWN0dXJlZElucHV0UXVldWU6W10scXVldWVCYXJFeHBhbmRlZDohMSxxdWV1ZUJhckhvdmVySW5kZXg6bnVsbCxxdWV1ZUJhckRyYWc6bnVsbCxxdWV1ZUJhclByb21vdGluZzohMSxkcmFmdHM6e30saXNTeW5jaW5nSW5wdXRCb3g6ITEsbG9naW5QZW5kaW5nOiExLGxvZ2luQ2hlY2tlZDohMSxib290c3RyYXBwaW5nOiEwLHNlc3Npb25zRHJhd2VyT3BlbjpXaSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxzaWRlYmFyUGlubmVkOldpKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMCksc2lkZWJhckNvbGxhcHNlZDpXaSgid2FuZC1zaWRlYmFyLWNvbGxhcHNlZCIsITEpLG1vZGFsT3BlbjohMSxwcmVzZXRWYWx1ZToiIixjd2RWYWx1ZToiIixtb2RlVmFsdWU6Im1hbmFnZWQiLGNoYXRNb2RlOiJtYW5hZ2VkIixjaGF0TW9kZWw6KGZ1bmN0aW9uKCl7dHJ5e3JldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsIil8fCIifWNhdGNoe3JldHVybiIifX0pKCksY2hhdFRoaW5raW5nOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC10aGlua2luZy1lZmZvcnQiKXx8Im9mZiI7cmV0dXJuIGU9PT0ib2ZmInx8ZT09PSJzdGFuZGFyZCJ8fGU9PT0iZGVlcCJ8fGU9PT0ibWF4Ij9lOiJvZmYifWNhdGNoe3JldHVybiJvZmYifX0pKCksYXZhaWxhYmxlTW9kZWxzOltdLGF2YWlsYWJsZUNvZGV4TW9kZWxzOltdLG1vZGVsc1JlZnJlc2hpbmc6ITEsc2Vzc2lvbkNyZWF0ZUtpbmQ6InN0cnVjdHVyZWQiLHNlc3Npb25DcmVhdGVXb3JrdHJlZTohMSxzZXNzaW9uVG9vbDoiY2xhdWRlIixhY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkOm51bGwsd29ya3RyZWVNZXJnZUNoZWNrUmVzdWx0Om51bGwsd29ya3RyZWVNZXJnZUxvYWRpbmc6ITEsd29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc6ITEsd29ya3RyZWVNZXJnZUVycm9yOiIiLHByZWZlcnJlZENvbW1hbmQ6ImNsYXVkZSIsc3RydWN0dXJlZFJ1bm5lcjoiY2xhdWRlLWNsaS1wcmludCIsbGFzdFJlc2l6ZTp7Y29sczowLHJvd3M6MH0saXNPbmxpbmU6bmF2aWdhdG9yLm9uTGluZSx3czpudWxsLHdzQ29ubmVjdGVkOiExLGxhc3RXc01lc3NhZ2VBdDowLHdzSGVhcnRiZWF0Q2hlY2tUaW1lcjpudWxsLF91cGRhdGVCdWJibGVTaG93bjohMSxub3RpZmljYXRpb25IaXN0b3J5Ont9LGRlbGF5ZWROb3RpZmljYXRpb25UaW1lcjpudWxsLG5vdGlmU291bmQ6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLW5vdGlmLXNvdW5kIik7cmV0dXJuIGU9PT1udWxsPyEwOmU9PT0idHJ1ZSJ9Y2F0Y2h7cmV0dXJuITB9fSkoKSxub3RpZlZvbHVtZTooZnVuY3Rpb24oKXt0cnl7dmFyIGU9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtbm90aWYtdm9sdW1lIik7cmV0dXJuIGU9PT1udWxsPzgwOk1hdGgubWF4KDAsTWF0aC5taW4oMTAwLHBhcnNlSW50KGUsMTApfHw4MCkpfWNhdGNoe3JldHVybiA4MH19KSgpLG5vdGlmQnViYmxlOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1ub3RpZi1idWJibGUiKTtyZXR1cm4gZT09PW51bGw/ITA6ZT09PSJ0cnVlIn1jYXRjaHtyZXR1cm4hMH19KSgpLHRvb2xDb250ZW50Q2FjaGU6e30sbGFzdFNlcUJ5U2Vzc2lvbjp7fSxjdXJyZW50VmlldzoidGVybWluYWwiLHRlcm1pbmFsU2NhbGU6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXRlcm1pbmFsLXNjYWxlIik7cmV0dXJuIGU/cGFyc2VGbG9hdChlKToxfWNhdGNoe3JldHVybiAxfX0pKCksdGVybWluYWxCYXNlRm9udFNpemU6MTMsa2V5Ym9hcmRQb3B1cE9wZW46ITEsZmlsZVBhbmVsT3BlbjooZnVuY3Rpb24oKXt0cnl7cmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIpPT09InRydWUifWNhdGNoe3JldHVybiExfX0pKCksdG9wYmFyTW9yZU9wZW46ITEsZ2l0U3RhdHVzOm51bGwsZ2l0U3RhdHVzU2Vzc2lvbklkOm51bGwsZ2l0U3RhdHVzTG9hZGluZzohMSxnaXRTdGF0dXNJbmZsaWdodDpudWxsLGdpdFN0YXR1c0xhc3RGZXRjaEF0OjAscXVpY2tDb21taXRPcGVuOiExLHF1aWNrQ29tbWl0U3VibWl0dGluZzohMSxxdWlja0NvbW1pdEdlbmVyYXRpbmc6ITEscXVpY2tDb21taXRFcnJvcjoiIixxdWlja0NvbW1pdEZvcm06e2N1c3RvbU1lc3NhZ2U6IiIsdGFnOiIiLHRhZ0VkaXRlZDohMX0scXVpY2tDb21taXRQdXNoaW5nOiExLHF1aWNrQ29tbWl0UHVzaEVycm9yOiIiLHF1aWNrQ29tbWl0UmVzdWx0Om51bGwscXVpY2tDb21taXREcmFnQWN0aW9uOiJjb21taXQiLHF1aWNrQ29tbWl0U3VibW9kdWxlSW50ZW50OiExLGNoYXRTdGlja1RvQm90dG9tOiEwLGNoYXRBdXRvRm9sZEVuYWJsZWQ6ITEsY2hhdEF1dG9Gb2xkU25hcHNob3Q6bnVsbCxjaGF0VW5yZWFkQ291bnQ6MCxjaGF0VW5yZWFkU3RhcnRJbmRleDotMSxjaGF0U2Nyb2xsVGhyZXNob2xkOjE2MCxjaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw6ITEsY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsOjAsY2hhdFNjcm9sbEVsZW1lbnQ6bnVsbCxjaGF0U2Nyb2xsSGFuZGxlcjpudWxsLGNoYXRTY3JvbGxXaGVlbEhhbmRsZXI6bnVsbCxjaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXI6bnVsbCxjaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcjpudWxsLGNoYXRUb3VjaFN0YXJ0WTowLGNoYXRJbml0aWFsUmVuZGVyRG9uZTohMSxsYXN0Rm9yZWdyb3VuZFN5bmNBdDowLGZvcmVncm91bmRTeW5jVGltZXI6bnVsbCx3c1JlY29ubmVjdEF0dGVtcHRzOjAsd3NSZWNvbm5lY3RUaW1lcjpudWxsLGN1cnJlbnRNZXNzYWdlczpbXSxsYXN0UmVuZGVyZWRIYXNoOjAsbGFzdFJlbmRlcmVkTXNnQ291bnQ6MCxsYXN0UmVuZGVyZWRFbXB0eTpudWxsLHJlbmRlclBlbmRpbmc6ITEsY2hhdFBhZ2VTaXplOjIwLGNoYXRSZW5kZXJlZENvdW50OjIwLGN1cnJlbnRUYXNrOm51bGwsdGVybWluYWxJbnRlcmFjdGl2ZTohMSxtaW5pS2V5Ym9hcmRWaXNpYmxlOiExLG1vZGlmaWVyczp7Y3RybDohMSxhbHQ6ITEsc2hpZnQ6ITF9LGpveXN0aWNrUG9zOihmdW5jdGlvbigpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1iYWxsLXBvcyIpO2lmKCFlKXJldHVybiBudWxsO3ZhciB0PUpTT04ucGFyc2UoZSk7cmV0dXJuIHQmJnR5cGVvZiB0PT0ib2JqZWN0Ij90Om51bGx9Y2F0Y2h7cmV0dXJuIG51bGx9fSkoKSxqb3lzdGlja1Bpbm5lZE9wZW46ITEsam95c3RpY2tSb290RWw6bnVsbCxqb3lzdGlja1BhbmVsRWw6bnVsbCxqb3lzdGlja0JhY2tkcm9wRWw6bnVsbCxqb3lzdGlja0JhbGxFbDpudWxsLGpveXN0aWNrUG9pbnRlcklkOm51bGwsam95c3RpY2tHZXN0dXJlOm51bGwsam95c3RpY2tQcmVzc1N0YXJ0Om51bGwsam95c3RpY2tMb25nUHJlc3NUaW1lcjpudWxsLGpveXN0aWNrTW92ZUhhbmRsZXI6bnVsbCxqb3lzdGlja1VwSGFuZGxlcjpudWxsLGpveXN0aWNrUmVzaXplSGFuZGxlcjpudWxsLGZpbGVTZWFyY2hRdWVyeToiIixmaWxlRXhwbG9yZXJMb2FkaW5nOiExLGFsbEZpbGVzOltdLGZpbGVFeHBsb3JlckN3ZDoiIixmaWxlRXhwbG9yZXJUcnVuY2F0ZWQ6ITEsZmlsZUV4cGxvcmVyVG90YWw6MCxjbGF1ZGVIaXN0b3J5OltdLGNsYXVkZUhpc3RvcnlMb2FkZWQ6ITEsY2xhdWRlSGlzdG9yeUV4cGFuZGVkOiExLGNsYXVkZUhpc3RvcnlFeHBhbmRlZERpcnM6e30sYXJjaGl2ZWRFeHBhbmRlZDohMSxzZXNzaW9uc01hbmFnZU1vZGU6ITEsc2VsZWN0ZWRTZXNzaW9uSWRzOnt9LHNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkczp7fSxjb2RleEhpc3Rvcnk6W10sY29kZXhIaXN0b3J5TG9hZGVkOiExLGNvZGV4SGlzdG9yeUV4cGFuZGVkRGlyczp7fSxzZWxlY3RlZENvZGV4SGlzdG9yeUlkczp7fSxhc2tVc2VyU2VsZWN0aW9uczp7fSxxdWV1ZUVwb2NoOjAscGVuZGluZ0F0dGFjaG1lbnRzOltdLHdvcmtpbmdEaXI6KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJ3YW5kLXdvcmtpbmctZGlyIik7cmV0dXJuIGV8fCIifWNhdGNoe3JldHVybiIifX0pKCl9LHppPSJcdTRFMkRcdTY1ODciLHpyPXtcdTRFMkRcdTY1ODc6eyJzdWJhZ2VudC50YWciOiJcdTVCNTBcdTRFRTNcdTc0MDYiLCJzdWJhZ2VudC5oYW5kb2ZmIjoie3BhcmVudH0gXHU4QkE5IHtzdWJ9IFx1NUUyRVx1NUZEOSIsInN1YmFnZW50LmhhbmRvZmYud2l0aF9kZXNjIjoie3BhcmVudH0gXHU4QkE5IHtzdWJ9IFx1NUUyRVx1NUZEOVx1RkYxQSIsInN1YmFnZW50LmNvbnRpbnVlZCI6Ilx1N0VFN1x1N0VFRFx1OEY5M1x1NTFGQSIsInN1YmFnZW50LnRhc2suZG9uZSI6Ilx1NEVGQlx1NTJBMVx1NUI4Q1x1NjIxMCIsInN1YmFnZW50LnRhc2suZmFpbGVkIjoiXHU0RUZCXHU1MkExXHU1OTMxXHU4RDI1Iiwic3ViYWdlbnQucnVubmluZyI6Ilx1OEZEMFx1ODg0Q1x1NEUyRCIsInN1YmFnZW50Lm5vX291dHB1dCI6Ilx1RkYwOFx1NjVFMFx1OEY5M1x1NTFGQVx1RkYwOSIsInN1YmFnZW50LmhlbHBlcl9mYWxsYmFja19wcmVmaXgiOiJcdTUzNEZcdTRGNUNcdTczMkJceEI3Iiwic3ViYWdlbnQudGl0bGVfYXJpYSI6Ilx1NzBCOVx1NTFGQlx1NUM1NVx1NUYwMCAvIFx1NjUzNlx1OEQ3N1x1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIsInN1YmFnZW50LnRhZ190aXRsZSI6Ilx1NUI1MFx1NEVFM1x1NzQwNiAvIHN1YmFnZW50IiwidWkuZXhwYW5kIjoiXHU1QzU1XHU1RjAwIiwidWkuY29sbGFwc2UiOiJcdTY1MzZcdThENzciLCJ1aS5leHBhbmRfcGFuZWxfYXJpYSI6Ilx1NUM1NVx1NUYwMFx1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIsInVpLmNvbGxhcHNlX3BhbmVsX2FyaWEiOiJcdTY1MzZcdThENzdcdTVCNTBcdTRFRTNcdTc0MDZcdThGOTNcdTUxRkEiLCJoaXN0b3J5LmV4cGFuZCI6Ilx1NUM1NVx1NUYwMFx1NTM4Nlx1NTNGMlx1NUJGOVx1OEJERCIsImhpc3RvcnkuY29sbGFwc2UiOiJcdTY1MzZcdThENzdcdTUzODZcdTUzRjJcdTVCRjlcdThCREQiLCJoaXN0b3J5LnJvdW5kcyI6IntufSBcdThGNkVcdTVCRjlcdThCREQiLCJoaXN0b3J5LnRvb2xzIjoie259IFx1NkIyMVx1NURFNVx1NTE3N1x1OEMwM1x1NzUyOCIsImhpc3RvcnkuYWdlbnRzIjoie259IFx1NEUyQVx1NUI1MFx1NEVFM1x1NzQwNiIsImhpc3RvcnkuZXJyb3JzIjoie259IFx1NEUyQVx1NTkzMVx1OEQyNSIsInN0b3AuY29uZmlybS50aXRsZSI6Ilx1NTA1Q1x1NkI2Mlx1NEVGQlx1NTJBMSIsInN0b3AuY29uZmlybS5tZXNzYWdlIjoiXHU3ODZFXHU1QjlBXHU4OTgxXHU1MDVDXHU2QjYyXHU1RjUzXHU1MjREXHU2QjYzXHU1NzI4XHU4RkQwXHU4ODRDXHU3Njg0XHU0RUZCXHU1MkExXHU1NDE3XHVGRjFGIiwic3RvcC5jb25maXJtLm9rIjoiXHU1MDVDXHU2QjYyIiwic3RvcC5jb25maXJtLmNhbmNlbCI6Ilx1NTNENlx1NkQ4OCJ9LEVuZ2xpc2g6eyJzdWJhZ2VudC50YWciOiJTdWJhZ2VudCIsInN1YmFnZW50LmhhbmRvZmYiOiJ7cGFyZW50fSBhc2tlZCB7c3VifSBmb3IgaGVscCIsInN1YmFnZW50LmhhbmRvZmYud2l0aF9kZXNjIjoie3BhcmVudH0gYXNrZWQge3N1Yn0gZm9yIGhlbHAgd2l0aDogIiwic3ViYWdlbnQuY29udGludWVkIjoiY29udGludWVkIiwic3ViYWdlbnQudGFzay5kb25lIjoiVGFzayBjb21wbGV0ZSIsInN1YmFnZW50LnRhc2suZmFpbGVkIjoiVGFzayBmYWlsZWQiLCJzdWJhZ2VudC5ydW5uaW5nIjoiUnVubmluZyIsInN1YmFnZW50Lm5vX291dHB1dCI6IihubyBvdXRwdXQpIiwic3ViYWdlbnQuaGVscGVyX2ZhbGxiYWNrX3ByZWZpeCI6IkhlbHBlclx4QjciLCJzdWJhZ2VudC50aXRsZV9hcmlhIjoiQ2xpY2sgdG8gZXhwYW5kIC8gY29sbGFwc2Ugc3ViYWdlbnQgb3V0cHV0Iiwic3ViYWdlbnQudGFnX3RpdGxlIjoiU3ViYWdlbnQiLCJ1aS5leHBhbmQiOiJFeHBhbmQiLCJ1aS5jb2xsYXBzZSI6IkNvbGxhcHNlIiwidWkuZXhwYW5kX3BhbmVsX2FyaWEiOiJFeHBhbmQgc3ViYWdlbnQgb3V0cHV0IiwidWkuY29sbGFwc2VfcGFuZWxfYXJpYSI6IkNvbGxhcHNlIHN1YmFnZW50IG91dHB1dCIsImhpc3RvcnkuZXhwYW5kIjoiU2hvdyBlYXJsaWVyIGNvbnZlcnNhdGlvbiIsImhpc3RvcnkuY29sbGFwc2UiOiJIaWRlIGVhcmxpZXIgY29udmVyc2F0aW9uIiwiaGlzdG9yeS5yb3VuZHMiOiJ7bn0gcm91bmRzIiwiaGlzdG9yeS50b29scyI6IntufSB0b29sIGNhbGxzIiwiaGlzdG9yeS5hZ2VudHMiOiJ7bn0gc3ViYWdlbnRzIiwiaGlzdG9yeS5lcnJvcnMiOiJ7bn0gZmFpbGVkIiwic3RvcC5jb25maXJtLnRpdGxlIjoiU3RvcCB0YXNrIiwic3RvcC5jb25maXJtLm1lc3NhZ2UiOiJTdG9wIHRoZSB0YXNrIHRoYXQncyBjdXJyZW50bHkgcnVubmluZz8iLCJzdG9wLmNvbmZpcm0ub2siOiJTdG9wIiwic3RvcC5jb25maXJtLmNhbmNlbCI6IkNhbmNlbCJ9fTtmdW5jdGlvbiBGdSgpe3ZhciBlPXIuY29uZmlnJiZ0eXBlb2Ygci5jb25maWcubGFuZ3VhZ2U9PSJzdHJpbmciP3IuY29uZmlnLmxhbmd1YWdlLnRyaW0oKToiIjtpZighZSlyZXR1cm4gemk7aWYoenJbZV0pcmV0dXJuIGU7dmFyIHQ9ZS50b0xvd2VyQ2FzZSgpO3JldHVybiB0PT09ImVuZ2xpc2gifHx0PT09ImVuInx8dC5pbmRleE9mKCJlbmdsaXNoIik9PT0wfHx0LmluZGV4T2YoIlx1ODJGMSIpPT09MD8iRW5nbGlzaCI6dD09PSJcdTRFMkRcdTY1ODcifHx0PT09InpoInx8dC5pbmRleE9mKCJ6aCIpPT09MHx8dC5pbmRleE9mKCJcdTRFMkQiKT09PTB8fHQuaW5kZXhPZigiY2hpbmVzZSIpPT09MD8iXHU0RTJEXHU2NTg3IjoiRW5nbGlzaCJ9ZnVuY3Rpb24gY2UoZSx0KXt2YXIgbj1GdSgpLGk9enJbbl18fHpyW3ppXSxhPWkmJmUgaW4gaT9pW2VdOm51bGw7aWYoYT09bnVsbCl7dmFyIHU9enJbemldO2E9dSYmZSBpbiB1P3VbZV06ZX1pZih0JiZ0eXBlb2YgYT09InN0cmluZyIpZm9yKHZhciBzIGluIHQpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQscykmJihhPWEuc3BsaXQoInsiK3MrIn0iKS5qb2luKHRbc10pKTtyZXR1cm4gYX12YXIgR2w9e3NoaWVsZDonPHBhdGggZD0iTTEyIDIyczgtNCA4LTEwVjVsLTgtMy04IDN2N2MwIDYgOCAxMCA4IDEweiIvPicsc2hpZWxkQ2hlY2s6JzxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48cG9seWxpbmUgcG9pbnRzPSI5IDEyIDExIDE0IDE1IDEwIi8+JyxjcHU6JzxyZWN0IHg9IjciIHk9IjciIHdpZHRoPSIxMCIgaGVpZ2h0PSIxMCIgcng9IjIiLz48cGF0aCBkPSJNOSAxdjMiLz48cGF0aCBkPSJNMTUgMXYzIi8+PHBhdGggZD0iTTkgMjB2MyIvPjxwYXRoIGQ9Ik0xNSAyMHYzIi8+PHBhdGggZD0iTTIwIDloMyIvPjxwYXRoIGQ9Ik0yMCAxNWgzIi8+PHBhdGggZD0iTTEgOWgzIi8+PHBhdGggZD0iTTEgMTVoMyIvPjxyZWN0IHg9IjEwIiB5PSIxMCIgd2lkdGg9IjQiIGhlaWdodD0iNCIgcng9IjEiLz4nLGJyYWluOic8cGF0aCBkPSJNOS41IDQuNWEzIDMgMCAwIDAtNC43IDMuMSAzLjMgMy4zIDAgMCAwIC4zIDYuMUEzIDMgMCAwIDAgOCAxOWgxLjVWNC41eiIvPjxwYXRoIGQ9Ik0xNC41IDQuNWEzIDMgMCAwIDEgNC43IDMuMSAzLjMgMy4zIDAgMCAxLS4zIDYuMUEzIDMgMCAwIDEgMTYgMTloLTEuNVY0LjV6Ii8+PHBhdGggZD0iTTkuNSA4SDcuOCIvPjxwYXRoIGQ9Ik0xNC41IDhoMS43Ii8+PHBhdGggZD0iTTkuNSAxM0g3LjYiLz48cGF0aCBkPSJNMTQuNSAxM2gxLjkiLz4nLGtleWJvYXJkOic8cmVjdCB4PSIyIiB5PSI2IiB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSIxMCIgeDI9IjYiIHkyPSIxMCIvPjxsaW5lIHgxPSIxMCIgeTE9IjEwIiB4Mj0iMTAiIHkyPSIxMCIvPjxsaW5lIHgxPSIxNCIgeTE9IjEwIiB4Mj0iMTQiIHkyPSIxMCIvPjxsaW5lIHgxPSIxOCIgeTE9IjEwIiB4Mj0iMTgiIHkyPSIxMCIvPjxsaW5lIHgxPSI2IiB5MT0iMTQiIHgyPSI2IiB5Mj0iMTQiLz48bGluZSB4MT0iMTgiIHkxPSIxNCIgeDI9IjE4IiB5Mj0iMTQiLz48bGluZSB4MT0iOSIgeTE9IjE0IiB4Mj0iMTUiIHkyPSIxNCIvPicsdGVybWluYWw6Jzxwb2x5bGluZSBwb2ludHM9IjQgNyA5IDEyIDQgMTciLz48bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjIwIiB5Mj0iMTciLz4nLGNoYXQ6JzxwYXRoIGQ9Ik0yMSAxMmE4IDggMCAwIDEtMTIuOSA2LjNMMyAyMGwxLjctNS4xQTggOCAwIDEgMSAyMSAxMnoiLz4nLGZvbGRlcjonPHBhdGggZD0iTTMgN2EyIDIgMCAwIDEgMi0yaDRsMiAyaDhhMiAyIDAgMCAxIDIgMnY4YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiIvPicsdHJhc2g6Jzxwb2x5bGluZSBwb2ludHM9IjMgNiA1IDYgMjEgNiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDEzYTIgMiAwIDAgMS0yIDJIOGEyIDIgMCAwIDEtMi0yTDUgNiIvPjxwYXRoIGQ9Ik0xMCAxMXY2Ii8+PHBhdGggZD0iTTE0IDExdjYiLz48cGF0aCBkPSJNOSA2VjRhMSAxIDAgMCAxIDEtMWg0YTEgMSAwIDAgMSAxIDF2MiIvPicsY2hldnJvbkRvd246Jzxwb2x5bGluZSBwb2ludHM9IjYgOSAxMiAxNSAxOCA5Ii8+JyxiZWxsOic8cGF0aCBkPSJNMTggMTZ2LTVhNiA2IDAgMSAwLTEyIDB2NWwtMiAyaDE2eiIvPjxwYXRoIGQ9Ik0xMCAyMWEyIDIgMCAwIDAgNCAwIi8+JyxtdXNpYzonPHBhdGggZD0iTTkgMThWNWwxMi0ydjEzIi8+PGNpcmNsZSBjeD0iNiIgY3k9IjE4IiByPSIzIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxNiIgcj0iMyIvPicsdmlicmF0ZTonPHJlY3QgeD0iOSIgeT0iNCIgd2lkdGg9IjYiIGhlaWdodD0iMTYiIHJ4PSIxIi8+PHBhdGggZD0iTTUgOHY4Ii8+PHBhdGggZD0iTTMgMTB2NCIvPjxwYXRoIGQ9Ik0xOSA4djgiLz48cGF0aCBkPSJNMjEgMTB2NCIvPicsZ2xvYmU6JzxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjkiLz48bGluZSB4MT0iMyIgeTE9IjEyIiB4Mj0iMjEiIHkyPSIxMiIvPjxwYXRoIGQ9Ik0xMiAzYTE0IDE0IDAgMCAxIDAgMTgiLz48cGF0aCBkPSJNMTIgM2ExNCAxNCAwIDAgMCAwIDE4Ii8+JyxzbWFydHBob25lOic8cmVjdCB4PSI2IiB5PSIyIiB3aWR0aD0iMTIiIGhlaWdodD0iMjAiIHJ4PSIyLjUiLz48bGluZSB4MT0iMTEiIHkxPSIxOCIgeDI9IjEzIiB5Mj0iMTgiLz4nLGRlc2t0b3A6JzxyZWN0IHg9IjMiIHk9IjQiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgcng9IjIiLz48bGluZSB4MT0iOCIgeTE9IjIwIiB4Mj0iMTYiIHkyPSIyMCIvPjxsaW5lIHgxPSIxMiIgeTE9IjE2IiB4Mj0iMTIiIHkyPSIyMCIvPicsbGluazonPHBhdGggZD0iTTEwIDE0YTQuNSA0LjUgMCAwIDAgNi4zNiAwbDMtM2E0LjUgNC41IDAgMSAwLTYuMzYtNi4zNmwtMS40MiAxLjQxIi8+PHBhdGggZD0iTTE0IDEwYTQuNSA0LjUgMCAwIDAtNi4zNiAwbC0zIDNhNC41IDQuNSAwIDEgMCA2LjM2IDYuMzZsMS40Mi0xLjQxIi8+JyxwYWxldHRlOic8Y2lyY2xlIGN4PSIxMy41IiBjeT0iNi41IiByPSIxIi8+PGNpcmNsZSBjeD0iMTcuNSIgY3k9IjEwLjUiIHI9IjEiLz48Y2lyY2xlIGN4PSI4LjUiIGN5PSI3LjUiIHI9IjEiLz48Y2lyY2xlIGN4PSI2LjUiIGN5PSIxMi41IiByPSIxIi8+PHBhdGggZD0iTTEyIDNhOSA5IDAgMSAwIDAgMTggMS41IDEuNSAwIDAgMCAxLjEtMi41IDEuNSAxLjUgMCAwIDEgMS4xLTIuNWgyLjNBNC41IDQuNSAwIDAgMCAyMSAxMS41QzIxIDYuOCAxNi45NyAzIDEyIDN6Ii8+JyxwbGF5Oic8cG9seWdvbiBwb2ludHM9IjYgNCAyMCAxMiA2IDIwIDYgNCIvPicsd3JlbmNoOic8cGF0aCBkPSJNMTQuNyA2LjNhNCA0IDAgMSAxIDQgNGwtOSA5LTMuNSAxIDEtMy41IDcuNS03LjV6Ii8+JyxwYXc6JzxjaXJjbGUgY3g9IjcuNSIgY3k9IjkiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSI2LjgiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTYuNSIgY3k9IjkiIHI9IjIiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PGNpcmNsZSBjeD0iMTgiIGN5PSIxMy4zIiByPSIxLjgiIGZpbGw9ImN1cnJlbnRDb2xvciIgc3Ryb2tlPSJub25lIi8+PHBhdGggZD0iTTcuMiAxNi4zYy41LTIuOSAyLjMtNC44IDQuOC00LjhzNC4zIDEuOSA0LjggNC44Yy4zIDEuOC0uOSAzLjItMi42IDIuNi0uOC0uMy0xLjQtLjYtMi4yLS42cy0xLjQuMy0yLjIuNmMtMS43LjYtMi45LS44LTIuNi0yLjZ6IiBmaWxsPSJjdXJyZW50Q29sb3IiIHN0cm9rZT0ibm9uZSIvPicsZWRpdDonPHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYuNSAzLjVhMi4xMiAyLjEyIDAgMCAxIDMgM0w3IDE5bC00IDEgMS00eiIvPicsc2lnbmFsOic8cGF0aCBkPSJNMiAxMmExNSAxNSAwIDAgMSAyMCAwIi8+PHBhdGggZD0iTTUgMTZhMTAgMTAgMCAwIDEgMTQgMCIvPjxwYXRoIGQ9Ik05IDIwYTQgNCAwIDAgMSA2IDAiLz48Y2lyY2xlIGN4PSIxMiIgY3k9IjIwIiByPSIwLjUiIGZpbGw9ImN1cnJlbnRDb2xvciIvPicsZmlsZTonPHBhdGggZD0iTTE0IDNINmEyIDIgMCAwIDAtMiAydjE0YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY5eiIvPjxwb2x5bGluZSBwb2ludHM9IjE0IDMgMTQgOSAyMCA5Ii8+JyxzaWdtYTonPHBvbHlsaW5lIHBvaW50cz0iMTggNCA2IDQgMTMgMTIgNiAyMCAxOCAyMCIvPicseDonPHBhdGggZD0iTTE4IDYgNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz4nLHBsdXM6JzxsaW5lIHgxPSIxMiIgeTE9IjUiIHgyPSIxMiIgeTI9IjE5Ii8+PGxpbmUgeDE9IjUiIHkxPSIxMiIgeDI9IjE5IiB5Mj0iMTIiLz4nLG1pYzonPHJlY3QgeD0iOSIgeT0iMyIgd2lkdGg9IjYiIGhlaWdodD0iMTEiIHJ4PSIzIi8+PHBhdGggZD0iTTUgMTFhNyA3IDAgMCAwIDE0IDAiLz48bGluZSB4MT0iMTIiIHkxPSIxOCIgeDI9IjEyIiB5Mj0iMjEiLz48bGluZSB4MT0iOSIgeTE9IjIxIiB4Mj0iMTUiIHkyPSIyMSIvPicscGFwZXJjbGlwOic8cGF0aCBkPSJNMjEuNDQgMTEuMDUgMTIuMjUgMjAuMjRhNiA2IDAgMCAxLTguNDktOC40OWw4Ljg0LTguODRhNCA0IDAgMSAxIDUuNjYgNS42Nkw5LjQxIDE3LjQxYTIgMiAwIDEgMS0yLjgzLTIuODNsOC44NC04LjgzIi8+J307ZnVuY3Rpb24geihlLHQpe3ZhciBuPUdsW2VdO2lmKCFuKXJldHVybiIiO3Q9dHx8e307dmFyIGk9dC5zaXplfHwxNCxhPXQuc3Ryb2tlV2lkdGh8fDEuOCx1PXQuY2xzPycgY2xhc3M9IicrdC5jbHMrJyInOiIiLHM9dC5maWxsfHwibm9uZSI7cmV0dXJuIjxzdmciK3UrJyB3aWR0aD0iJytpKyciIGhlaWdodD0iJytpKyciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iJytzKyciIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IicrYSsnIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK24rIjwvc3ZnPiJ9ZnVuY3Rpb24gcm4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKTtpZighZSlyZXR1cm4gci5jaGF0U2Nyb2xsRWxlbWVudD1udWxsLG51bGw7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO3JldHVybiB0PyhyLmNoYXRTY3JvbGxFbGVtZW50PXQsdCk6KHIuY2hhdFNjcm9sbEVsZW1lbnQ9bnVsbCxudWxsKX1mdW5jdGlvbiBVaShlKXt2YXIgdD1lfHxybigpO3JldHVybiB0P01hdGguYWJzKHQuc2Nyb2xsVG9wKTxyLmNoYXRTY3JvbGxUaHJlc2hvbGQ6ITB9ZnVuY3Rpb24geWcoZSl7ci5jaGF0U3RpY2tUb0JvdHRvbT0hIWUsci5jaGF0U3RpY2tUb0JvdHRvbSYmRm4oe3JlbW92ZURpdmlkZXI6ITB9KSxWZSgpfWZ1bmN0aW9uIEZuKGUpe2U9ZXx8e307dmFyIHQ9ci5jaGF0VW5yZWFkQ291bnQ+MHx8ci5jaGF0VW5yZWFkU3RhcnRJbmRleD49MDtpZihyLmNoYXRVbnJlYWRDb3VudD0wLHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg9LTEsZS5yZW1vdmVEaXZpZGVyIT09ITEpe3ZhciBuPXJuKCk7aWYobil7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlciIpO2kmJmkucGFyZW50Tm9kZSYmaS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkpfX10JiZWZSgpfWZ1bmN0aW9uIFZpKGUpe2lmKGV8fChlPXJuKCkpLCEhZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlciIpO2lmKHIuY2hhdFVucmVhZFN0YXJ0SW5kZXg8MHx8ci5jaGF0VW5yZWFkQ291bnQ8PTApe3QmJnQucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpO3JldHVybn1mb3IodmFyIG49ci5jaGF0VW5yZWFkU3RhcnRJbmRleCxpPWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZSIpLGE9bnVsbCx1PTA7dTxpLmxlbmd0aDt1Kyspe3ZhciBzPWlbdV0uZ2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIpO2lmKHMhPT1udWxsKXt2YXIgbz1wYXJzZUludChzLDEwKTtpZighaXNOYU4obykmJm88bil7YT1pW3VdO2JyZWFrfX19dmFyIGw9ci5jaGF0VW5yZWFkQ291bnQrIiBcdTY3NjFcdTY1QjBcdTZEODhcdTYwNkYiO3R8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJjaGF0LXVucmVhZC1kaXZpZGVyIix0LnNldEF0dHJpYnV0ZSgicm9sZSIsInNlcGFyYXRvciIpLHQuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtZGl2aWRlci1saW5lIj48L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtdW5yZWFkLWRpdmlkZXItbGFiZWwiPjwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtZGl2aWRlci1saW5lIj48L3NwYW4+JyksdC5xdWVyeVNlbGVjdG9yKCIuY2hhdC11bnJlYWQtZGl2aWRlci1sYWJlbCIpLnRleHRDb250ZW50PWwsYT8odC5uZXh0U2libGluZyE9PWF8fHQucGFyZW50Tm9kZSE9PWUpJiZlLmluc2VydEJlZm9yZSh0LGEpOih0LnBhcmVudE5vZGUhPT1lfHx0Lm5leHRTaWJsaW5nIT09bnVsbCkmJmUuYXBwZW5kQ2hpbGQodCl9fWZ1bmN0aW9uIFZlKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtdW5yZWFkLWJ1YmJsZSIpO2lmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PXIuc2VsZWN0ZWRJZH0pLG49IVVpKCksaT0hIXQmJnIuY3VycmVudFZpZXc9PT0iY2hhdCImJm47ZS5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlIixpKSxlLmNsYXNzTGlzdC50b2dnbGUoImhhcy11bnJlYWQiLHIuY2hhdFVucmVhZENvdW50PjApO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudCIpO2EmJihyLmNoYXRVbnJlYWRDb3VudD4wPyhhLnRleHRDb250ZW50PXIuY2hhdFVucmVhZENvdW50Pjk5PyI5OSsiOlN0cmluZyhyLmNoYXRVbnJlYWRDb3VudCksYS5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikpOihhLnRleHRDb250ZW50PSIiLGEuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpKSk7dmFyIHU9ci5jaGF0VW5yZWFkQ291bnQ+MD9yLmNoYXRVbnJlYWRDb3VudCsiIFx1Njc2MVx1NjVCMFx1NkQ4OFx1NjA2Rlx1RkYwQ1x1NzBCOVx1NTFGQlx1NjdFNVx1NzcwQiI6Ilx1NTZERVx1NTIzMFx1NjcwMFx1NjVCMFx1NkQ4OFx1NjA2RiI7ZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHUpLGUuc2V0QXR0cmlidXRlKCJ0aXRsZSIsdSk7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0Iik7cyYmcy5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtanVtcC1idG4iLGkpfX1mdW5jdGlvbiBpcigpe0tpKCl9ZnVuY3Rpb24gS2koZSl7dmFyIHQ9ZXx8cm4oKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LXBpbi1zcGFjZXIiKTtuJiZuLnBhcmVudE5vZGUmJm4ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChuKX19ZnVuY3Rpb24gd3UoZSl7dmFyIHQ9cm4oKTtpZighKCF0fHwhdC5pc0Nvbm5lY3RlZCkpe2lyKCksS2kodCksci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITA7dmFyIG49ZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLEZuKHtyZW1vdmVEaXZpZGVyOiEwfSksVmUoKX07aWYoZSYmdHlwZW9mIHQuc2Nyb2xsVG89PSJmdW5jdGlvbiIpe3Quc2Nyb2xsVG8oe3RvcDowLGJlaGF2aW9yOiJzbW9vdGgifSksc2V0VGltZW91dChuLDI2MCk7cmV0dXJufXQuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKG4pfX1mdW5jdGlvbiBDdSgpe3ZhciBlPXJuKCk7aXIoKSxlJiZLaShlKSxyLmNoYXRTdGlja1RvQm90dG9tPSEwLEZuKHtyZW1vdmVEaXZpZGVyOiEwfSksZSYmZS5pc0Nvbm5lY3RlZCYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLHIuY2hhdFByb2dyYW1tYXRpY1Njcm9sbFVudGlsPURhdGUubm93KCkrMTgwLGUuc2Nyb2xsVG9wPTAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITF9KSksVmUoKX1mdW5jdGlvbiBhcigpe3ZhciBlPXJuKCk7aWYoISghZXx8IWUuaXNDb25uZWN0ZWQpKXtpZihyLmNoYXRTY3JvbGxFbGVtZW50PT09ZSYmci5jaGF0U2Nyb2xsSGFuZGxlcil7VmUoKTtyZXR1cm59ci5jaGF0U2Nyb2xsRWxlbWVudCYmKHIuY2hhdFNjcm9sbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLmNoYXRTY3JvbGxIYW5kbGVyKSxyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlciksci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXImJnIuY2hhdFNjcm9sbEVsZW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyKSksci5jaGF0U2Nyb2xsRWxlbWVudD1lLHIuY2hhdFNjcm9sbEhhbmRsZXI9ZnVuY3Rpb24oKXtpZihlLmlzQ29ubmVjdGVkKXtpZihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbHx8RGF0ZS5ub3coKTxyLmNoYXRQcm9ncmFtbWF0aWNTY3JvbGxVbnRpbCl7VmUoKTtyZXR1cm59aXIoKTt2YXIgdD1VaShlKTt0PyhyLmNoYXRTdGlja1RvQm90dG9tPSEwLEZuKHtyZW1vdmVEaXZpZGVyOiEwfSkpOnIuY2hhdFN0aWNrVG9Cb3R0b209ITEsVmUoKX19LHIuY2hhdFNjcm9sbFdoZWVsSGFuZGxlcj1mdW5jdGlvbih0KXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbHx8dC5kZWx0YVk8MCYmKGlyKCksci5jaGF0U3RpY2tUb0JvdHRvbT0hMSxWZSgpKX0sci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXI9ZnVuY3Rpb24odCl7IXQudG91Y2hlc3x8dC50b3VjaGVzLmxlbmd0aD09PTB8fChyLmNoYXRUb3VjaFN0YXJ0WT10LnRvdWNoZXNbMF0uY2xpZW50WSl9LHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXI9ZnVuY3Rpb24odCl7aWYoIXIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsJiYhKCF0LnRvdWNoZXN8fHQudG91Y2hlcy5sZW5ndGg9PT0wKSl7dmFyIG49dC50b3VjaGVzWzBdLmNsaWVudFktci5jaGF0VG91Y2hTdGFydFk7bj40JiYoaXIoKSxyLmNoYXRTdGlja1RvQm90dG9tPSExLFZlKCkpfX0sZS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHIuY2hhdFNjcm9sbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyLHtwYXNzaXZlOiEwfSksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHIuY2hhdFNjcm9sbFRvdWNoTW92ZUhhbmRsZXIse3Bhc3NpdmU6ITB9KSxWZSgpfX1mdW5jdGlvbiBCdSgpe2lmKHIuY2hhdFJlbmRlcmVkQ291bnQ8ci5jdXJyZW50TWVzc2FnZXMubGVuZ3RoKXtyLmNoYXRSZW5kZXJlZENvdW50Kz1yLmNoYXRQYWdlU2l6ZSxLZSghMCk7cmV0dXJufXZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO2UmJnR5cGVvZiBlLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiZlLm1lc3NhZ2VPZmZzZXQ+MCYmZm0oKX12YXIgdXI9bnVsbDtmdW5jdGlvbiBZbCgpe3VyJiYodXIuZGlzY29ubmVjdCgpLHVyPW51bGwpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjaGF0LWxvYWQtbW9yZS1zZW50aW5lbCIpO2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiLmNoYXQtbG9hZC1tb3JlLWJ0biIpO3QmJih0Lm9uY2xpY2s9ZnVuY3Rpb24oKXtCdSgpfSk7dmFyIG49ISEod2luZG93Lm1hdGNoTWVkaWEmJndpbmRvdy5tYXRjaE1lZGlhKCIocG9pbnRlcjogY29hcnNlKSIpLm1hdGNoZXMpLGk9d2luZG93LmlubmVyV2lkdGg8PTc2ODtufHxpfHx3aW5kb3cuX193YW5kSW1lTmF0aXZlfHx3aW5kb3cuX193YW5kSW9zTmF0aXZlfHx0eXBlb2YgSW50ZXJzZWN0aW9uT2JzZXJ2ZXI+InUifHwodXI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGZ1bmN0aW9uKGEpe2Zvcih2YXIgdT0wO3U8YS5sZW5ndGg7dSsrKWlmKGFbdV0uaXNJbnRlcnNlY3Rpbmcpe0J1KCk7YnJlYWt9fSx7cm9vdDpybigpLHJvb3RNYXJnaW46IjIwMHB4In0pLHVyLm9ic2VydmUoZSkpfX1mdW5jdGlvbiB3ZSgpe3RyeXtyLnNlbGVjdGVkSWQ/bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtc2VsZWN0ZWQtc2Vzc2lvbiIsci5zZWxlY3RlZElkKTpsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1zZWxlY3RlZC1zZXNzaW9uIil9Y2F0Y2h7fX1mdW5jdGlvbiBKaShlKXtyZXR1cm4gZSYmQXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzOnIuc3RydWN0dXJlZElucHV0UXVldWV9ZnVuY3Rpb24gUWwoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtyZXR1cm4gSmkoZSl9ZnVuY3Rpb24gVXIoZSl7dmFyIHQ9SmkoZSk7ci5zdHJ1Y3R1cmVkSW5wdXRRdWV1ZT1BcnJheS5pc0FycmF5KHQpP3Quc2xpY2UoKTpbXX1mdW5jdGlvbiBEdShlLHQpe3JldHVybiEhKGUmJkFycmF5LmlzQXJyYXkoZS5jb250ZW50KSYmZS5jb250ZW50LnNvbWUoZnVuY3Rpb24obil7cmV0dXJuIG4mJnR5cGVvZiBuPT0ib2JqZWN0IiYmblt0XX0pKX1mdW5jdGlvbiAkbChlKXtyZXR1cm4hIShlJiZlLnJvbGU9PT0idXNlciImJkR1KGUsIl9fcXVldWVkIikpfWZ1bmN0aW9uIFhsKGUpe3JldHVybiEhKGUmJmUucm9sZT09PSJhc3Npc3RhbnQiJiZEdShlLCJfX3Byb2Nlc3NpbmciKSl9ZnVuY3Rpb24gc3IoZSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuW107Zm9yKHZhciB0PSExLG49W10saT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgYT1lW2ldO2lmKCRsKGEpfHxYbChhKSl7dD0hMDtjb250aW51ZX1uLnB1c2goYSl9cmV0dXJuIHQ/bjplfWZ1bmN0aW9uIFpsKGUsdCl7aWYoIWV8fCFBcnJheS5pc0FycmF5KGUubWVzc2FnZXMpKXJldHVybiBlO3ZhciBuPWUuc2Vzc2lvbktpbmR8fHQmJnQuc2Vzc2lvbktpbmQ7aWYobiE9PSJzdHJ1Y3R1cmVkIilyZXR1cm4gZTt2YXIgaT1zcihlLm1lc3NhZ2VzKTtyZXR1cm4gaT09PWUubWVzc2FnZXM/ZTpPYmplY3QuYXNzaWduKHt9LGUse21lc3NhZ2VzOml9KX1mdW5jdGlvbiBrdSgpe3RyeXt2YXIgZT1RbCgpO2lmKCFyLnNlbGVjdGVkSWR8fGUubGVuZ3RoPT09MClyZXR1cm47bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIsSlNPTi5zdHJpbmdpZnkoe3Nlc3Npb25JZDpyLnNlbGVjdGVkSWQsaXRlbXM6ZX0pKX1jYXRjaHt9fWZ1bmN0aW9uIEF1KGUpe3RyeXt2YXIgdD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1zdHJ1Y3R1cmVkLXF1ZXVlIik7aWYoIXQpcmV0dXJuO3ZhciBuPUpTT04ucGFyc2UodCk7KCFlfHwhbnx8bi5zZXNzaW9uSWQ9PT1lKSYmbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpfWNhdGNoe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLXN0cnVjdHVyZWQtcXVldWUiKX19ZnVuY3Rpb24geHUoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlJiZBcnJheS5pc0FycmF5KGUucXVldWVkTWVzc2FnZXMpKXtVcihlKSxrdSgpO3JldHVybn10cnl7dmFyIHQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oIndhbmQtc3RydWN0dXJlZC1xdWV1ZSIpO2lmKCF0KXJldHVybjt2YXIgbj1KU09OLnBhcnNlKHQpO2lmKCFufHxuLnNlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZHx8IUFycmF5LmlzQXJyYXkobi5pdGVtcykpcmV0dXJuO3Iuc3RydWN0dXJlZElucHV0UXVldWU9bi5pdGVtcy5zbGljZSgwLDEwKX1jYXRjaHtyLnN0cnVjdHVyZWRJbnB1dFF1ZXVlPVtdfX1mdW5jdGlvbiBRdCgpe3RyeXtpZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD09PTApe2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJ3YW5kLWNyb3NzLXNlc3Npb24tcXVldWUiKTtyZXR1cm59bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIsSlNPTi5zdHJpbmdpZnkoci5jcm9zc1Nlc3Npb25RdWV1ZSkpfWNhdGNoe319ZnVuY3Rpb24gYW4oKXtyZXR1cm4gci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRDd2R8fCIvdG1wIn1mdW5jdGlvbiBTdSgpe3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbShSaSk7aWYoIWUpcmV0dXJue307dmFyIHQ9SlNPTi5wYXJzZShlKTtyZXR1cm4gdCYmdHlwZW9mIHQ9PSJvYmplY3QiP3Q6e319Y2F0Y2h7cmV0dXJue319fWZ1bmN0aW9uIGVjKGUpe3RyeXtpZighZXx8T2JqZWN0LmtleXMoZSkubGVuZ3RoPT09MCl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oUmkpO3JldHVybn1sb2NhbFN0b3JhZ2Uuc2V0SXRlbShSaSxKU09OLnN0cmluZ2lmeShlKSl9Y2F0Y2h7fX1mdW5jdGlvbiB0Yygpe3ZhciBlPXIuc2VsZWN0ZWRJZDtpZighZSlyZXR1cm57fTt2YXIgdD1TdSgpLG49dFtlXTtyZXR1cm4gbiYmdHlwZW9mIG49PSJvYmplY3QiP246e319ZnVuY3Rpb24gWGUoZSl7aWYoIWV8fCFyLnNlbGVjdGVkSWQpcmV0dXJuIG51bGw7dmFyIHQ9dGMoKTtyZXR1cm4gdHlwZW9mIHRbZV09PSJib29sZWFuIj90W2VdOm51bGx9ZnVuY3Rpb24gSXUoZSx0KXtpZighKCFlfHwhci5zZWxlY3RlZElkKSl7dmFyIG49U3UoKSxpPXIuc2VsZWN0ZWRJZCxhPW5baV07KCFhfHx0eXBlb2YgYSE9Im9iamVjdCIpJiYoYT17fSksYVtlXT0hIXQsbltpXT1hLGVjKG4pfX1mdW5jdGlvbiBUdShlLHQpe3JldHVybiBlP2UudXVpZD8ibXNnOiIrZS51dWlkOmUuaWQ/Im1zZzoiK2UuaWQ6ZS5tZXNzYWdlSWQ/Im1zZzoiK2UubWVzc2FnZUlkOmUudHVybklkPyJtc2c6IitlLnR1cm5JZDoibXNnOiIrKHR5cGVvZiB0PT0ibnVtYmVyIj90OjApOiJtc2c6dW5rbm93bi0iKyh0eXBlb2YgdD09Im51bWJlciI/dDowKX1mdW5jdGlvbiBNdChlLHQpe2Zvcih2YXIgbj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPXRbaV07YT09bnVsbHx8YT09PSIifHxuLnB1c2goU3RyaW5nKGEpKX1yZXR1cm4gZSsiOiIrbi5qb2luKCI6Iil9ZnVuY3Rpb24gT24oZSl7cmV0dXJuIWV8fCFlLmRhdGFzZXQ/IiI6ZS5kYXRhc2V0LmV4cGFuZEtleXx8IiJ9ZnVuY3Rpb24gbmMoZSx0KXtpZighZSlyZXR1cm4hMTtzd2l0Y2godCl7Y2FzZSJ0b29sLWNhcmQiOmNhc2UiZGlmZiI6cmV0dXJuIWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtjYXNlInRoaW5raW5nIjpyZXR1cm4gZS5jbGFzc0xpc3QuY29udGFpbnMoImV4cGFuZGVkIikmJiFlLmNsYXNzTGlzdC5jb250YWlucygiY29sbGFwc2VkIik7Y2FzZSJpbmxpbmUtdG9vbCI6cmV0dXJuIGUuY2xhc3NMaXN0LmNvbnRhaW5zKCJpbmxpbmUtdG9vbC1vcGVuIik7Y2FzZSJ0ZXJtaW5hbCI6e3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO3JldHVybiBuP24uc3R5bGUuZGlzcGxheSE9PSJub25lIjplLmRhdGFzZXQuZXhwYW5kZWQ9PT0idHJ1ZSJ9Y2FzZSJ0b29sLWdyb3VwIjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtjYXNlInN1YmFnZW50LXJlcGx5IjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtjYXNlInN1YmFnZW50LXBhbmVsIjpyZXR1cm4gZS5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBHaShlLHQsbil7aWYoZSlzd2l0Y2godCl7Y2FzZSJ0b29sLWNhcmQiOmNhc2UiZGlmZiI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIiwhbik7YnJlYWt9Y2FzZSJ0aGlua2luZyI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIiwhbiksZS5jbGFzc0xpc3QudG9nZ2xlKCJleHBhbmRlZCIsISFuKTt2YXIgaT1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtcHJldmlldyIpO2lmKGkpe3ZhciBhPWUuZGF0YXNldC50aGlua2luZ3x8IiIsdT1hLnNsaWNlKDAsNTcpKyhhLmxlbmd0aD42MD8iXHUyMDI2IjoiIik7aS50ZXh0Q29udGVudD1uP2E6dX12YXIgcz1lLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtYWN0aW9uIik7cyYmKHMudGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIik7YnJlYWt9Y2FzZSJpbmxpbmUtdG9vbCI6e2UuY2xhc3NMaXN0LnRvZ2dsZSgiaW5saW5lLXRvb2wtb3BlbiIsISFuKTt2YXIgbz1lLnF1ZXJ5U2VsZWN0b3IoIi5pbmxpbmUtdG9vbC1leHBhbmRlZCIpO28mJihvLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIik7YnJlYWt9Y2FzZSJ0ZXJtaW5hbCI6e3ZhciBsPWUucXVlcnlTZWxlY3RvcigiLnRlcm0tYm9keSIpO2wmJihsLnN0eWxlLmRpc3BsYXk9bj8iYmxvY2siOiJub25lIiksZS5kYXRhc2V0LmV4cGFuZGVkPW4/InRydWUiOiJmYWxzZSI7dmFyIGM9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS10b2dnbGUtaWNvbiIpO2MmJihjLnRleHRDb250ZW50PW4/Ilx1MjVCQyI6Ilx1MjVCNiIpO2JyZWFrfWNhc2UidG9vbC1ncm91cCI6e2Uuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKTt2YXIgZj1lLnF1ZXJ5U2VsZWN0b3IoIi50b29sLWdyb3VwLWJvZHkiKTtmJiYoZi5zdHlsZS5kaXNwbGF5PW4/ImJsb2NrIjoibm9uZSIpO3ZhciBkPWUucXVlcnlTZWxlY3RvcigiLnRvb2wtZ3JvdXAtY2hldnJvbiIpO2QmJihkLnN0eWxlLnRyYW5zZm9ybT1uPyJyb3RhdGUoMTgwZGVnKSI6IiIpO2JyZWFrfWNhc2Uic3ViYWdlbnQtcmVwbHkiOntlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIik7dmFyIHY9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcmVwbHktdG9nZ2xlLWxhYmVsIik7diYmKHYudGV4dENvbnRlbnQ9bj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIik7dmFyIGg9ZS5xdWVyeVNlbGVjdG9yKCIuc3ViYWdlbnQtcmVwbHktdG9nZ2xlIik7aCYmKGguc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIixuPyJ0cnVlIjoiZmFsc2UiKSxoLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsbj8iXHU2NTM2XHU4RDc3XHU1QjUwXHU0RUUzXHU3NDA2XHU1NkRFXHU1OTBEIjoiXHU1QzU1XHU1RjAwXHU1QjUwXHU0RUUzXHU3NDA2XHU1NkRFXHU1OTBEXHU1MTY4XHU2NTg3IikpO2JyZWFrfWNhc2Uic3ViYWdlbnQtcGFuZWwiOntlLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIik7Zm9yKHZhciBnPWUucXVlcnlTZWxlY3RvckFsbCgiLnN1YmFnZW50LXBhbmVsLXRvZ2dsZSIpLG09MDttPGcubGVuZ3RoO20rKyl7dmFyIHk9Z1ttXTt5LnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsbj8idHJ1ZSI6ImZhbHNlIikseS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLG4/Ilx1NjUzNlx1OEQ3N1x1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSI6Ilx1NUM1NVx1NUYwMFx1NUI1MFx1NEVFM1x1NzQwNlx1OEY5M1x1NTFGQSIpO3ZhciB3PXkucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLXRvZ2dsZS1sYWJlbCIpO3cmJih3LnRleHRDb250ZW50PW4/Ilx1NjUzNlx1OEQ3NyI6Ilx1NUM1NVx1NUYwMCIpfXZhciBFPWUucXVlcnlTZWxlY3RvcigiLnN1YmFnZW50LXBhbmVsLWJvZHkiKTtFJiYobj9FLnNjcm9sbFRvcD0wOkUuc2Nyb2xsVG9wPUUuc2Nyb2xsSGVpZ2h0KTticmVha319fWZ1bmN0aW9uIHduKGUsdCl7dmFyIG49T24oZSk7biYmSXUobixuYyhlLHQpKX1mdW5jdGlvbiBZaShlKXshZXx8IXIuc2VsZWN0ZWRJZHx8ZS5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1leHBhbmQta2V5XSIpLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49T24odCksaT10LmRhdGFzZXQuZXhwYW5kS2luZHx8IiIsYT1YZShuKTthPT09bnVsbHx8IWl8fEdpKHQsaSxhKX0pfWZ1bmN0aW9uIE5lKCl7cmV0dXJuIHdpbmRvdy5pbm5lcldpZHRoPD03Njh9ZnVuY3Rpb24gTHUoKXtyZXR1cm4hIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiYoTmUoKXx8IXIuc2lkZWJhclBpbm5lZCl9ZnVuY3Rpb24gUWkoZSl7ci5maWxlUGFuZWxPcGVuPWU7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWZpbGUtcGFuZWwtb3BlbiIsU3RyaW5nKHIuZmlsZVBhbmVsT3BlbikpfWNhdGNoe31yLmZpbGVQYW5lbE9wZW4mJk5lKCkmJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSksdW4oKSxyLmZpbGVQYW5lbE9wZW4mJk90KCl9ZnVuY3Rpb24gVnIoKXtRaSghci5maWxlUGFuZWxPcGVuKX1mdW5jdGlvbiByYygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNpZGUtcGFuZWwiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tYWluLWNvbnRlbnQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLXRvZ2dsZS1idG4iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLWJhY2tkcm9wIik7ZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJvcGVuIixyLmZpbGVQYW5lbE9wZW4pLHQmJnQuY2xhc3NMaXN0LnRvZ2dsZSgiZmlsZS1wYW5lbC1vcGVuIixyLmZpbGVQYW5lbE9wZW4pLGkmJmkuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsci5maWxlUGFuZWxPcGVuKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci5maWxlUGFuZWxPcGVuKX1mdW5jdGlvbiB1bigpe1RyKCkscmMoKX1mdW5jdGlvbiBpYyhlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1leHBsb3Jlci1jd2QiKTtpZih0KXt2YXIgbj1lJiZlLmN3ZD9lLmN3ZDphbigpO3QudGFnTmFtZT09PSJJTlBVVCI/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXQmJih0LnZhbHVlPW4scGcodCkpOnQudGV4dENvbnRlbnQ9bix0LnRpdGxlPW47dmFyIGk9dC5jbG9zZXN0KCIuZmlsZS1leHBsb3Jlci1oZWFkZXIiKTtpJiZxaShpKX19ZnVuY3Rpb24gTXUoKXtyLmZpbGVQYW5lbE9wZW4mJlFpKCExKX1mdW5jdGlvbiBPdShlKXt2YXIgdD1yLnRlcm1pbmFsU2NhbGUrZTtpZih0PU1hdGgubWF4KC41LE1hdGgubWluKDIsdCkpLHQ9TWF0aC5yb3VuZCh0KjQpLzQsdCE9PXIudGVybWluYWxTY2FsZSl7ci50ZXJtaW5hbFNjYWxlPXQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLXRlcm1pbmFsLXNjYWxlIixTdHJpbmcodCkpfWNhdGNoe31QdSgpLGFjKCl9fWZ1bmN0aW9uIFB1KCl7aWYoISghci50ZXJtaW5hbHx8IXIudGVybWluYWwuZWxlbWVudCkpe3ZhciBlPXIudGVybWluYWxCYXNlRm9udFNpemUqci50ZXJtaW5hbFNjYWxlLHQ9TWF0aC5tYXgoMSxNYXRoLnJvdW5kKGUpKSxuPU1hdGgubWF4KDEsTWF0aC5yb3VuZChlKjEuNSkpO3IudGVybWluYWwuZWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eSgiLS10ZXJtLWZvbnQtc2l6ZSIsdCsicHgiKSxyLnRlcm1pbmFsLmVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0tdGVybS1yb3ctaGVpZ2h0IixuKyJweCIpLHR5cGVvZiByLnRlcm1pbmFsLnJlbWVhc3VyZT09ImZ1bmN0aW9uIiYmcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKX0pfX1mdW5jdGlvbiBhYygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1zY2FsZS1sYWJlbC10b3AiKTtlJiYoZS50ZXh0Q29udGVudD1NYXRoLnJvdW5kKHIudGVybWluYWxTY2FsZSoxMDApKyIlIil9dmFyIHVjPXsiY2hldnJvbi1sZWZ0IjonPHBhdGggZD0iTTE1IDE4bC02LTYgNi02Ii8+JywiYXJyb3ctdXAiOic8cGF0aCBkPSJNMTIgMTlWNSIvPjxwYXRoIGQ9Ik01IDEybDctNyA3IDciLz4nLHJlZnJlc2g6JzxwYXRoIGQ9Ik0yMSAxMmE5IDkgMCAxIDEtMy02LjciLz48cGF0aCBkPSJNMjEgNHY1aC01Ii8+JyxleWU6JzxwYXRoIGQ9Ik0xIDEyczQtNyAxMS03IDExIDcgMTEgNy00IDctMTEgN1MxIDEyIDEgMTJ6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIvPicsImV5ZS1vZmYiOic8cGF0aCBkPSJNMTcuOTQgMTcuOTRBMTAuOTQgMTAuOTQgMCAwIDEgMTIgMTljLTcgMC0xMS03LTExLTdhMTkuODYgMTkuODYgMCAwIDEgNC4yMi01LjE4Ii8+PHBhdGggZD0iTTEgMWwyMiAyMiIvPjxwYXRoIGQ9Ik05LjkgNC4yNEExMC45NCAxMC45NCAwIDAgMSAxMiA0YzcgMCAxMSA3IDExIDdhMTkuODMgMTkuODMgMCAwIDEtMy4zNiA0LjI3Ii8+PHBhdGggZD0iTTE0LjEyIDE0LjEyYTMgMyAwIDEgMS00LjI0LTQuMjQiLz4nLHg6JzxwYXRoIGQ9Ik0xOCA2TDYgMTgiLz48cGF0aCBkPSJNNiA2bDEyIDEyIi8+JyxzZWFyY2g6JzxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjciLz48cGF0aCBkPSJNMjEgMjFsLTQuMy00LjMiLz4nLGNvcHk6JzxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgcng9IjIiLz48cGF0aCBkPSJNNSAxNVY1YTIgMiAwIDAgMSAyLTJoMTAiLz4nLGNsaXBib2FyZDonPHJlY3QgeD0iOCIgeT0iMyIgd2lkdGg9IjgiIGhlaWdodD0iNCIgcng9IjEiLz48cGF0aCBkPSJNMTYgNWgyYTIgMiAwIDAgMSAyIDJ2MTJhMiAyIDAgMCAxLTIgMkg2YTIgMiAwIDAgMS0yLTJWN2EyIDIgMCAwIDEgMi0yaDIiLz4nLGRvd25sb2FkOic8cGF0aCBkPSJNMjEgMTV2NGEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnYtNCIvPjxwYXRoIGQ9Ik03IDEwbDUgNSA1LTUiLz48cGF0aCBkPSJNMTIgMTVWMyIvPicsZWRpdDonPHBhdGggZD0iTTEyIDIwaDkiLz48cGF0aCBkPSJNMTYuNSAzLjVhMi4xMjEgMi4xMjEgMCAwIDEgMyAzTDcgMTlsLTQgMSAxLTR6Ii8+JyxzYXZlOic8cGF0aCBkPSJNMTkgMjFINWEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgxMWw1IDV2MTFhMiAyIDAgMCAxLTIgMnoiLz48cGF0aCBkPSJNMTcgMjF2LThIN3Y4Ii8+PHBhdGggZD0iTTcgM3Y1aDgiLz4nLCJyb3RhdGUtY2N3IjonPHBhdGggZD0iTTMgMTJhOSA5IDAgMSAwIDMtNi43Ii8+PHBhdGggZD0iTTMgNHY1aDUiLz4nLCJ3cmFwLXRleHQiOic8cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTMgMTJoMTVhMyAzIDAgMSAxIDAgNmgtNCIvPjxwYXRoIGQ9Ik0xNiAxNmwtMiAyIDIgMiIvPjxwYXRoIGQ9Ik0zIDE4aDYiLz4nLHR5cGU6JzxwYXRoIGQ9Ik00IDdWNGgxNnYzIi8+PHBhdGggZD0iTTkgMjBoNiIvPjxwYXRoIGQ9Ik0xMiA0djE2Ii8+JyxtaW51czonPHBhdGggZD0iTTUgMTJoMTQiLz4nLHBsdXM6JzxwYXRoIGQ9Ik0xMiA1djE0Ii8+PHBhdGggZD0iTTUgMTJoMTQiLz4nLCJzZW5kLXRvLWlucHV0IjonPHBhdGggZD0iTTIyIDJMMTEgMTMiLz48cGF0aCBkPSJNMjIgMmwtNyAyMC00LTktOS00eiIvPicsdGVybWluYWw6Jzxwb2x5bGluZSBwb2ludHM9IjQgMTcgMTAgMTEgNCA1Ii8+PGxpbmUgeDE9IjEyIiB5MT0iMTkiIHgyPSIyMCIgeTI9IjE5Ii8+JywiZm9sZGVyLW9wZW4iOic8cGF0aCBkPSJNNiAxNGwxLjQ1LTIuOUEyIDIgMCAwIDEgOS4yNCAxMEgyMGEyIDIgMCAwIDEgMS45NCAyLjVsLTEuNTUgNmEyIDIgMCAwIDEtMS45NCAxLjVINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmgzLjkzYTIgMiAwIDAgMSAxLjY2LjlsLjgyIDEuMmEyIDIgMCAwIDAgMS42Ni45SDE4YTIgMiAwIDAgMSAyIDJ2MiIvPicsaW5mbzonPGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48bGluZSB4MT0iMTIiIHkxPSIxNiIgeDI9IjEyIiB5Mj0iMTIiLz48bGluZSB4MT0iMTIiIHkxPSI4IiB4Mj0iMTIuMDEiIHkyPSI4Ii8+J307ZnVuY3Rpb24gTWUoZSx0KXt0PXR8fHt9O3ZhciBuPXVjW2VdfHwiIixpPXQuc2l6ZXx8MTYsYT10LmNsYXNzTmFtZT8iICIrdC5jbGFzc05hbWU6IiI7cmV0dXJuJzxzdmcgY2xhc3M9IndhbmQtaWNvbiB3YW5kLWljb24tJytlK2ErJyIgd2lkdGg9IicraSsnIiBoZWlnaHQ9IicraSsnIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPicrbisiPC9zdmc+In1mdW5jdGlvbiBzYyhlKXt2YXIgdD1lfHxhbigpO3JldHVybiB0Pyc8ZGl2IGNsYXNzPSJmaWxlLXRyZWUiIGlkPSJmaWxlLXRyZWUiIGRhdGEtY3dkPSInK3AodCkrJyI+PGRpdiBjbGFzcz0idHJlZS1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj4nOic8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTY3MkFcdTkxNERcdTdGNkVcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L2Rpdj4nfXZhciBvYz17cG5nOiJcdXsxRjVCQ31cdUZFMEYiLGpwZzoiXHV7MUY1QkN9XHVGRTBGIixqcGVnOiJcdXsxRjVCQ31cdUZFMEYiLGdpZjoiXHV7MUY1QkN9XHVGRTBGIix3ZWJwOiJcdXsxRjVCQ31cdUZFMEYiLHN2ZzoiXHV7MUY1QkN9XHVGRTBGIixhdmlmOiJcdXsxRjVCQ31cdUZFMEYiLGJtcDoiXHV7MUY1QkN9XHVGRTBGIixpY286Ilx1ezFGNUJDfVx1RkUwRiIsaGVpYzoiXHV7MUY1QkN9XHVGRTBGIixoZWlmOiJcdXsxRjVCQ31cdUZFMEYiLHBkZjoiXHV7MUY0RDV9Iixkb2M6Ilx1ezFGNEQ4fSIsZG9jeDoiXHV7MUY0RDh9IixvZHQ6Ilx1ezFGNEQ4fSIseGxzOiJcdXsxRjRDQX0iLHhsc3g6Ilx1ezFGNENBfSIsY3N2OiJcdXsxRjRDQX0iLHRzdjoiXHV7MUY0Q0F9IixwcHQ6Ilx1ezFGNEQ5fSIscHB0eDoiXHV7MUY0RDl9IixtcDQ6Ilx1ezFGM0FDfSIsd2VibToiXHV7MUYzQUN9Iixtb3Y6Ilx1ezFGM0FDfSIsbWt2OiJcdXsxRjNBQ30iLG00djoiXHV7MUYzQUN9IixvZ3Y6Ilx1ezFGM0FDfSIsbXAzOiJcdXsxRjNCNX0iLHdhdjoiXHV7MUYzQjV9IixvZ2c6Ilx1ezFGM0I1fSIsbTRhOiJcdXsxRjNCNX0iLGZsYWM6Ilx1ezFGM0I1fSIsYWFjOiJcdXsxRjNCNX0iLG9wdXM6Ilx1ezFGM0I1fSIsemlwOiJcdXsxRjRFNn0iLHRhcjoiXHV7MUY0RTZ9IixnejoiXHV7MUY0RTZ9Iix0Z3o6Ilx1ezFGNEU2fSIsYnoyOiJcdXsxRjRFNn0iLCI3eiI6Ilx1ezFGNEU2fSIscmFyOiJcdXsxRjRFNn0iLHh6OiJcdXsxRjRFNn0iLG1kOiJcdXsxRjRERH0iLG1hcmtkb3duOiJcdXsxRjRERH0iLG1keDoiXHV7MUY0RER9Iixyc3Q6Ilx1ezFGNEREfSIsdHh0OiJcdXsxRjRERH0iLGxvZzoiXHV7MUY0RER9IixodG1sOiJcdXsxRjMxMH0iLGh0bToiXHV7MUYzMTB9Iix4bWw6Ilx1ezFGMzEwfSIsY3NzOiJcdXsxRjNBOH0iLHNjc3M6Ilx1ezFGM0E4fSIsbGVzczoiXHV7MUYzQTh9Iixqc29uOiJcdTI2OTlcdUZFMEYiLGpzb25jOiJcdTI2OTlcdUZFMEYiLHlhbWw6Ilx1MjY5OVx1RkUwRiIseW1sOiJcdTI2OTlcdUZFMEYiLHRvbWw6Ilx1MjY5OVx1RkUwRiIsaW5pOiJcdTI2OTlcdUZFMEYiLGNmZzoiXHUyNjk5XHVGRTBGIixjb25mOiJcdTI2OTlcdUZFMEYiLGVudjoiXHUyNjk5XHVGRTBGIixlZGl0b3Jjb25maWc6Ilx1MjY5OVx1RkUwRiIsdHM6Ilx1ezFGNERDfSIsdHN4OiJcdXsxRjREQ30iLGpzOiJcdXsxRjREQ30iLGpzeDoiXHV7MUY0REN9IixtanM6Ilx1ezFGNERDfSIsY2pzOiJcdXsxRjREQ30iLHB5OiJcdXsxRjREQ30iLHJiOiJcdXsxRjREQ30iLGdvOiJcdXsxRjREQ30iLHJzOiJcdXsxRjREQ30iLGphdmE6Ilx1ezFGNERDfSIsYzoiXHV7MUY0REN9IixjcHA6Ilx1ezFGNERDfSIsaDoiXHV7MUY0REN9IixocHA6Ilx1ezFGNERDfSIsY3M6Ilx1ezFGNERDfSIsc3dpZnQ6Ilx1ezFGNERDfSIsa3Q6Ilx1ezFGNERDfSIsc2NhbGE6Ilx1ezFGNERDfSIscGhwOiJcdXsxRjREQ30iLHNoOiJcdXsxRjREQ30iLGJhc2g6Ilx1ezFGNERDfSIsenNoOiJcdXsxRjREQ30iLGZpc2g6Ilx1ezFGNERDfSIsbHVhOiJcdXsxRjREQ30iLHNxbDoiXHV7MUY0REN9IixncmFwaHFsOiJcdXsxRjREQ30iLHByb3RvOiJcdXsxRjREQ30iLHZ1ZToiXHV7MUY0REN9IixzdmVsdGU6Ilx1ezFGNERDfSIsZGlmZjoiXHV7MUY0REN9IixwYXRjaDoiXHV7MUY0REN9Iix0dGY6Ilx1ezFGNTI0fSIsb3RmOiJcdXsxRjUyNH0iLHdvZmY6Ilx1ezFGNTI0fSIsd29mZjI6Ilx1ezFGNTI0fSIsZW90OiJcdXsxRjUyNH0ifTtmdW5jdGlvbiBxdShlKXtpZighZSlyZXR1cm4iXHV7MUY0QzR9IjtpZihlLnR5cGU9PT0iZGlyIilyZXR1cm4iXHV7MUY0QzF9Ijt2YXIgdD0oZS5uYW1lfHwiIikudG9Mb3dlckNhc2UoKTtpZih0PT09ImRvY2tlcmZpbGUiKXJldHVybiJcdXsxRjQzM30iO2lmKHQ9PT0ibWFrZWZpbGUiKXJldHVybiJcdXsxRjZFMH1cdUZFMEYiO2lmKHQ9PT0ibGljZW5zZSIpcmV0dXJuIlx1ezFGNERDfSI7aWYodD09PSJyZWFkbWUiKXJldHVybiJcdXsxRjRERH0iO3ZhciBuPXQubGFzdEluZGV4T2YoIi4iKTtpZihuPDB8fG49PT10Lmxlbmd0aC0xKXJldHVybiJcdXsxRjRDNH0iO3ZhciBpPXQuc2xpY2UobisxKTtyZXR1cm4gb2NbaV18fCJcdXsxRjRDNH0ifWZ1bmN0aW9uIFBuKGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyInx8IWlzRmluaXRlKGUpfHxlPDApcmV0dXJuIiI7aWYoZTwxMDI0KXJldHVybiBlKyIgQiI7dmFyIHQ9ZS8xMDI0O2lmKHQ8MTAyNClyZXR1cm4odD49MTA/TWF0aC5yb3VuZCh0KTp0LnRvRml4ZWQoMSkpKyIgS0IiO3ZhciBuPXQvMTAyNDtpZihuPDEwMjQpcmV0dXJuKG4+PTEwP01hdGgucm91bmQobik6bi50b0ZpeGVkKDEpKSsiIE1CIjt2YXIgaT1uLzEwMjQ7cmV0dXJuKGk+PTEwP01hdGgucm91bmQoaSk6aS50b0ZpeGVkKDEpKSsiIEdCIn1mdW5jdGlvbiBsYyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1EYXRlLnBhcnNlKGUpO3JldHVybiBpc05hTih0KT8iIjpuZXcgRGF0ZSh0KS50b0xvY2FsZVN0cmluZygpfWZ1bmN0aW9uIEh1KCl7aWYoci5maWxlRXhwbG9yZXJDd2QpcmV0dXJuIHIuZmlsZUV4cGxvcmVyQ3dkO2lmKHIuc2VsZWN0ZWRJZCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7aWYoZSYmZS5jd2QpcmV0dXJuIGUuY3dkfXJldHVybiBhbigpfWZ1bmN0aW9uIE90KGUpe2U9ZXx8e307dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXIiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLWN3ZCIpO2lmKHQpe3ZhciBpPWUuY3dkfHxIdSgpO2lmKCFpKXt0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0iZmlsZS1leHBsb3JlciBlbXB0eSI+XHU2Q0ExXHU2NzA5XHU1M0VGXHU2NjNFXHU3OTNBXHU3Njg0XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHUzMDAyPC9kaXY+JztyZXR1cm59ci5maWxlRXhwbG9yZXJDd2Q9aSxyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITAsci5hbGxGaWxlcz1bXSxyLmZpbGVFeHBsb3JlclRydW5jYXRlZD0hMSxyLmZpbGVFeHBsb3JlclRvdGFsPTAsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIiPjxkaXYgY2xhc3M9InRyZWUtbG9hZGluZyIgc3R5bGU9InBhZGRpbmc6MTJweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6MC44MTI1cmVtOyI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+PC9kaXY+JyxuJiYobi50YWdOYW1lPT09IklOUFVUIj9kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09biYmKG4udmFsdWU9aSk6bi50ZXh0Q29udGVudD1pLG4udGl0bGU9aSk7dmFyIGE9Ii9hcGkvZGlyZWN0b3J5P3E9IitlbmNvZGVVUklDb21wb25lbnQoaSkrIiZnaXRTdGF0dXM9dHJ1ZSI7ZmV0Y2goYSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7aWYoIXUub2spdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gbG9hZCBkaXJlY3RvcnkuIik7cmV0dXJuIHUuanNvbigpfSkudGhlbihmdW5jdGlvbih1KXtyLmZpbGVFeHBsb3JlckxvYWRpbmc9ITE7dmFyIHMsbyxsO2lmKEFycmF5LmlzQXJyYXkodSk/KHM9dSxvPSExLGw9dS5sZW5ndGgpOihzPXUmJnUuaXRlbXN8fFtdLG89ISEodSYmdS50cnVuY2F0ZWQpLGw9dSYmdS50b3RhbHx8cy5sZW5ndGgpLCFzfHxzLmxlbmd0aD09PTApe3QuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTdBN0FcdTc2RUVcdTVGNTVcdTYyMTZcdTY1RTBcdTZDRDVcdThCQkZcdTk1RUVcdTMwMDI8L2Rpdj4nO3JldHVybn1yLmFsbEZpbGVzPXMsci5maWxlRXhwbG9yZXJUcnVuY2F0ZWQ9byxyLmZpbGVFeHBsb3JlclRvdGFsPWwsX3UoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ci5maWxlRXhwbG9yZXJMb2FkaW5nPSExLHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIGVtcHR5Ij5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTY4QzBcdTY3RTVcdThERUZcdTVGODRcdTYyMTZcdTY3NDNcdTk2NTBcdTMwMDI8L2Rpdj4nfSl9fWZ1bmN0aW9uIF91KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXIiKTtpZihlKXt2YXIgdD1yLmZpbGVFeHBsb3JlckN3ZHx8IiI7aWYodCl7dmFyIG49ci5maWxlU2VhcmNoUXVlcnksaT1yLmFsbEZpbGVzfHxbXSxhPWk7aWYobil7dmFyIHU9bi50b0xvd2VyQ2FzZSgpO2E9aS5maWx0ZXIoZnVuY3Rpb24obCl7cmV0dXJuIGwubmFtZS50b0xvd2VyQ2FzZSgpLmluZGV4T2YodSkhPT0tMX0pfWlmKGEubGVuZ3RoPT09MCl7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtZXhwbG9yZXIgZW1wdHkiPicrKG4/Ilx1NkNBMVx1NjcwOVx1NjI3RVx1NTIzMFx1NTMzOVx1OTE0RFx1NzY4NFx1NjU4N1x1NEVGNiI6Ilx1N0E3QVx1NzZFRVx1NUY1NSIpKyI8L2Rpdj4iO3JldHVybn12YXIgcz0iIjtpZighbiYmci5maWxlRXhwbG9yZXJUcnVuY2F0ZWQpe3ZhciBvPWkubGVuZ3RoO3M9JzxkaXYgY2xhc3M9InRyZWUtdHJ1bmNhdGVkIiB0aXRsZT0iXHU1NDBFXHU3QUVGXHU2MzA5XHU1QjU3XHU2QkNEXHU1RThGXHU2NzAwXHU1OTFBXHU4RkQ0XHU1NkRFICcrbysnIFx1OTg3OSI+XHU2NjNFXHU3OTNBXHU1MjREICcrbysiIFx1OTg3OSAvIFx1NTE3MSAiK3IuZmlsZUV4cGxvcmVyVG90YWwrIiBcdTk4Nzk8L2Rpdj4ifWUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXRyZWUiIGlkPSJmaWxlLXRyZWUiIGRhdGEtY3dkPSInK3AodCkrJyI+JythLm1hcChmdW5jdGlvbihsKXtyZXR1cm4gTnUobCl9KS5qb2luKCIiKSsiPC9kaXY+IitzLGp1KCl9fX1mdW5jdGlvbiBOdShlLHQpe3Q9dHx8MDt2YXIgbj1wKGUubmFtZSksaT1lLnR5cGU9PT0iZGlyIixhPXF1KGUpLHU9aT8iXHUyNUI4IjoiIixzPWk/IiI6IiBlbXB0eSIsbz1lLmdpdFN0YXR1cyxsPWNjKG8pLGM9IiI7cmV0dXJuIWkmJnR5cGVvZiBlLnNpemU9PSJudW1iZXIiJiYoYz0nPHNwYW4gY2xhc3M9InRyZWUtbWV0YSIgdGl0bGU9Ilx1NTkyN1x1NUMwRlx1RkYxQScrcChQbihlLnNpemUpKSsoZS5tdGltZT9gClx1NEZFRVx1NjUzOVx1NjVGNlx1OTVGNFx1RkYxQWArcChsYyhlLm10aW1lKSk6IiIpKyciPicrcChQbihlLnNpemUpKSsiPC9zcGFuPiIpLCc8ZGl2IGNsYXNzPSJ0cmVlLWl0ZW0iIGRhdGEtcGF0aD0iJytwKGUucGF0aCkrJyIgZGF0YS10eXBlPSInK3AoZS50eXBlKSsnIiBkYXRhLW5hbWU9IicrcChlLm5hbWUpKyciIHRhYmluZGV4PSIwIj48c3BhbiBjbGFzcz0idHJlZS10b2dnbGUnK3MrJyI+Jyt1Kyc8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtaWNvbiI+JythKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRyZWUtbmFtZSI+JytuKyI8L3NwYW4+IitjKyhsPyc8c3BhbiBjbGFzcz0iZ2l0LXN0YXR1cy1iYWRnZSAnK2wuY2xhc3MrJyIgdGl0bGU9IicrbC50aXRsZSsnIj4nK2wudGV4dCsiPC9zcGFuPiI6IiIpKyI8L2Rpdj4ifWZ1bmN0aW9uIGNjKGUpe3JldHVybiBlP2Uuc3RhZ2VkPT09ImFkZGVkIj97dGV4dDoiQSIsY2xhc3M6ImdpdC1hZGRlZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NjVCMFx1NTg5RVx1RkYwOSJ9OmUuc3RhZ2VkPT09Im1vZGlmaWVkIj97dGV4dDoiTSIsY2xhc3M6ImdpdC1tb2RpZmllZCIsdGl0bGU6Ilx1NURGMlx1NjY4Mlx1NUI1OFx1RkYwOFx1NEZFRVx1NjUzOVx1RkYwOSJ9OmUuc3RhZ2VkPT09ImRlbGV0ZWQiP3t0ZXh0OiJEIixjbGFzczoiZ2l0LWRlbGV0ZWQiLHRpdGxlOiJcdTVERjJcdTY2ODJcdTVCNThcdUZGMDhcdTUyMjBcdTk2NjRcdUZGMDkifTplLnN0YWdlZD09PSJyZW5hbWVkIj97dGV4dDoiUiIsY2xhc3M6ImdpdC1yZW5hbWVkIix0aXRsZToiXHU1REYyXHU2NjgyXHU1QjU4XHVGRjA4XHU5MUNEXHU1NDdEXHU1NDBEXHVGRjA5In06ZS51bnN0YWdlZD09PSJtb2RpZmllZCI/e3RleHQ6Ik0iLGNsYXNzOiJnaXQtdW5zdGFnZWQiLHRpdGxlOiJcdTY3MkFcdTY2ODJcdTVCNThcdUZGMDhcdTRGRUVcdTY1MzlcdUZGMDkifTplLnVuc3RhZ2VkPT09ImRlbGV0ZWQiP3t0ZXh0OiJEIixjbGFzczoiZ2l0LXVuc3RhZ2VkLWRlbGV0ZWQiLHRpdGxlOiJcdTY3MkFcdTY2ODJcdTVCNThcdUZGMDhcdTUyMjBcdTk2NjRcdUZGMDkifTplLnVudHJhY2tlZD97dGV4dDoiPyIsY2xhc3M6ImdpdC11bnRyYWNrZWQiLHRpdGxlOiJcdTY3MkFcdThEREZcdThFMkEifTpudWxsOm51bGx9ZnVuY3Rpb24ganUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS10cmVlIik7aWYoZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIudHJlZS1pdGVtW2RhdGEtdHlwZT0nZGlyJ10iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe2RjKGkpfSl9KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW1bZGF0YS10eXBlPSdmaWxlJ10iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe3ZhciBhPWZ1bmN0aW9uKCl7SnIoaS5kYXRhc2V0LnBhdGgpfTtpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhKSxpLmFkZEV2ZW50TGlzdGVuZXIoImRibGNsaWNrIixhKX0pO3ZhciB0PW51bGwsbj0hMTtlLnF1ZXJ5U2VsZWN0b3JBbGwoIi50cmVlLWl0ZW0iKS5mb3JFYWNoKGZ1bmN0aW9uKGkpe2kuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLGZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKSxSdShhLmNsaWVudFgsYS5jbGllbnRZLGkpfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihhKXtuPSExLHQ9c2V0VGltZW91dChmdW5jdGlvbigpe249ITA7dmFyIHU9YS50b3VjaGVzJiZhLnRvdWNoZXNbMF07UnUodT91LmNsaWVudFg6MCx1P3UuY2xpZW50WTowLGkpfSw1MDApfSx7cGFzc2l2ZTohMH0pLGkuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGZ1bmN0aW9uKCl7dCYmKGNsZWFyVGltZW91dCh0KSx0PW51bGwpfSksaS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGZ1bmN0aW9uKCl7dCYmKGNsZWFyVGltZW91dCh0KSx0PW51bGwpfSl9KX19ZnVuY3Rpb24gZGMoZSl7dmFyIHQ9ZS5kYXRhc2V0LnBhdGgsbj1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLXRvZ2dsZSIpLGk9ZS5uZXh0RWxlbWVudFNpYmxpbmc7aWYoaSYmaS5jbGFzc0xpc3QuY29udGFpbnMoInRyZWUtY2hpbGRyZW4iKSl7dmFyIGE9aS5jbGFzc0xpc3QuY29udGFpbnMoIm9wZW4iKTtpLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iKSxuJiZuLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iLCFhKTt2YXIgdT1lLnF1ZXJ5U2VsZWN0b3IoIi50cmVlLWljb24iKTt1JiYodS50ZXh0Q29udGVudD1hPyJcdXsxRjRDMX0iOiJcdXsxRjRDMn0iKTtyZXR1cm59biYmbi5jbGFzc0xpc3QuYWRkKCJvcGVuIik7dmFyIHM9ZS5xdWVyeVNlbGVjdG9yKCIudHJlZS1pY29uIik7cyYmKHMudGV4dENvbnRlbnQ9Ilx1ezFGNEMyfSIpO3ZhciBvPSIvYXBpL2RpcmVjdG9yeT9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQpKyImZ2l0U3RhdHVzPXRydWUiO2ZldGNoKG8se2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBsLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obCl7dmFyIGM7QXJyYXkuaXNBcnJheShsKT9jPWw6Yz1sJiZsLml0ZW1zfHxbXTt2YXIgZj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtmLmNsYXNzTmFtZT0idHJlZS1jaGlsZHJlbiBvcGVuIiwhY3x8Yy5sZW5ndGg9PT0wP2YuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJ0cmVlLWl0ZW0iIHN0eWxlPSJjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6ZGVmYXVsdDsiPjxzcGFuIGNsYXNzPSJ0cmVlLXRvZ2dsZSBlbXB0eSI+XHUyNUI4PC9zcGFuPjxzcGFuIGNsYXNzPSJ0cmVlLW5hbWUiPlx1RkYwOFx1N0E3QVx1NzZFRVx1NUY1NVx1RkYwOTwvc3Bhbj48L2Rpdj4nOmYuaW5uZXJIVE1MPWMubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBOdShkKX0pLmpvaW4oIiIpLGUucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZixlLm5leHRTaWJsaW5nKSxqdSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBmYygpe3ZhciBlPUh1KCk7aWYoZSl7dmFyIHQ9ZS5yZXBsYWNlKC9cLyskLywiIikucmVwbGFjZSgvXC9bXlwvXSskLywiIik7dHx8KHQ9Ii8iKSx0IT09ZSYmT3Qoe2N3ZDp0fSl9fWZ1bmN0aW9uICRpKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZighdClyZXR1cm4hMTt2YXIgbj10LnZhbHVlfHwiIixpPW4mJiFuLmVuZHNXaXRoKCIgIikmJiFuLmVuZHNXaXRoKGAKYCk/IiAiOiIiO3QudmFsdWU9bitpK2UsdC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiLHtidWJibGVzOiEwfSkpO3RyeXt0LmZvY3VzKCksdC5zZXRTZWxlY3Rpb25SYW5nZSh0LnZhbHVlLmxlbmd0aCx0LnZhbHVlLmxlbmd0aCl9Y2F0Y2h7fXJldHVybiEwfWZ1bmN0aW9uIEtyKGUpe2lmKG5hdmlnYXRvci5jbGlwYm9hcmQmJm5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KXJldHVybiBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuITB9KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiB0KCl9KTtyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHQoKSk7ZnVuY3Rpb24gdCgpe3RyeXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZXh0YXJlYSIpO24udmFsdWU9ZSxuLnN0eWxlLnBvc2l0aW9uPSJmaXhlZCIsbi5zdHlsZS5sZWZ0PSItOTk5OXB4Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLG4uc2VsZWN0KCk7dmFyIGk9ZG9jdW1lbnQuZXhlY0NvbW1hbmQoImNvcHkiKTtyZXR1cm4gZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChuKSxpfWNhdGNoe3JldHVybiExfX19ZnVuY3Rpb24gQnQoZSl7aWYodHlwZW9mIHdpbmRvdy5zaG93VG9hc3Q9PSJmdW5jdGlvbiIpe3dpbmRvdy5zaG93VG9hc3QoZSk7cmV0dXJufXZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJ3YW5kLW1pbmktdG9hc3QiLHQudGV4dENvbnRlbnQ9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5hZGQoInNob3ciKX0sMTApLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmNsYXNzTGlzdC5yZW1vdmUoInNob3ciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dC5yZW1vdmUoKX0sMjIwKX0sMTYwMCl9ZnVuY3Rpb24gcW4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1jb250ZXh0LW1lbnUiKTtlJiZlLnJlbW92ZSgpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImNsaWNrIixxbiwhMCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixxbiwhMCl9ZnVuY3Rpb24gUnUoZSx0LG4pe3FuKCk7dmFyIGk9bi5kYXRhc2V0LnBhdGh8fCIiLGE9bi5kYXRhc2V0LnR5cGV8fCJmaWxlIix1PXIuZmlsZUV4cGxvcmVyQ3dkfHwiIixzPWk7dSYmaS5pbmRleE9mKHUpPT09MCYmKHM9aS5zbGljZSh1Lmxlbmd0aCkucmVwbGFjZSgvXlwvKy8sIiIpfHwiLiIpO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uaWQ9ImZpbGUtY29udGV4dC1tZW51IixvLmNsYXNzTmFtZT0iZmlsZS1jb250ZXh0LW1lbnUiO3ZhciBsPVtdO2E9PT0iZmlsZSI/bC5wdXNoKHtsYWJlbDoiXHU2MjUzXHU1RjAwXHU5ODg0XHU4OUM4IixpY29uOiJcdXsxRjQ0MX0iLHJ1bjpmdW5jdGlvbigpe0pyKGkpfX0pOmwucHVzaCh7bGFiZWw6Ilx1OEZEQlx1NTE2NVx1NkI2NFx1NzZFRVx1NUY1NSIsaWNvbjoiXHV7MUY0QzJ9IixydW46ZnVuY3Rpb24oKXtPdCh7Y3dkOml9KX19KSxsLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTVCOENcdTY1NzRcdThERUZcdTVGODQiLGljb246Ilx1ezFGNENCfSIscnVuOmZ1bmN0aW9uKCl7S3IoaSkudGhlbihmdW5jdGlvbigpe0J0KCJcdTVERjJcdTU5MERcdTUyMzZcdThERUZcdTVGODQiKX0pfX0pLHMmJnMhPT1pJiZsLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTc2RjhcdTVCRjlcdThERUZcdTVGODQiLGljb246Ilx1ezFGNENCfSIscnVuOmZ1bmN0aW9uKCl7S3IocykudGhlbihmdW5jdGlvbigpe0J0KCJcdTVERjJcdTU5MERcdTUyMzZcdTc2RjhcdTVCRjlcdThERUZcdTVGODQiKX0pfX0pLGwucHVzaCh7bGFiZWw6Ilx1N0M5OFx1OEQzNFx1OERFRlx1NUY4NFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIsaWNvbjoiXHUyNzBGXHVGRTBGIixydW46ZnVuY3Rpb24oKXskaShpKSYmQnQoIlx1NURGMlx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIpfX0pLGE9PT0iZmlsZSImJmwucHVzaCh7bGFiZWw6Ilx1NEUwQlx1OEY3RFx1NjU4N1x1NEVGNiIsaWNvbjoiXHUyQjA3IixydW46ZnVuY3Rpb24oKXt2YXIgZz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7Zy5ocmVmPSIvYXBpL2ZpbGUtcmF3P2Rvd25sb2FkPTEmcGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudChpKSxnLnJlbD0ibm9vcGVuZXIiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZyksZy5jbGljaygpLGcucmVtb3ZlKCl9fSksby5pbm5lckhUTUw9bC5tYXAoZnVuY3Rpb24oZyxtKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJmaWxlLWNvbnRleHQtbWVudS1pdGVtIiBkYXRhLWlkeD0iJyttKyciPjxzcGFuIGNsYXNzPSJjdHgtaWNvbiI+JytnLmljb24rJzwvc3Bhbj48c3BhbiBjbGFzcz0iY3R4LWxhYmVsIj4nK3AoZy5sYWJlbCkrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChvKTt2YXIgYz13aW5kb3cuaW5uZXJXaWR0aCxmPXdpbmRvdy5pbm5lckhlaWdodCxkPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksdj1NYXRoLm1pbihlLGMtZC53aWR0aC04KSxoPU1hdGgubWluKHQsZi1kLmhlaWdodC04KTtvLnN0eWxlLmxlZnQ9TWF0aC5tYXgoOCx2KSsicHgiLG8uc3R5bGUudG9wPU1hdGgubWF4KDgsaCkrInB4IixvLnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWxlLWNvbnRleHQtbWVudS1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihnKXtnLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihtKXttLnN0b3BQcm9wYWdhdGlvbigpO3ZhciB5PXBhcnNlSW50KGcuZGF0YXNldC5pZHgsMTApO3FuKCksbFt5XSYmbFt5XS5ydW4oKX0pfSksc2V0VGltZW91dChmdW5jdGlvbigpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixxbiwhMCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixxbiwhMCl9LDApfXZhciBQPW51bGw7ZnVuY3Rpb24gSnIoZSl7dmFyIHQ9UCYmUC5vdmVybGF5O2lmKHQpe1AucGF0aD1lLFAuZWRpdGluZz0hMSxQLmRpcnR5PSExO3ZhciBzPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10aXRsZSIpO3MmJihzLmlubmVySFRNTD0nPHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1pY29uIj5cdXsxRjRDNH08L3NwYW4+PGRpdiBjbGFzcz0iZmlsZS1wcmV2aWV3LW5hbWUtYmxvY2siPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLXJvdyI+PHNwYW4gY2xhc3M9ImZpbGUtcHJldmlldy1maWxlbmFtZSI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9zcGFuPjwvZGl2PjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctcGF0aCIgdGl0bGU9IiI+PC9zcGFuPjwvZGl2PicpO3ZhciBvPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10b29sYmFyIik7byYmKG8uaW5uZXJIVE1MPSIiKTt2YXIgbD10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctcGF0aCIpO2wmJihsLnRleHRDb250ZW50PSIiLGwudGl0bGU9IiIpO3ZhciBjPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7YyYmKGMuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHUyMDI2PC9kaXY+Jyl9ZWxzZXt0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJmaWxlLXByZXZpZXctb3ZlcmxheSIsdC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1tb2RhbCIgdGFiaW5kZXg9Ii0xIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctaGVhZGVyIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctdGl0bGUiPjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctaWNvbiI+XHV7MUY0QzR9PC9zcGFuPjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1uYW1lLWJsb2NrIj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbmFtZS1yb3ciPjxzcGFuIGNsYXNzPSJmaWxlLXByZXZpZXctZmlsZW5hbWUiPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0iZmlsZS1wcmV2aWV3LXBhdGgiIHRpdGxlPSIiPjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctdG9vbGJhciI+PC9kaXY+PGJ1dHRvbiBjbGFzcz0iZmlsZS1wcmV2aWV3LWNsb3NlIiB0aXRsZT0iXHU1MTczXHU5NUVEIChFc2MpIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPicrTWUoIngiLHtzaXplOjE4fSkrJzwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtcHJldmlldy1ib2R5Ij48ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctbG9hZGluZyI+XHU1MkEwXHU4RjdEXHU5ODg0XHU4OUM4XHUyMDI2PC9kaXY+PC9kaXY+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHQpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1jbG9zZSIpLGk9ZnVuY3Rpb24oKXtpZihQJiZQLmRpcnR5JiZ0eXBlb2Ygc249PSJmdW5jdGlvbiIpe3NuKHt0eXBlOiJ3YXJuaW5nIix0aXRsZToiXHU2NTNFXHU1RjAzXHU2NzJBXHU0RkREXHU1QjU4XHU3Njg0XHU0RkVFXHU2NTM5XHVGRjFGIixtZXNzYWdlOiJcdTVGNTNcdTUyNERcdTY1ODdcdTRFRjZcdTY3MDlcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTY1MzlcdTUyQThcdUZGMENcdTUxNzNcdTk1RURcdTU0MEVcdTRGMUFcdTRFMjJcdTU5MzFcdTMwMDIiLGJ1dHRvbnM6W3tsYWJlbDoiXHU3RUU3XHU3RUVEXHU3RjE2XHU4RjkxIix2YWx1ZTohMSxraW5kOiJnaG9zdCJ9LHtsYWJlbDoiXHU2NTNFXHU1RjAzXHU0RkVFXHU2NTM5Iix2YWx1ZTohMCxraW5kOiJkYW5nZXIiLGF1dG9mb2N1czohMH1dLGNhbmNlbFZhbHVlOiExfSkudGhlbihmdW5jdGlvbihkKXtkJiZhKCl9KTtyZXR1cm59YSgpfSxhPWZ1bmN0aW9uKCl7dC5yZW1vdmUoKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIix1KSxQPW51bGx9O24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGkpLHQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGQpe2QudGFyZ2V0PT09dCYmaSgpfSk7dmFyIHU9ZnVuY3Rpb24oZCl7aWYoKGQua2V5PT09InMifHxkLmtleT09PSJTIikmJihkLmN0cmxLZXl8fGQubWV0YUtleSkmJlAmJlAuZWRpdGluZyl7ZC5wcmV2ZW50RGVmYXVsdCgpLEp1KCk7cmV0dXJufWlmKGQua2V5PT09IkVzY2FwZSIpe2lmKFAmJlAuZWRpdGluZyl7ZC5wcmV2ZW50RGVmYXVsdCgpLEt1KCk7cmV0dXJufWkoKTtyZXR1cm59UCYmKGQudGFyZ2V0JiYoZC50YXJnZXQudGFnTmFtZT09PSJJTlBVVCJ8fGQudGFyZ2V0LnRhZ05hbWU9PT0iVEVYVEFSRUEiKXx8UC5lZGl0aW5nfHwoZC5rZXk9PT0iQXJyb3dMZWZ0Ij8oZC5wcmV2ZW50RGVmYXVsdCgpLFd1KC0xKSk6ZC5rZXk9PT0iQXJyb3dSaWdodCImJihkLnByZXZlbnREZWZhdWx0KCksV3UoMSkpKSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLHUpLFA9e292ZXJsYXk6dCxjbG9zZTppLHBhdGg6ZSxkYXRhOm51bGwsZWRpdGluZzohMSxkaXJ0eTohMX19dmFyIGY9dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXBhdGgiKTtmJiYoZi50ZXh0Q29udGVudD1lLGYudGl0bGU9ZSksZmV0Y2goIi9hcGkvZmlsZS1wcmV2aWV3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQoZSkse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGQpe3JldHVybiBkLmpzb24oKS50aGVuKGZ1bmN0aW9uKHYpe3JldHVybntvazpkLm9rLHN0YXR1czpkLnN0YXR1cyxkYXRhOnZ9fSl9KS50aGVuKGZ1bmN0aW9uKGQpe3ZhciB2PXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7aWYoIWQub2t8fGQuZGF0YSYmZC5kYXRhLmVycm9yKXt2YXIgaD1kLmRhdGEmJmQuZGF0YS5lcnJvcnx8Ilx1NTJBMFx1OEY3RFx1NTkzMVx1OEQyNSI7ZC5zdGF0dXM9PT00MTMmJmQuZGF0YSYmZC5kYXRhLnNpemUmJihoKz0iXHVGRjA4XHU2NTg3XHU0RUY2XHU1OTI3XHU1QzBGXHVGRjFBIitQbihkLmRhdGEuc2l6ZSkrIlx1RkYwOSIpLHYuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctZXJyb3IiPjxzcGFuIGNsYXNzPSJwcmV2aWV3LWVycm9yLWljb24iPlx1MjZBMDwvc3Bhbj48c3Bhbj4nK3AoaCkrIjwvc3Bhbj48L2Rpdj4iLGQuc3RhdHVzPT09NDEzJiZYaSh0LHtraW5kOiJiaW5hcnkiLHBhdGg6ZSxuYW1lOmUuc3BsaXQoIi8iKS5wb3AoKXx8ZSxleHQ6IiIsc2l6ZTpkLmRhdGEmJmQuZGF0YS5zaXplfHwwfSk7cmV0dXJufVAuZGF0YT1kLmRhdGEsenUodCxkLmRhdGEpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgZD10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO2QuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmaWxlLXByZXZpZXctZXJyb3IiPjxzcGFuIGNsYXNzPSJwcmV2aWV3LWVycm9yLWljb24iPlx1MjZBMDwvc3Bhbj48c3Bhbj5cdTUyQTBcdThGN0RcdTk4ODRcdTg5QzhcdTU5MzFcdThEMjU8L3NwYW4+PC9kaXY+J30pfWZ1bmN0aW9uIFd1KGUpe2lmKFApe3ZhciB0PShyLmFsbEZpbGVzfHxbXSkuZmlsdGVyKGZ1bmN0aW9uKG8pe3JldHVybiBvLnR5cGU9PT0iZmlsZSJ9KTtpZih0Lmxlbmd0aCl7Zm9yKHZhciBuPVAucGF0aCxpPS0xLGE9MDthPHQubGVuZ3RoO2ErKylpZih0W2FdLnBhdGg9PT1uKXtpPWE7YnJlYWt9aWYoIShpPDApKXt2YXIgdT0oaStlK3QubGVuZ3RoKSV0Lmxlbmd0aCxzPXRbdV0ucGF0aDtzJiZzIT09biYmSnIocyl9fX19ZnVuY3Rpb24genUoZSx0KXt2YXIgbj1lLnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctZmlsZW5hbWUiKTtuJiYobi50ZXh0Q29udGVudD10Lm5hbWUpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1pY29uIik7aSYmKGkudGV4dENvbnRlbnQ9cXUoe25hbWU6dC5uYW1lLHR5cGU6ImZpbGUifSkpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy10aXRsZSIpLHU9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWxhbmciKTt1JiZ1LnJlbW92ZSgpO3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtzLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LWxhbmciO3ZhciBvPXtpbWFnZToiXHU1NkZFXHU3MjQ3IixwZGY6IlBERiIsdmlkZW86Ilx1ODlDNlx1OTg5MSIsYXVkaW86Ilx1OTdGM1x1OTg5MSIsYmluYXJ5OiJcdTRFOENcdThGREJcdTUyMzYifTt0LmtpbmQ9PT0idGV4dCI/cy50ZXh0Q29udGVudD10Lmxhbmd8fCh0LmV4dHx8IiIpLnJlcGxhY2UoIi4iLCIiKXx8InRleHQiOnMudGV4dENvbnRlbnQ9b1t0LmtpbmRdfHwodC5leHR8fCIiKS5yZXBsYWNlKCIuIiwiIil8fHQua2luZCxhJiZhLmFwcGVuZENoaWxkKHMpLFhpKGUsdCk7dmFyIGw9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWJvZHkiKTtsLmlubmVySFRNTD0iIixsLmNsYXNzTGlzdC5yZW1vdmUoImtpbmQtdGV4dCIsImtpbmQtaW1hZ2UiLCJraW5kLXBkZiIsImtpbmQtdmlkZW8iLCJraW5kLWF1ZGlvIiwia2luZC1iaW5hcnkiKSxsLmNsYXNzTGlzdC5hZGQoImtpbmQtIisodC5raW5kfHwidGV4dCIpKSx0LmtpbmQ9PT0iaW1hZ2UiP3ZjKGwsdCk6dC5raW5kPT09InBkZiI/bWMobCx0KTp0LmtpbmQ9PT0idmlkZW8iP2djKGwsdCk6dC5raW5kPT09ImF1ZGlvIj9oYyhsLHQpOnQua2luZD09PSJiaW5hcnkiP3ljKGwsdCk6dC5sYW5nPT09Im1hcmtkb3duInx8L1wuKG1kfG1hcmtkb3dufG1keCkkL2kudGVzdCh0Lm5hbWV8fCIiKT9sLmlubmVySFRNTD0nPGRpdiBjbGFzcz0ibWFya2Rvd24tcHJldmlldyI+Jyt3Yyh0LmNvbnRlbnR8fCIiKSsiPC9kaXY+IjpwYyhsLHQpfWZ1bmN0aW9uIHBjKGUsdCl7dmFyIG49WXUodC5jb250ZW50fHwiIix0LmxhbmcpLGk9bi5zcGxpdChgCmApLGE9aS5tYXAoZnVuY3Rpb24odSxzKXtyZXR1cm4gcysxfSk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImNvZGUtcHJldmlldy13cmFwcGVyIj48ZGl2IGNsYXNzPSJjb2RlLXByZXZpZXctbGluZXMiPicrYS5qb2luKGAKYCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvZGUtcHJldmlldy1jb250ZW50Ij48cHJlPicraS5qb2luKGAKYCkrIjwvcHJlPjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gdmMoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQucGF0aCk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImltYWdlLXByZXZpZXctd3JhcHBlciI+PGltZyBjbGFzcz0iaW1hZ2UtcHJldmlldy1pbWciIHNyYz0iJytuKyciIGFsdD0iJytwKHQubmFtZSkrJyIgLz48L2Rpdj4nO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmltYWdlLXByZXZpZXctaW1nIik7aWYoaSl7dmFyIGE9ITE7aS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXthPSFhLGkuY2xhc3NMaXN0LnRvZ2dsZSgiem9vbWVkIixhKX0pfX1mdW5jdGlvbiBtYyhlLHQpe3ZhciBuPSIvYXBpL2ZpbGUtcmF3P3BhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGlmcmFtZSBjbGFzcz0icGRmLXByZXZpZXctZnJhbWUiIHNyYz0iJytuKyciIHRpdGxlPSInK3AodC5uYW1lKSsnIj48L2lmcmFtZT4nfWZ1bmN0aW9uIGdjKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LXdyYXBwZXIiPjx2aWRlbyBjbGFzcz0ibWVkaWEtcHJldmlldy12aWRlbyIgY29udHJvbHMgcHJlbG9hZD0ibWV0YWRhdGEiIHNyYz0iJytuKyciPlx1NjBBOFx1NzY4NFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUwRFx1NjUyRlx1NjMwMSB2aWRlbyBcdTY4MDdcdTdCN0VcdTMwMDI8L3ZpZGVvPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctbWV0YSI+JytwKFBuKHQuc2l6ZSkpKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGhjKGUsdCl7dmFyIG49Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0LnBhdGgpO2UuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtZWRpYS1wcmV2aWV3LXdyYXBwZXIgYXVkaW8iPjxkaXYgY2xhc3M9Im1lZGlhLXByZXZpZXctaWNvbiI+XHV7MUYzQjV9PC9kaXY+PGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy1uYW1lIj4nK3AodC5uYW1lKSsnPC9kaXY+PGF1ZGlvIGNsYXNzPSJtZWRpYS1wcmV2aWV3LWF1ZGlvIiBjb250cm9scyBwcmVsb2FkPSJtZXRhZGF0YSIgc3JjPSInK24rJyI+XHU2MEE4XHU3Njg0XHU2RDRGXHU4OUM4XHU1NjY4XHU0RTBEXHU2NTJGXHU2MzAxIGF1ZGlvIFx1NjgwN1x1N0I3RVx1MzAwMjwvYXVkaW8+PGRpdiBjbGFzcz0ibWVkaWEtcHJldmlldy1tZXRhIj4nK3AoUG4odC5zaXplKSkrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24geWMoZSx0KXt2YXIgbj0iL2FwaS9maWxlLXJhdz9kb3dubG9hZD0xJnBhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKTtlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctY2FyZCI+PGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctaWNvbiI+XHV7MUY0RTZ9PC9kaXY+PGRpdiBjbGFzcz0iYmluYXJ5LXByZXZpZXctbmFtZSI+JytwKHQubmFtZSkrJzwvZGl2PjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LW1ldGEiPjxzcGFuPicrcCgodC5leHR8fCIiKS5yZXBsYWNlKC9eXC4vLCIiKXx8Ilx1NjcyQVx1NzdFNVx1NjgzQ1x1NUYwRiIpKyI8L3NwYW4+PHNwYW4+XHhCNzwvc3Bhbj48c3Bhbj4iK3AoUG4odC5zaXplKSkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJiaW5hcnktcHJldmlldy1wYXRoIiB0aXRsZT0iJytwKHQucGF0aCkrJyI+JytwKHQucGF0aCkrJzwvZGl2PjxkaXYgY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWFjdGlvbnMiPjxhIGNsYXNzPSJiaW5hcnktcHJldmlldy1idG4iIGhyZWY9IicrbisnIiBkb3dubG9hZD0iJytwKHQubmFtZSkrJyI+XHU0RTBCXHU4RjdEXHU2NTg3XHU0RUY2PC9hPjxidXR0b24gY2xhc3M9ImJpbmFyeS1wcmV2aWV3LWJ0biIgdHlwZT0iYnV0dG9uIiBkYXRhLWFjdGlvbj0idmlldy1jYXQiPlx1NTcyOFx1N0VDOFx1N0FFRlx1NEUyRFx1NjdFNVx1NzcwQjwvYnV0dG9uPjwvZGl2PjwvZGl2Pic7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1hY3Rpb249InZpZXctY2F0Il0nKTtpJiZpLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpeyRpKCdjYXQgLS0gIicrdC5wYXRoKyciJykmJkJ0KCJcdTU0N0RcdTRFRTRcdTVERjJcdTdDOThcdThEMzRcdTUyMzBcdThGOTNcdTUxNjVcdTY4NDYiKX0pfWZ1bmN0aW9uIFhpKGUsdCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXRvb2xiYXIiKTtpZihuKXtpZihuLmlubmVySFRNTD0iIixuLmNsYXNzTGlzdC5yZW1vdmUoImVkaXRpbmciKSxQJiZQLmVkaXRpbmcpe24uY2xhc3NMaXN0LmFkZCgiZWRpdGluZyIpLG9yKGUsdCk7cmV0dXJufXZhciBpPVtdO3Qua2luZD09PSJ0ZXh0IiYmaS5wdXNoKHtsYWJlbDoiXHU3RjE2XHU4RjkxXHU2NTg3XHU0RUY2IChFKSIsaWNvbjpNZSgiZWRpdCIpLHByaW1hcnk6ITAsYWN0aW9uOmZ1bmN0aW9uKCl7YmMoKX19KSxpLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdThERUZcdTVGODQiLGljb246TWUoImNsaXBib2FyZCIpLGFjdGlvbjpmdW5jdGlvbigpe0tyKHQucGF0aCkudGhlbihmdW5jdGlvbigpe0J0KCJcdTVERjJcdTU5MERcdTUyMzZcdThERUZcdTVGODQiKX0pfX0pLGkucHVzaCh7bGFiZWw6Ilx1N0M5OFx1OEQzNFx1NTIzMFx1OEY5M1x1NTE2NVx1Njg0NiIsaWNvbjpNZSgic2VuZC10by1pbnB1dCIpLGFjdGlvbjpmdW5jdGlvbigpeyRpKHQucGF0aCkmJkJ0KCJcdTVERjJcdTdDOThcdThEMzRcdTUyMzBcdThGOTNcdTUxNjVcdTY4NDYiKX19KSxpLnB1c2goe2xhYmVsOiJcdTRFMEJcdThGN0QiLGljb246TWUoImRvd25sb2FkIiksYWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2EuaHJlZj0iL2FwaS9maWxlLXJhdz9kb3dubG9hZD0xJnBhdGg9IitlbmNvZGVVUklDb21wb25lbnQodC5wYXRoKSxhLmRvd25sb2FkPXQubmFtZXx8IiIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKSxhLmNsaWNrKCksYS5yZW1vdmUoKX19KSx0LmtpbmQ9PT0idGV4dCImJihpLnB1c2goe2xhYmVsOiJcdTU5MERcdTUyMzZcdTUxNjhcdTkwRThcdTUxODVcdTVCQjkiLGljb246TWUoImNvcHkiKSxhY3Rpb246ZnVuY3Rpb24oKXtLcih0LmNvbnRlbnR8fCIiKS50aGVuKGZ1bmN0aW9uKCl7QnQoIlx1NURGMlx1NTkwRFx1NTIzNlx1NTE4NVx1NUJCOSIpfSl9fSksaS5wdXNoKHtsYWJlbDoiXHU1MjA3XHU2MzYyXHU4MUVBXHU1MkE4XHU2MzYyXHU4ODRDIixpY29uOk1lKCJ3cmFwLXRleHQiKSx0b2dnbGVDbGFzczoidG9vbGJhci1hY3RpdmUiLGdldEluaXRpYWw6ZnVuY3Rpb24oKXt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIi5jb2RlLXByZXZpZXctY29udGVudCBwcmUiKTtyZXR1cm4gYSYmYS5jbGFzc0xpc3QuY29udGFpbnMoIndyYXAiKX0sYWN0aW9uOmZ1bmN0aW9uKGEpe3ZhciB1PWUucXVlcnlTZWxlY3RvcigiLmNvZGUtcHJldmlldy1jb250ZW50IHByZSIpO3UmJih1LmNsYXNzTGlzdC50b2dnbGUoIndyYXAiKSxhLmNsYXNzTGlzdC50b2dnbGUoInRvb2xiYXItYWN0aXZlIix1LmNsYXNzTGlzdC5jb250YWlucygid3JhcCIpKSl9fSksaS5wdXNoKHtraW5kOiJncm91cCIsY2xhc3NOYW1lOiJ0b29sYmFyLWdyb3VwLWZvbnRzaXplIixjaGlsZHJlbjpbe2xhYmVsOiJcdTdGMjlcdTVDMEZcdTVCNTdcdTUzRjciLGljb246TWUoIm1pbnVzIiksYWN0aW9uOmZ1bmN0aW9uKCl7R3UoZSwtMSl9fSx7a2luZDoibGFiZWwiLGljb246TWUoInR5cGUiKSxsYWJlbDoiXHU1QjU3XHU1M0Y3In0se2xhYmVsOiJcdTY1M0VcdTU5MjdcdTVCNTdcdTUzRjciLGljb246TWUoInBsdXMiKSxhY3Rpb246ZnVuY3Rpb24oKXtHdShlLDEpfX1dfSkpLFV1KG4saSxlKX19ZnVuY3Rpb24gVXUoZSx0LG4pe3QuZm9yRWFjaChmdW5jdGlvbihpKXtpZihpLmtpbmQ9PT0iZ3JvdXAiKXt2YXIgYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTthLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXAiKyhpLmNsYXNzTmFtZT8iICIraS5jbGFzc05hbWU6IiIpLGkuY2hpbGRyZW4uZm9yRWFjaChmdW5jdGlvbih1KXtpZih1LmtpbmQ9PT0ibGFiZWwiKXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7cy5jbGFzc05hbWU9ImZpbGUtcHJldmlldy10b29sYmFyLWdyb3VwbGFiZWwiLHMudGl0bGU9dS5sYWJlbHx8IiIscy5pbm5lckhUTUw9dS5pY29ufHwiIixhLmFwcGVuZENoaWxkKHMpO3JldHVybn1hLmFwcGVuZENoaWxkKFZ1KHUpKX0pLGUuYXBwZW5kQ2hpbGQoYSk7cmV0dXJufWUuYXBwZW5kQ2hpbGQoVnUoaSkpfSl9ZnVuY3Rpb24gVnUoZSl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnV0dG9uIik7cmV0dXJuIHQudHlwZT0iYnV0dG9uIix0LmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuIixlLnByaW1hcnkmJnQuY2xhc3NMaXN0LmFkZCgicHJpbWFyeSIpLGUuZGFuZ2VyJiZ0LmNsYXNzTGlzdC5hZGQoImRhbmdlciIpLHQudGl0bGU9ZS5sYWJlbCx0LnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsZS5sYWJlbCksdC5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJ0b29sYmFyLWljb24iPicrKGUuaWNvbnx8IiIpKyI8L3NwYW4+IisoZS50ZXh0Pyc8c3BhbiBjbGFzcz0idG9vbGJhci10ZXh0Ij4nK3AoZS50ZXh0KSsiPC9zcGFuPiI6IiIpLGUuZ2V0SW5pdGlhbCYmZS5nZXRJbml0aWFsKCkmJnQuY2xhc3NMaXN0LmFkZCgidG9vbGJhci1hY3RpdmUiKSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihuKXtuLnN0b3BQcm9wYWdhdGlvbigpLHR5cGVvZiBlLmFjdGlvbj09ImZ1bmN0aW9uIiYmZS5hY3Rpb24odCl9KSx0fWZ1bmN0aW9uIG9yKGUsdCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LXRvb2xiYXIiKTtpZihuKXtuLmlubmVySFRNTD0iIjt2YXIgaT1QJiZQLnNhdmluZyxhPVt7bGFiZWw6Ilx1NEZERFx1NUI1OCAoQ3RybCtTKSIsaWNvbjpNZSgic2F2ZSIpLHRleHQ6Ilx1NEZERFx1NUI1OCIscHJpbWFyeTohMCxhY3Rpb246ZnVuY3Rpb24oKXtKdSgpfX0se2xhYmVsOiJcdTY0QTRcdTk1MDBcdTY1MzlcdTUyQTgiLGljb246TWUoInJvdGF0ZS1jY3ciKSxhY3Rpb246ZnVuY3Rpb24oKXtFYygpfX0se2xhYmVsOiJcdTkwMDBcdTUxRkFcdTdGMTZcdThGOTEgKEVzYykiLGljb246TWUoIngiKSxhY3Rpb246ZnVuY3Rpb24oKXtLdSgpfX1dO1V1KG4sYSxlKSxpJiZuLnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWxlLXByZXZpZXctdG9vbGJhci1idG4iKS5mb3JFYWNoKGZ1bmN0aW9uKHUpe3UuZGlzYWJsZWQ9ITB9KX19ZnVuY3Rpb24gYmMoKXtpZighKCFQfHwhUC5kYXRhKSl7dmFyIGU9UC5kYXRhO2lmKGUua2luZD09PSJ0ZXh0Iil7UC5lZGl0aW5nPSEwLFAuZGlydHk9ITEsUC5vcmlnaW5hbENvbnRlbnQ9ZS5jb250ZW50fHwiIjt2YXIgdD1QLm92ZXJsYXksbj10LnF1ZXJ5U2VsZWN0b3IoIi5maWxlLXByZXZpZXctYm9keSIpO2lmKG4pe24uY2xhc3NMaXN0LmFkZCgiZWRpdGluZyIpLG4uaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJjb2RlLWVkaXRvci13cmFwcGVyIj48dGV4dGFyZWEgY2xhc3M9ImNvZGUtZWRpdG9yLXRleHRhcmVhIiBzcGVsbGNoZWNrPSJmYWxzZSIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHdyYXA9Im9mZiI+PC90ZXh0YXJlYT48L2Rpdj4nO3ZhciBpPW4ucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yLXRleHRhcmVhIik7aSYmKGkudmFsdWU9ZS5jb250ZW50fHwiIixpLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3ZhciBhPWkudmFsdWUhPT0oUC5vcmlnaW5hbENvbnRlbnR8fCIiKTthIT09UC5kaXJ0eSYmKFAuZGlydHk9YSxscigpKX0pLGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYSl7aWYoYS5rZXk9PT0iVGFiIil7YS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB1PWkuc2VsZWN0aW9uU3RhcnQscz1pLnNlbGVjdGlvbkVuZCxvPSIgICI7aS52YWx1ZT1pLnZhbHVlLnNsaWNlKDAsdSkrbytpLnZhbHVlLnNsaWNlKHMpLGkuc2VsZWN0aW9uU3RhcnQ9aS5zZWxlY3Rpb25FbmQ9dStvLmxlbmd0aCxpLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIpKX19KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5mb2N1cygpLGkuc2V0U2VsZWN0aW9uUmFuZ2UoMCwwKSxpLnNjcm9sbFRvcD0wfSwzMCkpLFhpKHQsZSksbHIoKX19fX1mdW5jdGlvbiBLdSgpe2lmKCEoIVB8fCFQLmVkaXRpbmcpKXt2YXIgZT1mdW5jdGlvbigpe1AuZWRpdGluZz0hMSxQLmRpcnR5PSExO3ZhciB0PVAub3ZlcmxheSxuPXQucXVlcnlTZWxlY3RvcigiLmZpbGUtcHJldmlldy1ib2R5Iik7biYmbi5jbGFzc0xpc3QucmVtb3ZlKCJlZGl0aW5nIiksenUodCxQLmRhdGEpLGxyKCl9O2lmKFAuZGlydHkmJnR5cGVvZiBzbj09ImZ1bmN0aW9uIil7c24oe3R5cGU6Indhcm5pbmciLHRpdGxlOiJcdTY1M0VcdTVGMDNcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTRGRUVcdTY1MzlcdUZGMUYiLG1lc3NhZ2U6Ilx1NUY1M1x1NTI0RFx1NjU4N1x1NEVGNlx1NjcwOVx1NjcyQVx1NEZERFx1NUI1OFx1NzY4NFx1NjUzOVx1NTJBOFx1RkYwQ1x1OTAwMFx1NTFGQVx1N0YxNlx1OEY5MVx1NTQwRVx1NEYxQVx1NEUyMlx1NTkzMVx1MzAwMiIsYnV0dG9uczpbe2xhYmVsOiJcdTdFRTdcdTdFRURcdTdGMTZcdThGOTEiLHZhbHVlOiExLGtpbmQ6Imdob3N0In0se2xhYmVsOiJcdTY1M0VcdTVGMDNcdTRGRUVcdTY1MzkiLHZhbHVlOiEwLGtpbmQ6ImRhbmdlciIsYXV0b2ZvY3VzOiEwfV0sY2FuY2VsVmFsdWU6ITF9KS50aGVuKGZ1bmN0aW9uKHQpe3QmJmUoKX0pO3JldHVybn1lKCl9fWZ1bmN0aW9uIEVjKCl7aWYoISghUHx8IVAuZWRpdGluZykpe3ZhciBlPVAub3ZlcmxheSx0PWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yLXRleHRhcmVhIik7dCYmKHQudmFsdWU9UC5vcmlnaW5hbENvbnRlbnR8fCIiLFAuZGlydHk9ITEsbHIoKSx0LmZvY3VzKCkpfX1mdW5jdGlvbiBKdSgpe2lmKCEoIVB8fCFQLmVkaXRpbmcpJiYhUC5zYXZpbmcpe3ZhciBlPVAub3ZlcmxheSx0PWUucXVlcnlTZWxlY3RvcigiLmNvZGUtZWRpdG9yLXRleHRhcmVhIik7aWYodCl7dmFyIG49dC52YWx1ZTtpZihuPT09KFAub3JpZ2luYWxDb250ZW50fHwiIikpe0J0KCJcdTZDQTFcdTY3MDlcdTY1MzlcdTUyQTgiKTtyZXR1cm59UC5zYXZpbmc9ITAsb3IoZSxQLmRhdGEpLGZldGNoKCIvYXBpL2ZpbGUtd3JpdGUiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwYXRoOlAucGF0aCxjb250ZW50Om59KX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJue29rOmkub2ssc3RhdHVzOmkuc3RhdHVzLGRhdGE6YX19KX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoUC5zYXZpbmc9ITEsIWkub2t8fGkuZGF0YSYmaS5kYXRhLmVycm9yKXt2YXIgYT1pLmRhdGEmJmkuZGF0YS5lcnJvcnx8Ilx1NEZERFx1NUI1OFx1NTkzMVx1OEQyNSAoIitpLnN0YXR1cysiKSI7QnQoYSksb3IoZSxQLmRhdGEpO3JldHVybn1pZihQLmRhdGEuY29udGVudD1uLFAuZGF0YS5zaXplPWkuZGF0YSYmaS5kYXRhLnNpemV8fG4ubGVuZ3RoLFAub3JpZ2luYWxDb250ZW50PW4sUC5kaXJ0eT0hMSxCdCgiXHU1REYyXHU0RkREXHU1QjU4IiksbHIoKSxvcihlLFAuZGF0YSksdHlwZW9mIE90PT0iZnVuY3Rpb24iKXRyeXtPdCgpfWNhdGNoe319KS5jYXRjaChmdW5jdGlvbihpKXtQLnNhdmluZz0hMSxCdCgiXHU0RkREXHU1QjU4XHU1OTMxXHU4RDI1XHVGRjFBIisoaSYmaS5tZXNzYWdlP2kubWVzc2FnZToiXHU3RjUxXHU3RURDXHU5NTE5XHU4QkVGIikpLG9yKGUsUC5kYXRhKX0pfX19ZnVuY3Rpb24gbHIoKXtpZihQKXt2YXIgZT1QLm92ZXJsYXk7aWYoZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LW5hbWUtcm93Iik7aWYodCl7dmFyIG49dC5xdWVyeVNlbGVjdG9yKCIuZmlsZS1wcmV2aWV3LWRpcnR5Iik7aWYoUC5kaXJ0eSl7aWYoIW4pe3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTtpLmNsYXNzTmFtZT0iZmlsZS1wcmV2aWV3LWRpcnR5IixpLnRpdGxlPSJcdTY3MDlcdTY3MkFcdTRGRERcdTVCNThcdTc2ODRcdTRGRUVcdTY1MzkiLGkudGV4dENvbnRlbnQ9Ilx1MjVDRiBcdTY3MkFcdTRGRERcdTVCNTgiLHQuYXBwZW5kQ2hpbGQoaSl9fWVsc2UgbiYmbi5yZW1vdmUoKX19fX1mdW5jdGlvbiBHdShlLHQpe3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLmNvZGUtcHJldmlldy1jb250ZW50IHByZSIpLGk9ZS5xdWVyeVNlbGVjdG9yKCIuY29kZS1wcmV2aWV3LWxpbmVzIik7aWYobil7dmFyIGE9cGFyc2VGbG9hdChnZXRDb21wdXRlZFN0eWxlKG4pLmZvbnRTaXplKXx8MTMsdT1NYXRoLm1heCgxMCxNYXRoLm1pbigyMixhK3QpKTtuLnN0eWxlLmZvbnRTaXplPXUrInB4IixpJiYoaS5zdHlsZS5mb250U2l6ZT11KyJweCIpfX1mdW5jdGlvbiBZdShlLHQpe3ZhciBuPWUucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLGk9RmMoKTtpZighaSlyZXR1cm4gbjt2YXIgYT1bXTtmb3IodmFyIHUgaW4gaSl7dmFyIHM9aVt1XTtzJiZzLnBhdHRlcm4mJmEucHVzaCh7cGF0dGVybjpzLnBhdHRlcm4sY2xzOnMuY2xzLHByaW9yaXR5OnMucHJpb3JpdHl8fDV9KX1hLnNvcnQoZnVuY3Rpb24oYyxmKXtyZXR1cm4gZi5wcmlvcml0eS1jLnByaW9yaXR5fSk7dmFyIG89YS5tYXAoZnVuY3Rpb24oYyl7cmV0dXJuIigiK2MucGF0dGVybi5zb3VyY2UrIikifSksbD1uZXcgUmVnRXhwKG8uam9pbigifCIpLCJnbSIpO3JldHVybiBuLnJlcGxhY2UobCxmdW5jdGlvbihjKXtmb3IodmFyIGY9MDtmPGEubGVuZ3RoO2YrKyl7dmFyIGQ9YVtmXSx2PW5ldyBSZWdFeHAoIl4iK2QucGF0dGVybi5zb3VyY2UrIiQiLCJnbSIpO2lmKHYudGVzdChjKSlyZXR1cm4nPHNwYW4gY2xhc3M9IicrZC5jbHMrJyI+JytjKyI8L3NwYW4+In1yZXR1cm4gY30pfWZ1bmN0aW9uIEZjKCl7cmV0dXJue2NvbW1lbnQ6e3BhdHRlcm46L1wvXC8uKnwjW15cbl0qL3ksY2xzOiJzeW50YXgtY29tbWVudCIscHJpb3JpdHk6MX0sc3RyaW5nOntwYXR0ZXJuOi8iKD86W14iXFxdfFxcLikqInwnKD86W14nXFxdfFxcLikqJ3xgKD86W15gXFxdfFxcLikqYC95LGNsczoic3ludGF4LXN0cmluZyIscHJpb3JpdHk6Mn0sa2V5d29yZDp7cGF0dGVybjovXGIoPzphc3luY3xhd2FpdHxicmVha3xjYXNlfGNhdGNofGNsYXNzfGNvbnN0fGNvbnRpbnVlfGRlYnVnZ2VyfGRlY2xhcmV8ZGVmYXVsdHxkZWxldGV8ZG98ZWxzZXxlbnVtfGV4cG9ydHxleHRlbmRzfGZpbmFsbHl8Zm9yfGZyb218ZnVuY3Rpb258Z2V0fGlmfGltcGxlbWVudHN8aW1wb3J0fGlufGluc3RhbmNlb2Z8aW50ZXJmYWNlfGxldHxtb2R1bGV8bmFtZXNwYWNlfG5ld3xudWxsfG9mfG92ZXJyaWRlfHByaXZhdGV8cHJvdGVjdGVkfHB1YmxpY3xyZWFkb25seXxyZXR1cm58c2V0fHN0YXRpY3xzdXBlcnxzd2l0Y2h8dGhpc3x0aHJvd3x0cnl8dHlwZXx0eXBlb2Z8dW5kZWZpbmVkfHZhcnx2b2lkfHdoaWxlfHlpZWxkfGFic3RyYWN0fGFzfGJhc2V8Ym9vbHxieXRlfGNoYXJ8ZGVjaW1hbHxkb3VibGV8ZXZlbnR8ZXhwbGljaXR8ZXh0ZXJufGZhbHNlfGZpeGVkfGZsb2F0fGZvcmVhY2h8Z290b3xpbXBsaWNpdHxpbnxpbnR8aW50ZXJuYWx8aXN8bG9ja3xsb25nfG9iamVjdHxvcGVyYXRvcnxvdXR8cGFyYW1zfHBhcnRpYWx8cmVhZG9ubHl8cmVmfHNieXRlfHNlYWxlZHxzaG9ydHxzaXplb2Z8c3RhY2thbGxvY3xzdHJpbmd8c3RydWN0fHN3aXRjaHx0aHJvd3x0cnVlfHRyeXx1aW50fHVsb25nfHVuY2hlY2tlZHx1bnNhZmV8dXNob3J0fHVzaW5nfHZpcnR1YWx8dm9sYXRpbGV8d2hlcmV8d2hpbGV8d2l0aHx5aWVsZHxkZWZ8ZWxpZnxlbHNlfGV4Y2VwdHxleGVjfGZpbmFsbHl8Zm9yfGZyb218Z2xvYmFsfGlmfGltcG9ydHxsYW1iZGF8bm9ubG9jYWx8bm90fG9yfHBhc3N8cHJpbnR8cmFpc2V8cmV0dXJufHRyeXx3aGlsZXx3aXRofHlpZWxkfFRydWV8RmFsc2V8Tm9uZXxhbmR8aW58aXN8bGFtYmRhfG5vdHxvcnxmbnxwdWJ8dXNlfG1vZHxpbXBsfHRyYWl0fHN0cnVjdHxlbnVtfG1hdGNofGxvb3B8d2hpbGV8Zm9yfGlmfGVsc2V8cmV0dXJufHNlbGZ8c3VwZXJ8Y3JhdGV8d2hlcmV8YXN5bmN8YXdhaXR8bW92ZXxyZWZ8bXV0fHN0YXRpY3xjb25zdHx1bnNhZmV8ZXh0ZXJufHVzZXxhc3xpbXBsfHN0cnVjdHxlbnVtfHR5cGV8Zm58bGV0fGxvb3B8aWZ8ZWxzZXxtYXRjaHxyZXR1cm58c2VsZnxTZWxmfG1vZHxwdWJ8Y3JhdGV8bWFjcm98ZGVyaXZlfHdoZXJlfGFzeW5jfGF3YWl0fGR5bnxzZWxmfHBhY2thZ2V8ZnVuY3xnb3xyZXR1cm58ZGVmZXJ8Z298aWZ8ZWxzZXxzd2l0Y2h8Y2FzZXxkZWZhdWx0fGZvcnxyYW5nZXxzZWxlY3R8YnJlYWt8Y29udGludWV8ZmFsbHRocm91Z2h8Y29uc3R8c3RydWN0fGVudW18dHlwZXxpbnRlcmZhY2V8bWFwfGNoYW58dmFyfG5pbHx0cnVlfGZhbHNlfGlvdGF8bGVufGNhcHxhcHBlbmR8bWFrZXxuZXd8cGFuaWN8cmVjb3ZlcnxzZWxlY3R8ZWxzZXxpZnxlbGlmfGVuZHxmb3J8ZnVuY3Rpb258aWZ8aW58bG9jYWx8bmlsfG5vdHxvcnxyZXBlYXR8cmV0dXJufHRoZW58dHJ1ZXx1bnRpbHx3aGlsZXxlbmR8YW5kfGJlZ2lufGRvfGVuZHxmYWxzZXxmb3J8ZnVuY3Rpb258aWZ8aW58bG9jYWx8bmlsfG5vdHxvcnxyZXBlYXR8cmV0dXJufHRoZW58dHJ1ZXx1bnRpbHx3aGlsZSlcYi95LGNsczoic3ludGF4LWtleXdvcmQiLHByaW9yaXR5OjN9LG51bWJlcjp7cGF0dGVybjovXGIoPzoweFtcZGEtZkEtRl0rfDBiWzAxXSt8MG9bMC03XSt8XGQrXC4/XGQqKD86ZVsrLV0/XGQrKT8pXGIveSxjbHM6InN5bnRheC1udW1iZXIiLHByaW9yaXR5OjJ9LGZ1bmN0aW9uOntwYXR0ZXJuOi9cYltBLVpdW2EtekEtWjAtOV0qW2Etel1cdyooPz1ccypcKCkveSxjbHM6InN5bnRheC1mdW5jdGlvbiIscHJpb3JpdHk6NH0sdHlwZTp7cGF0dGVybjovXGIoPzpzdHJpbmd8bnVtYmVyfGJvb2xlYW58dm9pZHxhbnl8dW5rbm93bnxuZXZlcnxvYmplY3R8c3ltYm9sfGJpZ2ludHxBcnJheXxPYmplY3R8U3RyaW5nfE51bWJlcnxCb29sZWFufE1hcHxTZXR8V2Vha01hcHxXZWFrU2V0fFByb21pc2V8RXJyb3J8VHlwZXxJbnRlcmZhY2V8RW51bXxDbGFzc3xTdHJ1Y3R8SW1wbHxUcmFpdHxmbnxmbmN8ZnVuY3xmdW5jdGlvbnxkZWZ8cHJvY3xmdW58cHVifHN0YXRpY3xjb25zdHxsZXR8dmFyfGludHxmbG9hdHxkb3VibGV8Ym9vbHxjaGFyfGJ5dGV8c3RyaW5nfHU4fHUxNnx1MzJ8dTY0fGk4fGkxNnxpMzJ8aTY0fGYzMnxmNjR8dXNpemV8aXNpemV8c3RyfFZlY3xIYXNoTWFwfE9wdGlvbnxSZXN1bHR8Qm94fFJjfEFyY3xDZWxsfFJlZkNlbGwpXGIveSxjbHM6InN5bnRheC10eXBlIixwcmlvcml0eTo0fSxvcGVyYXRvcjp7cGF0dGVybjovWytcLSovJT08PiEmfF5+PzpdK3xcLlwuXC4/L3ksY2xzOiJzeW50YXgtb3BlcmF0b3IiLHByaW9yaXR5OjV9LHB1bmN0dWF0aW9uOntwYXR0ZXJuOi9be31bXF0oKTssXC5dL3ksY2xzOiJzeW50YXgtcHVuY3R1YXRpb24iLHByaW9yaXR5OjZ9fX1mdW5jdGlvbiB3YyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1wKGUpO3Q9dC5yZXBsYWNlKC9gYGAoXHcqKVxuKFtcc1xTXSo/KWBgYC9nLGZ1bmN0aW9uKGksYSx1KXt2YXIgcz1ZdSh1LnRyaW0oKSxhKSxvPXMucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7Iik7cmV0dXJuJzxwcmU+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLScrYSsnIj4nK28rIjwvY29kZT48L3ByZT4ifSksdD10LnJlcGxhY2UoL2AoW15gXSspYC9nLGZ1bmN0aW9uKGksYSl7cmV0dXJuIjxjb2RlPiIrYS5yZXBsYWNlKC9fL2csIiYjOTU7IikucmVwbGFjZSgvXCovZywiJiM0MjsiKSsiPC9jb2RlPiJ9KSx0PXQucmVwbGFjZSgvXiMjIyMjI1xzKyguKikkL2dtLCI8aDY+JDE8L2g2PiIpLHQ9dC5yZXBsYWNlKC9eIyMjIyNccysoLiopJC9nbSwiPGg1PiQxPC9oNT4iKSx0PXQucmVwbGFjZSgvXiMjIyNccysoLiopJC9nbSwiPGg0PiQxPC9oND4iKSx0PXQucmVwbGFjZSgvXiMjI1xzKyguKikkL2dtLCI8aDM+JDE8L2gzPiIpLHQ9dC5yZXBsYWNlKC9eIyNccysoLiopJC9nbSwiPGgyPiQxPC9oMj4iKSx0PXQucmVwbGFjZSgvXiNccysoLiopJC9nbSwiPGgxPiQxPC9oMT4iKSx0PXQucmVwbGFjZSgvXCpcKlwqKC4rPylcKlwqXCovZywiPHN0cm9uZz48ZW0+JDE8L2VtPjwvc3Ryb25nPiIpLHQ9dC5yZXBsYWNlKC9cKlwqKC4rPylcKlwqL2csIjxzdHJvbmc+JDE8L3N0cm9uZz4iKSx0PXQucmVwbGFjZSgvXCooLis/KVwqL2csIjxlbT4kMTwvZW0+IiksdD10LnJlcGxhY2UoLyhefFteXHddKV9fXyhcUyg/OlteXG5dKj9cUyk/KV9fXyg/IVx3KS9nLCIkMTxzdHJvbmc+PGVtPiQyPC9lbT48L3N0cm9uZz4iKSx0PXQucmVwbGFjZSgvKF58W15cd10pX18oXFMoPzpbXlxuXSo/XFMpPylfXyg/IVx3KS9nLCIkMTxzdHJvbmc+JDI8L3N0cm9uZz4iKSx0PXQucmVwbGFjZSgvKF58W15cd10pXyhcUyg/OlteXG5fXSo/XFMpPylfKD8hXHcpL2csIiQxPGVtPiQyPC9lbT4iKSx0PXQucmVwbGFjZSgvfn4oLis/KX5+L2csIjxkZWw+JDE8L2RlbD4iKSx0PXQucmVwbGFjZSgvXFsoW15cXV0rKVxdXCgoW14pXSspXCkvZywnPGEgaHJlZj0iJDIiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4kMTwvYT4nKSx0PXQucmVwbGFjZSgvIVxbKFteXF1dKilcXVwoKFteKV0rKVwpL2csJzxpbWcgc3JjPSIkMiIgYWx0PSIkMSI+JyksdD10LnJlcGxhY2UoL14mZ3Q7XHMrKC4qKSQvZ20sIjxibG9ja3F1b3RlPiQxPC9ibG9ja3F1b3RlPiIpLHQ9dC5yZXBsYWNlKC9eLS0tKyQvZ20sIjxocj4iKSx0PXQucmVwbGFjZSgvXlwqXCpcKiskL2dtLCI8aHI+IiksdD10LnJlcGxhY2UoL15bXC1cKl1ccysoLiopJC9nbSwiPGxpPiQxPC9saT4iKSx0PXQucmVwbGFjZSgvKDxsaT4uKjxcL2xpPlxuPykrL2csIjx1bD4kJjwvdWw+IiksdD10LnJlcGxhY2UoL15cZCtcLlxzKyguKikkL2dtLCI8bGk+JDE8L2xpPiIpLHQ9R28odCk7dmFyIG49dC5zcGxpdCgvXG57Mix9Lyk7cmV0dXJuIHQ9bi5tYXAoZnVuY3Rpb24oaSl7cmV0dXJuIGk9aS50cmltKCksaT8vXjwoaFsxLTZdfHVsfG9sfGxpfGJsb2NrcXVvdGV8cHJlfHRhYmxlfGhyfGRpdikvLnRlc3QoaSk/aToiPHA+IitpLnJlcGxhY2UoL1xuL2csIjxicj4iKSsiPC9wPiI6IiJ9KS5qb2luKGAKYCksdH1mdW5jdGlvbiBRdSgpe2lmKCFyLnNlbGVjdGVkSWR8fCFyLmdpdFN0YXR1c3x8IXIuZ2l0U3RhdHVzLmlzR2l0fHxyLmdpdFN0YXR1c1Nlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZClyZXR1cm4iIjt2YXIgZT1yLmdpdFN0YXR1cy5icmFuY2h8fCI/Iix0PXIuZ2l0U3RhdHVzLm1vZGlmaWVkQ291bnR8fDAsbj1lKyh0PyIgIFx4QjcgICIrdCsiIFx1NEUyQVx1NjU4N1x1NEVGNlx1NUY4NVx1NjNEMFx1NEVBNCI6IiAgXHhCNyAgXHU1REU1XHU0RjVDXHU1MzNBXHU1RTcyXHU1MUMwIik7cmV0dXJuJzxidXR0b24gaWQ9InRvcGJhci1naXQtYmFkZ2UiIGNsYXNzPSJ0b3BiYXItZ2l0LWJhZGdlIiB0eXBlPSJidXR0b24iIHRpdGxlPSInK3AobikrJyIgYXJpYS1sYWJlbD0iXHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0Ij48c3ZnIGNsYXNzPSJ0b3BiYXItZ2l0LWljb24iIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48Y2lyY2xlIGN4PSI2IiBjeT0iNiIgcj0iMiIvPjxjaXJjbGUgY3g9IjYiIGN5PSIxOCIgcj0iMiIvPjxjaXJjbGUgY3g9IjE4IiBjeT0iOSIgcj0iMiIvPjxwYXRoIGQ9Ik02IDh2OCIvPjxwYXRoIGQ9Ik0xOCAxMXYxYTMgMyAwIDAgMS0zIDNIOSIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJ0b3BiYXItZ2l0LWJyYW5jaCI+JytwKGUpKyI8L3NwYW4+IisodD4wPyc8c3BhbiBjbGFzcz0idG9wYmFyLWdpdC1jb3VudCI+XHhCNycrdCsiPC9zcGFuPiI6JzxzcGFuIGNsYXNzPSJ0b3BiYXItZ2l0LWNsZWFuIiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHUyNzEzPC9zcGFuPicpKyI8L2J1dHRvbj4ifWZ1bmN0aW9uIFppKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1naXQtc2xvdCIpO2lmKGUpe2UuaW5uZXJIVE1MPVF1KCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1naXQtYmFkZ2UiKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihuKXtuLnByZXZlbnREZWZhdWx0KCksJHUoKX0pfX1mdW5jdGlvbiBDYyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1yLnRvcGJhck1vcmVPcGVuLG49ISFlLmNsYXVkZVNlc3Npb25JZCxpPSEhZS5jd2QsYT1lLndvcmt0cmVlRW5hYmxlZCYmZS53b3JrdHJlZSYmZS53b3JrdHJlZS5icmFuY2gmJmUud29ya3RyZWUucGF0aCx1PWUud29ya3RyZWVNZXJnZVN0YXR1cz09PSJtZXJnZWQiJiZlLndvcmt0cmVlTWVyZ2VJbmZvJiZlLndvcmt0cmVlTWVyZ2VJbmZvLmNsZWFudXBEb25lPT09ITEscz1lLnN0YXR1cz09PSJydW5uaW5nInx8ZS53b3JrdHJlZU1lcmdlU3RhdHVzPT09Im1lcmdpbmciLG89YSYmZS53b3JrdHJlZU1lcmdlU3RhdHVzIT09Im1lcmdlZCIsbD11LGM9bnx8aXx8ITAsZj1vfHxsfHwhMCxkPSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjkiIHk9IjkiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgcng9IjIiIHJ5PSIyIi8+PHBhdGggZD0iTTUgMTVINGEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg5YTIgMiAwIDAgMSAyIDJ2MSIvPjwvc3ZnPicsdj0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMTcuNSAxOWE0LjUgNC41IDAgMSAwLTEuNS04Ljc0QTYgNiAwIDEgMCA2IDE0aDExLjV6Ii8+PC9zdmc+JyxoPSc8c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIvPjwvc3ZnPicsZz0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48bGluZSB4MT0iNCIgeTE9IjkiIHgyPSIyMCIgeTI9IjkiLz48bGluZSB4MT0iNCIgeTE9IjE1IiB4Mj0iMjAiIHkyPSIxNSIvPjxsaW5lIHgxPSIxMCIgeTE9IjMiIHgyPSI4IiB5Mj0iMjEiLz48bGluZSB4MT0iMTYiIHkxPSIzIiB4Mj0iMTQiIHkyPSIyMSIvPjwvc3ZnPicsbT0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNNyA3aDEwIi8+PHBhdGggZD0iTTcgMTJoMTAiLz48cGF0aCBkPSJNNyAxN2gxMCIvPjxwYXRoIGQ9Ik01IDdsLTIgMiAyIDIiLz48cGF0aCBkPSJNMTkgMTVsMiAyLTIgMiIvPjwvc3ZnPicseT0nPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz4nLHc9IiI7aWYobil7dmFyIEU9ZS5wcm92aWRlcj09PSJjb2RleCI/Ilx1NTkwRFx1NTIzNiBDb2RleCB0aHJlYWQgSUQiOiJcdTU5MERcdTUyMzYgQ2xhdWRlIFx1NEYxQVx1OEJERCBJRCI7dys9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJjb3B5LWNsYXVkZS1zZXNzaW9uLWlkIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK3YrIjxzcGFuPiIrRSsiPC9zcGFuPjwvYnV0dG9uPiJ9aSYmKHcrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0iY29weS1jd2QiIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicraCsiPHNwYW4+XHU1OTBEXHU1MjM2XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9zcGFuPjwvYnV0dG9uPiIpLHcrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0iY29weS1zZXNzaW9uLWlkIiB0eXBlPSJidXR0b24iIHJvbGU9Im1lbnVpdGVtIj4nK2crIjxzcGFuPlx1NTkwRFx1NTIzNlx1NEYxQVx1OEJERCBJRDwvc3Bhbj48L2J1dHRvbj4iO3ZhciBCPSIiO28/Qis9JzxidXR0b24gY2xhc3M9InRvcGJhci1tb3JlLWl0ZW0iIGRhdGEtYWN0aW9uPSJ3b3JrdHJlZS1tZXJnZSIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSInKyhzPyIgZGlzYWJsZWQiOiIiKSsiPiIrbSsiPHNwYW4+XHU1NDA4XHU1RTc2XHU1MjMwXHU0RTNCXHU1MjA2XHU2NTJGXHUyMDI2PC9zcGFuPjwvYnV0dG9uPiI6bCYmKEIrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIiBkYXRhLWFjdGlvbj0id29ya3RyZWUtY2xlYW51cCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbSI+JyttKyI8c3Bhbj5cdTkxQ0RcdThCRDUgd29ya3RyZWUgXHU2RTA1XHU3NDA2PC9zcGFuPjwvYnV0dG9uPiIpLEIrPSc8YnV0dG9uIGNsYXNzPSJ0b3BiYXItbW9yZS1pdGVtIHRvcGJhci1tb3JlLWl0ZW0tZGFuZ2VyIiBkYXRhLWFjdGlvbj0iZGVsZXRlLXNlc3Npb24iIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicreSsiPHNwYW4+XHU1MjIwXHU5NjY0XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREPC9zcGFuPjwvYnV0dG9uPiI7dmFyIEY9YyYmZj8nPGRpdiBjbGFzcz0idG9wYmFyLW1vcmUtZGl2aWRlciIgcm9sZT0ic2VwYXJhdG9yIj48L2Rpdj4nOiIiO3JldHVybic8ZGl2IGNsYXNzPSJ0b3BiYXItbW9yZS13cmFwIj48YnV0dG9uIGlkPSJ0b3BiYXItbW9yZS1idXR0b24iIGNsYXNzPSJ0b3BiYXItYnRuIHNxdWFyZScrKHQ/IiBhY3RpdmUiOiIiKSsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERFx1NjRDRFx1NEY1QyIgYXJpYS1oYXNwb3B1cD0ibWVudSIgYXJpYS1leHBhbmRlZD0iJysodD8idHJ1ZSI6ImZhbHNlIikrJyIgdGl0bGU9Ilx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERFx1NjRDRFx1NEY1QyI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSI1IiByPSIxIi8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxOSIgcj0iMSIvPjwvc3ZnPjwvYnV0dG9uPjxkaXYgaWQ9InRvcGJhci1tb3JlLW1lbnUiIGNsYXNzPSJ0b3BiYXItbW9yZS1tZW51JysodD8iIjoiIGhpZGRlbiIpKyciIHJvbGU9Im1lbnUiIGFyaWEtbGFiZWw9Ilx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERCI+Jyt3K0YrQisiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiBDbihlLHQpe2lmKCFlKXJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7dmFyIG49dCYmdC5mb3JjZSxpPURhdGUubm93KCk7aWYoIW4mJnIuZ2l0U3RhdHVzU2Vzc2lvbklkPT09ZSYmci5naXRTdGF0dXMmJmktci5naXRTdGF0dXNMYXN0RmV0Y2hBdDwxZTMpcmV0dXJuIFByb21pc2UucmVzb2x2ZShyLmdpdFN0YXR1cyk7aWYoci5naXRTdGF0dXNJbmZsaWdodCYmci5naXRTdGF0dXNJbmZsaWdodC5zZXNzaW9uSWQ9PT1lKXJldHVybiByLmdpdFN0YXR1c0luZmxpZ2h0LnByb21pc2U7ci5naXRTdGF0dXNMb2FkaW5nPSEwO3ZhciBhPWZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvZ2l0LXN0YXR1cyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lm9rP3UuanNvbigpOntpc0dpdDohMX19KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiByLmdpdFN0YXR1cz11fHx7aXNHaXQ6ITF9LHIuZ2l0U3RhdHVzU2Vzc2lvbklkPWUsci5naXRTdGF0dXNMYXN0RmV0Y2hBdD1EYXRlLm5vdygpLFppKCksdX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIHIuZ2l0U3RhdHVzPXtpc0dpdDohMX0sci5naXRTdGF0dXNTZXNzaW9uSWQ9ZSxyLmdpdFN0YXR1c0xhc3RGZXRjaEF0PURhdGUubm93KCksWmkoKSxudWxsfSkuZmluYWxseShmdW5jdGlvbigpe3IuZ2l0U3RhdHVzTG9hZGluZz0hMSxyLmdpdFN0YXR1c0luZmxpZ2h0JiZyLmdpdFN0YXR1c0luZmxpZ2h0LnNlc3Npb25JZD09PWUmJihyLmdpdFN0YXR1c0luZmxpZ2h0PW51bGwpfSk7cmV0dXJuIHIuZ2l0U3RhdHVzSW5mbGlnaHQ9e3Nlc3Npb25JZDplLHByb21pc2U6YX0sYX12YXIgQm49bnVsbCxEbj1udWxsLGJnPW51bGw7ZnVuY3Rpb24gQmMoZSl7cmV0dXJuIGU9PT0iY29tbWl0LXRhZyJ8fGU9PT0iY29tbWl0LXRhZy1wdXNoInx8ZT09PSJjb21taXQtcHVzaCI/ZToiY29tbWl0In1mdW5jdGlvbiBEYyhlKXtyZXR1cm4gZT1CYyhlKSxlPT09ImNvbW1pdC10YWctcHVzaCI/e2FjdGlvbjplLGxhYmVsOiJDb21taXQgKyBUYWcgKyBQdXNoIix2ZXJiOiJcdTYzRDBcdTRFQTRcdTMwMDFcdTYyNTMgVGFnIFx1NUU3Nlx1NjNBOFx1OTAwMSIsd2l0aFRhZzohMCxwdXNoOiEwLHRvbmU6ImFsbCJ9OmU9PT0iY29tbWl0LXRhZyI/e2FjdGlvbjplLGxhYmVsOiJDb21taXQgKyBUYWciLHZlcmI6Ilx1NjNEMFx1NEVBNFx1NUU3Nlx1NjI1MyBUYWciLHdpdGhUYWc6ITAscHVzaDohMSx0b25lOiJ0YWcifTplPT09ImNvbW1pdC1wdXNoIj97YWN0aW9uOmUsbGFiZWw6IkNvbW1pdCArIFB1c2giLHZlcmI6Ilx1NjNEMFx1NEVBNFx1NUU3Nlx1NjNBOFx1OTAwMSIsd2l0aFRhZzohMSxwdXNoOiEwLHRvbmU6InB1c2gifTp7YWN0aW9uOiJjb21taXQiLGxhYmVsOiJDb21taXQiLHZlcmI6Ilx1NEVDNVx1NjNEMFx1NEVBNCIsd2l0aFRhZzohMSxwdXNoOiExLHRvbmU6ImNvbW1pdCJ9fWZ1bmN0aW9uICR1KCl7aWYoci5zZWxlY3RlZElkKXtyLnF1aWNrQ29tbWl0T3Blbj0hMCxyLnF1aWNrQ29tbWl0U3VibWl0dGluZz0hMSxyLnF1aWNrQ29tbWl0QXV0b0dlbmVyYXRpbmc9ITEsci5xdWlja0NvbW1pdEVycm9yPSIiLHIucXVpY2tDb21taXRGb3JtPXtjdXN0b21NZXNzYWdlOiIiLHRhZzoiIix0YWdFZGl0ZWQ6ITF9LHIucXVpY2tDb21taXRQdXNoaW5nPSExLHIucXVpY2tDb21taXRQdXNoRXJyb3I9IiIsci5xdWlja0NvbW1pdFJlc3VsdD1udWxsLHIucXVpY2tDb21taXREcmFnQWN0aW9uPSJjb21taXQiLFhuKCksZ24oKSxabigpLFB0KCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tb2RhbCIpO2UmJihlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHIubGFzdEZvY3VzZWRFbGVtZW50PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsTWkoZSkpLEJuJiZkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixCbiksQm49ZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmci5xdWlja0NvbW1pdE9wZW4mJiFyLnF1aWNrQ29tbWl0U3VibWl0dGluZyYmIXIucXVpY2tDb21taXRQdXNoaW5nJiZIbigpfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixCbiksQ24oci5zZWxlY3RlZElkLHtmb3JjZTohMH0pLnRoZW4oZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0T3BlbiYmUHQoKX0pfX1mdW5jdGlvbiBIbigpe3IucXVpY2tDb21taXRPcGVuPSExLHIucXVpY2tDb21taXRTdWJtaXR0aW5nPSExLHIucXVpY2tDb21taXRFcnJvcj0iIixyLnF1aWNrQ29tbWl0UmVzdWx0PW51bGwsci5xdWlja0NvbW1pdERyYWdBY3Rpb249ImNvbW1pdCI7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tb2RhbCIpO2UmJmUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksci5mb2N1c1RyYXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKSxyLmZvY3VzVHJhcEhhbmRsZXI9bnVsbCksQm4mJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixCbiksQm49bnVsbCksRG4mJihEbigpLERuPW51bGwpLHIubGFzdEZvY3VzZWRFbGVtZW50JiZ0eXBlb2Ygci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXM9PSJmdW5jdGlvbiImJnIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzKCl9ZnVuY3Rpb24gUHQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LW1vZGFsIik7aWYoZSl7RG4mJihEbigpLERuPW51bGwpO3ZhciB0PWVzKCksbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmlubmVySFRNTD10O3ZhciBpPW4ucXVlcnlTZWxlY3RvcigiI3F1aWNrLWNvbW1pdC1tb2RhbCIpO2kmJihlLmlubmVySFRNTD1pLmlubmVySFRNTCxYdSgpKX19ZnVuY3Rpb24gWHUoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LWNsb3NlLWJ0biIpO2UmJmUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEhuKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LWNhbmNlbC1idG4iKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixIbik7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1haS1idG4iKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixTYyk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tZXNzYWdlIik7aSYmKGkuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdEZvcm0uY3VzdG9tTWVzc2FnZT1pLnZhbHVlfSksaS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihzKXsocy5tZXRhS2V5fHxzLmN0cmxLZXkpJiZzLmtleT09PSJFbnRlciImJihzLnByZXZlbnREZWZhdWx0KCksX24oImNvbW1pdCIpKX0pKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicXVpY2stY29tbWl0LXRhZyIpO2EmJihhLmFkZEV2ZW50TGlzdGVuZXIoImlucHV0IixmdW5jdGlvbigpe3IucXVpY2tDb21taXRGb3JtLnRhZz1hLnZhbHVlLHIucXVpY2tDb21taXRGb3JtLnRhZ0VkaXRlZD0hMH0pLGEuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24ocyl7cy5rZXk9PT0iRW50ZXIiJiYocy5wcmV2ZW50RGVmYXVsdCgpLF9uKCJjb21taXQtdGFnIikpfSkpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtcHVzaC1hZnRlci1idG4iKTt1JiZ1LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBzPXIucXVpY2tDb21taXRSZXN1bHR8fHt9O0ljKHtwdXNoQ29tbWl0czohMCxwdXNoVGFnczohIXMudGFnTmFtZSxjbG9zZU9uU3VjY2VzczohMH0pfSkseGMoKX1mdW5jdGlvbiBrYyhlKXt2YXIgdD0hIShlJiZlLnRhZyksbj0hIShlJiZlLnB1c2gpO3JldHVybiB0JiZuPyJjb21taXQtdGFnLXB1c2giOnQ/ImNvbW1pdC10YWciOm4/ImNvbW1pdC1wdXNoIjoiY29tbWl0In12YXIgQWM9NTgsR3I9MTA7ZnVuY3Rpb24gWnUoZSl7cmV0dXJuIGU9PT0idGFnIj97YWN0aW9uOiJjb21taXQtdGFnIixzdWI6ITF9OmU9PT0icHVzaCI/e2FjdGlvbjoiY29tbWl0LXB1c2giLHN1YjohMX06ZT09PSJzdWIiP3thY3Rpb246ImNvbW1pdCIsc3ViOiEwfTp7YWN0aW9uOiJjb21taXQiLHN1YjohMX19ZnVuY3Rpb24geGMoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1maWVsZCIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInFjLWRvY2stc3RhZ2UiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxYy1kb2NrLWxhdW5jaCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInFjLWRvY2stY2x1c3RlciIpO2lmKCFlfHwhdHx8IW58fCFpKXJldHVybjt2YXIgYT1bImNvbW1pdCIsInRhZyIsInB1c2giXSx1PXt9O2lmKGEuZm9yRWFjaChmdW5jdGlvbihEKXt1W0RdPWUucXVlcnlTZWxlY3RvcignW2RhdGEtY2hpcD0iJytEKyciXScpfSksIXUuY29tbWl0fHwhdS50YWd8fCF1LnB1c2gpcmV0dXJuO3Uuc3ViPWUucXVlcnlTZWxlY3RvcignW2RhdGEtY2hpcD0ic3ViIl0nKTt2YXIgcz0hIXUuc3ViLG89cz9hLmNvbmNhdChbInN1YiJdKTphO2Z1bmN0aW9uIGwoRCl7cmV0dXJuIHVbRF0/dVtEXS5vZmZzZXRXaWR0aDo5MH1mdW5jdGlvbiBjKCl7cmV0dXJuIHUuY29tbWl0P3UuY29tbWl0Lm9mZnNldEhlaWdodDozOH1mdW5jdGlvbiBmKCl7cmV0dXJuIHdpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKG1heC13aWR0aDogNzIwcHgpIikubWF0Y2hlc31mdW5jdGlvbiBkKCl7dmFyIEQ9ZS5jbGllbnRXaWR0aCxNPWUuY2xpZW50SGVpZ2h0LEw9YygpLFc9bCgiY29tbWl0IiksSz1sKCJ0YWciKSxYPWwoInB1c2giKTtpZihmKCkmJnMpe3ZhciBuZT1NYXRoLm1heCg4LE0qLjItTC8yKSxzZT1NYXRoLm1pbihNLUwtOCxNKi43LUwvMikscmU9ZnVuY3Rpb24oYWUpe3JldHVybiBNYXRoLm1heCg4LEQqLjI3LWFlLzIpfSxUPWZ1bmN0aW9uKGFlKXtyZXR1cm4gTWF0aC5taW4oRC1hZS04LEQqLjczLWFlLzIpfTtyZXR1cm57Y29tbWl0Ont4OnJlKFcpLHk6bmV9LHRhZzp7eDpUKEspLHk6bmV9LHB1c2g6e3g6cmUoWCkseTpzZX0sc3ViOnt4OlQobCgic3ViIikpLHk6c2V9fX12YXIgTz1mKCksTj1PP01hdGgubWF4KDgsTSouMTgtTC8yKTpNYXRoLm1heCg4LE0qLjEyKSxZPU8/TWF0aC5taW4oTS1MLTgsTSouNzItTC8yKTpNYXRoLm1pbihNLUwtOCxNKi44OC1MKSxKPU8/LjI0Oi4yOCxpZT1PPy43NjouNzIsZGU9e2NvbW1pdDp7eDpNYXRoLm1heCg4LChELVcpLzIpLHk6Tn0sdGFnOnt4Ok1hdGgubWF4KDgsRCpKLUsvMikseTpZfSxwdXNoOnt4Ok1hdGgubWluKEQtWC04LEQqaWUtWC8yKSx5Oll9fTtpZihzKXt2YXIgdGU9bCgic3ViIik7ZGUuc3ViPXt4Ok1hdGgubWluKEQtdGUtOCxEKi45NC10ZS8yKSx5Ok1hdGgubWF4KDgsTWF0aC5taW4oTS1MLTgsKE0tTCkvMikpfX1yZXR1cm4gZGV9dmFyIHY9e307ZnVuY3Rpb24gaChELE0sTCl7dVtEXSYmKHVbRF0uc3R5bGUudHJhbnNmb3JtPSJ0cmFuc2xhdGUoIitNLnRvRml4ZWQoMSkrInB4LCIrTC50b0ZpeGVkKDEpKyJweCkiKX1mdW5jdGlvbiBnKEQpe3Y9ZCgpLG8uZm9yRWFjaChmdW5jdGlvbihNKXt1W01dLmNsYXNzTGlzdC50b2dnbGUoInFjLWNoaXAtLWFuaW0iLCEhRCksaChNLHZbTV0ueCx2W01dLnkpfSl9ZyghMSk7dmFyIG09bnVsbDtmdW5jdGlvbiB5KEQsTSxMKXt2YXIgVz1jKCksSz0yNCxYPW8uZmlsdGVyKGZ1bmN0aW9uKE4pe3JldHVybiBELmluZGV4T2YoTik+PTB9KSxuZT1YLnJlZHVjZShmdW5jdGlvbihOLFkpe3JldHVybiBNYXRoLm1heChOLGwoWSkpfSwwKSxzZT1uZStNYXRoLm1heCgwLFgubGVuZ3RoLTEpKksscmU9ZS5jbGllbnRIZWlnaHQsVD1NLXNlLzIsTz1NYXRoLm1heCgyLE1hdGgubWluKHJlLVctMixMLVcvMikpO3JldHVybiBYLmZvckVhY2goZnVuY3Rpb24oTil7aChOLFQsTyksVCs9S30pLHt4Ok0tc2UvMi03LHk6Ty03LHc6c2UrMTQsaDpXKzE0fX1mdW5jdGlvbiB3KEQpe2kuY2xhc3NMaXN0LmFkZCgiaXMtYWN0aXZlIiksaS5zdHlsZS50cmFuc2Zvcm09InRyYW5zbGF0ZSgiK0QueC50b0ZpeGVkKDEpKyJweCwiK0QueS50b0ZpeGVkKDEpKyJweCkiLGkuc3R5bGUud2lkdGg9RC53LnRvRml4ZWQoMSkrInB4IixpLnN0eWxlLmhlaWdodD1ELmgudG9GaXhlZCgxKSsicHgifWZ1bmN0aW9uIEUoKXtpLmNsYXNzTGlzdC5yZW1vdmUoImlzLWFjdGl2ZSIpfWZ1bmN0aW9uIEIoRCl7cmV0dXJuIGtjKHtjb21taXQ6ITAsdGFnOkQuaW5kZXhPZigidGFnIik+PTAscHVzaDpELmluZGV4T2YoInB1c2giKT49MH0pfWZ1bmN0aW9uIEYoRCl7cmV0dXJuIEQuaW5kZXhPZigic3ViIik+PTB9ZnVuY3Rpb24geChEKXt2YXIgTT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicWMtZG9jay1sYXVuY2gtbGFiZWwiKTtNJiYoTS50ZXh0Q29udGVudD1EKX1mdW5jdGlvbiBTKEQsTSl7dmFyIEw9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gRD49TC5sZWZ0JiZEPD1MLnJpZ2h0JiZNPj1MLnRvcCYmTTw9TC5ib3R0b219ZnVuY3Rpb24gXyhEKXtyZXR1cm4gZnVuY3Rpb24oTSl7aWYoISh1W0RdLmRpc2FibGVkfHxZcigpKSl7bT17YW5jaG9yOkQscG9pbnRlcklkOk0ucG9pbnRlcklkLHN0YXJ0WDpNLmNsaWVudFgsc3RhcnRZOk0uY2xpZW50WSxtb3ZlZDohMSxtZW1iZXJzOltEXX0sby5mb3JFYWNoKGZ1bmN0aW9uKEwpe3VbTF0uY2xhc3NMaXN0LnJlbW92ZSgicWMtY2hpcC0tYW5pbSIpfSksdVtEXS5jbGFzc0xpc3QuYWRkKCJpcy1ncmFiYmluZyIpO3RyeXt1W0RdLnNldFBvaW50ZXJDYXB0dXJlKE0ucG9pbnRlcklkKX1jYXRjaHt9dC5jbGFzc0xpc3QuYWRkKCJpcy1kcmFnZ2luZyIpLE0ucHJldmVudERlZmF1bHQoKX19fWZ1bmN0aW9uIFYoRCl7aWYoISghbXx8bS5wb2ludGVySWQhPT1ELnBvaW50ZXJJZCkpeyhNYXRoLmFicyhELmNsaWVudFgtbS5zdGFydFgpPjN8fE1hdGguYWJzKEQuY2xpZW50WS1tLnN0YXJ0WSk+MykmJihtLm1vdmVkPSEwKTt2YXIgTT1lLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEw9RC5jbGllbnRYLU0ubGVmdCxXPUQuY2xpZW50WS1NLnRvcDtpZihhLmZvckVhY2goZnVuY3Rpb24oTyl7aWYoIShtLm1lbWJlcnMuaW5kZXhPZihPKT49MCkpe3ZhciBOPXZbT10ueCtsKE8pLzIsWT12W09dLnkrYygpLzIsSj1MLU4saWU9Vy1ZO01hdGguc3FydChKKkoraWUqaWUpPEFjJiYobS5tZW1iZXJzLnB1c2goTyksdVtPXS5jbGFzc0xpc3QucmVtb3ZlKCJxYy1jaGlwLS1hbmltIiksdVtPXS5jbGFzc0xpc3QuYWRkKCJpcy1hdHRhY2hlZCIpKX19KSxzJiZtLm1lbWJlcnMuaW5kZXhPZigic3ViIik8MCl7dmFyIEs9di5zdWIueC1HcixYPXYuc3ViLnktR3IsbmU9di5zdWIueCtsKCJzdWIiKStHcixzZT12LnN1Yi55K2MoKStHcjtMPj1LJiZMPD1uZSYmVz49WCYmVzw9c2UmJihtLm1lbWJlcnMucHVzaCgic3ViIiksdS5zdWIuY2xhc3NMaXN0LnJlbW92ZSgicWMtY2hpcC0tYW5pbSIpLHUuc3ViLmNsYXNzTGlzdC5hZGQoImlzLWF0dGFjaGVkIikpfXZhciByZT15KG0ubWVtYmVycyxMLFcpLFQ9UyhELmNsaWVudFgsRC5jbGllbnRZKTt0LnNldEF0dHJpYnV0ZSgiZGF0YS1ob3QiLFQ/IjEiOiIwIiksdC5zZXRBdHRyaWJ1dGUoImRhdGEtYWN0aW9uIixCKG0ubWVtYmVycykpLG0ubWVtYmVycy5sZW5ndGg+MT93KHJlKTpFKCkseChUPyJcdTY3N0VcdTYyNEJcdTYyNjdcdTg4NEMiOiJcdTYzRDBcdTRFQTQiKX19ZnVuY3Rpb24gVShELE0pe2lmKCEoIW18fG0ucG9pbnRlcklkIT09RC5wb2ludGVySWQpKXt2YXIgTD1tO209bnVsbCx0LmNsYXNzTGlzdC5yZW1vdmUoImlzLWRyYWdnaW5nIiksdC5zZXRBdHRyaWJ1dGUoImRhdGEtaG90IiwiMCIpLHgoIlx1NjNEMFx1NEVBNCIpLEUoKSxvLmZvckVhY2goZnVuY3Rpb24oSyl7dVtLXS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1ncmFiYmluZyIsImlzLWF0dGFjaGVkIil9KTt0cnl7dVtMLmFuY2hvcl0ucmVsZWFzZVBvaW50ZXJDYXB0dXJlKEwucG9pbnRlcklkKX1jYXRjaHt9aWYoIU0mJiFMLm1vdmVkKXt2YXIgVz1adShMLmFuY2hvcik7X24oVy5hY3Rpb24sVy5zdWIpO3JldHVybn1pZighTSYmUyhELmNsaWVudFgsRC5jbGllbnRZKSl7X24oQihMLm1lbWJlcnMpLEYoTC5tZW1iZXJzKSk7cmV0dXJufXQuc2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIsImNvbW1pdCIpLGcoITApfX12YXIgST1mdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiYhbSYmZyghMSl9O3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLEkpLG8uZm9yRWFjaChmdW5jdGlvbihEKXt2YXIgTT11W0RdO00uYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLF8oRCkpLE0uYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLFYpLE0uYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixmdW5jdGlvbihMKXtVKEwsITEpfSksTS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixmdW5jdGlvbihMKXtVKEwsITApfSksTS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihMKXtpZighKE0uZGlzYWJsZWR8fFlyKCkpJiYoTC5rZXk9PT0iRW50ZXIifHxMLmtleT09PSIgInx8TC5rZXk9PT0iU3BhY2ViYXIiKSl7TC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBXPVp1KEQpO19uKFcuYWN0aW9uLFcuc3ViKX19KX0pLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7bi5kaXNhYmxlZHx8WXIoKXx8bXx8X24oImNvbW1pdCIpfSksRG49ZnVuY3Rpb24oKXt3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixJKSxtPW51bGx9fWZ1bmN0aW9uIFNjKCl7aWYoISghci5zZWxlY3RlZElkfHxyLnF1aWNrQ29tbWl0R2VuZXJhdGluZykpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtbWVzc2FnZSIpO2UmJihyLnF1aWNrQ29tbWl0Rm9ybS5jdXN0b21NZXNzYWdlPWUudmFsdWUpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWljay1jb21taXQtdGFnIik7dCYmKHIucXVpY2tDb21taXRGb3JtLnRhZz10LnZhbHVlKSxyLnF1aWNrQ29tbWl0R2VuZXJhdGluZz0hMCxyLnF1aWNrQ29tbWl0RXJyb3I9IiIsUHQoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvZ2VuZXJhdGUtY29tbWl0LW1lc3NhZ2UiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHt9KX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJue29rOm4ub2ssZGF0YTppfX0pfSkudGhlbihmdW5jdGlvbihuKXtpZighbi5vayl0aHJvdyBuZXcgRXJyb3Iobi5kYXRhJiZuLmRhdGEuZXJyb3J8fCJBSSBcdTc1MUZcdTYyMTBcdTU5MzFcdThEMjVcdTMwMDIiKTt2YXIgaT1uLmRhdGF8fHt9LGE9dHlwZW9mIGkubWVzc2FnZT09InN0cmluZyI/aS5tZXNzYWdlOiIiLHU9dHlwZW9mIGkuc3VnZ2VzdGVkVGFnPT0ic3RyaW5nIj9pLnN1Z2dlc3RlZFRhZy50cmltKCk6IiIscz0oci5xdWlja0NvbW1pdEZvcm0uY3VzdG9tTWVzc2FnZXx8IiIpLnRyaW0oKTshcyYmYSYmKHIucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2U9YSksdSYmKHIucXVpY2tDb21taXRGb3JtLnRhZ0VkaXRlZHx8KHIucXVpY2tDb21taXRGb3JtLnRhZz11KSxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj0iY29tbWl0LXRhZyIpfSkuY2F0Y2goZnVuY3Rpb24obil7ci5xdWlja0NvbW1pdEVycm9yPW4mJm4ubWVzc2FnZXx8IkFJIFx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNVx1MzAwMiJ9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdEdlbmVyYXRpbmc9ITEsci5xdWlja0NvbW1pdE9wZW4mJlB0KCl9KX19ZnVuY3Rpb24gX24oZSx0KXtpZighKCFyLnNlbGVjdGVkSWR8fHIucXVpY2tDb21taXRTdWJtaXR0aW5nKSl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tZXNzYWdlIik7biYmKHIucXVpY2tDb21taXRGb3JtLmN1c3RvbU1lc3NhZ2U9bi52YWx1ZSk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC10YWciKTtpJiYoci5xdWlja0NvbW1pdEZvcm0udGFnPWkudmFsdWUpO3ZhciBhPXIucXVpY2tDb21taXRGb3JtfHx7fSx1PURjKGV8fHIucXVpY2tDb21taXREcmFnQWN0aW9ufHwiY29tbWl0Iikscz11LndpdGhUYWcsbz1zPyhhLnRhZ3x8IiIpLnRyaW0oKToiIixsPShhLmN1c3RvbU1lc3NhZ2V8fCIiKS50cmltKCksYz0hbCxmPXticmFuY2g6KHIuZ2l0U3RhdHVzfHx7fSkuYnJhbmNofHwiIixjb21taXRIYXNoOihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQmJihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQuc2hvcnRIYXNoPyhyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQuc2hvcnRIYXNoOihyLmdpdFN0YXR1c3x8e30pLmhlYWQ/KHIuZ2l0U3RhdHVzfHx7fSkuaGVhZC5zdWJzdHJpbmcoMCw3KToiIixjb21taXRTdWJqZWN0OihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQmJihyLmdpdFN0YXR1c3x8e30pLmxhc3RDb21taXQuc3ViamVjdD8oci5naXRTdGF0dXN8fHt9KS5sYXN0Q29tbWl0LnN1YmplY3Q6IiIsdGFnOihyLmdpdFN0YXR1c3x8e30pLmxhdGVzdFRhZ3x8IiJ9LGQ9e2F1dG9NZXNzYWdlOmMsY3VzdG9tTWVzc2FnZTpjPyIiOmwsdGFnOm8sYXV0b1RhZzohIShzJiYhbykscHVzaDohIXUucHVzaCxzdWJtb2R1bGU6ISF0fTtyLnF1aWNrQ29tbWl0U3VibWl0dGluZz0hMCxyLnF1aWNrQ29tbWl0U3VibW9kdWxlSW50ZW50PSEhdCxyLnF1aWNrQ29tbWl0QXV0b0dlbmVyYXRpbmc9Y3x8ZC5hdXRvVGFnLHIucXVpY2tDb21taXRFcnJvcj0iIixyLnF1aWNrQ29tbWl0UHVzaEVycm9yPSIiLHIucXVpY2tDb21taXRSZXN1bHQ9bnVsbCxyLnF1aWNrQ29tbWl0RHJhZ0FjdGlvbj11LmFjdGlvbixQdCgpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi9xdWljay1jb21taXQiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KGQpfSkudGhlbihmdW5jdGlvbih2KXtyZXR1cm4gdi5qc29uKCkudGhlbihmdW5jdGlvbihoKXtyZXR1cm57b2s6di5vayxkYXRhOmh9fSl9KS50aGVuKGZ1bmN0aW9uKHYpe2lmKCF2Lm9rKXRocm93IG5ldyBFcnJvcih2LmRhdGEmJnYuZGF0YS5lcnJvcnx8Ilx1NUZFQlx1NjM3N1x1NjNEMFx1NEVBNFx1NTkzMVx1OEQyNVx1MzAwMiIpO3ZhciBoPXYuZGF0YXx8e30sZz1oLmNvbW1pdCYmaC5jb21taXQuaGFzaD9oLmNvbW1pdC5oYXNoLnN1YnN0cmluZygwLDcpOiIiLG09aC50YWcmJmgudGFnLm5hbWU/aC50YWcubmFtZToiIix5PUFycmF5LmlzQXJyYXkoaC5zdWJtb2R1bGVDb21taXRzKT9oLnN1Ym1vZHVsZUNvbW1pdHM6W10sdz15Lmxlbmd0aD4wPyJcdTVERjJcdTUxNDhcdTYzRDBcdTRFQTQgIit5Lmxlbmd0aCsiIFx1NEUyQSBzdWJtb2R1bGVcdUZGMDgiK3kubWFwKGZ1bmN0aW9uKEIpe3JldHVybiBCLnBhdGh9KS5qb2luKCJcdTMwMDEiKSsiXHVGRjA5XHVGRjBDIjoiIixFPXcrIlx1NURGMlx1NjNEMFx1NEVBNCIrKGc/IiAiK2c6IiIpKyhtPyJcdUZGMENcdTVERjJcdTYyNTMgVGFnICIrbToiIik7ci5xdWlja0NvbW1pdFJlc3VsdD17YWN0aW9uOnUuYWN0aW9uLGluY2x1ZGVTdWJtb2R1bGU6ISF0LHB1c2hlZDohIWgucHVzaGVkLHB1c2hFcnJvcjpoLnB1c2hFcnJvcnx8IiIsY29tbWl0SGFzaDpnLGNvbW1pdE1lc3NhZ2U6aC5jb21taXQmJmguY29tbWl0Lm1lc3NhZ2U/aC5jb21taXQubWVzc2FnZTpsLHRhZ05hbWU6bSxvbGRUYWc6Zi50YWcsb2xkQ29tbWl0SGFzaDpmLmNvbW1pdEhhc2gsb2xkQ29tbWl0U3ViamVjdDpmLmNvbW1pdFN1YmplY3Qsc3VibW9kdWxlQ291bnQ6eS5sZW5ndGh9LHUucHVzaCYmIWgucHVzaEVycm9yPyh0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmayhFKyJcdUZGMENcdTVERjJcdTYzQThcdTkwMDFcdTMwMDIiLCJzdWNjZXNzIiksSG4oKSk6KHR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKEUrKGgucHVzaEVycm9yPyJcdUZGMUJwdXNoIFx1NTkzMVx1OEQyNVx1RkYxQSIraC5wdXNoRXJyb3I6Ilx1MzAwMiIpLGgucHVzaEVycm9yPyJlcnJvciI6InN1Y2Nlc3MiKSxyLnNlbGVjdGVkSWQmJkNuKHIuc2VsZWN0ZWRJZCx7Zm9yY2U6ITB9KS50aGVuKGZ1bmN0aW9uKCl7ci5xdWlja0NvbW1pdE9wZW4mJlB0KCl9KSl9KS5jYXRjaChmdW5jdGlvbih2KXtyLnF1aWNrQ29tbWl0RXJyb3I9diYmdi5tZXNzYWdlfHwiXHU1RkVCXHU2Mzc3XHU2M0QwXHU0RUE0XHU1OTMxXHU4RDI1XHUzMDAyIn0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0U3VibWl0dGluZz0hMSxyLnF1aWNrQ29tbWl0QXV0b0dlbmVyYXRpbmc9ITEsci5xdWlja0NvbW1pdE9wZW4mJlB0KCl9KX19ZnVuY3Rpb24gSWMoZSl7aWYoISghci5zZWxlY3RlZElkfHxyLnF1aWNrQ29tbWl0UHVzaGluZykpe3ZhciB0PSEhKGUmJmUucHVzaENvbW1pdHMpLG49ISEoZSYmZS5wdXNoVGFncyksaT0hIShlJiZlLmNsb3NlT25TdWNjZXNzKTtpZighKCF0JiYhbikpe3ZhciBhPXIucXVpY2tDb21taXRSZXN1bHR8fHt9LHU9ISFhLmluY2x1ZGVTdWJtb2R1bGU7ci5xdWlja0NvbW1pdFB1c2hpbmc9ITAsci5xdWlja0NvbW1pdFB1c2hFcnJvcj0iIixQdCgpLGZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KHIuc2VsZWN0ZWRJZCkrIi9naXQvcHVzaCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGJvZHk6SlNPTi5zdHJpbmdpZnkoe3B1c2hDb21taXRzOnQscHVzaFRhZ3M6bixzdWJtb2R1bGU6dSx0YWc6YS50YWdOYW1lfHwiIn0pfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5qc29uKCkudGhlbihmdW5jdGlvbihvKXtyZXR1cm57b2s6cy5vayxkYXRhOm99fSl9KS50aGVuKGZ1bmN0aW9uKHMpe3ZhciBvPXMuZGF0YXx8e307aWYoIXMub2spdGhyb3cgbmV3IEVycm9yKG8mJm8uZXJyb3J8fCJcdTYzQThcdTkwMDFcdTU5MzFcdThEMjVcdTMwMDIiKTtpZihvLmVycm9yKXtyLnF1aWNrQ29tbWl0UHVzaEVycm9yPW8uZXJyb3IsdHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoIlx1NjNBOFx1OTAwMVx1NTkzMVx1OEQyNVx1RkYxQSIrby5lcnJvciwiZXJyb3IiKTtyZXR1cm59dmFyIGw9W107by5wdXNoZWRDb21taXRzJiZsLnB1c2goImNvbW1pdHMiKSxvLnB1c2hlZFRhZ3MmJmwucHVzaCgidGFncyIpO3ZhciBjPWwubGVuZ3RoP2wuam9pbigiIFx1NTQ4QyAiKToiXHVGRjA4XHU2NUUwXHU1MTg1XHU1QkI5XHVGRjA5Ijt0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmaygiXHU1REYyXHU2M0E4XHU5MDAxICIrYywic3VjY2VzcyIpLHIucXVpY2tDb21taXRSZXN1bHQmJihyLnF1aWNrQ29tbWl0UmVzdWx0LnB1c2hlZD0hMCksaT8oSG4oKSxyLnNlbGVjdGVkSWQmJkNuKHIuc2VsZWN0ZWRJZCx7Zm9yY2U6ITB9KSk6ci5zZWxlY3RlZElkJiZDbihyLnNlbGVjdGVkSWQse2ZvcmNlOiEwfSkudGhlbihmdW5jdGlvbigpe3IucXVpY2tDb21taXRPcGVuJiZQdCgpfSl9KS5jYXRjaChmdW5jdGlvbihzKXtyLnF1aWNrQ29tbWl0UHVzaEVycm9yPXMmJnMubWVzc2FnZXx8Ilx1NjNBOFx1OTAwMVx1NTkzMVx1OEQyNVx1MzAwMiIsdHlwZW9mIGs9PSJmdW5jdGlvbiImJmsoci5xdWlja0NvbW1pdFB1c2hFcnJvciwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLnF1aWNrQ29tbWl0UHVzaGluZz0hMSxyLnF1aWNrQ29tbWl0T3BlbiYmUHQoKX0pfX19ZnVuY3Rpb24gVGMoZSl7dmFyIHQ9KGV8fCIiKS50cmltKCk7aWYodD09PSI/PyIpcmV0dXJue2xldHRlcjoiVSIsY2xzOiJ1bnRyYWNrZWQiLHRpdGxlOiJcdTY3MkFcdThEREZcdThFMkEifTtpZih0PT09IiEhIilyZXR1cm57bGV0dGVyOiJJIixjbHM6Imlnbm9yZWQiLHRpdGxlOiJcdTVERjJcdTVGRkRcdTc1NjUifTtmb3IodmFyIG49IiIsaT0wO2k8ZS5sZW5ndGg7aSsrKWlmKGVbaV0mJmVbaV0hPT0iLiImJmVbaV0hPT0iICIpe249ZVtpXTticmVha31uPShufHx0WzBdfHwiPyIpLnRvVXBwZXJDYXNlKCk7dmFyIGE9e0E6e2NsczoiYWRkIix0aXRsZToiXHU2NUIwXHU1ODlFIn0sTTp7Y2xzOiJtb2QiLHRpdGxlOiJcdTRGRUVcdTY1MzkifSxEOntjbHM6ImRlbCIsdGl0bGU6Ilx1NTIyMFx1OTY2NCJ9LFI6e2NsczoicmVuIix0aXRsZToiXHU5MUNEXHU1NDdEXHU1NDBEIn0sQzp7Y2xzOiJyZW4iLHRpdGxlOiJcdTU5MERcdTUyMzYifSxUOntjbHM6Im1vZCIsdGl0bGU6Ilx1N0M3Qlx1NTc4Qlx1NTNEOFx1NjZGNCJ9LFU6e2NsczoiZGVsIix0aXRsZToiXHU1MUIyXHU3QTgxIn19LHU9YVtuXXx8e2Nsczoib3RoZXIiLHRpdGxlOiJcdTVERjJcdTY2RjRcdTY1MzkifTtyZXR1cm57bGV0dGVyOm4sY2xzOnUuY2xzLHRpdGxlOnUudGl0bGV9fWZ1bmN0aW9uIEVnKGUpe3ZhciB0PWUubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPVRjKG4uc3RhdHVzfHwiIiksYT1uLnBhdGh8fCIiLHU9YS5sYXN0SW5kZXhPZigiLyIpLHM9dT49MD9hLnNsaWNlKDAsdSsxKToiIixvPXU+PTA/YS5zbGljZSh1KzEpOmEsbD0iIjtpZihuLmlzU3VibW9kdWxlKXt2YXIgYz1uLnN1Ym1vZHVsZVN0YXRlfHx7fSxmPVtdO2MuY29tbWl0Q2hhbmdlZCYmZi5wdXNoKCJcdTY1QjBcdTYzMDdcdTk0ODgiKSxjLmhhc1RyYWNrZWRDaGFuZ2VzJiZmLnB1c2goImRpcnR5IiksYy5oYXNVbnRyYWNrZWQmJmYucHVzaCgiXHU2NzJBXHU4RERGXHU4RTJBIik7dmFyIGQ9Zi5sZW5ndGg/InN1Ym1vZHVsZSBceEI3ICIrZi5qb2luKCIgLyAiKToic3VibW9kdWxlIjtsPSc8c3BhbiBjbGFzcz0icWMtc3VibW9kdWxlLWJhZGdlIj4nK3AoZCkrIjwvc3Bhbj4ifXJldHVybic8ZGl2IGNsYXNzPSJxYy1maWxlLXJvdyIgdGl0bGU9IicrcChhKSsnIj48c3BhbiBjbGFzcz0icWMtZmlsZS1iYWRnZSBxYy1iYWRnZS0nK2kuY2xzKyciIHRpdGxlPSInK3AoaS50aXRsZSkrJyI+JytwKGkubGV0dGVyKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJxYy1maWxlLXBhdGgiPicrKHM/JzxzcGFuIGNsYXNzPSJxYy1maWxlLWRpciI+JytwKHMpKyI8L3NwYW4+IjoiIikrJzxzcGFuIGNsYXNzPSJxYy1maWxlLW5hbWUiPicrcChvKSsiPC9zcGFuPjwvc3Bhbj4iK2wrIjwvZGl2PiJ9KS5qb2luKCIiKTtyZXR1cm4gdHx8JzxkaXYgY2xhc3M9InFjLWVtcHR5Ij5cdTZDQTFcdTY3MDlcdTUzRUZcdTYzRDBcdTRFQTRcdTc2ODRcdTY1MzlcdTUyQThcdTMwMDI8L2Rpdj4nfWZ1bmN0aW9uIFlyKCl7cmV0dXJuIHIucXVpY2tDb21taXRTdWJtaXR0aW5nfHxyLnF1aWNrQ29tbWl0UHVzaGluZ31mdW5jdGlvbiBRcihlLHQsbixpKXtyZXR1cm4nPGRpdiBjbGFzcz0icWMtcGFpcicrKGk/IiAiK2k6IiIpKyciPjxkaXYgY2xhc3M9InFjLXBhaXItbGFiZWwiPicrcChlKSsnPC9kaXY+PGRpdiBjbGFzcz0icWMtcGFpci1mbG93Ij48ZGl2IGNsYXNzPSJxYy1wYWlyLXZhbHVlIHFjLXBhaXItdmFsdWUtLWZyb20iPicrdCsnPC9kaXY+PGRpdiBjbGFzcz0icWMtcGFpci1hcnJvdyIgYXJpYS1oaWRkZW49InRydWUiPlx1MjE5MjwvZGl2PjxkaXYgY2xhc3M9InFjLXBhaXItdmFsdWUgcWMtcGFpci12YWx1ZS0tdG8iPicrbisiPC9kaXY+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiBMYygpe3ZhciBlPXIuZ2l0U3RhdHVzfHx7fTtpZihlLmhhc1N1Ym1vZHVsZT09PSEwKXJldHVybiEwO2Zvcih2YXIgdD1lLmZpbGVzfHxbXSxuPTA7bjx0Lmxlbmd0aDtuKyspaWYodFtuXSYmdFtuXS5pc1N1Ym1vZHVsZT09PSEwKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIE1jKGUpe3ZhciB0PSFlfHxZcigpLG49TGMoKTtpZihyLnF1aWNrQ29tbWl0U3VibWl0dGluZyl7dmFyIGk9ci5xdWlja0NvbW1pdFN1Ym1vZHVsZUludGVudD8iXHVGRjA4XHU1NDJCIHN1Ym1vZHVsZVx1RkYwOSI6IiIsYT0oci5xdWlja0NvbW1pdEF1dG9HZW5lcmF0aW5nPyJBSSBcdTc1MUZcdTYyMTAgKyBcdTYzRDBcdTRFQTRcdTRFMkRcdTIwMjYiOiJcdTYyNjdcdTg4NENcdTRFMkRcdTIwMjYiKStpO3JldHVybic8ZGl2IGNsYXNzPSJxYy1kb2NrLXdyYXAiPjxkaXYgY2xhc3M9InFjLWRvY2stYnVzeSIgcm9sZT0ic3RhdHVzIj48c3BhbiBjbGFzcz0icWMtZG9jay1idXN5LWRvdCI+PC9zcGFuPicrcChhKSsiPC9kaXY+PC9kaXY+In1mdW5jdGlvbiB1KG8sbCxjKXtyZXR1cm4nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxYy1jaGlwIHFjLWNoaXAtLScrbysnIiBkYXRhLWNoaXA9IicrbysnIicrKGM/JyB0aXRsZT0iJytwKGMpKyciJzoiIikrKHQ/IiBkaXNhYmxlZCI6IiIpKyc+PHNwYW4gY2xhc3M9InFjLWNoaXAtZG90IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjxzcGFuIGNsYXNzPSJxYy1jaGlwLWxhYmVsIj4nK2wrIjwvc3Bhbj48L2J1dHRvbj4ifXZhciBzPXQ/ZT8iIjoiXHU1REU1XHU0RjVDXHU1MzNBXHU1RTcyXHU1MUMwXHVGRjBDXHU2NUUwXHU1M0VGXHU2M0QwXHU0RUE0IjoiXHU2MkQ2XHU1MkE4XHU3OEMxXHU1NDM4XHU3RUM0XHU1NDA4IFx4QjcgXHU0RTIyXHU4RkRCXHU2M0QwXHU0RUE0XHU1MzNBXHU2MjY3XHU4ODRDIFx4QjcgXHU1MzU1XHU1MUZCXHU3NkY0XHU2M0E1XHU2MjY3XHU4ODRDXHU4QkU1XHU5ODc5Iisobj8iIFx4QjcgU3ViIFx1NzQwM1x1NTNFRlx1OTAwOVx1RkYwQ1x1N0VCM1x1NTE2NVx1NTQwRVx1OTAxMlx1NUY1Mlx1NTkwNFx1NzQwNiBzdWJtb2R1bGUiOiIiKTtyZXR1cm4nPGRpdiBjbGFzcz0icWMtZG9jay13cmFwIHFjLWRvY2std3JhcC0tbWFnbmV0aWMiJysodD8nIGRhdGEtZGlzYWJsZWQ9IjEiJzoiIikrJz48ZGl2IGlkPSJxYy1kb2NrLXN0YWdlIiBjbGFzcz0icWMtZG9jay1zdGFnZSIgZGF0YS1hY3Rpb249ImNvbW1pdCIgZGF0YS1ob3Q9IjAiPjxkaXYgaWQ9InFjLWRvY2stZmllbGQiIGNsYXNzPSJxYy1kb2NrLWZpZWxkIj48ZGl2IGlkPSJxYy1kb2NrLWNsdXN0ZXIiIGNsYXNzPSJxYy1kb2NrLWNsdXN0ZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj4nK3UoImNvbW1pdCIsIkNvbW1pdCIpK3UoInRhZyIsIlRhZyIpK3UoInB1c2giLCJQdXNoIikrKG4/dSgic3ViIiwiU3ViIiwiXHU2M0QwXHU0RUE0XHU3MjM2XHU0RUQzXHU1RTkzXHU1RTc2XHU5MDEyXHU1RjUyXHU4RkRCXHU1MTY1IHN1Ym1vZHVsZVx1RkYwOGNvbW1pdCAvIHRhZyAvIFx1NTIwNlx1NTIyQlx1NjNBOFx1OTAwMVx1RkYwOSIpOiIiKSsnPC9kaXY+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJxYy1kb2NrLWxhdW5jaCIgY2xhc3M9InFjLWRvY2stbGF1bmNoIicrKHQ/IiBkaXNhYmxlZCI6IiIpKycgYXJpYS1sYWJlbD0iXHU2MjY3XHU4ODRDXHU2M0QwXHU0RUE0Ij48c3BhbiBjbGFzcz0icWMtZG9jay1sYXVuY2gtYXJyb3ciIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjIyIiBoZWlnaHQ9IjIyIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTUgMTJoMTJNMTMgNmw2IDYtNiA2Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGlkPSJxYy1kb2NrLWxhdW5jaC1sYWJlbCIgY2xhc3M9InFjLWRvY2stbGF1bmNoLWxhYmVsIj5cdTYzRDBcdTRFQTQ8L3NwYW4+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0icWMtZG9jay1oaW50Ij4nK3AocykrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gT2MoKXt2YXIgZT1yLnF1aWNrQ29tbWl0UmVzdWx0O2lmKCFlKXJldHVybiIiO3ZhciB0PWUub2xkQ29tbWl0SGFzaD8iPGNvZGU+IitwKGUub2xkQ29tbWl0SGFzaCkrIjwvY29kZT4iKyhlLm9sZENvbW1pdFN1YmplY3Q/IjxzcGFuPiIrcChlLm9sZENvbW1pdFN1YmplY3QpKyI8L3NwYW4+IjoiIik6JzxzcGFuIGNsYXNzPSJxYy1tdXRlZCI+XHU2NUUwPC9zcGFuPicsbj1lLmNvbW1pdEhhc2g/Ijxjb2RlPiIrcChlLmNvbW1pdEhhc2gpKyI8L2NvZGU+PHNwYW4+IitwKGUuY29tbWl0TWVzc2FnZXx8IiIpKyI8L3NwYW4+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTA8L3NwYW4+JyxpPWUub2xkVGFnPyI8Y29kZT4iK3AoZS5vbGRUYWcpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTAgdGFnPC9zcGFuPicsYT1lLnRhZ05hbWU/Ijxjb2RlPiIrcChlLnRhZ05hbWUpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY3MkFcdTYyNTMgdGFnPC9zcGFuPicsdT1lLnB1c2hlZD8nPHNwYW4gY2xhc3M9InFjLXJlc3VsdC1wdXNoZWQiPlx1NURGMlx1NjNBOFx1OTAwMTwvc3Bhbj4nOic8YnV0dG9uIGlkPSJxdWljay1jb21taXQtcHVzaC1hZnRlci1idG4iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLXNtIiB0eXBlPSJidXR0b24iJysoci5xdWlja0NvbW1pdFB1c2hpbmc/IiBkaXNhYmxlZCI6IiIpKyI+Iisoci5xdWlja0NvbW1pdFB1c2hpbmc/Ilx1NjNBOFx1OTAwMVx1NEUyRC4uLiI6IlB1c2ggJiBDbG9zZSIpKyI8L2J1dHRvbj4iO3JldHVybic8c2VjdGlvbiBjbGFzcz0icWMtcmVzdWx0LXBhbmVsIj4nK1FyKCJDb21taXQiLHQsbiwiIikrUXIoIlRhZyIsaSxhLCJxYy1wYWlyLS10YWciKSsoZS5wdXNoRXJyb3J8fHIucXVpY2tDb21taXRQdXNoRXJyb3I/JzxwIGNsYXNzPSJlcnJvci1tZXNzYWdlIj4nK3AoZS5wdXNoRXJyb3J8fHIucXVpY2tDb21taXRQdXNoRXJyb3IpKyI8L3A+IjoiIikrJzxkaXYgY2xhc3M9InFjLXJlc3VsdC1hY3Rpb25zIj48YnV0dG9uIGlkPSJxdWljay1jb21taXQtY2FuY2VsLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iPlx1NTE3M1x1OTVFRDwvYnV0dG9uPicrdSsiPC9kaXY+PC9zZWN0aW9uPiJ9ZnVuY3Rpb24gZXMoKXt2YXIgZT1yLmdpdFN0YXR1c3x8e30sdD1yLnF1aWNrQ29tbWl0Rm9ybXx8e2N1c3RvbU1lc3NhZ2U6IiIsdGFnOiIiLHRhZ0VkaXRlZDohMX0sbj0oZS5tb2RpZmllZENvdW50fHwwKT4wLGk9ci5xdWlja0NvbW1pdEdlbmVyYXRpbmcsYT1lLmxhc3RDb21taXR8fHt9LHU9YS5zaG9ydEhhc2g/Ijxjb2RlPiIrcChhLnNob3J0SGFzaCkrIjwvY29kZT48c3Bhbj4iK3AoYS5zdWJqZWN0fHwiIikrIjwvc3Bhbj4iOmUuaGVhZD8iPGNvZGU+IitwKGUuaGVhZC5zdWJzdHJpbmcoMCw3KSkrIjwvY29kZT4iOic8c3BhbiBjbGFzcz0icWMtbXV0ZWQiPlx1NjVFMCBjb21taXQ8L3NwYW4+JyxzPWUubGF0ZXN0VGFnPyI8Y29kZT4iK3AoZS5sYXRlc3RUYWcpKyI8L2NvZGU+IjonPHNwYW4gY2xhc3M9InFjLW11dGVkIj5cdTY1RTAgdGFnPC9zcGFuPicsbz0nPGlucHV0IHR5cGU9InRleHQiIGlkPSJxdWljay1jb21taXQtdGFnIiBjbGFzcz0iZmllbGQtaW5wdXQgcWMtdGFnLWZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU3NTU5XHU3QTdBXHU1MjE5IEFJIFx1NzUxRlx1NjIxMCIgdmFsdWU9IicrcCh0LnRhZ3x8IiIpKyciJysoci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc/IiBkaXNhYmxlZCI6IiIpKyI+IixsPSc8dGV4dGFyZWEgaWQ9InF1aWNrLWNvbW1pdC1tZXNzYWdlIiBjbGFzcz0iZmllbGQtaW5wdXQgcWMtbWVzc2FnZS1pbnB1dCIgcm93cz0iMyIgcGxhY2Vob2xkZXI9Ik5ldyBjb21taXQgbWVzc2FnZSIgJysoci5xdWlja0NvbW1pdFN1Ym1pdHRpbmc/ImRpc2FibGVkIjoiIikrIj4iK3AodC5jdXN0b21NZXNzYWdlfHwiIikrIjwvdGV4dGFyZWE+IixjPVtdO2MucHVzaChlLmJyYW5jaHx8IihubyBicmFuY2gpIiksYy5wdXNoKG4/KGUubW9kaWZpZWRDb3VudHx8MCkrIiBcdTRFMkFcdTY1MzlcdTUyQTgiOiJcdTVERTVcdTRGNUNcdTUzM0FcdTVFNzJcdTUxQzAiKSx0eXBlb2YgZS5haGVhZD09Im51bWJlciImJmUuYWhlYWQ+MCYmYy5wdXNoKCJcdTIxOTEiK2UuYWhlYWQpLHR5cGVvZiBlLmJlaGluZD09Im51bWJlciImJmUuYmVoaW5kPjAmJmMucHVzaCgiXHUyMTkzIitlLmJlaGluZCk7dmFyIGY9ci5xdWlja0NvbW1pdFJlc3VsdD8iIjonPHNlY3Rpb24gY2xhc3M9InFjLXJlbGVhc2UtcGFuZWwiPjxkaXYgY2xhc3M9InFjLW1lc3NhZ2UtaGVhZGVyIj48c3BhbiBjbGFzcz0icWMtc2VjdGlvbi10aXRsZSI+TmV3PC9zcGFuPjxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0icXVpY2stY29tbWl0LWFpLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHFjLWFpLWJ0biInKyhpPyIgZGlzYWJsZWQiOiIiKSsnIHRpdGxlPSJBSSBcdTc1MUZcdTYyMTAgY29tbWl0IG1lc3NhZ2UgXHU0RTBFIHRhZyI+PHN2ZyB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik04IDEuNWwxLjQgMy42TDEzIDYuNSA5LjQgNy45IDggMTEuNSA2LjYgNy45IDMgNi41bDMuNi0xLjRMOCAxLjV6TTEyLjUgMTAuNWwuNyAxLjggMS44LjctMS44LjctLjcgMS44LS43LTEuOC0xLjgtLjcgMS44LS43LjctMS44eiIgZmlsbD0iY3VycmVudENvbG9yIi8+PC9zdmc+PHNwYW4+JysoaT8iXHU3NTFGXHU2MjEwXHU0RTJELi4uIjoiQUkiKSsiPC9zcGFuPjwvYnV0dG9uPjwvZGl2PiIrUXIoIkNvbW1pdCIsdSxsLCJxYy1wYWlyLS1jb21taXQiKStRcigiVGFnIixzLG8sInFjLXBhaXItLXRhZyIpKyhyLnF1aWNrQ29tbWl0RXJyb3I/JzxwIGNsYXNzPSJlcnJvci1tZXNzYWdlIj4nK3Aoci5xdWlja0NvbW1pdEVycm9yKSsiPC9wPiI6IiIpK01jKG4pKyc8ZGl2IGNsYXNzPSJxYy1tb2RhbC1hY3Rpb25zIj48YnV0dG9uIGlkPSJxdWljay1jb21taXQtY2FuY2VsLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iPlx1NTNENlx1NkQ4ODwvYnV0dG9uPjwvZGl2Pjwvc2VjdGlvbj4nLGQ9T2MoKTtyZXR1cm4nPHNlY3Rpb24gaWQ9InF1aWNrLWNvbW1pdC1tb2RhbCIgY2xhc3M9Im1vZGFsLWJhY2tkcm9wJysoci5xdWlja0NvbW1pdE9wZW4/IiI6IiBoaWRkZW4iKSsnIj48ZGl2IGNsYXNzPSJtb2RhbCBxdWljay1jb21taXQtbW9kYWwiIHJvbGU9ImRpYWxvZyIgYXJpYS1sYWJlbGxlZGJ5PSJxdWljay1jb21taXQtdGl0bGUiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGRpdj48aDIgaWQ9InF1aWNrLWNvbW1pdC10aXRsZSIgY2xhc3M9Im1vZGFsLXRpdGxlIj5cdTVGRUJcdTYzNzdcdTYzRDBcdTRFQTQ8L2gyPjxwIGNsYXNzPSJtb2RhbC1zdWJ0aXRsZSI+JytwKGMuam9pbigiIFx4QjcgIikpKyc8L3A+PC9kaXY+PGJ1dHRvbiBpZD0icXVpY2stY29tbWl0LWNsb3NlLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPicrZitkKyI8L2Rpdj48L2Rpdj48L3NlY3Rpb24+In1mdW5jdGlvbiBQYygpe3JldHVybic8c2VjdGlvbiBpZD0id29ya3RyZWUtbWVyZ2UtbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iPjxkaXYgY2xhc3M9Im1vZGFsIHdvcmt0cmVlLW1lcmdlLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU1NDA4XHU1RTc2IFdvcmt0cmVlPC9oMj48cCBjbGFzcz0ibW9kYWwtc3VidGl0bGUiPlx1NjhDMFx1NjdFNVx1NUY1M1x1NTI0RFx1NEVGQlx1NTJBMVx1NTIwNlx1NjUyRlx1NUU3Nlx1NUZFQlx1NjM3N1x1NTQwOFx1NUU3Nlx1NTIzMFx1NEUzQlx1NTIwNlx1NjUyRlx1MzAwMjwvcD48L2Rpdj48YnV0dG9uIGlkPSJjbG9zZS13b3JrdHJlZS1tZXJnZS1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5Ij48ZGl2IGlkPSJ3b3JrdHJlZS1tZXJnZS1jb250ZW50IiBjbGFzcz0id29ya3RyZWUtbWVyZ2UtY29udGVudCI+PC9kaXY+PHAgaWQ9Indvcmt0cmVlLW1lcmdlLWVycm9yIiBjbGFzcz0iZXJyb3ItbWVzc2FnZSBoaWRkZW4iPjwvcD48ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1hY3Rpb25zIj48YnV0dG9uIGlkPSJ3b3JrdHJlZS1tZXJnZS1jYW5jZWwtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkiPlx1NTNENlx1NkQ4ODwvYnV0dG9uPjxidXR0b24gaWQ9Indvcmt0cmVlLW1lcmdlLWNvbmZpcm0tYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5Ij5cdTc4NkVcdThCQTRcdTU0MDhcdTVFNzZcdTVFNzZcdTZFMDVcdTc0MDY8L2J1dHRvbj48L2Rpdj48L2Rpdj48L2Rpdj48L3NlY3Rpb24+J31mdW5jdGlvbiBxYygpe3JldHVybic8c2VjdGlvbiBpZD0ic2V0dGluZ3MtbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iPjxkaXYgY2xhc3M9Im1vZGFsIHNldHRpbmdzLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIgc2V0dGluZ3MtbW9kYWwtaGVhZGVyIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1tb2RhbC10aXRsZS1ncm91cCI+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSI+XHU4QkJFXHU3RjZFPC9oMj48cCBjbGFzcz0ic2V0dGluZ3MtbW9kYWwtc3VidGl0bGUiPlx1OEMwM1x1NjU3NFx1NUU5NFx1NzUyOFx1OTE0RFx1N0Y2RVx1MzAwMVx1OTAxQVx1NzdFNVx1MzAwMVx1NUI4OVx1NTE2OFx1NTQ4Q1x1NjYzRVx1NzkzQVx1NTA0Rlx1NTk3RDwvcD48L2Rpdj48YnV0dG9uIGlkPSJjbG9zZS1zZXR0aW5ncy1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1pY29uIG1vZGFsLWNsb3NlLWJ0biIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RUQiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1ib2R5IHNldHRpbmdzLW1vZGFsLWJvZHkiPjxkaXYgY2xhc3M9InNldHRpbmdzLWxheW91dCI+PGFzaWRlIGNsYXNzPSJzZXR0aW5ncy1zaWRlYmFyIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zaWRlYmFyLWhlYWRlciI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhci10aXRsZSI+XHU1MDRGXHU1OTdEXHU4QkJFXHU3RjZFPC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2lkZWJhci1oaW50Ij5cdTVERTZcdTRGQTdcdTUyMDdcdTYzNjJcdTUyMDZcdTUzM0FcdUZGMENcdTUzRjNcdTRGQTdcdTY3RTVcdTc3MEJcdThCRTZcdTdFQzZcdThCRjRcdTY2MEVcdTRFMEVcdTkwMDlcdTk4NzlcdTMwMDI8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10YWJzIiByb2xlPSJ0YWJsaXN0IiBhcmlhLWxhYmVsPSJcdThCQkVcdTdGNkVcdTUyMDZcdTdFQzQiIGFyaWEtb3JpZW50YXRpb249InZlcnRpY2FsIj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIgYWN0aXZlIiBkYXRhLXRhYj0iYWJvdXQiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0idHJ1ZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLWFib3V0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NTE3M1x1NEU4RTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NzI0OFx1NjcyQ1x1MzAwMVx1NjZGNFx1NjVCMFx1NEUwRVx1OEZERVx1NjNBNVx1NjVCOVx1NUYwRjwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJnZW5lcmFsIiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItZ2VuZXJhbCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTU3RkFcdTY3MkNcdTkxNERcdTdGNkU8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTRFM0JcdTY3M0FcdTMwMDFcdTZBMjFcdTVGMEZcdTMwMDFcdThCRURcdThBMDBcdTMwMDFcdTc2RUVcdTVGNTU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ic2V0dGluZ3MtdGFiIiBkYXRhLXRhYj0ibm90aWZpY2F0aW9ucyIgcm9sZT0idGFiIiBhcmlhLXNlbGVjdGVkPSJmYWxzZSIgYXJpYS1jb250cm9scz0ic2V0dGluZ3MtdGFiLW5vdGlmaWNhdGlvbnMiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU5MDFBXHU3N0U1PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU2M0QwXHU3OTNBXHU5N0YzXHU0RTBFXHU2RDRGXHU4OUM4XHU1NjY4XHU5MDFBXHU3N0U1PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9InNlY3VyaXR5IiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItc2VjdXJpdHkiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWFpbiI+XHU1Qjg5XHU1MTY4PC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10YWItbWV0YSI+XHU1QkM2XHU3ODAxXHU0RTBFXHU4QkMxXHU0RTY2PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InNldHRpbmdzLXRhYiIgZGF0YS10YWI9InByZXNldHMiIHJvbGU9InRhYiIgYXJpYS1zZWxlY3RlZD0iZmFsc2UiIGFyaWEtY29udHJvbHM9InNldHRpbmdzLXRhYi1wcmVzZXRzIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1haW4iPlx1NTQ3RFx1NEVFNFx1OTg4NFx1OEJCRTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdGFiLW1ldGEiPlx1NjdFNVx1NzcwQlx1NURGMlx1NjcwOVx1OTg4NFx1OEJCRTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJzZXR0aW5ncy10YWIiIGRhdGEtdGFiPSJkaXNwbGF5IiByb2xlPSJ0YWIiIGFyaWEtc2VsZWN0ZWQ9ImZhbHNlIiBhcmlhLWNvbnRyb2xzPSJzZXR0aW5ncy10YWItZGlzcGxheSI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tYWluIj5cdTY2M0VcdTc5M0E8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRhYi1tZXRhIj5cdTUzNjFcdTcyNDdcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDBcdTg4NENcdTRFM0E8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9hc2lkZT48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb250ZW50Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCBhY3RpdmUiIGlkPSJzZXR0aW5ncy10YWItYWJvdXQiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NTE3M1x1NEU4RSBXYW5kPC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU2N0U1XHU3NzBCXHU3MjQ4XHU2NzJDXHU0RkUxXHU2MDZGXHUzMDAxXHU2NkY0XHU2NUIwXHU3MkI2XHU2MDAxXHU1NDhDIEFuZHJvaWQgQXBwIFx1OEZERVx1NjNBNVx1NjVCOVx1NUYwRlx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1pbmZvIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1MzA1XHU1NDBEPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLXBrZy1uYW1lIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTVGNTNcdTUyNERcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtdmVyc2lvbiI+LTwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+Tm9kZS5qcyBcdTg5ODFcdTZDNDI8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3Mtbm9kZS1yZXEiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NEVEM1x1NUU5M1x1NTczMFx1NTc0MDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJzZXR0aW5ncy1yZXBvLXVybCI+PGEgaHJlZj0iIyIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9vcGVuZXIiPi08L2E+PC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uIiBpZD0id2ViLXVwZGF0ZS1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicreigiZ2xvYmUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5XZWIgXHU3QUVGPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1NkQ0Rlx1ODlDOFx1NTY2OFx1OEJCRlx1OTVFRVx1NzY4NFx1NjcwRFx1NTJBMVx1NzI0OFx1NjcyQzwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3ciPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU2NzAwXHU2NUIwXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLWxhdGVzdC12ZXJzaW9uIj4tPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXVwZGF0ZS1hY3Rpb25zIj48YnV0dG9uIGlkPSJjaGVjay11cGRhdGUtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIj5cdTY4QzBcdTY3RTVcdTY2RjRcdTY1QjA8L2J1dHRvbj48YnV0dG9uIGlkPSJkby11cGRhdGUtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1zbSBoaWRkZW4iPlx1NjZGNFx1NjVCMFx1NTIzMFx1NjcwMFx1NjVCMFx1NzI0ODwvYnV0dG9uPjxidXR0b24gaWQ9ImRvLXJlc3RhcnQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zdWNjZXNzIGJ0bi1zbSBoaWRkZW4iPlx1OTFDRFx1NTQyRlx1NzUxRlx1NjU0ODwvYnV0dG9uPjwvZGl2PjxwIGlkPSJ1cGRhdGUtbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiPkJldGEgXHU5MDFBXHU5MDUzPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU2NkY0XHU2NUIwXHU1MjMwIG5wbSBiZXRhIFx1NzI0OFx1NjcyQ1x1RkYwOHRhZyArIGNvbW1pdCBcdTVDM0VcdTY4MDdcdUZGMDlcdUZGMENcdTVDMURcdTlDOUNcdTY1QjBcdTUyOUZcdTgwRkRcdUZGMENcdTUzRUZcdTgwRkRcdTRFMERcdTdBMzNcdTVCOUFcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImJldGEtY2hhbm5lbC10b2dnbGUiIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIj48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiPlx1ODFFQVx1NTJBOFx1NjZGNFx1NjVCMDwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1NjhDMFx1NkQ0Qlx1NTIzMFx1NjVCMFx1NzI0OFx1NjcyQ1x1NUMwNlx1ODFFQVx1NTJBOFx1NEUwQlx1OEY3RFx1NUI4OVx1ODhDNVx1NUU3Nlx1OTFDRFx1NTQyRlx1NjcwRFx1NTJBMVx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXV0by11cGRhdGUtd2ViLXRvZ2dsZSIgY2xhc3M9InN3aXRjaC10b2dnbGUiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy11cGRhdGUtc2VjdGlvbiBoaWRkZW4iIGlkPSJhbmRyb2lkLWFway1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicreigic21hcnRwaG9uZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPkFuZHJvaWQgQXBwPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1NTM5Rlx1NzUxRlx1NUJBMlx1NjIzN1x1N0FFRlx1NzI0OFx1NjcyQ1x1NEUwRSBBUEsgXHU0RTBCXHU4RjdEPC9wPjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImFuZHJvaWQtYXBrLWN1cnJlbnQtcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IGhpZGRlbiI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWxhYmVsIj5cdTVGNTNcdTUyNERcdTcyNDhcdTY3MkM8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXZhbHVlIiBpZD0ic2V0dGluZ3MtYW5kcm9pZC1hcGstY3VycmVudCI+LTwvc3Bhbj48L2Rpdj48ZGl2IGlkPSJhbmRyb2lkLWFway1naXRodWItcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1N0VCRlx1NEUwQVx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLWFuZHJvaWQtYXBrLWdpdGh1YiI+LTwvc3Bhbj48YnV0dG9uIGlkPSJkb3dubG9hZC1naXRodWItYXBrLWJ0biIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSBoaWRkZW4iIHR5cGU9ImJ1dHRvbiI+XHU0RTBCXHU4RjdEPC9idXR0b24+PC9kaXY+PGRpdiBpZD0iYW5kcm9pZC1hcGstbG9jYWwtcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjcyQ1x1NTczMFx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLWFuZHJvaWQtYXBrLWxvY2FsIj4tPC9zcGFuPjxidXR0b24gaWQ9ImRvd25sb2FkLWxvY2FsLWFway1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImFuZHJvaWQtYXV0by11cGRhdGUtcm93IiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyBoaWRkZW4iPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjA8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIiBpZD0iYW5kcm9pZC1hdXRvLXVwZGF0ZS1oaW50Ij5cdTY4QzBcdTZENEJcdTUyMzBcdTY1QjBcdTcyNDggQVBLIFx1NjVGNlx1ODFFQVx1NTJBOFx1NjJDOVx1OEQ3N1x1NEUwQlx1OEY3RFx1RkYwQ1x1NUI4OVx1ODhDNVx1NEVDRFx1OTcwMFx1NTcyOFx1N0NGQlx1N0VERlx1NEUyRFx1Nzg2RVx1OEJBNFx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIgY2xhc3M9InN3aXRjaC10b2dnbGUiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48cCBpZD0iYW5kcm9pZC1hcGstbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24gaGlkZGVuIiBpZD0ibWFjb3MtZG1nLXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+Jyt6KCJkZXNrdG9wIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+bWFjT1MgQXBwPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1NTM5Rlx1NzUxRlx1NUJBMlx1NjIzN1x1N0FFRlx1NzI0OFx1NjcyQ1x1NEUwRSBETUcgXHU0RTBCXHU4RjdEPC9wPjwvZGl2PjwvZGl2PjxkaXYgaWQ9Im1hY29zLWRtZy1jdXJyZW50LXJvdyIgY2xhc3M9InNldHRpbmdzLWFib3V0LXJvdyBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU1RjUzXHU1MjREXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSIgaWQ9InNldHRpbmdzLW1hY29zLWRtZy1jdXJyZW50Ij4tPC9zcGFuPjwvZGl2PjxkaXYgaWQ9Im1hY29zLWRtZy1naXRodWItcm93IiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93IHNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb24gaGlkZGVuIj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1N0VCRlx1NEUwQVx1NzI0OFx1NjcyQzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUgc2V0dGluZ3MtdmFsdWUtZmxleCIgaWQ9InNldHRpbmdzLW1hY29zLWRtZy1naXRodWIiPi08L3NwYW4+PGJ1dHRvbiBpZD0iZG93bmxvYWQtZ2l0aHViLWRtZy1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9Im1hY29zLWRtZy1sb2NhbC1yb3ciIGNsYXNzPSJzZXR0aW5ncy1hYm91dC1yb3cgc2V0dGluZ3MtYWJvdXQtcm93LWFjdGlvbiBoaWRkZW4iPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1sYWJlbCI+XHU2NzJDXHU1NzMwXHU3MjQ4XHU2NzJDPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy12YWx1ZSBzZXR0aW5ncy12YWx1ZS1mbGV4IiBpZD0ic2V0dGluZ3MtbWFjb3MtZG1nLWxvY2FsIj4tPC9zcGFuPjxidXR0b24gaWQ9ImRvd25sb2FkLWxvY2FsLWRtZy1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NEUwQlx1OEY3RDwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9Im1hY29zLWF1dG8tdXBkYXRlLXJvdyIgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3cgaGlkZGVuIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSI+XHU4MUVBXHU1MkE4XHU2NkY0XHU2NUIwPC9zcGFuPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyIgaWQ9Im1hY29zLWF1dG8tdXBkYXRlLWhpbnQiPlx1NjhDMFx1NkQ0Qlx1NTIzMFx1NjVCMFx1NzI0OCBETUcgXHU1QzA2XHU4MUVBXHU1MkE4XHU0RTBCXHU4RjdEXHU1RTc2XHU2MzAyXHU4RjdEXHUzMDAyPC9zcGFuPjwvZGl2PjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJhdXRvLXVwZGF0ZS1kbWctdG9nZ2xlIiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSI+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2xhYmVsPjwvZGl2PjxwIGlkPSJtYWNvcy1kbWctbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIj48L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24iIGlkPSJhbmRyb2lkLWNvbm5lY3Qtc2VjdGlvbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK3ooImxpbmsiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5BcHAgXHU4RkRFXHU2M0E1XHU3ODAxPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1N0M5OFx1OEQzNFx1NTIzMCBBbmRyb2lkIEFwcCBcdTUzNzNcdTUzRUZcdTgxRUFcdTUyQThcdThGREVcdTYzQTVcdUZGMENcdTY1RTBcdTk3MDBcdTVCQzZcdTc4MDFcdUZGMUJcdTY1MzlcdTVCQzZcdTc4MDFcdTU0MEVcdTU5MzFcdTY1NDhcdTMwMDI8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC11cmwtYm94Ij48Y29kZSBpZD0iYW5kcm9pZC1jb25uZWN0LWNvZGUiIGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXVybC10ZXh0Ij4tPC9jb2RlPjxidXR0b24gaWQ9ImNvcHktY29ubmVjdC1jb2RlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tc2Vjb25kYXJ5IGJ0bi1zbSIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU1OTBEXHU1MjM2XHU4RkRFXHU2M0E1XHU3ODAxIj5cdTU5MERcdTUyMzY8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXFyLWJveCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY29ubmVjdC1xci13cmFwIiBpZD0iYW5kcm9pZC1jb25uZWN0LXFyLXdyYXAiIHRpdGxlPSJcdTcwQjlcdTUxRkJcdTY1M0VcdTU5MjciPjxjYW52YXMgaWQ9ImFuZHJvaWQtY29ubmVjdC1xciIgd2lkdGg9IjE4MCIgaGVpZ2h0PSIxODAiPjwvY2FudmFzPjxkaXYgY2xhc3M9InNldHRpbmdzLWNvbm5lY3QtcXItZW1wdHkiIGlkPSJhbmRyb2lkLWNvbm5lY3QtcXItZW1wdHkiPlx1NzUxRlx1NjIxMFx1NEUyRFx1MjAyNjwvZGl2PjwvZGl2PjxwIGNsYXNzPSJzZXR0aW5ncy1jb25uZWN0LXFyLWhpbnQiPlx1NzUyOCBXYW5kIEFwcCBcdTYyNkJcdTRFMDBcdTYyNkJcdUZGMENcdTUzNzNcdTUzRUZcdTRFMDBcdTk1MkVcdTU4NkJcdTUxNjVcdTY3MERcdTUyQTFcdTU2NjhcdTU3MzBcdTU3NDBcdTRFMEVcdThGREVcdTYzQTVcdTc4MDFcdTMwMDI8L3A+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwiIGlkPSJzZXR0aW5ncy10YWItbm90aWZpY2F0aW9ucyIgcm9sZT0idGFicGFuZWwiPjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsLWhlYWRlciI+PGgzIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC10aXRsZSI+XHU5MDFBXHU3N0U1PC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtZGVzYyI+XHU4QkJFXHU3RjZFXHU2M0QwXHU3OTNBXHU5N0YzXHUzMDAxXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU1NDhDXHU2RDRGXHU4OUM4XHU1NjY4XHU5MDFBXHU3N0U1XHU3Njg0XHU4ODRDXHU0RTNBXHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicreigiYmVsbCIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1OTAxQVx1NzdFNVx1NTA0Rlx1NTk3RDwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTYzRDBcdTc5M0FcdTk3RjNcdTRFMEVcdTVFOTRcdTc1MjhcdTUxODVcdTkwMUFcdTc3RTVcdTZDMTRcdTZDRTE8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1ub3RpZi1zb3VuZCI+XHU2NEFEXHU2NTNFXHU2M0QwXHU3OTNBXHU5N0YzPC9sYWJlbD48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWRlc2MiPlx1OTFDRFx1ODk4MVx1OTAxQVx1NzdFNVx1RkYwOFx1NzI0OFx1NjcyQ1x1NjZGNFx1NjVCMFx1MzAwMVx1Njc0M1x1OTY1MFx1N0I0OVx1NUY4NVx1N0I0OVx1RkYwOVx1NjVGNlx1NjRBRFx1NjUzRVx1NjdENFx1NTQ4Q1x1NjNEMFx1NzkzQVx1OTdGM1x1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctbm90aWYtc291bmQiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcmFuZ2Utcm93IiBpZD0ibm90aWYtdm9sdW1lLWZpZWxkIj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXJhbmdlLWxhYmVsIiBmb3I9ImNmZy1ub3RpZi12b2x1bWUiPlx1OTdGM1x1OTFDRjwvbGFiZWw+PGlucHV0IGlkPSJjZmctbm90aWYtdm9sdW1lIiB0eXBlPSJyYW5nZSIgbWluPSIwIiBtYXg9IjEwMCIgc3RlcD0iNSIgY2xhc3M9InNldHRpbmdzLXJhbmdlIiAvPjxzcGFuIGlkPSJjZmctbm90aWYtdm9sdW1lLXZhbCIgY2xhc3M9InNldHRpbmdzLXJhbmdlLXZhbHVlIj44MCU8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1ub3RpZi1idWJibGUiPlx1NUU5NFx1NzUyOFx1NTE4NVx1OTAxQVx1NzdFNVx1NkMxNFx1NkNFMTwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTU3MjhcdTk4NzVcdTk3NjJcdTk4NzZcdTkwRThcdTVGMzlcdTUxRkFcdTZENkVcdTUyQThcdTkwMUFcdTc3RTVcdTZDMTRcdTZDRTFcdTMwMDI8L3NwYW4+PC9kaXY+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy1zd2l0Y2giPjxpbnB1dCBpZD0iY2ZnLW5vdGlmLWJ1YmJsZSIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJuYXRpdmUtc291bmQtc2VjdGlvbiIgY2xhc3M9InNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uIGhpZGRlbiI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK3ooIm11c2ljIix7c2l6ZToxOCxzdHJva2VXaWR0aDoxLjd9KSsnPC9zcGFuPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0Ij48aDQgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZGluZyI+XHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU5NEMzXHU1OEYwPC9oND48cCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1zdWIiPlx1OTAwOVx1NjJFOSBBbmRyb2lkIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NEY3Rlx1NzUyOFx1NzY4NFx1OTRDM1x1NThGMDwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24iPjxzZWxlY3QgaWQ9Im5hdGl2ZS1zb3VuZC1zZWxlY3QiIGNsYXNzPSJmaWVsZC1pbnB1dCBmaWVsZC1zZWxlY3QiPjwvc2VsZWN0PjxidXR0b24gaWQ9Im5hdGl2ZS1zb3VuZC1wcmV2aWV3IiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGJ0bi13aXRoLWljb24iIHR5cGU9ImJ1dHRvbiI+Jyt6KCJwbGF5Iix7c2l6ZToxMSxzdHJva2VXaWR0aDoxLjgsZmlsbDoiY3VycmVudENvbG9yIn0pKyc8c3Bhbj5cdThCRDVcdTU0MkM8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBpZD0ibmF0aXZlLWhhcHRpYy1zZWN0aW9uIiBjbGFzcz0ic2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24gaGlkZGVuIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWljb24iPicreigidmlicmF0ZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1ODlFNlx1NjExRlx1NTNDRFx1OTk4ODwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTYzMDlcdTk0QUVcdTY0Q0RcdTRGNUNcdTU0OENcdTRFRkJcdTUyQTFcdTVCOENcdTYyMTBcdTY1RjZcdTYzRDBcdTRGOUJcdTYzMkZcdTUyQThcdTUzQ0RcdTk5ODg8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXJvdyI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRleHQiPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLXRpdGxlIiBmb3I9ImNmZy1oYXB0aWMtZW5hYmxlZCI+XHU1NDJGXHU3NTI4XHU4OUU2XHU2MTFGXHU1M0NEXHU5OTg4PC9sYWJlbD48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctaGFwdGljLWVuYWJsZWQiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb24iPjxkaXYgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taGVhZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLXNlY3Rpb24taWNvbiI+Jyt6KCJnbG9iZSIse3NpemU6MTgsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWQtdGV4dCI+PGg0IGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLWhlYWRpbmciPlx1NkQ0Rlx1ODlDOFx1NTY2OFx1OTAxQVx1NzdFNTwvaDQ+PHAgY2xhc3M9InNldHRpbmdzLXNlY3Rpb24tc3ViIj5cdTY3NjVcdTgxRUFcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTRFMkRcdTVGQzNcdTc2ODRcdTVGMzlcdTdBOTc8L3A+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtYWJvdXQtcm93Ij48c3BhbiBjbGFzcz0ic2V0dGluZ3MtbGFiZWwiPlx1NjM4OFx1Njc0M1x1NzJCNlx1NjAwMTwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtdmFsdWUiIGlkPSJub3RpZmljYXRpb24tcGVybWlzc2lvbi1zdGF0dXMiPi08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdXBkYXRlLWFjdGlvbnMiPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi1yZXF1ZXN0LWJ0biIgY2xhc3M9ImJ0biBidG4tcHJpbWFyeSBidG4tc20gaGlkZGVuIiB0eXBlPSJidXR0b24iPlx1NjM4OFx1Njc0M1x1OTAxQVx1NzdFNTwvYnV0dG9uPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi1yZXNldC1idG4iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBoaWRkZW4iIHR5cGU9ImJ1dHRvbiI+XHU5MUNEXHU2NUIwXHU2Mzg4XHU2NzQzPC9idXR0b24+PGJ1dHRvbiBpZD0ibm90aWZpY2F0aW9uLXRlc3QtYnRuIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIiB0eXBlPSJidXR0b24iPlx1NTNEMVx1OTAwMVx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNTwvYnV0dG9uPjxidXR0b24gaWQ9Im5vdGlmaWNhdGlvbi10ZXN0LWRlbGF5LWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iPjEwIFx1NzlEMlx1NTQwRVx1NTNEMVx1OTAwMTwvYnV0dG9uPjwvZGl2PjxwIGlkPSJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIiBjbGFzcz0iaGludCBoaWRkZW4iPjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCIgaWQ9InNldHRpbmdzLXRhYi1nZW5lcmFsIiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTU3RkFcdTY3MkNcdTkxNERcdTdGNkU8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1kZXNjIj5cdTkxNERcdTdGNkVcdTY3MERcdTUyQTFcdTc2RDFcdTU0MkNcdTU3MzBcdTU3NDBcdTMwMDFcdTlFRDhcdThCQTRcdTZBMjFcdTVGMEZcdTMwMDFcdThCRURcdThBMDBcdTU0OENcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTVcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQtcm93Ij48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctaG9zdCI+XHU3NkQxXHU1NDJDXHU1NzMwXHU1NzQwIChob3N0KTwvbGFiZWw+PGlucHV0IGlkPSJjZmctaG9zdCIgdHlwZT0idGV4dCIgY2xhc3M9ImZpZWxkLWlucHV0IiBwbGFjZWhvbGRlcj0iMTI3LjAuMC4xIiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1wb3J0Ij5cdTdBRUZcdTUzRTMgKHBvcnQpPC9sYWJlbD48aW5wdXQgaWQ9ImNmZy1wb3J0IiB0eXBlPSJudW1iZXIiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ijg0NDMiIG1pbj0iMSIgbWF4PSI2NTUzNSIgLz48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtcm93Ij48ZGl2IGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGV4dCI+PGxhYmVsIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtdGl0bGUiIGZvcj0iY2ZnLWh0dHBzIj5cdTU0MkZcdTc1MjggSFRUUFM8L2xhYmVsPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy10b2dnbGUtZGVzYyI+XHU0RjdGXHU3NTI4XHU4MUVBXHU3QjdFXHU1NDBEXHU4QkMxXHU0RTY2XHU1MkEwXHU1QkM2XHU2RDRGXHU4OUM4XHU1NjY4XHU1MjMwXHU2NzBEXHU1MkExXHU3Njg0XHU4RkRFXHU2M0E1XHVGRjBDaG9zdCBcdTRFM0FcdTk3NUUgMTI3LjAuMC4xIFx1NjVGNlx1NUVGQVx1OEJBRVx1NUYwMFx1NTQyRlx1MzAwMjwvc3Bhbj48L2Rpdj48bGFiZWwgY2xhc3M9InNldHRpbmdzLXN3aXRjaCI+PGlucHV0IGlkPSJjZmctaHR0cHMiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvbGFiZWw+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQtcm93Ij48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctbW9kZSI+XHU5RUQ4XHU4QkE0XHU2MjY3XHU4ODRDXHU2QTIxXHU1RjBGPC9sYWJlbD48c2VsZWN0IGlkPSJjZmctbW9kZSIgY2xhc3M9ImZpZWxkLWlucHV0Ij48b3B0aW9uIHZhbHVlPSJkZWZhdWx0Ij5kZWZhdWx0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iYXNzaXN0Ij5hc3Npc3Q8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhZ2VudCI+YWdlbnQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJhZ2VudC1tYXgiPmFnZW50LW1heDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9ImF1dG8tZWRpdCI+YXV0by1lZGl0PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZnVsbC1hY2Nlc3MiPmZ1bGwtYWNjZXNzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0ibmF0aXZlIj5uYXRpdmU8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJtYW5hZ2VkIj5tYW5hZ2VkPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY2ZnLWxhbmd1YWdlIj5cdTU2REVcdTU5MERcdThCRURcdThBMDA8L2xhYmVsPjxzZWxlY3QgaWQ9ImNmZy1sYW5ndWFnZSIgY2xhc3M9ImZpZWxkLWlucHV0Ij48b3B0aW9uIHZhbHVlPSIiPlx1ODFFQVx1NTJBOFx1RkYwOFx1NEUwRFx1NjMwN1x1NUI5QVx1RkYwOTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1NEUyRFx1NjU4NyI+XHU0RTJEXHU2NTg3PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRW5nbGlzaCI+RW5nbGlzaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1NjVFNVx1NjcyQ1x1OEE5RSI+XHU2NUU1XHU2NzJDXHU4QTlFPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iXHVENTVDXHVBRDZEXHVDNUI0Ij5cdUQ1NUNcdUFENkRcdUM1QjQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSJFc3BhXHhGMW9sIj5Fc3BhXHhGMW9sPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRnJhblx4RTdhaXMiPkZyYW5ceEU3YWlzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iRGV1dHNjaCI+RGV1dHNjaDwvb3B0aW9uPjxvcHRpb24gdmFsdWU9Ilx1MDQyMFx1MDQ0M1x1MDQ0MVx1MDQ0MVx1MDQzQVx1MDQzOFx1MDQzOSI+XHUwNDIwXHUwNDQzXHUwNDQxXHUwNDQxXHUwNDNBXHUwNDM4XHUwNDM5PC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PC9kaXY+PHAgY2xhc3M9ImZpZWxkLWhpbnQiIHN0eWxlPSJtYXJnaW4tdG9wOi00cHg7Ij5cdThCQkVcdTdGNkVcdTU2REVcdTU5MERcdThCRURcdThBMDBcdTU0MEVcdUZGMENDbGF1ZGUgXHU1QzA2XHU1QzNEXHU5MUNGXHU0RjdGXHU3NTI4XHU2MzA3XHU1QjlBXHU4QkVEXHU4QTAwXHU1NkRFXHU1OTBEXHUzMDAyPC9wPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1zdHJ1Y3R1cmVkLXJ1bm5lciI+XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREIFJ1bm5lcjwvbGFiZWw+PHNlbGVjdCBpZD0iY2ZnLXN0cnVjdHVyZWQtcnVubmVyIiBjbGFzcz0iZmllbGQtaW5wdXQiPjxvcHRpb24gdmFsdWU9InNkayI+U0RLXHVGRjA4QGFudGhyb3BpYy1haS9jbGF1ZGUtYWdlbnQtc2RrXHVGRjBDXHU5RUQ4XHU4QkE0XHVGRjA5PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iY2xpIj5DTElcdUZGMDhzcGF3biBjbGF1ZGUgLXBcdUZGMDk8L29wdGlvbj48L3NlbGVjdD48cCBjbGFzcz0iZmllbGQtaGludCIgc3R5bGU9Im1hcmdpbi10b3A6NHB4OyI+U0RLIFx1NkEyMVx1NUYwRlx1NEY3Rlx1NzUyOFx1NUI5OFx1NjVCOSBBZ2VudCBTREsgXHU2NkZGXHU0RUUzIENMSSBzdWJwcm9jZXNzXHVGRjBDXHU2M0E1XHU1M0UzXHU2NkY0XHU2NTc0XHU2RDAxXHVGRjBDXHU1MjlGXHU4MEZEXHU3QjQ5XHU0RUY3XHUzMDAyXHU0RkREXHU1QjU4XHU1NDBFXHU1QkY5XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHU3QUNCXHU1MzczXHU3NTFGXHU2NTQ4XHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1yb3ciPjxkaXYgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10ZXh0Ij48bGFiZWwgY2xhc3M9InNldHRpbmdzLXRvZ2dsZS10aXRsZSIgZm9yPSJjZmctaW5oZXJpdC1lbnYiPlx1N0VFN1x1NjI3Rlx1NzNBRlx1NTg4M1x1NTNEOFx1OTFDRjwvbGFiZWw+PHNwYW4gY2xhc3M9InNldHRpbmdzLXRvZ2dsZS1kZXNjIj5cdTU0MkZcdTUyQTggUFRZIC8gXHU3RUQzXHU2Nzg0XHU1MzE2XHU1QjUwXHU4RkRCXHU3QTBCXHU2NUY2XHVGRjBDXHU2MjhBXHU1RjUzXHU1MjREXHU2NzBEXHU1MkExXHU4RkRCXHU3QTBCXHU3Njg0XHU3M0FGXHU1ODgzXHU1M0Q4XHU5MUNGXHU0RjIwXHU3RUQ5IGNsYXVkZSAvIGNvZGV4XHUzMDAyXHU1MTczXHU5NUVEXHU1NDBFXHU1QjUwXHU4RkRCXHU3QTBCXHU0RUM1XHU4M0I3XHU1Rjk3XHU2NzAwXHU1QzBGXHU1M0VGXHU3NTI4XHU3M0FGXHU1ODgzXHVGRjA4UEFUSC9IT01FL1NIRUxML0xBTkcvVEVSTSBcdTdCNDlcdUZGMDlcdUZGMENcdTUzRUZcdTc1MjhcdTRFOEVcdTk2OTRcdTc5QkIgQVBJIGtleSBcdTdCNDlcdTY1NEZcdTYxMUZcdTUxRURcdTYzNkVcdTMwMDI8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtdG9nZ2xlLWFzaWRlIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImNmZy12aWV3LWVudi1idG4iIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHRpdGxlPSJcdTY3RTVcdTc3MEJcdTVCOUVcdTk2NDVcdTRGMUFcdTZDRThcdTUxNjVcdTUyMzBcdTVCNTBcdThGREJcdTdBMEJcdTc2ODRcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0YiPlx1NjdFNVx1NzcwQjwvYnV0dG9uPjxsYWJlbCBjbGFzcz0ic2V0dGluZ3Mtc3dpdGNoIj48aW5wdXQgaWQ9ImNmZy1pbmhlcml0LWVudiIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9sYWJlbD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZmctZGVmYXVsdC1tb2RlbCI+XHU5RUQ4XHU4QkE0XHU2QTIxXHU1NzhCPC9sYWJlbD48ZGl2IGNsYXNzPSJzZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24iPjxzZWxlY3QgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsIiBjbGFzcz0iZmllbGQtaW5wdXQgZmllbGQtc2VsZWN0Ij48b3B0aW9uIHZhbHVlPSIiPlx1OERERlx1OTY4RiBDbGF1ZGUgQ29kZSBcdTlFRDhcdThCQTQ8L29wdGlvbj48L3NlbGVjdD48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9ImNmZy1kZWZhdWx0LW1vZGVsLXJlZnJlc2giIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHRpdGxlPSJcdTUyMzdcdTY1QjBcdTZBMjFcdTU3OEJcdTUyMTdcdTg4NjgiPlx1NTIzN1x1NjVCMDwvYnV0dG9uPjwvZGl2PjxwIGNsYXNzPSJmaWVsZC1oaW50IiBpZD0iY2ZnLWRlZmF1bHQtbW9kZWwtdmVyc2lvbiI+XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHU2NUY2XHU5RUQ4XHU4QkE0XHU0RjdGXHU3NTI4XHU4QkU1XHU2QTIxXHU1NzhCXHVGRjFCXHU4RkQwXHU4ODRDXHU0RTJEXHU3Njg0XHU0RjFBXHU4QkREXHU1M0VGXHU1NzI4XHU4RjkzXHU1MTY1XHU2ODQ2XHU1MjA3XHU2MzYyXHUzMDAyPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1jd2QiPlx1OUVEOFx1OEJBNFx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvbGFiZWw+PGlucHV0IGlkPSJjZmctY3dkIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSIvaG9tZS91c2VyIiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImNmZy1zaGVsbCI+U2hlbGw8L2xhYmVsPjxpbnB1dCBpZD0iY2ZnLXNoZWxsIiB0eXBlPSJ0ZXh0IiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSIvYmluL2Jhc2giIC8+PC9kaXY+JysodHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXRBcHBJY29uPT0iZnVuY3Rpb24iPyc8ZGl2IGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1ibG9jayI+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkIj48c3BhbiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1pY29uIj4nK3ooInBhbGV0dGUiLHtzaXplOjE4LHN0cm9rZVdpZHRoOjEuN30pKyc8L3NwYW4+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkLXRleHQiPjxoNCBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi1oZWFkaW5nIj5cdTVFOTRcdTc1MjhcdTU2RkVcdTY4MDc8L2g0PjxwIGNsYXNzPSJzZXR0aW5ncy1zZWN0aW9uLXN1YiI+XHU5MDA5XHU2MkU5IEFwcCBcdTU0MkZcdTUyQThcdTU2NjhcdTU2RkVcdTY4MDdcdUZGMENcdThGRDRcdTU2REVcdTY4NENcdTk3NjJcdTU0MEVcdTc1MUZcdTY1NDg8L3A+PC9kaXY+PC9kaXY+PGRpdiBpZD0iYXBwLWljb24tcGlja2VyIiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tcGlja2VyIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLW9wdGlvbiIgZGF0YS1pY29uPSJzaG9ydGhhaXIiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1hcHAtaWNvbi1wcmV2aWV3Ij4nK0NpLnVzZXIrJzwvc3Bhbj48c3BhbiBjbGFzcz0ic2V0dGluZ3MtYXBwLWljb24tbGFiZWwiPlx1OEQ1Qlx1NTM1QVx1ODY0RVx1NTk5RTwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLW9wdGlvbiIgZGF0YS1pY29uPSJnYXJmaWVsZCI+PHNwYW4gY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLXByZXZpZXciPicrQ2kuYXNzaXN0YW50Kyc8L3NwYW4+PHNwYW4gY2xhc3M9InNldHRpbmdzLWFwcC1pY29uLWxhYmVsIj5cdTUyRTRcdTUyQjNcdTUyMURcdTRFOEM8L3NwYW4+PC9idXR0b24+PC9kaXY+PHAgaWQ9ImFwcC1pY29uLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2Pic6IiIpKyc8ZGl2IGNsYXNzPSJzZXR0aW5ncy1hY3Rpb25zIHNldHRpbmdzLWFjdGlvbnMtc3RpY2t5Ij48YnV0dG9uIGlkPSJzYXZlLWNvbmZpZy1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdTRGRERcdTVCNThcdTkxNERcdTdGNkU8L2J1dHRvbj48L2Rpdj48cCBpZD0iY29uZmlnLW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiBzZXR0aW5ncy1zdGF0dXMtbWVzc2FnZSI+PC9wPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLXNlY3VyaXR5IiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTVCODlcdTUxNjg8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1kZXNjIj5cdTdCQTFcdTc0MDZcdTc2N0JcdTVGNTVcdTVCQzZcdTc4MDFcdTRFMEUgU1NMIFx1OEJDMVx1NEU2Nlx1RkYwQ1x1NjU0Rlx1NjExRlx1NTNEOFx1NjZGNFx1OEJGN1x1Nzg2RVx1OEJBNFx1NTQwRVx1NTE4RFx1NEZERFx1NUI1OFx1MzAwMjwvcD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWljb24iPlx1ezFGNTEyfTwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQtdGV4dCI+PGgzIGNsYXNzPSJzZXR0aW5ncy1jYXJkLXRpdGxlIj5cdTRGRUVcdTY1MzlcdTVCQzZcdTc4MDE8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWRlc2MiPlx1ODFGM1x1NUMxMSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1RkYxQlx1NEZERFx1NUI1OFx1NTQwRVx1NEUwQlx1NkIyMVx1NzY3Qlx1NUY1NVx1NzUxRlx1NjU0OFx1MzAwMjwvcD48L2Rpdj48L2Rpdj48Zm9ybSBpZD0iY2hhbmdlLXBhc3N3b3JkLWZvcm0iIGF1dG9jb21wbGV0ZT0ib24iIG9uc3VibWl0PSJyZXR1cm4gZmFsc2U7Ij48aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0idXNlcm5hbWUiIGF1dG9jb21wbGV0ZT0idXNlcm5hbWUiIHZhbHVlPSJ3YW5kIiB0YWJpbmRleD0iLTEiIGFyaWEtaGlkZGVuPSJ0cnVlIiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotOTk5OXB4O3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lIiByZWFkb25seSAvPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9Im5ldy1wYXNzd29yZCI+XHU2NUIwXHU1QkM2XHU3ODAxPC9sYWJlbD48aW5wdXQgaWQ9Im5ldy1wYXNzd29yZCIgdHlwZT0icGFzc3dvcmQiIGNsYXNzPSJmaWVsZC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NjVCMFx1NUJDNlx1NzgwMVx1RkYwOFx1ODFGM1x1NUMxMSA2IFx1NEUyQVx1NUI1N1x1N0IyNlx1RkYwOSIgYXV0b2NvbXBsZXRlPSJuZXctcGFzc3dvcmQiIC8+PC9kaXY+PGRpdiBjbGFzcz0iZmllbGQiPjxsYWJlbCBjbGFzcz0iZmllbGQtbGFiZWwiIGZvcj0iY29uZmlybS1wYXNzd29yZCI+XHU3ODZFXHU4QkE0XHU1QkM2XHU3ODAxPC9sYWJlbD48aW5wdXQgaWQ9ImNvbmZpcm0tcGFzc3dvcmQiIHR5cGU9InBhc3N3b3JkIiBjbGFzcz0iZmllbGQtaW5wdXQiIHBsYWNlaG9sZGVyPSJcdTUxOERcdTZCMjFcdThGOTNcdTUxNjVcdTY1QjBcdTVCQzZcdTc4MDEiIGF1dG9jb21wbGV0ZT0ibmV3LXBhc3N3b3JkIiAvPjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLWNhcmQtYWN0aW9ucyI+PGJ1dHRvbiBpZD0ic2F2ZS1wYXNzd29yZC1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiIHR5cGU9InN1Ym1pdCI+XHU0RkREXHU1QjU4XHU1QkM2XHU3ODAxPC9idXR0b24+PC9kaXY+PHAgaWQ9InNldHRpbmdzLWVycm9yIiBjbGFzcz0iZXJyb3ItbWVzc2FnZSBoaWRkZW4iPjwvcD48cCBpZD0ic2V0dGluZ3Mtc3VjY2VzcyIgY2xhc3M9ImhpbnQgc2V0dGluZ3Mtc3VjY2Vzcy1tZXNzYWdlIGhpZGRlbiI+PC9wPjwvZm9ybT48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQiPjxzcGFuIGNsYXNzPSJzZXR0aW5ncy1jYXJkLWljb24iPlx1ezFGNTEwfTwvc3Bhbj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1jYXJkLWhlYWQtdGV4dCI+PGgzIGNsYXNzPSJzZXR0aW5ncy1jYXJkLXRpdGxlIj5TU0wgXHU4QkMxXHU0RTY2PC9oMz48cCBjbGFzcz0ic2V0dGluZ3MtY2FyZC1kZXNjIiBpZD0iY2VydC1zdGF0dXMiPlx1NTJBMFx1OEY3RFx1NEUyRC4uLjwvcD48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZXJ0LWtleS1maWxlIj5cdTc5QzFcdTk0QTVcdTY1ODdcdTRFRjYgKC5rZXkpPC9sYWJlbD48ZGl2IGNsYXNzPSJmaWxlLXBpY2tlciI+PGlucHV0IGlkPSJjZXJ0LWtleS1maWxlIiB0eXBlPSJmaWxlIiBjbGFzcz0iZmlsZS1waWNrZXItaW5wdXQiIGFjY2VwdD0iLmtleSwucGVtIiAvPjxsYWJlbCBmb3I9ImNlcnQta2V5LWZpbGUiIGNsYXNzPSJmaWxlLXBpY2tlci10cmlnZ2VyIj48c3ZnIGNsYXNzPSJmaWxlLXBpY2tlci1pY29uIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0yMS40NCAxMS4wNWwtOS4xOSA5LjE5YTYgNiAwIDAgMS04LjQ5LTguNDlsOS4xOS05LjE5YTQgNCAwIDAgMSA1LjY2IDUuNjZsLTkuMiA5LjE5YTIgMiAwIDAgMS0yLjgzLTIuODNsOC40OS04LjQ4Ij48L3BhdGg+PC9zdmc+PHNwYW4gY2xhc3M9ImZpbGUtcGlja2VyLWxhYmVsIj5cdTkwMDlcdTYyRTlcdTc5QzFcdTk0QTU8L3NwYW4+PC9sYWJlbD48c3BhbiBjbGFzcz0iZmlsZS1waWNrZXItbmFtZSIgZGF0YS1kZWZhdWx0PSJcdTY3MkFcdTkwMDlcdTYyRTlcdTY1ODdcdTRFRjYiPlx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNjwvc3Bhbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCIgZm9yPSJjZXJ0LWNlcnQtZmlsZSI+XHU4QkMxXHU0RTY2XHU2NTg3XHU0RUY2ICguY3J0Ly5wZW0pPC9sYWJlbD48ZGl2IGNsYXNzPSJmaWxlLXBpY2tlciI+PGlucHV0IGlkPSJjZXJ0LWNlcnQtZmlsZSIgdHlwZT0iZmlsZSIgY2xhc3M9ImZpbGUtcGlja2VyLWlucHV0IiBhY2NlcHQ9Ii5jcnQsLnBlbSwuY2VydCIgLz48bGFiZWwgZm9yPSJjZXJ0LWNlcnQtZmlsZSIgY2xhc3M9ImZpbGUtcGlja2VyLXRyaWdnZXIiPjxzdmcgY2xhc3M9ImZpbGUtcGlja2VyLWljb24iIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTE0IDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY4eiI+PC9wYXRoPjxwb2x5bGluZSBwb2ludHM9IjE0IDIgMTQgOCAyMCA4Ij48L3BvbHlsaW5lPjwvc3ZnPjxzcGFuIGNsYXNzPSJmaWxlLXBpY2tlci1sYWJlbCI+XHU5MDA5XHU2MkU5XHU4QkMxXHU0RTY2PC9zcGFuPjwvbGFiZWw+PHNwYW4gY2xhc3M9ImZpbGUtcGlja2VyLW5hbWUiIGRhdGEtZGVmYXVsdD0iXHU2NzJBXHU5MDA5XHU2MkU5XHU2NTg3XHU0RUY2Ij5cdTY3MkFcdTkwMDlcdTYyRTlcdTY1ODdcdTRFRjY8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3MtY2FyZC1hY3Rpb25zIj48YnV0dG9uIGlkPSJ1cGxvYWQtY2VydC1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkiPlx1NEUwQVx1NEYyMFx1OEJDMVx1NEU2NjwvYnV0dG9uPjwvZGl2PjxwIGlkPSJjZXJ0LW1lc3NhZ2UiIGNsYXNzPSJoaW50IGhpZGRlbiI+PC9wPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNldHRpbmdzLXBhbmVsIiBpZD0ic2V0dGluZ3MtdGFiLXByZXNldHMiIHJvbGU9InRhYnBhbmVsIj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1oZWFkZXIiPjxoMyBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtdGl0bGUiPlx1NTQ3RFx1NEVFNFx1OTg4NFx1OEJCRTwvaDM+PHAgY2xhc3M9InNldHRpbmdzLXBhbmVsLWRlc2MiPlx1NUY1M1x1NTI0RFx1NTQ3RFx1NEVFNFx1OTg4NFx1OEJCRVx1NEVDRSBjb25maWcuanNvbiBcdThCRkJcdTUzRDZcdUZGMENcdTUzRUZcdTU3MjhcdThGRDlcdTkxQ0NcdTVGRUJcdTkwMUZcdTY3RTVcdTc3MEJcdTVERjJcdTY3MDlcdTkxNERcdTdGNkVcdTMwMDI8L3A+PC9kaXY+PGRpdiBpZD0icHJlc2V0cy1saXN0IiBjbGFzcz0icHJlc2V0cy1saXN0Ij48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1wYW5lbCIgaWQ9InNldHRpbmdzLXRhYi1kaXNwbGF5IiByb2xlPSJ0YWJwYW5lbCI+PGRpdiBjbGFzcz0ic2V0dGluZ3MtcGFuZWwtaGVhZGVyIj48aDMgY2xhc3M9InNldHRpbmdzLXBhbmVsLXRpdGxlIj5cdTY2M0VcdTc5M0E8L2gzPjxwIGNsYXNzPSJzZXR0aW5ncy1wYW5lbC1kZXNjIj5cdTYzQTdcdTUyMzZcdTgwNEFcdTU5MjlcdTg5QzZcdTU2RkVcdTkxQ0NcdTRFMERcdTU0MENcdTUzNjFcdTcyNDdcdTdDN0JcdTU3OEJcdTc2ODRcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDBcdTcyQjZcdTYwMDFcdTMwMDI8L3A+PC9kaXY+PGRpdiBjbGFzcz0ic2V0dGluZ3Mtc2VjdGlvbi10aXRsZSI+XHU1MzYxXHU3MjQ3XHU5RUQ4XHU4QkE0XHU1QzU1XHU1RjAwXHU3MkI2XHU2MDAxPC9kaXY+PHAgY2xhc3M9ImhpbnQgc2V0dGluZ3MtaW5saW5lLWhpbnQiPlx1OEJCRVx1N0Y2RVx1N0VEM1x1Njc4NFx1NTMxNlx1ODA0QVx1NTkyOVx1ODlDNlx1NTZGRVx1NEUyRFx1NTQwNFx1N0M3Qlx1NTM2MVx1NzI0N1x1NzY4NFx1OUVEOFx1OEJBNFx1NUM1NVx1NUYwMC9cdTYyOThcdTUzRTBcdTcyQjZcdTYwMDFcdTMwMDJcdTYyNEJcdTUyQThcdTY0Q0RcdTRGNUNcdTc2ODRcdTVDNTVcdTVGMDBcdTcyQjZcdTYwMDFcdTRGMThcdTUxNDhcdTRFOEVcdTZCNjRcdTlFRDhcdThCQTRcdThCQkVcdTdGNkVcdTMwMDI8L3A+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtbGlzdCI+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC1lZGl0Ij48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU3RjE2XHU4RjkxXHU1MzYxXHU3MjQ3IChFZGl0L1dyaXRlKTwvc3Bhbj48aW5wdXQgaWQ9ImNmZy1jYXJkLWVkaXQiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSIgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWRlc2MiPlx1NjU4N1x1NEVGNlx1N0YxNlx1OEY5MVx1NTQ4Q1x1NTE5OVx1NTE2NVx1NjRDRFx1NEY1Q1x1NzY4NCBkaWZmIFx1ODlDNlx1NTZGRTwvZGl2PjwvbGFiZWw+PGxhYmVsIGNsYXNzPSJzd2l0Y2gtY2FyZCIgZm9yPSJjZmctY2FyZC1pbmxpbmUiPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTUxODVcdTgwNTRcdTVERTVcdTUxNzcgKFJlYWQvR2xvYi9HcmVwKTwvc3Bhbj48aW5wdXQgaWQ9ImNmZy1jYXJkLWlubGluZSIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+XHU2NTg3XHU0RUY2XHU4QkZCXHU1M0Q2XHUzMDAxXHU2NDFDXHU3RDIyXHU3QjQ5XHU1REU1XHU1MTc3XHU3Njg0XHU3RUQzXHU2NzlDPC9kaXY+PC9sYWJlbD48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLXRlcm1pbmFsIj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJzd2l0Y2gtY2FyZC10aXRsZSI+XHU3RUM4XHU3QUVGXHU4RjkzXHU1MUZBIChCYXNoKTwvc3Bhbj48aW5wdXQgaWQ9ImNmZy1jYXJkLXRlcm1pbmFsIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5cdTU0N0RcdTRFRTRcdTg4NENcdTYyNjdcdTg4NENcdTdFRDNcdTY3OUM8L2Rpdj48L2xhYmVsPjxsYWJlbCBjbGFzcz0ic3dpdGNoLWNhcmQiIGZvcj0iY2ZnLWNhcmQtdGhpbmtpbmciPjxkaXYgY2xhc3M9InN3aXRjaC1jYXJkLWhlYWRlciI+PHNwYW4gY2xhc3M9InN3aXRjaC1jYXJkLXRpdGxlIj5cdTYwMURcdTgwMDNcdThGQzdcdTdBMEIgKFRoaW5raW5nKTwvc3Bhbj48aW5wdXQgaWQ9ImNmZy1jYXJkLXRoaW5raW5nIiB0eXBlPSJjaGVja2JveCIgY2xhc3M9InN3aXRjaC10b2dnbGUiIC8+PHNwYW4gY2xhc3M9InN3aXRjaC1zbGlkZXIiPjwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzd2l0Y2gtY2FyZC1kZXNjIj5DbGF1ZGUgXHU3Njg0XHU2MDFEXHU4MDAzXHU4RkM3XHU3QTBCXHU1NzU3PC9kaXY+PC9sYWJlbD48bGFiZWwgY2xhc3M9InN3aXRjaC1jYXJkIiBmb3I9ImNmZy1jYXJkLXRvb2xncm91cCI+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtaGVhZGVyIj48c3BhbiBjbGFzcz0ic3dpdGNoLWNhcmQtdGl0bGUiPlx1NURFNVx1NTE3N1x1N0VDNDwvc3Bhbj48aW5wdXQgaWQ9ImNmZy1jYXJkLXRvb2xncm91cCIgdHlwZT0iY2hlY2tib3giIGNsYXNzPSJzd2l0Y2gtdG9nZ2xlIiAvPjxzcGFuIGNsYXNzPSJzd2l0Y2gtc2xpZGVyIj48L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ic3dpdGNoLWNhcmQtZGVzYyI+XHU4RkRFXHU3RUVEXHU1NDBDXHU3QzdCXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4XHU3Njg0XHU2Mjk4XHU1M0UwXHU3RUM0PC9kaXY+PC9sYWJlbD48L2Rpdj48ZGl2IGNsYXNzPSJzZXR0aW5ncy1hY3Rpb25zIHNldHRpbmdzLWFjdGlvbnMtc3RpY2t5Ij48YnV0dG9uIGlkPSJzYXZlLWRpc3BsYXktYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayI+XHU0RkREXHU1QjU4XHU2NjNFXHU3OTNBXHU4QkJFXHU3RjZFPC9idXR0b24+PC9kaXY+PHAgaWQ9ImRpc3BsYXktbWVzc2FnZSIgY2xhc3M9ImhpbnQgaGlkZGVuIHNldHRpbmdzLXN0YXR1cy1tZXNzYWdlIj48L3A+PC9kaXY+PC9kaXY+PC9kaXY+PC9zZWN0aW9uPid9ZnVuY3Rpb24gRmcoZSl7dmFyIHQ9ZXQoKTtyZXR1cm4gZS5zZWxlY3RlZElkPyIiOic8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWNvbXBhY3QiIGlkPSJmb2xkZXItcGlja2VyLWNvbnRhaW5lciI+PGRpdiBjbGFzcz0iZm9sZGVyLXBpY2tlci1jb21wYWN0LXJvdyI+PHNwYW4gY2xhc3M9ImZvbGRlci1waWNrZXItY29tcGFjdC1pY29uIj4nK3ooImZvbGRlciIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZvbGRlci1waWNrZXItaW5wdXQiIGNsYXNzPSJmb2xkZXItcGlja2VyLWNvbXBhY3QtaW5wdXQiIHZhbHVlPSInK3AodCkrJyIgcGxhY2Vob2xkZXI9Ilx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NSIgYXV0b2NvbXBsZXRlPSJvZmYiIC8+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGlkPSJmb2xkZXItcGlja2VyLXRvZ2dsZSIgY2xhc3M9ImZvbGRlci1waWNrZXItdG9nZ2xlIiB0aXRsZT0iXHU5MDA5XHU2MkU5XHU3NkVFXHU1RjU1IiBhcmlhLWxhYmVsPSJcdTkwMDlcdTYyRTlcdTc2RUVcdTVGNTUiPicreigiY2hldnJvbkRvd24iLHtzaXplOjExLHN0cm9rZVdpZHRoOjJ9KSsnPC9idXR0b24+PC9kaXY+PGRpdiBpZD0iZm9sZGVyLXBpY2tlci1kcm9wZG93biIgY2xhc3M9ImZvbGRlci1waWNrZXItZHJvcGRvd24gaGlkZGVuIj48ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLXJvdyI+PGJ1dHRvbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1idG4iIGRhdGEtcGF0aD0iL3RtcCI+XHU0RTM0XHU2NUY2PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1idG4iIGRhdGEtcGF0aD0iLyI+XHU2ODM5XHU3NkVFXHU1RjU1PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBpZD0iZm9sZGVyLXBpY2tlci12YWxpZGF0aW9uIiBjbGFzcz0iZm9sZGVyLXBpY2tlci12YWxpZGF0aW9uIj48L2Rpdj48L2Rpdj4nfWZ1bmN0aW9uIHdnKGUpe3ZhciB0PWV0KCksbj10O2lmKGUuc2VsZWN0ZWRJZCl7dmFyIGk9ZS5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ZS5zZWxlY3RlZElkfSk7bj1pJiZpLmN3ZD9pLmN3ZDp0fXJldHVybic8ZGl2IGNsYXNzPSJ3b3JraW5nLWRpci1pbmRpY2F0b3IiIGlkPSJ3b3JraW5nLWRpci1pbmRpY2F0b3IiIHRpdGxlPSInK3AobikrJyIgZGF0YS1wYXRoPSInK3AobikrJyI+PHNwYW4gY2xhc3M9IndvcmtpbmctZGlyLWluZGljYXRvci1pY29uIj4nK3ooImZvbGRlciIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0id29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGgiIGlkPSJ3b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aCI+JytwKG4pKyI8L3NwYW4+PC9kaXY+In1mdW5jdGlvbiB0cyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1EYXRlLm5vdygpLG49bmV3IERhdGUoZSkuZ2V0VGltZSgpLGk9TWF0aC5tYXgoMCx0LW4pLGE9TWF0aC5mbG9vcihpLzFlMyk7aWYoYTw2MClyZXR1cm4iXHU1MjFBXHU1MjFBIjt2YXIgdT1NYXRoLmZsb29yKGEvNjApO2lmKHU8NjApcmV0dXJuIHUrIlx1NTIwNlx1OTQ5Rlx1NTI0RCI7dmFyIHM9TWF0aC5mbG9vcih1LzYwKTtpZihzPDI0KXJldHVybiBzKyJcdTVDMEZcdTY1RjZcdTUyNEQiO3ZhciBvPU1hdGguZmxvb3Iocy8yNCk7cmV0dXJuIG88MzA/bysiXHU1OTI5XHU1MjREIjpNYXRoLmZsb29yKG8vMzApKyJcdTRFMkFcdTY3MDhcdTUyNEQifWZ1bmN0aW9uIG5zKGUpe2lmKCFlKXJldHVybiIiO3ZhciB0PURhdGUubm93KCksbj1uZXcgRGF0ZShlKS5nZXRUaW1lKCksaT1NYXRoLm1heCgwLHQtbiksYT1NYXRoLmZsb29yKGkvMWUzKSx1PU1hdGguZmxvb3IoYS82MCkscz1NYXRoLmZsb29yKHUvNjApO3JldHVybiBzPjA/cysiaCIrKHUlNjA+MD91JTYwKyJtIjoiIik6dT4wP3UrIm0iOmErInMifWZ1bmN0aW9uIGNyKGUpe2lmKCFlKXJldHVybiIiO2lmKGUuYXJjaGl2ZWQpcmV0dXJuIlx1NURGMlx1NUY1Mlx1Njg2MyI7aWYoZS5wZXJtaXNzaW9uQmxvY2tlZClyZXR1cm4iXHU3QjQ5XHU1Rjg1XHU2Mzg4XHU2NzQzIjtpZih1ZShlKSYmZS5zdHJ1Y3R1cmVkU3RhdGUmJmUuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0KXJldHVybiJcdTYwMURcdTgwMDNcdTRFMkQiO3ZhciB0PXtpZGxlOiJcdTdBN0FcdTk1RjIiLHN0b3BwZWQ6Ilx1NURGMlx1NTA1Q1x1NkI2MiIscnVubmluZzoiXHU4RkQwXHU4ODRDXHU0RTJEIixleGl0ZWQ6Ilx1NURGMlx1OTAwMFx1NTFGQSIsZmFpbGVkOiJcdTVERjJcdTU5MzFcdThEMjUifTtyZXR1cm4gdFtlLnN0YXR1c118fGUuc3RhdHVzfWZ1bmN0aW9uIHJzKGUpe3JldHVybiBlP2UuYXJjaGl2ZWQ/ImFyY2hpdmVkIjplLnBlcm1pc3Npb25CbG9ja2VkPyJwZXJtaXNzaW9uLWJsb2NrZWQiOnVlKGUpJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQ/InJ1bm5pbmciOmUuc3RhdHVzfHwiIjoiIn1mdW5jdGlvbiBIYyhlKXtyZXR1cm4gZT9lLnBlcm1pc3Npb25CbG9ja2VkPyJcdTdCNDlcdTVGODVcdTRGNjBcdTc2ODRcdTYzODhcdTY3NDMiOmUuc3RhdHVzIT09InJ1bm5pbmciPyIiOmUuaWQ9PT1yLnNlbGVjdGVkSWQmJnIuY3VycmVudFRhc2smJnIuY3VycmVudFRhc2sudGl0bGU/ci5jdXJyZW50VGFzay50aXRsZTplLmN1cnJlbnRUYXNrVGl0bGU/ZS5jdXJyZW50VGFza1RpdGxlOiIiOiIifWZ1bmN0aW9uIF9jKGUpe3ZhciB0PWUmJmUubWVzc2FnZXM7aWYoIXR8fHQubGVuZ3RoPT09MClyZXR1cm4iIjtmb3IodmFyIG49dC5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIGk9dFtuXTtpZighKCFpfHxpLnJvbGUhPT0idXNlciIpKXt2YXIgYT1pLmNvbnRlbnQ7aWYodHlwZW9mIGE9PSJzdHJpbmciKXt2YXIgdT1hLnRyaW0oKTtpZih1KXJldHVybiB1O2NvbnRpbnVlfWlmKEFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBzPTA7czxhLmxlbmd0aDtzKyspe3ZhciBvPWFbc107aWYoISghb3x8by50eXBlIT09InRleHQifHwhby50ZXh0KSYmIW8uX19xdWV1ZWQpe3ZhciBsPVN0cmluZyhvLnRleHQpLnRyaW0oKTtpZihsKXJldHVybiBsfX19fXJldHVybiIifWZ1bmN0aW9uIE5jKGUpe3ZhciB0PWUmJmUubWVzc2FnZXM7aWYoIXR8fHQubGVuZ3RoPT09MClyZXR1cm4iIjtmb3IodmFyIG49dC5sZW5ndGgtMTtuPj0wO24tLSl7dmFyIGk9dFtuXTtpZihpLnJvbGU9PT0iYXNzaXN0YW50Iil7Zm9yKHZhciBhPWkuY29udGVudHx8W10sdT0wO3U8YS5sZW5ndGg7dSsrKWlmKGFbdV0udHlwZT09PSJ0ZXh0IiYmYVt1XS50ZXh0JiZhW3VdLnRleHQudHJpbSgpKXt2YXIgcz1hW3VdLnRleHQudHJpbSgpO3M9cy5yZXBsYWNlKC9eIytccysvZ20sIiIpLnJlcGxhY2UoL1wqXCovZywiIikucmVwbGFjZSgvYC9nLCIiKTt2YXIgbz1zLnNwbGl0KGAKYClbMF0udHJpbSgpO3JldHVybiBvLnNsaWNlKDAsMTAwKX19fXJldHVybiIifWZ1bmN0aW9uIGVhKGUsdCl7dmFyIG49ZS5pZD09PXIuc2VsZWN0ZWRJZD8iIGFjdGl2ZSI6IiIsaT1yLnNlc3Npb25zTWFuYWdlTW9kZSYmci5zZWxlY3RlZFNlc3Npb25JZHNbZS5pZF0/IiBzZWxlY3RlZCI6IiIsYT1jcihlKSx1PXJzKGUpLHM9IiIsbz1mcygic2Vzc2lvbnMiLGUuaWQsIlx1OTAwOVx1NjJFOVx1NEYxQVx1OEJERCAiK2UuY29tbWFuZCk7aWYoKGUucHJvdmlkZXI9PT0iY2xhdWRlInx8ZS5wcm92aWRlcj09PSJjb2RleCIpJiZlLmNsYXVkZVNlc3Npb25JZCYmZS5zdGF0dXMhPT0icnVubmluZyImJiFyLnNlc3Npb25zTWFuYWdlTW9kZSYmIXVlKGUpKXt2YXIgbD1lLnByb3ZpZGVyPT09ImNvZGV4Ij8iXHU2MDYyXHU1OTBEIENvZGV4IFx1NEYxQVx1OEJERCI6Ilx1NjA2Mlx1NTkwRCBDbGF1ZGUgXHU0RjFBXHU4QkREIjtzPSc8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4iIGRhdGEtYWN0aW9uPSJyZXN1bWUiIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iJytsKyciIHRpdGxlPSInK2wrJyI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMSA0djZoNiIvPjxwYXRoIGQ9Ik0zLjUxIDE1YTkgOSAwIDEwNS42NC0xMS4zNkwzIDEwIi8+PC9zdmc+PC9idXR0b24+J312YXIgYz0hci5zZXNzaW9uc01hbmFnZU1vZGUmJmUud29ya3RyZWVFbmFibGVkJiZlLndvcmt0cmVlJiZlLndvcmt0cmVlLmJyYW5jaCYmZS53b3JrdHJlZS5wYXRoLGY9ZS53b3JrdHJlZU1lcmdlU3RhdHVzPT09Im1lcmdlZCImJmUud29ya3RyZWVNZXJnZUluZm8mJmUud29ya3RyZWVNZXJnZUluZm8uY2xlYW51cERvbmU9PT0hMSxkPWUuc3RhdHVzPT09InJ1bm5pbmcifHxlLndvcmt0cmVlTWVyZ2VTdGF0dXM9PT0ibWVyZ2luZyIsdj1mPyJcdTkxQ0RcdThCRDVcdTZFMDVcdTc0MDYgd29ya3RyZWUiOiJcdTU0MDhcdTVFNzZcdTUyMzBcdTRFM0JcdTUyMDZcdTY1MkYiLGg9YyYmZS53b3JrdHJlZU1lcmdlU3RhdHVzIT09Im1lcmdlZCI/JzxidXR0b24gY2xhc3M9InNlc3Npb24tYWN0aW9uLWJ0biBtZXJnZS1idG4iIGRhdGEtYWN0aW9uPSJ3b3JrdHJlZS1tZXJnZSIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSInK3AodikrJyIgdGl0bGU9IicrcCh2KSsnIicrKGQ/IiBkaXNhYmxlZCI6IiIpKyc+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNNyA3aDEwIi8+PHBhdGggZD0iTTcgMTJoMTAiLz48cGF0aCBkPSJNNyAxN2gxMCIvPjxwYXRoIGQ9Ik01IDdsLTIgMiAyIDIiLz48cGF0aCBkPSJNMTkgMTVsMiAyLTIgMiIvPjwvc3ZnPjwvYnV0dG9uPic6Zj8nPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIG1lcmdlLWJ0biIgZGF0YS1hY3Rpb249Indvcmt0cmVlLWNsZWFudXAiIGRhdGEtc2Vzc2lvbi1pZD0iJytlLmlkKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU5MUNEXHU4QkQ1XHU2RTA1XHU3NDA2IHdvcmt0cmVlIiB0aXRsZT0iXHU5MUNEXHU4QkQ1XHU2RTA1XHU3NDA2IHdvcmt0cmVlIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPjwvYnV0dG9uPic6IiIsZz1yLnNlc3Npb25zTWFuYWdlTW9kZT8iIjonPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIGRlbGV0ZS1idG4iIGRhdGEtYWN0aW9uPSJkZWxldGUtc2Vzc2lvbiIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQiIHRpdGxlPSJcdTUyMjBcdTk2NjRcdTZCNjRcdTRGMUFcdThCREQiPjxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTMgNmgxOCIvPjxwYXRoIGQ9Ik04IDZWNGEyIDIgMCAwMTItMmg0YTIgMiAwIDAxMiAydjIiLz48cGF0aCBkPSJNMTkgNmwtMSAxNGEyIDIgMCAwMS0yIDJIOGEyIDIgMCAwMS0yLTJMNSA2Ii8+PC9zdmc+PC9idXR0b24+JyxtPSc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb25zIj4nK3MraCtnKyI8L3NwYW4+Iix5PWUudGl0bGV8fGUuc3VtbWFyeT8nPGRpdiBjbGFzcz0ic2Vzc2lvbi10aXRsZSI+JytwKGUudGl0bGV8fGUuc3VtbWFyeSkrIjwvZGl2PiI6JzxkaXYgY2xhc3M9InNlc3Npb24tY29tbWFuZCI+JytwKGUucmVzdW1lZEZyb21TZXNzaW9uSWQ/ZS5jb21tYW5kLnJlcGxhY2UoL1xzKy0tcmVzdW1lXHMrXFMrLywiIikucmVwbGFjZSgvXHMrcmVzdW1lXHMrWzAtOWEtZi1dKy8sIiIpOmUuY29tbWFuZCkrIjwvZGl2PiIsdz1IYyhlKSxFPSIiO2Uuc3RhdHVzPT09InJ1bm5pbmciJiZ3JiYoRT0nPGRpdiBjbGFzcz0ic2Vzc2lvbi1hY3Rpdml0eSI+JytwKHcpKyI8L2Rpdj4iKTt2YXIgQj1lLmRlc2NyaXB0aW9uPyc8ZGl2IGNsYXNzPSJzZXNzaW9uLWRlc2NyaXB0aW9uIj4nK3AoZS5kZXNjcmlwdGlvbikrIjwvZGl2PiI6IiIsRj0iIjtlLnN0YXR1cz09PSJydW5uaW5nIj9GPSc8c3BhbiBjbGFzcz0ic2Vzc2lvbi10aW1lIiB0aXRsZT0iXHU1REYyXHU4RkQwXHU4ODRDICcrcChucyhlLnN0YXJ0ZWRBdCkpKyciPicrcChucyhlLnN0YXJ0ZWRBdCkpKyI8L3NwYW4+IjplLmVuZGVkQXQ/Rj0nPHNwYW4gY2xhc3M9InNlc3Npb24tdGltZSIgdGl0bGU9IicrcChuZXcgRGF0ZShlLmVuZGVkQXQpLnRvTG9jYWxlU3RyaW5nKCkpKyciPicrcCh0cyhlLmVuZGVkQXQpKSsiPC9zcGFuPiI6ZS5zdGFydGVkQXQmJihGPSc8c3BhbiBjbGFzcz0ic2Vzc2lvbi10aW1lIiB0aXRsZT0iJytwKG5ldyBEYXRlKGUuc3RhcnRlZEF0KS50b0xvY2FsZVN0cmluZygpKSsnIj4nK3AodHMoZS5zdGFydGVkQXQpKSsiPC9zcGFuPiIpO3ZhciB4PWlzKGUpLFM9ZS5hdXRvUmVjb3ZlcmVkPyc8c3BhbiBjbGFzcz0ic2Vzc2lvbi1yZWNvdmVyeS1oaW50Ij5cdTgxRUFcdTUyQThcdTYwNjJcdTU5MEQ8L3NwYW4+JzoiIixfPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8ZGl2IGNsYXNzPSJzZXNzaW9uLXN3aXBlLWJnIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1zd2lwZS1kZWxldGUiIGRhdGEtYWN0aW9uPSJzd2lwZS1kZWxldGUtc2Vzc2lvbiIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgdHlwZT0iYnV0dG9uIiB0YWJpbmRleD0iLTEiIGFyaWEtbGFiZWw9Ilx1NTIyMFx1OTY2NFx1NEYxQVx1OEJERCI+PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNMyA2aDE4Ii8+PHBhdGggZD0iTTggNlY0YTIgMiAwIDAxMi0yaDRhMiAyIDAgMDEyIDJ2MiIvPjxwYXRoIGQ9Ik0xOSA2bC0xIDE0YTIgMiAwIDAxLTIgMkg4YTIgMiAwIDAxLTItMkw1IDYiLz48L3N2Zz48c3Bhbj5cdTUyMjBcdTk2NjQ8L3NwYW4+PC9idXR0b24+PC9kaXY+JztyZXR1cm4nPGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtJytuK2krJyIgZGF0YS1zZXNzaW9uLWlkPSInK2UuaWQrJyIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCI+JytfKyc8ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tY29udGVudCI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtLXJvdyI+JytvKyc8ZGl2IGNsYXNzPSJzZXNzaW9uLW1haW4iPjxkaXYgY2xhc3M9InNlc3Npb24tdGl0bGUtcm93Ij4nK3krRisiPC9kaXY+IitCK0UrJzxkaXYgY2xhc3M9InNlc3Npb24tbWV0YSI+PHNwYW4gY2xhc3M9InNlc3Npb24tc3RhdHVzICcrdSsnIj4nK3AoYSkrIjwvc3Bhbj4iK3grUysiPC9kaXY+PC9kaXY+IittKyI8L2Rpdj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIGpjKGUpe2lmKCFlfHwhZS53b3JrdHJlZU1lcmdlU3RhdHVzKXJldHVybiIiO3ZhciB0PXtyZWFkeToiXHU1M0VGXHU1NDA4XHU1RTc2IixjaGVja2luZzoiXHU2OEMwXHU2N0U1XHU0RTJEIixtZXJnaW5nOiJcdTU0MDhcdTVFNzZcdTRFMkQiLG1lcmdlZDplLndvcmt0cmVlTWVyZ2VJbmZvJiZlLndvcmt0cmVlTWVyZ2VJbmZvLmNsZWFudXBEb25lPT09ITE/Ilx1NURGMlx1NTQwOFx1NUU3Nlx1NUY4NVx1NkUwNVx1NzQwNiI6Ilx1NURGMlx1NTQwOFx1NUU3NiIsZmFpbGVkOiJcdTU0MDhcdTVFNzZcdTU5MzFcdThEMjUifTtyZXR1cm4gdFtlLndvcmt0cmVlTWVyZ2VTdGF0dXNdfHwiIn1mdW5jdGlvbiBSYyhlKXt2YXIgdD1qYyhlKTtyZXR1cm4gdD8nPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSB3b3JrdHJlZS1tZXJnZSAnK3AoZS53b3JrdHJlZU1lcmdlU3RhdHVzfHwiIikrJyI+JytwKHQpKyI8L3NwYW4+IjoiIn1mdW5jdGlvbiBpcyhlKXtpZighZXx8IWUud29ya3RyZWVFbmFibGVkKXJldHVybiIiO3ZhciB0PVtdO2Uud29ya3RyZWUmJmUud29ya3RyZWUuYnJhbmNoJiZ0LnB1c2goIldvcmt0cmVlOiAiK2Uud29ya3RyZWUuYnJhbmNoKSxlLndvcmt0cmVlJiZlLndvcmt0cmVlLnBhdGgmJnQucHVzaCgiUGF0aDogIitlLndvcmt0cmVlLnBhdGgpO3ZhciBuPXQubGVuZ3RoPjA/JyB0aXRsZT0iJytwKHQuam9pbihgCmApKSsnIic6IiI7cmV0dXJuJzxzcGFuIGNsYXNzPSJzZXNzaW9uLWtpbmQtYmFkZ2Ugd29ya3RyZWUiJytuKyI+V29ya3RyZWU8L3NwYW4+IitSYyhlKX1mdW5jdGlvbiBDZyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD11ZShlKT8nPHNwYW4gY2xhc3M9InNlc3Npb24ta2luZC1iYWRnZSBzdHJ1Y3R1cmVkIj5TdHJ1Y3R1cmVkPC9zcGFuPic6JzxzcGFuIGNsYXNzPSJzZXNzaW9uLWtpbmQtYmFkZ2UgcHR5Ij5QVFk8L3NwYW4+JztyZXR1cm4gdCtpcyhlKX1mdW5jdGlvbiBXYyhlKXt2YXIgdD1be2lkOiJtYW5hZ2VkIixsYWJlbDoiXHU2MjU4XHU3QkExIixkZXNjOiJcdTUxNjhcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTRFRkJcdTUyQTEifSx7aWQ6ImZ1bGwtYWNjZXNzIixsYWJlbDoiXHU1MTY4XHU2NzQzXHU5NjUwIixkZXNjOiJcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY3NDNcdTk2NTAifSx7aWQ6ImF1dG8tZWRpdCIsbGFiZWw6Ilx1ODFFQVx1NTJBOFx1N0YxNlx1OEY5MSIsZGVzYzoiXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU0RkVFXHU2NTM5In0se2lkOiJkZWZhdWx0IixsYWJlbDoiXHU2ODA3XHU1MUM2IixkZXNjOiJcdTkwMTBcdTZCNjVcdTc4NkVcdThCQTRcdTY0Q0RcdTRGNUMifSx7aWQ6Im5hdGl2ZSIsbGFiZWw6Ilx1NTM5Rlx1NzUxRiIsZGVzYzoiXHU1MzlGXHU3NTFGXHU3RUQzXHU2Nzg0XHU1MzE2XHU4RjkzXHU1MUZBIn1dO3JldHVybiB0Lm1hcChmdW5jdGlvbihuKXt2YXIgaT1uLmlkPT09ZT8iIGFjdGl2ZSI6IiI7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZS1jYXJkJytpKyciIGRhdGEtbW9kZT0iJytuLmlkKyciPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtbGFiZWwiPicrbi5sYWJlbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtZGVzYyI+JytuLmRlc2MrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gemMoZSl7dmFyIHQ9W3tpZDoiY2xhdWRlIixsYWJlbDoiQ2xhdWRlIixkZXNjOiJcdTVCOENcdTY1NzQgQ2xhdWRlIFx1NEYxQVx1OEJERFx1ODBGRFx1NTI5QiJ9LHtpZDoiY29kZXgiLGxhYmVsOiJDb2RleCIsZGVzYzoiXHU3RUQzXHU2Nzg0XHU1MzE2IEpTT05MIFx1NjIxNiBQVFkgXHU0RjFBXHU4QkREIn1dO3JldHVybiB0Lm1hcChmdW5jdGlvbihuKXt2YXIgaT1uLmlkPT09ZT8iIGFjdGl2ZSI6IiI7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZS1jYXJkIHByb3ZpZGVyLWNhcmQnK2krJyIgZGF0YS1wcm92aWRlcj0iJytuLmlkKyciPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtbGFiZWwiPicrbi5sYWJlbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJtb2RlLWNhcmQtZGVzYyI+JytuLmRlc2MrIjwvc3Bhbj48L2J1dHRvbj4ifSkuam9pbigiIil9ZnVuY3Rpb24gVWMoZSl7dmFyIHQ9W3tpZDoic3RydWN0dXJlZCIsbGFiZWw6Ilx1N0VEM1x1Njc4NFx1NTMxNiIsZGVzYzoiXHU2NjdBXHU4MEZEXHU1QkY5XHU4QkREXHU2QTIxXHU1RjBGIn0se2lkOiJwdHkiLGxhYmVsOiJQVFkiLGRlc2M6Ilx1NEVBNFx1NEU5Mlx1NUYwRlx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERCJ9XTtyZXR1cm4gdC5tYXAoZnVuY3Rpb24obil7dmFyIGk9bi5pZD09PWU/IiBhY3RpdmUiOiIiLGE9IiI7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ibW9kZS1jYXJkIHNlc3Npb24ta2luZC1jYXJkJytpK2ErJyIgZGF0YS1zZXNzaW9uLWtpbmQ9Iicrbi5pZCsnIj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWxhYmVsIj4nK24ubGFiZWwrJzwvc3Bhbj48c3BhbiBjbGFzcz0ibW9kZS1jYXJkLWRlc2MiPicrbi5kZXNjKyI8L3NwYW4+PC9idXR0b24+In0pLmpvaW4oIiIpfWZ1bmN0aW9uIEJnKGUpe3JldHVybic8bGFiZWwgY2xhc3M9InNlc3Npb24taW5saW5lLXRvZ2dsZSIgZm9yPSJzZXNzaW9uLXdvcmt0cmVlLXRvZ2dsZSIgdGl0bGU9Ilx1NEUzQVx1OEJFNVx1NEYxQVx1OEJERFx1NTIxQlx1NUVGQVx1NzJFQ1x1N0FDQlx1NzY4NCBnaXQgd29ya3RyZWUgXHU1MjA2XHU2NTJGIj48c3ZnIGNsYXNzPSJzZXNzaW9uLWlubGluZS10b2dnbGUtaWNvbiIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTMiIGhlaWdodD0iMTMiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxjaXJjbGUgY3g9IjYiIGN5PSI2IiByPSIyLjIiLz48Y2lyY2xlIGN4PSIxOCIgY3k9IjYiIHI9IjIuMiIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTgiIHI9IjIuMiIvPjxwYXRoIGQ9Ik02IDguMnYzLjRhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJWOC4yIi8+PHBhdGggZD0iTTEyIDEzLjZ2Mi4yIi8+PC9zdmc+PHNwYW4gY2xhc3M9InNlc3Npb24taW5saW5lLXRvZ2dsZS1sYWJlbCI+V29ya3RyZWUgXHU2QTIxXHU1RjBGPC9zcGFuPjxpbnB1dCBpZD0ic2Vzc2lvbi13b3JrdHJlZS10b2dnbGUiIHR5cGU9ImNoZWNrYm94IiBjbGFzcz0ic3dpdGNoLXRvZ2dsZSInKyhlPyIgY2hlY2tlZCI6IiIpKycgLz48c3BhbiBjbGFzcz0ic3dpdGNoLXNsaWRlciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48L2xhYmVsPid9ZnVuY3Rpb24gYXMoZSl7dmFyIHQ9ci5zZXNzaW9uVG9vbHx8ImNsYXVkZSI7cmV0dXJuIGU9PT0ic3RydWN0dXJlZCI/dD09PSJjb2RleCI/IkNvZGV4IEpTT05MIFx1N0VEM1x1Njc4NFx1NTMxNlx1ODA0QVx1NTkyOVx1NzU0Q1x1OTc2Mlx1RkYwQ1x1NjUyRlx1NjMwMVx1NTkxQVx1OEY2RVx1NUJGOVx1OEJERFx1NTQ4Q1x1NURFNVx1NTE3N1x1OEMwM1x1NzUyOFx1NUM1NVx1NzkzQVx1MzAwMiI6Ilx1N0VEM1x1Njc4NFx1NTMxNlx1ODA0QVx1NTkyOVx1NzU0Q1x1OTc2Mlx1RkYwQ1x1NjUyRlx1NjMwMVx1NTkxQVx1OEY2RVx1NUJGOVx1OEJERFx1MzAwMVx1NkQ0MVx1NUYwRlx1OEY5M1x1NTFGQVx1NTQ4Q1x1NURFNVx1NTE3N1x1OEMwM1x1NzUyOFx1NUM1NVx1NzkzQVx1MzAwMiI6dD09PSJjb2RleCI/IkNvZGV4IFBUWSBcdTdFQzhcdTdBRUZcdTRGMUFcdThCRERcdUZGMUJ0ZXJtaW5hbCBcdTY2MkZcdTUzOUZcdTU5Q0JcdThGOTNcdTUxRkFcdUZGMENjaGF0IFx1NjYyRlx1ODlFM1x1Njc5MFx1NTQwRVx1NzY4NFx1OTYwNVx1OEJGQlx1ODlDNlx1NTZGRVx1MzAwMiI6Ilx1NTM5Rlx1NTlDQiBQVFkgXHU3RUM4XHU3QUVGXHU0RjFBXHU4QkREXHVGRjBDXHU2NTJGXHU2MzAxXHU2MzAxXHU3RUVEXHU0RUE0XHU0RTkyXHUzMDAxXHU3RUM4XHU3QUVGXHU4OUM2XHU1NkZFXHU1NDhDXHU2NzQzXHU5NjUwXHU2RDQxXHUzMDAyIn1mdW5jdGlvbiBWYygpe3ZhciBlPXR0KCksdD14dChlLHIubW9kZVZhbHVlfHxyLmNoYXRNb2RlfHwiZGVmYXVsdCIpLG49ci5zZXNzaW9uQ3JlYXRlS2luZHx8InN0cnVjdHVyZWQiLGk9ci5zZXNzaW9uQ3JlYXRlV29ya3RyZWU9PT0hMDtyZXR1cm4nPHNlY3Rpb24gaWQ9InNlc3Npb24tbW9kYWwiIGNsYXNzPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iPjxkaXYgY2xhc3M9Im1vZGFsIHNlc3Npb24tbW9kYWwiPjxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciI+PGRpdj48aDIgY2xhc3M9Im1vZGFsLXRpdGxlIj5cdTY1QjBcdTVCRjlcdThCREQ8L2gyPjxwIGNsYXNzPSJtb2RhbC1zdWJ0aXRsZSI+XHU1NDJGXHU1MkE4IENsYXVkZSBcdTYyMTYgQ29kZXggXHU0RjFBXHU4QkREXHVGRjBDXHU5MDA5XHU2MkU5IHByb3ZpZGVyXHUzMDAxXHU0RjFBXHU4QkREXHU3QzdCXHU1NzhCXHUzMDAxXHU2QTIxXHU1RjBGXHU1NDhDXHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1XHUzMDAyPC9wPjwvZGl2PjxidXR0b24gaWQ9ImNsb3NlLW1vZGFsLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIj5Qcm92aWRlcjwvbGFiZWw+PGRpdiBpZD0icHJvdmlkZXItY2FyZHMiIGNsYXNzPSJtb2RlLWNhcmRzIj4nK3pjKGUpKyc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZCI+PGxhYmVsIGNsYXNzPSJmaWVsZC1sYWJlbCI+XHU0RjFBXHU4QkREXHU3QzdCXHU1NzhCPC9sYWJlbD48ZGl2IGlkPSJzZXNzaW9uLWtpbmQtY2FyZHMiIGNsYXNzPSJtb2RlLWNhcmRzIj4nK1VjKG4pKyc8L2Rpdj48ZGl2IGNsYXNzPSJmaWVsZC1oaW50IHNlc3Npb24ta2luZC1oaW50LXJvdyI+PHNwYW4gaWQ9InNlc3Npb24ta2luZC1kZXNjcmlwdGlvbiI+JytwKGFzKG4pKSsnPC9zcGFuPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIj5cdTZBMjFcdTVGMEY8L2xhYmVsPjxkaXYgaWQ9Im1vZGUtY2FyZHMiIGNsYXNzPSJtb2RlLWNhcmRzIj4nK1djKHQpKyc8L2Rpdj48cCBpZD0ibW9kZS1kZXNjcmlwdGlvbiIgY2xhc3M9ImZpZWxkLWhpbnQiPicrcChYbyhlLHQpKSsnPC9wPjwvZGl2PjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9ImN3ZCI+XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1PC9sYWJlbD48ZGl2IGNsYXNzPSJzdWdnZXN0aW9ucy13cmFwIj48aW5wdXQgaWQ9ImN3ZCIgdHlwZT0idGV4dCIgY2xhc3M9ImZpZWxkLWlucHV0IiBhdXRvY29tcGxldGU9Im9mZiIgcGxhY2Vob2xkZXI9IicrcChldCgpKSsnIiAvPjxkaXYgaWQ9ImN3ZC1zdWdnZXN0aW9ucyIgY2xhc3M9InN1Z2dlc3Rpb25zIGhpZGRlbiI+PC9kaXY+PC9kaXY+PHAgY2xhc3M9ImZpZWxkLWhpbnQiPlx1NzU1OVx1N0E3QVx1NTIxOVx1NEY3Rlx1NzUyOFx1NEUwQVx1NjVCOVx1NzZFRVx1NUY1NVx1RkYwQ1x1NjUyRlx1NjMwMVx1OERFRlx1NUY4NFx1ODFFQVx1NTJBOFx1ODg2NVx1NTE2OFx1MzAwMjwvcD48ZGl2IGlkPSJyZWNlbnQtcGF0aHMtYnViYmxlcyIgY2xhc3M9InJlY2VudC1wYXRocy1idWJibGVzIj48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIiPjxidXR0b24gaWQ9InJ1bi1idXR0b24iIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdTU0MkZcdTUyQThcdTRGMUFcdThCREQ8L2J1dHRvbj48cCBpZD0ibW9kYWwtZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiI+PC9wPjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj4nfWZ1bmN0aW9uIHVzKCl7dmFyIGU9RGF0ZS5ub3coKS04NjRlNSx0PVtdO3JldHVybiByLnNlc3Npb25zLmZvckVhY2goZnVuY3Rpb24obil7aWYoIW4uYXJjaGl2ZWQpe3ZhciBpPW4uc3RhcnRlZEF0P25ldyBEYXRlKG4uc3RhcnRlZEF0KS5nZXRUaW1lKCk6MDt0LnB1c2goe2tpbmQ6InNlc3Npb24iLHJlZjpuLHQ6aXNGaW5pdGUoaSk/aTowfSl9fSksci5jbGF1ZGVIaXN0b3J5TG9hZGVkJiZObigpLmZvckVhY2goZnVuY3Rpb24obil7aWYobi50aW1lc3RhbXApe3ZhciBpPW5ldyBEYXRlKG4udGltZXN0YW1wKS5nZXRUaW1lKCk7IWlzRmluaXRlKGkpfHxpPD1lfHx0LnB1c2goe2tpbmQ6Imhpc3RvcnkiLHJlZjpuLHQ6aX0pfX0pLHQuc29ydChmdW5jdGlvbihuLGkpe3JldHVybiBpLnQtbi50fSksdH1mdW5jdGlvbiBLYygpe3ZhciBlPXIuc2Vzc2lvbnMuZmlsdGVyKGZ1bmN0aW9uKGEpe3JldHVybiBhLmFyY2hpdmVkfSksdD1bXTt0LnB1c2goc3MoKSk7dmFyIG49dXMoKSxpPVhjKCk7cmV0dXJuIG4ubGVuZ3RoPjAmJnQucHVzaChRYyhuKSksZS5sZW5ndGg+MCYmdC5wdXNoKFljKGUpKSxuLmxlbmd0aD09PTAmJmUubGVuZ3RoPT09MCYmIWk/c3MoKSsnPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPjxzdHJvbmc+XHU4RkQ4XHU2Q0ExXHU2NzA5XHU0RjFBXHU4QkREXHU4QkIwXHU1RjU1PC9zdHJvbmc+PGJyPlx1NzBCOVx1NTFGQlx1NEUwQVx1NjVCOVx1MzAwQ1x1NjVCMFx1NUJGOVx1OEJERFx1MzAwRFx1NUYwMFx1NTlDQlx1NEY2MFx1NzY4NFx1N0IyQ1x1NEUwMFx1NkIyMVx1NUJGOVx1OEJERFx1MzAwMjwvZGl2Pic6KGkmJnQucHVzaChpKSx0LmpvaW4oIiIpKX1mdW5jdGlvbiBKYygpe3JldHVybiEhci5zaWRlYmFyUGlubmVkJiYhIXIuc2lkZWJhckNvbGxhcHNlZH1mdW5jdGlvbiBHYygpe3ZhciBlPXVzKCksdD1lLm1hcChmdW5jdGlvbihpLGEpe3ZhciB1PWErMTtpZihpLmtpbmQ9PT0ic2Vzc2lvbiIpe3ZhciBzPWkucmVmLG89cy5pZD09PXIuc2VsZWN0ZWRJZD8iIGFjdGl2ZSI6IiIsbD1zLnRpdGxlfHxzLmRlc2NyaXB0aW9ufHxzLnN1bW1hcnl8fHMuY29tbWFuZHx8Ilx1NEYxQVx1OEJERCAiK3U7cmV0dXJuJzxidXR0b24gY2xhc3M9InNpZGViYXItY29sbGFwc2VkLXRpbGUnK28rJyIgdHlwZT0iYnV0dG9uIiBkYXRhLWNvbGxhcHNlZC1zZXNzaW9uLWlkPSInK3Aocy5pZCkrJyIgdGl0bGU9IicrcChsKSsnIj4nK3UrIjwvYnV0dG9uPiJ9dmFyIGM9aS5yZWYsZj1jLmZpcnN0VXNlck1lc3NhZ2V8fCIoXHU3QTdBXHU0RjFBXHU4QkREKSIsZD1mKyIgXHhCNyAiK3BzKGMudGltZXN0YW1wKTtyZXR1cm4nPGJ1dHRvbiBjbGFzcz0ic2lkZWJhci1jb2xsYXBzZWQtdGlsZSBoaXN0b3J5IiB0eXBlPSJidXR0b24iIGRhdGEtY29sbGFwc2VkLWhpc3RvcnktaWQ9IicrcChjLmNsYXVkZVNlc3Npb25JZCkrJyIgZGF0YS1jd2Q9IicrcChjLmN3ZHx8IiIpKyciIHRpdGxlPSInK3AoZCkrJyI+Jyt1KyI8L2J1dHRvbj4ifSkuam9pbigiIiksbj0nPGJ1dHRvbiBjbGFzcz0ic2lkZWJhci1jb2xsYXBzZWQtdGlsZSBhZGQiIHR5cGU9ImJ1dHRvbiIgZGF0YS1jb2xsYXBzZWQtbmV3LXNlc3Npb249IjEiIHRpdGxlPSJcdTY1QjBcdTVFRkFcdTRGMUFcdThCREQiIGFyaWEtbGFiZWw9Ilx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERCI+PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi42IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iMTIiIHkxPSI1IiB4Mj0iMTIiIHkyPSIxOSIvPjxsaW5lIHgxPSI1IiB5MT0iMTIiIHgyPSIxOSIgeTI9IjEyIi8+PC9zdmc+PC9idXR0b24+JztyZXR1cm4nPGRpdiBjbGFzcz0ic2lkZWJhci1jb2xsYXBzZWQtdGlsZXMiPicrdCtuKyI8L2Rpdj4ifWZ1bmN0aW9uIHRhKCl7cmV0dXJuIEpjKCk/R2MoKTpLYygpfWZ1bmN0aW9uIHNzKCl7aWYoIXIuc2Vzc2lvbnNNYW5hZ2VNb2RlKXJldHVybic8ZGl2IGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1iYXIiPjxzcGFuIGNsYXNzPSJzaWRlYmFyLWludHJvIj5cdTY3MDBcdThGRDFcdTc2ODRcdTRGMUFcdThCRERcdThCQjBcdTVGNTU8L3NwYW4+PGJ1dHRvbiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4teHMgc2Vzc2lvbi1tYW5hZ2UtdG9nZ2xlIiBkYXRhLWFjdGlvbj0idG9nZ2xlLW1hbmFnZS1tb2RlIiB0eXBlPSJidXR0b24iPjxzdmcgd2lkdGg9IjExIiBoZWlnaHQ9IjExIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBhdGggZD0iTTkgMTFsMyAzTDIyIDQiLz48cGF0aCBkPSJNMjEgMTJ2N2EyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoMTEiLz48L3N2Zz48c3Bhbj5cdTdCQTFcdTc0MDY8L3NwYW4+PC9idXR0b24+PC9kaXY+Jzt2YXIgZT1vcygpLmxlbmd0aCx0PWxzKCkubGVuZ3RoLG49ZSt0LGk9bj4wLGE9dGQoKSx1PWE+MCYmbj49YSxzPXU/Ilx1NTNENlx1NkQ4OFx1NTE2OFx1OTAwOSI6Ilx1NTE2OFx1OTAwOSIsbz11PyJjbGVhci1zZWxlY3Rpb24iOiJzZWxlY3QtYWxsLXZpc2libGUiLGw9YT09PTA/IiBkaXNhYmxlZCI6IiIsYz0nPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtZXhpdCIgZGF0YS1hY3Rpb249InRvZ2dsZS1tYW5hZ2UtbW9kZSIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTkwMDBcdTUxRkFcdTdCQTFcdTc0MDZcdTZBMjFcdTVGMEYiIHRpdGxlPSJcdTkwMDBcdTUxRkFcdTdCQTFcdTc0MDZcdTZBMjFcdTVGMEYiPjxzdmcgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiLz48L3N2Zz48L2J1dHRvbj4nLGY9aT8nPHNwYW4gY2xhc3M9InNlc3Npb24tbWFuYWdlLWNvdW50Ij4nK24rJzwvc3Bhbj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2Utc3VtbWFyeS1sYWJlbCI+XHU1REYyXHU5MDA5XHU2MkU5PC9zcGFuPic6JzxzcGFuIGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1zdW1tYXJ5LWxhYmVsIG11dGVkIj5cdTkwMDlcdTYyRTlcdTg5ODFcdTdCQTFcdTc0MDZcdTc2ODRcdTk4NzlcdTc2RUU8L3NwYW4+JztyZXR1cm4nPGRpdiBjbGFzcz0ic2Vzc2lvbi1tYW5hZ2UtYmFyIGFjdGl2ZSI+JytjKyc8ZGl2IGNsYXNzPSJzZXNzaW9uLW1hbmFnZS1zdW1tYXJ5Ij4nK2YrJzwvZGl2PjxkaXYgY2xhc3M9InNlc3Npb24tbWFuYWdlLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXhzIiBkYXRhLWFjdGlvbj0iJytvKyciIHR5cGU9ImJ1dHRvbiInK2wrIj4iK3MrJzwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJ0biBidG4tZGFuZ2VyIGJ0bi14cyIgZGF0YS1hY3Rpb249ImRlbGV0ZS1zZWxlY3RlZCIgdHlwZT0iYnV0dG9uIicrKGk/IiI6IiBkaXNhYmxlZCIpKyI+XHU1MjIwXHU5NjY0IisoaT8iICIrbjoiIikrIjwvYnV0dG9uPjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gRGcoZSx0LG4pe3JldHVybic8c2VjdGlvbiBjbGFzcz0ic2Vzc2lvbi1ncm91cCI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1ncm91cC10aXRsZSI+JytwKGUpKyI8L2Rpdj4iK3QubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBlYShpLG4pfSkuam9pbigiIikrIjwvc2VjdGlvbj4ifWZ1bmN0aW9uIFljKGUpe3ZhciB0PSEhci5hcmNoaXZlZEV4cGFuZGVkLG49dD8iJiM5NjYyOyI6IiYjOTY1NjsiLGk9JzxkaXYgY2xhc3M9InNlc3Npb24tZ3JvdXAtdGl0bGUgY2xhdWRlLWhpc3RvcnktdG9nZ2xlIiBkYXRhLWFjdGlvbj0idG9nZ2xlLWFyY2hpdmVkLWdyb3VwIj48c3BhbiBjbGFzcz0iY2hldnJvbiI+JytuKyc8L3NwYW4+IFx1NURGMlx1NUY1Mlx1Njg2MyA8c3BhbiBjbGFzcz0iaGlzdG9yeS1jb3VudCI+JytlLmxlbmd0aCsiPC9zcGFuPjwvZGl2PiI7aWYoIXQpcmV0dXJuJzxzZWN0aW9uIGNsYXNzPSJzZXNzaW9uLWdyb3VwIj4nK2krIjwvc2VjdGlvbj4iO3ZhciBhPWUubWFwKGZ1bmN0aW9uKHUpe3JldHVybiBlYSh1LCJzZXNzaW9ucyIpfSkuam9pbigiIik7cmV0dXJuJzxzZWN0aW9uIGNsYXNzPSJzZXNzaW9uLWdyb3VwIj4nK2krYSsiPC9zZWN0aW9uPiJ9ZnVuY3Rpb24gUWMoZSl7dmFyIHQ9JzxzZWN0aW9uIGNsYXNzPSJzZXNzaW9uLWdyb3VwIHNlc3Npb24tZ3JvdXAtLXJlY2VudCI+JztyZXR1cm4gdCs9ZS5tYXAoZnVuY3Rpb24obil7cmV0dXJuIG4ua2luZD09PSJzZXNzaW9uIj9lYShuLnJlZiwic2Vzc2lvbnMiKTpuYShuLnJlZiwiaGlzdG9yeSIpfSkuam9pbigiIiksdCs9Ijwvc2VjdGlvbj4iLHR9ZnVuY3Rpb24gJGMoKXt2YXIgZT1EYXRlLm5vdygpLTg2NGU1O3JldHVybiBObigpLmZpbHRlcihmdW5jdGlvbih0KXtyZXR1cm4hdC50aW1lc3RhbXB8fG5ldyBEYXRlKHQudGltZXN0YW1wKS5nZXRUaW1lKCk8PWV9KX1mdW5jdGlvbiBYYygpe3ZhciBlPSRjKCksdD0hIXIuY2xhdWRlSGlzdG9yeUxvYWRlZCxuPWNkKCksaT0hIXIuY29kZXhIaXN0b3J5TG9hZGVkLGE9dCYmaSx1PSh0P2UubGVuZ3RoOjApKyhpP24ubGVuZ3RoOjApO2lmKGEmJnU9PT0wKXJldHVybiIiO3ZhciBzPSEhci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQsbz1zPyImIzk2NjI7IjoiJiM5NjU2OyIsbD1hP3U+OTk5PyI5OTkrIjpTdHJpbmcodSk6Ilx4QjdceEI3XHhCNyIsYz0nPGRpdiBjbGFzcz0ic2Vzc2lvbi1ncm91cC10aXRsZSBjbGF1ZGUtaGlzdG9yeS10b2dnbGUgc2Vzc2lvbi1oaXN0b3J5LXRvZ2dsZSIgaWQ9ImNsYXVkZS1oaXN0b3J5LXRvZ2dsZSIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgYXJpYS1leHBhbmRlZD0iJytzKyciIHRpdGxlPSInKyhzPyJcdTY1MzZcdThENzdcdTUzODZcdTUzRjJcdTRGMUFcdThCREQiOiJcdTVDNTVcdTVGMDBcdTUzODZcdTUzRjJcdTRGMUFcdThCREQiKSsnIj48c3BhbiBjbGFzcz0iY2hldnJvbiI+JytvKyc8L3NwYW4+IFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERCA8c3BhbiBjbGFzcz0iaGlzdG9yeS1jb3VudCcrKGE/IiI6IiBsb2FkaW5nIikrJyI+JytsKyI8L3NwYW4+PC9kaXY+IixmPXM/JzxkaXYgY2xhc3M9InNlc3Npb24taGlzdG9yeS1ib2R5Ij4nK1pjKGUpK3VkKG4pKyI8L2Rpdj4iOiIiO3JldHVybic8c2VjdGlvbiBjbGFzcz0ic2Vzc2lvbi1ncm91cCBzZXNzaW9uLWdyb3VwLS1oaXN0b3J5Ij4nK2MrZisiPC9zZWN0aW9uPiJ9ZnVuY3Rpb24gWmMoZSl7aWYoIXIuY2xhdWRlSGlzdG9yeUxvYWRlZClyZXR1cm4nPGRpdiBjbGFzcz0iY2xhdWRlLWhpc3RvcnktbG9hZGluZyI+XHU2MjZCXHU2M0NGXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHU0RTJEXHUyMDI2PC9kaXY+JztpZihlLmxlbmd0aD09PTApcmV0dXJuIiI7dmFyIHQ9e30sbj1bXTtlLmZvckVhY2goZnVuY3Rpb24odSl7dFt1LmN3ZF18fCh0W3UuY3dkXT1bXSxuLnB1c2godS5jd2QpKSx0W3UuY3dkXS5wdXNoKHUpfSk7dmFyIGk9JzxkaXYgY2xhc3M9InNpZGViYXItaGlzdG9yeS10b29sYmFyIj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi14cyBzaWRlYmFyLWhpc3RvcnktY2xlYXIiIGRhdGEtYWN0aW9uPSJjbGVhci1hbGwtaGlzdG9yeSIgdHlwZT0iYnV0dG9uIj5cdTZFMDVcdTdBN0FcdTUxNjhcdTkwRTg8L2J1dHRvbj48L2Rpdj4nLGE9IiI7cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbih1KXt2YXIgcz11LnNwbGl0KCIvIikuZmlsdGVyKEJvb2xlYW4pLnNsaWNlKC0zKS5qb2luKCIvIiksbz0hIXIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyc1t1XTthKz1zZCh1LHMsdFt1XS5sZW5ndGgsbyksbyYmKGErPXRbdV0ubWFwKGZ1bmN0aW9uKGwpe3JldHVybiBuYShsLCJoaXN0b3J5Iil9KS5qb2luKCIiKSl9KSxpKyc8ZGl2IGNsYXNzPSJzaWRlYmFyLWhpc3Rvcnktc2Nyb2xsIj4nK2ErIjwvZGl2PiJ9ZnVuY3Rpb24gTm4oKXt2YXIgZT1uZXcgU2V0O3JldHVybiByLnNlc3Npb25zLmZvckVhY2goZnVuY3Rpb24odCl7dC5jbGF1ZGVTZXNzaW9uSWQmJmUuYWRkKHQuY2xhdWRlU2Vzc2lvbklkKX0pLHIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGFzQ29udmVyc2F0aW9uJiYhdC5tYW5hZ2VkQnlXYW5kJiYhZS5oYXModC5jbGF1ZGVTZXNzaW9uSWQpfSl9ZnVuY3Rpb24gb3MoKXtyZXR1cm4gT2JqZWN0LmtleXMoci5zZWxlY3RlZFNlc3Npb25JZHMpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hIXIuc2VsZWN0ZWRTZXNzaW9uSWRzW2VdfSl9ZnVuY3Rpb24gbHMoKXtyZXR1cm4gT2JqZWN0LmtleXMoci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHMpLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4hIXIuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzW2VdfSl9ZnVuY3Rpb24gJHIoKXtyLnNlbGVjdGVkU2Vzc2lvbklkcz17fSxyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkcz17fX1mdW5jdGlvbiBlZChlKXtyLnNlc3Npb25zTWFuYWdlTW9kZT10eXBlb2YgZT09ImJvb2xlYW4iP2U6IXIuc2Vzc2lvbnNNYW5hZ2VNb2RlLHIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiYhci5jbGF1ZGVIaXN0b3J5TG9hZGVkJiZYcigpLnRoZW4obWUpLHIuc2Vzc2lvbnNNYW5hZ2VNb2RlfHwoJHIoKSxBcigpKSxtZSgpfWZ1bmN0aW9uIGNzKCl7cmV0dXJuIHIuc2Vzc2lvbnMuc2xpY2UoKX1mdW5jdGlvbiB0ZCgpe3JldHVybiBjcygpLmxlbmd0aCtObigpLmxlbmd0aH1mdW5jdGlvbiBkcygpe2lmKCFyLmNsYXVkZUhpc3RvcnlMb2FkZWQpe1hyKCkudGhlbihkcyk7cmV0dXJufXIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkPSEwO3ZhciBlPXt9O2NzKCkuZm9yRWFjaChmdW5jdGlvbihuKXtlW24uaWRdPSEwfSk7dmFyIHQ9e307Tm4oKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe3Rbbi5jbGF1ZGVTZXNzaW9uSWRdPSEwfSksci5zZWxlY3RlZFNlc3Npb25JZHM9ZSxyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkcz10LG1lKCl9ZnVuY3Rpb24gbmQoKXskcigpLG1lKCl9ZnVuY3Rpb24gZHIoZSx0KXtpZighKCFyLnNlc3Npb25zTWFuYWdlTW9kZXx8IXQpKXt2YXIgbj1lPT09Imhpc3RvcnkiP3Iuc2VsZWN0ZWRDbGF1ZGVIaXN0b3J5SWRzOnIuc2VsZWN0ZWRTZXNzaW9uSWRzO25bdF0/ZGVsZXRlIG5bdF06blt0XT0hMCxtZSgpfX1mdW5jdGlvbiBmcyhlLHQsbil7aWYoIXIuc2Vzc2lvbnNNYW5hZ2VNb2RlKXJldHVybiIiO3ZhciBpPWU9PT0iaGlzdG9yeSI/ISFyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkc1t0XTohIXIuc2VsZWN0ZWRTZXNzaW9uSWRzW3RdO3JldHVybic8bGFiZWwgY2xhc3M9InNlc3Npb24tbWFuYWdlLWNoZWNrIj48aW5wdXQgdHlwZT0iY2hlY2tib3giIGRhdGEtYWN0aW9uPSJ0b2dnbGUtc2VsZWN0aW9uIiBkYXRhLWtpbmQ9IicrcChlKSsnIiBkYXRhLWlkPSInK3AodCkrJyInKyhpPyIgY2hlY2tlZCI6IiIpKycgYXJpYS1sYWJlbD0iJytwKG4pKyciPjxzcGFuPjwvc3Bhbj48L2xhYmVsPid9ZnVuY3Rpb24ga24oZSx0KXtyZXR1cm4gdHlwZW9mIHdpbmRvdy53YW5kQ29uZmlybT09ImZ1bmN0aW9uIj93aW5kb3cud2FuZENvbmZpcm0oZSxPYmplY3QuYXNzaWduKHt0eXBlOiJkYW5nZXIiLGRhbmdlcjohMCxva0xhYmVsOiJcdTUyMjBcdTk2NjQifSx0fHx7fSkpOlByb21pc2UucmVzb2x2ZSh3aW5kb3cuY29uZmlybShlKSl9ZnVuY3Rpb24gcmQoKXt2YXIgZT1vcygpLHQ9bHMoKSxuPWUubGVuZ3RoK3QubGVuZ3RoO24mJmtuKCJcdTc4NkVcdThCQTRcdTUyMjBcdTk2NjRcdTYyNDBcdTkwMDkgIituKyIgXHU5ODc5XHU1NDE3XHVGRjFGXHU2QjY0XHU2NENEXHU0RjVDXHU2NUUwXHU2Q0Q1XHU2NEE0XHU5NTAwXHUzMDAyIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NjI0MFx1OTAwOSAiK24rIiBcdTk4NzkifSkudGhlbihmdW5jdGlvbihpKXtpZihpKXt2YXIgYT1bXTtlLmxlbmd0aD4wJiZhLnB1c2goZmV0Y2goIi9hcGkvc2Vzc2lvbnMvYmF0Y2gtZGVsZXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7c2Vzc2lvbklkczplfSl9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lmpzb24oKX0pKSx0Lmxlbmd0aD4wJiZhLnB1c2goZmV0Y2goIi9hcGkvY2xhdWRlLWhpc3RvcnkvYmF0Y2gtZGVsZXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7Y2xhdWRlU2Vzc2lvbklkczp0fSl9KS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiB1Lmpzb24oKX0pKSxQcm9taXNlLmFsbChhKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGUuaW5kZXhPZihyLnNlbGVjdGVkSWQpIT09LTEmJihyLnNlbGVjdGVkSWQ9bnVsbCx3ZSgpKSxyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gdC5pbmRleE9mKHUuY2xhdWRlU2Vzc2lvbklkKT09PS0xfSksJHIoKSxqdCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7cWUodSwiXHU2NUUwXHU2Q0Q1XHU2Mjc5XHU5MUNGXHU1MjIwXHU5NjY0XHU2MjQwXHU5MDA5XHU5ODc5XHU3NkVFXHUzMDAyIil9KX19KX1mdW5jdGlvbiBpZCgpe3ZhciBlPURhdGUubm93KCktODY0ZTUsdD1ObigpLmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4hbi50aW1lc3RhbXB8fG5ldyBEYXRlKG4udGltZXN0YW1wKS5nZXRUaW1lKCk8PWV9KTtpZih0Lmxlbmd0aClyZXR1cm4ga24oIlx1Nzg2RVx1OEJBNFx1NkUwNVx1N0E3QVx1NUY1M1x1NTI0RFx1NjYzRVx1NzkzQVx1NzY4NCAiK3QubGVuZ3RoKyIgXHU2NzYxIENsYXVkZSBcdTUzODZcdTUzRjJcdTU0MTdcdUZGMUYiLHt0aXRsZToiXHU2RTA1XHU3QTdBIENsYXVkZSBcdTUzODZcdTUzRjIiLG9rTGFiZWw6Ilx1NkUwNVx1N0E3QSJ9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4pe3ZhciBpPXQubWFwKGZ1bmN0aW9uKGEpe3JldHVybiBhLmNsYXVkZVNlc3Npb25JZH0pO3JldHVybiBmZXRjaCgiL2FwaS9jbGF1ZGUtaGlzdG9yeS9iYXRjaC1kZWxldGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtjbGF1ZGVTZXNzaW9uSWRzOml9KX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtpZihhJiZhLmVycm9yKXRocm93IG5ldyBFcnJvcihhLmVycm9yKTtyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbih1KXtyZXR1cm4gaS5pbmRleE9mKHUuY2xhdWRlU2Vzc2lvbklkKT09PS0xfSksJHIoKSxtZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7cWUoYSwiXHU2NUUwXHU2Q0Q1XHU2RTA1XHU3QTdBXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHUzMDAyIil9KX19KX1mdW5jdGlvbiBhZChlLHQsbixpKXt2YXIgYT1pPyJcdTI1QkUiOiJcdTI1QjgiO3JldHVybic8ZGl2IGNsYXNzPSJjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktaGVhZGVyIGNvZGV4LWhpc3RvcnktZGlyZWN0b3J5LWhlYWRlciIgZGF0YS1hY3Rpb249InRvZ2dsZS1jb2RleC1oaXN0b3J5LWRpcmVjdG9yeSIgZGF0YS1jd2Q9IicrcChlKSsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj48ZGl2IGNsYXNzPSJzZXNzaW9uLWdyb3VwLXRpdGxlIGNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS10aXRsZSI+PHNwYW4gY2xhc3M9ImNoZXZyb24iPicrYSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktbGFiZWwiPicrcCh0KSsiICgiK24rIik8L3NwYW4+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiB1ZChlKXtpZighci5jb2RleEhpc3RvcnlMb2FkZWQpcmV0dXJuJzxkaXYgY2xhc3M9ImNsYXVkZS1oaXN0b3J5LWxvYWRpbmciPlx1NjI2Qlx1NjNDRiBDb2RleCBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTRFMkRcdTIwMjY8L2Rpdj4nO2lmKGUubGVuZ3RoPT09MClyZXR1cm4iIjt2YXIgdD17fSxuPVtdO2UuZm9yRWFjaChmdW5jdGlvbihhKXt0W2EuY3dkXXx8KHRbYS5jd2RdPVtdLG4ucHVzaChhLmN3ZCkpLHRbYS5jd2RdLnB1c2goYSl9KTt2YXIgaT0nPGRpdiBjbGFzcz0ic2lkZWJhci1oaXN0b3J5LXNlY3Rpb24tbGFiZWwiPkNvZGV4PC9kaXY+JztyZXR1cm4gbi5mb3JFYWNoKGZ1bmN0aW9uKGEpe3ZhciB1PWEuc3BsaXQoIi8iKS5maWx0ZXIoQm9vbGVhbikuc2xpY2UoLTMpLmpvaW4oIi8iKSxzPSEhci5jb2RleEhpc3RvcnlFeHBhbmRlZERpcnNbYV07aSs9YWQoYSx1LHRbYV0ubGVuZ3RoLHMpLHMmJihpKz10W2FdLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gbmEobywiY29kZXgiKX0pLmpvaW4oIiIpKX0pLCc8ZGl2IGNsYXNzPSJzaWRlYmFyLWhpc3Rvcnktc2Nyb2xsIGNvZGV4LWhpc3Rvcnktc2Nyb2xsIj4nK2krIjwvZGl2PiJ9ZnVuY3Rpb24gc2QoZSx0LG4saSl7dmFyIGE9aT8iJiM5NjYyOyI6IiYjOTY1NjsiO3JldHVybic8ZGl2IGNsYXNzPSJjbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktaGVhZGVyIiBkYXRhLWFjdGlvbj0idG9nZ2xlLWhpc3RvcnktZGlyZWN0b3J5IiBkYXRhLWN3ZD0iJytwKGUpKyciIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiPjxkaXYgY2xhc3M9InNlc3Npb24tZ3JvdXAtdGl0bGUgY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LXRpdGxlIj48c3BhbiBjbGFzcz0iY2hldnJvbiI+JythKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImNsYXVkZS1oaXN0b3J5LWRpcmVjdG9yeS1sYWJlbCI+JytwKHQpKyIgKCIrbisnKTwvc3Bhbj48YnV0dG9uIGNsYXNzPSJidG4gYnRuLWRhbmdlciBidG4teHMgY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWNsZWFyLWJ0biIgZGF0YS1hY3Rpb249ImRlbGV0ZS1oaXN0b3J5LWRpcmVjdG9yeSIgZGF0YS1jd2Q9IicrcChlKSsnIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NkUwNVx1N0E3QVx1NkI2NFx1NzZFRVx1NUY1NVx1NzY4NFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERCIgdGl0bGU9Ilx1NkUwNVx1N0E3QVx1NkI2NFx1NzZFRVx1NUY1NVx1NzY4NFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERCI+XHU2RTA1XHU3QTdBXHU2QjY0XHU3NkVFXHU1RjU1PC9idXR0b24+PC9kaXY+PC9kaXY+J31mdW5jdGlvbiBuYShlLHQpe3ZhciBuPXQ9PT0iY29kZXgiLGk9bj8icmVzdW1lLWNvZGV4LWhpc3RvcnkiOiJyZXN1bWUtaGlzdG9yeSIsYT1uPyJkZWxldGUtY29kZXgtaGlzdG9yeSI6ImRlbGV0ZS1oaXN0b3J5Iix1PW4/ci5zZWxlY3RlZENvZGV4SGlzdG9yeUlkczpyLnNlbGVjdGVkQ2xhdWRlSGlzdG9yeUlkcyxzPWUuY2xhdWRlU2Vzc2lvbklkLnNsaWNlKDAsOCksbz1lLmZpcnN0VXNlck1lc3NhZ2V8fCIoXHU3QTdBXHU0RjFBXHU4QkREKSIsbD1wcyhlLnRpbWVzdGFtcCksYz1mcyh0LGUuY2xhdWRlU2Vzc2lvbklkLCJcdTkwMDlcdTYyRTlcdTUzODZcdTUzRjJcdTRGMUFcdThCREQgIitvKSxmPXIuc2Vzc2lvbnNNYW5hZ2VNb2RlPyIiOic8YnV0dG9uIGNsYXNzPSJzZXNzaW9uLWFjdGlvbi1idG4gZGVsZXRlLWJ0biIgZGF0YS1hY3Rpb249IicrYSsnIiBkYXRhLWNsYXVkZS1zZXNzaW9uLWlkPSInK2UuY2xhdWRlU2Vzc2lvbklkKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREIiB0aXRsZT0iXHU5NjkwXHU4NUNGXHU2QjY0XHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDZoMTgiLz48cGF0aCBkPSJNOCA2VjRhMiAyIDAgMDEyLTJoNGEyIDIgMCAwMTIgMnYyIi8+PHBhdGggZD0iTTE5IDZsLTEgMTRhMiAyIDAgMDEtMiAySDhhMiAyIDAgMDEtMi0yTDUgNiIvPjwvc3ZnPjwvYnV0dG9uPicsZD1yLnNlc3Npb25zTWFuYWdlTW9kZT8iIjonPGJ1dHRvbiBjbGFzcz0ic2Vzc2lvbi1hY3Rpb24tYnRuIiBkYXRhLWFjdGlvbj0iJytpKyciIGRhdGEtY2xhdWRlLXNlc3Npb24taWQ9IicrZS5jbGF1ZGVTZXNzaW9uSWQrJyIgZGF0YS1jd2Q9IicrcChlLmN3ZCkrJyIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTYwNjJcdTU5MERcdTRGMUFcdThCREQiIHRpdGxlPSInKyhuPyJcdTYwNjJcdTU5MERcdTZCNjQgQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIjoiXHU2MDYyXHU1OTBEXHU2QjY0IENsYXVkZSBcdTUzODZcdTUzRjJcdTRGMUFcdThCREQiKSsnIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xIDR2Nmg2Ii8+PHBhdGggZD0iTTMuNTEgMTVhOSA5IDAgMTA1LjY0LTExLjM2TDMgMTAiLz48L3N2Zz48L2J1dHRvbj4nO3JldHVybic8ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0gY2xhdWRlLWhpc3RvcnktaXRlbScrKHIuc2Vzc2lvbnNNYW5hZ2VNb2RlJiZ1W2UuY2xhdWRlU2Vzc2lvbklkXT8iIHNlbGVjdGVkIjoiIikrJyIgZGF0YS1jbGF1ZGUtaGlzdG9yeS1pZD0iJytlLmNsYXVkZVNlc3Npb25JZCsnIiBkYXRhLWN3ZD0iJytwKGUuY3dkKSsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj48ZGl2IGNsYXNzPSJzZXNzaW9uLWl0ZW0tY29udGVudCI+PGRpdiBjbGFzcz0ic2Vzc2lvbi1pdGVtLXJvdyI+JytjKyc8ZGl2IGNsYXNzPSJzZXNzaW9uLW1haW4iPjxkaXYgY2xhc3M9InNlc3Npb24tY29tbWFuZCBjbGF1ZGUtaGlzdG9yeS1wcmV2aWV3Ij4nK3AobykrJzwvZGl2PjxkaXYgY2xhc3M9InNlc3Npb24tbWV0YSI+PHNwYW4gY2xhc3M9InNlc3Npb24taWQiIHRpdGxlPSInK3AoZS5jbGF1ZGVTZXNzaW9uSWQpKyciPicrcChzKSsiPC9zcGFuPjxzcGFuPiIrcChsKSsnPC9zcGFuPjwvZGl2PjwvZGl2PjxzcGFuIGNsYXNzPSJzZXNzaW9uLWFjdGlvbnMiPicrZCtmKyI8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+In1mdW5jdGlvbiBwcyhlKXtpZighZSlyZXR1cm4iIjt0cnl7dmFyIHQ9bmV3IERhdGUoZSksbj1uZXcgRGF0ZSxpPW4tdCxhPU1hdGguZmxvb3IoaS82ZTQpO2lmKGE8MSlyZXR1cm4iXHU1MjFBXHU1MjFBIjtpZihhPDYwKXJldHVybiBhKyIgXHU1MjA2XHU5NDlGXHU1MjREIjt2YXIgdT1NYXRoLmZsb29yKGEvNjApO2lmKHU8MjQpcmV0dXJuIHUrIiBcdTVDMEZcdTY1RjZcdTUyNEQiO3ZhciBzPU1hdGguZmxvb3IodS8yNCk7cmV0dXJuIHM8MzA/cysiIFx1NTkyOVx1NTI0RCI6dC50b0xvY2FsZURhdGVTdHJpbmcoKX1jYXRjaHtyZXR1cm4iIn19ZnVuY3Rpb24gdnMoKXtyZXR1cm4gZmV0Y2goIi9hcGkvY2xhdWRlLWhpc3RvcnkiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5vaz9lLmpzb24oKTpbXX0pLnRoZW4oZnVuY3Rpb24oZSl7ci5jbGF1ZGVIaXN0b3J5PWV8fFtdLHIuY2xhdWRlSGlzdG9yeUxvYWRlZD0hMCxtZSgpfSkuY2F0Y2goZnVuY3Rpb24oKXtyLmNsYXVkZUhpc3RvcnlMb2FkZWQ9ITAsci5jbGF1ZGVIaXN0b3J5PVtdLG1lKCl9KX12YXIgam49bnVsbDtmdW5jdGlvbiBYcigpe3JldHVybiBsZCgpLHIuY2xhdWRlSGlzdG9yeUxvYWRlZD9Qcm9taXNlLnJlc29sdmUoKTpqbnx8KGpuPXZzKCkudGhlbihmdW5jdGlvbigpe2puPW51bGx9LGZ1bmN0aW9uKCl7am49bnVsbH0pLGpuKX1mdW5jdGlvbiBvZCgpe3JldHVybiBmZXRjaCgiL2FwaS9jb2RleC1oaXN0b3J5Iix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUub2s/ZS5qc29uKCk6W119KS50aGVuKGZ1bmN0aW9uKGUpe3IuY29kZXhIaXN0b3J5PWV8fFtdLHIuY29kZXhIaXN0b3J5TG9hZGVkPSEwLG1lKCl9KS5jYXRjaChmdW5jdGlvbigpe3IuY29kZXhIaXN0b3J5TG9hZGVkPSEwLHIuY29kZXhIaXN0b3J5PVtdLG1lKCl9KX12YXIgUm49bnVsbDtmdW5jdGlvbiBsZCgpe3JldHVybiByLmNvZGV4SGlzdG9yeUxvYWRlZD9Qcm9taXNlLnJlc29sdmUoKTpSbnx8KFJuPW9kKCkudGhlbihmdW5jdGlvbigpe1JuPW51bGx9LGZ1bmN0aW9uKCl7Um49bnVsbH0pLFJuKX1mdW5jdGlvbiBjZCgpe3ZhciBlPW5ldyBTZXQ7cmV0dXJuIHIuc2Vzc2lvbnMuZm9yRWFjaChmdW5jdGlvbih0KXt0LmNsYXVkZVNlc3Npb25JZCYmZS5hZGQodC5jbGF1ZGVTZXNzaW9uSWQpfSksci5jb2RleEhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmhhc0NvbnZlcnNhdGlvbiYmIXQubWFuYWdlZEJ5V2FuZCYmIWUuaGFzKHQuY2xhdWRlU2Vzc2lvbklkKX0pfWZ1bmN0aW9uIG1zKCl7RnMoKSwhWnIoKSYmKHIucG9sbFRpbWVyPXNldEludGVydmFsKGp0LDE2MDApKX1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXNzaW9uLXRpbWUiKTtlLmxlbmd0aD4wJiZpdSgpfSwzZTQpO2Z1bmN0aW9uIHJhKCl7ci53c1JlY29ubmVjdFRpbWVyJiYoY2xlYXJUaW1lb3V0KHIud3NSZWNvbm5lY3RUaW1lciksci53c1JlY29ubmVjdFRpbWVyPW51bGwpfXZhciBkZD0xZTQsZmQ9NGU0O2Z1bmN0aW9uIHBkKCl7Z3MoKSxyLndzSGVhcnRiZWF0Q2hlY2tUaW1lcj1zZXRJbnRlcnZhbChocyxkZCl9ZnVuY3Rpb24gZ3MoKXtyLndzSGVhcnRiZWF0Q2hlY2tUaW1lciYmKGNsZWFySW50ZXJ2YWwoci53c0hlYXJ0YmVhdENoZWNrVGltZXIpLHIud3NIZWFydGJlYXRDaGVja1RpbWVyPW51bGwpfWZ1bmN0aW9uIGhzKCl7aWYoISghci53c3x8ci53cy5yZWFkeVN0YXRlIT09V2ViU29ja2V0Lk9QRU4pJiZyLmxhc3RXc01lc3NhZ2VBdCl7dmFyIGU9RGF0ZS5ub3coKS1yLmxhc3RXc01lc3NhZ2VBdDtlPmZkJiZpYSgiaGVhcnRiZWF0LXN0YWxlLSIrTWF0aC5yb3VuZChlLzFlMykrInMiKX19ZnVuY3Rpb24gaWEoZSl7aWYocmEoKSxyLndzKXt2YXIgdD1yLndzO3RyeXt0Lm9uY2xvc2U9bnVsbH1jYXRjaHt9dHJ5e3Qub25lcnJvcj1udWxsfWNhdGNoe310cnl7dC5vbm1lc3NhZ2U9bnVsbH1jYXRjaHt9dHJ5e3QuY2xvc2UoKX1jYXRjaHt9ci53cz1udWxsfXIud3NDb25uZWN0ZWQ9ITEsci53c1JlY29ubmVjdEF0dGVtcHRzPTAsWnIoZSl9ZnVuY3Rpb24geXMoKXtpZighci53c1JlY29ubmVjdFRpbWVyJiYhZG9jdW1lbnQuaGlkZGVuKXt2YXIgZT1yLndzUmVjb25uZWN0QXR0ZW1wdHN8fDAsdD1bNTAwLDFlMywyZTMsNGUzLDhlM10sbj10W2U8dC5sZW5ndGg/ZTp0Lmxlbmd0aC0xXTtyLndzUmVjb25uZWN0QXR0ZW1wdHM9ZSsxLHIud3NSZWNvbm5lY3RUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci53c1JlY29ubmVjdFRpbWVyPW51bGwsci5jb25maWcmJiFyLndzJiYhZG9jdW1lbnQuaGlkZGVuJiZacigiYmFja29mZiIpfSxuKX19ZnVuY3Rpb24gWnIoZSl7aWYoIXdpbmRvdy5XZWJTb2NrZXQpcmV0dXJuITE7aWYoci53cyl7dHJ5e3Iud3MuY2xvc2UoKX1jYXRjaHt9ci53cz1udWxsfXZhciB0PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbD09PSJodHRwczoiPyJ3c3M6Ijoid3M6IixuPXQrIi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCsiL3dzIjt0cnl7dmFyIGk9bmV3IFdlYlNvY2tldChuKTtyZXR1cm4gaS5vbm9wZW49ZnVuY3Rpb24oKXtyLndzPWksci53c0Nvbm5lY3RlZD0hMCxyLmxhc3RXc01lc3NhZ2VBdD1EYXRlLm5vdygpLHIud3NSZWNvbm5lY3RBdHRlbXB0cz0wLHJhKCksci5sYXN0U2VxQnlTZXNzaW9uPXt9LHBkKCksTG4oci5zZWxlY3RlZElkKSxfcCgpLGhyKCJ3cy1yZWNvbm5lY3QiKX0saS5vbm1lc3NhZ2U9ZnVuY3Rpb24oYSl7ci5sYXN0V3NNZXNzYWdlQXQ9RGF0ZS5ub3coKTt0cnl7dmFyIHU9SlNPTi5wYXJzZShhLmRhdGEpO2lmKHUmJnUudHlwZT09PSJwaW5nIil7aWYoci53cyYmci53cy5yZWFkeVN0YXRlPT09V2ViU29ja2V0Lk9QRU4pdHJ5e3Iud3Muc2VuZChKU09OLnN0cmluZ2lmeSh7dHlwZToicG9uZyIsdDp1LnR9KSl9Y2F0Y2h7fXJldHVybn1pZih1JiZ1LnR5cGU9PT0icmVzeW5jX3JlcXVpcmVkIiYmdS5zZXNzaW9uSWQpe2lmKHIud3MmJnIud3MucmVhZHlTdGF0ZT09PVdlYlNvY2tldC5PUEVOKXRyeXtyLndzLnNlbmQoSlNPTi5zdHJpbmdpZnkoe3R5cGU6InJlc3luYyIsc2Vzc2lvbklkOnUuc2Vzc2lvbklkfSkpfWNhdGNoe31yLmxhc3RTZXFCeVNlc3Npb258fChyLmxhc3RTZXFCeVNlc3Npb249e30pLHIubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09MDtyZXR1cm59aWYodSYmKHUudHlwZT09PSJpbml0Inx8dS50eXBlPT09Im91dHB1dCIpJiZ1LnNlc3Npb25JZCYmdHlwZW9mIHUuc2VxPT0ibnVtYmVyIil7ci5sYXN0U2VxQnlTZXNzaW9ufHwoci5sYXN0U2VxQnlTZXNzaW9uPXt9KTt2YXIgcz1yLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdfHwwO2lmKHUudHlwZT09PSJpbml0IilyLmxhc3RTZXFCeVNlc3Npb25bdS5zZXNzaW9uSWRdPXUuc2VxO2Vsc2UgaWYodS5zZXE9PT1zKzEpci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT11LnNlcTtlbHNlIGlmKHUuc2VxPnMrMSYmcz4wKXtpZihyLndzJiZyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTil0cnl7ci53cy5zZW5kKEpTT04uc3RyaW5naWZ5KHt0eXBlOiJyZXN5bmMiLHNlc3Npb25JZDp1LnNlc3Npb25JZH0pKX1jYXRjaHt9ci5sYXN0U2VxQnlTZXNzaW9uW3Uuc2Vzc2lvbklkXT0wO3JldHVybn1lbHNle2lmKHUuc2VxPHMpcmV0dXJuO3IubGFzdFNlcUJ5U2Vzc2lvblt1LnNlc3Npb25JZF09dS5zZXF9fXZkKHUpfWNhdGNoe319LGkub25jbG9zZT1mdW5jdGlvbigpe3Iud3M9bnVsbCxyLndzQ29ubmVjdGVkPSExLGdzKCkseXMoKX0saS5vbmVycm9yPWZ1bmN0aW9uKCl7aS5jbG9zZSgpfSwhMH1jYXRjaHtyZXR1cm4geXMoKSwhMX19ZnVuY3Rpb24gdmQoZSl7c3dpdGNoKGUudHlwZSl7Y2FzZSJvdXRwdXQiOmlmKGUuZGF0YSYmZS5zZXNzaW9uSWQmJk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsImlzUmVzcG9uZGluZyIpJiYoci5fbGFzdElzUmVzcG9uZGluZ3x8KHIuX2xhc3RJc1Jlc3BvbmRpbmc9e30pLHIuX2xhc3RJc1Jlc3BvbmRpbmdbZS5zZXNzaW9uSWRdPSEhZS5kYXRhLmlzUmVzcG9uZGluZyksZS5kYXRhJiZlLnNlc3Npb25JZCl7dmFyIHQ9ISFlLmRhdGEuaW5jcmVtZW50YWwsbj17aWQ6ZS5zZXNzaW9uSWR9LGk9ITE7aWYoIXQmJmUuZGF0YS5vdXRwdXQhPT12b2lkIDAmJihuLm91dHB1dD1lLmRhdGEub3V0cHV0KSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJwZXJtaXNzaW9uQmxvY2tlZCIpJiYobi5wZXJtaXNzaW9uQmxvY2tlZD0hIWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwicXVldWVkTWVzc2FnZXMiKSYmKG4ucXVldWVkTWVzc2FnZXM9ZS5kYXRhLnF1ZXVlZE1lc3NhZ2VzfHxbXSxyLnF1ZXVlRXBvY2grKyksZS5kYXRhLnN0cnVjdHVyZWRTdGF0ZSYmKG4uc3RydWN0dXJlZFN0YXRlPWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUpLGUuZGF0YS5zZXNzaW9uS2luZCYmKG4uc2Vzc2lvbktpbmQ9ZS5kYXRhLnNlc3Npb25LaW5kKSxPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJ0aXRsZSIpJiYobi50aXRsZT1lLmRhdGEudGl0bGUsaT0hMCksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwiZGVzY3JpcHRpb24iKSYmKG4uZGVzY3JpcHRpb249ZS5kYXRhLmRlc2NyaXB0aW9uLGk9ITApLE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInN1bW1hcnkiKSYmKG4uc3VtbWFyeT1lLmRhdGEuc3VtbWFyeSksZS5kYXRhLm1lc3NhZ2VzKW4ubWVzc2FnZXM9ZS5kYXRhLm1lc3NhZ2VzLHR5cGVvZiBlLmRhdGEubWVzc2FnZU9mZnNldD09Im51bWJlciImJihuLm1lc3NhZ2VPZmZzZXQ9ZS5kYXRhLm1lc3NhZ2VPZmZzZXQpLHR5cGVvZiBlLmRhdGEubWVzc2FnZVRvdGFsPT0ibnVtYmVyIiYmKG4ubWVzc2FnZVRvdGFsPWUuZGF0YS5tZXNzYWdlVG90YWwpO2Vsc2UgaWYodCYmZS5kYXRhLmxhc3RNZXNzYWdlKXt2YXIgYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pO2lmKGEpe3ZhciB1PUFycmF5LmlzQXJyYXkoYS5tZXNzYWdlcyk/YS5tZXNzYWdlcy5zbGljZSgpOltdLHM9ZS5kYXRhLm1lc3NhZ2VDb3VudHx8MCxvPXR5cGVvZiBhLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiP2EubWVzc2FnZU9mZnNldDowLGw9dS5sZW5ndGg+MD91W3UubGVuZ3RoLTFdOm51bGwsYz1lLmRhdGEubGFzdE1lc3NhZ2U7bCYmYy5yb2xlJiZsLnJvbGU9PT1jLnJvbGU/dVt1Lmxlbmd0aC0xXT1vcChsLGMpOm8rdS5sZW5ndGg8cyYmdS5wdXNoKGMpLG4ubWVzc2FnZXM9dSxzPjAmJihuLm1lc3NhZ2VUb3RhbD1zKX19dmFyIGY9dCYmZS5kYXRhLmNodW5rJiYhZS5kYXRhLmxhc3RNZXNzYWdlJiYhbi5tZXNzYWdlcyYmbi5vdXRwdXQ9PT12b2lkIDAmJiFlLmRhdGEuc3RydWN0dXJlZFN0YXRlJiYhZS5kYXRhLnNlc3Npb25LaW5kO2lmKGYpe2lmKGUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZCE9PXZvaWQgMCl7dmFyIGQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKE8pe3JldHVybiBPLmlkPT09ZS5zZXNzaW9uSWR9KTtkJiYhIWQucGVybWlzc2lvbkJsb2NrZWQhPSEhZS5kYXRhLnBlcm1pc3Npb25CbG9ja2VkJiYoJChuKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmJHQoKSl9fWVsc2UgaWYoKG4ub3V0cHV0IT09dm9pZCAwfHxuLm1lc3NhZ2VzfHx0fHxlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQhPT12b2lkIDB8fG4udGl0bGV8fG4uZGVzY3JpcHRpb24pJiYoJChuKSxpJiZpdSgpLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkKSl7dmFyIHY9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKE8pe3JldHVybiBPLmlkPT09ZS5zZXNzaW9uSWR9KXx8bjtyLmN1cnJlbnRNZXNzYWdlcz1SZSh2LG50KHYsdi5vdXRwdXQsITEpKSwkdCgpLHYuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCJ8fGUuZGF0YS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIj9mcigpOmFhKCl9fWUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiZyLnRlcm1pbmFsJiZlLmRhdGEmJihlLmRhdGEuY2h1bmsmJnlwKGUuc2Vzc2lvbklkKT8oci5sYXN0Q2h1bmtBdD1EYXRlLm5vdygpLHIudGVybWluYWxMaXZlU3RyZWFtU2Vzc2lvbnNbZS5zZXNzaW9uSWRdPSEwLFVuKHIudGVybWluYWwsZS5kYXRhLmNodW5rKSxyLnRlcm1pbmFsU2Vzc2lvbklkPWUuc2Vzc2lvbklkLGUuZGF0YS5vdXRwdXQ/KHIudGVybWluYWxPdXRwdXQ9X3MoR2EoZS5kYXRhLm91dHB1dCkpLHIudGVybWluYWxPdXRwdXRNYXJrZXI9MCk6ci50ZXJtaW5hbE91dHB1dD1fcygoci50ZXJtaW5hbE91dHB1dHx8IiIpK0dhKGUuZGF0YS5jaHVuaykpLEV0KCJvdXRwdXQiKSx2dCgpKTohZS5kYXRhLmluY3JlbWVudGFsJiZPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJvdXRwdXQiKSYmYWkoZS5zZXNzaW9uSWQsZS5kYXRhLm91dHB1dHx8IiIse21vZGU6ImFwcGVuZCJ9KSk7YnJlYWs7Y2FzZSJzdGFydGVkIjp2bigpO2JyZWFrO2Nhc2UiZW5kZWQiOnt2YXIgaD1lLmRhdGEmJmUuZGF0YS5zdGF0dXM/ZS5kYXRhLnN0YXR1czoiZXhpdGVkIixnPWUuZGF0YSYmT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwicGVybWlzc2lvbkJsb2NrZWQiKT8hIWUuZGF0YS5wZXJtaXNzaW9uQmxvY2tlZDohMSxtPXtpZDplLnNlc3Npb25JZCxzdGF0dXM6aCxwZXJtaXNzaW9uQmxvY2tlZDpnfTtlLmRhdGEmJmUuZGF0YS5tZXNzYWdlcyYmKG0ubWVzc2FnZXM9ZS5kYXRhLm1lc3NhZ2VzLHR5cGVvZiBlLmRhdGEubWVzc2FnZU9mZnNldD09Im51bWJlciImJihtLm1lc3NhZ2VPZmZzZXQ9ZS5kYXRhLm1lc3NhZ2VPZmZzZXQpLHR5cGVvZiBlLmRhdGEubWVzc2FnZVRvdGFsPT0ibnVtYmVyIiYmKG0ubWVzc2FnZVRvdGFsPWUuZGF0YS5tZXNzYWdlVG90YWwpKSxlLmRhdGEmJmUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGUmJihtLnN0cnVjdHVyZWRTdGF0ZT1lLmRhdGEuc3RydWN0dXJlZFN0YXRlKSxlLmRhdGEmJmUuZGF0YS5xdWV1ZWRNZXNzYWdlcyYmKG0ucXVldWVkTWVzc2FnZXM9ZS5kYXRhLnF1ZXVlZE1lc3NhZ2VzKSwkKG0pLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYoSm4oIkVudGVyIFx1NTNEMVx1OTAwMSBceEI3IFNoaWZ0K0VudGVyIFx1NjM2Mlx1ODg0QyIpLGFhKCEwKSk7dmFyIHk9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKE8pe3JldHVybiBPLmlkPT09ZS5zZXNzaW9uSWR9KSx3PWUuZGF0YSYmZS5kYXRhLmV4aXRDb2RlLEU9dyE9bnVsbCYmdyE9PTAsQj15JiZ5LnN1bW1hcnl8fCIiLEY9eT9OYyh5KToiIix4PUU/Ilx1NEVGQlx1NTJBMVx1NUYwMlx1NUUzOFx1N0VEM1x1Njc1RiI6Ilx1NEVGQlx1NTJBMVx1NURGMlx1NUI4Q1x1NjIxMCIsUz0iIjtCPyhTPUIsRiYmIUUmJihTKz1gCmArRikpOlM9eSYmeS5jb21tYW5kfHxlLnNlc3Npb25JZCxLbihFPyJlcnJvciI6InN1Y2Nlc3MiKSxTZihlLnNlc3Npb25JZCx4LFMpLFZzKGUuc2Vzc2lvbklkKSxiYSgpLChlLnNlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZHx8ZG9jdW1lbnQuaGlkZGVuKSYmaGEoe3RpdGxlOngsYm9keTpTLHR5cGU6RT8id2FybmluZyI6InN1Y2Nlc3MiLGljb246RT8iISI6Ilx1MjcxMyIsZHVyYXRpb246NmUzLGFjdGlvbkxhYmVsOiJcdTY3RTVcdTc3MEIiLGFjdGlvbjpmdW5jdGlvbigpe1d0KGUuc2Vzc2lvbklkKX19KSxyLm1lc3NhZ2VRdWV1ZT1bXSxyLnBlbmRpbmdNZXNzYWdlcz1bXTt2YXIgXz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pLFY9ZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQ/ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKE8pe3JldHVybiBPLmlkPT09ci5zZWxlY3RlZElkfSk6bnVsbCxVPSEhKF8mJl8uc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCJ8fFYmJlYuc2Vzc2lvbktpbmQ9PT0ic3RydWN0dXJlZCIpO1UmJmUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkPyhhbygpLEF1KGUuc2Vzc2lvbklkKSk6VXx8KHIuc3RydWN0dXJlZElucHV0UXVldWU9W10sQXUoci5zZWxlY3RlZElkKSxjbigpKSxlLnNlc3Npb25JZD09PXIuc2VsZWN0ZWRJZCYmKFV8fFRuKCExKSxyLmN1cnJlbnRUYXNrPW51bGwsJHQoKSksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJklyKCksdm4oKS50aGVuKGZ1bmN0aW9uKCl7ZGkoKX0pLGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiYoVXx8bW4oZS5zZXNzaW9uSWQpKTticmVha31jYXNlImluaXQiOmlmKGUuc2Vzc2lvbklkPT09ci5zZWxlY3RlZElkJiZlLmRhdGEpe3IuY2hhdFJlbmRlclRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxyLmNoYXRSZW5kZXJUaW1lcj1udWxsKSwkKGUuZGF0YSk7dmFyIEk9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKE8pe3JldHVybiBPLmlkPT09ZS5zZXNzaW9uSWR9KTtyLmN1cnJlbnRNZXNzYWdlcz1SZShJfHxlLmRhdGEsbnQoSXx8ZS5kYXRhLGUuZGF0YS5vdXRwdXQsITEpKSxmcighMCksJHQoKSxicygpO3ZhciBEPWUuZGF0YS5vdXRwdXR8fCIiLE09ci50ZXJtaW5hbFNlc3Npb25JZD09PWUuc2Vzc2lvbklkLEw9ci50ZXJtaW5hbE91dHB1dHx8IiIsVz1NJiZMLmxlbmd0aD4wJiZELmxlbmd0aD49TC5sZW5ndGgmJkQuc3RhcnRzV2l0aChMKTt5ZChELGUuc2Vzc2lvbklkLFc/ImFwcGVuZCI6InJlcGxhY2UiKSxocigiaW5pdCIpfWJyZWFrO2Nhc2UidXNhZ2UiOmJyZWFrO2Nhc2UidGFzayI6ZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJihyLmN1cnJlbnRUYXNrPWUuZGF0YXx8bnVsbCwkdCgpKSxBZihlLnNlc3Npb25JZCxlLmRhdGF8fG51bGwpLEVhKGUuc2Vzc2lvbklkKSxpdSgpO2JyZWFrO2Nhc2Uic3RhdHVzIjppZihlLnNlc3Npb25JZCYmZS5kYXRhKXt2YXIgSz17aWQ6ZS5zZXNzaW9uSWR9O2lmKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLmRhdGEsInN0YXR1cyIpJiYoSy5zdGF0dXM9ZS5kYXRhLnN0YXR1cyksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwiZXhpdENvZGUiKSYmKEsuZXhpdENvZGU9ZS5kYXRhLmV4aXRDb2RlKSxlLmRhdGEuc3RydWN0dXJlZFN0YXRlKUsuc3RydWN0dXJlZFN0YXRlPWUuZGF0YS5zdHJ1Y3R1cmVkU3RhdGU7ZWxzZSBpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZS5kYXRhLCJzdGF0dXMiKSl7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKE4pe3JldHVybiBOLmlkPT09ZS5zZXNzaW9uSWR9KTthJiZhLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiJiYoSy5zdHJ1Y3R1cmVkU3RhdGU9T2JqZWN0LmFzc2lnbih7fSxhLnN0cnVjdHVyZWRTdGF0ZXx8e30se2luRmxpZ2h0OmUuZGF0YS5zdGF0dXM9PT0icnVubmluZyJ9KSl9aWYoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwicXVldWVkTWVzc2FnZXMiKSYmKEsucXVldWVkTWVzc2FnZXM9ZS5kYXRhLnF1ZXVlZE1lc3NhZ2VzfHxbXSxyLnF1ZXVlRXBvY2grKyksT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUuZGF0YSwicGVybWlzc2lvbkJsb2NrZWQiKSYmKEsucGVybWlzc2lvbkJsb2NrZWQ9ISFlLmRhdGEucGVybWlzc2lvbkJsb2NrZWQpLGUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdCl7Sy5wZW5kaW5nRXNjYWxhdGlvbj17c2NvcGU6ZS5kYXRhLnBlcm1pc3Npb25SZXF1ZXN0LnNjb3BlLHRhcmdldDplLmRhdGEucGVybWlzc2lvblJlcXVlc3QudGFyZ2V0LHJlYXNvbjplLmRhdGEucGVybWlzc2lvblJlcXVlc3QucHJvbXB0fTt2YXIgWD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oTyl7cmV0dXJuIE8uaWQ9PT1lLnNlc3Npb25JZH0pLG5lPVgmJihYLnN1bW1hcnl8fFguY29tbWFuZCl8fGUuc2Vzc2lvbklkLHNlPWUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC5wcm9tcHR8fCJcdTk3MDBcdTg5ODFcdTY3NDNcdTk2NTBcdTVCQTFcdTYyNzkiLHJlPWUuZGF0YS5wZXJtaXNzaW9uUmVxdWVzdC50YXJnZXQsVD1uZTtyZT9UKz1gCmArc2UrIiBceEI3ICIrcmU6VCs9YApgK3NlLEtuKCJtZWRpdW0iKSx4ZihlLnNlc3Npb25JZCxUKSxlLnNlc3Npb25JZCE9PXIuc2VsZWN0ZWRJZCYmaGEoe3RpdGxlOiJcdTk3MDBcdTg5ODFcdTRGNjBcdTc2ODRcdTYzODhcdTY3NDMiLGJvZHk6VCx0eXBlOiJ3YXJuaW5nIixpY29uOiIhIixkdXJhdGlvbjowLGFjdGlvbkxhYmVsOiJcdTUzQkJcdTU5MDRcdTc0MDYiLGFjdGlvbjpmdW5jdGlvbigpe1d0KGUuc2Vzc2lvbklkKX19KX1lLmRhdGEucGVybWlzc2lvbkJsb2NrZWQ9PT0hMSYmKEsucGVuZGluZ0VzY2FsYXRpb249bnVsbCksZS5kYXRhLmFwcHJvdmFsU3RhdHMmJihLLmFwcHJvdmFsU3RhdHM9ZS5kYXRhLmFwcHJvdmFsU3RhdHMpLCQoSyksRWEoZS5zZXNzaW9uSWQpLGJhKCksZS5zZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJigkdCgpLGUuZGF0YS5hcHByb3ZhbFN0YXRzJiZicygpLEsuc3RydWN0dXJlZFN0YXRlJiYoSy5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHR8fChKbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIiksYW8oKSksYWEoKSkpfWJyZWFrO2Nhc2Uibm90aWZpY2F0aW9uIjplLmRhdGEmJihlLmRhdGEua2luZD09PSJ1cGRhdGUiP3pzKGUuZGF0YS5jdXJyZW50fHwiLSIsZS5kYXRhLmxhdGVzdHx8Ii0iKTplLmRhdGEua2luZD09PSJhdXRvLXVwZGF0ZS1zdGFydCI/UGYoZS5kYXRhLmN1cnJlbnR8fCItIixlLmRhdGEubGF0ZXN0fHwiLSIpOihlLmRhdGEua2luZD09PSJhdXRvLXVwZGF0ZS1yZXN0YXJ0Inx8ZS5kYXRhLmtpbmQ9PT0icmVzdGFydCIpJiZsbigpKTticmVha319ZnVuY3Rpb24gJHQoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3VycmVudC10YXNrIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGVybWlzc2lvbi1hY3Rpb25zIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGVybWlzc2lvbi1hY3Rpb25zLWxhYmVsIik7aWYoZSl7dmFyIGk9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHYpe3JldHVybiB2LmlkPT09ci5zZWxlY3RlZElkfSk7aSYmaS5wcm92aWRlcj09PSJjb2RleCImJih0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUuY2xhc3NMaXN0LnJlbW92ZSgicGVybWlzc2lvbi1ibG9ja2VkIikpO3ZhciBhPWkmJmkucGVuZGluZ0VzY2FsYXRpb24/aS5wZW5kaW5nRXNjYWxhdGlvbjpudWxsLHU9aSYmaS5wcm92aWRlciE9PSJjb2RleCI/YXx8aS5wZXJtaXNzaW9uQmxvY2tlZDohMTtpZih1KXt2YXIgcz1pJiZpLmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7aWYobilpZihzKW4udGV4dENvbnRlbnQ9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NEUyRC4uLiI7ZWxzZSBpZihhKXt2YXIgbz1hLnJlYXNvbnx8Ilx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0MyIsbD1hLnRhcmdldD8iIFx4QjcgIithLnRhcmdldDoiIjtuLnRleHRDb250ZW50PW8rbH1lbHNlIG4udGV4dENvbnRlbnQ9Ilx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0MyI7aWYodCl7dC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwcm92ZS1wZXJtaXNzaW9uLWJ0biIpLGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRlbnktcGVybWlzc2lvbi1idG4iKTtjJiZjLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsISFzKSxmJiZmLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsISFzKX1lLnRleHRDb250ZW50PSIiLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5jbGFzc0xpc3QucmVtb3ZlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKTtyZXR1cm59ZS5jbGFzc0xpc3QucmVtb3ZlKCJwZXJtaXNzaW9uLWJsb2NrZWQiKSx0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBkPXIuY3VycmVudFRhc2s7ZCYmZC50aXRsZT8oZS50ZXh0Q29udGVudD1kLnRpdGxlLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpOihlLnRleHRDb250ZW50PSIiLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIikpfX1mdW5jdGlvbiBicygpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZhbC1zdGF0cyIpO2lmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pLG49dCYmdC5hcHByb3ZhbFN0YXRzO2lmKCFufHxuLnRvdGFsPT09MCl7ZS5jbGFzc05hbWU9ImFwcHJvdmFsLXN0YXRzIGhpZGRlbiIsZS5pbm5lckhUTUw9IiI7cmV0dXJufWUuY2xhc3NOYW1lPSJhcHByb3ZhbC1zdGF0cyIsZS5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1kaXZpZGVyIj48L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWJhZGdlIiBpZD0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIHRpdGxlPSJcdTY3MkNcdTZCMjFcdTRGMUFcdThCRERcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTEiPjxzdmcgY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWljb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48L3N2Zz48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtdG90YWwiPicrbi50b3RhbCsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAiIGlkPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXBvcHVwLXRpdGxlIj5cdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTE8L3NwYW4+Jysobi5jb21tYW5kPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+Jyt6KCJ0ZXJtaW5hbCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0N0RcdTRFRTRcdTYyNjdcdTg4NEM8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+JytuLmNvbW1hbmQrIjwvc3Bhbj48L3NwYW4+IjoiIikrKG4uZmlsZT4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicreigiZWRpdCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTY1ODdcdTRFRjZcdTUxOTlcdTUxNjU8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+JytuLmZpbGUrIjwvc3Bhbj48L3NwYW4+IjoiIikrKG4udG9vbD4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicreigid3JlbmNoIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTE3Nlx1NEVENlx1NURFNVx1NTE3Nzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK24udG9vbCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsnPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyBhcHByb3ZhbC1zdGF0cy1yb3ctdG90YWwiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+Jyt6KCJzaWdtYSIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0MDhcdThCQTE8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+JytuLnRvdGFsKyI8L3NwYW4+PC9zcGFuPjwvc3Bhbj4iO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmFwcHJvdmFsLXN0YXRzLWJhZGdlIik7aSYmKGkuY2xhc3NMaXN0LnJlbW92ZSgiYXBwcm92YWwtc3RhdHMtcHVsc2UiKSxpLm9mZnNldFdpZHRoLGkuY2xhc3NMaXN0LmFkZCgiYXBwcm92YWwtc3RhdHMtcHVsc2UiKSl9fWZ1bmN0aW9uIG1kKCl7aWYoS24oImxpZ2h0IiksISFyLnNlbGVjdGVkSWQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO2UmJihlLmRpc2FibGVkPSEwKSx0JiYodC5kaXNhYmxlZD0hMCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL2FwcHJvdmUtcGVybWlzc2lvbiIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXtrKG4uZXJyb3IsImVycm9yIik7cmV0dXJufSQobiksJHQoKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe2sobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2Mjc5XHU1MUM2XHU2Mzg4XHU2NzQzXHUzMDAyIiwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlJiYoZS5kaXNhYmxlZD0hMSksdCYmKHQuZGlzYWJsZWQ9ITEpfSl9fWZ1bmN0aW9uIGdkKCl7aWYoS24oImxpZ2h0IiksISFyLnNlbGVjdGVkSWQpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO2UmJihlLmRpc2FibGVkPSEwKSx0JiYodC5kaXNhYmxlZD0hMCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL2RlbnktcGVybWlzc2lvbiIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXtrKG4uZXJyb3IsImVycm9yIik7cmV0dXJufSQobiksJHQoKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe2sobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MkQyXHU3RUREXHU2Mzg4XHU2NzQzXHUzMDAyIiwiZXJyb3IiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlJiYoZS5kaXNhYmxlZD0hMSksdCYmKHQuZGlzYWJsZWQ9ITEpfSl9fWZ1bmN0aW9uIGhkKCl7aWYoci5zZWxlY3RlZElkKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZihlJiZlLnByb3ZpZGVyPT09ImNvZGV4Iil7aygiQ29kZXggXHU0RjFBXHU4QkREXHU1NkZBXHU1QjlBXHU0RUU1IGZ1bGwtYWNjZXNzIFBUWSBcdTU0MkZcdTUyQThcdUZGMENcdTRFMERcdTY1MkZcdTYzMDFcdTUyMDdcdTYzNjJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTMwMDIiLCJpbmZvIik7cmV0dXJufXZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLWFwcHJvdmUtdG9nZ2xlIik7dCYmKHQuc3R5bGUub3BhY2l0eT0iMC41IiksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoci5zZWxlY3RlZElkKSsiL3RvZ2dsZS1hdXRvLWFwcHJvdmUiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7aWYobiYmbi5lcnJvcil7ayhuLmVycm9yLCJlcnJvciIpO3JldHVybn0kKG4pLEVzKCk7dmFyIGk9bi5hdXRvQXBwcm92ZVBlcm1pc3Npb25zO2soaT8iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1RjAwXHU1NDJGIjoiXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1MTczXHU5NUVEIiwiaW5mbyIpfSkuY2F0Y2goZnVuY3Rpb24obil7ayhuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTUyMDdcdTYzNjJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTMwMDIiLCJlcnJvciIpfSkuZmluYWxseShmdW5jdGlvbigpe3QmJih0LnN0eWxlLm9wYWNpdHk9IiIpfSl9fWZ1bmN0aW9uIEVzKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tYXBwcm92ZS10b2dnbGUiKSx0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKHNsKHQpKXtlJiZlLnBhcmVudE5vZGUmJmUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlKTtyZXR1cm59aWYoZSl7dmFyIG49ImNvbXBvc2VyLXBpbGwgY29tcG9zZXItcGlsbC1jaGlwIGF1dG8tYXBwcm92ZS1pbmRpY2F0b3IiLGk9dCYmdC5hdXRvQXBwcm92ZVBlcm1pc3Npb25zO2k/KGUuY2xhc3NOYW1lPW4rIiBhY3RpdmUiLGUudGl0bGU9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTQyRlx1NzUyOCBcdTIwMTQgXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwidHJ1ZSIpLGUuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1NDJGXHU3NTI4XHVGRjBDXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIiksZS5pbm5lckhUTUw9eigic2hpZWxkQ2hlY2siLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1ODFFQVx1NTJBODwvc3Bhbj4nKTooZS5jbGFzc05hbWU9bixlLnRpdGxlPSJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RUQgXHUyMDE0IFx1NzBCOVx1NTFGQlx1NUYwMFx1NTQyRiIsZS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsImZhbHNlIiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTVERjJcdTUxNzNcdTk1RURcdUZGMENcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiKSxlLmlubmVySFRNTD16KCJzaGllbGQiLHtzaXplOjEyLHN0cm9rZVdpZHRoOjEuNyxjbHM6ImNvbXBvc2VyLXBpbGwtaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXBpbGwtbGFiZWwiPlx1NjI0Qlx1NTJBODwvc3Bhbj4nKX19ZnVuY3Rpb24geWQoZSx0LG4pe3JldHVybiByLnRlcm1pbmFsP2FpKHR8fHIuc2VsZWN0ZWRJZCxlLHttb2RlOm58fCJhcHBlbmQifSk6ITF9ZnVuY3Rpb24gRnMoKXtyLnBvbGxUaW1lciYmKGNsZWFySW50ZXJ2YWwoci5wb2xsVGltZXIpLHIucG9sbFRpbWVyPW51bGwpfWZ1bmN0aW9uIGtnKGUpe3IuY3VycmVudFZpZXc9ZXx8InRlcm1pbmFsIixyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsIiYmKFRuKCExKSx2bygpKSxUaSgpLElhKCk7dmFyIHQ9X3QoKTt0JiYoci5jdXJyZW50TWVzc2FnZXM9UmUodCxudCh0LHQub3V0cHV0LCEwKSkpLHZ0KCksci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCImJihxdCghMCksci50ZXJtaW5hbCYmci50ZXJtaW5hbC5yZW1lYXN1cmUmJnJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IudGVybWluYWwmJnIudGVybWluYWwucmVtZWFzdXJlKCl9KSl9ZnVuY3Rpb24gZnIoZSl7ci5yZW5kZXJQZW5kaW5nJiYhZXx8KHIucmVuZGVyUGVuZGluZz0hMCxlPyhiaSghMCksci5yZW5kZXJQZW5kaW5nPSExKTpyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtiaSghMSksci5yZW5kZXJQZW5kaW5nPSExfSkpfXIuY2hhdFJlbmRlclRpbWVyPW51bGw7ZnVuY3Rpb24gYWEoZSl7aWYoIShyLmNoYXRSZW5kZXJUaW1lciYmIWUpKXtpZihyLmNoYXRSZW5kZXJUaW1lciYmY2xlYXJUaW1lb3V0KHIuY2hhdFJlbmRlclRpbWVyKSxlKXtyLmNoYXRSZW5kZXJUaW1lcj1udWxsLGZyKCk7cmV0dXJufXZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pLG49dCYmdC5zdGF0dXM9PT0icnVubmluZyImJnQuc2Vzc2lvbktpbmQhPT0ic3RydWN0dXJlZCIsaT1uP3FzOkhzO3IuY2hhdFJlbmRlclRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtyLmNoYXRSZW5kZXJUaW1lcj1udWxsO3ZhciBhPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih1KXtyZXR1cm4gdS5pZD09PXIuc2VsZWN0ZWRJZH0pO2EmJihyLmN1cnJlbnRNZXNzYWdlcz1SZShhLG50KGEsYS5vdXRwdXQsITApKSksZnIoKX0saSl9fXZhciB1YT0wLGVpPTAsd3M9MCxwcj0wO2Z1bmN0aW9uIHNhKCl7cmV0dXJuIHdpbmRvdy5fX3dhbmRJb3NOYXRpdmU9PT0hMH1mdW5jdGlvbiBDcyhlKXt3cz1NYXRoLm1heCh3cyxEYXRlLm5vdygpKyhlfHwxODAwKSl9ZnVuY3Rpb24gQnMoZSx0KXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG49ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDt0aShuKSYmbiE9PXR8fENzKGUpfSwzMCl9ZnVuY3Rpb24gYmQoZSl7cmV0dXJuIE1hdGgubWF4KHdpbmRvdy5pbm5lckhlaWdodHx8MCxlJiZlLmhlaWdodHx8MCxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHR8fDAsZG9jdW1lbnQuYm9keSYmZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHR8fDApfWZ1bmN0aW9uIEVkKGUpe3ZhciB0PWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxuPU1hdGgubWF4KHdpbmRvdy5pbm5lcldpZHRofHwwLGUmJmUud2lkdGh8fDAsdCYmdC5jbGllbnRXaWR0aHx8MCksaT1iZChlKTtyZXR1cm4hdWF8fE1hdGguYWJzKG4tdWEpPjg/KHVhPW4sZWk9aSk6aT5laSYmKGVpPWkpLE1hdGgubWF4KDEsTWF0aC5yb3VuZChlaXx8aXx8MSkpfWZ1bmN0aW9uIEZkKGUsdCxuLGkpe3JldHVybiBlfHwhc2EoKT8hMTp0PjB8fGk+bisxfWZ1bmN0aW9uIFduKGUpe3ZhciB0PXdpbmRvdy52aXN1YWxWaWV3cG9ydDtpZih0KXt2YXIgbj1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7aWYobi5jbGFzc0xpc3QudG9nZ2xlKCJpcy1rZXlib2FyZC1vcGVuIiwhIWUpLHdpbmRvdy5fX3dhbmRJbWVOYXRpdmUpe24uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LXRvcCIsIjBweCIpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LWhlaWdodCIsTWF0aC5yb3VuZCh0LmhlaWdodCkrInB4Iik7cmV0dXJufXZhciBpPUVkKHQpLGE9TWF0aC5tYXgoMCxNYXRoLnJvdW5kKHQub2Zmc2V0VG9wfHwwKSksdT1NYXRoLm1heCgxLE1hdGgucm91bmQodC5oZWlnaHQpKTsoIWUmJnNhKCl8fEZkKGUsYSx1LGkpKSYmKGE9MCx1PU1hdGgubWF4KHUsaSkpLG4uc3R5bGUuc2V0UHJvcGVydHkoIi0tYXBwLXZpZXdwb3J0LXRvcCIsYSsicHgiKSxuLnN0eWxlLnNldFByb3BlcnR5KCItLWFwcC12aWV3cG9ydC1oZWlnaHQiLHUrInB4IiksKGV8fCh3aW5kb3cuc2Nyb2xsWXx8MCk+MCkmJlBhKCl9fWZ1bmN0aW9uIHRpKGUpe2lmKCFlKXJldHVybiExO3ZhciB0PWUudGFnTmFtZTtpZih0PT09IlRFWFRBUkVBInx8dD09PSJTRUxFQ1QiKXJldHVybiEwO2lmKHQ9PT0iSU5QVVQiKXt2YXIgbj0oZS5nZXRBdHRyaWJ1dGUoInR5cGUiKXx8InRleHQiKS50b0xvd2VyQ2FzZSgpO3JldHVybiEvXihidXR0b258Y2hlY2tib3h8Y29sb3J8ZmlsZXxoaWRkZW58aW1hZ2V8cmFkaW98cmFuZ2V8cmVzZXR8c3VibWl0KSQvaS50ZXN0KG4pfXJldHVybiEhZS5pc0NvbnRlbnRFZGl0YWJsZX1mdW5jdGlvbiB3ZCgpe2lmKCEoInZpc3VhbFZpZXdwb3J0ImluIHdpbmRvdyl8fHdpbmRvdy5fX3dhbmRWaWV3cG9ydEhhbmRsZXJzQm91bmQpcmV0dXJuO3dpbmRvdy5fX3dhbmRWaWV3cG9ydEhhbmRsZXJzQm91bmQ9ITA7dmFyIGU9d2luZG93LnZpc3VhbFZpZXdwb3J0LHQ9ZS5oZWlnaHQsbj0hMSxpPU1hdGgubWF4KHdpbmRvdy5pbm5lcldpZHRofHwwLGUud2lkdGh8fDApLGE9TWF0aC5tYXgod2luZG93LmlubmVySGVpZ2h0fHwwLGUuaGVpZ2h0fHwwKSx1PVtdO2Z1bmN0aW9uIHMoKXtyZXR1cm4gTWF0aC5tYXgod2luZG93LmlubmVySGVpZ2h0fHwwLGUuaGVpZ2h0fHwwKX1mdW5jdGlvbiBvKCl7dmFyIGc9TWF0aC5tYXgod2luZG93LmlubmVyV2lkdGh8fDAsZS53aWR0aHx8MCksbT1zKCk7aWYoTWF0aC5hYnMoZy1pKT44KXtpPWcsYT1tO3JldHVybn1tPmEmJihhPW0pfWZ1bmN0aW9uIGwoZyxtKXt2YXIgeT1kb2N1bWVudC5hY3RpdmVFbGVtZW50LHc9eT09PWd8fHRpKHkpLEU9YS1lLmhlaWdodCxCPWEtKHdpbmRvdy5pbm5lckhlaWdodHx8ZS5oZWlnaHR8fDApLEY9RGF0ZS5ub3coKTxwcjtyZXR1cm4gRj8hISh3JiYoRT4xMjB8fEI+MTIwKSk6ISEobT44MHx8dyYmKEU+MTIwfHxCPjEyMCl8fG4mJihFPjgwfHxtPjMyKSl9ZnVuY3Rpb24gYygpe3UuZm9yRWFjaChmdW5jdGlvbihnKXtjbGVhclRpbWVvdXQoZyl9KSx1PVs2MCwxODAsMzYwLDYyMCw5MDBdLm1hcChmdW5jdGlvbihnKXtyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe1duKG4pfSxnKX0pfWZ1bmN0aW9uIGYoKXtbMCw1MCwxMjAsMjIwLDM2MCw1NjBdLmZvckVhY2goZnVuY3Rpb24oZyl7c2V0VGltZW91dChmdW5jdGlvbigpe2QoKTt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7bSYmZG9jdW1lbnQuYWN0aXZlRWxlbWVudD09PW0mJnlpKG0pfSxnKX0pfWZ1bmN0aW9uIGQoKXtpZihlKXt2YXIgZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksbT13aW5kb3cuaW5uZXJIZWlnaHQtZS5oZWlnaHQtZS5vZmZzZXRUb3A7bygpO3ZhciB5PWwoZyxtKSx3PU1hdGguYWJzKGUuaGVpZ2h0LXQpPjg7aWYoV24oeSkseSYmKCFufHx3KSYmcnYoZSxnKSYmeWkoZyksIW4mJnkpe3ZhciBFPXIudGVybWluYWxBdXRvRm9sbG93fHxmYSgpO1plKCJrZXlib2FyZC1vcGVuIix7Zm9yY2VSZXBsYXk6ITB9KSx3aW5kb3cuX193YW5kSW1lTmF0aXZlfHxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7V24oITApfSwyMjApLGMoKSxFJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci50ZXJtaW5hbCYmRXQoImZvcmNlIil9LDIyMCl9aWYobiYmIXkpe3ZhciBCPSEhd2luZG93Ll9fd2FuZEltZU5hdGl2ZTtCfHwoQ3MoMjIwMCkscHI9RGF0ZS5ub3coKSsxMjAwLFduKCExKSxQYSgpKSxjKCksc2V0VGltZW91dChmdW5jdGlvbigpe0J8fChXbighMSksUGEoKSksWmUoImtleWJvYXJkLWNsb3NlIix7Zm9yY2VSZXBsYXk6ITB9KSxFdCgia2V5Ym9hcmQiKX0sMjAwKX13JiZuPT09eSYmWmUoInZpZXdwb3J0Iiksbj15LHQ9ZS5oZWlnaHR9fXZhciB2PW51bGw7ZnVuY3Rpb24gaCgpe3YhPT1udWxsJiZjYW5jZWxBbmltYXRpb25GcmFtZSh2KSx2PXJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3Y9bnVsbCxkKCl9KX1lLmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsaCksZS5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGgpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInZpc2liaWxpdHljaGFuZ2UiLGZ1bmN0aW9uKCl7ZG9jdW1lbnQudmlzaWJpbGl0eVN0YXRlPT09InZpc2libGUiJiYoaCgpLHNldFRpbWVvdXQoaCwyNDApLHNldFRpbWVvdXQoaCw3MjApKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJwYWdlc2hvdyIsZnVuY3Rpb24oZyl7ZyYmZy5wZXJzaXN0ZWQmJihoKCksc2V0VGltZW91dChoLDI0MCkpfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXNvdXQiLGZ1bmN0aW9uKGcpeyFnfHwhZy50YXJnZXR8fHRpKGcudGFyZ2V0KSYmKEJzKDE2MDAsZy50YXJnZXQpLHNhKCkmJihwcj1NYXRoLm1heChwcixEYXRlLm5vdygpKzEyMDApKSxzZXRUaW1lb3V0KGgsODApLHNldFRpbWVvdXQoaCw0MjApKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzaW4iLGZ1bmN0aW9uKGcpeyFnfHwhZy50YXJnZXR8fCF0aShnLnRhcmdldCl8fGYoKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3YW5kLWlvcy1pbWUtc3RhdGUiLGZ1bmN0aW9uKGcpe3ZhciBtPWcmJmcuZGV0YWlsJiZnLmRldGFpbC5zdGF0ZTttPT09ImhpZGRlbiImJihwcj1EYXRlLm5vdygpKzkwMCksZigpLGMoKX0pLGQoKX1mdW5jdGlvbiBDZCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZihlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0idGVybWluYWwtcmVzaXplLWhhbmRsZSIsdC5pbm5lckhUTUw9IiYjODk0MjsiLGUuYXBwZW5kQ2hpbGQodCk7dmFyIG49ITEsaT0wLGE9MDt0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24odSl7bj0hMCxpPXUuY2xpZW50WSxhPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LGRvY3VtZW50LmJvZHkuc3R5bGUuY3Vyc29yPSJucy1yZXNpemUiLGRvY3VtZW50LmJvZHkuc3R5bGUudXNlclNlbGVjdD0ibm9uZSIsdS5wcmV2ZW50RGVmYXVsdCgpfSksci5yZXNpemVNb3VzZU1vdmU9ZnVuY3Rpb24odSl7aWYobil7dmFyIHM9dS5jbGllbnRZLWksbz1NYXRoLm1heCgyMDAsTWF0aC5taW4oYStzLHdpbmRvdy5pbm5lckhlaWdodC0yMDApKTtlLnN0eWxlLmhlaWdodD1vKyJweCIsZS5zdHlsZS5mbGV4PSJub25lIixxdCgpfX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixyLnJlc2l6ZU1vdXNlTW92ZSksci5yZXNpemVNb3VzZVVwPWZ1bmN0aW9uKCl7biYmKG49ITEsZG9jdW1lbnQuYm9keS5zdHlsZS5jdXJzb3I9IiIsZG9jdW1lbnQuYm9keS5zdHlsZS51c2VyU2VsZWN0PSIiLHF0KCkpfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixyLnJlc2l6ZU1vdXNlVXApLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsZnVuY3Rpb24odSl7bj0hMCxpPXUudG91Y2hlc1swXS5jbGllbnRZLGE9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5oZWlnaHQsdS5wcmV2ZW50RGVmYXVsdCgpfSx7cGFzc2l2ZTohMX0pLHIucmVzaXplVG91Y2hNb3ZlPWZ1bmN0aW9uKHUpe2lmKG4pe3ZhciBzPXUudG91Y2hlc1swXS5jbGllbnRZLWksbz1NYXRoLm1heCgyMDAsTWF0aC5taW4oYStzLHdpbmRvdy5pbm5lckhlaWdodC0yMDApKTtlLnN0eWxlLmhlaWdodD1vKyJweCIsZS5zdHlsZS5mbGV4PSJub25lIixxdCgpLHUucHJldmVudERlZmF1bHQoKX19LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci5yZXNpemVUb3VjaE1vdmUse3Bhc3NpdmU6ITF9KSxyLnJlc2l6ZVRvdWNoRW5kPWZ1bmN0aW9uKCl7biYmKG49ITEscXQoKSl9LGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixyLnJlc2l6ZVRvdWNoRW5kKX19ZnVuY3Rpb24gRHMoKXtyZXR1cm4hIV90KCl9ZnVuY3Rpb24gb2EoZSl7dmFyIHQ9TWF0aC5tYXgoZG4sd2luZG93LmlubmVyV2lkdGgtcGktZG4pLG49TWF0aC5tYXgoZG4sd2luZG93LmlubmVySGVpZ2h0LXBpLWRuKTtyZXR1cm57cmlnaHQ6TWF0aC5taW4oTWF0aC5tYXgoZG4sZS5yaWdodCksdCksYm90dG9tOk1hdGgubWluKE1hdGgubWF4KGRuLGUuYm90dG9tKSxuKX19ZnVuY3Rpb24ga3MoKXtpZihyLmpveXN0aWNrQmFsbEVsKXt2YXIgZT1vYShyLmpveXN0aWNrUG9zfHx7cmlnaHQ6MTgsYm90dG9tOjk2fSk7ci5qb3lzdGlja0JhbGxFbC5zdHlsZS5yaWdodD1lLnJpZ2h0KyJweCIsci5qb3lzdGlja0JhbGxFbC5zdHlsZS5ib3R0b209ZS5ib3R0b20rInB4In19ZnVuY3Rpb24gQmQoZSx0KXt2YXIgbj1vYSh7cmlnaHQ6ZSxib3R0b206dH0pO3Iuam95c3RpY2tQb3M9bjt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtYmFsbC1wb3MiLEpTT04uc3RyaW5naWZ5KG4pKX1jYXRjaHt9fWZ1bmN0aW9uIERkKCl7ZnVuY3Rpb24gZSh1LHMsbyl7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0id2pwLWtleScrKG8/IiAiK286IiIpKyciIGRhdGEta2V5PSInK3UrJyI+JytzKyI8L2J1dHRvbj4ifXZhciB0PSc8ZGl2IGNsYXNzPSJ3anAtZHBhZCI+PGRpdiBjbGFzcz0id2pwLWRwYWQtcm93Ij4nK2UoInVwIiwiXHUyMTkxIiwid2pwLWRpciIpKyc8L2Rpdj48ZGl2IGNsYXNzPSJ3anAtZHBhZC1yb3ciPicrZSgibGVmdCIsIlx1MjE5MCIsIndqcC1kaXIiKStlKCJkb3duIiwiXHUyMTkzIiwid2pwLWRpciIpK2UoInJpZ2h0IiwiXHUyMTkyIiwid2pwLWRpciIpKyI8L2Rpdj48L2Rpdj4iLG49IiIsaTtmb3IoaT0wO2k8eGEubGVuZ3RoO2krKyluKz1lKHhhW2ldLmtleSx4YVtpXS5sYWJlbCwiIik7dmFyIGE9JzxkaXYgY2xhc3M9IndqcC1oZWFkZXIiPjxzcGFuIGNsYXNzPSJ3anAtdGl0bGUiPicreigicGF3Iix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjYsY2xzOiJ3anAtdGl0bGUtaWNvbiJ9KSsnPHNwYW4+XHU5MDY1XHU2M0E3XHU5NzYyXHU2NzdGPC9zcGFuPjwvc3Bhbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9IndqcC1jbG9zZSIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEXHU5MDY1XHU2M0E3XHU5NzYyXHU2NzdGIj4nK3ooIngiLHtzaXplOjEzLHN0cm9rZVdpZHRoOjJ9KSsiPC9idXR0b24+PC9kaXY+Iit0Kyc8ZGl2IGNsYXNzPSJ3anAtZ3JpZCB3anAtZm5rZXlzIj4nK24rIjwvZGl2PiI7cmV0dXJuIGF9ZnVuY3Rpb24ga2QoKXtpZighci5qb3lzdGlja1Jvb3RFbCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS5jbGFzc05hbWU9IndhbmQtam95c3RpY2stcm9vdCIsWyJwb2ludGVyZG93biIsInBvaW50ZXJ1cCIsInRvdWNoc3RhcnQiLCJ0b3VjaGVuZCIsImNsaWNrIl0uZm9yRWFjaChmdW5jdGlvbihhKXtlLmFkZEV2ZW50TGlzdGVuZXIoYSxBcywhMCl9KTt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1iYWNrZHJvcCIsZS5hcHBlbmRDaGlsZCh0KTt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1wYW5lbCIsbi5pbm5lckhUTUw9RGQoKSxuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixPZCksZS5hcHBlbmRDaGlsZChuKTt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTmFtZT0id2FuZC1qb3lzdGljay1iYWxsIixpLnNldEF0dHJpYnV0ZSgicm9sZSIsImJ1dHRvbiIpLGkuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiV2FuZCBcdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0YiKSxpLnNldEF0dHJpYnV0ZSgidGl0bGUiLCJcdTcwQjlcdTUxRkJcdTYyNTNcdTVGMDBcdTkwNjVcdTYzQTdcdTk3NjJcdTY3N0ZcdUZGMENcdTYyRDZcdTUyQThcdTUzRUZcdTc5RkJcdTUyQThcdTRGNERcdTdGNkUiKSxpLmlubmVySFRNTD16KCJwYXciLHtzaXplOjI1LHN0cm9rZVdpZHRoOjEuNixjbHM6IndhbmQtam95c3RpY2stbG9nbyJ9KSxlLmFwcGVuZENoaWxkKGkpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZSksci5qb3lzdGlja1Jvb3RFbD1lLHIuam95c3RpY2tCYWNrZHJvcEVsPXQsci5qb3lzdGlja1BhbmVsRWw9bixyLmpveXN0aWNrQmFsbEVsPWksa3MoKSxpLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixBZCksaS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpLGEuc3RvcFByb3BhZ2F0aW9uKCl9KSx0LmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixmdW5jdGlvbihhKXtyLmpveXN0aWNrUGlubmVkT3BlbiYmci5qb3lzdGlja0dlc3R1cmU9PW51bGwmJihhLnByZXZlbnREZWZhdWx0KCksdnIoKSl9KSx0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXthLnByZXZlbnREZWZhdWx0KCksYS5zdG9wUHJvcGFnYXRpb24oKX0pLHIuam95c3RpY2tSZXNpemVIYW5kbGVyPWZ1bmN0aW9uKCl7a3MoKX0sd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5qb3lzdGlja1Jlc2l6ZUhhbmRsZXIpLFRzKCl9fWZ1bmN0aW9uIEFzKCl7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygiaXMtd2FuZC1uYXRpdmUtaW5wdXQiKSl7dmFyIGU9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDtpZihlJiZ0eXBlb2YgZS5ibHVyPT0iZnVuY3Rpb24iKXRyeXtlLmJsdXIoKX1jYXRjaHt9c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7aWYodCYmdHlwZW9mIHQuYmx1cj09ImZ1bmN0aW9uIil0cnl7dC5ibHVyKCl9Y2F0Y2h7fX0sMCl9fWZ1bmN0aW9uIEFkKGUpe2lmKERzKCkmJiEoKGUucG9pbnRlclR5cGU9PT0ibW91c2UifHxlLnBvaW50ZXJUeXBlPT09InBlbiIpJiZlLmJ1dHRvbiE9PTApJiZyLmpveXN0aWNrUG9pbnRlcklkPT09bnVsbCl7QXMoKSxlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgdD1lLnBvaW50ZXJUeXBlPT09Im1vdXNlInx8ZS5wb2ludGVyVHlwZT09PSJwZW4iO3Iuam95c3RpY2tQb2ludGVySWQ9ZS5wb2ludGVySWQsci5qb3lzdGlja1ByZXNzU3RhcnQ9e3g6ZS5jbGllbnRYLHk6ZS5jbGllbnRZLHQ6RGF0ZS5ub3coKX0sci5qb3lzdGlja0dlc3R1cmU9InBlbmRpbmciO3RyeXtyLmpveXN0aWNrQmFsbEVsLnNldFBvaW50ZXJDYXB0dXJlKGUucG9pbnRlcklkKX1jYXRjaHt9dHx8KHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5qb3lzdGlja0dlc3R1cmU9PT0icGVuZGluZyImJnhzKCl9LEZwKSksci5qb3lzdGlja01vdmVIYW5kbGVyPXhkLHIuam95c3RpY2tVcEhhbmRsZXI9U2QsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHIuam95c3RpY2tNb3ZlSGFuZGxlciksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcnVwIixyLmpveXN0aWNrVXBIYW5kbGVyKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVyY2FuY2VsIixyLmpveXN0aWNrVXBIYW5kbGVyKX19ZnVuY3Rpb24geHMoKXtyLmpveXN0aWNrR2VzdHVyZT0ibW92ZSIsci5qb3lzdGlja1Bpbm5lZE9wZW4mJnZyKCksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja0JhbGxFbC5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLHIuam95c3RpY2tCYWNrZHJvcEVsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKX1mdW5jdGlvbiBTcyhlLHQpe2lmKHIuam95c3RpY2tCYWxsRWwpe3ZhciBuPW9hKHtyaWdodDp3aW5kb3cuaW5uZXJXaWR0aC1lLXBpLzIsYm90dG9tOndpbmRvdy5pbm5lckhlaWdodC10LXBpLzJ9KTtyLmpveXN0aWNrQmFsbEVsLnN0eWxlLnJpZ2h0PW4ucmlnaHQrInB4IixyLmpveXN0aWNrQmFsbEVsLnN0eWxlLmJvdHRvbT1uLmJvdHRvbSsicHgifX1mdW5jdGlvbiB4ZChlKXtpZighKGUucG9pbnRlcklkIT09ci5qb3lzdGlja1BvaW50ZXJJZHx8IXIuam95c3RpY2tCYWxsRWwpKXtpZihlLnByZXZlbnREZWZhdWx0KCksci5qb3lzdGlja0dlc3R1cmU9PT0ibW92ZSIpe1NzKGUuY2xpZW50WCxlLmNsaWVudFkpO3JldHVybn1pZihyLmpveXN0aWNrR2VzdHVyZT09PSJwZW5kaW5nIil7dmFyIHQ9ZS5jbGllbnRYLXIuam95c3RpY2tQcmVzc1N0YXJ0Lngsbj1lLmNsaWVudFktci5qb3lzdGlja1ByZXNzU3RhcnQueTtNYXRoLnNxcnQodCp0K24qbik8PXdwfHwoZS5wb2ludGVyVHlwZT09PSJtb3VzZSJ8fGUucG9pbnRlclR5cGU9PT0icGVuIj8oeHMoKSxTcyhlLmNsaWVudFgsZS5jbGllbnRZKSk6KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciYmKGNsZWFyVGltZW91dChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXIpLHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1udWxsKSxyLmpveXN0aWNrR2VzdHVyZT0iY2FuY2VsbGVkIikpfX19ZnVuY3Rpb24gU2QoZSl7aWYoZS5wb2ludGVySWQ9PT1yLmpveXN0aWNrUG9pbnRlcklkKXtyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXImJihjbGVhclRpbWVvdXQoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyKSxyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXI9bnVsbCk7dmFyIHQ9ci5qb3lzdGlja0dlc3R1cmU7aWYodD09PSJwZW5kaW5nIil7dmFyIG49ZS5jbGllbnRYLXIuam95c3RpY2tQcmVzc1N0YXJ0LngsaT1lLmNsaWVudFktci5qb3lzdGlja1ByZXNzU3RhcnQueTtNYXRoLnNxcnQobipuK2kqaSk8PUNwJiZMZCgpfWVsc2UgaWYodD09PSJtb3ZlIil7dmFyIGE9ci5qb3lzdGlja0JhbGxFbD9yLmpveXN0aWNrQmFsbEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOm51bGw7YSYmQmQod2luZG93LmlubmVyV2lkdGgtYS5yaWdodCx3aW5kb3cuaW5uZXJIZWlnaHQtYS5ib3R0b20pfUlzKCl9fWZ1bmN0aW9uIElzKCl7aWYoci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyJiYoY2xlYXJUaW1lb3V0KHIuam95c3RpY2tMb25nUHJlc3NUaW1lciksci5qb3lzdGlja0xvbmdQcmVzc1RpbWVyPW51bGwpLHIuam95c3RpY2tCYWxsRWwmJnIuam95c3RpY2tQb2ludGVySWQhPT1udWxsKXRyeXtyLmpveXN0aWNrQmFsbEVsLnJlbGVhc2VQb2ludGVyQ2FwdHVyZShyLmpveXN0aWNrUG9pbnRlcklkKX1jYXRjaHt9ci5qb3lzdGlja01vdmVIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcm1vdmUiLHIuam95c3RpY2tNb3ZlSGFuZGxlciksci5qb3lzdGlja01vdmVIYW5kbGVyPW51bGwpLHIuam95c3RpY2tVcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLHIuam95c3RpY2tVcEhhbmRsZXIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLHIuam95c3RpY2tVcEhhbmRsZXIpLHIuam95c3RpY2tVcEhhbmRsZXI9bnVsbCksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja0JhbGxFbC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHIuam95c3RpY2tCYWNrZHJvcEVsJiYhci5qb3lzdGlja1Bpbm5lZE9wZW4mJnIuam95c3RpY2tCYWNrZHJvcEVsLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLHIuam95c3RpY2tQb2ludGVySWQ9bnVsbCxyLmpveXN0aWNrR2VzdHVyZT1udWxsLHIuam95c3RpY2tQcmVzc1N0YXJ0PW51bGx9ZnVuY3Rpb24gSWQoZSl7aWYoZT09PSJjdHJsInx8ZT09PSJhbHQifHxlPT09InNoaWZ0Iil7ci5tb2RpZmllcnNbZV09IXIubW9kaWZpZXJzW2VdLG1yKCk7cmV0dXJufXZhciB0PV90KCk7aWYodCYmdWUodCkpeyhlPT09ImN0cmxfYyJ8fGU9PT0iZXNjYXBlIikmJlRkKHQsZSksbWkoKSxtcigpO3JldHVybn12YXIgbj1tbyhlLHtjdHJsOnIubW9kaWZpZXJzLmN0cmwsYWx0OnIubW9kaWZpZXJzLmFsdCxzaGlmdDpyLm1vZGlmaWVycy5zaGlmdH0pO24mJnBvKG4sZSksbWkoKSxtcigpLE1wKCl9ZnVuY3Rpb24gVGQoZSx0KXshZXx8IWUuaWR8fGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIitlLmlkKyIvbWVzc2FnZXMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDoiIixpbnRlcnJ1cHQ6ITAscHJlc2VydmVRdWV1ZTohMH0pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5vaz9uLmpzb24oKTpuLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihpKXt0aHJvdyBuZXcgRXJyb3IoaSYmaS5lcnJvcnx8Ilx1NEUyRFx1NjVBRFx1NTkzMVx1OEQyNSAoa2V5PSIrdCsiKSIpfSl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uaWQmJigkKG4pLG4uaWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgaT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1uLmlkfSl8fG47ci5jdXJyZW50TWVzc2FnZXM9UmUoaSxudChpLG4ub3V0cHV0LCExKSksZnIoITApLHR5cGVvZiBzdD09ImZ1bmN0aW9uIiYmc3QoKX19KS5jYXRjaChmdW5jdGlvbihuKXtuJiZuLm1lc3NhZ2UmJmNvbnNvbGUuZGVidWcoIlt3YW5kXSBqb3lzdGljayBpbnRlcnJ1cHQgbm8tb3A6IixuLm1lc3NhZ2UpfSl9ZnVuY3Rpb24gTGQoKXtyLmpveXN0aWNrUGlubmVkT3Blbj92cigpOk1kKCl9ZnVuY3Rpb24gTWQoKXtpZighKCFyLmpveXN0aWNrUGFuZWxFbHx8IXIuam95c3RpY2tCYWxsRWwpKXtyLmpveXN0aWNrUGlubmVkT3Blbj0hMDt2YXIgZT1yLmpveXN0aWNrQmFsbEVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3Iuam95c3RpY2tQYW5lbEVsLnN0eWxlLnJpZ2h0PU1hdGgubWF4KGRuLHdpbmRvdy5pbm5lcldpZHRoLWUucmlnaHQpKyJweCIsci5qb3lzdGlja1BhbmVsRWwuc3R5bGUuYm90dG9tPU1hdGgubWF4KGRuLHdpbmRvdy5pbm5lckhlaWdodC1lLnRvcCsxMCkrInB4IixyLmpveXN0aWNrUGFuZWxFbC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxyLmpveXN0aWNrQmFsbEVsLmNsYXNzTGlzdC5hZGQoInBhbmVsLW9wZW4iKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIiksbXIoKX19ZnVuY3Rpb24gdnIoKXtyLmpveXN0aWNrUGlubmVkT3Blbj0hMSxyLmpveXN0aWNrUGFuZWxFbCYmci5qb3lzdGlja1BhbmVsRWwuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksci5qb3lzdGlja0JhbGxFbCYmci5qb3lzdGlja0JhbGxFbC5jbGFzc0xpc3QucmVtb3ZlKCJwYW5lbC1vcGVuIiksci5qb3lzdGlja0JhY2tkcm9wRWwmJnIuam95c3RpY2tHZXN0dXJlPT1udWxsJiZyLmpveXN0aWNrQmFja2Ryb3BFbC5jbGFzc0xpc3QucmVtb3ZlKCJhY3RpdmUiKX1mdW5jdGlvbiBtcigpe3Iuam95c3RpY2tQYW5lbEVsJiZbImN0cmwiLCJhbHQiXS5mb3JFYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PXIuam95c3RpY2tQYW5lbEVsLnF1ZXJ5U2VsZWN0b3IoJy53anAtbW9kW2RhdGEta2V5PSInK2UrJyJdJyk7dCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCEhci5tb2RpZmllcnNbZV0pfSl9ZnVuY3Rpb24gT2QoZSl7dmFyIHQ9ZS50YXJnZXQmJmUudGFyZ2V0LmNsb3Nlc3Q/ZS50YXJnZXQuY2xvc2VzdCgiLndqcC1jbG9zZSIpOm51bGw7aWYodCl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksdnIoKTtyZXR1cm59dmFyIG49ZS50YXJnZXQmJmUudGFyZ2V0LmNsb3Nlc3Q/ZS50YXJnZXQuY2xvc2VzdCgiLndqcC1rZXkiKTpudWxsO2lmKG4pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBpPW4uZ2V0QXR0cmlidXRlKCJkYXRhLWtleSIpO2kmJklkKGkpfX1mdW5jdGlvbiBUcygpe3ZhciBlPXIuam95c3RpY2tSb290RWw7aWYoZSl7dmFyIHQ9RHMoKTtlLmNsYXNzTGlzdC50b2dnbGUoInZpc2libGUiLHQpLHR8fCgoci5qb3lzdGlja1BvaW50ZXJJZCE9PW51bGx8fHIuam95c3RpY2tHZXN0dXJlKSYmSXMoKSxyLmpveXN0aWNrUGlubmVkT3BlbiYmdnIoKSxyLmpveXN0aWNrQmFja2Ryb3BFbCYmci5qb3lzdGlja0JhY2tkcm9wRWwuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIikpfX1mdW5jdGlvbiBQZCgpe3Iuam95c3RpY2tMb25nUHJlc3NUaW1lciYmKGNsZWFyVGltZW91dChyLmpveXN0aWNrTG9uZ1ByZXNzVGltZXIpLHIuam95c3RpY2tMb25nUHJlc3NUaW1lcj1udWxsKSxyLmpveXN0aWNrTW92ZUhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsci5qb3lzdGlja01vdmVIYW5kbGVyKSxyLmpveXN0aWNrTW92ZUhhbmRsZXI9bnVsbCksci5qb3lzdGlja1VwSGFuZGxlciYmKGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsci5qb3lzdGlja1VwSGFuZGxlciksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsci5qb3lzdGlja1VwSGFuZGxlciksci5qb3lzdGlja1VwSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrUmVzaXplSGFuZGxlciYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHIuam95c3RpY2tSZXNpemVIYW5kbGVyKSx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib3JpZW50YXRpb25jaGFuZ2UiLHIuam95c3RpY2tSZXNpemVIYW5kbGVyKSxyLmpveXN0aWNrUmVzaXplSGFuZGxlcj1udWxsKSxyLmpveXN0aWNrUm9vdEVsJiZyLmpveXN0aWNrUm9vdEVsLnBhcmVudE5vZGUmJnIuam95c3RpY2tSb290RWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyLmpveXN0aWNrUm9vdEVsKSxyLmpveXN0aWNrUm9vdEVsPW51bGwsci5qb3lzdGlja1BhbmVsRWw9bnVsbCxyLmpveXN0aWNrQmFja2Ryb3BFbD1udWxsLHIuam95c3RpY2tCYWxsRWw9bnVsbCxyLmpveXN0aWNrUG9pbnRlcklkPW51bGwsci5qb3lzdGlja0dlc3R1cmU9bnVsbCxyLmpveXN0aWNrUHJlc3NTdGFydD1udWxsLHIuam95c3RpY2tQaW5uZWRPcGVuPSExfWZ1bmN0aW9uIHFkKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKGUpe3ZhciB0PSFOZSgpO3IucmVzaXplSGFuZGxlcj1mdW5jdGlvbigpe3F0KCEwKTt2YXIgbj0hTmUoKTt0IT09biYmKHQ9biwhbiYmci5zaWRlYmFyUGlubmVkJiZyLnNlc3Npb25zRHJhd2VyT3Blbj8oci5zZXNzaW9uc0RyYXdlck9wZW49ITEsQWUoIndhbmQtc2lkZWJhci1vcGVuIiwhMSksVHIoKSk6biYmci5zaWRlYmFyUGlubmVkJiYhci5zZXNzaW9uc0RyYXdlck9wZW4mJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLCEwKSxUcigpKSl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHIucmVzaXplSGFuZGxlciksd2luZG93LnZpc3VhbFZpZXdwb3J0JiYoci52aXN1YWxWaWV3cG9ydEhhbmRsZXI9ZnVuY3Rpb24oKXtxdCghMCl9LHdpbmRvdy52aXN1YWxWaWV3cG9ydC5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLHIudmlzdWFsVmlld3BvcnRIYW5kbGVyKSksci52aXNpYmlsaXR5SGFuZGxlcj1mdW5jdGlvbigpe2RvY3VtZW50LmhpZGRlbnx8WmUoInZpc2liaWxpdHkiLHtmb3JjZVJlcGxheTohMH0pfSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixyLnZpc2liaWxpdHlIYW5kbGVyKSxyLm9yaWVudGF0aW9uSGFuZGxlcj1mdW5jdGlvbigpe1plKCJvcmllbnRhdGlvbiIse2ZvcmNlUmVwbGF5OiEwfSl9LHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5vcmllbnRhdGlvbkhhbmRsZXIpLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3F0KCEwKX0pfX1mdW5jdGlvbiBIZCgpe3IudGVybWluYWxIZWFsdGhUaW1lcnx8KHIudGVybWluYWxIZWFsdGhUaW1lcj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKCEoIXIudGVybWluYWx8fHIuY3VycmVudFZpZXchPT0idGVybWluYWwifHxkb2N1bWVudC5oaWRkZW4pKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odSl7cmV0dXJuIHUuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZighKCFlfHxlLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiKSl7WmUoImhlYWx0aCIpO3ZhciB0PURhdGUubm93KCksbj1yLmxhc3RDaHVua0F0PjAmJnQtci5sYXN0Q2h1bmtBdD4zMDAsaT10LXIubGFzdFRlcm1pbmFsUmVzeW5jQXQ+M2U0LGE9ci5sYXN0Q2h1bmtBdD5yLmxhc3RUZXJtaW5hbFJlc3luY0F0O2kmJmEmJihufHxlLnN0YXR1cyE9PSJydW5uaW5nIikmJnIudGVybWluYWxPdXRwdXQmJkFuKCl9fX0sNWUzKSl9ZnVuY3Rpb24gX2QoKXtyLnRlcm1pbmFsSGVhbHRoVGltZXImJihjbGVhckludGVydmFsKHIudGVybWluYWxIZWFsdGhUaW1lciksci50ZXJtaW5hbEhlYWx0aFRpbWVyPW51bGwpfWZ1bmN0aW9uIGdyKCl7X2QoKSxyLnJlc2l6ZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIucmVzaXplVGltZXIpLHIucmVzaXplVGltZXI9bnVsbCksci5yZXNpemVPYnNlcnZlciYmKHIucmVzaXplT2JzZXJ2ZXIuZGlzY29ubmVjdCgpLHIucmVzaXplT2JzZXJ2ZXI9bnVsbCksci5yZXNpemVIYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsci5yZXNpemVIYW5kbGVyKSxyLnJlc2l6ZUhhbmRsZXI9bnVsbCksci52aXN1YWxWaWV3cG9ydEhhbmRsZXImJndpbmRvdy52aXN1YWxWaWV3cG9ydCYmKHdpbmRvdy52aXN1YWxWaWV3cG9ydC5yZW1vdmVFdmVudExpc3RlbmVyKCJyZXNpemUiLHIudmlzdWFsVmlld3BvcnRIYW5kbGVyKSxyLnZpc3VhbFZpZXdwb3J0SGFuZGxlcj1udWxsKSxyLnZpc2liaWxpdHlIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidmlzaWJpbGl0eWNoYW5nZSIsci52aXNpYmlsaXR5SGFuZGxlciksci52aXNpYmlsaXR5SGFuZGxlcj1udWxsKSxyLm9yaWVudGF0aW9uSGFuZGxlciYmKHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJvcmllbnRhdGlvbmNoYW5nZSIsci5vcmllbnRhdGlvbkhhbmRsZXIpLHIub3JpZW50YXRpb25IYW5kbGVyPW51bGwpLFtbIm1vdXNlbW92ZSIsInJlc2l6ZU1vdXNlTW92ZSJdLFsibW91c2V1cCIsInJlc2l6ZU1vdXNlVXAiXSxbInRvdWNobW92ZSIsInJlc2l6ZVRvdWNoTW92ZSJdLFsidG91Y2hlbmQiLCJyZXNpemVUb3VjaEVuZCJdXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe3JbYVsxXV0mJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKGFbMF0sclthWzFdXSksclthWzFdXT1udWxsKX0pLHpuKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKHIudGVybWluYWxWaWV3cG9ydEVsJiYoci50ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlciYmci50ZXJtaW5hbFZpZXdwb3J0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2Nyb2xsIixyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyKSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaEhhbmRsZXImJnIudGVybWluYWxWaWV3cG9ydEVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyKSxyLnRlcm1pbmFsVmlld3BvcnRUb3VjaFN0YXJ0SGFuZGxlciYmci50ZXJtaW5hbFZpZXdwb3J0RWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXIpKSxlJiYoci50ZXJtaW5hbFdoZWVsSGFuZGxlciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ3aGVlbCIsci50ZXJtaW5hbFdoZWVsSGFuZGxlciksci50ZXJtaW5hbENsaWNrSGFuZGxlciYmZS5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsci50ZXJtaW5hbENsaWNrSGFuZGxlcikpLHIudGVybWluYWxWaWV3cG9ydEVsPW51bGwsci50ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcj1udWxsLHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlcj1udWxsLHIudGVybWluYWxWaWV3cG9ydFRvdWNoU3RhcnRIYW5kbGVyPW51bGwsci50ZXJtaW5hbFdoZWVsSGFuZGxlcj1udWxsLHIudGVybWluYWxDbGlja0hhbmRsZXI9bnVsbCxyLnRlcm1pbmFsU2Nyb2xsYmFySGlkZVRpbWVyJiYoY2xlYXJUaW1lb3V0KHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXIpLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXI9bnVsbCksci50ZXJtaW5hbFNjcm9sbGJhckVsJiZyLnRlcm1pbmFsU2Nyb2xsYmFyRWwucGFyZW50Tm9kZSYmci50ZXJtaW5hbFNjcm9sbGJhckVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoci50ZXJtaW5hbFNjcm9sbGJhckVsKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRWw9bnVsbCxyLnRlcm1pbmFsU2Nyb2xsYmFyVGh1bWJFbD1udWxsLHIudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZz0hMSxyLnRlcm1pbmFsJiYoci50ZXJtaW5hbC5kZXN0cm95KCksci50ZXJtaW5hbD1udWxsKSxlKWZvcih2YXIgdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXJtaW5hbC1zY3JvbGwtd3JhcCIpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLnBhcmVudE5vZGU9PT1lJiZlLnJlbW92ZUNoaWxkKGkpfW1hKCksci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsci5zeW5jT3V0cHV0RGVhZGxpbmU9MCxyLnN5bmNGcmFtaW5nUmVzaWR1ZT0hMSxyLnRlcm1pbmFsU2Vzc2lvbklkPW51bGwsci50ZXJtaW5hbE91dHB1dD0iIixyLnRlcm1pbmFsT3V0cHV0TWFya2VyPTAsci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsci5zaG93VGVybWluYWxKdW1wVG9Cb3R0b209ITEsdnQoKSxyLnNvZnRSZXN5bmNUaW1lciYmKGNsZWFyVGltZW91dChyLnNvZnRSZXN5bmNUaW1lciksci5zb2Z0UmVzeW5jVGltZXI9bnVsbCksci5fcmVzeW5jQ2h1bmtUYWlsVGltZXImJihjbGVhclRpbWVvdXQoci5fcmVzeW5jQ2h1bmtUYWlsVGltZXIpLHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGwpLHIuX3Jlc3luY0NodW5rTGFzdEF0PTAsci5fcmVzeW5jU3RhdHNXaW5kb3dTdGFydD0wLHIuX3Jlc3luY1N0YXRzQ291bnQ9MCxyLl9yZXN5bmNMYXN0V2FybkF0PTAsci5fcmVzeW5jSW5Qcm9ncmVzcz0hMSxyLmxhc3RSZXNpemU9e2NvbHM6MCxyb3dzOjB9LFBkKCl9ZnVuY3Rpb24gbmkoZSx0KXtpZihyLnNlbGVjdGVkSWQpe3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCEoIW58fG4uc3RhdHVzIT09InJ1bm5pbmciKSYmIXVlKG4pKXtlPjI1NiYmKGU9MjU2KSx0PjE2MCYmKHQ9MTYwKTt2YXIgaT17Y29sczplLHJvd3M6dH07KHIubGFzdFJlc2l6ZS5jb2xzIT09aS5jb2xzfHxyLmxhc3RSZXNpemUucm93cyE9PWkucm93cykmJihyLmxhc3RSZXNpemU9aSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK3Iuc2VsZWN0ZWRJZCsiL3Jlc2l6ZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoaSl9KS5jYXRjaChmdW5jdGlvbigpe30pKX19fWZ1bmN0aW9uIFplKGUsdCl7aWYoIXIudGVybWluYWwpcmV0dXJuITE7dmFyIG49dHx8e30saT1uLmZvcmNlUmVwbGF5PT09ITAsYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoIWF8fGEub2Zmc2V0V2lkdGg9PT0wfHxhLm9mZnNldEhlaWdodD09PTApcmV0dXJuIGhyKGV8fCJmaXQtcmV0cnkiLHtmb3JjZVJlcGxheTppfSksITE7dmFyIHU9ci50ZXJtaW5hbEF1dG9Gb2xsb3d8fGZhKCkscz1yLnRlcm1pbmFsLmNvbHMsbz1yLnRlcm1pbmFsLnJvd3M7cmV0dXJuIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3JlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2lmKHIudGVybWluYWwpe3R5cGVvZiByLnRlcm1pbmFsLnJlbWVhc3VyZT09ImZ1bmN0aW9uIiYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKSxuaShyLnRlcm1pbmFsLmNvbHMsci50ZXJtaW5hbC5yb3dzKTt2YXIgbD1yLnRlcm1pbmFsLmNvbHMhPT1zfHxyLnRlcm1pbmFsLnJvd3MhPT1vOyFsJiZpJiZyLnRlcm1pbmFsT3V0cHV0JiZBbih7c2tpcEZpdDohMH0pLHUmJkV0KCJmb3JjZSIpfX0pfSksITB9ZnVuY3Rpb24gaHIoZSx0KXtpZighci50ZXJtaW5hbClyZXR1cm47dmFyIG49dHx8e30saT1uLmZvcmNlUmVwbGF5IT09ITEsYT0wLHU9ODtmdW5jdGlvbiBzKCl7aWYoci50ZXJtaW5hbCl7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2lmKG8mJm8ub2Zmc2V0SGVpZ2h0LG8mJm8ub2Zmc2V0V2lkdGg+MCYmby5vZmZzZXRIZWlnaHQ+MCl7WmUoZSx7Zm9yY2VSZXBsYXk6aX0pO3JldHVybn0rK2E+PXV8fChhPD00P3JlcXVlc3RBbmltYXRpb25GcmFtZShzKTpzZXRUaW1lb3V0KHMsMzIpKX19cygpfWZ1bmN0aW9uIHF0KGUpe3IucmVzaXplVGltZXImJihjbGVhclRpbWVvdXQoci5yZXNpemVUaW1lciksci5yZXNpemVUaW1lcj1udWxsKTt2YXIgdD1lPzA6MTAwO3IucmVzaXplVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IucmVzaXplVGltZXI9bnVsbCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoTmQpfSx0KX1mdW5jdGlvbiBOZCgpe2lmKHIudGVybWluYWwpe3ZhciBlPXIudGVybWluYWxBdXRvRm9sbG93fHxmYSgpO2UmJkV0KCJmb3JjZSIpLG5pKHIudGVybWluYWwuY29scyxyLnRlcm1pbmFsLnJvd3MpfX1mdW5jdGlvbiBYdChlKXtyLndvcmtpbmdEaXI9ZTt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtd29ya2luZy1kaXIiLGUpfWNhdGNoe31qZChlKX1mdW5jdGlvbiBsYShlKXtmZXRjaCgiL2FwaS9yZWNlbnQtcGF0aHMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe2UodHx8W10pfSkuY2F0Y2goZnVuY3Rpb24oKXtlKFtdKX0pfWZ1bmN0aW9uIGpkKGUpe3JldHVybiBmZXRjaCgiL2FwaS9yZWNlbnQtcGF0aHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtwYXRoOmV9KX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gY2EoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG4pe3JldHVybiBuLmlkPT09ZX0pO3QmJnQuc3RhdHVzIT09InJ1bm5pbmciJiYhdWUodCk/Rm8oZSk6V3QoZSksenQoKX1mdW5jdGlvbiBSZChlKXt2YXIgdD1lLnRhcmdldDtpZighKCF0fHwhKHQgaW5zdGFuY2VvZiBFbGVtZW50KSkpe3ZhciBuPXQuY2xvc2VzdCgiLnNpZGViYXItY29sbGFwc2VkLXRpbGUiKTtpZihuJiZuIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpe2lmKG4uZGF0YXNldC5jb2xsYXBzZWROZXdTZXNzaW9uKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx1dSgpO3JldHVybn1pZihuLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSxjYShuLmRhdGFzZXQuY29sbGFwc2VkU2Vzc2lvbklkKTtyZXR1cm59aWYobi5kYXRhc2V0LmNvbGxhcHNlZEhpc3RvcnlJZCl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGk9bi5kYXRhc2V0LmNvbGxhcHNlZEhpc3RvcnlJZCxhPW4uZGF0YXNldC5jd2R8fCIiO2dpKGksYSkudGhlbihmdW5jdGlvbih2KXt2JiZ2LmlkJiYoci5zZWxlY3RlZElkPXYuaWQsd2UoKSxyLmRyYWZ0c1t2LmlkXT0iIix2bigpLnRoZW4oZnVuY3Rpb24oKXtXdCh2LmlkKX0pKX0pO3JldHVybn19dmFyIHU9dC5jbG9zZXN0KCIjY2xhdWRlLWhpc3RvcnktdG9nZ2xlIik7aWYodSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQ9IXIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkLHIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkJiYhci5jbGF1ZGVIaXN0b3J5TG9hZGVkJiZYcigpLG1lKCk7cmV0dXJufXZhciBzPXQuY2xvc2VzdCgiW2RhdGEtYWN0aW9uXSIpO2lmKHMmJnMgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCl7aWYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkscy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtbWFuYWdlLW1vZGUiKWVkKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InNlbGVjdC1hbGwtdmlzaWJsZSIpZHMoKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0iY2xlYXItc2VsZWN0aW9uIiluZCgpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtc2VsZWN0ZWQiKXJkKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1zZWxlY3Rpb24iKWRyKHMuZGF0YXNldC5raW5kLHMuZGF0YXNldC5pZCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1zZXNzaW9uIiYmcy5kYXRhc2V0LnNlc3Npb25JZCkoZnVuY3Rpb24odil7a24oIlx1Nzg2RVx1OEJBNFx1NTIyMFx1OTY2NFx1OEZEOVx1NEUyQVx1NEYxQVx1OEJERFx1NTQxN1x1RkYxRlx1NkI2NFx1NjRDRFx1NEY1Q1x1NjVFMFx1NkNENVx1NjRBNFx1OTUwMFx1MzAwMiIse3RpdGxlOiJcdTUyMjBcdTk2NjRcdTRGMUFcdThCREQifSkudGhlbihmdW5jdGlvbihoKXtoJiZnbyh2KX0pfSkocy5kYXRhc2V0LnNlc3Npb25JZCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImRlbGV0ZS1oaXN0b3J5IiYmcy5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZCkoZnVuY3Rpb24odixoKXtrbigiXHU3ODZFXHU4QkE0XHU5NjkwXHU4NUNGXHU4RkQ5XHU2NzYxIENsYXVkZSBcdTUzODZcdTUzRjJcdTU0MTdcdUZGMUYiLHt0aXRsZToiXHU5NjkwXHU4NUNGXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREIixva0xhYmVsOiJcdTk2OTBcdTg1Q0YifSkudGhlbihmdW5jdGlvbihnKXtnJiZobyh2LGgpfSl9KShzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLHMuY2xvc2VzdCgiLnNlc3Npb24taXRlbSIpKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0idG9nZ2xlLWhpc3RvcnktZGlyZWN0b3J5IiYmcy5kYXRhc2V0LmN3ZCl7dmFyIG89cy5kYXRhc2V0LmN3ZDtyLmNsYXVkZUhpc3RvcnlFeHBhbmRlZERpcnNbb109IXIuY2xhdWRlSGlzdG9yeUV4cGFuZGVkRGlyc1tvXSxtZSgpfWVsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtaGlzdG9yeS1kaXJlY3RvcnkiJiZzLmRhdGFzZXQuY3dkKShmdW5jdGlvbih2LGgpe3ZhciBnPVJwKHYpLG09Tm4oKS5maWx0ZXIoZnVuY3Rpb24oeSl7cmV0dXJuIHkuY3dkPT09dn0pLmxlbmd0aDtrbigiXHU3ODZFXHU4QkE0XHU2RTA1XHU3QTdBXHU2QjY0XHU3NkVFXHU1RjU1XHU0RTBCXHU3Njg0ICIrbSsiIFx1Njc2MSBDbGF1ZGUgXHU1Mzg2XHU1M0YyXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1NkUwNVx1N0E3QVx1NzZFRVx1NUY1NVx1NTM4Nlx1NTNGMiIsb2tMYWJlbDoiXHU2RTA1XHU3QTdBIn0pLnRoZW4oZnVuY3Rpb24oeSl7eSYmKHlvKGcsITApLGpwKHYsaCxnKSl9KX0pKHMuZGF0YXNldC5jd2Qscyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09ImNsZWFyLWFsbC1oaXN0b3J5IilpZCgpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJ0b2dnbGUtYXJjaGl2ZWQtZ3JvdXAiKXIuYXJjaGl2ZWRFeHBhbmRlZD0hci5hcmNoaXZlZEV4cGFuZGVkLG1lKCk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InJlc3VtZSImJnMuZGF0YXNldC5zZXNzaW9uSWQpVXAocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InJlc3VtZS1oaXN0b3J5IiYmcy5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZClHcChzKTtlbHNlIGlmKHMuZGF0YXNldC5hY3Rpb249PT0icmVzdW1lLWNvZGV4LWhpc3RvcnkiJiZzLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkKVZwKHMpO2Vsc2UgaWYocy5kYXRhc2V0LmFjdGlvbj09PSJkZWxldGUtY29kZXgtaGlzdG9yeSImJnMuZGF0YXNldC5jbGF1ZGVTZXNzaW9uSWQpSnAocyk7ZWxzZSBpZihzLmRhdGFzZXQuYWN0aW9uPT09InRvZ2dsZS1jb2RleC1oaXN0b3J5LWRpcmVjdG9yeSImJnMuZGF0YXNldC5jd2Qpe3ZhciBsPXMuZGF0YXNldC5jd2Q7ci5jb2RleEhpc3RvcnlFeHBhbmRlZERpcnNbbF09IXIuY29kZXhIaXN0b3J5RXhwYW5kZWREaXJzW2xdLG1lKCl9ZWxzZSBzLmRhdGFzZXQuYWN0aW9uPT09Indvcmt0cmVlLW1lcmdlIiYmcy5kYXRhc2V0LnNlc3Npb25JZD9wbChzLmRhdGFzZXQuc2Vzc2lvbklkKTpzLmRhdGFzZXQuYWN0aW9uPT09Indvcmt0cmVlLWNsZWFudXAiJiZzLmRhdGFzZXQuc2Vzc2lvbklkJiZ2bChzLmRhdGFzZXQuc2Vzc2lvbklkKTtyZXR1cm59dmFyIGM9dC5jbG9zZXN0KCIuc2Vzc2lvbi1pdGVtIik7aWYoYyl7aWYoci5zZXNzaW9uc01hbmFnZU1vZGUpe2MuZGF0YXNldC5zZXNzaW9uSWQ/ZHIoInNlc3Npb25zIixjLmRhdGFzZXQuc2Vzc2lvbklkKTpjLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkJiZkcigiaGlzdG9yeSIsYy5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCk7cmV0dXJufWlmKGMuY2xhc3NMaXN0LmNvbnRhaW5zKCJzd2lwZWQiKSl7QXIoKTtyZXR1cm59aWYoYm8pcmV0dXJuO2lmKGMuZGF0YXNldC5zZXNzaW9uSWQpY2EoYy5kYXRhc2V0LnNlc3Npb25JZCk7ZWxzZSBpZihjLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKXt2YXIgZj1jLmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkLGQ9Yy5kYXRhc2V0LmN3ZDtnaShmLGQpLnRoZW4oZnVuY3Rpb24odil7diYmdi5pZCYmKHIuc2VsZWN0ZWRJZD12LmlkLHdlKCksci5kcmFmdHNbdi5pZF09IiIsdm4oKS50aGVuKGZ1bmN0aW9uKCl7V3Qodi5pZCksenQoKX0pKX0pfX19fWZ1bmN0aW9uIFdkKGUpe2lmKCEoZS5rZXkhPT0iRW50ZXIiJiZlLmtleSE9PSIgIikpe3ZhciB0PWUudGFyZ2V0LmNsb3Nlc3QoIi5zZXNzaW9uLWl0ZW0iKTtpZih0KXtpZihlLnByZXZlbnREZWZhdWx0KCksci5zZXNzaW9uc01hbmFnZU1vZGUpe3QuZGF0YXNldC5zZXNzaW9uSWQ/ZHIoInNlc3Npb25zIix0LmRhdGFzZXQuc2Vzc2lvbklkKTp0LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkJiZkcigiaGlzdG9yeSIsdC5kYXRhc2V0LmNsYXVkZUhpc3RvcnlJZCk7cmV0dXJufWlmKHQuZGF0YXNldC5zZXNzaW9uSWQpY2EodC5kYXRhc2V0LnNlc3Npb25JZCk7ZWxzZSBpZih0LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkKXt2YXIgbj10LmRhdGFzZXQuY2xhdWRlSGlzdG9yeUlkLGk9dC5kYXRhc2V0LmN3ZDtnaShuLGkpLnRoZW4oZnVuY3Rpb24oYSl7YSYmYS5pZCYmKHIuc2VsZWN0ZWRJZD1hLmlkLHdlKCksci5kcmFmdHNbYS5pZF09IiIsdm4oKS50aGVuKGZ1bmN0aW9uKCl7V3QoYS5pZCksenQoKX0pKX0pfX19fWZ1bmN0aW9uIGRhKGUsdCl7dmFyIG49ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSk7aWYobil7dmFyIGk9bltlXTtpZighaSl7aygiXHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU2Q0ExXHU2NzA5XHU1M0VGXHU1OTBEXHU1MjM2XHU3Njg0XHU1MTg1XHU1QkI5XHUzMDAyIiwiZXJyb3IiKTtyZXR1cm59UHIoU3RyaW5nKGkpLG51bGwsZnVuY3Rpb24oKXtrKHR8fCJcdTVERjJcdTU5MERcdTUyMzYiLCJpbmZvIil9KX19ZnVuY3Rpb24gRHQoKXtyZXR1cm4hci50ZXJtaW5hbHx8IXIudGVybWluYWwuZWxlbWVudD9udWxsOihyLnRlcm1pbmFsVmlld3BvcnRFbD1yLnRlcm1pbmFsLmVsZW1lbnQsci50ZXJtaW5hbFZpZXdwb3J0RWwpfWZ1bmN0aW9uIHpuKCl7ci50ZXJtaW5hbFNjcm9sbElkbGVUaW1lciYmKGNsZWFyVGltZW91dChyLnRlcm1pbmFsU2Nyb2xsSWRsZVRpbWVyKSxyLnRlcm1pbmFsU2Nyb2xsSWRsZVRpbWVyPW51bGwpfWZ1bmN0aW9uIHZ0KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLWp1bXAtYm90dG9tIiksdD0hIXIuc2VsZWN0ZWRJZCYmci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCImJiFyLnRlcm1pbmFsQXV0b0ZvbGxvdyYmIUxzKCk7ci5zaG93VGVybWluYWxKdW1wVG9Cb3R0b209dCxlJiZlLmNsYXNzTGlzdC50b2dnbGUoInZpc2libGUiLHQpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtuJiZuLmNsYXNzTGlzdC50b2dnbGUoImhhcy1qdW1wLWJ0biIsdCl9ZnVuY3Rpb24gZmEoKXt2YXIgZT1EdCgpO2lmKCFlKXJldHVybiEwO3ZhciB0PWUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LWUuc2Nyb2xsVG9wO3JldHVybiB0PD1yLnRlcm1pbmFsU2Nyb2xsVGhyZXNob2xkfWZ1bmN0aW9uIExzKCl7dmFyIGU9RHQoKTtpZighZSlyZXR1cm4hMDt2YXIgdD1lLnNjcm9sbEhlaWdodC1lLmNsaWVudEhlaWdodC1lLnNjcm9sbFRvcDtyZXR1cm4gdDw9Mn1mdW5jdGlvbiBNcyhlKXtpZihyLnRlcm1pbmFsKXt2YXIgdD1EdCgpO2lmKHQpe3ZhciBuPWU/NTAwOjEyMDtyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw9TWF0aC5tYXgoci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsLERhdGUubm93KCkrbiksZT90LnNjcm9sbFRvKHt0b3A6dC5zY3JvbGxIZWlnaHQsYmVoYXZpb3I6InNtb290aCJ9KTp0LnNjcm9sbFRvcD10LnNjcm9sbEhlaWdodH19fWZ1bmN0aW9uIHBhKCl7ci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITEsem4oKSxyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw9MCxyLnRlcm1pbmFsJiYiX3Nob3VsZFNjcm9sbFRvQm90dG9tImluIHIudGVybWluYWwmJihyLnRlcm1pbmFsLl9zaG91bGRTY3JvbGxUb0JvdHRvbT0hMSksdnQoKX1mdW5jdGlvbiBFdChlKXtpZihyLnRlcm1pbmFsKXt2YXIgdD1lPT09ImZvcmNlIjtpZih0KXtyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCx6bigpLE1zKCExKSx2dCgpO3JldHVybn1pZighci50ZXJtaW5hbEF1dG9Gb2xsb3cpe3Z0KCk7cmV0dXJufU1zKCExKSx2dCgpfX1mdW5jdGlvbiB6ZChlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0LmNsYXNzTmFtZT0idGVybWluYWwtc2Nyb2xsYmFyIjt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmNsYXNzTmFtZT0idGVybWluYWwtc2Nyb2xsYmFyLXRyYWNrIjt2YXIgaT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtpLmNsYXNzTmFtZT0idGVybWluYWwtc2Nyb2xsYmFyLXRodW1iIixuLmFwcGVuZENoaWxkKGkpLHQuYXBwZW5kQ2hpbGQobiksZS5hcHBlbmRDaGlsZCh0KSxyLnRlcm1pbmFsU2Nyb2xsYmFyRWw9dCxyLnRlcm1pbmFsU2Nyb2xsYmFyVGh1bWJFbD1pLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXI9bnVsbCxyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITEsci50ZXJtaW5hbFNjcm9sbGJhclJhZlBlbmRpbmc9ITE7ZnVuY3Rpb24gYSgpe3IudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXImJihjbGVhclRpbWVvdXQoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciksci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lcj1udWxsKSx0LmNsYXNzTGlzdC5hZGQoInZpc2libGUiKX1mdW5jdGlvbiB1KCl7ci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nfHwoci50ZXJtaW5hbFNjcm9sbGJhckhpZGVUaW1lciYmY2xlYXJUaW1lb3V0KHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXIpLHIudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IudGVybWluYWxTY3JvbGxiYXJIaWRlVGltZXI9bnVsbCxyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmd8fHQuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSwxNTAwKSl9ZnVuY3Rpb24gcygpe3IudGVybWluYWxTY3JvbGxiYXJSYWZQZW5kaW5nPSExO3ZhciBtPUR0KCk7aWYobSl7dmFyIHk9bS5zY3JvbGxIZWlnaHQsdz1tLmNsaWVudEhlaWdodDtpZih5PD13KXt0LmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKTtyZXR1cm59dmFyIEU9bi5jbGllbnRIZWlnaHQsQj1NYXRoLm1heCgyOCx3L3kqRSksRj15LXcseD1tLnNjcm9sbFRvcC9GLFM9eCooRS1CKTtpLnN0eWxlLmhlaWdodD1CKyJweCIsaS5zdHlsZS50b3A9UysicHgifX1mdW5jdGlvbiBvKCl7ci50ZXJtaW5hbFNjcm9sbGJhclJhZlBlbmRpbmd8fChyLnRlcm1pbmFsU2Nyb2xsYmFyUmFmUGVuZGluZz0hMCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUocykpfXZhciBsPUR0KCk7bCYmbC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLGZ1bmN0aW9uKCl7YSgpLG8oKSx1KCl9LHtwYXNzaXZlOiEwfSksbi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLGZ1bmN0aW9uKG0pe2lmKG0udGFyZ2V0IT09aSl7bS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB5PUR0KCk7aWYoeSl7dmFyIHc9bi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxFPShtLmNsaWVudFktdy50b3ApL3cuaGVpZ2h0LEI9eS5zY3JvbGxIZWlnaHQteS5jbGllbnRIZWlnaHQ7eS5zY3JvbGxUb3A9RSpCfX19KTt2YXIgYz0wLGY9MDtpLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZnVuY3Rpb24obSl7bS5wcmV2ZW50RGVmYXVsdCgpLG0uc3RvcFByb3BhZ2F0aW9uKCksci50ZXJtaW5hbFNjcm9sbGJhckRyYWdnaW5nPSEwLGkuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSxjPW0uY2xpZW50WTt2YXIgeT1EdCgpO2Y9eT95LnNjcm9sbFRvcDowLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsZCksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsdil9KTtmdW5jdGlvbiBkKG0pe20ucHJldmVudERlZmF1bHQoKTt2YXIgeT1EdCgpO2lmKHkpe3ZhciB3PW4uY2xpZW50SGVpZ2h0LEU9eS5zY3JvbGxIZWlnaHQsQj15LmNsaWVudEhlaWdodCxGPUUtQjtpZighKEY8PTApKXt2YXIgeD1NYXRoLm1heCgyOCxCL0UqdyksUz13LXg7aWYoIShTPD0wKSl7dmFyIF89bS5jbGllbnRZLWMsVj1fL1MqRjt5LnNjcm9sbFRvcD1mK1Z9fX19ZnVuY3Rpb24gdigpe3IudGVybWluYWxTY3JvbGxiYXJEcmFnZ2luZz0hMSxpLmNsYXNzTGlzdC5yZW1vdmUoImRyYWdnaW5nIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixkKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIix2KSx1KCl9aS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihtKXtpZihtLnRvdWNoZXMubGVuZ3RoPT09MSl7bS5zdG9wUHJvcGFnYXRpb24oKSxyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITAsaS5jbGFzc0xpc3QuYWRkKCJkcmFnZ2luZyIpLGM9bS50b3VjaGVzWzBdLmNsaWVudFk7dmFyIHk9RHQoKTtmPXk/eS5zY3JvbGxUb3A6MCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLGgse3Bhc3NpdmU6ITF9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsZyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGcpfX0se3Bhc3NpdmU6ITF9KTtmdW5jdGlvbiBoKG0pe2lmKG0udG91Y2hlcy5sZW5ndGg9PT0xKXttLnByZXZlbnREZWZhdWx0KCk7dmFyIHk9RHQoKTtpZih5KXt2YXIgdz1uLmNsaWVudEhlaWdodCxFPXkuc2Nyb2xsSGVpZ2h0LEI9eS5jbGllbnRIZWlnaHQsRj1FLUI7aWYoIShGPD0wKSl7dmFyIHg9TWF0aC5tYXgoMjgsQi9FKncpLFM9dy14O2lmKCEoUzw9MCkpe3ZhciBfPW0udG91Y2hlc1swXS5jbGllbnRZLWMsVj1fL1MqRjt5LnNjcm9sbFRvcD1mK1Z9fX19fWZ1bmN0aW9uIGcoKXtyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmc9ITEsaS5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsaCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGcpLGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoY2FuY2VsIixnKSx1KCl9dC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixmdW5jdGlvbigpe2EoKX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsZnVuY3Rpb24oKXtyLnRlcm1pbmFsU2Nyb2xsYmFyRHJhZ2dpbmd8fHUoKX0pLG8oKX1mdW5jdGlvbiBVZChlKXtyZXR1cm4gZTw0MzUyPyExOmU+PTQzNTImJmU8PTQ0NDd8fGU+PTkwMDEmJmU8PTkwMDJ8fGU+PTExOTA0JiZlPD0xMjM1MHx8ZT49MTIzNTMmJmU8PTEzMzExfHxlPj0xMzMxMiYmZTw9MTk5MDN8fGU+PTE5OTY4JiZlPD00MDk1OXx8ZT49NDA5NjAmJmU8PTQyMTkxfHxlPj00NDAzMiYmZTw9NTUyMDN8fGU+PTYzNzQ0JiZlPD02NDI1NXx8ZT49NjUwNzImJmU8PTY1MTAzfHxlPj02NTI4MCYmZTw9NjUzNzZ8fGU+PTY1NTA0JiZlPD02NTUxMHx8ZT49MTI2OTc2JiZlPD0xMjk1MzV8fGU+PTEzMTA3MiYmZTw9MTk2NjA1fHxlPj0xOTY2MDgmJmU8PTI2MjE0MX12YXIgT3M9Ilx1MjA2MCI7ZnVuY3Rpb24gUHMoKXtyZXR1cm57bW9kZToibm9ybWFsIn19ZnVuY3Rpb24gVmQoZSl7cmV0dXJuIS9bXlx4MDAtXHg3Zl0vLnRlc3QoZSkmJmUuaW5kZXhPZigiXHgxQiIpPT09LTF9ZnVuY3Rpb24gS2QoZSx0KXtpZighZSlyZXR1cm4iIjt2YXIgbj1TdHJpbmcoZSk7aWYodC5tb2RlPT09Im5vcm1hbCImJlZkKG4pKXJldHVybiBuO2Zvcih2YXIgaT0iIixhPTA7YTxuLmxlbmd0aDthKyspe3ZhciB1PW4uY2hhckNvZGVBdChhKSxzPXUsbz0xO2lmKHU+PTU1Mjk2JiZ1PD01NjMxOSYmYSsxPG4ubGVuZ3RoKXt2YXIgbD1uLmNoYXJDb2RlQXQoYSsxKTtsPj01NjMyMCYmbDw9NTczNDMmJihzPSh1LTU1Mjk2KSoxMDI0KyhsLTU2MzIwKSs2NTUzNixvPTIpfXZhciBjPW89PT0yP24uc3Vic3RyKGEsMik6bi5jaGFyQXQoYSk7c3dpdGNoKHQubW9kZSl7Y2FzZSJub3JtYWwiOnM9PT0yNz8odC5tb2RlPSJlc2MiLGkrPWMpOnM9PT0xNTU/KHQubW9kZT0iY3NpIixpKz1jKTpzPT09MTU3fHxzPT09MTQ0fHxzPT09MTU4fHxzPT09MTU5Pyh0Lm1vZGU9InN0cmluZyIsaSs9Yyk6KGkrPWMsVWQocykmJihpKz1PcykpO2JyZWFrO2Nhc2UiZXNjIjppKz1jLHM9PT05MT90Lm1vZGU9ImNzaSI6cz09PTkzfHxzPT09ODB8fHM9PT04OHx8cz09PTk0fHxzPT09OTU/dC5tb2RlPSJzdHJpbmciOnQubW9kZT0ibm9ybWFsIjticmVhaztjYXNlImNzaSI6aSs9YyxzPj02NCYmczw9MTI2JiYodC5tb2RlPSJub3JtYWwiKTticmVhaztjYXNlInN0cmluZyI6aSs9YyxzPT09N3x8cz09PTE1Nj90Lm1vZGU9Im5vcm1hbCI6cz09PTI3JiYodC5tb2RlPSJzdHJpbmctZXNjIik7YnJlYWs7Y2FzZSJzdHJpbmctZXNjIjppKz1jLHM9PT05Mj90Lm1vZGU9Im5vcm1hbCI6dC5tb2RlPSJzdHJpbmciO2JyZWFrfWErPW8tMX1yZXR1cm4gaX12YXIgcmk9Ilx4MUJbPzIwMjZoIix2YT0iXHgxQls/MjAyNmwiLEpkPTIwMCxHZD0yNTYqMTAyNDtmdW5jdGlvbiBZZChlKXtpZighZXx8ci5zeW5jT3V0cHV0QnVmZmVyPT09bnVsbCYmZS5pbmRleE9mKHJpKT09PS0xKXJldHVybiBlO2Zvcih2YXIgdD0iIixuPTA7bjxlLmxlbmd0aDspaWYoci5zeW5jT3V0cHV0QnVmZmVyIT09bnVsbCl7dmFyIGk9ZS5pbmRleE9mKHZhLG4pO2lmKGk9PT0tMSlyZXR1cm4gci5zeW5jT3V0cHV0QnVmZmVyKz1lLnNsaWNlKG4pLChyLnN5bmNPdXRwdXRCdWZmZXIubGVuZ3RoPkdkfHxEYXRlLm5vdygpPnIuc3luY091dHB1dERlYWRsaW5lKSYmKHQrPXIuc3luY091dHB1dEJ1ZmZlcixyLnN5bmNPdXRwdXRCdWZmZXI9bnVsbCxyLnN5bmNGcmFtaW5nUmVzaWR1ZT0hMCksdDtyLnN5bmNPdXRwdXRCdWZmZXIrPWUuc2xpY2UobixpK3ZhLmxlbmd0aCksdCs9ci5zeW5jT3V0cHV0QnVmZmVyLHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLG49aSt2YS5sZW5ndGh9ZWxzZXt2YXIgYT1lLmluZGV4T2Yocmksbik7aWYoYT09PS0xKXJldHVybiB0Kz1lLnNsaWNlKG4pLHQ7dCs9ZS5zbGljZShuLGEpLHIuc3luY091dHB1dEJ1ZmZlcj1yaSxyLnN5bmNPdXRwdXREZWFkbGluZT1EYXRlLm5vdygpK0pkLG49YStyaS5sZW5ndGh9cmV0dXJuIHR9ZnVuY3Rpb24gQWcoKXtpZihyLnN5bmNPdXRwdXRCdWZmZXIhPT1udWxsKXt2YXIgZT1yLnN5bmNPdXRwdXRCdWZmZXI7cmV0dXJuIHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLGV9cmV0dXJuIiJ9ZnVuY3Rpb24gVW4oZSx0KXtpZighKCFlfHx0PT1udWxsKSl7ci53aWRlUGFyc2VyU3RhdGV8fChyLndpZGVQYXJzZXJTdGF0ZT1QcygpKTt2YXIgbj1LZCh0LHIud2lkZVBhcnNlclN0YXRlKSxpPVlkKG4pLGE9ci50ZXJtaW5hbEF1dG9Gb2xsb3chPT0hMTsiX3Nob3VsZFNjcm9sbFRvQm90dG9tImluIGUmJihlLl9zaG91bGRTY3JvbGxUb0JvdHRvbT1hKSxpJiZlLndyaXRlKGkpLCJfc2hvdWxkU2Nyb2xsVG9Cb3R0b20iaW4gZSYmKGUuX3Nob3VsZFNjcm9sbFRvQm90dG9tPWEpLGEmJihyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWw9TWF0aC5tYXgoci50ZXJtaW5hbFByb2dyYW1tYXRpY1Njcm9sbFVudGlsLERhdGUubm93KCkrMTIwKSksdWYodCl9fWZ1bmN0aW9uIG1hKCl7ci53aWRlUGFyc2VyU3RhdGU9UHMoKX1mdW5jdGlvbiBRZCgpe3R5cGVvZiBkb2N1bWVudD4idSJ8fGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNvcHkiLGZ1bmN0aW9uKGUpe3ZhciB0PXdpbmRvdy5nZXRTZWxlY3Rpb24mJndpbmRvdy5nZXRTZWxlY3Rpb24oKTtpZighKCF0fHx0LmlzQ29sbGFwc2VkKSl7dmFyIG49dC5hbmNob3JOb2RlLGk9biYmbi5ub2RlVHlwZT09PTM/bi5wYXJlbnROb2RlOm4sYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYoISghYXx8IWl8fCFhLmNvbnRhaW5zKGkpKSl7dmFyIHU9dC50b1N0cmluZygpLHM9dS5zcGxpdChgCmApLm1hcChmdW5jdGlvbihvKXtyZXR1cm4gby5zcGxpdChPcykuam9pbigiIikucmVwbGFjZSgvWyBcdF0rJC8sIiIpfSkuam9pbihgCmApO3MhPT11JiZlLmNsaXBib2FyZERhdGEmJihlLmNsaXBib2FyZERhdGEuc2V0RGF0YSgidGV4dC9wbGFpbiIscyksZS5wcmV2ZW50RGVmYXVsdCgpKX19fSl9UWQoKTt2YXIgcXM9MTUwLEhzPTMwLCRkPTE2MCoxMDI0LFhkPTE5MioxMDI0O2Z1bmN0aW9uIF9zKGUpe2lmKCFlfHxlLmxlbmd0aDw9WGQpcmV0dXJuIGU7dmFyIHQ9ZS5sZW5ndGgsbj1mdW5jdGlvbih4KXtpZighKHR5cGVvZiByPiJ1Inx8IXIpKXt2YXIgUz1yLnRlcm1pbmFsT3V0cHV0TWFya2VyfDA7aWYoIShTPD0wKSl7dmFyIF89dC14O3IudGVybWluYWxPdXRwdXRNYXJrZXI9Uz5fP1MtXzowfX19LGk9ZS5sZW5ndGgtJGQ7aWYoaT4wJiZpPGUubGVuZ3RoKXt2YXIgYT1lLmNoYXJDb2RlQXQoaSk7YT49NTYzMjAmJmE8PTU3MzQzJiZpKyt9Zm9yKHZhciB1PTQwOTYscz1NYXRoLm1pbihpK3UsZS5sZW5ndGgpLG89aTtvPHM7bysrKWlmKGUuY2hhckNvZGVBdChvKT09PTEwKXt2YXIgbD1lLnNsaWNlKG8rMSk7cmV0dXJuIG4obC5sZW5ndGgpLGx9Zm9yKHZhciBjPU1hdGgubWF4KDAsaS0yNTYpLGY9LTEsZD1pLTE7ZD49YztkLS0pe3ZhciB2PWUuY2hhckNvZGVBdChkKTtpZih2PT09Mjcpe2Y9ZDticmVha31pZih2PT09N3x8dj49NjQmJnY8PTEyNilicmVha31pZihmIT09LTEpe2Zvcih2YXIgaD0hMSxnPWYrMTtnPGk7ZysrKXt2YXIgbT1lLmNoYXJDb2RlQXQoZyk7aWYobT09PTcpe2g9ITA7YnJlYWt9aWYobT49NjQmJm08PTEyNil7aD0hMDticmVha319aWYoIWgpZm9yKHZhciB5PU1hdGgubWluKGkrMjU2LGUubGVuZ3RoKSx3PWk7dzx5O3crKyl7dmFyIEU9ZS5jaGFyQ29kZUF0KHcpO2lmKEU9PT03fHxFPj02NCYmRTw9MTI2KXt2YXIgQj1lLnNsaWNlKHcrMSk7cmV0dXJuIG4oQi5sZW5ndGgpLEJ9fX12YXIgRj1lLnNsaWNlKGkpO3JldHVybiBuKEYubGVuZ3RoKSxGfWZ1bmN0aW9uIGlpKCl7aWYoci50ZXJtaW5hbCl7aWYodHlwZW9mIHIudGVybWluYWwucmVzZXQ9PSJmdW5jdGlvbiIpe3IudGVybWluYWwucmVzZXQoKSxtYSgpLHIuc3luY091dHB1dEJ1ZmZlcj1udWxsLHIuc3luY091dHB1dERlYWRsaW5lPTA7cmV0dXJufXR5cGVvZiByLnRlcm1pbmFsLndyaXRlPT0iZnVuY3Rpb24iJiZyLnRlcm1pbmFsLndyaXRlKCJceDFCYyIpLG1hKCksci5zeW5jT3V0cHV0QnVmZmVyPW51bGwsci5zeW5jT3V0cHV0RGVhZGxpbmU9MH19ci5fcmVzeW5jU3RhdHNXaW5kb3dTdGFydD0wLHIuX3Jlc3luY1N0YXRzQ291bnQ9MCxyLl9yZXN5bmNMYXN0V2FybkF0PTA7dmFyIFpkPTVlMyxlZj0xMix0Zj0zZTQ7ci5fcmVzeW5jSW5Qcm9ncmVzcz0hMTtmdW5jdGlvbiBBbihlKXtpZighci50ZXJtaW5hbHx8IXIudGVybWluYWxPdXRwdXQpcmV0dXJuITE7dmFyIHQ9ZXx8e30sbj1yLnRlcm1pbmFsT3V0cHV0TWFya2VyfDA7bjwwJiYobj0wKSxuPnIudGVybWluYWxPdXRwdXQubGVuZ3RoJiYobj1yLnRlcm1pbmFsT3V0cHV0Lmxlbmd0aCk7dmFyIGk9bj4wP3IudGVybWluYWxPdXRwdXQuc2xpY2Uobik6ci50ZXJtaW5hbE91dHB1dCxhPWkubGVuZ3RoLHU9dHlwZW9mIHBlcmZvcm1hbmNlPCJ1IiYmcGVyZm9ybWFuY2Uubm93P3BlcmZvcm1hbmNlLm5vdygpOkRhdGUubm93KCk7ci5fcmVzeW5jSW5Qcm9ncmVzcz0hMDt0cnl7aWkoKSxVbihyLnRlcm1pbmFsLGkpfWZpbmFsbHl7ci5fcmVzeW5jSW5Qcm9ncmVzcz0hMX1yLmxhc3RUZXJtaW5hbFJlc3luY0F0PURhdGUubm93KCksRXQoIm91dHB1dCIpLHQuc2tpcEZpdHx8WmUoInJlZnJlc2giKTt2YXIgcz1EYXRlLm5vdygpO2lmKHMtci5fcmVzeW5jU3RhdHNXaW5kb3dTdGFydD5aZClyLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0PXMsci5fcmVzeW5jU3RhdHNDb3VudD0xO2Vsc2UgaWYoci5fcmVzeW5jU3RhdHNDb3VudCsrLHIuX3Jlc3luY1N0YXRzQ291bnQ+ZWYmJnMtci5fcmVzeW5jTGFzdFdhcm5BdD50Zil7ci5fcmVzeW5jTGFzdFdhcm5BdD1zO3ZhciBvPXR5cGVvZiBwZXJmb3JtYW5jZTwidSImJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZS5ub3coKTpEYXRlLm5vdygpO2NvbnNvbGUud2FybigiW3dhbmRdIHNvZnRSZXN5bmNUZXJtaW5hbCBoaWdoIGZyZXF1ZW5jeSIsImNvdW50PSIrci5fcmVzeW5jU3RhdHNDb3VudCsiLyIrTWF0aC5yb3VuZCgocy1yLl9yZXN5bmNTdGF0c1dpbmRvd1N0YXJ0KS8xMDApLzEwKyJzIiwiYnVmTGVuPSIrYSwibGFzdFJlcGxheU1zPSIrTWF0aC5yb3VuZChvLXUpKX1yZXR1cm4hMH1mdW5jdGlvbiBuZihlKXtyLnNvZnRSZXN5bmNUaW1lciYmY2xlYXJUaW1lb3V0KHIuc29mdFJlc3luY1RpbWVyKSxyLnNvZnRSZXN5bmNUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ci5zb2Z0UmVzeW5jVGltZXI9bnVsbCxBbigpfSx0eXBlb2YgZT09Im51bWJlciI/ZToxNTApfXZhciByZj0vXHgxYlxbXGQqKD86O1xkKik/W0FCQ0RmSEpLXS8sTnM9MTUwMCxhZj04MDA7ci5fcmVzeW5jQ2h1bmtMYXN0QXQ9MCxyLl9yZXN5bmNDaHVua1RhaWxUaW1lcj1udWxsO2Z1bmN0aW9uIHVmKGUpe2lmKCFyLl9yZXN5bmNJblByb2dyZXNzJiZyLnN5bmNGcmFtaW5nUmVzaWR1ZSYmKHIuc3luY0ZyYW1pbmdSZXNpZHVlPSExLCEoIWV8fHR5cGVvZiBlIT0ic3RyaW5nIikmJmUuaW5kZXhPZigiXHgxQlsiKSE9PS0xJiZyZi50ZXN0KGUpKSl7dmFyIHQ9RGF0ZS5ub3coKSxuPXQtci5fcmVzeW5jQ2h1bmtMYXN0QXQ7aWYobj49TnMpe3IuX3Jlc3luY0NodW5rVGFpbFRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuX3Jlc3luY0NodW5rVGFpbFRpbWVyKSxyLl9yZXN5bmNDaHVua1RhaWxUaW1lcj1udWxsKSxyLl9yZXN5bmNDaHVua0xhc3RBdD10LEFuKCk7cmV0dXJufWlmKCFyLl9yZXN5bmNDaHVua1RhaWxUaW1lcil7dmFyIGk9TWF0aC5tYXgoYWYsTnMtbik7ci5fcmVzeW5jQ2h1bmtUYWlsVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuX3Jlc3luY0NodW5rVGFpbFRpbWVyPW51bGwsci5fcmVzeW5jQ2h1bmtMYXN0QXQ9RGF0ZS5ub3coKSxBbigpfSxpKX19fWZ1bmN0aW9uIGFpKGUsdCxuKXtpZighci50ZXJtaW5hbClyZXR1cm4hMTt2YXIgaT1HYSh0fHwiIiksYT1lfHxudWxsLHU9bnx8e30scz11Lm1vZGV8fCJhcHBlbmQiLG89dS5zY3JvbGwhPT0hMSxsPXIudGVybWluYWxTZXNzaW9uSWQhPT1hLGM9ci50ZXJtaW5hbE91dHB1dHx8IiIsZj0hIShhJiZyLnRlcm1pbmFsTGl2ZVN0cmVhbVNlc3Npb25zW2FdKSxkPSExO2lmKGk9PT1jJiYhbClyZXR1cm4gbyYmRXQoIm91dHB1dCIpLHZ0KCksITE7aWYobCYmKGlpKCksYz0iIixyLnRlcm1pbmFsT3V0cHV0PSIiLHIudGVybWluYWxPdXRwdXRNYXJrZXI9MCxyLnRlcm1pbmFsQXV0b0ZvbGxvdz0hMCx6bigpLHZ0KCkpLHM9PT0icmVwbGFjZSIpaSE9PWMmJihpaSgpLGkmJlVuKHIudGVybWluYWwsaSksZD0hMCk7ZWxzZXtpZihpLmxlbmd0aDxjLmxlbmd0aCYmIWwpcmV0dXJuITE7aWYoZiYmIWwmJnMhPT0icmVwbGFjZSImJmMmJiFpLnN0YXJ0c1dpdGgoYykpcmV0dXJuITE7aWYoaS5zdGFydHNXaXRoKGMpKXt2YXIgdj1pLnNsaWNlKGMubGVuZ3RoKTt2JiYoVW4oci50ZXJtaW5hbCx2KSxkPSEwKX1lbHNle2lmKGMmJmMuc3RhcnRzV2l0aChpKSlyZXR1cm4hMTtpaSgpLGkmJlVuKHIudGVybWluYWwsaSksZD0hMH19cmV0dXJuIHIudGVybWluYWxTZXNzaW9uSWQ9YSxyLnRlcm1pbmFsT3V0cHV0PWksci50ZXJtaW5hbE91dHB1dE1hcmtlcj0wLG8mJihkfHxsfHxzPT09InJlcGxhY2UiKT9FdChsfHxzPT09InJlcGxhY2UiPyJmb3JjZSI6Im91dHB1dCIpOnZ0KCksbCYmbmkoci50ZXJtaW5hbC5jb2xzLHIudGVybWluYWwucm93cyksZHx8bH1mdW5jdGlvbiBWbigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighKCFlfHxyLnRlcm1pbmFsfHxyLnRlcm1pbmFsSW5pdGlhbGl6aW5nKSl7aWYodHlwZW9mIFdUZXJtTGliPiJ1Inx8IVdUZXJtTGliLldUZXJtKXtyLnRlcm1pbmFsSW5pdFJldHJpZXN8fChyLnRlcm1pbmFsSW5pdFJldHJpZXM9MCksci50ZXJtaW5hbEluaXRSZXRyaWVzPDEwJiYoci50ZXJtaW5hbEluaXRSZXRyaWVzKyssc2V0VGltZW91dChWbiwyMDApKTtyZXR1cm59ci50ZXJtaW5hbEluaXRSZXRyaWVzPTAsci50ZXJtaW5hbEluaXRpYWxpemluZz0hMCxyLnNlbGVjdGVkSWQmJihlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGUuY2xhc3NMaXN0LmFkZCgiYWN0aXZlIikpO2Zvcih2YXIgdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoIi50ZXJtaW5hbC1zY3JvbGwtd3JhcCIpLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXTtpLnBhcmVudE5vZGU9PT1lJiZlLnJlbW92ZUNoaWxkKGkpfXZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2EuY2xhc3NOYW1lPSJ0ZXJtaW5hbC1zY3JvbGwtd3JhcCIsZS5hcHBlbmRDaGlsZChhKTt2YXIgdT1uZXcgV1Rlcm1MaWIuV1Rlcm0oYSx7Y29sczoxMjAscm93czozNixhdXRvUmVzaXplOiEwLGN1cnNvckJsaW5rOiExLG9uRGF0YTpmdW5jdGlvbigpe30sb25SZXNpemU6ZnVuY3Rpb24obyxsKXtuaShvLGwpLHIudGVybWluYWwmJnIudGVybWluYWxPdXRwdXQmJkFuKHtza2lwRml0OiEwfSl9fSkscz1kb2N1bWVudC5mb250cyYmdHlwZW9mIGRvY3VtZW50LmZvbnRzLnJlYWR5PT0ib2JqZWN0Ij9Qcm9taXNlLnJhY2UoW2RvY3VtZW50LmZvbnRzLnJlYWR5LG5ldyBQcm9taXNlKGZ1bmN0aW9uKG8pe3NldFRpbWVvdXQobyw4MDApfSldKTpQcm9taXNlLnJlc29sdmUoKTtzLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gdS5pbml0KCl9KS50aGVuKGZ1bmN0aW9uKCl7aWYoci50ZXJtaW5hbD11LHIudGVybWluYWxJbml0aWFsaXppbmc9ITEsUHUoKSxhLmlzQ29ubmVjdGVkJiYoYS5vZmZzZXRIZWlnaHQsdHlwZW9mIHUucmVtZWFzdXJlPT0iZnVuY3Rpb24iKSl0cnl7dS5yZW1lYXN1cmUoKX1jYXRjaHt9ci50ZXJtaW5hbEF1dG9Gb2xsb3c9ITAsem4oKTt2YXIgbz1EdCgpO2lmKG8mJihyLnRlcm1pbmFsVmlld3BvcnRTY3JvbGxIYW5kbGVyPWZ1bmN0aW9uKCl7aWYoRGF0ZS5ub3coKTxyLnRlcm1pbmFsUHJvZ3JhbW1hdGljU2Nyb2xsVW50aWwpe3Z0KCk7cmV0dXJufWlmKExzKCkpe3IudGVybWluYWxBdXRvRm9sbG93PSEwLHpuKCksdnQoKTtyZXR1cm59cGEoKX0sci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXI9ZnVuY3Rpb24oYyl7Yy50b3VjaGVzJiZjLnRvdWNoZXMubGVuZ3RoPT09MSYmKHIudGVybWluYWxUb3VjaFN0YXJ0WT1jLnRvdWNoZXNbMF0uY2xpZW50WSl9LHIudGVybWluYWxWaWV3cG9ydFRvdWNoSGFuZGxlcj1mdW5jdGlvbihjKXshYy50b3VjaGVzfHxjLnRvdWNoZXMubGVuZ3RoIT09MXx8dHlwZW9mIHIudGVybWluYWxUb3VjaFN0YXJ0WT09Im51bWJlciImJmMudG91Y2hlc1swXS5jbGllbnRZLXIudGVybWluYWxUb3VjaFN0YXJ0WT40JiZwYSgpfSxvLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsci50ZXJtaW5hbFZpZXdwb3J0U2Nyb2xsSGFuZGxlcix7cGFzc2l2ZTohMH0pLG8uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hTdGFydEhhbmRsZXIse3Bhc3NpdmU6ITB9KSxvLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci50ZXJtaW5hbFZpZXdwb3J0VG91Y2hIYW5kbGVyLHtwYXNzaXZlOiEwfSkpLHIudGVybWluYWxXaGVlbEhhbmRsZXI9ZnVuY3Rpb24oYyl7Yy5kZWx0YVk8MCYmcGEoKSxjLnN0b3BQcm9wYWdhdGlvbigpfSxlLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIixyLnRlcm1pbmFsV2hlZWxIYW5kbGVyLHtwYXNzaXZlOiEwfSksemQoZSksci5zZWxlY3RlZElkKXt2YXIgbD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PT1yLnNlbGVjdGVkSWR9KTtsJiZhaShsLmlkLGwub3V0cHV0fHwiIix7bW9kZToiYXBwZW5kIixzY3JvbGw6ITF9KX1lbHNlIFVuKHUsYFx1NzBCOVx1NTFGQlx1NEUwQVx1NjVCOVx1MzAwQ1x1NjVCMFx1NUJGOVx1OEJERFx1MzAwRFx1NUYwMFx1NTlDQlx1NEY2MFx1NzY4NFx1N0IyQ1x1NEUwMFx1NkIyMVx1NUJGOVx1OEJERFx1MzAwMlxyCmApO3IudGVybWluYWxDbGlja0hhbmRsZXI9ZnVuY3Rpb24oYyl7dmkoKXx8TnQoYyl9LGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHIudGVybWluYWxDbGlja0hhbmRsZXIpLHZ0KCksQ2QoKSxrZCgpLHFkKCksSGQoKSxaZSgibW91bnQiLHtmb3JjZVJlcGxheTohMH0pLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKSYmWzEyMCwzNTAsNzAwXS5mb3JFYWNoKGZ1bmN0aW9uKGMpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZaZSgiZW1iZWQtc2V0dGxlIil9LGMpfSl9KS5jYXRjaChmdW5jdGlvbihvKXtyLnRlcm1pbmFsSW5pdGlhbGl6aW5nPSExLGNvbnNvbGUuZXJyb3IoIlt3YW5kXSB3dGVybSBpbml0IGZhaWxlZDoiLG8pfSl9fWZ1bmN0aW9uIHNmKGUsdCl7aWYoISghci5zZWxlY3RlZElkfHwhZSkpe3ZhciBuPXIuc2VsZWN0ZWRJZCsiOiIrZTtpZihyLnRvb2xDb250ZW50Q2FjaGVbbl0pe3QobnVsbCxyLnRvb2xDb250ZW50Q2FjaGVbbl0pO3JldHVybn1mZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLnNlbGVjdGVkSWQpKyIvdG9vbC1jb250ZW50LyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2kuZXJyb3I/dChpLmVycm9yLG51bGwpOihyLnRvb2xDb250ZW50Q2FjaGVbbl09aSx0KG51bGwsaSkpfSkuY2F0Y2goZnVuY3Rpb24oKXt0KCJcdTUyQTBcdThGN0RcdTU5MzFcdThEMjUiLG51bGwpfSl9fWZ1bmN0aW9uIHhuKGUpe3JldHVybiEhKHIuY29uZmlnJiZyLmNvbmZpZy5jYXJkRGVmYXVsdHMmJnIuY29uZmlnLmNhcmREZWZhdWx0c1tlXSl9ZnVuY3Rpb24gZ2EoZSx0LG4saSl7aWYoISghZXx8ZS5kYXRhc2V0LnRydW5jYXRlZCE9PSJ0cnVlInx8ZS5kYXRhc2V0LmxvYWRlZD09PSJ0cnVlIikpe3ZhciBhPWUuZGF0YXNldC50b29sVXNlSWQ7YSYmKHQmJih0LmlubmVySFRNTD0nPGRpdiBjbGFzcz0idG9vbC1jb250ZW50LWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRFx1MjAyNjwvZGl2PicpLGUuZGF0YXNldC5sb2FkZWQ9ImxvYWRpbmciLHNmKGEsZnVuY3Rpb24odSxzKXtpZih1KXt0JiYodC5pbm5lckhUTUw9aXx8JzxkaXYgY2xhc3M9InRvb2wtY29udGVudC1lcnJvciI+XHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1XHVGRjBDXHU3MEI5XHU1MUZCXHU5MUNEXHU4QkQ1PC9kaXY+JyksZS5kYXRhc2V0LmxvYWRlZD0iIjtyZXR1cm59ZS5kYXRhc2V0LnRydW5jYXRlZD0iZmFsc2UiLGUuZGF0YXNldC5sb2FkZWQ9InRydWUiO3ZhciBvPXR5cGVvZiBzLmNvbnRlbnQ9PSJzdHJpbmciP3MuY29udGVudDpKU09OLnN0cmluZ2lmeShzLmNvbnRlbnQpO24obyxzKX0pKX19d2luZG93Ll9fdGNUb2dnbGU9ZnVuY3Rpb24oZSx0KXt2YXIgbj10LmNsb3Nlc3QoIi50b29sLXVzZS1jYXJkIil8fHQuY2xvc2VzdCgiLmlubGluZS1kaWZmIik7aWYobil7dmFyIGk9bi5jbGFzc0xpc3QuY29udGFpbnMoImNvbGxhcHNlZCIpO24uY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIik7dmFyIGE9bi5kYXRhc2V0LmV4cGFuZEtpbmR8fCJ0b29sLWNhcmQiO2lmKHduKG4sYSksaSl7dmFyIHU9bi5xdWVyeVNlbGVjdG9yKCIudG9vbC11c2UtcmVzdWx0Iik7Z2Eobix1LGZ1bmN0aW9uKHMpe3UmJih1LmlubmVySFRNTD0nPHByZSBjbGFzcz0idG9vbC11c2UtcmVzdWx0LWNvbnRlbnQiPicrcChzKSsiPC9wcmU+Iil9LGA8ZGl2IGNsYXNzPSJ0b29sLWNvbnRlbnQtZXJyb3IiIG9uY2xpY2s9Il9fdGNUb2dnbGUobnVsbCwgdGhpcy5jbG9zZXN0KCcudG9vbC11c2UtY2FyZCwuaW5saW5lLWRpZmYnKS5xdWVyeVNlbGVjdG9yKCcudG9vbC11c2UtaGVhZGVyLC5kaWZmLWhlYWRlcicpKSI+XHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1XHVGRjBDXHU3MEI5XHU1MUZCXHU5MUNEXHU4QkQ1PC9kaXY+YCl9fWUmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSl9LHdpbmRvdy5fX3RoaW5raW5nVG9nZ2xlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xhc3NMaXN0LmNvbnRhaW5zKCJjb2xsYXBzZWQiKTtpZih0KXtlLmNsYXNzTGlzdC5yZW1vdmUoImNvbGxhcHNlZCIpLGUuY2xhc3NMaXN0LmFkZCgiZXhwYW5kZWQiKSxlLnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1pbmxpbmUtcHJldmlldyIpLnRleHRDb250ZW50PWUuZGF0YXNldC50aGlua2luZ3x8IiI7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctaW5saW5lLWFjdGlvbiIpO24mJihuLnRleHRDb250ZW50PSJcdTY1MzZcdThENzciKX1lbHNle2UuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kZWQiKSxlLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpO3ZhciBpPShlLmRhdGFzZXQudGhpbmtpbmd8fCIiKS5zbGljZSgwLDU3KSsoKGUuZGF0YXNldC50aGlua2luZ3x8IiIpLmxlbmd0aD42MD8iXHUyMDI2IjoiIik7ZS5xdWVyeVNlbGVjdG9yKCIudGhpbmtpbmctaW5saW5lLXByZXZpZXciKS50ZXh0Q29udGVudD1pO3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLnRoaW5raW5nLWlubGluZS1hY3Rpb24iKTtuJiYobi50ZXh0Q29udGVudD0iXHU1QzU1XHU1RjAwIil9d24oZSwidGhpbmtpbmciKX0sd2luZG93Ll9fc3ViYWdlbnRSZXBseVRvZ2dsZT1mdW5jdGlvbihlLHQpe2UmJihlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSk7dmFyIG49dCYmdC5jbG9zZXN0P3QuY2xvc2VzdCgiLnN1YmFnZW50LXJlcGx5Iik6bnVsbDtpZihuKXt2YXIgaT1uLmdldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIpPT09InRydWUiO0dpKG4sInN1YmFnZW50LXJlcGx5IiwhaSksd24obiwic3ViYWdlbnQtcmVwbHkiKX19LHdpbmRvdy5fX3N1YmFnZW50UGFuZWxUb2dnbGU9ZnVuY3Rpb24oZSx0KXtlJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCkpO3ZhciBuPXQmJnQuY2xvc2VzdD90LmNsb3Nlc3QoIi5zdWJhZ2VudC1wYW5lbCIpOm51bGw7aWYobil7dmFyIGk9bi5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKT09PSJ0cnVlIjtHaShuLCJzdWJhZ2VudC1wYW5lbCIsIWkpLHduKG4sInN1YmFnZW50LXBhbmVsIil9fTtmdW5jdGlvbiBvZihlKXtpZihlKWZvcih2YXIgdD1lLnF1ZXJ5U2VsZWN0b3JBbGwoJy5zdWJhZ2VudC1wYW5lbFtkYXRhLWV4cGFuZGVkPSJmYWxzZSJdJyksbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLnF1ZXJ5U2VsZWN0b3IoIi5zdWJhZ2VudC1wYW5lbC1ib2R5Iik7aSYmKGkuc2Nyb2xsVG9wPWkuc2Nyb2xsSGVpZ2h0KX19d2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3PWZ1bmN0aW9uKGUpe2UmJkpyKGUpfSx3aW5kb3cuX19pbmxpbmVUb29sVG9nZ2xlPWZ1bmN0aW9uKGUpe3ZhciB0PWUuY2xhc3NMaXN0LnRvZ2dsZSgiaW5saW5lLXRvb2wtb3BlbiIpLG49ZS5xdWVyeVNlbGVjdG9yKCIuaW5saW5lLXRvb2wtZXhwYW5kZWQiKTtuJiYobi5zdHlsZS5kaXNwbGF5PXQ/ImJsb2NrIjoibm9uZSIpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiLmlubGluZS10b29sLXN0YXR1cyIpO2kmJihlLmRhdGFzZXQuc3RhdHVzPT09ImVycm9yIj9pLnRleHRDb250ZW50PSJcdTI3MTciOmUuZGF0YXNldC5zdGF0dXM9PT0iZG9uZSImJihpLnRleHRDb250ZW50PSJcdTI3MTMiKSksdCYmZ2EoZSxuLGZ1bmN0aW9uKGEpe2UuZGF0YXNldC5yZXN1bHQ9YSxuJiYobi5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdCI+JytLbyhhLCIiKSsiPC9kaXY+Iil9KSx3bihlLCJpbmxpbmUtdG9vbCIpfSx3aW5kb3cuX190ZXJtaW5hbEV4cGFuZD1mdW5jdGlvbihlKXt2YXIgdD1lLmNsb3Nlc3QoIi5pbmxpbmUtdGVybWluYWwiKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi50ZXJtLWJvZHkiKTtpZihuKXt2YXIgaT1uLnN0eWxlLmRpc3BsYXk9PT0ibm9uZSI7bi5zdHlsZS5kaXNwbGF5PWk/ImJsb2NrIjoibm9uZSIsdC5kYXRhc2V0LmV4cGFuZGVkPWk/InRydWUiOiJmYWxzZSI7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIudGVybS10b2dnbGUtaWNvbiIpO2lmKGEmJihhLnRleHRDb250ZW50PWk/Ilx1MjVCQyI6Ilx1MjVCNiIpLHduKHQsInRlcm1pbmFsIiksaSl7dmFyIHU9bi5xdWVyeVNlbGVjdG9yKCIudGVybS1vdXRwdXQiKTtnYSh0LHUsZnVuY3Rpb24ocyl7aWYodSl7Zm9yKHZhciBvPXMuc3BsaXQoYApgKSxsPSIiLGM9MDtjPG8ubGVuZ3RoO2MrKykhb1tjXSYmYz09PW8ubGVuZ3RoLTF8fChsKz0nPGRpdiBjbGFzcz0idGVybS1saW5lIj4nK3Aob1tjXSkrIjwvZGl2PiIpO3UuaW5uZXJIVE1MPWx9fSl9fX19O2Z1bmN0aW9uIHhnKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1zdHJlYW1pbmciKTtpZih0KXt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi50aGlua2luZy1zdHJlYW1pbmctdGV4dCIpO2lmKG4pe3ZhciBpPWUuc3BsaXQoYApgKSxhPWkuc2xpY2UoLTMpO24udGV4dENvbnRlbnQ9YS5qb2luKGAKYCksbi5zY3JvbGxUb3A9bi5zY3JvbGxIZWlnaHR9fX13aW5kb3cuX19hc2tTZWxlY3Q9ZnVuY3Rpb24oZSx0LG4saSl7dmFyIGE9ci5hc2tVc2VyU2VsZWN0aW9uc1tlXTtpZihhfHwoYT17c3VibWl0dGVkOiExfSxyLmFza1VzZXJTZWxlY3Rpb25zW2VdPWEpLCFhLnN1Ym1pdHRlZCl7dmFyIHU9YVt0XXx8W107aWYoaSl7dmFyIHM9dS5pbmRleE9mKG4pO3M9PT0tMT91LnB1c2gobik6dS5zcGxpY2UocywxKX1lbHNlIHU9dVswXT09PW4/W106W25dO2FbdF09dSx3aW5kb3cuX19hc2tSZW5kZXIoZSl9fSx3aW5kb3cuX19hc2tSZW5kZXI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdG9vbC11c2UtaWQ9IicrZSsnIl0nKTtpZih0KXt2YXIgbj1yLmFza1VzZXJTZWxlY3Rpb25zW2VdfHx7fTt0LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hc2stdXNlci1vcHRpb24iKS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3ZhciBvPXBhcnNlSW50KHMuZGF0YXNldC5xdWVzdGlvbkluZGV4LDEwKSxsPXBhcnNlSW50KHMuZGF0YXNldC5vcHRpb25JbmRleCwxMCksYz0obltvXXx8W10pLmluZGV4T2YobCkhPT0tMTtzLmNsYXNzTGlzdC50b2dnbGUoInNlbGVjdGVkIixjKX0pO3ZhciBpPXQucXVlcnlTZWxlY3RvcigiLmFzay11c2VyLXN1Ym1pdCIpO2lmKGkpe3ZhciBhPXQucXVlcnlTZWxlY3RvckFsbCgiLmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwIiksdT0hMDthLmZvckVhY2goZnVuY3Rpb24ocyxvKXsoIW5bb118fG5bb10ubGVuZ3RoPT09MCkmJih1PSExKX0pLGkuZGlzYWJsZWQ9IXV8fCEhbi5zdWJtaXR0ZWQsbi5zdWJtaXR0ZWQmJihpLnRleHRDb250ZW50PSJcdTVERjJcdTYzRDBcdTRFQTQuLi4iLGkuY2xhc3NMaXN0LmFkZCgiYXNrLXVzZXItc3VibWl0dGVkIikpfX19LHdpbmRvdy5fX2Fza1N1Ym1pdD1mdW5jdGlvbihlKXt2YXIgdD1yLmFza1VzZXJTZWxlY3Rpb25zW2VdO2lmKCEoIXR8fHQuc3VibWl0dGVkfHwhci5zZWxlY3RlZElkKSl7dmFyIG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2RhdGEtdG9vbC11c2UtaWQ9IicrZSsnIl0nKTtpZihuKXt2YXIgaT1uLnF1ZXJ5U2VsZWN0b3JBbGwoIi5hc2stdXNlci1xdWVzdGlvbi1ncm91cCIpLGE9W10sdT0hMDtpZihpLmZvckVhY2goZnVuY3Rpb24obyxsKXt2YXIgYz10W2xdfHxbXTtpZihjLmxlbmd0aD09PTApe3U9ITE7cmV0dXJufXZhciBmPVtdO2MuZm9yRWFjaChmdW5jdGlvbihkKXt2YXIgdj1vLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW9wdGlvbi1pbmRleD0iJytkKyciXScpO3YmJmYucHVzaCh2LmRhdGFzZXQub3B0aW9uTGFiZWwpfSksYS5wdXNoKGYuam9pbigiLCAiKSl9KSwhIXUpe3Quc3VibWl0dGVkPSEwLHdpbmRvdy5fX2Fza1JlbmRlcihlKTt2YXIgcz1hLmpvaW4oYApgKTtmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK3Iuc2VsZWN0ZWRJZCsiL2lucHV0Iix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7aW5wdXQ6cytgCmAsdmlldzpyLmN1cnJlbnRWaWV3fSl9KS5jYXRjaChmdW5jdGlvbihvKXtjb25zb2xlLmVycm9yKCJbd2FuZF0gRXJyb3Igc2VuZGluZyBhbnN3ZXI6IixvKSx0LnN1Ym1pdHRlZD0hMSx3aW5kb3cuX19hc2tSZW5kZXIoZSl9KX19fX07ZnVuY3Rpb24gbGYoKXtpZighci5fX2dsb2JhbExpc3RlbmVyc0JvdW5kKXtyLl9fZ2xvYmFsTGlzdGVuZXJzQm91bmQ9ITAsZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItb3ZlcmZsb3ctbWVudSIpO3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsZnVuY3Rpb24oKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1vdmVyZmxvdy1tZW51Iik7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJvcGVuIil9KTt2YXIgZT1mdW5jdGlvbigpe3IudG9wYmFyTW9yZU9wZW49ITE7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLW1lbnUiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1idXR0b24iKTt0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4mJihuLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLG4uc2V0QXR0cmlidXRlKCJhcmlhLWV4cGFuZGVkIiwiZmFsc2UiKSl9O2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXtpZihyLnRvcGJhck1vcmVPcGVuKXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLW1vcmUtbWVudSIpLGk9biYmbi5wYXJlbnRFbGVtZW50O2kmJiFpLmNvbnRhaW5zKHQudGFyZ2V0KSYmZSgpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHQpe3Qua2V5PT09IkVzY2FwZSImJnIudG9wYmFyTW9yZU9wZW4mJmUoKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXtpZihyLnBsdXNQb3BvdmVyT3Blbil7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF0dGFjaC1idG4iKTtuJiZuLmNvbnRhaW5zKHQudGFyZ2V0KXx8aSYmaS5jb250YWlucyh0LnRhcmdldCl8fExpKCl9fSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmci5wbHVzUG9wb3Zlck9wZW4mJkxpKCl9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7dmFyIG49dC50YXJnZXQ7aWYoISghbnx8dHlwZW9mIG4uY2xvc2VzdCE9ImZ1bmN0aW9uIikpe3ZhciBpPW4uY2xvc2VzdCgiI2F1dG8tYXBwcm92ZS10b2dnbGUiKTtpJiYodC5wcmV2ZW50RGVmYXVsdCgpLGhkKCkpfX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXtpZighdC50YXJnZXQuY2xvc2VzdCgiLmZvbGRlci1waWNrZXItY29udGFpbmVyIikpe3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWRyb3Bkb3duIik7biYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX19KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKHQpe3ZhciBuPXQudGFyZ2V0O2lmKCEoIW58fG4ubm9kZVR5cGUhPT0xKSYmISh0eXBlb2Ygbi5tYXRjaGVzIT0iZnVuY3Rpb24ifHwhbi5tYXRjaGVzKCJbZGF0YS1tb2RlLWNvbnRyb2xdIikpKXt2YXIgaT1uLmdldEF0dHJpYnV0ZSgiZGF0YS1tb2RlLWNvbnRyb2wiKSxhPW4udmFsdWU7aT09PSJtb2RlIj9vbShhKTppPT09Im1vZGVsIj9zbShhKTppPT09InRoaW5raW5nIiYmcm0oYSksbi5jbG9zZXN0JiZuLmNsb3Nlc3QoIiNjb21wb3Nlci1wbHVzLXBvcG92ZXIiKSYmTGkoKX19KX19ZnVuY3Rpb24gY2YoKXtsZigpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1idXR0b24iKTtpZihlKXtlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixZYSk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2luLWZvcm0iKTt0JiZ0LmFkZEV2ZW50TGlzdGVuZXIoInN1Ym1pdCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLFlhKCl9KTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tc3dpdGNoLXNlcnZlci1idXR0b24iKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixZbyk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhc3N3b3JkIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9nZ2xlLXBhc3N3b3JkLWJ1dHRvbiIpO2EmJmkmJmEuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9aS50eXBlPT09InRleHQiO2kudHlwZT1iPyJwYXNzd29yZCI6InRleHQiLGEudGV4dENvbnRlbnQ9Yj8iXHU2NjNFXHU3OTNBIjoiXHU5NjkwXHU4NUNGIixhLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsYj8iXHU2NjNFXHU3OTNBXHU1QkM2XHU3ODAxIjoiXHU5NjkwXHU4NUNGXHU1QkM2XHU3ODAxIiksYS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsYj8iZmFsc2UiOiJ0cnVlIiksaS5mb2N1cygpfSksaSYmKGkuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7Yi5rZXk9PT0iRW50ZXIiJiZZYSgpfSksaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtpLmRhdGFzZXQuZXJyb3I9ImZhbHNlIixpLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwiZmFsc2UiKTt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9naW4tZXJyb3IiKTtiJiZzaShiKX0pLGkuZm9jdXMoKSk7cmV0dXJufXZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0Iik7dSYmKHUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7Yi5rZXk9PT0iRW50ZXIiJiYhYi5zaGlmdEtleSYmKGIucHJldmVudERlZmF1bHQoKSxacygpKX0pLHUuZm9jdXMoKSk7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtc2VuZC1idG4iKTtzJiZzLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe1pzKCl9KTt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS10b29sLWNsYXVkZSIpO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7d2woKX0pO3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLXRvb2wtY29kZXgiKTtsJiZsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3Iuc2Vzc2lvblRvb2w9ImNvZGV4IixyLnByZWZlcnJlZENvbW1hbmQ9ImNvZGV4IixyLm1vZGVWYWx1ZT0iZnVsbC1hY2Nlc3MiLHdsKCl9KTt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS10b29sLXN0cnVjdHVyZWQiKTtjJiZjLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2RsKCkudGhlbihmdW5jdGlvbigpe050KCEwKX0pLmNhdGNoKGZ1bmN0aW9uKGIpe2soYiYmYi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU3RUQzXHU2Nzg0XHU1MzE2XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfSksR20oKTt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtbGlzdCIpO2YmJihmLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixSZCksZi5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixXZCksZi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLEVtKSxmLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IixGbSksV3AoZikpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLHRuLCEwKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0bik7dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInByb3ZpZGVyLWNhcmRzIik7ZCYmZC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIEE9Yi50YXJnZXQuY2xvc2VzdCgiLnByb3ZpZGVyLWNhcmQiKTtpZighKCFBfHxBLmNsYXNzTGlzdC5jb250YWlucygiZGlzYWJsZWQiKSkpe3ZhciBSPUEuZ2V0QXR0cmlidXRlKCJkYXRhLXByb3ZpZGVyIik7UiYmKHIuc2Vzc2lvblRvb2w9UixyLnByZWZlcnJlZENvbW1hbmQ9UixTcigpKX19KTt2YXIgdj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1raW5kLWNhcmRzIik7diYmdi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIEE9Yi50YXJnZXQuY2xvc2VzdCgiLnNlc3Npb24ta2luZC1jYXJkIik7aWYoISghQXx8QS5jbGFzc0xpc3QuY29udGFpbnMoImRpc2FibGVkIikpKXt2YXIgUj1BLmdldEF0dHJpYnV0ZSgiZGF0YS1zZXNzaW9uLWtpbmQiKTtSJiYoci5zZXNzaW9uQ3JlYXRlS2luZD1SLFNyKCkpfX0pO3ZhciBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtb2RlLWNhcmRzIik7aCYmaC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIEE9Yi50YXJnZXQuY2xvc2VzdCgiLm1vZGUtY2FyZCIpO2lmKEEpe3ZhciBSPUEuZ2V0QXR0cmlidXRlKCJkYXRhLW1vZGUiKTtSJiYoci5tb2RlVmFsdWU9UixTcigpKX19KTt2YXIgZz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi13b3JrdHJlZS10b2dnbGUiKTtnJiZnLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLnNlc3Npb25DcmVhdGVXb3JrdHJlZT1nLmNoZWNrZWR9KTt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7bSYmKG0uYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5jd2RWYWx1ZT1tLnZhbHVlfSksbS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ci5jd2RWYWx1ZT1tLnZhbHVlfSksbS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsQmwpLG0uYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLEJsKSxtLmFkZEV2ZW50TGlzdGVuZXIoImJsdXIiLGZ1bmN0aW9uKCl7c2V0VGltZW91dCh0ciwxMjApfSkpO3ZhciB5PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy10b2dnbGUtYnV0dG9uIik7eSYmeS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdm0pO3ZhciB3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9ucy1kcmF3ZXItYmFja2Ryb3AiKTt3JiZ3LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixMcik7dmFyIEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLWRyYXdlci1idXR0b24iKTtFJiZFLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixMcik7dmFyIEI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItY29sbGFwc2UtYnRuIik7QiYmQi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsd20pO3ZhciBGPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXBpbi1idG4iKTtGJiZGLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixDbSk7dmFyIHg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItbW9yZS1idG4iKSxTPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLW92ZXJmbG93LW1lbnUiKTt4JiZTJiZ4LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpO3ZhciBBPSFTLmNsYXNzTGlzdC5jb250YWlucygib3BlbiIpO1MuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIsQSksQSYmRG0oUyl9KTt2YXIgXz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1ob21lLWJ0biIpO18mJl8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7ci5zZWxlY3RlZElkPW51bGwsd2UoKSxrdCgpLHp0KCksWnQoKX0pO3ZhciBWPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaWRlYmFyLXJlZnJlc2gtYnRuIik7ViYmVi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt3aW5kb3cubG9jYXRpb24ucmVsb2FkKCl9KTt2YXIgVT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nb3V0LWJ1dHRvbiIpO1UmJlUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFFvKTt2YXIgST1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3dpdGNoLXNlcnZlci1idXR0b24iKTtJJiZJLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixZbyk7dmFyIEQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJhY2stdG8tbmF0aXZlLWJ1dHRvbiIpO0QmJkQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFl2KTt2YXIgTT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYnV0dG9uIik7TSYmTS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIseG0pO3ZhciBMPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS1zZXR0aW5ncy1idXR0b24iKTtMJiZMLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixabik7dmFyIFc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1vZGFsIik7VyYmVy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQuaWQ9PT0ic2V0dGluZ3MtbW9kYWwiJiZabigpfSk7dmFyIEs9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNhdmUtcGFzc3dvcmQtYnV0dG9uIik7SyYmSy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsU20pO2Zvcih2YXIgWD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIiksbmU9MDtuZTxYLmxlbmd0aDtuZSsrKVhbbmVdLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXt2YXIgQT1iLmN1cnJlbnRUYXJnZXR8fHRoaXMsUj1BJiZBLmdldEF0dHJpYnV0ZT9BLmdldEF0dHJpYnV0ZSgiZGF0YS10YWIiKTpudWxsO1ImJm91KFIpfSk7dmFyIHNlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzYXZlLWNvbmZpZy1idXR0b24iKTtzZSYmc2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFBtKTt2YXIgcmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsLXJlZnJlc2giKTtyZSYmcmUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGFtKTt2YXIgVD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXZpZXctZW52LWJ0biIpO1QmJlQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHVtKTt2YXIgTz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2F2ZS1kaXNwbGF5LWJ1dHRvbiIpO08mJk8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHFtKTt2YXIgTj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwLWljb24tcGlja2VyIik7aWYoTilmb3IodmFyIFk9Ti5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uIiksSj0wO0o8WS5sZW5ndGg7SisrKVlbSl0uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5nZXRBdHRyaWJ1dGUoImRhdGEtaWNvbiIpO2lmKCEoIWJ8fHR5cGVvZiBXYW5kTmF0aXZlPiJ1Inx8dHlwZW9mIFdhbmROYXRpdmUuc2V0QXBwSWNvbiE9ImZ1bmN0aW9uIikpdHJ5e1dhbmROYXRpdmUuc2V0QXBwSWNvbihiKSx5bChiKTt2YXIgQT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwLWljb24tbWVzc2FnZSIpO0EmJihBLnRleHRDb250ZW50PSJcdTU2RkVcdTY4MDdcdTVERjJcdTUyMDdcdTYzNjJcdUZGMENcdThGRDRcdTU2REVcdTY4NENcdTk3NjJcdTU0MEVcdTc1MUZcdTY1NDgiLEEuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIixBLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtBLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfSwzZTMpKX1jYXRjaHt9fSk7dmFyIGllPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGxvYWQtY2VydC1idXR0b24iKTtpZSYmaWUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLEhtKTtmb3IodmFyIGRlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWxlLXBpY2tlci1pbnB1dCIpLHRlPTA7dGU8ZGUubGVuZ3RoO3RlKyspKGZ1bmN0aW9uKGIpe2IuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBBPWIuY2xvc2VzdCgiLmZpbGUtcGlja2VyIik7aWYoQSl7dmFyIFI9QS5xdWVyeVNlbGVjdG9yKCIuZmlsZS1waWNrZXItbmFtZSIpO1ImJihiLmZpbGVzJiZiLmZpbGVzWzBdPyhSLnRleHRDb250ZW50PWIuZmlsZXNbMF0ubmFtZSxBLmNsYXNzTGlzdC5hZGQoImZpbGUtcGlja2VyLWhhcy1maWxlIikpOihSLnRleHRDb250ZW50PVIuZ2V0QXR0cmlidXRlKCJkYXRhLWRlZmF1bHQiKXx8Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NjU4N1x1NEVGNiIsQS5jbGFzc0xpc3QucmVtb3ZlKCJmaWxlLXBpY2tlci1oYXMtZmlsZSIpKSl9fSl9KShkZVt0ZV0pO3ZhciBhZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hlY2stdXBkYXRlLWJ1dHRvbiIpO2FlJiZhZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsaGwpO3ZhciBIZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tdXBkYXRlLWJ1dHRvbiIpO0hlJiZIZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsX20pO3ZhciBEZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tcmVzdGFydC1idXR0b24iKTtEZSYmRGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLE5tKTt2YXIgcGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLXdlYi10b2dnbGUiKTtwZSYmcGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe2x1KCJ3ZWIiLHBlLmNoZWNrZWQpfSk7dmFyIHE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWFway10b2dnbGUiKTtxJiZxLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtsdSgiYXBrIixxLmNoZWNrZWQpfSk7dmFyIEplPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1kbWctdG9nZ2xlIik7SmUmJkplLmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtsdSgiZG1nIixKZS5jaGVja2VkKX0pO3ZhciBsdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmV0YS1jaGFubmVsLXRvZ2dsZSIpO2x0JiZsdC5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7V20obHQuY2hlY2tlZD8iYmV0YSI6InN0YWJsZSIpfSk7dmFyIEc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHktY29ubmVjdC1jb2RlLWJ1dHRvbiIpO0cmJkcuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1jb2RlIik7YiYmUHIoYi50ZXh0Q29udGVudCxHKX0pO3ZhciBlZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXNvdW5kIik7ZWUmJihlZS5jaGVja2VkPXIubm90aWZTb3VuZCxlZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7ci5ub3RpZlNvdW5kPWVlLmNoZWNrZWQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLXNvdW5kIixTdHJpbmcoci5ub3RpZlNvdW5kKSl9Y2F0Y2h7fXIubm90aWZTb3VuZCYmY2koKTt2YXIgYj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWYtdm9sdW1lLWZpZWxkIik7YiYmKGIuc3R5bGUuZGlzcGxheT1yLm5vdGlmU291bmQ/IiI6Im5vbmUiKX0pKTt2YXIgb2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi12b2x1bWUiKSxsZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZS12YWwiKSxCZT1mdW5jdGlvbihiKXtpZihiKXt2YXIgQT1OdW1iZXIoYi5taW58fDApLFI9TnVtYmVyKGIubWF4fHwxMDApLENlPU51bWJlcihiLnZhbHVlfHwwKSxDdD1SPkE/TWF0aC5tYXgoMCxNYXRoLm1pbigxMDAsKENlLUEpLyhSLUEpKjEwMCkpOjA7Yi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1yYW5nZS1maWxsIixDdCsiJSIpfX07aWYob2Upe29lLnZhbHVlPVN0cmluZyhyLm5vdGlmVm9sdW1lKSxsZSYmKGxlLnRleHRDb250ZW50PXIubm90aWZWb2x1bWUrIiUiKSxCZShvZSk7dmFyIFdlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZi12b2x1bWUtZmllbGQiKTtXZSYmKFdlLnN0eWxlLmRpc3BsYXk9ci5ub3RpZlNvdW5kPyIiOiJub25lIik7dmFyIFZ0PW51bGw7b2UuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKCl7ci5ub3RpZlZvbHVtZT1wYXJzZUludChvZS52YWx1ZSwxMCksbGUmJihsZS50ZXh0Q29udGVudD1yLm5vdGlmVm9sdW1lKyIlIiksQmUob2UpO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi12b2x1bWUiLFN0cmluZyhyLm5vdGlmVm9sdW1lKSl9Y2F0Y2h7fWlmKGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zZXROb3RpZmljYXRpb25Wb2x1bWU9PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc2V0Tm90aWZpY2F0aW9uVm9sdW1lKHIubm90aWZWb2x1bWUpfWNhdGNoe319KSxvZS5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7Y2koKX0pfXZhciBjdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLWJ1YmJsZSIpO2N0JiYoY3QuY2hlY2tlZD1yLm5vdGlmQnViYmxlLGN0LmFkZEV2ZW50TGlzdGVuZXIoImNoYW5nZSIsZnVuY3Rpb24oKXtyLm5vdGlmQnViYmxlPWN0LmNoZWNrZWQ7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLW5vdGlmLWJ1YmJsZSIsU3RyaW5nKHIubm90aWZCdWJibGUpKX1jYXRjaHt9fSkpO3ZhciBkdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlcXVlc3QtYnRuIik7ZHQmJmR0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2lmKGplKXt3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdD1mdW5jdGlvbigpe3luKCksZGVsZXRlIHdpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0fTt0cnl7V2FuZE5hdGl2ZS5yZXF1ZXN0UGVybWlzc2lvbigpfWNhdGNoe319ZWxzZSB0eXBlb2YgTm90aWZpY2F0aW9uPCJ1IiYmTm90aWZpY2F0aW9uLnJlcXVlc3RQZXJtaXNzaW9uKCkudGhlbihmdW5jdGlvbigpe3luKCl9KX0pO3ZhciBfZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXJlc2V0LWJ0biIpO19lJiZfZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsem0pO3ZhciBLdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibm90aWZpY2F0aW9uLXRlc3QtYnRuIik7S3QmJkt0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixFbCk7dmFyIEdlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iKTtpZihHZSYmR2UuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFVtKSx5bigpLGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXRBdmFpbGFibGVTb3VuZHM9PSJmdW5jdGlvbiIpe3ZhciBydD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlY3Rpb24iKSxrZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLXNvdW5kLXNlbGVjdCIpLGdlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuYXRpdmUtc291bmQtcHJldmlldyIpO2lmKHJ0JiZrZSl7cnQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dHJ5e3ZhciBiZT1KU09OLnBhcnNlKFdhbmROYXRpdmUuZ2V0QXZhaWxhYmxlU291bmRzKCkpLEM9V2FuZE5hdGl2ZS5nZXROb3RpZmljYXRpb25Tb3VuZCgpO2tlLmlubmVySFRNTD0iIjtmb3IodmFyIGl0PTA7aXQ8YmUubGVuZ3RoO2l0Kyspe3ZhciBodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKTtodC52YWx1ZT1iZVtpdF0uaWQsaHQudGV4dENvbnRlbnQ9YmVbaXRdLm5hbWUsYmVbaXRdLmlkPT09QyYmKGh0LnNlbGVjdGVkPSEwKSxrZS5hcHBlbmRDaGlsZChodCl9a2UuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3RyeXtXYW5kTmF0aXZlLnNldE5vdGlmaWNhdGlvblNvdW5kKGtlLnZhbHVlKX1jYXRjaHt9fSksZ2UmJmdlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3RyeXtXYW5kTmF0aXZlLnByZXZpZXdTb3VuZChrZS52YWx1ZSl9Y2F0Y2h7fX0pfWNhdGNoe319fWlmKGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5pc0hhcHRpY0VuYWJsZWQ9PSJmdW5jdGlvbiIpe3ZhciBTdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmF0aXZlLWhhcHRpYy1zZWN0aW9uIiksd3Q9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1oYXB0aWMtZW5hYmxlZCIpO2lmKFN0JiZ3dCl7U3QuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7dHJ5e3d0LmNoZWNrZWQ9V2FuZE5hdGl2ZS5pc0hhcHRpY0VuYWJsZWQoKX1jYXRjaHt9d3QuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe3RyeXtXYW5kTmF0aXZlLnNldEhhcHRpY0VuYWJsZWQod3QuY2hlY2tlZCl9Y2F0Y2h7fXd0LmNoZWNrZWQmJktuKCJtZWRpdW0iKX0pfX12YXIgSXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1uZXctc2Vzc2lvbi1idXR0b24iKTtJdCYmSXQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHV1KTt2YXIgSnQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyYXdlci1uZXctc2Vzc2lvbi1idXR0b24iKTtKdCYmSnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHV1KTt2YXIgYXQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNsb3NlLW1vZGFsLWJ1dHRvbiIpO2F0JiZhdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZ24pO3ZhciBPZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2xvc2Utd29ya3RyZWUtbWVyZ2UtYnV0dG9uIik7T2UmJk9lLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixYbik7dmFyIHplPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1jYW5jZWwtYnV0dG9uIik7emUmJnplLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixYbik7dmFyIGhlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1jb25maXJtLWJ1dHRvbiIpO2hlJiZoZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsQW0pO3ZhciB5dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicnVuLWJ1dHRvbiIpO3l0JiZ5dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsVm0pO3ZhciBmdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXBwcm92ZS1wZXJtaXNzaW9uLWJ0biIpO2Z0JiZmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbWQpO3ZhciB1dD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVueS1wZXJtaXNzaW9uLWJ0biIpO3V0JiZ1dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZ2QpO3ZhciBidD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VuZC1pbnB1dC1idXR0b24iKTtidCYmYnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7enQoKSxKZigpfSk7dmFyIFR0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO1R0JiZUdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTGEpO3ZhciBNbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO01uJiZNbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQuaWQ9PT0ic2Vzc2lvbi1tb2RhbCImJmduKCksYi50YXJnZXQuaWQ9PT0id29ya3RyZWUtbWVyZ2UtbW9kYWwiJiZYbigpfSk7dmFyIGZlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtmZSYmKEJvKGZlKSxmZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixabSksZmUuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLHNnKSxmZS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtyLnRlcm1pbmFsQ29tcG9zaW5nfHxEbChmZSl8fChudihmZSksb3QoZmUudmFsdWUsITApLE9pKGZlKSl9KSxmZS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IixmdW5jdGlvbigpe3IudGVybWluYWxJbnRlcmFjdGl2ZSYmKHIudGVybWluYWxDb21wb3Npbmc9ITApfSksZmUuYWRkRXZlbnRMaXN0ZW5lcigiY29tcG9zaXRpb25lbmQiLGZ1bmN0aW9uKCl7ci50ZXJtaW5hbENvbXBvc2luZyYmKHIudGVybWluYWxDb21wb3Npbmc9ITEsci50ZXJtaW5hbEludGVyYWN0aXZlJiZEbChmZSkpfSksZmUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7enQoKSxZcCh7dGFyZ2V0OmZlfSl9KSxmZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIixRcCkpO3ZhciBwdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXR0YWNoLWJ0biIpLFo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtdXBsb2FkLWlucHV0IiksU2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIpLEllPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwbHVzLWF0dGFjaC1pdGVtIik7cHQmJlNlJiZwdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKSxnbSgpfSksSWUmJlomJkllLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0xpKCksWi5jbGljaygpfSksWiYmWi5hZGRFdmVudExpc3RlbmVyKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGI9Wi5maWxlcztpZihiKWZvcih2YXIgQT0wO0E8Yi5sZW5ndGg7QSsrKWN1KGJbQV0pO1oudmFsdWU9IiJ9KTt2YXIgWWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLWJ0biIpO1llJiZZZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtDYSgpfSk7dmFyIFFlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1jYW5jZWwtYnRuIik7UWUmJlFlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0NhKCExKX0pO3ZhciBGZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtcmVjb3JkLWJ0biIpO0ZlJiYoRmUuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmRvd24iLF9mKSxGZS5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsTmYpLEZlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsWXMpLEZlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJjYW5jZWwiLFlzKSk7dmFyIFRlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcm9tcHQtb3B0aW1pemUtYnRuIik7VGUmJlRlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2xnKCl9KTt2YXIgJGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7JGUmJigkZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksJGUuY2xhc3NMaXN0LmFkZCgiZHJhZy1vdmVyIil9KSwkZS5hZGRFdmVudExpc3RlbmVyKCJkcmFnbGVhdmUiLGZ1bmN0aW9uKGIpe2IucHJldmVudERlZmF1bHQoKSxiLnN0b3BQcm9wYWdhdGlvbigpLCRlLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksJGUuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksJGUuY2xhc3NMaXN0LnJlbW92ZSgiZHJhZy1vdmVyIik7dmFyIEE9Yi5kYXRhVHJhbnNmZXImJmIuZGF0YVRyYW5zZmVyLmZpbGVzO2lmKEEpZm9yKHZhciBSPTA7UjxBLmxlbmd0aDtSKyspY3UoQVtSXSl9KSk7dmFyIEd0PVsidGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlLXRvcCJdO0d0LmZvckVhY2goZnVuY3Rpb24oYil7dmFyIEE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYik7QSYmQS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTHApfSk7dmFyIEg9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtcGFuZWwtdG9nZ2xlLWJ0biIpO0gmJkguYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLFZyKTt2YXIgaj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlsZS1zaWRlLXBhbmVsLWNsb3NlIik7aiYmai5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTXUpO3ZhciBRPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXBhbmVsLWJhY2tkcm9wIik7USYmUS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsTXUpO3ZhciB2ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWZpbGUtYnV0dG9uIik7dmUmJnZlLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixWcik7dmFyIHllPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItY3dkIik7eWUmJih5ZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLmZpbGVQYW5lbE9wZW58fFZyKCl9KSx5ZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXsoYi5rZXk9PT0iRW50ZXIifHxiLmtleT09PSIgIikmJihiLnByZXZlbnREZWZhdWx0KCksci5maWxlUGFuZWxPcGVufHxWcigpKX0pKTt2YXIgUGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvcGJhci1tb3JlLWJ1dHRvbiIpLG5yPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItbW9yZS1tZW51Iik7UGUmJm5yJiYoUGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCksci50b3BiYXJNb3JlT3Blbj0hci50b3BiYXJNb3JlT3Blbixuci5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCFyLnRvcGJhck1vcmVPcGVuKSxQZS5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHIudG9wYmFyTW9yZU9wZW4pLFBlLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsci50b3BiYXJNb3JlT3Blbj8idHJ1ZSI6ImZhbHNlIil9KSxuci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7dmFyIEE9Yi50YXJnZXQmJmIudGFyZ2V0LmNsb3Nlc3Q/Yi50YXJnZXQuY2xvc2VzdCgiLnRvcGJhci1tb3JlLWl0ZW0iKTpudWxsO2lmKEEpe3ZhciBSPUEuZ2V0QXR0cmlidXRlKCJkYXRhLWFjdGlvbiIpO3N3aXRjaChyLnRvcGJhck1vcmVPcGVuPSExLG5yLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLFBlLmNsYXNzTGlzdC5yZW1vdmUoImFjdGl2ZSIpLFBlLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIiksUil7Y2FzZSJjb3B5LWNsYXVkZS1zZXNzaW9uLWlkIjpkYSgiY2xhdWRlU2Vzc2lvbklkIixfdCgpJiZfdCgpLnByb3ZpZGVyPT09ImNvZGV4Ij8iQ29kZXggdGhyZWFkIElEIFx1NURGMlx1NTkwRFx1NTIzNiI6IkNsYXVkZSBcdTRGMUFcdThCREQgSUQgXHU1REYyXHU1OTBEXHU1MjM2Iik7YnJlYWs7Y2FzZSJjb3B5LWN3ZCI6ZGEoImN3ZCIsIlx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NVx1NURGMlx1NTkwRFx1NTIzNiIpO2JyZWFrO2Nhc2UiY29weS1zZXNzaW9uLWlkIjpkYSgiaWQiLCJcdTRGMUFcdThCREQgSUQgXHU1REYyXHU1OTBEXHU1MjM2Iik7YnJlYWs7Y2FzZSJ3b3JrdHJlZS1tZXJnZSI6ci5zZWxlY3RlZElkJiZwbChyLnNlbGVjdGVkSWQpO2JyZWFrO2Nhc2Uid29ya3RyZWUtY2xlYW51cCI6ci5zZWxlY3RlZElkJiZ2bChyLnNlbGVjdGVkSWQpO2JyZWFrO2Nhc2UiZGVsZXRlLXNlc3Npb24iOnIuc2VsZWN0ZWRJZCYmKGZ1bmN0aW9uKENlKXtrbigiXHU3ODZFXHU1QjlBXHU4OTgxXHU1MjIwXHU5NjY0XHU1RjUzXHU1MjREXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGXHU2QjY0XHU2NENEXHU0RjVDXHU2NUUwXHU2Q0Q1XHU2NEE0XHU5NTAwXHUzMDAyIix7dGl0bGU6Ilx1NTIyMFx1OTY2NFx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERCJ9KS50aGVuKGZ1bmN0aW9uKEN0KXtDdCYmZ28oQ2UpfSl9KShyLnNlbGVjdGVkSWQpO2JyZWFrfX19KSk7dmFyIF9yPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1zY2FsZS1kb3duLXRvcCIpLEhpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1zY2FsZS11cC10b3AiKTtfciYmX3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7T3UoLS4yNSl9KSxIaSYmSGkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7T3UoLjI1KX0pO3ZhciBrbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFnZS1yZWZyZXNoLWJ0biIpO2tsJiZrbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7aWYoYiYmYi5zaGlmdEtleSl7bG9jYXRpb24ucmVsb2FkKCk7cmV0dXJufUFuKCksa3Qoe3ByZXNlcnZlU3RpY2tTdGF0ZTohMH0pLHFhKCEwKX0pO3ZhciBBbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtanVtcC1ib3R0b20iKTtBbCYmQWwuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7RXQoImZvcmNlIil9KTt2YXIgeGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtdW5yZWFkLWJ1YmJsZSIpO3hsJiZ4bC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt3dSghMCl9KTt2YXIgU2w9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpbGUtZXhwbG9yZXItcmVmcmVzaCIpO1NsJiZTbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtPdCgpfSk7dmFyIElsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLXVwIik7SWwmJklsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmYyk7dmFyIFVlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLWV4cGxvcmVyLWN3ZCIpO2lmKFVlJiZVZS50YWdOYW1lPT09IklOUFVUIil7dmFyIHJyPVVlLnZhbHVlLFRsPWZ1bmN0aW9uKGIpe3ZhciBBPShifHwiIikudHJpbSgpO3JldHVybiBBPyhBPUEucmVwbGFjZSgvXC97Mix9L2csIi8iKSxBLmxlbmd0aD4xJiYoQT1BLnJlcGxhY2UoL1wvKyQvLCIiKSksQSk6IiJ9O1VlLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe3JyPVVlLnZhbHVlLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0cnl7VWUuc2VsZWN0KCl9Y2F0Y2h7fX0sMCl9KSxVZS5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixmdW5jdGlvbihiKXtpZihiLmtleT09PSJFbnRlciIpe2IucHJldmVudERlZmF1bHQoKTt2YXIgQT1UbChVZS52YWx1ZSk7aWYoIUEpcmV0dXJuO3JyPUEsVWUudmFsdWU9QSxPdCh7Y3dkOkF9KSxVZS5ibHVyKCl9ZWxzZSBiLmtleT09PSJFc2NhcGUiJiYoYi5wcmV2ZW50RGVmYXVsdCgpLFVlLnZhbHVlPXJyLFVlLmJsdXIoKSl9KSxVZS5hZGRFdmVudExpc3RlbmVyKCJibHVyIixmdW5jdGlvbigpe3ZhciBiPVRsKFVlLnZhbHVlKTtpZighYil7VWUudmFsdWU9cnI7cmV0dXJufWlmKGI9PT1ycil7VWUudmFsdWU9YjtyZXR1cm59cnI9YixVZS52YWx1ZT1iLE90KHtjd2Q6Yn0pfSl9dmFyIF9pPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNlYXJjaC1pbnB1dCIpLE5yPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaWxlLXNlYXJjaC1jbGVhciIpO19pJiZfaS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oYil7ci5maWxlU2VhcmNoUXVlcnk9Yi50YXJnZXQudmFsdWUudHJpbSgpLE5yJiZOci5jbGFzc0xpc3QudG9nZ2xlKCJ2aXNpYmxlIixyLmZpbGVTZWFyY2hRdWVyeS5sZW5ndGg+MCksX3UoKX0pLE5yJiZOci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtyLmZpbGVTZWFyY2hRdWVyeT0iIixfaSYmKF9pLnZhbHVlPSIiKSxOci5jbGFzc0xpc3QucmVtb3ZlKCJ2aXNpYmxlIil9KTt2YXIgRWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItaW5wdXQiKSxMZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1kcm9wZG93biIpLGh1PW51bGwsWXQ9LTEsYm49W107ZnVuY3Rpb24gTGwoYil7RWUmJkVlLmNsYXNzTGlzdC5hZGQoImludmFsaWQiKTt2YXIgQT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci12YWxpZGF0aW9uIik7QSYmKEEudGV4dENvbnRlbnQ9YixBLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKSl9ZnVuY3Rpb24gTWwoKXtFZSYmRWUuY2xhc3NMaXN0LnJlbW92ZSgiaW52YWxpZCIpO3ZhciBiPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iKTtiJiYoYi50ZXh0Q29udGVudD0iIixiLmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKSl9ZnVuY3Rpb24gdmcoYil7aWYoIWIubGVuZ3RoKXJldHVybiIiO3ZhciBBPSc8ZGl2IGNsYXNzPSJmb2xkZXItcmVjZW50LXNlY3Rpb24iPjxkaXYgY2xhc3M9ImZvbGRlci1yZWNlbnQtdGl0bGUiPlx1NjcwMFx1OEZEMVx1NEY3Rlx1NzUyODwvZGl2Pic7cmV0dXJuIGIuZm9yRWFjaChmdW5jdGlvbihSKXt2YXIgQ2U9Ui5wYXRofHxSO0ErPSc8ZGl2IGNsYXNzPSJmb2xkZXItcmVjZW50LWl0ZW0iIGRhdGEtcGF0aD0iJytwKENlKSsnIj48c3BhbiBjbGFzcz0iZm9sZGVyLXJlY2VudC1pdGVtLXBhdGgiPicrcChDZSkrIjwvc3Bhbj48L2Rpdj4ifSksQSs9IjwvZGl2PiIsQX1mdW5jdGlvbiBtZygpe0xlJiZsYShmdW5jdGlvbihiKXt2YXIgQT12ZyhiKTtBPyhMZS5pbm5lckhUTUw9QSxMZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxMZS5xdWVyeVNlbGVjdG9yQWxsKCIuZm9sZGVyLXJlY2VudC1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihSKXtSLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBDZT10aGlzLmRhdGFzZXQucGF0aDtFZSYmKEVlLnZhbHVlPUNlLFh0KENlKSxubihDZSkpfSl9KSk6anIoKX0pfXZhciBPbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya2luZy1kaXItaW5kaWNhdG9yIik7T2wmJk9sLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3Iuc2VsZWN0ZWRJZD1udWxsLHdlKCksci5kcmFmdHM9e30sWnQoKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIGI9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvbGRlci1waWNrZXItaW5wdXQiKTtiJiZiLmZvY3VzKCl9LDUwKX0pO3ZhciB5dT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci10b2dnbGUiKSxMZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1kcm9wZG93biIpO3l1JiZMZSYmeXUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7TGUuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIikseXUuY2xhc3NMaXN0LnRvZ2dsZSgib3BlbiIpfSk7dmFyIE5pPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mb2xkZXItcGlja2VyLWNvbXBhY3QiKTtpZihOaSYmKE5pLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdvdmVyIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsYXNzTGlzdC5hZGQoImRyYWctb3ZlciIpfSksTmkuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ2xlYXZlIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCksYi5zdG9wUHJvcGFnYXRpb24oKSx0aGlzLmNsYXNzTGlzdC5yZW1vdmUoImRyYWctb3ZlciIpfSksTmkuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLGIuc3RvcFByb3BhZ2F0aW9uKCksdGhpcy5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnLW92ZXIiKTt2YXIgQT1iLmRhdGFUcmFuc2ZlciYmYi5kYXRhVHJhbnNmZXIuaXRlbXM7aWYoQSlmb3IodmFyIFI9MDtSPEEubGVuZ3RoO1IrKyl7dmFyIENlPUFbUl07aWYoQ2Uua2luZD09PSJmaWxlIiYmQ2Uud2Via2l0R2V0QXNFbnRyeSl7dmFyIEN0PUNlLndlYmtpdEdldEFzRW50cnkoKTtpZihDdCYmQ3QuaXNEaXJlY3RvcnkmJkVlKXt2YXIgTHQ9Q3QuZnVsbFBhdGg7RWUudmFsdWU9THQsWHQoTHQpLG5uKEx0KTticmVha319fX0pKSxMZSYmTGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGIpe3ZhciBBPWIudGFyZ2V0LmNsb3Nlc3QoIi5mb2xkZXItcGlja2VyLXF1aWNrLWJ0biIpO2lmKEEmJkVlKXt2YXIgUj1BLmRhdGFzZXQucGF0aDtFZS52YWx1ZT1SLFh0KFIpLG5uKFIpLExlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBDZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci10b2dnbGUiKTtDZSYmQ2UuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpfX0pLEVlKXt2YXIgZ2c9ZXQoKTtubihnZyksRWUuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLGZ1bmN0aW9uKCl7dmFyIGI9dGhpcy52YWx1ZS50cmltKCk7Yj9ubihiKTptZygpfSksRWUuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLGZ1bmN0aW9uKGIpe3ZhciBBPWIudGFyZ2V0LnZhbHVlLnRyaW0oKTtZdD0tMSxodSYmY2xlYXJUaW1lb3V0KGh1KSxodT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7QT9ubihBKTpqcigpfSwxNTApfSksRWUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24oYil7aWYoYi5rZXk9PT0iRXNjYXBlIilqcigpLHRoaXMuYmx1cigpO2Vsc2UgaWYoYi5rZXk9PT0iQXJyb3dEb3duIiliLnByZXZlbnREZWZhdWx0KCksYm4ubGVuZ3RoPjAmJihZdD1NYXRoLm1pbihZdCsxLGJuLmxlbmd0aC0xKSxQbCgpKTtlbHNlIGlmKGIua2V5PT09IkFycm93VXAiKWIucHJldmVudERlZmF1bHQoKSxZdD4wJiYoWXQtLSxQbCgpKTtlbHNlIGlmKGIua2V5PT09IkVudGVyIiYmWXQ+PTApe2IucHJldmVudERlZmF1bHQoKTt2YXIgQT1ibltZdF07aWYoQSl7dmFyIFI9QS5kYXRhc2V0LnBhdGg7aWYoUj09PSIuLiIpe3ZhciBDZT1FZS52YWx1ZS50cmltKCksQ3Q9Q2Uuc3Vic3RyaW5nKDAsQ2UubGFzdEluZGV4T2YoIi8iKSk7Q3QmJihFZS52YWx1ZT1DdHx8Ii8iLFh0KEVlLnZhbHVlKSxubihDdHx8Ii8iKSl9ZWxzZSBFZS52YWx1ZT1SLFh0KFIpLGpyKCl9fX0pfWZ1bmN0aW9uIFBsKCl7Ym4uZm9yRWFjaChmdW5jdGlvbihiLEEpe2IuY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixBPT09WXQpfSl9ZnVuY3Rpb24gZWgoYil7fWZ1bmN0aW9uIG5uKGIpe0xlJiYoTGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRC4uLjwvZGl2PicsTGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksWXQ9LTEsYm49W10sZmV0Y2goIi9hcGkvZm9sZGVycz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KGIpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihBKXtyZXR1cm4gQS5qc29uKCkudGhlbihmdW5jdGlvbihSKXtyZXR1cm57b2s6QS5vayxzdGF0dXM6QS5zdGF0dXMsZGF0YTpSfX0pfSkudGhlbihmdW5jdGlvbihBKXt2YXIgUj1BLmRhdGE7aWYoIUEub2t8fFIuZXJyb3Ipe0xsKFIuZXJyb3J8fCJcdThERUZcdTVGODRcdTY1RTBcdTY1NDgiKSxMZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItZXJyb3IiPicrcChSLmVycm9yfHwiXHU4REVGXHU1Rjg0XHU2NUUwXHU2NTQ4IikrIjwvZGl2PiI7cmV0dXJufU1sKCksUi5jdXJyZW50UGF0aDt2YXIgQ2U9Ui5pdGVtc3x8W10sQ3Q9Ui5jdXJyZW50UGF0aHx8YjtpZihDZS5sZW5ndGg9PT0wKXtMZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItbG9hZGluZyI+XHU3QTdBXHU3NkVFXHU1RjU1PC9kaXY+JztyZXR1cm59TGUuaW5uZXJIVE1MPUNlLm1hcChmdW5jdGlvbihMdCl7dmFyIGppPUx0LnR5cGU9PT0icGFyZW50Ij8iXHUyMUE5XHVGRTBGIjoiXHV7MUY0QzF9IixidT1MdC50eXBlPT09InBhcmVudCI/Ii4uIChcdThGRDRcdTU2REVcdTRFMEFcdTdFQTcpIjpMdC5uYW1lO3JldHVybic8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWl0ZW0iIGRhdGEtcGF0aD0iJytwKEx0LnBhdGgpKyciIGRhdGEtdHlwZT0iJytMdC50eXBlKyciPjxzcGFuIGNsYXNzPSJmb2xkZXItcGlja2VyLWl0ZW0taWNvbiI+JytqaSsiPC9zcGFuPjxzcGFuPiIrcChidSkrIjwvc3Bhbj48L2Rpdj4ifSkuam9pbigiIiksYm49QXJyYXkuZnJvbShMZS5xdWVyeVNlbGVjdG9yQWxsKCIuZm9sZGVyLXBpY2tlci1pdGVtIikpLGJuLmZvckVhY2goZnVuY3Rpb24oTHQpe0x0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3ZhciBqaT10aGlzLmRhdGFzZXQucGF0aCxidT10aGlzLmRhdGFzZXQudHlwZTtpZihFZSlpZihidT09PSJwYXJlbnQiKXt2YXIgTmw9RWUudmFsdWUudHJpbSgpLGpsPU5sLnN1YnN0cmluZygwLE5sLmxhc3RJbmRleE9mKCIvIikpO0VlLnZhbHVlPWpsfHwiLyIsWHQoRWUudmFsdWUpLG5uKGpsfHwiLyIpfWVsc2UgRWUudmFsdWU9amksWHQoamkpLE1sKCksanIoKX0pfSl9KS5jYXRjaChmdW5jdGlvbihBKXtMbCgiXHU1MkEwXHU4RjdEXHU1OTMxXHU4RDI1IiksTGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyLWVycm9yIj5cdTUyQTBcdThGN0RcdTU5MzFcdThEMjU8L2Rpdj4nfSkpfWZ1bmN0aW9uIGpyKCl7TGUmJkxlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLFl0PS0xLGJuPVtdfXZhciBFbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9sZGVyLXBpY2tlci1tb2RhbCIpLHFsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjbG9zZS1mb2xkZXItcGlja2VyIik7ZnVuY3Rpb24gdGgoKXtpZihFbil7RW4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksRWUmJihFZS52YWx1ZT1ldCgpKTt2YXIgYj1ldCgpO25uKGIpfX1xbCYmRW4mJnFsLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe0VuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfSksRW4mJkVuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihiKXtiLnRhcmdldD09PUVuJiZFbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKX0pO3ZhciBIbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wYmFyLWdpdC1iYWRnZSIpO0hsJiZIbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi5wcmV2ZW50RGVmYXVsdCgpLCR1KCl9KTt2YXIgX2w9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1aWNrLWNvbW1pdC1tb2RhbCIpO19sJiZfbC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYil7Yi50YXJnZXQuaWQ9PT0icXVpY2stY29tbWl0LW1vZGFsIiYmIXIucXVpY2tDb21taXRTdWJtaXR0aW5nJiZIbigpfSksWHUoKSxWbigpLGl2KCksd2QoKSxzcCgpLHN0KCl9ZnVuY3Rpb24ga3QoZSl7dmFyIHQ9ZXx8e307ci5sYXN0UmVuZGVyZWRIYXNoPTAsci5sYXN0UmVuZGVyZWRNc2dDb3VudD0wLHIubGFzdFJlbmRlcmVkRW1wdHk9bnVsbCxyLnJlbmRlclBlbmRpbmc9ITEsci5jaGF0UmVuZGVyZWRDb3VudD1yLmNoYXRQYWdlU2l6ZSxyLmFza1VzZXJTZWxlY3Rpb25zPXt9LHIuY2hhdFNjcm9sbEVsZW1lbnQmJihyLmNoYXRTY3JvbGxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInNjcm9sbCIsci5jaGF0U2Nyb2xsSGFuZGxlciksci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIixyLmNoYXRTY3JvbGxXaGVlbEhhbmRsZXIpLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLHIuY2hhdFNjcm9sbFRvdWNoU3RhcnRIYW5kbGVyKSxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyJiZyLmNoYXRTY3JvbGxFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsci5jaGF0U2Nyb2xsVG91Y2hNb3ZlSGFuZGxlcikpLHIuY2hhdFNjcm9sbEVsZW1lbnQ9bnVsbCxyLmNoYXRTY3JvbGxIYW5kbGVyPW51bGwsci5jaGF0U2Nyb2xsV2hlZWxIYW5kbGVyPW51bGwsci5jaGF0U2Nyb2xsVG91Y2hTdGFydEhhbmRsZXI9bnVsbCxyLmNoYXRTY3JvbGxUb3VjaE1vdmVIYW5kbGVyPW51bGwsci5jaGF0SXNQcm9ncmFtbWF0aWNTY3JvbGw9ITEsdC5wcmVzZXJ2ZVN0aWNrU3RhdGV8fChyLmNoYXRTdGlja1RvQm90dG9tPSEwLHIuY2hhdFVucmVhZENvdW50PTAsci5jaGF0VW5yZWFkU3RhcnRJbmRleD0tMSxyLmNoYXRJbml0aWFsUmVuZGVyRG9uZT0hMSl9ZnVuY3Rpb24gZXQoKXtyZXR1cm4gci53b3JraW5nRGlyfHxhbigpfXdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJvbmxpbmUiLGZ1bmN0aW9uKCl7ci5pc09ubGluZT0hMCx1aSgpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9mZmxpbmUiLGZ1bmN0aW9uKCl7ci5pc09ubGluZT0hMSx1aSgpfSk7ZnVuY3Rpb24gdWkoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib2ZmbGluZS1iYW5uZXIiKTtpZighci5pc09ubGluZSYmIWUpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuaWQ9Im9mZmxpbmUtYmFubmVyIix0LmNsYXNzTmFtZT0ib2ZmbGluZS1iYW5uZXIiLHQudGV4dENvbnRlbnQ9IllvdSBhcmUgb2ZmbGluZSAtIHNvbWUgZmVhdHVyZXMgbWF5IGJlIGxpbWl0ZWQiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCl9ZWxzZSByLmlzT25saW5lJiZlJiZlLnJlbW92ZSgpfWZ1bmN0aW9uIGRmKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpO2UmJihlLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nIj48ZGl2IGNsYXNzPSJib290LWxvYWRpbmctY2FyZCI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXNwaW5uZXIiPjwvZGl2PjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0Ij5cdTZCNjNcdTU3MjhcdThGREVcdTYzQTUgV2FuZFx1MjAyNjwvZGl2PjwvZGl2PjwvZGl2PicpfWZ1bmN0aW9uIHlyKGUsdCl7aWYoci5jb25maWcmJiFkb2N1bWVudC5oaWRkZW4pe3ZhciBuPXQmJnQuaW1tZWRpYXRlPT09ITAsaT1EYXRlLm5vdygpOyFuJiZpLXIubGFzdEZvcmVncm91bmRTeW5jQXQ8MTUwMHx8KHIubGFzdEZvcmVncm91bmRTeW5jQXQ9aSxyLmZvcmVncm91bmRTeW5jVGltZXImJihjbGVhclRpbWVvdXQoci5mb3JlZ3JvdW5kU3luY1RpbWVyKSxyLmZvcmVncm91bmRTeW5jVGltZXI9bnVsbCksZmYoZSxuKSl9fWZ1bmN0aW9uIGZmKGUsdCl7cmV0dXJuIXIuY29uZmlnfHxkb2N1bWVudC5oaWRkZW4/UHJvbWlzZS5yZXNvbHZlKCk6KGhzKCksdD9pYSgicmVzdW1lLWZvcmNlIik6KCFyLndzfHxyLndzLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTiYmci53cy5yZWFkeVN0YXRlIT09V2ViU29ja2V0LkNPTk5FQ1RJTkcpJiZacigpLHIuY2xhdWRlSGlzdG9yeUxvYWRlZCYmdnMoKSx2bih7c2tpcFNlbGVjdGVkT3V0cHV0UmVsb2FkOiEwfSkuY2F0Y2goZnVuY3Rpb24obil7Y29uc29sZS5lcnJvcigiW3dhbmRdIGZvcmVncm91bmQgc3luYyBmYWlsZWQ6IixlLG4pfSkpfWZ1bmN0aW9uIHBmKCl7d2luZG93Ll9fd2FuZEZvcmVncm91bmRTeW5jQm91bmR8fCh3aW5kb3cuX193YW5kRm9yZWdyb3VuZFN5bmNCb3VuZD0hMCxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ2aXNpYmlsaXR5Y2hhbmdlIixmdW5jdGlvbigpe2RvY3VtZW50LmhpZGRlbj9yYSgpOih5cigidmlzaWJpbGl0eSIpLGhyKCJ2aXNpYmlsaXR5IikpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIixmdW5jdGlvbigpe3lyKCJmb2N1cyIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInBhZ2VzaG93IixmdW5jdGlvbigpe3lyKCJwYWdlc2hvdyIpfSksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc3VtZSIsZnVuY3Rpb24oKXt5cigicmVzdW1lIil9KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1hbmRyb2lkLXJlc3VtZSIsZnVuY3Rpb24oKXt5cigiYW5kcm9pZC1yZXN1bWUiLHtpbW1lZGlhdGU6ITB9KSxocigiYW5kcm9pZC1yZXN1bWUiKX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ3YW5kLWltZS1zdGF0ZSIsZnVuY3Rpb24oZSl7dmFyIHQ9ZSYmZS5kZXRhaWwmJmUuZGV0YWlsLnN0YXRlO2lmKHQ9PT0ic2hvd24ifHx0PT09ImhpZGRlbiIpdHJ5e1plKCJuYXRpdmUtaW1lLSIrdCx7Zm9yY2VSZXBsYXk6ITB9KSxFdCgibmF0aXZlLWltZSIpfWNhdGNoe319KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigid2FuZC1hbmRyb2lkLW5ldHdvcmsiLGZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuZGV0YWlsJiZlLmRldGFpbC5zdGF0ZTtpZih0PT09Imxvc3QiKXtyLmlzT25saW5lPSExO3RyeXt1aSgpfWNhdGNoe31yZXR1cm59aWYodD09PSJhdmFpbGFibGUifHx0PT09ImNoYW5nZWQifHx0PT09InZhbGlkYXRlZCIpe3IuaXNPbmxpbmU9ITA7dHJ5e3VpKCl9Y2F0Y2h7fWlhKCJhbmRyb2lkLW5ldHdvcmstIit0KX19KSl9ZnVuY3Rpb24gdmYoKXtmZXRjaCgiL2FwaS9zZXNzaW9uLWNoZWNrIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUub2s/ZS5qc29uKCk6e2F1dGhlZDohMX19KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiFlfHwhZS5hdXRoZWQ/KHIubG9naW5DaGVja2VkPSEwLFp0KCksbnVsbCk6ZmV0Y2goIi9hcGkvY29uZmlnIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQub2s/dC5qc29uKCk6KHIubG9naW5DaGVja2VkPSEwLFp0KCksbnVsbCl9KX0pLnRoZW4oZnVuY3Rpb24oZSl7ZSYmKHIuY29uZmlnPWUsci5sb2dpbkNoZWNrZWQ9ITAscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7dHJ5e1p0KHtza2lwU2hlbGxDaHJvbWU6ITB9KX1jYXRjaHt9cGYoKSxtcygpLGp0KCksb2woKSxCZigpLGUudXBkYXRlQXZhaWxhYmxlJiZlLmxhdGVzdFZlcnNpb24mJnpzKGUuY3VycmVudFZlcnNpb258fCItIixlLmxhdGVzdFZlcnNpb24pLFNuJiZqbSgpLG9uJiZSbSgpLHIuY2xhdWRlSGlzdG9yeUxvYWRlZHx8c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2xhdWRlSGlzdG9yeUxvYWRlZHx8WHIoKX0sNjAwKX0pKX0pLmNhdGNoKGZ1bmN0aW9uKCl7aWYoci5sb2dpbkNoZWNrZWQ9ITAsIW5hdmlnYXRvci5vbkxpbmUpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhcHAiKTtlJiYoZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZyI+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLWNhcmQiPjxkaXYgY2xhc3M9ImJvb3QtbG9hZGluZy10ZXh0IiBzdHlsZT0iZm9udC1zaXplOjEuM2VtO21hcmdpbi1ib3R0b206MTJweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjhweCI+Jyt6KCJzaWduYWwiLHtzaXplOjIwLHN0cm9rZVdpZHRoOjEuOH0pKyc8c3Bhbj5cdTY1RTBcdTZDRDVcdThGREVcdTYzQTVcdTUyMzBcdTY3MERcdTUyQTFcdTU2Njg8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0iYm9vdC1sb2FkaW5nLXRleHQiIHN0eWxlPSJvcGFjaXR5OjAuNztmb250LXNpemU6MC45NWVtIj5cdThCRjdcdTY4QzBcdTY3RTVcdTdGNTFcdTdFRENcdThGREVcdTYzQTVcdTYyMTZcdTc4NkVcdThCQTQgV2FuZCBcdTY3MERcdTUyQTFcdTZCNjNcdTU3MjhcdThGRDBcdTg4NENcdTMwMDI8L2Rpdj48YnV0dG9uIG9uY2xpY2s9ImxvY2F0aW9uLnJlbG9hZCgpIiBzdHlsZT0ibWFyZ2luLXRvcDoxOHB4O3BhZGRpbmc6OHB4IDI0cHg7Ym9yZGVyLXJhZGl1czo4cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE1MCwxMTgsODUsMC4zKTtiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC44KTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6MC45NWVtIj5cdTkxQ0RcdThCRDU8L2J1dHRvbj48L2Rpdj48L2Rpdj4nKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigib25saW5lIixmdW5jdGlvbigpe2xvY2F0aW9uLnJlbG9hZCgpfSx7b25jZTohMH0pO3JldHVybn1adCgpfSl9ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGUpe2lmKCFOZSgpJiYhci5zaWRlYmFyUGlubmVkJiYhci5zaWRlYmFyQ29sbGFwc2VkJiZyLnNlc3Npb25zRHJhd2VyT3Blbil7dmFyIHQ9ZS50YXJnZXQ7IXR8fCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpfHx0LmNsb3Nlc3QoIiNzZXNzaW9ucy1kcmF3ZXIiKXx8dC5jbG9zZXN0KCIjc2Vzc2lvbnMtdG9nZ2xlLWJ1dHRvbiIpfHx0LmNsb3Nlc3QoIi5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZSIpfHx0LmNsb3Nlc3QoIi5zaWRlYmFyLXRpbGUtYnViYmxlIil8fHQuY2xvc2VzdCgiLm1vZGFsLWJhY2tkcm9wLCAubW9kYWwtb3ZlcmxheSwgLm1vZGFsLWNvbnRhaW5lciwgW3JvbGU9J2RpYWxvZyddLCBbcm9sZT0nbWVudSddLCAudG9wYmFyLW1vcmUtbWVudSwgLnNpZGViYXItaGVhZGVyLW92ZXJmbG93LCAuZm9sZGVyLXBpY2tlci1kcm9wZG93biwgLnBhdGgtc3VnZ2VzdGlvbnMsIC5wZXJtaXNzaW9uLXByb21wdC1vdmVybGF5LCAucmVzdGFydC1vdmVybGF5Iil8fG1tKCl9fSwhMCksZGYoKSx2ZigpO2Z1bmN0aW9uIFp0KGUpe3ZhciB0PWUmJmUuc2tpcFNoZWxsQ2hyb21lLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFwcCIpLGk9ci5jb25maWchPT1udWxsLGE9ci5tb2RhbE9wZW4sdT0haXx8ISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iik7aWYodSYmZ3IoKSxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgibm8tdHJhbnNpdGlvbiIpLHIuc2lkZWJhclBpbm5lZCYmIXIuc2lkZWJhckNvbGxhcHNlZCYmIU5lKCkmJihyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLCEwKSksbi5pbm5lckhUTUw9aT9oZigpOmdmKCksa3QoKSxjZigpLFRyKCksRGkoKSwkbihfdCgpKSxUaSgpLHR8fElyKCksaSYmci5maWxlUGFuZWxPcGVuJiZPdCgpLGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0LHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe2RvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKCJuby10cmFuc2l0aW9uIil9KSxhJiZyLm1vZGFsT3Blbil7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tbW9kYWwiKTtpZihzKXtzLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBvPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKTtvJiYoby52YWx1ZT1yLmN3ZFZhbHVlKSxTcigpfX1pZihpJiZyLnNlbGVjdGVkSWQmJnIuZ2l0U3RhdHVzU2Vzc2lvbklkIT09ci5zZWxlY3RlZElkJiZDbihyLnNlbGVjdGVkSWQpLGkpe3ZhciBsPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihjKXtyZXR1cm4gYy5pZD09PXIuc2VsZWN0ZWRJZH0pO3Z1KGwpfXFpKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b3BiYXItY3dkIikpLHFpKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0LWN3ZC1wYXRoIikpLHFpKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aCIpKX1mdW5jdGlvbiBtZigpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pLHQ9ZSYmZS5hcHByb3ZhbFN0YXRzO3JldHVybiF0fHx0LnRvdGFsPT09MD8nPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzIGhpZGRlbiIgaWQ9ImFwcHJvdmFsLXN0YXRzIj48L3NwYW4+JzonPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzIiBpZD0iYXBwcm92YWwtc3RhdHMiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1kaXZpZGVyIj48L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWJhZGdlIiBpZD0iYXBwcm92YWwtc3RhdHMtYmFkZ2UiIHRpdGxlPSJcdTY3MkNcdTZCMjFcdTRGMUFcdThCRERcdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTEiPjxzdmcgY2xhc3M9ImFwcHJvdmFsLXN0YXRzLWljb24iIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAyMnM4LTQgOC0xMFY1bC04LTMtOCAzdjdjMCA2IDggMTAgOCAxMHoiLz48L3N2Zz48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtdG90YWwiPicrdC50b3RhbCsnPC9zcGFuPjwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcG9wdXAiIGlkPSJhcHByb3ZhbC1zdGF0cy1wb3B1cCI+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXBvcHVwLXRpdGxlIj5cdTgxRUFcdTUyQThcdTYyNzlcdTUxQzZcdTdFREZcdThCQTE8L3NwYW4+JysodC5jb21tYW5kPjA/JzxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ciPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+Jyt6KCJ0ZXJtaW5hbCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0N0RcdTRFRTRcdTYyNjdcdTg4NEM8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LmNvbW1hbmQrIjwvc3Bhbj48L3NwYW4+IjoiIikrKHQuZmlsZT4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicreigiZWRpdCIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTY1ODdcdTRFRjZcdTUxOTlcdTUxNjU8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LmZpbGUrIjwvc3Bhbj48L3NwYW4+IjoiIikrKHQudG9vbD4wPyc8c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93Ij48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWljb24iPicreigid3JlbmNoIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWwiPlx1NTE3Nlx1NEVENlx1NURFNVx1NTE3Nzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWNvdW50Ij4nK3QudG9vbCsiPC9zcGFuPjwvc3Bhbj4iOiIiKSsnPHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdyBhcHByb3ZhbC1zdGF0cy1yb3ctdG90YWwiPjxzcGFuIGNsYXNzPSJhcHByb3ZhbC1zdGF0cy1yb3ctaWNvbiI+Jyt6KCJzaWdtYSIse3NpemU6MTIsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYXBwcm92YWwtc3RhdHMtcm93LWxhYmVsIj5cdTU0MDhcdThCQTE8L3NwYW4+PHNwYW4gY2xhc3M9ImFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudCI+Jyt0LnRvdGFsKyI8L3NwYW4+PC9zcGFuPjwvc3Bhbj48L3NwYW4+In1mdW5jdGlvbiBnZigpe3JldHVybiByLmxvZ2luQ2hlY2tlZD8nPGRpdiBjbGFzcz0ibG9naW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIj48ZGl2IGNsYXNzPSJsb2dpbi1oZWFkZXIiPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28iPjxkaXYgY2xhc3M9ImxvZ2luLWxvZ28taWNvbiI+VzwvZGl2PjxzcGFuIGNsYXNzPSJsb2dpbi1sb2dvLXRleHQiPldhbmQ8L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0ibG9naW4tc3VidGl0bGUiPlx1NTcyOFx1NkQ0Rlx1ODlDOFx1NTY2OFx1NEUyRFx1OEZEMFx1ODg0Q1x1NjcyQ1x1NjczQVx1N0VDOFx1N0FFRjwvZGl2PjwvZGl2Pjxmb3JtIGlkPSJsb2dpbi1mb3JtIiBjbGFzcz0ibG9naW4tYm9keSIgYXV0b2NvbXBsZXRlPSJvbiI+PGlucHV0IHR5cGU9InRleHQiIG5hbWU9InVzZXJuYW1lIiBhdXRvY29tcGxldGU9InVzZXJuYW1lIiB2YWx1ZT0id2FuZCIgdGFiaW5kZXg9Ii0xIiBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTk5OTlweDt3aWR0aDoxcHg7aGVpZ2h0OjFweDtvcGFjaXR5OjA7cG9pbnRlci1ldmVudHM6bm9uZSIgcmVhZG9ubHkgLz48cCBjbGFzcz0ibG9naW4taGludCI+XHU4RjkzXHU1MTY1IFdhbmQgXHU4QkJGXHU5NUVFXHU1QkM2XHU3ODAxXHU0RUU1XHU4RkRCXHU1MTY1XHU2M0E3XHU1MjM2XHU1M0YwXHUzMDAyPC9wPjxkaXYgY2xhc3M9ImZpZWxkIj48bGFiZWwgY2xhc3M9ImZpZWxkLWxhYmVsIiBmb3I9InBhc3N3b3JkIj5cdTVCQzZcdTc4MDE8L2xhYmVsPjxkaXYgY2xhc3M9InBhc3N3b3JkLWZpZWxkIj48aW5wdXQgaWQ9InBhc3N3b3JkIiB0eXBlPSJwYXNzd29yZCIgY2xhc3M9ImZpZWxkLWlucHV0IHBhc3N3b3JkLWlucHV0IiBwbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU4QkJGXHU5NUVFXHU1QkM2XHU3ODAxIiBhdXRvY29tcGxldGU9ImN1cnJlbnQtcGFzc3dvcmQiIGRhdGEtZXJyb3I9ImZhbHNlIiBhcmlhLWRlc2NyaWJlZGJ5PSJwYXNzd29yZC1oaW50IGxvZ2luLWVycm9yIiBhcmlhLWludmFsaWQ9ImZhbHNlIiAvPjxidXR0b24gaWQ9InRvZ2dsZS1wYXNzd29yZC1idXR0b24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InBhc3N3b3JkLXRvZ2dsZSIgYXJpYS1sYWJlbD0iXHU2NjNFXHU3OTNBXHU1QkM2XHU3ODAxIiBhcmlhLXByZXNzZWQ9ImZhbHNlIj5cdTY2M0VcdTc5M0E8L2J1dHRvbj48L2Rpdj48cCBpZD0icGFzc3dvcmQtaGludCIgY2xhc3M9ImhpbnQiPlx1NEY3Rlx1NzUyOFx1NEY2MFx1NTcyOCBXYW5kIFx1NEUyRFx1OEJCRVx1N0Y2RVx1NzY4NFx1OEJCRlx1OTVFRVx1NUJDNlx1NzgwMVx1MzAwMjwvcD48cCBpZD0ibG9naW4tZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiIgcm9sZT0iYWxlcnQiPjwvcD48L2Rpdj48ZGl2IGlkPSJsb2dpbi1jZXJ0LWhpbnQiIGNsYXNzPSJsb2dpbi1jZXJ0LWhpbnQgaGlkZGVuIiByb2xlPSJhbGVydCI+PGRpdiBjbGFzcz0ibG9naW4tY2VydC1oaW50LXRpdGxlIj5cdThCQzFcdTRFNjZcdTRFMERcdTUzRDdcdTRGRTFcdTRFRkJcdUZGMENcdTc2N0JcdTVGNTVcdTYwMDFcdTY1RTBcdTZDRDVcdTRGRERcdTVCNTg8L2Rpdj48cCBjbGFzcz0ibG9naW4tY2VydC1oaW50LWJvZHkiPlx1NUJDNlx1NzgwMVx1NjYyRlx1NUJGOVx1NzY4NFx1RkYwQ1x1NEY0Nlx1NUY1M1x1NTI0RCBIVFRQUyBcdThCQzFcdTRFNjZcdTRFMERcdTUzRDdcdTZENEZcdTg5QzhcdTU2NjhcdTRGRTFcdTRFRkJcdUZGMENcdTZENEZcdTg5QzhcdTU2NjhcdTU2RTBcdTZCNjRcdTYyRDJcdTdFRERcdTRGRERcdTVCNThcdTc2N0JcdTVGNTUgQ29va2llXHVGRjBDXHU2MjQwXHU0RUU1XHU4RkRCXHU0RTBEXHU0RTg2XHU2M0E3XHU1MjM2XHU1M0YwXHUzMDAyPGJyLz5cdTg5RTNcdTUxQjNcdTUyOUVcdTZDRDVcdUZGMDhcdTRFRkJcdTkwMDlcdTUxNzZcdTRFMDBcdUZGMDlcdUZGMUFcdTY1MzlcdTc1MjggSFRUUCBcdThCQkZcdTk1RUVcdTY3MkNcdTY3MERcdTUyQTFcdUZGMUJcdTYyMTZcdTYyOEFcdTY3MkNcdTY3MERcdTUyQTFcdThCQzFcdTRFNjZcdThCQkVcdTRFM0FcdTMwMENcdTUzRDdcdTRGRTFcdTRFRkJcdTMwMERcdUZGMDhcdTYzQThcdTgzNTAgbWtjZXJ0XHVGRjA5XHVGRjFCXHU2MjE2XHU1NzI4XHU2NzJDXHU2NzNBXHU1QzA2XHU4QkU1XHU4MUVBXHU3QjdFXHU4QkMxXHU0RTY2XHU4QkJFXHU0RTNBXHU1QjhDXHU1MTY4XHU0RkUxXHU0RUZCXHU1NDBFXHU5MUNEXHU4QkQ1XHUzMDAyPC9wPjxhIGlkPSJsb2dpbi1jZXJ0LWh0dHAtbGluayIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWJsb2NrIiBocmVmPSIjIiByZWw9Im5vb3BlbmVyIj5cdTY1MzlcdTc1MjggSFRUUCBcdThCQkZcdTk1RUU8L2E+PC9kaXY+PGJ1dHRvbiBpZD0ibG9naW4tYnV0dG9uIiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLXByaW1hcnkgYnRuLWJsb2NrIj5cdThGREJcdTUxNjVcdTYzQTdcdTUyMzZcdTUzRjA8L2J1dHRvbj4nKyhRYSgpPyc8YnV0dG9uIGlkPSJsb2dpbi1zd2l0Y2gtc2VydmVyLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWJsb2NrIGxvZ2luLXN3aXRjaC1zZXJ2ZXIiIHR5cGU9ImJ1dHRvbiI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48cmVjdCB4PSIyIiB5PSIxMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSI3IiB4Mj0iNi4wMSIgeTI9IjciLz48bGluZSB4MT0iNiIgeTE9IjE3IiB4Mj0iNi4wMSIgeTI9IjE3Ii8+PC9zdmc+PHNwYW4+XHU1MjA3XHU2MzYyXHU2NzBEXHU1MkExXHU1NjY4PC9zcGFuPjwvYnV0dG9uPic6IiIpKyI8L2Zvcm0+PC9kaXY+PC9kaXY+IjonPGRpdiBjbGFzcz0ibG9naW4tY29udGFpbmVyIj48ZGl2IGNsYXNzPSJsb2dpbi1jYXJkIGxvZ2luLWNhcmQtbG9hZGluZyI+PGRpdiBjbGFzcz0ibG9naW4taGVhZGVyIj48ZGl2IGNsYXNzPSJsb2dpbi1sb2dvIj48ZGl2IGNsYXNzPSJsb2dpbi1sb2dvLWljb24iPlc8L2Rpdj48c3BhbiBjbGFzcz0ibG9naW4tbG9nby10ZXh0Ij5XYW5kPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImxvZ2luLXN1YnRpdGxlIj5cdTZCNjNcdTU3MjhcdTYwNjJcdTU5MERcdTc2N0JcdTVGNTVcdTcyQjZcdTYwMDE8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJsb2dpbi1ib2R5Ij48ZGl2IGNsYXNzPSJsb2dpbi1zdGF0dXMiPjxzcGFuIGNsYXNzPSJsb2dpbi1zcGlubmVyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjxkaXY+PHAgY2xhc3M9ImxvZ2luLWhpbnQiPlx1NkI2M1x1NTcyOFx1NjhDMFx1NjdFNVx1NjcyQ1x1NTczMFx1NzY3Qlx1NUY1NVx1NEYxQVx1OEJERFx1RkYwQ1x1OEJGN1x1N0EwRFx1NTAxOVx1MzAwMjwvcD48cCBjbGFzcz0ibG9naW4tbXV0ZWQiPlx1NTk4Mlx1Njc5Q1x1NEY2MFx1NTIxQVx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mlx1RkYwQ1x1OEZEOVx1NjYyRlx1NkI2M1x1NUUzOFx1NzNCMFx1OEM2MVx1MzAwMjwvcD48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4nfWZ1bmN0aW9uIGhmKCl7dmFyIGU9IjxcL3NjcmlwdD4iLHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGcpe3JldHVybiBnLmlkPT09ci5zZWxlY3RlZElkfSksbj10P1luKHQuY29tbWFuZCk6Ilx1NjcyQVx1OTAwOVx1NjJFOVx1NEYxQVx1OEJERCIsaT10P3QubW9kZSsiIHwgIit0LnN0YXR1czoiXHU3MEI5XHU1MUZCXHU0RTBBXHU2NUI5XHUzMDBDXHU2NUIwXHU1QkY5XHU4QkREXHUzMDBEXHU1RjAwXHU1OUNCIixhPXIuc2VsZWN0ZWRJZCYmci5kcmFmdHNbci5zZWxlY3RlZElkXXx8IiIsdT1yLnNlc3Npb25zRHJhd2VyT3Blbj8iIG9wZW4iOiIiLHM9THUoKT8iIG9wZW4iOiIiLG89UXYoKSxsPXh0KG8sci5jaGF0TW9kZSksYz1OZSgpLGY9ISFyLnNpZGViYXJQaW5uZWQmJiEhci5zaWRlYmFyQ29sbGFwc2VkLGQ9Znx8IWMmJighIXIuc2lkZWJhclBpbm5lZHx8ISFyLnNlc3Npb25zRHJhd2VyT3Blbiksdj1mPyIgc2lkZWJhci1jb2xsYXBzZWQiOiIiLGg9Zj8iIGNvbGxhcHNlZCI6IiI7cmV0dXJuJzxkaXYgY2xhc3M9ImFwcC1jb250YWluZXIiPjxkaXYgaWQ9InNlc3Npb25zLWRyYXdlci1iYWNrZHJvcCIgY2xhc3M9ImRyYXdlci1iYWNrZHJvcCcrcysnIj48L2Rpdj48ZGl2IGNsYXNzPSJtYWluLWxheW91dCcrKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPyIgc2lkZWJhci1vcGVuIjoiIikrKGQ/IiBzaWRlYmFyLXBpbm5lZCI6IiIpK3YrJyI+PGFzaWRlIGlkPSJzZXNzaW9ucy1kcmF3ZXIiIGNsYXNzPSJzaWRlYmFyJyt1KyhkPyIgcGlubmVkIjoiIikraCsnIj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlciI+PGRpdiBjbGFzcz0ic2lkZWJhci1oZWFkZXItbWFpbiI+PGRpdiBjbGFzcz0idG9wYmFyLWxvZ28taWNvbiI+VzwvZGl2PjxzcGFuIGNsYXNzPSJzaWRlYmFyLXRpdGxlIj5cdTRGMUFcdThCREQ8L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tY291bnQiIGlkPSJzZXNzaW9uLWNvdW50Ij4nK1N0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1hY3Rpb25zIj48ZGl2IGNsYXNzPSJzaWRlYmFyLWhlYWRlci1tb3JlIj48YnV0dG9uIGlkPSJzaWRlYmFyLW1vcmUtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjZGNFx1NTkxQVx1NjRDRFx1NEY1QyI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48Y2lyY2xlIGN4PSIxMiIgY3k9IjUiIHI9IjEuNSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEuNSIvPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTkiIHI9IjEuNSIvPjwvc3ZnPjwvYnV0dG9uPjxkaXYgY2xhc3M9InNpZGViYXItaGVhZGVyLW92ZXJmbG93IiBpZD0ic2lkZWJhci1vdmVyZmxvdy1tZW51Ij48YnV0dG9uIGNsYXNzPSJvdmVyZmxvdy1pdGVtIiBpZD0ic2lkZWJhci1ob21lLWJ0biIgdHlwZT0iYnV0dG9uIj48c3ZnIHdpZHRoPSIxNSIgaGVpZ2h0PSIxNSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0zIDlsOS03IDkgN3YxMWEyIDIgMCAwIDEtMiAySDVhMiAyIDAgMCAxLTItMnoiLz48cG9seWxpbmUgcG9pbnRzPSI5IDIyIDkgMTIgMTUgMTIgMTUgMjIiLz48L3N2Zz48c3Bhbj5cdTU2REVcdTUyMzBcdTk5OTZcdTk4NzU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0ib3ZlcmZsb3ctaXRlbSIgaWQ9InNpZGViYXItcmVmcmVzaC1idG4iIHR5cGU9ImJ1dHRvbiI+PHN2ZyB3aWR0aD0iMTUiIGhlaWdodD0iMTUiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cG9seWxpbmUgcG9pbnRzPSIyMyA0IDIzIDEwIDE3IDEwIi8+PHBhdGggZD0iTTIwLjQ5IDE1YTkgOSAwIDEgMS0yLjEyLTkuMzZMMjMgMTAiLz48L3N2Zz48c3Bhbj5cdTUyMzdcdTY1QjBcdTk4NzVcdTk3NjI8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PGJ1dHRvbiBpZD0ic2lkZWJhci1waW4tYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1waW4tdG9nZ2xlJysoci5zaWRlYmFyUGlubmVkPyIgcGlubmVkIjoiIikrJyIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iJysoci5zaWRlYmFyUGlubmVkPyJcdTVERjJcdTU2RkFcdTVCOUFcdTVFMzhcdTlBN0JcdUZGMDhcdTcwQjlcdTUxRkJcdTg5RTNcdTk2NjRcdTk1MDFcdTVCOUFcdUZGMDkiOiJcdTU2RkFcdTVCOUFcdTRGQTdcdTY4MEZcdTVFMzhcdTlBN0IiKSsnIiBhcmlhLWxhYmVsPSInKyhyLnNpZGViYXJQaW5uZWQ/Ilx1ODlFM1x1OTY2NFx1NTZGQVx1NUI5QVx1NUUzOFx1OUE3QiI6Ilx1NTZGQVx1NUI5QVx1NEZBN1x1NjgwRlx1NUUzOFx1OUE3QiIpKyciIGFyaWEtcHJlc3NlZD0iJysoci5zaWRlYmFyUGlubmVkPyJ0cnVlIjoiZmFsc2UiKSsnIj48c3ZnIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iMTIiIHkxPSIxNyIgeDI9IjEyIiB5Mj0iMjIiLz48cGF0aCBkPSJNNSAxN2gxNHYtMS43NmEyIDIgMCAwIDAtMS4xMS0xLjc5bC0xLjc4LS45QTIgMiAwIDAgMSAxNSAxMC43NlY2aDFhMiAyIDAgMCAwIDAtNEg4YTIgMiAwIDAgMCAwIDRoMXY0Ljc2YTIgMiAwIDAgMS0xLjExIDEuNzlsLTEuNzguOUEyIDIgMCAwIDAgNSAxNS4yNHoiLz48L3N2Zz48L2J1dHRvbj48YnV0dG9uIGlkPSJzaWRlYmFyLWNvbGxhcHNlLWJ0biIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItY29sbGFwc2UtdG9nZ2xlJysoZj8iIGNvbGxhcHNlZCI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9IicrKGY/Ilx1NUM1NVx1NUYwMFx1NEUzQVx1NTE2OFx1NUMzQVx1NUJGOCI6Ilx1NjUzNlx1OEQ3N1x1NEUzQVx1N0E4NFx1Njc2MSIpKyciIGFyaWEtbGFiZWw9IicrKGY/Ilx1NUM1NVx1NUYwMFx1NEUzQVx1NTE2OFx1NUMzQVx1NUJGOCI6Ilx1NjUzNlx1OEQ3N1x1NEUzQVx1N0E4NFx1Njc2MSIpKyciPicrKGY/Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBvbHlsaW5lIHBvaW50cz0iMTAgNiAxNiAxMiAxMCAxOCIvPjxsaW5lIHgxPSIyMCIgeTE9IjUiIHgyPSIyMCIgeTI9IjE5Ii8+PC9zdmc+JzonPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxNCA2IDggMTIgMTQgMTgiLz48bGluZSB4MT0iNCIgeTE9IjUiIHgyPSI0IiB5Mj0iMTkiLz48L3N2Zz4nKSsnPC9idXR0b24+PGJ1dHRvbiBpZD0iY2xvc2UtZHJhd2VyLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gc2lkZWJhci1jbG9zZSBkcmF3ZXItY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRFx1ODNEQ1x1NTM1NSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXItYm9keSI+PGRpdiBpZD0ic2Vzc2lvbnMtcGFuZWwiPjxkaXYgY2xhc3M9InNlc3Npb25zLWxpc3QiIGlkPSJzZXNzaW9ucy1saXN0Ij4nK3RhKCkrJzwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InNpZGViYXItZm9vdGVyIj48YnV0dG9uIGlkPSJkcmF3ZXItbmV3LXNlc3Npb24tYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5IGJ0bi1ibG9jayI+PHNwYW4+Kzwvc3Bhbj4gXHU2NUIwXHU0RjFBXHU4QkREPC9idXR0b24+PGRpdiBjbGFzcz0ic2lkZWJhci1mb290ZXItYWN0aW9ucyI+PGJ1dHRvbiBpZD0iZmlsZS1wYW5lbC10b2dnbGUtYnRuIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20nKyhyLmZpbGVQYW5lbE9wZW4/IiBhY3RpdmUiOiIiKSsnIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTY3RTVcdTc3MEJcdTY1ODdcdTRFRjYiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTIyIDE5YTIgMiAwIDAgMS0yIDJINGEyIDIgMCAwIDEtMi0yVjVhMiAyIDAgMCAxIDItMmg1bDIgM2g5YTIgMiAwIDAgMSAyIDJ6Ii8+PC9zdmc+PHNwYW4+XHU2NTg3XHU0RUY2PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gaWQ9InNldHRpbmdzLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdThCQkVcdTdGNkUiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMyIvPjxwYXRoIGQ9Ik0xOS40IDE1YTEuNjUgMS42NSAwIDAgMCAuMzMgMS44MmwuMDYuMDZhMiAyIDAgMCAxLTIuODMgMi44M2wtLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAtMS44Mi0uMzMgMS42NSAxLjY1IDAgMCAwLTEgMS41MVYyMWEyIDIgMCAwIDEtNCAwdi0uMDlBMS42NSAxLjY1IDAgMCAwIDkgMTkuNGExLjY1IDEuNjUgMCAwIDAtMS44Mi4zM2wtLjA2LjA2YTIgMiAwIDAgMS0yLjgzLTIuODNsLjA2LS4wNkExLjY1IDEuNjUgMCAwIDAgNC42OCAxNWExLjY1IDEuNjUgMCAwIDAtMS41MS0xSDNhMiAyIDAgMCAxIDAtNGguMDlBMS42NSAxLjY1IDAgMCAwIDQuNiA5YTEuNjUgMS42NSAwIDAgMC0uMzMtMS44MmwtLjA2LS4wNmEyIDIgMCAwIDEgMi44My0yLjgzbC4wNi4wNkExLjY1IDEuNjUgMCAwIDAgOSA0LjY4YTEuNjUgMS42NSAwIDAgMCAxLTEuNTFWM2EyIDIgMCAwIDEgNCAwdi4wOWExLjY1IDEuNjUgMCAwIDAgMSAxLjUxIDEuNjUgMS42NSAwIDAgMCAxLjgyLS4zM2wuMDYtLjA2YTIgMiAwIDAgMSAyLjgzIDIuODNsLS4wNi4wNkExLjY1IDEuNjUgMCAwIDAgMTkuNCA5YTEuNjUgMS42NSAwIDAgMCAxLjUxIDFIMjFhMiAyIDAgMCAxIDAgNGgtLjA5YTEuNjUgMS42NSAwIDAgMC0xLjUxIDF6Ii8+PC9zdmc+PHNwYW4+XHU4QkJFXHU3RjZFPC9zcGFuPjwvYnV0dG9uPicrKEd2KCk/JzxidXR0b24gaWQ9ImJhY2stdG8tbmF0aXZlLWJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLXNtIHNpZGViYXItYmFjay10by1uYXRpdmUiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OEZENFx1NTZERSBBcHAgXHU1MzlGXHU3NTFGXHU3NTRDXHU5NzYyIj48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxyZWN0IHg9IjEwIiB5PSIzIiB3aWR0aD0iMTEiIGhlaWdodD0iMTgiIHJ4PSIyIi8+PGxpbmUgeDE9IjE0IiB5MT0iMTciIHgyPSIxNyIgeTI9IjE3Ii8+PHBvbHlsaW5lIHBvaW50cz0iNyA4IDMgMTIgNyAxNiIvPjwvc3ZnPjxzcGFuPlx1OEZENFx1NTZERUFwcDwvc3Bhbj48L2J1dHRvbj4nOiIiKSsoUWEoKT8nPGJ1dHRvbiBpZD0ic3dpdGNoLXNlcnZlci1idXR0b24iIGNsYXNzPSJidG4gYnRuLWdob3N0IGJ0bi1zbSBzaWRlYmFyLXN3aXRjaC1zZXJ2ZXIiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIwN1x1NjM2Mlx1NjcwRFx1NTJBMVx1NTY2OCI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cmVjdCB4PSIyIiB5PSIzIiB3aWR0aD0iMjAiIGhlaWdodD0iOCIgcng9IjIiLz48cmVjdCB4PSIyIiB5PSIxMyIgd2lkdGg9IjIwIiBoZWlnaHQ9IjgiIHJ4PSIyIi8+PGxpbmUgeDE9IjYiIHkxPSI3IiB4Mj0iNi4wMSIgeTI9IjciLz48bGluZSB4MT0iNiIgeTE9IjE3IiB4Mj0iNi4wMSIgeTI9IjE3Ii8+PC9zdmc+PHNwYW4+XHU1MjA3XHU2MzYyPC9zcGFuPjwvYnV0dG9uPic6IiIpKyc8YnV0dG9uIGlkPSJsb2dvdXQtYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4tc20gc2lkZWJhci1sb2dvdXQiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OTAwMFx1NTFGQVx1NzY3Qlx1NUY1NSI+PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIj48cGF0aCBkPSJNOSAyMUg1YTIgMiAwIDAgMS0yLTJWNWEyIDIgMCAwIDEgMi0yaDQiLz48cG9seWxpbmUgcG9pbnRzPSIxNiAxNyAyMSAxMiAxNiA3Ii8+PGxpbmUgeDE9IjIxIiB5MT0iMTIiIHgyPSI5IiB5Mj0iMTIiLz48L3N2Zz48c3Bhbj5cdTkwMDBcdTUxRkE8L3NwYW4+PC9idXR0b24+PC9kaXY+PC9kaXY+PC9hc2lkZT48bWFpbiBjbGFzcz0ibWFpbi1jb250ZW50Ij48ZGl2IGNsYXNzPSJtYWluLWhlYWRlci1yb3ciPjxkaXYgY2xhc3M9InRvcGJhci1sZWZ0Ij48YnV0dG9uIGlkPSJzZXNzaW9ucy10b2dnbGUtYnV0dG9uIiBjbGFzcz0iZmxvYXRpbmctc2lkZWJhci10b2dnbGUnKyhyLnNlc3Npb25zRHJhd2VyT3Blbj8iIGFjdGl2ZSI6IiIpKyciIGFyaWEtbGFiZWw9Ilx1NTIwN1x1NjM2Mlx1NEYxQVx1OEJERFx1NEZBN1x1NjgwRiIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0iaGFtYnVyZ2VyLWljb24iPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvc3Bhbj48L2J1dHRvbj48c3BhbiBjbGFzcz0idG9wYmFyLWJyYW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+Vzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ0b3BiYXItY2VudGVyIj4nKyh0Pyc8c3BhbiBjbGFzcz0idG9wYmFyLXNlc3Npb24tdGl0bGUiIHRpdGxlPSInK3AodC5kZXNjcmlwdGlvbnx8dC5jb21tYW5kfHwiIikrJyI+JytwKHQudGl0bGV8fFluKHQuY29tbWFuZCkpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tc3RhdHVzLXBpbGwgJytycyh0KSsnIiB0aXRsZT0iJytwKGNyKHQpKSsnIj48c3BhbiBjbGFzcz0ic2Vzc2lvbi1zdGF0dXMtZG90Ij48L3NwYW4+PHNwYW4gY2xhc3M9InNlc3Npb24tc3RhdHVzLXRleHQiPicrcChjcih0KSkrJzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImN1cnJlbnQtdGFzayBoaWRkZW4iIGlkPSJjdXJyZW50LXRhc2siPjwvc3Bhbj4nKyh0LmN3ZD8nPHNwYW4gY2xhc3M9InRvcGJhci1jd2QiIGlkPSJ0b3BiYXItY3dkIiB0aXRsZT0iJytwKHQuY3dkKSsnIiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIj4nK3AodC5jd2QpKyI8L3NwYW4+IjoiIik6JzxzcGFuIGNsYXNzPSJ0b3BiYXItdGFnbGluZSI+V2FuZCBcdTYzQTdcdTUyMzZcdTUzRjA8L3NwYW4+PHNwYW4gY2xhc3M9ImN1cnJlbnQtdGFzayBoaWRkZW4iIGlkPSJjdXJyZW50LXRhc2siPjwvc3Bhbj4nKSsnPC9kaXY+PGRpdiBjbGFzcz0idG9wYmFyLXJpZ2h0Ij48YnV0dG9uIGlkPSJ0b3BiYXItZmlsZS1idXR0b24iIGNsYXNzPSJ0b3BiYXItYnRuIHNxdWFyZScrKHIuZmlsZVBhbmVsT3Blbj8iIGFjdGl2ZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU2NTg3XHU0RUY2IiB0aXRsZT0iXHU2N0U1XHU3NzBCXHU2NTg3XHU0RUY2XHVGRjA4XHU1M0VGXHU0RkVFXHU2NTM5XHU4REVGXHU1Rjg0XHVGRjA5Ij48c3ZnIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0yMiAxOWEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY1YTIgMiAwIDAgMSAyLTJoNWwyIDNoOWEyIDIgMCAwIDEgMiAyeiIvPjwvc3ZnPjwvYnV0dG9uPjxzcGFuIGlkPSJ0b3BiYXItZ2l0LXNsb3QiIGNsYXNzPSJ0b3BiYXItZ2l0LXNsb3QiPicrUXUoKSsiPC9zcGFuPiIrKHQ/Q2ModCk6IiIpKyc8L2Rpdj48L2Rpdj48ZGl2IGlkPSJmaWxlLXBhbmVsLWJhY2tkcm9wIiBjbGFzcz0iZmlsZS1wYW5lbC1iYWNrZHJvcCcrKHIuZmlsZVBhbmVsT3Blbj8iIG9wZW4iOiIiKSsnIj48L2Rpdj48ZGl2IGlkPSJmaWxlLXNpZGUtcGFuZWwiIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwnKyhyLmZpbGVQYW5lbE9wZW4/IiBvcGVuIjoiIikrJyI+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWhlYWRlciI+PGRpdiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLXRpdGxlLWdyb3VwIj48c3BhbiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWljb24iPicrTWUoImZvbGRlci1vcGVuIix7c2l6ZToxNn0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC10aXRsZSI+XHU2NTg3XHU0RUY2PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1oZWFkZXItYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0iZmlsZS1zaWRlLXBhbmVsLWljb25idG4iIGlkPSJmaWxlLWV4cGxvcmVyLXJlZnJlc2giIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIzN1x1NjVCMCIgYXJpYS1sYWJlbD0iXHU1MjM3XHU2NUIwXHU2NTg3XHU0RUY2XHU1MjE3XHU4ODY4Ij4nK01lKCJyZWZyZXNoIix7c2l6ZToxNX0pKyc8L2J1dHRvbj48YnV0dG9uIGlkPSJmaWxlLXNpZGUtcGFuZWwtY2xvc2UiIGNsYXNzPSJmaWxlLXNpZGUtcGFuZWwtaWNvbmJ0biBjbG9zZSIgdHlwZT0iYnV0dG9uIiBhcmlhLWxhYmVsPSJcdTUxNzNcdTk1RURcdTY1ODdcdTRFRjZcdTk3NjJcdTY3N0YiIHRpdGxlPSJcdTUxNzNcdTk1RUQiPicrTWUoIngiLHtzaXplOjE2fSkrJzwvYnV0dG9uPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2lkZS1wYW5lbC1ib2R5Ij48ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyLWhlYWRlciI+PGJ1dHRvbiBjbGFzcz0iZmlsZS1leHBsb3Jlci11cCIgaWQ9ImZpbGUtZXhwbG9yZXItdXAiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1OEZENFx1NTZERVx1NEUwQVx1N0VBN1x1NzZFRVx1NUY1NSIgYXJpYS1sYWJlbD0iXHU4RkQ0XHU1NkRFXHU0RTBBXHU3RUE3XHU3NkVFXHU1RjU1Ij4nK01lKCJhcnJvdy11cCIse3NpemU6MTV9KSsnPC9idXR0b24+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmaWxlLWV4cGxvcmVyLXBhdGgiIGlkPSJmaWxlLWV4cGxvcmVyLWN3ZCIgdmFsdWU9IicrcCh0JiZ0LmN3ZD90LmN3ZDphbigpKSsnIiB0aXRsZT0iJytwKHQmJnQuY3dkP3QuY3dkOmFuKCkpKyciIHBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdThERUZcdTVGODRcdTVFNzZcdTU2REVcdThGNjYuLi4iIHNwZWxsY2hlY2s9ImZhbHNlIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXJpYS1sYWJlbD0iXHU1RjUzXHU1MjREXHU4REVGXHU1Rjg0XHVGRjBDXHU1M0VGXHU3NkY0XHU2M0E1XHU0RkVFXHU2NTM5XHU1NDBFXHU1NkRFXHU4RjY2IiAvPjwvZGl2PjxkaXYgY2xhc3M9ImZpbGUtc2VhcmNoLWJveCI+PHNwYW4gY2xhc3M9ImZpbGUtc2VhcmNoLWljb24iPicrTWUoInNlYXJjaCIse3NpemU6MTR9KSsnPC9zcGFuPjxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZmlsZS1zZWFyY2gtaW5wdXQiIGNsYXNzPSJmaWxlLXNlYXJjaC1pbnB1dCIgcGxhY2Vob2xkZXI9Ilx1NjQxQ1x1N0QyMlx1NUY1M1x1NTI0RFx1NzZFRVx1NUY1NVx1MjAyNiIgYXV0b2NvbXBsZXRlPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jYXBpdGFsaXplPSJvZmYiIHNwZWxsY2hlY2s9ImZhbHNlIiAvPjxidXR0b24gY2xhc3M9ImZpbGUtc2VhcmNoLWNsZWFyIiBpZD0iZmlsZS1zZWFyY2gtY2xlYXIiIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU2RTA1XHU5NjY0XHU2NDFDXHU3RDIyIiB0aXRsZT0iXHU2RTA1XHU5NjY0Ij4nK01lKCJ4Iix7c2l6ZToxM30pKyc8L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJmaWxlLWV4cGxvcmVyIiBpZD0iZmlsZS1leHBsb3JlciI+JytzYyh0JiZ0LmN3ZD90LmN3ZDphbigpKSsnPC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBpZD0ib3V0cHV0IiBjbGFzcz0idGVybWluYWwtY29udGFpbmVyJysoci5zZWxlY3RlZElkPyIiOiIgaGlkZGVuIikrJyBhY3RpdmUiPjxkaXYgY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXkiIGFyaWEtbGFiZWw9Ilx1N0VDOFx1N0FFRlx1N0YyOVx1NjUzRVx1NjNBN1x1NEVGNiI+PGJ1dHRvbiBpZD0idGVybWluYWwtc2NhbGUtZG93bi10b3AiIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0biB0ZXJtaW5hbC1zY2FsZS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1N0YyOVx1NUMwRiI+XHUyMjEyPC9idXR0b24+PHNwYW4gY2xhc3M9InRlcm1pbmFsLXNjYWxlLW92ZXJsYXktbGFiZWwgdGVybWluYWwtc2NhbGUtbGFiZWwiIGlkPSJ0ZXJtaW5hbC1zY2FsZS1sYWJlbC10b3AiPicrTWF0aC5yb3VuZChyLnRlcm1pbmFsU2NhbGUqMTAwKSsnJTwvc3Bhbj48YnV0dG9uIGlkPSJ0ZXJtaW5hbC1zY2FsZS11cC10b3AiIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0biB0ZXJtaW5hbC1zY2FsZS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NjUzRVx1NTkyNyI+KzwvYnV0dG9uPjxzcGFuIGNsYXNzPSJ0ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWRpdmlkZXIiPjwvc3Bhbj48YnV0dG9uIGlkPSJwYWdlLXJlZnJlc2gtYnRuIiBjbGFzcz0idGVybWluYWwtc2NhbGUtb3ZlcmxheS1idG4iIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2MiI+XHUyMUJCPC9idXR0b24+PC9kaXY+PGJ1dHRvbiBpZD0idGVybWluYWwtanVtcC1ib3R0b20iIGNsYXNzPSJ0ZXJtaW5hbC1qdW1wLWJvdHRvbScrKHIuc2hvd1Rlcm1pbmFsSnVtcFRvQm90dG9tPyIgdmlzaWJsZSI6IiIpKyciIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTZERVx1NTIzMFx1NUU5NVx1OTBFOCIgYXJpYS1sYWJlbD0iXHU1NkRFXHU1MjMwXHU1RTk1XHU5MEU4Ij48c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNOCAzLjV2OU0zLjUgOGw0LjUgNC41TDEyLjUgOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgaWQ9ImNoYXQtb3V0cHV0IiBjbGFzcz0iY2hhdC1jb250YWluZXIgaGlkZGVuIj48ZGl2IGlkPSJjaGF0LWZvbGQtYmFyIiBjbGFzcz0iY2hhdC1mb2xkLWJhciBoaWRkZW4iIGFyaWEtbGl2ZT0icG9saXRlIj48L2Rpdj48YnV0dG9uIGlkPSJjaGF0LXVucmVhZC1idWJibGUiIGNsYXNzPSJjaGF0LXVucmVhZC1idWJibGUiIHR5cGU9ImJ1dHRvbiIgdGl0bGU9Ilx1NTZERVx1NTIzMFx1NjcwMFx1NjVCMFx1NkQ4OFx1NjA2RiIgYXJpYS1sYWJlbD0iXHU1NkRFXHU1MjMwXHU2NzAwXHU2NUIwXHU2RDg4XHU2MDZGIj48c3BhbiBjbGFzcz0iY2hhdC11bnJlYWQtYnViYmxlLWljb24iPjxzdmcgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik04IDMuNXY5TTMuNSA4bDQuNSA0LjVMMTIuNSA4Ii8+PC9zdmc+PC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LXVucmVhZC1idWJibGUtY291bnQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PC9idXR0b24+PC9kaXY+PGRpdiBpZD0iYmxhbmstY2hhdCIgY2xhc3M9ImJsYW5rLWNoYXQnKyhyLnNlbGVjdGVkSWQ/IiBoaWRkZW4iOiIiKSsnIj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWlubmVyIj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWxvZ28iPlc8L2Rpdj48aDIgY2xhc3M9ImJsYW5rLWNoYXQtdGl0bGUiPldhbmQ8L2gyPjxwIGNsYXNzPSJibGFuay1jaGF0LXN1YnRpdGxlIj5cdTY1MkZcdTYzMDFcdTdFQzhcdTdBRUYgUFRZIFx1NEYxQVx1OEJERFx1NEUwRVx1N0VEM1x1Njc4NFx1NTMxNiBjaGF0IFx1NEYxQVx1OEJERFx1RkYwQ1x1NEUyNFx1NzlDRFx1NkEyMVx1NUYwRlx1NTNFRlx1NUU3Nlx1NUI1OFx1MzAwMjwvcD48ZGl2IGNsYXNzPSJibGFuay1jaGF0LXRvb2xzIj48YnV0dG9uIGNsYXNzPSJibGFuay1jaGF0LXRvb2wtYnRuIiBpZD0id2VsY29tZS10b29sLWNsYXVkZSIgdHlwZT0iYnV0dG9uIj48c3BhbiBjbGFzcz0idG9vbC1pY29uIj4nK3ooInRlcm1pbmFsIix7c2l6ZToxNixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPlx1NjVCMFx1NUVGQVx1N0VDOFx1N0FFRlx1NEYxQVx1OEJERDwvYnV0dG9uPjxidXR0b24gY2xhc3M9ImJsYW5rLWNoYXQtdG9vbC1idG4iIGlkPSJ3ZWxjb21lLXRvb2wtY29kZXgiIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InRvb2wtaWNvbiB0b29sLWljb24tdGV4dCI+XHUyMzE4PC9zcGFuPlx1NjVCMFx1NUVGQSBDb2RleCBcdTRGMUFcdThCREQ8L2J1dHRvbj48YnV0dG9uIGNsYXNzPSJibGFuay1jaGF0LXRvb2wtYnRuIiBpZD0id2VsY29tZS10b29sLXN0cnVjdHVyZWQiIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InRvb2wtaWNvbiI+Jyt6KCJjaGF0Iix7c2l6ZToxNixzdHJva2VXaWR0aDoxLjh9KSsnPC9zcGFuPlx1NjVCMFx1NUVGQVx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERDwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLXdyYXAiPjxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkIiBpZD0iYmxhbmstY2hhdC1jd2QiIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIHRpdGxlPSJcdTcwQjlcdTUxRkJcdTUyMDdcdTYzNjJcdTVERTVcdTRGNUNcdTc2RUVcdTVGNTUiPjxzcGFuIGNsYXNzPSJibGFuay1jaGF0LWN3ZC1pY29uIj4nK3ooImZvbGRlciIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44fSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0iYmxhbmstY2hhdC1jd2QtcGF0aCIgaWQ9ImJsYW5rLWNoYXQtY3dkLXBhdGgiPicrcChldCgpKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJibGFuay1jaGF0LWN3ZC1hcnJvdyIgaWQ9ImJsYW5rLWNoYXQtY3dkLWFycm93Ij4nK3ooImNoZXZyb25Eb3duIix7c2l6ZToxMSxzdHJva2VXaWR0aDoyfSkrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZC1kcm9wZG93biBoaWRkZW4iIGlkPSJibGFuay1jaGF0LWN3ZC1kcm9wZG93biI+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iaW5wdXQtcGFuZWwnKyhyLnNlbGVjdGVkSWQ/IiI6IiBoaWRkZW4iKSsnIj48ZGl2IGNsYXNzPSJjb21wb3Nlci10b3Atcm93Ij48ZGl2IGlkPSJ0b2RvLXByb2dyZXNzIiBjbGFzcz0idG9kby1wcm9ncmVzcyBoaWRkZW4iPjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtaGVhZGVyIiBpZD0idG9kby1wcm9ncmVzcy10b2dnbGUiPjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtZmlsbCIgaWQ9InRvZG8tcHJvZ3Jlc3MtZmlsbCIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSItLXByb2dyZXNzOjAiPjwvZGl2PjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtbGVmdCI+PHNwYW4gY2xhc3M9InRvZG8tcHJvZ3Jlc3MtcmluZyIgaWQ9InRvZG8tcHJvZ3Jlc3MtcmluZyIgYXJpYS1oaWRkZW49InRydWUiIHN0eWxlPSItLXByb2dyZXNzOjAiPjxzdmcgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMzYgMzYiPjxjaXJjbGUgY2xhc3M9InRvZG8tcmluZy10cmFjayIgY3g9IjE4IiBjeT0iMTgiIHI9IjE1LjUiIGZpbGw9Im5vbmUiIHN0cm9rZS13aWR0aD0iNCIvPjxjaXJjbGUgY2xhc3M9InRvZG8tcmluZy1maWxsIiBjeD0iMTgiIGN5PSIxOCIgcj0iMTUuNSIgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbGluZWNhcD0icm91bmQiLz48L3N2Zz48L3NwYW4+PHNwYW4gY2xhc3M9InRvZG8tcHJvZ3Jlc3MtY291bnRlciIgaWQ9InRvZG8tcHJvZ3Jlc3MtY291bnRlciI+PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtdGFzay13cmFwIj48c3BhbiBjbGFzcz0idG9kby1wcm9ncmVzcy10YXNrIiBpZD0idG9kby1wcm9ncmVzcy10YXNrIj48L3NwYW4+PC9kaXY+PHN2ZyBjbGFzcz0idG9kby1wcm9ncmVzcy1jaGV2cm9uIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSI2IDE1IDEyIDkgMTggMTUiLz48L3N2Zz48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ0b2RvLXByb2dyZXNzLWJvZHkgaGlkZGVuIiBpZD0idG9kby1wcm9ncmVzcy1ib2R5Ij48dWwgY2xhc3M9InRvZG8tcHJvZ3Jlc3MtbGlzdCIgaWQ9InRvZG8tcHJvZ3Jlc3MtbGlzdCI+PC91bD48L2Rpdj48L2Rpdj48ZGl2IGlkPSJxdWV1ZS1iYXItaG9zdCIgY2xhc3M9InF1ZXVlLWJhci1ob3N0IiBoaWRkZW4+PC9kaXY+PGRpdiBjbGFzcz0iaW5wdXQtY29tcG9zZXInKyhhPyIgaGFzLXRleHQiOiIiKSsnIj48ZGl2IGNsYXNzPSJjb21wb3Nlci1zdGF0dXMtcm93IiBpZD0iY29tcG9zZXItc3RhdHVzLXJvdyI+JytpbSh0KSsnPHNwYW4gY2xhc3M9InBlcm1pc3Npb24tYWN0aW9ucyBoaWRkZW4iIGlkPSJwZXJtaXNzaW9uLWFjdGlvbnMiPjxzcGFuIGNsYXNzPSJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiIGlkPSJwZXJtaXNzaW9uLWFjdGlvbnMtbGFiZWwiPlx1N0I0OVx1NUY4NVx1NjM4OFx1Njc0Mzwvc3Bhbj48YnV0dG9uIGlkPSJhcHByb3ZlLXBlcm1pc3Npb24tYnRuIiBjbGFzcz0iYnRuIGJ0bi1wZXJtaXNzaW9uIGJ0bi1wZXJtaXNzaW9uLWFwcHJvdmUiIHR5cGU9ImJ1dHRvbiI+XHU2Mjc5XHU1MUM2PC9idXR0b24+PGJ1dHRvbiBpZD0iZGVueS1wZXJtaXNzaW9uLWJ0biIgY2xhc3M9ImJ0biBidG4tcGVybWlzc2lvbiBidG4tcGVybWlzc2lvbi1kZW55IiB0eXBlPSJidXR0b24iPlx1NjJEMlx1N0VERDwvYnV0dG9uPjwvc3Bhbj4nK21mKCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLW1haW4tcm93Ij48ZGl2IGNsYXNzPSJjb21wb3Nlci1hY3Rpb25zLWxlZnQiPjxidXR0b24gaWQ9ImF0dGFjaC1idG4iIGNsYXNzPSJidG4tY2lyY2xlIGJ0bi1jaXJjbGUtYWN0aW9uIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTY2RjRcdTU5MUEiIGFyaWEtbGFiZWw9Ilx1NjZGNFx1NTkxQSIgYXJpYS1oYXNwb3B1cD0ibWVudSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiPicreigicGx1cyIse3NpemU6MTgsc3Ryb2tlV2lkdGg6Mi4yfSkrJzwvYnV0dG9uPjxpbnB1dCB0eXBlPSJmaWxlIiBpZD0iZmlsZS11cGxvYWQtaW5wdXQiIG11bHRpcGxlIHRhYmluZGV4PSItMSIgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtvdmVyZmxvdzpoaWRkZW47Y2xpcDpyZWN0KDAsMCwwLDApO3BvaW50ZXItZXZlbnRzOm5vbmUiPjwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLWlubGluZS1jb25maWciPicraWwodCkrJzwvZGl2PjxkaXYgY2xhc3M9ImNvbXBvc2VyLWlucHV0LXdyYXAiPjx0ZXh0YXJlYSBpZD0iaW5wdXQtYm94IiBjbGFzcz0iaW5wdXQtdGV4dGFyZWEiIHBsYWNlaG9sZGVyPSInKyRvKHQsci50ZXJtaW5hbEludGVyYWN0aXZlKSsnIiByb3dzPSIxIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIGVudGVya2V5aGludD0ic2VuZCI+JytwKGEpKyc8L3RleHRhcmVhPjxidXR0b24gaWQ9InByb21wdC1vcHRpbWl6ZS1idG4iIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtYnRuIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdUZGMDhBSVx1RkYwOSIgYXJpYS1sYWJlbD0iXHU2M0QwXHU3OTNBXHU4QkNEXHU0RjE4XHU1MzE2Ij48c3ZnIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtaWNvbiIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxwYXRoIGQ9Ik0xMiAzbDEuNiA0LjRMMTggOWwtNC40IDEuNkwxMiAxNWwtMS42LTQuNEw2IDlsNC40LTEuNnoiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4yNSIvPjxwYXRoIGQ9Ik0xMiAzbDEuNiA0LjRMMTggOWwtNC40IDEuNkwxMiAxNWwtMS42LTQuNEw2IDlsNC40LTEuNnoiLz48cGF0aCBkPSJNMTkgMTRsLjcgMS45TDIxLjYgMTdsLTEuOS43TDE5IDE5LjZsLS43LTEuOUwxNi40IDE3bDEuOS0uN3oiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4zNSIvPjxwYXRoIGQ9Ik01IDRsLjUgMS40TDcgNmwtMS41LjZMNSA4bC0uNS0xLjRMMyA2bDEuNS0uNnoiIGZpbGw9ImN1cnJlbnRDb2xvciIgb3BhY2l0eT0iMC4zNSIvPjwvc3ZnPjxzcGFuIGNsYXNzPSJwcm9tcHQtb3B0aW1pemUtc3Bpbm5lciIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj48L2J1dHRvbj48ZGl2IGNsYXNzPSJ2b2ljZS1pbnB1dC1tb2RlIGhpZGRlbiIgaWQ9InZvaWNlLWlucHV0LW1vZGUiPjxidXR0b24gaWQ9InZvaWNlLXJlY29yZC1idG4iIGNsYXNzPSJ2b2ljZS1yZWNvcmQtYnRuIiB0eXBlPSJidXR0b24iPjxzcGFuIGNsYXNzPSJ2b2ljZS1yZWNvcmQtcHVsc2UiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+PHNwYW4gY2xhc3M9InZvaWNlLXJlY29yZC1sYWJlbCI+XHU2MzA5XHU0RjRGIFx1OEJGNFx1OEJERDwvc3Bhbj48L2J1dHRvbj48YnV0dG9uIGlkPSJ2b2ljZS1jYW5jZWwtYnRuIiBjbGFzcz0idm9pY2UtY2FuY2VsLWJ0biIgdHlwZT0iYnV0dG9uIiB0aXRsZT0iXHU5MDAwXHU1MUZBXHU4QkVEXHU5N0YzXHU2QTIxXHU1RjBGIiBhcmlhLWxhYmVsPSJcdTkwMDBcdTUxRkFcdThCRURcdTk3RjNcdTZBMjFcdTVGMEYiPicreigieCIse3NpemU6MTQsc3Ryb2tlV2lkdGg6Mn0pKyc8L2J1dHRvbj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJjb21wb3Nlci1hY3Rpb25zLXJpZ2h0Ij48YnV0dG9uIGlkPSJzdG9wLWJ1dHRvbiIgY2xhc3M9ImJ0bi1jaXJjbGUgYnRuLWNpcmNsZS1zdG9wIGhpZGRlbiIgdGl0bGU9Ilx1NTA1Q1x1NkI2MiI+PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iY3VycmVudENvbG9yIj48cmVjdCB4PSIzIiB5PSIzIiB3aWR0aD0iMTAiIGhlaWdodD0iMTAiIHJ4PSIyIi8+PC9zdmc+PC9idXR0b24+PGJ1dHRvbiBpZD0ic2VuZC1pbnB1dC1idXR0b24iIGNsYXNzPSJidG4tY2lyY2xlIGJ0bi1jaXJjbGUtc2VuZCIgdGl0bGU9Ilx1NTNEMVx1OTAwMSI+PHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi41IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxsaW5lIHgxPSIyMiIgeTE9IjIiIHgyPSIxMSIgeTI9IjEzIi8+PHBvbHlnb24gcG9pbnRzPSIyMiAyIDE1IDIyIDExIDEzIDIgOSAyMiAyIi8+PC9zdmc+PC9idXR0b24+PC9kaXY+PC9kaXY+PGRpdiBpZD0iYXR0YWNobWVudC1wcmV2aWV3IiBjbGFzcz0iYXR0YWNobWVudC1wcmV2aWV3IGhpZGRlbiI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY29tcG9zZXItcGx1cy1wb3BvdmVyIGhpZGRlbiIgaWQ9ImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIgcm9sZT0ibWVudSIgYXJpYS1sYWJlbD0iXHU2NkY0XHU1OTFBXHU2NENEXHU0RjVDIj48YnV0dG9uIGNsYXNzPSJwbHVzLXBvcG92ZXItaXRlbSIgaWQ9InBsdXMtYXR0YWNoLWl0ZW0iIHR5cGU9ImJ1dHRvbiIgcm9sZT0ibWVudWl0ZW0iPicreigicGFwZXJjbGlwIix7c2l6ZToxNCxzdHJva2VXaWR0aDoxLjgsY2xzOiJwbHVzLXBvcG92ZXItaWNvbiJ9KSsnPHNwYW4gY2xhc3M9InBsdXMtcG9wb3Zlci1sYWJlbCI+XHU0RTBBXHU0RjIwXHU5NjQ0XHU0RUY2PC9zcGFuPjwvYnV0dG9uPjxidXR0b24gY2xhc3M9InBsdXMtcG9wb3Zlci1pdGVtJysoci50ZXJtaW5hbEludGVyYWN0aXZlPyIgaXMtb24iOiIiKSsnIiBpZD0idGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlLXRvcCIgdHlwZT0iYnV0dG9uIiByb2xlPSJtZW51aXRlbWNoZWNrYm94IiBhcmlhLWNoZWNrZWQ9IicrKHIudGVybWluYWxJbnRlcmFjdGl2ZT8idHJ1ZSI6ImZhbHNlIikrJyI+Jyt6KCJrZXlib2FyZCIse3NpemU6MTQsc3Ryb2tlV2lkdGg6MS44LGNsczoicGx1cy1wb3BvdmVyLWljb24ifSkrJzxzcGFuIGNsYXNzPSJwbHVzLXBvcG92ZXItbGFiZWwiPlx1N0VDOFx1N0FFRlx1NEVBNFx1NEU5Mjwvc3Bhbj48c3BhbiBjbGFzcz0icGx1cy1wb3BvdmVyLXRvZ2dsZS1zdGF0ZSI+Jysoci50ZXJtaW5hbEludGVyYWN0aXZlPyJcdTVGMDAiOiJcdTUxNzMiKSsnPC9zcGFuPjwvYnV0dG9uPjxkaXYgY2xhc3M9InBsdXMtcG9wb3Zlci1zZXAiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2Rpdj48ZGl2IGNsYXNzPSJwbHVzLXBvcG92ZXItdHJpby13cmFwIj4nK2lsKHQpKyc8L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSBoaWRkZW4iIGlkPSJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIgYXJpYS1saXZlPSJwb2xpdGUiPjxkaXYgY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtdGV4dCIgaWQ9InZvaWNlLXRyYW5zY3JpcHQtdGV4dCI+PC9kaXY+PGRpdiBjbGFzcz0idm9pY2UtdHJhbnNjcmlwdC1oaW50IiBpZD0idm9pY2UtdHJhbnNjcmlwdC1oaW50Ij48c3BhbiBjbGFzcz0idm9pY2Utd2F2ZSIgYXJpYS1oaWRkZW49InRydWUiPjxpPjwvaT48aT48L2k+PGk+PC9pPjxpPjwvaT48L3NwYW4+PHNwYW4gY2xhc3M9InZvaWNlLXRyYW5zY3JpcHQtc3RhdHVzIiBpZD0idm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiPlx1NkI2M1x1NTcyOFx1ODA0Nlx1NTQyQ1x1MjAyNlx1NEUwQVx1NkVEMVx1NTNENlx1NkQ4ODwvc3Bhbj48L2Rpdj48c3BhbiBjbGFzcz0idm9pY2UtYnViYmxlLWFycm93IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPjwvZGl2PjxwIGlkPSJhY3Rpb24tZXJyb3IiIGNsYXNzPSJlcnJvci1tZXNzYWdlIGhpZGRlbiI+PC9wPjwvZGl2PjxzZWN0aW9uIGlkPSJmb2xkZXItcGlja2VyLW1vZGFsIiBjbGFzcz0ibW9kYWwtYmFja2Ryb3AgaGlkZGVuIj48ZGl2IGNsYXNzPSJtb2RhbCBmb2xkZXItcGlja2VyLW1vZGFsIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxoMiBjbGFzcz0ibW9kYWwtdGl0bGUiPlx1OTAwOVx1NjJFOVx1NURFNVx1NEY1Q1x1NzZFRVx1NUY1NTwvaDI+PGJ1dHRvbiBpZD0iY2xvc2UtZm9sZGVyLXBpY2tlciIgY2xhc3M9ImJ0biBidG4tZ2hvc3QgYnRuLWljb24gbW9kYWwtY2xvc2UtYnRuIiB0eXBlPSJidXR0b24iIGFyaWEtbGFiZWw9Ilx1NTE3M1x1OTVFRCI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ii8+PGxpbmUgeDE9IjE4IiB5MT0iNiIgeDI9IjYiIHkyPSIxOCIvPjwvc3ZnPjwvYnV0dG9uPjwvZGl2PjxkaXYgY2xhc3M9Im1vZGFsLWJvZHkiPjxkaXYgY2xhc3M9ImZvbGRlci1waWNrZXItcXVpY2stcm93Ij48YnV0dG9uIGNsYXNzPSJmb2xkZXItcGlja2VyLXF1aWNrLWJ0biBidG4td2l0aC1pY29uIiBkYXRhLXBhdGg9Ii90bXAiPicreigidHJhc2giLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuN30pKyc8c3Bhbj5cdTRFMzRcdTY1RjZcdTc2RUVcdTVGNTU8L3NwYW4+PC9idXR0b24+PGJ1dHRvbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1xdWljay1idG4gYnRuLXdpdGgtaWNvbiIgZGF0YS1wYXRoPSIvIj4nK3ooImZvbGRlciIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrJzxzcGFuPlx1NjgzOVx1NzZFRVx1NUY1NTwvc3Bhbj48L2J1dHRvbj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItYnJlYWRjcnVtYiIgY2xhc3M9ImZvbGRlci1icmVhZGNydW1iIj48L2Rpdj48ZGl2IGNsYXNzPSJmb2xkZXItcGlja2VyIj48c3BhbiBjbGFzcz0iZm9sZGVyLXBpY2tlci1pY29uIj4nK3ooImZvbGRlciIse3NpemU6MTUsc3Ryb2tlV2lkdGg6MS43fSkrJzwvc3Bhbj48aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImZvbGRlci1waWNrZXItaW5wdXQiIGNsYXNzPSJmb2xkZXItcGlja2VyLWlucHV0IiB2YWx1ZT0iIiBwbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2MjE2XHU5MDA5XHU2MkU5XHU1REU1XHU0RjVDXHU3NkVFXHU1RjU1Li4uIiBhdXRvY29tcGxldGU9Im9mZiIgYXV0b2NvcnJlY3Q9Im9mZiIgYXV0b2NhcGl0YWxpemU9Im9mZiIgc3BlbGxjaGVjaz0iZmFsc2UiIC8+PC9kaXY+PGRpdiBpZD0iZm9sZGVyLXBpY2tlci1kcm9wZG93biIgY2xhc3M9ImZvbGRlci1waWNrZXItZHJvcGRvd24gaGlkZGVuIj48L2Rpdj48ZGl2IGlkPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iIGNsYXNzPSJmb2xkZXItcGlja2VyLXZhbGlkYXRpb24iPjwvZGl2PjwvZGl2PjwvZGl2Pjwvc2VjdGlvbj48L21haW4+PC9kaXY+PC9kaXY+JytWYygpK1BjKCkrcWMoKStlcygpfWZ1bmN0aW9uIHFlKGUsdCl7aWYoZSl7ZS50ZXh0Q29udGVudD10LGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7Zm9yKHZhciBuPWUucHJldmlvdXNFbGVtZW50U2libGluZztuOyl7aWYobi50YWdOYW1lPT09IklOUFVUIil7bi5zZXRBdHRyaWJ1dGUoImRhdGEtZXJyb3IiLCJ0cnVlIik7YnJlYWt9bj1uLnByZXZpb3VzRWxlbWVudFNpYmxpbmd9fX1mdW5jdGlvbiBzaShlKXtpZihlKXtlLnRleHRDb250ZW50PSIiLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7Zm9yKHZhciB0PWUucHJldmlvdXNFbGVtZW50U2libGluZzt0Oyl7aWYodC50YWdOYW1lPT09IklOUFVUIil7dC5zZXRBdHRyaWJ1dGUoImRhdGEtZXJyb3IiLCJmYWxzZSIpO2JyZWFrfXQ9dC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nfX19ZnVuY3Rpb24gayhlLHQpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO24uY2xhc3NOYW1lPSJ0b2FzdC1tZXNzYWdlIisodD09PSJlcnJvciI/IiB0b2FzdC1lcnJvciI6IiIpLHQhPT0iZXJyb3IiJiYobi5zdHlsZS5iYWNrZ3JvdW5kPSJ2YXIoLS1hY2NlbnQpIixuLnN0eWxlLmNvbG9yPSJ3aGl0ZSIpLG4udGV4dENvbnRlbnQ9ZSxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnJlbW92ZSgpfSx0PT09ImVycm9yIj80ZTM6MjIwMCl9dmFyIGJyPVtdO2Z1bmN0aW9uIHlmKGUpe3N3aXRjaChlKXtjYXNlIndhcm5pbmciOnJldHVybiIhIjtjYXNlImRhbmdlciI6cmV0dXJuIlx1MjZBMFx1RkUwRSI7Y2FzZSJzdWNjZXNzIjpyZXR1cm4iXHUyNzEzIjtjYXNlInF1ZXN0aW9uIjpyZXR1cm4iPyI7ZGVmYXVsdDpyZXR1cm4iaSJ9fWZ1bmN0aW9uIHNuKGUpe2U9ZXx8e307dmFyIHQ9ZS5kaXNtaXNzYWJsZSE9PSExLG49ZS50eXBlfHwiaW5mbyIsaT1lLmljb258fHlmKG4pLGE9ISFlLmlucHV0O3JldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbih1KXt2YXIgcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtzLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctYmFja2Ryb3AiLHMuc2V0QXR0cmlidXRlKCJyb2xlIiwicHJlc2VudGF0aW9uIik7dmFyIG89ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7by5jbGFzc05hbWU9IndhbmQtZGlhbG9nIixvLnNldEF0dHJpYnV0ZSgicm9sZSIsYT8iZGlhbG9nIjoiYWxlcnRkaWFsb2ciKSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1tb2RhbCIsInRydWUiKSxlLnRpdGxlJiZvLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsZS50aXRsZSk7dmFyIGw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWhlYWRlciI7dmFyIGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Yy5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWljb24gIituLGMudGV4dENvbnRlbnQ9aSxsLmFwcGVuZENoaWxkKGMpO3ZhciBmPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2lmKGYuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy10ZXh0d3JhcCIsZS50aXRsZSl7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZC5jbGFzc05hbWU9IndhbmQtZGlhbG9nLXRpdGxlIixkLnRleHRDb250ZW50PWUudGl0bGUsZi5hcHBlbmRDaGlsZChkKX1pZihlLm1lc3NhZ2Upe3ZhciB2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3YuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1tZXNzYWdlIix2LnRleHRDb250ZW50PWUubWVzc2FnZSxmLmFwcGVuZENoaWxkKHYpfWwuYXBwZW5kQ2hpbGQoZiksby5hcHBlbmRDaGlsZChsKTt2YXIgaD1udWxsO2lmKGEpe3ZhciBnPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2cuY2xhc3NOYW1lPSJ3YW5kLWRpYWxvZy1ib2R5IixoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlucHV0IiksaC50eXBlPSJ0ZXh0IixoLmNsYXNzTmFtZT0id2FuZC1kaWFsb2ctaW5wdXQiLGUuaW5wdXRQbGFjZWhvbGRlciYmKGgucGxhY2Vob2xkZXI9ZS5pbnB1dFBsYWNlaG9sZGVyKSxlLmlucHV0VmFsdWUhPW51bGwmJihoLnZhbHVlPVN0cmluZyhlLmlucHV0VmFsdWUpKSxnLmFwcGVuZENoaWxkKGgpLG8uYXBwZW5kQ2hpbGQoZyl9dmFyIG09ZS5idXR0b25zJiZlLmJ1dHRvbnMubGVuZ3RoP2UuYnV0dG9uczpbe2xhYmVsOiJcdTU5N0QiLHZhbHVlOiEwLGtpbmQ6InByaW1hcnkiLGF1dG9mb2N1czohMH1dLHk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7eS5jbGFzc05hbWU9IndhbmQtZGlhbG9nLWZvb3RlciI7dmFyIHc9bnVsbCxFPW51bGw7ZnVuY3Rpb24gQih4KXtpZighcy5jbGFzc0xpc3QuY29udGFpbnMoImNsb3NpbmciKSl7cy5jbGFzc0xpc3QuYWRkKCJjbG9zaW5nIiksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsRiwhMCk7dmFyIFM9YnIuaW5kZXhPZihCKTtTPj0wJiZici5zcGxpY2UoUywxKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cy5wYXJlbnROb2RlJiZzLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQocyksdSh4KX0sMTYwKX19bS5mb3JFYWNoKGZ1bmN0aW9uKHgpe3ZhciBTPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpLF89eC5raW5kfHwic2Vjb25kYXJ5IjtTLmNsYXNzTmFtZT0iYnRuIGJ0bi0iK18sUy50eXBlPSJidXR0b24iLFMudGV4dENvbnRlbnQ9eC5sYWJlbCxTLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2EmJngua2luZD09PSJwcmltYXJ5Ij9CKGg/aC52YWx1ZToiIik6Qih4LnZhbHVlKX0pLHd8fCh3PVMpLHguYXV0b2ZvY3VzJiYoRT1TKSx5LmFwcGVuZENoaWxkKFMpfSksby5hcHBlbmRDaGlsZCh5KSxzLmFwcGVuZENoaWxkKG8pLHMuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKHgpe3gudGFyZ2V0PT09cyYmdCYmQihlLmNhbmNlbFZhbHVlIT09dm9pZCAwP2UuY2FuY2VsVmFsdWU6YT9udWxsOiExKX0pO2Z1bmN0aW9uIEYoeCl7aWYoYnJbYnIubGVuZ3RoLTFdPT09Qil7aWYoeC5rZXk9PT0iRXNjYXBlIiYmdCl7eC5wcmV2ZW50RGVmYXVsdCgpLHguc3RvcFByb3BhZ2F0aW9uKCksQihlLmNhbmNlbFZhbHVlIT09dm9pZCAwP2UuY2FuY2VsVmFsdWU6YT9udWxsOiExKTtyZXR1cm59aWYoeC5rZXk9PT0iRW50ZXIiKXtmb3IodmFyIFM9bnVsbCxfPTA7XzxtLmxlbmd0aDtfKyspaWYobVtfXS5raW5kPT09InByaW1hcnkiKXtTPW1bX107YnJlYWt9U3x8KFM9bVttLmxlbmd0aC0xXSksUyYmKHgucHJldmVudERlZmF1bHQoKSx4LnN0b3BQcm9wYWdhdGlvbigpLGEmJlMua2luZD09PSJwcmltYXJ5Ij9CKGg/aC52YWx1ZToiIik6QihTLnZhbHVlKSl9fX1kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIixGLCEwKSxici5wdXNoKEIpLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocykscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7aWYoYSYmaCl7aC5mb2N1cygpO3RyeXtoLnNlbGVjdCgpfWNhdGNoe319ZWxzZSBFP0UuZm9jdXMoKTp3JiZ3LmZvY3VzKCl9KX0pfWZ1bmN0aW9uIGJmKGUsdCl7cmV0dXJuIHQ9dHx8e30sc24oe3RpdGxlOnQudGl0bGV8fCJcdTYzRDBcdTc5M0EiLG1lc3NhZ2U6dHlwZW9mIGU9PSJzdHJpbmciP2U6U3RyaW5nKGU/PyIiKSx0eXBlOnQudHlwZXx8ImluZm8iLGJ1dHRvbnM6W3tsYWJlbDp0Lm9rTGFiZWx8fCJcdTU5N0QiLHZhbHVlOnZvaWQgMCxraW5kOiJwcmltYXJ5IixhdXRvZm9jdXM6ITB9XX0pfWZ1bmN0aW9uIGpzKGUsdCl7dD10fHx7fTt2YXIgbj0hIXQuZGFuZ2VyfHx0LnR5cGU9PT0iZGFuZ2VyIjtyZXR1cm4gc24oe3RpdGxlOnQudGl0bGV8fChuPyJcdTc4NkVcdThCQTRcdTY0Q0RcdTRGNUMiOiJcdThCRjdcdTc4NkVcdThCQTQiKSxtZXNzYWdlOnR5cGVvZiBlPT0ic3RyaW5nIj9lOlN0cmluZyhlPz8iIiksdHlwZTp0LnR5cGV8fChuPyJkYW5nZXIiOiJxdWVzdGlvbiIpLGNhbmNlbFZhbHVlOiExLGJ1dHRvbnM6W3tsYWJlbDp0LmNhbmNlbExhYmVsfHwiXHU1M0Q2XHU2RDg4Iix2YWx1ZTohMSxraW5kOiJzZWNvbmRhcnkifSx7bGFiZWw6dC5va0xhYmVsfHwobj8iXHU1MjIwXHU5NjY0IjoiXHU3ODZFXHU1QjlBIiksdmFsdWU6ITAsa2luZDpuPyJkYW5nZXIiOiJwcmltYXJ5IixhdXRvZm9jdXM6IW59XX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGk9PT0hMH0pfWZ1bmN0aW9uIEVmKGUsdCxuKXtyZXR1cm4gbj1ufHx7fSxzbih7dGl0bGU6bi50aXRsZXx8Ilx1OEJGN1x1OEY5M1x1NTE2NSIsbWVzc2FnZTp0eXBlb2YgZT09InN0cmluZyI/ZTpTdHJpbmcoZT8/IiIpLHR5cGU6bi50eXBlfHwicXVlc3Rpb24iLGlucHV0OiEwLGlucHV0VmFsdWU6dD09bnVsbD8iIjpTdHJpbmcodCksaW5wdXRQbGFjZWhvbGRlcjpuLnBsYWNlaG9sZGVyfHwiIixjYW5jZWxWYWx1ZTpudWxsLGJ1dHRvbnM6W3tsYWJlbDpuLmNhbmNlbExhYmVsfHwiXHU1M0Q2XHU2RDg4Iix2YWx1ZTpudWxsLGtpbmQ6InNlY29uZGFyeSJ9LHtsYWJlbDpuLm9rTGFiZWx8fCJcdTc4NkVcdTVCOUEiLHZhbHVlOnZvaWQgMCxraW5kOiJwcmltYXJ5In1dfSl9d2luZG93LndhbmRBbGVydD1iZix3aW5kb3cud2FuZENvbmZpcm09anMsd2luZG93LndhbmRQcm9tcHQ9RWYsd2luZG93Lm9wZW5XYW5kRGlhbG9nPXNuO3ZhciBlbj1bXSxScz0wLEZmPTYsd2Y9MTY7ZnVuY3Rpb24gaGEoZSl7aWYoKGUuYWN0aW9uTGFiZWx8fGUucGxheVNvdW5kKSYmS3MoKSwhci5ub3RpZkJ1YmJsZSlyZXR1cm57ZGlzbWlzczpmdW5jdGlvbigpe319O3ZhciB0PSsrUnMsbj1lLnR5cGV8fCJpbmZvIixpPWUuaWNvbnx8KG49PT0id2FybmluZyI/IiEiOm49PT0ic3VjY2VzcyI/Ilx1MjcxMyI6ImkiKSxhPWUuZHVyYXRpb24hPT12b2lkIDA/ZS5kdXJhdGlvbjo4ZTMsdT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt1LmNsYXNzTmFtZT0ibm90aWZpY2F0aW9uLWJ1YmJsZSIsdS5zZXRBdHRyaWJ1dGUoImRhdGEtbmlkIixTdHJpbmcodCkpO3ZhciBzPSc8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWhlYWRlciI+PHNwYW4gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtaWNvbiAnK24rJyI+JytpKyc8L3NwYW4+PHNwYW4gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtdGl0bGUiPicrcChlLnRpdGxlKSsnPC9zcGFuPjxidXR0b24gY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtY2xvc2UiIHRpdGxlPSJcdTUxNzNcdTk1RUQiPlx4RDc8L2J1dHRvbj48L2Rpdj4nLG89ZS5ib2R5Pyc8ZGl2IGNsYXNzPSJub3RpZmljYXRpb24tYnViYmxlLWJvZHkiPicrcChlLmJvZHkpLnJlcGxhY2UoL1xuL2csIjxicj4iKSsiPC9kaXY+IjoiIixsPWUuYWN0aW9uTGFiZWw/JzxkaXYgY2xhc3M9Im5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0icHJpbWFyeSI+JytwKGUuYWN0aW9uTGFiZWwpKyI8L2J1dHRvbj48L2Rpdj4iOiIiO3UuaW5uZXJIVE1MPXMrbytsLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodSk7dmFyIGM9e2lkOnQsZWw6dX07ZW4ucHVzaChjKSx5YSgpO3ZhciBmPXUucXVlcnlTZWxlY3RvcigiLm5vdGlmaWNhdGlvbi1idWJibGUtY2xvc2UiKTtpZihmJiYoZi5vbmNsaWNrPWZ1bmN0aW9uKCl7RXIodCl9KSxlLmFjdGlvbkxhYmVsJiZlLmFjdGlvbil7dmFyIGQ9dS5xdWVyeVNlbGVjdG9yKCIubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbiIpO2QmJihkLm9uY2xpY2s9ZnVuY3Rpb24oKXtlLmFjdGlvbigpLEVyKHQpfSl9dmFyIHY9bnVsbDtyZXR1cm4gYT4wJiYodj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7RXIodCl9LGEpKSx7ZGlzbWlzczpmdW5jdGlvbigpe0VyKHQpfX19ZnVuY3Rpb24gRXIoZSl7Zm9yKHZhciB0PS0xLG49MDtuPGVuLmxlbmd0aDtuKyspaWYoZW5bbl0uaWQ9PT1lKXt0PW47YnJlYWt9aWYodCE9PS0xKXt2YXIgaT1lblt0XTtpLmVsLmNsYXNzTGlzdC5hZGQoInNsaWRlLW91dCIpLGVuLnNwbGljZSh0LDEpLHlhKCksc2V0VGltZW91dChmdW5jdGlvbigpe2kuZWwucGFyZW50Tm9kZSYmaS5lbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGkuZWwpfSwzMDApfX1mdW5jdGlvbiB5YSgpe2Zvcih2YXIgZT13Zix0PTA7dDxlbi5sZW5ndGg7dCsrKWVuW3RdLmVsLnN0eWxlLnRvcD1lKyJweCIsZSs9ZW5bdF0uZWwub2Zmc2V0SGVpZ2h0K0ZmfXRyeXtHcz1uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC9XYW5kUGxhdGZvcm1cL21hY09TLyksRmE9d2luZG93LndlYmtpdCYmd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMmJndpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLndhbmROYXRpdmV8fG51bGwsR3MmJkZhJiZ0eXBlb2Ygd2luZG93LldhbmROYXRpdmU+InUiJiYod2luZG93LldhbmROYXRpdmU9e2Rvd25sb2FkVXBkYXRlOmZ1bmN0aW9uKGUsdCxuKXt0cnl7RmEucG9zdE1lc3NhZ2Uoe3R5cGU6ImRvd25sb2FkVXBkYXRlIix1cmw6U3RyaW5nKGV8fCIiKSxmaWxlTmFtZTpTdHJpbmcodHx8IndhbmQtdXBkYXRlLmRtZyIpLHNvdXJjZTpTdHJpbmcobnx8ImxvY2FsIil9KX1jYXRjaHt9fX0pfWNhdGNoe312YXIgamU9dHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zZW5kTm90aWZpY2F0aW9uPT0iZnVuY3Rpb24iLEZyPW5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL1dhbmRBcHBcLyhbXlxzXSspLyksV3M9L1dhbmRQbGF0Zm9ybVwvbWFjT1MvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCksQ2Y9ISFGciYmIVdzLFNuPUZyJiZDZj9GclsxXTpudWxsLG9uPUZyJiZXcz9GclsxXTpudWxsO2Z1bmN0aW9uIEtuKGUpe2lmKCEoIWplfHx0eXBlb2YgV2FuZE5hdGl2ZS52aWJyYXRlIT0iZnVuY3Rpb24iKSl0cnl7V2FuZE5hdGl2ZS52aWJyYXRlKGV8fCJsaWdodCIpfWNhdGNoe319ZnVuY3Rpb24gYmEoKXtpZihqZSl7dmFyIGU9ci5zZXNzaW9ucy5zb21lKGZ1bmN0aW9uKHQpe3JldHVybiF0LmFyY2hpdmVkJiYodC5zdGF0dXM9PT0icnVubmluZyJ8fHQuc3RhdHVzPT09InRoaW5raW5nInx8dC5zdGF0dXM9PT0iaW5pdGlhbGl6aW5nIil9KTtpZih0eXBlb2YgV2FuZE5hdGl2ZS5zZXRLZWVwU2NyZWVuT249PSJmdW5jdGlvbiIpdHJ5e1dhbmROYXRpdmUuc2V0S2VlcFNjcmVlbk9uKGUpfWNhdGNoe31pZihlKXtpZih0eXBlb2YgV2FuZE5hdGl2ZS5zdGFydEtlZXBBbGl2ZT09ImZ1bmN0aW9uIil0cnl7V2FuZE5hdGl2ZS5zdGFydEtlZXBBbGl2ZSgpfWNhdGNoe319ZWxzZSBpZih0eXBlb2YgV2FuZE5hdGl2ZS5zdG9wS2VlcEFsaXZlPT0iZnVuY3Rpb24iKXRyeXtXYW5kTmF0aXZlLnN0b3BLZWVwQWxpdmUoKX1jYXRjaHt9fX1mdW5jdGlvbiBvaSgpe2lmKGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXRQZXJtaXNzaW9uPT0iZnVuY3Rpb24iKXRyeXtyZXR1cm4gV2FuZE5hdGl2ZS5nZXRQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybiBudWxsfWZ1bmN0aW9uIEJmKCl7aWYoamUpe3ZhciBlPW9pKCk7aWYoZT09PSJkZWZhdWx0Inx8ZT09PSJkZW5pZWQiKXRyeXtXYW5kTmF0aXZlLnJlcXVlc3RQZXJtaXNzaW9uKCl9Y2F0Y2h7fXJldHVybn10eXBlb2YgTm90aWZpY2F0aW9uPCJ1IiYmTm90aWZpY2F0aW9uLnBlcm1pc3Npb249PT0iZGVmYXVsdCImJk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpfWZ1bmN0aW9uIERmKGUpe3ZhciB0PWV8fHt9O3JldHVybiEodC5vbmx5V2hlbkhpZGRlbiYmIWRvY3VtZW50LmhpZGRlbnx8dC5za2lwV2hlblNlbGVjdGVkU2Vzc2lvbklkJiZ0LnNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQ9PT1yLnNlbGVjdGVkSWQmJiFkb2N1bWVudC5oaWRkZW4pfWZ1bmN0aW9uIGtmKGUsdCl7aWYoIWV8fCF0fHx0PD0wKXJldHVybiExO3ZhciBuPXIubm90aWZpY2F0aW9uSGlzdG9yeVtlXXx8MCxpPURhdGUubm93KCk7cmV0dXJuIGktbjx0PyEwOihyLm5vdGlmaWNhdGlvbkhpc3RvcnlbZV09aSwhMSl9ZnVuY3Rpb24gbGkoZSx0LG4pe3ZhciBpPW58fHt9LGE9aS50YWd8fCIiO2lmKERmKGkpJiYha2YoYSxpLm1pbkludGVydmFsTXN8fDApKXtpZihqZSl7dmFyIHU9b2koKTtpZih1IT09ImdyYW50ZWQiKXJldHVybjt0cnl7dmFyIHM9YTtpLmtpbmQmJihzPWkua2luZCsoYT8iOiIrYToiIikpLFdhbmROYXRpdmUuc2VuZE5vdGlmaWNhdGlvbihlfHwiV2FuZCIsdHx8IiIsc3x8IiIpfWNhdGNoe31yZXR1cm59aWYoISh0eXBlb2YgTm90aWZpY2F0aW9uPiJ1Inx8Tm90aWZpY2F0aW9uLnBlcm1pc3Npb24hPT0iZ3JhbnRlZCIpJiZkb2N1bWVudC5oaWRkZW4pdHJ5e3ZhciBvPW5ldyBOb3RpZmljYXRpb24oZSx7Ym9keTp0fHwiIixpY29uOmkuaWNvbnx8Ii9mYXZpY29uLmljbyIsdGFnOmF8fHZvaWQgMH0pO28ub25jbGljaz1mdW5jdGlvbigpe3dpbmRvdy5mb2N1cygpLG8uY2xvc2UoKSxpLm9uQ2xpY2smJmkub25DbGljaygpfSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7by5jbG9zZSgpfSwxZTQpfWNhdGNoe319fWZ1bmN0aW9uIEFmKGUsdCl7aWYoISghdHx8IXQudGl0bGUpKXt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuaWQ9PT1lfSk7aWYobil7dmFyIGk9bi5zdW1tYXJ5fHxuLmNvbW1hbmR8fGU7bGkoIlx1NEVGQlx1NTJBMVx1OEZEQlx1ODg0Q1x1NEUyRCIsaStgCmArdC50aXRsZSx7a2luZDoidGFzayIsdGFnOiJ3YW5kLXRhc2stIitlKyItIit0LnRpdGxlLG1pbkludGVydmFsTXM6OWU0LG9ubHlXaGVuSGlkZGVuOiEwLHNraXBXaGVuU2VsZWN0ZWRTZXNzaW9uSWQ6ZSxvbkNsaWNrOmZ1bmN0aW9uKCl7ZSE9PXIuc2VsZWN0ZWRJZCYmV3QoZSl9fSl9fX1mdW5jdGlvbiB6cyhlLHQpe01mKGV8fCItIix0fHwiLSIpLGxpKCJXYW5kIFx1NTNEMVx1NzNCMFx1NjVCMFx1NzI0OFx1NjcyQyIsIlx1NUY1M1x1NTI0RCAiKyhlfHwiLSIpKyIgXHUyMTkyIFx1NjcwMFx1NjVCMCAiKyh0fHwiLSIpLHtraW5kOiJ1cGRhdGUiLHRhZzoid2FuZC11cGRhdGUiLG1pbkludGVydmFsTXM6M2U1fSl9ZnVuY3Rpb24geGYoZSx0KXtsaSgiXHU5NzAwXHU4OTgxXHU0RjYwXHU3Njg0XHU2Mzg4XHU2NzQzIix0LHtraW5kOiJwZXJtaXNzaW9uIix0YWc6IndhbmQtcGVybS0iK2UsbWluSW50ZXJ2YWxNczo2ZTQsb25seVdoZW5IaWRkZW46ITAsc2tpcFdoZW5TZWxlY3RlZFNlc3Npb25JZDplLG9uQ2xpY2s6ZnVuY3Rpb24oKXtlIT09ci5zZWxlY3RlZElkJiZXdChlKX19KX1mdW5jdGlvbiBTZihlLHQsbil7bGkodCxuLHtraW5kOiJ0YXNrLWVuZGVkIix0YWc6IndhbmQtZW5kZWQtIitlLG1pbkludGVydmFsTXM6MWU0LG9uQ2xpY2s6ZnVuY3Rpb24oKXtlIT09ci5zZWxlY3RlZElkJiZXdChlKX19KX12YXIgSW49e30sSWY9MzA7ZnVuY3Rpb24gVXMoZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9U3RyaW5nKGUpLnJlcGxhY2UoL14jK1xzKy9nbSwiIikucmVwbGFjZSgvXCpcKi9nLCIiKS5yZXBsYWNlKC9gL2csIiIpLnRyaW0oKSxuPXQuc3BsaXQoYApgKVswXS50cmltKCk7cmV0dXJuIG4ubGVuZ3RoPjEwMCYmKG49bi5zbGljZSgwLDEwMCkrIlx1MjAyNiIpLG59ZnVuY3Rpb24gRWEoZSl7IWplfHx0eXBlb2YgV2FuZE5hdGl2ZS51cGRhdGVTZXNzaW9uUHJvZ3Jlc3MhPSJmdW5jdGlvbiJ8fGUmJihJbltlXSYmY2xlYXJUaW1lb3V0KEluW2VdKSxJbltlXT1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZGVsZXRlIEluW2VdLFRmKGUpfSxJZikpfWZ1bmN0aW9uIFRmKGUpe3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih4KXtyZXR1cm4geC5pZD09PWV9KTtpZih0KXt2YXIgbj10LnN1bW1hcnl8fHQuY29tbWFuZHx8ZSxpPXQuc3RhdHVzfHwicnVubmluZyI7aWYoaT09PSJpZGxlInx8aT09PSJhcmNoaXZlZCJ8fGk9PT0iZXhpdGVkIil7VnMoZSk7cmV0dXJufWZvcih2YXIgYT1udWxsLHU9IiIscz0iIixvPVtdLGw9dC5tZXNzYWdlc3x8W10sYz1sLmxlbmd0aC0xO2M+PTA7Yy0tKXt2YXIgZj1sW2NdO2lmKCEoIWYuY29udGVudHx8IUFycmF5LmlzQXJyYXkoZi5jb250ZW50KSkpe2lmKCFzJiZmLnJvbGU9PT0iYXNzaXN0YW50Iilmb3IodmFyIGQ9Zi5jb250ZW50Lmxlbmd0aC0xO2Q+PTA7ZC0tKXt2YXIgdj1mLmNvbnRlbnRbZF07aWYodiYmdi50eXBlPT09InRleHQiJiZ2LnRleHQmJnYudGV4dC50cmltKCkpe3M9VXModi50ZXh0KTticmVha319aWYoZi5yb2xlPT09InVzZXIiKXt2YXIgaD1mLmNvbnRlbnQuc29tZShmdW5jdGlvbih4KXtyZXR1cm4geCYmeC5fX3F1ZXVlZH0pO2lmKCFoKWZvcih2YXIgZz0wO2c8Zi5jb250ZW50Lmxlbmd0aDtnKyspe3ZhciBtPWYuY29udGVudFtnXTtpZihtJiZtLnR5cGU9PT0idGV4dCImJm0udGV4dCYmbS50ZXh0LnRyaW0oKSl7dmFyIHk9VXMobS50ZXh0KTt1fHwodT15KSxvLmxlbmd0aDw0JiZvLnB1c2goeSk7YnJlYWt9fX1pZighYSlmb3IodmFyIHc9Zi5jb250ZW50Lmxlbmd0aC0xO3c+PTA7dy0tKXt2YXIgRT1mLmNvbnRlbnRbd107aWYoRSYmRS50eXBlPT09InRvb2xfdXNlIiYmRS5uYW1lPT09IlRvZG9Xcml0ZSImJkUuaW5wdXQmJkUuaW5wdXQudG9kb3Mpe2E9RS5pbnB1dC50b2RvczticmVha319aWYoYSYmby5sZW5ndGg+PTQmJnMpYnJlYWt9fW8ucmV2ZXJzZSgpO3ZhciBCPSIiO2U9PT1yLnNlbGVjdGVkSWQmJnIuY3VycmVudFRhc2smJnIuY3VycmVudFRhc2sudGl0bGUmJihCPXIuY3VycmVudFRhc2sudGl0bGUpO3ZhciBGPXtzZXNzaW9uTGFiZWw6bixzdGF0dXM6aSxjdXJyZW50VGFzazpCLGxhdGVzdFVzZXJUZXh0OnUsbGF0ZXN0QXNzaXN0YW50VGV4dDpzLHRvZG9zOmF8fFtdLHJlY2VudFVzZXJUZXh0czpvfTt0cnl7V2FuZE5hdGl2ZS51cGRhdGVTZXNzaW9uUHJvZ3Jlc3MoZSxKU09OLnN0cmluZ2lmeShGKSl9Y2F0Y2h7fX19ZnVuY3Rpb24gVnMoZSl7aWYoISghamV8fHR5cGVvZiBXYW5kTmF0aXZlLmNsZWFyU2Vzc2lvblByb2dyZXNzIT0iZnVuY3Rpb24iKSl7SW5bZV0mJihjbGVhclRpbWVvdXQoSW5bZV0pLGRlbGV0ZSBJbltlXSk7dHJ5e1dhbmROYXRpdmUuY2xlYXJTZXNzaW9uUHJvZ3Jlc3MoZSl9Y2F0Y2h7fX19d2luZG93LmhhbmRsZU5hdGl2ZUJhY2s9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtpZihlJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXJldHVybiBabigpLCEwO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7aWYodCYmIXQuY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKSlyZXR1cm4gZ24oKSwhMDt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid29ya3RyZWUtbWVyZ2UtbW9kYWwiKTtyZXR1cm4gbiYmIW4uY2xhc3NMaXN0LmNvbnRhaW5zKCJoaWRkZW4iKT8oWG4oKSwhMCk6ci5maWxlUGFuZWxPcGVuJiZOZSgpPyhRaSghMSksITApOnIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiZOZSgpPyhMcigpLCEwKTpOZSgpJiZyLnNlbGVjdGVkSWQ/KHIuc2VsZWN0ZWRJZD1udWxsLHdlKCksci5zZXNzaW9uc0RyYXdlck9wZW49ITAsQWUoIndhbmQtc2lkZWJhci1vcGVuIiwhMCksWnQoKSwhMCk6ITF9O2Z1bmN0aW9uIEtzKCl7ci5ub3RpZlNvdW5kJiZjaSgpfWZ1bmN0aW9uIExmKCl7cmV0dXJuIGNpKCl9ZnVuY3Rpb24gY2koKXt0cnl7bGV0IGE9ZnVuY3Rpb24odSxzLG8pe3ZhciBsPW4uY3JlYXRlT3NjaWxsYXRvcigpLGM9bi5jcmVhdGVHYWluKCk7bC50eXBlPSJzaW5lIixsLmZyZXF1ZW5jeS52YWx1ZT11LGMuZ2Fpbi5zZXRWYWx1ZUF0VGltZSgwLG4uY3VycmVudFRpbWUrcyksYy5nYWluLmxpbmVhclJhbXBUb1ZhbHVlQXRUaW1lKC41Kmksbi5jdXJyZW50VGltZStzKy4wNCksYy5nYWluLmV4cG9uZW50aWFsUmFtcFRvVmFsdWVBdFRpbWUoLjAwMSxuLmN1cnJlbnRUaW1lK3MrbyksbC5jb25uZWN0KGMpLGMuY29ubmVjdChuLmRlc3RpbmF0aW9uKSxsLnN0YXJ0KG4uY3VycmVudFRpbWUrcyksbC5zdG9wKG4uY3VycmVudFRpbWUrcytvKX07dmFyIGU9YSx0PXdpbmRvdy5BdWRpb0NvbnRleHR8fHdpbmRvdy53ZWJraXRBdWRpb0NvbnRleHQ7aWYoIXQpcmV0dXJuITE7dmFyIG49bmV3IHQ7bi5zdGF0ZT09PSJzdXNwZW5kZWQiJiZuLnJlc3VtZSgpO3ZhciBpPShyLm5vdGlmVm9sdW1lfHwwKS8xMDA7cmV0dXJuIGEoNTIzLDAsLjI1KSxhKDY1OSwuMTIsLjMpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLmNsb3NlKCl9LDYwMCksITB9Y2F0Y2h7cmV0dXJuITF9fWZ1bmN0aW9uIE1mKGUsdCl7aWYoci5fdXBkYXRlQnViYmxlU2hvd24pcmV0dXJuO3IuX3VwZGF0ZUJ1YmJsZVNob3duPSEwLEtzKCk7dmFyIG49KytScyxpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuY2xhc3NOYW1lPSJub3RpZmljYXRpb24tYnViYmxlIHVwZGF0ZS1jYXJkIixpLnNldEF0dHJpYnV0ZSgiZGF0YS1uaWQiLFN0cmluZyhuKSksaS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXNoaW5lIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtaGVhZGVyIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1pY29uIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN2ZyB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiPjxwYXRoIGQ9Ik0xMiAxOVY1Ii8+PHBhdGggZD0iTTUgMTJsNy03IDcgNyIvPjwvc3ZnPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLWhlYWRpbmciPjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXRpdGxlIj5cdTUzRDFcdTczQjBcdTY1QjBcdTcyNDhcdTY3MkM8L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1zdWJ0aXRsZSIgaWQ9InVwZGF0ZS1jYXJkLXN1YnRpdGxlIj5cdTcwQjlcdTUxRkJcdTRFMEJcdTY1QjlcdTYzMDlcdTk0QUVcdTRFMDBcdTk1MkVcdTY2RjRcdTY1QjA8L2Rpdj48L2Rpdj48YnV0dG9uIGNsYXNzPSJ1cGRhdGUtY2FyZC1jbG9zZSIgdGl0bGU9Ilx1N0EwRFx1NTQwRVx1NjNEMFx1OTE5MiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjIiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCI+PHBhdGggZD0iTTE4IDZMNiAxOCIvPjxwYXRoIGQ9Ik02IDZsMTIgMTIiLz48L3N2Zz48L2J1dHRvbj48L2Rpdj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uIj48c3BhbiBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbi1jaGlwIHVwZGF0ZS1jYXJkLXZlcnNpb24tY3VycmVudCI+dicrcChTdHJpbmcoZSkucmVwbGFjZSgvXnYvLCIiKSkrJzwvc3Bhbj48c3ZnIGNsYXNzPSJ1cGRhdGUtY2FyZC12ZXJzaW9uLWFycm93IiB2aWV3Qm94PSIwIDAgMjQgMjQiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi4yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNNSAxMmgxNCIvPjxwYXRoIGQ9Ik0xMyA1bDcgNy03IDciLz48L3N2Zz48c3BhbiBjbGFzcz0idXBkYXRlLWNhcmQtdmVyc2lvbi1jaGlwIHVwZGF0ZS1jYXJkLXZlcnNpb24tbGF0ZXN0Ij52JytwKFN0cmluZyh0KS5yZXBsYWNlKC9edi8sIiIpKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InVwZGF0ZS1jYXJkLXByb2dyZXNzIiBpZD0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MiIGFyaWEtaGlkZGVuPSJ0cnVlIj48ZGl2IGNsYXNzPSJ1cGRhdGUtY2FyZC1wcm9ncmVzcy10cmFjayI+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtcHJvZ3Jlc3MtZmlsbCI+PC9kaXY+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtc3RhdHVzIGhpZGRlbiIgaWQ9InVwZGF0ZS1jYXJkLXN0YXR1cyI+PC9kaXY+PGRpdiBjbGFzcz0idXBkYXRlLWNhcmQtYWN0aW9ucyI+PGJ1dHRvbiBjbGFzcz0idXBkYXRlLWNhcmQtYWN0aW9uIHVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5IiBpZD0idXBkYXRlLWJ1YmJsZS1hY3Rpb24iIHR5cGU9ImJ1dHRvbiI+PHNwYW4gY2xhc3M9InVwZGF0ZS1jYXJkLWFjdGlvbi1sYWJlbCI+XHU3QUNCXHU1MzczXHU2NkY0XHU2NUIwPC9zcGFuPjwvYnV0dG9uPjwvZGl2PicsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt2YXIgYT17aWQ6bixlbDppfTtlbi5wdXNoKGEpLHlhKCk7dmFyIHU9aS5xdWVyeVNlbGVjdG9yKCIudXBkYXRlLWNhcmQtY2xvc2UiKTt1JiYodS5vbmNsaWNrPWZ1bmN0aW9uKCl7RXIobiksci5fdXBkYXRlQnViYmxlU2hvd249ITF9KTt2YXIgcz1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtYnViYmxlLWFjdGlvbiIpLG89aS5xdWVyeVNlbGVjdG9yKCIudXBkYXRlLWNhcmQtYWN0aW9uLWxhYmVsIiksbD1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtY2FyZC1zdWJ0aXRsZSIpLGM9aS5xdWVyeVNlbGVjdG9yKCIjdXBkYXRlLWNhcmQtc3RhdHVzIiksZj1pLnF1ZXJ5U2VsZWN0b3IoIiN1cGRhdGUtY2FyZC1wcm9ncmVzcyIpO2Z1bmN0aW9uIGQoZyxtKXtpZihjKXtpZihjLnRleHRDb250ZW50PWd8fCIiLGMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiwiZXJyb3IiLCJzdWNjZXNzIiksIWcpe2MuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7cmV0dXJufW0mJmMuY2xhc3NMaXN0LmFkZChtKX19ZnVuY3Rpb24gdihnKXtsJiYobC50ZXh0Q29udGVudD1nfHwiIil9ZnVuY3Rpb24gaChnKXtmJiZmLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFnKX1zJiYocy5vbmNsaWNrPWZ1bmN0aW9uKCl7cy5kaXNhYmxlZD0hMCxpLmNsYXNzTGlzdC5hZGQoImlzLWJ1c3kiKSxvJiYoby50ZXh0Q29udGVudD0iXHU2NkY0XHU2NUIwXHU0RTJEXHUyMDI2IiksdigiXHU2QjYzXHU1NzI4XHU0RTBCXHU4RjdEXHU1RTc2XHU1Qjg5XHU4OEM1XHU2NUIwXHU3MjQ4XHU2NzJDXHUyMDI2IiksaCghMCksZCgiIiksZmV0Y2goIi9hcGkvdXBkYXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGcpe3JldHVybiBnLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZyl7aWYoZy5lcnJvcil7aCghMSksaS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1idXN5IiksdigiXHU2NkY0XHU2NUIwXHU2NzJBXHU1QjhDXHU2MjEwIiksZChnLmVycm9yLCJlcnJvciIpLHMuZGlzYWJsZWQ9ITEsbyYmKG8udGV4dENvbnRlbnQ9Ilx1OTFDRFx1OEJENSIpO3JldHVybn1pZihpLmNsYXNzTGlzdC5hZGQoImlzLXN1Y2Nlc3MiKSx2KChnLm1lc3NhZ2V8fCJcdTY2RjRcdTY1QjBcdTVCOENcdTYyMTAiKSsiXHVGRjBDXHU2QjYzXHU1NzI4XHU5MUNEXHU1NDJGXHU2NzBEXHU1MkExXHUyMDI2IiksZCgiIiksbyYmKG8udGV4dENvbnRlbnQ9Ilx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1MjAyNiIpLGcuZGV0YWNoZWRVcGRhdGUpe2xuKCk7cmV0dXJufWlmKGcucmVzdGFydFJlcXVpcmVkPT09ITEpe2goITEpLGkuY2xhc3NMaXN0LnJlbW92ZSgiaXMtYnVzeSIpLHMuZGlzYWJsZWQ9ITEsbyYmKG8udGV4dENvbnRlbnQ9Ilx1NURGMlx1NUI4Q1x1NjIxMCIpO3JldHVybn1PZihzLG8sbCxjLGYpfSkuY2F0Y2goZnVuY3Rpb24oKXtoKCExKSxpLmNsYXNzTGlzdC5yZW1vdmUoImlzLWJ1c3kiKSx2KCJcdTY2RjRcdTY1QjBcdTY3MkFcdTVCOENcdTYyMTAiKSxkKCJcdThCRjdcdTY4QzBcdTY3RTVcdTdGNTFcdTdFRENcdThGREVcdTYzQTVcdTU0MEVcdTkxQ0RcdThCRDUiLCJlcnJvciIpLHMuZGlzYWJsZWQ9ITEsbyYmKG8udGV4dENvbnRlbnQ9Ilx1OTFDRFx1OEJENSIpfSl9KX1mdW5jdGlvbiBPZihlLHQsbixpLGEpe2ZldGNoKCIvYXBpL3Jlc3RhcnQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUuanNvbigpfSkudGhlbihmdW5jdGlvbigpe2xuKCl9KS5jYXRjaChmdW5jdGlvbigpe2xuKCl9KX1mdW5jdGlvbiBKcyhlLHQpe2UmJihlLmRpc2FibGVkPSEwLGUudGV4dENvbnRlbnQ9Ilx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRlx1MjAyNiIpLHQmJih0LnRleHRDb250ZW50PSJcdTY3MERcdTUyQTFcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTIwMjYiLHQuc3R5bGUuY29sb3I9InZhcigtLXRleHQtc2Vjb25kYXJ5KSIpLGZldGNoKCIvYXBpL3Jlc3RhcnQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbigpe2xuKCl9KS5jYXRjaChmdW5jdGlvbigpe2xuKCl9KX1mdW5jdGlvbiBsbigpe2lmKCFkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdGFydC1vdmVybGF5Iikpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2UuaWQ9InJlc3RhcnQtb3ZlcmxheSIsZS5jbGFzc05hbWU9InJlc3RhcnQtb3ZlcmxheSIsZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9InJlc3RhcnQtb3ZlcmxheS1jb250ZW50Ij48ZGl2IGNsYXNzPSJyZXN0YXJ0LXNwaW5uZXIiPjwvZGl2PjxkaXYgY2xhc3M9InJlc3RhcnQtdGl0bGUiPlx1NjcwRFx1NTJBMVx1NkI2M1x1NTcyOFx1OTFDRFx1NTQyRjwvZGl2PjxkaXYgY2xhc3M9InJlc3RhcnQtc3VidGl0bGUiPlx1N0EwRFx1NTQwRVx1NUMwNlx1ODFFQVx1NTJBOFx1NTIzN1x1NjVCMFx1OTg3NVx1OTc2Mlx1MjAyNjwvZGl2PjwvZGl2PicsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTt2YXIgdD0wLG49MTgwLGk9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXtpZih0KyssZmV0Y2goIi9hcGkvY29uZmlnIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24odSl7dS5vayYmKGNsZWFySW50ZXJ2YWwoaSksbG9jYXRpb24ucmVsb2FkKCkpfSkuY2F0Y2goZnVuY3Rpb24oKXt9KSx0Pj1uKXtjbGVhckludGVydmFsKGkpO3ZhciBhPWUucXVlcnlTZWxlY3RvcigiLnJlc3RhcnQtc3VidGl0bGUiKTthJiYoYS5pbm5lckhUTUw9J1x1OTFDRFx1NTQyRlx1OEQ4NVx1NjVGNlx1RkYwQ1x1OEJGNyA8YSBocmVmPSJqYXZhc2NyaXB0OmxvY2F0aW9uLnJlbG9hZCgpIiBzdHlsZT0iY29sb3I6dmFyKC0tYWNjZW50KTt0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lIj5cdTYyNEJcdTUyQThcdTUyMzdcdTY1QjA8L2E+IFx1OTg3NVx1OTc2Mlx1MzAwMicpfX0sMmUzKX19ZnVuY3Rpb24gUGYoZSx0KXtpZighZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3RhcnQtb3ZlcmxheSIpKXt2YXIgbj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtuLmlkPSJyZXN0YXJ0LW92ZXJsYXkiLG4uY2xhc3NOYW1lPSJyZXN0YXJ0LW92ZXJsYXkiLG4uaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJyZXN0YXJ0LW92ZXJsYXktY29udGVudCI+PGRpdiBjbGFzcz0icmVzdGFydC1zcGlubmVyIj48L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXRpdGxlIj5cdTgxRUFcdTUyQThcdTY2RjRcdTY1QjBcdTRFMkQ8L2Rpdj48ZGl2IGNsYXNzPSJyZXN0YXJ0LXN1YnRpdGxlIj4nK3AoZSkrIiBcdTIxOTIgIitwKHQpKyI8YnI+XHU2QjYzXHU1NzI4XHU0RTBCXHU4RjdEXHU1RTc2XHU1Qjg5XHU4OEM1XHU2NUIwXHU3MjQ4XHU2NzJDXHVGRjBDXHU3QTBEXHU1NDBFXHU1QzA2XHU4MUVBXHU1MkE4XHU5MUNEXHU1NDJGXHUyMDI2PC9kaXY+PC9kaXY+Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKG4pfX12YXIgR3MsRmEseGU9e3JlY29yZGluZzohMSxjYW5jZWxpbmc6ITEsdHJhbnNjcmlwdDoiIixzdGFydFk6MH0scWY9NjA7ZnVuY3Rpb24gSGYoZSl7eGUudHJhbnNjcmlwdD1lfHwiIjt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC10ZXh0Iik7dCYmKHQudGV4dENvbnRlbnQ9eGUudHJhbnNjcmlwdCk7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIik7biYmbi5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtdGV4dCIsISF4ZS50cmFuc2NyaXB0KX1mdW5jdGlvbiBfZihlKXtpZihlKXtlLnByZXZlbnREZWZhdWx0KCkseGUuc3RhcnRZPXR5cGVvZiBlLmNsaWVudFk9PSJudW1iZXIiP2UuY2xpZW50WTowO3RyeXtlLnBvaW50ZXJJZCE9PXZvaWQgMCYmZS50YXJnZXQmJmUudGFyZ2V0LnNldFBvaW50ZXJDYXB0dXJlJiZlLnRhcmdldC5zZXRQb2ludGVyQ2FwdHVyZShlLnBvaW50ZXJJZCl9Y2F0Y2h7fX14ZS5yZWNvcmRpbmc9ITAseGUuY2FuY2VsaW5nPSExLHhlLnRyYW5zY3JpcHQ9IiI7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXJlY29yZC1idG4iKTtpZih0KXt0LmNsYXNzTGlzdC5hZGQoImlzLXJlY29yZGluZyIpO3ZhciBuPXQucXVlcnlTZWxlY3RvcigiLnZvaWNlLXJlY29yZC1sYWJlbCIpO24mJihuLnRleHRDb250ZW50PSJcdTY3N0VcdTVGMDAgXHU1M0QxXHU5MDAxIil9dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtYnViYmxlIik7aSYmaS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iLCJpcy1jYW5jZWxpbmciLCJoYXMtdGV4dCIpLEhmKCIiKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1zdGF0dXMiKTthJiYoYS50ZXh0Q29udGVudD0iXHU3RjUxXHU5ODc1XHU3QUVGXHU2NjgyXHU0RTBEXHU2NTJGXHU2MzAxXHU4QkVEXHU5N0YzXHU4RjkzXHU1MTY1XHVGRjBDXHU4QkY3XHU0RjdGXHU3NTI4IEFwcCIpfWZ1bmN0aW9uIE5mKGUpe2lmKCEoIXhlLnJlY29yZGluZ3x8IWUpKXt2YXIgdD14ZS5zdGFydFktKHR5cGVvZiBlLmNsaWVudFk9PSJudW1iZXIiP2UuY2xpZW50WTp4ZS5zdGFydFkpLG49dD5xZjtpZihuIT09eGUuY2FuY2VsaW5nKXt4ZS5jYW5jZWxpbmc9bjt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidm9pY2UtdHJhbnNjcmlwdC1idWJibGUiKTtpJiZpLmNsYXNzTGlzdC50b2dnbGUoImlzLWNhbmNlbGluZyIsbik7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXJlY29yZC1idG4iKSx1PWEmJmEucXVlcnlTZWxlY3RvcigiLnZvaWNlLXJlY29yZC1sYWJlbCIpO3UmJih1LnRleHRDb250ZW50PW4/Ilx1Njc3RVx1NUYwMCBcdTUzRDZcdTZEODgiOiJcdTY3N0VcdTVGMDAgXHU1M0QxXHU5MDAxIik7dmFyIHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInZvaWNlLXRyYW5zY3JpcHQtc3RhdHVzIik7cyYmKHMudGV4dENvbnRlbnQ9bj8iXHU2NzdFXHU1RjAwXHU2MjRCXHU2MzA3IFx1NTNENlx1NkQ4OCI6Ilx1NkI2M1x1NTcyOFx1ODA0Nlx1NTQyQ1x1MjAyNlx1NEUwQVx1NkVEMVx1NTNENlx1NkQ4OCIpfX19ZnVuY3Rpb24gWXMoZSl7aWYoeGUucmVjb3JkaW5nKXtlJiZlLnByZXZlbnREZWZhdWx0KCkseGUucmVjb3JkaW5nPSExO3ZhciB0PSF4ZS5jYW5jZWxpbmcmJiEheGUudHJhbnNjcmlwdC50cmltKCksbj14ZS50cmFuc2NyaXB0O3dhKCksdCYmKGpmKG4pLENhKCExKSl9fWZ1bmN0aW9uIHdhKCl7eGUuY2FuY2VsaW5nPSExO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS1yZWNvcmQtYnRuIik7aWYoZSl7ZS5jbGFzc0xpc3QucmVtb3ZlKCJpcy1yZWNvcmRpbmciKTt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi52b2ljZS1yZWNvcmQtbGFiZWwiKTt0JiYodC50ZXh0Q29udGVudD0iXHU2MzA5XHU0RjRGIFx1OEJGNFx1OEJERCIpfXZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2b2ljZS10cmFuc2NyaXB0LWJ1YmJsZSIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIil9ZnVuY3Rpb24gamYoZSl7dmFyIHQ9KGV8fCIiKS50cmltKCk7aWYodCl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKG4pe3ZhciBpPW4udmFsdWV8fCIiLGE9aT9pLnJlcGxhY2UoL1xzKyQvLCIiKSsiICIrdDp0O24udmFsdWU9YSxvdChhLCEwKSxIdChuKTt0cnl7bi5zZXRTZWxlY3Rpb25SYW5nZShhLmxlbmd0aCxhLmxlbmd0aCl9Y2F0Y2h7fX19fWZ1bmN0aW9uIENhKGUpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1jb21wb3NlciIpO2lmKHQpe3ZhciBuPXR5cGVvZiBlPT0iYm9vbGVhbiI/ZTohdC5jbGFzc0xpc3QuY29udGFpbnMoInZvaWNlLW1vZGUiKTtpZih0LmNsYXNzTGlzdC50b2dnbGUoInZvaWNlLW1vZGUiLG4pLCFuKXt4ZS5yZWNvcmRpbmc9ITEsd2EoKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYoaSYmIXIudGVybWluYWxJbnRlcmFjdGl2ZSl0cnl7aS5mb2N1cyh7cHJldmVudFNjcm9sbDohMH0pfWNhdGNoe319fX1mdW5jdGlvbiBIdChlKXtpZihlKXt2YXIgdD0zNixuPTEyMCxpPXhyKCk7aWYoIWUudmFsdWV8fGUudmFsdWUudHJpbSgpPT09IiIpe2Uuc3R5bGUuaGVpZ2h0PXQrInB4IixlLnN0eWxlLm1pbkhlaWdodD10KyJweCIsZS5zdHlsZS5vdmVyZmxvd1k9aT8iYXV0byI6ImhpZGRlbiIsZS5zY3JvbGxUb3A9MCxPaShlKTtyZXR1cm59dmFyIGE9ZS5zdHlsZS5vdmVyZmxvd1k7ZS5zdHlsZS5vdmVyZmxvd1k9ImhpZGRlbiIsZS5zdHlsZS5oZWlnaHQ9dCsicHgiO3ZhciB1PWUuc2Nyb2xsSGVpZ2h0LHM9TWF0aC5tYXgodCxNYXRoLm1pbih1LG4pKSxvPXU+bjtlLnN0eWxlLmhlaWdodD1zKyJweCIsZS5zdHlsZS5taW5IZWlnaHQ9dCsicHgiLGUuc3R5bGUub3ZlcmZsb3dZPW98fGk/ImF1dG8iOiJoaWRkZW4iLG8/eWkoZSk6ZS5zY3JvbGxUb3A9MCxPaShlKX19ZnVuY3Rpb24gUmYoKXtpZighci5zZWxlY3RlZElkKXJldHVybiExO3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZD09PXIuc2VsZWN0ZWRJZH0pO3JldHVybiB1ZShlKT8hIShlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpOiEhZSYmZS5zdGF0dXM9PT0icnVubmluZyJ9dmFyIHdyPSExO2Z1bmN0aW9uIFFzKGUpe3JldHVybiFlfHxlLmFyY2hpdmVkPyExOnVlKGUpPyEhKGUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCk6ZS5zdGF0dXM9PT0icnVubmluZyJ9ZnVuY3Rpb24gQmEoKXtyZXR1cm4gci5zZXNzaW9ucy5zb21lKFFzKX1mdW5jdGlvbiBXZigpe3ZhciBlPXIuc2Vzc2lvbnMuZmlsdGVyKFFzKTtpZihlLmxlbmd0aD09PTApcmV0dXJuIG51bGw7aWYoci5zZWxlY3RlZElkKXt2YXIgdD1lLmZpbmQoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZih0KXJldHVybiB0fXJldHVybiBlLnNvcnQoZnVuY3Rpb24obixpKXtyZXR1cm4oRGF0ZS5wYXJzZShpLnN0YXJ0ZWRBdCl8fDApLShEYXRlLnBhcnNlKG4uc3RhcnRlZEF0KXx8MCl9KSxlWzBdfWZ1bmN0aW9uIHpmKGUsdCl7dmFyIG49dHlwZW9mIGNyeXB0bzwidSImJmNyeXB0by5yYW5kb21VVUlEP2NyeXB0by5yYW5kb21VVUlEKCk6RGF0ZS5ub3coKS50b1N0cmluZygzNikrIi0iK01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIsMTApLGk9QXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W10sYT1pLnNsaWNlKCk7YS5wdXNoKHQpLCQoe2lkOmUuaWQscXVldWVkTWVzc2FnZXM6YX0pLGUuaWQ9PT1yLnNlbGVjdGVkSWQmJnN0KCk7dmFyIHU9ZS50aXRsZXx8WW4oZS5jb21tYW5kKXx8Ilx1NUY1M1x1NTI0RFx1NEYxQVx1OEJERCI7cmV0dXJuIGsoIlx1NURGMlx1NTJBMFx1NTE2NVx1MzAwQyIrdSsiXHUzMDBEXHU3Njg0XHU2MzkyXHU5NjFGXHVGRjBDXHU1NkRFXHU1OTBEXHU3RUQzXHU2NzVGXHU1NDBFXHU4MUVBXHU1MkE4XHU1M0QxXHU5MDAxXHVGRjA4XHU1NDJCXHU0RTBBXHU0RTBCXHU2NTg3XHVGRjA5XHUzMDAyIiwiaW5mbyIpLGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIitlLmlkKyIvbWVzc2FnZXMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDp0LGlkZW1wb3RlbmN5S2V5Om59KX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMub2s/cy5qc29uKCk6cy5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihvKXt0aHJvdyBuZXcgRXJyb3IobyYmby5lcnJvcnx8Ilx1NjVFMFx1NkNENVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1MzAwMiIpfSl9KS50aGVuKGZ1bmN0aW9uKHMpe3MmJnMuaWQmJigkKHMpLHMuaWQ9PT1yLnNlbGVjdGVkSWQmJnN0KCkpfSkuY2F0Y2goZnVuY3Rpb24ocyl7JCh7aWQ6ZS5pZCxxdWV1ZWRNZXNzYWdlczppfSksZS5pZD09PXIuc2VsZWN0ZWRJZCYmc3QoKSxrKHMmJnMubWVzc2FnZXx8Ilx1NjM5Mlx1OTYxRlx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIsImVycm9yIil9KX1mdW5jdGlvbiAkcyhlKXt2YXIgdD1XZigpO2lmKHQmJnVlKHQpKXt6Zih0LGUpO3JldHVybn1pZihyLmNyb3NzU2Vzc2lvblF1ZXVlLmxlbmd0aD49MTApe2soIlx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1NURGMlx1NkVFMVx1RkYwOFx1NjcwMFx1NTkxQSAxMCBcdTY3NjFcdUZGMDlcdUZGMENcdThCRjdcdTdCNDlcdTVGODVcdTVGNTNcdTUyNERcdTRGMUFcdThCRERcdTVCOENcdTYyMTBcdTMwMDIiLCJ3YXJuaW5nIik7cmV0dXJufXZhciBuPSJjc3EtIitEYXRlLm5vdygpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDgpO3IuY3Jvc3NTZXNzaW9uUXVldWUucHVzaCh7aWQ6bix0ZXh0OmUsY3dkOmV0KCksbW9kZTpyLmNoYXRNb2RlfHwibWFuYWdlZCIsdG9vbDp0dCgpLHF1ZXVlZEF0OkRhdGUubm93KCl9KSxRdCgpLEF0KCksaygiXHU1REYyXHU2MzkyXHU5NjFGXHVGRjBDXHU1QzA2XHU1NzI4XHU3QTdBXHU5NUYyXHU1NDBFXHU4MUVBXHU1MkE4XHU1RjAwXHU1OUNCXHU2NUIwXHU0RjFBXHU4QkREXHUzMDAyIiwiaW5mbyIpfWZ1bmN0aW9uIFVmKGUpe3dyfHwod3I9ITAsZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGd0KHtjb21tYW5kOmUudG9vbCxjd2Q6ZS5jd2QsbW9kZTplLm1vZGUsaW5pdGlhbElucHV0OmUudGV4dH0pKX0pLnRoZW4oZnVuY3Rpb24odCl7cmV0dXJuIHQuanNvbigpfSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gd3I9ITEsdC5lcnJvcj8oayh0LmVycm9yLCJlcnJvciIpLHIuY3Jvc3NTZXNzaW9uUXVldWUudW5zaGlmdChlKSxRdCgpLEF0KCksbnVsbCk6Zm4odCl9KS5jYXRjaChmdW5jdGlvbih0KXt3cj0hMSxrKHQmJnQubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1NjM5Mlx1OTYxRlx1NEYxQVx1OEJERFx1MzAwMiIsImVycm9yIiksci5jcm9zc1Nlc3Npb25RdWV1ZS51bnNoaWZ0KGUpLFF0KCksQXQoKX0pKX1mdW5jdGlvbiBWZihlKXt2YXIgdD1yLmNyb3NzU2Vzc2lvblF1ZXVlLmZpbmRJbmRleChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PWV9KTtpZighKHQ8MCkpe3ZhciBuPXIuY3Jvc3NTZXNzaW9uUXVldWUuc3BsaWNlKHQsMSlbMF07UXQoKSxBdCgpLGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShndCh7Y29tbWFuZDpuLnRvb2wsY3dkOm4uY3dkLG1vZGU6bi5tb2RlLGluaXRpYWxJbnB1dDpuLnRleHR9KSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuZXJyb3I/KGsoaS5lcnJvciwiZXJyb3IiKSxyLmNyb3NzU2Vzc2lvblF1ZXVlLnNwbGljZSh0LDAsbiksUXQoKSxBdCgpLG51bGwpOmZuKGkpfSkuY2F0Y2goZnVuY3Rpb24oaSl7ayhpJiZpLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTYzOTJcdTk2MUZcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLHIuY3Jvc3NTZXNzaW9uUXVldWUuc3BsaWNlKHQsMCxuKSxRdCgpLEF0KCl9KX19ZnVuY3Rpb24gS2YoZSl7dmFyIHQ9ci5jcm9zc1Nlc3Npb25RdWV1ZS5maW5kSW5kZXgoZnVuY3Rpb24obil7cmV0dXJuIG4uaWQ9PT1lfSk7dDwwfHwoci5jcm9zc1Nlc3Npb25RdWV1ZS5zcGxpY2UodCwxKSxRdCgpLEF0KCksci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg9PT0wJiZrKCJcdTYzOTJcdTk2MUZcdTVERjJcdTZFMDVcdTdBN0FcdTMwMDIiLCJpbmZvIikpfWZ1bmN0aW9uIGRpKCl7aWYoci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGghPT0wJiYhQmEoKSYmIXdyKXt2YXIgZT1yLmNyb3NzU2Vzc2lvblF1ZXVlLnNoaWZ0KCk7QXQoKSxVZihlKX19ZnVuY3Rpb24gWHMoZSl7dmFyIHQ9TWF0aC5mbG9vcigoRGF0ZS5ub3coKS1lKS8xZTMpO2lmKHQ8NjApcmV0dXJuIHQrInMiO3ZhciBuPU1hdGguZmxvb3IodC82MCk7cmV0dXJuIG48NjA/bisibSI6TWF0aC5mbG9vcihuLzYwKSsiaCJ9ZnVuY3Rpb24gQXQoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIpLHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LXBhbmVsIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3RydWN0dXJlZC1zdGF0dXMtYmFyIiksaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0Iik7aWYoci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg9PT0wKXtlJiZlLnJlbW92ZSgpLFF0KCk7cmV0dXJufXZhciB1PXQmJiF0LmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikscz11P3Q6YSxvPXU/bnx8aTpudWxsO2lmKHMpe2UmJmUucGFyZW50Tm9kZSE9PXMmJihlLnJlbW92ZSgpLGU9bnVsbCksZT91JiZvJiZlLm5leHRTaWJsaW5nIT09byYmcy5pbnNlcnRCZWZvcmUoZSxvKTooZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxlLmNsYXNzTmFtZT0iY3Jvc3Mtc2Vzc2lvbi1xdWV1ZSIsbz9zLmluc2VydEJlZm9yZShlLG8pOnMuYXBwZW5kQ2hpbGQoZSkpO3ZhciBsPXIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoLGM9ci5jcm9zc1Nlc3Npb25RdWV1ZS5tYXAoZnVuY3Rpb24oZCx2KXt2YXIgaD1kLnRleHQubGVuZ3RoPjYwP2QudGV4dC5zbGljZSgwLDYwKSsiXHUyMDI2IjpkLnRleHQsZz1YcyhkLnF1ZXVlZEF0KTtyZXR1cm4nPGRpdiBjbGFzcz0icXVldWUtaXRlbSIgZGF0YS1xdWV1ZS1pZD0iJytwKGQuaWQpKyciPjxzcGFuIGNsYXNzPSJxdWV1ZS1pdGVtLWRvdCI+PC9zcGFuPjxzcGFuIGNsYXNzPSJxdWV1ZS1pdGVtLXRleHQiIHRpdGxlPSInK3AoZC50ZXh0KSsnIj4nK3AoaCkrJzwvc3Bhbj48c3BhbiBjbGFzcz0icXVldWUtaXRlbS1hZ2UiPicrZysnPC9zcGFuPjxidXR0b24gY2xhc3M9InF1ZXVlLWl0ZW0tc2VuZC1ub3ciIGRhdGEtcXVldWUtaWQ9IicrcChkLmlkKSsnIiB0aXRsZT0iXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxIiB0eXBlPSJidXR0b24iPlx1NTNEMVx1OTAwMTwvYnV0dG9uPjxidXR0b24gY2xhc3M9InF1ZXVlLWl0ZW0tY2FuY2VsIiBkYXRhLXF1ZXVlLWlkPSInK3AoZC5pZCkrJyIgdGl0bGU9Ilx1NTNENlx1NkQ4OCIgdHlwZT0iYnV0dG9uIj5ceEQ3PC9idXR0b24+PC9kaXY+J30pLmpvaW4oIiIpLGY9bD4xPyc8ZGl2IGNsYXNzPSJxdWV1ZS1oZWFkZXIiPjxzcGFuIGNsYXNzPSJxdWV1ZS1oZWFkZXItbGFiZWwiPlx1NjM5Mlx1OTYxRiAnK2wrJyBcdTY3NjE8L3NwYW4+PGJ1dHRvbiBjbGFzcz0icXVldWUtaGVhZGVyLWNsZWFyIiBpZD0icXVldWUtY2xlYXItYWxsIiB0eXBlPSJidXR0b24iIHRpdGxlPSJcdTZFMDVcdTdBN0FcdTYzOTJcdTk2MUYiPlx1NkUwNVx1N0E3QTwvYnV0dG9uPjwvZGl2Pic6IiI7ZS5pbm5lckhUTUw9ZitjfX1zZXRJbnRlcnZhbChmdW5jdGlvbigpe2lmKHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPjApe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5xdWV1ZS1pdGVtLWFnZSIpO3IuY3Jvc3NTZXNzaW9uUXVldWUuZm9yRWFjaChmdW5jdGlvbih0LG4pe2Vbbl0mJihlW25dLnRleHRDb250ZW50PVhzKHQucXVldWVkQXQpKX0pLGRpKCl9fSw1ZTMpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihlKXt2YXIgdD1lLnRhcmdldDtpZih0LmNsb3Nlc3QoIiNxdWV1ZS1jbGVhci1hbGwiKSl7ZS5wcmV2ZW50RGVmYXVsdCgpLHIuY3Jvc3NTZXNzaW9uUXVldWU9W10sUXQoKSxBdCgpLGsoIlx1NjM5Mlx1OTYxRlx1NURGMlx1NkUwNVx1N0E3QVx1MzAwMiIsImluZm8iKTtyZXR1cm59dmFyIG49dC5jbG9zZXN0KCIucXVldWUtaXRlbS1zZW5kLW5vdyIpO2lmKG4pe2UucHJldmVudERlZmF1bHQoKSxWZihuLmRhdGFzZXQucXVldWVJZCk7cmV0dXJufXZhciBpPXQuY2xvc2VzdCgiLnF1ZXVlLWl0ZW0tY2FuY2VsIik7aWYoaSl7ZS5wcmV2ZW50RGVmYXVsdCgpLEtmKGkuZGF0YXNldC5xdWV1ZUlkKTtyZXR1cm59fSk7ZnVuY3Rpb24gWnMoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgid2VsY29tZS1pbnB1dCIpLHQ9ZT9lLnZhbHVlLnRyaW0oKToiIjtpZih0KXtpZihCYSgpKXtlLnZhbHVlPSIiLCRzKHQpO3JldHVybn12YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS52YWx1ZT0iIixlLnBsYWNlaG9sZGVyPSJcdTZCNjNcdTU3MjhcdTU0MkZcdTUyQThcdTIwMjYiLGUuZGlzYWJsZWQ9ITA7dmFyIGk9ci5jaGF0TW9kZXx8Im1hbmFnZWQiLGE9ZXQoKSx1PXR0KCk7ZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGd0KHtjb21tYW5kOnUscHJvdmlkZXI6dSxjd2Q6YSxtb2RlOmksaW5pdGlhbElucHV0OnR9KSl9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ocyl7aWYocy5lcnJvcil7ayhzLmVycm9yLCJlcnJvciIpLGUucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsZS5kaXNhYmxlZD0hMTtyZXR1cm59ci5zZWxlY3RlZElkPXMuaWQsd2UoKSxyLmRyYWZ0c1tzLmlkXT0iIixrdCgpLCQocyksbWUoKSxDcihzLmlkKSxMbihzLmlkKSxtbihzLmlkKS50aGVuKGZ1bmN0aW9uKCl7ZS5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIixlLmRpc2FibGVkPSExLE50KCEwKX0pfSkuY2F0Y2goZnVuY3Rpb24ocyl7ayhzJiZzLm1lc3NhZ2V8fCh1PT09ImNvZGV4Ij8iXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENvZGV4IFx1NEYxQVx1OEJERFx1MzAwMiI6Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDbGF1ZGUgXHU0RjFBXHU4QkREXHUzMDAyIiksImVycm9yIiksZS5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIixlLmRpc2FibGVkPSExfSl9fWZ1bmN0aW9uIEpmKGUpe2U9ZXx8e307dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndlbGNvbWUtaW5wdXQiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxpPXQmJnQudmFsdWUudHJpbSgpP3QudmFsdWUudHJpbSgpOm4/bi52YWx1ZS50cmltKCk6IiI7aWYoci5zZWxlY3RlZElkKXtpJiZlbyhlKTtyZXR1cm59aWYoaSYmQmEoKSl7biYmKG4udmFsdWU9IiIpLHQmJih0LnZhbHVlPSIiKSxPaShuKSwkcyhpKTtyZXR1cm59dmFyIGE9ci5jaGF0TW9kZXx8Im1hbmFnZWQiLHU9ZXQoKSxzPXR0KCk7ZmV0Y2goIi9hcGkvY29tbWFuZHMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KGd0KHtjb21tYW5kOnMscHJvdmlkZXI6cyxjd2Q6dSxtb2RlOmEsaW5pdGlhbElucHV0Oml8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5lcnJvcj8oayhvLmVycm9yLCJlcnJvciIpLG51bGwpOihyLnNlbGVjdGVkSWQ9by5pZCx3ZSgpLHIuZHJhZnRzW28uaWRdPSIiLGt0KCksbiYmKG4udmFsdWU9IiIpLHQmJih0LnZhbHVlPSIiKSwkKG8pLG1lKCksQ3Ioby5pZCksTG4oby5pZCksbW4oby5pZCkpfSkuY2F0Y2goZnVuY3Rpb24obyl7ayhvJiZvLm1lc3NhZ2V8fChzPT09ImNvZGV4Ij8iXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4IENvZGV4IFx1NEYxQVx1OEJERFx1MzAwMiI6Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDbGF1ZGUgXHU0RjFBXHU4QkREXHUzMDAyIiksImVycm9yIil9KX1mdW5jdGlvbiBDcihlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odil7cmV0dXJuIHYuaWQ9PT1lfSksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdCIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0IiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcC1idXR0b24iKSxzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC10aXRsZSIpLG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlcm1pbmFsLWluZm8iKSxsPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN1bW1hcnktdmFsdWUiKSxjPXVlKHQpO24mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksaSYmaS5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLGMpLGEmJmEuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksYz9yLmN1cnJlbnRWaWV3PSJjaGF0IjpyLmN1cnJlbnRWaWV3PSJ0ZXJtaW5hbCI7dmFyIGY9dD9Zbih0LmNvbW1hbmQpOiJXYW5kIixkPXQ/Y3IodCk6Ilx1NUYwMFx1NTlDQlx1NUJGOVx1OEJERCI7cyYmKHMudGV4dENvbnRlbnQ9ZiksbyYmKG8udGV4dENvbnRlbnQ9ZCksbCYmKGwudGV4dENvbnRlbnQ9ZiksY3x8ci50ZXJtaW5hbHx8Vm4oKSxUaSgpLE50KCEwKSxjfHxaZSgidmlldy1zd2l0Y2giLHtmb3JjZVJlcGxheTohMH0pfWZ1bmN0aW9uIGVvKGUpe2U9ZXx8e307dmFyIHQ9ISFlLmludGVycnVwdCxuPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoImlzLXdhbmQtZW1iZWQtdGVybWluYWwiKTtpZihyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJiFuKXJldHVybiBrKCJcdTdFQzhcdTdBRUZcdTRFQTRcdTRFOTJcdTZBMjFcdTVGMEZcdTVGMDBcdTU0MkZcdTY1RjZcdUZGMENcdThCRjdcdTc2RjRcdTYzQTVcdTU3MjhcdTdFQzhcdTdBRUZcdTRFMkRcdThGOTNcdTUxNjVcdTMwMDIiLCJpbmZvIiksUHJvbWlzZS5yZXNvbHZlKCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGE9aT9pLnZhbHVlOiIiLHU9X3QoKSxzPXIucGVuZGluZ0F0dGFjaG1lbnRzLmxlbmd0aD4wO2lmKGF8fHMpe3ZhciBvPXMmJnIuc2VsZWN0ZWRJZD9hZyhyLnNlbGVjdGVkSWQpLmNhdGNoKGZ1bmN0aW9uKGwpe2soIlx1OTY0NFx1NEVGNlx1NEUwQVx1NEYyMFx1NTkzMVx1OEQyNTogIisobCYmbC5tZXNzYWdlfHxsKSwiZXJyb3IiKTt2YXIgYz1sIGluc3RhbmNlb2YgRXJyb3I/bDpuZXcgRXJyb3IoU3RyaW5nKGwpKTt0aHJvdyBjLl9fd2FuZFRvYXN0ZWQ9ITAsY30pOlByb21pc2UucmVzb2x2ZShbXSk7cmV0dXJuIG8udGhlbihmdW5jdGlvbihsKXt2YXIgYz11ZyhsKSxmPWMrKGF8fChsLmxlbmd0aD8iXHU4QkY3XHU2N0U1XHU3NzBCXHU5NjQ0XHU0RUY2XHUzMDAyIjoiIikpO2wubGVuZ3RoJiZpZygpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzIik7aWYoZCYmZC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx1ZSh1KSlyZXR1cm4gR2YoZixpLHUse2ludGVycnVwdDp0fSk7dmFyIHY9ZHAodSxmKSxoPSFyLndzQ29ubmVjdGVkO3JldHVybiBoPyhtcCh2KSxpJiYoaS52YWx1ZT0iIixIdChpKSksb3QoIiIpLFByb21pc2UucmVzb2x2ZSgpKTpjcCh1KS50aGVuKGZ1bmN0aW9uKGcpe2lmKCFnKXJldHVybiBudWxsO3ZhciBtPXIuY3VycmVudFZpZXc7aWYoZyYmZy5wcm92aWRlcj09PSJjb2RleCImJnIuc2VsZWN0ZWRJZCE9PWcuaWQpdGhyb3cgbmV3IEVycm9yKCJDb2RleCBzZXNzaW9uIGNoYW5nZWQgYmVmb3JlIGlucHV0IHNlbmQuIik7cmV0dXJuIEN1KCksZnAodiwiZW50ZXJfdGV4dCIsMzAsbSkudGhlbihmdW5jdGlvbigpe2kmJmkudmFsdWU9PT1hJiYoaS52YWx1ZT0iIixIdChpKSksb3QoIiIpfSl9KS5jYXRjaChmdW5jdGlvbihnKXt0aHJvdyBrKHVvKGcpLCJlcnJvciIpLGcmJihnLl9fd2FuZFRvYXN0ZWQ9ITApLGd9KX0pLmNhdGNoKGZ1bmN0aW9uKGwpe3Rocm93IGwmJmwuX193YW5kVG9hc3RlZHx8ayh1byhsKSwiZXJyb3IiKSxsfSl9cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpfXZhciB0bz17fSxubz0zNTA7ZnVuY3Rpb24gR2YoZSx0LG4saSl7aT1pfHx7fTt2YXIgYT0hIWkuaW50ZXJydXB0O2lmKCFyLnNlbGVjdGVkSWR8fCFlKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTtpZighbilyZXR1cm4gaygiXHU0RjFBXHU4QkREXHU0RTBEXHU1QjU4XHU1NzI4XHVGRjBDXHU4QkY3XHU5MUNEXHU2NUIwXHU5MDA5XHU2MkU5XHU2MjE2XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxQcm9taXNlLnJlc29sdmUoKTt2YXIgdT1EYXRlLm5vdygpLHM9dG9bbi5pZF18fDA7aWYodS1zPG5vKXJldHVybiBjb25zb2xlLmxvZygiW3dhbmRdIHBvc3RTdHJ1Y3R1cmVkSW5wdXQ6IGR1cGxpY2F0ZSBzdWJtaXQgKHdpdGhpbiAiK25vKyJtcykgaWdub3JlZCBmb3Igc2Vzc2lvbiIsbi5pZCksUHJvbWlzZS5yZXNvbHZlKCk7dG9bbi5pZF09dTt2YXIgbz0hIShuLnN0cnVjdHVyZWRTdGF0ZSYmbi5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQmJm4uc3RhdHVzPT09InJ1bm5pbmciKSxsPW8mJmEsYz1vJiYhYSxmPXNyKEFycmF5LmlzQXJyYXkobi5tZXNzYWdlcyk/bi5tZXNzYWdlcy5zbGljZSgpOltdKSxkO2lmKGMpe3ZhciB2PUFycmF5LmlzQXJyYXkobi5xdWV1ZWRNZXNzYWdlcyk/bi5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO3YucHVzaChlKSxkPXtpZDpuLmlkLHF1ZXVlZE1lc3NhZ2VzOnZ9LCQoZCk7dmFyIGg9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKEUpe3JldHVybiBFLmlkPT09bi5pZH0pfHxuO3IuY3VycmVudE1lc3NhZ2VzPVJlKGgsbnQoaCxoLm91dHB1dCwhMSkpLEpuKCJcdTVERjJcdTUyQTBcdTUxNjVcdTYzOTJcdTk2MUZcdTIwMjYiKSxLZSghMCksY24oKSxrKHYubGVuZ3RoPjE/Ilx1NURGMlx1NTJBMFx1NTE2NVx1NjM5Mlx1OTYxRlx1RkYwOFx1NTE3MSAiK3YubGVuZ3RoKyIgXHU2NzYxXHU3QjQ5XHU1Rjg1XHVGRjA5IjoiXHU1REYyXHU1MkEwXHU1MTY1XHU2MzkyXHU5NjFGXHVGRjBDXHU3QjQ5XHU1RjUzXHU1MjREXHU1NkRFXHU1OTBEXHU1QjhDXHU2MjEwXHU0RjFBXHU4MUVBXHU1MkE4XHU1M0QxXHU5MDAxXHUzMDAyIiwiaW5mbyIpfWVsc2V7dmFyIGc9e3JvbGU6InVzZXIiLGNvbnRlbnQ6W3t0eXBlOiJ0ZXh0Iix0ZXh0OmV9XX07Zi5wdXNoKGcpO3ZhciBtPU9iamVjdC5hc3NpZ24oe30sbi5zdHJ1Y3R1cmVkU3RhdGV8fHt9LHtpbkZsaWdodDohMH0pOyQoe2lkOm4uaWQsc3RhdHVzOiJydW5uaW5nIixtZXNzYWdlczpmLHN0cnVjdHVyZWRTdGF0ZTptfSksci5jdXJyZW50TWVzc2FnZXM9UmUoT2JqZWN0LmFzc2lnbih7fSxuLHtzdGF0dXM6InJ1bm5pbmciLG1lc3NhZ2VzOmYsc3RydWN0dXJlZFN0YXRlOm19KSxmKSxKbihsPyJcdTVERjJcdTRFMkRcdTY1QURcdUZGMENcdTZCNjNcdTU3MjhcdTU5MDRcdTc0MDZcdTY1QjBcdTZEODhcdTYwNkZcdTIwMjYiOiJcdTYwMURcdTgwMDNcdTRFMkRcdTIwMjYiKSxDdSgpLEtlKCEwKSxsJiZrKCJcdTVERjJcdTRFMkRcdTY1QURcdTRFMEFcdTRFMDBcdTY3NjFcdTU2REVcdTU5MERcdUZGMENcdTZCNjNcdTU3MjhcdTU5MDRcdTc0MDZcdTY1QjBcdTZEODhcdTYwNkZcdTIwMjYiLCJpbmZvIil9dCYmKHQudmFsdWU9IiIsSHQodCkpLG90KCIiKTt2YXIgeT1yLnF1ZXVlRXBvY2gsdz10eXBlb2YgY3J5cHRvPCJ1IiYmY3J5cHRvLnJhbmRvbVVVSUQ/Y3J5cHRvLnJhbmRvbVVVSUQoKTpEYXRlLm5vdygpLnRvU3RyaW5nKDM2KSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMiwxMCk7cmV0dXJuIGZldGNoKCIvYXBpL3N0cnVjdHVyZWQtc2Vzc2lvbnMvIituLmlkKyIvbWVzc2FnZXMiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDplLGludGVycnVwdDpsfHx2b2lkIDAsaWRlbXBvdGVuY3lLZXk6d30pfSkudGhlbihmdW5jdGlvbihFKXtyZXR1cm4gRS5vaz9FLmpzb24oKTpFLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybntlcnJvcjoiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1In19KS50aGVuKGZ1bmN0aW9uKEIpe3ZhciBGPW5ldyBFcnJvcihCJiZCLmVycm9yfHwiXHU2NUUwXHU2Q0Q1XHU1M0QxXHU5MDAxXHU3RUQzXHU2Nzg0XHU1MzE2XHU2RDg4XHU2MDZGXHUzMDAyIik7dGhyb3cgRi5lcnJvckNvZGU9QiYmQi5lcnJvckNvZGUsRi5odHRwU3RhdHVzPUUuc3RhdHVzLEZ9KX0pLnRoZW4oZnVuY3Rpb24oRSl7aWYoRSYmRS5lcnJvcil0aHJvdyBuZXcgRXJyb3IoRS5lcnJvcik7aWYoRSYmRS5pZCYmKHIucXVldWVFcG9jaD55JiZFLnF1ZXVlZE1lc3NhZ2VzJiZkZWxldGUgRS5xdWV1ZWRNZXNzYWdlcywkKEUpLEUuaWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgQj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oRil7cmV0dXJuIEYuaWQ9PT1FLmlkfSl8fEU7ci5jdXJyZW50TWVzc2FnZXM9UmUoQixudChCLEUub3V0cHV0LCExKSksS2UoITApLGNuKCl9fSkuY2F0Y2goZnVuY3Rpb24oRSl7aWYoRSYmRS5lcnJvckNvZGU9PT0iZHVwbGljYXRlX2lkZW1wb3RlbmN5X2tleSIpe2soRS5tZXNzYWdlfHwiXHU2OEMwXHU2RDRCXHU1MjMwXHU5MUNEXHU1OTBEXHU1M0QxXHU5MDAxXHVGRjBDXHU1REYyXHU2MkU2XHU2MjJBXHUzMDAyIiwid2FybmluZyIpLEpuKCJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKTtyZXR1cm59aWYoYyl7dmFyIEI9QXJyYXkuaXNBcnJheShuLnF1ZXVlZE1lc3NhZ2VzKT9uLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYoJCh7aWQ6bi5pZCxxdWV1ZWRNZXNzYWdlczpCfSksbi5pZD09PXIuc2VsZWN0ZWRJZCl7dmFyIEY9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKFYpe3JldHVybiBWLmlkPT09bi5pZH0pfHxuO3IuY3VycmVudE1lc3NhZ2VzPVJlKEYsbnQoRixGLm91dHB1dCwhMSkpLEtlKCEwKSxjbigpfX1lbHNle3ZhciB4PWYuc2xpY2UoMCwtMSk7JCh7aWQ6bi5pZCxzdGF0dXM6bi5zdGF0dXMsbWVzc2FnZXM6eCxzdHJ1Y3R1cmVkU3RhdGU6T2JqZWN0LmFzc2lnbih7fSxuLnN0cnVjdHVyZWRTdGF0ZXx8e30se2luRmxpZ2h0OiExfSl9KSxuLmlkPT09ci5zZWxlY3RlZElkJiYoci5jdXJyZW50TWVzc2FnZXM9UmUoT2JqZWN0LmFzc2lnbih7fSxuLHttZXNzYWdlczp4LHN0cnVjdHVyZWRTdGF0ZTpPYmplY3QuYXNzaWduKHt9LG4uc3RydWN0dXJlZFN0YXRlfHx7fSx7aW5GbGlnaHQ6ITF9KX0pLHgpLEtlKCEwKSl9dmFyIFM9RSYmRS5tZXNzYWdlfHwiIixfPVM9PT0iRmFpbGVkIHRvIGZldGNoInx8Uz09PSJOZXR3b3JrRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIGZldGNoIHJlc291cmNlLiJ8fFM9PT0iTG9hZCBmYWlsZWQifHwvYWJvcnRlZHxhYm9ydGVycm9yfG5ldHdvcmtlcnJvcnxmYWlsZWQgdG8gZmV0Y2gvaS50ZXN0KFMpO198fGsoRSYmRS5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1M0QxXHU5MDAxXHU3RUQzXHU2Nzg0XHU1MzE2XHU2RDg4XHU2MDZGXHUzMDAyIiwiZXJyb3IiKSxKbigiRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgU2hpZnQrRW50ZXIgXHU2MzYyXHU4ODRDIil9KX1mdW5jdGlvbiBKbihlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtaGludCIpO3QmJih0LnRleHRDb250ZW50PWUpfWZ1bmN0aW9uIGNuKCl7c3QoKX12YXIgWWY9MTAscm89MjY7ZnVuY3Rpb24gUWYoZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXJldHVybiIiO3ZhciB0PWUucmVwbGFjZSgvXHMrL2csIiAiKS50cmltKCk7cmV0dXJuIHQubGVuZ3RoPD1ybz90OnQuc2xpY2UoMCxybykrIlx1MjAyNiJ9ZnVuY3Rpb24gJGYoKXtyZXR1cm4hIXIucXVldWVCYXJFeHBhbmRlZH1mdW5jdGlvbiBYZihlKXtpZighIXIucXVldWVCYXJFeHBhbmRlZCE9ISFlKXtyLnF1ZXVlQmFyRXhwYW5kZWQ9ISFlO3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5xdWV1ZS1iYXIiKTt0JiZ0LmNsYXNzTGlzdC50b2dnbGUoImV4cGFuZGVkIiwhIWUpfX1mdW5jdGlvbiBaZihlLHQsbil7dmFyIGk9ZS5sZW5ndGgsYT0icXVldWUtYmFyIjtuJiYoYSs9IiBxdWV1ZS1iYXItY2FwYWNpdHkiKSx0JiYoYSs9IiBxdWV1ZS1iYXItaW5mbGlnaHQiKTtmb3IodmFyIHU9dD8iXHU0RTJEXHU2NUFEXHU1RjUzXHU1MjREXHU1NkRFXHU1OTBEXHVGRjBDXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU4RkQ5XHU2NzYxIjoiXHU3QUNCXHU1MzczXHU1M0QxXHU5MDAxXHU4RkQ5XHU2NzYxIixzPSIiLG89MDtvPGk7bysrKXt2YXIgbD1lW29dPT1udWxsPyIiOlN0cmluZyhlW29dKSxjPVFmKGwpLGY9bCsiXHVGRjA4XHU2MzA5XHU0RjRGXHU1M0VGXHU2MkQ2XHU1MkE4XHU4QzAzXHU1RThGXHVGRjA5IjtzKz0nPGxpIGNsYXNzPSJxdWV1ZS1iYXItaXRlbSIgZGF0YS1pbmRleD0iJytvKyciIGRhdGEtYWN0aW9uPSJkcmFnIiB0aXRsZT0iJytwKGYpKyciPjxzcGFuIGNsYXNzPSJxdWV1ZS1iYXItaXRlbS1pbmRleCIgYXJpYS1oaWRkZW49InRydWUiPicrKG8rMSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0icXVldWUtYmFyLWl0ZW0tdGV4dCI+JytwKGMpKyc8L3NwYW4+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxdWV1ZS1iYXItaXRlbS1wcm9tb3RlIiBkYXRhLWFjdGlvbj0icHJvbW90ZS1pdGVtIiB0aXRsZT0iJytwKHUpKyciIGFyaWEtbGFiZWw9Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1N0IyQyAnKyhvKzEpKycgXHU2NzYxIj48c3ZnIHdpZHRoPSIxMSIgaGVpZ2h0PSIxMSIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJjdXJyZW50Q29sb3IiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMTMgMiBMNCAxNCBMMTEgMTQgTDEwIDIyIEwyMCA5IEwxMyA5IFoiLz48L3N2Zz48L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InF1ZXVlLWJhci1pdGVtLWRlbGV0ZSIgZGF0YS1hY3Rpb249ImRlbGV0ZSIgYXJpYS1sYWJlbD0iXHU1MjIwXHU5NjY0XHU3QjJDICcrKG8rMSkrJyBcdTY3NjFcdTYzOTJcdTk2MUZcdTZEODhcdTYwNkYiIHRpdGxlPSJcdTUyMjBcdTk2NjQiPjxzdmcgd2lkdGg9IjExIiBoZWlnaHQ9IjExIiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PGxpbmUgeDE9IjYiIHkxPSI2IiB4Mj0iMTgiIHkyPSIxOCIvPjxsaW5lIHgxPSI2IiB5MT0iMTgiIHgyPSIxOCIgeTI9IjYiLz48L3N2Zz48L2J1dHRvbj48L2xpPid9dmFyIGQ9IiI7cmV0dXJuIGk+PTImJihkPSc8ZGl2IGNsYXNzPSJxdWV1ZS1iYXItaGVhZCI+PHNwYW4gY2xhc3M9InF1ZXVlLWJhci1oZWFkLWNvdW50Ij4nK2krJyBcdTY3NjFcdTYzOTJcdTk2MUY8L3NwYW4+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJxdWV1ZS1iYXItY2xlYXItYWxsIiBkYXRhLWFjdGlvbj0iY2xlYXItYWxsIiB0aXRsZT0iXHU2RTA1XHU3QTdBXHU1MTY4XHU5MEU4XHU2MzkyXHU5NjFGIiBhcmlhLWxhYmVsPSJcdTZFMDVcdTdBN0FcdTUxNjhcdTkwRTggJytpKycgXHU2NzYxXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGIj5cdTZFMDVcdTdBN0E8L2J1dHRvbj48L2Rpdj4nKSwnPGRpdiBjbGFzcz0iJythKyciIGRhdGEtcXVldWUtYmFyPSIxIiB0aXRsZT0iXHU2MzkyXHU5NjFGICcraSsnIFx1Njc2MVx1RkYwOFx1NjMwOVx1NEY0Rlx1NkMxNFx1NkNFMVx1NTNFRlx1OEMwM1x1NUU4Rlx1RkYwOSI+JytkKyc8b2wgY2xhc3M9InF1ZXVlLWJhci1saXN0IiBkYXRhLXF1ZXVlLWxpc3Q9IjEiPicrcysiPC9vbD48L2Rpdj4ifWZ1bmN0aW9uIHN0KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInF1ZXVlLWJhci1ob3N0Iik7aWYoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiLGk9bj9KaSh0KTpbXTtpZihpPUFycmF5LmlzQXJyYXkoaSk/aTpbXSwhbnx8aS5sZW5ndGg9PT0wKXtlLmhpZGRlbj0hMCxlLmlubmVySFRNTD0iIixyLnF1ZXVlQmFyRXhwYW5kZWQ9ITE7cmV0dXJufWlmKCFyLnF1ZXVlQmFyRHJhZyl7ZS5oaWRkZW49ITE7dmFyIGE9ISEodC5zdHJ1Y3R1cmVkU3RhdGUmJnQuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZ0LnN0YXR1cz09PSJydW5uaW5nIiksdT1pLmxlbmd0aD49WWY7ZS5pbm5lckhUTUw9WmYoaSxhLHUpfX19ZnVuY3Rpb24gZmkoZSx0KXskKHtpZDplLmlkLHF1ZXVlZE1lc3NhZ2VzOnR9KTt2YXIgbj1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaWQ9PT1lLmlkfSl8fGU7ci5jdXJyZW50TWVzc2FnZXM9UmUobixudChuLG4ub3V0cHV0LCExKSksS2UoITApLHN0KCl9ZnVuY3Rpb24gZXAoZSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHMpe3JldHVybiBzLmlkPT09ci5zZWxlY3RlZElkfSk7aWYodCl7dmFyIG49QXJyYXkuaXNBcnJheSh0LnF1ZXVlZE1lc3NhZ2VzKT90LnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYoIShlPDB8fGU+PW4ubGVuZ3RoKSl7dmFyIGk9bi5zbGljZSgpLGE9bi5zbGljZSgwLGUpLmNvbmNhdChuLnNsaWNlKGUrMSkpOyQoe2lkOnQuaWQscXVldWVkTWVzc2FnZXM6YX0pO3ZhciB1PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PXQuaWR9KXx8dDtyLmN1cnJlbnRNZXNzYWdlcz1SZSh1LG50KHUsdS5vdXRwdXQsITEpKSxLZSghMCksc3QoKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrdC5pZCsiL3F1ZXVlZC8iK2Use21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihzKXtpZighcy5vaylyZXR1cm4gcy5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24obyl7dGhyb3cgbmV3IEVycm9yKG8mJm8uZXJyb3J8fCJcdTUyMjBcdTk2NjRcdTU5MzFcdThEMjUiKX0pfSkuY2F0Y2goZnVuY3Rpb24ocyl7ZmkodCxpKSxrKHMmJnMubWVzc2FnZXx8Ilx1NTIyMFx1OTY2NFx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19fWZ1bmN0aW9uIHRwKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGkpe3JldHVybiBpLmlkPT09ci5zZWxlY3RlZElkfSk7aWYoZSl7dmFyIHQ9QXJyYXkuaXNBcnJheShlLnF1ZXVlZE1lc3NhZ2VzKT9lLnF1ZXVlZE1lc3NhZ2VzLnNsaWNlKCk6W107aWYodC5sZW5ndGghPT0wKXtyLnF1ZXVlQmFyRXhwYW5kZWQ9ITEsJCh7aWQ6ZS5pZCxxdWV1ZWRNZXNzYWdlczpbXX0pO3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PWUuaWR9KXx8ZTtyLmN1cnJlbnRNZXNzYWdlcz1SZShuLG50KG4sbi5vdXRwdXQsITEpKSxLZSghMCksc3QoKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrZS5pZCsiL3F1ZXVlZCIse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtpZighaS5vaylyZXR1cm4gaS5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57fX0pLnRoZW4oZnVuY3Rpb24oYSl7dGhyb3cgbmV3IEVycm9yKGEmJmEuZXJyb3J8fCJcdTZFMDVcdTdBN0FcdTU5MzFcdThEMjUiKX0pO2soIlx1NURGMlx1NkUwNVx1N0E3QSAiK3QubGVuZ3RoKyIgXHU2NzYxXHU2MzkyXHU5NjFGXHU2RDg4XHU2MDZGXHUzMDAyIiwiaW5mbyIpfSkuY2F0Y2goZnVuY3Rpb24oaSl7ZmkoZSx0KSxrKGkmJmkubWVzc2FnZXx8Ilx1NkUwNVx1N0E3QVx1NjM5Mlx1OTYxRlx1NkQ4OFx1NjA2Rlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19fWZ1bmN0aW9uIG5wKGUpe2lmKCFyLnF1ZXVlQmFyUHJvbW90aW5nKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obCl7cmV0dXJuIGwuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZih0KXt2YXIgbj1BcnJheS5pc0FycmF5KHQucXVldWVkTWVzc2FnZXMpP3QucXVldWVkTWVzc2FnZXMuc2xpY2UoKTpbXTtpZighKGU8MHx8ZT49bi5sZW5ndGgpKXt2YXIgaT1uW2VdLGE9bi5zbGljZSgwLGUpLmNvbmNhdChuLnNsaWNlKGUrMSkpLHU9bi5zbGljZSgpLHM9ISEodC5zdHJ1Y3R1cmVkU3RhdGUmJnQuc3RydWN0dXJlZFN0YXRlLmluRmxpZ2h0JiZ0LnN0YXR1cz09PSJydW5uaW5nIik7ci5xdWV1ZUJhclByb21vdGluZz0hMCxhLmxlbmd0aD09PTAmJihyLnF1ZXVlQmFyRXhwYW5kZWQ9ITEpLCQoe2lkOnQuaWQscXVldWVkTWVzc2FnZXM6YX0pO3ZhciBvPXR5cGVvZiBjcnlwdG88InUiJiZjcnlwdG8ucmFuZG9tVVVJRD9jcnlwdG8ucmFuZG9tVVVJRCgpOkRhdGUubm93KCkudG9TdHJpbmcoMzYpKyItIitNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zbGljZSgyLDEwKTtrKHM/Ilx1NURGMlx1OEJGN1x1NkM0Mlx1NEUyRFx1NjVBRFx1NUY1M1x1NTI0RFx1NTZERVx1NTkwRFx1RkYwQ1x1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MVx1MzAwMiI6Ilx1NURGMlx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1OEZEOVx1Njc2MVx1NkQ4OFx1NjA2Rlx1MzAwMiIsImluZm8iKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrdC5pZCsiL3F1ZXVlZC8iK2UrIi9wcm9tb3RlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7ZXhwZWN0ZWRUZXh0OmksaWRlbXBvdGVuY3lLZXk6b30pfSkudGhlbihmdW5jdGlvbihsKXtyZXR1cm4gbC5vaz9sLmpzb24oKTpsLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihjKXt0aHJvdyBuZXcgRXJyb3IoYyYmYy5lcnJvcnx8Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNSIpfSl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKGwmJmwuaWQmJigkKGwpLGwuaWQ9PT1yLnNlbGVjdGVkSWQpKXt2YXIgYz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZil7cmV0dXJuIGYuaWQ9PT1sLmlkfSl8fGw7ci5jdXJyZW50TWVzc2FnZXM9UmUoYyxudChjLGwub3V0cHV0LCExKSksS2UoITApLHN0KCl9ci5xdWV1ZUJhclByb21vdGluZz0hMX0pLmNhdGNoKGZ1bmN0aW9uKGwpe3IucXVldWVCYXJQcm9tb3Rpbmc9ITEsZmkodCx1KSxrKGwmJmwubWVzc2FnZXx8Ilx1N0FDQlx1NTM3M1x1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIil9KX19fX1mdW5jdGlvbiBycChlLHQpe3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihkKXtyZXR1cm4gZC5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKG4pe3ZhciBpPUFycmF5LmlzQXJyYXkobi5xdWV1ZWRNZXNzYWdlcyk/bi5xdWV1ZWRNZXNzYWdlcy5zbGljZSgpOltdO2lmKCEoaS5sZW5ndGg8PTEpJiZ0KXt2YXIgYT10LnBhcmVudEVsZW1lbnQ7aWYoYSl7dmFyIHU9TnVtYmVyKHQuZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IikpLHM9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYS5jaGlsZHJlbiksbz1zLm1hcChmdW5jdGlvbihkKXtyZXR1cm4gZC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKX0pLGw9MztvLmxlbmd0aD49MiYmKGw9TWF0aC5tYXgoMCxvWzFdLnRvcC1vWzBdLnRvcC1vWzBdLmhlaWdodCkpLGUucHJldmVudERlZmF1bHQoKTt0cnl7dC5zZXRQb2ludGVyQ2FwdHVyZShlLnBvaW50ZXJJZCl9Y2F0Y2h7fWlmKG5hdmlnYXRvciYmbmF2aWdhdG9yLnZpYnJhdGUpdHJ5e25hdmlnYXRvci52aWJyYXRlKDgpfWNhdGNoe31yLnF1ZXVlQmFyRHJhZz17cG9pbnRlcklkOmUucG9pbnRlcklkLGhhbmRsZUVsOnQsaXRlbUVsOnQsbGlzdEVsOmEsc2libGluZ3M6cyxyZWN0czpvLG9yaWdJbmRleDp1LHRhcmdldEluZGV4OnUsc3RhcnRZOmUuY2xpZW50WSxnYXA6bCxxdWV1ZVNuYXBzaG90Oml9LHQuY2xhc3NMaXN0LmFkZCgiZHJhZ2dpbmciKSxzLmZvckVhY2goZnVuY3Rpb24oZCl7ZCE9PXQmJmQuY2xhc3NMaXN0LmFkZCgicXVldWUtYmFyLWl0ZW0tc2xpZGluZyIpfSk7dmFyIGM9ZnVuY3Rpb24oZCl7YXAoZCl9LGY9ZnVuY3Rpb24oZCl7dXAoZCl9O3IucXVldWVCYXJEcmFnLm1vdmVIYW5kbGVyPWMsci5xdWV1ZUJhckRyYWcudXBIYW5kbGVyPWYsdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVybW92ZSIsYyksdC5hZGRFdmVudExpc3RlbmVyKCJwb2ludGVydXAiLGYpLHQuYWRkRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsZil9fX19ZnVuY3Rpb24gaXAoZSx0LG4saSl7Zm9yKHZhciBhPW4ubGVuZ3RoLHU9W10scz0wO3M8YTtzKyspdS5wdXNoKHMpO3Uuc3BsaWNlKGUsMSksdS5zcGxpY2UodCwwLGUpO2Zvcih2YXIgbz1uWzBdLnRvcCxsPW5bMF0udG9wLGM9MTtjPGE7YysrKW5bY10udG9wPGwmJihsPW5bY10udG9wKTtmb3IodmFyIGY9e30sZD1sLHY9MDt2PGE7disrKXt2YXIgaD11W3ZdO2ZbaF09ZCxkKz1uW2hdLmhlaWdodCtpfXJldHVybiBmfWZ1bmN0aW9uIGFwKGUpe3ZhciB0PXIucXVldWVCYXJEcmFnO2lmKCEoIXR8fGUucG9pbnRlcklkIT09dC5wb2ludGVySWQpKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIG49ZS5jbGllbnRZLXQuc3RhcnRZO3QuaXRlbUVsLnN0eWxlLnRyYW5zZm9ybT0idHJhbnNsYXRlWSgiK24rInB4KSI7Zm9yKHZhciBpPXQucmVjdHNbdC5vcmlnSW5kZXhdLnRvcCt0LnJlY3RzW3Qub3JpZ0luZGV4XS5oZWlnaHQvMituLGE9dC5vcmlnSW5kZXgsdT0wO3U8dC5yZWN0cy5sZW5ndGg7dSsrKWlmKHUhPT10Lm9yaWdJbmRleCl7dmFyIHM9dC5yZWN0c1t1XS50b3ArdC5yZWN0c1t1XS5oZWlnaHQvMjt1PHQub3JpZ0luZGV4JiZpPHM/YT1NYXRoLm1pbihhLHUpOnU+dC5vcmlnSW5kZXgmJmk+cyYmKGE9TWF0aC5tYXgoYSx1KSl9aWYoYSE9PXQudGFyZ2V0SW5kZXgpe3QudGFyZ2V0SW5kZXg9YTt2YXIgbz1pcCh0Lm9yaWdJbmRleCxhLHQucmVjdHMsdC5nYXApO3Quc2libGluZ3MuZm9yRWFjaChmdW5jdGlvbihsLGMpe2lmKGMhPT10Lm9yaWdJbmRleCl7dmFyIGY9b1tjXS10LnJlY3RzW2NdLnRvcDtsLnN0eWxlLnRyYW5zZm9ybT1mPyJ0cmFuc2xhdGVZKCIrZisicHgpIjoiIn19KX19fWZ1bmN0aW9uIHVwKGUpe3ZhciB0PXIucXVldWVCYXJEcmFnO2lmKCEoIXR8fGUmJmUucG9pbnRlcklkIT09dC5wb2ludGVySWQpKXt0cnl7dC5oYW5kbGVFbC5yZWxlYXNlUG9pbnRlckNhcHR1cmUodC5wb2ludGVySWQpfWNhdGNoe310LmhhbmRsZUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJtb3ZlIix0Lm1vdmVIYW5kbGVyKSx0LmhhbmRsZUVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoInBvaW50ZXJ1cCIsdC51cEhhbmRsZXIpLHQuaGFuZGxlRWwucmVtb3ZlRXZlbnRMaXN0ZW5lcigicG9pbnRlcmNhbmNlbCIsdC51cEhhbmRsZXIpO3ZhciBuPXQub3JpZ0luZGV4LGk9dC50YXJnZXRJbmRleCxhPXQucXVldWVTbmFwc2hvdDtpZih0LnNpYmxpbmdzLmZvckVhY2goZnVuY3Rpb24oYyl7Yy5zdHlsZS50cmFuc2Zvcm09IiIsYy5jbGFzc0xpc3QucmVtb3ZlKCJxdWV1ZS1iYXItaXRlbS1zbGlkaW5nIil9KSx0Lml0ZW1FbC5jbGFzc0xpc3QucmVtb3ZlKCJkcmFnZ2luZyIpLHIucXVldWVCYXJEcmFnPW51bGwsbj09PWkpe3N0KCk7cmV0dXJufWZvcih2YXIgdT1bXSxzPTA7czxhLmxlbmd0aDtzKyspdS5wdXNoKHMpO3Uuc3BsaWNlKG4sMSksdS5zcGxpY2UoaSwwLG4pO3ZhciBvPXUubWFwKGZ1bmN0aW9uKGMpe3JldHVybiBhW2NdfSksbD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oYyl7cmV0dXJuIGMuaWQ9PT1yLnNlbGVjdGVkSWR9KTtpZighbCl7c3QoKTtyZXR1cm59JCh7aWQ6bC5pZCxxdWV1ZWRNZXNzYWdlczpvfSksc3QoKSxmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zLyIrbC5pZCsiL3F1ZXVlZCIse21ldGhvZDoiUEFUQ0giLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtvcmRlcjp1fSl9KS50aGVuKGZ1bmN0aW9uKGMpe2lmKCFjLm9rKXJldHVybiBjLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybnt9fSkudGhlbihmdW5jdGlvbihmKXt0aHJvdyBuZXcgRXJyb3IoZiYmZi5lcnJvcnx8Ilx1NjM5Mlx1NUU4Rlx1NTkzMVx1OEQyNSIpfSl9KS5jYXRjaChmdW5jdGlvbihjKXtmaShsLGEpLGsoYyYmYy5tZXNzYWdlfHwiXHU4QzAzXHU2NTc0XHU2MzkyXHU5NjFGXHU5ODdBXHU1RThGXHU1OTMxXHU4RDI1XHUzMDAyIiwiZXJyb3IiKX0pfX1mdW5jdGlvbiBzcCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJxdWV1ZS1iYXItaG9zdCIpOyFlfHxlLl9fcXVldWVEZWxlZ2F0ZWR8fChlLl9fcXVldWVEZWxlZ2F0ZWQ9ITAsZS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odCl7dmFyIG49dC50YXJnZXQsaT1uJiZuLmNsb3Nlc3Q/bi5jbG9zZXN0KCJbZGF0YS1hY3Rpb25dIik6bnVsbDtpZihpJiZlLmNvbnRhaW5zKGkpKXt2YXIgYT1pLmdldEF0dHJpYnV0ZSgiZGF0YS1hY3Rpb24iKTtpZihhPT09ImRyYWciKXJldHVybjtpZih0LnByZXZlbnREZWZhdWx0KCksdC5zdG9wUHJvcGFnYXRpb24oKSxhPT09InByb21vdGUtaXRlbSIpe3ZhciB1PWkuY2xvc2VzdCgiLnF1ZXVlLWJhci1pdGVtIik7dSYmbnAoTnVtYmVyKHUuZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IikpKX1lbHNlIGlmKGE9PT0iZGVsZXRlIil7dmFyIHM9aS5jbG9zZXN0KCIucXVldWUtYmFyLWl0ZW0iKTtzJiZlcChOdW1iZXIocy5nZXRBdHRyaWJ1dGUoImRhdGEtaW5kZXgiKSkpfWVsc2UgYT09PSJjbGVhci1hbGwiJiZ0cCgpO3JldHVybn19KSxlLmFkZEV2ZW50TGlzdGVuZXIoInBvaW50ZXJkb3duIixmdW5jdGlvbih0KXtpZighKHQuYnV0dG9uIT09dm9pZCAwJiZ0LmJ1dHRvbiE9PTApKXt2YXIgbj10LnRhcmdldDtpZighKG4mJm4uY2xvc2VzdCYmbi5jbG9zZXN0KCdbZGF0YS1hY3Rpb249ImRlbGV0ZSJdLCBbZGF0YS1hY3Rpb249InByb21vdGUtaXRlbSJdLCBbZGF0YS1hY3Rpb249ImNsZWFyLWFsbCJdLCBbZGF0YS1hY3Rpb249ImV4cGFuZCJdJykpKXt2YXIgaT1uJiZuLmNsb3Nlc3Q/bi5jbG9zZXN0KCIucXVldWUtYmFyLWl0ZW0iKTpudWxsO2kmJnJwKHQsaSl9fX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsZnVuY3Rpb24odCl7dC5rZXk9PT0iRXNjYXBlIiYmJGYoKSYmKHQuc3RvcFByb3BhZ2F0aW9uKCksWGYoITEpKX0pKX1mdW5jdGlvbiBpbyhlKXtpZighZXx8IUFycmF5LmlzQXJyYXkoZS5jb250ZW50KSlyZXR1cm4gMDtmb3IodmFyIHQ9MCxuPTA7bjxlLmNvbnRlbnQubGVuZ3RoO24rKyl7dmFyIGk9ZS5jb250ZW50W25dO2lmKGkpe2lmKHR5cGVvZiBpLnRleHQ9PSJzdHJpbmciJiYodCs9aS50ZXh0Lmxlbmd0aCksdHlwZW9mIGkudGhpbmtpbmc9PSJzdHJpbmciJiYodCs9aS50aGlua2luZy5sZW5ndGgpLHR5cGVvZiBpLmNvbnRlbnQ9PSJzdHJpbmciKXQrPWkuY29udGVudC5sZW5ndGg7ZWxzZSBpZihBcnJheS5pc0FycmF5KGkuY29udGVudCkpZm9yKHZhciBhPTA7YTxpLmNvbnRlbnQubGVuZ3RoO2ErKyl7dmFyIHU9aS5jb250ZW50W2FdO3UmJnR5cGVvZiB1LnRleHQ9PSJzdHJpbmciJiYodCs9dS50ZXh0Lmxlbmd0aCl9aWYoaS5pbnB1dCl0cnl7dCs9SlNPTi5zdHJpbmdpZnkoaS5pbnB1dCkubGVuZ3RofWNhdGNoe319fXJldHVybiB0fWZ1bmN0aW9uIG9wKGUsdCl7aWYoIWUpcmV0dXJuIHQ7aWYoIXQpcmV0dXJuIGU7dmFyIG49aW8oZSksaT1pbyh0KTtyZXR1cm4gaT49bj90Ok9iamVjdC5hc3NpZ24oe30sZSx7dXNhZ2U6dC51c2FnZXx8ZS51c2FnZX0pfWZ1bmN0aW9uIFJlKGUsdCl7dmFyIG49QXJyYXkuaXNBcnJheSh0KT9zcih0KTpbXSxpPUFycmF5LmlzQXJyYXkobik/bi5zbGljZSgpOltdO2lmKCFlfHxlLnNlc3Npb25LaW5kIT09InN0cnVjdHVyZWQiKXJldHVybiBpO2lmKGUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCl7dmFyIGE9aVtpLmxlbmd0aC0xXTsoIWF8fGEucm9sZSE9PSJhc3Npc3RhbnQiKSYmaS5wdXNoKHtyb2xlOiJhc3Npc3RhbnQiLGNvbnRlbnQ6W3t0eXBlOiJ0ZXh0Iix0ZXh0OiIiLF9fcHJvY2Vzc2luZzohMH1dfSl9cmV0dXJuIGl9ZnVuY3Rpb24gYW8oKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWQ9PT1yLnNlbGVjdGVkSWR9KTtVcihlKSxjbigpfWZ1bmN0aW9uIHVvKGUpe3ZhciB0PV90KCksbj10JiZ0LnByb3ZpZGVyPT09ImNvZGV4IjtyZXR1cm4gZSYmKGUuZXJyb3JDb2RlPT09IlNFU1NJT05fTk9UX1JVTk5JTkcifHxlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PX1BUWSIpP24/IkNvZGV4IFx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1Rlx1RkYxQlx1ODJFNVx1NUI1OFx1NTcyOCBDb2RleCBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTU3MjhcdTRGNjBcdTRFMEJcdTZCMjFcdTUzRDFcdTkwMDFcdTZEODhcdTYwNkZcdTY1RjZcdTgxRUFcdTUyQThcdTYwNjJcdTU5MERcdTMwMDIiOiJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUZcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1RkYwQ1x1NUMwNlx1NTcyOFx1NEY2MFx1NEUwQlx1NkIyMVx1NTNEMVx1OTAwMVx1NkQ4OFx1NjA2Rlx1NjVGNlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1MzAwMiI6ZSYmZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT1RfRk9VTkQiPyJcdTRGMUFcdThCRERcdTRFMERcdTVCNThcdTU3MjhcdUZGMENcdThCRjdcdTkxQ0RcdTY1QjBcdTkwMDlcdTYyRTlcdTYyMTZcdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTMwMDIiOmUmJmUubWVzc2FnZXx8KG4/IkNvZGV4IFx1NEYxQVx1OEJERFx1NjY4Mlx1NEUwRFx1NTNFRlx1NzUyOFx1RkYxQlx1ODJFNVx1NUI1OFx1NTcyOCBDb2RleCBcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdUZGMENcdTVDMDZcdTgxRUFcdTUyQThcdTVDMURcdThCRDVcdTYwNjJcdTU5MERcdTMwMDIiOiJcdTRGMUFcdThCRERcdTY2ODJcdTRFMERcdTUzRUZcdTc1MjhcdUZGMUJcdTgyRTVcdTVCNThcdTU3MjggQ2xhdWRlIFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1RkYwQ1x1NUMwNlx1ODFFQVx1NTJBOFx1NUMxRFx1OEJENVx1NjA2Mlx1NTkwRFx1MzAwMiIpfWZ1bmN0aW9uIHNvKGUpe3ZhciB0PW5ldyBFcnJvcihlJiZlLmVycm9yfHwiXHU0RjFBXHU4QkREXHU1REYyXHU3RUQzXHU2NzVGXHUzMDAyIik7cmV0dXJuIGUmJnR5cGVvZiBlPT0ib2JqZWN0IiYmKHQuZXJyb3JDb2RlPWUuZXJyb3JDb2RlfHxudWxsLHQuc2Vzc2lvbklkPWUuc2Vzc2lvbklkfHxyLnNlbGVjdGVkSWR8fG51bGwsdC5zZXNzaW9uU3RhdHVzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLCJzZXNzaW9uU3RhdHVzIik/ZS5zZXNzaW9uU3RhdHVzOm51bGwpLHR9ZnVuY3Rpb24gb28oZSl7cmV0dXJuIGUmJihlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PVF9SVU5OSU5HInx8ZS5lcnJvckNvZGU9PT0iU0VTU0lPTl9OT19QVFkifHxlLmVycm9yQ29kZT09PSJTRVNTSU9OX05PVF9GT1VORCIpfWZ1bmN0aW9uIGxwKGUsdCl7ZSYmJCh7aWQ6ZSxzdGF0dXM6dHx8ImV4aXRlZCJ9KX1mdW5jdGlvbiBTZyhlKXtpZighZXx8IUFycmF5LmlzQXJyYXkoZS5tZXNzYWdlcyl8fGUubWVzc2FnZXMubGVuZ3RoPDIpcmV0dXJuITE7dmFyIHQ9ZS5tZXNzYWdlcy5zb21lKGZ1bmN0aW9uKGkpe3JldHVybiBpJiZpLnJvbGU9PT0idXNlciImJkFycmF5LmlzQXJyYXkoaS5jb250ZW50KSYmaS5jb250ZW50LnNvbWUoZnVuY3Rpb24oYSl7cmV0dXJuIGEmJmEudHlwZT09PSJ0ZXh0IiYmdHlwZW9mIGEudGV4dD09InN0cmluZyImJmEudGV4dC50cmltKCkubGVuZ3RoPjB9KX0pLG49ZS5tZXNzYWdlcy5zb21lKGZ1bmN0aW9uKGkpe3JldHVybiBpJiZpLnJvbGU9PT0iYXNzaXN0YW50IiYmQXJyYXkuaXNBcnJheShpLmNvbnRlbnQpJiZpLmNvbnRlbnQuc29tZShmdW5jdGlvbihhKXtyZXR1cm4gYSYmYS50eXBlPT09InRleHQiJiZ0eXBlb2YgYS50ZXh0PT0ic3RyaW5nIiYmYS50ZXh0LnRyaW0oKS5sZW5ndGg+MH0pfSk7cmV0dXJuIHQmJm59ZnVuY3Rpb24gRGEoZSl7cmV0dXJuISEoZSYmIXVlKGUpJiYoZS5wcm92aWRlcj09PSJjbGF1ZGUifHxlLnByb3ZpZGVyPT09ImNvZGV4IikmJmUuc3RhdHVzIT09InJ1bm5pbmciJiZlLmNsYXVkZVNlc3Npb25JZCl9ZnVuY3Rpb24gY3AoZSx0KXtpZighZSlyZXR1cm4gaygiXHU0RjFBXHU4QkREXHU0RTBEXHU1QjU4XHU1NzI4XHVGRjBDXHU4QkY3XHU5MUNEXHU2NUIwXHU5MDA5XHU2MkU5XHU2MjE2XHU2NUIwXHU1RUZBXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxQcm9taXNlLnJlc29sdmUobnVsbCk7aWYoZS5zdGF0dXM9PT0icnVubmluZyIpcmV0dXJuIFByb21pc2UucmVzb2x2ZShlKTtpZighRGEoZSkpe3ZhciBuPWUmJmUucHJvdmlkZXI9PT0iY29kZXgiPyJDb2RleCI6IkNsYXVkZSI7cmV0dXJuIGsoIlx1OEJFNVx1NEYxQVx1OEJERFx1NkNBMVx1NjcwOVx1NTNFRlx1NjA2Mlx1NTkwRFx1NzY4NCAiK24rIiBcdTUzODZcdTUzRjJcdTRFMEFcdTRFMEJcdTY1ODdcdUZGMENcdThCRjdcdTY1QjBcdTVFRkFcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLFByb21pc2UucmVzb2x2ZShudWxsKX1yZXR1cm4gRW8oZS5pZCx0KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpPygkKGkpLG1lKCksTG4oaS5pZCksbW4oaS5pZCkudGhlbihmdW5jdGlvbigpe3JldHVybiBOdCghMCksaX0pKTpudWxsfSl9ZnVuY3Rpb24gZHAoZSx0KXtyZXR1cm5bdCwiXHIiXX1mdW5jdGlvbiBmcChlLHQsbixpKXt2YXIgYT1BcnJheS5pc0FycmF5KGUpP2UuZmlsdGVyKGZ1bmN0aW9uKHMpe3JldHVybiEhc30pOltdO2lmKGEubGVuZ3RoPT09MClyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7dmFyIHU9dHlwZW9mIG49PSJudW1iZXIiP246MDtyZXR1cm4gYS5yZWR1Y2UoZnVuY3Rpb24ocyxvLGwpe3JldHVybiBzLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gbD4wJiZ1PjA/bmV3IFByb21pc2UoZnVuY3Rpb24oYyl7c2V0VGltZW91dChjLHUpfSkudGhlbihmdW5jdGlvbigpe3JldHVybiBGdChvLGw9PT1hLmxlbmd0aC0xP3Q6dm9pZCAwLGkpfSk6RnQobyxsPT09YS5sZW5ndGgtMT90OnZvaWQgMCxpKX0pfSxQcm9taXNlLnJlc29sdmUoKSl9dmFyIHBwPTVlMyx2cD0xMDA7ZnVuY3Rpb24ga2EoZSl7ZSYmKHIucGVuZGluZ01lc3NhZ2VzLmxlbmd0aD49dnAmJnIucGVuZGluZ01lc3NhZ2VzLnNoaWZ0KCksci5wZW5kaW5nTWVzc2FnZXMucHVzaCh7aW5wdXQ6ZSxhdDpEYXRlLm5vdygpfSkpfWZ1bmN0aW9uIG1wKGUpe3ZhciB0PUFycmF5LmlzQXJyYXkoZSk/ZS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuISFufSk6W107dC5mb3JFYWNoKGZ1bmN0aW9uKG4pe2thKG4pfSl9ZnVuY3Rpb24gZ3AoZSl7aWYoISh0eXBlb2YgZSE9InN0cmluZyJ8fCFlKSl7dmFyIHQ9ZS5yZXBsYWNlKC9ceDFiXFsyMDB+L2csIiIpLnJlcGxhY2UoL1x4MWJcWzIwMX4vZywiIik7Lyg/Ol58XG4pXHMqXC9jbGVhclxzKig/OlxyfFxufCQpLy50ZXN0KHQpJiZ0eXBlb2YgcjwidSImJnImJihyLnRlcm1pbmFsT3V0cHV0TWFya2VyPShyLnRlcm1pbmFsT3V0cHV0JiZyLnRlcm1pbmFsT3V0cHV0Lmxlbmd0aCl8MCl9fWZ1bmN0aW9uIEZ0KGUsdCxuKXtyZXR1cm4hZXx8IXIuc2VsZWN0ZWRJZD9Qcm9taXNlLnJlc29sdmUoKTooZ3AoZSksci5tZXNzYWdlUXVldWUucHVzaChlKSxyLmlucHV0UXVldWU9ci5pbnB1dFF1ZXVlLnRoZW4oZnVuY3Rpb24oKXtyZXR1cm4gaHAoZSx0LG4pLmZpbmFsbHkoZnVuY3Rpb24oKXt2YXIgaT1yLm1lc3NhZ2VRdWV1ZS5pbmRleE9mKGUpO2k+LTEmJnIubWVzc2FnZVF1ZXVlLnNwbGljZShpLDEpfSl9KSxyLmlucHV0UXVldWUpfWZ1bmN0aW9uIGhwKGUsdCxuKXtpZighci5zZWxlY3RlZElkKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTt2YXIgaT1yLnNlbGVjdGVkSWQsYT1ufHxyLmN1cnJlbnRWaWV3O3JldHVybiBSZigpP3Iud3NDb25uZWN0ZWQ/ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitpKyIvaW5wdXQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDplLHZpZXc6YSxzaG9ydGN1dEtleTp0fHx2b2lkIDB9KX0pLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHUub2s/dS5qc29uKCk6dS5qc29uKCkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm57ZXJyb3I6Ilx1OEJGN1x1NkM0Mlx1NTkzMVx1OEQyNSJ9fSkudGhlbihmdW5jdGlvbihzKXt2YXIgbz1zbyhzKTt0aHJvdyBvLmh0dHBTdGF0dXM9dS5zdGF0dXMsY29uc29sZS5lcnJvcigiW3dhbmRdIHBvc3RJbnB1dDogcmVxdWVzdCBmYWlsZWQiLHtzdGF0dXM6dS5zdGF0dXMsZXJyb3JDb2RlOm8uZXJyb3JDb2RlLG1lc3NhZ2U6by5tZXNzYWdlLHNlc3Npb25JZDppfSksb28obykmJmxwKGksby5zZXNzaW9uU3RhdHVzfHwiZXhpdGVkIiksb30pfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdSYmdS5pZCYmKCQodSksdS5pZD09PXIuc2VsZWN0ZWRJZCYmKHUubWVzc2FnZXMmJnUubWVzc2FnZXMubGVuZ3RoPjAmJihyLmN1cnJlbnRNZXNzYWdlcz11Lm1lc3NhZ2VzKSxLZSghMCkpKSx1fSk6KGthKGUpLGNvbnNvbGUubG9nKCJbd2FuZF0gcG9zdElucHV0OiBXZWJTb2NrZXQgZGlzY29ubmVjdGVkLCBxdWV1ZWQgbWVzc2FnZSIse3Nlc3Npb25JZDpyLnNlbGVjdGVkSWQsaW5wdXRMZW5ndGg6ZS5sZW5ndGh9KSxQcm9taXNlLnJlc29sdmUoKSk6ci53c0Nvbm5lY3RlZD8oY29uc29sZS53YXJuKCJbd2FuZF0gcG9zdElucHV0OiBzZXNzaW9uIG5vdCBydW5uaW5nLCBza2lwcGluZyBzZW5kIix7c2Vzc2lvbklkOnIuc2VsZWN0ZWRJZH0pLGsoIlx1NEYxQVx1OEJERFx1NjcyQVx1OEZEMFx1ODg0Q1x1RkYwQ1x1NkI2M1x1NTcyOFx1N0I0OVx1NUY4NVx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1NTQwRVx1OTFDRFx1OEJENVx1MzAwMiIsImluZm8iKSxQcm9taXNlLnJlc29sdmUoKSk6KGthKGUpLGNvbnNvbGUubG9nKCJbd2FuZF0gcG9zdElucHV0OiBzZXNzaW9uIG5vdCBydW5uaW5nLCBxdWV1ZWQgZm9yIHJlY29ubmVjdCIse3Nlc3Npb25JZDpyLnNlbGVjdGVkSWQsaW5wdXRMZW5ndGg6ZS5sZW5ndGh9KSxQcm9taXNlLnJlc29sdmUoKSl9ZnVuY3Rpb24gSWcoZSl7cmV0dXJuIEZ0KGUpfWZ1bmN0aW9uIF90KCl7cmV0dXJuIHIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZD09PXIuc2VsZWN0ZWRJZH0pfHxudWxsfWZ1bmN0aW9uIFRnKGUpe3JldHVybiBlJiZlLnByb3ZpZGVyPT09ImNvZGV4Ij9gCmA6IlxyIn1mdW5jdGlvbiBBYSgpe3JldHVybiEhci5zZWxlY3RlZElkJiZyLmN1cnJlbnRWaWV3PT09InRlcm1pbmFsIn1mdW5jdGlvbiB5cChlKXtyZXR1cm4hKCFyLnRlcm1pbmFsfHwhZXx8ZSE9PXIuc2VsZWN0ZWRJZHx8ci50ZXJtaW5hbFNlc3Npb25JZCYmci50ZXJtaW5hbFNlc3Npb25JZCE9PWUpfWZ1bmN0aW9uIGxvKGUpe2lmKCFyLnRlcm1pbmFsSW50ZXJhY3RpdmV8fCFBYSgpfHxlLmRlZmF1bHRQcmV2ZW50ZWR8fGUuaXNDb21wb3NpbmcpcmV0dXJuITE7dmFyIHQ9ZS50YXJnZXQ7cmV0dXJuIHQ/IShkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIikmJnQuY2xvc2VzdCYmdC5jbG9zZXN0KCIjaW5wdXQtYm94Iil8fHQuY2xvc2VzdCYmdC5jbG9zZXN0KCIjbWluaS1rZXlib2FyZCIpfHxEcCh0KSk6ITB9dmFyIGJwPXtFc2M6ImVzY2FwZSIsQXJyb3dVcDoidXAiLEFycm93RG93bjoiZG93biIsQXJyb3dMZWZ0OiJsZWZ0IixBcnJvd1JpZ2h0OiJyaWdodCIsRW50ZXI6ImVudGVyIixUYWI6InRhYiIsQmFja3NwYWNlOiJiYWNrc3BhY2UiLEhvbWU6ImhvbWUiLEVuZDoiZW5kIixQYWdlVXA6InBhZ2V1cCIsUGFnZURvd246InBhZ2Vkb3duIixEZWxldGU6ImRlbGV0ZSIsSW5zZXJ0OiJpbnNlcnQiLCIgIjoic3BhY2UifSxFcD17c3BhY2U6IiAiLHRhYjoiCSIsc2hpZnRfdGFiOiJceDFCW1oiLGJhY2tzcGFjZToiXHg3RiIsaG9tZToiXHgxQltIIixlbmQ6Ilx4MUJbRiIscGFnZXVwOiJceDFCWzV+IixwYWdlZG93bjoiXHgxQls2fiIsZGVsZXRlOiJceDFCWzN+IixpbnNlcnQ6Ilx4MUJbMn4ifSxjbz17IiAiOjAsIlsiOjI3LCJcXCI6MjgsIl0iOjI5LCJeIjozMCxfOjMxfSxGcD00MDAsd3A9MTAsQ3A9OCxwaT01NCxkbj04LHhhPVt7a2V5OiJlbnRlciIsbGFiZWw6IkVudGVyIn0se2tleToiY3RybF9jIixsYWJlbDoiQ3RybCtDIn0se2tleToiZXNjYXBlIixsYWJlbDoiRXNjIn0se2tleToic2hpZnRfdGFiIixsYWJlbDoiU2hpZnQrVGFiIn1dLEJwPW5ldyBTZXQoWyJtaW5pLWtleWJvYXJkLWZhYiIsIm1pbmkta2V5Ym9hcmQtdG9nZ2xlIiwidGVybWluYWwtaW50ZXJhY3RpdmUtdG9nZ2xlIl0pO2Z1bmN0aW9uIERwKGUpe3JldHVybiEhKGUmJkJwLmhhcyhlLmlkKSl9dmFyIGtwPW5ldyBTZXQoWyJjdHJsIiwiYWx0Iiwic2hpZnQiXSk7ZnVuY3Rpb24gZm8oZSl7cmV0dXJuIGtwLmhhcyhlKX1mdW5jdGlvbiBBcChlKXtyZXR1cm4gRXBbZV18fCIifWZ1bmN0aW9uIHhwKGUpe3ZhciB0PWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdD49ImEiJiZ0PD0ieiI/U3RyaW5nLmZyb21DaGFyQ29kZSh0LmNoYXJDb2RlQXQoMCktOTYpOk9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjbyx0KT9TdHJpbmcuZnJvbUNoYXJDb2RlKGNvW3RdKToiIn1mdW5jdGlvbiBTcChlKXtyZXR1cm4gYnBbZS5rZXldfHxlLmtleX1mdW5jdGlvbiBJcChlLHQpe3JldHVybntjdHJsOmUuY3RybEtleSxhbHQ6ZS5hbHRLZXksc2hpZnQ6ZS5zaGlmdEtleSYmKHQubGVuZ3RoPT09MXx8dD09PSJ0YWIiKSxtZXRhOmUubWV0YUtleX19ZnVuY3Rpb24gcG8oZSx0KXtlJiZGdChlLHQpLmNhdGNoKGZ1bmN0aW9uKCl7fSl9ZnVuY3Rpb24gVHAoKXtBbygpfWZ1bmN0aW9uIFNhKGUpe3Iua2V5Ym9hcmRQb3B1cE9wZW49ITEsZSE9PSExJiZtaSgpLE9wKCl9ZnVuY3Rpb24gTHAoKXtBYSgpJiZUbighci50ZXJtaW5hbEludGVyYWN0aXZlKX1mdW5jdGlvbiBUbihlKXt2YXIgdD0hIWUmJkFhKCk7ci50ZXJtaW5hbEludGVyYWN0aXZlIT09dCYmKHIudGVybWluYWxJbnRlcmFjdGl2ZT10LHQ/KFBwKCksU2EoITEpLFRwKCksaygiXHU3RUM4XHU3QUVGXHU0RUE0XHU0RTkyXHU2QTIxXHU1RjBGXHU1REYyXHU1RjAwXHU1NDJGIiwiaW5mbyIpKToocXAoKSxtaSgpKSxCcigpKX1mdW5jdGlvbiBJYSgpe3ZhciBlPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihuKXtyZXR1cm4gbi5pZD09PXIuc2VsZWN0ZWRJZH0pLHQ9IWV8fGUuc3RhdHVzIT09InJ1bm5pbmcifHxyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsIjtpZih0JiZyLnRlcm1pbmFsSW50ZXJhY3RpdmUpe1RuKCExKTtyZXR1cm59KCFlfHxyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsIikmJnIua2V5Ym9hcmRQb3B1cE9wZW4mJihyLmtleWJvYXJkUG9wdXBPcGVuPSExKSxCcigpfWZ1bmN0aW9uIEJyKCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHkpe3JldHVybiB5LmlkPT09ci5zZWxlY3RlZElkfSksdD11ZShlKSxuPWUmJmUucHJvdmlkZXI9PT0iY29kZXgiLGk9dD8hIShlJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQpOiEhZSYmZS5zdGF0dXM9PT0icnVubmluZyIsYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksdT1bInRlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZS10b3AiXTt1LmZvckVhY2goZnVuY3Rpb24oeSl7dmFyIHc9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoeSk7aWYodyl7dy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLHIudGVybWluYWxJbnRlcmFjdGl2ZSksdy5jbGFzc0xpc3QudG9nZ2xlKCJpcy1vbiIsci50ZXJtaW5hbEludGVyYWN0aXZlKSx3LmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsdHx8ci5jdXJyZW50VmlldyE9PSJ0ZXJtaW5hbCJ8fCFlKSx3LnNldEF0dHJpYnV0ZSgiYXJpYS1jaGVja2VkIixyLnRlcm1pbmFsSW50ZXJhY3RpdmU/InRydWUiOiJmYWxzZSIpO3ZhciBFPXcucXVlcnlTZWxlY3RvcigiLnBsdXMtcG9wb3Zlci10b2dnbGUtc3RhdGUiKTtFJiYoRS50ZXh0Q29udGVudD1yLnRlcm1pbmFsSW50ZXJhY3RpdmU/Ilx1NUYwMCI6Ilx1NTE3MyIpfX0pO3ZhciBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1oaW50Iik7cyYmKHMuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIix0PyEwOnIuY3VycmVudFZpZXc9PT0idGVybWluYWwiKSwhdCYmZSYmKHMudGV4dENvbnRlbnQ9bj8iRW50ZXIgXHU1M0QxXHU5MDAxIFx4QjcgY2hhdCBcdTRFM0FcdTg5RTNcdTY3OTBcdTg5QzZcdTU2RkVcdUZGMEN0ZXJtaW5hbCBcdTRFM0FcdTUzOUZcdTU5Q0JcdThGOTNcdTUxRkEiOiJFbnRlciBcdTUzRDFcdTkwMDEgXHhCNyBTaGlmdCtFbnRlciBcdTYzNjJcdTg4NEMiKSk7dmFyIG89IXQmJiFpJiZEYShlKTthJiYoYS5wbGFjZWhvbGRlcj0kbyhlLHIudGVybWluYWxJbnRlcmFjdGl2ZSksYS5kaXNhYmxlZD0hdCYmISFlJiYhaSYmIW8sYS5zZXRBdHRyaWJ1dGUoImFyaWEtZGlzYWJsZWQiLGEuZGlzYWJsZWQ/InRydWUiOiJmYWxzZSIpLGEucmVhZE9ubHk9ITEsYS5jbGFzc0xpc3QudG9nZ2xlKCJpcy10ZXJtaW5hbC1wYXNzdGhyb3VnaCIsISFyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJiFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIikpKTt2YXIgbD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtsJiZyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJmwuY2xhc3NMaXN0LmNvbnRhaW5zKCJ2b2ljZS1tb2RlIikmJihsLmNsYXNzTGlzdC5yZW1vdmUoInZvaWNlLW1vZGUiKSx4ZS5yZWNvcmRpbmc9ITEsd2EoKSk7dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbmQtaW5wdXQtYnV0dG9uIiksZj10JiZpO2MmJihjLmRpc2FibGVkPSF0JiYhIWUmJiFpJiYhbyxjLnNldEF0dHJpYnV0ZSgidGl0bGUiLHQ/Zj8iXHU2MzkyXHU5NjFGXHU1M0QxXHU5MDAxXHVGRjA4XHU1RjUzXHU1MjREXHU1NkRFXHU1OTBEXHU3RUQzXHU2NzVGXHU1NDBFXHU1OTA0XHU3NDA2XHVGRjA5IjoiXHU1M0QxXHU5MDAxIjpuP2k/Ilx1NTNEMVx1OTAwMVx1N0VEOSBDb2RleCI6IkNvZGV4IFx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1RiI6IWV8fGl8fG8/Ilx1NTNEMVx1OTAwMSI6Ilx1NEYxQVx1OEJERFx1NURGMlx1N0VEM1x1Njc1RiIpLGMuY2xhc3NMaXN0LnRvZ2dsZSgicXVldWUtbW9kZSIsZikpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO2lmKGQpe3ZhciB2PXB1KGUpO2QuY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhdi5hY3RpdmUpfXZhciBoPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdG9wLWJ1dHRvbiIpO2lmKGgpe3ZhciBnPXB1KGUpO2guY2xhc3NMaXN0LnRvZ2dsZSgiaGlkZGVuIiwhZy5hY3RpdmUpfXZhciBtPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTttJiZtLmNsYXNzTGlzdC50b2dnbGUoImludGVyYWN0aXZlIiwhdCYmci50ZXJtaW5hbEludGVyYWN0aXZlKSxUcygpfWZ1bmN0aW9uIHZpKCl7dmFyIGU9d2luZG93LmdldFNlbGVjdGlvbiYmd2luZG93LmdldFNlbGVjdGlvbigpO2lmKCFlfHxlLmlzQ29sbGFwc2VkKXJldHVybiExO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJvdXRwdXQiKTtpZighdClyZXR1cm4hMTt2YXIgbj1lLmFuY2hvck5vZGU7cmV0dXJuIG4mJm4ubm9kZVR5cGU9PT0zJiYobj1uLnBhcmVudE5vZGUpLCEhKG4mJnQuY29udGFpbnMobikpfWZ1bmN0aW9uIFRhKGUpe2lmKGxvKGUpJiYhZS5tZXRhS2V5KXt2YXIgdD1TcChlKTtpZih0KXt2YXIgbj1JcChlLHQpO2lmKCFmbyh0KSYmIShuLmN0cmwmJnQubGVuZ3RoPT09MSYmdC50b0xvd2VyQ2FzZSgpPT09ImMiJiZ2aSgpKSl7dmFyIGk9bW8odCxuKTtpJiYoZS5wcmV2ZW50RGVmYXVsdCgpLHBvKGksdCkpfX19fWZ1bmN0aW9uIE1wKCl7ci50ZXJtaW5hbCYmbmYoNTAwKX1mdW5jdGlvbiBPcCgpe21yKCl9ZnVuY3Rpb24gTGcoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCksIShyLmN1cnJlbnRWaWV3IT09InRlcm1pbmFsInx8IXIuc2VsZWN0ZWRJZCkmJihyLmtleWJvYXJkUG9wdXBPcGVuPSFyLmtleWJvYXJkUG9wdXBPcGVuLEJyKCkpfWZ1bmN0aW9uIHZvKCl7ci5rZXlib2FyZFBvcHVwT3Blbj0hMSxCcigpfWZ1bmN0aW9uIFBwKCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsVGEsITApfWZ1bmN0aW9uIHFwKCl7ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsVGEsITApfWZ1bmN0aW9uIG1vKGUsdCl7dmFyIG49dHx8e2N0cmw6ITEsYWx0OiExLHNoaWZ0OiExfTtpZihmbyhlKSlyZXR1cm4iIjtpZihlPT09InRhYiImJm4uc2hpZnQpcmV0dXJuIlx4MUJbWiI7dmFyIGk9QXAoZSk7aWYoaSlyZXR1cm4gaTtpZihlLmluZGV4T2YoImN0cmxfIik9PT0wKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlKGUuY2hhckNvZGVBdChlLmxlbmd0aC0xKS05Nik7dmFyIGE9RHIoZSk7aWYoYSlyZXR1cm4gYTtpZighZSlyZXR1cm4iIjt2YXIgdT1lLmxlbmd0aD09PTE/ZToiIjtyZXR1cm4gdT8obi5zaGlmdCYmKHU9dS50b1VwcGVyQ2FzZSgpKSxuLmN0cmw/eHAodSk6bi5hbHQ/Ilx4MUIiK3U6dSk6IiJ9ZnVuY3Rpb24gbWkoKXtyLm1vZGlmaWVycy5jdHJsPSExLHIubW9kaWZpZXJzLmFsdD0hMSxyLm1vZGlmaWVycy5zaGlmdD0hMSxIcCgpfWZ1bmN0aW9uIEhwKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1pbmkta2V5Ym9hcmQiKTtlJiZbImN0cmwiLCJhbHQiLCJzaGlmdCJdLmZvckVhY2goZnVuY3Rpb24odCl7dmFyIG49ZS5xdWVyeVNlbGVjdG9yKCdbZGF0YS1rZXk9IicrdCsnIl0nKTtuJiZuLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsISFyLm1vZGlmaWVyc1t0XSl9KX1mdW5jdGlvbiBEcihlKXtzd2l0Y2goZSl7Y2FzZSJ5ZXMiOnJldHVybiJ5XHIiO2Nhc2Uibm8iOnJldHVybiJuXHIiO2Nhc2UidXAiOnJldHVybiJceDFCW0EiO2Nhc2UiZG93biI6cmV0dXJuIlx4MUJbQiI7Y2FzZSJsZWZ0IjpyZXR1cm4iXHgxQltEIjtjYXNlInJpZ2h0IjpyZXR1cm4iXHgxQltDIjtjYXNlImVudGVyIjpyZXR1cm4iXHIiO2Nhc2UiY3RybF9jIjpyZXR1cm4iAyI7Y2FzZSJjdHJsX2QiOnJldHVybiIEIjtjYXNlImN0cmxfbCI6cmV0dXJuIlxmIjtjYXNlImN0cmxfdSI6cmV0dXJuIhUiO2Nhc2UiY3RybF9rIjpyZXR1cm4iXHYiO2Nhc2UiY3RybF93IjpyZXR1cm4iFyI7Y2FzZSJjdHJsX3oiOnJldHVybiIaIjtjYXNlImVzY2FwZSI6cmV0dXJuIlx4MUIiO2RlZmF1bHQ6cmV0dXJuIiJ9fWZ1bmN0aW9uIF9wKCl7aWYoci5wZW5kaW5nTWVzc2FnZXMubGVuZ3RoIT09MCl7dmFyIGU9X3QoKTtpZih1ZShlKSl7ci5wZW5kaW5nTWVzc2FnZXM9W107cmV0dXJufXZhciB0PURhdGUubm93KCksbj1bXSxpPTA7ci5wZW5kaW5nTWVzc2FnZXMuZm9yRWFjaChmdW5jdGlvbih1KXtpZih0eXBlb2YgdT09InN0cmluZyIpe24ucHVzaCh1KTtyZXR1cm59aWYoISghdXx8dHlwZW9mIHUuaW5wdXQhPSJzdHJpbmciKSl7aWYodC0odS5hdHx8MCk+cHApe2krKztyZXR1cm59bi5wdXNoKHUuaW5wdXQpfX0pLHIucGVuZGluZ01lc3NhZ2VzPVtdLGk+MCYmY29uc29sZS5sb2coIlt3YW5kXSBmbHVzaFBlbmRpbmdNZXNzYWdlczogZHJvcHBlZCAiK2krIiBzdGFsZSBpbnB1dChzKSIpO3ZhciBhPVByb21pc2UucmVzb2x2ZSgpO24uZm9yRWFjaChmdW5jdGlvbih1KXthPWEudGhlbihmdW5jdGlvbigpe3JldHVybiBOcCh1KS5jYXRjaChmdW5jdGlvbigpe30pfSl9KX19ZnVuY3Rpb24gTnAoZSl7aWYoIWV8fCFyLnNlbGVjdGVkSWQpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciB0PXIuc2VsZWN0ZWRJZDtyZXR1cm4gZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIit0KyIvaW5wdXQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtpbnB1dDplLHZpZXc6ci5jdXJyZW50Vmlld30pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5vaz9uLmpzb24oKTpuLmpzb24oKS5jYXRjaChmdW5jdGlvbigpe3JldHVybntlcnJvcjoiXHU4QkY3XHU2QzQyXHU1OTMxXHU4RDI1In19KS50aGVuKGZ1bmN0aW9uKGkpe3ZhciBhPXNvKGkpO2lmKGEuaHR0cFN0YXR1cz1uLnN0YXR1cyxvbyhhKSlyZXR1cm4gY29uc29sZS5sb2coIlt3YW5kXSBzZW5kSW5wdXREaXJlY3Q6IHNlc3Npb24gdW5hdmFpbGFibGUsIGRyb3BwaW5nIix7c2Vzc2lvbklkOnQsZXJyb3JDb2RlOmEuZXJyb3JDb2RlfSksbnVsbDt0aHJvdyBhfSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuJiZuLmlkJiYoJChuKSxuLmlkPT09ci5zZWxlY3RlZElkJiYobi5tZXNzYWdlcyYmbi5tZXNzYWdlcy5sZW5ndGg+MCYmKHIuY3VycmVudE1lc3NhZ2VzPW4ubWVzc2FnZXMpLEtlKCEwKSkpLG59KX1mdW5jdGlvbiBMYSgpe2lmKHIuc2VsZWN0ZWRJZCl7dmFyIGU9ci5zZWxlY3RlZElkO2pzKGNlKCJzdG9wLmNvbmZpcm0ubWVzc2FnZSIpLHt0aXRsZTpjZSgic3RvcC5jb25maXJtLnRpdGxlIiksZGFuZ2VyOiEwLG9rTGFiZWw6Y2UoInN0b3AuY29uZmlybS5vayIpLGNhbmNlbExhYmVsOmNlKCJzdG9wLmNvbmZpcm0uY2FuY2VsIil9KS50aGVuKGZ1bmN0aW9uKHQpe3QmJnIuc2VsZWN0ZWRJZD09PWUmJmZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZSsiL3N0b3AiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGp0KX0pfX1mdW5jdGlvbiBnbyhlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcuc2Vzc2lvbi1pdGVtW2RhdGEtc2Vzc2lvbi1pZD0iJytlKyciXScpO3QmJnQuY2xhc3NMaXN0LmFkZCgiZGVsZXRpbmciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXRocm93IG5ldyBFcnJvcihuLmVycm9yKTtyZXR1cm4gci5zZWxlY3RlZElkPT09ZSYmKHIuc2VsZWN0ZWRJZD1udWxsLHdlKCkpLGp0KCl9KS5jYXRjaChmdW5jdGlvbigpe3QmJnQuY2xhc3NMaXN0LnJlbW92ZSgiZGVsZXRpbmciKTt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aW9uLWVycm9yIik7cWUobiwiXHU2NUUwXHU2Q0Q1XHU1MjIwXHU5NjY0XHU0RjFBXHU4QkREXHUzMDAyIil9KX0sMjUwKX1mdW5jdGlvbiBobyhlLHQpe3QmJnQuY2xhc3NMaXN0LmFkZCgiZGVsZXRpbmciKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZmV0Y2goIi9hcGkvY2xhdWRlLWhpc3RvcnkvIitlbmNvZGVVUklDb21wb25lbnQoZSkse21ldGhvZDoiREVMRVRFIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4mJm4uZXJyb3IpdGhyb3cgbmV3IEVycm9yKG4uZXJyb3IpO3IuY2xhdWRlSGlzdG9yeT1yLmNsYXVkZUhpc3RvcnkuZmlsdGVyKGZ1bmN0aW9uKGkpe3JldHVybiBpLmNsYXVkZVNlc3Npb25JZCE9PWV9KSxkZWxldGUgci5zZWxlY3RlZENsYXVkZUhpc3RvcnlJZHNbZV0sbWUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJkZWxldGluZyIpO3ZhciBuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3Rpb24tZXJyb3IiKTtxZShuLCJcdTY1RTBcdTZDRDVcdTUyMjBcdTk2NjRcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiKX0pfSwyNTApfWZ1bmN0aW9uIE1nKGUsdCl7aG8oZSx0KX1mdW5jdGlvbiBqcChlLHQsbil7ZSYmZmV0Y2goIi9hcGkvY2xhdWRlLWhpc3Rvcnk/Y3dkPSIrZW5jb2RlVVJJQ29tcG9uZW50KGUpLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpJiZpLmVycm9yKXRocm93IG5ldyBFcnJvcihpLmVycm9yKTtyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jd2QhPT1lfSksbWUoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7eW8obiwhMSk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFjdGlvbi1lcnJvciIpO3FlKGksIlx1NjVFMFx1NkNENVx1NkUwNVx1NzQwNlx1OEJFNVx1NzZFRVx1NUY1NVx1NzY4NFx1NTM4Nlx1NTNGMlx1NEYxQVx1OEJERFx1MzAwMiIpfSl9ZnVuY3Rpb24geW8oZSx0KXtlLmZvckVhY2goZnVuY3Rpb24obil7bi5jbGFzc0xpc3QudG9nZ2xlKCJkZWxldGluZyIsdCl9KX1mdW5jdGlvbiBScChlKXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmNsYXVkZS1oaXN0b3J5LWl0ZW1bZGF0YS1jd2Q9Iicrd2luZG93LkNTUy5lc2NhcGUoU3RyaW5nKGUpKSsnIl0nKSl9dmFyIGJvPW51bGwsa3I9bnVsbDtmdW5jdGlvbiBBcigpe2lmKGtyKXtrci5jbGFzc0xpc3QucmVtb3ZlKCJzd2lwZWQiKTt2YXIgZT1rci5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1pdGVtLWNvbnRlbnQiKTtlJiYoZS5zdHlsZS50cmFuc2Zvcm09IiIpLGtyPW51bGx9fWZ1bmN0aW9uIFdwKGUpe2JvPW51bGwsa3I9bnVsbH1mdW5jdGlvbiB6cChlLHQsbil7ZT09PSJjbGF1ZGUiJiYoci5wcmVmZXJyZWRDb21tYW5kPWUsci5jaGF0TW9kZT14dChlLHIuY2hhdE1vZGUpKTt2YXIgaT1yLmNoYXRNb2RlbHx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiI7cmV0dXJuIGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShndCh7Y29tbWFuZDplLGN3ZDp0fHwiIixtb2RlOnIuY2hhdE1vZGV8fHIuY29uZmlnLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIsbW9kZWw6aXx8dm9pZCAwLHRoaW5raW5nRWZmb3J0OnIuY2hhdFRoaW5raW5nfHx2b2lkIDB9KSl9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuZXJyb3I/KG4mJnFlKG4sYS5lcnJvciksbnVsbCk6KHIuc2VsZWN0ZWRJZD1hLmlkLHdlKCksci5kcmFmdHNbYS5pZF09IiIsYSl9KX12YXIgTWE9ITE7ZnVuY3Rpb24gRW8oZSx0KXtyZXR1cm4hZXx8TWE/UHJvbWlzZS5yZXNvbHZlKG51bGwpOihNYT0hMCxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoZ3Qoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0In0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8odD9xZSh0LG4uZXJyb3IpOmsobi5lcnJvciwiZXJyb3IiKSxudWxsKTooci5zZWxlY3RlZElkPW4uaWQsd2UoKSxyLmRyYWZ0c1tuLmlkXT0iIixuKX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3ZhciBpPW4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjA2Mlx1NTkwRFx1NEYxQVx1OEJERFx1MzAwMiI7cmV0dXJuIHQ/cWUodCxpKTprKGksImVycm9yIiksbnVsbH0pLmZpbmFsbHkoZnVuY3Rpb24oKXtNYT0hMX0pKX1mdW5jdGlvbiBPZyhlLHQpe3JldHVybiBlP2ZldGNoKCIvYXBpL2NsYXVkZS1zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoZ3Qoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0In0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8odD9xZSh0LG4uZXJyb3IpOmsobi5lcnJvciwiZXJyb3IiKSxudWxsKTooci5jbGF1ZGVIaXN0b3J5PXIuY2xhdWRlSGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24oaSl7cmV0dXJuIGkuY2xhdWRlU2Vzc2lvbklkIT09ZX0pLHIuc2VsZWN0ZWRJZD1uLmlkLHdlKCksci5kcmFmdHNbbi5pZF09IiIsbil9KS5jYXRjaChmdW5jdGlvbihuKXt2YXIgaT1uJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYzMDkgQ2xhdWRlIFx1NEYxQVx1OEJERCBJRCBcdTYwNjJcdTU5MERcdTRGMUFcdThCRERcdTMwMDIiO3JldHVybiB0P3FlKHQsaSk6ayhpLCJlcnJvciIpLG51bGx9KTpQcm9taXNlLnJlc29sdmUobnVsbCl9ZnVuY3Rpb24gZm4oZSl7cmV0dXJuIWV8fCFlLmlkP1Byb21pc2UucmVzb2x2ZSgpOihyLnNlbGVjdGVkSWQ9ZS5pZCx3ZSgpLHIuY3VycmVudE1lc3NhZ2VzPVtdLGdyKCksa3QoKSxDcihlLmlkKSwkKGUpLG1lKCksTG4oZS5pZCksbW4oZS5pZCkudGhlbihmdW5jdGlvbigpe050KCEwKX0pKX1mdW5jdGlvbiBGbyhlKXtyZXR1cm4gRW8oZSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdD8odC5jbGF1ZGVTZXNzaW9uSWQmJih0LnByb3ZpZGVyPT09ImNvZGV4Ij9yLmNvZGV4SGlzdG9yeT1yLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24obil7cmV0dXJuIG4uY2xhdWRlU2Vzc2lvbklkIT09dC5jbGF1ZGVTZXNzaW9uSWR9KTpyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihuKXtyZXR1cm4gbi5jbGF1ZGVTZXNzaW9uSWQhPT10LmNsYXVkZVNlc3Npb25JZH0pKSxmbih0KS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSk6bnVsbH0pfWZ1bmN0aW9uIFBnKGUsdCxuKXtyZXR1cm4genAoZSx0LG4pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGk/Zm4oaSkudGhlbihmdW5jdGlvbigpe3JldHVybiBpfSk6bnVsbH0pfWZ1bmN0aW9uIHFnKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3ZWxjb21lLWlucHV0Iik7aWYodCl7dC5wbGFjZWhvbGRlcj0iXHU2QjYzXHU1NzI4XHU2MDFEXHU4MDAzXHUyMDI2Iix0LmRpc2FibGVkPSEwO3ZhciBuPXIuY2hhdE1vZGV8fCJtYW5hZ2VkIixpPWV0KCksYT10dCgpLHU9ci5jaGF0TW9kZWx8fHIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZWx8fCIiO2ZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShndCh7Y29tbWFuZDphLGN3ZDppLG1vZGU6bixpbml0aWFsSW5wdXQ6ZSxtb2RlbDp1fHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHMuanNvbigpfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5lcnJvcj8oayhzLmVycm9yLCJlcnJvciIpLHQucGxhY2Vob2xkZXI9Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiIsdC5kaXNhYmxlZD0hMSxudWxsKTpmbihzKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe2socyYmcy5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSx0LnBsYWNlaG9sZGVyPSJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkYiLHQuZGlzYWJsZWQ9ITF9KS5maW5hbGx5KGZ1bmN0aW9uKCl7dC5wbGFjZWhvbGRlcj0iXHU4RjkzXHU1MTY1XHU2RDg4XHU2MDZGIix0LmRpc2FibGVkPSExfSl9fWZ1bmN0aW9uIEhnKGUsdCxuKXt2YXIgaT1yLmNoYXRNb2RlfHwibWFuYWdlZCIsYT1ldCgpLHU9dHQoKSxzPXIuY2hhdE1vZGVsfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsfHwiIjtmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoZ3Qoe2NvbW1hbmQ6dSxjd2Q6YSxtb2RlOmksaW5pdGlhbElucHV0OmV8fHZvaWQgMCxtb2RlbDpzfHx2b2lkIDAsdGhpbmtpbmdFZmZvcnQ6ci5jaGF0VGhpbmtpbmd8fHZvaWQgMH0pKX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkudGhlbihmdW5jdGlvbihvKXtyZXR1cm4gby5lcnJvcj8oayhvLmVycm9yLCJlcnJvciIpLG51bGwpOih0JiYodC52YWx1ZT0iIiksbiYmKG4udmFsdWU9IiIpLGZuKG8pKX0pLmNhdGNoKGZ1bmN0aW9uKG8pe2sobyYmby5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU1NDJGXHU1MkE4XHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKX0pfWZ1bmN0aW9uIFVwKGUpe2UuZGlzYWJsZWQ9ITAsRm8oZS5kYXRhc2V0LnNlc3Npb25JZCkuZmluYWxseShmdW5jdGlvbigpe2UuZGlzYWJsZWQ9ITF9KX1mdW5jdGlvbiBWcChlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkLG49ZS5kYXRhc2V0LmN3ZDt0JiYoZS5kaXNhYmxlZD0hMCxLcCh0LG4pLnRoZW4oZnVuY3Rpb24oaSl7aSYmaS5pZCYmKHIuY29kZXhIaXN0b3J5PXIuY29kZXhIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksci5zZWxlY3RlZElkPWkuaWQsd2UoKSxyLmRyYWZ0c1tpLmlkXT0iIixmbihpKS50aGVuKGZ1bmN0aW9uKCl7enQoKX0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlLmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIEtwKGUsdCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvZGV4LXNlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KGUpKyIvcmVzdW1lIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShndCh7bW9kZTpyLmNoYXRNb2RlfHxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iixjd2Q6dH0pKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5lcnJvcj8oayhuLmVycm9yLCJlcnJvciIpLG51bGwpOm59KS5jYXRjaChmdW5jdGlvbihuKXtyZXR1cm4gayhuJiZuLm1lc3NhZ2V8fCJcdTY1RTBcdTZDRDVcdTYwNjJcdTU5MERcdTUzODZcdTUzRjJcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpLG51bGx9KX1mdW5jdGlvbiBKcChlKXt2YXIgdD1lLmRhdGFzZXQuY2xhdWRlU2Vzc2lvbklkO3QmJmtuKCJcdTc4NkVcdThCQTRcdTk2OTBcdTg1Q0ZcdThGRDlcdTY3NjEgQ29kZXggXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHU1NDE3XHVGRjFGIix7dGl0bGU6Ilx1OTY5MFx1ODVDRiBDb2RleCBcdTUzODZcdTUzRjIiLG9rTGFiZWw6Ilx1OTY5MFx1ODVDRiJ9KS50aGVuKGZ1bmN0aW9uKG4pe2lmKG4pe3ZhciBpPWUuY2xvc2VzdCgiLmNsYXVkZS1oaXN0b3J5LWl0ZW0iKTtpJiYoaS5zdHlsZS5vcGFjaXR5PSIwLjUiKSxmZXRjaCgiL2FwaS9jb2RleC1oaXN0b3J5LyIrZW5jb2RlVVJJQ29tcG9uZW50KHQpLHttZXRob2Q6IkRFTEVURSIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXthJiZhLm9rPyhyLmNvZGV4SGlzdG9yeT1yLmNvZGV4SGlzdG9yeS5maWx0ZXIoZnVuY3Rpb24odSl7cmV0dXJuIHUuY2xhdWRlU2Vzc2lvbklkIT09dH0pLG1lKCkpOmkmJihpLnN0eWxlLm9wYWNpdHk9IjEiKX0pLmNhdGNoKGZ1bmN0aW9uKCl7aSYmKGkuc3R5bGUub3BhY2l0eT0iMSIpfSl9fSl9ZnVuY3Rpb24gR3AoZSl7dmFyIHQ9ZS5kYXRhc2V0LmNsYXVkZVNlc3Npb25JZCxuPWUuZGF0YXNldC5jd2Q7dCYmKGUuZGlzYWJsZWQ9ITAsZ2kodCxuKS50aGVuKGZ1bmN0aW9uKGkpe2kmJmkuaWQmJihyLmNsYXVkZUhpc3Rvcnk9ci5jbGF1ZGVIaXN0b3J5LmZpbHRlcihmdW5jdGlvbihhKXtyZXR1cm4gYS5jbGF1ZGVTZXNzaW9uSWQhPT10fSksci5zZWxlY3RlZElkPWkuaWQsd2UoKSxyLmRyYWZ0c1tpLmlkXT0iIixmbihpKS50aGVuKGZ1bmN0aW9uKCl7enQoKX0pKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtlLmRpc2FibGVkPSExfSkpfWZ1bmN0aW9uIGdpKGUsdCl7cmV0dXJuIGZldGNoKCIvYXBpL2NsYXVkZS1zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3Jlc3VtZSIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoZ3Qoe21vZGU6ci5jaGF0TW9kZXx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIsY3dkOnR9KSl9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uZXJyb3I/KGsobi5lcnJvciwiZXJyb3IiKSxudWxsKTpufSkuY2F0Y2goZnVuY3Rpb24obil7cmV0dXJuIGsobiYmbi5tZXNzYWdlfHwiXHU2NUUwXHU2Q0Q1XHU2MDYyXHU1OTBEXHU1Mzg2XHU1M0YyXHU0RjFBXHU4QkREXHUzMDAyIiwiZXJyb3IiKSxudWxsfSl9ZnVuY3Rpb24geHIoKXtyZXR1cm4ib250b3VjaHN0YXJ0ImluIHdpbmRvd3x8bmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjB9ZnVuY3Rpb24gTnQoZSl7aWYoIXIudGVybWluYWxJbnRlcmFjdGl2ZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpOyF0fHwhci5zZWxlY3RlZElkfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dCYmKGUmJnhyKCl8fE9hKHQpKX19ZnVuY3Rpb24gX2coKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlcyIpO2UmJihlLnNjcm9sbFRvcD0wKX1mdW5jdGlvbiB3bygpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5pbnB1dC1wYW5lbCIpO2UmJmUuc3R5bGUucmVtb3ZlUHJvcGVydHkoIi0ta2V5Ym9hcmQtb2Zmc2V0Iil9ZnVuY3Rpb24gQ28oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKTtlJiZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCItLWtleWJvYXJkLW9mZnNldCIpfWZ1bmN0aW9uIGhpKGUpe2lmKGUpe3ZhciB0PWUuc2VsZWN0aW9uU3RhcnQsbj1lLnNlbGVjdGlvbkVuZDt5aShlKSx0eXBlb2YgdD09Im51bWJlciImJnR5cGVvZiBuPT0ibnVtYmVyIiYmZS5zZXRTZWxlY3Rpb25SYW5nZSh0LG4pfX1mdW5jdGlvbiBCbyhlKXshZXx8ZS5kYXRhc2V0LnRvdWNoU2Nyb2xsQm91bmQ9PT0idHJ1ZSJ8fChlLmRhdGFzZXQudG91Y2hTY3JvbGxCb3VuZD0idHJ1ZSIsZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbigpe2Uuc2Nyb2xsSGVpZ2h0PD1lLmNsaWVudEhlaWdodCsxfHwoZS5zY3JvbGxUb3A8PTA/ZS5zY3JvbGxUb3A9MTplLnNjcm9sbFRvcCtlLmNsaWVudEhlaWdodD49ZS5zY3JvbGxIZWlnaHQmJihlLnNjcm9sbFRvcD1NYXRoLm1heCgxLGUuc2Nyb2xsSGVpZ2h0LWUuY2xpZW50SGVpZ2h0LTEpKSl9LHtwYXNzaXZlOiEwfSkpfWZ1bmN0aW9uIERvKGUpe2UmJihIdChlKSxoaShlKSl9ZnVuY3Rpb24gWXAoZSl7dmFyIHQ9ZSYmZS50YXJnZXQ/ZS50YXJnZXQ6ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO3QmJih3bygpLERvKHQpKX1mdW5jdGlvbiBRcChlKXt2YXIgdD1lJiZlLnRhcmdldD9lLnRhcmdldDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7Q28oKSxCcygyMjAwLHQpO3ZhciBuPVs4MCwyMDAsMzgwLDYyMCw5MDBdO24uZm9yRWFjaChmdW5jdGlvbihpLGEpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtXbighMSksYT09PTEmJnhyKCkmJihaZSgia2V5Ym9hcmQtYmx1ciIse2ZvcmNlUmVwbGF5OiEwfSksRXQoImtleWJvYXJkIikpfSxpKX0pfWZ1bmN0aW9uICRwKGUpe2UmJihlLnNldFNlbGVjdGlvblJhbmdlKGUudmFsdWUubGVuZ3RoLGUudmFsdWUubGVuZ3RoKSxoaShlKSl9ZnVuY3Rpb24gT2EoZSl7ZSYmKGUuZm9jdXMoe3ByZXZlbnRTY3JvbGw6ITB9KSwkcChlKSl9ZnVuY3Rpb24gWHAoZSl7Qm8oZSksRG8oZSl9ZnVuY3Rpb24gWnAoZSl7T2EoZSl9ZnVuY3Rpb24gTmcoZSl7d28oKSxoaShlKX1mdW5jdGlvbiBldigpe0NvKCl9ZnVuY3Rpb24gdHYoZSl7aGkoZSl9ZnVuY3Rpb24gamcoZSl7WnAoZSl9ZnVuY3Rpb24gbnYoZSl7WHAoZSl9ZnVuY3Rpb24gUmcoKXtldigpfWZ1bmN0aW9uIFdnKGUpe3R2KGUpfWZ1bmN0aW9uIHJ2KGUsdCl7aWYoIWV8fCF0fHxkb2N1bWVudC5hY3RpdmVFbGVtZW50IT09dClyZXR1cm4hMTt2YXIgbj13aW5kb3cuaW5uZXJIZWlnaHQtZS5oZWlnaHQtZS5vZmZzZXRUb3A7aWYobjw9NTApcmV0dXJuITE7dmFyIGk9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gaS5ib3R0b20+ZS5oZWlnaHQtMTJ9ZnVuY3Rpb24geWkoZSl7aWYoZSl7dmFyIHQ9ZS5zY3JvbGxIZWlnaHQ+ZS5jbGllbnRIZWlnaHQrMTtpZighdCl7ZS5zY3JvbGxUb3A9MDtyZXR1cm59ZS5zY3JvbGxUb3A9ZS5zY3JvbGxIZWlnaHR9fWZ1bmN0aW9uIGtvKCl7aWYoci50ZXJtaW5hbEludGVyYWN0aXZlKXtBbygpO3JldHVybn1pZigheHIoKSl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpOyFlfHwhci5zZWxlY3RlZElkfHxkb2N1bWVudC5hY3RpdmVFbGVtZW50PT09ZXx8T2EoZSl9fWZ1bmN0aW9uIEFvKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2UmJihlLnNldEF0dHJpYnV0ZSgidGFiaW5kZXgiLCIwIiksZS5mb2N1cygpLHIudGVybWluYWwmJnIudGVybWluYWwuZm9jdXMmJnIudGVybWluYWwuZm9jdXMoKSl9ZnVuY3Rpb24gaXYoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtcGFuZWwiKSx0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7aWYoInZpcnR1YWxLZXlib2FyZCJpbiBuYXZpZ2F0b3Ipe3ZhciBuPW5hdmlnYXRvci52aXJ0dWFsS2V5Ym9hcmQ7bi5hZGRFdmVudExpc3RlbmVyKCJnZW9tZXRyeWNoYW5nZSIsZnVuY3Rpb24oKXtlJiZlLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJwYWRkaW5nLWJvdHRvbSIpfSl9dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7a28oKX0pLHQmJnQuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGEpe3ZhciB1PWEudGFyZ2V0O3UudGFnTmFtZSE9PSJBIiYmdS50YWdOYW1lIT09IkJVVFRPTiImJiF1LmNsb3Nlc3QoImJ1dHRvbiIpJiYhdS5jbG9zZXN0KCJbZGF0YS10b29sLXRvZ2dsZV0iKSYma28oKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbihhKXtpZih4cigpKXt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7aWYoISghdXx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCE9PXUpKXt2YXIgcz1hLnRhcmdldDshc3x8dHlwZW9mIHMuY2xvc2VzdCE9ImZ1bmN0aW9uInx8cy5jbG9zZXN0KCIuaW5wdXQtcGFuZWwiKXx8cy5jbG9zZXN0KCIjbWluaS1rZXlib2FyZCIpfHxzLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkLWZhYiIpfHxzLmNsb3Nlc3QoIiNtaW5pLWtleWJvYXJkLXRvZ2dsZSIpfHxzLmNsb3Nlc3QoIiN0ZXJtaW5hbC1pbnRlcmFjdGl2ZS10b2dnbGUiKXx8cy5jbG9zZXN0KCIud2FuZC1qb3lzdGljay1yb290Iil8fHUuYmx1cigpfX19LCEwKX1mdW5jdGlvbiBQYSgpe3RyeXt3aW5kb3cuc2Nyb2xsVG8oMCwwKX1jYXRjaHt9ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudCYmKGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wPTApLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3A9MCksZG9jdW1lbnQuYm9keSYmKGRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wPTApfWZ1bmN0aW9uIEtlKGUpe3IucmVuZGVyUGVuZGluZyYmIWV8fChyLnJlbmRlclBlbmRpbmc9ITAsZT8oYmkoITApLHIucmVuZGVyUGVuZGluZz0hMSk6cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7YmkoITEpLHIucmVuZGVyUGVuZGluZz0hMX0pKX1yLmNoYXRSZW5kZXJUaW1lcj1udWxsO2Z1bmN0aW9uIHFhKGUpe2lmKCEoci5jaGF0UmVuZGVyVGltZXImJiFlKSl7aWYoci5jaGF0UmVuZGVyVGltZXImJmNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksZSl7ci5jaGF0UmVuZGVyVGltZXI9bnVsbCxLZSgpO3JldHVybn10cnl7d2luZG93Ll9fc2NoZWR1bGVDaGF0UmVuZGVyPWZ1bmN0aW9uKCl7cWEoITApfX1jYXRjaHt9dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ci5zZWxlY3RlZElkfSksbj10JiZ0LnN0YXR1cz09PSJydW5uaW5nIiYmdC5zZXNzaW9uS2luZCE9PSJzdHJ1Y3R1cmVkIixpPW4/cXM6SHM7ci5jaGF0UmVuZGVyVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuY2hhdFJlbmRlclRpbWVyPW51bGw7dmFyIGE9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHUpe3JldHVybiB1LmlkPT09ci5zZWxlY3RlZElkfSk7YSYmKHIuY3VycmVudE1lc3NhZ2VzPVJlKGEsbnQoYSxhLm91dHB1dCwhMCkpKSxLZSgpfSxpKX19ZnVuY3Rpb24gYXYoZSx0KXtpZighZXx8IXR8fHQubGVuZ3RoPT09MClyZXR1cm5bXTtmdW5jdGlvbiBuKHcpe3JldHVybiB3LnJlcGxhY2UoL1x4MUIoPzpbQC1aXFwtX118XFtbMC0/XSpbIC0vXSpbQC1+XSkvZywiIil9Zm9yKHZhciBpPW4oZSksYT1bXSx1PVtdLHM9MDtzPHQubGVuZ3RoO3MrKylpZih0W3NdLnJvbGU9PT0idXNlciIpe3ZhciBvPSIiLGw9dFtzXS5jb250ZW50O2lmKHR5cGVvZiBsPT0ic3RyaW5nIilvPWw7ZWxzZSBpZihBcnJheS5pc0FycmF5KGwpKXtmb3IodmFyIGM9MDtjPGwubGVuZ3RoO2MrKylpZihsW2NdLnR5cGU9PT0idGV4dCIpe289bFtjXS50ZXh0O2JyZWFrfX1vJiZ1LnB1c2goe3RleHQ6byxpbmRleDpzfSl9Zm9yKHZhciBmPTAscz0wO3M8dS5sZW5ndGg7cysrKXt2YXIgZD11W3NdLHY9aS5pbmRleE9mKCJcdTI3NkYgIitkLnRleHQsZik7aWYodj09PS0xJiYodj1pLmluZGV4T2YoYApcdTI3NkYgYCtkLnRleHQsZiksdiE9PS0xJiYodis9MSkpLHY+Zil7Zm9yKHZhciBoPWkuc3Vic3RyaW5nKGYsdiksZz1oLnNwbGl0KGAKYCksbT1bXSxjPTA7YzxnLmxlbmd0aDtjKyspe3ZhciB5PWdbY10udHJpbSgpOyF5fHx5LnN0YXJ0c1dpdGgoIlx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCIpfHx5PT09Ilx1Mjc2RiJ8fHk9PT0iPyJ8fHk9PT0iInx8eS5pbmNsdWRlcygiQ2xhdWRlIENvZGUgdiIpfHx5LmluY2x1ZGVzKCJPcHVzIikmJnkuaW5jbHVkZXMoIndpdGgiKXx8eS5pbmNsdWRlcygiU29ubmV0IikmJnkuaW5jbHVkZXMoIndpdGgiKXx8eS5pbmNsdWRlcygiQVBJIFVzYWdlIil8fHkuaW5jbHVkZXMoIkJpbGxpbmciKXx8eS5pbmNsdWRlcygiZm9yIHNob3J0Y3V0cyIpfHx5LmluY2x1ZGVzKCIvZWZmb3J0Iil8fHkubWF0Y2goL15b4pa44paQ4pad4paY4paX4paW4paI4paM4paN4paO4paP4paU4paB4paC4paD4paE4paF4paG4paH4paI4paIXS8pfHx5Lm1hdGNoKC9eW+KWuOKWkOKWneKWmOKWl+KWluKWiOKWjOKWjeKWjuKWj+KWlOKWgeKWguKWg+KWhOKWheKWhuKWh+KWiOKWiF17Myx9Lyl8fHkubGVuZ3RoPjMmJm0ucHVzaCh5KX1tLmxlbmd0aD4wJiZhLnB1c2goe2JlZm9yZU1lc3NhZ2U6ZC5pbmRleCxjb250ZW50Om0uam9pbihgCmApfSl9Zj12K2QudGV4dC5sZW5ndGgrMn1yZXR1cm4gYX1mdW5jdGlvbiBIYShlKXtpZighZSlyZXR1cm4gbnVsbDt2YXIgdD1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7cmV0dXJuIHR8fCh0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuY2xhc3NOYW1lPSJjaGF0LW1lc3NhZ2VzIixlLmFwcGVuZENoaWxkKHQpLHQpfWZ1bmN0aW9uIHhvKGUsdCl7dmFyIG49SGEoZSk7cmV0dXJuIG4/KG4uaW5uZXJIVE1MPXQsYXIoKSxWZSgpLG4pOm51bGx9ZnVuY3Rpb24gYmkoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0Iik7aWYoIXQpcmV0dXJuO3ZhciBuPXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihHKXtyZXR1cm4gRy5pZD09PXIuc2VsZWN0ZWRJZH0pO2lmKCFuKXtyLmxhc3RSZW5kZXJlZEVtcHR5IT09Im5vbmUiJiYoeG8odCwnPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPjxzdHJvbmc+XHU2NzJBXHU5MDA5XHU2MkU5XHU0RjFBXHU4QkREPC9zdHJvbmc+PGJyPlx1NzBCOVx1NTFGQlx1NEUwQVx1NjVCOVx1MzAwQ1x1NjVCMFx1NUJGOVx1OEJERFx1MzAwRFx1NUYwMFx1NTlDQlx1NEY2MFx1NzY4NFx1N0IyQ1x1NEUwMFx1NkIyMVx1NUJGOVx1OEJERFx1MzAwMjwvZGl2PicpLHIubGFzdFJlbmRlcmVkRW1wdHk9Im5vbmUiLHIubGFzdFJlbmRlcmVkTXNnQ291bnQ9MCk7cmV0dXJufXZhciBpPXIuY3VycmVudE1lc3NhZ2VzLGE9THYoaSk7aWYoamE9TXYoaSksaS5sZW5ndGg9PT0wKXtpZihyLmxhc3RSZW5kZXJlZEVtcHR5IT09ImVtcHR5Iil7dmFyIHU9IiI7dWUobikmJih1PSc8ZGl2IGNsYXNzPSJlbXB0eS1zdGF0ZS10cmlvLXdyYXAiPjxkaXYgY2xhc3M9ImVtcHR5LXN0YXRlLXRyaW8taGludCI+XHU5RUQ4XHU4QkE0XHU0RjFBXHU2MzA5XHU0RUU1XHU0RTBCXHU4QkJFXHU3RjZFXHU1M0QxXHU5MDAxXHVGRjBDXHU1M0VGXHU3MEI5XHU1MUZCXHU4QzAzXHU2NTc0XHVGRjFBPC9kaXY+Jyt0bChuLHtraW5kOiJkcm9wZG93biJ9KSsiPC9kaXY+IikseG8odCwnPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUiPjxzdHJvbmc+XHU1QkY5XHU4QkREXHU1REYyXHU1RjAwXHU1OUNCPC9zdHJvbmc+PGJyPlx1NTcyOFx1NEUwQlx1NjVCOVx1OEY5M1x1NTE2NVx1Njg0Nlx1NTNEMVx1OTAwMVx1NkQ4OFx1NjA2Rlx1RkYwQ0NsYXVkZSBcdTRGMUFcdTgxRUFcdTUyQThcdTU2REVcdTU5MERcdTMwMDI8L2Rpdj4nK3UpLHIubGFzdFJlbmRlcmVkRW1wdHk9ImVtcHR5IixyLmxhc3RSZW5kZXJlZE1zZ0NvdW50PTB9bXUobnVsbCxuKSxOYShbXSk7cmV0dXJufXZhciBzPWkubGVuZ3RoO3M+ci5jaGF0UmVuZGVyZWRDb3VudCYmKHIuY2hhdFJlbmRlcmVkQ291bnQ9cyk7dmFyIG89TWF0aC5tYXgoMCxzLXIuY2hhdFJlbmRlcmVkQ291bnQpLGw9bz4wP2kuc2xpY2Uobyk6aSxjPXR5cGVvZiBuLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiJiZuLm1lc3NhZ2VPZmZzZXQ+MCxmPW8+MHx8YyxkPWwubGVuZ3RoLHY9bi5vdXRwdXQ/bi5vdXRwdXQubGVuZ3RoOjA7aWYobi5tZXNzYWdlcyYmbi5tZXNzYWdlcy5sZW5ndGg+MCl7Zm9yKHZhciBoPTAsZz0wLG09MDttPG4ubWVzc2FnZXMubGVuZ3RoO20rKyl7dmFyIHk9bi5tZXNzYWdlc1ttXS5jb250ZW50O2lmKHkpaWYoQXJyYXkuaXNBcnJheSh5KSl7aCs9eS5sZW5ndGg7Zm9yKHZhciB3PTA7dzx5Lmxlbmd0aDt3Kyspe3ZhciBFPXlbd107RS50ZXh0JiYoZys9RS50ZXh0Lmxlbmd0aCksRS50aGlua2luZyYmKGcrPUUudGhpbmtpbmcubGVuZ3RoKSxFLmNvbnRlbnQmJihnKz1FLmNvbnRlbnQubGVuZ3RoKSxFLmlkJiYoZys9RS5pZC5sZW5ndGgpLEUudG9vbF91c2VfaWQmJihnKz1FLnRvb2xfdXNlX2lkLmxlbmd0aCksRS5kZXNjcmlwdGlvbiYmKGcrPUUuZGVzY3JpcHRpb24ubGVuZ3RoKSxFLmlucHV0JiYoZys9SlNPTi5zdHJpbmdpZnkoRS5pbnB1dCkubGVuZ3RoKX19ZWxzZSBoKz0xLGc9U3RyaW5nKHkpLmxlbmd0aH12PWQqMWU1K2gqMWUzK2d9dmFyIEI9ZXx8ZCE9PXIubGFzdFJlbmRlcmVkTXNnQ291bnQ7aWYoIUImJmQ9PT1yLmxhc3RSZW5kZXJlZE1zZ0NvdW50JiZ2PT09ci5sYXN0UmVuZGVyZWRIYXNoKXt2YXIgRj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7RiYmbXUoRixuKSxOYShpKTtyZXR1cm59dmFyIHg9ci5sYXN0UmVuZGVyZWRIYXNoLFM9ci5sYXN0UmVuZGVyZWRNc2dDb3VudDtpZihyLmxhc3RSZW5kZXJlZE1zZ0NvdW50PWQsci5sYXN0UmVuZGVyZWRIYXNoPXYsRj1IYSh0KSwhRilyZXR1cm47dmFyIF89VWkoRiksVj0hci5jaGF0SW5pdGlhbFJlbmRlckRvbmUsVT1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKS5sZW5ndGgsST1CfHxVPT09MHx8ZCE9PVU7ZnVuY3Rpb24gRCgpe2Zvcih2YXIgRz1hdihuLm91dHB1dCxsKSxlZT0iIixvZT1sLnNsaWNlKCkucmV2ZXJzZSgpLGxlPWwubGVuZ3RoLEJlPTA7QmU8b2UubGVuZ3RoO0JlKyspe2Zvcih2YXIgV2U9b2VbQmVdLFZ0PWxlLTEtQmUsY3Q9VnQrbyxkdD1udWxsLF9lPTA7X2U8Ry5sZW5ndGg7X2UrKylpZihHW19lXS5iZWZvcmVNZXNzYWdlPT09VnQpe2R0PUdbX2VdO2JyZWFrfWR0JiYoZWUrPSc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2Ugc3lzdGVtLWluZm8iPjxkaXYgY2xhc3M9InN5c3RlbS1pbmZvLWNhcmQiPjxkaXYgY2xhc3M9InN5c3RlbS1pbmZvLWhlYWRlciI+XHUyMTM5XHVGRTBGIFx1N0NGQlx1N0VERlx1NEZFMVx1NjA2RjwvZGl2PjxkaXYgY2xhc3M9InN5c3RlbS1pbmZvLWNvbnRlbnQiPicrcChkdC5jb250ZW50KSsiPC9kaXY+PC9kaXY+PC9kaXY+IiksZWUrPVdhKFdlLExbY3RdfHxudWxsLGN0LGEpfWlmKGYpe3ZhciBLdD1vPjA/Ilx1NTJBMFx1OEY3RFx1NjZGNFx1NjVFOVx1NzY4NCAiK01hdGgubWluKHIuY2hhdFBhZ2VTaXplLG8pKyIgXHU2NzYxXHU2RDg4XHU2MDZGIjoiXHU1MkEwXHU4RjdEXHU2NkY0XHU2NUU5XHU3Njg0XHU2RDg4XHU2MDZGIjtlZSs9JzxkaXYgY2xhc3M9ImNoYXQtbG9hZC1tb3JlIiBpZD0iY2hhdC1sb2FkLW1vcmUtc2VudGluZWwiPjxidXR0b24gY2xhc3M9ImNoYXQtbG9hZC1tb3JlLWJ0biIgdHlwZT0iYnV0dG9uIj4nK0t0KyI8L2J1dHRvbj48L2Rpdj4ifXZhciBHZT0tMSxydD0wO2lmKFU+MCYmIV8pZm9yKHZhciBrZT1GLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCxnZT1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2U6bm90KC5zeXN0ZW0taW5mbykiKSxiZT0wO2JlPGdlLmxlbmd0aDtiZSsrKXt2YXIgQz1nZVtiZV0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoQy5ib3R0b20+PWtlKXt2YXIgaXQ9Z2VbYmVdLmdldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiKTtpdCE9bnVsbCYmKEdlPXBhcnNlSW50KGl0LDEwKSxydD1DLnRvcC1rZSk7YnJlYWt9fWlmKEYuaW5uZXJIVE1MPWVlLChmdW5jdGlvbigpe2Zvcih2YXIgZnQ9Ri5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIiksdXQ9ZnQubGVuZ3RoLGJ0PTA7YnQ8dXQ7YnQrKylmdFtidF0uc2V0QXR0cmlidXRlKCJkYXRhLW1zZy1pbmRleCIsU3RyaW5nKG8rdXQtMS1idCkpfSkoKSxTPT09MCYmIXIuY2hhdEluaXRpYWxSZW5kZXJEb25lKUYuc2Nyb2xsVG9wPTAsci5jaGF0U3RpY2tUb0JvdHRvbT0hMCxGbih7cmVtb3ZlRGl2aWRlcjohMH0pLHIuY2hhdEluaXRpYWxSZW5kZXJEb25lPSEwO2Vsc2UgaWYoUz09PTAmJnIuY2hhdFN0aWNrVG9Cb3R0b20pRi5zY3JvbGxUb3A9MDtlbHNlIGlmKF8pRi5zY3JvbGxUb3A9MDtlbHNlIGlmKEdlPj0wKXt2YXIgaHQ9Ri5xdWVyeVNlbGVjdG9yKCcuY2hhdC1tZXNzYWdlW2RhdGEtbXNnLWluZGV4PSInK0dlKyciXScpO2lmKGh0KXt2YXIgU3Q9Ri5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS50b3Asd3Q9aHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksSXQ9d3QudG9wLVN0LXJ0O01hdGguYWJzKEl0KT4uNSYmKHIuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSEwLEYuc2Nyb2xsVG9wKz1JdCxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMX0pKX19U28oRiksYXIoKSxZaShGKTt2YXIgSnQ9Ri5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIik7aWYoSnQpe3ZhciBhdD1KdC5xdWVyeVNlbGVjdG9yQWxsKCIudG9vbC11c2UtY2FyZCwgLmlubGluZS1kaWZmW2RhdGEtZXhwYW5kLWtleV0iKTtpZihhdC5sZW5ndGg+MCl7dmFyIE9lPWF0WzBdLHplPU9uKE9lKTtYZSh6ZSk9PT1udWxsJiZPZS5jbGFzc0xpc3QucmVtb3ZlKCJjb2xsYXBzZWQiKTtmb3IodmFyIGhlPTE7aGU8YXQubGVuZ3RoO2hlKyspe3ZhciB5dD1PbihhdFtoZV0pO2lmKFhlKHl0KT09PW51bGwpe2lmKGF0W2hlXS5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyIikmJiFhdFtoZV0uY2xhc3NMaXN0LmNvbnRhaW5zKCJhc2stdXNlci1hbnN3ZXJlZCIpKWNvbnRpbnVlO2F0W2hlXS5jbGFzc0xpc3QuYWRkKCJjb2xsYXBzZWQiKX19fX1yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtWaShGKSxWZSgpLFlsKCl9KX1mdW5jdGlvbiBNKEcsZWUpe3ZhciBvZT1HLnF1ZXJ5U2VsZWN0b3JBbGwoIi50b29sLXVzZS1jYXJkLCAuaW5saW5lLWRpZmZbZGF0YS1leHBhbmQta2V5XSIpO29lLmZvckVhY2goZnVuY3Rpb24obGUpe3ZhciBCZT1PbihsZSk7aWYoWGUoQmUpPT09bnVsbCYmIShsZS5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyIikmJiFsZS5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyLWFuc3dlcmVkIikpKXtpZihlZSl7Zm9yKHZhciBXZT0wO1dlPGVlLmxlbmd0aDtXZSsrKWlmKGVlW1dlXS5jb250YWlucyhsZSkpcmV0dXJufWxlLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpfX0pfXZhciBMPXt9O2lmKChmdW5jdGlvbigpe2Zvcih2YXIgRz17aW5wdXRUb2tlbnM6MCxvdXRwdXRUb2tlbnM6MCxjYWNoZVJlYWRJbnB1dFRva2VuczowLHRvdGFsQ29zdFVzZDowfSxlZT0tMSxvZT0wO29lPGkubGVuZ3RoO29lKyspe3ZhciBsZT1pW29lXTtpZihsZS5yb2xlPT09InVzZXIiKWVlPj0wJiYoRy5pbnB1dFRva2Vucz4wfHxHLm91dHB1dFRva2Vucz4wfHxHLnRvdGFsQ29zdFVzZD4wKSYmKExbZWVdPXtpbnB1dFRva2VuczpHLmlucHV0VG9rZW5zLG91dHB1dFRva2VuczpHLm91dHB1dFRva2VucyxjYWNoZVJlYWRJbnB1dFRva2VuczpHLmNhY2hlUmVhZElucHV0VG9rZW5zLHRvdGFsQ29zdFVzZDpHLnRvdGFsQ29zdFVzZH0pLEc9e2lucHV0VG9rZW5zOjAsb3V0cHV0VG9rZW5zOjAsY2FjaGVSZWFkSW5wdXRUb2tlbnM6MCx0b3RhbENvc3RVc2Q6MH0sZWU9LTE7ZWxzZSBpZihsZS5yb2xlPT09ImFzc2lzdGFudCImJmxlLnVzYWdlKXt2YXIgQmU9bGUudXNhZ2U7Ry5pbnB1dFRva2Vucys9QmUuaW5wdXRUb2tlbnN8fDAsRy5vdXRwdXRUb2tlbnMrPUJlLm91dHB1dFRva2Vuc3x8MCxHLmNhY2hlUmVhZElucHV0VG9rZW5zKz1CZS5jYWNoZVJlYWRJbnB1dFRva2Vuc3x8MCxHLnRvdGFsQ29zdFVzZCs9QmUudG90YWxDb3N0VXNkfHwwLGVlPW9lfWVsc2UgbGUucm9sZT09PSJhc3Npc3RhbnQiJiYoZWU9b2UpfWVlPj0wJiYoRy5pbnB1dFRva2Vucz4wfHxHLm91dHB1dFRva2Vucz4wfHxHLnRvdGFsQ29zdFVzZD4wKSYmKExbZWVdPXtpbnB1dFRva2VuczpHLmlucHV0VG9rZW5zLG91dHB1dFRva2VuczpHLm91dHB1dFRva2VucyxjYWNoZVJlYWRJbnB1dFRva2VuczpHLmNhY2hlUmVhZElucHV0VG9rZW5zLHRvdGFsQ29zdFVzZDpHLnRvdGFsQ29zdFVzZH0pfSkoKSxJKUQoKTtlbHNlIGlmKGQ+VSl7dmFyIFc9bC5zbGljZShVKTtXLnJldmVyc2UoKTtmb3IodmFyIEs9ZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLFg9W10sbmU9W10sc2U9bytVLHJlPTA7cmU8Vy5sZW5ndGg7cmUrKyl7dmFyIFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksTz1vK1UrKFcubGVuZ3RoLTEtcmUpO1QuaW5uZXJIVE1MPVdhKFdbcmVdLExbT118fG51bGwsTyxhKTt2YXIgTj1ULmZpcnN0RWxlbWVudENoaWxkO04mJihOLmNsYXNzTGlzdC5hZGQoImFuaW1hdGUtaW4iKSxOLnNldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiLFN0cmluZyhPKSksWC5wdXNoKE4pLG5lLnB1c2goTyksSy5hcHBlbmRDaGlsZChOKSl9Ri5pbnNlcnRCZWZvcmUoSyxGLmZpcnN0Q2hpbGQpLGFyKCksU28oRiksWWkoRiksTShGLFgpLF8/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7Ri5pc0Nvbm5lY3RlZCYmTWF0aC5hYnMoRi5zY3JvbGxUb3ApPjEmJihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMCxGLnNjcm9sbFRvcD0wLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpLEZuKHtyZW1vdmVEaXZpZGVyOiEwfSksVmUoKX0pOihyLmNoYXRVbnJlYWRTdGFydEluZGV4PDAmJihyLmNoYXRVbnJlYWRTdGFydEluZGV4PXNlKSxyLmNoYXRVbnJlYWRDb3VudCs9WC5sZW5ndGgsVmkoRiksVmUoKSl9ZWxzZSBpZihkPT09VSYmdiE9PXgpe2Zvcih2YXIgWT1BcnJheS5mcm9tKEYucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpKSxKPWwuc2xpY2UoKS5yZXZlcnNlKCksaWU9ITEsZGU9TWF0aC5taW4oNCxKLmxlbmd0aCxZLmxlbmd0aCksdGU9MDt0ZTxkZTt0ZSsrKXt2YXIgYWU9WVt0ZV0sSGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksRGU9bytKLmxlbmd0aC0xLXRlO0hlLmlubmVySFRNTD1XYShKW3RlXSxMW0RlXXx8bnVsbCxEZSxhKTt2YXIgcGU9SGUuZmlyc3RFbGVtZW50Q2hpbGQ7aWYocGUpe2lmKGFlLmlubmVySFRNTCE9PXBlLmlubmVySFRNTHx8YWUuY2xhc3NOYW1lIT09cGUuY2xhc3NOYW1lKUYucmVwbGFjZUNoaWxkKHBlLGFlKSxvdihwZSksaWU9ITA7ZWxzZSBpZih0ZT4wKWJyZWFrfX1pZighaWUmJkoubGVuZ3RoPmRlJiZEKCksaWUpe2FyKCksWWkoRikscmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCl7XyYmRi5pc0Nvbm5lY3RlZCYmTWF0aC5hYnMoRi5zY3JvbGxUb3ApPjEmJihyLmNoYXRJc1Byb2dyYW1tYXRpY1Njcm9sbD0hMCxGLnNjcm9sbFRvcD0wLHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbigpe3IuY2hhdElzUHJvZ3JhbW1hdGljU2Nyb2xsPSExfSkpLFZpKEYpLFZlKCl9KTt2YXIgcT1GLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2UiKSxKZT1GLnF1ZXJ5U2VsZWN0b3JBbGwoIi50b29sLXVzZS1jYXJkLCAuaW5saW5lLWRpZmZbZGF0YS1leHBhbmQta2V5XSIpLGx0PW51bGw7SmUuZm9yRWFjaChmdW5jdGlvbihHKXt2YXIgZWU9T24oRyk7WGUoZWUpPT09bnVsbCYmKEcuY2xhc3NMaXN0LmNvbnRhaW5zKCJhc2stdXNlciIpJiYhRy5jbGFzc0xpc3QuY29udGFpbnMoImFzay11c2VyLWFuc3dlcmVkIil8fChxJiZxLmNvbnRhaW5zKEcpP2x0P0cuY2xhc3NMaXN0LmFkZCgiY29sbGFwc2VkIik6bHQ9RzpHLmNsYXNzTGlzdC5hZGQoImNvbGxhcHNlZCIpKSl9KX19ZWxzZSBkPFUmJkQoKTtvZihGKSxUdihGKSxrdih0LEYsaSxWKSxtdShGLG4pLE5hKGkpfXZhciBfYT0hMTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7aWYoISghdHx8ISh0IGluc3RhbmNlb2YgRWxlbWVudCkpKXt2YXIgbj10LmNsb3Nlc3QoIiN0b2RvLXByb2dyZXNzLXRvZ2dsZSIpO2lmKG4pe2UucHJldmVudERlZmF1bHQoKSxlLnN0b3BQcm9wYWdhdGlvbigpLF9hPSFfYTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2kmJmEmJihfYT8oaS5jbGFzc0xpc3QuYWRkKCJleHBhbmRlZCIpLGEuY2xhc3NMaXN0LmFkZCgiZXhwYW5kZWQiKSk6KGkuY2xhc3NMaXN0LnJlbW92ZSgiZXhwYW5kZWQiKSxhLmNsYXNzTGlzdC5yZW1vdmUoImV4cGFuZGVkIikpKSxFaSgpfX19KTtmdW5jdGlvbiBFaSgpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1tZXNzYWdlcyIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2lmKCEoIWV8fCF0KSl7dmFyIG49ZSxpPSF0LmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIiksYT10LmNsYXNzTGlzdC5jb250YWlucygiZXhwYW5kZWQiKSx1PXQub2Zmc2V0SGVpZ2h0O2kmJmEmJnU+MD9uLnN0eWxlLnBhZGRpbmdCb3R0b209dSs4KyJweCI6bi5zdHlsZS5wYWRkaW5nQm90dG9tPSIifX1mdW5jdGlvbiB1dihlKXtpZih0eXBlb2YgZT09InN0cmluZyIpcmV0dXJuIGU7aWYoQXJyYXkuaXNBcnJheShlKSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTt0eXBlb2YgaT09InN0cmluZyI/dC5wdXNoKGkpOmkmJnR5cGVvZiBpLnRleHQ9PSJzdHJpbmciJiZ0LnB1c2goaS50ZXh0KX1yZXR1cm4gdC5qb2luKCIiKX1yZXR1cm4iIn1mdW5jdGlvbiBzdihlLHQpe2Zvcih2YXIgbj17fSxpPXQ7aTxlLmxlbmd0aDtpKyspe3ZhciBhPWVbaV07aWYoISghYXx8IUFycmF5LmlzQXJyYXkoYS5jb250ZW50KSkpZm9yKHZhciB1PTA7dTxhLmNvbnRlbnQubGVuZ3RoO3UrKyl7dmFyIHM9YS5jb250ZW50W3VdO3MmJnMudHlwZT09PSJ0b29sX3Jlc3VsdCImJnMudG9vbF91c2VfaWQmJihuW3MudG9vbF91c2VfaWRdPXV2KHMuY29udGVudCkpfX1mb3IodmFyIG89e30sbD0wLGM9MCxmPSExLGQ9dDtkPGUubGVuZ3RoO2QrKyl7dmFyIHY9ZVtkXTtpZighKCF2fHwhQXJyYXkuaXNBcnJheSh2LmNvbnRlbnQpKSlmb3IodmFyIGg9MDtoPHYuY29udGVudC5sZW5ndGg7aCsrKXt2YXIgZz12LmNvbnRlbnRbaF07aWYoISghZ3x8Zy50eXBlIT09InRvb2xfdXNlIikpe3ZhciBtPWcuaW5wdXR8fHt9O2lmKGcubmFtZT09PSJUYXNrQ3JlYXRlIil7Zj0hMCxjKys7dmFyIHk9bltnLmlkXXx8IiIsdz15Lm1hdGNoKC8jKFxkKykvKSxFPXc/d1sxXTpTdHJpbmcoYyk7b1tFXT17aWQ6RSxjb250ZW50Om0uc3ViamVjdHx8IiIsYWN0aXZlRm9ybTptLmFjdGl2ZUZvcm18fCIiLHN0YXR1czoicGVuZGluZyIsb3JkZXI6bCsrfX1lbHNlIGlmKGcubmFtZT09PSJUYXNrVXBkYXRlIil7Zj0hMDt2YXIgQj1TdHJpbmcobS50YXNrSWQpLEY9b1tCXTtGfHwoRj17aWQ6Qixjb250ZW50OiIiLGFjdGl2ZUZvcm06IiIsc3RhdHVzOiJwZW5kaW5nIixvcmRlcjpsKyt9LG9bQl09RiksbS5zdGF0dXMmJihGLnN0YXR1cz1tLnN0YXR1cyksbS5zdWJqZWN0JiYoRi5jb250ZW50PW0uc3ViamVjdCksbS5hY3RpdmVGb3JtJiYoRi5hY3RpdmVGb3JtPW0uYWN0aXZlRm9ybSl9fX19aWYoIWYpcmV0dXJuIG51bGw7dmFyIHg9W107Zm9yKHZhciBTIGluIG8pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG8sUykmJm9bU10uc3RhdHVzIT09ImRlbGV0ZWQiJiZ4LnB1c2gob1tTXSk7cmV0dXJuIHguc29ydChmdW5jdGlvbihfLFYpe3JldHVybiBfLm9yZGVyLVYub3JkZXJ9KSx4Lmxlbmd0aD94Om51bGx9ZnVuY3Rpb24gTmEoZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aC0xO24+PTA7bi0tKWlmKGVbbl0mJmVbbl0ucm9sZT09PSJ1c2VyIil7dD1uKzE7YnJlYWt9Zm9yKHZhciBpPW51bGwsYT1lLmxlbmd0aC0xO2E+PXQ7YS0tKXt2YXIgdT1lW2FdO2lmKCEoIXUuY29udGVudHx8IUFycmF5LmlzQXJyYXkodS5jb250ZW50KSkpe2Zvcih2YXIgcz11LmNvbnRlbnQubGVuZ3RoLTE7cz49MDtzLS0pe3ZhciBvPXUuY29udGVudFtzXTtpZihvLnR5cGU9PT0idG9vbF91c2UiJiZvLm5hbWU9PT0iVG9kb1dyaXRlIiYmby5pbnB1dCYmby5pbnB1dC50b2Rvcyl7aT1vLmlucHV0LnRvZG9zO2JyZWFrfX1pZihpKWJyZWFrfX1pfHwoaT1zdihlLHQpKTt2YXIgbD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9kby1wcm9ncmVzcyIpLGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtYm9keSIpO2lmKGwpe2lmKCFpfHxpLmxlbmd0aD09PTApe2wuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksYyYmYy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxFaSgpO3JldHVybn1mb3IodmFyIGY9MCxkPTAsdj0iIixoPTA7aDxpLmxlbmd0aDtoKyspaVtoXS5zdGF0dXM9PT0iY29tcGxldGVkIiYmZisrLGlbaF0uc3RhdHVzPT09ImluX3Byb2dyZXNzIiYmKGQrKyx2fHwodj1pW2hdLmFjdGl2ZUZvcm18fGlbaF0uY29udGVudHx8IiIpKTt2YXIgZz1mPT09aS5sZW5ndGgsbT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oSyl7cmV0dXJuIEsuaWQ9PT1yLnNlbGVjdGVkSWR9KSx5PSEhbSYmbS5zdGF0dXM9PT0icnVubmluZyI7aWYoIXl8fGcpe2wuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksYyYmYy5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxFaSgpO3JldHVybn1sLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGwuY2xhc3NMaXN0LnJlbW92ZSgiYWxsLWRvbmUiKSxjJiZjLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciB3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWNvdW50ZXIiKTt3JiYody50ZXh0Q29udGVudD1mKyIvIitpLmxlbmd0aCk7dmFyIEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MtdGFzayIpO2lmKEUpe2lmKCF2KXtmb3IodmFyIEI9MDtCPGkubGVuZ3RoO0IrKylpZihpW0JdLnN0YXR1cz09PSJwZW5kaW5nIiYmKGlbQl0uYWN0aXZlRm9ybXx8aVtCXS5jb250ZW50KSl7dj1pW0JdLmFjdGl2ZUZvcm18fGlbQl0uY29udGVudDticmVha319RS50ZXh0Q29udGVudD12fHwiXHU1MUM2XHU1OTA3XHU0RTJEXHUyMDI2In12YXIgRj1pLmxlbmd0aD4wP2YvaS5sZW5ndGg6MCx4PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLXJpbmciKTt4JiZ4LnN0eWxlLnNldFByb3BlcnR5KCItLXByb2dyZXNzIixGLnRvRml4ZWQoMykpO3ZhciBTPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWZpbGwiKTtTJiZTLnN0eWxlLnNldFByb3BlcnR5KCItLXByb2dyZXNzIixGLnRvRml4ZWQoMykpO3ZhciBfPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0b2RvLXByb2dyZXNzLWxpc3QiKTtpZihfKXtmb3IodmFyIFY9IiIsVT0wO1U8aS5sZW5ndGg7VSsrKXt2YXIgST1pW1VdLEQ9SS5zdGF0dXN8fCJwZW5kaW5nIixNPUQ9PT0iaW5fcHJvZ3Jlc3MiPyJhY3RpdmUiOkQ9PT0iY29tcGxldGVkIj8iZG9uZSI6IiIsTD1EPT09ImluX3Byb2dyZXNzIj8iYWN0aXZlIjpEPT09ImNvbXBsZXRlZCI/ImRvbmUiOiJwZW5kaW5nIixXPUQ9PT0iY29tcGxldGVkIj8iXHUyNzEzIjpEPT09ImluX3Byb2dyZXNzIj8iXHUyMDNBIjoiXHUyNUNCIjtWKz0nPGxpIGNsYXNzPSJ0b2RvLXByb2dyZXNzLWl0ZW0gJytNKyciPjxzcGFuIGNsYXNzPSJ0b2RvLWl0ZW0taWNvbiAnK0wrJyI+JytXKyI8L3NwYW4+PHNwYW4+IitwKEkuY29udGVudHx8IiIpKyI8L3NwYW4+PC9saT4ifV8uaW5uZXJIVE1MPVZ9ci5zZWxlY3RlZElkJiZFYShyLnNlbGVjdGVkSWQpLEVpKCl9fWZ1bmN0aW9uIG92KGUpe2UucXVlcnlTZWxlY3RvckFsbCgiLmNvZGUtY29weSIpLmZvckVhY2goZnVuY3Rpb24odCl7dC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgbj10LmNsb3Nlc3QoIi5jb2RlLWJsb2NrIiksaT1uP24ucXVlcnlTZWxlY3RvcigiY29kZSIpOm51bGw7aSYmUHIoaS50ZXh0Q29udGVudHx8IiIsbnVsbCxmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9IkNvcGllZCEiLHQuY2xhc3NMaXN0LmFkZCgiY29waWVkIiksc2V0VGltZW91dChmdW5jdGlvbigpe3QudGV4dENvbnRlbnQ9IkNvcHkiLHQuY2xhc3NMaXN0LnJlbW92ZSgiY29waWVkIil9LDJlMyl9KX0pfSl9ZnVuY3Rpb24gU28oZSl7ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY29kZS1jb3B5IikuZm9yRWFjaChmdW5jdGlvbih0KXt2YXIgbj10LmNsb25lTm9kZSghMCk7dC5wYXJlbnROb2RlLnJlcGxhY2VDaGlsZChuLHQpLG4uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGk9bi5jbG9zZXN0KCIuY29kZS1ibG9jayIpLGE9aT9pLnF1ZXJ5U2VsZWN0b3IoImNvZGUiKTpudWxsO2EmJlByKGEudGV4dENvbnRlbnR8fCIiLG51bGwsZnVuY3Rpb24oKXtuLnRleHRDb250ZW50PSJDb3BpZWQhIixuLmNsYXNzTGlzdC5hZGQoImNvcGllZCIpLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtuLnRleHRDb250ZW50PSJDb3B5IixuLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpfSwyZTMpfSl9KX0pLGx2KGUpfXZhciB6Zz17dGltZXI6bnVsbCxhY3RpdmVCdG46bnVsbH07ZnVuY3Rpb24gbHYoZSl7dmFyIHQ9d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlczt0JiZlLnF1ZXJ5U2VsZWN0b3JBbGwoIi5jaGF0LW1lc3NhZ2UiKS5mb3JFYWNoKGZ1bmN0aW9uKG4pe2lmKCFuLnF1ZXJ5U2VsZWN0b3IoIi5tc2ctY29weS1idG4iKSl7dmFyIGk9bi5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlLWJ1YmJsZSIpO2lmKGkpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpO2EuY2xhc3NOYW1lPSJtc2ctY29weS1idG4iLGEudGV4dENvbnRlbnQ9Ilx1NTkwRFx1NTIzNiIsYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24odSl7dS5zdG9wUHJvcGFnYXRpb24oKTt2YXIgcz1pLmlubmVyVGV4dHx8aS50ZXh0Q29udGVudHx8IiI7UHIocy50cmltKCksbnVsbCxmdW5jdGlvbigpe2EudGV4dENvbnRlbnQ9Ilx1NURGMlx1NTkwRFx1NTIzNiIsYS5jbGFzc0xpc3QuYWRkKCJjb3BpZWQiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YS50ZXh0Q29udGVudD0iXHU1OTBEXHU1MjM2IixhLmNsYXNzTGlzdC5yZW1vdmUoImNvcGllZCIpLGEuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSwxNTAwKX0pfSksbi5hcHBlbmRDaGlsZChhKX19fSl9KGZ1bmN0aW9uKCl7dmFyIHQ9d2luZG93Lm1hdGNoTWVkaWEoIihwb2ludGVyOiBjb2Fyc2UpIikubWF0Y2hlcztpZih0KXt2YXIgbj1udWxsLGk9MDtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihhKXt2YXIgdT1hLnRhcmdldC5jbG9zZXN0KCIuY2hhdC1tZXNzYWdlIik7aWYodSl7dmFyIHM9dS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1tZXNzYWdlLWJ1YmJsZSIpO3MmJihpPWEudG91Y2hlc1swXS5jbGllbnRZLG49c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBvPXUucXVlcnlTZWxlY3RvcigiLm1zZy1jb3B5LWJ0biIpO28mJihkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubXNnLWNvcHktYnRuLnZpc2libGUiKS5mb3JFYWNoKGZ1bmN0aW9uKGwpe2wuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSksby5jbGFzc0xpc3QuYWRkKCJ2aXNpYmxlIikpfSw1MDApKX19LHtwYXNzaXZlOiEwfSksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIixmdW5jdGlvbihhKXtuJiZNYXRoLmFicyhhLnRvdWNoZXNbMF0uY2xpZW50WS1pKT4xMCYmKGNsZWFyVGltZW91dChuKSxuPW51bGwpfSx7cGFzc2l2ZTohMH0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoZW5kIixmdW5jdGlvbigpe24mJihjbGVhclRpbWVvdXQobiksbj1udWxsKX0se3Bhc3NpdmU6ITB9KSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oYSl7YS50YXJnZXQuY2xvc2VzdCgiLm1zZy1jb3B5LWJ0biIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIubXNnLWNvcHktYnRuLnZpc2libGUiKS5mb3JFYWNoKGZ1bmN0aW9uKHUpe3UuY2xhc3NMaXN0LnJlbW92ZSgidmlzaWJsZSIpfSl9KX19KSgpO2Z1bmN0aW9uIGN2KGUpe2lmKCFlKXJldHVybiExO3ZhciB0PVN0cmluZyhlKS50cmltKCk7cmV0dXJuIHQ/ISEodC5pbmRleE9mKCJcdTI1MDBcdTI1MDBcdTI1MDBcdTI1MDAiKT09PTB8fHQ9PT0iXHUyNzZGInx8dD09PSJcdTIwM0EifHwvXlvila3ilbDilILilIzilJTilJDilJjilJzilKTilKzilLTilLzilIDilZBdezIsfSQvLnRlc3QodCl8fC9eW+KWgeKWguKWg+KWhOKWheKWhuKWh+KWiOKWlOKWleKWj+KWkF0rJC8udGVzdCh0KXx8dC5pbmRleE9mKCJlc2MgdG8gaW50ZXJydXB0IikhPT0tMXx8dC5pbmRleE9mKCJDbGF1ZGUgQ29kZSB2IikhPT0tMXx8L15Tb25uZXRcYi8udGVzdCh0KXx8dC5pbmRleE9mKCJGYWlsZWQgdG8gaW5zdGFsbCBBbnRocm9waWMiKSE9PS0xfHx0LmluZGV4T2YoIkNsYXVkZSBDb2RlIGhhcyBzd2l0Y2hlZCIpIT09LTF8fHQuaW5kZXhPZigiPyBmb3Igc2hvcnRjdXRzIikhPT0tMXx8dC5pbmRleE9mKCJDbGF1ZGUgaXMgd2FpdGluZyIpIT09LTF8fHQuaW5kZXhPZigiW3dhbmRdIikhPT0tMXx8dC5pbmRleE9mKCIwOyIpPT09MHx8dC5pbmRleE9mKCI5OyIpPT09MHx8dC5pbmRleE9mKCJjdHJsK2ciKSE9PS0xfHx0LmluZGV4T2YoIi9lZmZvcnQiKSE9PS0xfHwvXlVzaW5nIC4qIGZvciAuKiBzZXNzaW9uLy50ZXN0KHQpfHx0LmluZGV4T2YoIlByZXNzICIpPT09MCYmdC5pbmRleE9mKCIgZm9yIikhPT0tMXx8dC5pbmRleE9mKCJ0eXBlICIpPT09MCYmdC5pbmRleE9mKCIgdG8gIikhPT0tMXx8dC5pbmRleE9mKCJhdXRvIG1vZGUgaXMgdW5hdmFpbGFibGUiKSE9PS0xfHwvTUNQIHNlcnZlci4qZmFpbGVkL2kudGVzdCh0KXx8dC5pbmRleE9mKCJHZXJtaW5hdGluZyIpIT09LTF8fHQuaW5kZXhPZigiRG9vZGxpbmciKSE9PS0xfHx0LmluZGV4T2YoIkJyZXdpbmciKSE9PS0xfHx0LmluZGV4T2YoIlBlcm1pc3Npb25zIikhPT0tMSYmdC5pbmRleE9mKCJtb2RlIikhPT0tMXx8dC5pbmRleE9mKCJcdTI1Q0YiKT09PTAmJnQuaW5kZXhPZigiXHhCNyIpIT09LTF8fHQuaW5kZXhPZigiWz4iKT09PTB8fHQuaW5kZXhPZigiWzwiKT09PTB8fHQuaW5kZXhPZigiQ2FwdHVyZWQgQ2xhdWRlIHNlc3Npb24gSUQiKSE9PS0xfHwvXj5fXHMqT3BlbkFJIENvZGV4XGIvLnRlc3QodCl8fC9eT3BlbkFJIENvZGV4XGIvaS50ZXN0KHQpfHwvXihtb2RlbHxkaXJlY3RvcnkpOlxzKy9pLnRlc3QodCl8fC9eKHRpcHxjb250ZXh0KTpccysvaS50ZXN0KHQpfHwvXndvcmsodHJlZXxzcGFjZSk6XHMrL2kudGVzdCh0KXx8L14oYXBwcm92YWxzP3xzYW5kYm94fHByb3ZpZGVyfHNlc3Npb24gaWQpOlxzKy9pLnRlc3QodCl8fC9eKHRoaW5raW5nfHdvcmtpbmcpKFwuXC5cLnzigKYpPyQvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccytXb3JraW5nXGIvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccysoUnVubmluZ3xQbGFubmluZ3xBcHBseWluZ3xSZWFkaW5nfFNlYXJjaGluZylcYi9pLnRlc3QodCl8fC9eW+KAouKXpsK3XVxzKyhJbnNwZWN0aW5nfFJldmlld2luZ3xTdW1tYXJpemluZ3xFZGl0aW5nfFVwZGF0aW5nfFdyaXRpbmcpXGIvaS50ZXN0KHQpfHwvXlvigKLil6bCt11ccytDb21wbGV0ZWRcYi9pLnRlc3QodCl8fC9eKGN0cmx8ZW50ZXJ8dGFifHNoaWZ0fGVzY3xhbHQpXCsvaS50ZXN0KHQpfHwvXGIob3BlbnxjbG9zZXx0b2dnbGUpIChjaGF0fHRlcm1pbmFsKVxiL2kudGVzdCh0KXx8L1xiKGFwcHJvdmV8ZGVueSlcYi4qXGIocGVybWlzc2lvbnxhcHByb3ZhbClcYi9pLnRlc3QodCl8fC9eKHVzZXxwcmVzcykgLiogKHRvfGZvcikgLiovaS50ZXN0KHQpfHwvXig/OnRva2VufGNvbnRleHQgd2luZG93fHJlbWFpbmluZyBjb250ZXh0fGNvbnZlcnNhdGlvbik6XHMrL2kudGVzdCh0KXx8L14oPzpjd2R8cGF0aCk6XHMrXC8vaS50ZXN0KHQpfHwvXls8PuKUguKUhuKVjl0uKls8PuKUguKUhuKVjl0kLy50ZXN0KHQpJiZ0Lmxlbmd0aDw4KTohMX1mdW5jdGlvbiBkdihlKXtyZXR1cm4gU3RyaW5nKGV8fCIiKS5yZXBsYWNlKC9ceDFiXF1bXlx4MDddKihceDA3fFx4MWJcXCkvZywiIikucmVwbGFjZSgvXHgxYlxbKFxkKylDL2csZnVuY3Rpb24odCxuKXtyZXR1cm4iICIucmVwZWF0KE51bWJlcihuKXx8MSl9KS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltBQl0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW3N1XS9nLCIiKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltIZkpLcl0vZyxgCmApLnJlcGxhY2UoL1x4MWJNL2csYApgKS5yZXBsYWNlKC9ceDFiXFtbMC05Oz9dKltTVF0vZyxgCmApLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW2EtekEtWl0vZywiIikucmVwbGFjZSgvXHgxYls+PD1lUFheX10vZywiIikucmVwbGFjZSgvW1x1MDBhMFx1MjAwYi1cdTIwMGRcdWZlZmZdL2csIiAiKS5yZXBsYWNlKC9bXHgwMC1ceDA4XHgwYlx4MGNceDBlLVx4MWZdL2csIiIpLnJlcGxhY2UoL1xyXG4/L2csYApgKS5yZXBsYWNlKC9bIFx0XStcbi9nLGAKYCkucmVwbGFjZSgvXG57Myx9L2csYAoKYCl9ZnVuY3Rpb24gZnYoZSx0KXt2YXIgbj1bXTtpZighZSlyZXR1cm4gbjt2YXIgaT1TdHJpbmcoZXx8IiIpLGE9YApgLHU9IlxyIixzPSJceDFCIjtpZigvXmNvZGV4XGIvLnRlc3QoU3RyaW5nKHR8fCIiKS50cmltKCkpKXtsZXQgZmU9ZnVuY3Rpb24oSCl7cmV0dXJuIFN0cmluZyhIfHwiIikucmVwbGFjZSgvXHgxYlxdW15ceDA3XSooXHgwN3xceDFiXFwpL2csIiIpLnJlcGxhY2UoL1x4MWJcWyhcZCspQy9nLGZ1bmN0aW9uKGosUSl7cmV0dXJuIiAiLnJlcGVhdChOdW1iZXIoUSl8fDEpfSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbQUJdL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbc3VdL2csIiIpLnJlcGxhY2UoL1x4MWJcW1swLTk7P10qW0hmSktyXS9nLGEpLnJlcGxhY2UoL1x4MWJNL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbU1RdL2csYSkucmVwbGFjZSgvXHgxYlxbWzAtOTs/XSpbYS16QS1aXS9nLCIiKS5yZXBsYWNlKC9ceDFiWz48PWVQWF5fXS9nLCIiKS5yZXBsYWNlKC9bXHUwMGEwXHUyMDBiLVx1MjAwZFx1ZmVmZl0vZywiICIpLnJlcGxhY2UoL1tceDAwLVx4MDhceDBiXHgwY1x4MGUtXHgxZl0vZywiIikucmVwbGFjZSgvWyBcdF0rXG4vZyxhKX0scHQ9ZnVuY3Rpb24oSCl7cmV0dXJuIFN0cmluZyhIfHwiIikucmVwbGFjZSgvXHMrL2csIiAiKS5yZXBsYWNlKC9bTV0rJC9nLCIiKS50cmltKCl9LFo9ZnVuY3Rpb24oSCl7cmV0dXJuIFN0cmluZyhIfHwiIikucmVwbGFjZSgvXuKAulxzKi8sIiIpLnJlcGxhY2UoL14+XHMqLywiIikudHJpbSgpfSxTZT1mdW5jdGlvbihIKXt2YXIgaj1TdHJpbmcoSHx8IiIpLnRyaW0oKTtyZXR1cm4hISghanx8Y3Yoail8fEUudGVzdChqKXx8L15b4pWt4pWw4pSC4pSM4pSU4pSQ4pSY4pSc4pSk4pSs4pS04pS84pSA4pWQXS8udGVzdChqKXx8L15cWz5bMC05Oz9dKnUkL2kudGVzdChqKXx8L15NKyQvaS50ZXN0KGopfHwvXig/Ok9wZW5BSSBDb2RleHxDb2RleClcYi9pLnRlc3Qoail8fC9eKD86dG9rZW5zP3xjb250ZXh0IHdpbmRvd3xyZW1haW5pbmcgY29udGV4dHxhcHByb3ZhbHM/fHNhbmRib3h8cHJvdmlkZXJ8c2Vzc2lvbiBpZCk6XHMqL2kudGVzdChqKXx8L14oPzp0aGlua2luZ3x3b3JraW5nKVxzKig/OlwuXC5cLnzigKYpPyQvaS50ZXN0KGopfHwvXlvigKLil6bCt11ccysoPzp0aGlua2luZ3x3b3JraW5nfHJ1bm5pbmd8cGxhbm5pbmd8YXBwbHlpbmd8cmVhZGluZ3xzZWFyY2hpbmd8aW5zcGVjdGluZ3xyZXZpZXdpbmd8c3VtbWFyaXppbmd8ZWRpdGluZ3x1cGRhdGluZ3x3cml0aW5nfGNvbXBsZXRlZClcYi9pLnRlc3Qoail8fC9eKD86bW9kZWx8ZGlyZWN0b3J5fHRpcHxjb250ZXh0fGN3ZHxwYXRoKTpccysvaS50ZXN0KGopKX0sSWU9ZnVuY3Rpb24oSCl7dmFyIGo9U3RyaW5nKEh8fCIiKS50cmltKCk7aWYoIS9e4oC6KD86XHN8JCkvLnRlc3Qoail8fEUudGVzdChqKSlyZXR1cm4gbnVsbDt2YXIgUT1wdChaKGopKTtyZXR1cm4hUXx8U2UoUSk/bnVsbDpRfSxZZT1mdW5jdGlvbihIKXt2YXIgaj1TdHJpbmcoSHx8IiIpLnRyaW0oKTtpZighL15b4oCi4pemwrfij7pdLy50ZXN0KGopKXJldHVybiBudWxsO3ZhciBRPWoucmVwbGFjZSgvXlvigKLil6bCt11ccyovLCIiKS5yZXBsYWNlKC9e4o+6XHMrLywiIikucmVwbGFjZSgvXuKUglxzKi8sIiIpLnRyaW0oKTtyZXR1cm4hUXx8L15b4oCi4pemwrfij7pdJC8udGVzdChRKXx8KFE9US5yZXBsYWNlKC9ccypcKFxkK1tzbWhdP1xzKuKAolxzKmVzYyB0byBpbnRlcnJ1cHRcKVtcc1xTXSokL2ksIiIpLnJlcGxhY2UoLyg/OlthLXpdezEsNn0pP+KAultcc1xTXSokLywiIikucmVwbGFjZSgvXHN7Mix9Z3B0LVxkW1xzXFNdKiQvaSwiIikucmVwbGFjZSgvXGIoPzpPcGVuQUkgQ29kZXh8bW9kZWw6fGRpcmVjdG9yeTp8VGlwOilcYltcc1xTXSokL2ksIiIpLFE9cHQoUSksIVF8fFEubGVuZ3RoPDJ8fEIudGVzdChRKXx8U2UoUSkpP251bGw6UX0sUWU9ZnVuY3Rpb24oSCl7dmFyIGo9cHQoSCk7cmV0dXJuIWp8fFNlKGopfHwvXlvigKLil6bCt+KPuuKAul0vLnRlc3Qoail8fC9eW1xbXF08PjAtOTs/XSt1PyQvaS50ZXN0KGopfHwvXlvila3ilbDilILilIzilJTilJDilJjilJzilKTilKzilLTilLzilIDilZBdLy50ZXN0KGopfHxqLmxlbmd0aD41MDA/bnVsbDpqfSxGZT1mdW5jdGlvbihILGope2lmKEguaW5kZXhPZihqKSE9PTApcmV0dXJuITE7dmFyIFE9SC5zbGljZShqLmxlbmd0aCk7cmV0dXJuL15bYS16XXsxLDR9JC9pLnRlc3QoUSl9LFRlPWZ1bmN0aW9uKEgpe2Zvcih2YXIgaj1bXSxRPTA7UTxILmxlbmd0aDtRKyspe3ZhciB2ZT1wdChIW1FdKTtpZighKCF2ZXx8dmUubGVuZ3RoPDJ8fFNlKHZlKSkpe3ZhciB5ZT1qW2oubGVuZ3RoLTFdO2lmKCF5ZSl7ai5wdXNoKHZlKTtjb250aW51ZX1pZih2ZSE9PXllKXtpZih2ZS5pbmRleE9mKHllKT09PTApe2pbai5sZW5ndGgtMV09dmU7Y29udGludWV9aWYoeWUuaW5kZXhPZih2ZSk9PT0wKXtGZSh5ZSx2ZSkmJihqW2oubGVuZ3RoLTFdPXZlKTtjb250aW51ZX1qLnB1c2godmUpfX19cmV0dXJuIGouam9pbihhKS50cmltKCl9LCRlPWZ1bmN0aW9uKEgpe2Zvcih2YXIgaj0wO2o8SC5sZW5ndGg7aisrKXt2YXIgUT1TdHJpbmcoSFtqXXx8IiIpLnRyaW0oKTtpZihRKXt2YXIgdmU9SWUoUSk7aWYodmUpcmV0dXJuIHZlO2lmKFE9PT0iXHUyMDNBIilmb3IodmFyIHllPWorMTt5ZTxILmxlbmd0aDt5ZSsrKXt2YXIgUGU9cHQoSFt5ZV0pO2lmKCEoIVBlfHxFLnRlc3QoUGUpfHxTZShQZSkpKXJldHVybiBQZX19fXJldHVybiBudWxsfSxHdD1mdW5jdGlvbihIKXtmb3IodmFyIGo9W10sUT0hMSx2ZT0wO3ZlPEgubGVuZ3RoO3ZlKyspe3ZhciB5ZT1TdHJpbmcoSFt2ZV18fCIiKS50cmltKCk7aWYoIXllKXtpZihRKWJyZWFrO2NvbnRpbnVlfXZhciBQZT1ZZSh5ZSk7aWYoUGUpe2oucHVzaChQZSksUT0hMDtjb250aW51ZX1pZihRKXtpZih5ZT09PSJcdTIwM0EifHwvXuKAuig/OlxzfCQpLy50ZXN0KHllKXx8RS50ZXN0KHllKXx8U2UoeWUpKWJyZWFrO2oucHVzaChwdCh5ZSkpfX1yZXR1cm4gan07Zm9yKHZhciBvPWZlLGw9cHQsYz1aLGY9U2UsZD1JZSx2PVllLGg9UWUsZz1GZSxtPVRlLHk9JGUsdz1HdCxFPS9cYmdwdC1cZCsoPzpcLlxkKyk/KD86XHMrW2EtejAtOS4tXSspP1xzK8K3XHMrXGQrJVxzK2xlZnRccyvCt1xzKyg/OlwvfH5cLykuKy9pLEI9L14oPzp0aGlua2luZ3x3b3JraW5nfHJ1bm5pbmd8cGxhbm5pbmd8YXBwbHlpbmd8cmVhZGluZ3xzZWFyY2hpbmd8aW5zcGVjdGluZ3xyZXZpZXdpbmd8c3VtbWFyaXppbmd8ZWRpdGluZ3x1cGRhdGluZ3x3cml0aW5nfGNvbXBsZXRlZClcYi9pLEY9W10seD0wLFM9aS5yZXBsYWNlKC9cclxuPy9nLGEpLnNwbGl0KGEpLF89MDtfPFMubGVuZ3RoO18rKylmb3IodmFyIFY9ZmUoU1tfXSksVT1WLnNwbGl0KGEpLEk9MDtJPFUubGVuZ3RoO0krKyl7dmFyIEQ9U3RyaW5nKFVbSV18fCIiKS50cmltKCk7aWYoRCl7dmFyIE09SWUoRCk7aWYoTSl7Ri5wdXNoKHtraW5kOiJ1c2VyIixvcmRlcjp4KyssdGV4dDpNfSk7Y29udGludWV9dmFyIEw9WWUoRCk7aWYoTCl7Ri5wdXNoKHtraW5kOiJhc3Npc3RhbnQiLG9yZGVyOngrKyx0ZXh0Okx9KTtjb250aW51ZX12YXIgVz1RZShEKTtXJiZGLnB1c2goe2tpbmQ6ImVjaG8iLG9yZGVyOngrKyx0ZXh0Old9KX19Zm9yKHZhciBLPUYuZmlsdGVyKGZ1bmN0aW9uKEgsaixRKXt2YXIgdmU9UVtqLTFdO3JldHVybiF2ZXx8dmUua2luZCE9PUgua2luZHx8dmUudGV4dCE9PUgudGV4dH0pLFg9Sy5maWx0ZXIoZnVuY3Rpb24oSCl7cmV0dXJuIEgua2luZD09PSJ1c2VyIn0pLG5lPUsuZmlsdGVyKGZ1bmN0aW9uKEgpe3JldHVybiBILmtpbmQ9PT0iYXNzaXN0YW50In0pLHNlPUsuZmlsdGVyKGZ1bmN0aW9uKEgpe3JldHVybiBILmtpbmQ9PT0iZWNobyJ9KSxyZT1kdihpKSxUPXJlLnNwbGl0KGEpLm1hcChmdW5jdGlvbihIKXtyZXR1cm4gU3RyaW5nKEh8fCIiKS50cmltRW5kKCl9KSxPPSRlKFQpLE49WC5sZW5ndGg/WFtYLmxlbmd0aC0xXTpudWxsLFk9c2UubWFwKGZ1bmN0aW9uKEgpe3JldHVybiBILnRleHR9KS5maWx0ZXIoZnVuY3Rpb24oSCl7cmV0dXJuIEgubGVuZ3RoPj0zfSksSj1udWxsLGllPVkubGVuZ3RoLTE7aWU+PTA7aWUtLSlpZihZW2llXSE9PU8pe0o9WVtpZV07YnJlYWt9IUomJlkubGVuZ3RoJiYoSj1ZW1kubGVuZ3RoLTFdKTtmb3IodmFyIGRlPU4/Ti50ZXh0OkosdGU9bmUuZmlsdGVyKGZ1bmN0aW9uKEgpe3JldHVybiFOfHxILm9yZGVyPk4ub3JkZXJ9KS5tYXAoZnVuY3Rpb24oSCl7cmV0dXJuIEgudGV4dH0pLGFlPVtdLEhlPXJlLm1hdGNoKC9eWyBcdF0qW+KAouKXpsK34o+6XVsgXHRdKiguKykkL2dtKXx8W10sRGU9MDtEZTxIZS5sZW5ndGg7RGUrKyl7dmFyIHBlPXB0KEhlW0RlXS5yZXBsYWNlKC9eWyBcdF0qW+KAouKXpsK34o+6XVsgXHRdKi8sIiIpKTtwZSYmKEIudGVzdChwZSl8fEUudGVzdChwZSl8fC9cYig/Ok9wZW5BSSBDb2RleHxtb2RlbDp8ZGlyZWN0b3J5OnxUaXA6fGVzYyB0byBpbnRlcnJ1cHQpXGIvaS50ZXN0KHBlKXx8YWUucHVzaChwZSkpfXZhciBxPVRlKHRlKXx8VGUoR3QoVCkpfHwoYWUubGVuZ3RoP2FlW2FlLmxlbmd0aC0xXTpudWxsKTtyZXR1cm4gZGUmJm4ucHVzaCh7cm9sZToidXNlciIsY29udGVudDpkZX0pLHEmJm4ucHVzaCh7cm9sZToiYXNzaXN0YW50Iixjb250ZW50OnF9KSwhbi5sZW5ndGgmJk4/bi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50Ok4udGV4dH0pOiFuLmxlbmd0aCYmSiYmbi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50Okp9KSxufWZvcih2YXIgSmU9IlwwIixsdD0iXGIiLEc9Ilx2IixlZT0iXGYiLG9lPSIOIixsZT0iHyIsQmU9Ilx4QTAiLFdlPSJceDA3IixWdD1uZXcgUmVnRXhwKHMrIlxcW1swLTk7P10qW2EtekEtWl18IitzKyJcXF1bXiIrV2UrIl0qKCIrV2UrInwiK3MrIlxcXFxcXFxcKXwiK3MrIls+PD1lUF9YXl18WyIrSmUrIi0iK2x0K0crZWUrb2UrIi0iK2xlKyJdfCIrQmUrInwiK3UsImciKSxjdD1pLnJlcGxhY2UoVnQsZnVuY3Rpb24oZmUpe3JldHVybiBmZT09PUJlPyIgIjpmZT09PXU/YToiIn0pLnNwbGl0KHUpLmpvaW4oYSksZHQ9Y3Quc3BsaXQoYSkubWFwKGZ1bmN0aW9uKGZlKXtyZXR1cm4gZmUudHJpbSgpfSkuZmlsdGVyKEJvb2xlYW4pLF9lPVsvdGhpbmtpbmcgd2l0aCBoaWdoIGVmZm9ydC9pLC90aGlua2luZyB3aXRoIG1lZGl1bSBlZmZvcnQvaSwvdGhpbmtpbmcgd2l0aCBsb3cgZWZmb3J0L2ksbmV3IFJlZ0V4cCgidGhvdWdodCBmb3IgWzAtOV0rcyIsImkiKSxuZXcgUmVnRXhwKCJTYXV0ZWVkIGZvciBbMC05XSttIiwiaSIpLC9HZXJtaW5hdGluZy9pLC9Eb29kbGluZy9pLC9CcmV3aW5nL2ldLEt0PW51bGwsR2U9LTEscnQ9W10sa2U9W10sZ2U9W10sYmU9MDtiZTxkdC5sZW5ndGg7YmUrKyl7dmFyIEM9ZHRbYmVdLGl0PUMucmVwbGFjZSgvXuKdr1xzKi8sIiIpO2lmKGl0LmluZGV4T2YoJ1RyeSInKT09PTB8fGl0LmluZGV4T2YoJ1RyeSAiJyk9PT0wKXtydC5wdXNoKGl0KTtjb250aW51ZX1mb3IodmFyIGh0PSExLFN0PTA7U3Q8X2UubGVuZ3RoO1N0KyspaWYoX2VbU3RdLnRlc3QoQykpe2h0PSEwLGdlLnB1c2goQyk7YnJlYWt9aWYoIWh0JiZDJiZDLmluZGV4T2YoIlx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMFx1MjUwMCIpIT09MCYmQyE9PSJcdTI3NkYiJiZDLmluZGV4T2YoImVzYyB0byBpbnRlcnJ1cHQiKT09PS0xJiZDLmluZGV4T2YoIkNsYXVkZSBDb2RlIHYiKT09PS0xJiZDLmluZGV4T2YoIlNvbm5ldCIpPT09LTEmJkMuaW5kZXhPZigifi8iKSE9PTAmJkMuaW5kZXhPZigiXHUyNUNGIGhpZ2giKT09PS0xJiZDLmluZGV4T2YoIkZhaWxlZCB0byBpbnN0YWxsIEFudGhyb3BpYyBtYXJrZXRwbGFjZSIpPT09LTEmJkMuaW5kZXhPZigiQ2xhdWRlIENvZGUgaGFzIHN3aXRjaGVkIGZyb20gbnBtIHRvIG5hdGl2ZSBpbnN0YWxsZXIiKT09PS0xJiZDLmluZGV4T2YoIkZsdXR0ZXJpbmciKT09PS0xJiZDLmluZGV4T2YoIj8gZm9yIHNob3J0Y3V0cyIpPT09LTEmJkMuaW5kZXhPZigiMDsiKSE9PTAmJkMuaW5kZXhPZigiOTsiKSE9PTAmJkMuaW5kZXhPZigiQ2xhdWRlIGlzIHdhaXRpbmciKT09PS0xJiYhKEMuaW5kZXhPZigiXHUyNzIyIikhPT0tMXx8Qy5pbmRleE9mKCJcdTI3MzMiKSE9PS0xfHxDLmluZGV4T2YoIlx1MjczNiIpIT09LTF8fEMuaW5kZXhPZigiXHUyNzNCIikhPT0tMXx8Qy5pbmRleE9mKCJcdTI3M0QiKSE9PS0xKSYmIShDLmluZGV4T2YoIlx1MjU5MCIpPT09MHx8Qy5pbmRleE9mKCJcdTI1OUQiKT09PTB8fEMuaW5kZXhPZigiXHUyNTk4Iik9PT0wKSYmISgoQz09PSJsdSJ8fEM9PT0idWUifHxDPT09InRyInx8Qz09PSJ0aSJ8fEM9PT0iZyJ8fEM9PT0ibiJ8fEM9PT0iaVx1MjAyNiJ8fEM9PT0iXHUyMDI2Inx8Qz09PSJ1dHMifHxDPT09Imx0Inx8Qz09PSJyZyJ8fEM9PT0iXHhCNyIpJiZDLmxlbmd0aDw0KSYmIShDLmluZGV4T2YoIlx1MjczREYiKT09PTB8fEMuaW5kZXhPZigiXHUyNzNCRiIpPT09MCkmJkMuaW5kZXhPZigibnBtIFdBUk4iKT09PS0xJiZDLmluZGV4T2YoIm5wbSBub3RpY2UiKT09PS0xJiYhKEMuaW5kZXhPZigiYWRkZWQgIikhPT0tMSYmQy5pbmRleE9mKCIgcGFja2FnZXMiKSE9PS0xKSYmQy5pbmRleE9mKCJhdWRpdGVkICIpPT09LTEmJiEoQy5pbmRleE9mKCJmb3VuZCAiKSE9PS0xJiZDLmluZGV4T2YoIiB2dWxuZXJhYmlsaXRpZXMiKSE9PS0xKSYmIShDLmluZGV4T2YoIlVzaW5nICIpIT09LTEmJkMuaW5kZXhPZigiIGZvciAiKSE9PS0xJiZDLmluZGV4T2YoInNlc3Npb24iKSE9PS0xKSYmQy5pbmRleE9mKCJZb3UgY2FuIHVzZSIpPT09LTEmJiEoQy5pbmRleE9mKCJQcmVzcyAiKSE9PS0xJiZDLmluZGV4T2YoIiBmb3IiKSE9PS0xKSYmIShDLmluZGV4T2YoInR5cGUgIik9PT0wJiZDLmluZGV4T2YoIiB0byAiKSE9PS0xKSYmQy5pbmRleE9mKCJbd2FuZF0iKSE9PTAmJkMuaW5kZXhPZigiQ2FwdHVyZWQgQ2xhdWRlIHNlc3Npb24gSUQiKT09PS0xJiZDLmluZGV4T2YoIlx1MjNGNSIpPT09LTEmJkMuaW5kZXhPZigiYWNjZXB0ZWRpdCIpPT09LTEmJkMuaW5kZXhPZigic2hpZnQrdGFiIik9PT0tMSYmQy5pbmRleE9mKCJ0YWJ0b2N5Y2xlIik9PT0tMSYmQy5pbmRleE9mKCJjdHJsK2ciKT09PS0xJiZDLmluZGV4T2YoIi9lZmZvcnQiKT09PS0xJiYhKEMuaW5kZXhPZigiT3B1cyIpIT09LTEmJkMuaW5kZXhPZigibW9kZWwiKSE9PS0xKSYmQy5pbmRleE9mKCJIYWlrdSIpPT09LTEmJkMuaW5kZXhPZigidG8gY3ljbGUiKT09PS0xJiYhKEMuaW5kZXhPZigiaGlnaCBceEI3IikhPT0tMXx8Qy5pbmRleE9mKCJoaWdoXHhCNyIpIT09LTEpJiYhKEMuaW5kZXhPZigibWVkaXVtIFx4QjciKSE9PS0xfHxDLmluZGV4T2YoIm1lZGl1bVx4QjciKSE9PS0xKSYmIShDLmluZGV4T2YoImxvdyBceEI3IikhPT0tMXx8Qy5pbmRleE9mKCJsb3dceEI3IikhPT0tMSkpe2lmKEMuaW5kZXhPZigiXHUyNUNGIik9PT0wKXtpZihDPUMuc2xpY2UoMSkudHJpbSgpLCFDKWNvbnRpbnVlO2tlLnB1c2goQyk7Y29udGludWV9Qy5sZW5ndGg8MyYmIS9eW2EtekEtWl17M30kLy50ZXN0KEMpfHxrZS5wdXNoKEMpfX1pZihnZS5sZW5ndGg+MCl7dmFyIHd0PWdlW2dlLmxlbmd0aC0xXSxJdD13dC5tYXRjaChuZXcgUmVnRXhwKCJmb3IgKFswLTldK1ttc10rfCBbMC05XSttIFswLTldK3MpIiwiaSIpKSxKdD1JdD8iXHU2REYxXHU1RUE2XHU2MDFEXHU4MDAzICIrSXRbMF0ucmVwbGFjZSgvZm9yIC9pLCIiKToiXHU2REYxXHU1RUE2XHU2MDFEXHU4MDAzXHU0RTJELi4uIjtuLnB1c2goe3JvbGU6InRoaW5raW5nIixjb250ZW50Okp0LHR5cGU6ImRlZXAtdGhvdWdodCJ9KX1pZihydC5sZW5ndGg+MCl7dmFyIGF0PXJ0W3J0Lmxlbmd0aC0xXS5yZXBsYWNlKC9eVHJ5XHMqLywiIikudHJpbSgpO24ucHVzaCh7cm9sZToicHJvbXB0Iixjb250ZW50OmF0LHR5cGU6InN1Z2dlc3Rpb24ifSl9aWYoIWtlLmxlbmd0aClyZXR1cm4gbjtmb3IodmFyIE9lPVtdLHplPW51bGwsaGU9W10sYmU9MDtiZTxrZS5sZW5ndGg7YmUrKylpZihDPWtlW2JlXSxDLmluZGV4T2YoIlx1Mjc2RiIpPT09MCl7dmFyIHl0PUMucmVwbGFjZSgvXuKdr1xzKi8sIiIpLnRyaW0oKTtpZih5dC5pbmRleE9mKCdUcnkiJyk9PT0wfHx5dC5pbmRleE9mKCdUcnkgIicpPT09MCljb250aW51ZTt6ZSE9PW51bGwmJmhlLmxlbmd0aD4wJiYoT2UucHVzaCh7dXNlcjp6ZSxhc3Npc3RhbnRMaW5lczpoZX0pLGhlPVtdKSx5dD96ZT15dDooemUhPT1udWxsJiZoZS5sZW5ndGg+MCYmKE9lLnB1c2goe3VzZXI6emUsYXNzaXN0YW50TGluZXM6aGV9KSxoZT1bXSksemU9bnVsbCl9ZWxzZSB6ZSE9PW51bGwmJihDLmluZGV4T2YoIlx1MjNGQSIpIT09LTEmJihDLmluZGV4T2YoIkhpISIpIT09LTF8fEMuaW5kZXhPZigiSGVsbG8iKSE9PS0xfHxDLmluZGV4T2YoIldoYXQiKSE9PS0xfHxDLmluZGV4T2YoIndvcmtpbmciKSE9PS0xKT9oZS5wdXNoKEMpOkMuaW5kZXhPZigiXHUyM0ZBIik9PT0wP2hlLnB1c2goQy5zbGljZSgxKS50cmltKCl8fEMpOkMubGVuZ3RoPj04JiZDLmluZGV4T2YoIlx1MjcyMiIpPT09LTEmJkMuaW5kZXhPZigiXHUyNzMzIik9PT0tMSYmQy5pbmRleE9mKCJcdTI3MzYiKT09PS0xJiZDLmluZGV4T2YoIlx1MjczQiIpPT09LTEmJkMuaW5kZXhPZigiXHUyNzNEIik9PT0tMSYmQy5pbmRleE9mKCJcdTI1OTAiKSE9PTAmJkMuaW5kZXhPZigiXHUyNTlEIikhPT0wJiZDLmluZGV4T2YoIlx1MjU5OCIpIT09MCYmQy5pbmRleE9mKCJlc2N0b2ludGVycnVwdCIpPT09LTEmJkMuaW5kZXhPZigiP2ZvciIpIT09MCYmQy5pbmRleE9mKCI/IGZvciIpIT09MCYmaGUucHVzaChDKSk7aWYoemUhPT1udWxsJiZoZS5sZW5ndGg+MCYmT2UucHVzaCh7dXNlcjp6ZSxhc3Npc3RhbnRMaW5lczpoZX0pLE9lLmxlbmd0aD09PTApe2Zvcih2YXIgZnQ9IiIsdXQ9LTEsYmU9MDtiZTxrZS5sZW5ndGg7YmUrKylpZihDPWtlW2JlXSwhKEMuaW5kZXhPZignVHJ5IicpPT09MHx8Qy5pbmRleE9mKCdUcnkgIicpPT09MCkmJkMuaW5kZXhPZigiRmFpbGVkIHRvIGluc3RhbGwiKT09PS0xJiZDLmluZGV4T2YoImN0cmwrZyIpPT09LTEmJkMuaW5kZXhPZigiXHUyNUNGICIpIT09MCYmIShDLmxlbmd0aDwyfHxDLmxlbmd0aD4xMDApJiYvXlthLXpBLVpdLy50ZXN0KEMpKXtmdD1DLnRyaW0oKSx1dD1iZTticmVha31pZihmdCYmdXQ+PTApe3ZhciBidD1rZS5zbGljZSh1dCsxKS5maWx0ZXIoZnVuY3Rpb24oZmUpe3JldHVybiBmZS5sZW5ndGg+PTh9KTtidC5sZW5ndGg+MCYmT2UucHVzaCh7dXNlcjpmdCxhc3Npc3RhbnRMaW5lczpidH0pfX1mb3IodmFyIFR0PTA7VHQ8T2UubGVuZ3RoO1R0KyspaWYobi5wdXNoKHtyb2xlOiJ1c2VyIixjb250ZW50Ok9lW1R0XS51c2VyfSksT2VbVHRdLmFzc2lzdGFudExpbmVzLmxlbmd0aD4wKXt2YXIgTW49VXYoT2VbVHRdLmFzc2lzdGFudExpbmVzLmpvaW4oYSkpO24ucHVzaCh7cm9sZToiYXNzaXN0YW50Iixjb250ZW50Ok1ufSl9cmV0dXJuIG59dmFyIElvPSJ0cmFuc3BhcmVudCI7ZnVuY3Rpb24gRmkoZSx0KXtmb3IodmFyIG49dHx8MyxpPWVbMF0ubGVuZ3RoKm4sYT1lLmxlbmd0aCpuLHU9IiIscz0wO3M8ZS5sZW5ndGg7cysrKWZvcih2YXIgbz0wO288ZVtzXS5sZW5ndGg7bysrKWVbc11bb10hPT1JbyYmKHUrPSc8cmVjdCB4PSInK28qbisnIiB5PSInK3MqbisnIiB3aWR0aD0iJytuKyciIGhlaWdodD0iJytuKyciIGZpbGw9IicrZVtzXVtvXSsnIi8+Jyk7cmV0dXJuJzxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgJytpKyIgIithKyciIGNsYXNzPSJwaXhlbC1hdmF0YXItc3ZnIj4nK3UrIjwvc3ZnPiJ9ZnVuY3Rpb24gd2koZSl7dmFyIHQ9SW8sbj1lLmJhc2UsaT1lLmRhcmssYT1lLmxpZ2h0fHxlLmJhc2UsdT1lLmFjY2VudHx8IiNGRkZGRkYiLHM9ZS5leWV8fCIjMkQyRDJEIixvPWUubW91dGh8fCIjRjI4QjlBIixsPWUubm9zZXx8ZS5kYXJrO3JldHVybltbdCxpLHQsdCx0LHQsdCx0LGksdF0sW2ksbixpLHQsdCx0LHQsaSxuLGldLFtpLG4sbixuLG4sbixuLG4sbixpXSxbbixuLHUscyxuLG4sdSxzLG4sbl0sW24sbix1LHUsbixuLHUsdSxuLG5dLFtuLG4sbixuLG8sbyxuLG4sbixuXSxbbixsLG4sYSxuLG4sYSxuLGwsbl0sW3QsbixuLG4sbixuLG4sbixuLHRdLFt0LHQsbixpLG4sbixpLG4sdCx0XSxbdCx0LHQsbix0LHQsbix0LHQsdF1dfXZhciBwdj17YmFzZToiI0YwOTIzQSIsZGFyazoiI0M0NkExQSIsbGlnaHQ6IiNGMDkyM0EiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjMkQyRDJEIixtb3V0aDoiI0YyOEI5QSIsbm9zZToiI0U4N0Q1QSJ9LHZ2PXtiYXNlOiIjOUVBQUI4IixkYXJrOiIjNkI3QjhEIixsaWdodDoiI0M1Q0VEOCIsYWNjZW50OiIjRkZGRkZGIixleWU6IiM3RUM4OEIiLG1vdXRoOiIjRjI4QjlBIn0sVG89W3tiYXNlOiIjNUE4RkUwIixkYXJrOiIjMkU1QkIzIixsaWdodDoiIzlDQzBGMiIsYWNjZW50OiIjRkZGRkZGIixleWU6IiNGRkQ2NkUiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjNUE4RkUwIn0se2Jhc2U6IiNBMDZGRTAiLGRhcms6IiM2QjQ1QTgiLGxpZ2h0OiIjQzhBNEYyIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiI0ZGRTM2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiNBMDZGRTAifSx7YmFzZToiIzdCQjc2QiIsZGFyazoiIzRGOEE0MCIsbGlnaHQ6IiNBOUQ0OUMiLGFjY2VudDoiI0ZGRkZGRiIsZXllOiIjMkQyRDJEIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzdCQjc2QiJ9LHtiYXNlOiIjRDg2QTg4IixkYXJrOiIjOUMzQTU3IixsaWdodDoiI0U4QTRCNSIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRkZGRkZGIixwcmltYXJ5OiIjRDg2QTg4In0se2Jhc2U6IiM1QkI3QjAiLGRhcms6IiMyRTc4NzMiLGxpZ2h0OiIjOUNENkQyIixhY2NlbnQ6IiNGRkZGRkYiLGV5ZToiI0ZGRDY2RSIsbW91dGg6IiNGMjhCOUEiLHByaW1hcnk6IiM1QkI3QjAifSx7YmFzZToiIzRBNEE2MCIsZGFyazoiIzFGMUYyRSIsbGlnaHQ6IiM2RTZFODQiLGFjY2VudDoiI0Y1RjVGNSIsZXllOiIjRkZENjZFIixtb3V0aDoiI0YyOEI5QSIscHJpbWFyeToiIzRBNEE2MCJ9LHtiYXNlOiIjRDhBODVBIixkYXJrOiIjOUM3MDI4IixsaWdodDoiI0VCQzc4QSIsYWNjZW50OiIjRkZGRkZGIixleWU6IiMyRDJEMkQiLG1vdXRoOiIjRjI4QjlBIixwcmltYXJ5OiIjRDhBODVBIn1dO2Z1bmN0aW9uIG12KGUsdCl7Zm9yKHZhciBuPVN0cmluZyhlfHwiIiksaT0wLGE9MDthPG4ubGVuZ3RoO2ErKylpPShpPDw1KS1pK24uY2hhckNvZGVBdChhKXwwO3JldHVybiBNYXRoLmFicyhpKSV0fXZhciBMbz17ImdlbmVyYWwtcHVycG9zZSI6Ilx1NEUwN1x1ODBGRFx1NzMyQiIsRXhwbG9yZToiXHU0RkE2XHU2M0EyXHU3MzJCIiwiY29kZS1leHBsb3JlciI6Ilx1NEZBNlx1NjNBMlx1NzMyQiIsImNvZGUtcmV2aWV3ZXIiOiJcdTVCQTFcdTY3RTVcdTczMkIiLCJjb2RlLWFyY2hpdGVjdCI6Ilx1NjdCNlx1Njc4NFx1NzMyQiIsImNvZGUtc2ltcGxpZmllciI6Ilx1N0I4MFx1NTMxNlx1NzMyQiIsImNvZGUtZ3VpZGUiOiJcdTU0MTFcdTVCRkNcdTczMkIiLFBsYW46Ilx1N0I1Nlx1NTIxMlx1NzMyQiIsImZlYXR1cmUtZGV2IjoiXHU1RjAwXHU1M0QxXHU3MzJCIiwicHItdGVzdC1hbmFseXplciI6Ilx1NkQ0Qlx1OEJENVx1NzMyQiIsInNpbGVudC1mYWlsdXJlLWh1bnRlciI6Ilx1NjJBNFx1NTM2Qlx1NzMyQiIsInR5cGUtZGVzaWduLWFuYWx5emVyIjoiXHU3QzdCXHU1NzhCXHU3MzJCIiwiY29tbWVudC1hbmFseXplciI6Ilx1NkNFOFx1OTFDQVx1NzMyQiJ9LGphPW51bGw7ZnVuY3Rpb24gTW8oZSl7aWYoIWUpcmV0dXJuIiI7dmFyIHQ9ZS5hZ2VudFR5cGV8fCIiO2lmKHQmJkxvW3RdKXJldHVybiBMb1t0XTtpZih0KXJldHVybiB0O3ZhciBuPShlLnRhc2tJZHx8IiIpLnNsaWNlKC00KXx8KEZ1KCk9PT0iRW5nbGlzaCI/Ij8iOiJcdTY3MkFcdTc3RTUiKTtyZXR1cm4gY2UoInN1YmFnZW50LmhlbHBlcl9mYWxsYmFja19wcmVmaXgiKStufWZ1bmN0aW9uIE9vKGUpe3ZhciB0PU1vKGUpO2lmKCF0KXJldHVybiB0O3ZhciBuPWphJiZlJiZlLnRhc2tJZD9qYS5nZXQoZS50YXNrSWQpOm51bGw7cmV0dXJuIG4/dCtuOnR9ZnVuY3Rpb24gUG8oZSl7dmFyIHQ9ZSYmKGUuYWdlbnRUeXBlfHxlLnRhc2tJZCl8fCJzdWJhZ2VudCI7cmV0dXJuIFRvW212KHQsVG8ubGVuZ3RoKV19ZnVuY3Rpb24gVWcoZSl7dmFyIHQ9UG8oZSksbj1PbyhlKSxpPUZpKHdpKHQpKTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWF2YXRhciBhc3Npc3RhbnQgc3ViYWdlbnQiIHN0eWxlPSItLWFnZW50LWNvbG9yOicrdC5wcmltYXJ5KyciPjxkaXYgY2xhc3M9InBpeGVsLWF2YXRhciI+JytpKyc8L2Rpdj48c3BhbiBjbGFzcz0iYXZhdGFyLW5hbWUiPicrcChuKSsiPC9zcGFuPjwvZGl2PiJ9ZnVuY3Rpb24gZ3YoZSx0KXtpZighZXx8ZS50eXBlIT09InRvb2xfcmVzdWx0IilyZXR1cm4iIjt2YXIgbj1wbihlLmNvbnRlbnQpLGk9ZS5pc19lcnJvcj09PSEwLGE9dHlwZW9mIG49PSJzdHJpbmciP246bj09bnVsbD8iIjpTdHJpbmcobik7aWYoIWkmJiFhLnRyaW0oKSlyZXR1cm4nPGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHkgcGVuZGluZyI+PHNwYW4gY2xhc3M9InN1YmFnZW50LXJlcGx5LW1hcmtlciBwZW5kaW5nIj4nK3AoY2UoInN1YmFnZW50LnJ1bm5pbmciKSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idHlwaW5nLWluZGljYXRvciI+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PC9zcGFuPjwvZGl2Pic7dmFyIHU9YS50cmltKCk/YTpjZSgic3ViYWdlbnQubm9fb3V0cHV0Iikscz1hLnRyaW0oKT9KYSh1KTpwKHUpLG89Y2UoaT8ic3ViYWdlbnQudGFzay5mYWlsZWQiOiJzdWJhZ2VudC50YXNrLmRvbmUiKSxsPWk/Ilx1MjcxNyI6Ilx1MjcxMyI7cmV0dXJuJzxkaXYgY2xhc3M9InN1YmFnZW50LXJlcGx5IGZpbmFsJysoaT8iIGVycm9yIjoiIikrJyI+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcmVwbHktbWFya2VyICcrKGk/ImVycm9yIjoiZG9uZSIpKyciPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXItaWNvbiIgYXJpYS1oaWRkZW49InRydWUiPicrbCsnPC9zcGFuPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1yZXBseS1tYXJrZXItbGFiZWwiPicrcChvKSsnPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InN1YmFnZW50LXJlcGx5LWNvbnRlbnQiPicrcysiPC9kaXY+PC9kaXY+In12YXIgQ2k9e2Fzc2lzdGFudDpGaSh3aShwdikpLHVzZXI6Rmkod2kodnYpKX0scW89e3VzZXI6e25hbWU6Ilx1OEQ1Qlx1NTM1QVx1ODY0RVx1NTk5RSIsYXZhdGFyU3ZnOkNpLnVzZXJ9LGFzc2lzdGFudDp7bmFtZToiXHU1MkU0XHU1MkIzXHU1MjFEXHU0RThDIixhdmF0YXJTdmc6Q2kuYXNzaXN0YW50fX07ZnVuY3Rpb24gUmEoZSl7dmFyIHQ9ci5jb25maWcmJnIuY29uZmlnLnN0cnVjdHVyZWRDaGF0UGVyc29uYSxuPXQmJnRbZV0/dFtlXTpudWxsLGk9cW9bZV18fHFvLmFzc2lzdGFudDtyZXR1cm57bmFtZTpuJiZ0eXBlb2Ygbi5uYW1lPT0ic3RyaW5nIiYmbi5uYW1lLnRyaW0oKT9uLm5hbWUudHJpbSgpOmkubmFtZSxhdmF0YXI6biYmdHlwZW9mIG4uYXZhdGFyPT0ic3RyaW5nIiYmbi5hdmF0YXIudHJpbSgpP24uYXZhdGFyLnRyaW0oKTpudWxsLGF2YXRhclN2ZzppLmF2YXRhclN2Z319ZnVuY3Rpb24gSG8oZSl7cmV0dXJuJzxkaXYgY2xhc3M9InBpeGVsLWF2YXRhciI+JytlKyI8L2Rpdj4ifWZ1bmN0aW9uIFZnKGUsdCl7aWYoISghZXx8IWUucGFyZW50Tm9kZSkpe3ZhciBuPVJhKHQ9PT0idXNlciI/InVzZXIiOiJhc3Npc3RhbnQiKTtlLm91dGVySFRNTD1IbyhuLmF2YXRhclN2Zyl9fWZ1bmN0aW9uIEduKGUsdCl7dD10fHx7fTt2YXIgbj1lPT09InVzZXIiPyJ1c2VyIjoiYXNzaXN0YW50IixpPVJhKG4pLGE9aS5hdmF0YXI/JzxpbWcgY2xhc3M9InBpeGVsLWF2YXRhci1pbWFnZSIgc3JjPSInK3AoaS5hdmF0YXIpKyciIGFsdD0iJytwKGkubmFtZSkrJyIgb25lcnJvcj0iaGFuZGxlQ2hhdEF2YXRhckltYWdlRXJyb3IodGhpcywgJytKU09OLnN0cmluZ2lmeShuKSsnKSIgLz4nOkhvKGkuYXZhdGFyU3ZnKSx1PXQubGVmdFNsb3Q/dC5sZWZ0U2xvdDoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWF2YXRhciAnK2UrJyI+JythKyc8c3BhbiBjbGFzcz0iYXZhdGFyLW5hbWUiPicrcChpLm5hbWUpKyI8L3NwYW4+Iit1KyI8L2Rpdj4ifWZ1bmN0aW9uIGh2KCl7dmFyIGU9X3QoKTtyZXR1cm4hZXx8IXVlKGUpPyIiOnRsKGUse2tpbmQ6ImNvbXBhY3QifSl9ZnVuY3Rpb24gV2EoZSx0LG4saSl7aWYoZS5yb2xlPT09InRoaW5raW5nIil7dmFyIGE9dHlwZW9mIGUuY29udGVudD09InN0cmluZyI/ZS5jb250ZW50OiIiO2lmKCFhLnRyaW0oKSlyZXR1cm4iIjt2YXIgdT1NdCgidGhpbmtpbmciLFtUdShlLG4pLCJwdHkiXSkscz1YZSh1KSxvPXM9PT1udWxsP3huKCJ0aGlua2luZyIpOnM7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSB0aGlua2luZyI+PGRpdiBjbGFzcz0idGhpbmtpbmctaW5saW5lIHRoaW5raW5nLXB0eSAnKyhvPyJleHBhbmRlZCI6ImNvbGxhcHNlZCIpKyciIGRhdGEtZXhwYW5kLWtpbmQ9InRoaW5raW5nIiBkYXRhLWV4cGFuZC1rZXk9IicrcCh1KSsnIiBkYXRhLXRoaW5raW5nPSInK3AoYSkrJyIgb25jbGljaz0iX190aGlua2luZ1RvZ2dsZSh0aGlzKSI+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1pY29uIj5cdTI5QkY8L3NwYW4+PHNwYW4gY2xhc3M9InRoaW5raW5nLWlubGluZS1wcmV2aWV3Ij4nK3AoYSkrJzwvc3Bhbj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLWFjdGlvbiI+Jysobz8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIikrIjwvc3Bhbj48L2Rpdj48L2Rpdj4ifWlmKGUucm9sZT09PSJwcm9tcHQiKXJldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgcHJvbXB0Ij48ZGl2IGNsYXNzPSJwcm9tcHQtY2FyZCI+PGRpdiBjbGFzcz0icHJvbXB0LWljb24iPlx1MjE5MjwvZGl2PjxkaXYgY2xhc3M9InByb21wdC1jb250ZW50Ij5cdThCRDVcdThCRDVcdUZGMUE8c3BhbiBjbGFzcz0icHJvbXB0LXRleHQiPicrcChlLmNvbnRlbnQpKyI8L3NwYW4+PC9kaXY+PC9kaXY+PC9kaXY+IjtpZihBcnJheS5pc0FycmF5KGUuY29udGVudCkpcmV0dXJuIFB2KGUsdCxuLGkpO3ZhciBsPUduKGUucm9sZSksYz1lLnJvbGU9PT0iYXNzaXN0YW50Ij9KYShlLmNvbnRlbnQpOmUucm9sZT09PSJ1c2VyIj9VbyhlLmNvbnRlbnQpOnAoZS5jb250ZW50KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrZS5yb2xlKyciPicrbCsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWJ1YmJsZSI+JytjKyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIHl2KGUpe3ZhciB0PXt9O2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0O2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2lmKGkmJmkudHlwZT09PSJ0b29sX3Jlc3VsdCIpe3ZhciBhPWkudG9vbF91c2VfaWQ7aWYoIWEpY29udGludWU7dFthXXx8KHRbYV09W10pLHRbYV0ucHVzaChpKX19cmV0dXJuIHR9ZnVuY3Rpb24gX28oZSx0KXt2YXIgbj1lJiZ0P2VbdF06bnVsbDtpZighbnx8IW4ubGVuZ3RoKXJldHVybiBudWxsO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGgtMTtpKyspaWYoZWwobltpXSxuW2krMV0pKXJldHVybiBuW2krMV07cmV0dXJuIG5bbi5sZW5ndGgtMV19ZnVuY3Rpb24gYnYoZSx0KXt2YXIgbj1lJiZ0P2VbdF06bnVsbDtpZighbnx8bi5sZW5ndGg8MilyZXR1cm4hMTtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoLTE7aSsrKWlmKGVsKG5baV0sbltpKzFdKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBFdihlKXtyZXR1cm4nPGRpdiBjbGFzcz0ic3RydWN0dXJlZC10b29sLWhpbnQiPlx1NURGMlx1ODFFQVx1NTJBOFx1NjA2Mlx1NTkwRFx1NEUwMFx1NkIyMSAnK3AoS2EoZSkpKyIgXHU1M0MyXHU2NTcwXHU5NUVFXHU5ODk4PC9kaXY+In12YXIgRnY9e1JlYWQ6MSxHbG9iOjEsR3JlcDoxLFdlYkZldGNoOjEsV2ViU2VhcmNoOjEsVG9kb1JlYWQ6MX07ZnVuY3Rpb24gTm8oZSl7aWYoIWV8fGUudHlwZSE9PSJ0b29sX3VzZSJ8fCFGdltlLm5hbWVdKXJldHVybiExO2lmKGUubmFtZT09PSJSZWFkIil7dmFyIHQ9ZS5pbnB1dHx8e307aWYoZ3UodC5maWxlX3BhdGh8fHQucGF0aHx8IiIpKXJldHVybiExfXJldHVybiEwfWZ1bmN0aW9uIHd2KGUpe2Zvcih2YXIgdD1bXSxuPTA7bjxlLmxlbmd0aDspe3ZhciBpPWVbbl07aWYoaS50eXBlPT09InRvb2xfcmVzdWx0Iil7bisrO2NvbnRpbnVlfWlmKE5vKGkpKXtmb3IodmFyIGE9W3tibG9jazppLGluZGV4Om59XSx1PW4rMTt1PGUubGVuZ3RoOyl7aWYoZVt1XS50eXBlPT09InRvb2xfcmVzdWx0Iil7dSsrO2NvbnRpbnVlfWlmKE5vKGVbdV0pKWEucHVzaCh7YmxvY2s6ZVt1XSxpbmRleDp1fSksdSsrO2Vsc2UgYnJlYWt9YS5sZW5ndGg+PTI/dC5wdXNoKHt0eXBlOiJncm91cCIsaXRlbXM6YSxlbmRJbmRleDp1fSk6dC5wdXNoKHt0eXBlOiJzaW5nbGUiLGJsb2NrOmksaW5kZXg6bn0pLG49dX1lbHNlIHQucHVzaCh7dHlwZToic2luZ2xlIixibG9jazppLGluZGV4Om59KSxuKyt9cmV0dXJuIHR9dmFyIEN2PXtSZWFkOiJcdThCRkJcdTUzRDYiLEdsb2I6Ilx1NjQxQ1x1N0QyMiIsR3JlcDoiXHU2NDFDXHU3RDIyIixXZWJGZXRjaDoiXHU2MjkzXHU1M0Q2IixXZWJTZWFyY2g6Ilx1NjQxQ1x1N0QyMiIsVG9kb1JlYWQ6Ilx1NUY4NVx1NTI5RSJ9O2Z1bmN0aW9uIEJ2KGUsdCxuLGkpe2Zvcih2YXIgYT17fSx1PTA7dTxlLmxlbmd0aDt1Kyspe3ZhciBzPWVbdV0uYmxvY2submFtZTthW3NdPShhW3NdfHwwKSsxfWZvcih2YXIgbz0hMCxsPSExLHU9MDt1PGUubGVuZ3RoO3UrKyl7dmFyIGM9ZVt1XS5ibG9jayxmPV9vKG4sYy5pZCk7Zj9mLmlzX2Vycm9yJiYobD0hMCk6bz0hMX12YXIgZD1vP2w/Ilx1MjcxNyI6Ilx1MjcxMyI6Ilx1MjAyNiIsdj1vP2w/ImVycm9yIjoiZG9uZSI6InBlbmRpbmciLGg9W107Zm9yKHZhciBnIGluIGEpaC5wdXNoKGFbZ10rIiAiKyhDdltnXXx8ZykpO2Zvcih2YXIgbT1oLmpvaW4oIiBceEI3ICIpLHk9TXQoInRvb2wtZ3JvdXAiLFtpLGVbMF0mJmVbMF0uaW5kZXgsZS5sZW5ndGhdKSx3PVhlKHkpLEU9dz09PW51bGw/eG4oInRvb2xHcm91cCIpOncsQj0iIix1PTA7dTxlLmxlbmd0aDt1KyspdHJ5e0IrPVZvKGVbdV0uYmxvY2ssdCxuLGVbdV0uaW5kZXgsaSl9Y2F0Y2h7Qis9JzxkaXYgY2xhc3M9InJlbmRlci1lcnJvciI+XHU1REU1XHU1MTc3XHU2RTMyXHU2N0QzXHU1OTMxXHU4RDI1PC9kaXY+J31yZXR1cm4nPGRpdiBjbGFzcz0idG9vbC1ncm91cCIgZGF0YS1leHBhbmQta2luZD0idG9vbC1ncm91cCIgZGF0YS1leHBhbmQta2V5PSInK3AoeSkrJyIgZGF0YS1leHBhbmRlZD0iJysoRT8idHJ1ZSI6ImZhbHNlIikrJyIgZGF0YS1zdGF0dXM9IicrdisnIj48ZGl2IGNsYXNzPSJ0b29sLWdyb3VwLXN1bW1hcnkiIG9uY2xpY2s9Il9fdG9vbEdyb3VwVG9nZ2xlKHRoaXMucGFyZW50Tm9kZSkiPjxzcGFuIGNsYXNzPSJ0b29sLWdyb3VwLXN0YXR1cyI+JytkKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRvb2wtZ3JvdXAtdGV4dCI+JytwKG0pKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRvb2wtZ3JvdXAtY291bnQiPicrZS5sZW5ndGgrJyBcdTRFMkFcdThDMDNcdTc1Mjg8L3NwYW4+PHN2ZyBjbGFzcz0idG9vbC1ncm91cC1jaGV2cm9uIiB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHlsZT0idHJhbnNmb3JtOicrKEU/InJvdGF0ZSgxODBkZWcpIjoiIikrJyI+PHBvbHlsaW5lIHBvaW50cz0iNiA5IDEyIDE1IDE4IDkiLz48L3N2Zz48L2Rpdj48ZGl2IGNsYXNzPSJ0b29sLWdyb3VwLWJvZHkiIHN0eWxlPSJkaXNwbGF5OicrKEU/ImJsb2NrIjoibm9uZSIpKyc7Ij4nK0IrIjwvZGl2PjwvZGl2PiJ9d2luZG93Ll9fdG9vbEdyb3VwVG9nZ2xlPWZ1bmN0aW9uKGUpe2lmKGUpe3ZhciB0PWUuZ2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIik9PT0idHJ1ZSI7ZS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLHQ/ImZhbHNlIjoidHJ1ZSIpO3ZhciBuPWUucXVlcnlTZWxlY3RvcigiLnRvb2wtZ3JvdXAtYm9keSIpO24mJihuLnN0eWxlLmRpc3BsYXk9dD8ibm9uZSI6ImJsb2NrIik7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIudG9vbC1ncm91cC1jaGV2cm9uIik7aSYmKGkuc3R5bGUudHJhbnNmb3JtPXQ/IiI6InJvdGF0ZSgxODBkZWcpIiksd24oZSwidG9vbC1ncm91cCIpfX07ZnVuY3Rpb24gRHYoZSx0KXtmb3IodmFyIG49MCxpPTAsYT0wLHU9e30scz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgbz1lW3Rbc11dO2lmKG8pe28ucm9sZT09PSJ1c2VyIiYmbisrO3ZhciBsPW8uY29udGVudDtpZihBcnJheS5pc0FycmF5KGwpKWZvcih2YXIgYz0wO2M8bC5sZW5ndGg7YysrKXt2YXIgZj1sW2NdO2lmKGYpaWYoZi5fX3N1YmFnZW50JiZmLl9fc3ViYWdlbnQudGFza0lkJiYodVtmLl9fc3ViYWdlbnQudGFza0lkXT0xKSxmLnR5cGU9PT0idG9vbF91c2UiKXtpKys7dmFyIGQ9QmkoZik7ZCYmZC50YXNrSWQmJih1W2QudGFza0lkXT0xKX1lbHNlIGYudHlwZT09PSJ0b29sX3Jlc3VsdCImJmYuaXNfZXJyb3ImJmErK319fXZhciB2PTA7Zm9yKHZhciBoIGluIHUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHUsaCkmJnYrKztyZXR1cm57cm91bmRzOm4sdG9vbHM6aSxhZ2VudHM6dixlcnJvcnM6YX19ZnVuY3Rpb24gam8oZSl7dmFyIHQ9W107cmV0dXJuIHQucHVzaChjZSgiaGlzdG9yeS5yb3VuZHMiLHtuOlN0cmluZyhlLnJvdW5kcyl9KSksZS50b29scz4wJiZ0LnB1c2goY2UoImhpc3RvcnkudG9vbHMiLHtuOlN0cmluZyhlLnRvb2xzKX0pKSxlLmFnZW50cz4wJiZ0LnB1c2goY2UoImhpc3RvcnkuYWdlbnRzIix7bjpTdHJpbmcoZS5hZ2VudHMpfSkpLGUuZXJyb3JzPjAmJnQucHVzaChjZSgiaGlzdG9yeS5lcnJvcnMiLHtuOlN0cmluZyhlLmVycm9ycyl9KSksdC5qb2luKCIgXHhCNyAiKX1mdW5jdGlvbiB6YShlLHQpe2Zvcih2YXIgbj1lLm5leHRFbGVtZW50U2libGluZztuOyluLmNsYXNzTGlzdC5jb250YWlucygiY2hhdC1sb2FkLW1vcmUiKXx8KHQ/bi5jbGFzc0xpc3QucmVtb3ZlKCJjaGF0LWhpc3RvcnktaGlkZGVuIik6bi5jbGFzc0xpc3QuYWRkKCJjaGF0LWhpc3RvcnktaGlkZGVuIikpLG49bi5uZXh0RWxlbWVudFNpYmxpbmd9ZnVuY3Rpb24ga3YoZSx0LG4saSl7IWV8fCF0fHwoQXYoZSx0LCExKSxVYSh0KSxJdihlKSl9ZnVuY3Rpb24gS2coZSl7dmFyIHQ9ZS5xdWVyeVNlbGVjdG9yKCIjY2hhdC1mb2xkLWJhciIpO3JldHVybiB0fHwodD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0LmlkPSJjaGF0LWZvbGQtYmFyIix0LmNsYXNzTmFtZT0iY2hhdC1mb2xkLWJhciBoaWRkZW4iLGUuaW5zZXJ0QmVmb3JlKHQsZS5maXJzdENoaWxkKSx0KX1mdW5jdGlvbiBBdihlLHQsbil7ZSYmZS5jbGFzc0xpc3QudG9nZ2xlKCJhdXRvLWZvbGQiLCEhbil9ZnVuY3Rpb24gSmcoZSx0KXtmb3IodmFyIG49W10saT0wO2k8dDtpKyspZVtpXSYmbi5wdXNoKGkpO3JldHVybiBufWZ1bmN0aW9uIFVhKGUpe2lmKGUpZm9yKHZhciB0PWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtYXV0by1mb2xkLWhpZGRlbiIpLG49MDtuPHQubGVuZ3RoO24rKyl0W25dLmNsYXNzTGlzdC5yZW1vdmUoImNoYXQtYXV0by1mb2xkLWhpZGRlbiIpfWZ1bmN0aW9uIEdnKGUsdCxuKXtpZihVYShlKSwhKCFufHx0PDEpKXtmb3IodmFyIGk9ZS5xdWVyeVNlbGVjdG9yQWxsKCIuY2hhdC1tZXNzYWdlOm5vdCguc3lzdGVtLWluZm8pIiksYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgdT1pW2FdLmdldEF0dHJpYnV0ZSgiZGF0YS1tc2ctaW5kZXgiKTtpZih1IT1udWxsKXt2YXIgcz1wYXJzZUludCh1LDEwKTshaXNOYU4ocykmJnM8dCYmaVthXS5jbGFzc0xpc3QuYWRkKCJjaGF0LWF1dG8tZm9sZC1oaWRkZW4iKX19eHYoZSl9fWZ1bmN0aW9uIHh2KGUpe3ZhciB0PWU/ZS5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnkiKTpudWxsO2lmKHQpe3Quc2V0QXR0cmlidXRlKCJkYXRhLWV4cGFuZGVkIiwiZmFsc2UiKTt2YXIgbj10LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeS1idG4iKTtuJiZuLnNldEF0dHJpYnV0ZSgiYXJpYS1leHBhbmRlZCIsImZhbHNlIik7dmFyIGk9dC5xdWVyeVNlbGVjdG9yKCIuY2hhdC1oaXN0b3J5LXN1bW1hcnktdGl0bGUiKTtpJiYoaS50ZXh0Q29udGVudD1jZSgiaGlzdG9yeS5leHBhbmQiKSksemEodCwhMSksdC5jbGFzc0xpc3QuYWRkKCJjaGF0LWF1dG8tZm9sZC1oaWRkZW4iKTt2YXIgYT1lLmdldEF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIpO2lmKGEpe3ZhciB1PWEuc3BsaXQoIjoiKTt1Lmxlbmd0aD49MyYmKHVbMl09IjAiLGUuc2V0QXR0cmlidXRlKCJkYXRhLWhpc3Rvcnktc2lnIix1LmpvaW4oIjoiKSkpfX19ZnVuY3Rpb24gU3YoZSl7IWV8fCFlLmlzQ29ubmVjdGVkfHwoRm4oe3JlbW92ZURpdmlkZXI6ITB9KSx3dSghMCkpfWZ1bmN0aW9uIEl2KGUpe2lmKGUpe3ZhciB0PWUucXVlcnlTZWxlY3RvcigiI2NoYXQtZm9sZC1iYXIiKTt0JiYodC5pbm5lckhUTUw9IiIsdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxyLmNoYXRBdXRvRm9sZFNuYXBzaG90PW51bGwpfX1mdW5jdGlvbiBZZyhlLHQsbil7dmFyIGk9Um8oZSl8fCJcdTY1QjBcdTZEODhcdTYwNkYiLGE9dD9Sbyh0KToiXHU3QjQ5XHU1Rjg1XHU1NkRFXHU1OTBELi4uIix1PSIiO3JldHVybiBuJiYodT0nPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJjaGF0LWZvbGQtcm93IGhpc3RvcnkiIG9uY2xpY2s9IndpbmRvdy5fX2NoYXRGb2xkVG9nZ2xlSGlzdG9yeSAmJiB3aW5kb3cuX19jaGF0Rm9sZFRvZ2dsZUhpc3RvcnkoKSIgdGl0bGU9Ilx1NUM1NVx1NUYwMFx1NjIxNlx1NjUzNlx1OEQ3N1x1NjZGNFx1NjVFOVx1NUJGOVx1OEJERCI+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC1yb2xlIj5cdTUzODZcdTUzRjI8L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtZm9sZC10ZXh0Ij5cdTVERjJcdTY1MzZcdThENzcgJytwKGpvKG4pKSsiPC9zcGFuPjwvYnV0dG9uPiIpLHUrJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2hhdC1mb2xkLXJvdyB1c2VyIiBvbmNsaWNrPSJ3aW5kb3cuX19jaGF0Rm9sZEp1bXBUb0xhdGVzdCAmJiB3aW5kb3cuX19jaGF0Rm9sZEp1bXBUb0xhdGVzdCgpIiB0aXRsZT0iXHU1QjlBXHU0RjREXHU1MjMwXHU2NzAwXHU2NUIwXHU2RDg4XHU2MDZGIj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXJvbGUiPlx1NjIxMTwvc3Bhbj48c3BhbiBjbGFzcz0iY2hhdC1mb2xkLXRleHQiPicrcChpKSsnPC9zcGFuPjwvYnV0dG9uPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iY2hhdC1mb2xkLXJvdyBhc3Npc3RhbnQiIG9uY2xpY2s9IndpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0ICYmIHdpbmRvdy5fX2NoYXRGb2xkSnVtcFRvTGF0ZXN0KCkiIHRpdGxlPSJcdTVCOUFcdTRGNERcdTUyMzBcdTY3MDBcdTY1QjBcdTU2REVcdTU5MEQiPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtcm9sZSI+Q2xhdWRlPC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWZvbGQtdGV4dCI+JytwKGEpKyI8L3NwYW4+PC9idXR0b24+In1mdW5jdGlvbiBSbyhlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1bXTtmdW5jdGlvbiBuKHMpe2lmKHR5cGVvZiBzPT0ic3RyaW5nIil7dmFyIG89cy5yZXBsYWNlKC9ccysvZywiICIpLnRyaW0oKTtvJiZ0LnB1c2gobyl9fWlmKHR5cGVvZiBlLmNvbnRlbnQ9PSJzdHJpbmciKW4oZS5jb250ZW50KTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZS5jb250ZW50KSlmb3IodmFyIGk9MDtpPGUuY29udGVudC5sZW5ndGgmJnQuam9pbigiICIpLmxlbmd0aDwxODA7aSsrKXt2YXIgYT1lLmNvbnRlbnRbaV07YSYmKGEudHlwZT09PSJ0ZXh0Ij9uKGEudGV4dCk6YS50eXBlPT09InRoaW5raW5nIj9uKGEudGhpbmtpbmcpOmEudHlwZT09PSJ0b29sX3VzZSI/bihhLm5hbWU/Ilx1OEMwM1x1NzUyOCAiK2EubmFtZToiXHU1REU1XHU1MTc3XHU4QzAzXHU3NTI4Iik6YS50eXBlPT09InRvb2xfcmVzdWx0Ij9uKGEuaXNfZXJyb3I/Ilx1NURFNVx1NTE3N1x1OEZENFx1NTZERVx1OTUxOVx1OEJFRiI6Ilx1NURFNVx1NTE3N1x1OEZENFx1NTZERVx1N0VEM1x1Njc5QyIpOmEudGV4dCYmbihhLnRleHQpKX12YXIgdT10LmpvaW4oIiBceEI3ICIpO3JldHVybiB1Lmxlbmd0aD4xODA/dS5zbGljZSgwLDE3NykrIi4uLiI6dX13aW5kb3cuX19jaGF0Rm9sZEp1bXBUb0xhdGVzdD1mdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNjaGF0LW91dHB1dCAuY2hhdC1tZXNzYWdlcyIpO2UmJlN2KGUpfSx3aW5kb3cuX19jaGF0Rm9sZFRvZ2dsZUhpc3Rvcnk9ZnVuY3Rpb24oKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjY2hhdC1vdXRwdXQgLmNoYXQtaGlzdG9yeS1zdW1tYXJ5IiksdD1lP2UucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0biIpOm51bGw7ZSYmZS5jbGFzc0xpc3QucmVtb3ZlKCJjaGF0LWF1dG8tZm9sZC1oaWRkZW4iKSx0JiZ3aW5kb3cuX19oaXN0b3J5U3VtbWFyeVRvZ2dsZSYmd2luZG93Ll9faGlzdG9yeVN1bW1hcnlUb2dnbGUodCl9O2Z1bmN0aW9uIFR2KGUpe2lmKCFlKXJldHVybjtmb3IodmFyIHQ9ci5jdXJyZW50TWVzc2FnZXN8fFtdLG49LTEsaT10Lmxlbmd0aC0xO2k+PTA7aS0tKWlmKHRbaV0mJnRbaV0ucm9sZT09PSJ1c2VyIil7bj1pO2JyZWFrfWZ1bmN0aW9uIGEoKXt2YXIgeD1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpO3gmJngucmVtb3ZlKCk7Zm9yKHZhciBTPWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtaGlzdG9yeS1oaWRkZW4iKSxfPTA7XzxTLmxlbmd0aDtfKyspU1tfXS5jbGFzc0xpc3QucmVtb3ZlKCJjaGF0LWhpc3RvcnktaGlkZGVuIik7ZS5yZW1vdmVBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciKX1pZihuPDEpe2EoKTtyZXR1cm59Zm9yKHZhciB1PWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbWVzc2FnZTpub3QoLnN5c3RlbS1pbmZvKSIpLHM9W10sbz1udWxsLGw9MDtsPHUubGVuZ3RoO2wrKyl7dmFyIGM9dVtsXS5nZXRBdHRyaWJ1dGUoImRhdGEtbXNnLWluZGV4Iik7aWYoYyE9bnVsbCl7dmFyIGY9cGFyc2VJbnQoYywxMCk7aXNOYU4oZil8fGY8biYmKHMucHVzaChmKSxvfHwobz11W2xdKSl9fWlmKHMubGVuZ3RoPDJ8fCFvKXthKCk7cmV0dXJufXZhciBkPUR2KHQscyksdj1NdCgiaGlzdG9yeS1zdW1tYXJ5Iixbbl0pLGg9WGUodik9PT0hMCxnPW4rIjoiK3MubGVuZ3RoKyI6IisoaD8xOjApKyI6IitkLnJvdW5kcysiOiIrZC50b29scysiOiIrZC5hZ2VudHMrIjoiK2QuZXJyb3JzO2lmKCEoZS5nZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciKT09PWcmJmUucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5IikpKXt2YXIgbT1lLnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpO20mJm0ucmVtb3ZlKCk7Zm9yKHZhciB5PWUucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtaGlzdG9yeS1oaWRkZW4iKSx3PTA7dzx5Lmxlbmd0aDt3KyspeVt3XS5jbGFzc0xpc3QucmVtb3ZlKCJjaGF0LWhpc3RvcnktaGlkZGVuIik7dmFyIEU9am8oZCksQj1jZShoPyJoaXN0b3J5LmNvbGxhcHNlIjoiaGlzdG9yeS5leHBhbmQiKSxGPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO0YuY2xhc3NOYW1lPSJjaGF0LWhpc3Rvcnktc3VtbWFyeSIsRi5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kLWtleSIsdiksRi5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiLGg/InRydWUiOiJmYWxzZSIpLEYuaW5uZXJIVE1MPSc8YnV0dG9uIGNsYXNzPSJjaGF0LWhpc3Rvcnktc3VtbWFyeS1idG4iIHR5cGU9ImJ1dHRvbiIgb25jbGljaz0id2luZG93Ll9faGlzdG9yeVN1bW1hcnlUb2dnbGUodGhpcykiIGFyaWEtZXhwYW5kZWQ9IicrKGg/InRydWUiOiJmYWxzZSIpKyciPjxzcGFuIGNsYXNzPSJjaGF0LWhpc3Rvcnktc3VtbWFyeS1pY29uIj4nK3ooImZvbGRlciIse3NpemU6MTV9KSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWhpc3Rvcnktc3VtbWFyeS1ib2R5Ij48c3BhbiBjbGFzcz0iY2hhdC1oaXN0b3J5LXN1bW1hcnktdGl0bGUiPicrcChCKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJjaGF0LWhpc3Rvcnktc3VtbWFyeS1tZXRhIj4nK3AoRSkrJzwvc3Bhbj48L3NwYW4+PHNwYW4gY2xhc3M9ImNoYXQtaGlzdG9yeS1zdW1tYXJ5LWNoZXZyb24iPicreigiY2hldnJvbkRvd24iLHtzaXplOjE2fSkrIjwvc3Bhbj48L2J1dHRvbj4iLGUuaW5zZXJ0QmVmb3JlKEYsbyksemEoRixoKSxlLnNldEF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIsZyl9fXdpbmRvdy5fX2hpc3RvcnlTdW1tYXJ5VG9nZ2xlPWZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuY2xvc2VzdD9lLmNsb3Nlc3QoIi5jaGF0LWhpc3Rvcnktc3VtbWFyeSIpOm51bGw7aWYodCl7dmFyIG49dC5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kLWtleSIpLGk9dC5nZXRBdHRyaWJ1dGUoImRhdGEtZXhwYW5kZWQiKSE9PSJ0cnVlIjt0LnNldEF0dHJpYnV0ZSgiZGF0YS1leHBhbmRlZCIsaT8idHJ1ZSI6ImZhbHNlIiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLGk/InRydWUiOiJmYWxzZSIpO3ZhciBhPXQucXVlcnlTZWxlY3RvcigiLmNoYXQtaGlzdG9yeS1zdW1tYXJ5LXRpdGxlIik7YSYmKGEudGV4dENvbnRlbnQ9Y2UoaT8iaGlzdG9yeS5jb2xsYXBzZSI6Imhpc3RvcnkuZXhwYW5kIikpLG4mJkl1KG4saSksemEodCxpKTt2YXIgdT10LnBhcmVudEVsZW1lbnQ7aWYoaSYmVWEodSksdSl7dmFyIHM9dS5nZXRBdHRyaWJ1dGUoImRhdGEtaGlzdG9yeS1zaWciKTtpZihzKXt2YXIgbz1zLnNwbGl0KCI6Iik7by5sZW5ndGg+PTMmJihvWzJdPWk/IjEiOiIwIix1LnNldEF0dHJpYnV0ZSgiZGF0YS1oaXN0b3J5LXNpZyIsby5qb2luKCI6IikpKX19fX07ZnVuY3Rpb24gQmkoZSl7aWYoIWV8fGUudHlwZSE9PSJ0b29sX3VzZSIpcmV0dXJuIG51bGw7dmFyIHQ9ZS5pbnB1dHx8e30sbj10eXBlb2YgdC5zdWJhZ2VudF90eXBlPT0ic3RyaW5nIj90LnN1YmFnZW50X3R5cGU6bnVsbDtyZXR1cm4hbiYmZS5uYW1lIT09IlRhc2siJiZlLm5hbWUhPT0iQWdlbnQiP251bGw6e3Rhc2tJZDplLmlkLGFnZW50VHlwZTpufHx2b2lkIDAsdGFza0Rlc2NyaXB0aW9uOnR5cGVvZiB0LmRlc2NyaXB0aW9uPT0ic3RyaW5nIj90LmRlc2NyaXB0aW9uOnZvaWQgMH19ZnVuY3Rpb24gTHYoZSl7dmFyIHQ9bmV3IE1hcDtpZighQXJyYXkuaXNBcnJheShlKSlyZXR1cm4gdDtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtpZighKCFpfHxpLnJvbGUhPT0iYXNzaXN0YW50Inx8IUFycmF5LmlzQXJyYXkoaS5jb250ZW50KSkpZm9yKHZhciBhPTA7YTxpLmNvbnRlbnQubGVuZ3RoO2ErKyl7dmFyIHU9aS5jb250ZW50W2FdO2lmKCEoIXV8fHUudHlwZSE9PSJ0b29sX3VzZSIpKXt2YXIgcz11Ll9fc3ViYWdlbnR8fEJpKHUpO3MmJnQuc2V0KHUuaWQscyl9fX1yZXR1cm4gdH1mdW5jdGlvbiBNdihlKXt2YXIgdD1uZXcgTWFwO2lmKCFBcnJheS5pc0FycmF5KGUpKXJldHVybiB0O3ZhciBuPW5ldyBNYXAsaT1uZXcgU2V0O2Z1bmN0aW9uIGEoZil7aWYoISghZnx8IWYudGFza0lkKSYmIWkuaGFzKGYudGFza0lkKSl7aS5hZGQoZi50YXNrSWQpO3ZhciBkPU1vKGYpO2QmJihuLmhhcyhkKXx8bi5zZXQoZCxbXSksbi5nZXQoZCkucHVzaChmLnRhc2tJZCkpfX1mb3IodmFyIHU9MDt1PGUubGVuZ3RoO3UrKyl7dmFyIHM9ZVt1XTtpZighKCFzfHwhQXJyYXkuaXNBcnJheShzLmNvbnRlbnQpKSlmb3IodmFyIG89MDtvPHMuY29udGVudC5sZW5ndGg7bysrKXt2YXIgbD1zLmNvbnRlbnRbb107aWYobCl7dmFyIGM9bC5fX3N1YmFnZW50fHwobC50eXBlPT09InRvb2xfdXNlIj9CaShsKTpudWxsKTtjJiZhKGMpfX19cmV0dXJuIG4uZm9yRWFjaChmdW5jdGlvbihmKXtpZighKGYubGVuZ3RoPDIpKWZvcih2YXIgZD0wO2Q8Zi5sZW5ndGg7ZCsrKXQuc2V0KGZbZF0sIiAjIisoZCsxKSl9KSx0fWZ1bmN0aW9uIFdvKGUsdCl7dmFyIG49W107aWYoIUFycmF5LmlzQXJyYXkoZSl8fCFlLmxlbmd0aClyZXR1cm4gbjtmb3IodmFyIGk9bnVsbCxhPTA7YTxlLmxlbmd0aDthKyspe3ZhciB1PWVbYV0scz11JiZ1LnR5cGU9PT0idGV4dCImJnUuX19wcm9jZXNzaW5nPT09ITA7aWYocyYmaSl7aS5ibG9ja3MucHVzaCh1KTtjb250aW51ZX12YXIgbz11JiZ1Ll9fc3ViYWdlbnQ/dS5fX3N1YmFnZW50Om51bGw7b3x8KG89QmkodSkpLCFvJiZ1JiZ1LnR5cGU9PT0idG9vbF9yZXN1bHQiJiZ0JiZ0Lmhhcyh1LnRvb2xfdXNlX2lkKSYmKG89dC5nZXQodS50b29sX3VzZV9pZCkpO3ZhciBsPW8/by50YXNrSWQ6bnVsbDsoIWl8fGkua2V5IT09bCkmJihpPXtrZXk6bCxzdWJhZ2VudDpvLGJsb2NrczpbXSxmaXJzdEluZGV4OmF9LG4ucHVzaChpKSksaS5ibG9ja3MucHVzaCh1KX1yZXR1cm4gbn1mdW5jdGlvbiBWYShlLHQsbixpLGEpe3ZhciB1PSIiO3RyeXtmb3IodmFyIHM9d3YoZSksbz0wO288cy5sZW5ndGg7bysrKXt2YXIgbD1zW29dO3RyeXtpZihsLnR5cGU9PT0iZ3JvdXAiKXtmb3IodmFyIGM9W10sZj0wO2Y8bC5pdGVtcy5sZW5ndGg7ZisrKWMucHVzaCh7YmxvY2s6bC5pdGVtc1tmXS5ibG9jayxpbmRleDpsLml0ZW1zW2ZdLmluZGV4K3R9KTt1Kz1CdihjLG4saSxhKX1lbHNlIHUrPVZvKGwuYmxvY2ssbixpLGwuaW5kZXgrdCxhKX1jYXRjaHt1Kz0nPGRpdiBjbGFzcz0icmVuZGVyLWVycm9yIj5cdTZEODhcdTYwNkZcdTU3NTdcdTZFMzJcdTY3RDNcdTU5MzFcdThEMjU8L2Rpdj4nfX19Y2F0Y2h7dSs9JzxkaXYgY2xhc3M9InJlbmRlci1lcnJvciI+XHU2RDg4XHU2MDZGXHU2RTMyXHU2N0QzXHU1OTMxXHU4RDI1PC9kaXY+J31yZXR1cm4gdX1mdW5jdGlvbiB6byhlLHQsbixpLGEsdSl7Zm9yKHZhciBzPXV8fHt9LG89cy5zaG93SGFuZG9mZiE9PSExLGw9IiIsYz1udWxsLGY9MDtmPGUubGVuZ3RoO2YrKyl7dmFyIGQ9ZVtmXSx2PVZhKGQuYmxvY2tzLGQuZmlyc3RJbmRleCx0LGksYSk7aWYoISghdnx8IXYudHJpbSgpKSlpZihkLnN1YmFnZW50KXt2YXIgaD1vJiZjIT09ZC5zdWJhZ2VudC50YXNrSWQ7bCs9T3YoZCxuLHYsYSxoKSxjPWQuc3ViYWdlbnQudGFza0lkfWVsc2UgbCs9JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1zZWdtZW50IHBhcmVudCI+JytHbih0KSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPicrdisiPC9kaXY+PC9kaXY+IixjPW51bGx9cmV0dXJuIGx9ZnVuY3Rpb24gT3YoZSx0LG4saSxhKXt2YXIgdT1lLnN1YmFnZW50LHM9UG8odSksbz1Pbyh1KSxsPXUudGFza0lkfHwiIixjPUZpKHdpKHMpKSxmO2lmKGEpe3ZhciBkPSc8c3Ryb25nIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1uYW1lIj4nK3AobykrJzwvc3Ryb25nPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10YWciIHRpdGxlPSInK3AoY2UoInN1YmFnZW50LnRhZ190aXRsZSIpKSsnIj4nK3AoY2UoInN1YmFnZW50LnRhZyIpKSsiPC9zcGFuPiIsdj0hISh1LnRhc2tEZXNjcmlwdGlvbiYmU3RyaW5nKHUudGFza0Rlc2NyaXB0aW9uKS50cmltKCkpLGg9dj9jZSgic3ViYWdlbnQuaGFuZG9mZi53aXRoX2Rlc2MiLHtwYXJlbnQ6cCh0KSxzdWI6ZH0pOmNlKCJzdWJhZ2VudC5oYW5kb2ZmIix7cGFyZW50OnAodCksc3ViOmR9KSxnPXY/JzxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10YXNrLWRlc2MiPicrcCh1LnRhc2tEZXNjcmlwdGlvbikrIjwvc3Bhbj4iOiIiO2Y9JzxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1hcnJvdyIgYXJpYS1oaWRkZW49InRydWUiPlx1MjFCMzwvc3Bhbj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtYXR0cmlidXRpb24iPicraCtnKyI8L3NwYW4+In1lbHNlIGY9JzxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1hdHRyaWJ1dGlvbiI+PHN0cm9uZyBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtbmFtZSI+JytwKG8pKyc8L3N0cm9uZz48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdGFzay1kZXNjIj4gJytwKGNlKCJzdWJhZ2VudC5jb250aW51ZWQiKSkrIjwvc3Bhbj48L3NwYW4+Ijt2YXIgbT1NdCgic3ViYWdlbnQtcGFuZWwiLFtpLGxdKSx5PVhlKG0pLHc9eT09PW51bGw/ITE6ISF5O2Z1bmN0aW9uIEUoQil7cmV0dXJuJzxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdG9nZ2xlIiBkYXRhLXBvc2l0aW9uPSInK0IrJyIgb25jbGljaz0iX19zdWJhZ2VudFBhbmVsVG9nZ2xlKGV2ZW50LCB0aGlzKSIgYXJpYS1leHBhbmRlZD0iJysodz8idHJ1ZSI6ImZhbHNlIikrJyIgYXJpYS1sYWJlbD0iJytwKGNlKHc/InVpLmNvbGxhcHNlX3BhbmVsX2FyaWEiOiJ1aS5leHBhbmRfcGFuZWxfYXJpYSIpKSsnIj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtdG9nZ2xlLWxhYmVsIj4nK3AoY2Uodz8idWkuY29sbGFwc2UiOiJ1aS5leHBhbmQiKSkrJzwvc3Bhbj48c3ZnIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC10b2dnbGUtaWNvbiIgd2lkdGg9IjEwIiBoZWlnaHQ9IjEwIiB2aWV3Qm94PSIwIDAgMTAgMTAiIGZpbGw9Im5vbmUiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cGF0aCBkPSJNMi41IDMuNzVMNSA2LjI1TDcuNSAzLjc1IiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjwvc3ZnPjwvYnV0dG9uPid9cmV0dXJuJzxkaXYgY2xhc3M9InN1YmFnZW50LXBhbmVsIiBkYXRhLWV4cGFuZC1raW5kPSJzdWJhZ2VudC1wYW5lbCIgZGF0YS1leHBhbmQta2V5PSInK3AobSkrJyIgZGF0YS1hZ2VudC1pZD0iJytwKGwpKyciIGRhdGEtZXhwYW5kZWQ9IicrKHc/InRydWUiOiJmYWxzZSIpKyciIHN0eWxlPSItLWFnZW50LWNvbG9yOicrcy5wcmltYXJ5KyciPjxkaXYgY2xhc3M9InN1YmFnZW50LXBhbmVsLWhlYWRlciIgb25jbGljaz0iX19zdWJhZ2VudFBhbmVsVG9nZ2xlKGV2ZW50LCB0aGlzKSIgcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgYXJpYS1sYWJlbD0iJytwKGNlKCJzdWJhZ2VudC50aXRsZV9hcmlhIikpKyciPjxzcGFuIGNsYXNzPSJzdWJhZ2VudC1wYW5lbC1hdmF0YXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4nK2MrIjwvc3Bhbj4iK2YrRSgidG9wIikrJzwvZGl2PjxkaXYgY2xhc3M9InN1YmFnZW50LXBhbmVsLWJvZHkiPicrbisnPC9kaXY+PGRpdiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtZm9vdGVyIj48c3BhbiBjbGFzcz0ic3ViYWdlbnQtcGFuZWwtZm9vdGVyLWhpbnQiIGFyaWEtaGlkZGVuPSJ0cnVlIj5cdTIwMTQgJytwKG8pKyIgXHUyMDE0PC9zcGFuPiIrRSgiYm90dG9tIikrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gUHYoZSx0LG4saSl7dmFyIGE9ZS5yb2xlLHU9VHUoZSxuKSxzPWE9PT0idXNlciImJmUuY29udGVudCYmZS5jb250ZW50LnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYuX19xdWV1ZWR9KTtpZighZS5jb250ZW50fHxlLmNvbnRlbnQubGVuZ3RoPT09MClyZXR1cm4gYT09PSJhc3Npc3RhbnQiPyc8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythKyciPicrR24oYSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1idWJibGUiPjxkaXYgY2xhc3M9InR5cGluZy1pbmRpY2F0b3IiPjxzcGFuPjwvc3Bhbj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2Pic6JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyBlbXB0eS1tZXNzYWdlIiBkYXRhLW1lc3NhZ2Uta2V5PSInK3AodSkrJyI+JytHbihhKSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPjxzcGFuIGNsYXNzPSJlbXB0eS1tZXNzYWdlLWhpbnQiPlx1RkYwOFx1N0E3QVx1NkQ4OFx1NjA2Rlx1RkYwOTwvc3Bhbj48L2Rpdj48L2Rpdj4nO3ZhciBvPXl2KGUuY29udGVudCksbD1SYSgiYXNzaXN0YW50Iik7aWYoYSE9PSJhc3Npc3RhbnQiKXt2YXIgYz1XbyhlLmNvbnRlbnQsaSksZj1jLnNvbWUoZnVuY3Rpb24oRil7cmV0dXJuIEYuc3ViYWdlbnR9KSxkPXM/IiBxdWV1ZWQiOiIiLHY9cz8nPHNwYW4gY2xhc3M9InF1ZXVlZC1iYWRnZSI+XHU2MzkyXHU5NjFGXHU0RTJEPC9zcGFuPic6IiIsaD1odigpO2lmKGYpe3ZhciBnPXpvKGMsYSxsLm5hbWUsbyx1LHtzaG93SGFuZG9mZjohMX0pO3JldHVybic8ZGl2IGNsYXNzPSJjaGF0LW1lc3NhZ2UgJythK2QrJyBtdWx0aS1hZ2VudCIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrZyt2KyI8L2Rpdj4ifXZhciBtPVZhKGUuY29udGVudCwwLGEsbyx1KTtyZXR1cm4nPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlICcrYStkKyciIGRhdGEtbWVzc2FnZS1rZXk9IicrcCh1KSsnIj4nK0duKGEse2xlZnRTbG90Omh9KSsnPGRpdiBjbGFzcz0iY2hhdC1tZXNzYWdlLWNvbnRlbnQiPicrbSt2KyI8L2Rpdj48L2Rpdj4ifXZhciB5PVdvKGUuY29udGVudCxpKSx3PXkuc29tZShmdW5jdGlvbihGKXtyZXR1cm4gRi5zdWJhZ2VudH0pO2lmKCF3KXt2YXIgRT1WYShlLmNvbnRlbnQsMCxhLG8sdSk7cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPicrR24oYSkrJzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZS1jb250ZW50Ij4nK0UrIjwvZGl2PjwvZGl2PiJ9dmFyIEI9JzxkaXYgY2xhc3M9ImNoYXQtbWVzc2FnZSAnK2ErJyBtdWx0aS1hZ2VudCIgZGF0YS1tZXNzYWdlLWtleT0iJytwKHUpKyciPic7cmV0dXJuIEIrPXpvKHksYSxsLm5hbWUsbyx1LHtzaG93SGFuZG9mZjohMH0pLEIrPSI8L2Rpdj4iLEJ9dmFyIHF2PS9eXHMqXFvpmYTku7blt7LkuIrkvKDvvIzor7fmn6XnnIvku6XkuIvmlofku7Y6XG4oW1xzXFNdKj8pXF1cbisvO2Z1bmN0aW9uIEh2KGUpe3ZhciB0PShlfHwiIikudHJpbSgpO2lmKCF0KXJldHVybiIiO3ZhciBuPXQuc3BsaXQoIi8iKS5wb3AoKXx8dDtpZihndSh0KSl7dmFyIGk9Ii9hcGkvZmlsZS1yYXc/cGF0aD0iK2VuY29kZVVSSUNvbXBvbmVudCh0KTtyZXR1cm4nPGRpdiBjbGFzcz0idXNlci1hdHRhY2htZW50LWltYWdlIj48aW1nIGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtdGh1bWIiIGxvYWRpbmc9ImxhenkiIHNyYz0iJytpKyciIGFsdD0iJytwKG4pKyciIGRhdGEtcGF0aD0iJytwKHQpK2AiIG9uY2xpY2s9ImV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyBpZih3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcpd2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KHRoaXMuZ2V0QXR0cmlidXRlKCdkYXRhLXBhdGgnKSk7IiBvbmVycm9yPSJ2YXIgdz10aGlzLmNsb3Nlc3QoJy51c2VyLWF0dGFjaG1lbnQtaW1hZ2UnKTsgaWYodyl3LnN0eWxlLmRpc3BsYXk9J25vbmUnOyIgLz48L2Rpdj5gfXJldHVybic8ZGl2IGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtZmlsZSIgZGF0YS1wYXRoPSInK3AodCkrYCIgb25jbGljaz0iZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IGlmKHdpbmRvdy5fX29wZW5GaWxlUHJldmlldyl3aW5kb3cuX19vcGVuRmlsZVByZXZpZXcodGhpcy5nZXRBdHRyaWJ1dGUoJ2RhdGEtcGF0aCcpKTsiPjxzcGFuIGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnQtZmlsZS1pY29uIj48c3ZnIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjEzIiBoZWlnaHQ9IjEzIiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxwYXRoIGQ9Ik05IDEuNUg0YTEgMSAwIDAgMC0xIDF2MTFhMSAxIDAgMCAwIDEgMWg4YTEgMSAwIDAgMCAxLTFWNS41TDkgMS41eiIvPjxwYXRoIGQ9Ik05IDEuNVY1LjVoNCIvPjwvc3ZnPjwvc3Bhbj48c3BhbiBjbGFzcz0idXNlci1hdHRhY2htZW50LWZpbGUtbmFtZSI+YCtwKG4pKyI8L3NwYW4+PC9kaXY+In1mdW5jdGlvbiBVbyhlKXt2YXIgdD1lfHwiIixuPXQubWF0Y2gocXYpO2lmKCFuKXJldHVybiBwKHQpO2Zvcih2YXIgaT0iIixhPW5bMV0uc3BsaXQoYApgKSx1PTA7dTxhLmxlbmd0aDt1KyspaSs9SHYoYVt1XSk7dmFyIHM9dC5zbGljZShuWzBdLmxlbmd0aCksbz1pPyc8ZGl2IGNsYXNzPSJ1c2VyLWF0dGFjaG1lbnRzIj4nK2krIjwvZGl2PiI6IiIsbD1zLnRyaW0oKT8nPGRpdiBjbGFzcz0idXNlci1hdHRhY2htZW50LXRleHQiPicrcChzKSsiPC9kaXY+IjoiIjtyZXR1cm4gbytsfWZ1bmN0aW9uIFZvKGUsdCxuLGksYSl7aWYoIWV8fCFlLnR5cGV8fGUudHlwZT09PSJ0b29sX3VzZSImJmUuX19zdWJhZ2VudCYmZS5fX3N1YmFnZW50LnRhc2tJZD09PWUuaWQpcmV0dXJuIiI7aWYoZS50eXBlPT09InRvb2xfcmVzdWx0IiYmZS5fX3N1YmFnZW50JiZlLl9fc3ViYWdlbnQudGFza0lkPT09ZS50b29sX3VzZV9pZClyZXR1cm4gZ3YoZSx0KTtzd2l0Y2goZS50eXBlKXtjYXNlInRleHQiOnJldHVybiB0PT09ImFzc2lzdGFudCImJmUuX19wcm9jZXNzaW5nPyc8ZGl2IGNsYXNzPSJ0eXBpbmctaW5kaWNhdG9yIj48c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48L2Rpdj4nOnQ9PT0iYXNzaXN0YW50Ij9KYShlLnRleHR8fCIiKTpVbyhlLnRleHR8fCIiKTtjYXNlInRoaW5raW5nIjp2YXIgdT1lLnRoaW5raW5nfHwiIixzPWUudGhpbmtpbmc9PT12b2lkIDAmJmUudHlwZT09PSJ0aGlua2luZyI7aWYocylyZXR1cm4nPGRpdiBjbGFzcz0idGhpbmtpbmctaW5saW5lIHRoaW5raW5nLXN0cmVhbWluZyIgZGF0YS10aGlua2luZz0iIj48ZGl2IGNsYXNzPSJ0aGlua2luZy1zdHJlYW1pbmctaW5uZXIiPjxzcGFuIGNsYXNzPSJ0aGlua2luZy1zdHJlYW1pbmctaWNvbiBzcGlubmluZyI+XHUyOUJGPC9zcGFuPjxkaXYgY2xhc3M9InRoaW5raW5nLXN0cmVhbWluZy10ZXh0Ij48L2Rpdj48L2Rpdj48L2Rpdj4nO2lmKCF1LnRyaW0oKSlyZXR1cm4iIjt2YXIgbz11Lmxlbmd0aD42MD91LnNsaWNlKDAsNTcpKyJcdTIwMjYiOnUsbD1NdCgidGhpbmtpbmciLFthLGldKSxjPVhlKGwpLGY9Yz09PW51bGw/eG4oInRoaW5raW5nIik6YztyZXR1cm4nPGRpdiBjbGFzcz0idGhpbmtpbmctaW5saW5lICcrKGY/ImV4cGFuZGVkIjoiY29sbGFwc2VkIikrJyIgZGF0YS1leHBhbmQta2luZD0idGhpbmtpbmciIGRhdGEtZXhwYW5kLWtleT0iJytwKGwpKyciIGRhdGEtdGhpbmtpbmc9IicrcCh1KSsnIiBvbmNsaWNrPSJfX3RoaW5raW5nVG9nZ2xlKHRoaXMpIj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLWljb24iPlx1MjlCRjwvc3Bhbj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLXByZXZpZXciPicrcChmP3U6bykrJzwvc3Bhbj48c3BhbiBjbGFzcz0idGhpbmtpbmctaW5saW5lLWFjdGlvbiI+JysoZj8iXHU2NTM2XHU4RDc3IjoiXHU1QzU1XHU1RjAwIikrIjwvc3Bhbj48L2Rpdj4iO2Nhc2UidG9vbF91c2UiOnZhciBkPV9vKG4sZS5pZCksdj1SdihlLGQsaSxhKTtyZXR1cm4gYnYobixlLmlkKSYmKHY9RXYoZS5uYW1lfHwiXHU1REU1XHU1MTc3IikrdiksdjtjYXNlInRvb2xfcmVzdWx0IjpyZXR1cm4iIjtkZWZhdWx0OnZhciBoPWUmJmUudHlwZT9TdHJpbmcoZS50eXBlKToiXHU2NzJBXHU3N0U1IixnPSIiO3RyeXtnPUpTT04uc3RyaW5naWZ5KGUsbnVsbCwyKX1jYXRjaHtnPSJ7fSJ9cmV0dXJuYDxkaXYgY2xhc3M9InVua25vd24tYmxvY2sgY29sbGFwc2VkIiBvbmNsaWNrPSJ0aGlzLmNsYXNzTGlzdC50b2dnbGUoJ2NvbGxhcHNlZCcpIj48ZGl2IGNsYXNzPSJ1bmtub3duLWJsb2NrLWhlYWRlciI+PHNwYW4gY2xhc3M9InVua25vd24tYmxvY2staWNvbiI+Pzwvc3Bhbj48c3BhbiBjbGFzcz0idW5rbm93bi1ibG9jay1sYWJlbCI+XHU2NzJBXHU4QkM2XHU1MjJCXHU3Njg0XHU1MTg1XHU1QkI5XHU1NzU3XHVGRjFBYCtwKGgpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InVua25vd24tYmxvY2stdG9nZ2xlIj5cdTI1QkM8L3NwYW4+PC9kaXY+PHByZSBjbGFzcz0idW5rbm93bi1ibG9jay1ib2R5Ij4nK3AoZykrIjwvcHJlPjwvZGl2PiJ9fWZ1bmN0aW9uIF92KGUsdCxuLGksYSx1LHMpe3ZhciBvPWUuaWR8fCJ0b29sLSIrbixsPU10KCJpbmxpbmUtdG9vbCIsW3Usb3x8cyxzXSksYz1YZShsKSxmPWUuaW5wdXR8fHt9LGQ9cG4odCYmdC5jb250ZW50KSx2PXQmJnQuaXNfZXJyb3IsaD1kLmxlbmd0aD4wLGc9dj8iXHUyNzE3IjpoPyJcdTI3MTMiOiJcdTIwMjYiLG09IiIseT0iIix3PSIiLEU9IiI7aWYobj09PSJSZWFkIil7bT0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PHBhdGggZD0iTTEgMy41QTEuNSAxLjUgMCAwIDEgMi41IDJoMi43NjRjLjk1OCAwIDEuNzYuNTYgMi4zMTEgMS4xODRDOC40MDUgMy43NyA5LjE0NiA0IDEwIDRoMy41QTEuNSAxLjUgMCAwIDEgMTUgNS41djdhMS41IDEuNSAwIDAgMS0xLjUgMS41aC0xMUExLjUgMS41IDAgMCAxIDEgMTIuNXYtOXoiLz48cGF0aCBkPSJNMiA1LjVoMTJNMiA4aDhNMiAxMC41aDUiLz48L3N2Zz4nO3ZhciBCPWYuZmlsZV9wYXRofHxmLnBhdGh8fGl8fCIiLEY9IiI7Zi5saW1pdCYmKEY9IiAiK2Yub2Zmc2V0KyItIisoZi5vZmZzZXQrZi5saW1pdCkpLHk9Qix3PUZ9ZWxzZSBpZihuPT09Ikdsb2IiKXttPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI3IiBjeT0iNyIgcj0iNSIvPjxwYXRoIGQ9Ik0xMC41IDEwLjVMMTQgMTQiLz48L3N2Zz4nO3ZhciB4PWYucGF0dGVybnx8IiIsUz1mLnBhdGh8fGl8fCIiO3k9eCx3PVN9ZWxzZSBpZihuPT09IkdyZXAiKXttPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI2LjUiIGN5PSI2LjUiIHI9IjQuNSIvPjxwYXRoIGQ9Ik0xMS41IDExLjVMMTUgMTUiLz48L3N2Zz4nO3ZhciB4PWYucGF0dGVybnx8IiIsUz1mLnBhdGh8fGl8fCIiO3k9eCx3PVMsZi5jb250ZXh0JiYodys9IiAtQyIrZi5jb250ZXh0KX1lbHNlIGlmKG49PT0iV2ViRmV0Y2giKXttPSc8c3ZnIGNsYXNzPSJpbmxpbmUtdG9vbC1pY29uIiB2aWV3Qm94PSIwIDAgMTYgMTYiIHdpZHRoPSIxNCIgaGVpZ2h0PSIxNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMS41Ij48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iNi41Ii8+PHBhdGggZD0iTTggMS41djEzTTEuNSA4aDEzIi8+PC9zdmc+Jzt2YXIgXz1mLnVybHx8IiI7eT1fLHc9YXx8IiJ9ZWxzZSBpZihuPT09IldlYlNlYXJjaCIpe209JzxzdmcgY2xhc3M9ImlubGluZS10b29sLWljb24iIHZpZXdCb3g9IjAgMCAxNiAxNiIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIxLjUiPjxjaXJjbGUgY3g9IjciIGN5PSI3IiByPSI1Ii8+PHBhdGggZD0iTTEwLjUgMTAuNUwxNCAxNCIvPjxwYXRoIGQ9Ik01IDdoNE03IDV2NCIvPjwvc3ZnPic7dmFyIFY9Zi5xdWVyeXx8IiI7eT1WLHc9YXx8IiJ9ZWxzZSBuPT09IlRvZG9SZWFkIj8obT0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PHJlY3QgeD0iMiIgeT0iMiIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiByeD0iMiIvPjxwYXRoIGQ9Ik01IDhsMiAyIDQtNCIvPjwvc3ZnPicseT0iXHU4QkZCXHU1M0Q2XHU1Rjg1XHU1MjlFXHU1MjE3XHU4ODY4Iix3PWF8fCIiKToobT0nPHN2ZyBjbGFzcz0iaW5saW5lLXRvb2wtaWNvbiIgdmlld0JveD0iMCAwIDE2IDE2IiB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjEuNSI+PGNpcmNsZSBjeD0iOCIgY3k9IjgiIHI9IjYuNSIvPjxwYXRoIGQ9Ik04IDV2My41TTggMTFoLjAxIi8+PC9zdmc+Jyx5PUthKG4pLHc9YXx8IiIpO2lmKGgpe3ZhciBVPWQuc3BsaXQoYApgKTtVLmxlbmd0aD4xMD9FPVUuc2xpY2UoMCwxMCkuam9pbihgCmApK2AKXHUyMDI2YDpFPWR9dmFyIEk9cChkKSxEPXAoRSksTT1kLEw9IiIsVz1jPT09bnVsbD94bigiaW5saW5lVG9vbHMiKTpjO2g/TD0nPGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtZXhwYW5kZWQiIHN0eWxlPSJkaXNwbGF5OiAnKyhXPyJibG9jayI6Im5vbmUiKSsnOyI+PGRpdiBjbGFzcz0iaW5saW5lLXRvb2wtcmVzdWx0Ij4nK0tvKGQsbikrIjwvZGl2PjwvZGl2PiI6dj9MPSc8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1leHBhbmRlZCIgc3R5bGU9ImRpc3BsYXk6ICcrKFc/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1yZXN1bHQgaW5saW5lLXRvb2wtZXJyb3IiPicrcChkfHwiXHU2NENEXHU0RjVDXHU1OTMxXHU4RDI1IikrIjwvZGl2PjwvZGl2PiI6dHx8KEw9JzxkaXYgY2xhc3M9ImlubGluZS10b29sLWV4cGFuZGVkIiBzdHlsZT0iZGlzcGxheTogJysoVz8iYmxvY2siOiJub25lIikrJzsiPjxkaXYgY2xhc3M9ImlubGluZS10b29sLWxvYWRpbmciPlx1N0I0OVx1NUY4NVx1NTRDRFx1NUU5NFx1MjAyNjwvZGl2PjwvZGl2PicpO3ZhciBLPXQmJnQuX3RydW5jYXRlZD09PSEwLFg9IiI7aWYobj09PSJSZWFkIil7dmFyIG5lPWYuZmlsZV9wYXRofHxmLnBhdGh8fGl8fCIiO2lmKG5lJiZndShuZSkpe3ZhciBzZT0iL2FwaS9maWxlLXJhdz9wYXRoPSIrZW5jb2RlVVJJQ29tcG9uZW50KG5lKTtYPSc8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1pbWFnZSIgb25jbGljaz0iZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7Ij48aW1nIGNsYXNzPSJpbmxpbmUtdG9vbC1pbWFnZS10aHVtYiIgbG9hZGluZz0ibGF6eSIgc3JjPSInK3NlKyciIGFsdD0iJytwKEIpKyciIGRhdGEtcGF0aD0iJytwKG5lKStgIiBvbmNsaWNrPSJldmVudC5zdG9wUHJvcGFnYXRpb24oKTsgaWYod2luZG93Ll9fb3BlbkZpbGVQcmV2aWV3KXdpbmRvdy5fX29wZW5GaWxlUHJldmlldyh0aGlzLmdldEF0dHJpYnV0ZSgnZGF0YS1wYXRoJykpOyIgb25lcnJvcj0idmFyIHc9dGhpcy5jbG9zZXN0KCcuaW5saW5lLXRvb2wtaW1hZ2UnKTsgaWYodyl3LnN0eWxlLmRpc3BsYXk9J25vbmUnOyIgLz48L2Rpdj5gfX12YXIgcmU9dz8nPHNwYW4gY2xhc3M9ImlubGluZS10b29sLW1ldGEiPicrcCh3KSsiPC9zcGFuPiI6IiIsVD12PyJpbmxpbmUtdG9vbC1lcnJvci1pbmxpbmUiOiIiO1cmJihUKz0iIGlubGluZS10b29sLW9wZW4iKTt2YXIgTz1LPydkYXRhLXRydW5jYXRlZD0idHJ1ZSIgZGF0YS10b29sLXVzZS1pZD0iJytwKGUuaWR8fCIiKSsnIiAnOiIiO3JldHVybic8ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbCAnK1QrJyIgZGF0YS1leHBhbmQta2luZD0iaW5saW5lLXRvb2wiIGRhdGEtZXhwYW5kLWtleT0iJytwKGwpKyciIGRhdGEtcmVzdWx0PSInK3AoTSkrJyIgZGF0YS1wcmV2aWV3PSInK0QrJyIgZGF0YS1zdGF0dXM9IicrKHY/ImVycm9yIjpoPyJkb25lIjoicGVuZGluZyIpKyciICcrTysnb25jbGljaz0iX19pbmxpbmVUb29sVG9nZ2xlKHRoaXMpIj48ZGl2IGNsYXNzPSJpbmxpbmUtdG9vbC1yb3ciPjxzcGFuIGNsYXNzPSJpbmxpbmUtdG9vbC1zdGF0dXMiPicrZysiPC9zcGFuPiIrbSsnPHNwYW4gY2xhc3M9ImlubGluZS10b29sLXRpdGxlIj4nK3AoeSkrIjwvc3Bhbj4iK3JlKyI8L2Rpdj4iK1grTCsiPC9kaXY+In1mdW5jdGlvbiBOdihlLHQsbixpLGEpe3ZhciB1PWUuaW5wdXR8fHt9LHM9dS5jb21tYW5kfHx1LmNtZHx8IiIsbz1wbih0JiZ0LmNvbnRlbnQpLGw9ZS5pZHx8InRvb2wtIituLGM9TXQoInRlcm1pbmFsIixbaSxsfHxhLGFdKSxmPVhlKGMpLGQ9dCYmdC5pc19lcnJvcix2PXUuZXhpdENvZGUsaD1vLmxlbmd0aD4wLGc9IiI7dD9kP2c9JzxzcGFuIGNsYXNzPSJ0ZXJtLXN0YXR1cy1kb3QgdGVybS1lcnJvciI+PC9zcGFuPic6dj09PTB8fHY9PT12b2lkIDA/Zz0nPHNwYW4gY2xhc3M9InRlcm0tc3RhdHVzLWRvdCB0ZXJtLXN1Y2Nlc3MiPjwvc3Bhbj4nOmc9JzxzcGFuIGNsYXNzPSJ0ZXJtLXN0YXR1cy1kb3QgdGVybS13YXJuIj48L3NwYW4+JzpnPSc8c3BhbiBjbGFzcz0idGVybS1zdGF0dXMtZG90IHRlcm0tcnVubmluZyI+PC9zcGFuPic7Zm9yKHZhciBtPSc8c3BhbiBjbGFzcz0idGVybS1wcm9tcHQiPiQ8L3NwYW4+Jyx5PXAocyksdz1vLnNwbGl0KGAKYCksRT0iIixCPTA7Qjx3Lmxlbmd0aDtCKyspe3ZhciBGPXdbQl07IUYmJkI9PT13Lmxlbmd0aC0xfHwoRSs9JzxkaXYgY2xhc3M9InRlcm0tbGluZSI+JytwKEYpKyI8L2Rpdj4iKX12YXIgeD0iIjtpZih0JiZ2IT09dm9pZCAwKXt2YXIgUz12PT09MD8idGVybS1leGl0LXN1Y2Nlc3MiOiJ0ZXJtLWV4aXQtZXJyb3IiO3g9JzxkaXYgY2xhc3M9InRlcm0tZXhpdCAnK1MrJyI+ZXhpdCAnK3YrIjwvZGl2PiJ9dmFyIF89cy5sZW5ndGg+ODA/cy5zbGljZSgwLDc3KSsiXHUyMDI2IjpzLFY9Zj09PW51bGw/eG4oInRlcm1pbmFsIik6ZixVPXQmJnQuX3RydW5jYXRlZD09PSEwLEk9VT8nIGRhdGEtdHJ1bmNhdGVkPSJ0cnVlIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AoZS5pZHx8IiIpKyciJzoiIjtyZXR1cm4nPGRpdiBjbGFzcz0iaW5saW5lLXRlcm1pbmFsIiBkYXRhLWV4cGFuZC1raW5kPSJ0ZXJtaW5hbCIgZGF0YS1leHBhbmQta2V5PSInK3AoYykrJyIgZGF0YS1leHBhbmRlZD0iJysoVj8idHJ1ZSI6ImZhbHNlIikrJyInK0krJz48ZGl2IGNsYXNzPSJ0ZXJtLWhlYWRlciIgb25jbGljaz0iX190ZXJtaW5hbEV4cGFuZCh0aGlzKSI+JytnKyc8c3BhbiBjbGFzcz0idGVybS1jbWQtcHJldmlldyI+PHNwYW4gY2xhc3M9InRlcm0tcHJvbXB0Ij4kPC9zcGFuPiAnK3AoXykrJzwvc3Bhbj48c3BhbiBjbGFzcz0idGVybS10b2dnbGUtaWNvbiI+JysoVj8iXHUyNUJDIjoiXHUyNUI2IikrJzwvc3Bhbj48L2Rpdj48ZGl2IGNsYXNzPSJ0ZXJtLWJvZHkiIHN0eWxlPSJkaXNwbGF5OicrKFY/ImJsb2NrIjoibm9uZSIpKyc7Ij48ZGl2IGNsYXNzPSJ0ZXJtLWNvbW1hbmQiPjxzcGFuIGNsYXNzPSJ0ZXJtLXByb21wdCI+JDwvc3Bhbj4gJyt5KyI8L2Rpdj4iKyhFPyc8ZGl2IGNsYXNzPSJ0ZXJtLW91dHB1dCI+JytFKyI8L2Rpdj4iOiIiKSt4KyI8L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIHBuKGUpe3JldHVybiBlP3R5cGVvZiBlPT0ic3RyaW5nIj9lOkFycmF5LmlzQXJyYXkoZSk/ZS5tYXAoZnVuY3Rpb24odCl7aWYoIXR8fHR5cGVvZiB0IT0ib2JqZWN0IilyZXR1cm4iIjtpZih0LnR5cGU9PT0idGV4dCImJnR5cGVvZiB0LnRleHQ9PSJzdHJpbmciKXJldHVybiB0LnRleHQ7dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1jYXRjaHtyZXR1cm4iIn19KS5maWx0ZXIoQm9vbGVhbikuam9pbihgCmApOiIiOiIifWZ1bmN0aW9uIGp2KGUsdCxuLGksYSl7dmFyIHU9ZS5pbnB1dHx8e30scz11LmZpbGVfcGF0aHx8dS5wYXRofHwiIixvPXMuc3BsaXQoIi8iKS5wb3AoKXx8cyxsPWUuaWR8fCJ0b29sLSIrbisiLSIrKHR5cGVvZiBhPT0ibnVtYmVyIj9hOjApLGM9dS5vbGRfc3RyaW5nfHwiIixmPXUubmV3X3N0cmluZ3x8dS5jb250ZW50fHwiIixkPXUub2xkX2NvbnRlbnR8fCIiLHY9dS5uZXdfY29udGVudHx8IiIsaD1uPT09IldyaXRlInx8bj09PSJNdWx0aUVkaXQiLGc9dCYmdC5pc19lcnJvcixtPXBuKHQmJnQuY29udGVudCkseT0hIShtJiZtLnRyaW0oKS5sZW5ndGg+MCksdz0iIixFPSIiO2g/RT0nPGRpdiBjbGFzcz0iZGlmZi1saW5lIGRpZmYtYWRkIj4rICcrcCh2KSsiPC9kaXY+IjooYyYmKHc9JzxkaXYgY2xhc3M9ImRpZmYtbGluZSBkaWZmLXJlbW92ZSI+LSAnK3AoYykrIjwvZGl2PiIpLGYmJihFPSc8ZGl2IGNsYXNzPSJkaWZmLWxpbmUgZGlmZi1hZGQiPisgJytwKGYpKyI8L2Rpdj4iKSk7dmFyIEI9IiIsRj0iIjt0P2c/KEI9ImRpZmYtZXJyb3IiLEY9bS5pbmRleE9mKCJoYXZlbid0IGdyYW50ZWQiKSE9PS0xfHxtLmluZGV4T2YoInBlcm1pc3Npb24iKSE9PS0xPyJcdTdCNDlcdTVGODVcdTYzODhcdTY3NDMiOiJcdTU5MzFcdThEMjUiKTooQj0iZGlmZi1zdWNjZXNzIixGPSJcdTVERjJcdTRGRUVcdTY1MzkiKTooQj0iZGlmZi1wZW5kaW5nIixGPSJcdTYyNjdcdTg4NENcdTRFMkQiKTt2YXIgeD1NdCgiZGlmZiIsW2ksbHx8YSxhXSksUz1YZSh4KSxfPXhuKCJlZGl0Q2FyZHMiKSxWPVM9PT1udWxsP0I9PT0iZGlmZi1wZW5kaW5nInx8XzpTLFU9Vj8iIjoiIGNvbGxhcHNlZCIsST13JiZFLEQ9ST8iZGlmZi1jb2wtaGFsZiI6ImRpZmYtY29sLWZ1bGwiO3JldHVybic8ZGl2IGNsYXNzPSJpbmxpbmUtZGlmZicrVSsnIiBkYXRhLXRvb2wtbmFtZT0iJytwKG4pKyciIGRhdGEtZXhwYW5kLWtpbmQ9ImRpZmYiIGRhdGEtZXhwYW5kLWtleT0iJytwKHgpKyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcChsKSsnIj48ZGl2IGNsYXNzPSJkaWZmLWhlYWRlciIgb25jbGljaz0iX190Y1RvZ2dsZShldmVudCx0aGlzKSI+PHNwYW4gY2xhc3M9ImRpZmYtZmlsZS1pY29uIj48L3NwYW4+PHNwYW4gY2xhc3M9ImRpZmYtZmlsZS1uYW1lIj4nK3AobykrJzwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1wYXRoIj4nK3AocykrJzwvc3Bhbj48c3BhbiBjbGFzcz0iZGlmZi1zdGF0dXMgJytCKyciPicrRisnPC9zcGFuPjxzcGFuIGNsYXNzPSJkaWZmLXRvZ2dsZSI+XHUyNUJDPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9ImRpZmYtYm9keSI+PGRpdiBjbGFzcz0iZGlmZi1jb2x1bW5zIj4nKyhJPyc8ZGl2IGNsYXNzPSJkaWZmLWNvbCAnK0QrJyI+PGRpdiBjbGFzcz0iZGlmZi1jb2wtbGFiZWwiPlx1NjVFNzwvZGl2PicrdysiPC9kaXY+IjoiIikrJzxkaXYgY2xhc3M9ImRpZmYtY29sICcrRCsnIj48ZGl2IGNsYXNzPSJkaWZmLWNvbC1sYWJlbCI+JysoST8iXHU2NUIwIjoiIikrIjwvZGl2PiIrKEV8fHcpKyI8L2Rpdj48L2Rpdj48L2Rpdj48L2Rpdj4ifWZ1bmN0aW9uIEtvKGUsdCl7cmV0dXJuIGU/JzxwcmUgY2xhc3M9ImlubGluZS10b29sLXJlc3VsdC10ZXh0IiBzdHlsZT0ibWF4LWhlaWdodDogMzAwcHg7IG92ZXJmbG93LXk6IGF1dG87Ij4nK3AoZSkrIjwvcHJlPiI6JzxzcGFuIGNsYXNzPSJpbmxpbmUtdG9vbC1lbXB0eSI+XHU2NUUwXHU4RjkzXHU1MUZBPC9zcGFuPid9ZnVuY3Rpb24gUnYoZSx0LG4saSl7dmFyIGE9ZS5uYW1lfHwidW5rbm93biIsdT1lLmlkfHwidG9vbC0iK2ErIi0iKyh0eXBlb2Ygbj09Im51bWJlciI/bjowKSxzPXp2KGEsZS5pbnB1dCk7aWYoYT09PSJSZWFkInx8YT09PSJHbG9iInx8YT09PSJHcmVwInx8YT09PSJXZWJGZXRjaCJ8fGE9PT0iV2ViU2VhcmNoInx8YT09PSJUb2RvUmVhZCIpcmV0dXJuIF92KGUsdCxhLHMsIiIsaSxuKTtpZihhPT09IkJhc2giKXJldHVybiBOdihlLHQsYSxpLG4pO2lmKGE9PT0iRWRpdCJ8fGE9PT0iV3JpdGUifHxhPT09Ik11bHRpRWRpdCIpcmV0dXJuIGp2KGUsdCxhLGksbik7aWYoYT09PSJBc2tVc2VyUXVlc3Rpb24iJiZlLmlucHV0JiZlLmlucHV0LnF1ZXN0aW9ucyl7dmFyIG89ZS5pbnB1dC5xdWVzdGlvbnM7aWYobyYmby5sZW5ndGg+MCl7Zm9yKHZhciBsPSEhdCxjPXIuYXNrVXNlclNlbGVjdGlvbnNbdV18fHt9LGY9ISFjLnN1Ym1pdHRlZCxkPWw/cG4odC5jb250ZW50KToiIix2PWQ/ZC50cmltKCkuc3BsaXQoYApgKTpbXSxoPSIiLGc9MDtnPG8ubGVuZ3RoO2crKylpZihvW2ddLmhlYWRlcil7aD1vW2ddLmhlYWRlcjticmVha312YXIgbT1oPyc8c3BhbiBjbGFzcz0idG9vbC11c2Utc3VtbWFyeSI+JytwKGgpKyI8L3NwYW4+IjoiIix5PSIiO28uZm9yRWFjaChmdW5jdGlvbihxLEplKXt2YXIgbHQ9ISFxLm11bHRpU2VsZWN0LEc9cS5xdWVzdGlvbj8nPGRpdiBjbGFzcz0iYXNrLXVzZXItdGl0bGUiPicrcChxLnF1ZXN0aW9uKSsiPC9kaXY+IjoiIixlZT0iIjtxLm9wdGlvbnMmJnEub3B0aW9ucy5sZW5ndGg+MCYmKGVlPSc8ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb25zIiBkYXRhLW11bHRpLXNlbGVjdD0iJytsdCsnIj4nLHEub3B0aW9ucy5mb3JFYWNoKGZ1bmN0aW9uKG9lLGxlKXt2YXIgQmU9b2UubGFiZWw/cChvZS5sYWJlbCk6Ilx1OTAwOVx1OTg3OSAiKyhsZSsxKSxXZT1vZS5kZXNjcmlwdGlvbj8nPGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWRlc2MiPicrcChvZS5kZXNjcmlwdGlvbikrIjwvZGl2PiI6IiI7aWYobCl7dmFyIFZ0PXZbSmVdfHx2WzBdfHwiIixjdD1WdC5zcGxpdCgiLCIpLm1hcChmdW5jdGlvbihHZSl7cmV0dXJuIEdlLnRyaW0oKX0pLGR0PWN0LmluZGV4T2Yob2UubGFiZWx8fCIiKSE9PS0xO2VlKz0nPGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uIGFzay11c2VyLW9wdGlvbi1yZWFkb25seScrKGR0PyIgYXNrLXVzZXItb3B0aW9uLWNob3NlbiI6IiIpKyciPjxzcGFuIGNsYXNzPSJhc2stdXNlci1pbmRpY2F0b3IiPjwvc3Bhbj48ZGl2IGNsYXNzPSJhc2stdXNlci1vcHRpb24tY29udGVudCI+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWxhYmVsIj4nK0JlKyI8L2Rpdj4iK1dlKyI8L2Rpdj48L2Rpdj4ifWVsc2V7dmFyIF9lPShjW0plXXx8W10pLmluZGV4T2YobGUpIT09LTEsS3Q9Zj8iIGRpc2FibGVkIjoiIjtlZSs9JzxidXR0b24gY2xhc3M9ImFzay11c2VyLW9wdGlvbicrKF9lPyIgc2VsZWN0ZWQiOiIiKSsnIiBkYXRhLW9wdGlvbi1pbmRleD0iJytsZSsnIiBkYXRhLXF1ZXN0aW9uLWluZGV4PSInK0plKyciIGRhdGEtb3B0aW9uLWxhYmVsPSInK3Aob2UubGFiZWx8fCJcdTkwMDlcdTk4NzkgIisobGUrMSkpK2AiIG9uY2xpY2s9Il9fYXNrU2VsZWN0KCdgK3AodSkrIicsIitKZSsiLCIrbGUrIiwiK2x0KycpIicrS3QrJz48c3BhbiBjbGFzcz0iYXNrLXVzZXItaW5kaWNhdG9yIj48L3NwYW4+PGRpdiBjbGFzcz0iYXNrLXVzZXItb3B0aW9uLWNvbnRlbnQiPjxkaXYgY2xhc3M9ImFzay11c2VyLW9wdGlvbi1sYWJlbCI+JytCZSsiPC9kaXY+IitXZSsiPC9kaXY+PC9idXR0b24+In19KSxlZSs9IjwvZGl2PiIpLHkrPSc8ZGl2IGNsYXNzPSJhc2stdXNlci1xdWVzdGlvbi1ncm91cCIgZGF0YS1xdWVzdGlvbi1pbmRleD0iJytKZSsnIj4nK0crZWUrIjwvZGl2PiJ9KTt2YXIgdz0iIjtpZighbCl7Zm9yKHZhciBFPSEwLEI9MDtCPG8ubGVuZ3RoO0IrKylpZighY1tCXXx8Y1tCXS5sZW5ndGg9PT0wKXtFPSExO2JyZWFrfXZhciBGPSFFfHxmPyIgZGlzYWJsZWQiOiIiLHg9Zj8iIGFzay11c2VyLXN1Ym1pdHRlZCI6IiIsUz1mPyJcdTVERjJcdTYzRDBcdTRFQTQuLi4iOiJcdTc4NkVcdThCQTRcdTYzRDBcdTRFQTQiO3c9JzxkaXYgY2xhc3M9ImFzay11c2VyLWFjdGlvbnMiPjxidXR0b24gY2xhc3M9ImFzay11c2VyLXN1Ym1pdCcreCsnIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AodSkrYCIgb25jbGljaz0iX19hc2tTdWJtaXQoJ2ArcCh1KStgJykiYCtGKyI+IitTKyI8L2J1dHRvbj48L2Rpdj4ifXZhciBfPSIiO2lmKGwmJmQpe3ZhciBWPWQudHJpbSgpLnJlcGxhY2UoL1xuL2csIiwgIik7Vi5sZW5ndGg+NDAmJihWPVYuc2xpY2UoMCwzNykrIi4uLiIpLF89JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1maWxlIj4nK3AoVikrIjwvc3Bhbj4ifXZhciBVPU10KCJ0b29sLWNhcmQiLFtpLHVdKSxJPVhlKFUpLEQ9ST09PW51bGw/IWw6SSxNPUQ/IiI6IiBjb2xsYXBzZWQiLEw9bD8iIGFzay11c2VyLWFuc3dlcmVkIjoiIjtyZXR1cm4nPGRpdiBjbGFzcz0idG9vbC11c2UtY2FyZCBhc2stdXNlcicrTCtNKyciIGRhdGEtdG9vbC11c2UtaWQ9IicrcCh1KSsnIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWNhcmQiIGRhdGEtZXhwYW5kLWtleT0iJytwKFUpKyciPjxkaXYgY2xhc3M9InRvb2wtdXNlLWhlYWRlciIgZGF0YS10b29sLXRvZ2dsZSBvbmNsaWNrPSJfX3RjVG9nZ2xlKGV2ZW50LHRoaXMpIj48c3BhbiBjbGFzcz0idG9vbC11c2UtaWNvbiI+JysobD8iXHUyNzEzIjoiPyIpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InRvb2wtdXNlLW5hbWUiPlx1NjNEMFx1OTVFRTwvc3Bhbj4nK20rXysnPHNwYW4gY2xhc3M9InRvb2wtdXNlLXRvZ2dsZSI+XHUyNUJDPC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtdXNlLWJvZHkgYXNrLXVzZXItYm9keSI+Jyt5K3crIjwvZGl2PjwvZGl2PiJ9fXZhciBXPWUuZGVzY3JpcHRpb258fGUuaW5wdXQmJmUuaW5wdXQuZGVzY3JpcHRpb258fCIiLEs9V3YoZS5uYW1lLGUuaW5wdXQpLFg9IiIsbmU9IiI7Vz8oWD1XLmxlbmd0aD44MD9XLnNsaWNlKDAsNzcpKyIuLi4iOlcscyYmKG5lPSc8c3BhbiBjbGFzcz0idG9vbC11c2UtZmlsZSI+JytwKHMpKyI8L3NwYW4+IikpOihYPUthKGEpLHMmJihuZT0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLWZpbGUiPicrcChzKSsiPC9zcGFuPiIpLEsmJihuZSs9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1zdW1tYXJ5Ij4nK3AoSykrIjwvc3Bhbj4iKSk7dmFyIHNlPWUuaW5wdXQ/SlNPTi5zdHJpbmdpZnkoZS5pbnB1dCxudWxsLDIpOiJ7fSIscmU9ImxvYWRpbmciLFQ9JzxzcGFuIGNsYXNzPSJ0b29sLXVzZS1zcGlubmVyIj48L3NwYW4+JyxPPSIiO2lmKHQpe3ZhciBOPXQuaXNfZXJyb3IsWT1wbih0LmNvbnRlbnQpO3JlPU4/ImVycm9yIjoic3VjY2VzcyIsVD1KbyhhKTt2YXIgSj1ZJiZZLnRyaW0oKS5sZW5ndGg+MDtKP089JzxwcmUgY2xhc3M9InRvb2wtdXNlLXJlc3VsdC1jb250ZW50Ij4nK3AoWSkrIjwvcHJlPiI6Tz0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLXJlc3VsdC1lbXB0eSI+XHU2NUUwXHU4RjkzXHU1MUZBPC9zcGFuPid9ZWxzZSBUPUpvKGEpO3ZhciBpZT1NdCgidG9vbC1jYXJkIixbaSx1XSksZGU9WGUoaWUpLHRlPXhuKCJlZGl0Q2FyZHMiKSxhZT1kZT09PW51bGw/cmU9PT0ibG9hZGluZyJ8fHRlOmRlLEhlPXQmJnQuX3RydW5jYXRlZD09PSEwLERlPWFlPyIiOiIgY29sbGFwc2VkIixwZT0nPHNwYW4gY2xhc3M9InRvb2wtdXNlLXRvZ2dsZSI+XHUyNUJDPC9zcGFuPic7cmV0dXJuJzxkaXYgY2xhc3M9InRvb2wtdXNlLWNhcmQgJytyZStEZSsnIiBkYXRhLWV4cGFuZC1raW5kPSJ0b29sLWNhcmQiIGRhdGEtZXhwYW5kLWtleT0iJytwKGllKSsnIiBkYXRhLXRvb2wtdXNlLWlkPSInK3AodSkrJyInKyhIZT8nIGRhdGEtdHJ1bmNhdGVkPSJ0cnVlIic6IiIpKyc+PGRpdiBjbGFzcz0idG9vbC11c2UtaGVhZGVyIiBkYXRhLXRvb2wtdG9nZ2xlIG9uY2xpY2s9Il9fdGNUb2dnbGUoZXZlbnQsdGhpcykiPjxzcGFuIGNsYXNzPSJ0b29sLXVzZS1pY29uIj4nK1QrJzwvc3Bhbj48c3BhbiBjbGFzcz0idG9vbC11c2UtbmFtZSI+JytwKFgpKyI8L3NwYW4+IituZStwZSsnPC9kaXY+PGRpdiBjbGFzcz0idG9vbC11c2UtYm9keSI+JysoVz8nPGRpdiBjbGFzcz0idG9vbC11c2UtbWV0YSI+PHNwYW4gY2xhc3M9InRvb2wtdXNlLW1ldGEtbGFiZWwiPlx1NURFNVx1NTE3N1x1RkYxQTwvc3Bhbj4nK3AoYSkrIjwvZGl2PiI6IiIpKyc8cHJlIGNsYXNzPSJ0b29sLXVzZS1jb250ZW50Ij4nK3Aoc2UpKyI8L3ByZT4iKyhPPyc8ZGl2IGNsYXNzPSJ0b29sLXVzZS1yZXN1bHQiPicrTysiPC9kaXY+IjoiIikrIjwvZGl2PjwvZGl2PiJ9ZnVuY3Rpb24gS2EoZSl7dmFyIHQ9e1JlYWQ6Ilx1OEJGQlx1NTNENlx1NjU4N1x1NEVGNiIsV3JpdGU6Ilx1NTE5OVx1NTE2NVx1NjU4N1x1NEVGNiIsRWRpdDoiXHU3RjE2XHU4RjkxXHU2NTg3XHU0RUY2IixNdWx0aUVkaXQ6Ilx1NTkxQVx1NTkwNFx1N0YxNlx1OEY5MSIsQmFzaDoiXHU2MjY3XHU4ODRDXHU1NDdEXHU0RUU0IixHcmVwOiJcdTY0MUNcdTdEMjJcdTUxODVcdTVCQjkiLEdsb2I6Ilx1NjdFNVx1NjI3RVx1NjU4N1x1NEVGNiIsV2ViRmV0Y2g6Ilx1ODNCN1x1NTNENlx1N0Y1MVx1OTg3NSIsV2ViU2VhcmNoOiJcdTY0MUNcdTdEMjJcdTdGNTFcdTk4NzUiLFRhc2s6Ilx1NEVGQlx1NTJBMSIsVG9kb1dyaXRlOiJcdTY2RjRcdTY1QjBcdTVGODVcdTUyOUUiLFRvZG9SZWFkOiJcdThCRkJcdTUzRDZcdTVGODVcdTUyOUUiLE5vdGVib29rRWRpdDoiXHU3RjE2XHU4RjkxXHU3QjE0XHU4QkIwXHU2NzJDIixBZ2VudDoiXHU1QjUwXHU0RUUzXHU3NDA2IixBc2tVc2VyUXVlc3Rpb246Ilx1NjNEMFx1OTVFRSIsRXhpdDoiXHU5MDAwXHU1MUZBIn07cmV0dXJuIHRbZV18fGV9ZnVuY3Rpb24gSm8oZSl7dmFyIHQ9e1JlYWQ6IlIiLFdyaXRlOiJXIixFZGl0OiJFIixNdWx0aUVkaXQ6IkUiLEJhc2g6IiQiLEdyZXA6IkciLEdsb2I6IkYiLFdlYkZldGNoOiJcdTIxRTMiLFdlYlNlYXJjaDoiXHUyMUUyIixUYXNrOiJUIixUb2RvV3JpdGU6Ilx1MjYxMCIsVG9kb1JlYWQ6Ilx1MjYxMSIsTm90ZWJvb2tFZGl0OiJOIixBZ2VudDoiQSIsRXhpdDoiXHhENyJ9O3JldHVybiB0W2VdfHwiXHhCNyJ9ZnVuY3Rpb24gV3YoZSx0KXtpZighdHx8dHlwZW9mIHQhPSJvYmplY3QiKXJldHVybiIiO3ZhciBuPU9iamVjdC5rZXlzKHQpO2lmKG4ubGVuZ3RoPT09MClyZXR1cm4ie30iO2lmKGU9PT0iUmVhZCIpcmV0dXJuIlx1OEJGQlx1NTNENlx1NjU4N1x1NEVGNiI7aWYoZT09PSJXcml0ZSIpcmV0dXJuIlx1NTE5OVx1NTE2NVx1NjU4N1x1NEVGNiI7aWYoZT09PSJFZGl0Iil7dmFyIGk9dC5lZGl0cz90LmVkaXRzLmxlbmd0aDowO3JldHVybiJcdTdGMTZcdThGOTEgKCIraSsiIFx1NTkwNFx1NEZFRVx1NjUzOSkifWlmKGU9PT0iQmFzaCIpe3ZhciBhPXQuY29tbWFuZHx8IiI7aWYoYSl7dmFyIHU9YS5sZW5ndGg+NjA/YS5zbGljZSgwLDYwKSsiLi4uIjphO3JldHVybiJcdTU0N0RcdTRFRTRcdUZGMUEiK3V9fWlmKGU9PT0iR3JlcCIpe3ZhciBzPXQucGF0dGVybnx8IiIsbz10LnBhdGh8fCIiO2lmKHMpcmV0dXJuIlx1NjQxQ1x1N0QyMlx1RkYxQSIrcysobz8iIChcdTU3MjggIitvKyIpIjoiIil9aWYoZT09PSJHbG9iIil7dmFyIHM9dC5wYXR0ZXJufHwiIjtpZihzKXJldHVybiJcdTY3RTVcdTYyN0VcdUZGMUEiK3N9aWYoZT09PSJBZ2VudCIpe3ZhciBsPXQucHJvbXB0fHx0LnRhc2t8fCIiO2lmKGwpe3ZhciBjPWwubGVuZ3RoPjQwP2wuc2xpY2UoMCw0MCkrIi4uLiI6bDtyZXR1cm4iXHU0RUZCXHU1MkExXHVGRjFBIitjfX1pZihlPT09IlRhc2siKXt2YXIgbD10LnRhc2t8fHQuZGVzY3JpcHRpb258fCIiO2lmKGwpe3ZhciBjPWwubGVuZ3RoPjQwP2wuc2xpY2UoMCw0MCkrIi4uLiI6bDtyZXR1cm4iXHU0RUZCXHU1MkExXHVGRjFBIitjfX1pZihlPT09IlRvZG9Xcml0ZSIpe3ZhciBmPXQudG9kb3N8fFtdO3JldHVybiJcdTY2RjRcdTY1QjBcdTVGODVcdTUyOUUgKCIrZi5sZW5ndGgrIiBcdTk4NzkpIn1pZihlPT09IldlYlNlYXJjaCIpe3ZhciBkPXQucXVlcnl8fCIiO2lmKGQpcmV0dXJuIlx1NjQxQ1x1N0QyMlx1RkYxQSIrZH12YXIgdj1uWzBdLGg9dFt2XTtpZih0eXBlb2YgaD09InN0cmluZyIpe3ZhciBnPWgubGVuZ3RoPjUwP2guc2xpY2UoMCw1MCkrIi4uLiI6aDtyZXR1cm4gdisiOiAiK2d9cmV0dXJuIG4ubGVuZ3RoKyIgXHU0RTJBXHU1M0MyXHU2NTcwIn1mdW5jdGlvbiB6dihlLHQpe2lmKCF0KXJldHVybiBudWxsO3ZhciBuPXQuZmlsZV9wYXRofHx0LnBhdGh8fHQuY3dkO3JldHVybiBuP24ubGVuZ3RoPjUwPyIuLi4iK24uc2xpY2UoLTQ3KTpuOm51bGx9ZnVuY3Rpb24gVXYoZSl7aWYoIWUpcmV0dXJuIiI7Zm9yKHZhciB0PWAKYCxuPWUuc3BsaXQodCksaT1bXSxhPSExLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIHM9blt1XSxvPXMudHJpbSgpO2lmKCEoIWEmJiFvKSl7aWYoYT0hMCxvLmluZGV4T2YoIlx1MjNGQSIpPT09MCYmby5sZW5ndGg+Mil7aS5wdXNoKG8uc2xpY2UoMSkudHJpbSgpKTtjb250aW51ZX1pZihvLmluZGV4T2YoIlx1MjVDRiIpPT09MCl7aWYobz1vLnNsaWNlKDEpLnRyaW0oKSwhbyljb250aW51ZTtzPW99aS5wdXNoKHMpfX1mb3IoO2kubGVuZ3RoPjAmJiFpW2kubGVuZ3RoLTFdLnRyaW0oKTspaS5wb3AoKTtmb3IodmFyIGw9W10sYz17fSxmPTA7ZjxpLmxlbmd0aDtmKyspe3ZhciBkPWlbZl0ucmVwbGFjZSgvXHMrL2csIiIpO2QubGVuZ3RoPjUmJmNbZF18fChkLmxlbmd0aD41JiYoY1tkXT0hMCksbC5wdXNoKGlbZl0pKX1yZXR1cm4gbC5qb2luKHQpfWZ1bmN0aW9uIEdvKGUpe3ZhciB0PWAKYCxuPWUuc3BsaXQodCksaT1bXSxhPTA7ZnVuY3Rpb24gdShtKXt2YXIgeT1tLnRyaW0oKTtyZXR1cm4geS5jaGFyQXQoMCk9PT0ifCImJih5PXkuc2xpY2UoMSkpLHkuY2hhckF0KHkubGVuZ3RoLTEpPT09InwiJiYoeT15LnNsaWNlKDAsLTEpKSx5LnNwbGl0KCJ8Iil9ZnVuY3Rpb24gcyhtKXtyZXR1cm4gbT8nIHN0eWxlPSJ0ZXh0LWFsaWduOicrbSsnIic6IiJ9ZnVuY3Rpb24gbyhtLHksdyl7dmFyIEU9Ijx0aGVhZD48dHI+IittLm1hcChmdW5jdGlvbihGLHgpe3JldHVybiI8dGgiK3MoeVt4XSkrIj4iK0YudHJpbSgpKyI8L3RoPiJ9KS5qb2luKCIiKSsiPC90cj48L3RoZWFkPiIsQj13Lmxlbmd0aD8iPHRib2R5PiIrdy5tYXAoZnVuY3Rpb24oRil7cmV0dXJuIjx0cj4iK0YubWFwKGZ1bmN0aW9uKHgsUyl7cmV0dXJuIjx0ZCIrcyh5W1NdKSsiPiIreC50cmltKCkrIjwvdGQ+In0pLmpvaW4oIiIpKyI8L3RyPiJ9KS5qb2luKCIiKSsiPC90Ym9keT4iOiIiO3JldHVybic8ZGl2IGNsYXNzPSJtZC10YWJsZS13cmFwIj48dGFibGUgY2xhc3M9Im1kLXRhYmxlIj4nK0UrQisiPC90YWJsZT48L2Rpdj4ifWZvcig7YTxuLmxlbmd0aDspe3ZhciBsPW5bYV07aWYobC5pbmRleE9mKCJ8IikhPT0tMSYmYSsxPG4ubGVuZ3RoKXt2YXIgYz1uW2ErMV0udHJpbSgpO2lmKC9eXHw/XHMqOj8tKzo/KFxzKlx8XHMqOj8tKzo/KStccypcfD8kLy50ZXN0KGMpKXtmb3IodmFyIGY9dShsKSxkPXUoYykubWFwKGZ1bmN0aW9uKG0pe3ZhciB5PW0udHJpbSgpLHc9eS5jaGFyQXQoMCk9PT0iOiIsRT15LmNoYXJBdCh5Lmxlbmd0aC0xKT09PSI6IjtyZXR1cm4gdyYmRT8iY2VudGVyIjpFPyJyaWdodCI6dz8ibGVmdCI6IiJ9KSx2PVtdLGg9YSsyO2g8bi5sZW5ndGg7KXt2YXIgZz1uW2hdLnRyaW0oKTtpZighZ3x8Zy5pbmRleE9mKCJ8Iik9PT0tMSlicmVhazt2LnB1c2godShuW2hdKSksaCs9MX1pLnB1c2goIiIsbyhmLGQsdiksIiIpLGE9aDtjb250aW51ZX19aS5wdXNoKGwpLGErPTF9cmV0dXJuIGkuam9pbih0KX1mdW5jdGlvbiBKYShlKXtpZighZSlyZXR1cm4iIjt2YXIgdD1wKGUpLG49ImAiLGk9YApgO2Z1bmN0aW9uIGEoVCxPLE4sWSl7Zm9yKHZhciBKPTA7Oyl7dmFyIGllPVQuaW5kZXhPZihPLEopO2lmKGllPT09LTEpYnJlYWs7dmFyIGRlPVQuaW5kZXhPZihPLGllK08ubGVuZ3RoKTtpZihkZT09PS0xKWJyZWFrO3ZhciB0ZT1ULnNsaWNlKGllK08ubGVuZ3RoLGRlKTtpZighdGUpe0o9ZGUrTy5sZW5ndGg7Y29udGludWV9dmFyIGFlPU4rdGUrWTtUPVQuc2xpY2UoMCxpZSkrYWUrVC5zbGljZShkZStPLmxlbmd0aCksSj1pZSthZS5sZW5ndGh9cmV0dXJuIFR9ZnVuY3Rpb24gdShUKXtyZXR1cm4gVD49NDgmJlQ8PTU3fHxUPj02NSYmVDw9OTB8fFQ+PTk3JiZUPD0xMjJ8fFQ9PT05NX1mdW5jdGlvbiBzKFQsTyxOKXtmb3IodmFyIFk9MDtZPFQubGVuZ3RoOyl7dmFyIEo9VC5pbmRleE9mKCJfIixZKTtpZihKPT09LTEpYnJlYWs7dmFyIGllPUo+MD9ULmNoYXJDb2RlQXQoSi0xKTowO2lmKHUoaWUpKXtZPUorMTtjb250aW51ZX1mb3IodmFyIGRlPUorMSx0ZT0tMTtkZTxULmxlbmd0aDspe3ZhciBhZT1ULmluZGV4T2YoIl8iLGRlKTtpZihhZT09PS0xKWJyZWFrO3ZhciBIZT1hZSsxLERlPUhlPFQubGVuZ3RoP1QuY2hhckNvZGVBdChIZSk6MDtpZighdShEZSkpe3RlPWFlO2JyZWFrfWRlPWFlKzF9aWYodGU9PT0tMSlicmVhazt2YXIgcGU9VC5zbGljZShKKzEsdGUpO2lmKCFwZSl7WT10ZSsxO2NvbnRpbnVlfXZhciBxPU8rcGUrTjtUPVQuc2xpY2UoMCxKKStxK1Quc2xpY2UodGUrMSksWT1KK3EubGVuZ3RofXJldHVybiBUfWZ1bmN0aW9uIG8oVCxPLE4sWSl7cmV0dXJuIFQuc3BsaXQoaSkubWFwKGZ1bmN0aW9uKEope3JldHVybiBKLmluZGV4T2YoTykhPT0wP0o6TitKLnNsaWNlKE8ubGVuZ3RoKStZfSkuam9pbihpKX1mdW5jdGlvbiBsKFQpe3JldHVybiBULnNwbGl0KGkpLm1hcChmdW5jdGlvbihPKXt2YXIgTj1PLmluZGV4T2YoIi4gIik7aWYoTjw9MClyZXR1cm4gTztmb3IodmFyIFk9MDtZPE47WSs9MSl7dmFyIEo9Ty5jaGFyQ29kZUF0KFkpO2lmKEo8NDh8fEo+NTcpcmV0dXJuIE99cmV0dXJuIjxsaT4iK08uc2xpY2UoTisyKSsiPC9saT4ifSkuam9pbihpKX1mdW5jdGlvbiBjKFQpe3JldHVybiBULnNwbGl0KGkraSkubWFwKGZ1bmN0aW9uKE8pe3ZhciBOPU8udHJpbSgpO3JldHVybiBOP04uaW5kZXhPZigiPGRpdiIpPT09MHx8Ti5pbmRleE9mKCI8aDEiKT09PTB8fE4uaW5kZXhPZigiPGgyIik9PT0wfHxOLmluZGV4T2YoIjxoMyIpPT09MHx8Ti5pbmRleE9mKCI8aDQiKT09PTB8fE4uaW5kZXhPZigiPGg1Iik9PT0wfHxOLmluZGV4T2YoIjxoNiIpPT09MHx8Ti5pbmRleE9mKCI8dWwiKT09PTB8fE4uaW5kZXhPZigiPG9sIik9PT0wfHxOLmluZGV4T2YoIjxsaSIpPT09MHx8Ti5pbmRleE9mKCI8YmxvY2txdW90ZSIpPT09MHx8Ti5pbmRleE9mKCI8cHJlIik9PT0wP046IjxwPiIrTi5zcGxpdChpKS5qb2luKCI8YnI+IikrIjwvcD4iOiIifSkuam9pbigiIil9Zm9yKHZhciBmPTA7Oyl7dmFyIGQ9dC5pbmRleE9mKG4rbituLGYpO2lmKGQ9PT0tMSlicmVhazt2YXIgdj10LmluZGV4T2YobituK24sZCszKTtpZih2PT09LTEpYnJlYWs7dmFyIGg9dC5zbGljZShkKzMsdiksZz1oLmluZGV4T2YoaSksbT0iIix5PWg7aWYoZyE9PS0xJiZnPDMwKXtmb3IodmFyIHc9aC5zbGljZSgwLGcpLnRyaW0oKSxFPXcubGVuZ3RoPjAsQj0wO0I8dy5sZW5ndGg7Qis9MSl7dmFyIEY9dy5jaGFyQ29kZUF0KEIpLHg9Rj49NDgmJkY8PTU3LFM9Rj49NjUmJkY8PTkwLF89Rj49OTcmJkY8PTEyMjtpZigheCYmIVMmJiFfKXtFPSExO2JyZWFrfX1FJiYobT13LHk9aC5zbGljZShnKzEpKX12YXIgVj1Wdih5LnRyaW0oKSxtKSxVPVYucmVwbGFjZSgvXy9nLCImIzk1OyIpLnJlcGxhY2UoL1wqL2csIiYjNDI7IiksST0nPGRpdiBjbGFzcz0iY29kZS1ibG9jayI+PGRpdiBjbGFzcz0iY29kZS1ibG9jay1oZWFkZXIiPjxzcGFuIGNsYXNzPSJjb2RlLWxhbmciPicrKG18fCJjb2RlIikrJzwvc3Bhbj48YnV0dG9uIGNsYXNzPSJjb2RlLWNvcHkiPkNvcHk8L2J1dHRvbj48L2Rpdj48cHJlPjxjb2RlPicrVSsiPC9jb2RlPjwvcHJlPjwvZGl2PiI7dD10LnNsaWNlKDAsZCkrSSt0LnNsaWNlKHYrMyksZj1kK0kubGVuZ3RofWZvcihmPTA7Oyl7dmFyIEQ9dC5pbmRleE9mKG4sZik7aWYoRD09PS0xKWJyZWFrO3ZhciBNPXQuaW5kZXhPZihuLEQrMSk7aWYoTT09PS0xKWJyZWFrO2lmKE09PT1EKzEpe2Y9TSsxO2NvbnRpbnVlfXZhciBMPXQuc2xpY2UoRCsxLE0pLFc9TC5yZXBsYWNlKC9fL2csIiYjOTU7IikucmVwbGFjZSgvXCovZywiJiM0MjsiKSxLPSc8Y29kZSBjbGFzcz0iY29kZS1pbmxpbmUiPicrVysiPC9jb2RlPiI7dD10LnNsaWNlKDAsRCkrSyt0LnNsaWNlKE0rMSksZj1EK0subGVuZ3RofXQ9YSh0LCIqKiIsIjxzdHJvbmc+IiwiPC9zdHJvbmc+IiksdD1hKHQsIioiLCI8ZW0+IiwiPC9lbT4iKSx0PXModCwiPGVtPiIsIjwvZW0+IiksdD1vKHQsIiMjIyAiLCI8aDM+IiwiPC9oMz4iKSx0PW8odCwiIyMgIiwiPGgyPiIsIjwvaDI+IiksdD1vKHQsIiMgIiwiPGgxPiIsIjwvaDE+IiksdD1vKHQsIiZndDsgIiwiPGJsb2NrcXVvdGU+IiwiPC9ibG9ja3F1b3RlPiIpLHQ9byh0LCItICIsIjxsaT4iLCI8L2xpPiIpLHQ9byh0LCIqICIsIjxsaT4iLCI8L2xpPiIpLHQ9bCh0KSx0PUdvKHQpO3ZhciBYPXQuc3BsaXQoaSksbmU9W10sc2U9W107ZnVuY3Rpb24gcmUoKXtzZS5sZW5ndGgmJihuZS5wdXNoKCI8dWw+IitzZS5qb2luKCIiKSsiPC91bD4iKSxzZT1bXSl9cmV0dXJuIFguZm9yRWFjaChmdW5jdGlvbihUKXtpZihULmluZGV4T2YoIjxsaT4iKT09PTAmJlQubGFzdEluZGV4T2YoIjwvbGk+Iik9PT1ULmxlbmd0aC01KXtzZS5wdXNoKFQpO3JldHVybn1yZSgpLG5lLnB1c2goVCl9KSxyZSgpLHQ9YyhuZS5qb2luKGkpKSwnPGRpdiBjbGFzcz0ibWFya2Rvd24tY29udGVudCI+Jyt0KyI8L2Rpdj4ifWZ1bmN0aW9uIFZ2KGUsdCl7cmV0dXJuIGU9ZS5yZXBsYWNlKC8mL2csIiZhbXA7IikucmVwbGFjZSgvPC9nLCImbHQ7IikucmVwbGFjZSgvPi9nLCImZ3Q7IiksZX1mdW5jdGlvbiBZbihlKXt2YXIgdD1TdHJpbmcoZXx8IiIpLnRyaW0oKTtyZXR1cm4gdC5sZW5ndGg8PTI0P3R8fCJcdTY3MkFcdTkwMDlcdTYyRTlcdTRGMUFcdThCREQiOnQuc2xpY2UoMCwyMSkrIi4uLiJ9ZnVuY3Rpb24gR2EoZSl7cmV0dXJuIFN0cmluZyhlfHwiIikucmVwbGFjZSgvXHJcclxuL2csYFxyCmApLnJlcGxhY2UoL1x1MDAwMC9nLCIiKX1mdW5jdGlvbiBLdigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWhpbnQiKTtlJiZlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWh0dHAtbGluayIpO3QmJih0LmhyZWY9Imh0dHA6Ly8iK2xvY2F0aW9uLmhvc3QrbG9jYXRpb24ucGF0aG5hbWUsdC5zdHlsZS5kaXNwbGF5PWxvY2F0aW9uLnByb3RvY29sPT09Imh0dHBzOiI/IiI6Im5vbmUiKX1mdW5jdGlvbiBKdigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1jZXJ0LWhpbnQiKTtlJiZlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfWZ1bmN0aW9uIFlhKCl7aWYoIXIubG9naW5QZW5kaW5nKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFzc3dvcmQiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1idXR0b24iKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dpbi1lcnJvciIpOyFlfHwhdHx8IW58fChzaShuKSxKdigpLGUuZGF0YXNldC5lcnJvcj0iZmFsc2UiLGUuc2V0QXR0cmlidXRlKCJhcmlhLWludmFsaWQiLCJmYWxzZSIpLHIubG9naW5QZW5kaW5nPSEwLHQuZGlzYWJsZWQ9ITAsdC50ZXh0Q29udGVudD0iXHU3NjdCXHU1RjU1XHU0RTJELi4uIixmZXRjaCgiL2FwaS9sb2dpbiIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwYXNzd29yZDplLnZhbHVlfSksY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuc3RhdHVzPT09NDI5PyhxZShuLCJcdTc2N0JcdTVGNTVcdTVDMURcdThCRDVcdTZCMjFcdTY1NzBcdThGQzdcdTU5MUFcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTUxOERcdThCRDVcdTMwMDIiKSxQcm9taXNlLnJlamVjdCgiaGFuZGxlZCIpKTppLm9rP2ZldGNoKCIvYXBpL2NvbmZpZyIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KTooZS5kYXRhc2V0LmVycm9yPSJ0cnVlIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1pbnZhbGlkIiwidHJ1ZSIpLHFlKG4sIlx1NUJDNlx1NzgwMVx1OTUxOVx1OEJFRlx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpLFByb21pc2UucmVqZWN0KCJoYW5kbGVkIikpfSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5vaz9pLmpzb24oKToobG9jYXRpb24ucHJvdG9jb2w9PT0iaHR0cHM6Ij9LdigpOnFlKG4sIlx1NzY3Qlx1NUY1NVx1NTkzMVx1OEQyNVx1RkYwQ1x1OEJGN1x1OTFDRFx1OEJENVx1MzAwMiIpLFByb21pc2UucmVqZWN0KCJoYW5kbGVkIikpfSkudGhlbihmdW5jdGlvbihpKXtyLmNvbmZpZz1pO3ZhciBhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdGF0dXMtZG90IiksdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RhdHVzLXRleHQiKTtyZXR1cm4gYSYmYS5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSx1JiYodS50ZXh0Q29udGVudD0iXHU1REYyXHU3NjdCXHU1RjU1IiksanQoKX0pLnRoZW4oZnVuY3Rpb24oKXttcygpLFp0KCl9KS5jYXRjaChmdW5jdGlvbihpKXtpIT09ImhhbmRsZWQiJiYoY29uc29sZS5lcnJvcigiW3dhbmRdIExvZ2luIGVycm9yOiIsaSkscWUobiwiXHU3NjdCXHU1RjU1XHU1OTMxXHU4RDI1XHVGRjBDXHU4QkY3XHU5MUNEXHU4QkQ1XHUzMDAyIikpfSkuZmluYWxseShmdW5jdGlvbigpe3IubG9naW5QZW5kaW5nPSExLHQuZGlzYWJsZWQ9ITEsdC50ZXh0Q29udGVudD0iXHU4RkRCXHU1MTY1XHU2M0E3XHU1MjM2XHU1M0YwIn0pKX19ZnVuY3Rpb24gUWEoKXtyZXR1cm4gdHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5zd2l0Y2hTZXJ2ZXI9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gWW8oKXtpZihRYSgpKXRyeXtXYW5kTmF0aXZlLnN3aXRjaFNlcnZlcigpfWNhdGNoe319ZnVuY3Rpb24gR3YoKXtyZXR1cm4gdHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5iYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiI/ITA6dHlwZW9mIHdpbmRvdy5fX3dhbmRCYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gWXYoKXt0cnl7aWYodHlwZW9mIFdhbmROYXRpdmU8InUiJiZ0eXBlb2YgV2FuZE5hdGl2ZS5iYWNrVG9OYXRpdmU9PSJmdW5jdGlvbiIpe1dhbmROYXRpdmUuYmFja1RvTmF0aXZlKCk7cmV0dXJufXR5cGVvZiB3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlPT0iZnVuY3Rpb24iJiZ3aW5kb3cuX193YW5kQmFja1RvTmF0aXZlKCl9Y2F0Y2h7fX1mdW5jdGlvbiBRbygpe2ZldGNoKCIvYXBpL2xvZ291dCIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLmNhdGNoKGZ1bmN0aW9uKCl7fSksRnMoKSxUbighMSksU2EoKSxncigpLHIuY29uZmlnPW51bGwsci5zZWxlY3RlZElkPW51bGwsd2UoKSxyLnNlc3Npb25zPVtdLHIuY2xhdWRlSGlzdG9yeT1bXSxyLmNsYXVkZUhpc3RvcnlMb2FkZWQ9ITEsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWQ9ITEsci5jbGF1ZGVIaXN0b3J5RXhwYW5kZWREaXJzPXt9LHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLEFlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLFp0KCl9ZnVuY3Rpb24ganQoKXtyZXR1cm4gdm4oKX1mdW5jdGlvbiAkYShlKXtyZXR1cm4gZT09PSJmdWxsLWFjY2VzcyI/Ilx1NTE2OFx1Njc0M1x1OTY1MCI6ZT09PSJkZWZhdWx0Ij8iXHU5RUQ4XHU4QkE0IjplPT09Im5hdGl2ZSI/Ilx1NTM5Rlx1NzUxRiI6ZT09PSJhdXRvLWVkaXQiPyJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEiOmU9PT0ibWFuYWdlZCI/Ilx1NjI1OFx1N0JBMSI6ZX1mdW5jdGlvbiB0dCgpe3JldHVybiByLnNlc3Npb25Ub29sfHxyLnByZWZlcnJlZENvbW1hbmR8fCJjbGF1ZGUifWZ1bmN0aW9uIFF2KCl7dmFyIGU9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkPT09ci5zZWxlY3RlZElkfSk7cmV0dXJuIGUmJmUucHJvdmlkZXJ8fHIucHJlZmVycmVkQ29tbWFuZHx8ImNsYXVkZSJ9ZnVuY3Rpb24gJG8oZSx0KXtyZXR1cm4gdD8iXHU5NTJFXHU3NkQ4XHU4RjkzXHU1MTY1XHU1QzA2XHU1M0QxXHU5MDAxXHU1MjMwXHU3RUM4XHU3QUVGIjplJiYoZS5zdGF0dXM9PT0iZXhpdGVkInx8ZS5zdGF0dXM9PT0iZmFpbGVkInx8ZS5zdGF0dXM9PT0ic3RvcHBlZCIpP0RhKGUpPyJcdThGOTNcdTUxNjVcdTZEODhcdTYwNkZcdTRFRTVcdTdFRTdcdTdFRURcdTRGMUFcdThCREQiOiJcdTRGMUFcdThCRERcdTVERjJcdTdFRDNcdTY3NUYiOnVlKGUpJiZlLnN0cnVjdHVyZWRTdGF0ZSYmZS5zdHJ1Y3R1cmVkU3RhdGUuaW5GbGlnaHQ/Ilx1NTZERVx1NTkwRFx1NEUyRFx1RkYwQ1x1NTNFRlx1N0VFN1x1N0VFRFx1OEY5M1x1NTE2NSI6Ilx1OEY5M1x1NTE2NVx1NkQ4OFx1NjA2RiJ9ZnVuY3Rpb24gWG8oZSx0KXtyZXR1cm4gZT09PSJjb2RleCI/IkNvZGV4IFx1NjUyRlx1NjMwMSBQVFkgXHU3RUM4XHU3QUVGXHU0RTBFXHU3RUQzXHU2Nzg0XHU1MzE2XHVGRjA4SlNPTkxcdUZGMDlcdTRFMjRcdTc5Q0RcdTRGMUFcdThCRERcdUZGMENcdTdFRDNcdTY3ODRcdTUzMTZcdTZBMjFcdTVGMEZcdTYzMDkgZnVsbC1hY2Nlc3MgXHU1NDJGXHU1MkE4XHUzMDAyIjp0PT09ImZ1bGwtYWNjZXNzIj8iXHU4MUVBXHU1MkE4XHU3ODZFXHU4QkE0XHU2NzQzXHU5NjUwXHU4QkY3XHU2QzQyXHU0RTBFXHU5QUQ4XHU2NzQzXHU5NjUwXHU2NENEXHU0RjVDXHVGRjBDXHU5MDAyXHU1NDA4XHU0RjYwXHU3ODZFXHU4QkE0XHU3M0FGXHU1ODgzXHU1Qjg5XHU1MTY4XHU1NDBFXHU3Njg0XHU4RkRFXHU3RUVEXHU0RkVFXHU2NTM5XHUzMDAyIjp0PT09ImF1dG8tZWRpdCI/Ilx1NEZERFx1NzU1OVx1NEVBNFx1NEU5Mlx1NUYwRlx1NEYxQVx1OEJERFx1RkYwQ1x1NTQwQ1x1NjVGNlx1NjZGNFx1NTA0Rlx1NTQxMVx1NzZGNFx1NjNBNVx1N0YxNlx1OEY5MVx1NEVFM1x1NzgwMVx1MzAwMiI6dD09PSJuYXRpdmUiPyJcdThDMDNcdTc1MjggQ2xhdWRlIFx1NTM5Rlx1NzUxRiBBUEkgXHU4RjkzXHU1MUZBXHVGRjBDXHU5MDAyXHU1NDA4XHU1RkVCXHU5MDFGXHU5NUVFXHU3QjU0XHU2MjE2XHU0RTAwXHU2QjIxXHU2MDI3XHU3NTFGXHU2MjEwXHUzMDAyIjp0PT09Im1hbmFnZWQiPyJBSSBcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTYyNDBcdTY3MDlcdTVERTVcdTRGNUNcdUZGMENcdTY1RTBcdTk3MDBcdTRFMkRcdTkwMTRcdTc4NkVcdThCQTRcdUZGMENcdTkwMDJcdTU0MDhcdTY3MDlcdTY2MEVcdTc4NkVcdTc2RUVcdTY4MDdcdTc2ODRcdTRFRkJcdTUyQTFcdTMwMDIiOiJcdTRGRERcdTc1NTlcdTY4MDdcdTUxQzZcdTRFQTRcdTRFOTJcdTZENDFcdTdBMEJcdUZGMENcdTkwMDJcdTU0MDhcdTYyNEJcdTUyQThcdTc4NkVcdThCQTRcdTZCQ0ZcdTRFMDBcdTZCNjVcdTMwMDIifWZ1bmN0aW9uIFhhKGUpe3JldHVybiBlPT09ImNvZGV4Ij9bImZ1bGwtYWNjZXNzIl06WyJkZWZhdWx0IiwiZnVsbC1hY2Nlc3MiLCJhdXRvLWVkaXQiLCJuYXRpdmUiLCJtYW5hZ2VkIl19ZnVuY3Rpb24geHQoZSx0KXt2YXIgbj1YYShlKTtpZihuLmluZGV4T2YodCkhPT0tMSlyZXR1cm4gdDt2YXIgaT1yLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGU/ci5jb25maWcuZGVmYXVsdE1vZGU6ImRlZmF1bHQiO3JldHVybiBuLmluZGV4T2YoaSkhPT0tMT9pOm5bMF19ZnVuY3Rpb24gUWcoZSx0KXtyZXR1cm4gWGEoZSkubWFwKGZ1bmN0aW9uKG4pe3ZhciBpPVpvKG4pO3JldHVybic8b3B0aW9uIHZhbHVlPSInK3AobikrJyInKyhuPT09dD8iIHNlbGVjdGVkIjoiIikrJyB0aXRsZT0iJytpKyciPicrcCgkYShuKSkrIjwvb3B0aW9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBabyhlKXt2YXIgdD17ZGVmYXVsdDoiXHU2ODA3XHU1MUM2XHU2QTIxXHU1RjBGIC0gXHU5NzAwXHU4OTgxXHU3ODZFXHU4QkE0XHU2NTg3XHU0RUY2XHU0RkVFXHU2NTM5IiwiZnVsbC1hY2Nlc3MiOiJcdTVCOENcdTUxNjhcdThCQkZcdTk1RUUgLSBcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY3NDNcdTk2NTBcdTRFMEVcdTY0Q0RcdTRGNUMiLCJhdXRvLWVkaXQiOiJcdTgxRUFcdTUyQThcdTdGMTZcdThGOTEgLSBcdTgxRUFcdTUyQThcdTc4NkVcdThCQTRcdTY1ODdcdTRFRjZcdTRGRUVcdTY1MzkiLG5hdGl2ZToiXHU1MzlGXHU3NTFGXHU2QTIxXHU1RjBGIC0gXHU4RkQ0XHU1NkRFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4RjkzXHU1MUZBIixtYW5hZ2VkOiJcdTYyNThcdTdCQTFcdTZBMjFcdTVGMEYgLSBBSSBcdTgxRUFcdTUyQThcdTVCOENcdTYyMTBcdTYyNDBcdTY3MDlcdTVERTVcdTRGNUMifTtyZXR1cm4gdFtlXXx8IiJ9ZnVuY3Rpb24gJHYoZSl7dmFyIHQ9ZSYmZS5wcm92aWRlcj9lLnByb3ZpZGVyOiJjbGF1ZGUiO3JldHVybih1ZShlKT8iXHU3RUQzXHU2Nzg0XHU1MzE2IjoiXHU3RUM4XHU3QUVGIikrIiBceEI3ICIrdH1mdW5jdGlvbiBYdihlKXtyZXR1cm4gdWUoZSk/Ilx1N0VEM1x1Njc4NFx1NTMxNiBceEI3IFx1NTc1N1x1N0VBN1x1OEJCMFx1NUY1NSI6ZSYmZS5wcm92aWRlcj09PSJjb2RleCI/Ilx1N0VDOFx1N0FFRiBceEI3IENvZGV4IFBUWVx1RkYwOGNoYXQgXHU0RTNBXHU4OUUzXHU2NzkwXHU4OUM2XHU1NkZFXHVGRjA5IjoiXHU3RUM4XHU3QUVGIFx4QjcgUFRZIFx1NEYxQVx1OEJERCJ9ZnVuY3Rpb24gWnYoZSl7cmV0dXJuIGU/dWUoZSl8fGUucHJvdmlkZXI9PT0iY29kZXgiOiExfWZ1bmN0aW9uIGVsKGUsdCl7aWYoIWV8fCFlLmlzX2Vycm9yfHwhdHx8dC5pc19lcnJvcilyZXR1cm4hMTt2YXIgbj1wbihlLmNvbnRlbnQpLnRvTG93ZXJDYXNlKCksaT1wbih0LmNvbnRlbnQpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIG4/bi5pbmRleE9mKCJpbnZhbGlkIHBhZ2VzIHBhcmFtZXRlciIpIT09LTEmJmkubGVuZ3RoPjA6ITF9ZnVuY3Rpb24gdWUoZSl7cmV0dXJuISFlJiYoZS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8ZS5ydW5uZXI9PT0iY2xhdWRlLWNsaS1wcmludCIpfWZ1bmN0aW9uIERpKCl7ci5jaGF0TW9kZT14dCgiY2xhdWRlIixyLmNoYXRNb2RlKTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1oaW50Iik7ZSYmKGUudGV4dENvbnRlbnQ9Wm8oci5jaGF0TW9kZSkpLFFuKCl9ZnVuY3Rpb24gdGwoZSx0KXt0PXR8fHt9O3ZhciBuPXQua2luZD09PSJjb21wYWN0Inx8dC5raW5kPT09InBvcG92ZXIiP3Qua2luZDoiZHJvcGRvd24iLGk9dHQoKSxhPXIuY2hhdE1vZGV8fCJkZWZhdWx0Iix1PVNpKGUpfHwiIixzPUFpKHUsZSksbz10dShlKTtmdW5jdGlvbiBsKGMsZixkLHYpe3ZhciBoPW49PT0iY29tcGFjdCI/IiI6JzxzcGFuIGNsYXNzPSJjaGF0LW1vZGUtdHJpby10YWciPicrcChmKSsiPC9zcGFuPiI7cmV0dXJuJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXBpbGwgY2hhdC1tb2RlLXRyaW8tcGlsbCIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0iJytjKyciIHRpdGxlPSInK3AoZikrJyI+JytoKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItdGV4dC1sYWJlbCI+JytwKGQpKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0iJytjKyciIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iJytwKGYpKyciPicrdisiPC9zZWxlY3Q+PC9zcGFuPiJ9cmV0dXJuJzxkaXYgY2xhc3M9ImNoYXQtbW9kZS10cmlvIGNoYXQtbW9kZS10cmlvLScrbisnIiByb2xlPSJncm91cCIgYXJpYS1sYWJlbD0iXHU0RjFBXHU4QkREXHU4QkJFXHU3RjZFIj4nK2woIm1vZGUiLCJcdTZBMjFcdTVGMEYiLGEseGkoaSxhKSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci10ZXh0LXNlcCIgYXJpYS1oaWRkZW49InRydWUiPlx4Qjc8L3NwYW4+JytsKCJtb2RlbCIsIlx1NkEyMVx1NTc4QiIscyxhbCh1LGUpKSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLXRleHQtc2VwIiBhcmlhLWhpZGRlbj0idHJ1ZSI+XHhCNzwvc3Bhbj4nK2woInRoaW5raW5nIiwiXHU2MDFEXHU4MDAzIixvLHVsKG8pKSsiPC9kaXY+In1mdW5jdGlvbiBubChlKXtyZXR1cm4gZT09PSJzdGFuZGFyZCI/Ilx1NEY0RSI6ZT09PSJkZWVwIj8iXHU0RTJEIjplPT09Im1heCI/Ilx1OUFEOCI6Ilx1NTE3MyJ9ZnVuY3Rpb24gZW0oZSl7cmV0dXJuIGU9PT0ic3RhbmRhcmQiPyJcdTRGNEUiOmU9PT0iZGVlcCI/Ilx1NEUyRCI6ZT09PSJtYXgiPyJcdTlBRDgiOiJcdTUxNzNcdTk1RUQifWZ1bmN0aW9uIGtpKGUsdCl7dmFyIG49ZXx8IiIsaT1aYSh0KTtpZighbnx8bj09PSJkZWZhdWx0Iil7Zm9yKHZhciBhPTA7YTxpLmxlbmd0aDthKyspaWYoaVthXS5pZD09PSJkZWZhdWx0IilyZXR1cm4gaVthXS5sYWJlbHx8aVthXS5pZDtyZXR1cm4iXHU5RUQ4XHU4QkE0In1mb3IodmFyIHU9MDt1PGkubGVuZ3RoO3UrKylpZihpW3VdLmlkPT09bilyZXR1cm4gaVt1XS5sYWJlbHx8aVt1XS5pZDtyZXR1cm4gbn1mdW5jdGlvbiBBaShlLHQpe3ZhciBuPWtpKGUsdCk7aWYoIW58fG49PT0iXHU4RERGXHU5NjhGXHU2NzBEXHU1MkExXHU3QUVGXHU5RUQ4XHU4QkE0IilyZXR1cm4iXHU5RUQ4XHU4QkE0Ijt2YXIgaT1uLnNlYXJjaCgvW++8iChdLyk7aT4wJiYobj1uLnNsaWNlKDAsaSkudHJpbSgpKTt2YXIgYT1uLmxhc3RJbmRleE9mKCIvIik7YT49MCYmYTxuLmxlbmd0aC0xJiYobj1uLnNsaWNlKGErMSkudHJpbSgpKTt2YXIgdT1uLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHUuaW5kZXhPZigib3B1cyIpIT09LTE/Ik9wdXMiOnUuaW5kZXhPZigic29ubmV0IikhPT0tMT8iU29ubmV0Ijp1LmluZGV4T2YoImhhaWt1IikhPT0tMT8iSGFpa3UiOnUuaW5kZXhPZigiZ3B0LTUuNSIpIT09LTE/IkdQVC01LjUiOnUuaW5kZXhPZigiZ3B0LTUiKSE9PS0xPyJHUFQtNSI6dS5pbmRleE9mKCJncHQtNCIpIT09LTE/IkdQVC00IjpuLmxlbmd0aD4xMj9uLnNsaWNlKDAsMTApKyJcdTIwMjYiOm59ZnVuY3Rpb24gcmwoZSl7Zm9yKHZhciB0PWV8fCJvZmYiLG49IiIsaT0wO2k8UnQubGVuZ3RoO2krKyl7dmFyIGE9UnRbaV07bis9JzxvcHRpb24gdmFsdWU9IicrcChhLmlkKSsnIicrKGEuaWQ9PT10PyIgc2VsZWN0ZWQiOiIiKSsnIHRpdGxlPSInK3AoYS5oaW50KSsnIj4nK3AoZW0oYS5pZCkpKyI8L29wdGlvbj4ifXJldHVybiBufWZ1bmN0aW9uIGlsKGUpe3ZhciB0PXR0KCksbj1yLmNoYXRNb2RlfHwiZGVmYXVsdCIsaT1TaShlKXx8IiIsYT10dShlKSx1PSRhKG4pLHM9QWkoaSxlKSxvPW5sKGEpLGw9Ilx1NkEyMVx1NUYwRiAiK3UrIiBceEI3IFx1NkEyMVx1NTc4QiAiK3MrIiBceEI3IFx1NjAxRFx1ODAwMyAiK287cmV0dXJuJzxkaXYgY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1jb250cm9scyIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9Ilx1NEYxQVx1OEJERFx1OEJCRVx1N0Y2RSIgdGl0bGU9IicrcChsKSsnIj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWNoaXAgY29tcG9zZXItY29uZmlnLWNoaXAtbW9kZSIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZSIgdGl0bGU9Ilx1NkEyMVx1NUYwRlx1RkYxQScrcCh1KSsnIj4nK3ooInNoaWVsZCIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS44LGNsczoiY29tcG9zZXItY29uZmlnLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1jb25maWctbGFiZWwiPicrcCh1KSsnPC9zcGFuPjxzZWxlY3QgY2xhc3M9ImNvbXBvc2VyLXRleHQtaGlkZGVuLXNlbGVjdCIgZGF0YS1tb2RlLWNvbnRyb2w9Im1vZGUiIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU2QTIxXHU1RjBGIj4nK3hpKHQsbikrJzwvc2VsZWN0Pjwvc3Bhbj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5nIiBkYXRhLXRoaW5raW5nPSInK3AoYSkrJyIgdGl0bGU9Ilx1NkEyMVx1NTc4Qlx1NEUwRVx1NjAxRFx1ODAwM1x1NkRGMVx1NUVBNiI+PHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1wYXJ0IGNvbXBvc2VyLWNvbmZpZy1tb2RlbCIgZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZWwiPicreigiY3B1Iix7c2l6ZToxMyxzdHJva2VXaWR0aDoxLjgsY2xzOiJjb21wb3Nlci1jb25maWctaWNvbiJ9KSsnPHNwYW4gY2xhc3M9ImNvbXBvc2VyLWNvbmZpZy1sYWJlbCI+JytwKHMpKyc8L3NwYW4+PHNlbGVjdCBjbGFzcz0iY29tcG9zZXItdGV4dC1oaWRkZW4tc2VsZWN0IiBkYXRhLW1vZGUtY29udHJvbD0ibW9kZWwiIHRhYmluZGV4PSItMSIgYXJpYS1sYWJlbD0iXHU2QTIxXHU1NzhCIj4nK2V1KGksZSkrJzwvc2VsZWN0Pjwvc3Bhbj48c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLXBhcnQgY29tcG9zZXItY29uZmlnLXRoaW5raW5nIiBkYXRhLW1vZGUtY29udHJvbC1waWxsPSJ0aGlua2luZyIgZGF0YS10aGlua2luZz0iJytwKGEpKyciPicreigiYnJhaW4iLHtzaXplOjEzLHN0cm9rZVdpZHRoOjEuOCxjbHM6ImNvbXBvc2VyLWNvbmZpZy1pY29uIn0pKyc8c3BhbiBjbGFzcz0iY29tcG9zZXItY29uZmlnLWxhYmVsIj4nK3AobykrJzwvc3Bhbj48c2VsZWN0IGNsYXNzPSJjb21wb3Nlci10ZXh0LWhpZGRlbi1zZWxlY3QiIGRhdGEtbW9kZS1jb250cm9sPSJ0aGlua2luZyIgdGFiaW5kZXg9Ii0xIiBhcmlhLWxhYmVsPSJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTYiPicrcmwoYSkrIjwvc2VsZWN0Pjwvc3Bhbj48L3NwYW4+PC9kaXY+In1mdW5jdGlvbiBRbigpe3ZhciBlPW10KCksdD10dCgpLG49ci5jaGF0TW9kZXx8ImRlZmF1bHQiLGk9U2koZSl8fCIiLGE9QWkoaSxlKSx1PXR1KGUpLHM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNoYXQtbW9kZS10cmlvIik7cy5mb3JFYWNoKGZ1bmN0aW9uKG8pe2Z1bmN0aW9uIGwoYyxmLGQsdil7dmFyIGg9by5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0iJytjKyciXScpO2lmKGgpe3ZhciBnPWgucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLXRleHQtbGFiZWwiKTtnJiYoZy50ZXh0Q29udGVudD12fHxmKTt2YXIgbT1oLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbD0iJytjKyciXScpO20mJihkJiYobS5pbm5lckhUTUw9ZCksbS52YWx1ZSE9PWYmJihtLnZhbHVlPWYpKX19bCgibW9kZSIsbix4aSh0LG4pKSxsKCJtb2RlbCIsaSxhbChpLGUpLGEpLGwoInRoaW5raW5nIix1LHVsKHUpKX0pLHRtKGUsbixTaShlKXx8IiIsdSl9ZnVuY3Rpb24gdG0oZSx0LG4saSl7dmFyIGE9dHQoKSx1PSRhKHQpLHM9QWkobixlKSxvPW5sKGkpLGw9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbXBvc2VyLWNvbmZpZy1jb250cm9scyIpO2wuZm9yRWFjaChmdW5jdGlvbihjKXt2YXIgZj0iXHU2QTIxXHU1RjBGICIrdSsiIFx4QjcgXHU2QTIxXHU1NzhCICIrcysiIFx4QjcgXHU2MDFEXHU4MDAzICIrbztjLnNldEF0dHJpYnV0ZSgidGl0bGUiLGYpO2Z1bmN0aW9uIGQoQixGLHgpe3ZhciBTPUIucXVlcnlTZWxlY3RvcigiW2RhdGEtbW9kZS1jb250cm9sXSIpO1MmJihTLmlubmVySFRNTD14LFMudmFsdWU9Ril9dmFyIHY9Yy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0ibW9kZSJdJyk7aWYodil7dmFyIGg9di5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLWxhYmVsIik7aCYmKGgudGV4dENvbnRlbnQ9dSksdi5zZXRBdHRyaWJ1dGUoInRpdGxlIiwiXHU2QTIxXHU1RjBGXHVGRjFBIit1KSxkKHYsdCx4aShhLHQpKX12YXIgZz1jLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLW1vZGUtY29udHJvbC1waWxsPSJtb2RlbCJdJyk7aWYoZyl7dmFyIG09Zy5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLWxhYmVsIik7bSYmKG0udGV4dENvbnRlbnQ9cyksZChnLG4sZXUobixlKSl9dmFyIHk9Yy5xdWVyeVNlbGVjdG9yKCdbZGF0YS1tb2RlLWNvbnRyb2wtcGlsbD0idGhpbmtpbmciXScpO2lmKHkpe3ZhciB3PXkucXVlcnlTZWxlY3RvcigiLmNvbXBvc2VyLWNvbmZpZy1sYWJlbCIpO3cmJih3LnRleHRDb250ZW50PW8pLHkuc2V0QXR0cmlidXRlKCJkYXRhLXRoaW5raW5nIixpKSxkKHksaSxybChpKSl9dmFyIEU9Yy5xdWVyeVNlbGVjdG9yKCIuY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5nIik7RSYmRS5zZXRBdHRyaWJ1dGUoImRhdGEtdGhpbmtpbmciLGkpfSl9ZnVuY3Rpb24geGkoZSx0KXtyZXR1cm4gWGEoZSkubWFwKGZ1bmN0aW9uKG4pe3JldHVybic8b3B0aW9uIHZhbHVlPSInK3AobikrJyInKyhuPT09dD8iIHNlbGVjdGVkIjoiIikrIj4iK3AobikrIjwvb3B0aW9uPiJ9KS5qb2luKCIiKX1mdW5jdGlvbiBTaShlKXtyZXR1cm4gZSYmZS5zZWxlY3RlZE1vZGVsP2Uuc2VsZWN0ZWRNb2RlbDpyLmNoYXRNb2RlbD9yLmNoYXRNb2RlbDpyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGVsP3IuY29uZmlnLmRlZmF1bHRNb2RlbDoiIn1mdW5jdGlvbiBaYShlKXt2YXIgdD1lJiZlLnByb3ZpZGVyfHxyLnNlc3Npb25Ub29sfHwiY2xhdWRlIjtyZXR1cm4gdD09PSJjb2RleCI/ci5hdmFpbGFibGVDb2RleE1vZGVsc3x8W106ci5hdmFpbGFibGVNb2RlbHN8fFtdfWZ1bmN0aW9uIGV1KGUsdCl7Zm9yKHZhciBuPVphKHQpLGk9ZT09PSJkZWZhdWx0Ij8iIjplfHwiIixhPSc8b3B0aW9uIHZhbHVlPSIiJysoaT8iIjoiIHNlbGVjdGVkIikrIj5cdTlFRDhcdThCQTQgXHhCNyAiK3Aoa2koIiIsdCkpKyI8L29wdGlvbj4iLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIHM9blt1XTtpZihzLmlkIT09ImRlZmF1bHQiKXt2YXIgbz1zLmxhYmVsfHxzLmlkO2ErPSc8b3B0aW9uIHZhbHVlPSInK3Aocy5pZCkrJyInKyhzLmlkPT09aT8iIHNlbGVjdGVkIjoiIikrIj4iK3AobykrIjwvb3B0aW9uPiJ9fXJldHVybiBpJiYhbi5zb21lKGZ1bmN0aW9uKGwpe3JldHVybiBsLmlkPT09aX0pJiYoYSs9JzxvcHRpb24gdmFsdWU9IicrcChpKSsnIiBzZWxlY3RlZD4nK3AoaSkrIlx1RkYwOFx1ODFFQVx1NUI5QVx1NEU0OVx1RkYwOTwvb3B0aW9uPiIpLGF9ZnVuY3Rpb24gYWwoZSx0KXtmb3IodmFyIG49WmEodCksaT1lPT09ImRlZmF1bHQiPyIiOmV8fCIiLGE9JzxvcHRpb24gdmFsdWU9IiInKyhpPyIiOiIgc2VsZWN0ZWQiKSsiPiIrcChraSgiIix0KSkrIjwvb3B0aW9uPiIsdT0wO3U8bi5sZW5ndGg7dSsrKXt2YXIgcz1uW3VdO3MuaWQhPT0iZGVmYXVsdCImJihhKz0nPG9wdGlvbiB2YWx1ZT0iJytwKHMuaWQpKyciJysocy5pZD09PWk/IiBzZWxlY3RlZCI6IiIpKyI+IitwKHMuaWQpKyI8L29wdGlvbj4iKX1yZXR1cm4gaSYmIW4uc29tZShmdW5jdGlvbihvKXtyZXR1cm4gby5pZD09PWl9KSYmKGErPSc8b3B0aW9uIHZhbHVlPSInK3AoaSkrJyIgc2VsZWN0ZWQ+JytwKGkpKyI8L29wdGlvbj4iKSxhfWZ1bmN0aW9uICRuKGUpe1FuKCl9dmFyIFJ0PVt7aWQ6Im9mZiIsbGFiZWw6ImF1dG8iLGhpbnQ6IkNsYXVkZSBDTEk6IGF1dG8vZGVmYXVsdCBceEI3IFNESyBcdTUxNzNcdTk1RUQgdGhpbmtpbmcgXHhCNyBDb2RleCBtaW5pbWFsIn0se2lkOiJzdGFuZGFyZCIsbGFiZWw6ImxvdyIsaGludDoiQ2xhdWRlIENMSTogbG93IFx4QjcgU0RLIGJ1ZGdldCA0MDk2IFx4QjcgQ29kZXggbG93In0se2lkOiJkZWVwIixsYWJlbDoibWVkaXVtIixoaW50OiJDbGF1ZGUgQ0xJOiBtZWRpdW0gXHhCNyBTREsgYnVkZ2V0IDE2MDAwIFx4QjcgQ29kZXggbWVkaXVtIn0se2lkOiJtYXgiLGxhYmVsOiJtYXgiLGhpbnQ6IkNsYXVkZSBDTEk6IG1heCBceEI3IFNESyBidWRnZXQgMzE5OTkgXHhCNyBDb2RleCBoaWdoIn1dO2Z1bmN0aW9uIG5tKGUpe2Zvcih2YXIgdD0wO3Q8UnQubGVuZ3RoO3QrKylpZihSdFt0XS5pZD09PWUpcmV0dXJuIFJ0W3RdLmxhYmVsO3JldHVybiBSdFswXS5sYWJlbH1mdW5jdGlvbiB0dShlKXtyZXR1cm4gZSYmZS50aGlua2luZ0VmZm9ydD9lLnRoaW5raW5nRWZmb3J0OnIuY2hhdFRoaW5raW5nP3IuY2hhdFRoaW5raW5nOiJvZmYifWZ1bmN0aW9uICRnKGUpe2Zvcih2YXIgdD1lfHwib2ZmIixuPSIiLGk9MDtpPFJ0Lmxlbmd0aDtpKyspe3ZhciBhPVJ0W2ldO24rPSc8b3B0aW9uIHZhbHVlPSInK3AoYS5pZCkrJyInKyhhLmlkPT09dD8iIHNlbGVjdGVkIjoiIikrJyB0aXRsZT0iJytwKGEuaGludCkrJyI+JytwKGEubGFiZWwpKyI8L29wdGlvbj4ifXJldHVybiBufWZ1bmN0aW9uIHVsKGUpe2Zvcih2YXIgdD1lfHwib2ZmIixuPSIiLGk9MDtpPFJ0Lmxlbmd0aDtpKyspe3ZhciBhPVJ0W2ldO24rPSc8b3B0aW9uIHZhbHVlPSInK3AoYS5pZCkrJyInKyhhLmlkPT09dD8iIHNlbGVjdGVkIjoiIikrIj4iK3AoYS5pZCkrIjwvb3B0aW9uPiJ9cmV0dXJuIG59ZnVuY3Rpb24gWGcoZSl7UW4oKX1mdW5jdGlvbiBybShlKXt2YXIgdD0oZXx8Im9mZiIpLnRyaW0oKTt0IT09Im9mZiImJnQhPT0ic3RhbmRhcmQiJiZ0IT09ImRlZXAiJiZ0IT09Im1heCImJih0PSJvZmYiKSxyLmNoYXRUaGlua2luZz10O3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC10aGlua2luZy1lZmZvcnQiLHQpfWNhdGNoe31RbigpO3ZhciBuPW10KCk7biYmZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQobi5pZCkrIi90aGlua2luZy1lZmZvcnQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHt0aGlua2luZ0VmZm9ydDp0fSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaSYmaS5lcnJvcil7ayhpLmVycm9yLCJlcnJvciIpO3JldHVybn1pJiZpLmlkJiYoJChpKSx0eXBlb2Ygaz09ImZ1bmN0aW9uIiYmaygiXHU1REYyXHU1MjA3XHU2MzYyXHU2MDFEXHU4MDAzXHU2REYxXHU1RUE2IFx1MjE5MiAiK25tKHQpLCJzdWNjZXNzIikpfSkuY2F0Y2goZnVuY3Rpb24oKXtrKCJcdTUyMDdcdTYzNjJcdTYwMURcdTgwMDNcdTZERjFcdTVFQTZcdTU5MzFcdThEMjUiLCJlcnJvciIpfSl9ZnVuY3Rpb24gc2woZSl7aWYoIWUpcmV0dXJuITE7dmFyIHQ9ZS5tb2RlO3JldHVybiB0PT09Im1hbmFnZWQifHx0PT09ImZ1bGwtYWNjZXNzIn1mdW5jdGlvbiBpbShlKXtpZighZXx8c2woZSkpcmV0dXJuIiI7dmFyIHQ9ISFlLmF1dG9BcHByb3ZlUGVybWlzc2lvbnM7cmV0dXJuIHQ/JzxidXR0b24gaWQ9ImF1dG8tYXBwcm92ZS10b2dnbGUiIGNsYXNzPSJjb21wb3Nlci1waWxsIGNvbXBvc2VyLXBpbGwtY2hpcCBhdXRvLWFwcHJvdmUtaW5kaWNhdG9yIGFjdGl2ZSIgdHlwZT0iYnV0dG9uIiBhcmlhLXByZXNzZWQ9InRydWUiIGFyaWEtbGFiZWw9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTQyRlx1NzUyOFx1RkYwQ1x1NzBCOVx1NTFGQlx1NTE3M1x1OTVFRCIgdGl0bGU9Ilx1ODFFQVx1NTJBOFx1NjI3OVx1NTFDNlx1NURGMlx1NTQyRlx1NzUyOCBcdTIwMTQgXHU3MEI5XHU1MUZCXHU1MTczXHU5NUVEIj4nK3ooInNoaWVsZENoZWNrIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjcsY2xzOiJjb21wb3Nlci1waWxsLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1waWxsLWxhYmVsIj5cdTgxRUFcdTUyQTg8L3NwYW4+PC9idXR0b24+JzonPGJ1dHRvbiBpZD0iYXV0by1hcHByb3ZlLXRvZ2dsZSIgY2xhc3M9ImNvbXBvc2VyLXBpbGwgY29tcG9zZXItcGlsbC1jaGlwIGF1dG8tYXBwcm92ZS1pbmRpY2F0b3IiIHR5cGU9ImJ1dHRvbiIgYXJpYS1wcmVzc2VkPSJmYWxzZSIgYXJpYS1sYWJlbD0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1MTczXHU5NUVEXHVGRjBDXHU3MEI5XHU1MUZCXHU1RjAwXHU1NDJGIiB0aXRsZT0iXHU4MUVBXHU1MkE4XHU2Mjc5XHU1MUM2XHU1REYyXHU1MTczXHU5NUVEIFx1MjAxNCBcdTcwQjlcdTUxRkJcdTVGMDBcdTU0MkYiPicreigic2hpZWxkIix7c2l6ZToxMixzdHJva2VXaWR0aDoxLjcsY2xzOiJjb21wb3Nlci1waWxsLWljb24ifSkrJzxzcGFuIGNsYXNzPSJjb21wb3Nlci1waWxsLWxhYmVsIj5cdTYyNEJcdTUyQTg8L3NwYW4+PC9idXR0b24+J31mdW5jdGlvbiBvbCgpe3JldHVybiBmZXRjaCgiL2FwaS9tb2RlbHMiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihlKXtyZXR1cm4gZS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlJiZBcnJheS5pc0FycmF5KGUubW9kZWxzKSYmKHIuYXZhaWxhYmxlTW9kZWxzPWUubW9kZWxzLHIuYXZhaWxhYmxlQ29kZXhNb2RlbHM9QXJyYXkuaXNBcnJheShlLmNvZGV4TW9kZWxzKT9lLmNvZGV4TW9kZWxzOltdLCRuKG10KCkpLElpKGUpKSxlfSkuY2F0Y2goZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pfWZ1bmN0aW9uIGFtKCl7aWYoci5tb2RlbHNSZWZyZXNoaW5nKXJldHVybiBQcm9taXNlLnJlc29sdmUobnVsbCk7ci5tb2RlbHNSZWZyZXNoaW5nPSEwO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbC1yZWZyZXNoIik7cmV0dXJuIGUmJihlLmRpc2FibGVkPSEwLGUudGV4dENvbnRlbnQ9Ilx1NTIzN1x1NjVCMFx1NEUyRC4uLiIpLGZldGNoKCIvYXBpL21vZGVscy9yZWZyZXNoIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0JiZBcnJheS5pc0FycmF5KHQubW9kZWxzKSYmKHIuYXZhaWxhYmxlTW9kZWxzPXQubW9kZWxzLHIuYXZhaWxhYmxlQ29kZXhNb2RlbHM9QXJyYXkuaXNBcnJheSh0LmNvZGV4TW9kZWxzKT90LmNvZGV4TW9kZWxzOltdLCRuKG10KCkpLElpKHQpLHR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKCJcdTZBMjFcdTU3OEJcdTUyMTdcdTg4NjhcdTVERjJcdTUyMzdcdTY1QjAiKyh0LmNsYXVkZVZlcnNpb24/Ilx1RkYwOGNsYXVkZSAiK3QuY2xhdWRlVmVyc2lvbisiXHVGRjA5IjoiIiksInN1Y2Nlc3MiKSksdH0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKCJcdTUyMzdcdTY1QjBcdTZBMjFcdTU3OEJcdTUyMTdcdTg4NjhcdTU5MzFcdThEMjUiLCJlcnJvciIpLG51bGx9KS5maW5hbGx5KGZ1bmN0aW9uKCl7ci5tb2RlbHNSZWZyZXNoaW5nPSExLGUmJihlLmRpc2FibGVkPSExLGUudGV4dENvbnRlbnQ9Ilx1NTIzN1x1NjVCMCIpfSl9ZnVuY3Rpb24gdW0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZW52LXByZXZpZXctbW9kYWwiKTtpZighZSl7ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzZWN0aW9uIiksZS5pZD0iZW52LXByZXZpZXctbW9kYWwiLGUuY2xhc3NOYW1lPSJtb2RhbC1iYWNrZHJvcCBoaWRkZW4iLGUuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJtb2RhbCBlbnYtcHJldmlldy1tb2RhbCIgcm9sZT0iZGlhbG9nIiBhcmlhLWxhYmVsbGVkYnk9ImVudi1wcmV2aWV3LXRpdGxlIiBhcmlhLW1vZGFsPSJ0cnVlIj48ZGl2IGNsYXNzPSJtb2RhbC1oZWFkZXIiPjxkaXY+PGgyIGNsYXNzPSJtb2RhbC10aXRsZSIgaWQ9ImVudi1wcmV2aWV3LXRpdGxlIj5cdTVDMDZcdTZDRThcdTUxNjVcdTVCNTBcdThGREJcdTdBMEJcdTc2ODRcdTczQUZcdTU4ODNcdTUzRDhcdTkxQ0Y8L2gyPjxwIGNsYXNzPSJtb2RhbC1zdWJ0aXRsZSIgaWQ9ImVudi1wcmV2aWV3LXN1YnRpdGxlIj5cdThGRDlcdTRFOUJcdTUzRDhcdTkxQ0ZcdTRGMUFcdTg4QUJcdTRGMjBcdTdFRDkgY2xhdWRlIC8gY29kZXhcdUZGMDhQVFkgXHU0RTBFXHU3RUQzXHU2Nzg0XHU1MzE2XHU4RkQwXHU4ODRDXHU1NjY4XHU0RTAwXHU4MUY0XHVGRjA5XHUzMDAyPC9wPjwvZGl2PjxidXR0b24gaWQ9ImVudi1wcmV2aWV3LWNsb3NlIiBjbGFzcz0iYnRuIGJ0bi1naG9zdCBidG4taWNvbiBtb2RhbC1jbG9zZS1idG4iIHR5cGU9ImJ1dHRvbiIgYXJpYS1sYWJlbD0iXHU1MTczXHU5NUVEIj48c3ZnIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyLjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgYXJpYS1oaWRkZW49InRydWUiPjxsaW5lIHgxPSI2IiB5MT0iNiIgeDI9IjE4IiB5Mj0iMTgiLz48bGluZSB4MT0iMTgiIHkxPSI2IiB4Mj0iNiIgeTI9IjE4Ii8+PC9zdmc+PC9idXR0b24+PC9kaXY+PGRpdiBjbGFzcz0ibW9kYWwtYm9keSBlbnYtcHJldmlldy1ib2R5Ij48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy10b29sYmFyIj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1tZXRhIiBpZD0iZW52LXByZXZpZXctbWV0YSI+XHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2PC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctY29udHJvbHMiPjxpbnB1dCBpZD0iZW52LXByZXZpZXctc2VhcmNoIiBjbGFzcz0iZW52LXByZXZpZXctc2VhcmNoIiB0eXBlPSJzZWFyY2giIHBsYWNlaG9sZGVyPSJcdTY0MUNcdTdEMjJcdTUzRDhcdTkxQ0ZcdTU0MERcdTIwMjYiIC8+PGxhYmVsIGNsYXNzPSJlbnYtcHJldmlldy1yZXZlYWwiPjxpbnB1dCBpZD0iZW52LXByZXZpZXctcmV2ZWFsLXRvZ2dsZSIgdHlwZT0iY2hlY2tib3giIC8+PHNwYW4+XHU2NjNFXHU3OTNBXHU2NTRGXHU2MTFGXHU1MDNDPC9zcGFuPjwvbGFiZWw+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iZW52LXByZXZpZXctbGlzdCIgaWQ9ImVudi1wcmV2aWV3LWxpc3QiIHRhYmluZGV4PSIwIj48ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj48L2Rpdj48L2Rpdj48ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIgZW52LXByZXZpZXctZm9vdGVyIj48c3BhbiBjbGFzcz0iZW52LXByZXZpZXctaGludCI+XHU2NTRGXHU2MTFGXHU1QjU3XHU2QkI1XHVGRjA4XHU1NDJCIEtFWS9UT0tFTi9TRUNSRVQgXHU3QjQ5XHVGRjA5XHU5RUQ4XHU4QkE0XHU2M0E5XHU3ODAxXHVGRjBDXHU1M0VGXHU1MkZFXHU5MDA5XHUzMDBDXHU2NjNFXHU3OTNBXHU2NTRGXHU2MTFGXHU1MDNDXHUzMDBEXHU0RTM0XHU2NUY2XHU4RkQ4XHU1MzlGXHUzMDAyPC9zcGFuPjxidXR0b24gaWQ9ImVudi1wcmV2aWV3LWNsb3NlLTIiIGNsYXNzPSJidG4gYnRuLXNlY29uZGFyeSBidG4tc20iIHR5cGU9ImJ1dHRvbiI+XHU1MTczXHU5NUVEPC9idXR0b24+PC9kaXY+PC9kaXY+Jyxkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGUpLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG8pe28udGFyZ2V0PT09ZSYmbnUoKX0pO3ZhciB0PWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LWNsb3NlIik7dCYmdC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsbnUpO3ZhciBuPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LWNsb3NlLTIiKTtuJiZuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixudSk7dmFyIGE9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctc2VhcmNoIik7YSYmYS5hZGRFdmVudExpc3RlbmVyKCJpbnB1dCIsZnVuY3Rpb24oKXtjbCgpfSk7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yKCIjZW52LXByZXZpZXctcmV2ZWFsLXRvZ2dsZSIpO2kmJmkuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixmdW5jdGlvbigpe2xsKGkuY2hlY2tlZCl9KX1lLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpO3ZhciBpPWUucXVlcnlTZWxlY3RvcigiI2Vudi1wcmV2aWV3LXJldmVhbC10b2dnbGUiKTtpJiYoaS5jaGVja2VkPSExKTt2YXIgYT1lLnF1ZXJ5U2VsZWN0b3IoIiNlbnYtcHJldmlldy1zZWFyY2giKTthJiYoYS52YWx1ZT0iIiksbGwoITEpfWZ1bmN0aW9uIG51KCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LW1vZGFsIik7ZSYmc3UoZSl9ZnVuY3Rpb24gbGwoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LWxpc3QiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1tZXRhIik7dCYmKHQuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1sb2FkaW5nIj5cdTUyQTBcdThGN0RcdTRFMkRcdTIwMjY8L2Rpdj4nKSxuJiYobi50ZXh0Q29udGVudD0iXHU1MkEwXHU4RjdEXHU0RTJEXHUyMDI2Iik7dmFyIGk9Ii9hcGkvc2V0dGluZ3MvZW52LXByZXZpZXciKyhlPyI/cmV2ZWFsPTEiOiIiKTtmZXRjaChpLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihhKXtyZXR1cm4gYS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGEpe2lmKCFhfHwhQXJyYXkuaXNBcnJheShhLmVudHJpZXMpKXt0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWVtcHR5Ij5cdThCRkJcdTUzRDZcdTU5MzFcdThEMjVcdTMwMDI8L2Rpdj4nKSxuJiYobi50ZXh0Q29udGVudD0iXHU4QkZCXHU1M0Q2XHU1OTMxXHU4RDI1Iik7cmV0dXJufWlmKHIuX2VudlByZXZpZXc9YSxuKXt2YXIgdT1hLmluaGVyaXRFbnY/Ilx1N0VFN1x1NjI3Rlx1NzIzNlx1OEZEQlx1N0EwQiI6Ilx1NjcwMFx1NUMwRlx1NzY3RFx1NTQwRFx1NTM1NSI7bi5pbm5lckhUTUw9JzxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1waWxsICcrKGEuaW5oZXJpdEVudj8iaXMtaW5oZXJpdCI6ImlzLW1pbmltYWwiKSsnIj4nK3UrJzwvc3Bhbj48c3BhbiBjbGFzcz0iZW52LXByZXZpZXctY291bnQiPlx1NTE3MSAnK2EudG90YWwrIiBcdTk4Nzk8L3NwYW4+In1jbCgpfSkuY2F0Y2goZnVuY3Rpb24oKXt0JiYodC5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWVtcHR5Ij5cdThCRkJcdTUzRDZcdTU5MzFcdThEMjVcdUZGMENcdThCRjdcdTdBMERcdTU0MEVcdTkxQ0RcdThCRDVcdTMwMDI8L2Rpdj4nKSxuJiYobi50ZXh0Q29udGVudD0iXHU4QkZCXHU1M0Q2XHU1OTMxXHU4RDI1Iil9KX1mdW5jdGlvbiBjbCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJlbnYtcHJldmlldy1saXN0Iik7aWYoZSl7dmFyIHQ9ci5fZW52UHJldmlldztpZighdHx8IUFycmF5LmlzQXJyYXkodC5lbnRyaWVzKSl7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWVtcHR5Ij5cdTVDMUFcdTY3MkFcdTUyQTBcdThGN0RcdTMwMDI8L2Rpdj4nO3JldHVybn1mb3IodmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVudi1wcmV2aWV3LXNlYXJjaCIpLGk9KG4mJm4udmFsdWV8fCIiKS50cmltKCkudG9Mb3dlckNhc2UoKSxhPSIiLHU9MCxzPTA7czx0LmVudHJpZXMubGVuZ3RoO3MrKyl7dmFyIG89dC5lbnRyaWVzW3NdO2lmKCEoaSYmby5uYW1lLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihpKT09PS0xKSl7dSsrO3ZhciBsPXR5cGVvZiBvLnZhbHVlPT0ic3RyaW5nIiYmby52YWx1ZS5jaGFyQXQoMCk9PT0iPCImJm8udmFsdWUuY2hhckF0KG8udmFsdWUubGVuZ3RoLTEpPT09Ij4iO2ErPSc8ZGl2IGNsYXNzPSJlbnYtcHJldmlldy1yb3cnKyhvLnNlbnNpdGl2ZT8iIGlzLXNlbnNpdGl2ZSI6IiIpKyciPjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LW5hbWUiPicrcChvLm5hbWUpKyhvLnNlbnNpdGl2ZT8nPHNwYW4gY2xhc3M9ImVudi1wcmV2aWV3LWJhZGdlIiB0aXRsZT0iXHU4OEFCXHU4QkM2XHU1MjJCXHU0RTNBXHU2NTRGXHU2MTFGXHU1QjU3XHU2QkI1Ij5cdTY1NEZcdTYxMUY8L3NwYW4+JzoiIikrKGw/JzxzcGFuIGNsYXNzPSJlbnYtcHJldmlldy1iYWRnZSBlbnYtcHJldmlldy1iYWRnZS1ydW50aW1lIiB0aXRsZT0iXHU2MzA5XHU0RjFBXHU4QkREXHU1MkE4XHU2MDAxXHU2Q0U4XHU1MTY1Ij5cdThGRDBcdTg4NENcdTY1RjY8L3NwYW4+JzoiIikrJzwvZGl2PjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LXZhbHVlJysobD8iIGlzLXJ1bnRpbWUiOiIiKSsnIiB0aXRsZT0iJytwKFN0cmluZyhvLnZhbHVlKSkrJyI+JytwKFN0cmluZyhvLnZhbHVlKSkrJzwvZGl2PjxkaXYgY2xhc3M9ImVudi1wcmV2aWV3LWxlbiI+JytvLmxlbmd0aCsiIFx1NUI1N1x1N0IyNjwvZGl2PjwvZGl2PiJ9fXU9PT0wJiYoYT0nPGRpdiBjbGFzcz0iZW52LXByZXZpZXctZW1wdHkiPlx1NkNBMVx1NjcwOVx1NTMzOVx1OTE0RFx1NzY4NFx1NTNEOFx1OTFDRlx1MzAwMjwvZGl2PicpLGUuaW5uZXJIVE1MPWF9fWZ1bmN0aW9uIElpKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctZGVmYXVsdC1tb2RlbCIpO2lmKHQpe3ZhciBuPXQudmFsdWUsaT1ufHxyLmNvbmZpZ0RlZmF1bHRNb2RlbHx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlbHx8IiI7dC5pbm5lckhUTUw9ZXUoaSx7cHJvdmlkZXI6ImNsYXVkZSJ9KSx0LnZhbHVlPWk7dmFyIGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1kZWZhdWx0LW1vZGVsLXZlcnNpb24iKTthJiZlJiYoYS50ZXh0Q29udGVudD1lLmNsYXVkZVZlcnNpb24/Ilx1NURGMlx1NjhDMFx1NkQ0Qlx1NTIzMCBjbGF1ZGUgIitlLmNsYXVkZVZlcnNpb246Ilx1NjVCMFx1NUVGQVx1NEYxQVx1OEJERFx1NjVGNlx1OUVEOFx1OEJBNFx1NEY3Rlx1NzUyOFx1OEJFNVx1NkEyMVx1NTc4Qlx1MzAwMiIpfX1mdW5jdGlvbiBtdCgpe2lmKCFyLnNlbGVjdGVkSWQpcmV0dXJuIG51bGw7Zm9yKHZhciBlPTA7ZTxyLnNlc3Npb25zLmxlbmd0aDtlKyspaWYoci5zZXNzaW9uc1tlXS5pZD09PXIuc2VsZWN0ZWRJZClyZXR1cm4gci5zZXNzaW9uc1tlXTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBzbShlKXt2YXIgdD0oZXx8IiIpLnRyaW0oKTtyLmNoYXRNb2RlbD10O3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1jaGF0LW1vZGVsIix0KX1jYXRjaHt9UW4oKTt2YXIgbj1tdCgpO24mJmZldGNoKCIvYXBpL3Nlc3Npb25zLyIrZW5jb2RlVVJJQ29tcG9uZW50KG4uaWQpKyIvbW9kZWwiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHttb2RlbDp0fHxudWxsfSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaSYmaS5lcnJvcil7ayhpLmVycm9yLCJlcnJvciIpO3JldHVybn1pZihpJiZpLmlkJiYoJChpKSx0eXBlb2Ygaz09ImZ1bmN0aW9uIikpe3ZhciBhPWtpKHQsbiksdT1uLnByb3ZpZGVyPT09ImNvZGV4Ij8iXHVGRjA4XHU0RTBCXHU2QjIxXHU1QkY5XHU4QkREXHU3NTFGXHU2NTQ4XHVGRjA5IjoiIjtrKCJcdTVERjJcdTUyMDdcdTYzNjJcdTZBMjFcdTU3OEIgXHUyMTkyICIrYSt1LCJzdWNjZXNzIil9fSkuY2F0Y2goZnVuY3Rpb24oKXtrKCJcdTUyMDdcdTYzNjJcdTZBMjFcdTU3OEJcdTU5MzFcdThEMjUiLCJlcnJvciIpfSl9ZnVuY3Rpb24gb20oZSl7dmFyIHQ9eHQodHQoKSwoZXx8ImRlZmF1bHQiKS50cmltKCkpO3IuY2hhdE1vZGU9dCxRbigpO3ZhciBuPW10KCk7aWYoIW58fCFuLmlkfHxuLnNlc3Npb25LaW5kIT09InN0cnVjdHVyZWQiKXtrJiZrKCJcdTY1QjBcdTRGMUFcdThCRERcdTZBMjFcdTVGMEZcdUZGMUEiK3QsImluZm8iKTtyZXR1cm59ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQobi5pZCkrIi9tb2RlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7bW9kZTp0fSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaSYmaS5lcnJvcil7ayhpLmVycm9yLCJlcnJvciIpO3JldHVybn1pZihpJiZpLmlkJiYoJChpKSx0eXBlb2Ygaz09ImZ1bmN0aW9uIikpe3ZhciBhPW4ucHJvdmlkZXI9PT0iY29kZXgiPyJcdUZGMDhDb2RleCBcdTU2RkFcdTVCOUFcdTUxNjhcdTY3NDNcdTk2NTBcdUZGMDkiOiIiO2soIlx1NURGMlx1NTIwN1x1NjM2Mlx1NkEyMVx1NUYwRiBcdTIxOTIgIit0K2EsInN1Y2Nlc3MiKX19KS5jYXRjaChmdW5jdGlvbigpe2soIlx1NTIwN1x1NjM2Mlx1NkEyMVx1NUYwRlx1NTkzMVx1OEQyNSIsImVycm9yIil9KX1mdW5jdGlvbiBkbChlLHQsbixpKXt2YXIgYT1yLnNlc3Npb25Ub29sPT09ImNvZGV4Ij8iY29kZXgiOiJjbGF1ZGUiLHU9ci5jaGF0TW9kZWx8fHIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZWx8fCIiLHM9ci5jaGF0VGhpbmtpbmd8fCJvZmYiLG89e2N3ZDp0fHxldCgpLG1vZGU6bnx8ci5jaGF0TW9kZXx8ci5jb25maWcmJnIuY29uZmlnLmRlZmF1bHRNb2RlfHwiZGVmYXVsdCIscHJvdmlkZXI6YSxydW5uZXI6YT09PSJjb2RleCI/ImNvZGV4LWNsaS1leGVjIjpyLmNvbmZpZyYmci5jb25maWcuc3RydWN0dXJlZFJ1bm5lcj09PSJzZGsiPyJjbGF1ZGUtc2RrIjpyLnN0cnVjdHVyZWRSdW5uZXJ8fCJjbGF1ZGUtY2xpLXByaW50Iixwcm9tcHQ6ZXx8dm9pZCAwLHdvcmt0cmVlRW5hYmxlZDppPT09ITAsbW9kZWw6dXx8dm9pZCAwLHRoaW5raW5nRWZmb3J0OnN9O3JldHVybiBmZXRjaCgiL2FwaS9zdHJ1Y3R1cmVkLXNlc3Npb25zIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShvKX0pLnRoZW4oZnVuY3Rpb24obCl7cmV0dXJuIGwuanNvbigpfSkudGhlbihmdW5jdGlvbihsKXtpZihsLmVycm9yKXRocm93IG5ldyBFcnJvcihsLmVycm9yKTtyZXR1cm4gci5zZWxlY3RlZElkPWwuaWQsd2UoKSxyLmRyYWZ0c1tsLmlkXT0iIixrdCgpLCQobCksbWUoKSxDcihsLmlkKSxMbihsLmlkKSxtbihsLmlkKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGx9KX0pfWZ1bmN0aW9uIFRpKCl7dmFyIGU9ISFyLnNlbGVjdGVkSWQsdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2hhdC1vdXRwdXQiKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibGFuay1jaGF0IiksYT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obCl7cmV0dXJuIGwuaWQ9PT1yLnNlbGVjdGVkSWR9KSx1PXVlKGEpLHM9ZSYmIXUmJnIuY3VycmVudFZpZXc9PT0idGVybWluYWwiLG89ZSYmKHV8fHIuY3VycmVudFZpZXchPT0idGVybWluYWwiKTt1P3IuY3VycmVudFZpZXc9ImNoYXQiOmV8fChyLmN1cnJlbnRWaWV3PSJ0ZXJtaW5hbCIpLHQmJih0LmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIscyksdC5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCFzKSksbiYmKG4uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixvKSxuLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsIW8pKSxpJiZpLmNsYXNzTGlzdC50b2dnbGUoImhpZGRlbiIsZSksbiYmbyYmSGEobiksYXIoKSxWZSgpLEJyKCl9ZnVuY3Rpb24gU3IoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kZS1kZXNjcmlwdGlvbiIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24ta2luZC1kZXNjcmlwdGlvbiIpLG49ci5zZXNzaW9uVG9vbHx8ImNsYXVkZSIsaT1yLnNlc3Npb25DcmVhdGVLaW5kfHwic3RydWN0dXJlZCI7ci5zZXNzaW9uVG9vbD1uLHIubW9kZVZhbHVlPXh0KG4sci5tb2RlVmFsdWV8fHIuY2hhdE1vZGV8fCJkZWZhdWx0Iik7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Byb3ZpZGVyLWNhcmRzIC5wcm92aWRlci1jYXJkIik7YS5sZW5ndGgmJmEuZm9yRWFjaChmdW5jdGlvbihvKXt2YXIgbD1vLmdldEF0dHJpYnV0ZSgiZGF0YS1wcm92aWRlciIpO28uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixsPT09biksby5jbGFzc0xpc3QucmVtb3ZlKCJkaXNhYmxlZCIpfSk7dmFyIHU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI3Nlc3Npb24ta2luZC1jYXJkcyAuc2Vzc2lvbi1raW5kLWNhcmQiKTt1Lmxlbmd0aCYmdS5mb3JFYWNoKGZ1bmN0aW9uKG8pe3ZhciBsPW8uZ2V0QXR0cmlidXRlKCJkYXRhLXNlc3Npb24ta2luZCIpLGM9ITE7by5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLGw9PT1pKSxvLmNsYXNzTGlzdC50b2dnbGUoImRpc2FibGVkIixjKX0pO3ZhciBzPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIiNtb2RlLWNhcmRzIC5tb2RlLWNhcmQiKTtzLmxlbmd0aCYmcy5mb3JFYWNoKGZ1bmN0aW9uKG8pe28uY2xhc3NMaXN0LnRvZ2dsZSgiYWN0aXZlIixvLmdldEF0dHJpYnV0ZSgiZGF0YS1tb2RlIik9PT1yLm1vZGVWYWx1ZSl9KSx0JiYodC50ZXh0Q29udGVudD1hcyhpKSksZSYmKGUudGV4dENvbnRlbnQ9WG8obixyLm1vZGVWYWx1ZSkpfWZ1bmN0aW9uIGxtKGUsdCxuLGkpe3ZhciBhPW58fDAsdT10eXBlb2YgaT09Im51bWJlciI/aTpNYXRoLm1heChhK3QubGVuZ3RoLHQubGVuZ3RoKSxzPWUmJkFycmF5LmlzQXJyYXkoZS5tZXNzYWdlcyk/ZS5tZXNzYWdlczpbXSxvPWUmJnR5cGVvZiBlLm1lc3NhZ2VPZmZzZXQ9PSJudW1iZXIiP2UubWVzc2FnZU9mZnNldDowO2lmKHQubGVuZ3RoPT09MCYmcy5sZW5ndGg+MCYmdT09PTApcmV0dXJue21lc3NhZ2VzOnMsbWVzc2FnZU9mZnNldDpvLG1lc3NhZ2VUb3RhbDplJiZlLm1lc3NhZ2VUb3RhbHx8cy5sZW5ndGh9O2lmKHMubGVuZ3RoPT09MClyZXR1cm57bWVzc2FnZXM6dCxtZXNzYWdlT2Zmc2V0OmEsbWVzc2FnZVRvdGFsOnV9O2lmKG88PWEpe3ZhciBsPU1hdGgubWluKE1hdGgubWF4KGEtbywwKSxzLmxlbmd0aCksYz1zLnNsaWNlKDAsbCkuY29uY2F0KHQpO3JldHVybnttZXNzYWdlczpjLG1lc3NhZ2VPZmZzZXQ6byxtZXNzYWdlVG90YWw6TWF0aC5tYXgodSxvK2MubGVuZ3RoKX19cmV0dXJue21lc3NhZ2VzOnQsbWVzc2FnZU9mZnNldDphLG1lc3NhZ2VUb3RhbDp1fX1mdW5jdGlvbiAkKGUpe2lmKCEoIWV8fCFlLmlkKSl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09ZS5pZH0pfHxudWxsLG49WmwoZSx0KTtpZihBcnJheS5pc0FycmF5KG4ubWVzc2FnZXMpJiZ0eXBlb2Ygbi5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIil7dmFyIGk9bG0odCxuLm1lc3NhZ2VzLG4ubWVzc2FnZU9mZnNldCxuLm1lc3NhZ2VUb3RhbCk7bi5tZXNzYWdlcz1pLm1lc3NhZ2VzLG4ubWVzc2FnZU9mZnNldD1pLm1lc3NhZ2VPZmZzZXQsbi5tZXNzYWdlVG90YWw9aS5tZXNzYWdlVG90YWx9dmFyIGE9ITEsdT1udWxsO3Iuc2Vzc2lvbnM9ci5zZXNzaW9ucy5tYXAoZnVuY3Rpb24obyl7cmV0dXJuIG8uaWQhPT1uLmlkP286KHU9byxhPSEwLE9iamVjdC5hc3NpZ24oe30sbyxuKSl9KSxhfHxyLnNlc3Npb25zLnVuc2hpZnQobik7dmFyIHM9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKG8pe3JldHVybiBvLmlkPT09bi5pZH0pfHxuO3MmJkFycmF5LmlzQXJyYXkocy5xdWV1ZWRNZXNzYWdlcykmJm4uaWQ9PT1yLnNlbGVjdGVkSWQmJihVcihzKSxrdSgpLGNuKCkpLG4uaWQ9PT1yLnNlbGVjdGVkSWQmJihJYSgpLCR0KCkpLG4uc3RhdHVzJiZuLnN0YXR1cyE9PSJydW5uaW5nIiYmci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+MCYmc2V0VGltZW91dChkaSwwKX19ZnVuY3Rpb24gTG4oZSl7IWV8fCFyLndzfHxyLndzLnJlYWR5U3RhdGUhPT1XZWJTb2NrZXQuT1BFTnx8ci53cy5zZW5kKEpTT04uc3RyaW5naWZ5KHt0eXBlOiJzdWJzY3JpYmUiLHNlc3Npb25JZDplfSkpfWZ1bmN0aW9uIGNtKGUsdCl7aWYoIWUpcmV0dXJuIHQ7dmFyIG49T2JqZWN0LmFzc2lnbih7fSxlLHQpLGk9ZS5vdXRwdXR8fCIiLGE9dC5vdXRwdXR8fCIiLHU9aS5sZW5ndGg+YS5sZW5ndGgscz1lLnN0cnVjdHVyZWRTdGF0ZXx8bnVsbCxvPXQuc3RydWN0dXJlZFN0YXRlfHxudWxsLGw9ZS5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkInx8dC5zZXNzaW9uS2luZD09PSJzdHJ1Y3R1cmVkIixjPSEhKGUubWVzc2FnZXMmJmUubWVzc2FnZXMubGVuZ3RoJiYoZnVuY3Rpb24oKXt2YXIgbT1lLm1lc3NhZ2VzW2UubWVzc2FnZXMubGVuZ3RoLTFdO3JldHVybiBtJiZtLnJvbGU9PT0iYXNzaXN0YW50IiYmQXJyYXkuaXNBcnJheShtLmNvbnRlbnQpJiZtLmNvbnRlbnQuc29tZShmdW5jdGlvbih5KXtyZXR1cm4geSYmeS5fX3Byb2Nlc3Npbmd9KX0pKCkpLGY9QXJyYXkuaXNBcnJheShlLm1lc3NhZ2VzKT9sP3NyKGUubWVzc2FnZXMpOmUubWVzc2FnZXM6W10sZD1BcnJheS5pc0FycmF5KHQubWVzc2FnZXMpP2w/c3IodC5tZXNzYWdlcyk6dC5tZXNzYWdlczpbXSx2PWQubGVuZ3RoPjAmJihmdW5jdGlvbigpe3ZhciBtPWRbZC5sZW5ndGgtMV07cmV0dXJuIG0mJm0ucm9sZT09PSJhc3Npc3RhbnQiJiZBcnJheS5pc0FycmF5KG0uY29udGVudCkmJiFtLmNvbnRlbnQuc29tZShmdW5jdGlvbih5KXtyZXR1cm4geSYmeS5fX3Byb2Nlc3Npbmd9KX0pKCksaD1lLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiJiYhIXMmJnMuaW5GbGlnaHQ9PT0hMCYmKCFvfHxvLmluRmxpZ2h0IT09ITApJiZjJiYhIXMuYWN0aXZlUmVxdWVzdElkJiYhIW8mJiEhby5hY3RpdmVSZXF1ZXN0SWQmJm8uYWN0aXZlUmVxdWVzdElkPT09cy5hY3RpdmVSZXF1ZXN0SWQmJiF2LGc9Zi5sZW5ndGg+ZC5sZW5ndGh8fGYubGVuZ3RoPjAmJmQubGVuZ3RoPjAmJkpTT04uc3RyaW5naWZ5KGZbZi5sZW5ndGgtMV0pIT09SlNPTi5zdHJpbmdpZnkoZFtkLmxlbmd0aC0xXSkmJkpTT04uc3RyaW5naWZ5KGYpLmxlbmd0aD5KU09OLnN0cmluZ2lmeShkKS5sZW5ndGg7cmV0dXJuIHUmJihuLm91dHB1dD1pKSxoJiYobi5zdGF0dXM9ZS5zdGF0dXN8fG4uc3RhdHVzLG4uc3RydWN0dXJlZFN0YXRlPU9iamVjdC5hc3NpZ24oe30sb3x8e30scyx7aW5GbGlnaHQ6ITB9KSxuLm1lc3NhZ2VzPWUubWVzc2FnZXMpLGcmJihuLm1lc3NhZ2VzPWYpLGUuaWQ9PT1yLnNlbGVjdGVkSWQmJihlLnBlcm1pc3Npb25CbG9ja2VkJiZ0LnBlcm1pc3Npb25CbG9ja2VkPT09ITF8fGUucGVybWlzc2lvbkJsb2NrZWQmJiF0LnBlcm1pc3Npb25CbG9ja2VkJiYobi5wZXJtaXNzaW9uQmxvY2tlZD0hMCksZS5wZW5kaW5nRXNjYWxhdGlvbiYmIXQucGVuZGluZ0VzY2FsYXRpb24mJnQucGVybWlzc2lvbkJsb2NrZWQhPT0hMSYmKG4ucGVuZGluZ0VzY2FsYXRpb249ZS5wZW5kaW5nRXNjYWxhdGlvbiksZS5tZXNzYWdlcyYmZS5tZXNzYWdlcy5sZW5ndGg+MCYmKCF0Lm1lc3NhZ2VzfHx0Lm1lc3NhZ2VzLmxlbmd0aD09PTApJiYobi5tZXNzYWdlcz1lLm1lc3NhZ2VzKSksbn1mdW5jdGlvbiBudChlLHQsbil7aWYoZSYmZS5tZXNzYWdlcyYmZS5tZXNzYWdlcy5sZW5ndGg+MClyZXR1cm4gZS5tZXNzYWdlcztpZihlJiZlLnNlc3Npb25LaW5kPT09InN0cnVjdHVyZWQiKXJldHVybltdO2lmKCFuKXJldHVybltdO3ZhciBpPXR5cGVvZiB0PT0ic3RyaW5nIj90OmUmJmUub3V0cHV0fHwiIjtyZXR1cm4gaT9mdihpLGUmJmUuY29tbWFuZCk6W119ZnVuY3Rpb24gZG0oZSl7aWYoIWV8fCFlLmxlbmd0aClyZXR1cm4gbnVsbDtpZihyLnNlbGVjdGVkSWQpe3ZhciB0PWUuZmluZChmdW5jdGlvbihhKXtyZXR1cm4gYS5pZD09PXIuc2VsZWN0ZWRJZH0pO3JldHVybiB0P3QuaWQ6bnVsbH12YXIgbj1lLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3RhdHVzPT09InJ1bm5pbmcifSk7aWYobilyZXR1cm4gbi5pZDt2YXIgaT1lLmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIWEuYXJjaGl2ZWR9KTtyZXR1cm4gaT9pLmlkOmVbMF0uaWR9ZnVuY3Rpb24gdm4oZSl7dmFyIHQ9ZXx8e307cmV0dXJuIGZldGNoKCIvYXBpL3Nlc3Npb25zIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7aWYobi5zdGF0dXM9PT00MDEpe1FvKCk7cmV0dXJufXJldHVybiBuLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24obil7dmFyIGk9bnx8W10sYT1uZXcgU2V0KGkubWFwKGZ1bmN0aW9uKGQpe3JldHVybiBkLmlkfSkpO09iamVjdC5rZXlzKHIuZHJhZnRzKS5mb3JFYWNoKGZ1bmN0aW9uKGQpe2EuaGFzKGQpfHxkZWxldGUgci5kcmFmdHNbZF19KSxyLnNlc3Npb25zPWkubWFwKGZ1bmN0aW9uKGQpe3ZhciB2PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihoKXtyZXR1cm4gaC5pZD09PWQuaWR9KTtyZXR1cm4gY20odixkKX0pO3ZhciB1PWRtKHIuc2Vzc2lvbnMpO2lmKHUhPT12b2lkIDAmJihyLnNlbGVjdGVkSWQ9dSkseHUoKSxjbigpLHIuYm9vdHN0cmFwcGluZz0hMSx3ZSgpLHIubW9kYWxPcGVuKW1lKCk7ZWxzZXt2YXIgcz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtbGlzdCIpLG89dGEoKTtpZihzJiZzLmlubmVySFRNTD09PW8pe3ZhciBsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWNvdW50Iik7bCYmKGwudGV4dENvbnRlbnQ9U3RyaW5nKHIuc2Vzc2lvbnMubGVuZ3RoKSl9ZWxzZXtzJiYocy5pbm5lckhUTUw9byk7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb24tY291bnQiKTtsJiYobC50ZXh0Q29udGVudD1TdHJpbmcoci5zZXNzaW9ucy5sZW5ndGgpKX19SXIoKSxyLnNlbGVjdGVkSWQmJnIuZ2l0U3RhdHVzU2Vzc2lvbklkIT09ci5zZWxlY3RlZElkJiZDbihyLnNlbGVjdGVkSWQpO3ZhciBjPVByb21pc2UucmVzb2x2ZSgpO2lmKCF0LnNraXBTZWxlY3RlZE91dHB1dFJlbG9hZCYmci5zZWxlY3RlZElkKWM9bW4oci5zZWxlY3RlZElkKTtlbHNlIGlmKHIuc2VsZWN0ZWRJZCl7dmFyIGY9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGQpe3JldHVybiBkLmlkPT09ci5zZWxlY3RlZElkfSk7dWUoZikmJihrdCh7cHJlc2VydmVTdGlja1N0YXRlOiEwfSkscWEoITApKX1yZXR1cm4gYy50aGVuKGZ1bmN0aW9uKCl7ci5jcm9zc1Nlc3Npb25RdWV1ZS5sZW5ndGg+MCYmZGkoKSxBdCgpLGJhKCl9KX0pLmNhdGNoKGZ1bmN0aW9uKG4pe3ZhciBpPW4mJm4ubWVzc2FnZXx8IiIsYT1pPT09IkZhaWxlZCB0byBmZXRjaCJ8fGk9PT0iTmV0d29ya0Vycm9yIHdoZW4gYXR0ZW1wdGluZyB0byBmZXRjaCByZXNvdXJjZS4ifHxpPT09IkxvYWQgZmFpbGVkInx8L2Fib3J0ZWR8YWJvcnRlcnJvcnxuZXR3b3JrZXJyb3J8ZmFpbGVkIHRvIGZldGNoL2kudGVzdChpKTthfHxjb25zb2xlLmVycm9yKCJbd2FuZF0gbG9hZFNlc3Npb25zIGZhaWxlZDoiLG4pfSl9dmFyIHJ1PW51bGw7ZnVuY3Rpb24gaXUoKXtydXx8KHJ1PXNldFRpbWVvdXQoZnVuY3Rpb24oKXtydT1udWxsLG1lKCl9LDIwMCkpfWZ1bmN0aW9uIG1lKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLWxpc3QiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLWNvdW50Iik7ZSYmKGUuaW5uZXJIVE1MPXRhKCkpLHQmJih0LnRleHRDb250ZW50PVN0cmluZyhyLnNlc3Npb25zLmxlbmd0aCkpLHR5cGVvZiB0bj09ImZ1bmN0aW9uIiYmdG4oKSxJcigpLHIuY3Jvc3NTZXNzaW9uUXVldWUubGVuZ3RoPjAmJkF0KCl9ZnVuY3Rpb24gSXIoKXt2YXIgZT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24oZyl7cmV0dXJuIGcuaWQ9PT1yLnNlbGVjdGVkSWR9KTtlfHwoVG4oITEpLFNhKCksdm8oKSk7dmFyIHQ9ZT9ZbihlLmNvbW1hbmQpOiJXYW5kIixuPWU/Y3IoZSk6Ilx1NUYwMFx1NTlDQlx1NUJGOVx1OEJERCIsaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1zdW1tYXJ5LXZhbHVlIiksYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVybWluYWwtdGl0bGUiKSx1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXJtaW5hbC1pbmZvIikscz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudG9wYmFyLXNlc3Npb24tdGl0bGUsIC50b3BiYXItdGFnbGluZSIpO3MmJmUmJihzLmNsYXNzTGlzdC5yZW1vdmUoInRvcGJhci10YWdsaW5lIikscy5jbGFzc0xpc3QuYWRkKCJ0b3BiYXItc2Vzc2lvbi10aXRsZSIpLHMudGV4dENvbnRlbnQ9ZS50aXRsZXx8WW4oZS5jb21tYW5kKSxzLnNldEF0dHJpYnV0ZSgidGl0bGUiLGUuZGVzY3JpcHRpb258fGUuY29tbWFuZHx8IiIpKTt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdCIpLGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLGM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNoYXQtb3V0cHV0IiksZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic3RvcC1idXR0b24iKTtpJiZpLnRleHRDb250ZW50IT09dCYmKGkudGV4dENvbnRlbnQ9dCksYSYmYS50ZXh0Q29udGVudCE9PXQmJihhLnRleHRDb250ZW50PXQpLHUmJih1LnRleHRDb250ZW50PWU/bisiIFx4QjcgIitYdihlKTpuKTt2YXIgZD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1raW5kLWRpc3BsYXkiKSx2PWU/JHYoZSk6Ilx1N0VDOFx1N0FFRiI7ZCYmZC50ZXh0Q29udGVudCE9PXYmJihkLnRleHRDb250ZW50PXYpLEVzKCksIXIudGVybWluYWwmJmwmJmUmJlZuKCksci50ZXJtaW5hbCYmbCYmIWwuY29udGFpbnMoci50ZXJtaW5hbC5lbGVtZW50KSYmKGdyKCksVm4oKSksZXx8KHIudGVybWluYWxTZXNzaW9uSWQ9bnVsbCxyLnRlcm1pbmFsT3V0cHV0PSIiLHIudGVybWluYWxPdXRwdXRNYXJrZXI9MCksci50ZXJtaW5hbCYmZSYmci5jdXJyZW50Vmlldz09PSJ0ZXJtaW5hbCImJkV0KCJ2aWV3Iik7dmFyIGg9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LXBhbmVsIik7ZT8obyYmby5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxsJiZsLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGMmJmMuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksaCYmaC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk6KG8mJm8uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksbCYmbC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxjJiZjLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGYmJmYuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksaCYmaC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSksRGkoKSwkbihtdCgpKSxUaSgpLElhKCl9ZnVuY3Rpb24gbW4oZSl7ci5jaGF0UmVuZGVyVGltZXImJihjbGVhclRpbWVvdXQoci5jaGF0UmVuZGVyVGltZXIpLHIuY2hhdFJlbmRlclRpbWVyPW51bGwpO3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihpKXtyZXR1cm4gaS5pZD09PWV9KSxuPSIvYXBpL3Nlc3Npb25zLyIrZTtyZXR1cm4gWnYodCkmJihuKz0iP2Zvcm1hdD1jaGF0IiksZmV0Y2gobix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXtpZihpLmVycm9yKXtyLnNlbGVjdGVkSWQ9PT1lJiYoci5zZWxlY3RlZElkPW51bGwsd2UoKSksdm4oKTtyZXR1cm59aWYoJChpKSxJcigpLHIudGVybWluYWwmJmU9PT1yLnNlbGVjdGVkSWQmJmkub3V0cHV0IT09dm9pZCAwKXt2YXIgYT0hIXIud3MmJihyLndzLnJlYWR5U3RhdGU9PT1XZWJTb2NrZXQuT1BFTnx8ci53cy5yZWFkeVN0YXRlPT09V2ViU29ja2V0LkNPTk5FQ1RJTkcpO2E/WmUoInNlc3Npb24tc3dpdGNoIik6KGFpKGUsaS5vdXRwdXQse21vZGU6ImFwcGVuZCJ9KSxaZSgic2Vzc2lvbi1zd2l0Y2giLHtmb3JjZVJlcGxheTohMH0pKX12YXIgdT1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1lfSk7ci5jdXJyZW50TWVzc2FnZXM9UmUodSxudCh1LGkub3V0cHV0LCExKSksS2UoITEpfSl9dmFyIGF1PSExO2Z1bmN0aW9uIGZtKCl7aWYoYXUpcmV0dXJuITE7dmFyIGU9ci5zZWxlY3RlZElkO2lmKCFlKXJldHVybiExO3ZhciB0PXIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihzKXtyZXR1cm4gcy5pZD09PWV9KTtpZighdClyZXR1cm4hMTt2YXIgbj10eXBlb2YgdC5tZXNzYWdlT2Zmc2V0PT0ibnVtYmVyIj90Lm1lc3NhZ2VPZmZzZXQ6MDtpZihuPD0wKXJldHVybiExO3ZhciBpPTQwLGE9TWF0aC5tYXgoMCxuLWkpLHU9bi1hO3JldHVybiBhdT0hMCxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL21lc3NhZ2VzP29mZnNldD0iK2ErIiZsaW1pdD0iK3Use2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHMpe3JldHVybiBzLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24ocyl7aWYocyYmQXJyYXkuaXNBcnJheShzLm1lc3NhZ2VzKSYmdC5tZXNzYWdlT2Zmc2V0PT09bil7dmFyIG89QXJyYXkuaXNBcnJheSh0Lm1lc3NhZ2VzKT90Lm1lc3NhZ2VzOltdO3QubWVzc2FnZXM9cy5tZXNzYWdlcy5jb25jYXQobyksdC5tZXNzYWdlT2Zmc2V0PWEsdHlwZW9mIHMudG90YWw9PSJudW1iZXIiJiYodC5tZXNzYWdlVG90YWw9cy50b3RhbCksZT09PXIuc2VsZWN0ZWRJZCYmKHIuY3VycmVudE1lc3NhZ2VzPVJlKHQsbnQodCx0Lm91dHB1dCwhMSkpLHIuY2hhdFJlbmRlcmVkQ291bnQ9ci5jdXJyZW50TWVzc2FnZXMubGVuZ3RoLEtlKCEwKSl9fSkuY2F0Y2goZnVuY3Rpb24oKXt9KS5maW5hbGx5KGZ1bmN0aW9uKCl7YXU9ITF9KSwhMH1mdW5jdGlvbiBXdChlKXt2YXIgdD1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24ocyl7cmV0dXJuIHMuaWQ9PT1lfSk7aWYodCl7ci5zZWxlY3RlZElkIT09ZSYmZ3IoKSxyLnNlbGVjdGVkSWQ9ZSx3ZSgpLHIudG9vbENvbnRlbnRDYWNoZT17fSxyLm1lc3NhZ2VRdWV1ZT1bXSxyLnBlbmRpbmdNZXNzYWdlcz1bXSxVcih0KSx4dSgpLGNuKCksa3QoKSxyLmN1cnJlbnRNZXNzYWdlcz1bXSxyLmNoYXRSZW5kZXJUaW1lciYmKGNsZWFyVGltZW91dChyLmNoYXRSZW5kZXJUaW1lciksci5jaGF0UmVuZGVyVGltZXI9bnVsbCk7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRvZG8tcHJvZ3Jlc3MiKTtuJiZuLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpO3ZhciBpPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIiKTtpJiZpLnJlbW92ZSgpLHIuX3N0YXR1c0JhclRpbWVySWQmJihjbGVhckludGVydmFsKHIuX3N0YXR1c0JhclRpbWVySWQpLHIuX3N0YXR1c0JhclRpbWVySWQ9bnVsbCksci5fc3RhdHVzQmFyU3RhcnRUaW1lPTA7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7YSYmYS5jbGFzc0xpc3QucmVtb3ZlKCJpbi1mbGlnaHQiKTt2YXIgdT10O3IucHJlZmVycmVkQ29tbWFuZD10dCgpLHIuY2hhdE1vZGU9eHQoImNsYXVkZSIsdSYmdS5tb2RlP3UubW9kZTpyLmNoYXRNb2RlKSxyLnRlcm1pbmFsSW50ZXJhY3RpdmUmJnUmJnUuc3RhdHVzIT09InJ1bm5pbmciJiZUbighMSksbWUoKSxDcihlKSxyLmZpbGVQYW5lbE9wZW4mJihpYyh1KSxPdCgpKSxtbihlKS50aGVuKGZ1bmN0aW9uKCl7TnQoITApfSksTG4oZSksci5naXRTdGF0dXM9bnVsbCxyLmdpdFN0YXR1c1Nlc3Npb25JZD1udWxsLFppKCksQ24oZSx7Zm9yY2U6ITB9KX19ZnVuY3Rpb24gcG0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtZHJhd2VyIiksdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubWFpbi1sYXlvdXQiKSxuPU5lKCksaT0hIXIuc2lkZWJhclBpbm5lZCYmISFyLnNpZGViYXJDb2xsYXBzZWQsYT1pfHwhbiYmKCEhci5zaWRlYmFyUGlubmVkfHwhIXIuc2Vzc2lvbnNEcmF3ZXJPcGVuKTtlJiYoZS5jbGFzc0xpc3QudG9nZ2xlKCJwaW5uZWQiLGEpLGUuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIixpKSksdCYmKHQuY2xhc3NMaXN0LnRvZ2dsZSgic2lkZWJhci1waW5uZWQiLGEpLHQuY2xhc3NMaXN0LnRvZ2dsZSgic2lkZWJhci1jb2xsYXBzZWQiLGkpKTt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2lkZWJhci1waW4tYnRuIik7dSYmKHUuY2xhc3NMaXN0LnRvZ2dsZSgicGlubmVkIiwhIXIuc2lkZWJhclBpbm5lZCksdS50aXRsZT1yLnNpZGViYXJQaW5uZWQ/Ilx1NURGMlx1NTZGQVx1NUI5QVx1NUUzOFx1OUE3Qlx1RkYwOFx1NzBCOVx1NTFGQlx1ODlFM1x1OTY2NFx1OTUwMVx1NUI5QVx1RkYwOSI6Ilx1NTZGQVx1NUI5QVx1NEZBN1x1NjgwRlx1NUUzOFx1OUE3QiIsdS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHIuc2lkZWJhclBpbm5lZD8iXHU4OUUzXHU5NjY0XHU1NkZBXHU1QjlBXHU1RTM4XHU5QTdCIjoiXHU1NkZBXHU1QjlBXHU0RkE3XHU2ODBGXHU1RTM4XHU5QTdCIiksdS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsci5zaWRlYmFyUGlubmVkPyJ0cnVlIjoiZmFsc2UiKSl9ZnVuY3Rpb24gVHIoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtZHJhd2VyIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbnMtZHJhd2VyLWJhY2tkcm9wIiksbj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubWFpbi1sYXlvdXQiKTtlJiZlLmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKSx0JiZ0LmNsYXNzTGlzdC50b2dnbGUoIm9wZW4iLEx1KCkpLG4mJm4uY2xhc3NMaXN0LnRvZ2dsZSgic2lkZWJhci1vcGVuIixyLnNlc3Npb25zRHJhd2VyT3Blbik7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlc3Npb25zLXRvZ2dsZS1idXR0b24iKTtpJiZpLmNsYXNzTGlzdC50b2dnbGUoImFjdGl2ZSIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHBtKCl9ZnVuY3Rpb24gdm0oKXt2YXIgZT1OZSgpO2lmKCFlKXt2YXIgdD1yLnNpZGViYXJQaW5uZWQ/ITE6IXIuc2Vzc2lvbnNEcmF3ZXJPcGVuO3Iuc2Vzc2lvbnNEcmF3ZXJPcGVuPXQsdCYmKHIuc2lkZWJhckNvbGxhcHNlZD0hMSxBZSgid2FuZC1zaWRlYmFyLWNvbGxhcHNlZCIsITEpKSxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKSx1bigpLE1yKCk7cmV0dXJufWlmKHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSFyLnNlc3Npb25zRHJhd2VyT3BlbixBZSgid2FuZC1zaWRlYmFyLW9wZW4iLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuKSxyLnNlc3Npb25zRHJhd2VyT3Blbil7ci5maWxlUGFuZWxPcGVuPSExO3RyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1maWxlLXBhbmVsLW9wZW4iLCJmYWxzZSIpfWNhdGNoe319dW4oKX1mdW5jdGlvbiBMcigpe3ZhciBlPU5lKCk7aWYoIWUpe2lmKCFyLnNpZGViYXJQaW5uZWQmJiFyLnNlc3Npb25zRHJhd2VyT3BlbilyZXR1cm47QXIoKSxyLnNpZGViYXJQaW5uZWQ9ITEsci5zZXNzaW9uc0RyYXdlck9wZW49ITEsQWUoIndhbmQtc2lkZWJhci1waW5uZWQiLCExKSxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSx1bigpLE1yKCk7cmV0dXJufXIuc2Vzc2lvbnNEcmF3ZXJPcGVuJiYoQXIoKSxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSx1bigpKX1mdW5jdGlvbiBtbSgpe2lmKE5lKCkpe0xyKCk7cmV0dXJufXIuc2lkZWJhclBpbm5lZHx8ci5zaWRlYmFyQ29sbGFwc2VkfHwhci5zZXNzaW9uc0RyYXdlck9wZW58fChBcigpLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSExLEFlKCJ3YW5kLXNpZGViYXItb3BlbiIsITEpLHVuKCksTXIoKSl9ZnVuY3Rpb24gZmwoZSl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbXBvc2VyLXBsdXMtcG9wb3ZlciIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF0dGFjaC1idG4iKTtyLnBsdXNQb3BvdmVyT3Blbj0hIWUsdCYmdC5jbGFzc0xpc3QudG9nZ2xlKCJoaWRkZW4iLCFlKSxuJiYobi5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiLCEhZSksbi5zZXRBdHRyaWJ1dGUoImFyaWEtZXhwYW5kZWQiLGU/InRydWUiOiJmYWxzZSIpKX1mdW5jdGlvbiBnbSgpe2ZsKCFyLnBsdXNQb3BvdmVyT3Blbil9ZnVuY3Rpb24gTGkoKXtyLnBsdXNQb3BvdmVyT3BlbiYmZmwoITEpfWZ1bmN0aW9uIHp0KCl7TmUoKSYmci5zZXNzaW9uc0RyYXdlck9wZW4mJkxyKCl9ZnVuY3Rpb24gTXIoKXt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIubWFpbi1sYXlvdXQiKTtpZihlKXt2YXIgdD1mdW5jdGlvbihuKXtuLnByb3BlcnR5TmFtZT09PSJwYWRkaW5nLWxlZnQiJiYoZS5yZW1vdmVFdmVudExpc3RlbmVyKCJ0cmFuc2l0aW9uZW5kIix0KSxxdCghMCkpfTtlLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLHQpfXNldFRpbWVvdXQoZnVuY3Rpb24oKXtxdCghMCl9LDM1MCl9dmFyIFV0PW51bGw7ZnVuY3Rpb24gaG0oKXtyZXR1cm4gVXQmJmRvY3VtZW50LmJvZHkuY29udGFpbnMoVXQpfHwoVXQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksVXQuY2xhc3NOYW1lPSJzaWRlYmFyLXRpbGUtYnViYmxlIixVdC5zZXRBdHRyaWJ1dGUoInJvbGUiLCJ0b29sdGlwIiksZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChVdCkpLFV0fWZ1bmN0aW9uIHRuKCl7VXQmJlV0LmNsYXNzTGlzdC5yZW1vdmUoInZpc2libGUiKX1mdW5jdGlvbiB5bShlLHQpe2lmKCF0KXt0bigpO3JldHVybn12YXIgbj1obSgpO24udGV4dENvbnRlbnQ9dC5sZW5ndGg+NDAwP3Quc2xpY2UoMCw0MDApKyJcdTIwMjYiOnQ7dmFyIGk9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtuLmNsYXNzTGlzdC5hZGQoInZpc2libGUiKTt2YXIgYT1uLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9aS50b3AraS5oZWlnaHQvMixzPXUtYS5oZWlnaHQvMixvPTgsbD13aW5kb3cuaW5uZXJIZWlnaHQtYS5oZWlnaHQtODtzPG8mJihzPW8pLHM+bCYmKHM9TWF0aC5tYXgobyxsKSksbi5zdHlsZS5sZWZ0PWkucmlnaHQrMTIrInB4IixuLnN0eWxlLnRvcD1zKyJweCIsbi5zdHlsZS5zZXRQcm9wZXJ0eSgiLS1idWJibGUtdGFpbC15Iix1LXMrInB4Iil9ZnVuY3Rpb24gYm0oZSl7aWYoZS5kYXRhc2V0LmNvbGxhcHNlZFNlc3Npb25JZCl7dmFyIHQ9ci5zZXNzaW9ucy5maW5kKGZ1bmN0aW9uKGEpe3JldHVybiBhLmlkPT09ZS5kYXRhc2V0LmNvbGxhcHNlZFNlc3Npb25JZH0pO2lmKCF0KXJldHVybiIiO3ZhciBuPV9jKHQpO3JldHVybiBufHx0LnN1bW1hcnl8fHQuY29tbWFuZHx8IiJ9aWYoZS5kYXRhc2V0LmNvbGxhcHNlZEhpc3RvcnlJZCl7dmFyIGk9ci5jbGF1ZGVIaXN0b3J5LmZpbmQoZnVuY3Rpb24oYSl7cmV0dXJuIGEuY2xhdWRlU2Vzc2lvbklkPT09ZS5kYXRhc2V0LmNvbGxhcHNlZEhpc3RvcnlJZH0pO2lmKGkmJmkuZmlyc3RVc2VyTWVzc2FnZSlyZXR1cm4gaS5maXJzdFVzZXJNZXNzYWdlfXJldHVybiIifWZ1bmN0aW9uIEVtKGUpe3ZhciB0PWUudGFyZ2V0O2lmKCEoIXR8fCEodCBpbnN0YW5jZW9mIEVsZW1lbnQpKSl7dmFyIG49dC5jbG9zZXN0KCIuc2lkZWJhci1jb2xsYXBzZWQtdGlsZSIpO2lmKCFuKXt0bigpO3JldHVybn12YXIgaT1ibShuKTtpZighaSl7dG4oKTtyZXR1cm59eW0obixpKX19ZnVuY3Rpb24gRm0oZSl7dmFyIHQ9ZS5yZWxhdGVkVGFyZ2V0O3QmJnQgaW5zdGFuY2VvZiBFbGVtZW50JiZ0LmNsb3Nlc3QoIi5zaWRlYmFyLWNvbGxhcHNlZC10aWxlIil8fHRuKCl9ZnVuY3Rpb24gd20oKXt2YXIgZT1OZSgpO3Iuc2lkZWJhclBpbm5lZHx8KHIuc2lkZWJhclBpbm5lZD0hMCxBZSgid2FuZC1zaWRlYmFyLXBpbm5lZCIsITApKSxyLnNpZGViYXJDb2xsYXBzZWQ9IXIuc2lkZWJhckNvbGxhcHNlZCxBZSgid2FuZC1zaWRlYmFyLWNvbGxhcHNlZCIsci5zaWRlYmFyQ29sbGFwc2VkKSxyLnNpZGViYXJDb2xsYXBzZWQ/ci5zZXNzaW9uc0RyYXdlck9wZW49ITE6ZT8oci5zaWRlYmFyUGlubmVkPSExLHIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLEFlKCJ3YW5kLXNpZGViYXItcGlubmVkIiwhMSkpOnIuc2Vzc2lvbnNEcmF3ZXJPcGVuPSEwLEFlKCJ3YW5kLXNpZGViYXItb3BlbiIsci5zZXNzaW9uc0RyYXdlck9wZW4pLHVuKCksbWUoKSxCbSgpLHRuKCksTXIoKX1mdW5jdGlvbiBDbSgpe05lKCl8fChyLnNpZGViYXJQaW5uZWQ9IXIuc2lkZWJhclBpbm5lZCxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMCxBZSgid2FuZC1zaWRlYmFyLXBpbm5lZCIsci5zaWRlYmFyUGlubmVkKSxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLCEwKSx1bigpLE1yKCkpfWZ1bmN0aW9uIEJtKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpZGViYXItY29sbGFwc2UtYnRuIik7aWYoZSl7dmFyIHQ9ISFyLnNpZGViYXJQaW5uZWQmJiEhci5zaWRlYmFyQ29sbGFwc2VkO2UuY2xhc3NMaXN0LnRvZ2dsZSgiY29sbGFwc2VkIix0KSxlLnRpdGxlPXQ/Ilx1NUM1NVx1NUYwMFx1NEZBN1x1NjgwRiI6Ilx1NjUzNlx1OEQ3N1x1NEUzQVx1N0E4NFx1Njc2MSIsZS5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHQ/Ilx1NUM1NVx1NUYwMFx1NEZBN1x1NjgwRiI6Ilx1NjUzNlx1OEQ3N1x1NEUzQVx1N0E4NFx1Njc2MSIpLGUuaW5uZXJIVE1MPXQ/Jzxzdmcgd2lkdGg9IjE0IiBoZWlnaHQ9IjE0IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2Utd2lkdGg9IjIuNCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHBvbHlsaW5lIHBvaW50cz0iMTAgNiAxNiAxMiAxMCAxOCIvPjxsaW5lIHgxPSIyMCIgeTE9IjUiIHgyPSIyMCIgeTI9IjE5Ii8+PC9zdmc+JzonPHN2ZyB3aWR0aD0iMTQiIGhlaWdodD0iMTQiIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS13aWR0aD0iMi40IiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48cG9seWxpbmUgcG9pbnRzPSIxNCA2IDggMTIgMTQgMTgiLz48bGluZSB4MT0iNCIgeTE9IjUiIHgyPSI0IiB5Mj0iMTkiLz48L3N2Zz4nfX1mdW5jdGlvbiBEbShlKXtpZihlKXtlLnN0eWxlLmxlZnQ9IiIsZS5zdHlsZS5yaWdodD0iIjt2YXIgdD1lLm9mZnNldFBhcmVudHx8ZS5wYXJlbnRFbGVtZW50O2lmKHQpe3ZhciBuPTgsaT10LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx1PXdpbmRvdy5pbm5lcldpZHRoO2EubGVmdDxuPyhlLnN0eWxlLnJpZ2h0PSJhdXRvIixlLnN0eWxlLmxlZnQ9bi1pLmxlZnQrInB4Iik6YS5yaWdodD51LW4mJihlLnN0eWxlLmxlZnQ9ImF1dG8iLGUuc3R5bGUucmlnaHQ9aS5yaWdodC0odS1uKSsicHgiKX19fWZ1bmN0aW9uIHV1KCl7Wm4oKSxyLm1vZGFsT3Blbj0hMCxyLnNlc3Npb25zRHJhd2VyT3Blbj0hMSxBZSgid2FuZC1zaWRlYmFyLW9wZW4iLCExKSxUcigpO3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7ZSYmKGUuX3dhbmRDbG9zZVRpbWVyJiYoY2xlYXJUaW1lb3V0KGUuX3dhbmRDbG9zZVRpbWVyKSxlLl93YW5kQ2xvc2VUaW1lcj1udWxsKSxlLmNsYXNzTGlzdC5yZW1vdmUoImNsb3NpbmciKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHIubGFzdEZvY3VzZWRFbGVtZW50PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsci5zZXNzaW9uVG9vbD10dCgpLHIucHJlZmVycmVkQ29tbWFuZD1yLnNlc3Npb25Ub29sLHIuc2Vzc2lvbkNyZWF0ZUtpbmQ9InN0cnVjdHVyZWQiLHIuc2Vzc2lvbkNyZWF0ZVdvcmt0cmVlPSExLHIubW9kZVZhbHVlPXh0KHIuc2Vzc2lvblRvb2wsci5tb2RlVmFsdWV8fHIuY2hhdE1vZGUpLFNyKCksUW0oKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1vZGUtY2FyZHMiKTt0JiZ0LmZvY3VzKCl9LDIwKSxNaShlKSl9ZnVuY3Rpb24gZ24oKXtyLm1vZGFsT3Blbj0hMTt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vzc2lvbi1tb2RhbCIpO2UmJihyLmZvY3VzVHJhcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpLHIuZm9jdXNUcmFwSGFuZGxlcj1udWxsKSxyLmxhc3RGb2N1c2VkRWxlbWVudCYmdHlwZW9mIHIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzPT0iZnVuY3Rpb24iJiZyLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cygpLHN1KGUpKSx0cigpfWZ1bmN0aW9uIHN1KGUpe2lmKGUmJiFlLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikpe3ZhciB0PSExO3RyeXt0PXdpbmRvdy5tYXRjaE1lZGlhJiZ3aW5kb3cubWF0Y2hNZWRpYSgiKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkiKS5tYXRjaGVzfWNhdGNoe31pZih0fHxkb2N1bWVudC5oaWRkZW4pe2UuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7cmV0dXJufWUuX3dhbmRDbG9zZVRpbWVyJiYoY2xlYXJUaW1lb3V0KGUuX3dhbmRDbG9zZVRpbWVyKSxlLl93YW5kQ2xvc2VUaW1lcj1udWxsKSxlLmNsYXNzTGlzdC5hZGQoImNsb3NpbmciKSxlLl93YW5kQ2xvc2VUaW1lcj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZS5jbGFzc0xpc3QucmVtb3ZlKCJjbG9zaW5nIiksZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLl93YW5kQ2xvc2VUaW1lcj1udWxsfSwxNzApfX1mdW5jdGlvbiBNaShlKXtyLmZvY3VzVHJhcEhhbmRsZXImJmRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLHIuZm9jdXNUcmFwSGFuZGxlcik7dmFyIHQ9J2J1dHRvbjpub3QoW2Rpc2FibGVkXSksIGlucHV0Om5vdChbZGlzYWJsZWRdKSwgc2VsZWN0Om5vdChbZGlzYWJsZWRdKSwgdGV4dGFyZWE6bm90KFtkaXNhYmxlZF0pLCBhW2hyZWZdLCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9Ii0xIl0pJztyLmZvY3VzVHJhcEhhbmRsZXI9ZnVuY3Rpb24obil7aWYobi5rZXk9PT0iVGFiIil7dmFyIGk9ZS5xdWVyeVNlbGVjdG9yQWxsKHQpLGE9aVswXSx1PWlbaS5sZW5ndGgtMV07IWF8fCF1fHwobi5zaGlmdEtleT9kb2N1bWVudC5hY3RpdmVFbGVtZW50PT09YSYmKG4ucHJldmVudERlZmF1bHQoKSx1LmZvY3VzKCkpOmRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT11JiYobi5wcmV2ZW50RGVmYXVsdCgpLGEuZm9jdXMoKSkpfX0sZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKX1mdW5jdGlvbiBrbSgpe3JldHVybiByLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQmJnIuc2Vzc2lvbnMuZmluZChmdW5jdGlvbihlKXtyZXR1cm4gZS5pZD09PXIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZH0pfHxudWxsfWZ1bmN0aW9uIE9yKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWNvbnRlbnQiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1jb25maXJtLWJ1dHRvbiIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLWVycm9yIiksaT1rbSgpLGE9ci53b3JrdHJlZU1lcmdlQ2hlY2tSZXN1bHQ7aWYoISghZXx8IXQpKXtpZighaXx8IWkud29ya3RyZWUpe2UuaW5uZXJIVE1MPSc8cCBjbGFzcz0iZmllbGQtaGludCI+XHU2NzJBXHU2MjdFXHU1MjMwXHU1M0VGXHU1NDA4XHU1RTc2XHU3Njg0IHdvcmt0cmVlIFx1NEYxQVx1OEJERFx1MzAwMjwvcD4nLHQuZGlzYWJsZWQ9ITA7cmV0dXJufW4mJihyLndvcmt0cmVlTWVyZ2VFcnJvcj9xZShuLHIud29ya3RyZWVNZXJnZUVycm9yKTpzaShuKSk7dmFyIHU9Wyc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1Njc2NVx1NkU5MFx1NTIwNlx1NjUyRjwvc3Bhbj48c3Ryb25nPicrcChpLndvcmt0cmVlLmJyYW5jaHx8Ii0iKSsiPC9zdHJvbmc+PC9kaXY+IiwnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTVERTVcdTRGNUNcdTc2RUVcdTVGNTU8L3NwYW4+PHN0cm9uZz4nK3AoaS53b3JrdHJlZS5wYXRofHwiLSIpKyI8L3N0cm9uZz48L2Rpdj4iXTthPyh1LnB1c2goJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU3NkVFXHU2ODA3XHU1MjA2XHU2NTJGPC9zcGFuPjxzdHJvbmc+JytwKGEudGFyZ2V0QnJhbmNofHwiLSIpKyI8L3N0cm9uZz48L2Rpdj4iKSx1LnB1c2goJzxkaXYgY2xhc3M9Indvcmt0cmVlLW1lcmdlLXJvdyI+PHNwYW4+XHU1Rjg1XHU1NDA4XHU1RTc2XHU2M0QwXHU0RUE0PC9zcGFuPjxzdHJvbmc+JytwKFN0cmluZyhhLmFoZWFkQ291bnR8fDApKSsiPC9zdHJvbmc+PC9kaXY+IiksdS5wdXNoKCc8ZGl2IGNsYXNzPSJ3b3JrdHJlZS1tZXJnZS1yb3ciPjxzcGFuPlx1NjcyQVx1NjNEMFx1NEVBNFx1NjUzOVx1NTJBODwvc3Bhbj48c3Ryb25nPicrcChhLmhhc1VuY29tbWl0dGVkQ2hhbmdlcz8iXHU2NzA5IjoiXHU2NUUwIikrIjwvc3Ryb25nPjwvZGl2PiIpLHUucHVzaCgnPGRpdiBjbGFzcz0id29ya3RyZWUtbWVyZ2Utcm93Ij48c3Bhbj5cdTUxQjJcdTdBODFcdTk4Q0VcdTk2Njk8L3NwYW4+PHN0cm9uZz4nK3AoYS5oYXNDb25mbGljdHM/Ilx1NjcwOSI6Ilx1NjVFMCIpKyI8L3N0cm9uZz48L2Rpdj4iKSxhLnJlYXNvbiYmdS5wdXNoKCc8cCBjbGFzcz0iZmllbGQtaGludCI+JytwKGEucmVhc29uKSsiPC9wPiIpKTpyLndvcmt0cmVlTWVyZ2VMb2FkaW5nJiZ1LnB1c2goJzxwIGNsYXNzPSJmaWVsZC1oaW50Ij5cdTZCNjNcdTU3MjhcdTY4QzBcdTY3RTUgd29ya3RyZWUgXHU1NDA4XHU1RTc2XHU3MkI2XHU2MDAxXHUyMDI2PC9wPicpLGUuaW5uZXJIVE1MPXUuam9pbigiIiksdC5kaXNhYmxlZD1yLndvcmt0cmVlTWVyZ2VMb2FkaW5nfHxyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nfHwhYXx8YS5vayE9PSEwLHQudGV4dENvbnRlbnQ9ci53b3JrdHJlZU1lcmdlU3VibWl0dGluZz8iXHU1NDA4XHU1RTc2XHU0RTJELi4uIjoiXHU3ODZFXHU4QkE0XHU1NDA4XHU1RTc2XHU1RTc2XHU2RTA1XHU3NDA2In19ZnVuY3Rpb24gcGwoZSl7ci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkPWUsci53b3JrdHJlZU1lcmdlQ2hlY2tSZXN1bHQ9bnVsbCxyLndvcmt0cmVlTWVyZ2VMb2FkaW5nPSEwLHIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc9ITEsci53b3JrdHJlZU1lcmdlRXJyb3I9IiIsZ24oKSxabigpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ3b3JrdHJlZS1tZXJnZS1tb2RhbCIpO3QmJih0LmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHIubGFzdEZvY3VzZWRFbGVtZW50PWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQsTWkodCkpLE9yKCksZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoZSkrIi93b3JrdHJlZS9tZXJnZS9jaGVjayIse21ldGhvZDoiUE9TVCIsY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuJiZuLmVycm9yKXRocm93IG5ldyBFcnJvcihuLmVycm9yKTtuJiZuLnNlc3Npb24mJiQobi5zZXNzaW9uKSxyLndvcmt0cmVlTWVyZ2VDaGVja1Jlc3VsdD1uLnJlc3VsdHx8bnVsbCxyLndvcmt0cmVlTWVyZ2VFcnJvcj0iIn0pLmNhdGNoKGZ1bmN0aW9uKG4pe3Iud29ya3RyZWVNZXJnZUVycm9yPW4mJm4ubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NjhDMFx1NjdFNSB3b3JrdHJlZSBcdTU0MDhcdTVFNzZcdTcyQjZcdTYwMDFcdTMwMDIifSkuZmluYWxseShmdW5jdGlvbigpe3Iud29ya3RyZWVNZXJnZUxvYWRpbmc9ITEsT3IoKX0pfWZ1bmN0aW9uIFhuKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIndvcmt0cmVlLW1lcmdlLW1vZGFsIik7ci5hY3RpdmVXb3JrdHJlZU1lcmdlU2Vzc2lvbklkPW51bGwsci53b3JrdHJlZU1lcmdlQ2hlY2tSZXN1bHQ9bnVsbCxyLndvcmt0cmVlTWVyZ2VMb2FkaW5nPSExLHIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc9ITEsci53b3JrdHJlZU1lcmdlRXJyb3I9IiIsZSYmZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxyLmZvY3VzVHJhcEhhbmRsZXImJihkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixyLmZvY3VzVHJhcEhhbmRsZXIpLHIuZm9jdXNUcmFwSGFuZGxlcj1udWxsKSxyLmxhc3RGb2N1c2VkRWxlbWVudCYmdHlwZW9mIHIubGFzdEZvY3VzZWRFbGVtZW50LmZvY3VzPT0iZnVuY3Rpb24iJiZyLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cygpfWZ1bmN0aW9uIEFtKCl7IXIuYWN0aXZlV29ya3RyZWVNZXJnZVNlc3Npb25JZHx8ci53b3JrdHJlZU1lcmdlU3VibWl0dGluZ3x8KHIud29ya3RyZWVNZXJnZVN1Ym1pdHRpbmc9ITAsci53b3JrdHJlZU1lcmdlRXJyb3I9IiIsT3IoKSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChyLmFjdGl2ZVdvcmt0cmVlTWVyZ2VTZXNzaW9uSWQpKyIvd29ya3RyZWUvbWVyZ2UiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHt9KX0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtpZihlJiZlLmVycm9yKXRocm93IG5ldyBFcnJvcihlLmVycm9yKTtyZXR1cm4gZSYmZS5zZXNzaW9uJiYkKGUuc2Vzc2lvbiksaygiXHU1REYyXHU1NDA4XHU1RTc2XHU1MjMwICIrcChlLnJlc3VsdCYmZS5yZXN1bHQudGFyZ2V0QnJhbmNofHwiXHU0RTNCXHU1MjA2XHU2NTJGIikrKGUucmVzdWx0JiZlLnJlc3VsdC5jbGVhbnVwRG9uZT09PSExPyJcdUZGMENcdTRGNDZcdTVERTVcdTRGNUNcdTY4MTFcdTVGODVcdTZFMDVcdTc0MDZcdTMwMDIiOiJcdTMwMDIiKSwiaW5mbyIpLFhuKCksanQoKX0pLmNhdGNoKGZ1bmN0aW9uKGUpe3Iud29ya3RyZWVNZXJnZUVycm9yPWUmJmUubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQwOFx1NUU3NiB3b3JrdHJlZVx1MzAwMiIsT3IoKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtyLndvcmt0cmVlTWVyZ2VTdWJtaXR0aW5nPSExLE9yKCl9KSl9ZnVuY3Rpb24gdmwoZSl7ZmV0Y2goIi9hcGkvc2Vzc2lvbnMvIitlbmNvZGVVUklDb21wb25lbnQoZSkrIi93b3JrdHJlZS9jbGVhbnVwIix7bWV0aG9kOiJQT1NUIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbih0KXtyZXR1cm4gdC5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHQpe2lmKHQmJnQuZXJyb3IpdGhyb3cgbmV3IEVycm9yKHQuZXJyb3IpO3JldHVybiB0JiZ0LnNlc3Npb24mJiQodC5zZXNzaW9uKSxrKCJcdTVERjJcdTVCOENcdTYyMTAgd29ya3RyZWUgXHU2RTA1XHU3NDA2XHUzMDAyIiwiaW5mbyIpLGp0KCl9KS5jYXRjaChmdW5jdGlvbih0KXtrKHQmJnQubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NkUwNVx1NzQwNiB3b3JrdHJlZVx1MzAwMiIsImVycm9yIil9KX1mdW5jdGlvbiB4bSgpe2duKCk7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1vZGFsIik7aWYoZSl7ZS5fd2FuZENsb3NlVGltZXImJihjbGVhclRpbWVvdXQoZS5fd2FuZENsb3NlVGltZXIpLGUuX3dhbmRDbG9zZVRpbWVyPW51bGwpLGUuY2xhc3NMaXN0LnJlbW92ZSgiY2xvc2luZyIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksci5sYXN0Rm9jdXNlZEVsZW1lbnQ9ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV3LXBhc3N3b3JkIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uZmlybS1wYXNzd29yZCIpO3QmJih0LnZhbHVlPSIiKSxuJiYobi52YWx1ZT0iIiksbWwoKSxNaShlKSxJbSgpLG91KCJhYm91dCIpLE9tKCk7dmFyIGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi1zb3VuZCIpLGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi1idWJibGUiKTtpJiYoaS5jaGVja2VkPXIubm90aWZTb3VuZCksYSYmKGEuY2hlY2tlZD1yLm5vdGlmQnViYmxlKTt2YXIgdT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW5vdGlmLXZvbHVtZSIpLHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1ub3RpZi12b2x1bWUtdmFsIik7aWYodSl7dS52YWx1ZT1yLm5vdGlmVm9sdW1lLHMmJihzLnRleHRDb250ZW50PXIubm90aWZWb2x1bWUrIiUiKTt0cnl7dS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiaW5wdXQiLHtidWJibGVzOiEwfSkpfWNhdGNoe319dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmLXZvbHVtZS1maWVsZCIpO2lmKG8mJihvLnN0eWxlLmRpc3BsYXk9ci5ub3RpZlNvdW5kPyIiOiJub25lIikseW4oKSx0eXBlb2YgV2FuZE5hdGl2ZTwidSImJnR5cGVvZiBXYW5kTmF0aXZlLmdldEFwcEljb249PSJmdW5jdGlvbiIpdHJ5e3lsKFdhbmROYXRpdmUuZ2V0QXBwSWNvbigpfHwic2hvcnRoYWlyIil9Y2F0Y2h7fWlmKGplJiZ0eXBlb2YgV2FuZE5hdGl2ZS5nZXROb3RpZmljYXRpb25Tb3VuZD09ImZ1bmN0aW9uIil0cnl7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5hdGl2ZS1zb3VuZC1zZWxlY3QiKTtsJiYobC52YWx1ZT1XYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblNvdW5kKCkpfWNhdGNoe31pZihqZSYmdHlwZW9mIFdhbmROYXRpdmUuZ2V0Tm90aWZpY2F0aW9uVm9sdW1lPT0iZnVuY3Rpb24iKXRyeXt2YXIgYz1XYW5kTmF0aXZlLmdldE5vdGlmaWNhdGlvblZvbHVtZSgpO2lmKHIubm90aWZWb2x1bWU9Yyx1JiYodS52YWx1ZT1TdHJpbmcoYykpLHMmJihzLnRleHRDb250ZW50PWMrIiUiKSx1KXRyeXt1LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJpbnB1dCIse2J1YmJsZXM6ITB9KSl9Y2F0Y2h7fXRyeXtsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgid2FuZC1ub3RpZi12b2x1bWUiLFN0cmluZyhjKSl9Y2F0Y2h7fX1jYXRjaHt9aWYoamUmJnR5cGVvZiBXYW5kTmF0aXZlLmlzSGFwdGljRW5hYmxlZD09ImZ1bmN0aW9uIil0cnl7dmFyIGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1oYXB0aWMtZW5hYmxlZCIpO2YmJihmLmNoZWNrZWQ9V2FuZE5hdGl2ZS5pc0hhcHRpY0VuYWJsZWQoKSl9Y2F0Y2h7fX19ZnVuY3Rpb24gWm4oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtbW9kYWwiKTtlJiYoci5mb2N1c1RyYXBIYW5kbGVyJiYoZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsci5mb2N1c1RyYXBIYW5kbGVyKSxyLmZvY3VzVHJhcEhhbmRsZXI9bnVsbCksci5sYXN0Rm9jdXNlZEVsZW1lbnQmJnR5cGVvZiByLmxhc3RGb2N1c2VkRWxlbWVudC5mb2N1cz09ImZ1bmN0aW9uIiYmci5sYXN0Rm9jdXNlZEVsZW1lbnQuZm9jdXMoKSxzdShlKSl9ZnVuY3Rpb24gbWwoKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtZXJyb3IiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1zdWNjZXNzIik7ZSYmZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSx0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpfWZ1bmN0aW9uIFNtKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5ldy1wYXNzd29yZCIpLnZhbHVlLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbmZpcm0tcGFzc3dvcmQiKS52YWx1ZSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1lcnJvciIpLGk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLXN1Y2Nlc3MiKTtpZihtbCgpLCFlfHxlLmxlbmd0aDw2KXtuLnRleHRDb250ZW50PSJcdTVCQzZcdTc4MDFcdTk1N0ZcdTVFQTZcdTgxRjNcdTVDMTFcdTRFM0EgNiBcdTRFMkFcdTVCNTdcdTdCMjZcdTMwMDIiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7cmV0dXJufWlmKGUhPT10KXtuLnRleHRDb250ZW50PSJcdTRFMjRcdTZCMjFcdThGOTNcdTUxNjVcdTc2ODRcdTVCQzZcdTc4MDFcdTRFMERcdTRFMDBcdTgxRjRcdTMwMDIiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7cmV0dXJufWZldGNoKCIvYXBpL3NldC1wYXNzd29yZCIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHtwYXNzd29yZDplfSksY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oYSl7cmV0dXJuIGEuanNvbigpfSkudGhlbihmdW5jdGlvbihhKXtpZihhLmVycm9yKXtuLnRleHRDb250ZW50PWEuZXJyb3Isbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTtyZXR1cm59aS50ZXh0Q29udGVudD0iXHU1QkM2XHU3ODAxXHU0RkVFXHU2NTM5XHU2MjEwXHU1MjlGXHVGRjAxIixpLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJuZXctcGFzc3dvcmQiKS52YWx1ZT0iIixkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uZmlybS1wYXNzd29yZCIpLnZhbHVlPSIifSkuY2F0Y2goZnVuY3Rpb24oKXtuLnRleHRDb250ZW50PSJGYWlsZWQgdG8gc2F2ZSBwYXNzd29yZC4iLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9KX1mdW5jdGlvbiBvdShlKXtmb3IodmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNldHRpbmdzLXRhYiIpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNldHRpbmdzLXBhbmVsIiksaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10W2ldLmdldEF0dHJpYnV0ZSgiZGF0YS10YWIiKT09PWU7YT90W2ldLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpOnRbaV0uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksdFtpXS5zZXRBdHRyaWJ1dGUoImFyaWEtc2VsZWN0ZWQiLGE/InRydWUiOiJmYWxzZSIpLHRbaV0uc2V0QXR0cmlidXRlKCJ0YWJpbmRleCIsYT8iMCI6Ii0xIil9Zm9yKHZhciB1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBzPW5bdV0uaWQ9PT0ic2V0dGluZ3MtdGFiLSIrZTtzPyhuW3VdLmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLG5bdV0ucmVtb3ZlQXR0cmlidXRlKCJoaWRkZW4iKSk6KG5bdV0uY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIiksblt1XS5zZXRBdHRyaWJ1dGUoImhpZGRlbiIsImhpZGRlbiIpKX19ZnVuY3Rpb24gZ2woZSl7aWYoZSYmIShlLmtleSE9PSJBcnJvd1VwIiYmZS5rZXkhPT0iQXJyb3dEb3duIiYmZS5rZXkhPT0iSG9tZSImJmUua2V5IT09IkVuZCIpKXt2YXIgdD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2V0dGluZ3MtdGFiIikpO2lmKHQubGVuZ3RoKXt2YXIgbj10LmluZGV4T2YoZS5jdXJyZW50VGFyZ2V0KTtpZihuIT09LTEpe2UucHJldmVudERlZmF1bHQoKTt2YXIgaT1uO2Uua2V5PT09IkFycm93VXAiJiYoaT1uPjA/bi0xOnQubGVuZ3RoLTEpLGUua2V5PT09IkFycm93RG93biImJihpPW48dC5sZW5ndGgtMT9uKzE6MCksZS5rZXk9PT0iSG9tZSImJihpPTApLGUua2V5PT09IkVuZCImJihpPXQubGVuZ3RoLTEpO3ZhciBhPXRbaV07aWYoYSl7dmFyIHU9YS5nZXRBdHRyaWJ1dGUoImRhdGEtdGFiIik7dSYmb3UodSksdHlwZW9mIGEuZm9jdXM9PSJmdW5jdGlvbiImJmEuZm9jdXMoKX19fX19ZnVuY3Rpb24gSW0oKXtmb3IodmFyIGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNldHRpbmdzLXRhYiIpLHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdLnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGdsKSxlW3RdLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGdsKX1mdW5jdGlvbiBUbShlKXtpZihlKXt2YXIgdD1lLmNvbmZpZ3x8e30sbj17YWJvdXQ6ZS52ZXJzaW9uPyJcdTVGNTNcdTUyNEQgdiIrZS52ZXJzaW9uOiJcdTcyNDhcdTY3MkNcdTRFMEVcdTY2RjRcdTY1QjBcdTRGRTFcdTYwNkYiLGdlbmVyYWw6W3QuZGVmYXVsdE1vZGV8fCJkZWZhdWx0Iix0Lmxhbmd1YWdlfHwiXHU4MUVBXHU1MkE4XHU4QkVEXHU4QTAwIl0uZmlsdGVyKEJvb2xlYW4pLmpvaW4oIiBceEI3ICIpLG5vdGlmaWNhdGlvbnM6ci5ub3RpZlNvdW5kPyJcdTYzRDBcdTc5M0FcdTk3RjMgIityLm5vdGlmVm9sdW1lKyIlIjoiXHU2M0QwXHU3OTNBXHU5N0YzXHU1REYyXHU1MTczXHU5NUVEIixzZWN1cml0eTplLmhhc0NlcnQ/Ilx1NURGMlx1NUI4OVx1ODhDNSBTU0wgXHU4QkMxXHU0RTY2IjoiXHU1QkM2XHU3ODAxXHU0RTBFXHU4QkMxXHU0RTY2XHU3QkExXHU3NDA2IixwcmVzZXRzOnQuY29tbWFuZFByZXNldHMmJnQuY29tbWFuZFByZXNldHMubGVuZ3RoP3QuY29tbWFuZFByZXNldHMubGVuZ3RoKyIgXHU2NzYxXHU5ODg0XHU4QkJFIjoiXHU2NjgyXHU2NUUwXHU5ODg0XHU4QkJFIixkaXNwbGF5OiJcdTYzQTdcdTUyMzZcdTUzNjFcdTcyNDdcdTlFRDhcdThCQTRcdTVDNTVcdTVGMDAifTtmb3IodmFyIGkgaW4gbilpZihPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobixpKSl7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLnNldHRpbmdzLXRhYltkYXRhLXRhYj0iJytpKyciXSAuc2V0dGluZ3MtdGFiLW1ldGEnKTthJiYoYS50ZXh0Q29udGVudD1uW2ldfHwiIil9fX1mdW5jdGlvbiBMbShlKXt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyLWVtcHR5IiksaT13aW5kb3cuUVJDb2RlTGliO2lmKHQpe2lmKCFpfHx0eXBlb2YgaS50b0NhbnZhcyE9ImZ1bmN0aW9uIil7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEU4Q1x1N0VGNFx1NzgwMVx1NUU5M1x1NjcyQVx1NTJBMFx1OEY3RCIpO3JldHVybn10cnl7aS50b0NhbnZhcyh0LGUse3dpZHRoOjIyMCxtYXJnaW46MSxlcnJvckNvcnJlY3Rpb25MZXZlbDoiTSIsY29sb3I6e2Rhcms6IiMxZjFiMTciLGxpZ2h0OiIjZmZmZmZmMDAifX0sZnVuY3Rpb24oYSl7aWYoYSl7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEU4Q1x1N0VGNFx1NzgwMVx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNSIsbi5zdHlsZS5kaXNwbGF5PSIiKSx0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7cmV0dXJufW4mJihuLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSx0LnN0eWxlLnZpc2liaWxpdHk9InZpc2libGUifSl9Y2F0Y2h7biYmKG4udGV4dENvbnRlbnQ9Ilx1NEU4Q1x1N0VGNFx1NzgwMVx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNSIsbi5zdHlsZS5kaXNwbGF5PSIiKSx0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiJ9fX1mdW5jdGlvbiBNbShlKXt2YXIgdD13aW5kb3cuUVJDb2RlTGliO2lmKCF0fHx0eXBlb2YgdC50b0NhbnZhcyE9ImZ1bmN0aW9uIilyZXR1cm47dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbm5lY3QtcXItbW9kYWwiKTtuJiZuLnJlbW92ZSgpO3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2kuaWQ9ImNvbm5lY3QtcXItbW9kYWwiLGkuY2xhc3NOYW1lPSJjb25uZWN0LXFyLW1vZGFsLW92ZXJsYXkiLGkuaW5uZXJIVE1MPSc8ZGl2IGNsYXNzPSJjb25uZWN0LXFyLW1vZGFsLWNhcmQiPjxjYW52YXMgaWQ9ImNvbm5lY3QtcXItbW9kYWwtY2FudmFzIj48L2NhbnZhcz48cCBjbGFzcz0iY29ubmVjdC1xci1tb2RhbC1oaW50Ij5cdTc1MjggV2FuZCBBcHAgXHU2MjZCXHU0RTAwXHU2MjZCXHVGRjBDXHU4RkRFXHU2M0E1XHU1RjUzXHU1MjREXHU2NzBEXHU1MkExXHU1NjY4PC9wPjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGNvbm5lY3QtcXItbW9kYWwtY2xvc2UiPlx1NTE3M1x1OTVFRDwvYnV0dG9uPjwvZGl2PicsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpKTt2YXIgYT1pLnF1ZXJ5U2VsZWN0b3IoIiNjb25uZWN0LXFyLW1vZGFsLWNhbnZhcyIpLHU9TWF0aC5taW4od2luZG93LmlubmVyV2lkdGgsd2luZG93LmlubmVySGVpZ2h0KSouNzt1PDI0MCYmKHU9MjQwKSx1PjQ4MCYmKHU9NDgwKTt0cnl7dC50b0NhbnZhcyhhLGUse3dpZHRoOnUsbWFyZ2luOjIsZXJyb3JDb3JyZWN0aW9uTGV2ZWw6Ik0iLGNvbG9yOntkYXJrOiIjMWYxYjE3IixsaWdodDoiI2ZmZmZmZiJ9fSl9Y2F0Y2h7fWZ1bmN0aW9uIHMoKXtpLnJlbW92ZSgpfWkuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKGwpe2wudGFyZ2V0PT09aSYmcygpfSk7dmFyIG89aS5xdWVyeVNlbGVjdG9yKCIuY29ubmVjdC1xci1tb2RhbC1jbG9zZSIpO28mJm8uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHMpfWZ1bmN0aW9uIFByKGUsdCxuKXtpZighZSlyZXR1cm47ZnVuY3Rpb24gaSgpe2lmKEtuKCJsaWdodCIpLG4pe24oKTtyZXR1cm59aWYodCl7dmFyIGE9dC50ZXh0Q29udGVudDt0LnRleHRDb250ZW50PSJcdTVERjJcdTU5MERcdTUyMzYiLHNldFRpbWVvdXQoZnVuY3Rpb24oKXt0LnRleHRDb250ZW50PWF9LDE1MDApfX1pZihqZSYmdHlwZW9mIFdhbmROYXRpdmUuY29weVRvQ2xpcGJvYXJkPT0iZnVuY3Rpb24iKXRyeXtpZihXYW5kTmF0aXZlLmNvcHlUb0NsaXBib2FyZChlKT09PSJvayIpe2koKTtyZXR1cm59fWNhdGNoe31uYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dChlKS50aGVuKGkpLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGV4dGFyZWEiKTthLnZhbHVlPWUsYS5zdHlsZS5wb3NpdGlvbj0iZml4ZWQiLGEuc3R5bGUub3BhY2l0eT0iMCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChhKSxhLnNlbGVjdCgpLGRvY3VtZW50LmV4ZWNDb21tYW5kKCJjb3B5IiksZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChhKSxpKCl9KX1mdW5jdGlvbiBobihlKXtpZih0eXBlb2YgZSE9Im51bWJlciJ8fCFpc0Zpbml0ZShlKXx8ZTwwKXJldHVybiItIjtpZihlPDEwMjQpcmV0dXJuIGUrIiBCIjtmb3IodmFyIHQ9WyJLQiIsIk1CIiwiR0IiLCJUQiJdLG49ZS8xMDI0LGk9MDtuPj0xMDI0JiZpPHQubGVuZ3RoLTE7KW49bi8xMDI0LGkrPTE7dmFyIGE9bj49MTA/bi50b0ZpeGVkKDApOm4udG9GaXhlZCgxKTtyZXR1cm4gYSsiICIrdFtpXX1mdW5jdGlvbiBPbSgpe2ZldGNoKCIvYXBpL3NldHRpbmdzIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtUbShlKTt2YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtcGtnLW5hbWUiKSxuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy12ZXJzaW9uIiksaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3Mtbm9kZS1yZXEiKSxhPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1yZXBvLXVybCIpO3QmJih0LnRleHRDb250ZW50PWUucGFja2FnZU5hbWV8fCItIiksbiYmKG4udGV4dENvbnRlbnQ9ZS52ZXJzaW9ufHwiLSIpLGkmJihpLnRleHRDb250ZW50PWUubm9kZVZlcnNpb258fCItIiksYSYmZS5yZXBvVXJsJiYoYS5pbm5lckhUTUw9JzxhIGhyZWY9IicrcChlLnJlcG9VcmwpKyciIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vb3BlbmVyIj4nK3AoZS5yZXBvVXJsKSsiPC9hPiIpO3ZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1sYXRlc3QtdmVyc2lvbiIpLHM9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvLXVwZGF0ZS1idXR0b24iKTtlLmxhdGVzdFZlcnNpb24mJnUmJih1LnRleHRDb250ZW50PWUubGF0ZXN0VmVyc2lvbixlLnVwZGF0ZUF2YWlsYWJsZSYmcyYmcy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7dmFyIG89ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJldGEtY2hhbm5lbC10b2dnbGUiKTtvJiYoby5jaGVja2VkPWUudXBkYXRlQ2hhbm5lbD09PSJiZXRhIik7dmFyIGw9ZS5hdXRvVXBkYXRlfHx7fSxjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS13ZWItdG9nZ2xlIik7YyYmKGMuY2hlY2tlZD0hIWwud2ViKTt2YXIgZj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtYXBrLXRvZ2dsZSIpO2YmJihmLmNoZWNrZWQ9ISFTbiYmISFsLmFwayk7dmFyIGQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWRtZy10b2dnbGUiKTtkJiYoZC5jaGVja2VkPSEhb24mJiEhbC5kbWcpO2Z1bmN0aW9uIHYoWixTZSl7dHlwZW9mIHdpbmRvdy53YW5kQWxlcnQ9PSJmdW5jdGlvbiI/d2luZG93LndhbmRBbGVydChaLHt0eXBlOlNlPT09ImVycm9yIj8iZGFuZ2VyIjoiaW5mbyJ9KTp0eXBlb2Ygaz09ImZ1bmN0aW9uIj9rKFosU2U9PT0iZXJyb3IiPyJlcnJvciI6ImluZm8iKTpTZT09PSJlcnJvciImJmFsZXJ0KFopfWZ1bmN0aW9uIGgoWixTZSxJZSl7dmFyIFllPUllP0llLnRleHRDb250ZW50OiIiO0llJiYoSWUuZGlzYWJsZWQ9ITAsSWUudGV4dENvbnRlbnQ9Ilx1NEUwQlx1OEY3RFx1NEUyRFx1MjAyNiIpO2Z1bmN0aW9uIFFlKCl7SWUmJihJZS5kaXNhYmxlZD0hMSxJZS50ZXh0Q29udGVudD1ZZSl9ZmV0Y2goWix7bWV0aG9kOiJIRUFEIixjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihGZSl7aWYoIUZlLm9rKXt2KEZlLnN0YXR1cz09PTQwND8iXHU0RTBCXHU4RjdEXHU2NzJBXHU1NDJGXHU3NTI4XHU2MjE2XHU2NTg3XHU0RUY2XHU1REYyXHU3OUZCXHU5NjY0IjoiXHU0RTBCXHU4RjdEXHU1OTMxXHU4RDI1IChIVFRQICIrRmUuc3RhdHVzKyIpIiwiZXJyb3IiKSxRZSgpO3JldHVybn12YXIgVGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO1RlLmhyZWY9WixUZS5kb3dubG9hZD1TZXx8IiIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChUZSksVGUuY2xpY2soKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKFRlKSx2KCJcdTVERjJcdTVGMDBcdTU5Q0JcdTRFMEJcdThGN0RcdUZGMENcdThCRjdcdTU3MjhcdTkwMUFcdTc3RTVcdTY4MEYvXHU0RTBCXHU4RjdEXHU3QkExXHU3NDA2XHU0RTJEXHU2N0U1XHU3NzBCIiwiaW5mbyIpLFFlKCl9KS5jYXRjaChmdW5jdGlvbihGZSl7digiXHU0RTBCXHU4RjdEXHU1OTMxXHU4RDI1OiAiKyhGZSYmRmUubWVzc2FnZT9GZS5tZXNzYWdlOkZlKSwiZXJyb3IiKSxRZSgpfSl9ZnVuY3Rpb24gZyhaLFNlKXtmdW5jdGlvbiBJZSh2ZSl7dmFyIHllPVN0cmluZyh2ZXx8IiIpLnJlcGxhY2UoL152LywiIiksUGU9eWUuaW5kZXhPZigiLSIpLG5yPVBlPj0wP3llLnNsaWNlKDAsUGUpOnllLF9yPVBlPj0wP3llLnNsaWNlKFBlKzEpOiIiO3JldHVybntwYXJ0czpuci5zcGxpdCgiLiIpLm1hcChmdW5jdGlvbihIaSl7cmV0dXJuIHBhcnNlSW50KEhpLDEwKXx8MH0pLHByZTpfcixpc0RlYnVnOl9yLmluZGV4T2YoImRlYnVnIik9PT0wfX1mb3IodmFyIFllPUllKFopLFFlPUllKFNlKSxGZT0wO0ZlPDM7RmUrKyl7dmFyIFRlPShZZS5wYXJ0c1tGZV18fDApLShRZS5wYXJ0c1tGZV18fDApO2lmKFRlIT09MClyZXR1cm4gVGU+MD8xOi0xfWlmKFllLmlzRGVidWchPT1RZS5pc0RlYnVnKXJldHVybiBZZS5pc0RlYnVnPzE6LTE7aWYoWWUuaXNEZWJ1ZyYmUWUuaXNEZWJ1Zylmb3IodmFyICRlPVllLnByZS5zcGxpdCgiLiIpLEd0PVFlLnByZS5zcGxpdCgiLiIpLEg9MDtIPE1hdGgubWF4KCRlLmxlbmd0aCxHdC5sZW5ndGgpO0grKyl7aWYoJGVbSF09PT12b2lkIDApcmV0dXJuLTE7aWYoR3RbSF09PT12b2lkIDApcmV0dXJuIDE7dmFyIGo9cGFyc2VJbnQoJGVbSF0sMTApLFE9cGFyc2VJbnQoR3RbSF0sMTApO2lmKCFpc05hTihqKSYmIWlzTmFOKFEpKXtpZihqIT09USlyZXR1cm4gaj5RPzE6LTF9ZWxzZSBpZigkZVtIXSE9PUd0W0hdKXJldHVybiAkZVtIXT5HdFtIXT8xOi0xfXJldHVybiAwfWZ1bmN0aW9uIG0oWixTZSxJZSxZZSxRZSxGZSl7Wi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxaLmRpc2FibGVkPSExLFNlPjA/Wi50ZXh0Q29udGVudD0iXHU1MzQ3XHU3RUE3IjpTZT09PTA/KFoudGV4dENvbnRlbnQ9Ilx1NURGMlx1NjYyRlx1NjcwMFx1NjVCMCIsWi5kaXNhYmxlZD0hMCk6RmU/Wi50ZXh0Q29udGVudD0iXHU5MUNEXHU2NUIwXHU1Qjg5XHU4OEM1IjooWi50ZXh0Q29udGVudD0iXHU3MjQ4XHU2NzJDXHU4RjgzXHU2NUU3IixaLmRpc2FibGVkPSEwKSxaLm9uY2xpY2s9Wi5kaXNhYmxlZD9udWxsOmZ1bmN0aW9uKCl7dHJ5e1dhbmROYXRpdmUuZG93bmxvYWRVcGRhdGUoSWUsWWUsUWUpfWNhdGNoKFRlKXt2KCJcdThDMDNcdTc1MjhcdTRFMEJcdThGN0RcdTU5MzFcdThEMjU6ICIrKFRlJiZUZS5tZXNzYWdlP1RlLm1lc3NhZ2U6VGUpLCJlcnJvciIpfX19dmFyIHk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXBrLXNlY3Rpb24iKSx3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1jdXJyZW50LXJvdyIpLEU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWFuZHJvaWQtYXBrLWN1cnJlbnQiKSxCPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1naXRodWItcm93IiksRj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2V0dGluZ3MtYW5kcm9pZC1hcGstZ2l0aHViIikseD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtZ2l0aHViLWFway1idG4iKSxTPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1sb2NhbC1yb3ciKSxfPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1hbmRyb2lkLWFway1sb2NhbCIpLFY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRvd25sb2FkLWxvY2FsLWFway1idG4iKSxVPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWFway1tZXNzYWdlIiksST1lLmFuZHJvaWRBcGt8fHt9LEQ9ISFTbixNPUkuZW5hYmxlZCE9PSExLEw9RHx8TSYmKCEhSS5naXRodWJ8fCEhSS5sb2NhbCk7aWYoeSYmKEw/eS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTp5LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKSxEKXtpZih3JiZFJiYoRS50ZXh0Q29udGVudD0idiIrU24sdy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksSS5naXRodWImJkImJkYpe3ZhciBXPUkuZ2l0aHViLnZlcnNpb24/InYiK0kuZ2l0aHViLnZlcnNpb246SS5naXRodWIuZmlsZU5hbWU7aWYodHlwZW9mIEkuZ2l0aHViLnNpemU9PSJudW1iZXIiJiYoVys9IiBceEI3ICIraG4oSS5naXRodWIuc2l6ZSkpLEYudGV4dENvbnRlbnQ9VyxCLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLHgpe3ZhciBLPUkuZ2l0aHViLnZlcnNpb24/ZyhJLmdpdGh1Yi52ZXJzaW9uLFNuKToxO20oeCxLLEkuZ2l0aHViLmRvd25sb2FkVXJsLEkuZ2l0aHViLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuYXBrIiwiZ2l0aHViIiwhMSl9fWlmKEkubG9jYWwmJlMmJl8pe3ZhciBYPUkubG9jYWwudmVyc2lvbj8idiIrSS5sb2NhbC52ZXJzaW9uOkkubG9jYWwuZmlsZU5hbWU7aWYodHlwZW9mIEkubG9jYWwuc2l6ZT09Im51bWJlciImJihYKz0iIFx4QjcgIitobihJLmxvY2FsLnNpemUpKSxfLnRleHRDb250ZW50PVgsUy5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxWKXt2YXIgbmU9SS5sb2NhbC52ZXJzaW9uP2coSS5sb2NhbC52ZXJzaW9uLFNuKToxO20oVixuZSxJLmxvY2FsLmRvd25sb2FkVXJsLEkubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5hcGsiLCJsb2NhbCIsITEpfX0hSS5naXRodWImJiFJLmxvY2FsJiZVJiYoVS50ZXh0Q29udGVudD0iXHU2NjgyXHU2NUUwXHU1M0VGXHU3NTI4XHU2NkY0XHU2NUIwIixVLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTt2YXIgc2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXV0by11cGRhdGUtcm93IikscmU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtYXV0by11cGRhdGUtaGludCIpO3NlJiZzZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxyZSYmcmUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9ZWxzZXtpZihJLmdpdGh1YiYmQiYmRil7dmFyIFQ9SS5naXRodWIudmVyc2lvbj8idiIrSS5naXRodWIudmVyc2lvbjpJLmdpdGh1Yi5maWxlTmFtZTt0eXBlb2YgSS5naXRodWIuc2l6ZT09Im51bWJlciImJihUKz0iIFx4QjcgIitobihJLmdpdGh1Yi5zaXplKSksRi50ZXh0Q29udGVudD1ULEIuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikseCYmKHgudGV4dENvbnRlbnQ9Ilx1NEUwQlx1OEY3RCIseC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx4Lm9uY2xpY2s9ZnVuY3Rpb24oKXt3aW5kb3cub3BlbihJLmdpdGh1Yi5kb3dubG9hZFVybCwiX2JsYW5rIiksdigiXHU2QjYzXHU1NzI4XHU2MjUzXHU1RjAwXHU0RTBCXHU4RjdEXHU5ODc1XHUyMDI2IiwiaW5mbyIpfSl9aWYoSS5sb2NhbCYmUyYmXyl7dmFyIE89SS5sb2NhbC52ZXJzaW9uPyJ2IitJLmxvY2FsLnZlcnNpb246SS5sb2NhbC5maWxlTmFtZTt0eXBlb2YgSS5sb2NhbC5zaXplPT0ibnVtYmVyIiYmKE8rPSIgXHhCNyAiK2huKEkubG9jYWwuc2l6ZSkpLF8udGV4dENvbnRlbnQ9TyxTLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFYmJihWLnRleHRDb250ZW50PSJcdTRFMEJcdThGN0QiLFYuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksVi5vbmNsaWNrPWZ1bmN0aW9uKCl7aChJLmxvY2FsLmRvd25sb2FkVXJsLEkubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5hcGsiLFYpfSl9IUkuZ2l0aHViJiYhSS5sb2NhbCYmVSYmKFUudGV4dENvbnRlbnQ9TT8iXHU1NzI4XHU3RUJGXHU3MjQ4XHU2NzJDXHU2NjgyXHU2NUY2XHU4M0I3XHU1M0Q2XHU1OTMxXHU4RDI1XHVGRjBDXHU1M0VGXHU3QTBEXHU1NDBFXHU5MUNEXHU4QkQ1IjoiQW5kcm9pZCBcdTRFMEJcdThGN0RcdTY3MkFcdTU3MjhcdTY3MERcdTUyQTFcdTdBRUZcdTU0MkZcdTc1MjgiLFUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfXZhciBOPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctc2VjdGlvbiIpLFk9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1jdXJyZW50LXJvdyIpLEo9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1hY29zLWRtZy1jdXJyZW50IiksaWU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWRtZy1naXRodWItcm93IiksZGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLW1hY29zLWRtZy1naXRodWIiKSx0ZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtZ2l0aHViLWRtZy1idG4iKSxhZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibWFjb3MtZG1nLWxvY2FsLXJvdyIpLEhlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXR0aW5ncy1tYWNvcy1kbWctbG9jYWwiKSxEZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG93bmxvYWQtbG9jYWwtZG1nLWJ0biIpLHBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1kbWctbWVzc2FnZSIpLHE9ZS5tYWNvc0RtZ3x8e30sSmU9ISFvbixsdD1xLmVuYWJsZWQhPT0hMSxHPUplfHxsdCYmKCEhcS5naXRodWJ8fCEhcS5sb2NhbCk7aWYoTiYmKEc/Ti5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTpOLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpKSxKZSl7aWYoWSYmSiYmKEoudGV4dENvbnRlbnQ9InYiK29uLFkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHEuZ2l0aHViJiZpZSYmZGUpe3ZhciBlZT1xLmdpdGh1Yi52ZXJzaW9uPyJ2IitxLmdpdGh1Yi52ZXJzaW9uOnEuZ2l0aHViLmZpbGVOYW1lO2lmKHR5cGVvZiBxLmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKGVlKz0iIFx4QjcgIitobihxLmdpdGh1Yi5zaXplKSksZGUudGV4dENvbnRlbnQ9ZWUsaWUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksdGUpe3ZhciBvZT1xLmdpdGh1Yi52ZXJzaW9uP2cocS5naXRodWIudmVyc2lvbixvbik6MTttKHRlLG9lLHEuZ2l0aHViLmRvd25sb2FkVXJsLHEuZ2l0aHViLmZpbGVOYW1lfHwid2FuZC11cGRhdGUuZG1nIiwiZ2l0aHViIiwhMCl9fWlmKHEubG9jYWwmJmFlJiZIZSl7dmFyIGxlPXEubG9jYWwudmVyc2lvbj8idiIrcS5sb2NhbC52ZXJzaW9uOnEubG9jYWwuZmlsZU5hbWU7aWYodHlwZW9mIHEubG9jYWwuc2l6ZT09Im51bWJlciImJihsZSs9IiBceEI3ICIraG4ocS5sb2NhbC5zaXplKSksSGUudGV4dENvbnRlbnQ9bGUsYWUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksRGUpe3ZhciBCZT1xLmxvY2FsLnZlcnNpb24/ZyhxLmxvY2FsLnZlcnNpb24sb24pOjE7bShEZSxCZSxxLmxvY2FsLmRvd25sb2FkVXJsLHEubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5kbWciLCJsb2NhbCIsITApfX0hcS5naXRodWImJiFxLmxvY2FsJiZwZSYmKHBlLnRleHRDb250ZW50PSJcdTY2ODJcdTY1RTBcdTUzRUZcdTc1MjhcdTY2RjRcdTY1QjAiLHBlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTt2YXIgV2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1hY29zLWF1dG8tdXBkYXRlLXJvdyIpLFZ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtYWNvcy1hdXRvLXVwZGF0ZS1oaW50Iik7V2UmJldlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpLFZ0JiZWdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX1lbHNle2lmKHEuZ2l0aHViJiZpZSYmZGUpe3ZhciBjdD1xLmdpdGh1Yi52ZXJzaW9uPyJ2IitxLmdpdGh1Yi52ZXJzaW9uOnEuZ2l0aHViLmZpbGVOYW1lO3R5cGVvZiBxLmdpdGh1Yi5zaXplPT0ibnVtYmVyIiYmKGN0Kz0iIFx4QjcgIitobihxLmdpdGh1Yi5zaXplKSksZGUudGV4dENvbnRlbnQ9Y3QsaWUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksdGUmJih0ZS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEIix0ZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx0ZS5vbmNsaWNrPWZ1bmN0aW9uKCl7d2luZG93Lm9wZW4ocS5naXRodWIuZG93bmxvYWRVcmwsIl9ibGFuayIpLHYoIlx1NkI2M1x1NTcyOFx1NjI1M1x1NUYwMFx1NEUwQlx1OEY3RFx1OTg3NVx1MjAyNiIsImluZm8iKX0pfWlmKHEubG9jYWwmJmFlJiZIZSl7dmFyIGR0PXEubG9jYWwudmVyc2lvbj8idiIrcS5sb2NhbC52ZXJzaW9uOnEubG9jYWwuZmlsZU5hbWU7dHlwZW9mIHEubG9jYWwuc2l6ZT09Im51bWJlciImJihkdCs9IiBceEI3ICIraG4ocS5sb2NhbC5zaXplKSksSGUudGV4dENvbnRlbnQ9ZHQsYWUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksRGUmJihEZS50ZXh0Q29udGVudD0iXHU0RTBCXHU4RjdEIixEZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSxEZS5vbmNsaWNrPWZ1bmN0aW9uKCl7aChxLmxvY2FsLmRvd25sb2FkVXJsLHEubG9jYWwuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5kbWciLERlKX0pfSFxLmdpdGh1YiYmIXEubG9jYWwmJnBlJiYocGUudGV4dENvbnRlbnQ9bHQ/Ilx1NTcyOFx1N0VCRlx1NzI0OFx1NjcyQ1x1NjY4Mlx1NjVGNlx1ODNCN1x1NTNENlx1NTkzMVx1OEQyNVx1RkYwQ1x1NTNFRlx1N0EwRFx1NTQwRVx1OTFDRFx1OEJENSI6Im1hY09TIFx1NEUwQlx1OEY3RFx1NjcyQVx1NTcyOFx1NjcwRFx1NTJBMVx1N0FFRlx1NTQyRlx1NzUyOCIscGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfXZhciBfZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LWNvZGUiKSxLdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYW5kcm9pZC1jb25uZWN0LXFyIiksR2U9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImFuZHJvaWQtY29ubmVjdC1xci1lbXB0eSIpLHJ0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhbmRyb2lkLWNvbm5lY3QtcXItd3JhcCIpO2lmKF9lKXtfZS50ZXh0Q29udGVudD0iXHU1MkEwXHU4RjdEXHU0RTJELi4uIixHZSYmKEdlLnRleHRDb250ZW50PSJcdTc1MUZcdTYyMTBcdTRFMkRcdTIwMjYiKSxLdCYmKEt0LnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIpO3ZhciBrZT0iL2FwaS9hcHAtY29ubmVjdC1jb2RlIjt3aW5kb3cubG9jYXRpb24mJndpbmRvdy5sb2NhdGlvbi5vcmlnaW4mJihrZSs9Ij9vcmlnaW49IitlbmNvZGVVUklDb21wb25lbnQod2luZG93LmxvY2F0aW9uLm9yaWdpbikpLGZldGNoKGtlLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihaKXtyZXR1cm4gWi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKFope1ouY29kZT8oX2UudGV4dENvbnRlbnQ9Wi5jb2RlLHIuYW5kcm9pZENvbm5lY3RDb2RlPVouY29kZSxMbShaLmNvZGUpKTooX2UudGV4dENvbnRlbnQ9Ilx1NzUxRlx1NjIxMFx1NTkzMVx1OEQyNSIsR2UmJihHZS50ZXh0Q29udGVudD0iXHU3NTFGXHU2MjEwXHU1OTMxXHU4RDI1IikpfSkuY2F0Y2goZnVuY3Rpb24oKXtfZS50ZXh0Q29udGVudD0iXHU4M0I3XHU1M0Q2XHU1OTMxXHU4RDI1IixHZSYmKEdlLnRleHRDb250ZW50PSJcdTgzQjdcdTUzRDZcdTU5MzFcdThEMjUiKX0pfXJ0JiYhcnQuZGF0YXNldC5ib3VuZCYmKHJ0LmRhdGFzZXQuYm91bmQ9IjEiLHJ0LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe3IuYW5kcm9pZENvbm5lY3RDb2RlJiZNbShyLmFuZHJvaWRDb25uZWN0Q29kZSl9KSk7dmFyIGdlPWUuY29uZmlnfHx7fSxiZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhvc3QiKSxDPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctcG9ydCIpLGl0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaHR0cHMiKSxodD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLW1vZGUiKSxTdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWN3ZCIpLHd0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc2hlbGwiKTtiZSYmKGJlLnZhbHVlPWdlLmhvc3R8fCIiKSxDJiYoQy52YWx1ZT1nZS5wb3J0fHwiIiksaXQmJihpdC5jaGVja2VkPWdlLmh0dHBzPT09ITApLGh0JiYoaHQudmFsdWU9Z2UuZGVmYXVsdE1vZGV8fCJkZWZhdWx0IiksU3QmJihTdC52YWx1ZT1nZS5kZWZhdWx0Q3dkfHwiIiksd3QmJih3dC52YWx1ZT1nZS5zaGVsbHx8IiIpO3ZhciBJdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWxhbmd1YWdlIik7SXQmJihJdC52YWx1ZT1nZS5sYW5ndWFnZXx8IiIpO3ZhciBKdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXN0cnVjdHVyZWQtcnVubmVyIik7SnQmJihKdC52YWx1ZT1nZS5zdHJ1Y3R1cmVkUnVubmVyfHwiY2xpIik7dmFyIGF0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctaW5oZXJpdC1lbnYiKTthdCYmKGF0LmNoZWNrZWQ9Z2UuaW5oZXJpdEVudiE9PSExKSxyLmNvbmZpZ0RlZmF1bHRNb2RlbD1nZS5kZWZhdWx0TW9kZWx8fCIiLElpKCksb2woKS50aGVuKGZ1bmN0aW9uKCl7SWkoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7fSk7dmFyIE9lPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZXJ0LXN0YXR1cyIpO09lJiYoT2UudGV4dENvbnRlbnQ9ZS5oYXNDZXJ0PyJcdTVERjJcdTVCODlcdTg4QzUgU1NMIFx1OEJDMVx1NEU2NiI6Ilx1NjcyQVx1NUI4OVx1ODhDNVx1OEJDMVx1NEU2Nlx1RkYwOFx1NEY3Rlx1NzUyOFx1ODFFQVx1N0I3RVx1NTQwRFx1NjIxNiBIVFRQXHVGRjA5IixPZS5zdHlsZS5jb2xvcj1lLmhhc0NlcnQ/InZhcigtLXN1Y2Nlc3MpIjoidmFyKC0tdGV4dC1zZWNvbmRhcnkpIik7dmFyIHplPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwcmVzZXRzLWxpc3QiKTtpZih6ZSYmZ2UuY29tbWFuZFByZXNldHMpe2Zvcih2YXIgaGU9IiIseXQ9MDt5dDxnZS5jb21tYW5kUHJlc2V0cy5sZW5ndGg7eXQrKyl7dmFyIGZ0PWdlLmNvbW1hbmRQcmVzZXRzW3l0XTtoZSs9JzxkaXYgY2xhc3M9InByZXNldC1pdGVtIj48c3BhbiBjbGFzcz0icHJlc2V0LWxhYmVsIj4nK3AoZnQubGFiZWwpKyc8L3NwYW4+PHNwYW4gY2xhc3M9InByZXNldC1kZXRhaWwiPicrcChmdC5jb21tYW5kKSsoZnQubW9kZT8iICgiK3AoZnQubW9kZSkrIikiOiIiKSsiPC9zcGFuPjwvZGl2PiJ9aGV8fChoZT0nPGRpdiBjbGFzcz0iZW1wdHktc3RhdGUtY29tcGFjdCI+PHNwYW4gY2xhc3M9ImVtcHR5LWljb24iPlx1MjY5OTwvc3Bhbj48c3Bhbj5cdTZDQTFcdTY3MDlcdTU0N0RcdTRFRTRcdTk4ODRcdThCQkU8L3NwYW4+PHNwYW4gY2xhc3M9ImhpbnQiPlx1NTcyOCBjb25maWcuanNvbiBcdTc2ODQgY29tbWFuZFByZXNldHMgXHU0RTJEXHU5MTREXHU3RjZFPC9zcGFuPjwvZGl2PicpLHplLmlubmVySFRNTD1oZX12YXIgdXQ9Z2UuY2FyZERlZmF1bHRzfHx7fSxidD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtZWRpdCIpLFR0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC1pbmxpbmUiKSxNbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdGVybWluYWwiKSxmZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdGhpbmtpbmciKSxwdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdG9vbGdyb3VwIik7YnQmJihidC5jaGVja2VkPXV0LmVkaXRDYXJkcz09PSEwKSxUdCYmKFR0LmNoZWNrZWQ9dXQuaW5saW5lVG9vbHM9PT0hMCksTW4mJihNbi5jaGVja2VkPXV0LnRlcm1pbmFsPT09ITApLGZlJiYoZmUuY2hlY2tlZD11dC50aGlua2luZz09PSEwKSxwdCYmKHB0LmNoZWNrZWQ9dXQudG9vbEdyb3VwPT09ITApfSkuY2F0Y2goZnVuY3Rpb24oKXt9KX1mdW5jdGlvbiBQbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25maWctbWVzc2FnZSIpO2UmJihlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUudGV4dENvbnRlbnQ9IiIpO3ZhciB0PXtob3N0Oihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWhvc3QiKXx8e30pLnZhbHVlLHBvcnQ6TnVtYmVyKChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXBvcnQiKXx8e30pLnZhbHVlKSxodHRwczooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1odHRwcyIpfHx7fSkuY2hlY2tlZCxkZWZhdWx0TW9kZTooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1tb2RlIil8fHt9KS52YWx1ZSxkZWZhdWx0Q3dkOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWN3ZCIpfHx7fSkudmFsdWUsc2hlbGw6KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctc2hlbGwiKXx8e30pLnZhbHVlLGxhbmd1YWdlOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWxhbmd1YWdlIil8fHt9KS52YWx1ZXx8IiIsZGVmYXVsdE1vZGVsOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWRlZmF1bHQtbW9kZWwiKXx8e30pLnZhbHVlfHwiIixzdHJ1Y3R1cmVkUnVubmVyOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLXN0cnVjdHVyZWQtcnVubmVyIil8fHt9KS52YWx1ZXx8ImNsaSIsaW5oZXJpdEVudjooZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNmZy1pbmhlcml0LWVudiIpfHx7fSkuY2hlY2tlZCE9PSExfSxuPXIuY29uZmlnJiZyLmNvbmZpZy5kZWZhdWx0TW9kZWx8fCIiLGk9dC5kZWZhdWx0TW9kZWx8fCIiO2ZldGNoKCIvYXBpL3NldHRpbmdzL2NvbmZpZyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkodCl9KS50aGVuKGZ1bmN0aW9uKGEpe3JldHVybiBhLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYSl7aWYoZSYmKGEuZXJyb3I/KGUudGV4dENvbnRlbnQ9YS5lcnJvcixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiKTooZS50ZXh0Q29udGVudD1hLnJlc3RhcnRSZXF1aXJlZD8iXHU5MTREXHU3RjZFXHU1REYyXHU0RkREXHU1QjU4XHVGRjBDXHU5MEU4XHU1MjA2XHU5MEU4XHU3RjcyXHU1QjU3XHU2QkI1XHVGRjA4aG9zdC9wb3J0L2h0dHBzL3NoZWxsXHVGRjA5XHU5NzAwXHU4OTgxXHU5MUNEXHU1NDJGXHU2NzBEXHU1MkExXHU2MjREXHU3NTFGXHU2NTQ4XHUzMDAyIjoiXHU5MTREXHU3RjZFXHU1REYyXHU0RkREXHU1QjU4XHUzMDAyIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLCghYXx8IWEuZXJyb3IpJiYoci5jb25maWcmJihyLmNvbmZpZy5kZWZhdWx0TW9kZWw9aSksci5jb25maWdEZWZhdWx0TW9kZWw9aSxpIT09bikpe3IuY2hhdE1vZGVsPSIiO3RyeXtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgid2FuZC1jaGF0LW1vZGVsIil9Y2F0Y2h7fSRuKG10KCkpfX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NEZERFx1NUI1OFx1NTkzMVx1OEQyNVx1MzAwMiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX0pfWZ1bmN0aW9uIHFtKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRpc3BsYXktbWVzc2FnZSIpO2UmJihlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLGUudGV4dENvbnRlbnQ9IiIpO3ZhciB0PXtjYXJkRGVmYXVsdHM6e2VkaXRDYXJkczohIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtZWRpdCIpfHx7fSkuY2hlY2tlZCxpbmxpbmVUb29sczohIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtaW5saW5lIil8fHt9KS5jaGVja2VkLHRlcm1pbmFsOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10ZXJtaW5hbCIpfHx7fSkuY2hlY2tlZCx0aGlua2luZzohIShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2ZnLWNhcmQtdGhpbmtpbmciKXx8e30pLmNoZWNrZWQsdG9vbEdyb3VwOiEhKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjZmctY2FyZC10b29sZ3JvdXAiKXx8e30pLmNoZWNrZWR9fTtmZXRjaCgiL2FwaS9zZXR0aW5ncy9jb25maWciLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHQpfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKG4pe2UmJihuLmVycm9yPyhlLnRleHRDb250ZW50PW4uZXJyb3IsZS5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIik6KGUudGV4dENvbnRlbnQ9Ilx1NjYzRVx1NzkzQVx1OEJCRVx1N0Y2RVx1NURGMlx1NEZERFx1NUI1OCIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiKSxlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSwhbi5lcnJvciYmci5jb25maWcmJihyLmNvbmZpZy5jYXJkRGVmYXVsdHM9dC5jYXJkRGVmYXVsdHMpfSkuY2F0Y2goZnVuY3Rpb24oKXtlJiYoZS50ZXh0Q29udGVudD0iXHU0RkREXHU1QjU4XHU1OTMxXHU4RDI1XHUzMDAyIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfSl9ZnVuY3Rpb24gSG0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1rZXktZmlsZSIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQtY2VydC1maWxlIiksbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY2VydC1tZXNzYWdlIik7aWYobiYmKG4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbi50ZXh0Q29udGVudD0iIiksIWV8fCFlLmZpbGVzfHwhZS5maWxlc1swXXx8IXR8fCF0LmZpbGVzfHwhdC5maWxlc1swXSl7biYmKG4udGV4dENvbnRlbnQ9Ilx1OEJGN1x1OTAwOVx1NjJFOVx1NzlDMVx1OTRBNVx1NTQ4Q1x1OEJDMVx1NEU2Nlx1NjU4N1x1NEVGNlx1MzAwMiIsbi5zdHlsZS5jb2xvcj0idmFyKC0tZXJyb3IpIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKTtyZXR1cm59dmFyIGk9bmV3IEZpbGVSZWFkZXI7aS5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgYT1pLnJlc3VsdCx1PW5ldyBGaWxlUmVhZGVyO3Uub25sb2FkPWZ1bmN0aW9uKCl7dmFyIHM9dS5yZXN1bHQ7ZmV0Y2goIi9hcGkvc2V0dGluZ3MvdXBsb2FkLWNlcnQiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIixib2R5OkpTT04uc3RyaW5naWZ5KHtrZXk6YSxjZXJ0OnN9KX0pLnRoZW4oZnVuY3Rpb24obyl7cmV0dXJuIG8uanNvbigpfSkudGhlbihmdW5jdGlvbihvKXtpZihuKXtpZihvLmVycm9yKW4udGV4dENvbnRlbnQ9by5lcnJvcixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiO2Vsc2V7bi50ZXh0Q29udGVudD0iXHU4QkMxXHU0RTY2XHU1REYyXHU0RTBBXHU0RjIwXHVGRjBDXHU5MUNEXHU1NDJGXHU1NDBFXHU3NTFGXHU2NTQ4XHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSI7dmFyIGw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNlcnQtc3RhdHVzIik7bCYmKGwudGV4dENvbnRlbnQ9Ilx1NURGMlx1NUI4OVx1ODhDNSBTU0wgXHU4QkMxXHU0RTY2IixsLnN0eWxlLmNvbG9yPSJ2YXIoLS1zdWNjZXNzKSIpfW4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9fSkuY2F0Y2goZnVuY3Rpb24oKXtuJiYobi50ZXh0Q29udGVudD0iXHU0RTBBXHU0RjIwXHU1OTMxXHU4RDI1XHUzMDAyIixuLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLG4uY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpfSl9LHUucmVhZEFzVGV4dCh0LmZpbGVzWzBdKX0saS5yZWFkQXNUZXh0KGUuZmlsZXNbMF0pfWZ1bmN0aW9uIGhsKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNldHRpbmdzLWxhdGVzdC12ZXJzaW9uIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tdXBkYXRlLWJ1dHRvbiIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInVwZGF0ZS1tZXNzYWdlIik7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NjhDMFx1NjdFNVx1NEUyRC4uLiIpLG4mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksdCYmdC5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxmZXRjaCgiL2FwaS9jaGVjay11cGRhdGUiLHtjcmVkZW50aWFsczoic2FtZS1vcmlnaW4ifSkudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gaS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKGkpe2lmKGkuZXJyb3Ipe2UmJihlLnRleHRDb250ZW50PSJcdTY4QzBcdTY3RTVcdTU5MzFcdThEMjUiKTtyZXR1cm59dmFyIGE9aS5jaGFubmVsPT09ImJldGEiO2lmKGUmJihlLnRleHRDb250ZW50PWkubGF0ZXN0fHwoYT8iYmV0YSBcdTY3MkFcdTUzRDFcdTVFMDMiOiItIikpLCFpLmxhdGVzdCl7biYmKG4udGV4dENvbnRlbnQ9YT8iXHU2NUUwXHU2Q0Q1XHU4QkZCXHU1M0Q2IG5wbSBiZXRhIFx1NzI0OFx1NjcyQ1x1MzAwMiI6Ilx1NjVFMFx1NkNENVx1OEZERVx1NjNBNVx1NTIzMCBucG0gcmVnaXN0cnlcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk7cmV0dXJufWkudXBkYXRlQXZhaWxhYmxlJiZ0JiYodC50ZXh0Q29udGVudD1hPyJcdTY2RjRcdTY1QjBcdTUyMzAgQmV0YSI6Ilx1NjZGNFx1NjVCMFx1NTIzMFx1NjcwMFx1NjVCMFx1NzI0OCIsdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksIWkudXBkYXRlQXZhaWxhYmxlJiZuJiYobi50ZXh0Q29udGVudD1hPyJcdTVERjJcdTY2MkZcdTY3MDBcdTY1QjAgQmV0YSBcdTcyNDhcdTY3MkNcdTMwMDIiOiJcdTVERjJcdTY2MkZcdTY3MDBcdTY1QjBcdTcyNDhcdTY3MkNcdTMwMDIiLG4uc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIixuLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKX0pLmNhdGNoKGZ1bmN0aW9uKCl7ZSYmKGUudGV4dENvbnRlbnQ9Ilx1NjhDMFx1NjdFNVx1NTkzMVx1OEQyNSIpfSl9ZnVuY3Rpb24gX20oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidXBkYXRlLW1lc3NhZ2UiKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby11cGRhdGUtYnV0dG9uIik7dCYmKHQuZGlzYWJsZWQ9ITAsZSYmKGUudGV4dENvbnRlbnQ9Ilx1NkI2M1x1NTcyOFx1NjZGNFx1NjVCMFx1RkYwQ1x1OEJGN1x1N0EwRFx1NTAxOS4uLiIsZS5zdHlsZS5jb2xvcj0idmFyKC0tdGV4dC1zZWNvbmRhcnkpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSxmZXRjaCgiL2FwaS91cGRhdGUiLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIn0sY3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihmdW5jdGlvbihuKXtpZihuLmVycm9yKXtlJiYoZS50ZXh0Q29udGVudD1uLmVycm9yLGUuc3R5bGUuY29sb3I9InZhcigtLWVycm9yKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksdC5kaXNhYmxlZD0hMTtyZXR1cm59aWYoZSYmKGUudGV4dENvbnRlbnQ9KG4ubWVzc2FnZXx8Ilx1NjZGNFx1NjVCMFx1NUI4Q1x1NjIxMCIpKyJcdUZGMENcdTZCNjNcdTU3MjhcdTkxQ0RcdTU0MkZcdTY3MERcdTUyQTFcdTIwMjYiLGUuc3R5bGUuY29sb3I9InZhcigtLXN1Y2Nlc3MpIixlLmNsYXNzTGlzdC5yZW1vdmUoImhpZGRlbiIpKSx0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4uZGV0YWNoZWRVcGRhdGUpbG4oKTtlbHNlIGlmKG4ucmVzdGFydFJlcXVpcmVkIT09ITEpSnMobnVsbCxlKTtlbHNle3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkby1yZXN0YXJ0LWJ1dHRvbiIpO2kmJmkuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIil9fSkuY2F0Y2goZnVuY3Rpb24oKXtlJiYoZS50ZXh0Q29udGVudD0iXHU2NkY0XHU2NUIwXHU1OTMxXHU4RDI1XHUzMDAyIixlLnN0eWxlLmNvbG9yPSJ2YXIoLS1lcnJvcikiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLHQuZGlzYWJsZWQ9ITF9KSl9ZnVuY3Rpb24gTm0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZG8tcmVzdGFydC1idXR0b24iKSx0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ1cGRhdGUtbWVzc2FnZSIpO0pzKGUsdCl9ZnVuY3Rpb24gam0oKXtmZXRjaCgiL2FwaS9hdXRvLXVwZGF0ZSIse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGUpe3JldHVybiBlLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oZSl7aWYoZS5hcGspcmV0dXJuIGZldGNoKCIvYXBpL2FuZHJvaWQtYXBrLXVwZGF0ZT9jdXJyZW50VmVyc2lvbj0iK2VuY29kZVVSSUNvbXBvbmVudChTbikse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7aWYoISghdC51cGRhdGVBdmFpbGFibGV8fCF0LmRvd25sb2FkVXJsKSl0cnl7V2FuZE5hdGl2ZS5kb3dubG9hZFVwZGF0ZSh0LmRvd25sb2FkVXJsLHQuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5hcGsiLHQuc291cmNlfHwibG9jYWwiKX1jYXRjaHt9fSl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIFJtKCl7b24mJmZldGNoKCIvYXBpL2F1dG8tdXBkYXRlIix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oZSl7cmV0dXJuIGUuanNvbigpfSkudGhlbihmdW5jdGlvbihlKXtpZihlLmRtZylyZXR1cm4gZmV0Y2goIi9hcGkvbWFjb3MtZG1nLXVwZGF0ZT9jdXJyZW50VmVyc2lvbj0iK2VuY29kZVVSSUNvbXBvbmVudChvbikse2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7aWYoISghdC51cGRhdGVBdmFpbGFibGV8fCF0LmRvd25sb2FkVXJsKSl0cnl7V2FuZE5hdGl2ZS5kb3dubG9hZFVwZGF0ZSh0LmRvd25sb2FkVXJsLHQuZmlsZU5hbWV8fCJ3YW5kLXVwZGF0ZS5kbWciLHQuc291cmNlfHwibG9jYWwiKX1jYXRjaHt9fSl9KS5jYXRjaChmdW5jdGlvbigpe30pfWZ1bmN0aW9uIGx1KGUsdCl7dmFyIG49e307bltlXT10LGZldGNoKCIvYXBpL2F1dG8tdXBkYXRlIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShuKX0pLnRoZW4oZnVuY3Rpb24oaSl7cmV0dXJuIGkuanNvbigpfSkudGhlbihmdW5jdGlvbihpKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYXV0by11cGRhdGUtd2ViLXRvZ2dsZSIpLHU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImF1dG8tdXBkYXRlLWFway10b2dnbGUiKSxzPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS1kbWctdG9nZ2xlIik7YSYmKGEuY2hlY2tlZD0hIWkud2ViKSx1JiYodS5jaGVja2VkPSEhaS5hcGspLHMmJihzLmNoZWNrZWQ9ISFpLmRtZyl9KS5jYXRjaChmdW5jdGlvbigpe3ZhciBpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdXRvLXVwZGF0ZS0iK2UrIi10b2dnbGUiKTtpJiYoaS5jaGVja2VkPSF0KX0pfWZ1bmN0aW9uIFdtKGUpe2ZldGNoKCIvYXBpL3VwZGF0ZS1jaGFubmVsIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeSh7Y2hhbm5lbDplfSl9KS50aGVuKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmpzb24oKX0pLnRoZW4oZnVuY3Rpb24odCl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJldGEtY2hhbm5lbC10b2dnbGUiKTtuJiYobi5jaGVja2VkPXQuY2hhbm5lbD09PSJiZXRhIiksaGwoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJldGEtY2hhbm5lbC10b2dnbGUiKTt0JiYodC5jaGVja2VkPWUhPT0iYmV0YSIpfSl9ZnVuY3Rpb24geWwoZSl7Zm9yKHZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb24iKSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpPXRbbl0uZ2V0QXR0cmlidXRlKCJkYXRhLWljb24iKT09PWU7dFtuXS5jbGFzc0xpc3QudG9nZ2xlKCJzZWxlY3RlZCIsaSksdFtuXS5zZXRBdHRyaWJ1dGUoImFyaWEtcHJlc3NlZCIsaT8idHJ1ZSI6ImZhbHNlIil9fWZ1bmN0aW9uIHluKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi1wZXJtaXNzaW9uLXN0YXR1cyIpLHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi1yZXF1ZXN0LWJ0biIpLG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi1yZXNldC1idG4iKSxpPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIik7aWYoZSl7dmFyIGE9b2koKTtpZihhPT09bnVsbCl7aWYodHlwZW9mIE5vdGlmaWNhdGlvbj4idSIpe2UudGV4dENvbnRlbnQ9Ilx1NEUwRFx1NjUyRlx1NjMwMSIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZmctbXV0ZWQpIix0JiZ0LmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLG4mJm4uY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7cmV0dXJufWE9Tm90aWZpY2F0aW9uLnBlcm1pc3Npb259YT09PSJncmFudGVkIj8oZS50ZXh0Q29udGVudD0iXHU1REYyXHU2Mzg4XHU2NzQzIFx1MjcxMyIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbiYmbi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSk6YT09PSJkZW5pZWQiPyhlLnRleHRDb250ZW50PSJcdTVERjJcdTYyRDJcdTdFREQiLGUuc3R5bGUuY29sb3I9InZhcigtLWRhbmdlcikiLHQmJnQuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksbiYmbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSk6KGUudGV4dENvbnRlbnQ9Ilx1NjcyQVx1NjM4OFx1Njc0MyIsZS5zdHlsZS5jb2xvcj0idmFyKC0td2FybmluZykiLHQmJnQuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIiksbiYmbi5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSl9fWZ1bmN0aW9uIHptKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LW1lc3NhZ2UiKTtpZihqZSl7d2luZG93Ll9vbk5hdGl2ZVBlcm1pc3Npb25SZXN1bHQ9ZnVuY3Rpb24odCl7eW4oKSxlJiYodD09PSJncmFudGVkIj8oZS50ZXh0Q29udGVudD0iXHUyNzEzIFx1NURGMlx1NjM4OFx1Njc0MyIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiKTooZS50ZXh0Q29udGVudD0iXHUyNzE3IFx1NjcyQVx1NjM4OFx1Njc0M1x1RkYwQ1x1OEJGN1x1NTcyOFx1N0NGQlx1N0VERlx1OEJCRVx1N0Y2RVx1NEUyRFx1NUYwMFx1NTQyRiBXYW5kIFx1NzY4NFx1OTAxQVx1NzdFNVx1Njc0M1x1OTY1MCIsZS5zdHlsZS5jb2xvcj0idmFyKC0tZGFuZ2VyKSIpLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpLGRlbGV0ZSB3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdH07dHJ5e1dhbmROYXRpdmUucmVxdWVzdFBlcm1pc3Npb24oKX1jYXRjaHt9cmV0dXJufXR5cGVvZiBOb3RpZmljYXRpb24+InUifHxOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKS50aGVuKGZ1bmN0aW9uKHQpe2lmKHluKCksdD09PSJncmFudGVkIillJiYoZS50ZXh0Q29udGVudD0iXHUyNzEzIFx1NURGMlx1NjM4OFx1Njc0MyIsZS5zdHlsZS5jb2xvcj0idmFyKC0tc3VjY2VzcykiLGUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIikpO2Vsc2UgaWYodD09PSJkZW5pZWQiJiZlKXt2YXIgbj1sb2NhdGlvbi5vcmlnaW47ZS5pbm5lckhUTUw9J1x1NkQ0Rlx1ODlDOFx1NTY2OFx1NURGMlx1NjJFNlx1NjIyQVx1NjM4OFx1Njc0M1x1NUYzOVx1N0E5N1x1RkYwQ1x1OEJGN1x1NjI0Qlx1NTJBOFx1OTFDRFx1N0Y2RVx1RkYxQTxicj48c3BhbiBzdHlsZT0iZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDttYXJnaW46NHB4IDAiPlx1MjQ2MCBcdTcwQjlcdTUxRkJcdTU3MzBcdTU3NDBcdTY4MEZcdTVERTZcdTRGQTdcdTc2ODQgPHNwYW4gc3R5bGU9ImRpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Zm9udC1zaXplOjExcHg7dmVydGljYWwtYWxpZ246bWlkZGxlIj5pPC9zcGFuPiBcdTYyMTZcdTk1MDFcdTU2RkVcdTY4MDc8L3NwYW4+PGJyPlx1MjQ2MSBcdTYyN0VcdTUyMzBcdTMwMENcdTkwMUFcdTc3RTVcdTMwMERcdTIxOTIgXHU2NTM5XHU0RTNBXHUzMDBDXHU1MTQxXHU4QkI4XHUzMDBEPGJyPlx1MjQ2MiBcdTUyMzdcdTY1QjBcdTk4NzVcdTk3NjJcdTUzNzNcdTUzRUYnLGUuc3R5bGUuY29sb3I9InZhcigtLWZnLW11dGVkKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19KX1mdW5jdGlvbiBibCgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iKTtlJiYoZS5kaXNhYmxlZD0hMSxlLnRleHRDb250ZW50PSIxMCBcdTc5RDJcdTU0MEVcdTUzRDFcdTkwMDEiKX1mdW5jdGlvbiBVbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1tZXNzYWdlIik7ci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXImJihjbGVhclRpbWVvdXQoci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXIpLHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyPW51bGwpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJub3RpZmljYXRpb24tdGVzdC1kZWxheS1idG4iKTt0JiYodC5kaXNhYmxlZD0hMCx0LnRleHRDb250ZW50PSJcdTVERjJcdTVCODlcdTYzOTJcdUZGMDgxMHNcdUZGMDkiKSxlJiYoZS5pbm5lckhUTUw9Ilx1NURGMlx1NUI4OVx1NjM5MiAxMCBcdTc5RDJcdTU0MEVcdTUzRDFcdTkwMDFcdTZENEJcdThCRDVcdTkwMUFcdTc3RTVcdUZGMENcdThCRjdcdTUyMDdcdTUyMzBcdTU0MEVcdTUzRjBcdTdCNDlcdTVGODVcdTMwMDIiLGUuc3R5bGUuY29sb3I9InZhcigtLXRleHQtc2Vjb25kYXJ5KSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSksci5kZWxheWVkTm90aWZpY2F0aW9uVGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3IuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyPW51bGwsYmwoKSxFbCgpfSwxZTQpfWZ1bmN0aW9uIEVsKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm5vdGlmaWNhdGlvbi10ZXN0LW1lc3NhZ2UiKSx0PVtdO3IuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyJiYoY2xlYXJUaW1lb3V0KHIuZGVsYXllZE5vdGlmaWNhdGlvblRpbWVyKSxyLmRlbGF5ZWROb3RpZmljYXRpb25UaW1lcj1udWxsLGJsKCkpO3ZhciBuPUxmKCk7dC5wdXNoKG4/Ilx1MjcxMyBcdTYzRDBcdTc5M0FcdTk3RjMiOiJcdTI3MTcgXHU2M0QwXHU3OTNBXHU5N0YzXHVGRjA4XHU2NUUwXHU2Q0Q1XHU2NEFEXHU2NTNFXHVGRjA5Iik7dmFyIGk9ci5ub3RpZkJ1YmJsZTtpZihoYSh7dGl0bGU6Ilx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNSIsYm9keToiXHU4RkQ5XHU2NjJGXHU0RTAwXHU2NzYxXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1XHUzMDAyIix0eXBlOiJpbmZvIixpY29uOiJcdTI2NkEiLGR1cmF0aW9uOjVlMyxwbGF5U291bmQ6ITF9KSx0LnB1c2goaT8iXHUyNzEzIFx1NUU5NFx1NzUyOFx1NTE4NVx1NkMxNFx1NkNFMSI6Ilx1MjAxMyBcdTVFOTRcdTc1MjhcdTUxODVcdTZDMTRcdTZDRTFcdUZGMDhcdTVERjJcdTUxNzNcdTk1RURcdUZGMDkiKSxqZSl7dmFyIGE9b2koKTtpZihhPT09ImdyYW50ZWQiKXRyeXtXYW5kTmF0aXZlLnNlbmROb3RpZmljYXRpb24oIldhbmQgXHU2RDRCXHU4QkQ1XHU5MDFBXHU3N0U1IiwiXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHU1REYyXHU2QjYzXHU1RTM4XHU1REU1XHU0RjVDXHUzMDAyIiwid2FuZC10ZXN0IiksdC5wdXNoKCJcdTI3MTMgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1Iil9Y2F0Y2h7dC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1M0QxXHU5MDAxXHU1OTMxXHU4RDI1XHVGRjA5Iil9ZWxzZSBpZihhPT09ImRlbmllZCIpdC5wdXNoKCJcdTI3MTcgXHU3Q0ZCXHU3RURGXHU5MDFBXHU3N0U1XHVGRjA4XHU1REYyXHU2MkQyXHU3RUREXHVGRjBDXHU4QkY3XHU1NzI4XHU3Q0ZCXHU3RURGXHU4QkJFXHU3RjZFXHU0RTJEXHU1RjAwXHU1NDJGXHVGRjA5Iik7ZWxzZXt3aW5kb3cuX29uTmF0aXZlUGVybWlzc2lvblJlc3VsdD1mdW5jdGlvbihvKXtpZih5bigpLG89PT0iZ3JhbnRlZCIpdHJ5e1dhbmROYXRpdmUuc2VuZE5vdGlmaWNhdGlvbigiV2FuZCBcdTZENEJcdThCRDVcdTkwMUFcdTc3RTUiLCJcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdTVERjJcdTZCNjNcdTVFMzhcdTVERTVcdTRGNUNcdTMwMDIiLCJ3YW5kLXRlc3QiKSx0LnB1c2goIlx1MjcxMyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTVERjJcdTYzODhcdTY3NDNcdUZGMDkiKX1jYXRjaHt0LnB1c2goIlx1MjcxNyBcdTdDRkJcdTdFREZcdTkwMUFcdTc3RTVcdUZGMDhcdTUzRDFcdTkwMDFcdTU5MzFcdThEMjVcdUZGMDkiKX1lbHNlIHQucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NjcyQVx1NjM4OFx1Njc0M1x1RkYwOSIpO2VyKGUsdCksZGVsZXRlIHdpbmRvdy5fb25OYXRpdmVQZXJtaXNzaW9uUmVzdWx0fTt0cnl7V2FuZE5hdGl2ZS5yZXF1ZXN0UGVybWlzc2lvbigpfWNhdGNoe31yZXR1cm59ZXIoZSx0KTtyZXR1cm59aWYodHlwZW9mIE5vdGlmaWNhdGlvbj4idSIpe3QucHVzaCgiXHUyMDEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NEUwRFx1NjUyRlx1NjMwMVx1RkYwOSIpLGVyKGUsdCk7cmV0dXJufXZhciB1PU5vdGlmaWNhdGlvbi5wZXJtaXNzaW9uO2lmKHU9PT0iZ3JhbnRlZCIpe3RyeXt2YXIgcz1uZXcgTm90aWZpY2F0aW9uKCJXYW5kIFx1NkQ0Qlx1OEJENVx1OTAxQVx1NzdFNSIse2JvZHk6Ilx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1NURGMlx1NkI2M1x1NUUzOFx1NURFNVx1NEY1Q1x1MzAwMiIsaWNvbjoiL2Zhdmljb24uaWNvIix0YWc6IndhbmQtdGVzdCJ9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cy5jbG9zZSgpfSw1ZTMpLHQucHVzaCgiXHUyNzEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNSIpfWNhdGNoe3QucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NTNEMVx1OTAwMVx1NTkzMVx1OEQyNVx1RkYwQ1x1NTNFRlx1ODBGRFx1OTcwMFx1ODk4MSBIVFRQU1x1RkYwOSIpfWVyKGUsdCl9ZWxzZSB1PT09ImRlbmllZCI/KHQucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NURGMlx1NjJEMlx1N0VERFx1RkYwOSIpLGVyKGUsdCkpOk5vdGlmaWNhdGlvbi5yZXF1ZXN0UGVybWlzc2lvbigpLnRoZW4oZnVuY3Rpb24obyl7eW4oKSxvPT09ImdyYW50ZWQiP3QucHVzaCgiXHUyNzEzIFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NURGMlx1NjM4OFx1Njc0M1x1RkYwOSIpOnQucHVzaCgiXHUyNzE3IFx1N0NGQlx1N0VERlx1OTAxQVx1NzdFNVx1RkYwOFx1NjcyQVx1NjM4OFx1Njc0M1x1RkYwOSIpLGVyKGUsdCl9KX1mdW5jdGlvbiBlcihlLHQpe2lmKGUpe2UuaW5uZXJIVE1MPXQubWFwKGZ1bmN0aW9uKGkpe3JldHVybiBwKGkpfSkuam9pbigiPGJyPiIpO3ZhciBuPXQuZXZlcnkoZnVuY3Rpb24oaSl7cmV0dXJuIGkuaW5kZXhPZigiXHUyNzEzIik9PT0wfHxpLmluZGV4T2YoIlx1MjAxMyIpPT09MH0pO2Uuc3R5bGUuY29sb3I9bj8idmFyKC0tc3VjY2VzcykiOiJ2YXIoLS13YXJuaW5nKSIsZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX19ZnVuY3Rpb24gZ3QoZSl7aWYoIWV8fHR5cGVvZiBlIT0ib2JqZWN0Inx8IXIudGVybWluYWwpcmV0dXJuIGU7dHJ5e3R5cGVvZiByLnRlcm1pbmFsLnJlbWVhc3VyZT09ImZ1bmN0aW9uIiYmci50ZXJtaW5hbC5yZW1lYXN1cmUoKX1jYXRjaHt9dmFyIHQ9ci50ZXJtaW5hbC5jb2xzLG49ci50ZXJtaW5hbC5yb3dzO3JldHVybiB0eXBlb2YgdD09Im51bWJlciImJnR5cGVvZiBuPT0ibnVtYmVyIiYmTnVtYmVyLmlzRmluaXRlKHQpJiZOdW1iZXIuaXNGaW5pdGUobikmJnQ+MCYmbj4wJiYoZS5jb2xzPXQsZS5yb3dzPW4pLGV9ZnVuY3Rpb24gRmwoKXtyZXR1cm4gci50ZXJtaW5hbCYmci50ZXJtaW5hbC5jb2xzP1Byb21pc2UucmVzb2x2ZSgpOm5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe3ZhciB0PSExLG49ZnVuY3Rpb24oKXt0fHwodD0hMCxlKCkpfSxpPXNldFRpbWVvdXQobiwyZTMpO3RyeXtWbigpfWNhdGNoe31yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24oKXtyLnRlcm1pbmFsJiZyLnRlcm1pbmFsLmNvbHMmJihjbGVhclRpbWVvdXQoaSksbigpKX0pfSl9KX1mdW5jdGlvbiB3bCgpe3ZhciBlPXR0KCksdD1ldCgpLG49eHQoZSxyLmNvbmZpZyYmci5jb25maWcuZGVmYXVsdE1vZGU/ci5jb25maWcuZGVmYXVsdE1vZGU6ImRlZmF1bHQiKTtyLnByZWZlcnJlZENvbW1hbmQ9ZSxyLmNoYXRNb2RlPXh0KGUsci5jaGF0TW9kZSksRmwoKS50aGVuKGZ1bmN0aW9uKCl7cmV0dXJuIGZldGNoKCIvYXBpL2NvbW1hbmRzIix7bWV0aG9kOiJQT1NUIixoZWFkZXJzOnsiQ29udGVudC1UeXBlIjoiYXBwbGljYXRpb24vanNvbiJ9LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsYm9keTpKU09OLnN0cmluZ2lmeShndCh7Y29tbWFuZDplLHByb3ZpZGVyOmUsY3dkOnQsbW9kZTpufSkpfSl9KS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBpLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oaSl7aWYoaS5lcnJvcil7ayhpLmVycm9yLCJlcnJvciIpO3JldHVybn1yZXR1cm4gci5zZWxlY3RlZElkPWkuaWQsd2UoKSxyLmRyYWZ0c1tpLmlkXT0iIixrdCgpLGp0KCl9KS50aGVuKGZ1bmN0aW9uKCl7TnQoITApfSkuY2F0Y2goZnVuY3Rpb24oKXtrKCJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQThcdTRGMUFcdThCRERcdTMwMDIiLCJlcnJvciIpfSl9dmFyIHFyPSExO2Z1bmN0aW9uIFZtKCl7aWYoIXFyKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibW9kYWwtZXJyb3IiKSxuPXR0KCksaT1yLnNlc3Npb25DcmVhdGVLaW5kfHwic3RydWN0dXJlZCIsYT1yLnNlc3Npb25DcmVhdGVXb3JrdHJlZT09PSEwO3NpKHQpO3ZhciB1PWV0KCkscz0oZT9lLnZhbHVlLnRyaW0oKToiIil8fHUsbz14dChuLHIubW9kZVZhbHVlKTtpZihpPT09InN0cnVjdHVyZWQiKXtLbShzLG8sYSx0KTtyZXR1cm59Sm0obixzLG8sYSx0KX19ZnVuY3Rpb24gS20oZSx0LG4saSl7dmFyIGE9ci5zZXNzaW9uVG9vbD09PSJjb2RleCI/ImNvZGV4IjoiY2xhdWRlIjtyZXR1cm4gcXI9ITAsci5tb2RlVmFsdWU9dCxyLmNoYXRNb2RlPXQsci5zZXNzaW9uVG9vbD1hLHIucHJlZmVycmVkQ29tbWFuZD1hLERpKCksJG4obXQoKSksZGwodm9pZCAwLGUsdCxuKS50aGVuKGZ1bmN0aW9uKHUpe3JldHVybiBYdChlKSxnbigpLHp0KCksdX0pLnRoZW4oZnVuY3Rpb24oKXtOdCghMCl9KS5jYXRjaChmdW5jdGlvbih1KXtxZShpLHUmJnUubWVzc2FnZXx8Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOFx1N0VEM1x1Njc4NFx1NTMxNlx1NEYxQVx1OEJERFx1RkYwQ1x1OEJGN1x1Nzg2RVx1OEJBNCBDbGF1ZGUgXHU1REYyXHU2QjYzXHU3ODZFXHU1Qjg5XHU4OEM1XHUzMDAyIil9KS5maW5hbGx5KGZ1bmN0aW9uKCl7cXI9ITF9KX1mdW5jdGlvbiBKbShlLHQsbixpLGEpe3FyPSEwLHIubW9kZVZhbHVlPW4sci5jaGF0TW9kZT1uLHIuc2Vzc2lvblRvb2w9ZSxyLnByZWZlcnJlZENvbW1hbmQ9ZSxEaSgpLEZsKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBmZXRjaCgiL2FwaS9jb21tYW5kcyIse21ldGhvZDoiUE9TVCIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxjcmVkZW50aWFsczoic2FtZS1vcmlnaW4iLGJvZHk6SlNPTi5zdHJpbmdpZnkoZ3Qoe2NvbW1hbmQ6ZSxwcm92aWRlcjplLGN3ZDp0LG1vZGU6bix3b3JrdHJlZUVuYWJsZWQ6aX0pKX0pfSkudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdS5qc29uKCl9KS50aGVuKGZ1bmN0aW9uKHUpe2lmKHUuZXJyb3Ipe3FlKGEsdS5lcnJvcik7cmV0dXJufXJldHVybiByLnNlbGVjdGVkSWQ9dS5pZCx3ZSgpLFh0KHQpLHIuZHJhZnRzW3UuaWRdPSIiLGt0KCksZ24oKSx6dCgpLGp0KCl9KS50aGVuKGZ1bmN0aW9uKCl7ci5zZWxlY3RlZElkP1d0KHIuc2VsZWN0ZWRJZCk6TnQoITApfSkuY2F0Y2goZnVuY3Rpb24oKXtxZShhLGU9PT0iY29kZXgiPyJcdTY1RTBcdTZDRDVcdTU0MkZcdTUyQTggQ29kZXggXHU0RjFBXHU4QkREXHVGRjBDXHU4QkY3XHU3ODZFXHU4QkE0IGNvZGV4IFx1NURGMlx1NkI2M1x1Nzg2RVx1NUI4OVx1ODhDNVx1NUU3Nlx1NTNFRlx1NTcyOFx1N0VDOFx1N0FFRlx1NEUyRFx1NjI2N1x1ODg0Q1x1MzAwMiI6Ilx1NjVFMFx1NkNENVx1NTQyRlx1NTJBOCBDbGF1ZGUgXHU0RjFBXHU4QkREXHVGRjBDXHU4QkY3XHU3ODZFXHU4QkE0IENsYXVkZSBcdTVERjJcdTZCNjNcdTc4NkVcdTVCODlcdTg4QzVcdTMwMDIiKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtxcj0hMX0pfWZ1bmN0aW9uIEdtKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkIik7ZSYmKGUuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLENsKSxlLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGZ1bmN0aW9uKHQpeyh0LmtleT09PSJFbnRlciJ8fHQua2V5PT09IiAiKSYmKHQucHJldmVudERlZmF1bHQoKSxDbCgpKX0pLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbih0KXt2YXIgbj1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtZHJvcGRvd24iKTtpZighKCFufHxuLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIikpJiYhdC50YXJnZXQuY2xvc2VzdCgiLmJsYW5rLWNoYXQtY3dkLXdyYXAiKSl7bi5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKTt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtYXJyb3ciKTtpJiYoaS50ZXh0Q29udGVudD0iXHUyNUJDIil9fSkpfWZ1bmN0aW9uIENsKCl7dmFyIGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLWRyb3Bkb3duIiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtYXJyb3ciKTtpZihlKXt2YXIgbj1lLmNsYXNzTGlzdC5jb250YWlucygiaGlkZGVuIik7bj8oWW0oZSksZS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKSx0JiYodC50ZXh0Q29udGVudD0iXHUyNUIyIikpOihlLmNsYXNzTGlzdC5hZGQoImhpZGRlbiIpLHQmJih0LnRleHRDb250ZW50PSJcdTI1QkMiKSl9fWZ1bmN0aW9uIFltKGUpe3ZhciB0PWFuKCk7ZS5pbm5lckhUTUw9JzxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWxvYWRpbmciPlx1NTJBMFx1OEY3RFx1NEUyRC4uLjwvZGl2PicsbGEoZnVuY3Rpb24obil7dmFyIGk9IiIsYT1yLndvcmtpbmdEaXJ8fHQ7aWYoaSs9JzxkaXYgY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0nKyhhPT09dD8iIGFjdGl2ZSI6IiIpKyciIGRhdGEtcGF0aD0iJytwKHQpKyciPjxzcGFuIGNsYXNzPSJibGFuay1jaGF0LWN3ZC1pdGVtLWxhYmVsIj5cdTlFRDhcdThCQTQ8L3NwYW4+PHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0tcGF0aCI+JytwKHQpKyI8L3NwYW4+PC9kaXY+IixuLmxlbmd0aCl7dmFyIHU9e307dVt0XT0hMCxuLmZvckVhY2goZnVuY3Rpb24ocyl7dVtzLnBhdGhdfHwodVtzLnBhdGhdPSEwLGkrPSc8ZGl2IGNsYXNzPSJibGFuay1jaGF0LWN3ZC1pdGVtJysoYT09PXMucGF0aD8iIGFjdGl2ZSI6IiIpKyciIGRhdGEtcGF0aD0iJytwKHMucGF0aCkrJyI+PHNwYW4gY2xhc3M9ImJsYW5rLWNoYXQtY3dkLWl0ZW0tcGF0aCI+JytwKHMucGF0aCkrIjwvc3Bhbj48L2Rpdj4iKX0pfWUuaW5uZXJIVE1MPWksZS5xdWVyeVNlbGVjdG9yQWxsKCIuYmxhbmstY2hhdC1jd2QtaXRlbSIpLmZvckVhY2goZnVuY3Rpb24ocyl7cy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24obyl7by5zdG9wUHJvcGFnYXRpb24oKTt2YXIgbD1zLmRhdGFzZXQucGF0aDtyLndvcmtpbmdEaXI9bDt0cnl7bG9jYWxTdG9yYWdlLnNldEl0ZW0oIndhbmQtd29ya2luZy1kaXIiLGwpfWNhdGNoe312YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmxhbmstY2hhdC1jd2QtcGF0aCIpO2MmJihjLnRleHRDb250ZW50PWwpLGUuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIik7dmFyIGY9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsYW5rLWNoYXQtY3dkLWFycm93Iik7ZiYmKGYudGV4dENvbnRlbnQ9Ilx1MjVCQyIpO3ZhciBkPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmb2xkZXItcGlja2VyLWlucHV0Iik7ZCYmKGQudmFsdWU9bCl9KX0pfSl9ZnVuY3Rpb24gUW0oKXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVjZW50LXBhdGhzLWJ1YmJsZXMiKTtlJiZsYShmdW5jdGlvbih0KXtpZighdC5sZW5ndGgpe2UuaW5uZXJIVE1MPSIiO3JldHVybn1lLmlubmVySFRNTD10Lm1hcChmdW5jdGlvbihuKXtyZXR1cm4nPGJ1dHRvbiBjbGFzcz0icmVjZW50LXBhdGgtYnViYmxlIiBkYXRhLXBhdGg9IicrcChuLnBhdGgpKyciIHRpdGxlPSInK3Aobi5wYXRoKSsnIj4nK3Aobi5uYW1lKSsiPC9idXR0b24+In0pLmpvaW4oIiIpLGUucXVlcnlTZWxlY3RvckFsbCgiLnJlY2VudC1wYXRoLWJ1YmJsZSIpLmZvckVhY2goZnVuY3Rpb24obil7bi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgaT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7aSYmKGkudmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiLHIuY3dkVmFsdWU9bi5kYXRhc2V0LnBhdGh8fCIiKX0pfSl9KX1mdW5jdGlvbiBCbCgpe3Iuc3VnZ2VzdGlvblRpbWVyJiZjbGVhclRpbWVvdXQoci5zdWdnZXN0aW9uVGltZXIpLHIuc3VnZ2VzdGlvblRpbWVyPXNldFRpbWVvdXQoJG0sMTIwKX1mdW5jdGlvbiAkbSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXNzaW9uLW1vZGFsIik7aWYoZSYmZS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXt0cigpO3JldHVybn12YXIgdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY3dkIik7dCYmZmV0Y2goIi9hcGkvcGF0aC1zdWdnZXN0aW9ucz9xPSIrZW5jb2RlVVJJQ29tcG9uZW50KHQudmFsdWUudHJpbSgpKSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24obil7cmV0dXJuIG4uanNvbigpfSkudGhlbihYbSkuY2F0Y2godHIpfWZ1bmN0aW9uIFhtKGUpe3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2Qtc3VnZ2VzdGlvbnMiKTtpZighdHx8IWUubGVuZ3RoKXt0cigpO3JldHVybn10LmlubmVySFRNTD1lLm1hcChmdW5jdGlvbihuKXtyZXR1cm4nPGJ1dHRvbiBjbGFzcz0ic3VnZ2VzdGlvbi1pdGVtIiBkYXRhLXBhdGg9IicrcChuLnBhdGgpKyciPjxzdHJvbmc+JytwKG4ubmFtZSkrIjwvc3Ryb25nPjxzbWFsbD4iK3Aobi5wYXRoKSsiPC9zbWFsbD48L2J1dHRvbj4ifSkuam9pbigiIiksdC5xdWVyeVNlbGVjdG9yQWxsKCIuc3VnZ2VzdGlvbi1pdGVtIikuZm9yRWFjaChmdW5jdGlvbihuKXtuLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2QiKS52YWx1ZT1uLmRhdGFzZXQucGF0aHx8IiIsci5jd2RWYWx1ZT1uLmRhdGFzZXQucGF0aHx8IiIsdHIoKX0pfSksdC5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKX1mdW5jdGlvbiB0cigpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjd2Qtc3VnZ2VzdGlvbnMiKTtlJiYoZS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSxlLmlubmVySFRNTD0iIil9ZnVuY3Rpb24gWm0oZSl7aWYoIWUuaXNDb21wb3Npbmcpe2lmKGxvKGUpKXtUYShlKTtyZXR1cm59aWYoZS5rZXk9PT0iRW50ZXIiKXtpZihlLnNoaWZ0S2V5KXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO2lmKHQpe3ZhciBuPXQuc2VsZWN0aW9uU3RhcnR8fDAsaT10LnZhbHVlLGE9aS5zbGljZSgwLG4pK2AKYCtpLnNsaWNlKG4pO3QudmFsdWU9YSx0LnNlbGVjdGlvblN0YXJ0PW4rMSx0LnNlbGVjdGlvbkVuZD1uKzEsb3QoYSwhMCksSHQodCl9cmV0dXJufWUucHJldmVudERlZmF1bHQoKTt2YXIgdT0hIShlLm1ldGFLZXl8fGUuY3RybEtleSk7ZW8odT97aW50ZXJydXB0OiEwfTp2b2lkIDApO3JldHVybn1pZihlLmtleT09PSJCYWNrc3BhY2UiKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIG09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO20mJm90KG0udmFsdWUsITApfSwwKTtyZXR1cm59aWYoZS5rZXk9PT0iVGFiIil7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZih0KXt2YXIgbj10LnNlbGVjdGlvblN0YXJ0fHwwLGk9dC52YWx1ZSxhPWkuc2xpY2UoMCxuKSsiCSIraS5zbGljZShuKTt0LnZhbHVlPWEsb3QoYSwhMCl9cmV0dXJufWlmKGUua2V5PT09IkVzY2FwZSIpe2UucHJldmVudERlZmF1bHQoKTt2YXIgcz1tdCgpO3VlKHMpP3MmJnMuc3RydWN0dXJlZFN0YXRlJiZzLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmTGEoKTpGdChEcigiZXNjYXBlIiksImVzY2FwZSIpO3JldHVybn1pZigoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImMiKXt2YXIgbz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksbD1vJiZvLnNlbGVjdGlvblN0YXJ0IT09by5zZWxlY3Rpb25FbmR8fHZpKCk7aWYobClyZXR1cm47dmFyIGM9bXQoKTtpZih1ZShjKSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGMmJmMuc3RydWN0dXJlZFN0YXRlJiZjLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCYmTGEoKTtyZXR1cm59ZS5wcmV2ZW50RGVmYXVsdCgpLEZ0KERyKCJjdHJsX2MiKSwiY3RybF9jIik7cmV0dXJufWlmKChlLm1ldGFLZXl8fGUuY3RybEtleSkmJmUua2V5LnRvTG93ZXJDYXNlKCk9PT0iZCIpe3ZhciBmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKSxkPWYmJmYuc2VsZWN0aW9uU3RhcnQhPT1mLnNlbGVjdGlvbkVuZHx8dmkoKTtpZihkKXJldHVybjt2YXIgdj1tdCgpO2lmKHVlKHYpKXtlLnByZXZlbnREZWZhdWx0KCk7cmV0dXJufWUucHJldmVudERlZmF1bHQoKSxGdChEcigiY3RybF9kIiksImN0cmxfZCIpO3JldHVybn1pZigoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImwiKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIGg9bXQoKTtpZih1ZShoKSlyZXR1cm47RnQoRHIoImN0cmxfbCIpLCJjdHJsX2wiKTtyZXR1cm59aWYoISgoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09ImEiKSYmISgoZS5tZXRhS2V5fHxlLmN0cmxLZXkpJiZlLmtleS50b0xvd2VyQ2FzZSgpPT09InYiKSl7aWYoKGUubWV0YUtleXx8ZS5jdHJsS2V5KSYmZS5rZXkudG9Mb3dlckNhc2UoKT09PSJ4Iil7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGc9dCYmdC5zZWxlY3Rpb25TdGFydCE9PXQuc2VsZWN0aW9uRW5kO2lmKGcpcmV0dXJuO2UucHJldmVudERlZmF1bHQoKSxGdCgiGCIsImN0cmxfeCIpO3JldHVybn1lLmtleS5sZW5ndGg9PT0xJiYhZS5jdHJsS2V5JiYhZS5tZXRhS2V5JiYhZS5hbHRLZXkmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgbT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94Iik7bSYmb3QobS52YWx1ZSl9LDApfX19dmFyIGVnPTEwKjEwMjQqMTAyNDtmdW5jdGlvbiB0ZyhlKXtyZXR1cm4gZTwxMDI0P2UrIiBCIjplPDEwMjQqMTAyND8oZS8xMDI0KS50b0ZpeGVkKDEpKyIgS0IiOihlLygxMDI0KjEwMjQpKS50b0ZpeGVkKDEpKyIgTUIifWZ1bmN0aW9uIG5nKGUpe3JldHVybi9eaW1hZ2VcLyhwbmd8anBlP2d8Z2lmfHdlYnB8Ym1wfHN2Z1wreG1sKS8udGVzdChlKX1mdW5jdGlvbiBjdShlKXtpZihlKXtpZihlLnNpemU+ZWcpe2soIlx1NjU4N1x1NEVGNlx1OEZDN1x1NTkyN1x1RkYwOFx1NEUwQVx1OTY1MCAxMCBNQlx1RkYwOTogIitlLm5hbWUsImVycm9yIik7cmV0dXJufXZhciB0PXtmaWxlOmUsbmFtZTplLm5hbWUsc2l6ZTplLnNpemUscHJldmlld1VybDpudWxsfTtuZyhlLnR5cGUpJiYodC5wcmV2aWV3VXJsPVVSTC5jcmVhdGVPYmplY3RVUkwoZSkpLHIucGVuZGluZ0F0dGFjaG1lbnRzLnB1c2godCksZHUoKX19ZnVuY3Rpb24gcmcoZSl7dmFyIHQ9ci5wZW5kaW5nQXR0YWNobWVudHMuc3BsaWNlKGUsMSk7dC5sZW5ndGgmJnRbMF0ucHJldmlld1VybCYmVVJMLnJldm9rZU9iamVjdFVSTCh0WzBdLnByZXZpZXdVcmwpLGR1KCl9ZnVuY3Rpb24gaWcoKXtyLnBlbmRpbmdBdHRhY2htZW50cy5mb3JFYWNoKGZ1bmN0aW9uKGUpe2UucHJldmlld1VybCYmVVJMLnJldm9rZU9iamVjdFVSTChlLnByZXZpZXdVcmwpfSksci5wZW5kaW5nQXR0YWNobWVudHM9W10sZHUoKX1mdW5jdGlvbiBkdSgpe3ZhciBlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhdHRhY2htZW50LXByZXZpZXciKTtpZihlKXt2YXIgdD1yLnBlbmRpbmdBdHRhY2htZW50cztpZih0Lmxlbmd0aD09PTApe2UuY2xhc3NMaXN0LmFkZCgiaGlkZGVuIiksZS5pbm5lckhUTUw9IiI7cmV0dXJufWUuY2xhc3NMaXN0LnJlbW92ZSgiaGlkZGVuIik7Zm9yKHZhciBuPSIiLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXSx1PWEucHJldmlld1VybD8nPGltZyBzcmM9IicrcChhLnByZXZpZXdVcmwpKyciIGFsdD0iIj4nOic8c3BhbiBjbGFzcz0iYXR0LWljb24iPicreigiZmlsZSIse3NpemU6MTMsc3Ryb2tlV2lkdGg6MS43fSkrIjwvc3Bhbj4iO24rPSc8c3BhbiBjbGFzcz0iYXR0YWNobWVudC1waWxsIiBkYXRhLWluZGV4PSInK2krJyI+Jyt1Kyc8c3BhbiBjbGFzcz0iYXR0LW5hbWUiIHRpdGxlPSInK3AoYS5uYW1lKSsnIj4nK3AoYS5uYW1lKSsnPC9zcGFuPjxzcGFuIGNsYXNzPSJhdHQtc2l6ZSI+Jyt0ZyhhLnNpemUpKyc8L3NwYW4+PGJ1dHRvbiBjbGFzcz0iYXR0LXJlbW92ZSIgZGF0YS1pbmRleD0iJytpKyciIHRpdGxlPSJcdTc5RkJcdTk2NjQiPlx4RDc8L2J1dHRvbj48L3NwYW4+J31lLmlubmVySFRNTD1uLGUucXVlcnlTZWxlY3RvckFsbCgiLmF0dC1yZW1vdmUiKS5mb3JFYWNoKGZ1bmN0aW9uKHMpe3MuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKG8pe28ucHJldmVudERlZmF1bHQoKSxvLnN0b3BQcm9wYWdhdGlvbigpLHJnKHBhcnNlSW50KHMuZ2V0QXR0cmlidXRlKCJkYXRhLWluZGV4IiksMTApKX0pfSl9fWZ1bmN0aW9uIGFnKGUpe2lmKCFyLnBlbmRpbmdBdHRhY2htZW50cy5sZW5ndGgpcmV0dXJuIFByb21pc2UucmVzb2x2ZShbXSk7dmFyIHQ9bmV3IEZvcm1EYXRhO3JldHVybiByLnBlbmRpbmdBdHRhY2htZW50cy5mb3JFYWNoKGZ1bmN0aW9uKG4pe3QuYXBwZW5kKCJmaWxlcyIsbi5maWxlLG4ubmFtZSl9KSxmZXRjaCgiL2FwaS9zZXNzaW9ucy8iK2VuY29kZVVSSUNvbXBvbmVudChlKSsiL3VwbG9hZCIse21ldGhvZDoiUE9TVCIsYm9keTp0LGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKG4pe3JldHVybiBuLm9rP24uanNvbigpOm4uanNvbigpLnRoZW4oZnVuY3Rpb24oaSl7dGhyb3cgbmV3IEVycm9yKGkuZXJyb3J8fCJcdTRFMEFcdTRGMjBcdTU5MzFcdThEMjUiKX0pfSkudGhlbihmdW5jdGlvbihuKXtyZXR1cm4gbi5maWxlc3x8W119KX1mdW5jdGlvbiB1ZyhlKXtpZighZXx8IWUubGVuZ3RoKXJldHVybiIiO3ZhciB0PWUubWFwKGZ1bmN0aW9uKG4pe3JldHVybiBuLnNhdmVkUGF0aH0pO3JldHVybmBbXHU5NjQ0XHU0RUY2XHU1REYyXHU0RTBBXHU0RjIwXHVGRjBDXHU4QkY3XHU2N0U1XHU3NzBCXHU0RUU1XHU0RTBCXHU2NTg3XHU0RUY2OgpgK3Quam9pbihgCmApK2BdCgpgfWZ1bmN0aW9uIERsKGUpe2lmKCFyLnRlcm1pbmFsSW50ZXJhY3RpdmV8fCFlfHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIikpcmV0dXJuITE7dmFyIHQ9ZS52YWx1ZXx8IiI7cmV0dXJuIHQ/KEZ0KHQsImludGVyYWN0aXZlX3RleHQiKS5jYXRjaChmdW5jdGlvbigpe30pLGUudmFsdWU9IiIsSHQoZSksb3QoIiIsITApLCEwKTohMX1mdW5jdGlvbiBzZyhlKXt2YXIgdD1lLmNsaXBib2FyZERhdGEmJmUuY2xpcGJvYXJkRGF0YS5pdGVtcztpZih0JiYhci50ZXJtaW5hbEludGVyYWN0aXZlKXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylpZih0W25dLnR5cGUuaW5kZXhPZigiaW1hZ2UvIik9PT0wKXtlLnByZXZlbnREZWZhdWx0KCk7dmFyIGk9dFtuXS5nZXRBc0ZpbGUoKTtpJiZjdShpKTtyZXR1cm59fXZhciBhPWUuY2xpcGJvYXJkRGF0YSYmZS5jbGlwYm9hcmREYXRhLmdldERhdGEoInRleHQiKTtpZihhKXtpZihlLnByZXZlbnREZWZhdWx0KCksci50ZXJtaW5hbEludGVyYWN0aXZlKXtGdChhLCJwYXN0ZSIpLmNhdGNoKGZ1bmN0aW9uKCl7fSk7cmV0dXJufXZhciB1PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbnB1dC1ib3giKTtpZih1KXt2YXIgcz11LnNlbGVjdGlvblN0YXJ0fHwwLG89dS5zZWxlY3Rpb25FbmR8fDAsbD11LnZhbHVlLGM9bC5zbGljZSgwLHMpK2ErbC5zbGljZShvKTt1LnZhbHVlPWMsb3QoYyl9fX1mdW5jdGlvbiBaZyhlKXtGdChlKSxvdChvZygpK2UpfWZ1bmN0aW9uIG9nKCl7aWYoci5zZWxlY3RlZElkKXtpZihyLmRyYWZ0c1tyLnNlbGVjdGVkSWRdIT09dm9pZCAwKXJldHVybiByLmRyYWZ0c1tyLnNlbGVjdGVkSWRdO3RyeXt2YXIgZT1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgid2FuZC1kcmFmdC0iK3Iuc2VsZWN0ZWRJZCk7aWYoZSlyZXR1cm4gZX1jYXRjaHt9fXJldHVybiIifWZ1bmN0aW9uIG90KGUsdCl7aWYoci5zZWxlY3RlZElkKXtyLmRyYWZ0c1tyLnNlbGVjdGVkSWRdPWU7dHJ5e2xvY2FsU3RvcmFnZS5zZXRJdGVtKCJ3YW5kLWRyYWZ0LSIrci5zZWxlY3RlZElkLGUpfWNhdGNoe31pZighdCl7dmFyIG49ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpO24mJihuLnZhbHVlPWUpfX19dmFyIGZ1PSExO2Z1bmN0aW9uIGxnKCl7aWYoIWZ1KXt2YXIgZT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW5wdXQtYm94IiksdD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicHJvbXB0LW9wdGltaXplLWJ0biIpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7aWYoZSl7dmFyIGk9KGUudmFsdWV8fCIiKS50cmltKCk7aWYoIWkpe3R5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKCJcdThCRjdcdTUxNDhcdThGOTNcdTUxNjVcdTg5ODFcdTRGMThcdTUzMTZcdTc2ODRcdTUxODVcdTVCQjlcdTMwMDIiLCJpbmZvIiksZS5mb2N1cygpO3JldHVybn1mdT0hMCx0JiYodC5jbGFzc0xpc3QuYWRkKCJpcy1sb2FkaW5nIiksdC5kaXNhYmxlZD0hMCx0LnNldEF0dHJpYnV0ZSgidGl0bGUiLCJcdTZCNjNcdTU3MjhcdTRGMThcdTUzMTZcdTIwMjYiKSksbiYmbi5jbGFzc0xpc3QuYWRkKCJpcy1vcHRpbWl6aW5nIiksZS5zZXRBdHRyaWJ1dGUoImFyaWEtYnVzeSIsInRydWUiKTt2YXIgYT1lLnJlYWRPbmx5O2UucmVhZE9ubHk9ITA7dmFyIHU9e3RleHQ6aX07ciYmci5zZWxlY3RlZElkJiYodS5zZXNzaW9uSWQ9ci5zZWxlY3RlZElkKSxmZXRjaCgiL2FwaS9vcHRpbWl6ZS1wcm9tcHQiLHttZXRob2Q6IlBPU1QiLGNyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiIsaGVhZGVyczp7IkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL2pzb24ifSxib2R5OkpTT04uc3RyaW5naWZ5KHUpfSkudGhlbihmdW5jdGlvbihzKXtyZXR1cm4gcy5qc29uKCkudGhlbihmdW5jdGlvbihvKXtyZXR1cm57b2s6cy5vayxkYXRhOm99fSl9KS50aGVuKGZ1bmN0aW9uKHMpe2lmKCFzLm9rKXRocm93IG5ldyBFcnJvcihzLmRhdGEmJnMuZGF0YS5lcnJvcnx8Ilx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNlx1NTkzMVx1OEQyNVx1MzAwMiIpO3ZhciBvPXMuZGF0YSYmcy5kYXRhLm9wdGltaXplZHx8IiI7aWYoIW8pdGhyb3cgbmV3IEVycm9yKCJDbGF1ZGUgXHU4RkQ0XHU1NkRFXHU0RTNBXHU3QTdBXHUzMDAyIik7Y2coZSxvKX0pLmNhdGNoKGZ1bmN0aW9uKHMpe3R5cGVvZiBrPT0iZnVuY3Rpb24iJiZrKHMmJnMubWVzc2FnZXx8Ilx1NjNEMFx1NzkzQVx1OEJDRFx1NEYxOFx1NTMxNlx1NTkzMVx1OEQyNVx1MzAwMiIsImVycm9yIiksdCYmKHQuY2xhc3NMaXN0LnJlbW92ZSgiaXMtbG9hZGluZyIpLHQuY2xhc3NMaXN0LmFkZCgiaXMtc2hha2UiKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dCYmdC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1zaGFrZSIpfSw0MDApKX0pLmZpbmFsbHkoZnVuY3Rpb24oKXtmdT0hMSx0JiYodC5jbGFzc0xpc3QucmVtb3ZlKCJpcy1sb2FkaW5nIiksdC5kaXNhYmxlZD0hMSx0LnNldEF0dHJpYnV0ZSgidGl0bGUiLCJcdTYzRDBcdTc5M0FcdThCQ0RcdTRGMThcdTUzMTZcdUZGMDhBSVx1RkYwOSIpKSxuJiZuLmNsYXNzTGlzdC5yZW1vdmUoImlzLW9wdGltaXppbmciKSxlLnJlbW92ZUF0dHJpYnV0ZSgiYXJpYS1idXN5IiksZS5yZWFkT25seT1hfSl9fX1mdW5jdGlvbiBjZyhlLHQpe2lmKCFlKXJldHVybjt2YXIgbj1BcnJheS5mcm9tKHQpLGk9bi5sZW5ndGg7aWYoaT09PTApe2UudmFsdWU9IiIsb3QoIiIsITApLEh0KGUpO3JldHVybn12YXIgYT1NYXRoLm1pbig3MDAsTWF0aC5tYXgoMjIwLGkqOCkpLHU9TWF0aC5taW4oaSw2MCkscz1NYXRoLmNlaWwoaS91KSxvPWEvdSxsPTA7ZS52YWx1ZT0iIixIdChlKTtmdW5jdGlvbiBjKCl7aWYobD1NYXRoLm1pbihpLGwrcyksZS52YWx1ZT1uLnNsaWNlKDAsbCkuam9pbigiIiksSHQoZSksbDxpKXNldFRpbWVvdXQoYyxvKTtlbHNle290KHQsITApO3RyeXtlLnNldFNlbGVjdGlvblJhbmdlKHQubGVuZ3RoLHQubGVuZ3RoKX1jYXRjaHt9fX1jKCl9ZnVuY3Rpb24gT2koZSl7dmFyIHQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmlucHV0LWNvbXBvc2VyIik7aWYodCl7dmFyIG49ZXx8ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlucHV0LWJveCIpLGk9ISEobiYmbi52YWx1ZSYmbi52YWx1ZS5sZW5ndGg+MCk7dC5jbGFzc0xpc3QudG9nZ2xlKCJoYXMtdGV4dCIsaSl9fXIuX3N0YXR1c0JhclRpbWVySWQ9bnVsbCxyLl9zdGF0dXNCYXJTdGFydFRpbWU9MDt2YXIgSHI9bnVsbCxQaT0wO2Z1bmN0aW9uIHB1KGUpe2lmKCFlKXJldHVybnthY3RpdmU6ITF9O2lmKGUuYXJjaGl2ZWQpcmV0dXJue2FjdGl2ZTohMX07dmFyIHQ9ISFlLnBlcm1pc3Npb25CbG9ja2VkLG49ISEodWUoZSkmJmUuc3RydWN0dXJlZFN0YXRlJiZlLnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodCksaT0hdWUoZSkmJmUuc3RhdHVzPT09InJ1bm5pbmciO3JldHVybnthY3RpdmU6bnx8aXx8dCxpbkZsaWdodDpuLHB0eVJ1bm5pbmc6aSxwZXJtaXNzaW9uQmxvY2tlZDp0fX1mdW5jdGlvbiBkZyhlKXt2YXIgdD1NYXRoLm1heCgwLE1hdGguZmxvb3IoZS8xZTMpKTtpZih0PDYwKXJldHVybiB0KyJzIjt2YXIgbj1NYXRoLmZsb29yKHQvNjApLGk9dCU2MDtpZihuPDYwKXJldHVybiBuKyJtIisoaT8iICIraSsicyI6IiIpO3ZhciBhPU1hdGguZmxvb3Iobi82MCksdT1uJTYwO3JldHVybiBhKyJoIisodT8iICIrdSsibSI6IiIpfWZ1bmN0aW9uIHZ1KGUpe3ZhciB0PXB1KGUpLG49ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLm1haW4taGVhZGVyLXJvdyIpLGk9bj9uLnF1ZXJ5U2VsZWN0b3IoIi5zZXNzaW9uLXN0YXR1cy1waWxsIik6bnVsbCxhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jaGF0LW1lc3NhZ2VzIik7aWYobiYmKG4uY2xhc3NMaXN0LnRvZ2dsZSgiaXMtcnVubmluZyIsdC5hY3RpdmUpLG4uY2xhc3NMaXN0LnRvZ2dsZSgiaXMtcGVybWlzc2lvbi1ibG9ja2VkIix0LnBlcm1pc3Npb25CbG9ja2VkKSksaSl7dmFyIHU9aS5xdWVyeVNlbGVjdG9yKCIuc2Vzc2lvbi1zdGF0dXMtZWxhcHNlZCIpO2lmKHQuaW5GbGlnaHQpe1BpfHwoUGk9ci5fc3RhdHVzQmFyU3RhcnRUaW1lPjA/ci5fc3RhdHVzQmFyU3RhcnRUaW1lOkRhdGUubm93KCkpO3ZhciBzPWRnKERhdGUubm93KCktUGkpO3V8fCh1PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKSx1LmNsYXNzTmFtZT0ic2Vzc2lvbi1zdGF0dXMtZWxhcHNlZCIsaS5hcHBlbmRDaGlsZCh1KSksdS50ZXh0Q29udGVudD1zfWVsc2UgUGk9MCx1JiZ1LnJlbW92ZSgpfXQuYWN0aXZlP0hyfHwoSHI9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKXt2YXIgbz1yLnNlc3Npb25zLmZpbmQoZnVuY3Rpb24obCl7cmV0dXJuIGwuaWQ9PT1yLnNlbGVjdGVkSWR9KTt2dShvKX0sMWUzKSk6SHImJihjbGVhckludGVydmFsKEhyKSxIcj1udWxsKX1mdW5jdGlvbiBtdShlLHQpe3Z1KHQpO3ZhciBuPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5jb21wb3Nlci10b3Atcm93IiksaT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc3RydWN0dXJlZC1zdGF0dXMtYmFyIiksYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuaW5wdXQtY29tcG9zZXIiKTtpZighdHx8IXVlKHQpKXtpJiZpLnJlbW92ZSgpLGEmJmEuY2xhc3NMaXN0LnJlbW92ZSgiaW4tZmxpZ2h0IiksY2xlYXJJbnRlcnZhbChyLl9zdGF0dXNCYXJUaW1lcklkKSxyLl9zdGF0dXNCYXJUaW1lcklkPW51bGw7cmV0dXJufXZhciB1PXQuc3RydWN0dXJlZFN0YXRlJiZ0LnN0cnVjdHVyZWRTdGF0ZS5pbkZsaWdodDtpZih1KXtpZihyLl9zdGF0dXNCYXJUaW1lcklkfHwoci5fc3RhdHVzQmFyU3RhcnRUaW1lPURhdGUubm93KCkpLGEmJmEuY2xhc3NMaXN0LmFkZCgiaW4tZmxpZ2h0IiksIWkmJm4pe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3MuY2xhc3NOYW1lPSJzdHJ1Y3R1cmVkLXN0YXR1cy1iYXIiLHMuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0ic3RhdHVzLWJhci1kb3QiPjwvc3Bhbj48c3BhbiBjbGFzcz0ic3RhdHVzLWJhci1sYWJlbCI+XHU1NkRFXHU1OTBEXHU0RTJEPC9zcGFuPjxzcGFuIGNsYXNzPSJzdGF0dXMtYmFyLXRpbWVyIj4wLjBzPC9zcGFuPicsbi5hcHBlbmRDaGlsZChzKSxpPXN9ZWxzZSBpZihpJiZpLmNsYXNzTGlzdC5jb250YWlucygiY29tcGxldGVkIikpe2kuY2xhc3NMaXN0LnJlbW92ZSgiY29tcGxldGVkIiksaS5zdHlsZS5hbmltYXRpb249Im5vbmUiLGkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItbGFiZWwiKS50ZXh0Q29udGVudD0iXHU1NkRFXHU1OTBEXHU0RTJEIjt2YXIgbz1pLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLWRvdCIpO28mJihvLnN0eWxlLmRpc3BsYXk9IiIpLHIuX3N0YXR1c0JhclN0YXJ0VGltZT1EYXRlLm5vdygpfXIuX3N0YXR1c0JhclRpbWVySWR8fChyLl9zdGF0dXNCYXJUaW1lcklkPXNldEludGVydmFsKGZ1bmN0aW9uKCl7dmFyIGM9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLnN0cnVjdHVyZWQtc3RhdHVzLWJhcjpub3QoLmNvbXBsZXRlZCkiKTtpZighYyl7Y2xlYXJJbnRlcnZhbChyLl9zdGF0dXNCYXJUaW1lcklkKSxyLl9zdGF0dXNCYXJUaW1lcklkPW51bGw7cmV0dXJufXZhciBmPSgoRGF0ZS5ub3coKS1yLl9zdGF0dXNCYXJTdGFydFRpbWUpLzFlMykudG9GaXhlZCgxKSxkPWMucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItdGltZXIiKTtkJiYoZC50ZXh0Q29udGVudD1mKyJzIil9LDEwMCkpfWVsc2UgaWYoY2xlYXJJbnRlcnZhbChyLl9zdGF0dXNCYXJUaW1lcklkKSxyLl9zdGF0dXNCYXJUaW1lcklkPW51bGwsYSYmYS5jbGFzc0xpc3QucmVtb3ZlKCJpbi1mbGlnaHQiKSxpJiYhaS5jbGFzc0xpc3QuY29udGFpbnMoImNvbXBsZXRlZCIpKXt2YXIgbD1yLl9zdGF0dXNCYXJTdGFydFRpbWU/KChEYXRlLm5vdygpLXIuX3N0YXR1c0JhclN0YXJ0VGltZSkvMWUzKS50b0ZpeGVkKDEpOiIwLjAiO2kuY2xhc3NMaXN0LmFkZCgiY29tcGxldGVkIiksaS5xdWVyeVNlbGVjdG9yKCIuc3RhdHVzLWJhci1sYWJlbCIpLnRleHRDb250ZW50PSJcdTVCOENcdTYyMTAiLGkucXVlcnlTZWxlY3RvcigiLnN0YXR1cy1iYXItdGltZXIiKS50ZXh0Q29udGVudD1sKyJzIjt2YXIgbz1pLnF1ZXJ5U2VsZWN0b3IoIi5zdGF0dXMtYmFyLWRvdCIpO28mJihvLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSxyLl9zdGF0dXNCYXJTdGFydFRpbWU9MCxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS5wYXJlbnROb2RlJiZpLnJlbW92ZSgpfSwzZTMpfX1mdW5jdGlvbiBwKGUpe3JldHVybiBTdHJpbmcoZSkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpfXZhciBmZz0vXC4ocG5nfGpwZT9nfGdpZnx3ZWJwfHN2Z3xhdmlmfGJtcHxpY298aGVpY3xoZWlmKSQvaTtmdW5jdGlvbiBndShlKXtpZih0eXBlb2YgZSE9InN0cmluZyIpcmV0dXJuITE7dmFyIHQ9ZS50cmltKCkuc3BsaXQoL1s/I10vKVswXTtyZXR1cm4gZmcudGVzdCh0KX1mdW5jdGlvbiBxaShlKXtpZihlKXt2YXIgdD1mdW5jdGlvbigpe3RyeXtlLnNjcm9sbFdpZHRoPmUuY2xpZW50V2lkdGgmJihlLnNjcm9sbExlZnQ9ZS5zY3JvbGxXaWR0aCl9Y2F0Y2h7fX07dCgpLHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU9PSJmdW5jdGlvbiImJnJlcXVlc3RBbmltYXRpb25GcmFtZSh0KX19ZnVuY3Rpb24gcGcoZSl7aWYoZSl7dmFyIHQ9ZnVuY3Rpb24oKXt0cnl7aWYodHlwZW9mIGUuc2V0U2VsZWN0aW9uUmFuZ2U9PSJmdW5jdGlvbiImJmUudmFsdWUhPW51bGwpe3ZhciBuPWUudmFsdWUubGVuZ3RoO3RyeXtlLnNldFNlbGVjdGlvblJhbmdlKG4sbil9Y2F0Y2h7fX1lLnNjcm9sbFdpZHRoPmUuY2xpZW50V2lkdGgmJihlLnNjcm9sbExlZnQ9ZS5zY3JvbGxXaWR0aCl9Y2F0Y2h7fX07dCgpLHR5cGVvZiByZXF1ZXN0QW5pbWF0aW9uRnJhbWU9PSJmdW5jdGlvbiImJnJlcXVlc3RBbmltYXRpb25GcmFtZSh0KX19KGZ1bmN0aW9uKCl7dHJ5e3ZhciBlPW5hdmlnYXRvciYmbmF2aWdhdG9yLnVzZXJBZ2VudHx8IiI7L1dhbmRBcHBcLy8udGVzdChlKSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoImlzLXdhbmQtYXBwIiksL1dhbmRQbGF0Zm9ybVwvaU9TLy50ZXN0KGUpJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LmFkZCgiaXMtd2FuZC1pb3MiKX1jYXRjaHt9dHJ5e2NvbnN0IHQ9bmV3IFVSTCh3aW5kb3cubG9jYXRpb24uaHJlZikuc2VhcmNoUGFyYW1zO3QuZ2V0KCJlbWJlZCIpPT09InRlcm1pbmFsIiYmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpcy13YW5kLWVtYmVkLXRlcm1pbmFsIiksdC5nZXQoIm5hdGl2ZUlucHV0Iik9PT0iMSImJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJpcy13YW5kLW5hdGl2ZS1pbnB1dCIpKX1jYXRjaHt9dHJ5e3dpbmRvdy5fX3dhbmROYXRpdmVCYWNrSG9va2VkPSEwfWNhdGNoe319KSgpfSkoKTsK"),
9
9
  stylesCss: decode("OnJvb3R7LS1iZy1wcmltYXJ5OiAjZjZmMWU4Oy0tYmctc2Vjb25kYXJ5OiByZ2JhKDI1NSwgMjUxLCAyNDUsIC45Mik7LS1iZy10ZXJ0aWFyeTogI2YwZTVkNzstLWJnLWVsZXZhdGVkOiAjZmZmYWYyOy0tYmctc3VyZmFjZTogcmdiYSgyNTUsIDI1NSwgMjU1LCAuNik7LS1iZy10ZXJtaW5hbDogIzFmMWIxNzstLWJnLW92ZXJsYXk6IHJnYmEoNDIsIDI4LCAxOCwgLjQpOy0tYm9yZGVyLXN1YnRsZTogcmdiYSgxNTAsIDExOCwgODUsIC4xMik7LS1ib3JkZXItZGVmYXVsdDogcmdiYSgxMjUsIDkxLCA1NywgLjI1KTstLWJvcmRlci1zdHJvbmc6IHJnYmEoMTI1LCA5MSwgNTcsIC40KTstLWJvcmRlcjogdmFyKC0tYm9yZGVyLWRlZmF1bHQpOy0tYm9yZGVyLWZvY3VzOiByZ2JhKDE5NywgMTAxLCA2MSwgLjUpOy0tdGV4dC1wcmltYXJ5OiAjMmExZjE2Oy0tdGV4dC1zZWNvbmRhcnk6ICM1YTQ1MzU7LS10ZXh0LXRlcnRpYXJ5OiAjN2E2MzUwOy0tdGV4dC1tdXRlZDogIzhjNzM1ZjstLXRleHQtaW52ZXJzZTogI2ZmZmZmZjstLXRleHQtbGluazogI2M1NjUzZDstLWFjY2VudDogI2M1NjUzZDstLWFjY2VudC1ob3ZlcjogI2Q0NzU1MDstLWFjY2VudC1hY3RpdmU6ICNhZjUzMzA7LS1hY2NlbnQtc29mdDogI2U4YzVhZTstLWFjY2VudC1tdXRlZDogcmdiYSgxOTcsIDEwMSwgNjEsIC4xMik7LS1hY2NlbnQtZ2xvdzogcmdiYSgxOTcsIDEwMSwgNjEsIC4yNSk7LS1zdWNjZXNzOiAjNGY3YTU4Oy0tc3VjY2Vzcy1ob3ZlcjogIzVhOGY2NjstLXN1Y2Nlc3MtbXV0ZWQ6IHJnYmEoNzksIDEyMiwgODgsIC4xNCk7LS1zdWNjZXNzLWdsb3c6IHJnYmEoNzksIDEyMiwgODgsIC4zKTstLXdhcm5pbmc6ICNhOTZhMmY7LS13YXJuaW5nLWhvdmVyOiAjYzA3YTM1Oy0td2FybmluZy1tdXRlZDogcmdiYSgxNjksIDEwNiwgNDcsIC4xNCk7LS13YXJuaW5nLWdsb3c6IHJnYmEoMTY5LCAxMDYsIDQ3LCAuMjUpOy0tZGFuZ2VyOiAjYjI0ZjQ1Oy0tZGFuZ2VyLWhvdmVyOiAjYzk2MDU1Oy0tZGFuZ2VyLW11dGVkOiByZ2JhKDE3OCwgNzksIDY5LCAuMTQpOy0tZGFuZ2VyLWdsb3c6IHJnYmEoMTc4LCA3OSwgNjksIC4yNSk7LS1pbmZvOiAjNGE2ZmE1Oy0taW5mby1tdXRlZDogcmdiYSg3NCwgMTExLCAxNjUsIC4xNCk7LS1zaGFkb3cteHM6IDAgMXB4IDNweCByZ2JhKDg5LCA1OCwgMzIsIC4wNCk7LS1zaGFkb3ctc206IDAgMnB4IDhweCByZ2JhKDg5LCA1OCwgMzIsIC4wNik7LS1zaGFkb3ctbWQ6IDAgNHB4IDE2cHggcmdiYSg4OSwgNTgsIDMyLCAuMDgpOy0tc2hhZG93LWxnOiAwIDhweCAzMnB4IHJnYmEoODksIDU4LCAzMiwgLjEyKTstLXNoYWRvdy14bDogMCAxMnB4IDQ4cHggcmdiYSg4OSwgNTgsIDMyLCAuMTYpOy0tc2hhZG93LXNvZnQ6IDAgMjBweCA1MHB4IHJnYmEoODksIDU4LCAzMiwgLjEyKTstLXNoYWRvdy1lbGV2YXRlZDogMCA4cHggMjRweCByZ2JhKDg5LCA1OCwgMzIsIC4wOCk7LS1zaGFkb3ctZ2xvdzogMCAwIDI0cHggdmFyKC0tYWNjZW50LWdsb3cpOy0tc2hhZG93LWdsb3ctc3VjY2VzczogMCAwIDIwcHggdmFyKC0tc3VjY2Vzcy1nbG93KTstLXJhZGl1cy14czogNnB4Oy0tcmFkaXVzLXNtOiAxMHB4Oy0tcmFkaXVzLW1kOiAxNHB4Oy0tcmFkaXVzLWxnOiAyMHB4Oy0tcmFkaXVzLXhsOiAyOHB4Oy0tcmFkaXVzLWZ1bGw6IDk5OTlweDstLWZvbnQtc2FuczogLWFwcGxlLXN5c3RlbSwgQmxpbmtNYWNTeXN0ZW1Gb250LCAiU2Vnb2UgVUkiLCAiSGVsdmV0aWNhIE5ldWUiLCAiUGluZ0ZhbmcgU0MiLCAiTm90byBTYW5zIFNDIiwgIk1pY3Jvc29mdCBZYUhlaSIsIHNhbnMtc2VyaWY7LS1mb250LW1vbm86ICJTRiBNb25vIiwgIkZpcmEgQ29kZSIsICJDYXNjYWRpYSBDb2RlIiwgIkpldEJyYWlucyBNb25vIiwgTWVubG8sIE1vbmFjbywgIkNvbnNvbGFzIiwgbW9ub3NwYWNlOy0tZm9udC1zaXplLXhzOiAuNjg3NXJlbTstLWZvbnQtc2l6ZS1zbTogLjgxMjVyZW07LS1mb250LXNpemUtYmFzZTogLjkzNzVyZW07LS1mb250LXNpemUtbGc6IDEuMDYyNXJlbTstLWZvbnQtc2l6ZS14bDogMS4yNXJlbTstLWZvbnQtd2VpZ2h0LW5vcm1hbDogNDAwOy0tZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7LS1mb250LXdlaWdodC1zZW1pYm9sZDogNjAwOy0tZm9udC13ZWlnaHQtYm9sZDogNzAwOy0tbGluZS1oZWlnaHQtdGlnaHQ6IDEuMzstLWxpbmUtaGVpZ2h0LWJhc2U6IDEuNjstLWxpbmUtaGVpZ2h0LXJlbGF4ZWQ6IDEuNzU7LS10cmFuc2l0aW9uLWZhc3Q6IC4xNXMgZWFzZTstLXRyYW5zaXRpb24tbm9ybWFsOiAuMjVzIGVhc2U7LS10cmFuc2l0aW9uLXNsb3c6IC40cyBlYXNlOy0tdHJhbnNpdGlvbi1zcHJpbmc6IC41cyBjdWJpYy1iZXppZXIoLjM0LCAxLjU2LCAuNjQsIDEpOy0tc2lkZWJhci13aWR0aDogMzAwcHg7LS1zaWRlYmFyLWNvbGxhcHNlZC13aWR0aDogNTZweDstLWZpbGUtcGFuZWwtd2lkdGg6IDMyMHB4Oy0tc2FmZS1ib3R0b206IDBweDstLWVhc2Utb3V0LWV4cG86IGN1YmljLWJlemllciguMTYsIDEsIC4zLCAxKTstLWVhc2Utb3V0LWJhY2s6IGN1YmljLWJlemllciguMzQsIDEuNTYsIC42NCwgMSk7LS1lYXNlLWluLW91dC1zbW9vdGg6IGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpOy0tZWFzZS1zcHJpbmc6IGN1YmljLWJlemllciguMTc1LCAuODg1LCAuMzIsIDEuMjc1KTstLWVhc2Utc3ByaW5nLWJvdW5jeTogY3ViaWMtYmV6aWVyKC4xNzUsIC44ODUsIC4zMiwgMS40KTstLWVhc2UtYm91bmNlOiBjdWJpYy1iZXppZXIoLjY4LCAtLjU1LCAuMjY1LCAxLjU1KX1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upe2h0bWw6bm90KC5pcy13YW5kLWFwcCkgKixodG1sOm5vdCguaXMtd2FuZC1hcHApICo6YmVmb3JlLGh0bWw6bm90KC5pcy13YW5kLWFwcCkgKjphZnRlcnthbmltYXRpb24tZHVyYXRpb246LjAxbXMhaW1wb3J0YW50O2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6MSFpbXBvcnRhbnQ7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDFtcyFpbXBvcnRhbnQ7c2Nyb2xsLWJlaGF2aW9yOmF1dG8haW1wb3J0YW50fX06cm9vdHstLWFwcC1pbnNldC10b3A6IDBweDstLWFwcC1pbnNldC1ib3R0b206IDBweDstLWFwcC1pbnNldC1sZWZ0OiAwcHg7LS1hcHAtaW5zZXQtcmlnaHQ6IDBweDstLXdhbmQtc2FmZS10b3A6IG1heCh2YXIoLS1hcHAtaW5zZXQtdG9wKSwgZW52KHNhZmUtYXJlYS1pbnNldC10b3AsIDBweCkpOy0td2FuZC1zYWZlLWJvdHRvbTogbWF4KHZhcigtLWFwcC1pbnNldC1ib3R0b20pLCBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KSk7LS13YW5kLXNhZmUtbGVmdDogbWF4KHZhcigtLWFwcC1pbnNldC1sZWZ0KSwgZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0LCAwcHgpKTstLXdhbmQtc2FmZS1yaWdodDogbWF4KHZhcigtLWFwcC1pbnNldC1yaWdodCksIGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQsIDBweCkpOy0tc2FmZS1ib3R0b206IHZhcigtLXdhbmQtc2FmZS1ib3R0b20pOy0taW5wdXQtc2FmZS1ib3R0b206IHZhcigtLXNhZmUtYm90dG9tKX0uaXMtd2FuZC1hcHB7LS13YW5kLXNhZmUtdG9wOiBtYXgodmFyKC0tYXBwLWluc2V0LXRvcCksIGVudihzYWZlLWFyZWEtaW5zZXQtdG9wLCAwcHgpLCAzMnB4KTstLXdhbmQtc2FmZS1ib3R0b206IG1heCh2YXIoLS1hcHAtaW5zZXQtYm90dG9tKSwgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCksIDBweCl9LmlzLXdhbmQtYXBwLW5hdGl2ZS1pbnNldHN7LS13YW5kLXNhZmUtdG9wOiAwcHg7LS13YW5kLXNhZmUtYm90dG9tOiAwcHg7LS13YW5kLXNhZmUtbGVmdDogMHB4Oy0td2FuZC1zYWZlLXJpZ2h0OiAwcHh9LmlzLXdhbmQtaW9zLmlzLWtleWJvYXJkLW9wZW57LS1pbnB1dC1zYWZlLWJvdHRvbTogMHB4fS5pcy13YW5kLWFwcCAuc2lkZWJhci1oZWFkZXIsaHRtbC5pcy13YW5kLWFwcCAuc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlcntwYWRkaW5nLXRvcDpjYWxjKDE0cHggKyB2YXIoLS13YW5kLXNhZmUtdG9wKSl9LmFwcC1jb250YWluZXJ7cGFkZGluZy10b3A6dmFyKC0td2FuZC1zYWZlLXRvcCl9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnNpZGViYXIsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLm1haW4taGVhZGVyLXJvdywuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAuYmxhbmstY2hhdCwuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAuZHJhd2VyLWJhY2tkcm9wLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC5maWxlLXBhbmVsLWJhY2tkcm9we2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLmFwcC1jb250YWluZXJ7cGFkZGluZy10b3A6MH1odG1sLmlzLXdhbmQtZW1iZWQtdGVybWluYWx7Y29sb3Itc2NoZW1lOmxpZ2h0IGRhcms7LS1lbWJlZC1wdHktYmc6ICMxNzEyMGZ9aHRtbC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsLGh0bWwuaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCBib2R5e2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKX0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAubWFpbi1sYXlvdXQsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLm1haW4tbGF5b3V0LnNpZGViYXItcGlubmVkLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZC5zaWRlYmFyLWNvbGxhcHNlZHtwYWRkaW5nLWxlZnQ6MH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAubWFpbi1jb250ZW50e2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKX0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAudGVybWluYWwtY29udGFpbmVye21hcmdpbjowO2JvcmRlci1yYWRpdXM6MDtib3JkZXI6MDtib3JkZXItbGVmdDowO2JvcmRlci1yaWdodDowO2JhY2tncm91bmQ6dmFyKC0tZW1iZWQtcHR5LWJnKTtib3gtc2hhZG93Om5vbmV9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLWNvbnRhaW5lcjpmb2N1cy13aXRoaW4sLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLWNvbnRhaW5lci5pbnRlcmFjdGl2ZXtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Ym94LXNoYWRvdzpub25lfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC50ZXJtaW5hbC1jb250YWluZXI6YWZ0ZXIsLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLXNjYWxlLW92ZXJsYXksLmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLnRlcm1pbmFsLXJlc2l6ZS1oYW5kbGV7ZGlzcGxheTpub25lIWltcG9ydGFudH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAudGVybWluYWwtc2Nyb2xsLXdyYXB7cGFkZGluZzo4cHggNHB4IDZweDstLXRlcm0tZm9udC1mYW1pbHk6ICJSb2JvdG8gTW9ubyIsICJEcm9pZCBTYW5zIE1vbm8iLCAiTm90byBTYW5zIE1vbm8iLCAiTm90byBTYW5zIFN5bWJvbHMgMiIsICJOb3RvIFNhbnMgU3ltYm9scyIsIG1vbm9zcGFjZTstLXRlcm0tZm9udC1zaXplOiAxMHB4ICFpbXBvcnRhbnQ7LS10ZXJtLXJvdy1oZWlnaHQ6IDE1cHggIWltcG9ydGFudDstLXRlcm0tZmc6ICNmNWVhZGM7LS10ZXJtLWJnOiB0cmFuc3BhcmVudDstLXRlcm0tY3Vyc29yOiAjZDY3YjUyOy0tdGVybS1jb2xvci0wOiAjMWYxYjE3Oy0tdGVybS1jb2xvci0xOiAjZDI3NzY2Oy0tdGVybS1jb2xvci0yOiAjN2ZhMzZmOy0tdGVybS1jb2xvci0zOiAjZDVhMzViOy0tdGVybS1jb2xvci00OiAjODdhOWQ5Oy0tdGVybS1jb2xvci01OiAjYzU5NWM3Oy0tdGVybS1jb2xvci02OiAjN2ZiM2IxOy0tdGVybS1jb2xvci03OiAjZjVlYWRjOy0tdGVybS1jb2xvci04OiAjNjI1MzQ3Oy0tdGVybS1jb2xvci05OiAjZTM5YTg5Oy0tdGVybS1jb2xvci0xMDogIzljYzA4YTstLXRlcm0tY29sb3ItMTE6ICNlYmJiNmU7LS10ZXJtLWNvbG9yLTEyOiAjYThjMWVhOy0tdGVybS1jb2xvci0xMzogI2RiYjFkYzstLXRlcm0tY29sb3ItMTQ6ICM5YWNiY2E7LS10ZXJtLWNvbG9yLTE1OiAjZmZmN2VmfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC50ZXJtaW5hbC1zY3JvbGwtd3JhcCA6OnNlbGVjdGlvbntiYWNrZ3JvdW5kOiNkNjdiNTI0N30uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbC5pcy13YW5kLW5hdGl2ZS1pbnB1dCAuaW5wdXQtcGFuZWx7ZGlzcGxheTpub25lIWltcG9ydGFudH0uaXMtd2FuZC1lbWJlZC10ZXJtaW5hbCAud2FuZC1qb3lzdGljay1yb290e3otaW5kZXg6MTIwfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLXJvb3QudmlzaWJsZXtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhY2tkcm9we3otaW5kZXg6MTIwfS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhbGx7d2lkdGg6NTBweDtoZWlnaHQ6NTBweDtjb2xvcjojZmZmN2VmZjU7YmFja2dyb3VuZDojMjMxYzE4ZWI7Ym9yZGVyLWNvbG9yOiNmZmY3ZWYzZDtib3gtc2hhZG93OjAgMTBweCAyNnB4ICMwMDAwMDA2MSxpbnNldCAwIDFweCAjZmZmZmZmMWE7ei1pbmRleDoxMjN9LmlzLXdhbmQtZW1iZWQtdGVybWluYWwgLndhbmQtam95c3RpY2stYmFsbC5wYW5lbC1vcGVuLC5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLWJhbGw6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSgxLjA0KTtiYWNrZ3JvdW5kOiMxZDE3MTRmYTtib3JkZXItY29sb3I6I2ZmZjdlZjU3fS5pcy13YW5kLWVtYmVkLXRlcm1pbmFsIC53YW5kLWpveXN0aWNrLXBhbmVse3otaW5kZXg6MTI0O2JhY2tncm91bmQ6IzFkMTcxNGZhO2JvcmRlci1jb2xvcjojZmZmN2VmMmU7Ym94LXNoYWRvdzowIDE4cHggNDBweCAjMDAwMDAwNmIsaW5zZXQgMCAxcHggI2ZmZmZmZjE0fWh0bWwubm8tdHJhbnNpdGlvbixodG1sLm5vLXRyYW5zaXRpb24gKixodG1sLm5vLXRyYW5zaXRpb24gKjpiZWZvcmUsaHRtbC5uby10cmFuc2l0aW9uICo6YWZ0ZXJ7dHJhbnNpdGlvbjpub25lIWltcG9ydGFudDthbmltYXRpb246bm9uZSFpbXBvcnRhbnR9Kntib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luOjA7cGFkZGluZzowfWh0bWx7Zm9udC1zaXplOjE0cHg7LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDstbW96LW9zeC1mb250LXNtb290aGluZzpncmF5c2NhbGU7dGV4dC1yZW5kZXJpbmc6b3B0aW1pemVMZWdpYmlsaXR5O21pbi1oZWlnaHQ6MTAwJTtoZWlnaHQ6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiNmNmYxZTh9Ym9keXtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCB0b3AgbGVmdCxyZ2JhKDIwOCwxMzgsOTIsLjE4KSx0cmFuc3BhcmVudCAzNSUpLHJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgYm90dG9tIHJpZ2h0LHJnYmEoMTQ4LDEwNyw3NCwuMSksdHJhbnNwYXJlbnQgNDAlKSxsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmYmY3ZjEsI2Y2ZjFlOCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttaW4taGVpZ2h0OjEwMHZoO21pbi1oZWlnaHQ6MTAwZHZoO2hlaWdodDoxMDB2aDtoZWlnaHQ6MTAwZHZoO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0LWJhc2UpO292ZXJmbG93OmhpZGRlbn06Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjhweDtoZWlnaHQ6OHB4fTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojOTY3NjU1NDA7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTU2Nn06Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LXNvZnQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9OjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1zb2Z0KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5pbnB1dC10ZXh0YXJlYTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6IzRmN2E1ODQ3O2NvbG9yOiMyNDE2MGZ9LmlucHV0LXRleHRhcmVhOjotbW96LXNlbGVjdGlvbntiYWNrZ3JvdW5kOiM0ZjdhNTg0Nztjb2xvcjojMjQxNjBmfS5jaGF0LW1lc3NhZ2UudXNlciAuY2hhdC1tZXNzYWdlLWJ1YmJsZTo6c2VsZWN0aW9ue2JhY2tncm91bmQ6I2ZmZmZmZjUyO2NvbG9yOiNmZmZ9LmFwcC1jb250YWluZXJ7LS1sYXlvdXQtbWFpbi1maWxlLXBhbmVsLXdpZHRoOiB2YXIoLS1maWxlLXBhbmVsLXdpZHRoKTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO3Bvc2l0aW9uOmZpeGVkO3RvcDp2YXIoLS1hcHAtdmlld3BvcnQtdG9wLCAwcHgpO2xlZnQ6MDtyaWdodDowO2hlaWdodDp2YXIoLS1hcHAtdmlld3BvcnQtaGVpZ2h0LCAxMDBkdmgpO292ZXJmbG93OmhpZGRlbn0uZmxvYXRpbmctc2lkZWJhci10b2dnbGV7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7cGFkZGluZzowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1zaHJpbms6MDtiYWNrZ3JvdW5kOiNmZmZiZjVkOTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtjdXJzb3I6cG9pbnRlcjtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgMnB4IDhweCAjMDAwMDAwMGY7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZXttYXJnaW4tcmlnaHQ6MnB4fS5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZXtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0b30ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDEpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKDVweCkgcm90YXRlKDQ1ZGVnKX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDIpe29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDApfS5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZSAuaGFtYnVyZ2VyLWljb24gc3BhbjpudGgtY2hpbGQoMyl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCkgcm90YXRlKC00NWRlZyl9Lm1haW4taGVhZGVyLXJvdyAuZmxvYXRpbmctc2lkZWJhci10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYmY1ZjI7Ym94LXNoYWRvdzowIDNweCAxMnB4ICMwMDAwMDAxYX0ubWFpbi1oZWFkZXItcm93IC5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45Mil9Lm1haW4taGVhZGVyLXJvdyAuZmxvYXRpbmctc2lkZWJhci10b2dnbGUuYWN0aXZlOmhvdmVyIC5oYW1idXJnZXItaWNvbiBzcGFuLC5tYWluLWhlYWRlci1yb3cgLmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlOmhvdmVyIC5oYW1idXJnZXItaWNvbiBzcGFue2JhY2tncm91bmQ6dmFyKC0tdGV4dC1wcmltYXJ5KX0uZmxvYXRpbmctc2lkZWJhci10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYmY1ZjI7Ym94LXNoYWRvdzowIDNweCAxMnB4ICMwMDAwMDAxYX0uZmxvYXRpbmctc2lkZWJhci10b2dnbGUuYWN0aXZle29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGVhc2V9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjkyKX0uaGFtYnVyZ2VyLWljb257d2lkdGg6MTZweDtoZWlnaHQ6MTJweDtwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5oYW1idXJnZXItaWNvbiBzcGFue2Rpc3BsYXk6YmxvY2s7d2lkdGg6MTAwJTtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4zcyB2YXIoLS1lYXNlLW91dC1leHBvKSxvcGFjaXR5IC4ycyBlYXNlLGJhY2tncm91bmQgLjE1cyBlYXNlO3RyYW5zZm9ybS1vcmlnaW46Y2VudGVyfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZTpob3ZlciAuaGFtYnVyZ2VyLWljb24gc3BhbntiYWNrZ3JvdW5kOnZhcigtLXRleHQtcHJpbWFyeSl9LmZsb2F0aW5nLXNpZGViYXItdG9nZ2xlLmFjdGl2ZSAuaGFtYnVyZ2VyLWljb24gc3BhbjpudGgtY2hpbGQoMSl7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNXB4KSByb3RhdGUoNDVkZWcpfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDIpe29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGVYKDApfS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZS5hY3RpdmUgLmhhbWJ1cmdlci1pY29uIHNwYW46bnRoLWNoaWxkKDMpe3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01cHgpIHJvdGF0ZSgtNDVkZWcpfS50b3BiYXItbG9nby1pY29ue3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTQ1ZGVnLCNkNDc4NWEsI2I4NTczYSwjYTA0YTJlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy14cyk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToxMHB4O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6ODAwO2JveC1zaGFkb3c6MCAxcHggNHB4ICNiODVjMzc0MCxpbnNldCAwIDFweCAjZmZmMztsZXR0ZXItc3BhY2luZzotLjAyZW07ZmxleC1zaHJpbms6MH0uc3RhdHVzLWRvdHt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpfS5zdGF0dXMtZG90LmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpO2JveC1zaGFkb3c6MCAwIDhweCB2YXIoLS1zdWNjZXNzKX0ubWFpbi1sYXlvdXR7ZGlzcGxheTpmbGV4O2ZsZXg6MTttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmctbGVmdDowO3RyYW5zaXRpb246cGFkZGluZy1sZWZ0IHZhcigtLXRyYW5zaXRpb24tbm9ybWFsKX0uc2lkZWJhci1vcGVuOm5vdCguc2lkZWJhci1waW5uZWQpIC5pbnB1dC1wYW5lbHtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UsdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjJzfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZHtwYWRkaW5nLWxlZnQ6dmFyKC0tc2lkZWJhci13aWR0aCk7dHJhbnNpdGlvbjpwYWRkaW5nLWxlZnQgLjNzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZCAuZmxvYXRpbmctc2lkZWJhci10b2dnbGV7ZGlzcGxheTpub25lfS5tYWluLWxheW91dC5zaWRlYmFyLXBpbm5lZC5zaWRlYmFyLWNvbGxhcHNlZHtwYWRkaW5nLWxlZnQ6dmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpfS5kcmF3ZXItYmFja2Ryb3B7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDt6LWluZGV4OjQ0O2JhY2tncm91bmQ6dmFyKC0tYmctb3ZlcmxheSk7b3BhY2l0eTowO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4zNXMgdmFyKC0tZWFzZS1pbi1vdXQtc21vb3RoKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig0cHgpfS5kcmF3ZXItYmFja2Ryb3Aub3BlbntvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0bztiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpfS5zaWRlYmFye3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDtib3R0b206MDt6LWluZGV4OjQ1O3dpZHRoOm1pbih2YXIoLS1zaWRlYmFyLXdpZHRoKSxjYWxjKDEwMHZ3IC0gMjBweCkpO21heC13aWR0aDo5MHZ3O2JhY2tncm91bmQ6I2ZmZmJmNWY1O2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4taGVpZ2h0OjA7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzo0cHggMCAzMnB4ICM1OTNhMjAxNDt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMzVzIHZhcigtLWVhc2Utb3V0LWV4cG8pLGJveC1zaGFkb3cgLjM1cyBlYXNlLG9wYWNpdHkgLjI1cyBlYXNlO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowfS5zaWRlYmFyLm9wZW57dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKTtib3gtc2hhZG93OjhweCAwIDQwcHggIzU5M2EyMDI2O3BvaW50ZXItZXZlbnRzOmF1dG87b3BhY2l0eToxfS5zaWRlYmFyLnBpbm5lZHt0cmFuc2Zvcm06dHJhbnNsYXRlKDApO3BvaW50ZXItZXZlbnRzOmF1dG87b3BhY2l0eToxO2JveC1zaGFkb3c6bm9uZTt0cmFuc2l0aW9uOndpZHRoIC4zcyB2YXIoLS1lYXNlLW91dC1leHBvKSx0cmFuc2Zvcm0gLjM1cyB2YXIoLS1lYXNlLW91dC1leHBvKSxib3gtc2hhZG93IC4zNXMgZWFzZSxvcGFjaXR5IC4yNXMgZWFzZX0uc2lkZWJhci5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVyLWFjdGlvbnMgLnNpZGViYXItY2xvc2V7ZGlzcGxheTpub25lfS5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWR7d2lkdGg6dmFyKC0tc2lkZWJhci1jb2xsYXBzZWQtd2lkdGgpfS5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVye3BhZGRpbmc6MTRweCA4cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6MH0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlci1tYWluLC5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItaGVhZGVyLW1vcmUsLnNpZGViYXIucGlubmVkLmNvbGxhcHNlZCAuc2lkZWJhci1waW4tdG9nZ2xlLC5zaWRlYmFyLnBpbm5lZC5jb2xsYXBzZWQgLnNpZGViYXItZm9vdGVye2Rpc3BsYXk6bm9uZX0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWhlYWRlci1hY3Rpb25ze2dhcDowO3dpZHRoOjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWJvZHl7cGFkZGluZzo4cHggNHB4O292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbn0uc2lkZWJhci5waW5uZWQuY29sbGFwc2VkIC5zaWRlYmFyLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjB9LnNpZGViYXItY29sbGFwc2VkLXRpbGVze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDthbGlnbi1pdGVtczpjZW50ZXJ9LnNpZGViYXItY29sbGFwc2VkLXRpbGV7d2lkdGg6MzZweDtoZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjExcHg7Ym9yZGVyOi41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMzIpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjZDQ3ODVhLCNiODU3M2EsI2EwNGEyZSk7Y29sb3I6I2ZmZjtmb250LXNpemU6MTRweDtmb250LXdlaWdodDo3MDA7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO2xldHRlci1zcGFjaW5nOi0uMDFlbTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MDtib3gtc2hhZG93OjAgMXB4IDJweCAjYjg1YzM3MzgsaW5zZXQgMCAxcHggI2ZmZmZmZjQ3O3RyYW5zaXRpb246ZmlsdGVyIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm94LXNoYWRvdyAuMjJzIGVhc2UsdHJhbnNmb3JtIC4yMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnNpZGViYXItY29sbGFwc2VkLXRpbGU6aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoMS4wNik7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDRweCAxMHB4IC0zcHggI2I4NWMzNzVjLGluc2V0IDAgMXB4ICNmZmZmZmY1Mn0uc2lkZWJhci1jb2xsYXBzZWQtdGlsZS5oaXN0b3J5e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjZThkM2MwLCNkM2I2OWQsI2I4OTQ3OCk7Y29sb3I6IzU5M2EyMGUwO2JveC1zaGFkb3c6MCAxcHggMnB4ICM3ODU4MzgyZSxpbnNldCAwIDFweCAjZmZmZmZmNmJ9LnNpZGViYXItY29sbGFwc2VkLXRpbGUuaGlzdG9yeTpob3Zlcntib3gtc2hhZG93OjAgNHB4IDEwcHggLTNweCAjNzg1ODM4NGQsaW5zZXQgMCAxcHggI2ZmZmZmZjdhfS5zaWRlYmFyLWNvbGxhcHNlZC10aWxlLmFkZHtiYWNrZ3JvdW5kOiNiODVjMzcwZjtib3JkZXI6MS41cHggZGFzaGVkIHJnYmEoMTg0LDkyLDU1LC41KTtjb2xvcjojYTA0YTJlO2JveC1zaGFkb3c6bm9uZTttYXJnaW4tdG9wOjJweH0uc2lkZWJhci1jb2xsYXBzZWQtdGlsZS5hZGQ6aG92ZXJ7ZmlsdGVyOm5vbmU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7YmFja2dyb3VuZDojYjg1YzM3MWY7Ym9yZGVyLWNvbG9yOiNiODVjMzdiODtib3gtc2hhZG93OjAgM3B4IDhweCAtM3B4ICNiODVjMzc1Mn0uc2lkZWJhci1jb2xsYXBzZWQtdGlsZS5hZGQ6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC45NCl9LnNpZGViYXItY29sbGFwc2VkLXRpbGUuYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjZDI3MzU4LCNiMzU0MzQsIzkzNDEyOCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDAgMCAycHggI2M1NjUzZDRkLDAgNXB4IDE0cHggLTRweCAjYTA0YTJlNzMsaW5zZXQgMCAxcHggI2ZmZjZ9LnNpZGViYXItY29sbGFwc2VkLXRpbGU6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC45NCk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDhzfS5zaWRlYmFyLXRpbGUtYnViYmxle3Bvc2l0aW9uOmZpeGVkO21heC13aWR0aDozMjBweDttaW4td2lkdGg6ODBweDtwYWRkaW5nOjlweCAxM3B4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE0NWRlZywjZmZmYmY1ZmMsI2ZjZjRlOWZjKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUsIHJnYmEoMTIwLCA4OCwgNTYsIC4xOCkpO2JvcmRlci1yYWRpdXM6MTRweDtib3gtc2hhZG93OjAgNnB4IDI0cHggLTRweCAjNTkzYTIwMzgsMCAycHggNnB4ICM1OTNhMjAxNCxpbnNldCAwIDFweCAjZmZmZmZmYTY7Zm9udC1zaXplOjEzcHg7bGluZS1oZWlnaHQ6MS40Njtjb2xvcjojMzgyNDEyZWI7ei1pbmRleDoyMDA7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNHB4KTt0cmFuc2l0aW9uOm9wYWNpdHkgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMThzIHZhcigtLWVhc2Utb3V0LWV4cG8sIGVhc2UpO3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KSBzYXR1cmF0ZSgxNjAlKX0uc2lkZWJhci10aWxlLWJ1YmJsZS52aXNpYmxle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApfS5zaWRlYmFyLXRpbGUtYnViYmxlOmJlZm9yZXtjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTZweDt0b3A6dmFyKC0tYnViYmxlLXRhaWwteSwgNTAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSByb3RhdGUoNDVkZWcpO3dpZHRoOjExcHg7aGVpZ2h0OjExcHg7YmFja2dyb3VuZDppbmhlcml0O2JvcmRlci1sZWZ0OjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlLCByZ2JhKDEyMCwgODgsIDU2LCAuMTgpKTtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlLCByZ2JhKDEyMCwgODgsIDU2LCAuMTgpKTtib3gtc2hhZG93Oi0ycHggMnB4IDVweCAtMnB4ICM1OTNhMjAxNH0uc2lkZWJhci1jb2xsYXBzZS10b2dnbGV7ZmxleC1zaHJpbms6MDt0cmFuc2l0aW9uOmNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNpZGViYXItY29sbGFwc2UtdG9nZ2xlLmNvbGxhcHNlZHtjb2xvcjp2YXIoLS1wcmltYXJ5KX0uc2lkZWJhci1waW4tdG9nZ2xle2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSAuM3MgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnNpZGViYXItcGluLXRvZ2dsZS5waW5uZWR7YmFja2dyb3VuZDojYzU2NTNkMWY7Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKX0uc2lkZWJhci1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjEycHggMTRweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtiYWNrZ3JvdW5kOiNmZmZiZjVjYztmbGV4LXNocmluazowO21pbi1oZWlnaHQ6NTJweDtnYXA6MTBweH0uc2lkZWJhci1oZWFkZXItbWFpbntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo5cHg7bWluLXdpZHRoOjA7ZmxleDoxfS5zaWRlYmFyLWhlYWRlci1hY3Rpb25ze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtmbGV4LXNocmluazowfS5zaWRlYmFyLWhlYWRlci1tb3Jle3Bvc2l0aW9uOnJlbGF0aXZlfS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvd3tkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7dG9wOmNhbGMoMTAwJSArIDZweCk7cmlnaHQ6MDttaW4td2lkdGg6MTUwcHg7YmFja2dyb3VuZDojZmZmYmY1ZmE7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCkgc2F0dXJhdGUoMTgwJSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym94LXNoYWRvdzowIDRweCAyMHB4ICM1OTNhMjAxZjtwYWRkaW5nOjRweDt6LWluZGV4OjYwfS5zaWRlYmFyLWhlYWRlci1vdmVyZmxvdy5vcGVue2Rpc3BsYXk6YmxvY2s7YW5pbWF0aW9uOmZhZGVTbGlkZURvd24gLjE1cyB2YXIoLS1lYXNlLW91dC1leHBvKX0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3cgLm92ZXJmbG93LWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3dpZHRoOjEwMCU7cGFkZGluZzo5cHggMTJweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOm5vbmU7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2N1cnNvcjpwb2ludGVyO2JvcmRlci1yYWRpdXM6NnB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVtOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVtOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk3KX1Aa2V5ZnJhbWVzIGZhZGVTbGlkZURvd257MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC00cHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19LnNpZGViYXItbG9nb3V0e2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6Ljc7dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uc2lkZWJhci1sb2dvdXQ6aG92ZXJ7b3BhY2l0eToxO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uc2lkZWJhci1zd2l0Y2gtc2VydmVye2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6Ljc7dHJhbnNpdGlvbjpvcGFjaXR5IHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uc2lkZWJhci1zd2l0Y2gtc2VydmVyOmhvdmVye29wYWNpdHk6MTtjb2xvcjp2YXIoLS1wcmltYXJ5LCB2YXIoLS10ZXh0LXNlY29uZGFyeSkpfS5sb2dpbi1zd2l0Y2gtc2VydmVye21hcmdpbi10b3A6MTBweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo2cHg7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5sb2dpbi1zd2l0Y2gtc2VydmVyIHN2Z3tvcGFjaXR5Oi43NX0ubG9naW4tc3dpdGNoLXNlcnZlcjpob3Zlcntjb2xvcjp2YXIoLS1wcmltYXJ5LCB2YXIoLS10ZXh0LXByaW1hcnkpKX0uc2lkZWJhci10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzotLjAxZW07d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXgtc2hyaW5rOjB9LnNlc3Npb24tY291bnR7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7cGFkZGluZzozcHggOHB4O2JvcmRlci1yYWRpdXM6MTBweDtmb250LXdlaWdodDo2MDB9LnNpZGViYXItY2xvc2V7ZmxleC1zaHJpbms6MH0uZmlsZS1leHBsb3JlcntmbGV4OjE7b3ZlcmZsb3cteTphdXRvO3BhZGRpbmc6OHB4IDA7bWluLWhlaWdodDowfS5maWxlLWV4cGxvcmVyLmVtcHR5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjI0cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44MTI1cmVtO3RleHQtYWxpZ246Y2VudGVyfS5maWxlLXRyZWV7Zm9udC1zaXplOi44MTI1cmVtfS50cmVlLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6NHB4IDEycHg7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLXJhZGl1czo2cHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7dXNlci1zZWxlY3Q6bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9LnRyZWUtaXRlbTpob3ZlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmZmZmIzLCNmZmZjZjc2Nik7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmZmZmYjN9LnRyZWUtaXRlbS5hY3RpdmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjdlYiwjZmZmNGU4YmYpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDAgMCAxcHggI2M1NjUzZDM4LDAgM3B4IDEwcHggLTNweCAjYzU2NTNkNDAsaW5zZXQgMCAxcHggI2ZmZmZmZmQ5fS50cmVlLXRvZ2dsZXtmbGV4LXNocmluazowO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRyZWUtdG9nZ2xlLm9wZW57dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LnRyZWUtdG9nZ2xlLmVtcHR5e3Zpc2liaWxpdHk6aGlkZGVufS50cmVlLWljb257ZmxleC1zaHJpbms6MDtmb250LXNpemU6MXJlbTttYXJnaW4tcmlnaHQ6NnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnRyZWUtbmFtZXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmbGV4OjE7bWluLXdpZHRoOjB9LnRyZWUtY2hpbGRyZW57ZGlzcGxheTpub25lfS50cmVlLWNoaWxkcmVuLm9wZW57ZGlzcGxheTpibG9ja30uZmlsZS1leHBsb3Jlci1oZWFkZXJ7cGFkZGluZzoxMHB4IDE0cHggNnB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4LXNocmluazowO292ZXJmbG93LXg6YXV0bztvdmVyZmxvdy15OmhpZGRlbjtzY3JvbGxiYXItd2lkdGg6dGhpbn0uZmlsZS1leHBsb3Jlci1wYXRoe2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleDoxO21pbi13aWR0aDowO2ZvbnQtd2VpZ2h0OjUwMH1pbnB1dC5maWxlLWV4cGxvcmVyLXBhdGh7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czo4cHg7cGFkZGluZzo2cHggMTBweDtoZWlnaHQ6MzBweDtsaW5lLWhlaWdodDoxLjI7Y3Vyc29yOnRleHQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtvdXRsaW5lOm5vbmU7dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aWR0aDptYXgtY29udGVudDttaW4td2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3h9aW5wdXQuZmlsZS1leHBsb3Jlci1wYXRoOjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtvcGFjaXR5Oi42fWlucHV0LmZpbGUtZXhwbG9yZXItcGF0aDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXIpO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX1pbnB1dC5maWxlLWV4cGxvcmVyLXBhdGg6Zm9jdXN7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3RleHQtb3ZlcmZsb3c6Y2xpcDtib3gtc2hhZG93OjAgMCAwIDNweCAjZDQ5ODYzMWZ9LmZpbGUtZXhwbG9yZXItcmVmcmVzaHtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjFyZW07cGFkZGluZzo0cHg7Ym9yZGVyLXJhZGl1czo0cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZpbGUtZXhwbG9yZXItcmVmcmVzaDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmZpbGUtc2lkZS1wYW5lbHtwb3NpdGlvbjpmaXhlZDtyaWdodDpjYWxjKC0xICogdmFyKC0tZmlsZS1wYW5lbC13aWR0aCkpO3RvcDowO2JvdHRvbTowO3dpZHRoOnZhcigtLWZpbGUtcGFuZWwtd2lkdGgpO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7ei1pbmRleDo1NTt0cmFuc2l0aW9uOnJpZ2h0IC4zcyB2YXIoLS1lYXNlLW91dC1leHBvKSxib3gtc2hhZG93IC4zcyBlYXNlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Ym94LXNoYWRvdzotNHB4IDAgMjRweCAjMDAwMDAwMWE7cGFkZGluZy10b3A6dmFyKC0td2FuZC1zYWZlLXRvcCk7cGFkZGluZy1ib3R0b206dmFyKC0td2FuZC1zYWZlLWJvdHRvbSl9LmZpbGUtc2lkZS1wYW5lbC5vcGVue3JpZ2h0OjA7Ym94LXNoYWRvdzotOHB4IDAgMzJweCAjNTkzYTIwMjZ9LmZpbGUtcGFuZWwtYmFja2Ryb3B7ZGlzcGxheTpub25lfUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5maWxlLXBhbmVsLWJhY2tkcm9we2Rpc3BsYXk6YmxvY2s7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kOiMyYTFjMTI0ZDt6LWluZGV4OjU0O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigycHgpfS5maWxlLXBhbmVsLWJhY2tkcm9wLm9wZW57b3BhY2l0eToxO3BvaW50ZXItZXZlbnRzOmF1dG99LnNpZGViYXItcGluLXRvZ2dsZXtkaXNwbGF5Om5vbmV9fS5maWxlLXNpZGUtcGFuZWwtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47cGFkZGluZzoxMnB4IDE0cHggMTBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtmbGV4LXNocmluazowO2dhcDo4cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCNmZmY2LCNmZmYwKX0uZmlsZS1zaWRlLXBhbmVsLXRpdGxlLWdyb3Vwe2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttaW4td2lkdGg6MDtmbGV4OjF9LmZpbGUtc2lkZS1wYW5lbC1pY29ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6dmFyKC0tYWNjZW50KTtvcGFjaXR5Oi44NX0uZmlsZS1zaWRlLXBhbmVsLXRpdGxle2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi4wMWVtfS5maWxlLXNpZGUtcGFuZWwtaGVhZGVyLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MnB4O2ZsZXgtc2hyaW5rOjB9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRue3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtwYWRkaW5nOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6OHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRuOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1zdWJ0bGUpfS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NCl9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRuLmFjdGl2ZXtjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXItY29sb3I6I2Q0OTg2MzU5fS5maWxlLXNpZGUtcGFuZWwtaWNvbmJ0bi5jbG9zZTpob3Zlcntjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JhY2tncm91bmQ6I2RjNDY0NjE0O2JvcmRlci1jb2xvcjojZGM0NjQ2NDB9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRuIC53YW5kLWljb257ZGlzcGxheTpibG9ja30uZmlsZS1zaWRlLXBhbmVsLWljb25idG46aG92ZXIgLndhbmQtaWNvbi1yZWZyZXNoe3RyYW5zZm9ybTpyb3RhdGUoNjBkZWcpO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LmZpbGUtc2lkZS1wYW5lbC1ib2R5e2ZsZXg6MTttaW4taGVpZ2h0OjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzpoaWRkZW59LmdpdC1zdGF0dXMtYmFkZ2V7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6MXB4IDVweDtib3JkZXItcmFkaXVzOjNweDttaW4td2lkdGg6MThweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pfS5naXQtYWRkZWR7YmFja2dyb3VuZDojMjI4YjIyMjY7Y29sb3I6IzIyOGIyMn0uZ2l0LW1vZGlmaWVke2JhY2tncm91bmQ6I2ZmYTUwMDI2O2NvbG9yOm9yYW5nZX0uZ2l0LWRlbGV0ZWR7YmFja2dyb3VuZDojZGMxNDNjMjY7Y29sb3I6I2RjMTQzY30uZ2l0LXJlbmFtZWR7YmFja2dyb3VuZDojNDY4MmI0MjY7Y29sb3I6IzQ2ODJiNH0uZ2l0LXVuc3RhZ2Vke2JhY2tncm91bmQ6I2ZmOGMwMDI2O2NvbG9yOiNmZjhjMDB9LmdpdC11bnN0YWdlZC1kZWxldGVke2JhY2tncm91bmQ6I2RjMTQzYzI2O2NvbG9yOiNkYzE0M2N9LmdpdC11bnRyYWNrZWR7YmFja2dyb3VuZDojODA4MDgwMjY7Y29sb3I6Z3JheX0uZmlsZS1zZWFyY2gtYm94e3BhZGRpbmc6OHB4IDEycHggMTBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDowO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2ZsZXgtc2hyaW5rOjA7cG9zaXRpb246cmVsYXRpdmV9LmZpbGUtc2VhcmNoLWljb257cG9zaXRpb246YWJzb2x1dGU7bGVmdDoyMnB4O3RvcDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cG9pbnRlci1ldmVudHM6bm9uZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtvcGFjaXR5Oi43fS5maWxlLXNlYXJjaC1pbnB1dHtmbGV4OjE7cGFkZGluZzo3cHggMzJweCA3cHggMzBweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7b3V0bGluZTpub25lO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZSxiYWNrZ3JvdW5kLWNvbG9yIC4xNXMgZWFzZSxib3gtc2hhZG93IC4xNXMgZWFzZX0uZmlsZS1zZWFyY2gtaW5wdXQ6Zm9jdXN7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3gtc2hhZG93OjAgMCAwIDNweCAjZDQ5ODYzMWZ9LmZpbGUtc2VhcmNoLWlucHV0OjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uZmlsZS1zZWFyY2gtY2xlYXJ7cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MThweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjRweDt3aWR0aDoyMnB4O2hlaWdodDoyMnB4O2JvcmRlci1yYWRpdXM6NTAlO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2Rpc3BsYXk6bm9uZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLGNvbG9yIC4xNXMgZWFzZX0uZmlsZS1zZWFyY2gtY2xlYXI6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uZmlsZS1zZWFyY2gtY2xlYXIudmlzaWJsZXtkaXNwbGF5OmlubGluZS1mbGV4fS5maWxlLXNlYXJjaC1jbGVhcjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnNpZGViYXItYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MTttaW4taGVpZ2h0OjA7b3ZlcmZsb3cteTphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO3Bvc2l0aW9uOnJlbGF0aXZlfS5zaWRlYmFyLWludHJve2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZsZXgtc2hyaW5rOjB9LnNlc3Npb25zLWxpc3R7ZmxleDoxIDAgYXV0bzttaW4taGVpZ2h0OjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtvdmVyZmxvdzp2aXNpYmxlO3BhZGRpbmc6MTBweCAxMHB4IDEycHh9I3Nlc3Npb25zLXBhbmVse2Rpc3BsYXk6Y29udGVudHN9LnNlc3Npb25zLWxpc3Q6ZW1wdHk6YmVmb3Jle2NvbnRlbnQ6Ilw2NjgyXDY1ZTBcNGYxYVw4YmRkIjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLWhlaWdodDoyMDBweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6Ljg3NXJlbX0uc2Vzc2lvbi1ncm91cHttYXJnaW4tYm90dG9tOjE0cHh9LnNlc3Npb24tZ3JvdXA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LnNlc3Npb24tZ3JvdXAtdGl0bGV7cGFkZGluZzo0cHggNnB4IDEwcHg7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzouMDhlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweH0uc2Vzc2lvbi1ncm91cC10aXRsZTpiZWZvcmV7Y29udGVudDoiIjt3aWR0aDozcHg7aGVpZ2h0OjEycHg7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO29wYWNpdHk6LjY1O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfS5jbGF1ZGUtaGlzdG9yeS10b2dnbGV7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmNvbG9yIC4xNXMgZWFzZX0uY2xhdWRlLWhpc3RvcnktdG9nZ2xlOmhvdmVye2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmNsYXVkZS1oaXN0b3J5LXRvZ2dsZSAuY2hldnJvbntkaXNwbGF5OmlubGluZS1ibG9jazt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIHZhcigtLWVhc2Utb3V0LWV4cG8pO2ZvbnQtc2l6ZTouNjg3NXJlbTttYXJnaW4tcmlnaHQ6NHB4fS5jbGF1ZGUtaGlzdG9yeS10b2dnbGUgLmhpc3RvcnktY291bnR7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7cGFkZGluZzoycHggN3B4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO21hcmdpbi1sZWZ0OjZweH0uY2xhdWRlLWhpc3RvcnktbG9hZGluZ3twYWRkaW5nOjE2cHggOHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouODEyNXJlbTt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXN0eWxlOml0YWxpY30uc2lkZWJhci1oaXN0b3J5LXNlY3Rpb24tbGFiZWx7cGFkZGluZzo4cHggMTBweCA0cHg7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDRlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7b3BhY2l0eTouNX0uY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWhlYWRlcnttYXJnaW4tdG9wOjZweDtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lfS5jbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktaGVhZGVyIC5jaGV2cm9ue2ZvbnQtc2l6ZTouNjg3NXJlbTttYXJnaW4tcmlnaHQ6NHB4fS5jbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktdGl0bGV7Zm9udC1zaXplOi42ODc1cmVtO3BhZGRpbmc6NnB4IDhweCA2cHggMTJweDtvcGFjaXR5Oi44O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVufS5jbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktaGVhZGVyIC5jbGF1ZGUtaGlzdG9yeS1kaXJlY3RvcnktdGl0bGU6YmVmb3Jle2Rpc3BsYXk6bm9uZX0uY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWxhYmVse21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWNsZWFyLWJ0bntvcGFjaXR5Oi45O2ZsZXgtc2hyaW5rOjB9LmNsYXVkZS1oaXN0b3J5LXByZXZpZXd7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5jbGF1ZGUtaGlzdG9yeS1pdGVte29wYWNpdHk6Ljg1O3RyYW5zaXRpb246b3BhY2l0eSAuMTVzIGVhc2UsYmFja2dyb3VuZCAuMTVzIGVhc2V9LmNsYXVkZS1oaXN0b3J5LWl0ZW06aG92ZXJ7b3BhY2l0eToxO2JhY2tncm91bmQ6I2ZmZmRmYWY1fS5zZXNzaW9uLWl0ZW17d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7YmFja2dyb3VuZDojZmZmY2Y3ZWI7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjEwcHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtwYWRkaW5nOjEwcHggMTJweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuMnMgZWFzZSx0cmFuc2Zvcm0gLjFzIGVhc2U7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTttYXJnaW4tYm90dG9tOjZweDtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59LnNlc3Npb24taXRlbTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjZweDtib3R0b206NnB4O3dpZHRoOjNweDtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZVkoMCk7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2U7Ym9yZGVyLXJhZGl1czoycHh9LnNlc3Npb24taXRlbS1yb3d7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfS5zZXNzaW9uLWl0ZW0tY29udGVudHtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOmluaGVyaXQ7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIHZhcigtLWVhc2Utb3V0LWV4cG8pLGJhY2tncm91bmQgLjE4cyBlYXNlO3dpbGwtY2hhbmdlOnRyYW5zZm9ybX0uc2Vzc2lvbi1pdGVtLnN3aXBlZCAuc2Vzc2lvbi1pdGVtLWNvbnRlbnR7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNzJweCk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjdmNSwjZmNmNmVkZjApfS5zZXNzaW9uLXN3aXBlLWJne3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ei1pbmRleDoxO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpzdHJldGNoO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjE4cyBlYXNlfS5zZXNzaW9uLWl0ZW0uc3dpcGVkIC5zZXNzaW9uLXN3aXBlLWJne29wYWNpdHk6MTtwb2ludGVyLWV2ZW50czphdXRvfS5zZXNzaW9uLXN3aXBlLWRlbGV0ZXt3aWR0aDo3MnB4O2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlcik7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlKTtkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6M3B4O2ZvbnQ6aW5oZXJpdDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2N1cnNvcjpwb2ludGVyfS5zZXNzaW9uLXN3aXBlLWRlbGV0ZSBzdmd7ZmxleC1zaHJpbms6MH0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2t7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXNocmluazowO3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7bWFyZ2luLXJpZ2h0OjhweDtwb3NpdGlvbjpyZWxhdGl2ZX0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2sgaW5wdXR7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtvcGFjaXR5OjA7Y3Vyc29yOnBvaW50ZXJ9LnNlc3Npb24tbWFuYWdlLWNoZWNrIHNwYW57d2lkdGg6MThweDtoZWlnaHQ6MThweDtib3JkZXItcmFkaXVzOjZweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4yMik7YmFja2dyb3VuZDojZmZmYmY1OGM7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmNjtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZX0uc2Vzc2lvbi1tYW5hZ2UtY2hlY2s6aG92ZXIgc3BhbntiYWNrZ3JvdW5kOiNmZmZiZjVjYztib3JkZXItY29sb3I6IzdkNWIzOTU5fS5zZXNzaW9uLW1hbmFnZS1jaGVjayBpbnB1dDpjaGVja2VkK3NwYW57YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS5zZXNzaW9uLW1hbmFnZS1jaGVjayBpbnB1dDpjaGVja2VkK3NwYW46YWZ0ZXJ7Y29udGVudDoiXDI3MTMiO2NvbG9yOiNmZmY7Zm9udC1zaXplOi43NXJlbTtmb250LXdlaWdodDo3MDB9LnNlc3Npb24taXRlbS5zZWxlY3RlZHtib3JkZXItY29sb3I6I2M1NjUzZDU5O2JhY2tncm91bmQ6I2ZmZjVlZWY1fS5zZXNzaW9uLWl0ZW0tcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fUBrZXlmcmFtZXMgc2Vzc2lvbi1kZWxldGUtY29sbGFwc2V7dG97bWF4LWhlaWdodDowO29wYWNpdHk6MDttYXJnaW4tYm90dG9tOjA7cGFkZGluZy10b3A6MDtwYWRkaW5nLWJvdHRvbTowO2JvcmRlci13aWR0aDowfX0uc2Vzc2lvbi1pdGVtLmRlbGV0aW5ne2FuaW1hdGlvbjpzZXNzaW9uLWRlbGV0ZS1jb2xsYXBzZSAuM3MgZWFzZS1vdXQgZm9yd2FyZHM7b3ZlcmZsb3c6aGlkZGVuO21heC1oZWlnaHQ6MTIwcHg7cG9pbnRlci1ldmVudHM6bm9uZX0uc2Vzc2lvbi1tYWlue2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDozcHg7cGFkZGluZy1yaWdodDo2MHB4fS5zZXNzaW9uLXRpdGxlLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6OHB4fS5zZXNzaW9uLXRpdGxlLXJvdyAuc2Vzc2lvbi10aXRsZSwuc2Vzc2lvbi10aXRsZS1yb3cgLnNlc3Npb24tY29tbWFuZHtmbGV4OjE7bWluLXdpZHRoOjB9LnNlc3Npb24tdGltZXtmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt3aGl0ZS1zcGFjZTpub3dyYXA7bGluZS1oZWlnaHQ6MS40O3BhZGRpbmctdG9wOjFweH0uc2Vzc2lvbi1hY3Rpdml0eXtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tYWNjZW50KTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bGluZS1oZWlnaHQ6MS4zO29wYWNpdHk6Ljg1fS5zZXNzaW9uLWRlc2NyaXB0aW9ue2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7bGluZS1oZWlnaHQ6MS4zNX0uc2Vzc2lvbi1yZWNvdmVyeS1oaW50e2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2JhY2tncm91bmQ6Izk2NzY1NTE0O3BhZGRpbmc6MXB4IDVweDtib3JkZXItcmFkaXVzOjNweH0uc2Vzc2lvbi1hY3Rpb25ze3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjRweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7ZmxleC1zaHJpbms6MH0uc2Vzc2lvbi1hY3Rpb24tYnRue3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7bWluLWhlaWdodDoyOHB4O21pbi13aWR0aDoyOHB4O3BhZGRpbmc6MDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOi44MTI1cmVtO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7dHJhbnNpdGlvbjphbGwgLjJzIGVhc2U7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXJ9LnNlc3Npb24tYWN0aW9uLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTUxYTtjb2xvcjp2YXIoLS1hY2NlbnQpfS5zZXNzaW9uLWFjdGlvbi1idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMXN9LnNlc3Npb24tYWN0aW9uLWJ0biBzdmd7ZmxleC1zaHJpbms6MH0uc2Vzc2lvbi1hY3Rpb24tYnRuLmRlbGV0ZS1idG46aG92ZXJ7YmFja2dyb3VuZDojZTc0YzNjMTQ7Y29sb3I6I2QzNTI0NH0uc2Vzc2lvbi1hY3Rpb24tYnRuLm1lcmdlLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiMyZjgwZWQxYTtjb2xvcjojMmY4MGVkfS5zZXNzaW9uLWtpbmQtYmFkZ2Uud29ya3RyZWUtbWVyZ2V7YmFja2dyb3VuZDojMmY4MGVkMWY7Y29sb3I6IzJmODBlZH0uc2Vzc2lvbi1raW5kLWJhZGdlLndvcmt0cmVlLW1lcmdlLmZhaWxlZHtiYWNrZ3JvdW5kOiNlNzRjM2MxZjtjb2xvcjojZDM1MjQ0fS5zZXNzaW9uLWtpbmQtYmFkZ2Uud29ya3RyZWUtbWVyZ2UubWVyZ2Vke2JhY2tncm91bmQ6IzI3YWU2MDFmO2NvbG9yOiMyMTk2NTN9LnNlc3Npb24ta2luZC1iYWRnZS53b3JrdHJlZS1tZXJnZS5tZXJnaW5nLC5zZXNzaW9uLWtpbmQtYmFkZ2Uud29ya3RyZWUtbWVyZ2UuY2hlY2tpbmd7YmFja2dyb3VuZDojZjI5OTRhMWY7Y29sb3I6I2MxN2MyYn0ud29ya3RyZWUtbWVyZ2UtY29udGVudHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMHB4fS53b3JrdHJlZS1tZXJnZS1yb3d7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxNnB4O3BhZGRpbmc6MTBweCAxMnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6I2ZmZmZmZjgwO2ZvbnQtc2l6ZTouODc1cmVtfS53b3JrdHJlZS1tZXJnZS1yb3cgc3Bhbntjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9Lndvcmt0cmVlLW1lcmdlLXJvdyBzdHJvbmd7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3b3JkLWJyZWFrOmJyZWFrLWFsbDt0ZXh0LWFsaWduOnJpZ2h0fS53b3JrdHJlZS1tZXJnZS1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOjEwcHg7bWFyZ2luLXRvcDoxNnB4fS53b3JrdHJlZS1tZXJnZS1tb2RhbHttYXgtd2lkdGg6NjIwcHh9Lm1vZGFsLXN1YnRpdGxle21hcmdpbi10b3A6NHB4O2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc2Vzc2lvbi1hY3Rpb24tYnRuW2Rpc2FibGVkXXtvcGFjaXR5Oi40NTtjdXJzb3I6bm90LWFsbG93ZWR9LnNlc3Npb24tYWN0aW9uLWJ0bltkaXNhYmxlZF06aG92ZXJ7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ud29ya3RyZWUtbWVyZ2UtYWN0aW9ucyAuYnRuW2Rpc2FibGVkXXtvcGFjaXR5Oi41O2N1cnNvcjpub3QtYWxsb3dlZH0ud29ya3RyZWUtbWVyZ2UtYWN0aW9ucyAuYnRuW2Rpc2FibGVkXTpob3Zlciwud29ya3RyZWUtbWVyZ2UtYWN0aW9ucyAuYnRuW2Rpc2FibGVkXTphY3RpdmV7dHJhbnNmb3JtOm5vbmV9Lndvcmt0cmVlLW1lcmdlLWFjdGlvbnMgLmJ0bnttaW4td2lkdGg6MTIwcHh9Lndvcmt0cmVlLW1lcmdlLW1vZGFsIC5tb2RhbC1ib2R5e21pbi1oZWlnaHQ6MjYwcHh9Lndvcmt0cmVlLW1lcmdlLW1vZGFsIC5lcnJvci1tZXNzYWdle21hcmdpbi10b3A6MTJweH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludHttYXJnaW4tdG9wOjB9Lndvcmt0cmVlLW1lcmdlLXJvdysuZmllbGQtaGludHttYXJnaW4tdG9wOjJweH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludCsuZmllbGQtaGludHttYXJnaW4tdG9wOjRweH0ud29ya3RyZWUtbWVyZ2UtbW9kYWwgLm1vZGFsLXN1YnRpdGxle21heC13aWR0aDo0MjBweH0ud29ya3RyZWUtbWVyZ2UtbW9kYWwgc3Ryb25ne2ZvbnQtd2VpZ2h0OjYwMH0ud29ya3RyZWUtbWVyZ2UtbW9kYWwgLm1vZGFsLWhlYWRlcnthbGlnbi1pdGVtczpmbGV4LXN0YXJ0fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IHB7bWFyZ2luOjB9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQgc3Ryb25ne2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9Lndvcmt0cmVlLW1lcmdlLXJvdyBzdHJvbmc6ZW1wdHk6YWZ0ZXJ7Y29udGVudDoiLSI7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQgY29kZXtmb250LWZhbWlseTppbmhlcml0fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS53b3JrdHJlZS1tZXJnZS1yb3c6Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDoycHh9Lndvcmt0cmVlLW1lcmdlLXJvdzpsYXN0LWNoaWxke21hcmdpbi1ib3R0b206MH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludC5tdXRlZHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludC5lcnJvcntjb2xvcjojZDM1MjQ0fS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC5maWVsZC1oaW50LnN1Y2Nlc3N7Y29sb3I6IzIxOTY1M30ud29ya3RyZWUtbWVyZ2UtY29udGVudCAuZmllbGQtaGludC53YXJuaW5ne2NvbG9yOiNjMTdjMmJ9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQuaW5mb3tjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLmZpZWxkLWhpbnQrLndvcmt0cmVlLW1lcmdlLXJvd3ttYXJnaW4tdG9wOjJweH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93Ky53b3JrdHJlZS1tZXJnZS1yb3d7bWFyZ2luLXRvcDowfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgc3Ryb25nIHNtYWxse2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgc3Ryb25nIGNvZGUsLndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyBzcGFuIGNvZGV7Zm9udC1mYW1pbHk6aW5oZXJpdH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IGNvZGV7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwYWRkaW5nOjB9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyBlbXtmb250LXN0eWxlOm5vcm1hbDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IHNtYWxsLC53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLm11dGVke2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLndhcm5pbmd7Y29sb3I6I2MxN2MyYn0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5zdWNjZXNze2NvbG9yOiMyMTk2NTN9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAuZXJyb3J7Y29sb3I6I2QzNTI0NH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5pbmZve2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC50cnVuY2F0ZXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5tb25vc3BhY2V7Zm9udC1mYW1pbHk6dWktbW9ub3NwYWNlLFNGTW9uby1SZWd1bGFyLE1lbmxvLE1vbmFjbyxDb25zb2xhcyxtb25vc3BhY2V9Lndvcmt0cmVlLW1lcmdlLWNvbnRlbnQgLndvcmt0cmVlLW1lcmdlLXJvdyAuc21hbGx7Zm9udC1zaXplOi44MTI1cmVtfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLm5vcm1hbHtmb250LXNpemU6Ljg3NXJlbX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5ibG9ja3tkaXNwbGF5OmJsb2NrfS53b3JrdHJlZS1tZXJnZS1jb250ZW50IC53b3JrdHJlZS1tZXJnZS1yb3cgLmlubGluZXtkaXNwbGF5OmlubGluZX0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5mbGV4e2Rpc3BsYXk6ZmxleH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5ncmlke2Rpc3BsYXk6Z3JpZH0ud29ya3RyZWUtbWVyZ2UtY29udGVudCAud29ya3RyZWUtbWVyZ2Utcm93IC5yb3VuZGVke2JvcmRlci1yYWRpdXM6OHB4fUBtZWRpYShob3Zlcjpob3Zlcil7LnNlc3Npb24taXRlbSAuc2Vzc2lvbi1hY3Rpb25ze29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2V9LnNlc3Npb24taXRlbTpob3ZlciAuc2Vzc2lvbi1hY3Rpb25zLC5zZXNzaW9uLWl0ZW0uYWN0aXZlIC5zZXNzaW9uLWFjdGlvbnMsLnNlc3Npb24taXRlbS5zd2lwZWQgLnNlc3Npb24tYWN0aW9uc3tvcGFjaXR5OjF9LnNlc3Npb24taXRlbSAuc2Vzc2lvbi1hY3Rpb25zOmhhcyguc2Vzc2lvbi1hY3Rpb24tYnRuW2RhdGEtYWN0aW9uPXJlc3VtZV0pe29wYWNpdHk6MX19QG1lZGlhKGhvdmVyOm5vbmUpey5zZXNzaW9uLWl0ZW0gLnNlc3Npb24tYWN0aW9uc3tvcGFjaXR5OjF9fS5zZXNzaW9uLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDojZmZmZGZhZjU7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1kZWZhdWx0KTtib3gtc2hhZG93OjAgMnB4IDhweCAjNTkzYTIwMTJ9LnNlc3Npb24taXRlbTpob3ZlcjpiZWZvcmV7b3BhY2l0eTouNTt0cmFuc2Zvcm06c2NhbGVZKDEpfS5zZXNzaW9uLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6I2ZmZjdmMGY1O2JvcmRlci1jb2xvcjojYzU2NTNkNGQ7Ym94LXNoYWRvdzowIDJweCA4cHggI2M1NjUzZDFhfS5zZXNzaW9uLWl0ZW06YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTkpO3RyYW5zaXRpb24tZHVyYXRpb246LjFzfS5zZXNzaW9uLWNvbW1hbmR7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZTouODEyNXJlbTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi0uMDFlbX0uc2Vzc2lvbi10aXRsZXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi44MTI1cmVtO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi0uMDFlbTtsaW5lLWhlaWdodDoxLjN9LnNlc3Npb24tbWV0YXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZsZXgtd3JhcDp3cmFwfS5zZXNzaW9uLXN0YXR1c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi42ODc1cmVtO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNlc3Npb24tc3RhdHVzLWRvdHt3aWR0aDo2cHg7aGVpZ2h0OjZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOmN1cnJlbnRDb2xvcjtmbGV4LXNocmluazowfS5zZXNzaW9uLXN0YXR1cy5ydW5uaW5nIC5zZXNzaW9uLXN0YXR1cy1kb3R7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzKTtib3gtc2hhZG93OjAgMCA1cHggdmFyKC0tc3VjY2Vzcy1nbG93KTthbmltYXRpb246c3RhdHVzLXB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlfS5zZXNzaW9uLXN0YXR1cy5leGl0ZWQgLnNlc3Npb24tc3RhdHVzLWRvdHtiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpfS5zZXNzaW9uLXN0YXR1cy5mYWlsZWQgLnNlc3Npb24tc3RhdHVzLWRvdHtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlcil9LnNlc3Npb24tc3RhdHVzLnN0b3BwZWQgLnNlc3Npb24tc3RhdHVzLWRvdHtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmcpfS5zZXNzaW9uLXN0YXR1cy5ydW5uaW5ne2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCk7Y29sb3I6dmFyKC0tc3VjY2Vzcyl9LnNlc3Npb24tc3RhdHVzLmZhaWxlZHtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCk7Y29sb3I6dmFyKC0tZGFuZ2VyKX0uc2Vzc2lvbi1zdGF0dXMuc3RvcHBlZHtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2NvbG9yOnZhcigtLXdhcm5pbmcpfS5zZXNzaW9uLXN0YXR1cy5wZXJtaXNzaW9uLWJsb2NrZWR7YmFja2dyb3VuZDojZjBhNTAwMjQ7Y29sb3I6I2QxOGIwMH0uc2Vzc2lvbi1zdGF0dXMuZXhpdGVkLC5zZXNzaW9uLXN0YXR1cy5hcmNoaXZlZHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH1Aa2V5ZnJhbWVzIHN0YXR1cy1wdWxzZXswJSx0b3tvcGFjaXR5OjF9NTAle29wYWNpdHk6LjV9fS5zZXNzaW9uLWlke2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi42MjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDojOTY3NjU1MWY7cGFkZGluZzoycHggNnB4O2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtd2VpZ2h0OjUwMH0uc2Vzc2lvbi1ncm91cC0taGlzdG9yeXttYXJnaW4tdG9wOmF1dG87cGFkZGluZy10b3A6NnB4fS5zZXNzaW9uLWhpc3RvcnktdG9nZ2xlIC5oaXN0b3J5LWNvdW50LmxvYWRpbmd7bGV0dGVyLXNwYWNpbmc6LjEyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwYWRkaW5nLWxlZnQ6MnB4O3BhZGRpbmctcmlnaHQ6MnB4fS5zZXNzaW9uLWhpc3RvcnktYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo0cHg7cGFkZGluZzoycHggMCA0cHg7YW5pbWF0aW9uOmhpc3RvcnlCb2R5RmFkZUluIC4yMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9QGtleWZyYW1lcyBoaXN0b3J5Qm9keUZhZGVJbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTJweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfX0uc2lkZWJhci1oaXN0b3J5LXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtwYWRkaW5nOjJweCA0cHggNnB4O2ZsZXgtc2hyaW5rOjB9LnNpZGViYXItaGlzdG9yeS1jbGVhcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXdlaWdodDo1MDB9LnNpZGViYXItaGlzdG9yeS1jbGVhcjpob3Zlcntjb2xvcjp2YXIoLS1kYW5nZXIpO2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKX0uc2lkZWJhci1oaXN0b3J5LXNjcm9sbHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9LnNpZGViYXItZm9vdGVye3BhZGRpbmc6MTJweCAxMnB4IDE0cHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTBweDtiYWNrZ3JvdW5kOiNmZmZiZjViM30uc2lkZWJhci1mb290ZXItYWN0aW9uc3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpdCxtaW5tYXgoNTZweCwxZnIpKTtnYXA6NHB4fS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NHB4O2ZvbnQtc2l6ZTouNjI1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtwYWRkaW5nOjdweCA0cHg7bWluLWhlaWdodDo0NnB4O2JvcmRlci1yYWRpdXM6OXB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0biBzdmd7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtmbGV4LXNocmluazowO29wYWNpdHk6Ljg1O3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG46aG92ZXJ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtiYWNrZ3JvdW5kOiM5Njc2NTUxNDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuOmhvdmVyIHN2Z3tvcGFjaXR5OjF9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMXN9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bi5oaWRkZW57ZGlzcGxheTpub25lfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5zaWRlYmFyLWxvZ291dHtwb3NpdGlvbjpyZWxhdGl2ZX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuc2lkZWJhci1sb2dvdXQ6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7bGVmdDotM3B4O3RvcDoyMiU7Ym90dG9tOjIyJTt3aWR0aDoxcHg7YmFja2dyb3VuZDp2YXIoLS1ib3JkZXItc3VidGxlKTtwb2ludGVyLWV2ZW50czpub25lfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5zaWRlYmFyLWxvZ291dDpob3Zlcntjb2xvcjp2YXIoLS1kYW5nZXIpO2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuc2lkZWJhci1sb2dvdXQ6aG92ZXIgc3Zne2NvbG9yOnZhcigtLWRhbmdlcil9LnRvcGJhci1idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NXB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi43NXJlbTtmb250LXdlaWdodDo1MDA7cGFkZGluZzo2cHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2hlaWdodDozMnB4O21pbi1oZWlnaHQ6MzJweDt3aGl0ZS1zcGFjZTpub3dyYXA7Ym94LXNpemluZzpib3JkZXItYm94O2xpbmUtaGVpZ2h0OjE7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnRvcGJhci1idG46aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmODA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0udG9wYmFyLWJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NSl9LnRvcGJhci1idG4uYWN0aXZle2JhY2tncm91bmQ6I2ZmZmZmZmIzO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC13ZWlnaHQ6NjAwO2JveC1zaGFkb3c6MCAxcHggNHB4ICM1OTNhMjAxYX0udG9wYmFyLWJ0bi5zcXVhcmV7d2lkdGg6MzJweDtwYWRkaW5nOjA7Zm9udC1zaXplOi44NzVyZW19I3Rlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZS10b3AuYWN0aXZle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjojYzU2NTNkMzN9I3Rlcm1pbmFsLWludGVyYWN0aXZlLXRvZ2dsZS10b3AuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDJlfS5idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NnB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi0uMDA1ZW07cGFkZGluZzowIDE2cHg7aGVpZ2h0OjM4cHg7bWluLWhlaWdodDozOHB4O2JvcmRlci1yYWRpdXM6MTBweDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO3doaXRlLXNwYWNlOm5vd3JhcDtwb3NpdGlvbjpyZWxhdGl2ZTt1c2VyLXNlbGVjdDpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZSxjb2xvciAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMThzIGVhc2UsdHJhbnNmb3JtIC4xOHMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudH0uYnRuOmZvY3Vze291dGxpbmU6bm9uZX0uYnRuOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lO2JveC1zaGFkb3c6MCAwIDAgMnB4IHZhcigtLWJnLXByaW1hcnkpLDAgMCAwIDRweCB2YXIoLS1hY2NlbnQpfS5idG46ZGlzYWJsZWQsLmJ0bltkaXNhYmxlZF17b3BhY2l0eTouNDU7Y3Vyc29yOm5vdC1hbGxvd2VkO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNmb3JtOm5vbmUhaW1wb3J0YW50O2JveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnR9LmJ0bi1wcmltYXJ5e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1hY2NlbnQtaG92ZXIpIDAlLHZhcigtLWFjY2VudCkgMTAwJSk7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlKTtib3gtc2hhZG93OjAgMXB4IDJweCAjYzU2NTNkNTIsMCA0cHggMTBweCAtMnB4ICNjNTY1M2Q1MixpbnNldCAwIDFweCAjZmZmZmZmMzgsaW5zZXQgMCAtMXB4ICM1OTNhMjAyZX0uYnRuLXByaW1hcnk6aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNkNjg1NWUgMCUsdmFyKC0tYWNjZW50LWhvdmVyKSAxMDAlKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgMnB4IDRweCAjYzU2NTNkNTIsMCA4cHggMjBweCAtNHB4ICNjNTY1M2Q2NixpbnNldCAwIDFweCAjZmZmZmZmNDcsaW5zZXQgMCAtMXB4ICM1OTNhMjAyZX0uYnRuLXByaW1hcnk6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1hY2NlbnQpIDAlLHZhcigtLWFjY2VudC1hY3RpdmUpIDEwMCUpO2JveC1zaGFkb3c6MCAxcHggMnB4ICNjNTY1M2Q0NyxpbnNldCAwIDFweCAjNTkzYTIwMmU7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5idG4tc2Vjb25kYXJ5e2JhY2tncm91bmQ6IzdkNWIzOTE0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tc2Vjb25kYXJ5OmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTI0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmJ0bi1zZWNvbmRhcnk6YWN0aXZle2JhY2tncm91bmQ6IzdkNWIzOTMzO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uYnRuLWdob3N0e2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uYnRuLWdob3N0OmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTE0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmJ0bi1naG9zdDphY3RpdmV7YmFja2dyb3VuZDojN2Q1YjM5MjQ7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5idG4tZGFuZ2Vye2JhY2tncm91bmQ6I2IyNGY0NTE0O2NvbG9yOnZhcigtLWRhbmdlcik7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5idG4tZGFuZ2VyOmhvdmVye2JhY2tncm91bmQ6I2IyNGY0NTI5O2NvbG9yOnZhcigtLWRhbmdlcil9LmJ0bi1kYW5nZXI6YWN0aXZle2JhY2tncm91bmQ6I2IyNGY0NTNkO3RyYW5zaXRpb24tZHVyYXRpb246LjA2c30uYnRuLWRhbmdlcjpmb2N1cy12aXNpYmxle2JveC1zaGFkb3c6MCAwIDAgMnB4IHZhcigtLWJnLXByaW1hcnkpLDAgMCAwIDRweCB2YXIoLS1kYW5nZXIpfS5idG4tc3VjY2Vzc3tiYWNrZ3JvdW5kOiM0ZjdhNTgxYTtjb2xvcjp2YXIoLS1zdWNjZXNzKTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LmJ0bi1zdWNjZXNzOmhvdmVye2JhY2tncm91bmQ6IzRmN2E1ODJlO2NvbG9yOnZhcigtLXN1Y2Nlc3MpfS5idG4tc3VjY2VzczphY3RpdmV7YmFja2dyb3VuZDojNGY3YTU4NDI7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5idG4tc3VjY2Vzczpmb2N1cy12aXNpYmxle2JveC1zaGFkb3c6MCAwIDAgMnB4IHZhcigtLWJnLXByaW1hcnkpLDAgMCAwIDRweCB2YXIoLS1zdWNjZXNzKX0uYnRuLWJsb2Nre3dpZHRoOjEwMCV9LmJ0bi14c3toZWlnaHQ6MjZweDttaW4taGVpZ2h0OjI2cHg7cGFkZGluZzowIDEwcHg7Zm9udC1zaXplOi43NXJlbTtib3JkZXItcmFkaXVzOjdweDtnYXA6NHB4fS5idG4tc217aGVpZ2h0OjMycHg7bWluLWhlaWdodDozMnB4O3BhZGRpbmc6MCAxMnB4O2ZvbnQtc2l6ZTouODEyNXJlbTtib3JkZXItcmFkaXVzOjhweDtnYXA6NXB4fS5idG4taWNvbntwYWRkaW5nOjA7d2lkdGg6MzZweDttaW4td2lkdGg6MzZweDtoZWlnaHQ6MzZweDttaW4taGVpZ2h0OjM2cHg7Ym9yZGVyLXJhZGl1czo4cHg7Z2FwOjB9LmJ0bi1pY29uLmJ0bi1zbXt3aWR0aDozMHB4O21pbi13aWR0aDozMHB4O2hlaWdodDozMHB4O21pbi1oZWlnaHQ6MzBweDtib3JkZXItcmFkaXVzOjdweH0uYnRuLWljb24gc3Zne2ZsZXgtc2hyaW5rOjB9Lm1haW4tY29udGVudHtmbGV4OjE7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjttaW4td2lkdGg6MDttaW4taGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7cG9zaXRpb246cmVsYXRpdmV9Lm1haW4tY29udGVudC5maWxlLXBhbmVsLW9wZW57bWFyZ2luLXJpZ2h0OnZhcigtLWxheW91dC1tYWluLWZpbGUtcGFuZWwtd2lkdGgpO3RyYW5zaXRpb246bWFyZ2luLXJpZ2h0IC4yNXMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9LnRlcm1pbmFsLWluZm97Zm9udC1zaXplOi42MjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC13ZWlnaHQ6NTAwfS5tYWluLWhlYWRlci1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtwYWRkaW5nOjZweCAxMHB4O2ZsZXgtc2hyaW5rOjA7bWluLWhlaWdodDo0NHB4O2dhcDo4cHg7cG9zaXRpb246cmVsYXRpdmV9Lm1haW4taGVhZGVyLXJvdzphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtyaWdodDowO2JvdHRvbTowO2hlaWdodDoycHg7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCAwJSxyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjg1KSAzNSUscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLDEpIDUwJSxyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjg1KSA2NSUsdHJhbnNwYXJlbnQgMTAwJSk7YmFja2dyb3VuZC1zaXplOjIyMCUgMTAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgY2VudGVyO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjI1cyBlYXNlfS5tYWluLWhlYWRlci1yb3cuaXMtcnVubmluZzphZnRlcntvcGFjaXR5OjE7YW5pbWF0aW9uOnRvcGJhclByb2dyZXNzRmxvdyAxLjZzIGxpbmVhciBpbmZpbml0ZX0ubWFpbi1oZWFkZXItcm93LmlzLXBlcm1pc3Npb24tYmxvY2tlZDphZnRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg5MGRlZyx0cmFuc3BhcmVudCAwJSxyZ2JhKDE2OSwxMDYsNDcsLjg1KSAzNSUscmdiYSgxNjksMTA2LDQ3LDEpIDUwJSxyZ2JhKDE2OSwxMDYsNDcsLjg1KSA2NSUsdHJhbnNwYXJlbnQgMTAwJSk7YmFja2dyb3VuZC1zaXplOjIyMCUgMTAwJTthbmltYXRpb24tZHVyYXRpb246Mi40c31Aa2V5ZnJhbWVzIHRvcGJhclByb2dyZXNzRmxvd3swJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgY2VudGVyfXRve2JhY2tncm91bmQtcG9zaXRpb246LTEwMCUgY2VudGVyfX1AbWVkaWEocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjpyZWR1Y2Upey5tYWluLWhlYWRlci1yb3cuaXMtcnVubmluZzphZnRlcnthbmltYXRpb246bm9uZTtvcGFjaXR5Oi43fX0udG9wYmFyLWxlZnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtc2hyaW5rOjB9LnRvcGJhci1jZW50ZXJ7ZmxleDoxO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtvdmVyZmxvdzpoaWRkZW59LnRvcGJhci1yaWdodHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7ZmxleC1zaHJpbms6MH0udG9wYmFyLWJyYW5ke2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtib3JkZXItcmFkaXVzOjhweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tYWNjZW50KSx2YXIoLS1hY2NlbnQtYWN0aXZlKSk7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo3MDA7Zm9udC1zaXplOi44NXJlbTtsZXR0ZXItc3BhY2luZzouMDJlbTtib3gtc2hhZG93OjAgMXB4IDNweCAjNTkzYTIwMmU7dXNlci1zZWxlY3Q6bm9uZTtmbGV4LXNocmluazowfS50b3BiYXItc2Vzc2lvbi10aXRsZXtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi44NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3doaXRlLXNwYWNlOm5vd3JhcDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmbGV4LXNocmluazowO21heC13aWR0aDoyNDBweH0udG9wYmFyLWN3ZHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjcycmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbGJhci13aWR0aDp0aGluO21pbi13aWR0aDowO2ZsZXg6MSAxIDA7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzoycHggNnB4O2JvcmRlci1yYWRpdXM6NnB4O2RpcmVjdGlvbjpsdHI7dGV4dC1hbGlnbjpsZWZ0O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnRvcGJhci1jd2Q6Oi13ZWJraXQtc2Nyb2xsYmFye2hlaWdodDo0cHh9LnRvcGJhci1jd2Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izk2NzY1NTQ3O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfS50b3BiYXItY3dkOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTU4MH0udG9wYmFyLWN3ZDpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmY4Yztjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnRvcGJhci10YWdsaW5le2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNzhyZW07d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5zZXNzaW9uLXN0YXR1cy1waWxse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo1cHg7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjIwcHg7cGFkZGluZzoycHggOXB4IDJweCA3cHg7ZmxleC1zaHJpbms6MDttYXgtd2lkdGg6MTQwcHg7d2hpdGUtc3BhY2U6bm93cmFwO292ZXJmbG93OmhpZGRlbn0uc2Vzc2lvbi1zdGF0dXMtcGlsbCAuc2Vzc2lvbi1zdGF0dXMtZG90e3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tdGV4dC1tdXRlZCk7ZmxleC1zaHJpbms6MH0uc2Vzc2lvbi1zdGF0dXMtcGlsbCAuc2Vzc2lvbi1zdGF0dXMtdGV4dHtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30uc2Vzc2lvbi1zdGF0dXMtcGlsbC5ydW5uaW5ne2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCk7Ym9yZGVyLWNvbG9yOiM0ZjdhNTg0ZDtjb2xvcjp2YXIoLS1zdWNjZXNzKX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5ydW5uaW5nIC5zZXNzaW9uLXN0YXR1cy1kb3R7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzKTthbmltYXRpb246dGFzay1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfS5zZXNzaW9uLXN0YXR1cy1waWxsLnBlcm1pc3Npb24tYmxvY2tlZHtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2JvcmRlci1jb2xvcjojYTk2YTJmNTk7Y29sb3I6dmFyKC0td2FybmluZyl9LnNlc3Npb24tc3RhdHVzLXBpbGwucGVybWlzc2lvbi1ibG9ja2VkIC5zZXNzaW9uLXN0YXR1cy1kb3R7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nKTthbmltYXRpb246dGFzay1wdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfS5zZXNzaW9uLXN0YXR1cy1waWxsLmV4aXRlZCwuc2Vzc2lvbi1zdGF0dXMtcGlsbC5zdG9wcGVke2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5zZXNzaW9uLXN0YXR1cy1waWxsLmZhaWxlZHtiYWNrZ3JvdW5kOnZhcigtLWRhbmdlci1tdXRlZCk7Ym9yZGVyLWNvbG9yOiNiMjRmNDU0ZDtjb2xvcjp2YXIoLS1kYW5nZXIpfS5zZXNzaW9uLXN0YXR1cy1waWxsLmZhaWxlZCAuc2Vzc2lvbi1zdGF0dXMtZG90e2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyKX0uc2Vzc2lvbi1zdGF0dXMtcGlsbC5hcmNoaXZlZHtvcGFjaXR5Oi43fS5zZXNzaW9uLXN0YXR1cy1waWxsIC5zZXNzaW9uLXN0YXR1cy1lbGFwc2Vke2ZsZXgtc2hyaW5rOjA7bWFyZ2luLWxlZnQ6NHB4O3BhZGRpbmctbGVmdDo2cHg7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIGN1cnJlbnRDb2xvcjtvcGFjaXR5Oi43NTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZTouNjVyZW07bGV0dGVyLXNwYWNpbmc6LS4wMWVtfS5jdXJyZW50LXRhc2t7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4O2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2JvcmRlcjoxcHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4yKTtib3JkZXItcmFkaXVzOjIwcHg7cGFkZGluZzoycHggOHB4IDJweCA1cHg7Zm9udC13ZWlnaHQ6NTAwO21heC13aWR0aDoyNDBweDttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47ZmxleC1zaHJpbms6MTt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uY3VycmVudC10YXNrOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjZweDtoZWlnaHQ6NnB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtmbGV4LXNocmluazowO2FuaW1hdGlvbjp0YXNrLXB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyB0YXNrLXB1bHNlezAlLHRve29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGUoMSl9NTAle29wYWNpdHk6LjU7dHJhbnNmb3JtOnNjYWxlKC44KX19LnRvcGJhci1tb3JlLXdyYXB7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleH0udG9wYmFyLW1vcmUtbWVudXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6Y2FsYygxMDAlICsgNnB4KTtyaWdodDowO21pbi13aWR0aDoxNjhweDtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7cGFkZGluZzo0cHg7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctbGcpO3otaW5kZXg6NjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MXB4fS50b3BiYXItbW9yZS1tZW51LmhpZGRlbntkaXNwbGF5Om5vbmV9LnRvcGJhci1tb3JlLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OXB4O3dpZHRoOjEwMCU7cGFkZGluZzo4cHggMTJweDtib3JkZXI6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjgycmVtO2ZvbnQtd2VpZ2h0OjUwMDtjdXJzb3I6cG9pbnRlcjtib3JkZXItcmFkaXVzOjhweDt0ZXh0LWFsaWduOmxlZnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udG9wYmFyLW1vcmUtaXRlbTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KX0udG9wYmFyLW1vcmUtaXRlbSBzdmd7ZmxleC1zaHJpbms6MDtvcGFjaXR5Oi44NX0udG9wYmFyLW1vcmUtaXRlbS50b3BiYXItbW9yZS1pdGVtLWRhbmdlcntjb2xvcjp2YXIoLS1kYW5nZXIpfS50b3BiYXItbW9yZS1pdGVtLnRvcGJhci1tb3JlLWl0ZW0tZGFuZ2VyOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXItaG92ZXIpfS50b3BiYXItbW9yZS1pdGVtLmhpZGRlbntkaXNwbGF5Om5vbmV9LnRvcGJhci1tb3JlLWl0ZW1bZGlzYWJsZWRde29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkfS50b3BiYXItbW9yZS1pdGVtW2Rpc2FibGVkXTpob3ZlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnRvcGJhci1tb3JlLWRpdmlkZXJ7aGVpZ2h0OjFweDttYXJnaW46NHB4IDZweDtiYWNrZ3JvdW5kOnZhcigtLWJvcmRlci1kZWZhdWx0KTtvcGFjaXR5Oi42fS50ZXJtaW5hbC1jb250YWluZXJ7ZmxleDoxO2Rpc3BsYXk6bm9uZTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgdG9wIHJpZ2h0LHJnYmEoOTEsNTgsMzQsLjIpLHRyYW5zcGFyZW50IDM1JSkscmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCBib3R0b20gbGVmdCxyZ2JhKDE5NywxMDEsNjEsLjA4KSx0cmFuc3BhcmVudCA0MCUpLGxpbmVhci1ncmFkaWVudCgxODBkZWcsIzJhMjIxYywjMWYxYjE3LCMxYTE2MTMpO292ZXJmbG93OmhpZGRlbjttaW4taGVpZ2h0OjA7bWluLXdpZHRoOjA7bWFyZ2luOjAgNnB4IDZweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE0MCwxMTAsODUsLjM1KTtib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmZmZmYwZiwwIDhweCAzMnB4ICMwMDAwMDA1OSwwIDJweCA4cHggIzAwMDM7cG9zaXRpb246cmVsYXRpdmU7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpLGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1ub3JtYWwpfS50ZXJtaW5hbC1jb250YWluZXIuYWN0aXZle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpzdHJldGNofS50ZXJtaW5hbC1zY3JvbGwtd3JhcHtwb3NpdGlvbjphYnNvbHV0ZTtpbnNldDowO292ZXJmbG93LXk6YXV0bztvdmVyZmxvdy14OmhpZGRlbjtzY3JvbGxiYXItd2lkdGg6bm9uZTtwYWRkaW5nOjEycHg7Ym9yZGVyLXJhZGl1czowO2JveC1zaGFkb3c6bm9uZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkOy1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTt0ZXh0LXJlbmRlcmluZzpnZW9tZXRyaWNQcmVjaXNpb247Zm9udC12YXJpYW50LWxpZ2F0dXJlczpub25lO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczoibGlnYSIgMCwiY2xpZyIgMCwiY2FsdCIgMCwiZGxpZyIgMDtmb250LWtlcm5pbmc6bm9uZTstLXRlcm0tZmc6ICNmNWVhZGM7LS10ZXJtLWJnOiB0cmFuc3BhcmVudDstLXRlcm0tY3Vyc29yOiAjZDY3YjUyOy0tdGVybS1mb250LWZhbWlseTogIkdlaXN0IE1vbm8iLCAiU0YgTW9ubyIsIG1vbm9zcGFjZTstLXRlcm0tZm9udC1zaXplOiAxM3B4Oy0tdGVybS1saW5lLWhlaWdodDogdmFyKC0tdGVybS1yb3ctaGVpZ2h0KTstLXRlcm0tcm93LWhlaWdodDogMjBweDstLXRlcm0tY29sb3ItMDogIzFmMWIxNzstLXRlcm0tY29sb3ItMTogI2QyNzc2NjstLXRlcm0tY29sb3ItMjogIzdmYTM2ZjstLXRlcm0tY29sb3ItMzogI2Q1YTM1YjstLXRlcm0tY29sb3ItNDogIzg3YTlkOTstLXRlcm0tY29sb3ItNTogI2M1OTVjNzstLXRlcm0tY29sb3ItNjogIzdmYjNiMTstLXRlcm0tY29sb3ItNzogI2Y1ZWFkYzstLXRlcm0tY29sb3ItODogIzYyNTM0NzstLXRlcm0tY29sb3ItOTogI2UzOWE4OTstLXRlcm0tY29sb3ItMTA6ICM5Y2MwOGE7LS10ZXJtLWNvbG9yLTExOiAjZWJiYjZlOy0tdGVybS1jb2xvci0xMjogI2E4YzFlYTstLXRlcm0tY29sb3ItMTM6ICNkYmIxZGM7LS10ZXJtLWNvbG9yLTE0OiAjOWFjYmNhOy0tdGVybS1jb2xvci0xNTogI2ZmZjdlZn0udGVybWluYWwtc2Nyb2xsLXdyYXA6Oi13ZWJraXQtc2Nyb2xsYmFye2Rpc3BsYXk6bm9uZX0udGVybWluYWwtc2Nyb2xsLXdyYXAgOjpzZWxlY3Rpb257YmFja2dyb3VuZDojZDY3YjUyNDd9LnRlcm1pbmFsLXNjcm9sbC13cmFwIC50ZXJtLWdyaWR7bWluLWhlaWdodDoxMDAlfS50ZXJtaW5hbC1zY3JvbGxiYXJ7cG9zaXRpb246YWJzb2x1dGU7dG9wOjRweDtyaWdodDoycHg7Ym90dG9tOjRweDt3aWR0aDoxNHB4O3otaW5kZXg6MTA7b3BhY2l0eTowO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZTtwb2ludGVyLWV2ZW50czpub25lfS50ZXJtaW5hbC1zY3JvbGxiYXIudmlzaWJsZXtvcGFjaXR5OjE7cG9pbnRlci1ldmVudHM6YXV0b30udGVybWluYWwtc2Nyb2xsYmFyLXRyYWNre3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO3JpZ2h0OjA7Ym90dG9tOjA7d2lkdGg6MTRweDtib3JkZXItcmFkaXVzOjdweH0udGVybWluYWwtc2Nyb2xsYmFyLXRodW1ie3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjNweDt3aWR0aDo4cHg7bWluLWhlaWdodDoyOHB4O2JvcmRlci1yYWRpdXM6NHB4O2JhY2tncm91bmQ6I2I0OTY3ODU5O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzIGVhc2Usd2lkdGggLjE1cyBlYXNlLHJpZ2h0IC4xNXMgZWFzZX0udGVybWluYWwtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6I2M4YWE4YzhjO3dpZHRoOjEwcHg7cmlnaHQ6MnB4fS50ZXJtaW5hbC1zY3JvbGxiYXItdGh1bWIuZHJhZ2dpbmcsLnRlcm1pbmFsLXNjcm9sbGJhci10aHVtYjphY3RpdmV7YmFja2dyb3VuZDojZGNiOTk2YjM7d2lkdGg6MTBweDtyaWdodDoycHh9QG1lZGlhKHBvaW50ZXI6Y29hcnNlKXsudGVybWluYWwtc2Nyb2xsYmFyLC50ZXJtaW5hbC1zY3JvbGxiYXItdHJhY2t7d2lkdGg6MjBweH0udGVybWluYWwtc2Nyb2xsYmFyLXRodW1ie3dpZHRoOjEycHg7cmlnaHQ6NHB4O21pbi1oZWlnaHQ6MzZweH0udGVybWluYWwtc2Nyb2xsYmFyLXRodW1iOmhvdmVyLC50ZXJtaW5hbC1zY3JvbGxiYXItdGh1bWIuZHJhZ2dpbmd7d2lkdGg6MTRweDtyaWdodDozcHh9fS50ZXJtaW5hbC1jb250YWluZXI6Zm9jdXMtd2l0aGlue2JvcmRlci1jb2xvcjojYzU2NTNkODA7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmZmZmMTQsMCA4cHggMzJweCAjMDAwNiwwIDAgMCAycHggI2M1NjUzZDI2fS50ZXJtaW5hbC1yZXNpemUtaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTozcHg7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTt3aWR0aDo0OHB4O2hlaWdodDo1cHg7YmFja2dyb3VuZDojZmZmZmZmMTQ7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7Y3Vyc29yOm5zLXJlc2l6ZTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjdweDtjb2xvcjojZmZmZmZmNDA7b3BhY2l0eTowO3RyYW5zaXRpb246YWxsIC4yNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyk7ei1pbmRleDoxMDtwb2ludGVyLWV2ZW50czphdXRvfS50ZXJtaW5hbC1yZXNpemUtaGFuZGxlOmJlZm9yZXtjb250ZW50OiJcMjJlZVwyMmVlIjtsZXR0ZXItc3BhY2luZzo4cHg7Zm9udC1zaXplOjZweH0udGVybWluYWwtcmVzaXplLWhhbmRsZTpob3ZlcntvcGFjaXR5OjE7YmFja2dyb3VuZDojZmZmZmZmMjY7Y29sb3I6I2ZmZmZmZjgwO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgc2NhbGUoMS4xKX0udGVybWluYWwtY29udGFpbmVyOmhvdmVyIC50ZXJtaW5hbC1yZXNpemUtaGFuZGxle29wYWNpdHk6Ljd9LnRlcm1pbmFsLWNvbnRhaW5lci5pbnRlcmFjdGl2ZXtib3JkZXItY29sb3I6IzRmN2E1ODhjO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZjBmLDAgMCAwIDJweCAjNGY3YTU4NDAsMCA4cHggMzJweCAjMDAwMDAwNTl9LnRlcm1pbmFsLWNvbnRhaW5lci5pbnRlcmFjdGl2ZTpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtoZWlnaHQ6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHRyYW5zcGFyZW50LHZhcigtLXN1Y2Nlc3MpLHRyYW5zcGFyZW50KTthbmltYXRpb246dGVybWluYWwtYWN0aXZlLXB1bHNlIDJzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgdGVybWluYWwtYWN0aXZlLXB1bHNlezAlLHRve29wYWNpdHk6LjV9NTAle29wYWNpdHk6MX19LnRlcm1pbmFsLWNvbnRhaW5lcjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO2JvdHRvbTowO2xlZnQ6MDtyaWdodDowO2hlaWdodDo0OHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHRvcCxyZ2JhKDI2LDIyLDE5LC41KSx0cmFuc3BhcmVudCk7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlO3otaW5kZXg6MTI7Ym9yZGVyLXJhZGl1czowIDAgdmFyKC0tcmFkaXVzLW1kKSB2YXIoLS1yYWRpdXMtbWQpfS50ZXJtaW5hbC1jb250YWluZXIuaGFzLWp1bXAtYnRuOmFmdGVye29wYWNpdHk6MX0udGVybWluYWwtc2NhbGUtYnRue21pbi13aWR0aDoyNHB4O2hlaWdodDoyNHB4O3BhZGRpbmc6MCA0cHg7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NjAwfS50ZXJtaW5hbC1zY2FsZS1sYWJlbHtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWluLXdpZHRoOjMycHg7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzowIDJweH0udGVybWluYWwtc2NhbGUtb3ZlcmxheXtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6OHB4O3JpZ2h0OjhweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MXB4O3BhZGRpbmc6MnB4O2JvcmRlci1yYWRpdXM6N3B4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMDYpO2JhY2tncm91bmQ6IzE4MTQxMTYxO2JhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7Ym94LXNoYWRvdzowIDZweCAxOHB4ICMwMDAwMDAyZTtvcGFjaXR5Oi43Mjt0cmFuc2l0aW9uOm9wYWNpdHkgLjE4cyBlYXNlLGJhY2tncm91bmQgLjE4cyBlYXNlLGJvcmRlci1jb2xvciAuMThzIGVhc2U7ei1pbmRleDoxMjtwb2ludGVyLWV2ZW50czphdXRvfS50ZXJtaW5hbC1jb250YWluZXI6aG92ZXIgLnRlcm1pbmFsLXNjYWxlLW92ZXJsYXksLnRlcm1pbmFsLXNjYWxlLW92ZXJsYXk6Zm9jdXMtd2l0aGlue29wYWNpdHk6MTtiYWNrZ3JvdW5kOiMxODE0MTE4Zjtib3JkZXItY29sb3I6I2ZmZmZmZjFhfS50ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0bnttaW4td2lkdGg6MjJweDtoZWlnaHQ6MjJweDtwYWRkaW5nOjAgM3B4O2NvbG9yOiNmNWVhZGNlMDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6NXB4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsY29sb3IgLjE4cyBlYXNlfS50ZXJtaW5hbC1zY2FsZS1vdmVybGF5LWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNkNjdiNTIyZTtjb2xvcjojZmZmN2VmZjV9LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXktbGFiZWx7Zm9udC1zaXplOi42MjVyZW07Y29sb3I6I2Y1ZWFkY2E4O21pbi13aWR0aDozNHB4O3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6MCAzcHh9LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXktZGl2aWRlcnt3aWR0aDoxcHg7aGVpZ2h0OjE0cHg7YmFja2dyb3VuZDojZjVlYWRjMzM7bWFyZ2luOjAgMnB4fS50ZXJtaW5hbC1qdW1wLWJvdHRvbXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxNHB4O2JvdHRvbToxNnB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MzRweDtoZWlnaHQ6MzRweDtwYWRkaW5nOjA7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4wOCk7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojMWMxNjEyYzc7Y29sb3I6I2ZmZjdlZmViO2JveC1zaGFkb3c6MCAxcHggMnB4ICMwMDAwMDA0MCwwIDhweCAyMnB4ICMwMDAwMDA1MixpbnNldCAwIDFweCAjZmZmZmZmMGY7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjEzO29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgxMHB4KSBzY2FsZSguODYpO3BvaW50ZXItZXZlbnRzOm5vbmU7dHJhbnNpdGlvbjpvcGFjaXR5IC4yNnMgdmFyKC0tZWFzZS1vdXQtZXhwbyksdHJhbnNmb3JtIC4zMnMgdmFyKC0tZWFzZS1zcHJpbmcpLGJhY2tncm91bmQgLjE4cyBlYXNlLGJvcmRlci1jb2xvciAuMThzIGVhc2UsYm94LXNoYWRvdyAuMnMgZWFzZX0udGVybWluYWwtanVtcC1ib3R0b20udmlzaWJsZXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7cG9pbnRlci1ldmVudHM6YXV0b30udGVybWluYWwtanVtcC1ib3R0b20gc3Zne3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyB2YXIoLS1lYXNlLW91dC1leHBvKX0udGVybWluYWwtanVtcC1ib3R0b206aG92ZXJ7YmFja2dyb3VuZDojZDY3YjUyZWI7Ym9yZGVyLWNvbG9yOiNmZmZmZmYyZTtjb2xvcjojZmZmO2JveC1zaGFkb3c6MCAxcHggMnB4ICMwMDAwMDA0NywwIDEwcHggMjZweCAjYjg1YzM3NWMsaW5zZXQgMCAxcHggI2ZmZmZmZjJlfS50ZXJtaW5hbC1qdW1wLWJvdHRvbTpob3ZlciBzdmd7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMS41cHgpfS50ZXJtaW5hbC1qdW1wLWJvdHRvbTphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoLjkyKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wOHN9LnRlcm1pbmFsLWp1bXAtYm90dG9tOmZvY3VzLXZpc2libGV7b3V0bGluZTpub25lO2JveC1zaGFkb3c6MCAxcHggMnB4ICMwMDAwMDA0NywwIDEwcHggMjZweCAjYjg1YzM3NWMsaW5zZXQgMCAxcHggI2ZmZmZmZjJlLDAgMCAwIDNweCAjZDY3YjUyNTl9LnRlcm1pbmFsLWNvbnRhaW5lci5pbnRlcmFjdGl2ZXtib3JkZXItY29sb3I6IzRmN2E1ODgwO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggI2ZmZmZmZjBhLDAgMCAwIDJweCAjNGY3YTU4NDAsdmFyKC0tc2hhZG93LXNvZnQpfS5taW5pLWtleWJvYXJkLWZhYntwb3NpdGlvbjpmaXhlZDtib3R0b206NjBweDtyaWdodDoxNnB4O3dpZHRoOjQ0cHg7aGVpZ2h0OjQ0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOiNmZmY7Ym9yZGVyOm5vbmU7Zm9udC1zaXplOjEuMTI1cmVtO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6bm9uZTthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtib3gtc2hhZG93OjAgNHB4IDE2cHggI2I4NWMzNzU5O3otaW5kZXg6MTAwO3RyYW5zaXRpb246YWxsIC4ycyB2YXIoLS1lYXNlLXNwcmluZyl9Lm1pbmkta2V5Ym9hcmQtZmFiLnZpc2libGV7ZGlzcGxheTpmbGV4fS5taW5pLWtleWJvYXJkLWZhYjpob3Zlcnt0cmFuc2Zvcm06c2NhbGUoMS4xKTtib3gtc2hhZG93OjAgNnB4IDIwcHggI2I4NWMzNzczfS5taW5pLWtleWJvYXJkLWZhYjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NSl9Lm1pbmkta2V5Ym9hcmR7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjYwcHg7cmlnaHQ6MTZweDtiYWNrZ3JvdW5kOiMyYTFmMTZmNTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTIyLDkxLDY0LC41KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7Ym94LXNoYWRvdzowIDhweCAzMnB4ICMwMDA2O3otaW5kZXg6MTAwMDtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KTtvdmVyZmxvdzpoaWRkZW47bWluLXdpZHRoOjI2MHB4O2FuaW1hdGlvbjpta1NsaWRlVXAgLjJzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5taW5pLWtleWJvYXJkLmhpZGRlbntkaXNwbGF5Om5vbmV9QGtleWZyYW1lcyBta1NsaWRlVXB7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDEycHgpIHNjYWxlKC45Nil9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsubWluaS1rZXlib2FyZHtib3R0b206MjBweDtyaWdodDoxMHB4O2xlZnQ6MTBweDttaW4td2lkdGg6MH0ubWluaS1rZXlib2FyZC1mYWJ7Ym90dG9tOjIwcHg7cmlnaHQ6MTZweH19LmNoYXQtY29udGFpbmVye3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MTtkaXNwbGF5Om5vbmU7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21pbi1oZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47cGFkZGluZzowIDIwcHggMTZweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcscmdiYSgyNTUsMjUyLDI0OCwuNSkgMCUsdHJhbnNwYXJlbnQgMTAwJSl9LmNoYXQtdW5yZWFkLWJ1YmJsZXtwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDoxNHB4O2JvdHRvbToxMHB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjZweDtoZWlnaHQ6MzJweDttaW4td2lkdGg6MzJweDtwYWRkaW5nOjAgMTBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC43Mik7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOiNmZmZjZjhlYjtjb2xvcjp2YXIoLS1hY2NlbnQpO2ZvbnQtc2l6ZTouNzhyZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjE7bGV0dGVyLXNwYWNpbmc6LjAxZW07d2hpdGUtc3BhY2U6bm93cmFwO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE0cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTRweCk7Ym94LXNoYWRvdzowIDFweCAzcHggIzU5M2EyMDFmLDAgMTBweCAyNHB4ICNiODVjMzcyZSxpbnNldCAwIDFweCAjZmZmOTtjdXJzb3I6cG9pbnRlcjt6LWluZGV4OjEzO29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSg4cHgpIHNjYWxlKC45KTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuMjZzIHZhcigtLWVhc2Utb3V0LWV4cG8pLHRyYW5zZm9ybSAuMzJzIHZhcigtLWVhc2Utc3ByaW5nKSxiYWNrZ3JvdW5kIC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlLGJveC1zaGFkb3cgLjJzIGVhc2UsY29sb3IgLjE4cyBlYXNlLHBhZGRpbmcgLjIycyB2YXIoLS1lYXNlLW91dC1leHBvKX0uY2hhdC11bnJlYWQtYnViYmxlLnZpc2libGV7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpO3BvaW50ZXItZXZlbnRzOmF1dG99LmNoYXQtdW5yZWFkLWJ1YmJsZS5oYXMtdW5yZWFke2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2JvcmRlci1jb2xvcjojZmZmZmZmYzc7cGFkZGluZzowIDEycHggMCAxMHB4O2JveC1zaGFkb3c6MCAxcHggM3B4ICM1OTNhMjAyZSwwIDEycHggMjhweCAjYjg1YzM3NTIsaW5zZXQgMCAxcHggI2ZmZmZmZjQ3fS5jaGF0LXVucmVhZC1idWJibGUtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIHZhcigtLWVhc2Utb3V0LWV4cG8pfS5jaGF0LXVucmVhZC1idWJibGU6aG92ZXJ7YmFja2dyb3VuZDojZmZmYWYyO2JveC1zaGFkb3c6MCAycHggNHB4ICM1OTNhMjAyOSwwIDE0cHggMzBweCAjYjg1YzM3M2QsaW5zZXQgMCAxcHggI2ZmZmZmZmIzfS5jaGF0LXVucmVhZC1idWJibGUuaGFzLXVucmVhZDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1ob3Zlcik7Ym94LXNoYWRvdzowIDJweCA1cHggIzU5M2EyMDM4LDAgMTRweCAzMnB4ICNiODVjMzc2YixpbnNldCAwIDFweCAjZmZmZmZmNTJ9LmNoYXQtdW5yZWFkLWJ1YmJsZTpob3ZlciAuY2hhdC11bnJlYWQtYnViYmxlLWljb257dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMS41cHgpfS5jaGF0LXVucmVhZC1idWJibGU6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKC45NCk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDhzfS5jaGF0LXVucmVhZC1idWJibGU6Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOm5vbmU7Ym94LXNoYWRvdzowIDJweCA0cHggIzU5M2EyMDMzLDAgMTJweCAyOHB4ICNiODVjMzc1MixpbnNldCAwIDFweCAjZmZmZmZmNTIsMCAwIDAgM3B4ICNjNTY1M2Q1Mn0uY2hhdC11bnJlYWQtYnViYmxlLWNvdW50e2Rpc3BsYXk6bm9uZTthbGlnbi1pdGVtczpjZW50ZXI7Zm9udC1zaXplOi43OHJlbTtmb250LXdlaWdodDo2MDA7bGluZS1oZWlnaHQ6MTtsZXR0ZXItc3BhY2luZzouMDFlbTtwb2ludGVyLWV2ZW50czpub25lfS5jaGF0LXVucmVhZC1idWJibGUtY291bnQudmlzaWJsZXtkaXNwbGF5OmlubGluZS1mbGV4O2FuaW1hdGlvbjpjaGF0VW5yZWFkQ291bnRQb3AgLjIycyB2YXIoLS1lYXNlLW91dC1iYWNrLCBjdWJpYy1iZXppZXIoLjM0LCAxLjU2LCAuNjQsIDEpKX0uY2hhdC11bnJlYWQtYnViYmxlLWNvdW50OmFmdGVye2NvbnRlbnQ6IiBcNjc2MVw2NWIwXDZkODhcNjA2ZiI7bWFyZ2luLWxlZnQ6MnB4O2ZvbnQtd2VpZ2h0OjUwMDtvcGFjaXR5Oi45NX1Aa2V5ZnJhbWVzIGNoYXRVbnJlYWRDb3VudFBvcHswJXt0cmFuc2Zvcm06c2NhbGUoLjYpO29wYWNpdHk6MH10b3t0cmFuc2Zvcm06c2NhbGUoMSk7b3BhY2l0eToxfX0uY2hhdC11bnJlYWQtZGl2aWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O21hcmdpbjo2cHggNHB4IDJweDtwYWRkaW5nOjAgMnB4O2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLWFjY2VudCk7bGV0dGVyLXNwYWNpbmc6LjA0ZW07dXNlci1zZWxlY3Q6bm9uZTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDthbmltYXRpb246Y2hhdFVucmVhZERpdmlkZXJJbiAuMzJzIHZhcigtLWVhc2Utb3V0LWV4cG8pIGZvcndhcmRzfS5jaGF0LXVucmVhZC1kaXZpZGVyLWxpbmV7ZmxleDoxO2hlaWdodDoxcHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsI2M1NjUzZDBkLCNjNTY1M2Q1MiwjYzU2NTNkMGQpfS5jaGF0LXVucmVhZC1kaXZpZGVyLWxhYmVse2ZsZXgtc2hyaW5rOjA7cGFkZGluZzozcHggMTBweDtiYWNrZ3JvdW5kOiNmZmY4ZjBmMjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMTgpO2JvcmRlci1yYWRpdXM6OTk5cHg7Ym94LXNoYWRvdzowIDFweCAzcHggI2I4NWMzNzFhO3doaXRlLXNwYWNlOm5vd3JhcH1Aa2V5ZnJhbWVzIGNoYXRVbnJlYWREaXZpZGVySW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX19LmNoYXQtY29udGFpbmVyLmFjdGl2ZXtkaXNwbGF5OmZsZXh9LmNoYXQtY29udGFpbmVyOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7Ym90dG9tOjA7bGVmdDowO3JpZ2h0OjA7aGVpZ2h0OjQ4cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gdG9wLHJnYmEoMjU1LDI1MiwyNDgsLjYpLHRyYW5zcGFyZW50KTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2U7ei1pbmRleDoxMn0uY2hhdC1jb250YWluZXIuaGFzLWp1bXAtYnRuOmFmdGVye29wYWNpdHk6MX0uY2hhdC1tZXNzYWdlc3tmbGV4OjE7b3ZlcmZsb3cteTphdXRvO292ZXJmbG93LXg6aGlkZGVuO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW4tcmV2ZXJzZTtnYXA6MTZweDtwYWRkaW5nOjIwcHggNHB4IDEycHg7bWluLWhlaWdodDowO21pbi13aWR0aDowO3Njcm9sbGJhci1ndXR0ZXI6c3RhYmxlO292ZXJzY3JvbGwtYmVoYXZpb3IteTpjb250YWluOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO3RvdWNoLWFjdGlvbjpwYW4teTtvdmVyZmxvdy1hbmNob3I6bm9uZTtvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW59LmNoYXQtbG9hZC1tb3Jle2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6OHB4IDB9LmNoYXQtbG9hZC1tb3JlLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWJnLWhvdmVyKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1zaXplOi43NXJlbTtwYWRkaW5nOjZweCAxNnB4O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIC4ycyBlYXNlfS5jaGF0LWxvYWQtbW9yZS1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9QG1lZGlhKHBvaW50ZXI6Y29hcnNlKSwobWF4LXdpZHRoOjc2OHB4KXsuY2hhdC1sb2FkLW1vcmV7cGFkZGluZzoxMnB4IDB9LmNoYXQtbG9hZC1tb3JlLWJ0bnttaW4taGVpZ2h0OjM2cHg7cGFkZGluZzo4cHggMThweDtmb250LXNpemU6Ljc4cmVtfS5jaGF0LW1lc3NhZ2UuYW5pbWF0ZS1pbnthbmltYXRpb24tZHVyYXRpb246LjE4c30uY2hhdC1tZXNzYWdlLnVzZXIuYW5pbWF0ZS1pbnthbmltYXRpb24tZHVyYXRpb246LjE3c319QGtleWZyYW1lcyBtZXNzYWdlU2xpZGV7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDhweCkgc2NhbGUoLjk4NSl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX1Aa2V5ZnJhbWVzIG1lc3NhZ2VTbGlkZVVzZXJ7MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGUoMTBweCkgdHJhbnNsYXRlWSg0cHgpIHNjYWxlKC45ODUpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApIHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9fUBrZXlmcmFtZXMgbWVzc2FnZUZsb2F0ezAlLHRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfTUwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtM3B4KX19LmNoYXQtbWVzc2FnZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO21hcmdpbjo0cHggMDt0cmFuc2l0aW9uOm9wYWNpdHkgLjJzIGVhc2UsdHJhbnNmb3JtIC4ycyB2YXIoLS1lYXNlLW91dC1leHBvKTstLWNoYXQtY2FyZC1tYXgtd2lkdGg6IDcyMHB4fS5jaGF0LW1lc3NhZ2U6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9QG1lZGlhKGhvdmVyOm5vbmUpey5jaGF0LW1lc3NhZ2U6aG92ZXJ7dHJhbnNmb3JtOm5vbmV9LmNoYXQtbWVzc2FnZTpob3ZlciAuY2hhdC1tZXNzYWdlLWJ1YmJsZXtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1zbSl9LmNoYXQtbWVzc2FnZS5hc3Npc3RhbnQ6aG92ZXIgLmNoYXQtbWVzc2FnZS1idWJibGV7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1zdWJ0bGUpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNtKX19LmNoYXQtbWVzc2FnZS51c2Vye2FsaWduLXNlbGY6ZmxleC1lbmR9LmNoYXQtbWVzc2FnZS5hc3Npc3RhbnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O21heC13aWR0aDoxMDAlO3dpZHRoOjEwMCV9LmNoYXQtbWVzc2FnZS5zeXN0ZW0taW5mb3thbGlnbi1zZWxmOmNlbnRlcjttYXgtd2lkdGg6MTAwJTt3aWR0aDoxMDAlO21hcmdpbjoxMHB4IDA7YW5pbWF0aW9uOm1lc3NhZ2VGbG9hdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZX0uc3lzdGVtLWluZm8tY2FyZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsIzYzNjZmMTE0LCM2MzY2ZjEwYSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDk5LDEwMiwyNDEsLjIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtwYWRkaW5nOjEycHggMTZweDtmb250LXNpemU6LjgxMjVyZW07Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cteHMpfS5zeXN0ZW0taW5mby1oZWFkZXJ7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOiM2MzY2ZjFmMjttYXJnaW4tYm90dG9tOjhweDtmb250LXNpemU6LjY4NzVyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wOGVtO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweH0uc3lzdGVtLWluZm8taGVhZGVyOmJlZm9yZXtjb250ZW50OiIiO3dpZHRoOjhweDtoZWlnaHQ6OHB4O2JhY2tncm91bmQ6IzYzNjZmMTk5O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpfS5zeXN0ZW0taW5mby1jb250ZW50e2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZDtsaW5lLWhlaWdodDp2YXIoLS1saW5lLWhlaWdodC1iYXNlKTttYXgtaGVpZ2h0OjIwMHB4O292ZXJmbG93LXk6YXV0b30uY2hhdC1tZXNzYWdlLmFuaW1hdGUtaW57YW5pbWF0aW9uOm1lc3NhZ2VTbGlkZSAuMjJzIHZhcigtLWVhc2Utb3V0LWV4cG8pO3dpbGwtY2hhbmdlOm9wYWNpdHksdHJhbnNmb3JtfS5jaGF0LW1lc3NhZ2UudXNlci5hbmltYXRlLWlue2FuaW1hdGlvbjptZXNzYWdlU2xpZGVVc2VyIC4ycyB2YXIoLS1lYXNlLW91dC1leHBvKX0uY2hhdC1tZXNzYWdlLWF2YXRhcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzowIDJweCA0cHh9LmNoYXQtbWVzc2FnZS1hdmF0YXIuYXNzaXN0YW50e2ZsZXgtZGlyZWN0aW9uOnJvd30uY2hhdC1tZXNzYWdlLWF2YXRhci51c2Vye2ZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlfS5waXhlbC1hdmF0YXJ7d2lkdGg6MjRweDtoZWlnaHQ6MjRweDtmbGV4LXNocmluazowO2JvcmRlci1yYWRpdXM6NnB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtib3gtc2hhZG93OjAgMXB4IDNweCAjMDAwMDAwMjZ9LnBpeGVsLWF2YXRhci1pbWFnZXtkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb3Zlcn0ucGl4ZWwtYXZhdGFyLXN2Z3tkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7aW1hZ2UtcmVuZGVyaW5nOnBpeGVsYXRlZH0uYXZhdGFyLW5hbWV7Zm9udC1zaXplOi43cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDNlbTtsaW5lLWhlaWdodDoxfS5jaGF0LW1lc3NhZ2UuYXNzaXN0YW50IC5hdmF0YXItbmFtZXtjb2xvcjp2YXIoLS1hY2NlbnQpfS5jaGF0LW1lc3NhZ2UudXNlciAuYXZhdGFyLW5hbWV7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSl9LmNoYXQtbWVzc2FnZS1idWJibGV7cGFkZGluZzoxMnB4IDE2cHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2ZvbnQtc2l6ZTouODc1cmVtO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0LXJlbGF4ZWQpO3dvcmQtd3JhcDpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkO3doaXRlLXNwYWNlOnByZS13cmFwO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6aGlkZGVuO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNtKTt0cmFuc2l0aW9uOmJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uY2hhdC1tZXNzYWdlOmhvdmVyIC5jaGF0LW1lc3NhZ2UtYnViYmxle2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LW1kKX0uY2hhdC1tZXNzYWdlLnVzZXIgLmNoYXQtbWVzc2FnZS1idWJibGV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWFjY2VudCkgMCUsdmFyKC0tYWNjZW50LWhvdmVyKSAxMDAlKTtjb2xvcjp2YXIoLS10ZXh0LWludmVyc2UpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWxnKSB2YXIoLS1yYWRpdXMtbGcpIHZhcigtLXJhZGl1cy1zbSkgdmFyKC0tcmFkaXVzLWxnKTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZDtib3gtc2hhZG93OjAgNHB4IDE2cHggI2M1NjUzZDRkLGluc2V0IDAgMXB4ICNmZmZmZmYyNn0uY2hhdC1tZXNzYWdlLnVzZXJ7bWF4LXdpZHRoOjEwMCV9LnVzZXItYXR0YWNobWVudHN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6NnB4O21hcmdpbi1ib3R0b206NnB4fS51c2VyLWF0dGFjaG1lbnQtaW1hZ2V7ZGlzcGxheTpibG9jaztsaW5lLWhlaWdodDowfS51c2VyLWF0dGFjaG1lbnQtdGh1bWJ7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6bWluKDEwMCUsMjQwcHgpO21heC1oZWlnaHQ6MjAwcHg7d2lkdGg6YXV0bztoZWlnaHQ6YXV0bztib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4yNSk7b2JqZWN0LWZpdDpjb250YWluO2N1cnNvcjp6b29tLWluO2JveC1zaGFkb3c6MCAycHggOHB4ICMwMDAwMDAyNDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMTZzIGVhc2UsYm94LXNoYWRvdyAuMTZzIGVhc2UsdHJhbnNmb3JtIC4xNnMgZWFzZX0udXNlci1hdHRhY2htZW50LXRodW1iOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCA0cHggMTRweCAjMDAwMzt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KX0udXNlci1hdHRhY2htZW50LWZpbGV7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjVweCAxMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXN1cmZhY2UpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouNzVyZW07Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE2cyBlYXNlLGNvbG9yIC4xNnMgZWFzZX0udXNlci1hdHRhY2htZW50LWZpbGU6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0udXNlci1hdHRhY2htZW50LWZpbGUtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2ZsZXgtc2hyaW5rOjA7Y29sb3I6dmFyKC0tYWNjZW50KX0udXNlci1hdHRhY2htZW50LWZpbGUtbmFtZXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LnVzZXItYXR0YWNobWVudC10ZXh0e3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlfS5jaGF0LW1lc3NhZ2UuYXNzaXN0YW50IC5jaGF0LW1lc3NhZ2UtYnViYmxle2JhY2tncm91bmQ6dmFyKC0tYmctc3VyZmFjZSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtwYWRkaW5nOjE0cHggMThweDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLXdyYXA6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNtKX0uY2hhdC1tZXNzYWdlLmFzc2lzdGFudDpob3ZlciAuY2hhdC1tZXNzYWdlLWJ1YmJsZXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50LXNvZnQpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LW1kKX0uY2hhdC1tZXNzYWdlLWNvbnRlbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4O3dpZHRoOjEwMCU7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47Zm9udC1zaXplOi44NzVyZW07bGluZS1oZWlnaHQ6dmFyKC0tbGluZS1oZWlnaHQtcmVsYXhlZCk7d29yZC13cmFwOmJyZWFrLXdvcmQ7d29yZC1icmVhazpicmVhay13b3JkO292ZXJmbG93LXdyYXA6YW55d2hlcmU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmNoYXQtbWVzc2FnZS1jb250ZW50Pi50aGlua2luZy1pbmxpbmUsLmNoYXQtbWVzc2FnZS1jb250ZW50Pi5pbmxpbmUtdG9vbCwuY2hhdC1tZXNzYWdlLWNvbnRlbnQ+LnRvb2wtdXNlLWNhcmQsLmNoYXQtbWVzc2FnZS1jb250ZW50Pi50b29sLWdyb3Vwe21hcmdpbjozcHggMH0uY2hhdC1tZXNzYWdlLm11bHRpLWFnZW50e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjZweDt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uY2hhdC1tZXNzYWdlLnVzZXIubXVsdGktYWdlbnR7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnR7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1zZWxmOmZsZXgtc3RhcnQ7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnQuc3ViYWdlbnR7cGFkZGluZy1sZWZ0OjEwcHg7bWFyZ2luLWxlZnQ6NnB4O2JvcmRlci1sZWZ0OjJweCBzb2xpZCB2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYm9yZGVyLXN1YnRsZSkpO2JvcmRlci1yYWRpdXM6MCA0cHggNHB4IDA7d2lkdGg6Y2FsYygxMDAlIC0gNnB4KTttYXgtd2lkdGg6Y2FsYygxMDAlIC0gNnB4KX0uY2hhdC1tZXNzYWdlLm11bHRpLWFnZW50IC5jaGF0LW1lc3NhZ2Utc2VnbWVudC5zdWJhZ2VudCAuY2hhdC1tZXNzYWdlLWNvbnRlbnR7b3BhY2l0eTouOTZ9LmNoYXQtbWVzc2FnZS5tdWx0aS1hZ2VudCAuY2hhdC1tZXNzYWdlLXNlZ21lbnQgLmNoYXQtbWVzc2FnZS1hdmF0YXJ7cGFkZGluZy1ib3R0b206NHB4fS5jaGF0LW1lc3NhZ2UtYXZhdGFyLnN1YmFnZW50IC5hdmF0YXItbmFtZXtjb2xvcjp2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSl9LnN1YmFnZW50LXJlcGx5e2JhY2tncm91bmQ6I2M1NjUzZDBmO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDYlLHZhcigtLWJnLXN1cmZhY2UpKTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMik7Ym9yZGVyOjFweCBzb2xpZCBjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMjAlLHRyYW5zcGFyZW50KTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxMHB4IDE0cHg7bWFyZ2luOjRweCAwO2xpbmUtaGVpZ2h0OjEuNTU7Zm9udC1zaXplOi44NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTtib3gtc2l6aW5nOmJvcmRlci1ib3g7d2lkdGg6MTAwJTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy14OmhpZGRlbn0uc3ViYWdlbnQtcmVwbHk+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3ViYWdlbnQtcmVwbHk+Omxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5zdWJhZ2VudC1yZXBseS5lcnJvcntiYWNrZ3JvdW5kOiNlMjU3NGMxNDtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlciwgI2UyNTc0YykgOCUsdmFyKC0tYmctc3VyZmFjZSkpO2JvcmRlci1jb2xvcjojZTI1NzRjNTk7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWRhbmdlciwgI2UyNTc0YykgMzUlLHRyYW5zcGFyZW50KX0uc3ViYWdlbnQtcmVwbHkucGVuZGluZ3tvcGFjaXR5Oi43O3BhZGRpbmc6MTRweCAxNnB4fS5zdWJhZ2VudC1yZXBseTpub3QoLmNvbGxhcHNpYmxlKXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6NnB4fS5zdWJhZ2VudC1yZXBseSBwcmUsLnN1YmFnZW50LXJlcGx5IGNvZGV7Zm9udC1zaXplOi44MnJlbX0uc3ViYWdlbnQtcmVwbHkgcHJle2JhY2tncm91bmQ6IzAwMDAwMDBhO3BhZGRpbmc6MTBweCAxMnB4O2JvcmRlci1yYWRpdXM6NnB4O292ZXJmbG93LXg6aGlkZGVuO3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO21hcmdpbjo4cHggMDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MH0uc3ViYWdlbnQtcGFuZWx7bWFyZ2luOjhweCAwO2JvcmRlcjoxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDI1JSx0cmFuc3BhcmVudCk7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA1NSUsdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6MTBweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMyUsdmFyKC0tYmctc3VyZmFjZSkpO2JveC1zaGFkb3c6MCAxcHggMnB4ICMwMDAwMDAwOH0uc3ViYWdlbnQtcGFuZWwtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjhweCAxMnB4O2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDEwJSx2YXIoLS1iZy1zdXJmYWNlKSk7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDE2JSx0cmFuc3BhcmVudCk7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZTtmb250LXNpemU6Ljc4cmVtO2xpbmUtaGVpZ2h0OjEuMzU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZX0uc3ViYWdlbnQtcGFuZWwtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDE0JSx2YXIoLS1iZy1zdXJmYWNlKSl9LnN1YmFnZW50LXBhbmVsLWhlYWRlcjpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSA1NSUsdHJhbnNwYXJlbnQpO291dGxpbmUtb2Zmc2V0Oi0ycHh9LnN1YmFnZW50LXBhbmVsLWF2YXRhcntmbGV4OjAgMCBhdXRvO3dpZHRoOjIycHg7aGVpZ2h0OjIycHg7Ym9yZGVyLXJhZGl1czo1cHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDE4JSx0cmFuc3BhcmVudCk7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc3ViYWdlbnQtcGFuZWwtYXZhdGFyIHN2Zywuc3ViYWdlbnQtcGFuZWwtYXZhdGFyIGltZ3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2Rpc3BsYXk6YmxvY2t9LnN1YmFnZW50LXBhbmVsLWFycm93e2ZsZXg6MCAwIGF1dG87Y29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDY1JSx2YXIoLS10ZXh0LXByaW1hcnkpKTtvcGFjaXR5Oi44O2ZvbnQtd2VpZ2h0OjYwMH0uc3ViYWdlbnQtcGFuZWwtYXR0cmlidXRpb257ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uc3ViYWdlbnQtcGFuZWwtbmFtZXtjb2xvcjpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgODglLHZhcigtLXRleHQtcHJpbWFyeSkpO2ZvbnQtd2VpZ2h0OjYwMH0uc3ViYWdlbnQtcGFuZWwtdGFne2Rpc3BsYXk6aW5saW5lLWJsb2NrO21hcmdpbjowIDZweDtwYWRkaW5nOjAgNnB4O2ZvbnQtc2l6ZTouNjJyZW07Zm9udC13ZWlnaHQ6NTAwO2xldHRlci1zcGFjaW5nOi4wNGVtO2NvbG9yOnZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAxMiUsdHJhbnNwYXJlbnQpO2JvcmRlcjoxcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDMwJSx0cmFuc3BhcmVudCk7Ym9yZGVyLXJhZGl1czo0cHg7dmVydGljYWwtYWxpZ246MXB4O2xpbmUtaGVpZ2h0OjEuNDt3aGl0ZS1zcGFjZTpub3dyYXB9LnN1YmFnZW50LXBhbmVsLXRhc2stZGVzY3tjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXdlaWdodDo0MDB9LnN1YmFnZW50LXBhbmVsLXRvZ2dsZXtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGluZzozcHggMTBweDtmb250LXNpemU6LjdyZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjEuMztjb2xvcjpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNzglLHZhcigtLXRleHQtcHJpbWFyeSkpO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDglLHZhcigtLWJnLXN1cmZhY2UpKTtib3JkZXI6MXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAzMCUsdHJhbnNwYXJlbnQpO2JvcmRlci1yYWRpdXM6OTk5cHg7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLGJvcmRlci1jb2xvciAuMTVzIGVhc2UsdHJhbnNmb3JtIC4xcyBlYXNlfS5zdWJhZ2VudC1wYW5lbC10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgMTglLHZhcigtLWJnLXN1cmZhY2UpKTtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDQ1JSx0cmFuc3BhcmVudCl9LnN1YmFnZW50LXBhbmVsLXRvZ2dsZTphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMXB4KX0uc3ViYWdlbnQtcGFuZWwtdG9nZ2xlLWljb257dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjJzIHZhcigtLWVhc2Utb3V0LWV4cG8sIGN1YmljLWJlemllciguMTYsIDEsIC4zLCAxKSl9LnN1YmFnZW50LXBhbmVsW2RhdGEtZXhwYW5kZWQ9dHJ1ZV0gLnN1YmFnZW50LXBhbmVsLXRvZ2dsZS1pY29ue3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0uc3ViYWdlbnQtcGFuZWwtYm9keXtwYWRkaW5nOjEwcHggMTRweDtvdmVyZmxvdy15OmF1dG87b3ZlcmZsb3cteDpoaWRkZW47bWluLXdpZHRoOjA7bWF4LXdpZHRoOjEwMCU7dHJhbnNpdGlvbjptYXgtaGVpZ2h0IC4yMnMgdmFyKC0tZWFzZS1vdXQtZXhwbywgY3ViaWMtYmV6aWVyKC4xNiwgMSwgLjMsIDEpKTtzY3JvbGxiYXItZ3V0dGVyOnN0YWJsZTtvdmVyc2Nyb2xsLWJlaGF2aW9yOmNvbnRhaW47LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LnN1YmFnZW50LXBhbmVsW2RhdGEtZXhwYW5kZWQ9ZmFsc2VdIC5zdWJhZ2VudC1wYW5lbC1ib2R5e21heC1oZWlnaHQ6MjJlbX0uc3ViYWdlbnQtcGFuZWxbZGF0YS1leHBhbmRlZD10cnVlXSAuc3ViYWdlbnQtcGFuZWwtYm9keXttYXgtaGVpZ2h0Ojcwdmh9LnN1YmFnZW50LXBhbmVsLWJvZHk+OmZpcnN0LWNoaWxke21hcmdpbi10b3A6MH0uc3ViYWdlbnQtcGFuZWwtYm9keT46bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LnN1YmFnZW50LXBhbmVsLWJvZHkgLnRvb2wtdXNlLWNhcmQsLnN1YmFnZW50LXBhbmVsLWJvZHkgLnRvb2wtZ3JvdXAsLnN1YmFnZW50LXBhbmVsLWJvZHkgLmlubGluZS10b29sLC5zdWJhZ2VudC1wYW5lbC1ib2R5IC5pbmxpbmUtdGVybWluYWwsLnN1YmFnZW50LXBhbmVsLWJvZHkgLmlubGluZS1kaWZme21hcmdpbjo0cHggMH0uc3ViYWdlbnQtcGFuZWwtYm9keSAubWFya2Rvd24tY29udGVudHtmb250LXNpemU6Ljg3NXJlbX0uc3ViYWdlbnQtcGFuZWwtYm9keTo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6N3B4O2hlaWdodDo3cHh9LnN1YmFnZW50LXBhbmVsLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDMyJSx0cmFuc3BhcmVudCk7Ym9yZGVyLXJhZGl1czo0cHh9LnN1YmFnZW50LXBhbmVsLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDUwJSx0cmFuc3BhcmVudCl9LnN1YmFnZW50LXBhbmVsLWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LnN1YmFnZW50LXBhbmVsLWZvb3RlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O3BhZGRpbmc6NnB4IDEycHg7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNiUsdmFyKC0tYmctc3VyZmFjZSkpO2JvcmRlci10b3A6MXB4IHNvbGlkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFnZW50LWNvbG9yLCB2YXIoLS1hY2NlbnQpKSAxNCUsdHJhbnNwYXJlbnQpO2ZvbnQtc2l6ZTouN3JlbX0uc3ViYWdlbnQtcGFuZWwtZm9vdGVyLWhpbnR7ZmxleDoxIDEgYXV0bzttaW4td2lkdGg6MDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtvcGFjaXR5Oi43O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7bGV0dGVyLXNwYWNpbmc6LjA0ZW07b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwfS5zdWJhZ2VudC1yZXBseS5jb2xsYXBzaWJsZXtwYWRkaW5nOjA7b3ZlcmZsb3c6aGlkZGVufS5zdWJhZ2VudC1yZXBseS5maW5hbHttYXJnaW46NnB4IDAgMDtwYWRkaW5nOjEwcHggMTJweDtib3JkZXItcmFkaXVzOjhweDtib3JkZXItbGVmdDozcHggc29saWQgY29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tYWdlbnQtY29sb3IsIHZhcigtLWFjY2VudCkpIDYwJSx0cmFuc3BhcmVudCk7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNSUsdmFyKC0tYmctc3VyZmFjZSkpfS5zdWJhZ2VudC1yZXBseS5maW5hbC5lcnJvcntib3JkZXItbGVmdC1jb2xvcjp2YXIoLS1kYW5nZXIsICNlMjU3NGMpO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tZGFuZ2VyLCAjZTI1NzRjKSA1JSx2YXIoLS1iZy1zdXJmYWNlKSl9LnN1YmFnZW50LXJlcGx5LW1hcmtlcntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O21hcmdpbi1ib3R0b206NHB4O2ZvbnQtc2l6ZTouNjhyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wNGVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjb2xvcjpjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hZ2VudC1jb2xvciwgdmFyKC0tYWNjZW50KSkgNzglLHZhcigtLXRleHQtcHJpbWFyeSkpfS5zdWJhZ2VudC1yZXBseS1tYXJrZXIuZXJyb3J7Y29sb3I6dmFyKC0tZGFuZ2VyLCAjZTI1NzRjKX0uc3ViYWdlbnQtcmVwbHktbWFya2VyLnBlbmRpbmd7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dGV4dC10cmFuc2Zvcm06bm9uZTtsZXR0ZXItc3BhY2luZzowO2ZvbnQtd2VpZ2h0OjUwMH0uc3ViYWdlbnQtcmVwbHktbWFya2VyLWljb257Zm9udC13ZWlnaHQ6NzAwfS5zdWJhZ2VudC1yZXBseS5maW5hbCAuc3ViYWdlbnQtcmVwbHktY29udGVudD46Zmlyc3QtY2hpbGR7bWFyZ2luLXRvcDowfS5zdWJhZ2VudC1yZXBseS5maW5hbCAuc3ViYWdlbnQtcmVwbHktY29udGVudD46bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9LmVtcHR5LW1lc3NhZ2UgLmVtcHR5LW1lc3NhZ2UtaGludHtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtmb250LXN0eWxlOml0YWxpYztmb250LXNpemU6LjgxMjVyZW07b3BhY2l0eTouN30udW5rbm93bi1ibG9ja3ttYXJnaW46NHB4IDA7Ym9yZGVyOjFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tdGV4dC1tdXRlZCkgNiUsdHJhbnNwYXJlbnQpO2ZvbnQtc2l6ZTouNzVyZW07Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LnVua25vd24tYmxvY2s6aG92ZXJ7YmFja2dyb3VuZDpjb2xvci1taXgoaW4gc3JnYix2YXIoLS10ZXh0LW11dGVkKSAxMCUsdHJhbnNwYXJlbnQpfS51bmtub3duLWJsb2NrLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo2cHggMTBweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnVua25vd24tYmxvY2staWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS10ZXh0LW11dGVkKTtjb2xvcjp2YXIoLS1iZy1zdXJmYWNlKTtmb250LXNpemU6LjdyZW07Zm9udC13ZWlnaHQ6NjAwfS51bmtub3duLWJsb2NrLWxhYmVse2ZsZXg6MTtmb250LXdlaWdodDo1MDB9LnVua25vd24tYmxvY2stdG9nZ2xle2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZvbnQtc2l6ZTouN3JlbTt0cmFuc2l0aW9uOnRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS51bmtub3duLWJsb2NrLmNvbGxhcHNlZCAudW5rbm93bi1ibG9jay10b2dnbGV7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS51bmtub3duLWJsb2NrLWJvZHl7bWFyZ2luOjA7cGFkZGluZzo4cHggMTBweCAxMHB4O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC1oZWlnaHQ6MjQwcHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2JvcmRlci10b3A6MXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3gtc2l6aW5nOmJvcmRlci1ib3h9LnVua25vd24tYmxvY2suY29sbGFwc2VkIC51bmtub3duLWJsb2NrLWJvZHl7ZGlzcGxheTpub25lfS50b29sLXVzZS1jYXJkW2RhdGEtdHJ1bmNhdGVkPXRydWVdIC50b29sLXVzZS1uYW1lOmFmdGVyLC5pbmxpbmUtdG9vbFtkYXRhLXRydW5jYXRlZD10cnVlXSAuaW5saW5lLXRvb2wtdGl0bGU6YWZ0ZXJ7Y29udGVudDoiXDVkZjJcNjIyYVw2NWFkIjtkaXNwbGF5OmlubGluZS1ibG9jazttYXJnaW4tbGVmdDo2cHg7cGFkZGluZzoxcHggNnB4O2ZvbnQtc2l6ZTouNnJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlLCAjZmZmKTtiYWNrZ3JvdW5kOnZhcigtLXRleHQtdGVydGlhcnkpO2JvcmRlci1yYWRpdXM6OTk5cHg7bGV0dGVyLXNwYWNpbmc6LjAyZW07dmVydGljYWwtYWxpZ246MXB4O29wYWNpdHk6Ljg1fS5jaGF0LW1lc3NhZ2UudGhpbmtpbmd7YWxpZ24tc2VsZjpmbGV4LXN0YXJ0O21heC13aWR0aDoxMDAlO21hcmdpbjo0cHggMH0uY2hhdC1tZXNzYWdlLnByb21wdHthbGlnbi1zZWxmOmNlbnRlcjttYXgtd2lkdGg6MTAwJTttYXJnaW46NHB4IDB9LnByb21wdC1jYXJke2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjRweCA4cHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2N1cnNvcjpkZWZhdWx0O2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnByb21wdC1pY29ue2ZvbnQtc2l6ZTouODc1cmVtfS5wcm9tcHQtY29udGVudHtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc3R5bGU6aXRhbGljfS5wcm9tcHQtdGV4dHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOiNjNTY1M2RjYztmb250LXdlaWdodDo1MDB9LnR5cGluZy1pbmRpY2F0b3J7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NXB4O3BhZGRpbmc6NnB4IDB9LnR5cGluZy1pbmRpY2F0b3Igc3BhbntkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo3cHg7aGVpZ2h0OjdweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1zb2Z0KTthbmltYXRpb246dHlwaW5nQm91bmNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9LnR5cGluZy1pbmRpY2F0b3Igc3BhbjpudGgtY2hpbGQoMil7YW5pbWF0aW9uLWRlbGF5Oi4xNXN9LnR5cGluZy1pbmRpY2F0b3Igc3BhbjpudGgtY2hpbGQoMyl7YW5pbWF0aW9uLWRlbGF5Oi4zc31Aa2V5ZnJhbWVzIHR5cGluZ0JvdW5jZXswJSw2MCUsdG97b3BhY2l0eTouMzU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9MzAle29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNXB4KX19LnRvb2wtdXNlLWNhcmR7bWFyZ2luOjRweCAwO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7bWluLXdpZHRoOjA7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmYmY1ZTAsI2ZmZjZlYWI4KTtib3gtc2hhZG93OjAgMXB4IDJweCAjNTkzYTIwMGE7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjIycyBlYXNlLGJveC1zaGFkb3cgLjIycyBlYXNlLHRyYW5zZm9ybSAuMjJzIGVhc2V9LnRvb2wtdXNlLWNhcmQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiM0ZjdhNTg0ZDtib3gtc2hhZG93OjAgM3B4IDEycHggIzRmN2E1ODE0fS50b29sLXVzZS1jYXJkLmxvYWRpbmd7Ym9yZGVyLWNvbG9yOiNhOTZhMmY0ZDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZjRlMmUwLCNmZmYxZGFiOCl9LnRvb2wtdXNlLWNhcmQuc3VjY2Vzc3tib3JkZXItY29sb3I6IzRmN2E1ODUyfS50b29sLXVzZS1jYXJkLmVycm9ye2JvcmRlci1jb2xvcjojYjI0ZjQ1NTI7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmY2YwZWVlMCwjZmNlYmU5YjgpfS50b29sLXVzZS1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjlweCAxNHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOi44MTI1cmVtO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjp0cmFuc3BhcmVudDt0b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2U7bWluLWhlaWdodDozOHB4O2ZsZXgtd3JhcDpub3dyYXB9LnRvb2wtdXNlLWhlYWRlcjpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QwYX0udG9vbC11c2UtaGVhZGVyOmFjdGl2ZXtiYWNrZ3JvdW5kOiNjNTY1M2QxMn0udG9vbC11c2UtY2FyZC5sb2FkaW5nIC50b29sLXVzZS1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojYTk2YTJmMGZ9LnRvb2wtdXNlLWNhcmQuc3VjY2VzcyAudG9vbC11c2UtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6IzRmN2E1ODBmfS50b29sLXVzZS1jYXJkLmVycm9yIC50b29sLXVzZS1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojYjI0ZjQ1MGZ9LnRvb2wtdXNlLWljb257Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC13ZWlnaHQ6NzAwO2ZsZXgtc2hyaW5rOjA7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4td2lkdGg6MjJweDtoZWlnaHQ6MjJweDtib3JkZXItcmFkaXVzOjZweDtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2xldHRlci1zcGFjaW5nOi0uMDJlbX0udG9vbC11c2UtY2FyZC5sb2FkaW5nIC50b29sLXVzZS1pY29ue2JhY2tncm91bmQ6dmFyKC0td2FybmluZy1tdXRlZCk7Y29sb3I6dmFyKC0td2FybmluZyl9LnRvb2wtdXNlLWNhcmQuZXJyb3IgLnRvb2wtdXNlLWljb257YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2NvbG9yOnZhcigtLWRhbmdlcil9LnRvb2wtdXNlLXNwaW5uZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTRweDtoZWlnaHQ6MTRweDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLXdhcm5pbmctbXV0ZWQpO2JvcmRlci10b3AtY29sb3I6dmFyKC0td2FybmluZyk7Ym9yZGVyLXJhZGl1czo1MCU7YW5pbWF0aW9uOnRvb2wtc3BpbiAuOHMgbGluZWFyIGluZmluaXRlfUBrZXlmcmFtZXMgdG9vbC1zcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LnRvb2wtdXNlLW5hbWV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXdlaWdodDo2MDA7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7ZmxleDowIDEgYXV0bzttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7bGV0dGVyLXNwYWNpbmc6LS4wMDVlbX0udG9vbC11c2UtZmlsZXtmb250LXNpemU6Ljc1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7bWF4LXdpZHRoOjMyMHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4OjAgMSBhdXRvO21pbi13aWR0aDowfS50b29sLXVzZS1zdW1tYXJ5e2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZsZXg6MCAxIGF1dG87bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1sZWZ0OjJweH0udG9vbC11c2UtdG9nZ2xle2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjNzIHZhcigtLWVhc2Utc3ByaW5nKSxjb2xvciAuMThzIGVhc2U7ZmxleC1zaHJpbms6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO29wYWNpdHk6LjZ9LnRvb2wtdXNlLWNhcmQ6aG92ZXIgLnRvb2wtdXNlLXRvZ2dsZXtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7b3BhY2l0eToxfS50b29sLXVzZS1jYXJkLmNvbGxhcHNlZCAudG9vbC11c2UtdG9nZ2xle3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKX0udG9vbC11c2UtYm9keXtwYWRkaW5nOjEycHggMTRweDtiYWNrZ3JvdW5kOiNmZmZkZjhhNjtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO21heC1oZWlnaHQ6NjAwcHg7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246bWF4LWhlaWdodCAuMjRzIHZhcigtLWVhc2Utb3V0LWV4cG8pLHBhZGRpbmcgLjI0cyB2YXIoLS1lYXNlLW91dC1leHBvKSxvcGFjaXR5IC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjI0cyB2YXIoLS1lYXNlLW91dC1leHBvKTtvcGFjaXR5OjE7dHJhbnNmb3JtLW9yaWdpbjp0b3B9LnRvb2wtdXNlLWNhcmQuY29sbGFwc2VkIC50b29sLXVzZS1ib2R5e21heC1oZWlnaHQ6MDtwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjA7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZVkoLjk1KX0udG9vbC11c2UtY29udGVudHttYXJnaW46MDtmb250LXNpemU6Ljc1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3doaXRlLXNwYWNlOnByZS13cmFwO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkO21heC1oZWlnaHQ6NDAwcHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2xpbmUtaGVpZ2h0OjEuNTV9LnRvb2wtdXNlLXJlc3VsdHttYXJnaW4tdG9wOjEwcHg7cGFkZGluZy10b3A6MTBweDtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjE0KX0udG9vbC11c2UtcmVzdWx0LWNvbnRlbnR7bWFyZ2luOjA7Zm9udC1zaXplOi43NXJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC1oZWlnaHQ6MzIwcHg7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjA7b3ZlcmZsb3cteDpoaWRkZW47b3ZlcmZsb3cteTphdXRvO2xpbmUtaGVpZ2h0OjEuNTU7YmFja2dyb3VuZDojN2Q1YjM5MDk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO3BhZGRpbmc6OHB4IDEwcHg7Ym94LXNpemluZzpib3JkZXItYm94fS50b29sLXVzZS1yZXN1bHQtZW1wdHl7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30udG9vbC11c2UtbWV0YXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7bWFyZ2luLWJvdHRvbTo4cHg7cGFkZGluZy1ib3R0b206OHB4O2JvcmRlci1ib3R0b206MXB4IGRhc2hlZCByZ2JhKDEyNSw5MSw1NywuMTQpfS50b29sLXVzZS1tZXRhLWxhYmVse2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXdlaWdodDo2MDB9LnRvb2wtdXNlLWNhcmQuYXNrLXVzZXJ7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q0ZDtiYWNrZ3JvdW5kOiNjNTY1M2QwYX0udG9vbC11c2UtY2FyZC5hc2stdXNlciAudG9vbC11c2UtaGVhZGVye2JhY2tncm91bmQ6I2M1NjUzZDE0fS5hc2stdXNlci1ib2R5e3BhZGRpbmc6MTBweCAxMnB4fS5hc2stdXNlci1xdWVzdGlvbi1ncm91cHttYXJnaW4tYm90dG9tOjEwcHh9LmFzay11c2VyLXF1ZXN0aW9uLWdyb3VwOmxhc3QtY2hpbGR7bWFyZ2luLWJvdHRvbTowfS5hc2stdXNlci10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttYXJnaW4tYm90dG9tOjEwcHh9LmFzay11c2VyLW9wdGlvbnN7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4fS5hc2stdXNlci1vcHRpb257ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjhweCAxMnB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt0ZXh0LWFsaWduOmxlZnR9LmFzay11c2VyLW9wdGlvbjpob3Zlcjpub3QoOmRpc2FibGVkKXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNjNTY1M2QwZn0uYXNrLXVzZXItb3B0aW9uOmRpc2FibGVke29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkfS5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWR7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojYzU2NTNkMmU7Ym94LXNoYWRvdzowIDAgMCAxcHggI2M1NjUzZDU5IGluc2V0fS50b29sLXVzZS1jYXJkLmFzay11c2VyLmFzay11c2VyLWFuc3dlcmVke2JvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLXN1Y2Nlc3MsICM0Y2FmNTApfS5hc2stdXNlci1vcHRpb24uYXNrLXVzZXItb3B0aW9uLWNob3NlbntiYWNrZ3JvdW5kOiNjNTY1M2QyOTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KX0uYXNrLXVzZXItaW5kaWNhdG9ye3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmxleC1zaHJpbms6MDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjUwJTt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uYXNrLXVzZXItb3B0aW9uc1tkYXRhLW11bHRpLXNlbGVjdD10cnVlXSAuYXNrLXVzZXItaW5kaWNhdG9ye2JvcmRlci1yYWRpdXM6M3B4fS5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWQgLmFzay11c2VyLWluZGljYXRvcntib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCl9LmFzay11c2VyLW9wdGlvbi5zZWxlY3RlZCAuYXNrLXVzZXItaW5kaWNhdG9yOmFmdGVye2NvbnRlbnQ6IiI7d2lkdGg6NnB4O2hlaWdodDo2cHg7YmFja2dyb3VuZDojZmZmO2JvcmRlci1yYWRpdXM6NTAlfS5hc2stdXNlci1vcHRpb25zW2RhdGEtbXVsdGktc2VsZWN0PXRydWVdIC5hc2stdXNlci1vcHRpb24uc2VsZWN0ZWQgLmFzay11c2VyLWluZGljYXRvcjphZnRlcnt3aWR0aDo0cHg7aGVpZ2h0OjhweDtib3JkZXI6c29saWQgd2hpdGU7Ym9yZGVyLXdpZHRoOjAgMnB4IDJweCAwO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kOm5vbmU7dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7bWFyZ2luLWJvdHRvbToycHh9LmFzay11c2VyLW9wdGlvbi1jb250ZW50e2ZsZXg6MTttaW4td2lkdGg6MH0uYXNrLXVzZXItb3B0aW9uLWxhYmVse2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uYXNrLXVzZXItb3B0aW9uLWRlc2N7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7bWFyZ2luLXRvcDoycHg7bGluZS1oZWlnaHQ6MS40fS5hc2stdXNlci1hY3Rpb25ze21hcmdpbi10b3A6MTBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5hc2stdXNlci1zdWJtaXR7cGFkZGluZzo2cHggMTZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWFjY2VudCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtjb2xvcjojZmZmO2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uYXNrLXVzZXItc3VibWl0OmhvdmVyOm5vdCg6ZGlzYWJsZWQpe2ZpbHRlcjpicmlnaHRuZXNzKDEuMSl9LmFzay11c2VyLXN1Ym1pdDpkaXNhYmxlZHtvcGFjaXR5Oi40O2N1cnNvcjpub3QtYWxsb3dlZH0uYXNrLXVzZXItc3VibWl0LmFzay11c2VyLXN1Ym1pdHRlZHtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlci1kZWZhdWx0KTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtwb2ludGVyLWV2ZW50czpub25lfS5hc2stdXNlci1hbnN3ZXJlZCAuYXNrLXVzZXItb3B0aW9ue2N1cnNvcjpkZWZhdWx0O3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTouNn0uYXNrLXVzZXItYW5zd2VyZWQgLmFzay11c2VyLW9wdGlvbi5hc2stdXNlci1vcHRpb24tY2hvc2Vue29wYWNpdHk6MTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyk7YmFja2dyb3VuZDojNGY3YTU4MGZ9LmFzay11c2VyLWFuc3dlcmVkIC5hc2stdXNlci1vcHRpb24uYXNrLXVzZXItb3B0aW9uLWNob3NlbiAuYXNrLXVzZXItaW5kaWNhdG9ye2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKTtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpfS5hc2stdXNlci1vcHRpb24tcmVhZG9ubHl7cG9pbnRlci1ldmVudHM6bm9uZX1vdmVyZmxvdy15OiBhdXRvOyAudGhpbmtpbmctaW5saW5le2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpiYXNlbGluZTtnYXA6NXB4O21hcmdpbjoycHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6M3B4IDhweDtib3JkZXItcmFkaXVzOjZweDtiYWNrZ3JvdW5kOiM4YTZjYjIwYTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNDtjb2xvcjojOGE2Y2IyOGM7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDpicmVhay13b3JkfS50aGlua2luZy1pbmxpbmU6aG92ZXJ7YmFja2dyb3VuZDojOGE2Y2IyMTQ7Y29sb3I6IzhhNmNiMmNjfS50aGlua2luZy1pbmxpbmUuZXhwYW5kZWR7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3doaXRlLXNwYWNlOnByZS13cmFwO2xpbmUtaGVpZ2h0OjEuNjttYXgtaGVpZ2h0OjMwMHB4O292ZXJmbG93LXk6YXV0b30udGhpbmtpbmctaW5saW5lLWljb257ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjYyNXJlbX0udGhpbmtpbmctaW5saW5lLXByZXZpZXd7ZmxleDoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0udGhpbmtpbmctaW5saW5lLmV4cGFuZGVkIC50aGlua2luZy1pbmxpbmUtcHJldmlld3t3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZH0udGhpbmtpbmctaW5saW5lLWFjdGlvbntmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOiM4YTZjYjI2NjtwYWRkaW5nOjAgNHB4O2JvcmRlci1yYWRpdXM6M3B4O2JhY2tncm91bmQ6IzhhNmNiMjE0O21hcmdpbi1sZWZ0OmF1dG99LnRoaW5raW5nLWlubGluZTpob3ZlciAudGhpbmtpbmctaW5saW5lLWFjdGlvbntjb2xvcjojOGE2Y2IyYjN9LnRoaW5raW5nLWlubGluZS50aGlua2luZy1wdHl7YmFja2dyb3VuZDojOGE2Y2IyMDh9LnRoaW5raW5nLXN0cmVhbWluZ3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6NXB4O21hcmdpbjoycHggMDtwYWRkaW5nOjNweCA4cHg7Ym9yZGVyLXJhZGl1czo2cHg7YmFja2dyb3VuZDojOGE2Y2IyMGE7Y3Vyc29yOmRlZmF1bHQ7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxLjQ7Y29sb3I6IzhhNmNiMjhjfS50aGlua2luZy1zdHJlYW1pbmctaW5uZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjVweDt3aWR0aDoxMDAlfS50aGlua2luZy1zdHJlYW1pbmctaWNvbntmb250LXNpemU6LjYyNXJlbTtmbGV4LXNocmluazowO21hcmdpbi10b3A6MXB4fS50aGlua2luZy1zdHJlYW1pbmctdGV4dHtmbGV4OjE7bWluLXdpZHRoOjA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtjb2xvcjojOGE2Y2IyY2M7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkO21heC1oZWlnaHQ6NC41ZW07b3ZlcmZsb3cteTphdXRvO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjpyZ2JhKDEzOCwxMDgsMTc4LC4zKSB0cmFuc3BhcmVudH0udGhpbmtpbmctc3RyZWFtaW5nLXRleHQ6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjRweH0udGhpbmtpbmctc3RyZWFtaW5nLXRleHQ6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6IzhhNmNiMjRkO2JvcmRlci1yYWRpdXM6MnB4fS50b29sLWdyb3Vwe21hcmdpbjo0cHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7bWluLXdpZHRoOjA7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmYmY1ZDksI2ZmZjhlZWIzKTtib3gtc2hhZG93OjAgMXB4IDJweCAjNTkzYTIwMDg7b3ZlcmZsb3c6aGlkZGVuO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xOHMgZWFzZSxib3gtc2hhZG93IC4yMnMgZWFzZSx0cmFuc2Zvcm0gLjIycyBlYXNlfS50b29sLWdyb3VwOmhvdmVye2JvcmRlci1jb2xvcjojN2Q1YjM5MmU7Ym94LXNoYWRvdzowIDJweCA4cHggIzU5M2EyMDBmfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPXBlbmRpbmdde2JvcmRlci1jb2xvcjojYTk2YTJmMzg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmY0ZTJkOSwjZmZmMWRhYjMpfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPWVycm9yXXtib3JkZXItY29sb3I6I2IyNGY0NTQ3O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmNmMGVlZDksI2ZjZWNlYWIzKX0udG9vbC1ncm91cC1zdW1tYXJ5e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjlweDtwYWRkaW5nOjhweCAxMnB4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xOHMgZWFzZX0udG9vbC1ncm91cC1zdW1tYXJ5OmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDBhfS50b29sLWdyb3VwLXN0YXR1c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Ym9yZGVyLXJhZGl1czo1MCU7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsaW5lLWhlaWdodDoxO2ZsZXgtc2hyaW5rOjA7bGV0dGVyLXNwYWNpbmc6MH0udG9vbC1ncm91cFtkYXRhLXN0YXR1cz1kb25lXSAudG9vbC1ncm91cC1zdGF0dXN7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtjb2xvcjp2YXIoLS1zdWNjZXNzKX0udG9vbC1ncm91cFtkYXRhLXN0YXR1cz1lcnJvcl0gLnRvb2wtZ3JvdXAtc3RhdHVze2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLW11dGVkKTtjb2xvcjp2YXIoLS1kYW5nZXIpfS50b29sLWdyb3VwW2RhdGEtc3RhdHVzPXBlbmRpbmddIC50b29sLWdyb3VwLXN0YXR1c3tiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2NvbG9yOnZhcigtLXdhcm5pbmcpO2FuaW1hdGlvbjp0b29sLWdyb3VwLXB1bHNlIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyB0b29sLWdyb3VwLXB1bHNlezAlLHRve29wYWNpdHk6MX01MCV7b3BhY2l0eTouNTV9fS50b29sLWdyb3VwLXRleHR7ZmxleDoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzotLjAwNWVtfS50b29sLWdyb3VwLWNvdW50e2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO3BhZGRpbmc6MnB4IDhweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtiYWNrZ3JvdW5kOiM3ZDViMzkxMjtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9LnRvb2wtZ3JvdXAtY2hldnJvbntmbGV4LXNocmluazowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyk7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7b3BhY2l0eTouNn0udG9vbC1ncm91cDpob3ZlciAudG9vbC1ncm91cC1jaGV2cm9ue29wYWNpdHk6MX0udG9vbC1ncm91cFtkYXRhLWV4cGFuZGVkPXRydWVdIC50b29sLWdyb3VwLWNoZXZyb257dHJhbnNmb3JtOnJvdGF0ZSgxODBkZWcpfS50b29sLWdyb3VwLWJvZHl7ZGlzcGxheTpub25lO3BhZGRpbmc6NHB4IDhweCA4cHggMThweDtib3JkZXItdG9wOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDYpO2JvcmRlci1sZWZ0OjJweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpO2JhY2tncm91bmQ6I2ZmZmRmODhjfS50b29sLWdyb3VwLWJvZHk+LmlubGluZS10b29se21hcmdpbjowfS50b29sLWdyb3VwLWJvZHk+LmlubGluZS10b29sKy5pbmxpbmUtdG9vbHtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjA2KX0udG9vbC1ncm91cFtkYXRhLWV4cGFuZGVkPXRydWVdIC50b29sLWdyb3VwLWJvZHl7ZGlzcGxheTpibG9jazthbmltYXRpb246dG9vbC1ncm91cC1yZXZlYWwgLjE4cyB2YXIoLS1lYXNlLW91dC1leHBvKX1Aa2V5ZnJhbWVzIHRvb2wtZ3JvdXAtcmV2ZWFsezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fS5jaGF0LWZvbGQtYmFye2ZsZXg6MCAwIGF1dG87ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O21heC1oZWlnaHQ6MTI0cHg7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6OHB4IDRweCA3cHg7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y4ZjUsI2ZmZmFmNGViKTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDEwcHgpO2JveC1zaGFkb3c6MCA0cHggMTJweCAtOHB4ICM1OTNhMjAyZX0uY2hhdC1mb2xkLWJhci5oaWRkZW57ZGlzcGxheTpub25lfS5jaGF0LWZvbGQtcm93e3dpZHRoOm1pbigxMDAlLHZhcigtLWNoYXQtY2FyZC1tYXgtd2lkdGgsIDcyMHB4KSk7bWluLWhlaWdodDozMHB4O21hcmdpbjowIGF1dG87cGFkZGluZzo1cHggMTBweDtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjU0cHggbWlubWF4KDAsMWZyKTthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQsIDhweCk7YmFja2dyb3VuZDojZmZmZmZmOWU7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250OmluaGVyaXQ7dGV4dC1hbGlnbjpsZWZ0O2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uY2hhdC1mb2xkLXJvdzpob3Zlcntib3JkZXItY29sb3I6IzdkNWIzOTMzO2JhY2tncm91bmQ6I2ZmZmZmZmQxfS5jaGF0LWZvbGQtcm93Lmhpc3Rvcnl7YmFja2dyb3VuZDojZmZmOGVlYjg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5jaGF0LWZvbGQtcm9sZXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjcwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmNoYXQtZm9sZC10ZXh0e21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6Ljc4cmVtO2xpbmUtaGVpZ2h0OjEuMjV9LmNoYXQtY29udGFpbmVyLmF1dG8tZm9sZCAuY2hhdC1tZXNzYWdlc3tmbGV4OjEgMSBhdXRvO21pbi1oZWlnaHQ6MH1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuY2hhdC1mb2xkLWJhcnttYXgtaGVpZ2h0OjExMnB4O3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTo2cHh9LmNoYXQtZm9sZC1yb3d7bWluLWhlaWdodDoyOHB4O2dyaWQtdGVtcGxhdGUtY29sdW1uczo0NHB4IG1pbm1heCgwLDFmcik7cGFkZGluZzo0cHggOHB4fS5jaGF0LWZvbGQtcm9sZXtmb250LXNpemU6LjY4cmVtfS5jaGF0LWZvbGQtdGV4dHtmb250LXNpemU6Ljc0cmVtfX0uY2hhdC1mb2xkLWJhci1zcGFjZXJ7ZGlzcGxheTpub25lfS5jaGF0LWhpc3RvcnktaGlkZGVuLC5jaGF0LWF1dG8tZm9sZC1oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH0uY2hhdC1oaXN0b3J5LXN1bW1hcnl7d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2hhdC1jYXJkLW1heC13aWR0aCwgNzIwcHgpO21hcmdpbjoxMHB4IGF1dG87Ym94LXNpemluZzpib3JkZXItYm94fS5jaGF0LWhpc3Rvcnktc3VtbWFyeS1idG57ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OXB4O3dpZHRoOjEwMCU7cGFkZGluZzo3cHggMTJweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCwgOTk5cHgpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZiZjVlNiwjZmZmN2VjYzcpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM1OTNhMjAwYTtjdXJzb3I6cG9pbnRlcjt0ZXh0LWFsaWduOmxlZnQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQ6aW5oZXJpdDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMThzIGVhc2UsYm94LXNoYWRvdyAuMjJzIGVhc2UsYmFja2dyb3VuZCAuMThzIGVhc2V9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWJ0bjpob3Zlcntib3JkZXItY29sb3I6IzdkNWIzOTMzO2JveC1zaGFkb3c6MCAycHggOHB4ICM1OTNhMjAwZjtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmFmM2YyLCNmZmY1ZThkOSl9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmbGV4LXNocmluazowO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6Ljc1fS5jaGF0LWhpc3Rvcnktc3VtbWFyeS1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjFweDtmbGV4OjE7bWluLXdpZHRoOjB9LmNoYXQtaGlzdG9yeS1zdW1tYXJ5LXRpdGxle2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LS4wMDVlbX0uY2hhdC1oaXN0b3J5LXN1bW1hcnktbWV0YXtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30uY2hhdC1oaXN0b3J5LXN1bW1hcnktY2hldnJvbntmbGV4LXNocmluazowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6LjY7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI1cyB2YXIoLS1lYXNlLW91dC1leHBvKX0uY2hhdC1oaXN0b3J5LXN1bW1hcnktYnRuOmhvdmVyIC5jaGF0LWhpc3Rvcnktc3VtbWFyeS1jaGV2cm9ue29wYWNpdHk6MX0uY2hhdC1oaXN0b3J5LXN1bW1hcnlbZGF0YS1leHBhbmRlZD10cnVlXSAuY2hhdC1oaXN0b3J5LXN1bW1hcnktY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmlubGluZS10b29se2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47bWFyZ2luOjFweCAwO3dpZHRoOjEwMCU7bWF4LXdpZHRoOnZhcigtLWNoYXQtY2FyZC1tYXgtd2lkdGgsIDcyMHB4KTttaW4td2lkdGg6MDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2V9LnRvb2wtZ3JvdXAtYm9keT4uaW5saW5lLXRvb2x7bWF4LXdpZHRoOjEwMCV9LmlubGluZS10b29sLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo1cHggMTBweDtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2xpbmUtaGVpZ2h0OjEuNDU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsY29sb3IgLjE2cyBlYXNlfS5pbmxpbmUtdG9vbDpob3ZlciAuaW5saW5lLXRvb2wtcm93e2JhY2tncm91bmQ6I2M1NjUzZDBmO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmlubGluZS10b29sLXN0YXR1c3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE0cHg7aGVpZ2h0OjE0cHg7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2xpbmUtaGVpZ2h0OjF9LmlubGluZS10b29sW2RhdGEtc3RhdHVzPXBlbmRpbmddIC5pbmxpbmUtdG9vbC1zdGF0dXN7Y29sb3I6dmFyKC0td2FybmluZyl9LmlubGluZS10b29sW2RhdGEtc3RhdHVzPWVycm9yXSAuaW5saW5lLXRvb2wtc3RhdHVzLC5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmUgLmlubGluZS10b29sLXN0YXR1c3tjb2xvcjp2YXIoLS1kYW5nZXIpfS5pbmxpbmUtdG9vbC1pY29ue2ZsZXgtc2hyaW5rOjA7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7b3BhY2l0eTouODV9LmlubGluZS10b29sOmhvdmVyIC5pbmxpbmUtdG9vbC1pY29ue2NvbG9yOnZhcigtLWFjY2VudCk7b3BhY2l0eToxfS5pbmxpbmUtdG9vbC10aXRsZXtmbGV4OjE7bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXNpemU6Ljc1cmVtfS5pbmxpbmUtdG9vbDpob3ZlciAuaW5saW5lLXRvb2wtdGl0bGV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uaW5saW5lLXRvb2wtbWV0YXtmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXgtd2lkdGg6MjIwcHg7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztsZXR0ZXItc3BhY2luZzotLjAxZW19LmlubGluZS10b29sLWltYWdle3BhZGRpbmc6MnB4IDEwcHggOHB4IDMycHg7Y3Vyc29yOmRlZmF1bHR9LmlubGluZS10b29sLWltYWdlLXRodW1ie2Rpc3BsYXk6YmxvY2s7bWF4LXdpZHRoOm1pbigxMDAlLDM2MHB4KTttYXgtaGVpZ2h0OjI0MHB4O3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjE0KTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDEyNSw5MSw1NywuMDUpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNzUlLHJnYmEoMTI1LDkxLDU3LC4wNSkgNzUlKSAwIDAgLyAxNnB4IDE2cHgsbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMTI1LDkxLDU3LC4wNSkgMjUlLHRyYW5zcGFyZW50IDI1JSx0cmFuc3BhcmVudCA3NSUscmdiYSgxMjUsOTEsNTcsLjA1KSA3NSUpIDhweCA4cHggLyAxNnB4IDE2cHg7b2JqZWN0LWZpdDpjb250YWluO2N1cnNvcjp6b29tLWluO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZX0uaW5saW5lLXRvb2wtaW1hZ2UtdGh1bWI6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDJweCAxMHB4ICMwMDAwMDAxZn0uaW5saW5lLXRvb2wtZXhwYW5kZWR7ZGlzcGxheTpub25lO3BhZGRpbmc6MCAxMHB4IDhweH0uaW5saW5lLXRvb2wtb3BlbiAuaW5saW5lLXRvb2wtZXhwYW5kZWR7ZGlzcGxheTpibG9jazthbmltYXRpb246dG9vbC1ncm91cC1yZXZlYWwgLjE2cyB2YXIoLS1lYXNlLW91dC1leHBvKX0uaW5saW5lLXRvb2wtcmVzdWx0e2JhY2tncm91bmQ6IzdkNWIzOTBhO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA3KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy14cyk7cGFkZGluZzoxMHB4IDEycHg7bWFyZ2luLXRvcDo2cHg7bWF4LWhlaWdodDozMjBweDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy14OmhpZGRlbjtvdmVyZmxvdy15OmF1dG87c2Nyb2xsYmFyLXdpZHRoOnRoaW47c2Nyb2xsYmFyLWNvbG9yOnJnYmEoMTI1LDkxLDU3LC4yKSB0cmFuc3BhcmVudH0uaW5saW5lLXRvb2wtcmVzdWx0Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo2cHh9LmlubGluZS10b29sLXJlc3VsdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojN2Q1YjM5MzM7Ym9yZGVyLXJhZGl1czozcHh9LmlubGluZS10b29sLXJlc3VsdDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5NTJ9LmlubGluZS10b29sLXJlc3VsdC10ZXh0e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43NXJlbTtsaW5lLWhlaWdodDoxLjU1O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO21hcmdpbjowfS5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmV7Ym9yZGVyLWxlZnQ6MnB4IHNvbGlkIHZhcigtLWRhbmdlcik7cGFkZGluZy1sZWZ0OjJweDttYXJnaW4tbGVmdDotMnB4fS5pbmxpbmUtdG9vbC1lcnJvci1pbmxpbmUgLmlubGluZS10b29sLXJvd3tjb2xvcjp2YXIoLS1kYW5nZXIpfS5pbmxpbmUtdG9vbC1yZXN1bHQuaW5saW5lLXRvb2wtZXJyb3J7Y29sb3I6dmFyKC0tZGFuZ2VyKTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouNzVyZW07YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2JvcmRlci1jb2xvcjojYjI0ZjQ1MmV9LmlubGluZS10b29sLWxvYWRpbmd7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS13YXJuaW5nKTtmb250LXN0eWxlOml0YWxpYztwYWRkaW5nOjZweCAwO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHh9LmlubGluZS10b29sLWxvYWRpbmc6YmVmb3Jle2NvbnRlbnQ6IiI7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MTBweDtoZWlnaHQ6MTBweDtib3JkZXI6MS41cHggc29saWQgdmFyKC0td2FybmluZy1tdXRlZCk7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS13YXJuaW5nKTtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246dG9vbC1jb250ZW50LXNwaW4gLjdzIGxpbmVhciBpbmZpbml0ZX0uaW5saW5lLXRvb2wtZW1wdHl7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30udG9vbC1jb250ZW50LWxvYWRpbmd7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpYztwYWRkaW5nOjhweCAwfS50b29sLWNvbnRlbnQtbG9hZGluZzpiZWZvcmV7Y29udGVudDoiIjtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDoxMnB4O2hlaWdodDoxMnB4O2JvcmRlcjoycHggc29saWQgdmFyKC0tdGV4dC1tdXRlZCk7Ym9yZGVyLXRvcC1jb2xvcjp0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246dG9vbC1jb250ZW50LXNwaW4gLjZzIGxpbmVhciBpbmZpbml0ZTt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bWFyZ2luLXJpZ2h0OjZweH1Aa2V5ZnJhbWVzIHRvb2wtY29udGVudC1zcGlue3Rve3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LnRvb2wtY29udGVudC1lcnJvcntmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLWVycm9yKTtwYWRkaW5nOjhweCAwO2N1cnNvcjpwb2ludGVyfS50b29sLWNvbnRlbnQtZXJyb3I6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0uaW5saW5lLXRlcm1pbmFse21hcmdpbjo0cHggMDt3aWR0aDoxMDAlO21heC13aWR0aDp2YXIoLS1jaGF0LWNhcmQtbWF4LXdpZHRoLCA3MjBweCk7bWluLXdpZHRoOjA7Ym94LXNpemluZzpib3JkZXItYm94O2JvcmRlcjoxcHggc29saWQgcmdiYSgxNSwxMiw5LC42KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7YmFja2dyb3VuZDojMWYxYjE3O2JveC1zaGFkb3c6MCAxcHggI2ZmZmZmZjBhIGluc2V0LDAgMnB4IDEycHggIzBmMGMwOTJlO292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOmJveC1zaGFkb3cgLjIycyBlYXNlLHRyYW5zZm9ybSAuMjJzIGVhc2UsYm9yZGVyLWNvbG9yIC4yMnMgZWFzZX0uaW5saW5lLXRlcm1pbmFsOmhvdmVye2JveC1zaGFkb3c6MCAxcHggI2ZmZmZmZjBkIGluc2V0LDAgNHB4IDE4cHggIzBmMGMwOTNkO2JvcmRlci1jb2xvcjojZmZmZmZmMWF9LnRlcm0taGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZzo4cHggMTRweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmZmZjBhLCNmZmZmZmYwNCksIzAwMDAwMDJlO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjA0KTtmb250LXNpemU6Ljc1cmVtO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmU7cG9zaXRpb246cmVsYXRpdmU7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9LnRlcm0taGVhZGVyOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmZmZmMGYsI2ZmZmZmZjA2KSwjMDAwMDAwMmV9LnRlcm0tc3RhdHVzLWRvdHt3aWR0aDo5cHg7aGVpZ2h0OjlweDtib3JkZXItcmFkaXVzOjUwJTtmbGV4LXNocmluazowO2JveC1zaGFkb3c6MCAwIDAgMXB4ICMwMDAwMDA0MCBpbnNldH0udGVybS1zdGF0dXMtZG90LnRlcm0tc3VjY2Vzc3tiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzUlIDMwJSwjYjZmMGM0LCM2ZWUwOWEsIzNhYTc2NSk7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCA2cHggIzZlZTA5YTU5fS50ZXJtLXN0YXR1cy1kb3QudGVybS1lcnJvcntiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMzUlIDMwJSwjZmZiNWI5LCNmMDcxNzgsI2I1M2I0MSk7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCA2cHggI2YwNzE3ODU5fS50ZXJtLXN0YXR1cy1kb3QudGVybS13YXJue2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAzNSUgMzAlLCNmZmQwN2EsI2YwYTUwMCwjYWQ3NDAwKTtib3gtc2hhZG93OjAgMCAwIDFweCAjMDAwMDAwNDAgaW5zZXQsMCAwIDZweCAjZjBhNTAwNTl9LnRlcm0tc3RhdHVzLWRvdC50ZXJtLXJ1bm5pbmd7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDM1JSAzMCUsI2QxZDVkYiwjOWNhM2FmLCM0YjU1NjMpO2FuaW1hdGlvbjp0ZXJtLXB1bHNlIDFzIGVhc2UtaW4tb3V0IGluZmluaXRlfUBrZXlmcmFtZXMgdGVybS1wdWxzZXswJSx0b3tvcGFjaXR5OjE7Ym94LXNoYWRvdzowIDAgMCAxcHggIzAwMDAwMDQwIGluc2V0LDAgMCAjOWNhM2FmMDB9NTAle29wYWNpdHk6LjU1O2JveC1zaGFkb3c6MCAwIDAgMXB4ICMwMDAwMDA0MCBpbnNldCwwIDAgOHB4ICM5Y2EzYWY1OX19LnRlcm0tY21kLXByZXZpZXd7ZmxleDoxO21pbi13aWR0aDowO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi43NXJlbTtjb2xvcjojZThkY2M4Yzc7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LnRlcm0tY21kLXByZXZpZXcgLnRlcm0tcHJvbXB0e2NvbG9yOiM2ZWUwOWE7Zm9udC13ZWlnaHQ6NjAwO21hcmdpbi1yaWdodDo2cHg7Zm9udC1zaXplOi43NXJlbTtvcGFjaXR5Oi45fS50ZXJtLXRvZ2dsZS1pY29ue2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOiNmZmZmZmY1OTt0cmFuc2l0aW9uOmNvbG9yIC4xOHMgZWFzZTtmbGV4LXNocmluazowfS50ZXJtLWhlYWRlcjpob3ZlciAudGVybS10b2dnbGUtaWNvbntjb2xvcjojZmZmZmZmYTZ9LnRlcm0tYm9keXtwYWRkaW5nOjEycHggMTRweCAxNHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjMDAwMDAwMmUsIzAwMDAgMjRweCksIzFmMWIxN30udGVybS1jb21tYW5ke2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOiNmNGU5ZDQ7bGluZS1oZWlnaHQ6MS41NTttYXJnaW4tYm90dG9tOjZweDt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS50ZXJtLXByb21wdHtjb2xvcjojNmVlMDlhO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tcmlnaHQ6NnB4O3RleHQtc2hhZG93OjAgMCA2cHggcmdiYSgxMTAsMjI0LDE1NCwuMjUpfS50ZXJtLW91dHB1dHttYXJnaW4tdG9wOjhweDtwYWRkaW5nLXRvcDo4cHg7Ym9yZGVyLXRvcDoxcHggZGFzaGVkIHJnYmEoMjU1LDI1NSwyNTUsLjA2KTttYXgtaGVpZ2h0OjM2MHB4O21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXg6aGlkZGVuO292ZXJmbG93LXk6YXV0bztzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwuMTUpIHRyYW5zcGFyZW50fS50ZXJtLW91dHB1dDo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6NnB4fS50ZXJtLW91dHB1dDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojZmZmZmZmMjY7Ym9yZGVyLXJhZGl1czozcHh9LnRlcm0tb3V0cHV0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmY0MH0udGVybS1saW5le2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOiNkNGMyYTM7bGluZS1oZWlnaHQ6MS41NTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowfS50ZXJtLWV4aXR7bWFyZ2luLXRvcDoxMHB4O3BhZGRpbmctdG9wOjhweDtib3JkZXItdG9wOjFweCBkYXNoZWQgcmdiYSgyNTUsMjU1LDI1NSwuMDYpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi42ODc1cmVtO2xpbmUtaGVpZ2h0OjEuNTtsZXR0ZXItc3BhY2luZzouMDRlbX0udGVybS1leGl0LXN1Y2Nlc3N7Y29sb3I6IzZlZTA5YWJmfS50ZXJtLWV4aXQtZXJyb3J7Y29sb3I6I2YwNzE3OGM3fS5pbmxpbmUtZGlmZnttYXJnaW46NHB4IDA7d2lkdGg6MTAwJTttYXgtd2lkdGg6dmFyKC0tY2hhdC1jYXJkLW1heC13aWR0aCwgNzIwcHgpO21pbi13aWR0aDowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZiZjVlMCwjZmZmNmVhYjgpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM1OTNhMjAwYTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMjJzIGVhc2UsYm94LXNoYWRvdyAuMjJzIGVhc2V9LmlubGluZS1kaWZmOmhvdmVye2JvcmRlci1jb2xvcjojN2Q1YjM5Mzg7Ym94LXNoYWRvdzowIDNweCAxMnB4ICM1OTNhMjAwZn0uZGlmZi1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjhweCAxNHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOi44MTI1cmVtO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2U7bWF4LXdpZHRoOjEwMCU7bWluLXdpZHRoOjB9LmRpZmYtaGVhZGVyOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDBhfS5kaWZmLXRvZ2dsZXtmb250LXNpemU6LjYyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuM3MgdmFyKC0tZWFzZS1zcHJpbmcpLGNvbG9yIC4xOHMgZWFzZTtmbGV4LXNocmluazowO21hcmdpbi1sZWZ0OmF1dG87b3BhY2l0eTouNn0uaW5saW5lLWRpZmY6aG92ZXIgLmRpZmYtdG9nZ2xle2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtvcGFjaXR5OjF9LmlubGluZS1kaWZmLmNvbGxhcHNlZCAuZGlmZi10b2dnbGV7dHJhbnNmb3JtOnJvdGF0ZSgtOTBkZWcpfS5pbmxpbmUtZGlmZi5jb2xsYXBzZWQgLmRpZmYtYm9keXttYXgtaGVpZ2h0OjA7b3ZlcmZsb3c6aGlkZGVuO29wYWNpdHk6MDt0cmFuc2l0aW9uOm1heC1oZWlnaHQgLjM1cyB2YXIoLS1lYXNlLW91dC1leHBvKSxvcGFjaXR5IC4yNXMgZWFzZX0uZGlmZi1maWxlLWljb257ZGlzcGxheTpub25lfS5kaWZmLWZpbGUtbmFtZXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi44MTI1cmVtO2xldHRlci1zcGFjaW5nOi0uMDA1ZW19LmRpZmYtcGF0aHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2ZsZXg6MTttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOi42ODc1cmVtfS5kaWZmLXN0YXR1c3tmbGV4LXNocmluazowO2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo2MDA7cGFkZGluZzozcHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtsZXR0ZXItc3BhY2luZzouMDFlbX0uZGlmZi1zdGF0dXMuZGlmZi1zdWNjZXNze2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCk7Y29sb3I6dmFyKC0tc3VjY2Vzcyl9LmRpZmYtc3RhdHVzLmRpZmYtZXJyb3J7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2NvbG9yOnZhcigtLWRhbmdlcil9LmRpZmYtc3RhdHVzLmRpZmYtcGVuZGluZ3tiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmctbXV0ZWQpO2NvbG9yOnZhcigtLXdhcm5pbmcpfS5kaWZmLWJvZHl7b3ZlcmZsb3c6aGlkZGVuO2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wOCk7YmFja2dyb3VuZDojZmZmZGY4YTZ9LmRpZmYtY29sdW1uc3tkaXNwbGF5OmZsZXg7Z2FwOjFweDtiYWNrZ3JvdW5kOiM3ZDViMzkxNDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MH0uZGlmZi1jb2x7ZmxleDoxIDEgMDttaW4td2lkdGg6MDttYXgtd2lkdGg6MTAwJTtiYWNrZ3JvdW5kOiNmZmZkZjhkOTtvdmVyZmxvdzpoaWRkZW59LmRpZmYtY29sLWhhbGZ7ZmxleDoxfS5kaWZmLWNvbC1mdWxse2ZsZXg6bm9uZTt3aWR0aDoxMDAlfS5kaWZmLWNvbC1sYWJlbHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouNjI1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtwYWRkaW5nOjRweCAxMnB4O2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzouMDhlbTtiYWNrZ3JvdW5kOiM3ZDViMzkwZDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDgpfS5kaWZmLWxpbmV7cGFkZGluZzozcHggMTJweDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouNzVyZW07bGluZS1oZWlnaHQ6MS41NTt3aGl0ZS1zcGFjZTpwcmUtd3JhcDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZGlmZi1hZGR7YmFja2dyb3VuZDojNGY3YTU4MTQ7Y29sb3I6IzJjNTUzNTtib3JkZXItbGVmdDoycHggc29saWQgcmdiYSg3OSwxMjIsODgsLjUpfS5kaWZmLXJlbW92ZXtiYWNrZ3JvdW5kOiNiMjRmNDUwZjtjb2xvcjojN2MyYTIzO2JvcmRlci1sZWZ0OjJweCBzb2xpZCByZ2JhKDE3OCw3OSw2OSwuNDUpfS5tYXJrZG93bi1jb250ZW50e2NvbG9yOmluaGVyaXQ7d2hpdGUtc3BhY2U6bm9ybWFsO292ZXJmbG93LXg6aGlkZGVuO21heC13aWR0aDoxMDAlO21pbi13aWR0aDowO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkfS5tYXJrZG93bi1jb250ZW50IC5jb2RlLWJsb2NrIHByZXtvdmVyZmxvdy14OmhpZGRlbjt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MH0ubWFya2Rvd24tY29udGVudCBwe21hcmdpbjowIDAgOHB4O292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkfS5tYXJrZG93bi1jb250ZW50IHA6bGFzdC1jaGlsZHttYXJnaW4tYm90dG9tOjB9Lm1hcmtkb3duLWNvbnRlbnQgc3Ryb25ne2ZvbnQtd2VpZ2h0OjYwMH0ubWFya2Rvd24tY29udGVudCBlbXtmb250LXN0eWxlOml0YWxpY30ubWFya2Rvd24tY29udGVudCB1bCwubWFya2Rvd24tY29udGVudCBvbHttYXJnaW46OHB4IDA7cGFkZGluZy1sZWZ0OjIwcHh9Lm1hcmtkb3duLWNvbnRlbnQgbGl7bWFyZ2luOjRweCAwO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkfS5tYXJrZG93bi1jb250ZW50IGgxLC5tYXJrZG93bi1jb250ZW50IGgyLC5tYXJrZG93bi1jb250ZW50IGgze21hcmdpbjoxNnB4IDAgOHB4O2ZvbnQtd2VpZ2h0OjYwMDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ubWFya2Rvd24tY29udGVudCBoMXtmb250LXNpemU6MS4yNXJlbX0ubWFya2Rvd24tY29udGVudCBoMntmb250LXNpemU6MS4xcmVtfS5tYXJrZG93bi1jb250ZW50IGgze2ZvbnQtc2l6ZToxcmVtfS5tYXJrZG93bi1jb250ZW50IGJsb2NrcXVvdGV7bWFyZ2luOjhweCAwO3BhZGRpbmc6OHB4IDEycHg7Ym9yZGVyLWxlZnQ6M3B4IHNvbGlkIHZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojYzU2NTNkMGY7Ym9yZGVyLXJhZGl1czowIHZhcigtLXJhZGl1cy1zbSkgdmFyKC0tcmFkaXVzLXNtKSAwO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkfS5tYXJrZG93bi1jb250ZW50IGF7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTt3b3JkLWJyZWFrOmJyZWFrLWFsbH0ubWFya2Rvd24tY29udGVudCBpbWd7bWF4LXdpZHRoOjEwMCU7aGVpZ2h0OmF1dG99Lm1hcmtkb3duLWNvbnRlbnQgY29kZTpub3QoLmNvZGUtYmxvY2spOm5vdCguY29kZS1pbmxpbmUpe2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2JhY2tncm91bmQ6Izk2NzY1NTFmO3BhZGRpbmc6MnB4IDVweDtib3JkZXItcmFkaXVzOjRweDtvdmVyZmxvdy13cmFwOmFueXdoZXJlO3dvcmQtYnJlYWs6YnJlYWstYWxsfS5tYXJrZG93bi1jb250ZW50IGNvZGUuY29kZS1pbmxpbmV7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjgxMjVyZW07YmFja2dyb3VuZDojOTY3NjU1MWY7cGFkZGluZzoycHggNXB4O2JvcmRlci1yYWRpdXM6NHB4O292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay1hbGx9Lm1hcmtkb3duLWNvbnRlbnQgLm1kLXRhYmxlLXdyYXB7bWFyZ2luOjEycHggMDttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MDtvdmVyZmxvdy14OmF1dG87Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaH0ubWFya2Rvd24tY29udGVudCAubWQtdGFibGV7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO3dpZHRoOjEwMCU7dGFibGUtbGF5b3V0OmZpeGVkO2ZvbnQtc2l6ZTouODEyNXJlbTt3aGl0ZS1zcGFjZTpub3JtYWx9Lm1hcmtkb3duLWNvbnRlbnQgLm1kLXRhYmxlIHRoLC5tYXJrZG93bi1jb250ZW50IC5tZC10YWJsZSB0ZHtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7cGFkZGluZzo2cHggMTBweDt0ZXh0LWFsaWduOmxlZnQ7dmVydGljYWwtYWxpZ246dG9wO292ZXJmbG93LXdyYXA6YW55d2hlcmU7d29yZC1icmVhazpicmVhay13b3JkfS5tYXJrZG93bi1jb250ZW50IC5tZC10YWJsZSB0aHtiYWNrZ3JvdW5kOiM5Njc2NTUxYTtmb250LXdlaWdodDo2MDB9Lm1hcmtkb3duLWNvbnRlbnQgLm1kLXRhYmxlIHRib2R5IHRyOm50aC1jaGlsZCgybil7YmFja2dyb3VuZDojOTY3NjU1MGF9Lm1hcmtkb3duLWNvbnRlbnQgLmNvZGUtYmxvY2t7bWFyZ2luOjEycHggMDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6IzFmMWIxNztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTIyLDkxLDY0LC4zNSk7Ym94LXNoYWRvdzowIDJweCA4cHggIzAwMDAwMDI2fS5tYXJrZG93bi1jb250ZW50IC5jb2RlLWJsb2NrLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6NnB4IDEycHg7YmFja2dyb3VuZDojN2E1YjQwMzM7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMjIsOTEsNjQsLjIpO2dhcDo4cHh9Lm1hcmtkb3duLWNvbnRlbnQgLmNvZGUtbGFuZ3tmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjojOGM3MzVmO3RleHQtdHJhbnNmb3JtOmxvd2VyY2FzZTt3aGl0ZS1zcGFjZTpub3dyYXA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXN9Lm1hcmtkb3duLWNvbnRlbnQgLmNvZGUtY29weXtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouN3JlbTtwYWRkaW5nOjRweCAxMHB4O2JvcmRlci1yYWRpdXM6NnB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMTUpO2JhY2tncm91bmQ6I2ZmZmZmZjFhO2NvbG9yOiNkOWM0YjA7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTt3aGl0ZS1zcGFjZTpub3dyYXA7ZmxleC1zaHJpbms6MH0ubWFya2Rvd24tY29udGVudCAuY29kZS1jb3B5OmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZjJlO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiNmZmZmZmY0MH0ubWFya2Rvd24tY29udGVudCAuY29kZS1jb3B5LmNvcGllZHtjb2xvcjojN2ZhMzZmO2JvcmRlci1jb2xvcjojN2ZhMzZmODA7YmFja2dyb3VuZDojN2ZhMzZmMjZ9Lm1hcmtkb3duLWNvbnRlbnQgcHJle21hcmdpbjowO3BhZGRpbmc6MTJweDtvdmVyZmxvdy14OmhpZGRlbjt3aGl0ZS1zcGFjZTpwcmUtd3JhcDt3b3JkLWJyZWFrOmJyZWFrLXdvcmQ7b3ZlcmZsb3ctd3JhcDphbnl3aGVyZTttYXgtd2lkdGg6MTAwJTttaW4td2lkdGg6MH0ubWFya2Rvd24tY29udGVudCBwcmUgY29kZXtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTtsaW5lLWhlaWdodDoxLjU7Y29sb3I6I2Y1ZWFkYztiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3BhZGRpbmc6MDttYXgtd2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrfS5pbnB1dC1wYW5lbHtwYWRkaW5nOjZweCAxMHB4O3BhZGRpbmctYm90dG9tOmNhbGMoNnB4ICsgdmFyKC0taW5wdXQtc2FmZS1ib3R0b20sIHZhcigtLXNhZmUtYm90dG9tLCAwcHgpKSk7ZmxleC1zaHJpbms6MDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjI2O292ZXJzY3JvbGwtYmVoYXZpb3I6Y29udGFpbjt0b3VjaC1hY3Rpb246cGFuLXk7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlLHZpc2liaWxpdHkgMHN9LmlucHV0LWNvbXBvc2Vye2JhY2tncm91bmQ6I2ZmZmZmZmUwO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6MjJweDt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7b3ZlcmZsb3c6aGlkZGVuO3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJzY3JvbGwtYmVoYXZpb3I6Y29udGFpbn0uaW5wdXQtY29tcG9zZXI6Zm9jdXMtd2l0aGlue2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAwIDAgMnB4IHZhcigtLWFjY2VudC1tdXRlZCksMCAwIDE2cHggI2M1NjUzZDE0O2JhY2tncm91bmQ6I2ZmZmZmZmZhfS5jb21wb3Nlci1zdGF0dXMtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4LXdyYXA6d3JhcDtwYWRkaW5nOjAgMTBweDttaW4taGVpZ2h0OjA7dHJhbnNpdGlvbjpwYWRkaW5nIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmNvbXBvc2VyLXN0YXR1cy1yb3c+KntmbGV4LXNocmluazowfS5jb21wb3Nlci1zdGF0dXMtcm93Omhhcyg+Kjpub3QoLmhpZGRlbikpe3BhZGRpbmctdG9wOjZweDtwYWRkaW5nLWJvdHRvbTowfUBzdXBwb3J0cyBub3Qgc2VsZWN0b3IoOmhhcygqKSl7LmNvbXBvc2VyLXN0YXR1cy1yb3c6bm90KDplbXB0eSl7cGFkZGluZy10b3A6NHB4fX0uY29tcG9zZXItbWFpbi1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6NHB4IDZweDttaW4taGVpZ2h0OjQ0cHh9LmNvbXBvc2VyLWFjdGlvbnMtbGVmdCwuY29tcG9zZXItYWN0aW9ucy1yaWdodHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoycHg7ZmxleC1zaHJpbms6MH0uY29tcG9zZXItaW5wdXQtd3JhcHtwb3NpdGlvbjpyZWxhdGl2ZTtmbGV4OjEgMSBhdXRvO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LmNvbXBvc2VyLWlubGluZS1jb25maWd7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4OjAgMSBhdXRvO21pbi13aWR0aDowO2dhcDo0cHh9LmNvbXBvc2VyLWNvbmZpZy1jb250cm9sc3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O21pbi13aWR0aDowfS5jb21wb3Nlci1jb25maWctY2hpcCwuY29tcG9zZXItY29uZmlnLXBhcnR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6NHB4O21pbi1oZWlnaHQ6MjhweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3VzZXItc2VsZWN0Om5vbmU7d2hpdGUtc3BhY2U6bm93cmFwfS5jb21wb3Nlci1jb25maWctY2hpcHttYXgtd2lkdGg6NzZweDtwYWRkaW5nOjAgOHB4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOiNmNmYxZThiODt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5jb21wb3Nlci1jb25maWctY2hpcC1tb2Rle2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojYzU2NTNkMWE7Ym9yZGVyLWNvbG9yOiNjNTY1M2QzOH0uY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5ne2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6c3RyZXRjaDtmbGV4OjAgMSBhdXRvO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMTgpO2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDojZmZmOGYyZDE7Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uY29tcG9zZXItY29uZmlnLWNoaXA6aG92ZXIsLmNvbXBvc2VyLWNvbmZpZy1jaGlwOmZvY3VzLXdpdGhpbiwuY29tcG9zZXItY29uZmlnLW1vZGVsLXRoaW5raW5nOmhvdmVyLC5jb21wb3Nlci1jb25maWctbW9kZWwtdGhpbmtpbmc6Zm9jdXMtd2l0aGlue2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6I2ZmZjhmMmY1fS5jb21wb3Nlci1jb25maWctcGFydHttaW4td2lkdGg6MDtwYWRkaW5nOjAgN3B4O2N1cnNvcjpwb2ludGVyfS5jb21wb3Nlci1jb25maWctbW9kZWx7bWF4LXdpZHRoOjkycHh9LmNvbXBvc2VyLWNvbmZpZy10aGlua2luZ3ttaW4td2lkdGg6NDJweDtjb2xvcjojYTk2NTJkfS5jb21wb3Nlci1jb25maWctdGhpbmtpbmdbZGF0YS10aGlua2luZz1vZmZde2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5jb21wb3Nlci1jb25maWctdGhpbmtpbmdbZGF0YS10aGlua2luZz1zdGFuZGFyZF17Y29sb3I6IzVkOGE2Nn0uY29tcG9zZXItY29uZmlnLXRoaW5raW5nW2RhdGEtdGhpbmtpbmc9ZGVlcF17Y29sb3I6I2IxNmEyZn0uY29tcG9zZXItY29uZmlnLXRoaW5raW5nW2RhdGEtdGhpbmtpbmc9bWF4XXtjb2xvcjojYzU1MjQ4fS5jb21wb3Nlci1jb25maWctcGFydCsuY29tcG9zZXItY29uZmlnLXBhcnR7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMTQpfS5jb21wb3Nlci1jb25maWctaWNvbntmbGV4OjAgMCBhdXRvO3dpZHRoOjEzcHg7aGVpZ2h0OjEzcHh9LmNvbXBvc2VyLWNvbmZpZy1sYWJlbHttaW4td2lkdGg6MDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpcztmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjYwMDtsaW5lLWhlaWdodDoxfS5jb21wb3Nlci10ZXh0LXBpbGx7cG9zaXRpb246cmVsYXRpdmU7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6LjdyZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE7cGFkZGluZzoycHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246Y29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3doaXRlLXNwYWNlOm5vd3JhcDtib3gtc2l6aW5nOmJvcmRlci1ib3g7dXNlci1zZWxlY3Q6bm9uZTttYXgtd2lkdGg6MTEwcHg7bGV0dGVyLXNwYWNpbmc6LjAxZW19LmNvbXBvc2VyLXRleHQtcGlsbDpob3ZlciwuY29tcG9zZXItdGV4dC1waWxsOmZvY3VzLXdpdGhpbntjb2xvcjp2YXIoLS1hY2NlbnQpfS5jb21wb3Nlci10ZXh0LWxhYmVse292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO21heC13aWR0aDoxMDAlfS5jb21wb3Nlci10ZXh0LWhpZGRlbi1zZWxlY3R7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MDtib3JkZXI6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnRyYW5zcGFyZW50O2ZvbnQ6aW5oZXJpdDtvcGFjaXR5OjA7Y3Vyc29yOnBvaW50ZXI7YXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lfS5jb21wb3Nlci10ZXh0LWhpZGRlbi1zZWxlY3Q6Zm9jdXN7b3V0bGluZTpub25lfS5jb21wb3Nlci10ZXh0LXNlcHtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5LCAjYjVhODlhKTtmb250LXNpemU6LjdyZW07bGluZS1oZWlnaHQ6MTt1c2VyLXNlbGVjdDpub25lO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTouNjV9LnBlcm1pc3Npb24tYWN0aW9uc3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O2FuaW1hdGlvbjpwZXJtaXNzaW9uLWZhZGUtaW4gLjJzIGVhc2Utb3V0fS5wZXJtaXNzaW9uLWFjdGlvbnMuaGlkZGVue2Rpc3BsYXk6bm9uZX0ucGVybWlzc2lvbi1hY3Rpb25zLWxhYmVse2ZvbnQtc2l6ZTouN3JlbTtjb2xvcjojZDE4YjAwO21heC13aWR0aDoxODBweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXB9LmJ0bi1wZXJtaXNzaW9ue2ZvbnQtc2l6ZTouNjVyZW07cGFkZGluZzoxcHggOHB4O2JvcmRlci1yYWRpdXM6NHB4O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6MS40O2ZvbnQtd2VpZ2h0OjUwMDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyxib3JkZXItY29sb3IgLjE1c30uYnRuLXBlcm1pc3Npb246ZGlzYWJsZWR7b3BhY2l0eTouNTtjdXJzb3I6bm90LWFsbG93ZWR9LmJ0bi1wZXJtaXNzaW9uLWFwcHJvdmV7YmFja2dyb3VuZDojZjBhNTAwMjY7Y29sb3I6I2QxOGIwMDtib3JkZXItY29sb3I6I2YwYTUwMDRkfS5idG4tcGVybWlzc2lvbi1hcHByb3ZlOmhvdmVyOm5vdCg6ZGlzYWJsZWQpe2JhY2tncm91bmQ6I2YwYTUwMDQwfS5idG4tcGVybWlzc2lvbi1kZW55e2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWJvcmRlcil9LmJ0bi1wZXJtaXNzaW9uLWRlbnk6aG92ZXI6bm90KDpkaXNhYmxlZCl7YmFja2dyb3VuZDojZGMzMjMyMTQ7Y29sb3I6dmFyKC0tZGFuZ2VyKTtib3JkZXItY29sb3I6I2RjMzIzMjRkfUBrZXlmcmFtZXMgcGVybWlzc2lvbi1mYWRlLWluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC00cHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKDApfX0uYXV0by1hcHByb3ZlLWluZGljYXRvci5hY3RpdmV7Y29sb3I6IzIyYzU1ZTtib3JkZXItY29sb3I6IzIyYzU1ZTgwO2JhY2tncm91bmQ6IzIyYzU1ZTFmfS5hdXRvLWFwcHJvdmUtaW5kaWNhdG9yLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOiMyMmM1NWUzMztib3JkZXItY29sb3I6IzIyYzU1ZX0uYXBwcm92YWwtc3RhdHN7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7cG9zaXRpb246cmVsYXRpdmV9LmFwcHJvdmFsLXN0YXRzLmhpZGRlbntkaXNwbGF5Om5vbmV9LmFwcHJvdmFsLXN0YXRzLWRpdmlkZXJ7d2lkdGg6MDtoZWlnaHQ6MTZweDttYXJnaW46MCAxcHh9LmFwcHJvdmFsLXN0YXRzLWJhZGdle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDozcHg7bWluLWhlaWdodDoyMnB4O3BhZGRpbmc6MXB4IDhweDtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDojMjJjNTVlMWE7Y29sb3I6IzIyYzU1ZTtmb250LXNpemU6LjYyNXJlbTtmb250LXdlaWdodDo2MDA7Y3Vyc29yOmRlZmF1bHQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXM7bGluZS1oZWlnaHQ6MTtib3gtc2l6aW5nOmJvcmRlci1ib3h9LmFwcHJvdmFsLXN0YXRzLWJhZGdlOmhvdmVye2JhY2tncm91bmQ6IzIyYzU1ZTJlfS5hcHByb3ZhbC1zdGF0cy1pY29ue3N0cm9rZTojMjJjNTVlO2ZsZXgtc2hyaW5rOjB9LmFwcHJvdmFsLXN0YXRzLXRvdGFse2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc31Aa2V5ZnJhbWVzIGFwcHJvdmFsLXB1bHNlezAle3RyYW5zZm9ybTpzY2FsZSgxKX01MCV7dHJhbnNmb3JtOnNjYWxlKDEuMTUpfXRve3RyYW5zZm9ybTpzY2FsZSgxKX19LmFwcHJvdmFsLXN0YXRzLXB1bHNle2FuaW1hdGlvbjphcHByb3ZhbC1wdWxzZSAuM3MgZWFzZS1vdXR9LmFwcHJvdmFsLXN0YXRzLXBvcHVwe2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTtib3R0b206Y2FsYygxMDAlICsgNnB4KTtsZWZ0OjUwJTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpO2JhY2tncm91bmQ6dmFyKC0tYmctZWxldmF0ZWQsICMxZTFlMmUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOjhweDtwYWRkaW5nOjhweCAxMHB4O21pbi13aWR0aDoxNDBweDtib3gtc2hhZG93OjAgNHB4IDE2cHggIzAwMDAwMDQwO3otaW5kZXg6MTAwO2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4fS5hcHByb3ZhbC1zdGF0czpob3ZlciAuYXBwcm92YWwtc3RhdHMtcG9wdXB7ZGlzcGxheTpmbGV4fS5hcHByb3ZhbC1zdGF0cy1wb3B1cC10aXRsZXtmb250LXNpemU6LjY1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtd2VpZ2h0OjUwMDttYXJnaW4tYm90dG9tOjJweDt3aGl0ZS1zcGFjZTpub3dyYXB9LmFwcHJvdmFsLXN0YXRzLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Zm9udC1zaXplOi43cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5LCAjY2NjKTt3aGl0ZS1zcGFjZTpub3dyYXB9LmFwcHJvdmFsLXN0YXRzLXJvdy1pY29ue3dpZHRoOjE2cHg7dGV4dC1hbGlnbjpjZW50ZXI7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjcycmVtfS5hcHByb3ZhbC1zdGF0cy1yb3ctbGFiZWx7ZmxleDoxfS5hcHByb3ZhbC1zdGF0cy1yb3ctY291bnR7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSwgI2VlZSk7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO21pbi13aWR0aDoyMHB4O3RleHQtYWxpZ246cmlnaHR9LmFwcHJvdmFsLXN0YXRzLXJvdy10b3RhbHtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3BhZGRpbmctdG9wOjRweDttYXJnaW4tdG9wOjJweDtjb2xvcjojMjJjNTVlfS5hcHByb3ZhbC1zdGF0cy1yb3ctdG90YWwgLmFwcHJvdmFsLXN0YXRzLXJvdy1jb3VudHtjb2xvcjojMjJjNTVlfS5xdWV1ZS1iYXJ7LS1xYi1iZzogcmdiYSgyNTUsIDI1NSwgMjU1LCAuMTQpOy0tcWItYmctc3Ryb25nOiByZ2JhKDI1NSwgMjU1LCAyNTUsIC4yMik7LS1xYi1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjI0KTstLXFiLXRleHQ6IHZhcigtLXRleHQtcHJpbWFyeSwgIzFmMWQxYSk7LS1xYi10ZXh0LW11dGVkOiB2YXIoLS10ZXh0LW11dGVkLCAjNmI2NTVjKTstLXFiLXNoYWRvdzogMCA0cHggMThweCByZ2JhKDAsIDAsIDAsIC4xKSwgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgLjA2KTstLXFiLXNoYWRvdy1ob3ZlcjogMCA4cHggMjRweCByZ2JhKDAsIDAsIDAsIC4xNCksIDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIC4wNil9W2RhdGEtdGhlbWU9ZGFya10gLnF1ZXVlLWJhciwudGhlbWUtZGFyayAucXVldWUtYmFyey0tcWItYmc6IHJnYmEoNDAsIDM4LCAzNCwgLjYpOy0tcWItYmctc3Ryb25nOiByZ2JhKDYwLCA1NiwgNTAsIC43NCk7LS1xYi1ib3JkZXI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgLjEyKX0uaW5wdXQtcGFuZWw+LnF1ZXVlLWJhci1ob3N0e3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjEwcHg7bGVmdDphdXRvO2JvdHRvbTpjYWxjKDEwMCUgKyA2cHgpO3otaW5kZXg6MzA7bWF4LXdpZHRoOm1pbig0NDBweCxjYWxjKDEwMCUgLSAyMHB4KSk7cG9pbnRlci1ldmVudHM6bm9uZX0ucXVldWUtYmFyLWhvc3RbaGlkZGVuXXtkaXNwbGF5Om5vbmV9LnF1ZXVlLWJhcntwb2ludGVyLWV2ZW50czpub25lO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjVweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjpub25lO2JveC1zaGFkb3c6bm9uZTtwYWRkaW5nOjA7bWFyZ2luOjB9QGtleWZyYW1lcyBxdWV1ZUJhckl0ZW1FbnRlcnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNnB4KSBzY2FsZSguOTYpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKX19LnF1ZXVlLWJhci1oZWFke3BvaW50ZXItZXZlbnRzOmF1dG87ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjNweCA2cHggM3B4IDEwcHg7YmFja2dyb3VuZDp2YXIoLS1xYi1iZyk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigyMHB4KSBzYXR1cmF0ZSgxODAlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXFiLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxM3B4O2JveC1zaGFkb3c6dmFyKC0tcWItc2hhZG93KSxpbnNldCAwIDFweCAjZmZmMzthbmltYXRpb246cXVldWVCYXJJdGVtRW50ZXIgLjIycyBjdWJpYy1iZXppZXIoLjIsLjgsLjIsMSkgYm90aH0ucXVldWUtYmFyLWhlYWQtY291bnR7Zm9udC1zaXplOjEwLjVweDtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tcWItdGV4dC1tdXRlZCk7bGV0dGVyLXNwYWNpbmc6LjAyZW07dXNlci1zZWxlY3Q6bm9uZTt3aGl0ZS1zcGFjZTpub3dyYXB9LnF1ZXVlLWJhci1jbGVhci1hbGx7Zm9udC1zaXplOjExcHg7cGFkZGluZzoycHggOXB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC4yKTtjb2xvcjp2YXIoLS1xYi10ZXh0LW11dGVkKTtib3JkZXItcmFkaXVzOjEwcHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNXMgZWFzZSxjb2xvciAuMTVzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNXMgZWFzZX0ucXVldWUtYmFyLWNsZWFyLWFsbDpob3ZlcntiYWNrZ3JvdW5kOiNkYzUwNDYxZjtib3JkZXItY29sb3I6I2RjNTA0NjU5O2NvbG9yOiNkODQ4M2N9LnF1ZXVlLWJhci1saXN0e2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpmbGV4LWVuZDtnYXA6NXB4O3dpZHRoOjEwMCV9LnF1ZXVlLWJhci1pdGVte3BvaW50ZXItZXZlbnRzOmF1dG87ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjRweCA2cHggNHB4IDVweDttYXgtd2lkdGg6MTAwJTtib3gtc2l6aW5nOmJvcmRlci1ib3g7YmFja2dyb3VuZDp2YXIoLS1xYi1iZyk7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigyMHB4KSBzYXR1cmF0ZSgxODAlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLXFiLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxNXB4O2JveC1zaGFkb3c6dmFyKC0tcWItc2hhZG93KSxpbnNldCAwIDFweCAjZmZmMztmb250LXNpemU6MTJweDtsaW5lLWhlaWdodDoxLjM1O2NvbG9yOnZhcigtLXFiLXRleHQpO2N1cnNvcjpncmFiO3VzZXItc2VsZWN0Om5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjE4cyBlYXNlLGJveC1zaGFkb3cgLjE4cyBlYXNlO2FuaW1hdGlvbjpxdWV1ZUJhckl0ZW1FbnRlciAuMjJzIGN1YmljLWJlemllciguMiwuOCwuMiwxKSBib3RofS5xdWV1ZS1iYXItaXRlbTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXFiLWJnLXN0cm9uZyk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzp2YXIoLS1xYi1zaGFkb3ctaG92ZXIpLGluc2V0IDAgMXB4ICNmZmZmZmY0MH0ucXVldWUtYmFyLWl0ZW0uZHJhZ2dpbmd7Y3Vyc29yOmdyYWJiaW5nO3RyYW5zZm9ybTpzY2FsZSgxLjA0KTtib3gtc2hhZG93OjAgOHB4IDIycHggIzAwMDM7ei1pbmRleDo1MDtvcGFjaXR5Oi45NH0ucXVldWUtYmFyLWl0ZW0tc2xpZGluZ3t0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTZzIGN1YmljLWJlemllciguMiwuNywuMiwxKX0ucXVldWUtYmFyLWl0ZW0taW5kZXh7ZmxleDowIDAgYXV0bzt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCwgI2M1NjUzZCk7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlLCAjZmZmKTtib3JkZXItcmFkaXVzOjUwJTtmb250LXNpemU6MTBweDtmb250LXdlaWdodDo3MDA7bGluZS1oZWlnaHQ6MX0ucXVldWUtYmFyLWl0ZW0tdGV4dHtmbGV4OjEgMSBhdXRvO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjp2YXIoLS1xYi10ZXh0KTtmb250LXdlaWdodDo1MDB9LnF1ZXVlLWJhci1pdGVtLXByb21vdGUsLnF1ZXVlLWJhci1pdGVtLWRlbGV0ZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDojZmZmZmZmMjk7Y29sb3I6dmFyKC0tcWItdGV4dCk7Ym9yZGVyLXJhZGl1czo1MCU7Y3Vyc29yOnBvaW50ZXI7ZmxleDowIDAgYXV0bzt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlLHRyYW5zZm9ybSAuMTVzIGVhc2UsY29sb3IgLjE1cyBlYXNlLGZpbHRlciAuMTVzIGVhc2U7cGFkZGluZzowfS5xdWV1ZS1iYXItaXRlbS1wcm9tb3Rle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LCAjYzU2NTNkKTtjb2xvcjp2YXIoLS10ZXh0LWludmVyc2UsICNmZmYpfS5xdWV1ZS1iYXItaXRlbS1wcm9tb3RlOmhvdmVye2ZpbHRlcjpicmlnaHRuZXNzKDEuMDgpO3RyYW5zZm9ybTpzY2FsZSgxLjA2KX0ucXVldWUtYmFyLWl0ZW0tZGVsZXRlOmhvdmVye2JhY2tncm91bmQ6I2RjNTA0NjJlO2NvbG9yOiNkODQ4M2N9LnF1ZXVlLWJhci1pdGVtLWRlbGV0ZTphY3RpdmUsLnF1ZXVlLWJhci1pdGVtLXByb21vdGU6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTQpfS5xdWV1ZS1iYXItaXRlbS1wcm9tb3RlIHN2ZywucXVldWUtYmFyLWl0ZW0tZGVsZXRlIHN2Z3tmbGV4LXNocmluazowfS5xdWV1ZS1iYXIucXVldWUtYmFyLWNhcGFjaXR5IC5xdWV1ZS1iYXItaXRlbXstLXFiLWJnOiByZ2JhKDIyMCwgMTIwLCA2MCwgLjIpOy0tcWItYmctc3Ryb25nOiByZ2JhKDIyMCwgMTIwLCA2MCwgLjI4KX0ucXVldWUtYmFyLnF1ZXVlLWJhci1pbmZsaWdodCAucXVldWUtYmFyLWl0ZW17Ym94LXNoYWRvdzp2YXIoLS1xYi1zaGFkb3cpLGluc2V0IDAgMXB4ICNmZmZmZmY0MCwwIDAgMCAxcHggI2M1NjUzZDJlfUBtZWRpYShtYXgtd2lkdGg6NTYwcHgpey5pbnB1dC1wYW5lbD4ucXVldWUtYmFyLWhvc3R7cmlnaHQ6OHB4O21heC13aWR0aDpjYWxjKDEwMCUgLSAxNnB4KX19LmlucHV0LWhpbnR7Zm9udC1zaXplOi41cmVtO2xpbmUtaGVpZ2h0OjEuMjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt3aGl0ZS1zcGFjZTpub3dyYXA7dXNlci1zZWxlY3Q6bm9uZTtvcGFjaXR5Oi43O21heC13aWR0aDozOGNoO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzfS5jb21wb3Nlci10b3Atcm93e3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDttaW4td2lkdGg6MH0uY29tcG9zZXItdG9wLXJvdzpoYXMoPi50b2RvLXByb2dyZXNzOm5vdCguaGlkZGVuKSksLmNvbXBvc2VyLXRvcC1yb3c6aGFzKD4uc3RydWN0dXJlZC1zdGF0dXMtYmFyKXttYXJnaW4tYm90dG9tOjZweH0udG9kby1wcm9ncmVzc3ttYXJnaW4tYm90dG9tOjZweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O292ZXJmbG93OmhpZGRlbjt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS50b2RvLXByb2dyZXNzLmhpZGRlbntkaXNwbGF5Om5vbmV9LmNvbXBvc2VyLXRvcC1yb3c+LnRvZG8tcHJvZ3Jlc3N7ZmxleDoxO21pbi13aWR0aDowO21hcmdpbi1ib3R0b206MH0udG9kby1wcm9ncmVzcy1oZWFkZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtwYWRkaW5nOjRweCA4cHg7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZTtnYXA6OHB4O2JvcmRlci1yYWRpdXM6MTBweDt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0udG9kby1wcm9ncmVzcy1oZWFkZXI6aG92ZXJ7YmFja2dyb3VuZDojYzU2NTNkMTR9LnRvZG8tcHJvZ3Jlc3MtbGVmdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7bWluLXdpZHRoOjA7ZmxleC1zaHJpbms6MDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9LnRvZG8tcHJvZ3Jlc3MtcmluZ3twb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7bWluLXdpZHRoOjE2cHg7ZmxleC1zaHJpbms6MH0udG9kby1wcm9ncmVzcy1yaW5nIHN2Z3t3aWR0aDoxMDAlO2hlaWdodDoxMDAlO3RyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKX0udG9kby1yaW5nLXRyYWNre3N0cm9rZTojYzU2NTNkMmV9LnRvZG8tcmluZy1maWxse3N0cm9rZTp2YXIoLS1hY2NlbnQpO3N0cm9rZS1kYXNoYXJyYXk6OTcuMzk7c3Ryb2tlLWRhc2hvZmZzZXQ6Y2FsYyg5Ny4zOSAqICgxIC0gdmFyKC0tcHJvZ3Jlc3MsIDApKSk7dHJhbnNpdGlvbjpzdHJva2UtZGFzaG9mZnNldCAuMzVzIGVhc2V9LnRvZG8tcHJvZ3Jlc3MtcmluZzphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjRweDtoZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtvcGFjaXR5Oi42O2FuaW1hdGlvbjpyaW5nUHVsc2UgMS40cyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHJpbmdQdWxzZXswJSx0b3tvcGFjaXR5Oi4zNTt0cmFuc2Zvcm06c2NhbGUoLjg1KX01MCV7b3BhY2l0eTouOTU7dHJhbnNmb3JtOnNjYWxlKDEuMDUpfX0udG9kby1wcm9ncmVzcy1jb3VudGVye2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtc30udG9kby1wcm9ncmVzcy1maWxse3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDtib3R0b206MDt3aWR0aDpjYWxjKHZhcigtLXByb2dyZXNzLCAwKSAqIDEwMCUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCNjNTY1M2Q0NywjYzU2NTNkMWEpO2JvcmRlci1yYWRpdXM6MTBweCAwIDAgMTBweDt0cmFuc2l0aW9uOndpZHRoIC4zNXMgZWFzZTtwb2ludGVyLWV2ZW50czpub25lO3otaW5kZXg6MH0udG9kby1wcm9ncmVzcy1maWxsOmFmdGVye2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjRweDtib3R0b206NHB4O3JpZ2h0Oi0xcHg7d2lkdGg6MnB4O2JhY2tncm91bmQ6I2M1NjUzZDk5O2JvcmRlci1yYWRpdXM6MXB4fS50b2RvLXByb2dyZXNzLXRhc2std3JhcHtmbGV4OjE7bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOjZweDtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7cGFkZGluZy1sZWZ0OjhweH0udG9kby1wcm9ncmVzcy10YXNre2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXdlaWdodDo1MDA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXg6MTttaW4td2lkdGg6MDt0ZXh0LWFsaWduOnJpZ2h0fS50b2RvLXByb2dyZXNzLWhlYWRlcjpoYXMoLnRvZG8tcHJvZ3Jlc3MtdGFzazpub3QoOmVtcHR5KSkgLnRvZG8tcHJvZ3Jlc3MtdGFza3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byByaWdodCwjZmZmMCwjZmZmZmZmOGMgMTIlIDg4JSwjZmZmMCk7cGFkZGluZzoxcHggNnB4O2JvcmRlci1yYWRpdXM6NnB4fS50b2RvLXByb2dyZXNzLWNoZXZyb257Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZmxleC1zaHJpbms6MDt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMnMgZWFzZTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjF9LnRvZG8tcHJvZ3Jlc3MuZXhwYW5kZWQgLnRvZG8tcHJvZ3Jlc3MtY2hldnJvbnt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LnRvZG8tcHJvZ3Jlc3MtYm9keXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7cmlnaHQ6MDtib3R0b206Y2FsYygxMDAlICsgNnB4KTtiYWNrZ3JvdW5kOiNmZmZiZjZmYTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzo4cHggMTBweDtib3gtc2hhZG93OjAgOHB4IDI0cHggIzAwMDAwMDE0LDAgMnB4IDZweCAjMDAwMDAwMGE7YmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDhweCk7bWF4LWhlaWdodDozMjBweDtvdmVyZmxvdy15OmF1dG87ei1pbmRleDozMDtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNnB4KTtwb2ludGVyLWV2ZW50czpub25lO3RyYW5zaXRpb246b3BhY2l0eSAuMThzIGVhc2UsdHJhbnNmb3JtIC4xOHMgZWFzZX0udG9kby1wcm9ncmVzcy1ib2R5LmhpZGRlbntkaXNwbGF5Om5vbmV9LnRvZG8tcHJvZ3Jlc3MtYm9keS5leHBhbmRlZHtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCk7cG9pbnRlci1ldmVudHM6YXV0b30udG9kby1wcm9ncmVzcy1saXN0e2xpc3Qtc3R5bGU6bm9uZTttYXJnaW46MDtwYWRkaW5nOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MXB4fS50b2RvLXByb2dyZXNzLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTBweDtwYWRkaW5nOjZweCA4cHg7Ym9yZGVyLXJhZGl1czo4cHg7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtsaW5lLWhlaWdodDoxLjM1O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS50b2RvLXByb2dyZXNzLWl0ZW0rLnRvZG8tcHJvZ3Jlc3MtaXRlbXtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjB9LnRvZG8tcHJvZ3Jlc3MtaXRlbTpmaXJzdC1jaGlsZHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjhweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHh9LnRvZG8tcHJvZ3Jlc3MtaXRlbTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6OHB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjhweH0udG9kby1wcm9ncmVzcy1pdGVtLmFjdGl2ZXtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtd2VpZ2h0OjUwMDtiYWNrZ3JvdW5kOiNjNTY1M2QxMn0udG9kby1wcm9ncmVzcy1pdGVtLmRvbmV7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaDt0ZXh0LWRlY29yYXRpb24tY29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnRvZG8tcHJvZ3Jlc3MtaXRlbT5zcGFuOmxhc3QtY2hpbGR7ZmxleDoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0udG9kby1pdGVtLWljb257d2lkdGg6MTZweDttaW4td2lkdGg6MTZweDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6Ljc1cmVtO2ZsZXgtc2hyaW5rOjB9LnRvZG8taXRlbS1pY29uLnBlbmRpbmd7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnRvZG8taXRlbS1pY29uLmFjdGl2ZXtjb2xvcjp2YXIoLS1hY2NlbnQpfS50b2RvLWl0ZW0taWNvbi5kb25le2NvbG9yOiM0YTdhNGZ9LmZvbGRlci1waWNrZXItY29udGFpbmVye21hcmdpbi1ib3R0b206OHB4fS5mb2xkZXItcGlja2VyLXF1aWNrLWJ0bntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo0cHg7cGFkZGluZzo0cHggOHB4O2JhY2tncm91bmQ6I2ZmZjk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uZm9sZGVyLXBpY2tlci1xdWljay1idG46aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmZTY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tYWNjZW50KX0uZm9sZGVyLWJyZWFkY3J1bWJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtmbGV4LXdyYXA6d3JhcDtnYXA6MnB4O3BhZGRpbmc6NHB4IDhweDtiYWNrZ3JvdW5kOiNmZmY2O2JvcmRlci1yYWRpdXM6NnB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO21hcmdpbi1ib3R0b206NHB4fS5mb2xkZXItcGlja2Vye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjZweCA4cHg7YmFja2dyb3VuZDojZmZmZmZmODA7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSl9LmZvbGRlci1waWNrZXItaWNvbntmb250LXNpemU6MXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmbGV4LXNocmluazowfS5mb2xkZXItcGlja2VyLWlucHV0e2ZsZXg6MTtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7b3V0bGluZTpub25lO3BhZGRpbmc6NHB4fS5mb2xkZXItcGlja2VyLWlucHV0OmZvY3Vze2JhY2tncm91bmQ6I2ZmZmM7Ym9yZGVyLXJhZGl1czo0cHh9LmZvbGRlci1waWNrZXItZHJvcGRvd257cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwMCU7bGVmdDowO3JpZ2h0OjA7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1lbGV2YXRlZCk7ei1pbmRleDo1MDttYXgtaGVpZ2h0OjI0MHB4O292ZXJmbG93LXk6YXV0bzttYXJnaW4tdG9wOjRweH0uZm9sZGVyLXBpY2tlci1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjhweCAxMHB4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouODEyNXJlbTt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0uZm9sZGVyLXBpY2tlci1pdGVtOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpfS5mb2xkZXItcGlja2VyLWl0ZW0uYWN0aXZle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKX0uZm9sZGVyLXBpY2tlci1pdGVtLWljb257Zm9udC1zaXplOi44NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LmZvbGRlci1waWNrZXItbG9hZGluZ3twYWRkaW5nOjhweCAxMHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNzVyZW19LmZvbGRlci1waWNrZXItZXJyb3J7cGFkZGluZzo4cHggMTBweDtjb2xvcjp2YXIoLS1kYW5nZXIpO2ZvbnQtc2l6ZTouNzVyZW07YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2JvcmRlci1yYWRpdXM6NHB4O21hcmdpbjo0cHggOHB4fS5mb2xkZXItcGlja2VyLWNvbnRhaW5lci5kcmFnLW92ZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKX0uZm9sZGVyLXBpY2tlci1jb250YWluZXIuZHJhZy1vdmVyIC5mb2xkZXItcGlja2Vye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS5mb2xkZXItcmVjZW50LXNlY3Rpb257cGFkZGluZzo0cHggOHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO21hcmdpbi1ib3R0b206NHB4fS5mb2xkZXItcmVjZW50LXRpdGxle2ZvbnQtc2l6ZTouNjg3NXJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6LjA1ZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLWJvdHRvbTo0cHh9LmZvbGRlci1yZWNlbnQtaXRlbXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo2cHggOHB4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouNzVyZW07Ym9yZGVyLXJhZGl1czo0cHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZvbGRlci1yZWNlbnQtaXRlbTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KX0uZm9sZGVyLXJlY2VudC1pdGVtLXBhdGh7ZmxleDoxO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pfS5mb2xkZXItcGlja2VyLWlucHV0LmludmFsaWR7Ym9yZGVyLWNvbG9yOnZhcigtLWRhbmdlcik7YmFja2dyb3VuZDojYjI0ZjQ1MTR9LmZvbGRlci1waWNrZXItaW5wdXQuaW52YWxpZDpmb2N1c3tib3gtc2hhZG93OjAgMCAwIDJweCAjYjI0ZjQ1MzN9LmZvbGRlci1waWNrZXItdmFsaWRhdGlvbntmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tZGFuZ2VyKTtwYWRkaW5nOjJweCA0cHg7bWFyZ2luLXRvcDoycHg7ZGlzcGxheTpub25lfS5mb2xkZXItcGlja2VyLXZhbGlkYXRpb24udmlzaWJsZXtkaXNwbGF5OmJsb2NrfS5mb2xkZXItcGlja2VyLWNvbXBhY3R7cG9zaXRpb246c3RpY2t5O21hcmdpbi1ib3R0b206OHB4fS5mb2xkZXItcGlja2VyLWNvbXBhY3Qtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjZweCAxMHB4O2JhY2tncm91bmQ6I2ZmZmZmZjgwO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZvbGRlci1waWNrZXItY29tcGFjdC1yb3c6Zm9jdXMtd2l0aGlue2JhY2tncm91bmQ6I2ZmZmM7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LmZvbGRlci1waWNrZXItY29tcGFjdC1pY29ue2ZvbnQtc2l6ZTouODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZsZXgtc2hyaW5rOjB9LmZvbGRlci1waWNrZXItY29tcGFjdC1pbnB1dHtmbGV4OjE7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO291dGxpbmU6bm9uZTtwYWRkaW5nOjJweCAwO21pbi13aWR0aDowfS5mb2xkZXItcGlja2VyLWNvbXBhY3QtaW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5mb2xkZXItcGlja2VyLXRvZ2dsZXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7cGFkZGluZzo0cHggNnB4O2ZvbnQtc2l6ZTouNjI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO2JvcmRlci1yYWRpdXM6NHB4O3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmZvbGRlci1waWNrZXItdG9nZ2xlOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uZm9sZGVyLXBpY2tlci1xdWljay1yb3d7ZGlzcGxheTpmbGV4O2dhcDo2cHg7cGFkZGluZzo2cHggOHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpfS5mb2xkZXItcGlja2VyLXF1aWNrLXJvdyAuZm9sZGVyLXBpY2tlci1xdWljay1idG57ZmxleDoxO3BhZGRpbmc6NHB4IDhweDtmb250LXNpemU6LjY4NzVyZW19LndvcmtpbmctZGlyLWluZGljYXRvcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjEwcHg7Ym90dG9tOjVweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6MnB4IDZweDtiYWNrZ3JvdW5kOiNjNTY1M2QxNDtib3JkZXItcmFkaXVzOjRweDtmb250LXNpemU6LjY1cmVtO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTttYXgtd2lkdGg6MTgwcHg7ei1pbmRleDoyO3BvaW50ZXItZXZlbnRzOmF1dG99LndvcmtpbmctZGlyLWluZGljYXRvcjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KX0ud29ya2luZy1kaXItaW5kaWNhdG9yLWljb257Zm9udC1zaXplOi43NXJlbTtmbGV4LXNocmluazowfS53b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aHtvdmVyZmxvdy14OmF1dG87b3ZlcmZsb3cteTpoaWRkZW47c2Nyb2xsYmFyLXdpZHRoOm5vbmV9LndvcmtpbmctZGlyLWluZGljYXRvci1wYXRoOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6M3B4fS53b3JraW5nLWRpci1pbmRpY2F0b3ItcGF0aDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojOTY3NjU1NTI7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCl9LndvcmtpbmctZGlyLWluZGljYXRvcjpob3ZlciAud29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGh7c2Nyb2xsYmFyLXdpZHRoOnRoaW59LndvcmtpbmctZGlyLWluZGljYXRvcjpob3ZlciAud29ya2luZy1kaXItaW5kaWNhdG9yLXBhdGg6Oi13ZWJraXQtc2Nyb2xsYmFye2hlaWdodDo0cHh9LmlucHV0LXRleHRhcmVhey0taW5wdXQtbWF4LWhlaWdodDogMTIwcHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjgxMjVyZW07YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3BhZGRpbmc6OXB4IDhweDtvdXRsaW5lOm5vbmU7cmVzaXplOm5vbmU7bWluLWhlaWdodDozNnB4O21heC1oZWlnaHQ6dmFyKC0taW5wdXQtbWF4LWhlaWdodCk7d2lkdGg6MTAwJTtkaXNwbGF5OmJsb2NrO292ZXJmbG93LXk6aGlkZGVuO292ZXJzY3JvbGwtYmVoYXZpb3I6Y29udGFpbjstd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzp0b3VjaDt0cmFuc2l0aW9uOmhlaWdodCAuMTVzIGVhc2Utb3V0O2JveC1zaXppbmc6Ym9yZGVyLWJveDtsaW5lLWhlaWdodDoxLjQ7dG91Y2gtYWN0aW9uOnBhbi15O3Njcm9sbGJhci1ndXR0ZXI6c3RhYmxlfUBtZWRpYShwb2ludGVyOmNvYXJzZSl7LmlucHV0LXRleHRhcmVhey0taW5wdXQtbWF4LWhlaWdodDogbWluKDE2MHB4LCAzNWR2aCk7b3ZlcmZsb3cteTphdXRvfX1Ac3VwcG9ydHMgbm90IChoZWlnaHQ6IDFkdmgpe0BtZWRpYShwb2ludGVyOmNvYXJzZSl7LmlucHV0LXRleHRhcmVhey0taW5wdXQtbWF4LWhlaWdodDogbWluKDE2MHB4LCAzNXZoKX19fS5pbnB1dC10ZXh0YXJlYTpmb2N1c3tvdXRsaW5lOm5vbmV9LmlucHV0LXRleHRhcmVhOjpwbGFjZWhvbGRlcntjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtd2VpZ2h0OjUwMDtsZXR0ZXItc3BhY2luZzowO29wYWNpdHk6LjYyfS5pbnB1dC10ZXh0YXJlYS5pcy10ZXJtaW5hbC1wYXNzdGhyb3VnaHtvcGFjaXR5Oi43O2N1cnNvcjpkZWZhdWx0fS5pbnB1dC10ZXh0YXJlYS5pcy10ZXJtaW5hbC1wYXNzdGhyb3VnaDo6cGxhY2Vob2xkZXJ7Zm9udC1zdHlsZTppdGFsaWN9LmNvbXBvc2VyLXBpbGx7YXBwZWFyYW5jZTpub25lOy13ZWJraXQtYXBwZWFyYW5jZTpub25lO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi42MjVyZW07Zm9udC13ZWlnaHQ6NTAwO2xpbmUtaGVpZ2h0OjE7bWluLWhlaWdodDoyMnB4O3BhZGRpbmc6MXB4IDhweDtib3JkZXItcmFkaXVzOjEwcHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtiYWNrZ3JvdW5kOiNmNmYxZThiMztjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo0cHg7d2hpdGUtc3BhY2U6bm93cmFwO2JveC1zaXppbmc6Ym9yZGVyLWJveDt1c2VyLXNlbGVjdDpub25lfS5jb21wb3Nlci1waWxsOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQtY29sb3I6I2Y2ZjFlOH0uY29tcG9zZXItcGlsbDpmb2N1cywuY29tcG9zZXItcGlsbDpmb2N1cy12aXNpYmxle2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAwIDAgMnB4IHZhcigtLWFjY2VudC1tdXRlZCk7b3V0bGluZTpub25lfS5jb21wb3Nlci1waWxsLmRpc2FibGVkLC5jb21wb3Nlci1waWxsW2Rpc2FibGVkXXtvcGFjaXR5Oi41NTtjdXJzb3I6bm90LWFsbG93ZWR9LmNvbXBvc2VyLXBpbGwtY2hpcHtwYWRkaW5nOjFweCA4cHg7Zm9udC1zaXplOi42MjVyZW19LmNvbXBvc2VyLXBpbGwtY2hpcC5hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQsIHJnYmEoMTk3LCAxMDEsIDYxLCAuMTIpKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS5jb21wb3Nlci1waWxsLWNoaXAuYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDJlfS5pcy13YW5kLWFwcCAuaW5wdXQtY29tcG9zZXI6bm90KDpmb2N1cy13aXRoaW4pOm5vdCguaGFzLXRleHQpIC5hdXRvLWFwcHJvdmUtaW5kaWNhdG9ye3dpZHRoOjI0cHg7bWluLXdpZHRoOjI0cHg7cGFkZGluZy1sZWZ0OjA7cGFkZGluZy1yaWdodDowO2dhcDowfS5pcy13YW5kLWFwcCAuaW5wdXQtY29tcG9zZXI6bm90KDpmb2N1cy13aXRoaW4pOm5vdCguaGFzLXRleHQpIC5hdXRvLWFwcHJvdmUtaW5kaWNhdG9yIC5jb21wb3Nlci1waWxsLWxhYmVse2Rpc3BsYXk6bm9uZX0uY2hhdC1tb2RlLXNlbGVjdHttYXgtd2lkdGg6NzhweH0uYnRuLWNpcmNsZXt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O21pbi13aWR0aDoyOHB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjpub25lO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtmbGV4LXNocmluazowO3BhZGRpbmc6MH0uYnRuLWNpcmNsZS1zZW5ke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1hY2NlbnQpIDAlLCNhODUyMmYgMTAwJSk7Y29sb3I6I2ZmZjtib3gtc2hhZG93OjAgMXB4IDZweCAjYzU2NTNkNDB9LmJ0bi1jaXJjbGUtc2VuZDpob3Zlcnt0cmFuc2Zvcm06c2NhbGUoMS4wOCk7Ym94LXNoYWRvdzowIDNweCAxMHB4ICNjNTY1M2Q1OX0uYnRuLWNpcmNsZS1zZW5kOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk1KX0uYnRuLWNpcmNsZS1zdG9we2JhY2tncm91bmQ6I2IyNGY0NTFmO2NvbG9yOnZhcigtLWRhbmdlcil9LmJ0bi1jaXJjbGUtc3RvcDpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWRhbmdlcik7Y29sb3I6I2ZmZjt0cmFuc2Zvcm06c2NhbGUoMS4wOCl9LmJ0bi1jaXJjbGUtc3RvcDphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NSl9LmJ0bi1jaXJjbGUtc2VuZC5xdWV1ZS1tb2Rle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjYzU2NTNkOGMsI2E4NTIyZjhjKTtib3gtc2hhZG93OjAgMXB4IDRweCAjYzU2NTNkMjZ9LmJ0bi1jaXJjbGUtc2VuZC5xdWV1ZS1tb2RlOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1hY2NlbnQpIDAlLCNhODUyMmYgMTAwJSk7Ym94LXNoYWRvdzowIDNweCAxMHB4ICNjNTY1M2Q1OX0ucHJvbXB0LW9wdGltaXplLWJ0bntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6NXB4O3JpZ2h0OjZweDt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjoxcHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4yMik7cGFkZGluZzowO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNmZmZhZjJmMiwjZThjNWFlNTkpO2NvbG9yOnZhcigtLWFjY2VudCk7ei1pbmRleDo0O2JveC1zaGFkb3c6MCAxcHggNHB4ICNjNTY1M2QxYTt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KX0ucHJvbXB0LW9wdGltaXplLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2ZmZmFmMiwjZThjNWFlOGMpO2NvbG9yOnZhcigtLWFjY2VudC1ob3Zlcik7dHJhbnNmb3JtOnNjYWxlKDEuMTIpO2JvcmRlci1jb2xvcjojYzU2NTNkNTk7Ym94LXNoYWRvdzowIDJweCAxMHB4ICNjNTY1M2QzOCwwIDAgMCAzcHggI2M1NjUzZDBmfS5wcm9tcHQtb3B0aW1pemUtYnRuOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjkyKTtib3gtc2hhZG93OjAgMXB4IDNweCAjYzU2NTNkMjZ9LnByb21wdC1vcHRpbWl6ZS1idG46ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjZ9LnByb21wdC1vcHRpbWl6ZS1idG46ZGlzYWJsZWQ6aG92ZXJ7dHJhbnNmb3JtOm5vbmU7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNmZmZhZjJmMiwjZThjNWFlNTkpO2JveC1zaGFkb3c6MCAxcHggNHB4ICNjNTY1M2QxYTtib3JkZXItY29sb3I6I2M1NjUzZDM4fS5wcm9tcHQtb3B0aW1pemUtaWNvbnt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMjVzIGVhc2Usb3BhY2l0eSAuMnMgZWFzZTt0cmFuc2Zvcm0tb3JpZ2luOmNlbnRlcjtmaWx0ZXI6ZHJvcC1zaGFkb3coMCAwIDFweCByZ2JhKDE5NywxMDEsNjEsLjMpKX0ucHJvbXB0LW9wdGltaXplLWJ0bjpob3ZlciAucHJvbXB0LW9wdGltaXplLWljb257YW5pbWF0aW9uOnByb21wdC1vcHRpbWl6ZS10d2lua2xlIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7ZmlsdGVyOmRyb3Atc2hhZG93KDAgMCAzcHggcmdiYSgxOTcsMTAxLDYxLC40KSl9QGtleWZyYW1lcyBwcm9tcHQtb3B0aW1pemUtdHdpbmtsZXswJSx0b3t0cmFuc2Zvcm06cm90YXRlKDApIHNjYWxlKDEpfTUwJXt0cmFuc2Zvcm06cm90YXRlKDEyZGVnKSBzY2FsZSgxLjEyKX19LnByb21wdC1vcHRpbWl6ZS1zcGlubmVye3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7Ym9yZGVyLXJhZGl1czo1MCU7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7YmFja2dyb3VuZDpjb25pYy1ncmFkaWVudChmcm9tIDBkZWcsdHJhbnNwYXJlbnQgMGRlZyx2YXIoLS1hY2NlbnQpIDI3MGRlZyx0cmFuc3BhcmVudCAzNjBkZWcpO21hc2s6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSx0cmFuc3BhcmVudCAxMHB4LGJsYWNrIDExcHgpOy13ZWJraXQtbWFzazpyYWRpYWwtZ3JhZGllbnQoY2lyY2xlLHRyYW5zcGFyZW50IDEwcHgsYmxhY2sgMTFweCk7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgZWFzZX0ucHJvbXB0LW9wdGltaXplLWJ0bi5pcy1sb2FkaW5ne2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCNmZmZhZjIsI2U4YzVhZTgwKTtib3JkZXItY29sb3I6I2M1NjUzZDY2O2JveC1zaGFkb3c6MCAycHggMTJweCAjYzU2NTNkNDAsMCAwIDAgM3B4ICNjNTY1M2QxNH0ucHJvbXB0LW9wdGltaXplLWJ0bi5pcy1sb2FkaW5nIC5wcm9tcHQtb3B0aW1pemUtaWNvbnthbmltYXRpb246cHJvbXB0LW9wdGltaXplLXB1bHNlIDEuMXMgZWFzZS1pbi1vdXQgaW5maW5pdGV9LnByb21wdC1vcHRpbWl6ZS1idG4uaXMtbG9hZGluZyAucHJvbXB0LW9wdGltaXplLXNwaW5uZXJ7b3BhY2l0eToxO2FuaW1hdGlvbjpwcm9tcHQtb3B0aW1pemUtc3BpbiAuOXMgbGluZWFyIGluZmluaXRlfUBrZXlmcmFtZXMgcHJvbXB0LW9wdGltaXplLXNwaW57dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIHByb21wdC1vcHRpbWl6ZS1wdWxzZXswJSx0b3t0cmFuc2Zvcm06c2NhbGUoLjg4KTtvcGFjaXR5Oi44fTUwJXt0cmFuc2Zvcm06c2NhbGUoMS4xNSk7b3BhY2l0eToxfX0uaW5wdXQtY29tcG9zZXIuaXMtb3B0aW1pemluZ3tib3JkZXItY29sb3I6I2M1NjUzZDZiO2JveC1zaGFkb3c6MCAwIDAgMnB4ICNjNTY1M2QxYSwwIDAgMThweCAjYzU2NTNkMjR9LmlucHV0LWNvbXBvc2VyLmlzLW9wdGltaXppbmcgLmNvbXBvc2VyLWlucHV0LXdyYXA6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtwb2ludGVyLWV2ZW50czpub25lO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEwMGRlZyx0cmFuc3BhcmVudCAwJSx0cmFuc3BhcmVudCAzOCUscmdiYSgyMTQsMTIzLDgyLC4xNikgNTAlLHRyYW5zcGFyZW50IDYyJSx0cmFuc3BhcmVudCAxMDAlKTtiYWNrZ3JvdW5kLXNpemU6MjIwJSAxMDAlO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjIyMCUgMDthbmltYXRpb246cHJvbXB0LW9wdGltaXplLWZsb3cgMS42cyBsaW5lYXIgaW5maW5pdGU7ei1pbmRleDowfUBrZXlmcmFtZXMgcHJvbXB0LW9wdGltaXplLWZsb3d7MCV7YmFja2dyb3VuZC1wb3NpdGlvbjoyMjAlIDB9dG97YmFja2dyb3VuZC1wb3NpdGlvbjotMTIwJSAwfX0ucHJvbXB0LW9wdGltaXplLWJ0bi5pcy1zaGFrZXthbmltYXRpb246cHJvbXB0LW9wdGltaXplLXNoYWtlIC40cyBlYXNlLW91dDtjb2xvcjp2YXIoLS1kYW5nZXIpfUBrZXlmcmFtZXMgcHJvbXB0LW9wdGltaXplLXNoYWtlezAlLHRve3RyYW5zZm9ybTp0cmFuc2xhdGUoMCl9MjAle3RyYW5zZm9ybTp0cmFuc2xhdGUoLTNweCl9NDAle3RyYW5zZm9ybTp0cmFuc2xhdGUoM3B4KX02MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtMnB4KX04MCV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgycHgpfX1AbWVkaWEobWF4LXdpZHRoOjcyMHB4KXsucHJvbXB0LW9wdGltaXplLWJ0bnt3aWR0aDoyNnB4O2hlaWdodDoyNnB4fS5wcm9tcHQtb3B0aW1pemUtaWNvbnt3aWR0aDoxNHB4O2hlaWdodDoxNHB4fX0uYnRuLWNpcmNsZS1hY3Rpb257YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt3aWR0aDozMnB4O2hlaWdodDozMnB4O21pbi13aWR0aDozMnB4O2JvcmRlci1yYWRpdXM6NTAlO2JvcmRlcjpub25lO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtmbGV4LXNocmluazowO3BhZGRpbmc6MH0uYnRuLWNpcmNsZS1hY3Rpb246aG92ZXJ7YmFja2dyb3VuZDojYzU2NTNkMWE7Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2Zvcm06c2NhbGUoMS4wOCl9LmJ0bi1jaXJjbGUtYWN0aW9uOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk0KX0uYnRuLWNpcmNsZS1hY3Rpb24uYWN0aXZle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkLCByZ2JhKDE5NywgMTAxLCA2MSwgLjE0KSk7Y29sb3I6dmFyKC0tYWNjZW50KX0uYnRuLWNpcmNsZS1hY3Rpb24uYWN0aXZlOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDM4fS5jaGF0LW1vZGUtdHJpb3tkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXgtd3JhcDp3cmFwfS5jaGF0LW1vZGUtdHJpby1waWxse3Bvc2l0aW9uOnJlbGF0aXZlO2N1cnNvcjpwb2ludGVyO3VzZXItc2VsZWN0Om5vbmV9LmNoYXQtbW9kZS10cmlvLXRhZ3tmb250LXNpemU6LjYyNXJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSwgI2I1YTg5YSk7bGV0dGVyLXNwYWNpbmc6LjA0ZW07bWFyZ2luLXJpZ2h0OjRweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7b3BhY2l0eTouNzV9LmVtcHR5LXN0YXRlLXRyaW8td3JhcHttYXJnaW4tdG9wOjE0cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDthbmltYXRpb246ZW1wdHlTdGF0ZVRyaW9GYWRlSW4gLjRzIGVhc2Utb3V0fS5lbXB0eS1zdGF0ZS10cmlvLWhpbnR7Zm9udC1zaXplOi43MnJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsZXR0ZXItc3BhY2luZzouMDJlbX0uY2hhdC1tb2RlLXRyaW8tZHJvcGRvd257Z2FwOjRweDtwYWRkaW5nOjZweCAxMnB4O2JhY2tncm91bmQ6I2Y2ZjFlODk5O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxMnB4O2JveC1zaGFkb3c6MCAxcHggM3B4ICMwMDAwMDAwYX0uY2hhdC1tb2RlLXRyaW8tZHJvcGRvd24gLmNoYXQtbW9kZS10cmlvLXBpbGx7Zm9udC1zaXplOi43OHJlbTtwYWRkaW5nOjNweCA2cHg7Ym9yZGVyLXJhZGl1czo4cHg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3duIC5jaGF0LW1vZGUtdHJpby1waWxsOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDBmfS5jaGF0LW1vZGUtdHJpby1kcm9wZG93biAuY2hhdC1tb2RlLXRyaW8tcGlsbDpmb2N1cy13aXRoaW57YmFja2dyb3VuZDojYzU2NTNkMTR9LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3duIC5jb21wb3Nlci10ZXh0LWxhYmVse2ZvbnQtc2l6ZTouOHJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttYXgtd2lkdGg6MTQwcHh9QGtleWZyYW1lcyBlbXB0eVN0YXRlVHJpb0ZhZGVJbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNHB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCl9fS5jaGF0LW1lc3NhZ2UtYXZhdGFyLnVzZXIgLmNoYXQtbW9kZS10cmlvLWNvbXBhY3R7bWFyZ2luLXJpZ2h0OjRweDtnYXA6M3B4O29wYWNpdHk6LjU1O3RyYW5zaXRpb246b3BhY2l0eSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5jaGF0LW1lc3NhZ2UtYXZhdGFyLnVzZXI6aG92ZXIgLmNoYXQtbW9kZS10cmlvLWNvbXBhY3QsLmNoYXQtbWVzc2FnZS1hdmF0YXIudXNlciAuY2hhdC1tb2RlLXRyaW8tY29tcGFjdDpmb2N1cy13aXRoaW4sLmNoYXQtbWVzc2FnZS1hdmF0YXIudXNlciAuY2hhdC1tb2RlLXRyaW8tY29tcGFjdDpob3ZlcntvcGFjaXR5OjF9LmNoYXQtbW9kZS10cmlvLWNvbXBhY3QgLmNoYXQtbW9kZS10cmlvLXBpbGx7Zm9udC1zaXplOi42ODc1cmVtO3BhZGRpbmc6MnB4IDZweDtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDojZjZmMWU4OGM7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dHJhbnNpdGlvbjphbGwgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KTtsaW5lLWhlaWdodDoxfS5jaGF0LW1vZGUtdHJpby1jb21wYWN0IC5jaGF0LW1vZGUtdHJpby1waWxsOmhvdmVye2JhY2tncm91bmQ6I2M1NjUzZDFhO2NvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LmNoYXQtbW9kZS10cmlvLWNvbXBhY3QgLmNvbXBvc2VyLXRleHQtbGFiZWx7Zm9udC1zaXplOi42ODc1cmVtO21heC13aWR0aDo4OHB4O2xldHRlci1zcGFjaW5nOi4wMWVtfS5jaGF0LW1vZGUtdHJpby1jb21wYWN0IC5jb21wb3Nlci10ZXh0LXNlcHtkaXNwbGF5Om5vbmV9QG1lZGlhKG1heC13aWR0aDo3MjBweCl7LmNoYXQtbW9kZS10cmlvLWRyb3Bkb3due3BhZGRpbmc6NnB4IDEwcHg7Z2FwOjJweH0uY2hhdC1tb2RlLXRyaW8tZHJvcGRvd24gLmNvbXBvc2VyLXRleHQtbGFiZWx7bWF4LXdpZHRoOjEwMHB4fS5jaGF0LW1vZGUtdHJpby1jb21wYWN0IC5jaGF0LW1vZGUtdHJpby1waWxse2ZvbnQtc2l6ZTouNjI1cmVtO3BhZGRpbmc6MnB4IDVweH0uY2hhdC1tb2RlLXRyaW8tY29tcGFjdCAuY29tcG9zZXItdGV4dC1sYWJlbHttYXgtd2lkdGg6NjRweH19LmNvbXBvc2VyLXBsdXMtcG9wb3Zlcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjE0cHg7Ym90dG9tOmNhbGModmFyKC0tc2FmZS1ib3R0b20sIDBweCkgKyA1NnB4KTt6LWluZGV4OjI4O21pbi13aWR0aDoyNDBweDttYXgtd2lkdGg6Y2FsYygxMDAlIC0gMjhweCk7YmFja2dyb3VuZDojZmZmZmZmZmE7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czoxNnB4O2JveC1zaGFkb3c6MCAxMnB4IDI4cHggIzAwMDAwMDJlLDAgMnB4IDZweCAjMDAwMDAwMTQ7cGFkZGluZzo2cHg7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MnB4O2FuaW1hdGlvbjpwbHVzUG9wb3ZlckluIC4xOHMgZWFzZS1vdXQ7dHJhbnNmb3JtLW9yaWdpbjoxNnB4IGNhbGMoMTAwJSArIDhweCl9LmNvbXBvc2VyLXBsdXMtcG9wb3Zlci5oaWRkZW57ZGlzcGxheTpub25lfUBrZXlmcmFtZXMgcGx1c1BvcG92ZXJJbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoNnB4KSBzY2FsZSguOTYpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKSBzY2FsZSgxKX19LnBsdXMtcG9wb3Zlci1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7cGFkZGluZzo4cHggMTBweDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MTBweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtc2l6ZTouODJyZW07Zm9udC1mYW1pbHk6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3RleHQtYWxpZ246bGVmdDt3aWR0aDoxMDAlfS5wbHVzLXBvcG92ZXItaXRlbTpob3ZlcntiYWNrZ3JvdW5kOiNjNTY1M2QxNH0ucGx1cy1wb3BvdmVyLWl0ZW06YWN0aXZle2JhY2tncm91bmQ6I2M1NjUzZDI0fS5wbHVzLXBvcG92ZXItaWNvbntjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7ZmxleC1zaHJpbms6MH0ucGx1cy1wb3BvdmVyLWxhYmVse2ZsZXg6MTtsaW5lLWhlaWdodDoxLjJ9LnBsdXMtcG9wb3Zlci10b2dnbGUtc3RhdGV7Zm9udC1zaXplOi42OHJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtwYWRkaW5nOjJweCA4cHg7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojMDAwMDAwMGQ7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi4wMmVtfS5wbHVzLXBvcG92ZXItaXRlbS5pcy1vbiwucGx1cy1wb3BvdmVyLWl0ZW0uaXMtb24gLnBsdXMtcG9wb3Zlci1pY29ue2NvbG9yOnZhcigtLWFjY2VudCl9LnBsdXMtcG9wb3Zlci1pdGVtLmlzLW9uIC5wbHVzLXBvcG92ZXItdG9nZ2xlLXN0YXRle2NvbG9yOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpfS5wbHVzLXBvcG92ZXItc2Vwe2hlaWdodDoxcHg7bWFyZ2luOjRweCA2cHg7YmFja2dyb3VuZDp2YXIoLS1ib3JkZXItc3VidGxlKX0ucGx1cy1wb3BvdmVyLXRyaW8td3JhcHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9LnBsdXMtcG9wb3Zlci10cmlvLXdyYXAgLmNvbXBvc2VyLWNvbmZpZy1jb250cm9sc3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOnN0cmV0Y2g7Z2FwOjZweH0ucGx1cy1wb3BvdmVyLXRyaW8td3JhcCAuY29tcG9zZXItY29uZmlnLWNoaXAsLnBsdXMtcG9wb3Zlci10cmlvLXdyYXAgLmNvbXBvc2VyLWNvbmZpZy1tb2RlbC10aGlua2luZ3t3aWR0aDoxMDAlO21heC13aWR0aDpub25lO21pbi1oZWlnaHQ6MzZweDtib3JkZXItcmFkaXVzOjEycHh9LnBsdXMtcG9wb3Zlci10cmlvLXdyYXAgLmNvbXBvc2VyLWNvbmZpZy1jaGlwe2p1c3RpZnktY29udGVudDpmbGV4LXN0YXJ0O3BhZGRpbmc6MCAxMHB4fS5wbHVzLXBvcG92ZXItdHJpby13cmFwIC5jb21wb3Nlci1jb25maWctbW9kZWwsLnBsdXMtcG9wb3Zlci10cmlvLXdyYXAgLmNvbXBvc2VyLWNvbmZpZy10aGlua2luZ3tmbGV4OjEgMSAwO21heC13aWR0aDpub25lO21pbi1oZWlnaHQ6MzZweDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDtwYWRkaW5nOjAgMTBweH0ucGx1cy1wb3BvdmVyLXRyaW8td3JhcCAuY29tcG9zZXItY29uZmlnLXRoaW5raW5ne2ZsZXg6MCAwIDg2cHh9LmNoYXQtbW9kZS10cmlvLXBvcG92ZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDoycHh9LmNoYXQtbW9kZS10cmlvLXBvcG92ZXIgLmNvbXBvc2VyLXRleHQtc2Vwe2Rpc3BsYXk6bm9uZX0uY2hhdC1tb2RlLXRyaW8tcG9wb3ZlciAuY2hhdC1tb2RlLXRyaW8tcGlsbHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo4cHg7cGFkZGluZzo3cHggMTBweDtib3JkZXItcmFkaXVzOjEwcHg7Zm9udC1zaXplOi44MnJlbTttYXgtd2lkdGg6bm9uZTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5jaGF0LW1vZGUtdHJpby1wb3BvdmVyIC5jaGF0LW1vZGUtdHJpby1waWxsOmhvdmVyLC5jaGF0LW1vZGUtdHJpby1wb3BvdmVyIC5jaGF0LW1vZGUtdHJpby1waWxsOmZvY3VzLXdpdGhpbntiYWNrZ3JvdW5kOiNjNTY1M2QxNDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5jaGF0LW1vZGUtdHJpby1wb3BvdmVyIC5jaGF0LW1vZGUtdHJpby10YWd7Zm9udC1zaXplOi43MnJlbTtmb250LXdlaWdodDo1MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2xldHRlci1zcGFjaW5nOjA7dGV4dC10cmFuc2Zvcm06bm9uZTtvcGFjaXR5OjE7bWFyZ2luLXJpZ2h0OjA7ZmxleC1zaHJpbms6MDt3aWR0aDozNnB4fS5jaGF0LW1vZGUtdHJpby1wb3BvdmVyIC5jb21wb3Nlci10ZXh0LWxhYmVse2ZsZXg6MTtmb250LXNpemU6LjgycmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7dGV4dC1hbGlnbjpyaWdodDttYXgtd2lkdGg6MTAwJTtmb250LXdlaWdodDo1MDB9QG1lZGlhKG1heC13aWR0aDo3MjBweCl7LmNvbXBvc2VyLXBsdXMtcG9wb3ZlcnttaW4td2lkdGg6MjIwcHg7bGVmdDoxMHB4O2JvdHRvbTpjYWxjKHZhcigtLXNhZmUtYm90dG9tLCAwcHgpICsgNjBweCl9LmNvbXBvc2VyLW1haW4tcm93e2dhcDozcHg7cGFkZGluZy1sZWZ0OjVweDtwYWRkaW5nLXJpZ2h0OjVweH0uY29tcG9zZXItaW5saW5lLWNvbmZpZ3tnYXA6M3B4fS5jb21wb3Nlci1jb25maWctY2hpcCwuY29tcG9zZXItY29uZmlnLXBhcnR7bWluLWhlaWdodDoyNnB4fS5jb21wb3Nlci1jb25maWctY2hpcHtwYWRkaW5nOjAgN3B4O21heC13aWR0aDo2NHB4fS5jb21wb3Nlci1jb25maWctbW9kZWx7bWF4LXdpZHRoOjc2cHh9LmNvbXBvc2VyLWNvbmZpZy10aGlua2luZ3ttaW4td2lkdGg6MzhweH0uY29tcG9zZXItY29uZmlnLWxhYmVse2ZvbnQtc2l6ZTouNjhyZW19fUBtZWRpYShtYXgtd2lkdGg6NDMwcHgpey5jb21wb3Nlci1jb25maWctY2hpcC1tb2Rle3dpZHRoOjI4cHg7bWF4LXdpZHRoOjI4cHg7cGFkZGluZzowfS5jb21wb3Nlci1jb25maWctY2hpcC1tb2RlIC5jb21wb3Nlci1jb25maWctbGFiZWx7ZGlzcGxheTpub25lfX1AbWVkaWEobWF4LXdpZHRoOjM4MHB4KXsuY29tcG9zZXItY29uZmlnLW1vZGVse3dpZHRoOjMwcHg7bWF4LXdpZHRoOjMwcHg7cGFkZGluZzowfS5jb21wb3Nlci1jb25maWctbW9kZWwgLmNvbXBvc2VyLWNvbmZpZy1sYWJlbHtkaXNwbGF5Om5vbmV9LmNvbXBvc2VyLWNvbmZpZy10aGlua2luZ3ttaW4td2lkdGg6MzRweDtwYWRkaW5nOjAgNXB4fX0ucHJvbXB0LW9wdGltaXplLWJ0bntkaXNwbGF5Om5vbmU7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6YXV0byA0cHggNHB4IGF1dG87dHJhbnNmb3JtOm5vbmU7d2lkdGg6MjZweDtoZWlnaHQ6MjZweDt6LWluZGV4OjR9LmlucHV0LWNvbXBvc2VyLmhhcy10ZXh0IC5wcm9tcHQtb3B0aW1pemUtYnRue2Rpc3BsYXk6aW5saW5lLWZsZXh9LmlucHV0LWNvbXBvc2VyLmhhcy10ZXh0IC5wcm9tcHQtb3B0aW1pemUtYnRuOmhvdmVye3RyYW5zZm9ybTpzY2FsZSgxLjEyKX0uaW5wdXQtY29tcG9zZXIuaGFzLXRleHQgLnByb21wdC1vcHRpbWl6ZS1idG46YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTIpfS5pbnB1dC1jb21wb3Nlci5oYXMtdGV4dCAuaW5wdXQtdGV4dGFyZWF7cGFkZGluZy1yaWdodDozNnB4fS52b2ljZS1pbnB1dC1tb2Rle3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6MCA0cHh9LnZvaWNlLWlucHV0LW1vZGUuaGlkZGVue2Rpc3BsYXk6bm9uZX0udm9pY2UtcmVjb3JkLWJ0bntmbGV4OjEgMSBhdXRvO21pbi13aWR0aDowO2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Ym9yZGVyOjFweCBkYXNoZWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JhY2tncm91bmQ6I2Y2ZjFlODgwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo1MDA7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtnYXA6OHB4O3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn0udm9pY2UtcmVjb3JkLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOiNmNmYxZThlNjtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtjb2xvcjp2YXIoLS1hY2NlbnQpfS52b2ljZS1yZWNvcmQtYnRuOmFjdGl2ZSwudm9pY2UtcmVjb3JkLWJ0bi5pcy1yZWNvcmRpbmd7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQsIHJnYmEoMTk3LCAxMDEsIDYxLCAuMTQpKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1zdHlsZTpzb2xpZH0udm9pY2UtcmVjb3JkLXB1bHNle3dpZHRoOjhweDtoZWlnaHQ6OHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6Y3VycmVudENvbG9yO29wYWNpdHk6LjU1fS52b2ljZS1yZWNvcmQtYnRuLmlzLXJlY29yZGluZyAudm9pY2UtcmVjb3JkLXB1bHNle29wYWNpdHk6MTthbmltYXRpb246dm9pY2UtcHVsc2UgMS4xcyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHZvaWNlLXB1bHNlezAlLHRve3RyYW5zZm9ybTpzY2FsZSgxKTtvcGFjaXR5OjF9NTAle3RyYW5zZm9ybTpzY2FsZSgxLjQ1KTtvcGFjaXR5Oi40NX19LnZvaWNlLWNhbmNlbC1idG57d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtib3JkZXItcmFkaXVzOjUwJTtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleC1zaHJpbms6MDt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS52b2ljZS1jYW5jZWwtYnRuOmhvdmVye2JhY2tncm91bmQ6I2IyNGY0NTFhO2NvbG9yOnZhcigtLWRhbmdlcil9LmlucHV0LWNvbXBvc2VyLnZvaWNlLW1vZGUgLmlucHV0LXRleHRhcmVhe3Zpc2liaWxpdHk6aGlkZGVufS5pbnB1dC1jb21wb3Nlci52b2ljZS1tb2RlIC5wcm9tcHQtb3B0aW1pemUtYnRue2Rpc3BsYXk6bm9uZX0uaW5wdXQtY29tcG9zZXIudm9pY2UtbW9kZSAudm9pY2UtaW5wdXQtbW9kZXtkaXNwbGF5OmZsZXh9I3ZvaWNlLWJ0bntkaXNwbGF5Om5vbmV9LmlucHV0LWNvbXBvc2VyLnZvaWNlLW1vZGUgI3ZvaWNlLWJ0bntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCwgcmdiYSgxOTcsIDEwMSwgNjEsIC4xOCkpO2NvbG9yOnZhcigtLWFjY2VudCl9LnZvaWNlLXRyYW5zY3JpcHQtYnViYmxle3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MTJweDtyaWdodDoxMnB4O2JvdHRvbTpjYWxjKDEwMCUgKyA4cHgpO3otaW5kZXg6NDA7cGFkZGluZzoxMnB4IDE2cHggMTBweDtib3JkZXItcmFkaXVzOjE2cHg7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQsICNjNTY1M2QpO2NvbG9yOiNmZmY7Ym94LXNoYWRvdzowIDZweCAyNHB4ICMwMDAwMDAyZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHg7cG9pbnRlci1ldmVudHM6bm9uZTt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbSBjZW50ZXI7YW5pbWF0aW9uOnZvaWNlLWJ1YmJsZS1pbiAuMThzIGVhc2V9LnZvaWNlLXRyYW5zY3JpcHQtYnViYmxlLmhpZGRlbntkaXNwbGF5Om5vbmV9QGtleWZyYW1lcyB2b2ljZS1idWJibGUtaW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDhweCkgc2NhbGUoLjk2KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9fS52b2ljZS10cmFuc2NyaXB0LXRleHR7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1zYW5zKTtmb250LXNpemU6Ljk1cmVtO2xpbmUtaGVpZ2h0OjEuNTtmb250LXdlaWdodDo1MDA7d29yZC1icmVhazpicmVhay13b3JkO3doaXRlLXNwYWNlOnByZS13cmFwO21pbi1oZWlnaHQ6MS40ZW07Y29sb3I6I2ZmZn0udm9pY2UtdHJhbnNjcmlwdC1idWJibGU6bm90KC5oYXMtdGV4dCkgLnZvaWNlLXRyYW5zY3JpcHQtdGV4dDpiZWZvcmV7Y29udGVudDoiXDhiZjdcNWYwMFw1OWNiXDhiZjRcOGJkZFwyMDI2IjtvcGFjaXR5Oi42fS52b2ljZS10cmFuc2NyaXB0LWhpbnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZvbnQtc2l6ZTouNzJyZW07b3BhY2l0eTouODV9LnZvaWNlLXRyYW5zY3JpcHQtc3RhdHVze2xldHRlci1zcGFjaW5nOi4wMmVtfS52b2ljZS13YXZle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6ZmxleC1lbmQ7Z2FwOjJweDtoZWlnaHQ6MTJweH0udm9pY2Utd2F2ZT5pe3dpZHRoOjIuNXB4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6Y3VycmVudENvbG9yO2FuaW1hdGlvbjp2b2ljZS13YXZlLWJvdW5jZSAuOXMgZWFzZS1pbi1vdXQgaW5maW5pdGV9LnZvaWNlLXdhdmU+aTpudGgtY2hpbGQoMSl7aGVpZ2h0OjVweDthbmltYXRpb24tZGVsYXk6MHN9LnZvaWNlLXdhdmU+aTpudGgtY2hpbGQoMil7aGVpZ2h0OjEycHg7YW5pbWF0aW9uLWRlbGF5Oi4xNXN9LnZvaWNlLXdhdmU+aTpudGgtY2hpbGQoMyl7aGVpZ2h0OjhweDthbmltYXRpb24tZGVsYXk6LjNzfS52b2ljZS13YXZlPmk6bnRoLWNoaWxkKDQpe2hlaWdodDoxMXB4O2FuaW1hdGlvbi1kZWxheTouNDVzfUBrZXlmcmFtZXMgdm9pY2Utd2F2ZS1ib3VuY2V7MCUsdG97dHJhbnNmb3JtOnNjYWxlWSguNCk7b3BhY2l0eTouNn01MCV7dHJhbnNmb3JtOnNjYWxlWSgxKTtvcGFjaXR5OjF9fS52b2ljZS1idWJibGUtYXJyb3d7cG9zaXRpb246YWJzb2x1dGU7dG9wOjEwMCU7bGVmdDoyOHB4O3dpZHRoOjA7aGVpZ2h0OjA7Ym9yZGVyLWxlZnQ6N3B4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo3cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo4cHggc29saWQgdmFyKC0tYWNjZW50LCAjYzU2NTNkKX0udm9pY2UtdHJhbnNjcmlwdC1idWJibGUuaXMtY2FuY2VsaW5ne2JhY2tncm91bmQ6dmFyKC0tZGFuZ2VyLCAjYjI0ZjQ1KX0udm9pY2UtdHJhbnNjcmlwdC1idWJibGUuaXMtY2FuY2VsaW5nIC52b2ljZS1idWJibGUtYXJyb3d7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1kYW5nZXIsICNiMjRmNDUpfUBtZWRpYShtYXgtd2lkdGg6NzIwcHgpey5idG4tY2lyY2xlLWFjdGlvbnt3aWR0aDozMHB4O2hlaWdodDozMHB4O21pbi13aWR0aDozMHB4fS5jb21wb3Nlci1tYWluLXJvd3twYWRkaW5nOjNweCA0cHg7bWluLWhlaWdodDo0MnB4O2dhcDoycHh9fS5hdHRhY2htZW50LXByZXZpZXd7ZGlzcGxheTpmbGV4O2dhcDo2cHg7cGFkZGluZzo2cHggMTBweDtmbGV4LXdyYXA6d3JhcDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKX0uYXR0YWNobWVudC1wcmV2aWV3LmhpZGRlbntkaXNwbGF5Om5vbmV9LmF0dGFjaG1lbnQtcGlsbHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O3BhZGRpbmc6M3B4IDhweDtiYWNrZ3JvdW5kOiNjNTY1M2QwZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMTgpO2JvcmRlci1yYWRpdXM6OHB4O2ZvbnQtc2l6ZTouNzJyZW07bWF4LXdpZHRoOjIwMHB4O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTthbmltYXRpb246cGVybWlzc2lvbi1mYWRlLWluIC4ycyBlYXNlLW91dH0uYXR0YWNobWVudC1waWxsIGltZ3t3aWR0aDoyOHB4O2hlaWdodDoyOHB4O29iamVjdC1maXQ6Y292ZXI7Ym9yZGVyLXJhZGl1czo0cHg7ZmxleC1zaHJpbms6MH0uYXR0YWNobWVudC1waWxsIC5hdHQtaWNvbnt3aWR0aDoxOHB4O2hlaWdodDoxOHB4O2ZsZXgtc2hyaW5rOjA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTouODVyZW19LmF0dGFjaG1lbnQtcGlsbCAuYXR0LW5hbWV7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZsZXg6MTttaW4td2lkdGg6MH0uYXR0YWNobWVudC1waWxsIC5hdHQtc2l6ZXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjY1cmVtO2ZsZXgtc2hyaW5rOjB9LmF0dGFjaG1lbnQtcGlsbCAuYXR0LXJlbW92ZXtjdXJzb3I6cG9pbnRlcjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjhyZW07bGluZS1oZWlnaHQ6MTtwYWRkaW5nOjAgMnB4O2ZsZXgtc2hyaW5rOjA7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDpub25lfS5hdHRhY2htZW50LXBpbGwgLmF0dC1yZW1vdmU6aG92ZXJ7Y29sb3I6dmFyKC0tZGFuZ2VyKX0uaW5wdXQtY29tcG9zZXIuZHJhZy1vdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpIWltcG9ydGFudDtiYWNrZ3JvdW5kOiNjNTY1M2QwYSFpbXBvcnRhbnQ7Ym94LXNoYWRvdzowIDAgMCAycHggdmFyKC0tYWNjZW50LW11dGVkKSxpbnNldCAwIDAgMjBweCAjYzU2NTNkMDh9LmZvbGRlci1waWNrZXItbW9kYWx7bWF4LXdpZHRoOjQ4MHB4fS5mb2xkZXItcGlja2VyLW1vZGFsIC5tb2RhbC1ib2R5e3BhZGRpbmc6MTZweH0ubG9naW4tY29udGFpbmVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4taGVpZ2h0OjEwMHZoO21pbi1oZWlnaHQ6MTAwZHZoO3BhZGRpbmc6MjRweH0ubG9naW4tY2FyZHt3aWR0aDoxMDAlO21heC13aWR0aDozODBweDtiYWNrZ3JvdW5kOiNmZmZiZjVlYjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTUwLDExOCw4NSwuMTYpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWxnKTtvdmVyZmxvdzpoaWRkZW47Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctc29mdCl9LmxvZ2luLWhlYWRlcntwYWRkaW5nOjI4cHggMjRweCAyMnB4O3RleHQtYWxpZ246Y2VudGVyO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCB0b3AscmdiYSgyMTQsMTQ0LDEwMCwuMjYpLHRyYW5zcGFyZW50IDQ1JSksbGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmNmViZDksI2ZmZmJmNWQ5KX0uYm9vdC1sb2FkaW5ne21pbi1oZWlnaHQ6MTAwdmg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MjRweH0uYm9vdC1sb2FkaW5nLWNhcmR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjE2cHggMThweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MTZweDtiYWNrZ3JvdW5kOnZhcigtLXN1cmZhY2UtZWxldmF0ZWQpO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXNtKTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LmJvb3QtbG9hZGluZy1zcGlubmVye3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7ZmxleC1zaHJpbms6MDtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMTYpO2JvcmRlci10b3AtY29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItcmFkaXVzOjk5OXB4O2FuaW1hdGlvbjpsb2dpblNwaW4gLjhzIGxpbmVhciBpbmZpbml0ZX0uYm9vdC1sb2FkaW5nLXRleHR7Zm9udC1zaXplOi45Mzc1cmVtO2ZvbnQtd2VpZ2h0OjUwMH0ubG9naW4tbG9nb3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Z2FwOjEwcHg7bWFyZ2luLWJvdHRvbTo4cHh9LmxvZ2luLWxvZ28taWNvbnt3aWR0aDo0MnB4O2hlaWdodDo0MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjZDY3YjUyLCNhYjUyMmUpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmZmZmNTk7Zm9udC1zaXplOjE4cHg7Y29sb3I6I2ZmZjtmb250LXdlaWdodDo3MDB9LmxvZ2luLWxvZ28tdGV4dHtmb250LXNpemU6MS42cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzotLjAyZW19LmxvZ2luLXN1YnRpdGxle2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouODc1cmVtfS5sb2dpbi1ib2R5e3BhZGRpbmc6MjJweCAyNHB4IDI0cHh9LmxvZ2luLWNhcmQtbG9hZGluZyAubG9naW4tYm9keXtwYWRkaW5nLXRvcDoxOHB4O3BhZGRpbmctYm90dG9tOjI0cHh9LmxvZ2luLWhpbnR7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTttYXJnaW4tYm90dG9tOjE2cHg7bGluZS1oZWlnaHQ6MS41fS5sb2dpbi1tdXRlZHttYXJnaW46NHB4IDAgMDtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNDV9LmxvZ2luLXN0YXR1c3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTRweDtwYWRkaW5nOjJweCAwfS5sb2dpbi1zcGlubmVye3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7ZmxleC1zaHJpbms6MDttYXJnaW4tdG9wOjJweDtib3JkZXI6MnB4IHNvbGlkIHJnYmEoMTk3LDEwMSw2MSwuMTYpO2JvcmRlci10b3AtY29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItcmFkaXVzOjk5OXB4O2FuaW1hdGlvbjpsb2dpblNwaW4gLjhzIGxpbmVhciBpbmZpbml0ZX0ucGFzc3dvcmQtZmllbGR7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0ucGFzc3dvcmQtaW5wdXR7cGFkZGluZy1yaWdodDo3OHB4O21pbi1oZWlnaHQ6NDZweH0ucGFzc3dvcmQtdG9nZ2xle3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjhweDt0b3A6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpO2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NjAwO3BhZGRpbmc6NnB4IDhweDtib3JkZXItcmFkaXVzOjhweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5wYXNzd29yZC10b2dnbGU6aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5MTQ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0ucGFzc3dvcmQtdG9nZ2xlOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDoycHh9QGtleWZyYW1lcyBsb2dpblNwaW57MCV7dHJhbnNmb3JtOnJvdGF0ZSgwKX10b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5idG46ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkO29wYWNpdHk6LjcyO3RyYW5zZm9ybTpub25lO2JveC1zaGFkb3c6bm9uZX0ubG9naW4tYm9keSAuZmllbGR7bWFyZ2luLWJvdHRvbToyMHB4fS5sb2dpbi1ib2R5IC5oaW50e21hcmdpbi10b3A6MTBweH0ubG9naW4tYm9keSAuZXJyb3ItbWVzc2FnZXttYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbTowfS5sb2dpbi1jZXJ0LWhpbnR7bWFyZ2luLXRvcDoxNHB4O3BhZGRpbmc6MTRweCAxNnB4O2JvcmRlci1yYWRpdXM6MTJweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTkwLDEyMCw0MCwuMzIpO2JhY2tncm91bmQ6I2RjOTYzYzFhO3RleHQtYWxpZ246bGVmdH0ubG9naW4tY2VydC1oaW50LXRpdGxle2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO21hcmdpbi1ib3R0b206NnB4fS5sb2dpbi1jZXJ0LWhpbnQtYm9keXtmb250LXNpemU6LjgxMjVyZW07bGluZS1oZWlnaHQ6MS42O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTttYXJnaW46MCAwIDEycHh9LmxvZ2luLWNlcnQtaGludCAuYnRue21hcmdpbi10b3A6MH0ubW9kYWwtc3VidGl0bGV7bWFyZ2luLXRvcDo0cHg7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjV9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWJvZHl7cGFkZGluZy10b3A6MTZweDtwYWRkaW5nLWJvdHRvbTo4cHh9LnNlc3Npb24tbW9kYWwgLmZpZWxkOmxhc3Qtb2YtdHlwZXttYXJnaW4tYm90dG9tOjZweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtZm9vdGVye2ZsZXgtc2hyaW5rOjA7cGFkZGluZzoxMnB4IDIycHggMThweDtib3JkZXItdG9wOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKX0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtZm9vdGVyIC5lcnJvci1tZXNzYWdle21hcmdpbi10b3A6OHB4O21hcmdpbi1ib3R0b206MH0ubW9kZS1jYXJkc3tkaXNwbGF5OmZsZXg7ZmxleC13cmFwOndyYXA7Z2FwOjZweH0ubW9kZS1jYXJke2ZsZXg6MSAxIDA7bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjNweDtwYWRkaW5nOjEwcHggOHB4O2JvcmRlcjoxLjVweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMik7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6I2ZmZjk7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCksYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3RleHQtYWxpZ246Y2VudGVyO291dGxpbmU6bm9uZX0ubW9kZS1jYXJkOmhvdmVye2JvcmRlci1jb2xvcjojYzU2NTNkNTk7YmFja2dyb3VuZDojZmZmY30ubW9kZS1jYXJkLmFjdGl2ZXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOiNmZmY3ZWZmMjtib3gtc2hhZG93OjAgMCAwIDEuNXB4IHZhcigtLWFjY2VudC1tdXRlZCl9Lm1vZGUtY2FyZDpmb2N1cy12aXNpYmxle2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAwIDAgMS41cHggdmFyKC0tYWNjZW50LW11dGVkKX0ubW9kZS1jYXJkLWxhYmVse2ZvbnQtc2l6ZTouOHJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsaW5lLWhlaWdodDoxLjN9Lm1vZGUtY2FyZC1kZXNje2ZvbnQtc2l6ZTouNjhyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS4zfS5tb2RlLWNhcmQuYWN0aXZlIC5tb2RlLWNhcmQtbGFiZWx7Y29sb3I6dmFyKC0tYWNjZW50KX0ubW9kZS1jYXJkLmRpc2FibGVke29wYWNpdHk6LjQ1O2N1cnNvcjpub3QtYWxsb3dlZDtwb2ludGVyLWV2ZW50czpub25lfS5tb2RlLWNhcmQuZGlzYWJsZWQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOiM3ZDViMzkzMztiYWNrZ3JvdW5kOiNmZmY5fS5tb2RlLWNhcmQuZGlzYWJsZWQgLm1vZGUtY2FyZC1sYWJlbCwubW9kZS1jYXJkLmRpc2FibGVkIC5tb2RlLWNhcmQtZGVzY3tjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ubW9kZS1jYXJkLmFjdGl2ZS5kaXNhYmxlZHtib3gtc2hhZG93Om5vbmV9LnBhc3N3b3JkLWlucHV0W2RhdGEtZXJyb3I9dHJ1ZV0sLnBhc3N3b3JkLWlucHV0W2FyaWEtaW52YWxpZD10cnVlXXtib3JkZXItY29sb3I6dmFyKC0tZGFuZ2VyKTtib3gtc2hhZG93OjAgMCAwIDNweCB2YXIoLS1kYW5nZXItbXV0ZWQpfS5wYXNzd29yZC1pbnB1dFtkYXRhLWVycm9yPXRydWVdKy5wYXNzd29yZC10b2dnbGUsLnBhc3N3b3JkLWlucHV0W2FyaWEtaW52YWxpZD10cnVlXSsucGFzc3dvcmQtdG9nZ2xle2NvbG9yOnZhcigtLWRhbmdlcil9LnBhc3N3b3JkLWlucHV0OmZvY3VzKy5wYXNzd29yZC10b2dnbGV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0ucGFzc3dvcmQtdG9nZ2xlOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSBzY2FsZSguOTgpfS5wYXNzd29yZC1pbnB1dDo6LW1zLXJldmVhbCwucGFzc3dvcmQtaW5wdXQ6Oi1tcy1jbGVhcntkaXNwbGF5Om5vbmV9LnBhc3N3b3JkLWlucHV0Ojotd2Via2l0LWNyZWRlbnRpYWxzLWF1dG8tZmlsbC1idXR0b24sLnBhc3N3b3JkLWlucHV0Ojotd2Via2l0LWNvbnRhY3RzLWF1dG8tZmlsbC1idXR0b257dmlzaWJpbGl0eTpoaWRkZW47ZGlzcGxheTpub25lIWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lO3Bvc2l0aW9uOmFic29sdXRlO3JpZ2h0OjB9LnBhc3N3b3JkLWlucHV0W3R5cGU9dGV4dF17Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKX0uZmllbGR7bWFyZ2luLWJvdHRvbToxOHB4fS5maWVsZC1sYWJlbHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO21hcmdpbi1ib3R0b206OHB4fS5maWVsZC1pbnB1dHt3aWR0aDoxMDAlO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44NzVyZW07YmFja2dyb3VuZDojZmZmZmZmYmY7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMjIpO2JvcmRlci1yYWRpdXM6MTJweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3BhZGRpbmc6MTJweCAxNHB4O291dGxpbmU6bm9uZTt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJveC1zaGFkb3cgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7bWluLWhlaWdodDo0NHB4fS5maWVsZC1pbnB1dDpmb2N1c3tib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMCAwIDNweCB2YXIoLS1hY2NlbnQtbXV0ZWQpLDAgMCAyMHB4ICNjNTY1M2QxNDtiYWNrZ3JvdW5kOiNmZmZmZmZlNn0uZmllbGQtaW5wdXQ6OnBsYWNlaG9sZGVye2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5tb2RhbC1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDtpbnNldDowO3otaW5kZXg6NTAwO2JhY2tncm91bmQ6IzE0MGUwODU3O2JhY2tkcm9wLWZpbHRlcjpibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMThweCkgc2F0dXJhdGUoMTQwJSk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmctdG9wOm1heCgzMnB4LHZhcigtLXdhbmQtc2FmZS10b3ApKTtwYWRkaW5nLWJvdHRvbTptYXgoMzJweCx2YXIoLS13YW5kLXNhZmUtYm90dG9tKSk7cGFkZGluZy1sZWZ0Om1heCgzMnB4LHZhcigtLXdhbmQtc2FmZS1sZWZ0KSk7cGFkZGluZy1yaWdodDptYXgoMzJweCx2YXIoLS13YW5kLXNhZmUtcmlnaHQpKTthbmltYXRpb246bGlxdWlkQmFja2Ryb3BJbiAuMjhzIHZhcigtLWVhc2Utb3V0LWV4cG8sIGN1YmljLWJlemllciguMTYsIDEsIC4zLCAxKSkgYm90aH0ubW9kYWwtYmFja2Ryb3AuY2xvc2luZ3thbmltYXRpb246bGlxdWlkQmFja2Ryb3BPdXQgLjE4cyB2YXIoLS1lYXNlLWluLW91dC1zbW9vdGgsIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpKSBib3RoO3BvaW50ZXItZXZlbnRzOm5vbmV9QGtleWZyYW1lcyBsaXF1aWRCYWNrZHJvcEluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgbGlxdWlkQmFja2Ryb3BPdXR7MCV7b3BhY2l0eToxfXRve29wYWNpdHk6MH19Lm1vZGFse3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjEwMCU7bWF4LXdpZHRoOjU2MHB4O21heC1oZWlnaHQ6ODh2aDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQ6I2ZmZmNmN2JkO2JvcmRlcjouNXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjYpO2JvcmRlci1yYWRpdXM6MjZweDtvdmVyZmxvdzpoaWRkZW47YmFja2Ryb3AtZmlsdGVyOmJsdXIoNDBweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cig0MHB4KSBzYXR1cmF0ZSgxODAlKTtib3gtc2hhZG93OjAgMzJweCA4MHB4IC0xNnB4ICMxNDBlMDg1NywwIDhweCAyNHB4IC04cHggIzE0MGUwODJlLDAgMCAwIC41cHggIzdkNWIzOTE0LGluc2V0IDAgMXB4ICNmZmZmZmZiMzthbmltYXRpb246bGlxdWlkTW9kYWxJbiAuMzJzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKSBib3RofS5tb2RhbC1iYWNrZHJvcC5jbG9zaW5nIC5tb2RhbHthbmltYXRpb246bGlxdWlkTW9kYWxPdXQgLjE4cyB2YXIoLS1lYXNlLWluLW91dC1zbW9vdGgsIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpKSBib3RofUBrZXlmcmFtZXMgbGlxdWlkTW9kYWxJbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC45NCkgdHJhbnNsYXRlWSgxMnB4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgbGlxdWlkTW9kYWxPdXR7MCV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06c2NhbGUoLjk3KSB0cmFuc2xhdGVZKDRweCl9fUBtZWRpYShwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7Lm1vZGFsLWJhY2tkcm9wLC5tb2RhbC1iYWNrZHJvcC5jbG9zaW5nLC5tb2RhbCwubW9kYWwtYmFja2Ryb3AuY2xvc2luZyAubW9kYWx7YW5pbWF0aW9uOm5vbmUhaW1wb3J0YW50fX1Ac3VwcG9ydHMgbm90ICgoYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpIG9yICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSl7Lm1vZGFsLWJhY2tkcm9we2JhY2tncm91bmQ6IzE0MGUwODk5fS5tb2RhbHtiYWNrZ3JvdW5kOiNmZmZhZjI7Ym9yZGVyLWNvbG9yOiM3ZDViMzkyZX19QG1lZGlhKHByZWZlcnMtY29sb3Itc2NoZW1lOmRhcmspey5tb2RhbC1iYWNrZHJvcHtiYWNrZ3JvdW5kOiMwODA1MDI4MH1Ac3VwcG9ydHMgbm90ICgoYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpIG9yICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSl7Lm1vZGFsLWJhY2tkcm9we2JhY2tncm91bmQ6IzA4MDUwMmM3fX19LnNlc3Npb24tbW9kYWwgLm1vZGFsLWhlYWRlciwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWhlYWRlcntwYWRkaW5nOjI0cHggMjhweCAxOHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wOCk7YWxpZ24taXRlbXM6ZmxleC1zdGFydDtnYXA6MTZweDttaW4taGVpZ2h0OjB9LnNlc3Npb24tbW9kYWwgLm1vZGFsLXRpdGxlLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtdGl0bGUtZ3JvdXAgLm1vZGFsLXRpdGxle2ZvbnQtc2l6ZToxLjMxMjVyZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi0uMDIyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsaW5lLWhlaWdodDoxLjJ9LnNlc3Npb24tbW9kYWwgLm1vZGFsLXN1YnRpdGxlLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtc3VidGl0bGV7bWFyZ2luLXRvcDo1cHg7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjQwMDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjU7bWF4LXdpZHRoOjQ0Y2h9Lm1vZGFsLWNsb3NlLWJ0biwuc2Vzc2lvbi1tb2RhbCAubW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3QsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdHt3aWR0aDozMnB4O2hlaWdodDozMnB4O21pbi13aWR0aDozMnB4O21pbi1oZWlnaHQ6MzJweDtwYWRkaW5nOjA7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojN2Q1YjM5MTI7Ym9yZGVyOm5vbmU7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7ZmxleC1zaHJpbms6MDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsY29sb3IgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMjhzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKSxib3gtc2hhZG93IC4xOHMgZWFzZX0ubW9kYWwtY2xvc2UtYnRuIHN2Z3tkaXNwbGF5OmJsb2NrO3BvaW50ZXItZXZlbnRzOm5vbmV9Lm1vZGFsLWNsb3NlLWJ0bjpob3Zlciwuc2Vzc2lvbi1tb2RhbCAubW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3Q6aG92ZXIsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1oZWFkZXI+LmJ0bi1pY29uLmJ0bi1naG9zdDpob3ZlcntiYWNrZ3JvdW5kOiNiMjRmNDUxZjtjb2xvcjp2YXIoLS1kYW5nZXIpO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO2JveC1zaGFkb3c6MCAycHggOHB4ICNiMjRmNDUyZX0ubW9kYWwtY2xvc2UtYnRuOmFjdGl2ZSwuc2Vzc2lvbi1tb2RhbCAubW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3Q6YWN0aXZlLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtaGVhZGVyPi5idG4taWNvbi5idG4tZ2hvc3Q6YWN0aXZle2JhY2tncm91bmQ6I2IyNGY0NTMzO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpIHNjYWxlKC45Mik7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfS5tb2RhbC1jbG9zZS1idG46Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjNweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtYm9keSwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW1vZGFsLWJvZHl7cGFkZGluZzoyMHB4IDI4cHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWZvb3RlcntwYWRkaW5nOjE2cHggMjhweCAyMnB4O2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wOCl9LnNlc3Npb24tbW9kYWwgLmZpZWxkLWlucHV0LC5zZXR0aW5ncy1tb2RhbCAuZmllbGQtaW5wdXQsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1jYXJkIC5maWVsZC1pbnB1dCwuc2Vzc2lvbi1tb2RhbCBzZWxlY3QuZmllbGQtaW5wdXQsLnNldHRpbmdzLW1vZGFsIHNlbGVjdC5maWVsZC1pbnB1dHtiYWNrZ3JvdW5kOiNmZmZmZmZjNztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xNCk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTFweCAxNHB4O2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMS41cHggIzdkNWIzOTBhO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZSxib3gtc2hhZG93IC4xNXMgZWFzZSxiYWNrZ3JvdW5kIC4xNXMgZWFzZTtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lfS5zZXNzaW9uLW1vZGFsIC5maWVsZC1pbnB1dDpob3Zlciwuc2V0dGluZ3MtbW9kYWwgLmZpZWxkLWlucHV0OmhvdmVye2JvcmRlci1jb2xvcjojN2Q1YjM5M2Q7YmFja2dyb3VuZDojZmZmZmZmZWJ9LnNlc3Npb24tbW9kYWwgLmZpZWxkLWlucHV0OmZvY3VzLC5zZXR0aW5ncy1tb2RhbCAuZmllbGQtaW5wdXQ6Zm9jdXMsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1jYXJkIC5maWVsZC1pbnB1dDpmb2N1cywuc2Vzc2lvbi1tb2RhbCBzZWxlY3QuZmllbGQtaW5wdXQ6Zm9jdXMsLnNldHRpbmdzLW1vZGFsIHNlbGVjdC5maWVsZC1pbnB1dDpmb2N1c3tiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxLjVweCAjN2Q1YjM5MGEsMCAwIDAgM3B4IHZhcigtLWFjY2VudC1tdXRlZCl9LnNlc3Npb24tbW9kYWwgLm1vZGUtY2FyZHN7Z2FwOjhweH0uc2Vzc2lvbi1tb2RhbCAubW9kZS1jYXJke3BhZGRpbmc6MTJweCAxMHB4O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEpO2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiNmZmY5O2JveC1zaGFkb3c6MCAxcHggMnB4ICM3ZDViMzkwODt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGJvcmRlci1jb2xvciAuMTZzIGVhc2UsYm94LXNoYWRvdyAuMTZzIGVhc2UsdHJhbnNmb3JtIC4xNnMgZWFzZTtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lfS5zZXNzaW9uLW1vZGFsIC5tb2RlLWNhcmQ6aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmZWI7Ym9yZGVyLWNvbG9yOiM3ZDViMzkzMzt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgNHB4IDEycHggIzdkNWIzOTE0fS5zZXNzaW9uLW1vZGFsIC5tb2RlLWNhcmQuYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZjIsI2ZmZjBlMGQxKTtib3JkZXI6LjVweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LC44KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6MCAwIDAgMXB4ICNjNTY1M2Q1MiwwIDAgMCA0cHggI2M1NjUzZDI0LDAgOHB4IDIycHggLTRweCAjYzU2NTNkNGQsaW5zZXQgMCAxcHggI2ZmZmZmZmYyLGluc2V0IDAgLTFweCAjYzU2NTNkMTQ7dHJhbnNmb3JtOm5vbmV9LnNlc3Npb24tbW9kYWwgLm1vZGUtY2FyZC5hY3RpdmUgLm1vZGUtY2FyZC1sYWJlbHtjb2xvcjp2YXIoLS1hY2NlbnQpfS5zZXNzaW9uLW1vZGFsIC50b29sLWNhcmR7YmFja2dyb3VuZDojZmZmZmZmYjM7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTIpO2JvcmRlci1yYWRpdXM6MTRweDtwYWRkaW5nOjE0cHggMTZweDtib3gtc2hhZG93OjAgMXB4IDJweCAjN2Q1YjM5MDg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlLGJveC1zaGFkb3cgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMThzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2Vzc2lvbi1tb2RhbCAudG9vbC1jYXJkOmhvdmVye2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6IzdkNWIzOTM4O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpO2JveC1zaGFkb3c6MCA4cHggMjBweCAjN2Q1YjM5MWF9LnNlc3Npb24tbW9kYWwgLnRvb2wtY2FyZC5hY3RpdmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjdmMiwjZmZmMGUwZDEpO2JvcmRlcjouNXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjgpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTZweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzowIDAgMCAxcHggI2M1NjUzZDRkLDAgMCAwIDRweCAjYzU2NTNkMjQsMCAxMHB4IDI4cHggLTZweCAjYzU2NTNkNGQsaW5zZXQgMCAxcHggI2ZmZmZmZmYyLGluc2V0IDAgLTFweCAjYzU2NTNkMTQ7dHJhbnNmb3JtOm5vbmV9LnNlc3Npb24tbW9kYWwgLnJlY2VudC1wYXRoLWJ1YmJsZXtiYWNrZ3JvdW5kOiNmZmZmZmY4Yztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMik7Ym94LXNoYWRvdzowIDFweCAycHggIzdkNWIzOTA4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsYm9yZGVyLWNvbG9yIC4xNnMgZWFzZSxjb2xvciAuMTZzIGVhc2UsdHJhbnNmb3JtIC4xNnMgZWFzZX0uc2Vzc2lvbi1tb2RhbCAucmVjZW50LXBhdGgtYnViYmxlOmhvdmVye2JhY2tncm91bmQ6I2ZmZjdlZjtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtjb2xvcjp2YXIoLS1hY2NlbnQpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGV7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjhweDtwYWRkaW5nOjZweCA4cHggNnB4IDEycHg7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOiM3ZDViMzkwZDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wOCk7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE4cyBlYXNlLGJvcmRlci1jb2xvciAuMThzIGVhc2UsYm94LXNoYWRvdyAuMThzIGVhc2UsY29sb3IgLjE4cyBlYXNlO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlOmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTE3O2JvcmRlci1jb2xvcjojN2Q1YjM5Mjl9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZTpoYXMoLnN3aXRjaC10b2dnbGU6Y2hlY2tlZCl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmY3ZWYsI2ZmZWVkOCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMCAwIDNweCB2YXIoLS1hY2NlbnQtbXV0ZWQpLDAgNHB4IDEycHggI2M1NjUzZDFmfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUtaWNvbntmbGV4LXNocmluazowO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RyYW5zaXRpb246Y29sb3IgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMjhzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKX0uc2Vzc2lvbi1tb2RhbCAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlOmhhcyguc3dpdGNoLXRvZ2dsZTpjaGVja2VkKSAuc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWljb257Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2Zvcm06cm90YXRlKDhkZWcpfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUtbGFiZWx7Zm9udC1zaXplOi43NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAwNWVtO2NvbG9yOmluaGVyaXQ7dHJhbnNpdGlvbjpjb2xvciAuMThzIGVhc2V9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZSAuc3dpdGNoLXRvZ2dsZXtwb3NpdGlvbjphYnNvbHV0ZTtvcGFjaXR5OjA7d2lkdGg6MDtoZWlnaHQ6MDtwb2ludGVyLWV2ZW50czpub25lfS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWlubGluZS10b2dnbGUgLnN3aXRjaC1zbGlkZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7d2lkdGg6MzJweDtoZWlnaHQ6MjBweDttaW4td2lkdGg6MzJweDtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDojN2Q1YjM5Mzg7Ym94LXNoYWRvdzppbnNldCAwIDFweCAxcHggIzdkNWIzOTJlO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMjJzIGVhc2UsYm94LXNoYWRvdyAuMjJzIGVhc2V9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZSAuc3dpdGNoLXNsaWRlcjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoycHg7bGVmdDoycHg7d2lkdGg6MTZweDtoZWlnaHQ6MTZweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOiNmZmY7Ym94LXNoYWRvdzowIDEuNXB4IDNweCAjMTQwZTA4MzgsMCAwIDAgLjVweCAjN2Q1YjM5MGY7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjI0cyBjdWJpYy1iZXppZXIoLjM0LDEuNCwuNjQsMSl9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZSAuc3dpdGNoLXRvZ2dsZTpjaGVja2VkKy5zd2l0Y2gtc2xpZGVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCAjMDAwMDAwMWF9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZSAuc3dpdGNoLXRvZ2dsZTpjaGVja2VkKy5zd2l0Y2gtc2xpZGVyOmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGUoMTJweCl9LnNlc3Npb24tbW9kYWwgLnNlc3Npb24taW5saW5lLXRvZ2dsZSAuc3dpdGNoLXRvZ2dsZTpmb2N1cy12aXNpYmxlKy5zd2l0Y2gtc2xpZGVye291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWFjY2VudCk7b3V0bGluZS1vZmZzZXQ6MnB4fS5zZXNzaW9uLW1vZGFsIC5zZXNzaW9uLWtpbmQtaGludC1yb3d7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxNHB4fS5zZXNzaW9uLW1vZGFsIC5zdWdnZXN0aW9uc3tiYWNrZ3JvdW5kOiNmZmZjZjdmNTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xNCk7Ym9yZGVyLXJhZGl1czoxMnB4O2JveC1zaGFkb3c6MCAwIDAgLjVweCAjN2Q1YjM5MGQsMCAxMnB4IDI4cHggLThweCAjMTQwZTA4MmU7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMjBweCkgc2F0dXJhdGUoMTgwJSk7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6Ymx1cigyMHB4KSBzYXR1cmF0ZSgxODAlKTtvdmVyZmxvdzpoaWRkZW59LnNlc3Npb24tbW9kYWwgLnN1Z2dlc3Rpb24taXRlbTpob3ZlcntiYWNrZ3JvdW5kOiNlOGM1YWU1Mn0uc2Vzc2lvbi1tb2RhbCAuZXJyb3ItbWVzc2FnZSwuc2V0dGluZ3MtbW9kYWwgLmVycm9yLW1lc3NhZ2V7YmFja2dyb3VuZDojYjI0ZjQ1MWE7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE3OCw3OSw2OSwuMik7Y29sb3I6dmFyKC0tZGFuZ2VyKTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoxMHB4IDEycHg7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2Vzc2lvbi1tb2RhbCAuZmllbGQtbGFiZWwsLnNldHRpbmdzLW1vZGFsIC5maWVsZC1sYWJlbHtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC13ZWlnaHQ6NjAwO2ZvbnQtc2l6ZTouODEyNXJlbTttYXJnaW4tYm90dG9tOjhweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtZm9vdGVyIC5idG4tcHJpbWFyeSwuc2V0dGluZ3MtbW9kYWwgLmJ0bi1wcmltYXJ5e2JveC1zaGFkb3c6MCA2cHggMTZweCAtNHB4ICNjNTY1M2Q2NiwwIDJweCA2cHggLTJweCAjYzU2NTNkNGQsaW5zZXQgMCAxcHggI2ZmZjM7Ym9yZGVyLXJhZGl1czoxMnB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1mb290ZXIgLmJ0bi1wcmltYXJ5OmhvdmVyLC5zZXR0aW5ncy1tb2RhbCAuYnRuLXByaW1hcnk6aG92ZXJ7Ym94LXNoYWRvdzowIDEwcHggMjRweCAtNHB4ICNjNTY1M2Q3NSwwIDRweCAxMHB4IC0ycHggI2M1NjUzZDU3LGluc2V0IDAgMXB4ICNmZmZmZmY0MH0uc2Vzc2lvbi1tb2RhbCAuYnRuLXNlY29uZGFyeSwuc2V0dGluZ3MtbW9kYWwgLmJ0bi1zZWNvbmRhcnl7YmFja2dyb3VuZDojZmZmZmZmYzc7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTQpO2JveC1zaGFkb3c6MCAxcHggMnB4ICM3ZDViMzkwYTtib3JkZXItcmFkaXVzOjEycHh9LnNlc3Npb24tbW9kYWwgLmJ0bi1zZWNvbmRhcnk6aG92ZXIsLnNldHRpbmdzLW1vZGFsIC5idG4tc2Vjb25kYXJ5OmhvdmVye2JhY2tncm91bmQ6I2ZmZjtib3JkZXItY29sb3I6IzdkNWIzOTNkO2JveC1zaGFkb3c6MCA0cHggMTJweCAjN2Q1YjM5MTR9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1zaWRlYmFye2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA4KTtwYWRkaW5nLXJpZ2h0OjEycHh9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1zaWRlYmFyLXRpdGxle2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo2MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wOGVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFic3tnYXA6MnB4fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFie3BhZGRpbmc6MTFweCAxNHB4O2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MTBweDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JveC1zaGFkb3c6bm9uZTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNHMgZWFzZSxjb2xvciAuMTRzIGVhc2UsdHJhbnNmb3JtIC4xNHMgZWFzZTtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiOmJlZm9yZXtkaXNwbGF5Om5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWI6aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5MGY7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt0cmFuc2Zvcm06bm9uZTtib3JkZXItY29sb3I6dHJhbnNwYXJlbnR9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10YWIuYWN0aXZle2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZjIsI2ZmZjRlOGM3KTtjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDE0cHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTRweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzppbnNldCAwIDAgMCAxcHggI2M1NjUzZDQwLGluc2V0IDAgMXB4ICNmZmZmZmZlNixpbnNldCAwIC0xcHggI2M1NjUzZDE0LDAgNHB4IDE0cHggLTRweCAjYzU2NTNkMzgsMCAxcHggM3B4ICM3ZDViMzkwZn0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYi5hY3RpdmUgLnNldHRpbmdzLXRhYi1tZXRhe2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXRhYi1tYWlue2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzotLjAwNWVtfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtdGFiLW1ldGF7Zm9udC1zaXplOi43MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtcGFuZWwtaGVhZGVye21hcmdpbjowIDAgMTZweDtwYWRkaW5nLWJvdHRvbToxNHB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wOCl9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1wYW5lbC10aXRsZXtmb250LXNpemU6MS4xODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzotLjAyZW19LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1wYW5lbC1kZXNje2ZvbnQtc2l6ZTouODEyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWNhcmQsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy11cGRhdGUtc2VjdGlvbiwuc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtYWJvdXQtaW5mbywuc2V0dGluZ3MtbW9kYWwgLnByZXNldC1pdGVte2JhY2tncm91bmQ6I2ZmZmZmZmE2O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEpO2JvcmRlci1yYWRpdXM6MTZweDtib3gtc2hhZG93OjAgMXB4IDJweCAjN2Q1YjM5MDg7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFib3V0LXJvd3tib3JkZXItYm90dG9tLWNvbG9yOiM3ZDViMzkxNH0uc2V0dGluZ3MtbW9kYWwgLnN3aXRjaC1jYXJkLWxpc3R7Z2FwOjhweH0uc2V0dGluZ3MtbW9kYWwgLnN3aXRjaC1jYXJke2JhY2tncm91bmQ6I2ZmZjk7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMSk7Ym9yZGVyLXJhZGl1czoxNHB4O2JveC1zaGFkb3c6MCAxcHggMnB4ICM3ZDViMzkwODt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGJvcmRlci1jb2xvciAuMTZzIGVhc2UsdHJhbnNmb3JtIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xNnMgZWFzZTtiYWNrZHJvcC1maWx0ZXI6bm9uZTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpub25lfS5zZXR0aW5ncy1tb2RhbCAuc3dpdGNoLWNhcmQ6aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmZDk7Ym9yZGVyLWNvbG9yOiM3ZDViMzkyZTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgNHB4IDEycHggIzdkNWIzOTBmfS5zZXR0aW5ncy1tb2RhbCAuc3dpdGNoLWNhcmQ6aGFzKC5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQpe2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmN2VmLCNmZmYxZGUpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAwIDAgMXB4IHZhcigtLWFjY2VudC1tdXRlZCksMCA0cHggMTJweCAjYzU2NTNkMWF9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy10b2dnbGUtcm93LC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtcmFuZ2Utcm93e2JhY2tncm91bmQ6I2ZmZmZmZjhjO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA4KTtib3JkZXItcmFkaXVzOjEycHg7Ym94LXNoYWRvdzowIDFweCAxcHggIzdkNWIzOTA1O2JhY2tkcm9wLWZpbHRlcjpub25lOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOm5vbmV9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1jYXJkLWljb24sLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1zZWN0aW9uLWljb257YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNjNTY1M2QyOSwjYzU2NTNkMGYpO2JvcmRlcjoxcHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4xOCk7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmOTtjb2xvcjp2YXIoLS1hY2NlbnQpfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtYXBwLWljb24tb3B0aW9ue2JhY2tncm91bmQ6I2ZmZmZmZmE2O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEpO2JvcmRlci1yYWRpdXM6MTRweDtib3gtc2hhZG93OjAgMXB4IDJweCAjN2Q1YjM5MDg7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxib3JkZXItY29sb3IgLjE2cyBlYXNlLGJveC1zaGFkb3cgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMTZzIGVhc2U7YmFja2Ryb3AtZmlsdGVyOm5vbmU7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6bm9uZX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbjpob3ZlcntiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLWNvbG9yOiM3ZDViMzkzMzt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgNHB4IDEycHggIzdkNWIzOTE0fS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uLnNlbGVjdGVkLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uW2FyaWEtcHJlc3NlZD10cnVlXXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZjdlZiwjZmZmMWRlKTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMCAwIDNweCB2YXIoLS1hY2NlbnQtbXV0ZWQpLDAgNHB4IDEycHggI2M1NjUzZDFmfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtY29ubmVjdC11cmwtYm94e2JhY2tncm91bmQ6IzdkNWIzOTBkO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEyKTtib3JkZXItcmFkaXVzOjEycHh9LnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1hY3Rpb25zLXN0aWNreXtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmNmNzAwLCNmZmZjZjdkOSAyOHB4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cig4cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoOHB4KX0uc2V0dGluZ3MtbW9kYWwgLnNldHRpbmdzLXNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzouMDA1ZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsuc2Vzc2lvbi1tb2RhbCAubW9kYWwtaGVhZGVyLC5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtbW9kYWwtaGVhZGVye3BhZGRpbmc6MTZweCAxOHB4IDE0cHh9LnNlc3Npb24tbW9kYWwgLm1vZGFsLWJvZHksLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC1ib2R5e3BhZGRpbmc6MTRweCAxOHB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1mb290ZXJ7cGFkZGluZzoxMnB4IDE4cHggMThweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtdGl0bGUsLnNldHRpbmdzLW1vZGFsIC5zZXR0aW5ncy1tb2RhbC10aXRsZS1ncm91cCAubW9kYWwtdGl0bGV7Zm9udC1zaXplOjEuMTI1cmVtfS5zZXR0aW5ncy1tb2RhbCAuc2V0dGluZ3MtcGFuZWwtdGl0bGV7Zm9udC1zaXplOjEuMDYyNXJlbX19LnNpZGViYXJ7YmFja2dyb3VuZDojZmZmY2Y3Yjg7Ym9yZGVyLXJpZ2h0Oi41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNTUpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDM2cHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMzZweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzowIDAgMCAuNXB4ICM3ZDViMzkwZiw0cHggMCAzMnB4IC04cHggIzE0MGUwODJlfS5zaWRlYmFyLm9wZW57Ym94LXNoYWRvdzowIDAgMCAuNXB4ICM3ZDViMzkwZiwxMnB4IDAgNDhweCAtMTJweCAjMTQwZTA4NDd9LnNpZGViYXIucGlubmVke2JveC1zaGFkb3c6MCAwIDAgLjVweCAjN2Q1YjM5MGYsMnB4IDAgMTJweCAtOHB4ICMxNDBlMDgxZn0uZHJhd2VyLWJhY2tkcm9we2JhY2tncm91bmQ6IzE0MGUwODUyO2JhY2tkcm9wLWZpbHRlcjpibHVyKDEycHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCl9LmRyYXdlci1iYWNrZHJvcC5vcGVue2JhY2tkcm9wLWZpbHRlcjpibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMThweCkgc2F0dXJhdGUoMTQwJSl9LnNpZGViYXItaGVhZGVye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjA2KTtwYWRkaW5nOjE0cHggMTZweH0uc2lkZWJhci10aXRsZXtmb250LXNpemU6LjkzNzVyZW07Zm9udC13ZWlnaHQ6NzAwO2xldHRlci1zcGFjaW5nOi0uMDEyZW07Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uc2Vzc2lvbi1jb3VudHtiYWNrZ3JvdW5kOiM3ZDViMzkxNDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7cGFkZGluZzoycHggOXB4O2JvcmRlci1yYWRpdXM6OTk5cHg7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7bGluZS1oZWlnaHQ6MS41fS5zaWRlYmFyLWhlYWRlci1hY3Rpb25zIC5idG4tZ2hvc3QuYnRuLXNtLC5kcmF3ZXItY2xvc2UtYnRue3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7bWluLXdpZHRoOjMycHg7bWluLWhlaWdodDozMnB4O3BhZGRpbmc6MDtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7Ym9yZGVyOm5vbmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxjb2xvciAuMTZzIGVhc2UsdHJhbnNmb3JtIC4yMnMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpfS5zaWRlYmFyLWhlYWRlci1hY3Rpb25zIC5idG4tZ2hvc3QuYnRuLXNtOmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTE0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LmRyYXdlci1jbG9zZS1idG57YmFja2dyb3VuZDojN2Q1YjM5MTJ9LmRyYXdlci1jbG9zZS1idG46aG92ZXJ7YmFja2dyb3VuZDojYjI0ZjQ1MWY7Y29sb3I6dmFyKC0tZGFuZ2VyKTt0cmFuc2Zvcm06cm90YXRlKDkwZGVnKX0uZHJhd2VyLWNsb3NlLWJ0bjphY3RpdmV7YmFja2dyb3VuZDojYjI0ZjQ1MzM7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZykgc2NhbGUoLjkyKTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wNnN9LmRyYXdlci1jbG9zZS1idG46Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjNweH0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3d7YmFja2dyb3VuZDojZmZmY2Y3ZGI7Ym9yZGVyOi41cHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuNTUpO2JhY2tkcm9wLWZpbHRlcjpibHVyKDI0cHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMjRweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzowIDAgMCAuNXB4ICM3ZDViMzkxNCwwIDEycHggMjhweCAtOHB4ICMxNDBlMDgzODtib3JkZXItcmFkaXVzOjEycHg7cGFkZGluZzo2cHh9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVte2JvcmRlci1yYWRpdXM6OXB4O3BhZGRpbmc6OXB4IDEwcHg7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjUwMDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGNvbG9yIC4xNnMgZWFzZSxib3gtc2hhZG93IC4xOHMgZWFzZSx0cmFuc2Zvcm0gLjE4cyB2YXIoLS1lYXNlLW91dC1leHBvKX0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3cgLm92ZXJmbG93LWl0ZW06aG92ZXJ7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZmZmZlNiwjZmZmY2Y3OTkpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym94LXNoYWRvdzowIDAgMCAuNXB4ICM3ZDViMzkxNCxpbnNldCAwIDFweCAjZmZmZmZmZDl9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVtOmFjdGl2ZXtiYWNrZ3JvdW5kOiNjNTY1M2QxZjtjb2xvcjp2YXIoLS1hY2NlbnQpO3RyYW5zZm9ybTpzY2FsZSguOTgpfS5zZXNzaW9uLW1hbmFnZS1iYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6OHB4O3BhZGRpbmc6NHB4IDRweCA0cHggMTBweDtib3JkZXItcmFkaXVzOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZX0uc2Vzc2lvbi1tYW5hZ2UtYmFyOmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTBkfS5zZXNzaW9uLW1hbmFnZS1iYXIgLnNpZGViYXItaW50cm97Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsZXR0ZXItc3BhY2luZzouMDA1ZW19LnNlc3Npb24tbWFuYWdlLWJhci5hY3RpdmV7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6NjttYXJnaW46LTEwcHggLTEwcHggOHB4O3BhZGRpbmc6OXB4IDEwcHggOXB4IDZweDtib3JkZXItcmFkaXVzOjA7YmFja2dyb3VuZDojZmZmYmY1ZjA7LXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6c2F0dXJhdGUoMS4yKSBibHVyKDhweCk7YmFja2Ryb3AtZmlsdGVyOnNhdHVyYXRlKDEuMikgYmx1cig4cHgpO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JveC1zaGFkb3c6bm9uZX0uc2Vzc2lvbi1tYW5hZ2UtYmFyLmFjdGl2ZTpob3ZlcntiYWNrZ3JvdW5kOiNmZmZiZjVmMH0uc2Vzc2lvbi1tYW5hZ2UtZXhpdHtmbGV4LXNocmluazowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtwYWRkaW5nOjA7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE0cyBlYXNlLGNvbG9yIC4xNHMgZWFzZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnR9LnNlc3Npb24tbWFuYWdlLWV4aXQ6aG92ZXJ7YmFja2dyb3VuZDojN2Q1YjM5MWE7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uc2Vzc2lvbi1tYW5hZ2Utc3VtbWFyeXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O21pbi13aWR0aDowO2ZsZXg6MTtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXdlaWdodDo1MDB9LnNlc3Npb24tbWFuYWdlLWNvdW50e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7bWluLXdpZHRoOjIwcHg7aGVpZ2h0OjE4cHg7cGFkZGluZzowIDZweDtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tdGV4dC1pbnZlcnNlKTtmb250LXNpemU6LjY4NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2JvcmRlci1yYWRpdXM6OTk5cHg7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfS5zZXNzaW9uLW1hbmFnZS1zdW1tYXJ5LWxhYmVse2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXdlaWdodDo2MDB9LnNlc3Npb24tbWFuYWdlLXN1bW1hcnktbGFiZWwubXV0ZWR7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC13ZWlnaHQ6NTAwfS5zZXNzaW9uLW1hbmFnZS1hY3Rpb25ze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtmbGV4LXNocmluazowfS5zZXNzaW9uLW1hbmFnZS10b2dnbGV7Z2FwOjVweH0uY2xhdWRlLWhpc3RvcnktZGlyZWN0b3J5LWNsZWFyLWJ0bnttYXJnaW4tbGVmdDphdXRvfS5zZXNzaW9uLWdyb3VwLXRpdGxle3BhZGRpbmc6MTBweCA2cHggOHB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LjFlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc2Vzc2lvbi1ncm91cC10aXRsZTpiZWZvcmV7d2lkdGg6M3B4O2hlaWdodDoxMnB4O2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWFjY2VudCkscmdiYSgxOTcsMTAxLDYxLC40KSk7b3BhY2l0eToxfS5zZXNzaW9uLWl0ZW17YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MTFweDtwYWRkaW5nOjlweCAxMnB4O21hcmdpbi1ib3R0b206MnB4O2JveC1zaGFkb3c6bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE2cyBlYXNlLGJvcmRlci1jb2xvciAuMTZzIGVhc2V9LnNlc3Npb24taXRlbTpiZWZvcmV7bGVmdDo0cHg7dG9wOjlweDtib3R0b206OXB4O3dpZHRoOjNweDtib3JkZXItcmFkaXVzOjJweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50KSxyZ2JhKDE5NywxMDEsNjEsLjUpKX0uc2Vzc2lvbi1pdGVtOmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTBmO2JvcmRlci1jb2xvcjp0cmFuc3BhcmVudH0uc2Vzc2lvbi1pdGVtOmhvdmVyOmJlZm9yZXtvcGFjaXR5OjB9LnNlc3Npb24taXRlbS5hY3RpdmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjdlYiwjZmZmNGU4YmQpO2JvcmRlci1jb2xvcjojYzU2NTNkNDc7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmZmZmOGN9LnNlc3Npb24taXRlbS5hY3RpdmU6YmVmb3Jle29wYWNpdHk6MTt0cmFuc2Zvcm06c2NhbGVZKDEpfS5zZXNzaW9uLWl0ZW0uc2VsZWN0ZWR7YmFja2dyb3VuZDojYzU2NTNkMTc7Ym9yZGVyLWNvbG9yOiNjNTY1M2QyZX0uc2Vzc2lvbi1pdGVtLnNlbGVjdGVkOmJlZm9yZXtvcGFjaXR5Oi43O3RyYW5zZm9ybTpzY2FsZVkoMSl9LnNlc3Npb24taXRlbTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45OTIpO3RyYW5zaXRpb24tZHVyYXRpb246LjA4c30uc2Vzc2lvbi10aXRsZSwuc2Vzc2lvbi1jb21tYW5ke2ZvbnQtc2l6ZTouODEyNXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LS4wMDVlbX0uc2Vzc2lvbi10aXRsZS1yb3d7Z2FwOjEwcHh9LnNlc3Npb24tdGltZXtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfS5zZXNzaW9uLWFjdGl2aXR5e29wYWNpdHk6MTtjb2xvcjp2YXIoLS1hY2NlbnQpO2ZvbnQtd2VpZ2h0OjUwMH0uc2Vzc2lvbi1zdGF0dXN7cGFkZGluZzoycHggOHB4O2ZvbnQtc2l6ZTouNjI1cmVtO2ZvbnQtd2VpZ2h0OjcwMDtsZXR0ZXItc3BhY2luZzouMDJlbX0uc2Vzc2lvbi1pZHtiYWNrZ3JvdW5kOiM3ZDViMzkxNDtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtmb250LXNpemU6LjYyNXJlbTtwYWRkaW5nOjEuNXB4IDZweDtib3JkZXItcmFkaXVzOjRweH0uc2Vzc2lvbi1hY3Rpb24tYnRue3dpZHRoOjI4cHg7aGVpZ2h0OjI4cHg7bWluLXdpZHRoOjI4cHg7bWluLWhlaWdodDoyOHB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzdkNWIzOTBmO2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2JvcmRlcjpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTZzIGVhc2UsY29sb3IgLjE2cyBlYXNlLHRyYW5zZm9ybSAuMThzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKX0uc2Vzc2lvbi1hY3Rpb24tYnRuOmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTI0O2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9LnNlc3Npb24tYWN0aW9uLWJ0bi5kZWxldGUtYnRuOmhvdmVye2JhY2tncm91bmQ6I2IyNGY0NTI0O2NvbG9yOnZhcigtLWRhbmdlcil9LnNlc3Npb24tYWN0aW9uLWJ0bi5tZXJnZS1idG46aG92ZXJ7YmFja2dyb3VuZDojNGY3YTU4Mjk7Y29sb3I6dmFyKC0tc3VjY2Vzcyl9LnNlc3Npb24tYWN0aW9uLWJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45KTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wNnN9LnNlc3Npb24tYWN0aW9uLWJ0bjpmb2N1cy12aXNpYmxle291dGxpbmU6MnB4IHNvbGlkIHZhcigtLWFjY2VudCk7b3V0bGluZS1vZmZzZXQ6MnB4fS5zZXNzaW9uLW1hbmFnZS1jaGVjayBzcGFue3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Ym9yZGVyLXJhZGl1czo2cHg7Ym9yZGVyOjEuNXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4yMik7YmFja2dyb3VuZDojZmZmOTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCAjN2Q1YjM5MGE7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxib3JkZXItY29sb3IgLjE2cyBlYXNlLGJveC1zaGFkb3cgLjE2cyBlYXNlfS5zZXNzaW9uLW1hbmFnZS1jaGVjayBpbnB1dDpjaGVja2VkK3NwYW57YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6MCAxcHggM3B4ICNjNTY1M2Q0ZCxpbnNldCAwIDFweCAjZmZmM30uc2Vzc2lvbi1tYW5hZ2UtY2hlY2sgaW5wdXQ6Y2hlY2tlZCtzcGFuOmFmdGVye2NvbnRlbnQ6IiI7d2lkdGg6NnB4O2hlaWdodDoxMHB4O2JvcmRlci1yaWdodDoycHggc29saWQgI2ZmZjtib3JkZXItYm90dG9tOjJweCBzb2xpZCAjZmZmO3RyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgtMXB4LC0xcHgpfS5zaWRlYmFyLWZvb3RlcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlci10b3A6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4wNik7cGFkZGluZzoxNHB4fS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG57YmFja2dyb3VuZDojZmZmZmZmNzM7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMDYpO2JvcmRlci1yYWRpdXM6MTBweDtwYWRkaW5nOjhweCA0cHg7Z2FwOjRweDtmb250LXNpemU6LjYyNXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAxZW07Y29sb3I6dmFyKC0tdGV4dC10ZXJ0aWFyeSk7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4xNnMgZWFzZSxib3JkZXItY29sb3IgLjE2cyBlYXNlLGNvbG9yIC4xNnMgZWFzZSx0cmFuc2Zvcm0gLjE2cyBlYXNlLGJveC1zaGFkb3cgLjE2cyBlYXNlfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG46aG92ZXJ7YmFja2dyb3VuZDojZmZmZmZmZDk7Ym9yZGVyLWNvbG9yOiM3ZDViMzkyOTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCAycHggOHB4ICM3ZDViMzkwZn0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuOmFjdGl2ZXt0cmFuc2Zvcm06c2NhbGUoLjk2KTt0cmFuc2l0aW9uLWR1cmF0aW9uOi4wNnN9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bi5hY3RpdmV7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmZjZjdmMiwjZmZmMmU0YzcpO2JvcmRlcjoxcHggc29saWQgcmdiYSgxOTcsMTAxLDYxLC4yOCk7Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNnB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE2cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6MCAzcHggMTBweCAtM3B4ICNjNTY1M2QzOCxpbnNldCAwIDFweCAjZmZmZmZmYjN9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bi5zaWRlYmFyLWxvZ291dDpob3ZlcntiYWNrZ3JvdW5kOiNiMjRmNDUxNDtib3JkZXItY29sb3I6I2IyNGY0NTMzO2NvbG9yOnZhcigtLWRhbmdlcik7b3BhY2l0eToxfS5zaWRlYmFyLWZvb3RlciAuYnRuLXByaW1hcnl7Ym94LXNoYWRvdzowIDZweCAxNnB4IC00cHggI2M1NjUzZDY2LDAgMnB4IDZweCAtMnB4ICNjNTY1M2Q0ZCxpbnNldCAwIDFweCAjZmZmMztib3JkZXItcmFkaXVzOjEycHh9LnNpZGViYXItZm9vdGVyIC5idG4tcHJpbWFyeTpob3Zlcntib3gtc2hhZG93OjAgMTBweCAyNHB4IC00cHggI2M1NjUzZDc1LDAgNHB4IDEwcHggLTJweCAjYzU2NTNkNTcsaW5zZXQgMCAxcHggI2ZmZmZmZjQwfS5zZXNzaW9ucy1saXN0OmVtcHR5OmJlZm9yZXtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjgxMjVyZW07bGV0dGVyLXNwYWNpbmc6LjAxZW19QHN1cHBvcnRzIG5vdCAoKGJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSBvciAoLXdlYmtpdC1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoMXB4KSkpey5zaWRlYmFye2JhY2tncm91bmQ6I2ZmZmJmNWZhfS5kcmF3ZXItYmFja2Ryb3B7YmFja2dyb3VuZDojMTQwZTA4OGN9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93e2JhY2tncm91bmQ6I2ZmZmFmMn19Lm1vZGFsLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO3BhZGRpbmc6MThweCAyMnB4IDE2cHg7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7ZmxleC1zaHJpbms6MDttaW4taGVpZ2h0OjU2cHh9Lm1vZGFsLXRpdGxle2ZvbnQtc2l6ZToxLjA2MjVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LS4wMWVtfS5tb2RhbC1ib2R5e3BhZGRpbmc6MjJweDtvdmVyZmxvdy15OmF1dG87ZmxleDoxIDEgYXV0bzttaW4taGVpZ2h0OjB9Lm1vZGFsLWJvZHkgLmZpZWxke21hcmdpbi1ib3R0b206MTRweH0ubW9kYWwtYm9keSAuZmllbGQ6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206MTZweH0uc2Vzc2lvbi1raW5kLWhpbnQtcm93e2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47Z2FwOjEycHh9LnNlc3Npb24ta2luZC1oaW50LXJvdyAjc2Vzc2lvbi1raW5kLWRlc2NyaXB0aW9ue2ZsZXg6MSAxIGF1dG99LnNlc3Npb24taW5saW5lLXRvZ2dsZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3doaXRlLXNwYWNlOm5vd3JhcDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZX0uc2Vzc2lvbi1pbmxpbmUtdG9nZ2xlLWxhYmVse2ZvbnQtc2l6ZTouNzVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0uZmllbGQtaGludHttYXJnaW4tdG9wOjZweDtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNX0udG9vbC1jYXJke3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpsZWZ0O2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjIpO2JvcmRlci1yYWRpdXM6MTRweDtiYWNrZ3JvdW5kOiNmZmZmZmZhNjtwYWRkaW5nOjE0cHg7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxib3gtc2hhZG93IHZhcigtLXRyYW5zaXRpb24tZmFzdCksdHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS50b29sLWNhcmQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudC1zb2Z0KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtib3gtc2hhZG93OjAgOHB4IDI0cHggIzU5M2EyMDFhO2JhY2tncm91bmQ6I2ZmZmZmZmQ5fS50b29sLWNhcmQuYWN0aXZle2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6I2ZmZjdlZmZhO2JveC1zaGFkb3c6MCAwIDAgMnB4IHZhcigtLWFjY2VudC1tdXRlZCksMCA2cHggMjBweCAjNTkzYTIwMTR9c2VsZWN0LmZpZWxkLWlucHV0e2FwcGVhcmFuY2U6bm9uZTstd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNCcgaGVpZ2h0PScxNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzhjNzM1Zicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDcGF0aCBkPSdNNiA5bDYgNiA2LTYnLyUzRSUzQy9zdmclM0UiKTtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7YmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAxNHB4IGNlbnRlcjtwYWRkaW5nLXJpZ2h0OjQwcHg7Y3Vyc29yOnBvaW50ZXJ9LnN1Z2dlc3Rpb25zLXdyYXB7cG9zaXRpb246cmVsYXRpdmV9LnN1Z2dlc3Rpb25ze3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDEwMCUgKyA0cHgpO2xlZnQ6MDtyaWdodDowO3otaW5kZXg6NTA7YmFja2dyb3VuZDojZmZmYWY0ZmE7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbWQpO21heC1oZWlnaHQ6MjAwcHg7b3ZlcmZsb3cteTphdXRvfS5zdWdnZXN0aW9uLWl0ZW17d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmxlZnQ7cGFkZGluZzoxMHB4IDEycHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2N1cnNvcjpwb2ludGVyO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOi44MTI1cmVtO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5zdWdnZXN0aW9uLWl0ZW06aG92ZXJ7YmFja2dyb3VuZDojZThjNWFlNTd9LnN1Z2dlc3Rpb24taXRlbSBzbWFsbHtkaXNwbGF5OmJsb2NrO2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjJweH0ucmVjZW50LXBhdGhzLWJ1YmJsZXN7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo1cHg7bWFyZ2luLXRvcDo2cHh9LnJlY2VudC1wYXRocy1idWJibGVzOmVtcHR5e2Rpc3BsYXk6bm9uZX0ucmVjZW50LXBhdGgtYnViYmxle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MnB4IDEwcHg7YmFja2dyb3VuZDojZThjNWFlMmU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czo5OTlweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjY4NzVyZW07Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYm9yZGVyLWNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7d2hpdGUtc3BhY2U6bm93cmFwO21heC13aWR0aDoxODBweDtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30ucmVjZW50LXBhdGgtYnViYmxlOmhvdmVye2JhY2tncm91bmQ6I2U4YzVhZTY2O2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItaG92ZXIsIHZhcigtLWJvcmRlci1kZWZhdWx0KSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0uZXJyb3ItbWVzc2FnZXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLWRhbmdlcik7cGFkZGluZzoxMHB4IDEycHg7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTttYXJnaW4tdG9wOjEycHg7YW5pbWF0aW9uOnNoYWtlIC4zcyBlYXNlfUBrZXlmcmFtZXMgc2hha2V7MCUsdG97dHJhbnNmb3JtOnRyYW5zbGF0ZSgwKX0yNSV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNHB4KX03NSV7dHJhbnNmb3JtOnRyYW5zbGF0ZSg0cHgpfX0uZmllbGQtaW5wdXRbZGF0YS1lcnJvcj10cnVlXXtib3JkZXItY29sb3I6dmFyKC0tZGFuZ2VyKTtib3gtc2hhZG93OjAgMCAwIDNweCB2YXIoLS1kYW5nZXItbXV0ZWQpfS5oaW50e2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTttYXJnaW4tdG9wOjEycHh9LmVtcHR5LXN0YXRle3RleHQtYWxpZ246Y2VudGVyO3BhZGRpbmc6NDBweCAyMHB4O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouODEyNXJlbX0uZW1wdHktc3RhdGUgc3Ryb25ne2Rpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouOTVyZW07bWFyZ2luLWJvdHRvbTo4cHg7Zm9udC13ZWlnaHQ6NjAwfS5oaWRkZW57ZGlzcGxheTpub25lIWltcG9ydGFudH0ub2ZmbGluZS1iYW5uZXJ7cG9zaXRpb246Zml4ZWQ7Ym90dG9tOjgwcHg7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTtiYWNrZ3JvdW5kOnZhcigtLXdhcm5pbmcpO2NvbG9yOiNmZmY7cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjUwMDt6LWluZGV4OjEwMDtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1lbGV2YXRlZCk7YW5pbWF0aW9uOnNsaWRlVXAgLjNzIGVhc2V9QGtleWZyYW1lcyBzbGlkZVVwezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoMjBweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSkgdHJhbnNsYXRlWSgwKX19Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo2cHg7aGVpZ2h0OjZweH06Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM5Njc2NTU0ZDtib3JkZXItcmFkaXVzOjNweH06Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6Izk2NzY1NTgwfS5zZXNzaW9ucy1saXN0Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo0cHh9LnNlc3Npb25zLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LnNlc3Npb25zLWxpc3Q6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6Izk2NzY1NTQwO2JvcmRlci1yYWRpdXM6MnB4fS5zZXNzaW9ucy1saXN0Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTU2Nn06Zm9jdXMtdmlzaWJsZXtvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH1idXR0b246Zm9jdXMtdmlzaWJsZXtvdXRsaW5lLW9mZnNldDowfUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5zaWRlYmFyLnBpbm5lZDpub3QoLmNvbGxhcHNlZCk6bm90KC5vcGVuKXt0cmFuc2Zvcm06dHJhbnNsYXRlKC0xMDAlKTtwb2ludGVyLWV2ZW50czpub25lO29wYWNpdHk6MH0ubWFpbi1sYXlvdXQuc2lkZWJhci1waW5uZWQ6bm90KC5zaWRlYmFyLWNvbGxhcHNlZCl7cGFkZGluZy1sZWZ0OjB9LmFwcC1jb250YWluZXJ7LS1sYXlvdXQtbWFpbi1maWxlLXBhbmVsLXdpZHRoOiAwcHh9LnNpZGViYXJ7d2lkdGg6bWluKDMwMHB4LGNhbGMoMTAwdncgLSAyMHB4KSk7dG9wOjB9LnRlcm1pbmFsLWNvbnRhaW5lcnttYXJnaW46MCA2cHggNnB4O21pbi1oZWlnaHQ6MH0uYnRue21pbi1oZWlnaHQ6NDBweH0uYnRuLXNte21pbi1oZWlnaHQ6MzZweDtwYWRkaW5nOjAgMTBweDtmb250LXNpemU6Ljc1cmVtO2hlaWdodDozNnB4fS5idG4taWNvbnt3aWR0aDozNnB4O2hlaWdodDozNnB4O21pbi1oZWlnaHQ6MzZweH0uY2hhdC1jb250YWluZXJ7cGFkZGluZzowIDEycHggMTJweH0uY2hhdC1tZXNzYWdle21heC13aWR0aDoxMDAlfS5zZXNzaW9uLWl0ZW17bWluLWhlaWdodDo1MnB4O3BhZGRpbmc6MTJweH0uc2Vzc2lvbi1hY3Rpb24tYnRue3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7bWluLXdpZHRoOjM2cHg7bWluLWhlaWdodDozNnB4fS5zZXNzaW9uLW1hbmFnZS1iYXIgLmJ0bnttaW4taGVpZ2h0OjMycHh9LmNsYXVkZS1oaXN0b3J5LXRvZ2dsZXttaW4taGVpZ2h0OjQwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcn0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRue21pbi1oZWlnaHQ6NDRweH0udHJlZS1pdGVte21pbi1oZWlnaHQ6NDRweDtwYWRkaW5nOjhweCAxMnB4fS5mb2xkZXItcGlja2VyLWl0ZW17bWluLWhlaWdodDo0NHB4fX1AbWVkaWEobWluLXdpZHRoOjc2OXB4KXsuZHJhd2VyLWJhY2tkcm9we2Rpc3BsYXk6bm9uZX19QG1lZGlhKG1heC13aWR0aDo2NDBweCl7OnJvb3R7LS1zaWRlYmFyLXdpZHRoOiAyODBweDstLWZpbGUtcGFuZWwtd2lkdGg6IDEwMCV9LmFwcC1jb250YWluZXJ7LS1sYXlvdXQtbWFpbi1maWxlLXBhbmVsLXdpZHRoOiAwcHh9aHRtbCxib2R5e21pbi1oZWlnaHQ6MTAwZHZoO2hlaWdodDoxMDBkdmh9Ym9keXtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6dG91Y2h9LmFwcC1jb250YWluZXJ7b3ZlcmZsb3c6aGlkZGVufS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZXt3aWR0aDozMHB4O2hlaWdodDozMHB4O2JvcmRlci1yYWRpdXM6NnB4fS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZSAuaGFtYnVyZ2VyLWljb257d2lkdGg6MTNweDtoZWlnaHQ6OXB4fS5zaWRlYmFye3RvcDowfS5zaWRlYmFyLWhlYWRlcntwYWRkaW5nOjEwcHggMTJweDttaW4taGVpZ2h0OjQ4cHg7Z2FwOjhweH0uc2lkZWJhci1oZWFkZXItYWN0aW9uc3tnYXA6NHB4fS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25ze2dyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoNCwxZnIpO2dhcDo0cHh9LnNpZGViYXItZm9vdGVyLWFjdGlvbnM6aGFzKC5zaWRlYmFyLWJhY2stdG8tbmF0aXZlKTpoYXMoLnNpZGViYXItc3dpdGNoLXNlcnZlcil7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCg1LDFmcil9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0bnttaW4taGVpZ2h0OjQwcHg7cGFkZGluZzo2cHggNHB4fS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG4gc3BhbntkaXNwbGF5Om5vbmV9LnNpZGViYXItZm9vdGVyLWFjdGlvbnMgLmJ0biBzdmd7d2lkdGg6MThweDtoZWlnaHQ6MThweH0uc2lkZWJhci1oZWFkZXItb3ZlcmZsb3d7bWluLXdpZHRoOjE4MHB4O21heC13aWR0aDpjYWxjKDEwMHZ3IC0gMjRweCl9LnNpZGViYXItaGVhZGVyLW92ZXJmbG93IC5vdmVyZmxvdy1pdGVte3BhZGRpbmc6MTFweCAxNHB4O2ZvbnQtc2l6ZTouODc1cmVtfS50ZXJtaW5hbC1oZWFkZXJ7cGFkZGluZzo1cHggOHB4O21pbi1oZWlnaHQ6MzJweH0udGVybWluYWwtdGl0bGV7Z2FwOjRweDtmb250LXNpemU6LjY4NzVyZW19LnRlcm1pbmFsLWluZm97Zm9udC1zaXplOi41NjI1cmVtfS5jdXJyZW50LXRhc2t7Zm9udC1zaXplOi41NjI1cmVtO3BhZGRpbmc6MXB4IDZweCAxcHggNHB4O2dhcDozcHh9Lm1haW4taGVhZGVyLXJvd3twYWRkaW5nOjJweCA2cHg7Z2FwOjRweH0udG9wYmFyLWJyYW5kLC50b3BiYXItY3dke2Rpc3BsYXk6bm9uZX0udG9wYmFyLXNlc3Npb24tdGl0bGV7bWF4LXdpZHRoOjE0MHB4O2ZvbnQtc2l6ZTouNzhyZW19LnNlc3Npb24tc3RhdHVzLXBpbGx7Zm9udC1zaXplOi42MjVyZW07cGFkZGluZzoxcHggN3B4IDFweCA1cHg7bWF4LXdpZHRoOjExMHB4fS5zZXNzaW9uLXN0YXR1cy1waWxsIC5zZXNzaW9uLXN0YXR1cy1kb3R7d2lkdGg6NXB4O2hlaWdodDo1cHh9LnRvcGJhci1tb3JlLW1lbnV7bWluLXdpZHRoOjE1NnB4fS50ZXJtaW5hbC1zY2FsZS1vdmVybGF5e3RvcDo2cHg7cmlnaHQ6NnB4O3BhZGRpbmc6MnB4O2dhcDoxcHh9LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXktYnRue21pbi13aWR0aDoyNnB4O2hlaWdodDoyNnB4O2ZvbnQtc2l6ZTouNzVyZW19LnRlcm1pbmFsLXNjYWxlLW92ZXJsYXktbGFiZWx7bWluLXdpZHRoOjI4cHg7Zm9udC1zaXplOi41NjI1cmVtO3BhZGRpbmc6MCAycHh9Lm1haW4tbGF5b3V0e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtmbGV4OjE7bWluLWhlaWdodDowO2hlaWdodDoxMDAlO292ZXJmbG93OmhpZGRlbjtwYWRkaW5nLWxlZnQ6MH0uc2lkZWJhcnt0b3A6MDt3aWR0aDptaW4oMjYwcHgsY2FsYygxMDB2dyAtIDEycHgpKTttYXgtaGVpZ2h0Om5vbmU7Ym9yZGVyLWJvdHRvbTpub25lfS5tYWluLWNvbnRlbnR7ZmxleDoxO21pbi1oZWlnaHQ6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO292ZXJmbG93OmhpZGRlbn0udGVybWluYWwtY29udGFpbmVye2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO21heC1oZWlnaHQ6bm9uZX0uc2Vzc2lvbnMtbGlzdHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXg6MSAwIGF1dG87bWluLWhlaWdodDowO292ZXJmbG93OnZpc2libGU7cGFkZGluZzo0cHh9LnNlc3Npb24taXRlbXt3aWR0aDoxMDAlO21heC13aWR0aDpub25lO21hcmdpbi1ib3R0b206NHB4O3BhZGRpbmc6OHB4IDEwcHg7bWluLWhlaWdodDo0NHB4O2JvcmRlci1yYWRpdXM6NnB4fS5zZXNzaW9uLWFjdGlvbi1idG57d2lkdGg6MzJweDtoZWlnaHQ6MzJweDttaW4taGVpZ2h0OjMycHg7bWluLXdpZHRoOjMycHg7Ym9yZGVyLXJhZGl1czo2cHh9LmlucHV0LXBhbmVse3otaW5kZXg6MzA7cGFkZGluZzo0cHggNnB4O3BhZGRpbmctYm90dG9tOmNhbGMoNnB4ICsgdmFyKC0taW5wdXQtc2FmZS1ib3R0b20sIHZhcigtLXNhZmUtYm90dG9tLCAwcHgpKSArIHZhcigtLWtleWJvYXJkLW9mZnNldCwgMHB4KSk7ZmxleDowIDAgYXV0bzttYXJnaW4tdG9wOmF1dG87YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmNmYxZTg4MCwjZjZmMWU4ZTAgMzAlLCNmNmYxZTgpLCNmNmYxZTg7YmFja2Ryb3AtZmlsdGVyOmJsdXIoMTJweCl9LmlucHV0LXRleHRhcmVhe3BhZGRpbmctYm90dG9tOjRweH0uaW5wdXQtY29tcG9zZXJ7Ym9yZGVyLXJhZGl1czoxNHB4O2JveC1zaGFkb3c6MCAzcHggMTRweCAjNTkzYTIwMTJ9LmJ0bi1jaXJjbGV7d2lkdGg6MjZweDtoZWlnaHQ6MjZweDtib3JkZXItcmFkaXVzOjUwJX0uYnRuLWNpcmNsZS1zZW5kIHN2ZywuYnRuLWNpcmNsZS1zdG9wIHN2Z3t3aWR0aDoxMnB4O2hlaWdodDoxMnB4fS5pbnB1dC10ZXh0YXJlYSwuZmllbGQtaW5wdXR7Zm9udC1zaXplOjE2cHh9LmlucHV0LXRleHRhcmVhe21pbi1oZWlnaHQ6MzJweDtwYWRkaW5nOjdweCAzMHB4IDVweCA4cHg7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MS4zNX0uaW5wdXQtdGV4dGFyZWE6OnBsYWNlaG9sZGVye2ZvbnQtc2l6ZToxNXB4fS5jaGF0LW1vZGUtc2VsZWN0e21heC13aWR0aDo2NXB4O2ZvbnQtc2l6ZTouNTYyNXJlbTtoZWlnaHQ6MjJweDttaW4taGVpZ2h0OjIycHg7cGFkZGluZzowIDE0cHggMCA0cHg7Ym9yZGVyLXJhZGl1czo1cHh9LmlucHV0LWhpbnR7Zm9udC1zaXplOi40NXJlbTttYXgtd2lkdGg6MThjaDtvcGFjaXR5Oi42fS50ZXJtaW5hbC1qdW1wLWJvdHRvbXt3aWR0aDozMnB4O2hlaWdodDozMnB4O3BhZGRpbmc6MDtyaWdodDoxMHB4O2JvdHRvbToxMnB4fS5jaGF0LXVucmVhZC1idWJibGV7aGVpZ2h0OjMwcHg7bWluLXdpZHRoOjMwcHg7cmlnaHQ6MTBweDtib3R0b206OHB4O3BhZGRpbmc6MCA5cHg7Zm9udC1zaXplOi43MnJlbX0uY2hhdC11bnJlYWQtYnViYmxlLmhhcy11bnJlYWR7cGFkZGluZzowIDExcHggMCA5cHh9LmNoYXQtdW5yZWFkLWJ1YmJsZS1jb3VudHtmb250LXNpemU6LjcycmVtfS5taW5pLWtleWJvYXJkLWZhYnt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JvdHRvbTo1MHB4O3JpZ2h0OjEwcHg7Zm9udC1zaXplOjFyZW19Lm1pbmkta2V5Ym9hcmR7Ym90dG9tOjUwcHg7cmlnaHQ6OHB4O2xlZnQ6OHB4O21pbi13aWR0aDowO2JvcmRlci1yYWRpdXM6MTBweH0uY2hhdC1jb250YWluZXJ7bWluLWhlaWdodDowO2ZsZXg6MSAxIGF1dG87b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6bm9uZTtmbGV4LWRpcmVjdGlvbjpjb2x1bW59LmNoYXQtY29udGFpbmVyLmFjdGl2ZXtkaXNwbGF5OmZsZXh9LmZvbGRlci1waWNrZXItY29udGFpbmVye21hcmdpbi1ib3R0b206NHB4fS5mb2xkZXItcGlja2VyLXF1aWNrLWJ0bnttaW4taGVpZ2h0OjMycHg7cGFkZGluZzo2cHggMTBweDtmb250LXNpemU6LjY4NzVyZW07Ym9yZGVyLXJhZGl1czo2cHh9LmZvbGRlci1icmVhZGNydW1ie3BhZGRpbmc6NHB4IDZweDtmb250LXNpemU6LjU2MjVyZW07bWFyZ2luLWJvdHRvbTozcHg7b3ZlcmZsb3cteDphdXRvOy13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4LXdyYXA6bm93cmFwfS5mb2xkZXItcGlja2Vye3BhZGRpbmc6OHB4IDEwcHg7bWluLWhlaWdodDozNnB4fS5mb2xkZXItcGlja2VyLWlucHV0e2ZvbnQtc2l6ZToxNnB4O3BhZGRpbmc6NnB4fS5mb2xkZXItcGlja2VyLWRyb3Bkb3due21heC1oZWlnaHQ6MTgwcHh9LmZvbGRlci1waWNrZXItaXRlbXtwYWRkaW5nOjhweCAxMHB4O21pbi1oZWlnaHQ6MzZweH0uZm9sZGVyLXJlY2VudC1pdGVte3BhZGRpbmc6NnB4IDEwcHg7bWluLWhlaWdodDozNnB4fS5mb2xkZXItcGlja2VyLWNvbXBhY3Qtcm93e3BhZGRpbmc6NnB4fS5mb2xkZXItcGlja2VyLWNvbXBhY3QtaW5wdXR7Zm9udC1zaXplOi42MjVyZW19LndvcmtpbmctZGlyLWluZGljYXRvcntmb250LXNpemU6LjU2MjVyZW07cGFkZGluZzoxcHggNHB4O21heC13aWR0aDoxMjBweH0udG9kby1wcm9ncmVzcy1oZWFkZXJ7cGFkZGluZzozcHggNnB4O2dhcDo0cHh9LnRvZG8tcHJvZ3Jlc3MtY291bnRlciwudG9kby1wcm9ncmVzcy10YXNre2ZvbnQtc2l6ZTouNTYyNXJlbX0udG9kby1wcm9ncmVzcy1jaGV2cm9ue3dpZHRoOjEycHg7aGVpZ2h0OjEycHh9LnRvZG8tcHJvZ3Jlc3MtYm9keXtwYWRkaW5nOjRweCA2cHh9LmxvZ2luLWNvbnRhaW5lcnttaW4taGVpZ2h0OjEwMGR2aDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3BhZGRpbmc6OHB4IDhweCBjYWxjKDhweCArIHZhcigtLXNhZmUtYm90dG9tLCAwcHgpKX0ubG9naW4tY2FyZHttYXJnaW4tdG9wOm1heCg2cHgsZW52KHNhZmUtYXJlYS1pbnNldC10b3AsMHB4KSl9LmxvZ2luLWhlYWRlcntwYWRkaW5nOjE0cHggMTJweCAxMHB4fS5sb2dpbi1ib2R5e3BhZGRpbmc6MTJweH0uYnRue21pbi1oZWlnaHQ6NDBweH0uYnRuLXNte21pbi1oZWlnaHQ6MzJweH0uY2hhdC1tZXNzYWdlLWJ1YmJsZXtwYWRkaW5nOjhweCAxMHB4O2ZvbnQtc2l6ZTouNzVyZW19LmNoYXQtbWVzc2FnZS1hdmF0YXJ7Zm9udC1zaXplOi42ODc1cmVtfS5tb2RhbC1iYWNrZHJvcHtwYWRkaW5nOjhweDtwYWRkaW5nLXRvcDptYXgoOHB4LHZhcigtLXdhbmQtc2FmZS10b3ApKTtwYWRkaW5nLWxlZnQ6bWF4KDhweCx2YXIoLS13YW5kLXNhZmUtbGVmdCkpO3BhZGRpbmctcmlnaHQ6bWF4KDhweCx2YXIoLS13YW5kLXNhZmUtcmlnaHQpKTthbGlnbi1pdGVtczpmbGV4LWVuZH0ubW9kYWx7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDo4NXZoO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKSB2YXIoLS1yYWRpdXMtbWQpIDAgMDttYXJnaW4tYm90dG9tOnZhcigtLXNhZmUtYm90dG9tLCAwcHgpfS5tb2RhbC1oZWFkZXJ7cGFkZGluZzoxMHB4IDEycHg7bWluLWhlaWdodDo0MHB4fS5tb2RhbC1ib2R5e3BhZGRpbmc6MTBweCAxMnB4fS5tb2RhbC1mb290ZXJ7cGFkZGluZzo4cHggMTJweH0uc2Vzc2lvbi1tb2RhbCAubW9kYWwtZm9vdGVye3BhZGRpbmc6MTBweCAxMnB4IDE0cHh9LnRvb2wtY2FyZHtwYWRkaW5nOjEwcHg7bWluLWhlaWdodDozNnB4fS5tYWluLWNvbnRlbnQuZmlsZS1wYW5lbC1vcGVue21hcmdpbi1yaWdodDowfS5maWxlLXNpZGUtcGFuZWx7d2lkdGg6MTAwJX0uZmlsZS1zaWRlLXBhbmVsLWhlYWRlcntwYWRkaW5nOjEwcHggMTJweDttaW4taGVpZ2h0OjQ4cHh9LmZpbGUtc2lkZS1wYW5lbC1pY29uYnRue3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHh9LmZpbGUtZXhwbG9yZXItaGVhZGVye3BhZGRpbmc6NnB4IDEwcHggNHB4O2dhcDo2cHh9LmZpbGUtZXhwbG9yZXItdXB7d2lkdGg6MzJweDtoZWlnaHQ6MzJweH0uZmlsZS1zZWFyY2gtYm94e3BhZGRpbmc6NnB4IDEwcHggOHB4fS5maWxlLXNlYXJjaC1pY29ue2xlZnQ6MjBweH0uZmlsZS1zZWFyY2gtY2xlYXJ7cmlnaHQ6MTZweH0uZmlsZS1zZWFyY2gtaW5wdXR7bWluLWhlaWdodDozNHB4O2ZvbnQtc2l6ZToxNnB4O3BhZGRpbmc6N3B4IDMycHggN3B4IDMwcHh9LmJsYW5rLWNoYXR7cGFkZGluZzoxNnB4IDEycHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uYmxhbmstY2hhdC1pbm5lcnttYXgtd2lkdGg6MTAwJX0uYmxhbmstY2hhdC1sb2dve3dpZHRoOjQ4cHg7aGVpZ2h0OjQ4cHg7Zm9udC1zaXplOjI0cHg7Ym9yZGVyLXJhZGl1czoxMnB4O21hcmdpbi1ib3R0b206MTBweH0uYmxhbmstY2hhdC10aXRsZXtmb250LXNpemU6MS4xMjVyZW19LmJsYW5rLWNoYXQtc3VidGl0bGV7Zm9udC1zaXplOi43NXJlbTttYXJnaW4tYm90dG9tOjE2cHh9LmJsYW5rLWNoYXQtdG9vbHN7Z2FwOjRweDttYXJnaW4tYm90dG9tOjhweH0uYmxhbmstY2hhdC10b29sLWJ0bntwYWRkaW5nOjZweCAxMHB4O2ZvbnQtc2l6ZTouNzVyZW07bWluLWhlaWdodDo0NHB4fS5ub3RpZmljYXRpb24tYnViYmxle21heC13aWR0aDpjYWxjKDEwMHZ3IC0gMjRweCl9LmJsYW5rLWNoYXQtY3dkLWRyb3Bkb3due21pbi13aWR0aDowO3dpZHRoOmNhbGMoMTAwdncgLSAzMnB4KTttYXgtd2lkdGg6MzIwcHh9LnRvYXN0LW1lc3NhZ2V7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAzMnB4KX19QG1lZGlhKG1pbi13aWR0aDozOTFweClhbmQgKG1heC13aWR0aDo0MjBweCl7LnRlcm1pbmFsLWNvbnRhaW5lcnttYXJnaW46MCA2cHggNnB4O3BhZGRpbmc6NnB4fS5pbnB1dC1wYW5lbHtwYWRkaW5nOjZweCAxMHB4O3BhZGRpbmctYm90dG9tOmNhbGMoOHB4ICsgdmFyKC0taW5wdXQtc2FmZS1ib3R0b20sIHZhcigtLXNhZmUtYm90dG9tLCAwcHgpKSl9fUBtZWRpYShtYXgtd2lkdGg6MzkwcHgpey5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZXt3aWR0aDoyOHB4O2hlaWdodDoyOHB4fS5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZSAuaGFtYnVyZ2VyLWljb257d2lkdGg6MTFweDtoZWlnaHQ6OHB4fS50ZXJtaW5hbC1oZWFkZXJ7cGFkZGluZzo0cHggNnB4O21pbi1oZWlnaHQ6MjhweH0udGVybWluYWwtaW5mb3tkaXNwbGF5Om5vbmV9LnRlcm1pbmFsLWNvbnRhaW5lcnttYXJnaW46MCA0cHggNHB4O3BhZGRpbmc6NHB4fS5pbnB1dC1wYW5lbHtwYWRkaW5nOjVweCA2cHg7cGFkZGluZy1ib3R0b206Y2FsYyg2cHggKyB2YXIoLS1pbnB1dC1zYWZlLWJvdHRvbSwgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpKX0uaW5wdXQtY29tcG9zZXJ7Ym9yZGVyLXJhZGl1czo4cHh9LmlucHV0LXRleHRhcmVhe21pbi1oZWlnaHQ6MjhweDtwYWRkaW5nOjVweCAyOHB4IDJweCA2cHg7Zm9udC1zaXplOjE2cHh9LmJ0bi1jaXJjbGV7d2lkdGg6MjhweDtoZWlnaHQ6MjhweDttaW4td2lkdGg6MjhweH0uc2Vzc2lvbi1pdGVte3BhZGRpbmc6NnB4IDhweDttaW4taGVpZ2h0OjQwcHh9LnNlc3Npb24tYWN0aW9uLWJ0bnt3aWR0aDozMHB4O2hlaWdodDozMHB4O21pbi13aWR0aDozMHB4O21pbi1oZWlnaHQ6MzBweH0uc2lkZWJhcnt0b3A6MDt3aWR0aDptaW4oMjQwcHgsY2FsYygxMDB2dyAtIDEwcHgpKX0uc2lkZWJhci1mb290ZXItYWN0aW9uc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDQsMWZyKX0uc2lkZWJhci1mb290ZXItYWN0aW9uczpoYXMoLnNpZGViYXItYmFjay10by1uYXRpdmUpOmhhcyguc2lkZWJhci1zd2l0Y2gtc2VydmVyKXtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDUsMWZyKX0uc2lkZWJhci1mb290ZXItYWN0aW9ucyAuYnRuIHNwYW57ZGlzcGxheTpub25lfS5zaWRlYmFyLWZvb3Rlci1hY3Rpb25zIC5idG57bWluLWhlaWdodDozNnB4O3BhZGRpbmc6NnB4fS5tb2RhbHttYXgtaGVpZ2h0Ojgwdmh9Lm1vZGFsLWhlYWRlcntwYWRkaW5nOjhweCAxMHB4O21pbi1oZWlnaHQ6MzZweH0ubW9kYWwtYm9keXtwYWRkaW5nOjhweCAxMHB4fS5zZXNzaW9uLW1vZGFsIC5tb2RhbC1mb290ZXJ7cGFkZGluZzo4cHggMTBweCAxMnB4fS5maWVsZC1yb3d7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtnYXA6MH0uYnRue21pbi1oZWlnaHQ6MzZweDtwYWRkaW5nOjhweCAxMnB4fS5idG4tc217bWluLWhlaWdodDoyOHB4O3BhZGRpbmc6NHB4IDhweH19QG1lZGlhKG1pbi13aWR0aDo2NDFweClhbmQgKG1heC13aWR0aDo3NjhweCl7LnNpZGViYXJ7dG9wOjA7d2lkdGg6bWluKDMyMHB4LGNhbGMoMTAwdncgLSA0MHB4KSl9LnNlc3Npb24taXRlbXttaW4taGVpZ2h0OjUycHg7cGFkZGluZzoxMXB4IDEycHh9LnNlc3Npb24tYWN0aW9uLWJ0bnt3aWR0aDozNHB4O2hlaWdodDozNHB4O21pbi13aWR0aDozNHB4O21pbi1oZWlnaHQ6MzRweH0uYnRue21pbi1oZWlnaHQ6NDJweH0uYnRuLXNte21pbi1oZWlnaHQ6MzZweH0uZmxvYXRpbmctdG9nZ2xle21pbi13aWR0aDo0OHB4O21pbi1oZWlnaHQ6NDhweH19QG1lZGlhKG1heC1oZWlnaHQ6NDIwcHgpYW5kIChvcmllbnRhdGlvbjpsYW5kc2NhcGUpey5mbG9hdGluZy1zaWRlYmFyLXRvZ2dsZXt3aWR0aDoyOHB4O2hlaWdodDoyOHB4fS5zaWRlYmFye3RvcDowfS50ZXJtaW5hbC1jb250YWluZXJ7bWluLWhlaWdodDo1NXZoO21hcmdpbjo2cHg7cGFkZGluZzo4cHh9LmNoYXQtY29udGFpbmVye3BhZGRpbmc6MCAxMHB4IDhweH0uaW5wdXQtcGFuZWx7cGFkZGluZzo4cHg7cGFkZGluZy1ib3R0b206Y2FsYyg4cHggKyB2YXIoLS1pbnB1dC1zYWZlLWJvdHRvbSwgdmFyKC0tc2FmZS1ib3R0b20sIDBweCkpKX19QG1lZGlhKG1heC13aWR0aDo0ODBweCl7LmNoYXQtY29udGFpbmVye3BhZGRpbmc6MCA2cHggOHB4fS5jaGF0LW1lc3NhZ2Vze3BhZGRpbmctbGVmdDoycHg7cGFkZGluZy1yaWdodDoycHg7Z2FwOjEycHh9LmNoYXQtbWVzc2FnZXstLWNoYXQtY2FyZC1tYXgtd2lkdGg6IDEwMCV9LnRvb2wtdXNlLWhlYWRlcntmbGV4LXdyYXA6d3JhcDtyb3ctZ2FwOjRweDtwYWRkaW5nOjhweCAxMnB4fS50b29sLXVzZS1maWxle21heC13aWR0aDoxMDAlfS50b29sLXVzZS1ib2R5e3BhZGRpbmc6MTBweCAxMnB4fS5zdWJhZ2VudC1yZXBseXtwYWRkaW5nOjlweCAxMnB4fS5zdWJhZ2VudC1yZXBseS5jb2xsYXBzaWJsZXtwYWRkaW5nOjB9LnN1YmFnZW50LXJlcGx5LmZpbmFse3BhZGRpbmc6OXB4IDExcHh9LnN1YmFnZW50LXBhbmVse21hcmdpbjo2cHggMH0uc3ViYWdlbnQtcGFuZWwtaGVhZGVye3BhZGRpbmc6N3B4IDEwcHg7Z2FwOjZweDtmb250LXNpemU6Ljc0cmVtfS5zdWJhZ2VudC1wYW5lbC1hdHRyaWJ1dGlvbnt3aGl0ZS1zcGFjZTpub3JtYWw7bGluZS1oZWlnaHQ6MS40fS5zdWJhZ2VudC1wYW5lbC10YWd7bWFyZ2luOjAgNHB4O3BhZGRpbmc6MCA0cHh9LnN1YmFnZW50LXBhbmVsLWJvZHl7cGFkZGluZzo5cHggMTFweH0uc3ViYWdlbnQtcGFuZWxbZGF0YS1leHBhbmRlZD1mYWxzZV0gLnN1YmFnZW50LXBhbmVsLWJvZHl7bWF4LWhlaWdodDoxOGVtfS5zdWJhZ2VudC1wYW5lbFtkYXRhLWV4cGFuZGVkPXRydWVdIC5zdWJhZ2VudC1wYW5lbC1ib2R5e21heC1oZWlnaHQ6NjB2aH0uc3ViYWdlbnQtcGFuZWwtZm9vdGVye3BhZGRpbmc6NXB4IDEwcHh9LnN1YmFnZW50LXBhbmVsLWZvb3Rlci1oaW50e2Rpc3BsYXk6bm9uZX0ubWFya2Rvd24tY29udGVudCAuY29kZS1ibG9ja3ttYXJnaW46OHB4IDB9Lm1hcmtkb3duLWNvbnRlbnQgcHJlLC5tYXJrZG93bi1jb250ZW50IC5jb2RlLWJsb2NrIHByZSwuc3ViYWdlbnQtcmVwbHkgcHJle3BhZGRpbmc6MTBweH0uZGlmZi1jb2x1bW5ze2ZsZXgtZGlyZWN0aW9uOmNvbHVtbn0uZGlmZi1jb2wsLmRpZmYtY29sLWhhbGYsLmRpZmYtY29sLWZ1bGx7ZmxleDoxIDEgYXV0bzt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlfS50ZXJtLWhlYWRlciwuZGlmZi1oZWFkZXJ7ZmxleC13cmFwOndyYXA7cm93LWdhcDo0cHh9LmRpZmYtcGF0aHtmbGV4LWJhc2lzOjEwMCU7b3JkZXI6OTl9LmlubGluZS10b29sLXJvd3tmbGV4LXdyYXA6d3JhcDtyb3ctZ2FwOjJweH0uaW5saW5lLXRvb2wtbWV0YXttYXgtd2lkdGg6MTAwJTtmbGV4LWJhc2lzOjEwMCU7cGFkZGluZy1sZWZ0OjIycHh9fS5zZXNzaW9uLWtpbmQtYmFkZ2V7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjE4cHg7cGFkZGluZzowIDZweDtib3JkZXItcmFkaXVzOjk5OXB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAxZW07Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtmbGV4LXNocmluazowfS5zZXNzaW9uLWtpbmQtYmFkZ2UucHR5e2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtiYWNrZ3JvdW5kOiM3ODgwOGMxZjtib3JkZXItY29sb3I6Izc4ODA4YzJlfS5zZXNzaW9uLWtpbmQtYmFkZ2Uuc3RydWN0dXJlZHtjb2xvcjojZDE4YjUyO2JhY2tncm91bmQ6I2Q3N2E1MjFhO2JvcmRlci1jb2xvcjojZDc3YTUyMzh9LnNlc3Npb24ta2luZC1iYWRnZS53b3JrdHJlZXtjb2xvcjojMmY2ZjU0O2JhY2tncm91bmQ6IzRmN2E1ODFmO2JvcmRlci1jb2xvcjojNGY3YTU4Mzh9LnNlc3Npb24ta2luZC1kaXNwbGF5e2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MXB4IDZweDtib3JkZXItcmFkaXVzOjk5OXB4O2ZvbnQtc2l6ZTouNjg3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6IzhhNGIyNDtiYWNrZ3JvdW5kOiNkNzdhNTIxZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjE1LDEyMiw4MiwuMil9LnN0cnVjdHVyZWQtdG9vbC1oaW50e21hcmdpbjo0cHggMCA4cHg7cGFkZGluZzo2cHggMTBweDtib3JkZXItcmFkaXVzOjEwcHg7Zm9udC1zaXplOi43NXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtiYWNrZ3JvdW5kOiNkNzdhNTIxNDtib3JkZXI6MXB4IGRhc2hlZCByZ2JhKDIxNSwxMjIsODIsLjE4KX0uYmxhbmstY2hhdHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7ZmxleDoxO3BhZGRpbmc6MjBweCAxNnB4O21pbi1oZWlnaHQ6MDtvdmVyZmxvdzphdXRvfS5ibGFuay1jaGF0LWlubmVye3dpZHRoOjEwMCU7bWF4LXdpZHRoOjU2MHB4O3RleHQtYWxpZ246Y2VudGVyfS5ibGFuay1jaGF0LWxvZ297d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2Q3N2E1MiwjYTk1MTMwKTtib3JkZXItcmFkaXVzOjE2cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZToyOHB4O2ZvbnQtd2VpZ2h0OjcwMDtjb2xvcjojZmZmO21hcmdpbjowIGF1dG8gMTRweDtib3gtc2hhZG93OjAgNHB4IDE2cHggI2M1NjUzZDM4fS5ibGFuay1jaGF0LXRpdGxle2ZvbnQtc2l6ZToxLjM3NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTttYXJnaW46MCAwIDZweH0uYmxhbmstY2hhdC1zdWJ0aXRsZXtmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luOjAgMCAyMHB4fS5ibGFuay1jaGF0LXRvb2xze2Rpc3BsYXk6ZmxleDtnYXA6OHB4O2p1c3RpZnktY29udGVudDpjZW50ZXI7bWFyZ2luLWJvdHRvbToxMnB4O2ZsZXgtd3JhcDp3cmFwfS5ibGFuay1jaGF0LXRvb2wtYnRue3BhZGRpbmc6OHB4IDE0cHg7Ym9yZGVyOjEuNXB4IHNvbGlkIHZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjEwcHg7YmFja2dyb3VuZDojZmZmZmZmYjM7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouODc1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtmb250LWZhbWlseTppbmhlcml0O2N1cnNvcjpwb2ludGVyO3RyYW5zaXRpb246YWxsIHZhcigtLXRyYW5zaXRpb24tZmFzdCk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O21pbi1oZWlnaHQ6NDBweH0uYmxhbmstY2hhdC10b29sLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Y29sb3I6dmFyKC0tYWNjZW50KTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3gtc2hhZG93OjAgNHB4IDEycHggIzU5M2EyMDE0fS5ibGFuay1jaGF0LXRvb2wtYnRuIC50b29sLWljb257Zm9udC1zaXplOjEuMTI1cmVtfS5ibGFuay1jaGF0LWN3ZC13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO21hcmdpbi10b3A6OHB4fS5ibGFuay1jaGF0LWN3ZHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NHB4O2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cGFkZGluZzo0cHggOHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTt0cmFuc2l0aW9uOmNvbG9yIHZhcigtLXRyYW5zaXRpb24tZmFzdCksYmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO3VzZXItc2VsZWN0Om5vbmV9LmJsYW5rLWNoYXQtY3dkOmhvdmVye2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpfS5ibGFuay1jaGF0LWN3ZC1pY29ue2ZvbnQtc2l6ZTouODEyNXJlbX0uYmxhbmstY2hhdC1jd2QtcGF0aHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO21heC13aWR0aDoyODBweDtvdmVyZmxvdy14OmF1dG87b3ZlcmZsb3cteTpoaWRkZW47d2hpdGUtc3BhY2U6bm93cmFwO3Njcm9sbGJhci13aWR0aDpub25lfS5ibGFuay1jaGF0LWN3ZC1wYXRoOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6M3B4fS5ibGFuay1jaGF0LWN3ZC1wYXRoOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM5Njc2NTU1Mjtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKX0uYmxhbmstY2hhdC1jd2Q6aG92ZXIgLmJsYW5rLWNoYXQtY3dkLXBhdGh7c2Nyb2xsYmFyLXdpZHRoOnRoaW59LmJsYW5rLWNoYXQtY3dkOmhvdmVyIC5ibGFuay1jaGF0LWN3ZC1wYXRoOjotd2Via2l0LXNjcm9sbGJhcntoZWlnaHQ6NHB4fS5ibGFuay1jaGF0LWN3ZC1hcnJvd3tmb250LXNpemU6LjYyNXJlbTtvcGFjaXR5Oi42O3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmJsYW5rLWNoYXQtY3dkLWRyb3Bkb3due3Bvc2l0aW9uOmFic29sdXRlO3RvcDoxMDAlO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7bWluLXdpZHRoOjI2MHB4O21heC13aWR0aDo0MDBweDttYXgtaGVpZ2h0OjI0MHB4O292ZXJmbG93LXk6YXV0bztiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtib3gtc2hhZG93OjAgNHB4IDE2cHggIzAwMDAwMDFhO3otaW5kZXg6NTA7bWFyZ2luLXRvcDo0cHg7cGFkZGluZzo0cHh9LmJsYW5rLWNoYXQtY3dkLWl0ZW17ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O3BhZGRpbmc6NnB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2N1cnNvcjpwb2ludGVyO2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3RyYW5zaXRpb246YmFja2dyb3VuZCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpfS5ibGFuay1jaGF0LWN3ZC1pdGVtOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtjb2xvcjp2YXIoLS1hY2NlbnQpfS5ibGFuay1jaGF0LWN3ZC1pdGVtLmFjdGl2ZXtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KTtmb250LXdlaWdodDo1MDB9LmJsYW5rLWNoYXQtY3dkLWl0ZW0tbGFiZWx7Zm9udC1zaXplOi42MjVyZW07YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2NvbG9yOnZhcigtLWFjY2VudCk7cGFkZGluZzoxcHggNXB4O2JvcmRlci1yYWRpdXM6M3B4O2ZvbnQtd2VpZ2h0OjUwMDt3aGl0ZS1zcGFjZTpub3dyYXB9LmJsYW5rLWNoYXQtY3dkLWl0ZW0tcGF0aHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uYmxhbmstY2hhdC1jd2QtbG9hZGluZ3twYWRkaW5nOjhweCAxMHB4O2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dGV4dC1hbGlnbjpjZW50ZXJ9LmNoYXQtbW9kZS1zZWxlY3R7Zm9udC1mYW1pbHk6aW5oZXJpdDtjdXJzb3I6cG9pbnRlcjtvdXRsaW5lOm5vbmV9LmNoYXQtbW9kZS1zZWxlY3Q6Zm9jdXN7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9LnRvYXN0LW1lc3NhZ2V7cG9zaXRpb246Zml4ZWQ7dG9wOjI0cHg7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTtwYWRkaW5nOjEwcHggMjBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7Zm9udC1zaXplOi44NzVyZW07ei1pbmRleDo5OTk5O2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LWxnKTthbmltYXRpb246dG9hc3QtaW4gLjIycyBjdWJpYy1iZXppZXIoLjM0LDEuNTYsLjY0LDEpfS50b2FzdC1lcnJvcntiYWNrZ3JvdW5kOnZhcigtLWRhbmdlcik7Y29sb3I6I2ZmZn1Aa2V5ZnJhbWVzIHRvYXN0LWluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoLTEycHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoMCl9fS5ub3RpZmljYXRpb24tYnViYmxle3Bvc2l0aW9uOmZpeGVkO2xlZnQ6NTAlO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSk7ei1pbmRleDoxMDAwMDttaW4td2lkdGg6MjIwcHg7bWF4LXdpZHRoOjMyMHB4O2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy1sZyk7cGFkZGluZzo4cHggMTJweDthbmltYXRpb246bm90aWZpY2F0aW9uLXNsaWRlLWluIC4zcyBjdWJpYy1iZXppZXIoLjM0LDEuNTYsLjY0LDEpO3RyYW5zaXRpb246dG9wIC4yNXMgZWFzZSxvcGFjaXR5IC4yNXMgZWFzZX0ubm90aWZpY2F0aW9uLWJ1YmJsZS5zbGlkZS1vdXR7YW5pbWF0aW9uOm5vdGlmaWNhdGlvbi1zbGlkZS1vdXQgLjI1cyBlYXNlIGZvcndhcmRzO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9Lm5vdGlmaWNhdGlvbi1idWJibGUtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDttYXJnaW4tYm90dG9tOjJweH0ubm90aWZpY2F0aW9uLWJ1YmJsZS1pY29ue3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7ZmxleC1zaHJpbms6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2ZvbnQtc2l6ZToxMHB4fS5ub3RpZmljYXRpb24tYnViYmxlLWljb24uaW5mb3tiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCk7Y29sb3I6I2ZmZn0ubm90aWZpY2F0aW9uLWJ1YmJsZS1pY29uLndhcm5pbmd7YmFja2dyb3VuZDp2YXIoLS13YXJuaW5nKTtjb2xvcjojZmZmfS5ub3RpZmljYXRpb24tYnViYmxlLWljb24uc3VjY2Vzc3tiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MpO2NvbG9yOiNmZmZ9Lm5vdGlmaWNhdGlvbi1idWJibGUtdGl0bGV7Zm9udC1zaXplOi43NXJlbTtmb250LXdlaWdodDo2MDA7Y29sb3I6dmFyKC0tZmctcHJpbWFyeSk7ZmxleDoxO21pbi13aWR0aDowfS5ub3RpZmljYXRpb24tYnViYmxlLWNsb3Nle2JhY2tncm91bmQ6bm9uZTtib3JkZXI6bm9uZTtjb2xvcjp2YXIoLS1mZy1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOjE0cHg7bGluZS1oZWlnaHQ6MTtwYWRkaW5nOjFweCAzcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2ZsZXgtc2hyaW5rOjB9Lm5vdGlmaWNhdGlvbi1idWJibGUtY2xvc2U6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy1ob3Zlcik7Y29sb3I6dmFyKC0tZmctcHJpbWFyeSl9Lm5vdGlmaWNhdGlvbi1idWJibGUtYm9keXtmb250LXNpemU6LjdyZW07Y29sb3I6dmFyKC0tZmctc2Vjb25kYXJ5KTtsaW5lLWhlaWdodDoxLjQ7bWFyZ2luLWJvdHRvbTowO21heC1oZWlnaHQ6NC4yZW07b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6LXdlYmtpdC1ib3g7LXdlYmtpdC1saW5lLWNsYW1wOjM7LXdlYmtpdC1ib3gtb3JpZW50OnZlcnRpY2FsfS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnN7bWFyZ2luLXRvcDo2cHg7ZGlzcGxheTpmbGV4O2dhcDo2cHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9ue2ZvbnQtc2l6ZTouN3JlbTtwYWRkaW5nOjJweCAxMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtjdXJzb3I6cG9pbnRlcjtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2NvbG9yOnZhcigtLWZnLXByaW1hcnkpO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzfS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9uOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctaG92ZXIpfS5ub3RpZmljYXRpb24tYnViYmxlLWFjdGlvbnMgYnV0dG9uLnByaW1hcnl7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9Lm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyBidXR0b24ucHJpbWFyeTpob3ZlcntmaWx0ZXI6YnJpZ2h0bmVzcygxLjEpfUBrZXlmcmFtZXMgbm90aWZpY2F0aW9uLXNsaWRlLWluezAle29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoLTIwcHgpfXRve29wYWNpdHk6MTt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoMCl9fUBrZXlmcmFtZXMgbm90aWZpY2F0aW9uLXNsaWRlLW91dHswJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKSB0cmFuc2xhdGVZKDApfXRve29wYWNpdHk6MDt0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpIHRyYW5zbGF0ZVkoLTIwcHgpfX0ubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbjpkaXNhYmxlZHtvcGFjaXR5Oi42O2N1cnNvcjpub3QtYWxsb3dlZDtmaWx0ZXI6bm9uZX0ubm90aWZpY2F0aW9uLWJ1YmJsZS1hY3Rpb25zIGJ1dHRvbi5zdWNjZXNze2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcyk7Y29sb3I6I2ZmZjtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyl9Lm5vdGlmaWNhdGlvbi1idWJibGUtYWN0aW9ucyBidXR0b24uc3VjY2Vzczpob3Zlcjpub3QoOmRpc2FibGVkKXtmaWx0ZXI6YnJpZ2h0bmVzcygxLjEpfS5ub3RpZmljYXRpb24tYnViYmxlLnVwZGF0ZS1jYXJke3dpZHRoOm1pbigzNjBweCxjYWxjKDEwMHZ3IC0gMjRweCkpO21heC13aWR0aDptaW4oMzYwcHgsY2FsYygxMDB2dyAtIDI0cHgpKTttaW4td2lkdGg6MDtwYWRkaW5nOjE0cHggMTRweCAxMnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLW1kKTtiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgxMjAlIDEyMCUgYXQgMCUgMCUsdmFyKC0tYWNjZW50LW11dGVkKSAwJSx0cmFuc3BhcmVudCA1NSUpLGxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYmctZWxldmF0ZWQpIDAlLHZhcigtLWJnLXByaW1hcnkpIDEwMCUpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN0cm9uZyk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cteGwpLDAgMCAwIDFweCAjZmZmNiBpbnNldDtvdmVyZmxvdzpoaWRkZW47aXNvbGF0aW9uOmlzb2xhdGV9LnVwZGF0ZS1jYXJkLXNoaW5le3Bvc2l0aW9uOmFic29sdXRlO2luc2V0OjA7cG9pbnRlci1ldmVudHM6bm9uZTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMTVkZWcsdHJhbnNwYXJlbnQgMCUscmdiYSgyNTUsMjU1LDI1NSwuMTgpIDQ1JSxyZ2JhKDI1NSwyNTUsMjU1LC4zMikgNTAlLHJnYmEoMjU1LDI1NSwyNTUsLjE4KSA1NSUsdHJhbnNwYXJlbnQgMTAwJSk7YmFja2dyb3VuZC1zaXplOjIyMCUgMTAwJTtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEyMCUgMDttaXgtYmxlbmQtbW9kZTpvdmVybGF5O29wYWNpdHk6LjY1O2FuaW1hdGlvbjp1cGRhdGUtY2FyZC1zaGluZSA2cyBlYXNlLWluLW91dCBpbmZpbml0ZTt6LWluZGV4OjB9QGtleWZyYW1lcyB1cGRhdGUtY2FyZC1zaGluZXswJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjEyMCUgMH01NSV7YmFja2dyb3VuZC1wb3NpdGlvbjotMjAlIDB9dG97YmFja2dyb3VuZC1wb3NpdGlvbjotMjAlIDB9fS51cGRhdGUtY2FyZC5pcy1zdWNjZXNze2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KDEyMCUgMTIwJSBhdCAwJSAwJSx2YXIoLS1zdWNjZXNzLW11dGVkKSAwJSx0cmFuc3BhcmVudCA1NSUpLGxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYmctZWxldmF0ZWQpIDAlLHZhcigtLWJnLXByaW1hcnkpIDEwMCUpO2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKTtib3gtc2hhZG93OnZhcigtLXNoYWRvdy14bCksMCAwIDAgMXB4ICNmZmY2IGluc2V0LHZhcigtLXNoYWRvdy1nbG93LXN1Y2Nlc3MpfS51cGRhdGUtY2FyZC1oZWFkZXJ7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxMHB4fS51cGRhdGUtY2FyZC1pY29ue3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7ZmxleC1zaHJpbms6MDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2NvbG9yOiNmZmY7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLHZhcigtLWFjY2VudCkgMCUsdmFyKC0tYWNjZW50LWhvdmVyKSAxMDAlKTtib3gtc2hhZG93OjAgNHB4IDEycHggdmFyKC0tYWNjZW50LWdsb3cpLGluc2V0IDAgMXB4ICNmZmZmZmY1OX0udXBkYXRlLWNhcmQuaXMtc3VjY2VzcyAudXBkYXRlLWNhcmQtaWNvbntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tc3VjY2VzcykgMCUsdmFyKC0tc3VjY2Vzcy1ob3ZlcikgMTAwJSk7Ym94LXNoYWRvdzowIDRweCAxMnB4IHZhcigtLXN1Y2Nlc3MtZ2xvdyksaW5zZXQgMCAxcHggI2ZmZmZmZjU5fS51cGRhdGUtY2FyZC1oZWFkaW5ne2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9LnVwZGF0ZS1jYXJkLXRpdGxle2ZvbnQtc2l6ZTouODhyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LjAxZW07bGluZS1oZWlnaHQ6MS4yNX0udXBkYXRlLWNhcmQtc3VidGl0bGV7Zm9udC1zaXplOi43MnJlbTtjb2xvcjp2YXIoLS10ZXh0LXRlcnRpYXJ5KTtsaW5lLWhlaWdodDoxLjM1fS51cGRhdGUtY2FyZC1jbG9zZXtmbGV4LXNocmluazowO3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyxjb2xvciAuMTVzfS51cGRhdGUtY2FyZC1jbG9zZTpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS51cGRhdGUtY2FyZC12ZXJzaW9ue3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTttYXJnaW46MTJweCAwIDEwcHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZsZXgtd3JhcDpub3dyYXB9LnVwZGF0ZS1jYXJkLXZlcnNpb24tY2hpcHtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIHVpLW1vbm9zcGFjZSwgIlNGIE1vbm8iLCBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZSk7Zm9udC1zaXplOi43NHJlbTtmb250LXdlaWdodDo2MDA7cGFkZGluZzozcHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO3doaXRlLXNwYWNlOm5vd3JhcH0udXBkYXRlLWNhcmQtdmVyc2lvbi1jdXJyZW50e2NvbG9yOnZhcigtLXRleHQtdGVydGlhcnkpO2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpfS51cGRhdGUtY2FyZC12ZXJzaW9uLWxhdGVzdHtjb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6dmFyKC0tYWNjZW50LW11dGVkKTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93OjAgMXB4IDZweCB2YXIoLS1hY2NlbnQtZ2xvdyl9LnVwZGF0ZS1jYXJkLmlzLXN1Y2Nlc3MgLnVwZGF0ZS1jYXJkLXZlcnNpb24tbGF0ZXN0e2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCk7Ym9yZGVyLWNvbG9yOnZhcigtLXN1Y2Nlc3MpO2JveC1zaGFkb3c6MCAxcHggNnB4IHZhcigtLXN1Y2Nlc3MtZ2xvdyl9LnVwZGF0ZS1jYXJkLXZlcnNpb24tYXJyb3d7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZmxleC1zaHJpbms6MH0udXBkYXRlLWNhcmQtcHJvZ3Jlc3N7cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxO2hlaWdodDowO292ZXJmbG93OmhpZGRlbjttYXJnaW46MDt0cmFuc2l0aW9uOmhlaWdodCAuMjVzIGVhc2UsbWFyZ2luIC4yNXMgZWFzZX0udXBkYXRlLWNhcmQtcHJvZ3Jlc3MuYWN0aXZle2hlaWdodDo2cHg7bWFyZ2luOjAgMCAxMHB4fS51cGRhdGUtY2FyZC1wcm9ncmVzcy10cmFja3twb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO292ZXJmbG93OmhpZGRlbn0udXBkYXRlLWNhcmQtcHJvZ3Jlc3MtZmlsbHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0Oi00MCU7d2lkdGg6NDAlO2hlaWdodDoxMDAlO2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLWZ1bGwpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDkwZGVnLHZhcigtLWFjY2VudCkgMCUsdmFyKC0tYWNjZW50LWhvdmVyKSAxMDAlKTtib3gtc2hhZG93OjAgMCAxMHB4IHZhcigtLWFjY2VudC1nbG93KTthbmltYXRpb246dXBkYXRlLWNhcmQtcHJvZ3Jlc3Mtc3dlZXAgMS40cyBjdWJpYy1iZXppZXIoLjY1LC4wNSwuMzUsMSkgaW5maW5pdGV9QGtleWZyYW1lcyB1cGRhdGUtY2FyZC1wcm9ncmVzcy1zd2VlcHswJXtsZWZ0Oi00NSU7d2lkdGg6NDAlfTUwJXtsZWZ0OjI1JTt3aWR0aDo1NSV9dG97bGVmdDoxMDUlO3dpZHRoOjQwJX19LnVwZGF0ZS1jYXJkLXN0YXR1c3twb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4OjE7Zm9udC1zaXplOi43MnJlbTtsaW5lLWhlaWdodDoxLjQ7cGFkZGluZzo2cHggMTBweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7bWFyZ2luLWJvdHRvbToxMHB4O2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpfS51cGRhdGUtY2FyZC1zdGF0dXMuZXJyb3J7YmFja2dyb3VuZDp2YXIoLS1kYW5nZXItbXV0ZWQpO2NvbG9yOnZhcigtLWRhbmdlcik7Ym9yZGVyLWNvbG9yOnZhcigtLWRhbmdlcil9LnVwZGF0ZS1jYXJkLXN0YXR1cy5zdWNjZXNze2JhY2tncm91bmQ6dmFyKC0tc3VjY2Vzcy1tdXRlZCk7Y29sb3I6dmFyKC0tc3VjY2Vzcyk7Ym9yZGVyLWNvbG9yOnZhcigtLXN1Y2Nlc3MpfS51cGRhdGUtY2FyZC1hY3Rpb25ze3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MTtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2dhcDo4cHh9LnVwZGF0ZS1jYXJkLWFjdGlvbntmb250LXNpemU6Ljc4cmVtO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjdweCAxNnB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2N1cnNvcjpwb2ludGVyO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjEycyBlYXNlLGZpbHRlciAuMTVzIGVhc2UsYm94LXNoYWRvdyAuMTVzIGVhc2V9LnVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1hY2NlbnQpIDAlLHZhcigtLWFjY2VudC1ob3ZlcikgMTAwJSk7Y29sb3I6I2ZmZjtib3gtc2hhZG93OjAgNHB4IDEycHggdmFyKC0tYWNjZW50LWdsb3cpLGluc2V0IDAgMXB4ICNmZmZmZmY0MH0udXBkYXRlLWNhcmQtYWN0aW9uLXByaW1hcnk6aG92ZXI6bm90KDpkaXNhYmxlZCl7ZmlsdGVyOmJyaWdodG5lc3MoMS4wNSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzowIDZweCAxNnB4IHZhcigtLWFjY2VudC1nbG93KSxpbnNldCAwIDFweCAjZmZmZmZmNGR9LnVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5OmFjdGl2ZTpub3QoOmRpc2FibGVkKXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKTtmaWx0ZXI6YnJpZ2h0bmVzcyguOTYpfS51cGRhdGUtY2FyZC1hY3Rpb246ZGlzYWJsZWR7b3BhY2l0eTouNztjdXJzb3I6cHJvZ3Jlc3M7ZmlsdGVyOm5vbmU7dHJhbnNmb3JtOm5vbmV9LnVwZGF0ZS1jYXJkLmlzLXN1Y2Nlc3MgLnVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5e2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZyx2YXIoLS1zdWNjZXNzKSAwJSx2YXIoLS1zdWNjZXNzLWhvdmVyKSAxMDAlKTtib3gtc2hhZG93OjAgNHB4IDEycHggdmFyKC0tc3VjY2Vzcy1nbG93KSxpbnNldCAwIDFweCAjZmZmZmZmNDB9LnVwZGF0ZS1jYXJkLmlzLXN1Y2Nlc3MgLnVwZGF0ZS1jYXJkLWFjdGlvbi1wcmltYXJ5OmhvdmVyOm5vdCg6ZGlzYWJsZWQpe2JveC1zaGFkb3c6MCA2cHggMTZweCB2YXIoLS1zdWNjZXNzLWdsb3cpLGluc2V0IDAgMXB4ICNmZmZmZmY0ZH0ucmVzdGFydC1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7ei1pbmRleDo5OTk5OTtiYWNrZ3JvdW5kOiMwMDAwMDBhNjtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7YmFja2Ryb3AtZmlsdGVyOmJsdXIoNHB4KTthbmltYXRpb246cmVzdGFydC1mYWRlLWluIC4zcyBlYXNlfS5yZXN0YXJ0LW92ZXJsYXktY29udGVudHt0ZXh0LWFsaWduOmNlbnRlcjtjb2xvcjojZmZmfS5yZXN0YXJ0LXRpdGxle2ZvbnQtc2l6ZToxLjI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDttYXJnaW4tYm90dG9tOjhweH0ucmVzdGFydC1zdWJ0aXRsZXtmb250LXNpemU6LjlyZW07b3BhY2l0eTouOH0ucmVzdGFydC1zcGlubmVye3dpZHRoOjM2cHg7aGVpZ2h0OjM2cHg7bWFyZ2luOjAgYXV0byAxNnB4O2JvcmRlcjozcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwuMjUpO2JvcmRlci10b3AtY29sb3I6I2ZmZjtib3JkZXItcmFkaXVzOjUwJTthbmltYXRpb246cmVzdGFydC1zcGluIC44cyBsaW5lYXIgaW5maW5pdGV9QGtleWZyYW1lcyByZXN0YXJ0LXNwaW57dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIHJlc3RhcnQtZmFkZS1pbnswJXtvcGFjaXR5OjB9dG97b3BhY2l0eToxfX0uZmlsZS1wcmV2aWV3LW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kOiMwMDAwMDA4MDt6LWluZGV4OjEwMDA7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2FuaW1hdGlvbjpmYWRlLWluIC4xNXMgZWFzZX1Aa2V5ZnJhbWVzIGZhZGUtaW57MCV7b3BhY2l0eTowfXRve29wYWNpdHk6MX19LnNldHRpbmdzLW1vZGFse3dpZHRoOm1pbigxMDgwcHgsMTAwJSk7bWF4LXdpZHRoOjEwODBweDtoZWlnaHQ6bWluKDg4dmgsOTIwcHgpO21heC1oZWlnaHQ6bWluKDg4dmgsOTIwcHgpO21pbi1oZWlnaHQ6bWluKDg4dmgsOTIwcHgpO292ZXJmbG93OmhpZGRlbn0uc2V0dGluZ3MtbW9kYWwtaGVhZGVye2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjE2cHg7cGFkZGluZy1ib3R0b206MTRweH0uc2V0dGluZ3MtbW9kYWwtdGl0bGUtZ3JvdXB7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NHB4O21pbi13aWR0aDowfS5zZXR0aW5ncy1tb2RhbC1zdWJ0aXRsZXtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNX0uc2V0dGluZ3MtbW9kYWwtYm9keXtwYWRkaW5nLXRvcDoxOHB4O2ZsZXg6MSAxIGF1dG87bWluLWhlaWdodDowO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zZXR0aW5ncy1sYXlvdXR7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczoyNjBweCBtaW5tYXgoMCwxZnIpO2dhcDoyMnB4O21pbi1oZWlnaHQ6MDtmbGV4OjEgMSBhdXRvO2FsaWduLWl0ZW1zOnN0cmV0Y2h9LnNldHRpbmdzLWxheW91dD4qe21pbi1oZWlnaHQ6MH0uc2V0dGluZ3Mtc2lkZWJhcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxNHB4O21pbi13aWR0aDowO21pbi1oZWlnaHQ6MDtwYWRkaW5nLXJpZ2h0OjZweDtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO292ZXJmbG93OmhpZGRlbn0uc2V0dGluZ3Mtc2lkZWJhci1oZWFkZXIsLnNldHRpbmdzLXNpZGViYXItdGl0bGUsLnNldHRpbmdzLXNpZGViYXItaGludHtmbGV4LXNocmluazowfS5zZXR0aW5ncy1zaWRlYmFyLWhlYWRlcntkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo0cHg7cGFkZGluZzoycHggNHB4IDB9LnNldHRpbmdzLXNpZGViYXItdGl0bGV7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LjAxZW19LnNldHRpbmdzLXNpZGViYXItaGludHtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNX0uc2V0dGluZ3MtdGFic3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHg7bWFyZ2luOjA7cGFkZGluZzowIDEwcHggMCAwO21pbi1oZWlnaHQ6MDtvdmVyZmxvdzphdXRvO3Bvc2l0aW9uOnJlbGF0aXZlO3otaW5kZXg6MjtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5zZXR0aW5ncy10YWJzOjotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo2cHg7aGVpZ2h0OjZweH0uc2V0dGluZ3MtdGFiczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDojOTY3NjU1Mzg7Ym9yZGVyLXJhZGl1czo5OTlweH0uc2V0dGluZ3MtdGFiczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDojOTY3NjU1NWN9LnNldHRpbmdzLXRhYnN7c2Nyb2xsYmFyLXdpZHRoOnRoaW59LnNldHRpbmdzLXRhYntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjRweDt3aWR0aDoxMDAlO3BhZGRpbmc6MTJweCAxNHB4IDEycHggMTZweDtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtiYWNrZ3JvdW5kOiNmZmZmZmY4Yztib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yYWRpdXM6MTZweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmNvbG9yIC4xNXMsYm9yZGVyLWNvbG9yIC4xNXMsYmFja2dyb3VuZCAuMTVzLGJveC1zaGFkb3cgLjE1cyx0cmFuc2Zvcm0gLjE1czt0ZXh0LWFsaWduOmxlZnR9LnNldHRpbmdzLXRhYjpiZWZvcmV7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjEwcHg7Ym90dG9tOjEwcHg7d2lkdGg6M3B4O2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyBlYXNlfS5zZXR0aW5ncy10YWI6aG92ZXJ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtiYWNrZ3JvdW5kOiNjNTY1M2QxNDtib3JkZXItY29sb3I6I2M1NjUzZDFmO3RyYW5zZm9ybTp0cmFuc2xhdGUoMnB4KX0uc2V0dGluZ3MtdGFiOmZvY3VzLXZpc2libGV7b3V0bGluZToycHggc29saWQgdmFyKC0tYWNjZW50KTtvdXRsaW5lLW9mZnNldDoycHh9LnNldHRpbmdzLXRhYi5hY3RpdmV7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXItY29sb3I6I2ZmZmZmZmIzO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmY2Y3ZWIsI2ZmZjRlOGI4KTtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxNHB4KSBzYXR1cmF0ZSgxODAlKTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDE0cHgpIHNhdHVyYXRlKDE4MCUpO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNjNTY1M2QzOCxpbnNldCAwIDFweCAjZmZmZmZmZTYsaW5zZXQgMCAtMXB4ICNjNTY1M2QwZiwwIDRweCAxNHB4IC00cHggI2M1NjUzZDM4LDAgMXB4IDNweCAjN2Q1YjM5MGF9LnNldHRpbmdzLXRhYi5hY3RpdmU6YmVmb3Jle2JhY2tncm91bmQ6dmFyKC0tYWNjZW50KX0uc2V0dGluZ3MtdGFiLW1haW57Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOmluaGVyaXQ7bGluZS1oZWlnaHQ6MS4zfS5zZXR0aW5ncy10YWItbWV0YXtmb250LXNpemU6Ljc1cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtsaW5lLWhlaWdodDoxLjQ1fS5zZXR0aW5ncy10YWIuYWN0aXZlIC5zZXR0aW5ncy10YWItbWV0YXtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSl9LnNldHRpbmdzLWNvbnRlbnR7bWluLXdpZHRoOjA7bWluLWhlaWdodDowO2hlaWdodDoxMDAlO292ZXJmbG93OmF1dG87cGFkZGluZy1yaWdodDo0cHh9LnNldHRpbmdzLXBhbmVse2Rpc3BsYXk6bm9uZTttaW4taGVpZ2h0OjEwMCU7cGFkZGluZzoycHggMnB4IDhweH0uc2V0dGluZ3MtY29udGVudDo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6OHB4fS5zZXR0aW5ncy1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOiM5Njc2NTUzZDtib3JkZXItcmFkaXVzOjk5OXB4fS5zZXR0aW5ncy1jb250ZW50Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOiM5Njc2NTU2MX0uc2V0dGluZ3MtY29udGVudHtzY3JvbGxiYXItd2lkdGg6dGhpbn0uc2V0dGluZ3MtcGFuZWwuYWN0aXZle2Rpc3BsYXk6YmxvY2s7YW5pbWF0aW9uOmZhZGUtaW4gLjE4cyBlYXNlfS5zZXR0aW5ncy1wYW5lbC1oZWFkZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4O21hcmdpbjowIDAgMTRweDtwYWRkaW5nLWJvdHRvbToxMnB4O2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xMil9LnNldHRpbmdzLXBhbmVsLXRpdGxle2ZvbnQtc2l6ZToxLjA2MjVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGluZS1oZWlnaHQ6MS4yO2xldHRlci1zcGFjaW5nOi0uMDFlbX0uc2V0dGluZ3MtcGFuZWwtZGVzY3tmb250LXNpemU6LjgxMjVyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2xpbmUtaGVpZ2h0OjEuNTV9LnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy1zZWN0aW9uLXRpdGxle21hcmdpbi10b3A6MThweH0uc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLXNlY3Rpb24tdGl0bGU6Zmlyc3Qtb2YtdHlwZXttYXJnaW4tdG9wOjB9LnNldHRpbmdzLXBhbmVsPi5maWVsZC1yb3csLnNldHRpbmdzLXBhbmVsPi5maWVsZCwuc2V0dGluZ3MtcGFuZWw+LmZpZWxkLWhpbnR7bWF4LXdpZHRoOjc2MHB4fS5zZXR0aW5ncy1wYW5lbD4uc3dpdGNoLWNhcmQtbGlzdCwuc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLWNhcmQsLnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy11cGRhdGUtc2VjdGlvbiwuc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uLC5zZXR0aW5ncy1wYW5lbD4jcHJlc2V0cy1saXN0e21heC13aWR0aDo4NjBweH0uc2V0dGluZ3MtcGFuZWw+LnNldHRpbmdzLWNhcmQrLnNldHRpbmdzLWNhcmQsLnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy11cGRhdGUtc2VjdGlvbisuc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24sLnNldHRpbmdzLXBhbmVsPi5zZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbisuc2V0dGluZ3Mtbm90aWZpY2F0aW9uLXNlY3Rpb257bWFyZ2luLXRvcDoxNHB4fS5zZXR0aW5ncy1wYW5lbFtoaWRkZW5de2Rpc3BsYXk6bm9uZSFpbXBvcnRhbnR9QG1lZGlhKG1heC13aWR0aDo5MDBweCl7LnNldHRpbmdzLWxheW91dHtncmlkLXRlbXBsYXRlLWNvbHVtbnM6MjIwcHggbWlubWF4KDAsMWZyKTtnYXA6MThweH19QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LnNldHRpbmdzLW1vZGFse3dpZHRoOm1pbigxMDAlLDcyMHB4KTtoZWlnaHQ6bWluKDkydmgsOTIwcHgpO21heC1oZWlnaHQ6bWluKDkydmgsOTIwcHgpO21pbi1oZWlnaHQ6bWluKDkydmgsOTIwcHgpfS5zZXR0aW5ncy1tb2RhbC1ib2R5e292ZXJmbG93LXk6YXV0b30uc2V0dGluZ3MtbGF5b3V0e2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpO2dhcDoxNHB4O2ZsZXg6MCAwIGF1dG99LnNldHRpbmdzLXNpZGViYXJ7cGFkZGluZy1yaWdodDowO2JvcmRlci1yaWdodDpub25lfS5zZXR0aW5ncy10YWJze2ZsZXgtZGlyZWN0aW9uOnJvdztmbGV4LXdyYXA6bm93cmFwO292ZXJmbG93LXg6YXV0bztzY3JvbGxiYXItd2lkdGg6bm9uZTtwYWRkaW5nLXJpZ2h0OjA7cGFkZGluZy1ib3R0b206NHB4fS5zZXR0aW5ncy10YWJzOjotd2Via2l0LXNjcm9sbGJhcntkaXNwbGF5Om5vbmV9LnNldHRpbmdzLXRhYntmbGV4OjAgMCAyMDBweDttaW4taGVpZ2h0OjcycHh9LnNldHRpbmdzLXRhYjpob3Zlcnt0cmFuc2Zvcm06bm9uZX0uc2V0dGluZ3MtY29udGVudHtvdmVyZmxvdzp2aXNpYmxlO3BhZGRpbmctcmlnaHQ6MH19QG1lZGlhKG1heC13aWR0aDo0ODBweCl7LnNldHRpbmdzLXRhYntmbGV4LWJhc2lzOjE4MHB4O3BhZGRpbmc6MTBweCAxMnB4IDEwcHggMTRweH0uc2V0dGluZ3MtdGFiLW1haW57Zm9udC1zaXplOi44MTI1cmVtfS5zZXR0aW5ncy10YWItbWV0YXtmb250LXNpemU6LjY4NzVyZW19fS5zZXR0aW5ncy1hYm91dC1pbmZve2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjA7bWFyZ2luLWJvdHRvbToxOHB4O2JhY2tncm91bmQ6I2ZmZmZmZjgwO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbGcpO3BhZGRpbmc6NHB4IDE2cHg7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cteHMpfS5zZXR0aW5ncy1hYm91dC1yb3d7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTRweDtmb250LXNpemU6LjgxMjVyZW07cGFkZGluZzoxMnB4IDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSl9LnNldHRpbmdzLWFib3V0LXJvdzpsYXN0LWNoaWxke2JvcmRlci1ib3R0b206bm9uZX0uc2V0dGluZ3MtbGFiZWx7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtd2VpZ2h0OjYwMDtmbGV4OjAgMCAxMTJweH0uc2V0dGluZ3MtdmFsdWV7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTouOHJlbTttaW4td2lkdGg6MDt0ZXh0LWFsaWduOnJpZ2h0O3dvcmQtYnJlYWs6YnJlYWstd29yZH0uc2V0dGluZ3MtdmFsdWUgYXtjb2xvcjp2YXIoLS1hY2NlbnQpO3RleHQtZGVjb3JhdGlvbjpub25lfS5zZXR0aW5ncy12YWx1ZSBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9LnNldHRpbmdzLXVwZGF0ZS1zZWN0aW9uLC5zZXR0aW5ncy1ub3RpZmljYXRpb24tc2VjdGlvbiwuc2V0dGluZ3MtY2FyZCwuc3dpdGNoLWNhcmQsLnByZXNldC1pdGVte2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXhzKX0uc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24sLnNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9ue21hcmdpbi10b3A6MTRweDtwYWRkaW5nOjE2cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7YmFja2dyb3VuZDojZmZmZmZmN2F9LnNldHRpbmdzLXNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOi44NzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bWFyZ2luOjAgMCAxMnB4O2xldHRlci1zcGFjaW5nOi4wMWVtfS5zZXR0aW5ncy11cGRhdGUtYWN0aW9ucywuc2V0dGluZ3MtYWN0aW9uc3tkaXNwbGF5OmZsZXg7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXA7bWFyZ2luLXRvcDoxMnB4fS5zZXR0aW5ncy1hY3Rpb25zLXN0aWNreXtwb3NpdGlvbjpzdGlja3k7Ym90dG9tOjA7cGFkZGluZy10b3A6MTZweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZmJmNTAwLCNmZmZiZjVmYSAyOHB4KTt6LWluZGV4OjE7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kfS5zZXR0aW5ncy1zdGF0dXMtbWVzc2FnZXttYXJnaW4tdG9wOjEwcHh9LnNldHRpbmdzLWlubGluZS1oaW50e21hcmdpbi10b3A6LTRweDttYXJnaW4tYm90dG9tOjEycHh9LnNldHRpbmdzLWNvbm5lY3QtdXJsLWJveHtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O2JhY2tncm91bmQ6I2ZmZmZmZmI4O2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxMnB4O3BhZGRpbmc6MTBweCAxMnB4O21hcmdpbi10b3A6NnB4fS5zZXR0aW5ncy1jb25uZWN0LXVybC10ZXh0e2ZsZXg6MTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSk7Zm9udC1zaXplOjEzcHg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTt3b3JkLWJyZWFrOmJyZWFrLWFsbDt1c2VyLXNlbGVjdDphbGw7LXdlYmtpdC11c2VyLXNlbGVjdDphbGx9LnNldHRpbmdzLWNvbm5lY3QtcXItYm94e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4O21hcmdpbi10b3A6MTRweH0uc2V0dGluZ3MtY29ubmVjdC1xci13cmFwe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjIwMHB4O2hlaWdodDoyMDBweDtwYWRkaW5nOjEwcHg7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7Ym9yZGVyLXJhZGl1czoxNnB4O2JveC1zaGFkb3c6MCA0cHggMTJweCAjN2Q1YjM5MTQ7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE1cyBlYXNlLGJveC1zaGFkb3cgLjE1cyBlYXNlO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc2V0dGluZ3MtY29ubmVjdC1xci13cmFwOmhvdmVye3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCA2cHggMTZweCAjN2Q1YjM5MWZ9LnNldHRpbmdzLWNvbm5lY3QtcXItd3JhcCBjYW52YXN7ZGlzcGxheTpibG9jazttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCV9LnNldHRpbmdzLWNvbm5lY3QtcXItZW1wdHl7cG9zaXRpb246YWJzb2x1dGU7aW5zZXQ6MDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjEycHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO3BvaW50ZXItZXZlbnRzOm5vbmV9LnNldHRpbmdzLWNvbm5lY3QtcXItaGludHttYXJnaW46MDtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dGV4dC1hbGlnbjpjZW50ZXI7bWF4LXdpZHRoOjI4MHB4fS5jb25uZWN0LXFyLW1vZGFsLW92ZXJsYXl7cG9zaXRpb246Zml4ZWQ7aW5zZXQ6MDtiYWNrZ3JvdW5kOiMxNDBlMDg4YztiYWNrZHJvcC1maWx0ZXI6Ymx1cig2cHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoNnB4KTt6LWluZGV4Ojk5OTk7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MjRweH0uY29ubmVjdC1xci1tb2RhbC1jYXJke2JhY2tncm91bmQ6I2ZmZjtib3JkZXItcmFkaXVzOjIwcHg7cGFkZGluZzoyNHB4O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxNHB4O2JveC1zaGFkb3c6MCAyMHB4IDYwcHggIzAwMDAwMDU5fS5jb25uZWN0LXFyLW1vZGFsLWNhcmQgY2FudmFze2Rpc3BsYXk6YmxvY2s7Ym9yZGVyLXJhZGl1czo4cHh9LmNvbm5lY3QtcXItbW9kYWwtaGludHttYXJnaW46MDtmb250LXNpemU6MTNweDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7dGV4dC1hbGlnbjpjZW50ZXJ9LmZpZWxkLXJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdCgyLG1pbm1heCgwLDFmcikpO2dhcDoxNHB4O21hcmdpbi1ib3R0b206MTRweH0uZmllbGQtcm93IC5maWVsZHttYXJnaW4tYm90dG9tOjB9LnNldHRpbmdzLWNhcmR7YmFja2dyb3VuZDojZmZmZmZmODU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7cGFkZGluZzoxOHB4O21hcmdpbi1ib3R0b206MTRweH0uc2V0dGluZ3MtY2FyZCAuZmllbGQ6bGFzdC1vZi10eXBle21hcmdpbi1ib3R0b206MTJweH0uc2V0dGluZ3MtY2FyZCAuc2V0dGluZ3Mtc2VjdGlvbi10aXRsZXttYXJnaW4tdG9wOjB9LnNldHRpbmdzLWNhcmQgLmZpZWxkLWlucHV0e2JhY2tncm91bmQ6I2ZmZmZmZmI4fS5zZXR0aW5ncy1jYXJkIC5idG4tYmxvY2t7bWFyZ2luLWJvdHRvbTowfS5zZXR0aW5ncy1wYW5lbCAuYnRuLWJsb2Nre21pbi1oZWlnaHQ6NDRweH0uc2V0dGluZ3MtcGFuZWwgLmhpbnQsLnNldHRpbmdzLXBhbmVsIC5maWVsZC1oaW50e2xpbmUtaGVpZ2h0OjEuNTV9LnNldHRpbmdzLXBhbmVsIGlucHV0W3R5cGU9cmFuZ2Vde3dpZHRoOjEwMCV9LnNldHRpbmdzLXBhbmVsIGNvZGV7bWF4LXdpZHRoOjEwMCV9LnNldHRpbmdzLXBhbmVsIC5oaWRkZW4rLmhpbnR7bWFyZ2luLXRvcDowfS5zZXR0aW5ncy1wYW5lbCAuZmllbGQtaW5wdXQsLnNldHRpbmdzLXBhbmVsIC5maWVsZC1zZWxlY3R7d2lkdGg6MTAwJX0uc2V0dGluZ3MtcGFuZWwgLmJ0bi1zbXttaW4taGVpZ2h0OjM0cHh9LnNldHRpbmdzLXBhbmVsIC5lcnJvci1tZXNzYWdlLC5zZXR0aW5ncy1wYW5lbCAuaGludC5oaWRkZW4sLnNldHRpbmdzLXBhbmVsIC5lcnJvci1tZXNzYWdlLmhpZGRlbnttYXJnaW4tdG9wOjEwcHh9LnNldHRpbmdzLXBhbmVsICNwcmVzZXRzLWxpc3Q6ZW1wdHk6YmVmb3Jle2NvbnRlbnQ6Ilw1MmEwXDhmN2RcNGUyZC4uLiI7ZGlzcGxheTpibG9jaztwYWRkaW5nOjE4cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOi44MTI1cmVtfUBtZWRpYShtYXgtd2lkdGg6NzY4cHgpey5zZXR0aW5ncy1hYm91dC1yb3d7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0uc2V0dGluZ3MtdXBkYXRlLWFjdGlvbnMsLnNldHRpbmdzLWFjdGlvbnN7ZmxleC1kaXJlY3Rpb246Y29sdW1ufS5zZXR0aW5ncy11cGRhdGUtYWN0aW9ucyAuYnRuLC5zZXR0aW5ncy1hY3Rpb25zIC5idG57d2lkdGg6MTAwJX0uc2V0dGluZ3MtY29ubmVjdC11cmwtYm94e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNofX1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsuc2V0dGluZ3MtbW9kYWwtaGVhZGVye2dhcDoxMHB4fS5zZXR0aW5ncy1tb2RhbC1zdWJ0aXRsZXtmb250LXNpemU6LjY4NzVyZW19LnNldHRpbmdzLXBhbmVse3BhZGRpbmctbGVmdDowO3BhZGRpbmctcmlnaHQ6MH0uc2V0dGluZ3MtYWJvdXQtaW5mbywuc2V0dGluZ3MtdXBkYXRlLXNlY3Rpb24sLnNldHRpbmdzLW5vdGlmaWNhdGlvbi1zZWN0aW9uLC5zZXR0aW5ncy1jYXJke3BhZGRpbmctbGVmdDoxNHB4O3BhZGRpbmctcmlnaHQ6MTRweH0uc2V0dGluZ3MtYWJvdXQtcm93e2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpzdHJldGNoO2dhcDo0cHh9LnNldHRpbmdzLWxhYmVsLC5zZXR0aW5ncy12YWx1ZXtmbGV4Om5vbmU7dGV4dC1hbGlnbjpsZWZ0fS5zZXR0aW5ncy1wYW5lbCAuYnRuLWljb257bWluLXdpZHRoOjM0cHg7bWluLWhlaWdodDozNHB4fX1AbWVkaWEobWluLXdpZHRoOjc2OXB4KXsuc2V0dGluZ3MtcGFuZWwgLmJ0bi1ibG9ja3t3aWR0aDphdXRvO21pbi13aWR0aDoxODBweH19QHN1cHBvcnRzIG5vdCAocG9zaXRpb246IHN0aWNreSl7LnNldHRpbmdzLXRhYnMsLnNldHRpbmdzLWFjdGlvbnMtc3RpY2t5e3Bvc2l0aW9uOnN0YXRpY319LmVtcHR5LXN0YXRlLWNvbXBhY3R7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjMycHggMTZweDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXNpemU6LjgxMjVyZW19LmVtcHR5LXN0YXRlLWNvbXBhY3QgLmVtcHR5LWljb257Zm9udC1zaXplOjEuNXJlbTtvcGFjaXR5Oi41fS5zd2l0Y2gtY2FyZC1saXN0e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjEwcHh9LnN3aXRjaC1jYXJke2Rpc3BsYXk6YmxvY2s7YmFja2dyb3VuZDojZmZmZmZmODA7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JvcmRlci1yYWRpdXM6MTRweDtwYWRkaW5nOjE0cHggMTZweDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMnMsYmFja2dyb3VuZCAuMnMsdHJhbnNmb3JtIC4yczt1c2VyLXNlbGVjdDpub25lfS5zd2l0Y2gtY2FyZDpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCl9LnN3aXRjaC1jYXJkLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4fS5zd2l0Y2gtY2FyZC10aXRsZXtmbGV4OjE7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5zd2l0Y2gtY2FyZC1kZXNje2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bWFyZ2luLXRvcDowO21heC1oZWlnaHQ6MDtvdmVyZmxvdzpoaWRkZW47b3BhY2l0eTowO3RyYW5zaXRpb246bWF4LWhlaWdodCAuMjVzIGVhc2Usb3BhY2l0eSAuMnMgZWFzZSxtYXJnaW4tdG9wIC4yNXMgZWFzZX0uc3dpdGNoLWNhcmQ6aGFzKC5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQpIC5zd2l0Y2gtY2FyZC1kZXNje21heC1oZWlnaHQ6NDBweDtvcGFjaXR5OjE7bWFyZ2luLXRvcDo4cHh9LnN3aXRjaC1jYXJkOmhhcyguc3dpdGNoLXRvZ2dsZTpjaGVja2VkKXtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFjY2VudCkgNiUsdmFyKC0tYmctc2Vjb25kYXJ5KSl9LnN3aXRjaC10b2dnbGV7cG9zaXRpb246YWJzb2x1dGU7b3BhY2l0eTowO3dpZHRoOjA7aGVpZ2h0OjA7cG9pbnRlci1ldmVudHM6bm9uZX0uc3dpdGNoLXNsaWRlcntwb3NpdGlvbjpyZWxhdGl2ZTtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo0NHB4O2hlaWdodDoyNnB4O21pbi13aWR0aDo0NHB4O2JvcmRlci1yYWRpdXM6MTNweDtiYWNrZ3JvdW5kOiM3ZDViMzkzODtib3gtc2hhZG93Omluc2V0IDAgMXB4IDFweCAjN2Q1YjM5MmU7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4yMnMgZWFzZSxib3gtc2hhZG93IC4yMnMgZWFzZTtjdXJzb3I6cG9pbnRlcn0uc3dpdGNoLXNsaWRlcjphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDoycHg7bGVmdDoycHg7d2lkdGg6MjJweDtoZWlnaHQ6MjJweDtiYWNrZ3JvdW5kOiNmZmY7Ym9yZGVyLXJhZGl1czo1MCU7Ym94LXNoYWRvdzowIDJweCA0cHggIzE0MGUwODJlLDAgMCAwIC41cHggIzdkNWIzOTBmO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yNHMgY3ViaWMtYmV6aWVyKC4zNCwxLjQsLjY0LDEpfS5zd2l0Y2gtdG9nZ2xlOmNoZWNrZWQrLnN3aXRjaC1zbGlkZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4ICMwMDAwMDAxYX0uc3dpdGNoLXRvZ2dsZTpjaGVja2VkKy5zd2l0Y2gtc2xpZGVyOmFmdGVye3RyYW5zZm9ybTp0cmFuc2xhdGUoMThweCl9LnN3aXRjaC10b2dnbGU6Zm9jdXMtdmlzaWJsZSsuc3dpdGNoLXNsaWRlcntvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH0ucHJlc2V0LWl0ZW17ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjEycHggMTRweDtiYWNrZ3JvdW5kOiNmZmZmZmY4NTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MTJweDttYXJnaW4tYm90dG9tOjEwcHg7Zm9udC1zaXplOi44MTI1cmVtfS5wcmVzZXQtbGFiZWx7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnByZXNldC1kZXRhaWx7bWluLXdpZHRoOjA7dGV4dC1hbGlnbjpyaWdodDtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljc1cmVtO3dvcmQtYnJlYWs6YnJlYWstd29yZH1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsucHJlc2V0LWl0ZW17ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmZsZXgtc3RhcnR9LnByZXNldC1kZXRhaWx7dGV4dC1hbGlnbjpsZWZ0fX0uZmlsZS1wcmV2aWV3LW1vZGFse3dpZHRoOm1pbig5MHZ3LG1heCg2NDBweCxjYWxjKDEwMHZ3IC0gMzgwcHgpKSk7bWF4LXdpZHRoOjEwMDBweDtoZWlnaHQ6ODB2aDttYXgtaGVpZ2h0Ojg1dmg7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1sZyk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO2JveC1zaGFkb3c6MCAyMHB4IDYwcHggIzAwMDAwMDRkO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47b3ZlcmZsb3c6aGlkZGVuO2FuaW1hdGlvbjptb2RhbC1zbGlkZS1pbiAuMnMgY3ViaWMtYmV6aWVyKC40LDAsLjIsMSl9QGtleWZyYW1lcyBtb2RhbC1zbGlkZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwcHgpIHNjYWxlKC45OCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApIHNjYWxlKDEpfX1AbWVkaWEobWF4LXdpZHRoOjc2OHB4KXsuZmlsZS1wcmV2aWV3LW92ZXJsYXl7cGFkZGluZzowO2FsaWduLWl0ZW1zOnN0cmV0Y2g7anVzdGlmeS1jb250ZW50OnN0cmV0Y2g7dG9wOnZhcigtLWFwcC12aWV3cG9ydC10b3AsIDBweCk7aGVpZ2h0OnZhcigtLWFwcC12aWV3cG9ydC1oZWlnaHQsIDEwMGR2aCl9LmZpbGUtcHJldmlldy1tb2RhbHt3aWR0aDoxMDB2dzttYXgtd2lkdGg6MTAwdnc7aGVpZ2h0OnZhcigtLWFwcC12aWV3cG9ydC1oZWlnaHQsIDEwMGR2aCk7bWF4LWhlaWdodDp2YXIoLS1hcHAtdmlld3BvcnQtaGVpZ2h0LCAxMDBkdmgpO2JvcmRlci1yYWRpdXM6MDtib3JkZXI6bm9uZTtib3gtc2hhZG93Om5vbmU7YW5pbWF0aW9uOmZhZGUtaW4gLjE4cyBlYXNlfS5maWxlLXByZXZpZXctaGVhZGVye3BhZGRpbmc6MTBweCAxMnB4O2dhcDo4cHg7cGFkZGluZy10b3A6bWF4KDEwcHgsZW52KHNhZmUtYXJlYS1pbnNldC10b3ApKTtwYWRkaW5nLWxlZnQ6bWF4KDEycHgsZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KSk7cGFkZGluZy1yaWdodDptYXgoMTJweCxlbnYoc2FmZS1hcmVhLWluc2V0LXJpZ2h0KSl9LmZpbGUtcHJldmlldy10aXRsZXtmb250LXNpemU6Ljg3NXJlbTtnYXA6NnB4O21pbi13aWR0aDowO2ZsZXg6MX0uZmlsZS1wcmV2aWV3LWZpbGVuYW1le21heC13aWR0aDoxMDAlfS5maWxlLXByZXZpZXctcGF0aHtkaXNwbGF5Om5vbmV9LmZpbGUtcHJldmlldy10b29sYmFye2dhcDo0cHg7ZmxleC1zaHJpbms6MH0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRue3BhZGRpbmc6MCA2cHg7Zm9udC1zaXplOi43NXJlbX0uZmlsZS1wcmV2aWV3LWNsb3Nle3dpZHRoOjM0cHg7aGVpZ2h0OjM0cHg7cGFkZGluZzowfS5maWxlLXByZXZpZXctaWNvbntmb250LXNpemU6MS4xMjVyZW19LmZpbGUtcHJldmlldy1ib2R5e3BhZGRpbmctYm90dG9tOmVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKX19LmZpbGUtcHJldmlldy1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjEycHggMThweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSk7ZmxleC1zaHJpbms6MH0uZmlsZS1wcmV2aWV3LXRpdGxle2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7Zm9udC1zaXplOi45Mzc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZsZXg6MTttaW4td2lkdGg6MH0uZmlsZS1wcmV2aWV3LWljb257Zm9udC1zaXplOjEuMjVyZW07bGluZS1oZWlnaHQ6MTtmbGV4LXNocmluazowfS5maWxlLXByZXZpZXctbmFtZS1ibG9ja3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHg7bWluLXdpZHRoOjA7ZmxleDoxfS5maWxlLXByZXZpZXctbmFtZS1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmJhc2VsaW5lO2dhcDo4cHg7bWluLXdpZHRoOjB9LmZpbGUtcHJldmlldy1maWxlbmFtZXtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7Zm9udC1zaXplOi45Mzc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2xldHRlci1zcGFjaW5nOi4wMWVtO21pbi13aWR0aDowfS5maWxlLXByZXZpZXctcGF0aHtmb250LXNpemU6LjdyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpczt3aGl0ZS1zcGFjZTpub3dyYXA7bWluLXdpZHRoOjA7b3BhY2l0eTouOH0uZmlsZS1wcmV2aWV3LWRpcnR5e2ZvbnQtc2l6ZTouNjg3NXJlbTtjb2xvcjojYzY2YTFhO2ZvbnQtd2VpZ2h0OjYwMDtsZXR0ZXItc3BhY2luZzouMDJlbTtmbGV4LXNocmluazowO3BhZGRpbmc6MXB4IDhweDtiYWNrZ3JvdW5kOiNjNjZhMWExYTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTk4LDEwNiwyNiwuMjUpO2JvcmRlci1yYWRpdXM6OTk5cHg7YW5pbWF0aW9uOmRpcnR5LXB1bHNlIDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGV9QGtleWZyYW1lcyBkaXJ0eS1wdWxzZXswJSx0b3tvcGFjaXR5Oi42NX01MCV7b3BhY2l0eToxfX0uZmlsZS1wcmV2aWV3LWxhbmd7Zm9udC1zaXplOi42ODc1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtwYWRkaW5nOjJweCA4cHg7Ym9yZGVyLXJhZGl1czo5OTlweDtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudC1tdXRlZCk7Y29sb3I6dmFyKC0tYWNjZW50KTtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMjEyLDE1Miw5OSwuMyk7bGV0dGVyLXNwYWNpbmc6LjA0ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2ZsZXgtc2hyaW5rOjA7YWxpZ24tc2VsZjpjZW50ZXJ9LmZpbGUtcHJldmlldy1jbG9zZXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtjdXJzb3I6cG9pbnRlcjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTt3aWR0aDozMnB4O2hlaWdodDozMnB4O3BhZGRpbmc6MDtib3JkZXItcmFkaXVzOjhweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTVzLGNvbG9yIC4xNXMsYm9yZGVyLWNvbG9yIC4xNXMsdHJhbnNmb3JtIC4xNXM7bGluZS1oZWlnaHQ6MTtmbGV4LXNocmluazowfS5maWxlLXByZXZpZXctY2xvc2U6aG92ZXJ7YmFja2dyb3VuZDojZGM0NjQ2MTQ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3JkZXItY29sb3I6I2RjNDY0NjQwfS5maWxlLXByZXZpZXctY2xvc2U6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTQpfS5maWxlLXByZXZpZXctYm9keXtmbGV4OjE7b3ZlcmZsb3c6YXV0bzttaW4taGVpZ2h0OjA7c2Nyb2xsYmFyLXdpZHRoOnRoaW47c2Nyb2xsYmFyLWNvbG9yOnZhcigtLWJvcmRlci1kZWZhdWx0KSB0cmFuc3BhcmVudH0uZmlsZS1wcmV2aWV3LWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFye3dpZHRoOjhweDtoZWlnaHQ6OHB4fS5maWxlLXByZXZpZXctYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0uZmlsZS1wcmV2aWV3LWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6dmFyKC0tYm9yZGVyLWRlZmF1bHQpO2JvcmRlci1yYWRpdXM6NHB4fS5maWxlLXByZXZpZXctYm9keTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWI6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS10ZXh0LW11dGVkKX0uZmlsZS1wcmV2aWV3LWJvZHk6Oi13ZWJraXQtc2Nyb2xsYmFyLWNvcm5lcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jb2RlLXByZXZpZXctd3JhcHBlcntkaXNwbGF5OmZsZXg7aGVpZ2h0OjEwMCU7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6aGlkZGVuO3Njcm9sbGJhci13aWR0aDp0aGluO3Njcm9sbGJhci1jb2xvcjp2YXIoLS1ib3JkZXItZGVmYXVsdCkgdHJhbnNwYXJlbnR9LmNvZGUtcHJldmlldy13cmFwcGVyOjotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDo4cHg7aGVpZ2h0OjhweH0uY29kZS1wcmV2aWV3LXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNre2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9LmNvZGUtcHJldmlldy13cmFwcGVyOjotd2Via2l0LXNjcm9sbGJhci10aHVtYntiYWNrZ3JvdW5kOnZhcigtLWJvcmRlci1kZWZhdWx0KTtib3JkZXItcmFkaXVzOjRweH0uY29kZS1wcmV2aWV3LXdyYXBwZXI6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tdGV4dC1tdXRlZCl9LmNvZGUtcHJldmlldy1saW5lc3twYWRkaW5nOjE2cHggMTJweCAxNnB4IDE2cHg7dGV4dC1hbGlnbjpyaWdodDt1c2VyLXNlbGVjdDpub25lO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1zbSk7bGluZS1oZWlnaHQ6dmFyKC0tbGluZS1oZWlnaHQpO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7d2lkdGg6NTJweDttYXgtd2lkdGg6NTJweDtmbGV4LXNocmluazowO292ZXJmbG93OmhpZGRlbn0uY29kZS1wcmV2aWV3LWNvbnRlbnR7ZmxleDoxO21pbi13aWR0aDowO3dpZHRoOjEwMCU7cGFkZGluZzoxNnB4IDIwcHg7b3ZlcmZsb3cteDphdXRvO292ZXJmbG93LXk6YXV0b30uY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJle21hcmdpbjowO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubyk7Zm9udC1zaXplOnZhcigtLWZvbnQtc2l6ZS1zbSk7bGluZS1oZWlnaHQ6dmFyKC0tbGluZS1oZWlnaHQpO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7d2hpdGUtc3BhY2U6cHJlO3dvcmQtYnJlYWs6bm9ybWFsO292ZXJmbG93LXdyYXA6bm9ybWFsfS5zeW50YXgta2V5d29yZHtjb2xvcjojYzY3OGRkfS5zeW50YXgtc3RyaW5ne2NvbG9yOiM5OGMzNzl9LnN5bnRheC1udW1iZXJ7Y29sb3I6I2QxOWE2Nn0uc3ludGF4LWNvbW1lbnR7Y29sb3I6IzVjNjM3MDtmb250LXN0eWxlOml0YWxpY30uc3ludGF4LWZ1bmN0aW9ue2NvbG9yOiM2MWFmZWZ9LnN5bnRheC1vcGVyYXRvcntjb2xvcjojNTZiNmMyfS5zeW50YXgtdHlwZXtjb2xvcjojZTVjMDdifS5zeW50YXgtcHVuY3R1YXRpb257Y29sb3I6I2FiYjJiZn0ubWFya2Rvd24tcHJldmlld3twYWRkaW5nOjIwcHggMjhweDtsaW5lLWhlaWdodDoxLjc7Zm9udC1zaXplOi45Mzc1cmVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9Lm1hcmtkb3duLXByZXZpZXcgaDEsLm1hcmtkb3duLXByZXZpZXcgaDIsLm1hcmtkb3duLXByZXZpZXcgaDMsLm1hcmtkb3duLXByZXZpZXcgaDQsLm1hcmtkb3duLXByZXZpZXcgaDUsLm1hcmtkb3duLXByZXZpZXcgaDZ7bWFyZ2luLXRvcDoxLjVlbTttYXJnaW4tYm90dG9tOi41ZW07Zm9udC13ZWlnaHQ6NjAwO2xpbmUtaGVpZ2h0OjEuMztjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5tYXJrZG93bi1wcmV2aWV3IGgxe2ZvbnQtc2l6ZToxLjc1cmVtO2JvcmRlci1ib3R0b206MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7cGFkZGluZy1ib3R0b206LjNlbX0ubWFya2Rvd24tcHJldmlldyBoMntmb250LXNpemU6MS4zNzVyZW07Ym9yZGVyLWJvdHRvbToxcHggc29saWQgdmFyKC0tYm9yZGVyKTtwYWRkaW5nLWJvdHRvbTouM2VtfS5tYXJrZG93bi1wcmV2aWV3IGgze2ZvbnQtc2l6ZToxLjEyNXJlbX0ubWFya2Rvd24tcHJldmlldyBoNHtmb250LXNpemU6MXJlbX0ubWFya2Rvd24tcHJldmlldyBwe21hcmdpbjouNzVlbSAwfS5tYXJrZG93bi1wcmV2aWV3IGF7Y29sb3I6dmFyKC0tYWNjZW50KTt0ZXh0LWRlY29yYXRpb246bm9uZX0ubWFya2Rvd24tcHJldmlldyBhOmhvdmVye3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lm1hcmtkb3duLXByZXZpZXcgY29kZXtiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KTtwYWRkaW5nOjJweCA2cHg7Ym9yZGVyLXJhZGl1czozcHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljg3NWVtO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKX0ubWFya2Rvd24tcHJldmlldyBwcmV7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2JvcmRlcjoxcHggc29saWQgdmFyKC0tYm9yZGVyKTtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1tZCk7cGFkZGluZzoxNnB4O292ZXJmbG93LXg6YXV0bzttYXJnaW46MWVtIDB9Lm1hcmtkb3duLXByZXZpZXcgcHJlIGNvZGV7YmFja2dyb3VuZDpub25lO2JvcmRlcjpub25lO3BhZGRpbmc6MDtmb250LXNpemU6dmFyKC0tZm9udC1zaXplLXNtKX0ubWFya2Rvd24tcHJldmlldyBibG9ja3F1b3Rle2JvcmRlci1sZWZ0OjRweCBzb2xpZCB2YXIoLS1hY2NlbnQpO21hcmdpbjoxZW0gMDtwYWRkaW5nOi41ZW0gMWVtO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Ym9yZGVyLXJhZGl1czowIHZhcigtLXJhZGl1cy1zbSkgdmFyKC0tcmFkaXVzLXNtKSAwfS5tYXJrZG93bi1wcmV2aWV3IHVsLC5tYXJrZG93bi1wcmV2aWV3IG9se3BhZGRpbmctbGVmdDoxLjVlbTttYXJnaW46Ljc1ZW0gMH0ubWFya2Rvd24tcHJldmlldyBsaXttYXJnaW46LjI1ZW0gMH0ubWFya2Rvd24tcHJldmlldyB0YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7d2lkdGg6MTAwJTttYXJnaW46MWVtIDA7Zm9udC1zaXplOi44NzVyZW19Lm1hcmtkb3duLXByZXZpZXcgdGgsLm1hcmtkb3duLXByZXZpZXcgdGR7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXIpO3BhZGRpbmc6OHB4IDEycHg7dGV4dC1hbGlnbjpsZWZ0fS5tYXJrZG93bi1wcmV2aWV3IHRoe2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtmb250LXdlaWdodDo2MDB9Lm1hcmtkb3duLXByZXZpZXcgdHI6bnRoLWNoaWxkKDJuKXtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSl9Lm1hcmtkb3duLXByZXZpZXcgaHJ7Ym9yZGVyOm5vbmU7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyKTttYXJnaW46MS41ZW0gMH0ubWFya2Rvd24tcHJldmlldyBpbWd7bWF4LXdpZHRoOjEwMCU7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pfS5maWxlLXByZXZpZXctbG9hZGluZ3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7aGVpZ2h0OjEwMCU7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC1zaXplOi44NzVyZW07Z2FwOjEwcHh9LmZpbGUtcHJldmlldy1sb2FkaW5nOmJlZm9yZXtjb250ZW50OiIiO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3dpZHRoOjE2cHg7aGVpZ2h0OjE2cHg7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXRvcC1jb2xvcjp2YXIoLS1hY2NlbnQpO2JvcmRlci1yYWRpdXM6NTAlO2FuaW1hdGlvbjpwcmV2aWV3LXNwaW4gLjdzIGxpbmVhciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHByZXZpZXctc3Bpbnt0b3t0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fS5maWxlLXByZXZpZXctZXJyb3J7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtoZWlnaHQ6MTAwJTtnYXA6OHB4O2NvbG9yOnZhcigtLWRhbmdlcik7Zm9udC1zaXplOi44NzVyZW07dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzoyMHB4fS5maWxlLXByZXZpZXctZXJyb3IgLnByZXZpZXctZXJyb3ItaWNvbntmb250LXNpemU6MnJlbTtvcGFjaXR5Oi41fS50cmVlLWl0ZW1bZGF0YS10eXBlPWZpbGVde2N1cnNvcjpwb2ludGVyfS50cmVlLWl0ZW1bZGF0YS10eXBlPWZpbGVdOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctaG92ZXIpfS50cmVlLWl0ZW1bZGF0YS10eXBlPWZpbGVdOmhvdmVyIC50cmVlLW5hbWV7Y29sb3I6dmFyKC0tYWNjZW50KX0uZmlsZS1leHBsb3Jlci11cHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowO3dpZHRoOjMwcHg7aGVpZ2h0OjMwcHg7Ym9yZGVyLXJhZGl1czo4cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgdmFyKC0tdHJhbnNpdGlvbi1mYXN0KSxjb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLGJvcmRlci1jb2xvciB2YXIoLS10cmFuc2l0aW9uLWZhc3QpLHRyYW5zZm9ybSB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2ZsZXgtc2hyaW5rOjB9LmZpbGUtZXhwbG9yZXItdXA6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLXN1YnRsZSl9LmZpbGUtZXhwbG9yZXItdXA6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpfS50cmVlLW1ldGF7ZmxleC1zaHJpbms6MDtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zO21hcmdpbi1sZWZ0OjZweDtwYWRkaW5nLWxlZnQ6NnB4O21heC13aWR0aDo3MHB4O292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtvcGFjaXR5Oi44NX0udHJlZS1pdGVtOmhvdmVyIC50cmVlLW1ldGF7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS50cmVlLXRydW5jYXRlZHtwYWRkaW5nOjhweCAxNHB4O21hcmdpbjo0cHggNnB4IDhweDtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpO2JvcmRlcjoxcHggZGFzaGVkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czo2cHg7dGV4dC1hbGlnbjpjZW50ZXJ9LmZpbGUtY29udGV4dC1tZW51e3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6MTEwMDttaW4td2lkdGg6MjAwcHg7cGFkZGluZzo0cHg7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czoxMHB4O2JveC1zaGFkb3c6MCAxMnB4IDM2cHggIzAwMDAwMDJlO2FuaW1hdGlvbjpjdHgtZmFkZS1pbiAuMTJzIGVhc2V9QGtleWZyYW1lcyBjdHgtZmFkZS1pbnswJXtvcGFjaXR5OjA7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTRweCkgc2NhbGUoLjk4KX10b3tvcGFjaXR5OjE7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSl9fS5maWxlLWNvbnRleHQtbWVudS1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7d2lkdGg6MTAwJTtwYWRkaW5nOjhweCAxMnB4O2JvcmRlcjpub25lO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtmb250LXNpemU6LjgxMjVyZW07dGV4dC1hbGlnbjpsZWZ0O2N1cnNvcjpwb2ludGVyO2JvcmRlci1yYWRpdXM6NnB4O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTJzfS5maWxlLWNvbnRleHQtbWVudS1pdGVtOmhvdmVye2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpfS5maWxlLWNvbnRleHQtbWVudS1pdGVtIC5jdHgtaWNvbnt3aWR0aDoxOHB4O3RleHQtYWxpZ246Y2VudGVyO29wYWNpdHk6Ljg1fS53YW5kLW1pbmktdG9hc3R7cG9zaXRpb246Zml4ZWQ7dG9wOjMwcHg7bGVmdDo1MCU7dHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLC0xNHB4KTt6LWluZGV4OjEyMDA7cGFkZGluZzo4cHggMTZweDtiYWNrZ3JvdW5kOiMxNDE0MTRlYjtjb2xvcjojZmZmO2ZvbnQtc2l6ZTouODEyNXJlbTtib3JkZXItcmFkaXVzOjk5OXB4O29wYWNpdHk6MDt0cmFuc2l0aW9uOm9wYWNpdHkgLjE4cyBlYXNlLHRyYW5zZm9ybSAuMThzIGVhc2U7cG9pbnRlci1ldmVudHM6bm9uZX0ud2FuZC1taW5pLXRvYXN0LnNob3d7b3BhY2l0eToxO3RyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSl9LmZpbGUtcHJldmlldy10b29sYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjRweDtmbGV4LXNocmluazowO21hcmdpbi1sZWZ0OjhweH0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRue2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjAgOHB4O21pbi13aWR0aDozMHB4O2hlaWdodDozMHB4O2dhcDo2cHg7Ym9yZGVyLXJhZGl1czo4cHg7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtc2l6ZTouNzVyZW07ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyxjb2xvciAuMTVzLGJvcmRlci1jb2xvciAuMTVzLGJveC1zaGFkb3cgLjE1cyx0cmFuc2Zvcm0gLjFzfS5maWxlLXByZXZpZXctdG9vbGJhci1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSk7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyKTtib3gtc2hhZG93OjAgMXB4IDNweCAjMDAwMDAwMGF9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bjphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NSl9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bjpkaXNhYmxlZHtvcGFjaXR5Oi41O2N1cnNvcjpub3QtYWxsb3dlZDt0cmFuc2Zvcm06bm9uZX0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuIC50b29sYmFyLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuIC50b29sYmFyLXRleHR7Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wMWVtfS5maWxlLXByZXZpZXctdG9vbGJhci1idG4udG9vbGJhci1hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2NvbG9yOnZhcigtLWFjY2VudCk7Ym9yZGVyLWNvbG9yOiNkNDk4NjM2Nn0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuLnByaW1hcnl7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCk7Ym94LXNoYWRvdzowIDFweCAycHggIzU5M2EyMDI2fS5maWxlLXByZXZpZXctdG9vbGJhci1idG4ucHJpbWFyeTpob3ZlcntiYWNrZ3JvdW5kOiNiODdhNDc7Ym9yZGVyLWNvbG9yOiNiODdhNDc7Y29sb3I6I2ZmZjtib3gtc2hhZG93OjAgMnB4IDZweCAjNTkzYTIwMzN9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bi5kYW5nZXJ7Y29sb3I6I2MwMzkyYn0uZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRuLmRhbmdlcjpob3ZlcntiYWNrZ3JvdW5kOiNkYzQ2NDYxNDtib3JkZXItY29sb3I6I2RjNDY0NjRkO2NvbG9yOiNhMDI4MTh9LmZpbGUtcHJldmlldy10b29sYmFyLWdyb3Vwe2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6c3RyZXRjaDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6OHB4O292ZXJmbG93OmhpZGRlbjtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpfS5maWxlLXByZXZpZXctdG9vbGJhci1ncm91cCAuZmlsZS1wcmV2aWV3LXRvb2xiYXItYnRue2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MDtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O21pbi13aWR0aDoyOHB4O2hlaWdodDoyOHB4O2JveC1zaGFkb3c6bm9uZX0uZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXAgLmZpbGUtcHJldmlldy10b29sYmFyLWJ0bjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLWJnLXRlcnRpYXJ5KX0uZmlsZS1wcmV2aWV3LXRvb2xiYXItZ3JvdXBsYWJlbHtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3BhZGRpbmc6MCA2cHg7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yaWdodDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpfS5maWxlLXByZXZpZXctdG9vbGJhci5lZGl0aW5ne2dhcDo2cHh9QG1lZGlhKG1heC13aWR0aDo3NjhweCl7LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bntoZWlnaHQ6MjhweDttaW4td2lkdGg6MjhweDtwYWRkaW5nOjAgNnB4fS5maWxlLXByZXZpZXctdG9vbGJhci1idG4gLnRvb2xiYXItdGV4dHtkaXNwbGF5Om5vbmV9LmZpbGUtcHJldmlldy10b29sYmFyLWJ0bi5wcmltYXJ5IC50b29sYmFyLXRleHR7ZGlzcGxheTppbmxpbmUtZmxleH19LndhbmQtaWNvbntmbGV4LXNocmluazowO3ZlcnRpY2FsLWFsaWduOm1pZGRsZX0uY29kZS1wcmV2aWV3LWNvbnRlbnQgcHJlLndyYXB7d2hpdGUtc3BhY2U6cHJlLXdyYXA7d29yZC1icmVhazpicmVhay13b3JkfS5maWxlLXByZXZpZXctYm9keS5lZGl0aW5ne3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpfS5jb2RlLWVkaXRvci13cmFwcGVye2Rpc3BsYXk6ZmxleDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21pbi1oZWlnaHQ6MDtiYWNrZ3JvdW5kOnZhcigtLWJnLXByaW1hcnkpfS5jb2RlLWVkaXRvci10ZXh0YXJlYXtmbGV4OjE7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTttaW4taGVpZ2h0OjA7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MTZweCAyMHB4O21hcmdpbjowO2JvcmRlcjpub25lO291dGxpbmU6bm9uZTtyZXNpemU6bm9uZTtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pO2ZvbnQtc2l6ZTp2YXIoLS1mb250LXNpemUtc20pO2xpbmUtaGVpZ2h0OnZhcigtLWxpbmUtaGVpZ2h0KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JhY2tncm91bmQ6dmFyKC0tYmctcHJpbWFyeSk7dGFiLXNpemU6MjstbW96LXRhYi1zaXplOjI7d2hpdGUtc3BhY2U6cHJlO292ZXJmbG93OmF1dG87Y2FyZXQtY29sb3I6dmFyKC0tYWNjZW50KTtzY3JvbGxiYXItd2lkdGg6dGhpbjtzY3JvbGxiYXItY29sb3I6dmFyKC0tYm9yZGVyLWRlZmF1bHQpIHRyYW5zcGFyZW50fS5jb2RlLWVkaXRvci10ZXh0YXJlYTo6LXdlYmtpdC1zY3JvbGxiYXJ7d2lkdGg6OHB4O2hlaWdodDo4cHh9LmNvZGUtZWRpdG9yLXRleHRhcmVhOjotd2Via2l0LXNjcm9sbGJhci10cmFja3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50fS5jb2RlLWVkaXRvci10ZXh0YXJlYTo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWJ7YmFja2dyb3VuZDp2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czo0cHh9LmNvZGUtZWRpdG9yLXRleHRhcmVhOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOnZhcigtLXRleHQtbXV0ZWQpfS5jb2RlLWVkaXRvci10ZXh0YXJlYTpmb2N1c3tib3gtc2hhZG93Omluc2V0IDAgMCAwIDJweCAjZDQ5ODYzMjZ9LmZpbGUtcHJldmlldy1ib2R5LmtpbmQtaW1hZ2V7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMCwwLDAsLjA0KSAyNSUsdHJhbnNwYXJlbnQgMjUlLHRyYW5zcGFyZW50IDc1JSxyZ2JhKDAsMCwwLC4wNCkgNzUlKSxsaW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgwLDAsMCwuMDQpIDI1JSx0cmFuc3BhcmVudCAyNSUsdHJhbnNwYXJlbnQgNzUlLHJnYmEoMCwwLDAsLjA0KSA3NSUpLHZhcigtLWJnLXByaW1hcnkpO2JhY2tncm91bmQtc2l6ZToxNnB4IDE2cHg7YmFja2dyb3VuZC1wb3NpdGlvbjowIDAsOHB4IDhweH0uaW1hZ2UtcHJldmlldy13cmFwcGVye3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO292ZXJmbG93OmF1dG87cGFkZGluZzoxNnB4fS5pbWFnZS1wcmV2aWV3LWltZ3ttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OjEwMCU7b2JqZWN0LWZpdDpjb250YWluO2N1cnNvcjp6b29tLWluO3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlO2JveC1zaGFkb3c6MCA2cHggMjBweCAjMDAwMDAwMWY7Ym9yZGVyLXJhZGl1czo0cHg7YmFja2dyb3VuZDojZmZmfS5pbWFnZS1wcmV2aWV3LWltZy56b29tZWR7bWF4LXdpZHRoOm5vbmU7bWF4LWhlaWdodDpub25lO2N1cnNvcjp6b29tLW91dDt0cmFuc2Zvcm06c2NhbGUoMSl9LmZpbGUtcHJldmlldy1ib2R5LmtpbmQtcGRme3BhZGRpbmc6MDtiYWNrZ3JvdW5kOnZhcigtLWJnLXNlY29uZGFyeSl9LnBkZi1wcmV2aWV3LWZyYW1le3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpfS5maWxlLXByZXZpZXctYm9keS5raW5kLXZpZGVvLC5maWxlLXByZXZpZXctYm9keS5raW5kLWF1ZGlve2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtiYWNrZ3JvdW5kOiMwZDBkMGR9LmZpbGUtcHJldmlldy1ib2R5LmtpbmQtYXVkaW97YmFja2dyb3VuZDp2YXIoLS1iZy1zZWNvbmRhcnkpfS5tZWRpYS1wcmV2aWV3LXdyYXBwZXJ7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7bWF4LXdpZHRoOjEwMCU7bWF4LWhlaWdodDoxMDAlO3BhZGRpbmc6MjRweH0ubWVkaWEtcHJldmlldy12aWRlb3ttYXgtd2lkdGg6MTAwJTttYXgtaGVpZ2h0OmNhbGMoMTAwJSAtIDQwcHgpO2JhY2tncm91bmQ6IzAwMDtib3JkZXItcmFkaXVzOjRweH0ubWVkaWEtcHJldmlldy1hdWRpb3t3aWR0aDptaW4oNDIwcHgsOTAlKX0ubWVkaWEtcHJldmlldy1pY29ue2ZvbnQtc2l6ZTozLjVyZW07b3BhY2l0eTouN30ubWVkaWEtcHJldmlldy1uYW1le2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtc2l6ZToxcmVtO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0ubWVkaWEtcHJldmlldy1tZXRhe2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNzVyZW07Zm9udC12YXJpYW50LW51bWVyaWM6dGFidWxhci1udW1zfS5maWxlLXByZXZpZXctYm9keS5raW5kLXZpZGVvIC5tZWRpYS1wcmV2aWV3LW1ldGF7Y29sb3I6I2ZmZmZmZmIzfS5maWxlLXByZXZpZXctYm9keS5raW5kLWJpbmFyeXtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXJ9LmJpbmFyeS1wcmV2aWV3LWNhcmR7bWF4LXdpZHRoOjQ4MHB4O3BhZGRpbmc6MzJweCAyOHB4O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6dmFyKC0tYmctc2Vjb25kYXJ5KTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtbGcpO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMHB4fS5iaW5hcnktcHJldmlldy1pY29ue2ZvbnQtc2l6ZTozcmVtO29wYWNpdHk6LjZ9LmJpbmFyeS1wcmV2aWV3LW5hbWV7Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC1zaXplOjFyZW07d29yZC1icmVhazpicmVhay1hbGx9LmJpbmFyeS1wcmV2aWV3LW1ldGF7ZGlzcGxheTpmbGV4O2dhcDo2cHg7YWxpZ24taXRlbXM6Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNzVyZW19LmJpbmFyeS1wcmV2aWV3LXBhdGh7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6Ljc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO21heC13aWR0aDoxMDAlO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcH0uYmluYXJ5LXByZXZpZXctYWN0aW9uc3tkaXNwbGF5OmZsZXg7Z2FwOjhweDttYXJnaW4tdG9wOjhweDtmbGV4LXdyYXA6d3JhcDtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5iaW5hcnktcHJldmlldy1idG57cGFkZGluZzo4cHggMTZweDtib3JkZXItcmFkaXVzOjZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7YmFja2dyb3VuZDp2YXIoLS1iZy1wcmltYXJ5KTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtc2l6ZTouODEyNXJlbTtjdXJzb3I6cG9pbnRlcjt0ZXh0LWRlY29yYXRpb246bm9uZTt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjE1cyxib3JkZXItY29sb3IgLjE1cyxjb2xvciAuMTVzfS5iaW5hcnktcHJldmlldy1idG46aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2NvbG9yOnZhcigtLWFjY2VudCl9LnRyZWUtaXRlbXt0cmFuc2l0aW9uOmFsbCAuMnMgdmFyKC0tZWFzZS1vdXQtZXhwbyl9LnRyZWUtaXRlbTpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlKDRweCl9LnRyZWUtaXRlbTphY3RpdmV7dHJhbnNmb3JtOnRyYW5zbGF0ZSgycHgpIHNjYWxlKC45OSl9LmZpbGUtc2lkZS1wYW5lbHt0cmFuc2l0aW9uOnJpZ2h0IC4zNXMgdmFyKC0tZWFzZS1vdXQtZXhwbyksYm94LXNoYWRvdyAuMzVzIGVhc2V9LmZpbGUtc2lkZS1wYW5lbC5vcGVue2JveC1zaGFkb3c6LThweCAwIDMycHggIzU5M2EyMDFmfS5zcGlubmVye2FuaW1hdGlvbjpzcGluIDFzIGxpbmVhciBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHNwaW57dG97dHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpfX1Aa2V5ZnJhbWVzIGZsb2F0ezAlLHRve3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApfTUwJXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtOHB4KX19LmZsb2F0e2FuaW1hdGlvbjpmbG9hdCAzcyBlYXNlLWluLW91dCBpbmZpbml0ZX0uY2hhdC1tZXNzYWdlLWJ1YmJsZXstd2Via2l0LXVzZXItc2VsZWN0OnRleHQ7dXNlci1zZWxlY3Q6dGV4dH0ubXNnLWNvcHktYnRue2Rpc3BsYXk6bm9uZTtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6LTMycHg7cmlnaHQ6NHB4O3BhZGRpbmc6NHB4IDEwcHg7Zm9udC1zaXplOi43NXJlbTtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItZGVmYXVsdCk7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LW1kKTtjdXJzb3I6cG9pbnRlcjt1c2VyLXNlbGVjdDpub25lOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTt6LWluZGV4OjEwO3doaXRlLXNwYWNlOm5vd3JhcDstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbn0ubXNnLWNvcHktYnRuLnZpc2libGV7ZGlzcGxheTpibG9ja30ubXNnLWNvcHktYnRuLmNvcGllZHtiYWNrZ3JvdW5kOnZhcigtLXN1Y2Nlc3MtbXV0ZWQpO2NvbG9yOnZhcigtLXN1Y2Nlc3MpO2JvcmRlci1jb2xvcjp2YXIoLS1zdWNjZXNzKX0uY2hhdC1tZXNzYWdle3Bvc2l0aW9uOnJlbGF0aXZlfS50ZXJtaW5hbC1qdW1wLWJvdHRvbXt6LWluZGV4OjIwfS5pbnB1dC1jb21wb3Nlci5pbi1mbGlnaHR7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50fS5pbnB1dC1jb21wb3Nlci5pbi1mbGlnaHQ6YmVmb3Jle2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0ycHg7bGVmdDotNjAlO3dpZHRoOjIyMCU7aGVpZ2h0OjNweDtib3JkZXItcmFkaXVzOjE0cHggMTRweCAwIDA7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSAyODBweCA0cHgscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC40NSkgMCUscmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC4xMikgMzUlLHRyYW5zcGFyZW50IDYwJSkgbm8tcmVwZWF0O2JhY2tncm91bmQtc2l6ZToyODBweCA0cHg7YW5pbWF0aW9uOmNvbXBvc2VyV2F2ZVNsaWRlIDdzIGN1YmljLWJlemllciguMzUsMCwuNjUsMSkgaW5maW5pdGU7ei1pbmRleDoyO3BvaW50ZXItZXZlbnRzOm5vbmV9LmlucHV0LWNvbXBvc2VyLmluLWZsaWdodDphZnRlcntjb250ZW50OiIiO3Bvc2l0aW9uOmFic29sdXRlO3RvcDotMnB4O2xlZnQ6LTYwJTt3aWR0aDoyMjAlO2hlaWdodDozcHg7Ym9yZGVyLXJhZGl1czoxNHB4IDE0cHggMCAwO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgMjIwcHggM3B4LHJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuMjUpIDAlLHJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuMDYpIDM1JSx0cmFuc3BhcmVudCA2MCUpIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6MjIwcHggM3B4O2FuaW1hdGlvbjpjb21wb3NlcldhdmVTbGlkZSA5cyBjdWJpYy1iZXppZXIoLjM1LDAsLjY1LDEpIGluZmluaXRlIHJldmVyc2U7ei1pbmRleDoyO3BvaW50ZXItZXZlbnRzOm5vbmV9QGtleWZyYW1lcyBjb21wb3NlcldhdmVTbGlkZXswJXtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAlIGNlbnRlcn10b3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgY2VudGVyfX0uc3RydWN0dXJlZC1zdGF0dXMtYmFye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO2dhcDo1cHg7bWFyZ2luOjAgMCAwIGF1dG87cGFkZGluZzo0cHggOHB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Ym9yZGVyOm5vbmU7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZSxjb2xvciAuM3MgZWFzZTtvdmVyZmxvdzpoaWRkZW47ZmxleC1zaHJpbms6MH0uc3RydWN0dXJlZC1zdGF0dXMtYmFyIC5zdGF0dXMtYmFyLWRvdHt3aWR0aDo1cHg7aGVpZ2h0OjVweDtib3JkZXItcmFkaXVzOjUwJTtiYWNrZ3JvdW5kOnJnYmEodmFyKC0tYWNjZW50LXJnYiwgMTk3LCAxMDEsIDYxKSwuOCk7YW5pbWF0aW9uOnN0YXR1c0RvdFB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7ZmxleC1zaHJpbms6MH1Aa2V5ZnJhbWVzIHN0YXR1c0RvdFB1bHNlezAlLHRve29wYWNpdHk6LjQ7dHJhbnNmb3JtOnNjYWxlKC45KX01MCV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxLjEpfX0uc3RydWN0dXJlZC1zdGF0dXMtYmFyIC5zdGF0dXMtYmFyLWxhYmVse2ZsZXgtc2hyaW5rOjA7Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNjI1cmVtfS5zdHJ1Y3R1cmVkLXN0YXR1cy1iYXIgLnN0YXR1cy1iYXItdGltZXJ7ZmxleC1zaHJpbms6MDtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXM7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6LjYyNXJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uc3RydWN0dXJlZC1zdGF0dXMtYmFyLmNvbXBsZXRlZHthbmltYXRpb246c3RhdHVzQmFyRmFkZU91dCAycyBlYXNlLW91dCAxcyBmb3J3YXJkc30uc3RydWN0dXJlZC1zdGF0dXMtYmFyLmNvbXBsZXRlZCAuc3RhdHVzLWJhci1sYWJlbHtjb2xvcjp2YXIoLS1zdWNjZXNzKX1Aa2V5ZnJhbWVzIHN0YXR1c0JhckZhZGVPdXR7MCV7b3BhY2l0eToxO21heC1oZWlnaHQ6MjBweH03MCV7b3BhY2l0eTowO21heC1oZWlnaHQ6MjBweH10b3tvcGFjaXR5OjA7bWF4LWhlaWdodDowO21hcmdpbjowfX0uY3Jvc3Mtc2Vzc2lvbi1xdWV1ZXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHg7bWFyZ2luOjAgOHB4IDRweH0ucXVldWUtaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDtwYWRkaW5nOjAgNHB4O2ZvbnQtc2l6ZTouNnJlbTtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ucXVldWUtaGVhZGVyLWxhYmVse2ZsZXg6MTtvcGFjaXR5Oi42fS5xdWV1ZS1oZWFkZXItY2xlYXJ7Ym9yZGVyOm5vbmU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtjdXJzb3I6cG9pbnRlcjtmb250LXNpemU6LjU2MjVyZW07cGFkZGluZzoxcHggNHB4O2JvcmRlci1yYWRpdXM6M3B4O29wYWNpdHk6LjU7dHJhbnNpdGlvbjpjb2xvciAuMTVzLGJhY2tncm91bmQgLjE1cyxvcGFjaXR5IC4xNXN9LnF1ZXVlLWhlYWRlci1jbGVhcjpob3Zlcntjb2xvcjp2YXIoLS1lcnJvciwgI2U1NSk7YmFja2dyb3VuZDojZTU1NTU1MWY7b3BhY2l0eToxfS5xdWV1ZS1pdGVte2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjRweCA4cHg7Zm9udC1zaXplOi42ODc1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO29wYWNpdHk6Ljc7dHJhbnNpdGlvbjpvcGFjaXR5IC4xNXMgZWFzZX0ucXVldWUtaXRlbTpob3ZlcntvcGFjaXR5OjF9LnF1ZXVlLWl0ZW0tZG90e2ZsZXgtc2hyaW5rOjA7d2lkdGg6NHB4O2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjYpO2FuaW1hdGlvbjpzdGF0dXNEb3RQdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlfS5xdWV1ZS1pdGVtLXRleHR7ZmxleDoxO21pbi13aWR0aDowO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LXNpemU6LjY4NzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LnF1ZXVlLWl0ZW0tYWdle2ZsZXgtc2hyaW5rOjA7Zm9udC1zaXplOi41NjI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtdmFyaWFudC1udW1lcmljOnRhYnVsYXItbnVtcztvcGFjaXR5Oi41fS5xdWV1ZS1pdGVtLXNlbmQtbm93e2ZsZXgtc2hyaW5rOjA7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjMpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6dmFyKC0tYWNjZW50LCAjYzU2NTNkKTtjdXJzb3I6cG9pbnRlcjtwYWRkaW5nOjFweCA4cHg7Ym9yZGVyLXJhZGl1czo0cHg7Zm9udC1zaXplOi42cmVtO2xpbmUtaGVpZ2h0OjEuNDt0cmFuc2l0aW9uOmNvbG9yIC4xNXMsYmFja2dyb3VuZCAuMTVzLGJvcmRlci1jb2xvciAuMTVzfS5xdWV1ZS1pdGVtLXNlbmQtbm93OmhvdmVye2NvbG9yOnZhcigtLWFjY2VudCwgI2M1NjUzZCk7YmFja2dyb3VuZDpyZ2JhKHZhcigtLWFjY2VudC1yZ2IsIDE5NywgMTAxLCA2MSksLjEyKTtib3JkZXItY29sb3I6cmdiYSh2YXIoLS1hY2NlbnQtcmdiLCAxOTcsIDEwMSwgNjEpLC41KX0ucXVldWUtaXRlbS1jYW5jZWx7ZmxleC1zaHJpbms6MDtib3JkZXI6bm9uZTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO3BhZGRpbmc6MXB4IDRweDtib3JkZXItcmFkaXVzOjNweDtmb250LXNpemU6LjY4NzVyZW07bGluZS1oZWlnaHQ6MTtvcGFjaXR5Oi40O3RyYW5zaXRpb246Y29sb3IgLjE1cyxiYWNrZ3JvdW5kIC4xNXMsb3BhY2l0eSAuMTVzfS5xdWV1ZS1pdGVtLWNhbmNlbDpob3Zlcntjb2xvcjp2YXIoLS1lcnJvciwgI2U1NSk7YmFja2dyb3VuZDojZTU1NTU1MWY7b3BhY2l0eToxfS5zZXR0aW5ncy1jYXJkLWhlYWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjEycHg7bWFyZ2luLWJvdHRvbToxNHB4fS5zZXR0aW5ncy1jYXJkLWljb257ZmxleDowIDAgYXV0bzt3aWR0aDozNnB4O2hlaWdodDozNnB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czoxMHB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjYzU2NTNkMmUsI2M1NjUzZDBmKTtjb2xvcjp2YXIoLS1hY2NlbnQpO2ZvbnQtc2l6ZToxOHB4O2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMXB4ICNjNTY1M2QyZX0uc2V0dGluZ3MtY2FyZC1oZWFkLXRleHR7ZmxleDoxO21pbi13aWR0aDowO2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjJweH0uc2V0dGluZ3MtY2FyZC10aXRsZXtmb250LXNpemU6LjkzNzVyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGV0dGVyLXNwYWNpbmc6LjAwNWVtO2xpbmUtaGVpZ2h0OjEuMzttYXJnaW46MH0uc2V0dGluZ3MtY2FyZC1kZXNje2ZvbnQtc2l6ZTouNzVyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGluZS1oZWlnaHQ6MS41O21hcmdpbjowfS5zZXR0aW5ncy1jYXJkLWFjdGlvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7bWFyZ2luLXRvcDo2cHh9LnNldHRpbmdzLWNhcmQtYWN0aW9ucyAuYnRue21pbi13aWR0aDoxMjBweH0uc2V0dGluZ3Mtc3VjY2Vzcy1tZXNzYWdle2NvbG9yOnZhcigtLXN1Y2Nlc3MpfS5zZXR0aW5ncy1zZWN0aW9uLWhlYWR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7Z2FwOjEwcHg7bWFyZ2luLWJvdHRvbToxMnB4fS5zZXR0aW5ncy1zZWN0aW9uLWljb257ZmxleDowIDAgYXV0bzt3aWR0aDoyOHB4O2hlaWdodDoyOHB4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojYzU2NTNkMWE7Zm9udC1zaXplOjE0cHh9LnNldHRpbmdzLXNlY3Rpb24taGVhZC10ZXh0e2ZsZXg6MTttaW4td2lkdGg6MDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoycHh9LnNldHRpbmdzLXNlY3Rpb24taGVhZGluZ3tmb250LXNpemU6Ljg3NXJlbTtmb250LXdlaWdodDo3MDA7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KTtsZXR0ZXItc3BhY2luZzouMDA1ZW07bGluZS1oZWlnaHQ6MS4zO21hcmdpbjowfS5zZXR0aW5ncy1zZWN0aW9uLXN1Yntmb250LXNpemU6LjcycmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNTttYXJnaW46MH0uc2V0dGluZ3MtdG9nZ2xlLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxNHB4O3BhZGRpbmc6MTJweCAxNHB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiNmZmZmZmY4Yztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xKTttYXJnaW4tdG9wOjEwcHh9LnNldHRpbmdzLXRvZ2dsZS1yb3crLnNldHRpbmdzLXRvZ2dsZS1yb3csLnNldHRpbmdzLXRvZ2dsZS1yb3crLnNldHRpbmdzLXJhbmdlLXJvdywuc2V0dGluZ3MtcmFuZ2Utcm93Ky5zZXR0aW5ncy10b2dnbGUtcm93e21hcmdpbi10b3A6OHB4fS5zZXR0aW5ncy10b2dnbGUtdGV4dHtmbGV4OjE7bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6M3B4fS5zZXR0aW5ncy10b2dnbGUtdGl0bGV7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2N1cnNvcjpwb2ludGVyfS5zZXR0aW5ncy10b2dnbGUtZGVzY3tmb250LXNpemU6LjcycmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2xpbmUtaGVpZ2h0OjEuNX0uc2V0dGluZ3Mtc3dpdGNoe3Bvc2l0aW9uOnJlbGF0aXZlO2ZsZXg6MCAwIGF1dG87Y3Vyc29yOnBvaW50ZXI7ZGlzcGxheTppbmxpbmUtYmxvY2t9LnNldHRpbmdzLXRvZ2dsZS1hc2lkZXtmbGV4OjAgMCBhdXRvO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHh9LmVudi1wcmV2aWV3LW1vZGFse21heC13aWR0aDo3MjBweH0uZW52LXByZXZpZXctYm9keXtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDoxMnB4O3BhZGRpbmc6MThweCAyNHB4IDhweDttaW4taGVpZ2h0OjB9LmVudi1wcmV2aWV3LXRvb2xiYXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6MTJweDtmbGV4LXdyYXA6d3JhcH0uZW52LXByZXZpZXctbWV0YXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2ZvbnQtc2l6ZTouNzhyZW07Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpfS5lbnYtcHJldmlldy1waWxse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MnB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtZnVsbCk7Zm9udC1zaXplOi43MnJlbTtmb250LXdlaWdodDo2MDA7bGV0dGVyLXNwYWNpbmc6LjAyZW07Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKX0uZW52LXByZXZpZXctcGlsbC5pcy1pbmhlcml0e2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQtbXV0ZWQpO2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpfS5lbnYtcHJldmlldy1waWxsLmlzLW1pbmltYWx7Y29sb3I6dmFyKC0tc3VjY2Vzcyk7YmFja2dyb3VuZDp2YXIoLS1zdWNjZXNzLW11dGVkKTtib3JkZXItY29sb3I6dmFyKC0tc3VjY2Vzcyl9LmVudi1wcmV2aWV3LWNvdW50e2ZvbnQtc2l6ZTouNzJyZW07Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCl9LmVudi1wcmV2aWV3LWNvbnRyb2xze2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjEwcHg7ZmxleC13cmFwOndyYXB9LmVudi1wcmV2aWV3LXNlYXJjaHt3aWR0aDoyMDBweDttYXgtd2lkdGg6MTAwJTtwYWRkaW5nOjZweCAxMHB4O2JvcmRlci1yYWRpdXM6dmFyKC0tcmFkaXVzLXNtKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlcik7YmFja2dyb3VuZDp2YXIoLS1iZy1lbGV2YXRlZCk7Zm9udC1zaXplOi43OHJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpfS5lbnYtcHJldmlldy1zZWFyY2g6Zm9jdXN7b3V0bGluZTpub25lO2JvcmRlci1jb2xvcjp2YXIoLS1ib3JkZXItZm9jdXMpO2JveC1zaGFkb3c6MCAwIDAgM3B4IHZhcigtLWFjY2VudC1nbG93KX0uZW52LXByZXZpZXctcmV2ZWFse2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Zm9udC1zaXplOi43NHJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Y3Vyc29yOnBvaW50ZXI7dXNlci1zZWxlY3Q6bm9uZX0uZW52LXByZXZpZXctcmV2ZWFsIGlucHV0e2FjY2VudC1jb2xvcjp2YXIoLS1hY2NlbnQpO2N1cnNvcjpwb2ludGVyfS5lbnYtcHJldmlldy1saXN0e21heC1oZWlnaHQ6bWluKDU2dmgsNDYwcHgpO292ZXJmbG93LXk6YXV0bztib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1zbSk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtwYWRkaW5nOjRweH0uZW52LXByZXZpZXctbGlzdDpmb2N1c3tvdXRsaW5lOm5vbmV9LmVudi1wcmV2aWV3LXJvd3tkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOm1pbm1heCgwLDIyMHB4KSBtaW5tYXgoMCwxZnIpIGF1dG87Z2FwOjEycHg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6OHB4IDEwcHg7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMteHMpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgdWktbW9ub3NwYWNlLCAiU0YgTW9ubyIsIE1lbmxvLCBDb25zb2xhcywgbW9ub3NwYWNlKTtmb250LXNpemU6Ljc0cmVtO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTJzfS5lbnYtcHJldmlldy1yb3c6aG92ZXJ7YmFja2dyb3VuZDp2YXIoLS1iZy10ZXJ0aWFyeSl9LmVudi1wcmV2aWV3LXJvdysuZW52LXByZXZpZXctcm93e2JvcmRlci10b3A6MXB4IGRhc2hlZCB2YXIoLS1ib3JkZXItc3VidGxlKX0uZW52LXByZXZpZXctbmFtZXtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtd2VpZ2h0OjYwMDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6NnB4O2ZsZXgtd3JhcDp3cmFwO292ZXJmbG93LXdyYXA6YW55d2hlcmV9LmVudi1wcmV2aWV3LXJvdy5pcy1zZW5zaXRpdmUgLmVudi1wcmV2aWV3LW5hbWV7Y29sb3I6dmFyKC0td2FybmluZyl9LmVudi1wcmV2aWV3LWJhZGdle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO3BhZGRpbmc6MXB4IDZweDtib3JkZXItcmFkaXVzOnZhcigtLXJhZGl1cy1mdWxsKTtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtc2l6ZTouNjJyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wNGVtO2JhY2tncm91bmQ6dmFyKC0td2FybmluZy1tdXRlZCk7Y29sb3I6dmFyKC0td2FybmluZyk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS13YXJuaW5nKX0uZW52LXByZXZpZXctYmFkZ2UtcnVudGltZXtiYWNrZ3JvdW5kOnZhcigtLWluZm8tbXV0ZWQpO2NvbG9yOnZhcigtLWluZm8pO2JvcmRlci1jb2xvcjp2YXIoLS1pbmZvKX0uZW52LXByZXZpZXctdmFsdWV7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDttaW4td2lkdGg6MH0uZW52LXByZXZpZXctdmFsdWUuaXMtcnVudGltZXtmb250LXN0eWxlOml0YWxpYztjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0uZW52LXByZXZpZXctbGVue2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNjhyZW07d2hpdGUtc3BhY2U6bm93cmFwfS5lbnYtcHJldmlldy1sb2FkaW5nLC5lbnYtcHJldmlldy1lbXB0eXtwYWRkaW5nOjI0cHggOHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZvbnQtc2l6ZTouNzhyZW19LmVudi1wcmV2aWV3LWZvb3RlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMnB4O3BhZGRpbmc6MTRweCAyNHB4IDE4cHh9LmVudi1wcmV2aWV3LWhpbnR7Zm9udC1zaXplOi43cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2ZsZXg6MTttaW4td2lkdGg6MH1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsuZW52LXByZXZpZXctbW9kYWx7bWF4LXdpZHRoOmNhbGMoMTAwdncgLSAyNHB4KX0uZW52LXByZXZpZXctcm93e2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjRweH0uZW52LXByZXZpZXctbGVue2p1c3RpZnktc2VsZjplbmR9LmVudi1wcmV2aWV3LXNlYXJjaCwuZW52LXByZXZpZXctY29udHJvbHN7d2lkdGg6MTAwJX19LnNldHRpbmdzLXJhbmdlLXJvd3tkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxMnB4O3BhZGRpbmc6MTJweCAxNHB4O2JvcmRlci1yYWRpdXM6MTJweDtiYWNrZ3JvdW5kOiNmZmZmZmY4Yztib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xKTttYXJnaW4tdG9wOjhweH0uc2V0dGluZ3MtcmFuZ2UtbGFiZWx7Zm9udC1zaXplOi44MTI1cmVtO2ZvbnQtd2VpZ2h0OjYwMDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZsZXg6MCAwIGF1dG87bWFyZ2luLWJvdHRvbTowfS5zZXR0aW5ncy1yYW5nZXtmbGV4OjE7bWluLXdpZHRoOjA7YWNjZW50LWNvbG9yOnZhcigtLWFjY2VudCl9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2V7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO2hlaWdodDoyMnB4O2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowO21hcmdpbjowOy0tcmFuZ2UtZmlsbDogNTAlfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOjotd2Via2l0LXNsaWRlci1ydW5uYWJsZS10cmFja3toZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LHZhcigtLWFjY2VudCkgMCUsdmFyKC0tYWNjZW50KSB2YXIoLS1yYW5nZS1maWxsLCA1MCUpLHJnYmEoMTI1LDkxLDU3LC4yKSB2YXIoLS1yYW5nZS1maWxsLCA1MCUpLHJnYmEoMTI1LDkxLDU3LC4yKSAxMDAlKTtib3JkZXI6bm9uZX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTo6LXdlYmtpdC1zbGlkZXItdGh1bWJ7LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7YXBwZWFyYW5jZTpub25lO3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmO2JvcmRlcjpub25lO2JveC1zaGFkb3c6MCAycHggNnB4ICMxNDBlMDgzOCwwIDAgMCAuNXB4ICM3ZDViMzkxYTttYXJnaW4tdG9wOi04cHg7dHJhbnNpdGlvbjp0cmFuc2Zvcm0gLjE2cyBlYXNlLGJveC1zaGFkb3cgLjE2cyBlYXNlfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOmhvdmVyOjotd2Via2l0LXNsaWRlci10aHVtYnt0cmFuc2Zvcm06c2NhbGUoMS4wOCl9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6YWN0aXZlOjotd2Via2l0LXNsaWRlci10aHVtYnt0cmFuc2Zvcm06c2NhbGUoMS4xNik7Ym94LXNoYWRvdzowIDRweCAxMHB4ICMxNDBlMDg0NywwIDAgMCA4cHggI2M1NjUzZDFmLDAgMCAwIC41cHggIzdkNWIzOTFhfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOmZvY3VzLXZpc2libGU6Oi13ZWJraXQtc2xpZGVyLXRodW1ie2JveC1zaGFkb3c6MCAycHggNnB4ICMxNDBlMDgzOCwwIDAgMCA0cHggdmFyKC0tYWNjZW50LW11dGVkKSwwIDAgMCAuNXB4ICM3ZDViMzkxYX1pbnB1dFt0eXBlPXJhbmdlXS5zZXR0aW5ncy1yYW5nZTo6LW1vei1yYW5nZS10cmFja3toZWlnaHQ6NHB4O2JvcmRlci1yYWRpdXM6MnB4O2JhY2tncm91bmQ6IzdkNWIzOTMzO2JvcmRlcjpub25lfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOjotbW96LXJhbmdlLXByb2dyZXNze2hlaWdodDo0cHg7Ym9yZGVyLXJhZGl1czoycHg7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2JvcmRlcjpub25lfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOjotbW96LXJhbmdlLXRodW1ie3dpZHRoOjIwcHg7aGVpZ2h0OjIwcHg7Ym9yZGVyOm5vbmU7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDojZmZmO2N1cnNvcjpwb2ludGVyO2JveC1zaGFkb3c6MCAycHggNnB4ICMxNDBlMDgzOCwwIDAgMCAuNXB4ICM3ZDViMzkxYTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMTZzIGVhc2V9aW5wdXRbdHlwZT1yYW5nZV0uc2V0dGluZ3MtcmFuZ2U6aG92ZXI6Oi1tb3otcmFuZ2UtdGh1bWJ7dHJhbnNmb3JtOnNjYWxlKDEuMDgpfWlucHV0W3R5cGU9cmFuZ2VdLnNldHRpbmdzLXJhbmdlOmFjdGl2ZTo6LW1vei1yYW5nZS10aHVtYnt0cmFuc2Zvcm06c2NhbGUoMS4xNil9LnNldHRpbmdzLXJhbmdlLXZhbHVle2ZsZXg6MCAwIDQ0cHg7dGV4dC1hbGlnbjpyaWdodDtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtmb250LXZhcmlhbnQtbnVtZXJpYzp0YWJ1bGFyLW51bXN9LnNldHRpbmdzLXJvdy13aXRoLWFjdGlvbntkaXNwbGF5OmZsZXg7Z2FwOjhweDthbGlnbi1pdGVtczpzdHJldGNofS5zZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24+LmZpZWxkLWlucHV0LC5zZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24+LmZpZWxkLXNlbGVjdCwuc2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9uPnNlbGVjdHtmbGV4OjE7bWluLXdpZHRoOjB9LnNldHRpbmdzLXJvdy13aXRoLWFjdGlvbj4uYnRue2ZsZXgtc2hyaW5rOjB9LnNldHRpbmdzLWFib3V0LXJvdy1hY3Rpb257ZmxleC13cmFwOm5vd3JhcH0uc2V0dGluZ3MtdmFsdWUtZmxleHtmbGV4OjE7dGV4dC1hbGlnbjpyaWdodH0uZmlsZS1waWNrZXJ7cG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MTJweDtwYWRkaW5nOjZweCAxMnB4IDZweCA2cHg7YmFja2dyb3VuZDojZmZmZmZmYjg7Ym9yZGVyOjFweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjI1KTtib3JkZXItcmFkaXVzOjEycHg7dHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE4cyxiYWNrZ3JvdW5kIC4xOHN9LmZpbGUtcGlja2VyOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQtc29mdCwgcmdiYSgxOTcsIDEwMSwgNjEsIC40NSkpO2JhY2tncm91bmQ6I2ZmZmZmZmU2fS5maWxlLXBpY2tlci5maWxlLXBpY2tlci1oYXMtZmlsZXtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOiNjNTY1M2Q1OTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsI2M1NjUzZDE0LCNmZmZmZmZkOSl9LmZpbGUtcGlja2VyLWlucHV0e3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjFweDtoZWlnaHQ6MXB4O29wYWNpdHk6MDtwb2ludGVyLWV2ZW50czpub25lfS5maWxlLXBpY2tlci10cmlnZ2Vye2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7cGFkZGluZzo4cHggMTRweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxMzVkZWcsdmFyKC0tYWNjZW50KSxjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hY2NlbnQpIDgwJSwjMDAwIDAlKSk7Y29sb3I6I2ZmZjtmb250LXNpemU6LjgxMjVyZW07Zm9udC13ZWlnaHQ6NjAwO2JvcmRlci1yYWRpdXM6OXB4O2N1cnNvcjpwb2ludGVyO2ZsZXgtc2hyaW5rOjA7dHJhbnNpdGlvbjpmaWx0ZXIgLjE1cyx0cmFuc2Zvcm0gLjE1cyxib3gtc2hhZG93IC4xNXM7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3cteHMpO3VzZXItc2VsZWN0Om5vbmV9LmZpbGUtcGlja2VyLXRyaWdnZXI6aG92ZXJ7ZmlsdGVyOmJyaWdodG5lc3MoMS4wNSk7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym94LXNoYWRvdzp2YXIoLS1zaGFkb3ctc20pfS5maWxlLXBpY2tlci10cmlnZ2VyOmFjdGl2ZXt0cmFuc2Zvcm06dHJhbnNsYXRlWSgwKX0uZmlsZS1waWNrZXItaW5wdXQ6Zm9jdXMtdmlzaWJsZSsuZmlsZS1waWNrZXItdHJpZ2dlcntvdXRsaW5lOjJweCBzb2xpZCB2YXIoLS1hY2NlbnQpO291dGxpbmUtb2Zmc2V0OjJweH0uZmlsZS1waWNrZXItaWNvbnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4O2ZsZXgtc2hyaW5rOjB9LmZpbGUtcGlja2VyLWxhYmVse3doaXRlLXNwYWNlOm5vd3JhcH0uZmlsZS1waWNrZXItbmFtZXtmbGV4OjE7bWluLXdpZHRoOjA7Zm9udC1zaXplOi44MTI1cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8pfS5maWxlLXBpY2tlci5maWxlLXBpY2tlci1oYXMtZmlsZSAuZmlsZS1waWNrZXItbmFtZXtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2ZvbnQtd2VpZ2h0OjUwMH0uc2V0dGluZ3MtYXBwLWljb24tYmxvY2t7bWFyZ2luLWJvdHRvbToxOHB4fS5zZXR0aW5ncy1hcHAtaWNvbi1waWNrZXJ7ZGlzcGxheTpmbGV4O2dhcDoxMnB4O2ZsZXgtd3JhcDp3cmFwfS5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb257ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweDtwYWRkaW5nOjEwcHg7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQ6I2ZmZmZmZjhjO2JvcmRlcjoxcHggc29saWQgcmdiYSgxMjUsOTEsNTcsLjEyKTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmJvcmRlci1jb2xvciAuMThzLGJhY2tncm91bmQgLjE4cyx0cmFuc2Zvcm0gLjE4cyxib3gtc2hhZG93IC4xOHM7bWluLXdpZHRoOjg0cHh9LnNldHRpbmdzLWFwcC1pY29uLW9wdGlvbjpob3Zlcnt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMXB4KTtib3JkZXItY29sb3I6I2M1NjUzZDRkO2JhY2tncm91bmQ6I2ZmZmZmZmM3O2JveC1zaGFkb3c6dmFyKC0tc2hhZG93LXhzKX0uc2V0dGluZ3MtYXBwLWljb24tb3B0aW9uLnNlbGVjdGVkLC5zZXR0aW5ncy1hcHAtaWNvbi1vcHRpb25bYXJpYS1wcmVzc2VkPXRydWVde2JvcmRlci1jb2xvcjp2YXIoLS1hY2NlbnQpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDEzNWRlZywjYzU2NTNkMjQsI2M1NjUzZDBhKTtib3gtc2hhZG93Omluc2V0IDAgMCAwIDFweCAjYzU2NTNkMzN9LnNldHRpbmdzLWFwcC1pY29uLXByZXZpZXd7d2lkdGg6NTZweDtoZWlnaHQ6NTZweDtib3JkZXItcmFkaXVzOjEycHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQ6dmFyKC0tYmctdGVydGlhcnkpO2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcn0uc2V0dGluZ3MtYXBwLWljb24tbGFiZWx7Zm9udC1zaXplOi43MnJlbTtjb2xvcjp2YXIoLS10ZXh0LXNlY29uZGFyeSk7Zm9udC13ZWlnaHQ6NTAwfS5zZXR0aW5ncy1jb25uZWN0LXVybC10ZXh0e2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbW9ubywgbW9ub3NwYWNlKTtmb250LXNpemU6MTJweDtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO3dvcmQtYnJlYWs6YnJlYWstYWxsO3VzZXItc2VsZWN0OmFsbDstd2Via2l0LXVzZXItc2VsZWN0OmFsbH1AbWVkaWEobWF4LXdpZHRoOjY0MHB4KXsuc2V0dGluZ3MtdG9nZ2xlLXJvdywuc2V0dGluZ3MtcmFuZ2Utcm93e3BhZGRpbmc6MTBweCAxMnB4fS5zZXR0aW5ncy10b2dnbGUtcm93e2ZsZXgtd3JhcDp3cmFwfS5zZXR0aW5ncy1jYXJkLWFjdGlvbnN7anVzdGlmeS1jb250ZW50OnN0cmV0Y2h9LnNldHRpbmdzLWNhcmQtYWN0aW9ucyAuYnRue2ZsZXg6MTttaW4td2lkdGg6MH0uZmlsZS1waWNrZXJ7ZmxleC13cmFwOndyYXA7cGFkZGluZzo4cHh9LmZpbGUtcGlja2VyLXRyaWdnZXJ7ZmxleDoxIDEgYXV0bztqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyfS5maWxlLXBpY2tlci1uYW1le2ZsZXg6MSAxIDEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzowIDRweH0uc2V0dGluZ3Mtcm93LXdpdGgtYWN0aW9ue2ZsZXgtd3JhcDp3cmFwfS5zZXR0aW5ncy1yb3ctd2l0aC1hY3Rpb24+LmJ0bntmbGV4OjF9fS50b3BiYXItZ2l0LXNsb3R7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXJ9LnRvcGJhci1naXQtc2xvdDplbXB0eXtkaXNwbGF5Om5vbmV9LnRvcGJhci1naXQtYmFkZ2V7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDtoZWlnaHQ6MzJweDtwYWRkaW5nOjAgMTBweDtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouNzJyZW07Zm9udC13ZWlnaHQ6NTAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2JvcmRlcjoxcHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXJhZGl1czp2YXIoLS1yYWRpdXMtc20pO2N1cnNvcjpwb2ludGVyO3doaXRlLXNwYWNlOm5vd3JhcDt0cmFuc2l0aW9uOmFsbCB2YXIoLS10cmFuc2l0aW9uLWZhc3QpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtsaW5lLWhlaWdodDoxfS50b3BiYXItZ2l0LWJhZGdlOmhvdmVye2JhY2tncm91bmQ6I2ZmZmZmZjgwO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSl9LnRvcGJhci1naXQtYmFkZ2U6YWN0aXZle3RyYW5zZm9ybTpzY2FsZSguOTYpfS50b3BiYXItZ2l0LWljb257ZmxleC1zaHJpbms6MDtvcGFjaXR5Oi44NX0udG9wYmFyLWdpdC1icmFuY2h7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtd2VpZ2h0OjYwMDttYXgtd2lkdGg6MTJlbTtvdmVyZmxvdzpoaWRkZW47dGV4dC1vdmVyZmxvdzplbGxpcHNpc30udG9wYmFyLWdpdC1jb3VudHtjb2xvcjp2YXIoLS1hY2NlbnQpO2ZvbnQtd2VpZ2h0OjcwMDtmb250LWZhbWlseTp2YXIoLS1mb250LW1vbm8sIG1vbm9zcGFjZSl9LnRvcGJhci1naXQtY2xlYW57Y29sb3I6IzNjYTA1YWQ5O2ZvbnQtd2VpZ2h0OjcwMDtmb250LXNpemU6Ljc4cmVtfS5xdWljay1jb21taXQtbW9kYWx7bWF4LXdpZHRoOjU0MHB4fS5xdWljay1jb21taXQtbW9kYWwgLm1vZGFsLWJvZHl7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTJweH0ucWMtZW1wdHl7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7cGFkZGluZzo2cHggMDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXN0eWxlOml0YWxpY30ucWMtZmlsZS1yb3d7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OXB4O2xpbmUtaGVpZ2h0OjEuNjtwYWRkaW5nOjFweCAycHg7Ym9yZGVyLXJhZGl1czo1cHh9LnFjLWZpbGUtcm93OmhvdmVye2JhY2tncm91bmQ6IzdkNWIzOTBmfS5xYy1maWxlLWJhZGdle2ZsZXgtc2hyaW5rOjA7d2lkdGg6MTdweDtoZWlnaHQ6MTdweDtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2JvcmRlci1yYWRpdXM6NHB4O2ZvbnQtc2l6ZTouNjZyZW07Zm9udC13ZWlnaHQ6ODAwO2xldHRlci1zcGFjaW5nOjA7bGluZS1oZWlnaHQ6MTtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpfS5xYy1iYWRnZS1hZGR7Y29sb3I6IzIyODA0MmZhO2JhY2tncm91bmQ6IzNjYTA1YTI5fS5xYy1iYWRnZS1tb2R7Y29sb3I6I2FhNmUwZWZhO2JhY2tncm91bmQ6I2RjOTYxZTI5fS5xYy1iYWRnZS1kZWx7Y29sb3I6I2JlMzgzOGZhO2JhY2tncm91bmQ6I2M4NDY0NjI2fS5xYy1iYWRnZS1yZW57Y29sb3I6IzRlNjRiY2ZhO2JhY2tncm91bmQ6IzZlODJjODI5fS5xYy1iYWRnZS11bnRyYWNrZWR7Y29sb3I6IzIyODA0MmYyO2JhY2tncm91bmQ6IzNjYTA1YTFmfS5xYy1iYWRnZS1pZ25vcmVkLC5xYy1iYWRnZS1vdGhlcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtiYWNrZ3JvdW5kOiM3ODc4NzgxZn0ucWMtZmlsZS1wYXRoe292ZXJmbG93OmhpZGRlbjt0ZXh0LW92ZXJmbG93OmVsbGlwc2lzO3doaXRlLXNwYWNlOm5vd3JhcDtmbGV4OjEgMSBhdXRvO21pbi13aWR0aDowfS5xYy1maWxlLWRpcntjb2xvcjp2YXIoLS10ZXh0LW11dGVkKX0ucWMtZmlsZS1uYW1le2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Zm9udC13ZWlnaHQ6NTAwfS5xYy1zdWJtb2R1bGUtYmFkZ2V7ZmxleC1zaHJpbms6MDtwYWRkaW5nOjFweCA2cHg7Ym9yZGVyLXJhZGl1czo4cHg7YmFja2dyb3VuZDojOGM2NGM4Mjk7Y29sb3I6IzZlNDZiNGYyO2ZvbnQtc2l6ZTouNjhyZW07Zm9udC13ZWlnaHQ6NjAwO2xldHRlci1zcGFjaW5nOi4wMmVtO3doaXRlLXNwYWNlOm5vd3JhcH0ucWMtbWVzc2FnZS1oZWFkZXJ7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjtnYXA6OHB4fS5xYy1haS1idG57ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjVweDtjb2xvcjp2YXIoLS1hY2NlbnQpfS5xYy1haS1idG4gc3Zne2NvbG9yOnZhcigtLWFjY2VudCk7ZmxleC1zaHJpbms6MH0ucWMtYWktYnRuOmRpc2FibGVke29wYWNpdHk6LjU7Y3Vyc29yOm5vdC1hbGxvd2VkO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5xYy1haS1idG46ZGlzYWJsZWQgc3Zne2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpfS5xYy1tZXNzYWdlLWlucHV0e3Jlc2l6ZTp2ZXJ0aWNhbDttaW4taGVpZ2h0OjY4cHg7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZTouODRyZW07bGluZS1oZWlnaHQ6MS41NX0ucWMtdGFnLWZpZWxkLWlucHV0e2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZTouODJyZW19LnFjLXRhZy1maWVsZC1pbnB1dDpkaXNhYmxlZHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtiYWNrZ3JvdW5kOiM3ZDViMzkwYTtib3JkZXItY29sb3I6IzdkNWIzOTE0O2N1cnNvcjpkZWZhdWx0O2JveC1zaGFkb3c6bm9uZX0ucXVpY2stY29tbWl0LW1vZGFsIC53b3JrdHJlZS1tZXJnZS1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7Z2FwOjhweDttYXJnaW4tdG9wOjRweH0ucXVpY2stY29tbWl0LW1vZGFsIC5tb2RhbC1ib2R5e2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjE0cHh9LnFjLXNlY3Rpb24tdGl0bGV7Zm9udC1zaXplOi43MnJlbTtmb250LXdlaWdodDo3MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOi4wN2VtO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KX0ucXVpY2stY29tbWl0LW1vZGFse21heC13aWR0aDo2MjBweH0ucXVpY2stY29tbWl0LW1vZGFsIC5tb2RhbC1ib2R5e2dhcDowfS5xYy1yZWxlYXNlLXBhbmVsLC5xYy1yZXN1bHQtcGFuZWx7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6MTRweH0ucWMtcGFpcntkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjcycHggbWlubWF4KDAsMWZyKTtnYXA6MTJweDthbGlnbi1pdGVtczpzdGFydH0ucWMtcGFpci1sYWJlbHtwYWRkaW5nLXRvcDo5cHg7Zm9udC1zaXplOi43MnJlbTtmb250LXdlaWdodDo4MDA7Y29sb3I6dmFyKC0tdGV4dC1tdXRlZCk7bGV0dGVyLXNwYWNpbmc6LjA2ZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5xYy1wYWlyLWZsb3d7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwuOWZyKSAyNHB4IG1pbm1heCgwLDEuMWZyKTtnYXA6OHB4O2FsaWduLWl0ZW1zOmNlbnRlcjttaW4td2lkdGg6MH0ucWMtcGFpci12YWx1ZXttaW4td2lkdGg6MDttaW4taGVpZ2h0OjM4cHg7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O3BhZGRpbmc6OHB4IDEwcHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMTIpO2JvcmRlci1yYWRpdXM6OHB4O2JhY2tncm91bmQ6I2ZmZmZmZjg1O2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtvdmVyZmxvdzpoaWRkZW59LnFjLXBhaXItdmFsdWUtLXRve2JhY2tncm91bmQ6I2ZmZmZmZmQ2O2JvcmRlci1jb2xvcjojYzU2NTNkMzg7Y29sb3I6dmFyKC0tdGV4dC1wcmltYXJ5KX0ucWMtcGFpci12YWx1ZSBjb2Rle2ZsZXgtc2hyaW5rOjA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpO2ZvbnQtc2l6ZTouNzhyZW07Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOnZhcigtLWFjY2VudCk7YmFja2dyb3VuZDojYzU2NTNkMTc7Ym9yZGVyLXJhZGl1czo1cHg7cGFkZGluZzoycHggNnB4fS5xYy1wYWlyLXZhbHVlIHNwYW57bWluLXdpZHRoOjA7b3ZlcmZsb3c6aGlkZGVuO3RleHQtb3ZlcmZsb3c6ZWxsaXBzaXM7d2hpdGUtc3BhY2U6bm93cmFwO2ZvbnQtc2l6ZTouODJyZW19LnFjLXBhaXItLWNvbW1pdCAucWMtcGFpci1mbG93e2FsaWduLWl0ZW1zOnN0cmV0Y2h9LnFjLXBhaXItLWNvbW1pdCAucWMtcGFpci12YWx1ZXttaW4taGVpZ2h0Ojc2cHg7YWxpZ24taXRlbXM6ZmxleC1zdGFydH0ucWMtcGFpci0tY29tbWl0IC5xYy1wYWlyLXZhbHVlLS10b3twYWRkaW5nOjA7Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ucWMtcGFpci0tY29tbWl0IC5xYy1tZXNzYWdlLWlucHV0e21pbi1oZWlnaHQ6NzZweDt3aWR0aDoxMDAlO3Jlc2l6ZTp2ZXJ0aWNhbH0ucWMtcGFpci0tdGFnIC5xYy1wYWlyLXZhbHVlLS10b3twYWRkaW5nOjA7Ym9yZGVyOjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ucWMtcGFpci0tdGFnIC5xYy10YWctZmllbGQtaW5wdXR7d2lkdGg6MTAwJTttaW4taGVpZ2h0OjM4cHh9LnFjLXBhaXItYXJyb3d7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXdlaWdodDo4MDA7Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vLCBtb25vc3BhY2UpfS5xYy1tdXRlZHtjb2xvcjp2YXIoLS10ZXh0LW11dGVkKTtmb250LXN0eWxlOml0YWxpY30ucWMtbW9kYWwtYWN0aW9ucywucWMtcmVzdWx0LWFjdGlvbnN7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpmbGV4LWVuZDtnYXA6OHB4fS5xYy1yZXN1bHQtcGFuZWx7cGFkZGluZy10b3A6MnB4fS5xYy1yZXN1bHQtcHVzaGVke2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO21pbi1oZWlnaHQ6MzBweDtwYWRkaW5nOjAgMTBweDtib3JkZXItcmFkaXVzOjk5OXB4O2NvbG9yOiMyODgyNDZmMjtiYWNrZ3JvdW5kOiMzY2EwNWExZjtib3JkZXI6MXB4IHNvbGlkIHJnYmEoNjAsMTYwLDkwLC4yNCk7Zm9udC1zaXplOi43OHJlbTtmb250LXdlaWdodDo3MDB9LnFjLWRvY2std3JhcHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2dhcDo4cHg7cGFkZGluZy10b3A6MnB4fS5xYy1kb2NrLXdyYXBbZGF0YS1kaXNhYmxlZD0iMSJde29wYWNpdHk6LjU1O3BvaW50ZXItZXZlbnRzOm5vbmV9LnFjLWRvY2stYnVzeXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6OHB4O2FsaWduLXNlbGY6ZmxleC1zdGFydDtwYWRkaW5nOjEwcHggMTRweDtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDojYzU2NTNkMWE7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDE5NywxMDEsNjEsLjIpO2NvbG9yOnZhcigtLWFjY2VudCk7Zm9udC1zaXplOi44MnJlbTtmb250LXdlaWdodDo3MDB9LnFjLWRvY2stYnVzeS1kb3R7d2lkdGg6OHB4O2hlaWdodDo4cHg7Ym9yZGVyLXJhZGl1czo1MCU7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2FuaW1hdGlvbjpxYy1kb2NrLWJ1c3ktcHVsc2UgMS4ycyBlYXNlLWluLW91dCBpbmZpbml0ZX1Aa2V5ZnJhbWVzIHFjLWRvY2stYnVzeS1wdWxzZXswJSx0b3tvcGFjaXR5Oi40O3RyYW5zZm9ybTpzY2FsZSguODUpfTUwJXtvcGFjaXR5OjE7dHJhbnNmb3JtOnNjYWxlKDEuMTUpfX0ucWMtZG9jay1zdGFnZXstLXFjLXRvbmU6IHZhcigtLWFjY2VudCk7LS1xYy10b25lLXNvZnQ6IHJnYmEoMTk3LCAxMDEsIDYxLCAuMik7ZGlzcGxheTpncmlkO2dyaWQtdGVtcGxhdGUtY29sdW1uczptaW5tYXgoMCwxZnIpIDk2cHg7Z2FwOjEwcHg7aGVpZ2h0OjE2OHB4O3BhZGRpbmc6OHB4O2JvcmRlci1yYWRpdXM6MTZweDtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMTI1LDkxLDU3LC4xNik7YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoMTIwJSAxMjAlIGF0IDMwJSAzMCUsI2ZmZmZmZjhjLCNmZmY1ZWIyOSksbGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmZmZmNzUsI2ZmZjVlYjM4KTtib3gtc2hhZG93Omluc2V0IDAgMXB4ICNmZmZmZmZiMywwIDFweCAzcHggIzU5M2EyMDBkO3VzZXItc2VsZWN0Om5vbmV9LnFjLWRvY2stc3RhZ2VbZGF0YS1hY3Rpb249Y29tbWl0LXRhZ117LS1xYy10b25lOiAjNGE2ZmE1Oy0tcWMtdG9uZS1zb2Z0OiByZ2JhKDc0LCAxMTEsIDE2NSwgLjIyKX0ucWMtZG9jay1zdGFnZVtkYXRhLWFjdGlvbj1jb21taXQtcHVzaF17LS1xYy10b25lOiAjNGY3YTU4Oy0tcWMtdG9uZS1zb2Z0OiByZ2JhKDc5LCAxMjIsIDg4LCAuMjIpfS5xYy1kb2NrLXN0YWdlW2RhdGEtYWN0aW9uPWNvbW1pdC10YWctcHVzaF17LS1xYy10b25lOiAjN2M1YWE4Oy0tcWMtdG9uZS1zb2Z0OiByZ2JhKDEyNCwgOTAsIDE2OCwgLjI0KX0ucWMtZG9jay1maWVsZHtwb3NpdGlvbjpyZWxhdGl2ZTttaW4td2lkdGg6MDtib3JkZXItcmFkaXVzOjEycHg7YmFja2dyb3VuZDpyZXBlYXRpbmctbGluZWFyLWdyYWRpZW50KDQ1ZGVnLHJnYmEoMTI1LDkxLDU3LC4wMzUpIDAgOHB4LHRyYW5zcGFyZW50IDhweCAxNnB4KTt0b3VjaC1hY3Rpb246bm9uZTtvdmVyZmxvdzpoaWRkZW59LnFjLWRvY2stY2x1c3Rlcntwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7Ym9yZGVyLXJhZGl1czoxNHB4O2JhY2tncm91bmQ6Y29sb3ItbWl4KGluIHNyZ2IsdmFyKC0tcWMtdG9uZSkgMTAlLHRyYW5zcGFyZW50KTtib3JkZXI6MS41cHggZGFzaGVkIGNvbG9yLW1peChpbiBzcmdiLHZhcigtLXFjLXRvbmUpIDM4JSx0cmFuc3BhcmVudCk7Ym94LXNoYWRvdzowIDRweCAxNHB4IHZhcigtLXFjLXRvbmUtc29mdCk7cG9pbnRlci1ldmVudHM6bm9uZTt6LWluZGV4OjA7b3BhY2l0eTowO3RyYW5zaXRpb246dHJhbnNmb3JtIC4yMnMgY3ViaWMtYmV6aWVyKC4yMiwxLC4zNiwxKSx3aWR0aCAuMjJzIGN1YmljLWJlemllciguMjIsMSwuMzYsMSksaGVpZ2h0IC4yMnMgY3ViaWMtYmV6aWVyKC4yMiwxLC4zNiwxKSxvcGFjaXR5IC4xOHMgZWFzZSxiYWNrZ3JvdW5kIC4ycyBlYXNlLGJvcmRlci1jb2xvciAuMnMgZWFzZX0ucWMtZG9jay1jbHVzdGVyLmlzLWFjdGl2ZXtvcGFjaXR5OjF9LnFjLWNoaXB7cG9zaXRpb246YWJzb2x1dGU7bGVmdDowO3RvcDowO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo3cHg7aGVpZ2h0OjM4cHg7cGFkZGluZzowIDE0cHg7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDEyNSw5MSw1NywuMjIpO2JvcmRlci1yYWRpdXM6OTk5cHg7YmFja2dyb3VuZDojZmZmZmZmZWI7Y29sb3I6dmFyKC0tdGV4dC1zZWNvbmRhcnkpO2ZvbnQtZmFtaWx5OnZhcigtLWZvbnQtc2Fucyk7Zm9udC1zaXplOi44MnJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LjAxZW07d2hpdGUtc3BhY2U6bm93cmFwO2N1cnNvcjpncmFiO3RvdWNoLWFjdGlvbjpub25lO2JveC1zaGFkb3c6MCAycHggNnB4ICM1OTNhMjAxNDt6LWluZGV4OjI7dHJhbnNpdGlvbjpib3gtc2hhZG93IC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlLGJhY2tncm91bmQgLjE4cyBlYXNlLGNvbG9yIC4xOHMgZWFzZX0ucWMtY2hpcC5xYy1jaGlwLS1hbmlte3RyYW5zaXRpb246dHJhbnNmb3JtIC4yOHMgY3ViaWMtYmV6aWVyKC4yMiwxLC4zNiwxKSxib3gtc2hhZG93IC4xOHMgZWFzZSxib3JkZXItY29sb3IgLjE4cyBlYXNlLGJhY2tncm91bmQgLjE4cyBlYXNlLGNvbG9yIC4xOHMgZWFzZX0ucWMtY2hpcC5pcy1ncmFiYmluZ3tjdXJzb3I6Z3JhYmJpbmc7ei1pbmRleDo1O2JveC1zaGFkb3c6MCAxMnB4IDI2cHggIzU5M2EyMDM4fS5xYy1jaGlwOmRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZH0ucWMtY2hpcDpub3QoOmRpc2FibGVkKTpob3Zlcntib3JkZXItY29sb3I6dmFyKC0tcWMtdG9uZSl9LnFjLWNoaXAtZG90e3dpZHRoOjlweDtoZWlnaHQ6OXB4O2JvcmRlci1yYWRpdXM6NTAlO2JhY2tncm91bmQ6IzdkNWIzOTRkO2JveC1zaGFkb3c6aW5zZXQgMCAwIDAgMnB4ICNmZmY5O3RyYW5zaXRpb246YmFja2dyb3VuZCAuMThzIGVhc2UsdHJhbnNmb3JtIC4xOHMgZWFzZX0ucWMtY2hpcC0tY29tbWl0IC5xYy1jaGlwLWRvdHtiYWNrZ3JvdW5kOnZhcigtLWFjY2VudCl9LnFjLWNoaXAtLXRhZyAucWMtY2hpcC1kb3R7YmFja2dyb3VuZDojNGE2ZmE1fS5xYy1jaGlwLS1wdXNoIC5xYy1jaGlwLWRvdHtiYWNrZ3JvdW5kOiM0ZjdhNTh9LnFjLWNoaXAtLXN1YiAucWMtY2hpcC1kb3R7YmFja2dyb3VuZDojM2E4YThmfS5xYy1jaGlwLS1jb21taXR7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFjY2VudCkgMzAlLHJnYmEoMTI1LDkxLDU3LC4yKSl9LnFjLWNoaXAtLXRhZ3tib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIzRhNmZhNSAzMCUscmdiYSgxMjUsOTEsNTcsLjIpKX0ucWMtY2hpcC0tcHVzaHtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIzRmN2E1OCAzMCUscmdiYSgxMjUsOTEsNTcsLjIpKX0ucWMtY2hpcC0tc3Vie2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwjM2E4YThmIDMwJSxyZ2JhKDEyNSw5MSw1NywuMikpfS5xYy1jaGlwLmlzLWdyYWJiaW5nLC5xYy1jaGlwLmlzLWF0dGFjaGVke2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7Ym94LXNoYWRvdzowIDEycHggMjZweCB2YXIoLS1xYy10b25lLXNvZnQpO3otaW5kZXg6NX0ucWMtY2hpcC5pcy1ncmFiYmluZyAucWMtY2hpcC1kb3QsLnFjLWNoaXAuaXMtYXR0YWNoZWQgLnFjLWNoaXAtZG90e3RyYW5zZm9ybTpzY2FsZSgxLjEpfS5xYy1jaGlwLS1jb21taXQuaXMtZ3JhYmJpbmcsLnFjLWNoaXAtLWNvbW1pdC5pcy1hdHRhY2hlZHtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsI2ZmZixjb2xvci1taXgoaW4gc3JnYix2YXIoLS1hY2NlbnQpIDE2JSwjZmZmKSk7Ym9yZGVyLWNvbG9yOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLWFjY2VudCkgNDYlLHRyYW5zcGFyZW50KX0ucWMtY2hpcC0tdGFnLmlzLWdyYWJiaW5nLC5xYy1jaGlwLS10YWcuaXMtYXR0YWNoZWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmYsY29sb3ItbWl4KGluIHNyZ2IsIzRhNmZhNSAxNiUsI2ZmZikpO2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwjNGE2ZmE1IDQ2JSx0cmFuc3BhcmVudCl9LnFjLWNoaXAtLXB1c2guaXMtZ3JhYmJpbmcsLnFjLWNoaXAtLXB1c2guaXMtYXR0YWNoZWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCNmZmYsY29sb3ItbWl4KGluIHNyZ2IsIzRmN2E1OCAxNiUsI2ZmZikpO2JvcmRlci1jb2xvcjpjb2xvci1taXgoaW4gc3JnYiwjNGY3YTU4IDQ2JSx0cmFuc3BhcmVudCl9LnFjLWNoaXAtLXN1Yi5pcy1ncmFiYmluZywucWMtY2hpcC0tc3ViLmlzLWF0dGFjaGVke2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZmZmLGNvbG9yLW1peChpbiBzcmdiLCMzYThhOGYgMTYlLCNmZmYpKTtib3JkZXItY29sb3I6Y29sb3ItbWl4KGluIHNyZ2IsIzNhOGE4ZiA0NiUsdHJhbnNwYXJlbnQpfS5xYy1kb2NrLWxhdW5jaHtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2dhcDo0cHg7Ym9yZGVyLXJhZGl1czoxNHB4O2JvcmRlcjoxLjVweCBkYXNoZWQgcmdiYSgxMjUsOTEsNTcsLjMyKTtiYWNrZ3JvdW5kOiNmZmY2O2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO2N1cnNvcjpwb2ludGVyO3RvdWNoLWFjdGlvbjpub25lO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMnMgZWFzZSxib3JkZXItY29sb3IgLjJzIGVhc2UsY29sb3IgLjJzIGVhc2UsdHJhbnNmb3JtIC4ycyBlYXNlLGJveC1zaGFkb3cgLjJzIGVhc2V9LnFjLWRvY2stbGF1bmNoOm5vdCg6ZGlzYWJsZWQpOmhvdmVye2JvcmRlci1jb2xvcjp2YXIoLS1xYy10b25lKTtjb2xvcjp2YXIoLS1xYy10b25lKTtiYWNrZ3JvdW5kOmNvbG9yLW1peChpbiBzcmdiLHZhcigtLXFjLXRvbmUpIDglLHJnYmEoMjU1LDI1NSwyNTUsLjUpKX0ucWMtZG9jay1sYXVuY2g6ZGlzYWJsZWR7Y3Vyc29yOm5vdC1hbGxvd2VkfS5xYy1kb2NrLWxhdW5jaC1hcnJvd3tkaXNwbGF5OmlubGluZS1mbGV4O3RyYW5zaXRpb246dHJhbnNmb3JtIC4ycyBlYXNlfS5xYy1kb2NrLWxhdW5jaC1sYWJlbHtmb250LXNpemU6LjcycmVtO2ZvbnQtd2VpZ2h0OjgwMDtsZXR0ZXItc3BhY2luZzouMDRlbX0ucWMtZG9jay1zdGFnZVtkYXRhLWhvdD0iMSJdIC5xYy1kb2NrLWxhdW5jaHtib3JkZXItc3R5bGU6c29saWQ7Ym9yZGVyLWNvbG9yOnZhcigtLXFjLXRvbmUpO2JhY2tncm91bmQ6dmFyKC0tcWMtdG9uZSk7Y29sb3I6I2ZmZjt0cmFuc2Zvcm06c2NhbGUoMS4wNCk7Ym94LXNoYWRvdzowIDhweCAyMnB4IHZhcigtLXFjLXRvbmUtc29mdCksMCAwIDAgNXB4IGNvbG9yLW1peChpbiBzcmdiLHZhcigtLXFjLXRvbmUpIDE4JSx0cmFuc3BhcmVudCl9LnFjLWRvY2stc3RhZ2VbZGF0YS1ob3Q9IjEiXSAucWMtZG9jay1sYXVuY2gtYXJyb3d7dHJhbnNmb3JtOnRyYW5zbGF0ZSgzcHgpfS5xYy1kb2NrLWhpbnR7bWluLWhlaWdodDoxZW07Zm9udC1zaXplOi43cmVtO2NvbG9yOnZhcigtLXRleHQtbXV0ZWQpO3RleHQtYWxpZ246Y2VudGVyO2xldHRlci1zcGFjaW5nOi4wMmVtO29wYWNpdHk6Ljh9QG1lZGlhKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246cmVkdWNlKXsucWMtY2hpcCwucWMtY2hpcC0tYW5pbSwucWMtZG9jay1jbHVzdGVyLC5xYy1kb2NrLWxhdW5jaCwucWMtZG9jay1idXN5LWRvdHthbmltYXRpb246bm9uZSFpbXBvcnRhbnQ7dHJhbnNpdGlvbjpub25lIWltcG9ydGFudH19QG1lZGlhKG1heC13aWR0aDo3MjBweCl7LnRvcGJhci1naXQtYnJhbmNoe21heC13aWR0aDo4ZW19LnRvcGJhci1naXQtYmFkZ2V7cGFkZGluZzowIDhweDtmb250LXNpemU6LjdyZW19LnF1aWNrLWNvbW1pdC1tb2RhbHt3aWR0aDoxMDAlO21heC13aWR0aDoxMDAlO21heC1oZWlnaHQ6Y2FsYygxMDBkdmggLSBtYXgoMTZweCx2YXIoLS13YW5kLXNhZmUtdG9wKSkgLSBtYXgoMTJweCx2YXIoLS13YW5kLXNhZmUtYm90dG9tKSkpfS5xdWljay1jb21taXQtbW9kYWwgLm1vZGFsLWhlYWRlcntwYWRkaW5nOjE0cHggMTZweCAxMnB4fS5xdWljay1jb21taXQtbW9kYWwgLm1vZGFsLXRpdGxle2ZvbnQtc2l6ZToxLjA1cmVtfS5xdWljay1jb21taXQtbW9kYWwgLm1vZGFsLXN1YnRpdGxle21hcmdpbi10b3A6NHB4O2ZvbnQtc2l6ZTouNzhyZW07bGluZS1oZWlnaHQ6MS4zNX0ucXVpY2stY29tbWl0LW1vZGFsIC5tb2RhbC1ib2R5e3BhZGRpbmc6MTRweCAxNnB4IGNhbGMoMTZweCArIHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKX0ucWMtcmVsZWFzZS1wYW5lbCwucWMtcmVzdWx0LXBhbmVse2dhcDoxMnB4fS5xYy1wYWlye2dyaWQtdGVtcGxhdGUtY29sdW1uczoxZnI7Z2FwOjVweH0ucWMtcGFpci1sYWJlbHtwYWRkaW5nLXRvcDowO2ZvbnQtc2l6ZTouNjhyZW19LnFjLXBhaXItZmxvd3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyO2dhcDo3cHg7cG9zaXRpb246cmVsYXRpdmV9LnFjLXBhaXItYXJyb3d7d2lkdGg6MjhweDtoZWlnaHQ6MjBweDtqdXN0aWZ5LXNlbGY6Y2VudGVyO3RyYW5zZm9ybTpyb3RhdGUoOTBkZWcpO2ZvbnQtc2l6ZToxcmVtO2xpbmUtaGVpZ2h0OjF9LnFjLXBhaXItdmFsdWV7bWluLWhlaWdodDozNnB4O3BhZGRpbmc6OHB4IDEwcHh9LnFjLXBhaXItdmFsdWUgY29kZXtmb250LXNpemU6Ljc2cmVtfS5xYy1wYWlyLXZhbHVlIHNwYW57Zm9udC1zaXplOi44cmVtfS5xYy1wYWlyLS1jb21taXQgLnFjLXBhaXItdmFsdWV7bWluLWhlaWdodDphdXRvfS5xYy1wYWlyLS1jb21taXQgLnFjLW1lc3NhZ2UtaW5wdXR7bWluLWhlaWdodDo5MnB4O2ZvbnQtc2l6ZToxNnB4O2xpbmUtaGVpZ2h0OjEuNDV9LnFjLXBhaXItLXRhZyAucWMtdGFnLWZpZWxkLWlucHV0e21pbi1oZWlnaHQ6NDRweDtmb250LXNpemU6MTZweH0ucWMtZG9jay1zdGFnZXtoZWlnaHQ6MjM2cHg7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmcjtncmlkLXRlbXBsYXRlLXJvd3M6bWlubWF4KDAsMWZyKSA1OHB4O2dhcDo4cHg7cGFkZGluZzo4cHg7Ym9yZGVyLXJhZGl1czoxNHB4fS5xYy1kb2NrLWZpZWxke21pbi1oZWlnaHQ6MTYwcHh9LnFjLWNoaXB7aGVpZ2h0OjM2cHg7cGFkZGluZzowIDEycHg7Zm9udC1zaXplOi44cmVtfS5xYy1kb2NrLWxhdW5jaHttaW4taGVpZ2h0OjU4cHg7ZmxleC1kaXJlY3Rpb246cm93O2dhcDo4cHg7Ym9yZGVyLXJhZGl1czoxM3B4fS5xYy1kb2NrLWxhdW5jaC1sYWJlbHtmb250LXNpemU6Ljc4cmVtfS5xYy1kb2NrLXN0YWdlW2RhdGEtaG90PSIxIl0gLnFjLWRvY2stbGF1bmNoLWFycm93e3RyYW5zZm9ybTp0cmFuc2xhdGVZKDJweCl9fS53YW5kLWRpYWxvZy1iYWNrZHJvcHtwb3NpdGlvbjpmaXhlZDtpbnNldDowO3otaW5kZXg6OTAwMDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7cGFkZGluZy10b3A6bWF4KDI0cHgsdmFyKC0td2FuZC1zYWZlLXRvcCkpO3BhZGRpbmctYm90dG9tOm1heCgyNHB4LHZhcigtLXdhbmQtc2FmZS1ib3R0b20pKTtwYWRkaW5nLWxlZnQ6bWF4KDI0cHgsdmFyKC0td2FuZC1zYWZlLWxlZnQpKTtwYWRkaW5nLXJpZ2h0Om1heCgyNHB4LHZhcigtLXdhbmQtc2FmZS1yaWdodCkpO2JhY2tncm91bmQ6IzE0MGUwODU3O2JhY2tkcm9wLWZpbHRlcjpibHVyKDE4cHgpIHNhdHVyYXRlKDE0MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMThweCkgc2F0dXJhdGUoMTQwJSk7YW5pbWF0aW9uOndhbmREaWFsb2dCYWNrZHJvcEluIC4yMnMgY3ViaWMtYmV6aWVyKC4xNiwxLC4zLDEpIGJvdGh9LndhbmQtZGlhbG9nLWJhY2tkcm9wLmNsb3Npbmd7YW5pbWF0aW9uOndhbmREaWFsb2dCYWNrZHJvcE91dCAuMTZzIGN1YmljLWJlemllciguNCwwLC4yLDEpIGJvdGg7cG9pbnRlci1ldmVudHM6bm9uZX1Aa2V5ZnJhbWVzIHdhbmREaWFsb2dCYWNrZHJvcEluezAle29wYWNpdHk6MH10b3tvcGFjaXR5OjF9fUBrZXlmcmFtZXMgd2FuZERpYWxvZ0JhY2tkcm9wT3V0ezAle29wYWNpdHk6MX10b3tvcGFjaXR5OjB9fS53YW5kLWRpYWxvZ3twb3NpdGlvbjpyZWxhdGl2ZTt3aWR0aDoxMDAlO21heC13aWR0aDo0MjBweDtkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2JhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KDEyMCUgMTIwJSBhdCAwJSAwJSx2YXIoLS1hY2NlbnQtbXV0ZWQpIDAlLHRyYW5zcGFyZW50IDU1JSksbGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1iZy1lbGV2YXRlZCkgMCUsdmFyKC0tYmctc2Vjb25kYXJ5KSAxMDAlKTtib3JkZXI6LjVweCBzb2xpZCB2YXIoLS1ib3JkZXItc3VidGxlKTtib3JkZXItcmFkaXVzOjIycHg7b3ZlcmZsb3c6aGlkZGVuO2JhY2tkcm9wLWZpbHRlcjpibHVyKDQwcHgpIHNhdHVyYXRlKDE4MCUpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoNDBweCkgc2F0dXJhdGUoMTgwJSk7Ym94LXNoYWRvdzowIDI0cHggNjRweCAtMTJweCAjNTkzYTIwNDcsMCA2cHggMjBweCAtNnB4ICM1OTNhMjAyOSwwIDAgMCAuNXB4ICM3ZDViMzkxNCxpbnNldCAwIDFweCAjZmZmZmZmYjM7YW5pbWF0aW9uOndhbmREaWFsb2dJbiAuMjhzIGN1YmljLWJlemllciguMzQsMS40LC42NCwxKSBib3RofS53YW5kLWRpYWxvZy1iYWNrZHJvcC5jbG9zaW5nIC53YW5kLWRpYWxvZ3thbmltYXRpb246d2FuZERpYWxvZ091dCAuMTZzIGN1YmljLWJlemllciguNCwwLC4yLDEpIGJvdGh9QGtleWZyYW1lcyB3YW5kRGlhbG9nSW57MCV7b3BhY2l0eTowO3RyYW5zZm9ybTpzY2FsZSguOTIpIHRyYW5zbGF0ZVkoMTBweCl9dG97b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApfX1Aa2V5ZnJhbWVzIHdhbmREaWFsb2dPdXR7MCV7b3BhY2l0eToxO3RyYW5zZm9ybTpzY2FsZSgxKX10b3tvcGFjaXR5OjA7dHJhbnNmb3JtOnNjYWxlKC45NikgdHJhbnNsYXRlWSg0cHgpfX0ud2FuZC1kaWFsb2ctaGVhZGVye2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O2dhcDoxNHB4O3BhZGRpbmc6MjJweCAyNHB4IDEycHh9LndhbmQtZGlhbG9nLWljb257ZmxleC1zaHJpbms6MDt3aWR0aDo0MHB4O2hlaWdodDo0MHB4O2JvcmRlci1yYWRpdXM6NTAlO2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6NzAwO2xpbmUtaGVpZ2h0OjE7Ym94LXNoYWRvdzppbnNldCAwIDFweCAjZmZmZmZmODB9LndhbmQtZGlhbG9nLWljb24uaW5mb3tiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tYWNjZW50LXNvZnQpIDAlLHZhcigtLWFjY2VudC1ob3ZlcikgMTAwJSk7Y29sb3I6I2ZmZn0ud2FuZC1kaWFsb2ctaWNvbi53YXJuaW5ne2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZjBjODkxIDAlLHZhcigtLXdhcm5pbmcpIDEwMCUpO2NvbG9yOiNmZmZ9LndhbmQtZGlhbG9nLWljb24uZGFuZ2Vye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjZDk4MTc4IDAlLHZhcigtLWRhbmdlcikgMTAwJSk7Y29sb3I6I2ZmZn0ud2FuZC1kaWFsb2ctaWNvbi5zdWNjZXNze2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjOGNhZjk0IDAlLHZhcigtLXN1Y2Nlc3MpIDEwMCUpO2NvbG9yOiNmZmZ9LndhbmQtZGlhbG9nLWljb24ucXVlc3Rpb257YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMTgwZGVnLHZhcigtLWFjY2VudC1zb2Z0KSAwJSx2YXIoLS1hY2NlbnQpIDEwMCUpO2NvbG9yOiNmZmZ9LndhbmQtZGlhbG9nLXRleHR3cmFwe2ZsZXg6MSAxIGF1dG87bWluLXdpZHRoOjA7ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjtnYXA6NnB4O3BhZGRpbmctdG9wOjRweH0ud2FuZC1kaWFsb2ctdGl0bGV7Zm9udC1zaXplOjEuMDYyNXJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6LS4wMWVtO2NvbG9yOnZhcigtLXRleHQtcHJpbWFyeSk7bGluZS1oZWlnaHQ6MS4zO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ud2FuZC1kaWFsb2ctbWVzc2FnZXtmb250LXNpemU6LjlyZW07Zm9udC13ZWlnaHQ6NDAwO2NvbG9yOnZhcigtLXRleHQtc2Vjb25kYXJ5KTtsaW5lLWhlaWdodDoxLjU1O3doaXRlLXNwYWNlOnByZS13cmFwO3dvcmQtYnJlYWs6YnJlYWstd29yZH0ud2FuZC1kaWFsb2ctYm9keXtwYWRkaW5nOjRweCAyNHB4IDE0cHh9LndhbmQtZGlhbG9nLWlucHV0e3dpZHRoOjEwMCU7YmFja2dyb3VuZDp2YXIoLS1iZy1zdXJmYWNlKTtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJvcmRlci1zdWJ0bGUpO2JvcmRlci1yYWRpdXM6MTJweDtwYWRkaW5nOjExcHggMTRweDtmb250LWZhbWlseTp2YXIoLS1mb250LXNhbnMpO2ZvbnQtc2l6ZTouOXJlbTtjb2xvcjp2YXIoLS10ZXh0LXByaW1hcnkpO2JveC1zaGFkb3c6aW5zZXQgMCAxcHggMS41cHggIzdkNWIzOTBhO3RyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZSxib3gtc2hhZG93IC4xNXMgZWFzZSxiYWNrZ3JvdW5kIC4xNXMgZWFzZTtib3gtc2l6aW5nOmJvcmRlci1ib3h9LndhbmQtZGlhbG9nLWlucHV0OmZvY3Vze291dGxpbmU6bm9uZTtiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtib3JkZXItY29sb3I6dmFyKC0tYWNjZW50KTtib3gtc2hhZG93Omluc2V0IDAgMXB4IDEuNXB4ICM3ZDViMzkwYSwwIDAgMCAzcHggdmFyKC0tYWNjZW50LWdsb3cpfS53YW5kLWRpYWxvZy1mb290ZXJ7ZGlzcGxheTpmbGV4O2dhcDo4cHg7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO3BhZGRpbmc6MTRweCAyMHB4IDIwcHg7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tYm9yZGVyLXN1YnRsZSk7bWFyZ2luLXRvcDo2cHh9LndhbmQtZGlhbG9nLWZvb3RlciAuYnRue21pbi13aWR0aDo4NHB4fS53YW5kLWRpYWxvZyAuYnRuLWRhbmdlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgxODBkZWcsdmFyKC0tZGFuZ2VyLWhvdmVyKSAwJSx2YXIoLS1kYW5nZXIpIDEwMCUpO2NvbG9yOnZhcigtLXRleHQtaW52ZXJzZSk7Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O2JveC1zaGFkb3c6MCAxcHggMnB4IHZhcigtLWRhbmdlci1tdXRlZCksMCA0cHggMTBweCAtMnB4IHZhcigtLWRhbmdlci1tdXRlZCksaW5zZXQgMCAxcHggI2ZmZmZmZjM4LGluc2V0IDAgLTFweCAjNjAxZTE4MmV9LndhbmQtZGlhbG9nIC5idG4tZGFuZ2VyOmhvdmVye2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZywjYzk2MDU1LCNiMjRmNDUpO3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0xcHgpO2JveC1zaGFkb3c6MCAycHggNHB4IHZhcigtLWRhbmdlci1tdXRlZCksMCA4cHggMjBweCAtNHB4IHZhcigtLWRhbmdlci1nbG93KSxpbnNldCAwIDFweCAjZmZmZmZmNDcsaW5zZXQgMCAtMXB4ICM2MDFlMTgyZX0ud2FuZC1kaWFsb2cgLmJ0bi1kYW5nZXI6YWN0aXZle3RyYW5zZm9ybTp0cmFuc2xhdGVZKDApO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDE4MGRlZyx2YXIoLS1kYW5nZXIpIDAlLCM5MzM5MmYgMTAwJSk7dHJhbnNpdGlvbi1kdXJhdGlvbjouMDZzfUBtZWRpYShwcmVmZXJzLXJlZHVjZWQtbW90aW9uOnJlZHVjZSl7LndhbmQtZGlhbG9nLWJhY2tkcm9wLC53YW5kLWRpYWxvZy1iYWNrZHJvcC5jbG9zaW5nLC53YW5kLWRpYWxvZywud2FuZC1kaWFsb2ctYmFja2Ryb3AuY2xvc2luZyAud2FuZC1kaWFsb2d7YW5pbWF0aW9uOm5vbmUhaW1wb3J0YW50fX1Ac3VwcG9ydHMgbm90ICgoYmFja2Ryb3AtZmlsdGVyOiBibHVyKDFweCkpIG9yICgtd2Via2l0LWJhY2tkcm9wLWZpbHRlcjogYmx1cigxcHgpKSl7LndhbmQtZGlhbG9nLWJhY2tkcm9we2JhY2tncm91bmQ6IzE0MGUwODk5fS53YW5kLWRpYWxvZ3tiYWNrZ3JvdW5kOnZhcigtLWJnLWVsZXZhdGVkKTtib3JkZXItY29sb3I6dmFyKC0tYm9yZGVyLXN1YnRsZSl9fUBtZWRpYShtYXgtd2lkdGg6NDgwcHgpey53YW5kLWRpYWxvZy1iYWNrZHJvcHtwYWRkaW5nOjE2cHg7YWxpZ24taXRlbXM6Y2VudGVyfS53YW5kLWRpYWxvZ3ttYXgtd2lkdGg6MTAwJTtib3JkZXItcmFkaXVzOjIwcHh9LndhbmQtZGlhbG9nLWZvb3RlcntmbGV4LXdyYXA6d3JhcH0ud2FuZC1kaWFsb2ctZm9vdGVyIC5idG57ZmxleDoxIDEgYXV0b319LmJ0bi13aXRoLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjZweH0uYnRuLXdpdGgtaWNvbj5zdmd7ZmxleC1zaHJpbms6MH0uY29tcG9zZXItcGlsbC1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOi0ycHh9LmNvbXBvc2VyLXBpbGwtbGFiZWx7ZGlzcGxheTppbmxpbmUtYmxvY2s7bGV0dGVyLXNwYWNpbmc6LjAyZW19LnNldHRpbmdzLXNlY3Rpb24taWNvbntmb250LXNpemU6MDtsaW5lLWhlaWdodDowfS5zZXR0aW5ncy1zZWN0aW9uLWljb24+c3Zne2Rpc3BsYXk6YmxvY2t9LmJsYW5rLWNoYXQtdG9vbC1idG4gLnRvb2wtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3dpZHRoOjE4cHg7aGVpZ2h0OjE4cHg7Zm9udC1zaXplOjEuMTI1cmVtfS5ibGFuay1jaGF0LXRvb2wtYnRuIC50b29sLWljb24+c3Zne2Rpc3BsYXk6YmxvY2t9LmJsYW5rLWNoYXQtdG9vbC1idG4gLnRvb2wtaWNvbi10ZXh0e3dpZHRoOmF1dG87aGVpZ2h0OmF1dG87Zm9udC1mYW1pbHk6dmFyKC0tZm9udC1tb25vKTtmb250LXNpemU6MXJlbTtsaW5lLWhlaWdodDoxfS5ibGFuay1jaGF0LWN3ZC1pY29ue2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Zm9udC1zaXplOjA7bGluZS1oZWlnaHQ6MH0uYmxhbmstY2hhdC1jd2QtaWNvbj5zdmd7ZGlzcGxheTpibG9ja30uYmxhbmstY2hhdC1jd2QtYXJyb3d7ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MDtsaW5lLWhlaWdodDowO3RyYW5zaXRpb246dHJhbnNmb3JtIHZhcigtLXRyYW5zaXRpb24tZmFzdCl9LmJsYW5rLWNoYXQtY3dkLWFycm93PnN2Z3tkaXNwbGF5OmJsb2NrfS5mb2xkZXItcGlja2VyLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MDtsaW5lLWhlaWdodDowfS5mb2xkZXItcGlja2VyLWljb24+c3Zne2Rpc3BsYXk6YmxvY2t9LmZvbGRlci1waWNrZXItcXVpY2stYnRuLmJ0bi13aXRoLWljb257Z2FwOjVweH0uYXBwcm92YWwtc3RhdHMtcm93LWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjt3aWR0aDoxNHB4O2hlaWdodDoxNHB4O2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjB9LmFwcHJvdmFsLXN0YXRzLXJvdy1pY29uPnN2Z3tkaXNwbGF5OmJsb2NrfS5hdHRhY2htZW50LXBpbGwgLmF0dC1pY29uPnN2Z3tkaXNwbGF5OmJsb2NrfS5mb2xkZXItcGlja2VyLWNvbXBhY3QtaWNvbntkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjB9LmZvbGRlci1waWNrZXItY29tcGFjdC1pY29uPnN2Z3tkaXNwbGF5OmJsb2NrfS5mb2xkZXItcGlja2VyLXRvZ2dsZXtkaXNwbGF5OmlubGluZS1mbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO2ZvbnQtc2l6ZTowO2xpbmUtaGVpZ2h0OjB9LmZvbGRlci1waWNrZXItdG9nZ2xlPnN2Z3tkaXNwbGF5OmJsb2NrfS5mb2xkZXItcGlja2VyLXRvZ2dsZS5vcGVue3RyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKX0ud29ya2luZy1kaXItaW5kaWNhdG9yLWljb257ZGlzcGxheTppbmxpbmUtZmxleDthbGlnbi1pdGVtczpjZW50ZXI7anVzdGlmeS1jb250ZW50OmNlbnRlcjtmb250LXNpemU6MDtsaW5lLWhlaWdodDowfS53b3JraW5nLWRpci1pbmRpY2F0b3ItaWNvbj5zdmd7ZGlzcGxheTpibG9ja30ud2FuZC1qb3lzdGljay1yb290e3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6NDA7cG9pbnRlci1ldmVudHM6bm9uZTtvcGFjaXR5OjA7dmlzaWJpbGl0eTpoaWRkZW47dHJhbnNpdGlvbjpvcGFjaXR5IC4ycyBlYXNlfS53YW5kLWpveXN0aWNrLXJvb3QudmlzaWJsZXtvcGFjaXR5OjE7dmlzaWJpbGl0eTp2aXNpYmxlfS53YW5kLWpveXN0aWNrLWJhY2tkcm9we3Bvc2l0aW9uOmZpeGVkO2luc2V0OjA7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwb2ludGVyLWV2ZW50czpub25lO3Zpc2liaWxpdHk6aGlkZGVufS53YW5kLWpveXN0aWNrLWJhY2tkcm9wLmFjdGl2ZXt2aXNpYmlsaXR5OnZpc2libGU7cG9pbnRlci1ldmVudHM6YXV0b30ud2FuZC1qb3lzdGljay1iYWxse3Bvc2l0aW9uOmZpeGVkO3JpZ2h0OjE4cHg7Ym90dG9tOjk2cHg7d2lkdGg6NTRweDtoZWlnaHQ6NTRweDtib3JkZXItcmFkaXVzOjUwJTtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y29sb3I6I2Y1ZWJlMWYwO2JhY2tncm91bmQ6IzIzMWMxOGRiO2JvcmRlcjoxcHggc29saWQgcmdiYSgyNDUsMjM1LDIyNSwuMTgpO2JveC1zaGFkb3c6MCA4cHggMjJweCAjMDAwMDAwNGQsaW5zZXQgMCAxcHggI2ZmZmZmZjE0O2JhY2tkcm9wLWZpbHRlcjpibHVyKDEwcHgpOy13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOmJsdXIoMTBweCk7cG9pbnRlci1ldmVudHM6YXV0bzt0b3VjaC1hY3Rpb246bm9uZTstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dXNlci1zZWxlY3Q6bm9uZTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7ei1pbmRleDo0MztjdXJzb3I6Z3JhYjt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMThzIHZhcigtLWVhc2Utc3ByaW5nKSxiYWNrZ3JvdW5kIC4ycyBlYXNlLGJvcmRlci1jb2xvciAuMnMgZWFzZSxib3gtc2hhZG93IC4ycyBlYXNlfS53YW5kLWpveXN0aWNrLWxvZ297cG9zaXRpb246cmVsYXRpdmU7ei1pbmRleDoxfS53YW5kLWpveXN0aWNrLWJhbGw6aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTFweCk7Ym9yZGVyLWNvbG9yOiNmNWViZTE0ZDtiYWNrZ3JvdW5kOiMyYjIyMWRlNjtib3gtc2hhZG93OjAgMTBweCAyNnB4ICMwMDAwMDA1NyxpbnNldCAwIDFweCAjZmZmZmZmMWF9LndhbmQtam95c3RpY2stYmFsbDphY3RpdmUsLndhbmQtam95c3RpY2stYmFsbC5wYW5lbC1vcGVue2JhY2tncm91bmQ6IzFkMTcxNGYwfS53YW5kLWpveXN0aWNrLWJhbGwuZHJhZ2dpbmd7dHJhbnNmb3JtOnNjYWxlKDEuMTIpO2N1cnNvcjpncmFiYmluZztib3gtc2hhZG93OjAgMTBweCAyOHB4ICMwMDAwMDA1Y30ud2FuZC1qb3lzdGljay1wYW5lbHtwb3NpdGlvbjpmaXhlZDtyaWdodDoxOHB4O2JvdHRvbToxNjBweDt6LWluZGV4OjQ0O2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjhweDtwYWRkaW5nOjEwcHg7Ym9yZGVyLXJhZGl1czoxMnB4O2JhY2tncm91bmQ6IzFkMTcxNGY1O2JvcmRlcjoxcHggc29saWQgcmdiYSgyNDUsMjM1LDIyNSwuMTIpO2JveC1zaGFkb3c6MCAxNHB4IDM0cHggIzAwMDAwMDU3LGluc2V0IDAgMXB4ICNmZmZmZmYwZjtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMnB4KTstd2Via2l0LWJhY2tkcm9wLWZpbHRlcjpibHVyKDEycHgpO3BvaW50ZXItZXZlbnRzOm5vbmU7b3BhY2l0eTowO3Zpc2liaWxpdHk6aGlkZGVuO3RyYW5zZm9ybTp0cmFuc2xhdGVZKDhweCkgc2NhbGUoLjk2KTt0cmFuc2Zvcm0tb3JpZ2luOmJvdHRvbSByaWdodDt0cmFuc2l0aW9uOm9wYWNpdHkgLjE4cyB2YXIoLS1lYXNlLW91dC1leHBvKSx0cmFuc2Zvcm0gLjIycyB2YXIoLS1lYXNlLXNwcmluZyksdmlzaWJpbGl0eSAwcyBsaW5lYXIgLjE4czt3aWR0aDptaW4oMjI0cHgsY2FsYygxMDB2dyAtIDM2cHgpKTttYXgtd2lkdGg6Y2FsYygxMDB2dyAtIDM2cHgpfS53YW5kLWpveXN0aWNrLXBhbmVsLmFjdGl2ZXtwb2ludGVyLWV2ZW50czphdXRvO29wYWNpdHk6MTt2aXNpYmlsaXR5OnZpc2libGU7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7dHJhbnNpdGlvbi1kZWxheTowc30ud2pwLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO2dhcDoxMHB4O21pbi1oZWlnaHQ6MjRweH0ud2pwLXRpdGxle2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo2cHg7Zm9udC1zaXplOi43NnJlbTtsZXR0ZXItc3BhY2luZzowO2NvbG9yOiNmNWViZTFjNztmb250LXdlaWdodDo2MDB9LndqcC10aXRsZS1pY29ue2NvbG9yOiNmNWViZTFiOH0ud2pwLWNsb3Nle3dpZHRoOjI0cHg7aGVpZ2h0OjI0cHg7Ym9yZGVyLXJhZGl1czo1MCU7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI0NSwyMzUsMjI1LC4xMik7YmFja2dyb3VuZDojZmZmZmZmMGQ7Y29sb3I6I2Y1ZWJlMWI4O2Rpc3BsYXk6aW5saW5lLWZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2p1c3RpZnktY29udGVudDpjZW50ZXI7Y3Vyc29yOnBvaW50ZXI7cGFkZGluZzowO3RyYW5zaXRpb246YmFja2dyb3VuZCAuMTRzIGVhc2UsY29sb3IgLjE0cyBlYXNlLHRyYW5zZm9ybSAuMTRzIGVhc2V9LndqcC1jbG9zZTpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmYxYTtjb2xvcjojZjVlYmUxZjJ9LndqcC1jbG9zZTphY3RpdmV7dHJhbnNmb3JtOnNjYWxlKC45NCl9LndqcC1kcGFke2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyO2dhcDo1cHh9LndqcC1kcGFkLXJvd3tkaXNwbGF5OmZsZXg7Z2FwOjVweH0ud2pwLWdyaWR7ZGlzcGxheTpmbGV4O2ZsZXgtd3JhcDp3cmFwO2dhcDo1cHg7anVzdGlmeS1jb250ZW50OmNlbnRlcn0ud2pwLWZua2V5c3ttYXgtd2lkdGg6MjAwcHh9LndqcC1rZXl7bWluLXdpZHRoOjQ0cHg7aGVpZ2h0OjM4cHg7cGFkZGluZzowIDhweDtib3JkZXItcmFkaXVzOjhweDtmb250LXNpemU6Ljc2cmVtO2ZvbnQtd2VpZ2h0OjUwMDtjb2xvcjojZjVlYmUxZDY7YmFja2dyb3VuZDojZmZmZmZmMGI7Ym9yZGVyOjFweCBzb2xpZCByZ2JhKDI0NSwyMzUsMjI1LC4xMSk7Y3Vyc29yOnBvaW50ZXI7dG91Y2gtYWN0aW9uOm1hbmlwdWxhdGlvbjstd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6dHJhbnNwYXJlbnQ7dXNlci1zZWxlY3Q6bm9uZTt0cmFuc2l0aW9uOnRyYW5zZm9ybSAuMXMgZWFzZSxiYWNrZ3JvdW5kIC4xNXMgZWFzZSxib3JkZXItY29sb3IgLjE1cyBlYXNlLGNvbG9yIC4xNXMgZWFzZX0ud2pwLWtleTpob3ZlcntiYWNrZ3JvdW5kOiNmZmZmZmYxNDtib3JkZXItY29sb3I6I2Y1ZWJlMTMzO2NvbG9yOiNmNWViZTFmMn0ud2pwLWtleTphY3RpdmV7YmFja2dyb3VuZDojZmZmZmZmMWY7dHJhbnNmb3JtOnNjYWxlKC45Nil9LndqcC1rZXkud2pwLW1vZC5hY3RpdmV7YmFja2dyb3VuZDp2YXIoLS1hY2NlbnQpO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOnZhcigtLWFjY2VudCl9Cg=="),
10
10
  vendor: {
11
11
  "/vendor/wterm/wterm.bundle.js": {