
Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/192/m/fr/php/Embeder/Embeder.php on line 419

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/192/m/fr/php/Embeder/Embeder.php on line 419

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /var/www/192/m/fr/php/Embeder/Embeder.php on line 421
{"title":"PHRpdGxlPkh5dW5kYWkgbmV1ZnMgMjAyNSwgMjAyNiAmYW1wOyAyMDI3IMOgIFZhbCBkJ09yIHwgUG9pcmllciBIeXVuZGFpPC90aXRsZT4=","metas":"PG1ldGEgaXRlbXByb3A9Im5hbWUiIGNvbnRlbnQ9IiAgIj48bWV0YSBpdGVtcHJvcD0iZGVzY3JpcHRpb24iIGNvbnRlbnQ9IiI+","js_inline":"CgkoKGQpID0+IHsKCQljb25zdCBjZSA9IGQuY3JlYXRlRWxlbWVudDsKCQlsZXQgdXJsQ2F0QXJyID0gewoJCQknY2xhcml2b3kuY29tJyA6ICdDMDAwMicsCgkJCSdkZWFsZXItbGVhZHMuY2EnIDogJ0MwMDAzJywKCQkJJ3JvYWRzdGVyLmNvbS9yb2Fkc3RlcicgOiAnQzAwMDInLC8vRFdQLTEyMjgxCgkJCSdmemxuay5jb20vc2lnbmFscy5qcycgOiAnQzAwMDInLC8vRFdQLTEyMjg5CgkJCSdsaXZlY2hhdGluYy5jb20vdHJhY2tpbmcuanMnIDogJ0MwMDAzJywvL0RXUC0xMjMwMwoJCQkndGhlbGl2ZWNoYXRzb2Z0d2FyZS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjI5NwoJCQknY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAwCgkJCSdzZGsuYXV0b3ZlcmlmeS5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjMwMQoJCQknYW5hbHl0aWNzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIzMDkKCQkJJ2hzLXNjcmlwdHMuY29tJyA6ICdDMDAwNCcsLy9EV1AtMTIzMjAKCQkJJ21hcmtldGluZ2F1dG9tYXRpb24uc2VydmljZXMnIDogJ0MwMDA0JywvL0RXUC0xMjMyMgoJCQknbGVhZGZveC5jbycgOiAnQzAwMDQnLAoJCQknc3RhdGljLnVwdHJhY3MuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzNTQKIAkJCSdiYXQuYmluZy5jb20nIDogJ0MwMDAyJywvL0RXUC0xMjM1NAoJCQknZ3RhZy9qcycgOiAnQzAwMDInLAoJCQknc2QuanMnIDogJ0MwMDAxJywKCQkJJ3NkYS5qcycgOiAnQzAwMDEnLAoJCQknaWZyYW1lX2FwaScgOiAnQzAwMDEnLAoJCQkKCQl9OwoJCWxldCB1cmxDYXRSZWdleCA9ICcoJyArIE9iamVjdC5rZXlzKHVybENhdEFycikuam9pbignfCcpLnJlcGxhY2UoL1srPy5dL2csICdcJCYnKSArICcpJzsKCQlsZXQgY3VycmVudENvbnNlbnQgPSBnZXRDb25zZW50KCk7CgkJd2luZG93LnNjcmlwdFVybEFyciA9IFtdOwoJCWQuY3JlYXRlRWxlbWVudCA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHsKCQkJY29uc3QgcyA9IGNlLmJpbmQoZCkoLi4uYXJncyksIHNhID0gcy5zZXRBdHRyaWJ1dGUuYmluZChzKTsKCQkJcy5zZXRBdHRyaWJ1dGUgPSBmdW5jdGlvbihuLCB2KSB7CgkJCQlpZihuID09PSAnc3JjJyAmJiB3aW5kb3cuc2NyaXB0VXJsQXJyLmluZGV4T2Yodi50b1N0cmluZygpKSA9PSAtMSkgewoJCQkJCWlmKChuZXcgUmVnRXhwKHVybENhdFJlZ2V4KSkudGVzdCh2KSl7CgkJCQkJCWZvcihrZXkgaW4gdXJsQ2F0QXJyKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIAoJCQkJCQkJaWYgKChuZXcgUmVnRXhwKGtleSkpLnRlc3QodikpIHsKCQkJCQkJCQl3aW5kb3cuc2NyaXB0VXJsQXJyLnB1c2godi50b1N0cmluZygpKTsKCQkJCQkJCQlpZihrZXkgPT0gJ2d0YWcvanMnIHx8IGtleSA9PSAnYmF0LmJpbmcuY29tJyB8fCBrZXkgPT0gJ3NkLmpzJyB8fCBrZXkgPT0gJ3NkYS5qcycgfHwga2V5ID09ICdpZnJhbWVfYXBpJyl7CgkJCQkJCQkJCXNhKCdkYXRhLW90LWlnbm9yZScsIHRydWUpOwoJCQkJCQkJCQlzYSgndHlwZScsICd0ZXh0L2phdmFzY3JpcHQnKTsKCQkJCQkJCQl9IGVsc2UgaWYoY3VycmVudENvbnNlbnQgPT0gbnVsbCB8fCBjdXJyZW50Q29uc2VudC5pbmRleE9mKHVybENhdEFycltrZXldKSA9PSAtMSl7CgkJCQkJCQkJCXNhKCd0eXBlJywgJ3RleHQvcGxhaW4nKTsKCQkJCQkJCQkJc2EoJ2NsYXNzJywgJ29wdGFub24tY2F0ZWdvcnktJyArIHVybENhdEFycltrZXldKTsKCQkJCQkJCQl9CgkJCQkJCQkJYnJlYWs7CgkJCQkJCQl9CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCQlzYShuLCB2KTsKCQkJfQoJCQlyZXR1cm4gczsKCQl9CgkJZnVuY3Rpb24gZ2V0Q29uc2VudCgpewoJCQlsZXQgbmFtZSA9ICdkMmNfY29va2llX2NvbnNlbnQnICsgJz0nOwoJCQlsZXQgY2EgPSAoJycrZG9jdW1lbnQuY29va2llKS5zcGxpdCgnOycpOwoJCQlmb3IobGV0IGkgPSAwOyBpIDwgY2EubGVuZ3RoOyBpKyspIHsKCQkJCWxldCBjID0gY2FbaV07CgkJCQljID0gYy50cmltKCk7CgkJCQlpZiAoYy5pbmRleE9mKG5hbWUpID09IDApIHsKCQkJCQl0cnl7CgkJCQkJCWMgPSBkZWNvZGVVUklDb21wb25lbnQoIGMgKTsKCQkJCQl9IGNhdGNoKCBlICkKCQkJCQl7CgkJCQkJCWNvbnNvbGUubG9nKCBlICk7CgkJCQkJCXJldHVybiBudWxsOwoJCQkJCX0KCQkJCQlyZXR1cm4gYy5zdWJzdHJpbmcobmFtZS5sZW5ndGgsIGMubGVuZ3RoKTsKCQkJCX0KCQkJfQoJCQlyZXR1cm4gbnVsbDsKCQl9Cgl9KShkb2N1bWVudCk7CgoJZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKCkgewoJLy8gTGlzdGVuIGZvciBjaGFuZ2VzIHRvIHRoZSBET00KCQlsZXQgb2JzZXJ2ZXIgPSBuZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbihtdXRhdGlvbnMpIHsKCQkJbXV0YXRpb25zLmZvckVhY2goZnVuY3Rpb24obXV0YXRpb24pIHsKCQkJCWlmIChtdXRhdGlvbi5hZGRlZE5vZGVzICYmIG11dGF0aW9uLmFkZGVkTm9kZXMubGVuZ3RoID4gMCkgewoJCQkJCS8vIENoZWNrIGlmIG91ciBzY3JpcHQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIERPTQoJCQkJCWZvciAobGV0IGkgPSAwOyBpIDwgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGg7IGkrKykgewoJCQkJCQlsZXQgbm9kZSA9IG11dGF0aW9uLmFkZGVkTm9kZXNbaV07CgkJCQkJCWlmIChub2RlLm5vZGVUeXBlID09PSAxICYmIG5vZGUudGFnTmFtZSA9PT0gJ1NDUklQVCcgJiYgbm9kZS5zcmMgJiYgbm9kZS5zcmMuaW5jbHVkZXMoJ2NhbmFkYS5kaWdpdGFsLWludGVydmlldy5jb20nKSAmJiB0eXBlb2YgT25lVHJ1c3QgIT09ICd1bmRlZmluZWQnKSB7CgkJCQkJCQlzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7CgkJCQkJCQkJdHJ5e0RpZ2l0YWxJbnRlcnZpZXcuTGF1bmNoZXIuZW5hYmxlTGF1bmNoUG9pbnRzKCk7fWNhdGNoKGUpe30KCQkJCQkJCX0sIDEwMDApOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQl9KTsKCQl9KTsKCQkvLyBTdGFydCBvYnNlcnZpbmcgdGhlIGRvY3VtZW50IHdpdGggdGhlIGNvbmZpZ3VyZWQgcGFyYW1ldGVycwoJCW9ic2VydmVyLm9ic2VydmUoZG9jdW1lbnQuYm9keSwgeyBjaGlsZExpc3Q6IHRydWUsIHN1YnRyZWU6IHRydWUgfSk7CgkJb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5oZWFkLCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCX0pOwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlBBRi0xODY0NTYzNjgxMTg1MTIyODUiCihmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgU1RPUkFHRV9LRVk9J29uZXJyb3InLHN0b3JhZ2U9W10sZXJyb3JDb2xsZWN0aW9ucz1bXSxwaXhlbEFkZHJlc3M9Jy9mci9hamF4L2xvZ0Vycm9yP3dzd2lkdGg9MCc7dmFyIHN0YXJ0VGltZT1uZXcgRGF0ZSgpO2xvYWRTdG9yZWRFcnJvcnMoKTt2YXIgcGl4ZWxGcmFnbWVudD11bmRlZmluZWQ7ZnVuY3Rpb24gZ2V0UGl4ZWxGcmFnbWVudCgpe2lmKHBpeGVsRnJhZ21lbnQhPT11bmRlZmluZWQpcmV0dXJuIHBpeGVsRnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpO3ZhciBmcmFnPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2ZyYWcuYXBwZW5kQ2hpbGQoZGl2KTtwaXhlbEZyYWdtZW50PWZyYWcuY2xvbmVOb2RlKHRydWUpO3JldHVybiBmcmFnO30KZnVuY3Rpb24gaGFzUGl4ZWwoZGF0YSl7cmV0dXJuISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbZGF0YS1saW5lPSInK2RhdGEubGluZSsnIl1bZGF0YS1tc2c9IicrZGF0YS5tc2crJyJdJyk7fQpmdW5jdGlvbiBjcmVhdGVQaXhlbChkYXRhKXtpZihoYXNQaXhlbChkYXRhKSlyZXR1cm4gdHJ1ZTt2YXIgZnJhZ21lbnQ9Z2V0UGl4ZWxGcmFnbWVudCgpO3ZhciBkaXY9ZnJhZ21lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7dmFyIGludGVybmFsPWlzRmlsZUludGVybmFsKGRhdGEuZmlsZSk\/MTowO3ZhciBvYmo9e21zZzpkYXRhLm1zZyxhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHVybDp3aW5kb3cubG9jYXRpb24uaHJlZixpbnRlcm5hbDppbnRlcm5hbCx1aWQ6Z2V0VUlEKCksdG9wOigobmV3IERhdGUoKSkuZ2V0VGltZSgpLXN0YXJ0VGltZS5nZXRUaW1lKCkpLG1vdXNlT3ZlcjpnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpfTt2YXIgYWRkRWxlbWVudD1mdW5jdGlvbigpe2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbXNnJyxkYXRhLm1zZyk7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1saW5lJyxkYXRhLmxpbmUpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO307YWpheChvYmosZnVuY3Rpb24oeGhyKXtjb25zb2xlLmxvZygiSXNzdWUgc2VuZGluZyBlcnJvciwgc3RhdHVzOiAiK3hoci5zdGF0dXMrIiBlcnJvcjogIit4aHIucmVzcG9uc2VUZXh0KTthZGRFbGVtZW50KCk7fSxmdW5jdGlvbih4aHIpe2FkZEVsZW1lbnQoKTtjb25zb2xlLmxvZyh4aHIpO30pO30KZnVuY3Rpb24gYWpheChkYXRhLGVycm9yLHN1Y2Nlc3Mpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eGhyLm9wZW4oJ1BPU1QnLHBpeGVsQWRkcmVzcyx0cnVlKTt4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Jyk7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHhoci5yZWFkeVN0YXRlPT09NCl7aWYoeGhyLnN0YXR1cz09PTIwMCl7c3VjY2Vzcyh4aHIpO31lbHNle2Vycm9yKHhocik7fX19O3hoci5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTt9CmZ1bmN0aW9uIGdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl7dmFyIGhvdmVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJzpob3ZlcicpO2lmKGhvdmVyPT09dW5kZWZpbmVkfHxob3Zlci5sZW5ndGg9PT0wKXtyZXR1cm4nbm9uZSc7fQpob3Zlcj1ob3Zlcltob3Zlci5sZW5ndGgtMV0uY2xvbmVOb2RlKCk7cmV0dXJuIGhvdmVyLm91dGVySFRNTDt9CmZ1bmN0aW9uIGlzRmlsZUludGVybmFsKGZpbGUpe3JldHVybihmaWxlLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT4tMSk7fQpmdW5jdGlvbiBnZXRVSUQoKXtpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPT0ndW5kZWZpbmVkJyl7cmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDt9CnJldHVybicnO30KZnVuY3Rpb24gbG9hZFN0b3JlZEVycm9ycygpe2lmKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSE9PSd1bmRlZmluZWQnKXtpZihzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSl7c3RvcmFnZT1KU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKTt9fQpyZXR1cm4gc3RvcmFnZTt9CmZ1bmN0aW9uIGhhc1Nlc3Npb25FcnJvclNob3duKG1zZyl7bG9hZFN0b3JlZEVycm9ycygpO3JldHVybiBoYXNFcnJvclNob3duKG1zZyk7fQpmdW5jdGlvbiBoYXNFcnJvclNob3duKG1zZyl7aWYoc3RvcmFnZT09PXVuZGVmaW5lZClyZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTxzdG9yYWdlLmxlbmd0aDtpKyspe2lmKHN0b3JhZ2VbaV09PT1tc2cpe3JldHVybiB0cnVlO319CnJldHVybiBmYWxzZTt9CmlmKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCdjdXN0b20tcGFnZS1wcmV2aWV3Lmh0bWwnKT09PS0xKXt3aW5kb3cub25lcnJvcj1mdW5jdGlvbihtc2csZmlsZSxsaW5lLGNvbCxlcnJvcil7Y29uc29sZS5sb2coJ29uZXJyb3IgcmFpc2VkIScpO2lmKCFoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpKXtlcnJvckNvbGxlY3Rpb25zLnB1c2goe21zZzptc2csbGluZTpsaW5lLGZpbGU6ZmlsZX0pO3N0b3JhZ2UucHVzaChtc2cpO2lmKHNlc3Npb25TdG9yYWdlIT09dW5kZWZpbmVkKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLEpTT04uc3RyaW5naWZ5KHN0b3JhZ2UpKTt9fQppZihkb2N1bWVudFsnYm9keSddIT09bnVsbCYmZG9jdW1lbnRbJ2JvZHknXSE9PXVuZGVmaW5lZCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmlmKCdsaXZlJz09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2V4Y2VwdGlvbicseydzZW5kX3RvJzonRy1aNVE4WjVDN0tGJywnZGVzY3JpcHRpb24nOm1zZywnZmF0YWwnOnRydWV9KTt9fTt9CmlmKC9XZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgX3RpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChkb2N1bWVudC5yZWFkeVN0YXRlKSl7Y2xlYXJJbnRlcnZhbChfdGltZXIpO29ubG9hZCgpO319LDEwKTt9Ci8qQGNjX29uIEAqLwovKkBpZiAoQF93aW4zMikKCQkJCWRvY3VtZW50LndyaXRlKCI8Iisic2NyaXB0IGlkPV9faWVfb25sb2FkIGRlZmVyIHNyYz1qYXZhc2NyaXB0OnZvaWQoMCk+PFwvc2NyaXB0PiIpOwoJCQkJdmFyIHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX2llX29ubG9hZCIpOwoJCQkJc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewoJCQkJICBpZiAodGhpcy5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCQkJCQlvbmxvYWQoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKCQkJCSAgfQoJCQkJfTsKCQkJLypAZW5kIEAqLwpmdW5jdGlvbiBhZGRQaXhlbHNUb0RvbSgpe2Zvcih2YXIgaT0wO2k8ZXJyb3JDb2xsZWN0aW9ucy5sZW5ndGg7aSsrKXtjb25zb2xlLmxvZygnY3JlYXRlUGl4ZWwnLGVycm9yQ29sbGVjdGlvbnNbaV0pO319CmZ1bmN0aW9uIG9ubG9hZCgpe2FkZFBpeGVsc1RvRG9tKCk7fQpmdW5jdGlvbiBfY3JlYXRlU2NyaXB0KHRleHQpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3MuYXBwZW5kKHRleHQpO3JldHVybiBzO30Kd2luZG93LmVycm9yVGVzdHM9e3N5bnRheDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnfScpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxvZk51bGw6ZnVuY3Rpb24oKXt2YXIgdGV4dD0ndmFyIGEgPSBudWxsOyB2YXIgYiA9IGEud2hhdDsnO3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCh0ZXh0KTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30saW52YWxpZEFzc2lnbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJzEgPSBmdW5jKCk7Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9fTt3aW5kb3cudHJhY2tDb252ZXJzaW9uPWZ1bmN0aW9uKCl7aWYodHlwZW9mIGd0YWc9PSd1bmRlZmluZWQnKXJldHVybi0xO2lmKCF3aW5kb3cuZDJjX2F3Y0lkfHwhd2luZG93LmQyY19hd2NMYWJlbClyZXR1cm4tMztpZihkZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnY29udmVyc2lvbicseydzZW5kX3RvJzpkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbH0pO31lbHNle2NvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbCsiIH0pOyIpO319fSkoKTsKLypdXT4qLwoKLyo8IVtDREFUQVsqLwovL2RhdGEtc2NvZGVyZWY9IlBBRi0xODY0NTYzNjgxMTg1MTIyODUiCihmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgU1RPUkFHRV9LRVk9J29uZXJyb3InLHN0b3JhZ2U9W10sZXJyb3JDb2xsZWN0aW9ucz1bXSxwaXhlbEFkZHJlc3M9Jy9mci9hamF4L2xvZ0Vycm9yP3dzd2lkdGg9MCc7dmFyIHN0YXJ0VGltZT1uZXcgRGF0ZSgpO2xvYWRTdG9yZWRFcnJvcnMoKTt2YXIgcGl4ZWxGcmFnbWVudD11bmRlZmluZWQ7ZnVuY3Rpb24gZ2V0UGl4ZWxGcmFnbWVudCgpe2lmKHBpeGVsRnJhZ21lbnQhPT11bmRlZmluZWQpcmV0dXJuIHBpeGVsRnJhZ21lbnQuY2xvbmVOb2RlKHRydWUpO3ZhciBmcmFnPWRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTt2YXIgZGl2PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO2ZyYWcuYXBwZW5kQ2hpbGQoZGl2KTtwaXhlbEZyYWdtZW50PWZyYWcuY2xvbmVOb2RlKHRydWUpO3JldHVybiBmcmFnO30KZnVuY3Rpb24gaGFzUGl4ZWwoZGF0YSl7cmV0dXJuISFkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdkaXZbZGF0YS1saW5lPSInK2RhdGEubGluZSsnIl1bZGF0YS1tc2c9IicrZGF0YS5tc2crJyJdJyk7fQpmdW5jdGlvbiBjcmVhdGVQaXhlbChkYXRhKXtpZihoYXNQaXhlbChkYXRhKSlyZXR1cm4gdHJ1ZTt2YXIgZnJhZ21lbnQ9Z2V0UGl4ZWxGcmFnbWVudCgpO3ZhciBkaXY9ZnJhZ21lbnQucXVlcnlTZWxlY3RvcignZGl2Jyk7dmFyIGludGVybmFsPWlzRmlsZUludGVybmFsKGRhdGEuZmlsZSk\/MTowO3ZhciBvYmo9e21zZzpkYXRhLm1zZyxhZ2VudDpuYXZpZ2F0b3IudXNlckFnZW50LHVybDp3aW5kb3cubG9jYXRpb24uaHJlZixpbnRlcm5hbDppbnRlcm5hbCx1aWQ6Z2V0VUlEKCksdG9wOigobmV3IERhdGUoKSkuZ2V0VGltZSgpLXN0YXJ0VGltZS5nZXRUaW1lKCkpLG1vdXNlT3ZlcjpnZXRDdXJyZW50TW91c2VPdmVyRWxlbWVudCgpfTt2YXIgYWRkRWxlbWVudD1mdW5jdGlvbigpe2Rpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtbXNnJyxkYXRhLm1zZyk7ZGl2LnNldEF0dHJpYnV0ZSgnZGF0YS1saW5lJyxkYXRhLmxpbmUpO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZnJhZ21lbnQpO307YWpheChvYmosZnVuY3Rpb24oeGhyKXtjb25zb2xlLmxvZygiSXNzdWUgc2VuZGluZyBlcnJvciwgc3RhdHVzOiAiK3hoci5zdGF0dXMrIiBlcnJvcjogIit4aHIucmVzcG9uc2VUZXh0KTthZGRFbGVtZW50KCk7fSxmdW5jdGlvbih4aHIpe2FkZEVsZW1lbnQoKTtjb25zb2xlLmxvZyh4aHIpO30pO30KZnVuY3Rpb24gYWpheChkYXRhLGVycm9yLHN1Y2Nlc3Mpe3ZhciB4aHI9bmV3IFhNTEh0dHBSZXF1ZXN0KCk7eGhyLm9wZW4oJ1BPU1QnLHBpeGVsQWRkcmVzcyx0cnVlKTt4aHIuc2V0UmVxdWVzdEhlYWRlcignQ29udGVudC1UeXBlJywnYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Jyk7eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKHhoci5yZWFkeVN0YXRlPT09NCl7aWYoeGhyLnN0YXR1cz09PTIwMCl7c3VjY2Vzcyh4aHIpO31lbHNle2Vycm9yKHhocik7fX19O3hoci5zZW5kKEpTT04uc3RyaW5naWZ5KGRhdGEpKTt9CmZ1bmN0aW9uIGdldEN1cnJlbnRNb3VzZU92ZXJFbGVtZW50KCl7dmFyIGhvdmVyPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJzpob3ZlcicpO2lmKGhvdmVyPT09dW5kZWZpbmVkfHxob3Zlci5sZW5ndGg9PT0wKXtyZXR1cm4nbm9uZSc7fQpob3Zlcj1ob3Zlcltob3Zlci5sZW5ndGgtMV0uY2xvbmVOb2RlKCk7cmV0dXJuIGhvdmVyLm91dGVySFRNTDt9CmZ1bmN0aW9uIGlzRmlsZUludGVybmFsKGZpbGUpe3JldHVybihmaWxlLmluZGV4T2Yod2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKT4tMSk7fQpmdW5jdGlvbiBnZXRVSUQoKXtpZih0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPT0ndW5kZWZpbmVkJyl7cmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDt9CnJldHVybicnO30KZnVuY3Rpb24gbG9hZFN0b3JlZEVycm9ycygpe2lmKHR5cGVvZiBzZXNzaW9uU3RvcmFnZSE9PSd1bmRlZmluZWQnKXtpZihzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKSl7c3RvcmFnZT1KU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpKTt9fQpyZXR1cm4gc3RvcmFnZTt9CmZ1bmN0aW9uIGhhc1Nlc3Npb25FcnJvclNob3duKG1zZyl7bG9hZFN0b3JlZEVycm9ycygpO3JldHVybiBoYXNFcnJvclNob3duKG1zZyk7fQpmdW5jdGlvbiBoYXNFcnJvclNob3duKG1zZyl7aWYoc3RvcmFnZT09PXVuZGVmaW5lZClyZXR1cm4gZmFsc2U7Zm9yKHZhciBpPTA7aTxzdG9yYWdlLmxlbmd0aDtpKyspe2lmKHN0b3JhZ2VbaV09PT1tc2cpe3JldHVybiB0cnVlO319CnJldHVybiBmYWxzZTt9CmlmKHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKCdjdXN0b20tcGFnZS1wcmV2aWV3Lmh0bWwnKT09PS0xKXt3aW5kb3cub25lcnJvcj1mdW5jdGlvbihtc2csZmlsZSxsaW5lLGNvbCxlcnJvcil7Y29uc29sZS5sb2coJ29uZXJyb3IgcmFpc2VkIScpO2lmKCFoYXNTZXNzaW9uRXJyb3JTaG93bihtc2cpKXtlcnJvckNvbGxlY3Rpb25zLnB1c2goe21zZzptc2csbGluZTpsaW5lLGZpbGU6ZmlsZX0pO3N0b3JhZ2UucHVzaChtc2cpO2lmKHNlc3Npb25TdG9yYWdlIT09dW5kZWZpbmVkKXtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFNUT1JBR0VfS0VZLEpTT04uc3RyaW5naWZ5KHN0b3JhZ2UpKTt9fQppZihkb2N1bWVudFsnYm9keSddIT09bnVsbCYmZG9jdW1lbnRbJ2JvZHknXSE9PXVuZGVmaW5lZCl7YWRkUGl4ZWxzVG9Eb20oKTt9CmlmKCdsaXZlJz09J2xpdmUnJiYnVVMnPT0nQ0EnKXtndGFnKCdldmVudCcsJ2V4Y2VwdGlvbicseydzZW5kX3RvJzonRy1aNVE4WjVDN0tGJywnZGVzY3JpcHRpb24nOm1zZywnZmF0YWwnOnRydWV9KTt9fTt9CmlmKC9XZWJLaXQvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXt2YXIgX3RpbWVyPXNldEludGVydmFsKGZ1bmN0aW9uKCl7aWYoL2xvYWRlZHxjb21wbGV0ZS8udGVzdChkb2N1bWVudC5yZWFkeVN0YXRlKSl7Y2xlYXJJbnRlcnZhbChfdGltZXIpO29ubG9hZCgpO319LDEwKTt9Ci8qQGNjX29uIEAqLwovKkBpZiAoQF93aW4zMikKCQkJCWRvY3VtZW50LndyaXRlKCI8Iisic2NyaXB0IGlkPV9faWVfb25sb2FkIGRlZmVyIHNyYz1qYXZhc2NyaXB0OnZvaWQoMCk+PFwvc2NyaXB0PiIpOwoJCQkJdmFyIHNjcmlwdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJfX2llX29ubG9hZCIpOwoJCQkJc2NyaXB0Lm9ucmVhZHlzdGF0ZWNoYW5nZSA9IGZ1bmN0aW9uKCkgewoJCQkJICBpZiAodGhpcy5yZWFkeVN0YXRlID09ICJjb21wbGV0ZSIpIHsKCQkJCQlvbmxvYWQoKTsgLy8gY2FsbCB0aGUgb25sb2FkIGhhbmRsZXIKCQkJCSAgfQoJCQkJfTsKCQkJLypAZW5kIEAqLwpmdW5jdGlvbiBhZGRQaXhlbHNUb0RvbSgpe2Zvcih2YXIgaT0wO2k8ZXJyb3JDb2xsZWN0aW9ucy5sZW5ndGg7aSsrKXtjb25zb2xlLmxvZygnY3JlYXRlUGl4ZWwnLGVycm9yQ29sbGVjdGlvbnNbaV0pO319CmZ1bmN0aW9uIG9ubG9hZCgpe2FkZFBpeGVsc1RvRG9tKCk7fQpmdW5jdGlvbiBfY3JlYXRlU2NyaXB0KHRleHQpe3ZhciBzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO3MuYXBwZW5kKHRleHQpO3JldHVybiBzO30Kd2luZG93LmVycm9yVGVzdHM9e3N5bnRheDpmdW5jdGlvbigpe3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCgnfScpO2RvY3VtZW50LmJvZHkuYXBwZW5kKHNjcmlwdCk7fSxvZk51bGw6ZnVuY3Rpb24oKXt2YXIgdGV4dD0ndmFyIGEgPSBudWxsOyB2YXIgYiA9IGEud2hhdDsnO3ZhciBzY3JpcHQ9X2NyZWF0ZVNjcmlwdCh0ZXh0KTtkb2N1bWVudC5ib2R5LmFwcGVuZChzY3JpcHQpO30saW52YWxpZEFzc2lnbm1lbnQ6ZnVuY3Rpb24oKXt2YXIgc2NyaXB0PV9jcmVhdGVTY3JpcHQoJzEgPSBmdW5jKCk7Jyk7ZG9jdW1lbnQuYm9keS5hcHBlbmQoc2NyaXB0KTt9fTt3aW5kb3cudHJhY2tDb252ZXJzaW9uPWZ1bmN0aW9uKCl7aWYodHlwZW9mIGd0YWc9PSd1bmRlZmluZWQnKXJldHVybi0xO2lmKCF3aW5kb3cuZDJjX2F3Y0lkfHwhd2luZG93LmQyY19hd2NMYWJlbClyZXR1cm4tMztpZihkZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpPT0nbGl2ZScmJidVUyc9PSdDQScpe2d0YWcoJ2V2ZW50JywnY29udmVyc2lvbicseydzZW5kX3RvJzpkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbH0pO31lbHNle2NvbnNvbGUubG9nKCJndGFnKCdldmVudCcsJ2NvbnZlcnNpb24nLCB7ICdzZW5kX3RvJzogIitkMmNfYXdjSWQrJy8nK2QyY19hd2NMYWJlbCsiIH0pOyIpO319fSkoKTsKLypdXT4qLwoKCSgoZCkgPT4gewoJCWNvbnN0IGNlID0gZC5jcmVhdGVFbGVtZW50OwoJCWxldCB1cmxDYXRBcnIgPSB7CgkJCSdjbGFyaXZveS5jb20nIDogJ0MwMDAyJywKCQkJJ2RlYWxlci1sZWFkcy5jYScgOiAnQzAwMDMnLAoJCQkncm9hZHN0ZXIuY29tL3JvYWRzdGVyJyA6ICdDMDAwMicsLy9EV1AtMTIyODEKCQkJJ2Z6bG5rLmNvbS9zaWduYWxzLmpzJyA6ICdDMDAwMicsLy9EV1AtMTIyODkKCQkJJ2xpdmVjaGF0aW5jLmNvbS90cmFja2luZy5qcycgOiAnQzAwMDMnLC8vRFdQLTEyMzAzCgkJCSd0aGVsaXZlY2hhdHNvZnR3YXJlLmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMjk3CgkJCSdjYW5hZGEuZGlnaXRhbC1pbnRlcnZpZXcuY29tJyA6ICdDMDAwMycsLy9EV1AtMTIzMDAKCQkJJ3Nkay5hdXRvdmVyaWZ5LmNvbScgOiAnQzAwMDMnLC8vRFdQLTEyMzAxCgkJCSdhbmFseXRpY3MuanMnIDogJ0MwMDAyJywvL0RXUC0xMjMwOQoJCQknaHMtc2NyaXB0cy5jb20nIDogJ0MwMDA0JywvL0RXUC0xMjMyMAoJCQknbWFya2V0aW5nYXV0b21hdGlvbi5zZXJ2aWNlcycgOiAnQzAwMDQnLC8vRFdQLTEyMzIyCgkJCSdsZWFkZm94LmNvJyA6ICdDMDAwNCcsCgkJCSdzdGF0aWMudXB0cmFjcy5jb20nIDogJ0MwMDAzJywvL0RXUC0xMjM1NAogCQkJJ2JhdC5iaW5nLmNvbScgOiAnQzAwMDInLC8vRFdQLTEyMzU0CgkJCSdndGFnL2pzJyA6ICdDMDAwMicsCgkJCSdzZC5qcycgOiAnQzAwMDEnLAoJCQknc2RhLmpzJyA6ICdDMDAwMScsCgkJCSdpZnJhbWVfYXBpJyA6ICdDMDAwMScsCgkJCQoJCX07CgkJbGV0IHVybENhdFJlZ2V4ID0gJygnICsgT2JqZWN0LmtleXModXJsQ2F0QXJyKS5qb2luKCd8JykucmVwbGFjZSgvWys\/Ll0vZywgJ1wkJicpICsgJyknOwoJCWxldCBjdXJyZW50Q29uc2VudCA9IGdldENvbnNlbnQoKTsKCQl3aW5kb3cuc2NyaXB0VXJsQXJyID0gW107CgkJZC5jcmVhdGVFbGVtZW50ID0gZnVuY3Rpb24oLi4uYXJncykgewoJCQljb25zdCBzID0gY2UuYmluZChkKSguLi5hcmdzKSwgc2EgPSBzLnNldEF0dHJpYnV0ZS5iaW5kKHMpOwoJCQlzLnNldEF0dHJpYnV0ZSA9IGZ1bmN0aW9uKG4sIHYpIHsKCQkJCWlmKG4gPT09ICdzcmMnICYmIHdpbmRvdy5zY3JpcHRVcmxBcnIuaW5kZXhPZih2LnRvU3RyaW5nKCkpID09IC0xKSB7CgkJCQkJaWYoKG5ldyBSZWdFeHAodXJsQ2F0UmVnZXgpKS50ZXN0KHYpKXsKCQkJCQkJZm9yKGtleSBpbiB1cmxDYXRBcnIpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgCgkJCQkJCQlpZiAoKG5ldyBSZWdFeHAoa2V5KSkudGVzdCh2KSkgewoJCQkJCQkJCXdpbmRvdy5zY3JpcHRVcmxBcnIucHVzaCh2LnRvU3RyaW5nKCkpOwoJCQkJCQkJCWlmKGtleSA9PSAnZ3RhZy9qcycgfHwga2V5ID09ICdiYXQuYmluZy5jb20nIHx8IGtleSA9PSAnc2QuanMnIHx8IGtleSA9PSAnc2RhLmpzJyB8fCBrZXkgPT0gJ2lmcmFtZV9hcGknKXsKCQkJCQkJCQkJc2EoJ2RhdGEtb3QtaWdub3JlJywgdHJ1ZSk7CgkJCQkJCQkJCXNhKCd0eXBlJywgJ3RleHQvamF2YXNjcmlwdCcpOwoJCQkJCQkJCX0gZWxzZSBpZihjdXJyZW50Q29uc2VudCA9PSBudWxsIHx8IGN1cnJlbnRDb25zZW50LmluZGV4T2YodXJsQ2F0QXJyW2tleV0pID09IC0xKXsKCQkJCQkJCQkJc2EoJ3R5cGUnLCAndGV4dC9wbGFpbicpOwoJCQkJCQkJCQlzYSgnY2xhc3MnLCAnb3B0YW5vbi1jYXRlZ29yeS0nICsgdXJsQ2F0QXJyW2tleV0pOwoJCQkJCQkJCX0KCQkJCQkJCQlicmVhazsKCQkJCQkJCX0KCQkJCQkJfQoJCQkJCX0KCQkJCX0KCQkJCXNhKG4sIHYpOwoJCQl9CgkJCXJldHVybiBzOwoJCX0KCQlmdW5jdGlvbiBnZXRDb25zZW50KCl7CgkJCWxldCBuYW1lID0gJ2QyY19jb29raWVfY29uc2VudCcgKyAnPSc7CgkJCWxldCBjYSA9ICgnJytkb2N1bWVudC5jb29raWUpLnNwbGl0KCc7Jyk7CgkJCWZvcihsZXQgaSA9IDA7IGkgPCBjYS5sZW5ndGg7IGkrKykgewoJCQkJbGV0IGMgPSBjYVtpXTsKCQkJCWMgPSBjLnRyaW0oKTsKCQkJCWlmIChjLmluZGV4T2YobmFtZSkgPT0gMCkgewoJCQkJCXRyeXsKCQkJCQkJYyA9IGRlY29kZVVSSUNvbXBvbmVudCggYyApOwoJCQkJCX0gY2F0Y2goIGUgKQoJCQkJCXsKCQkJCQkJY29uc29sZS5sb2coIGUgKTsKCQkJCQkJcmV0dXJuIG51bGw7CgkJCQkJfQoJCQkJCXJldHVybiBjLnN1YnN0cmluZyhuYW1lLmxlbmd0aCwgYy5sZW5ndGgpOwoJCQkJfQoJCQl9CgkJCXJldHVybiBudWxsOwoJCX0KCX0pKGRvY3VtZW50KTsKCglkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgZnVuY3Rpb24oKSB7CgkvLyBMaXN0ZW4gZm9yIGNoYW5nZXMgdG8gdGhlIERPTQoJCWxldCBvYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKG11dGF0aW9ucykgewoJCQltdXRhdGlvbnMuZm9yRWFjaChmdW5jdGlvbihtdXRhdGlvbikgewoJCQkJaWYgKG11dGF0aW9uLmFkZGVkTm9kZXMgJiYgbXV0YXRpb24uYWRkZWROb2Rlcy5sZW5ndGggPiAwKSB7CgkJCQkJLy8gQ2hlY2sgaWYgb3VyIHNjcmlwdCBoYXMgYmVlbiBhZGRlZCB0byB0aGUgRE9NCgkJCQkJZm9yIChsZXQgaSA9IDA7IGkgPCBtdXRhdGlvbi5hZGRlZE5vZGVzLmxlbmd0aDsgaSsrKSB7CgkJCQkJCWxldCBub2RlID0gbXV0YXRpb24uYWRkZWROb2Rlc1tpXTsKCQkJCQkJaWYgKG5vZGUubm9kZVR5cGUgPT09IDEgJiYgbm9kZS50YWdOYW1lID09PSAnU0NSSVBUJyAmJiBub2RlLnNyYyAmJiBub2RlLnNyYy5pbmNsdWRlcygnY2FuYWRhLmRpZ2l0YWwtaW50ZXJ2aWV3LmNvbScpICYmIHR5cGVvZiBPbmVUcnVzdCAhPT0gJ3VuZGVmaW5lZCcpIHsKCQkJCQkJCXNldFRpbWVvdXQoZnVuY3Rpb24oKXsKCQkJCQkJCQl0cnl7RGlnaXRhbEludGVydmlldy5MYXVuY2hlci5lbmFibGVMYXVuY2hQb2ludHMoKTt9Y2F0Y2goZSl7fQoJCQkJCQkJfSwgMTAwMCk7CgkJCQkJCX0KCQkJCQl9CgkJCQl9CgkJCX0pOwoJCX0pOwoJCS8vIFN0YXJ0IG9ic2VydmluZyB0aGUgZG9jdW1lbnQgd2l0aCB0aGUgY29uZmlndXJlZCBwYXJhbWV0ZXJzCgkJb2JzZXJ2ZXIub2JzZXJ2ZShkb2N1bWVudC5ib2R5LCB7IGNoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZSB9KTsKCQlvYnNlcnZlci5vYnNlcnZlKGRvY3VtZW50LmhlYWQsIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwoJfSk7CgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iWlpaLTQxNTU2NDgiCnZhciBjdXJyZW50U2l0ZUlEPTE5Mjt2YXIgZDJjX2dhQWNjb3VudHM9eyJhbGwiOltdLCJpbnRlcm5hbCI6W119O3ZhciBkMmNfYXdjSWQ9J0FXLTgzMjAwOTczNic7dmFyIGQyY19hd2NMYWJlbD0nYUtwekNNdks1M1VRaU96ZGpBTSc7dmFyIGxlZ2FjeV9nYT1mYWxzZTt3aW5kb3cuZGF0YUxheWVyPXdpbmRvdy5kYXRhTGF5ZXJ8fFtdO2Z1bmN0aW9uIGd0YWcoKXtkYXRhTGF5ZXIucHVzaChhcmd1bWVudHMpO30KZ3RhZygnanMnLG5ldyBEYXRlKCkpO2QyY19nYUFjY291bnRzLmFsbC5wdXNoKCdHLVo1UThaNUM3S0YnKTtkMmNfZ2FBY2NvdW50cy5hbGwucHVzaCgnRy01OThUTDlORVZOJyk7aWYoZDJjX2F3Y0lkKXtkMmNfZ2FBY2NvdW50cy5hbGwucHVzaChkMmNfYXdjSWQpO30KKGQyY19nYUFjY291bnRzLmFsbHx8W10pLm1hcChmdW5jdGlvbihpZCl7Z3RhZygnY29uZmlnJyxpZCx7J3NlbmRfcGFnZV92aWV3JzpmYWxzZSwnbGlua2VyJzp7J2RvbWFpbnMnOkpTT04ucGFyc2UoYXRvYigiV3lKb2RIUndjenBjTDF3dmNHOXBjbWxsY2k1amJHbGphM1J2WW5WNUxtaDVkVzVrWVdsallXNWhaR0V1WTI5dElpd2lhSFIwY0hNNlhDOWNMM05vYjNBdWNHOXBjbWxsY21oNWRXNWtZV2t1WTJFaVhRPT0iKSksJ2Nvb2tpZV9kb21haW4nOid3d3cucG9pcmllcmh5dW5kYWkuY2EnfX0pO30pOwovKl1dPiovCgovKjwhW0NEQVRBWyovCi8vZGF0YS1zY29kZXJlZj0iRkxULTE1NjY0NTg4OTk2NDUzNDExNTM4NiIKdmFyIGRvY1JlYWR5QXJyPVtdO3ZhciBwYWdlPSJORVdDQVJTIjt2YXIgZmJDaGF0UmVmPXt9O3ZhciBkZXBsb3ltZW50VHlwZT0nbGl2ZSc7dmFyIGN1cnJlbnRTaXRlSUQ9MTkyO3ZhciBjdXJyZW50RGVhbGVySUQ9MTc1Mjt2YXIgZ2FUeXBlPSdndGFnJzt2YXIgYWxsQ2FtcGFpZ25zPVtbInBvaXJpZXJoeXVuZGFpLmNhIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJUb3V0ZXMiLDcwNV0sWyJwb2lyaWVyaHl1bmRhaS5jYSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiTmV1ZnMiLDYyN10sWyJwb2lyaWVyaHl1bmRhaS5jYSIsIkNvdXJyaWVscy1yZWxhbmNlIiwiT2NjYXNpb24iLDYyOF0sWyJwb2lyaWVyaHl1bmRhaS5jYSIsIlNFTSIsIkFnZW5jeSIsMzMxNl0sWyJQb2lyaWVyaHl1bmRhaS5jYSIsIkdvb2dsZSIsIk5ldWYiLDM5ODBdLFsiUG9pcmllcmh5dW5kYWkuY2EiLCJHb29nbGUiLCJSZWNpYmxhZ2UiLDQwMjBdLFsicG9pcmllcmh5dW5kYWkuY2EiLCJUcmFkZXIiLCJSZXRhcmdldGluZyIsNDMxOV0sWyJQb2lyaWVyaHl1bmRhaS5jYSIsIkJpbmciLCJCaW5nIiw0ODA1XSxbInBvaXJpZXJoeXVuZGFpLmNhIiwiQ291cnJpZWxzLXJlbGFuY2UiLCJQb3N0LUxpdnJhaXNvbi0yNGgiLDU4NjZdLFsiUG9pcmllcmh5dW5kYWkuY2EiLCJGYWNlYm9vayIsIkxlYWRhZHMtbmV1ZiIsOTE5MF0sWyJQb2lyaWVyaHl1bmRhaS5jYSIsIkdvb2dsZSIsIk9jY2FzaW9uIiw5OTA1XSxbIlBvaXJpZXJoeXVuZGFpLmNhIiwiR29vZ2xlIiwiU21hcnQtbmV1ZiIsMTI3NTJdLFsiUG9pcmllcmh5dW5kYWkuY2EiLCJCaW5nIiwiTmV1ZiIsMTgwNTldLFsiUG9pcmllcmh5dW5kYWkuY2EiLCJGYWNlYm9vayIsIk5ldWYiLDE4MDYyXSxbIlBvaXJpZXJoeXVuZGFpLmNhIiwiR29vZ2xlIiwiTmV1Zi1sb2NhdGlvbiIsMzYzMDVdLFsiUG9pcmllcmh5dW5kYWkuY2EiLCJGYWNlYm9vayIsIk9jY2FzaW9uIiwzNjU2M11dCnZhciByZXRhcmdldGluZ0NhbXBhaWducz1bWyJQb2lyaWVyaHl1bmRhaS5jYSIsIlBvaXJpZXJoeXVuZGFpLmNhIiwiR29vZ2xlIiwiR29vZ2xlIiwiUmVjaWJsYWdlIiwiUmVjaWJsYWdlIl1dCnZhciBBSUN1cnJlbnRDb25maWdJRD0wO3ZhciBBSUlEUGVyTmV3Q2Fyc0ZyZW5jaD1uZXcgQXJyYXkoKTt2YXIgQUlJRFBlck5ld0NhcnNFbmdsaXNoPW5ldyBBcnJheSgpO2Z1bmN0aW9uIHBhcnNlUXVlcnkoc3RyKXtpZihzdHIubGVuZ3RoPDEpcmV0dXJue30KdmFyIHZhcnM9e30sdjt2YXIgcXM9c3RyLnNwbGl0KCcmJyk7Zm9yKHZhciBpPTA7aTxxcy5sZW5ndGg7aSsrKXt2PWV4cGxvZGUocXNbaV0sJz0nLDEpO3ZhcnNbdlswXV09dlsxXTt9CnJldHVybiB2YXJzO30KZnVuY3Rpb24gZGVjb2RlU3RyaW5nKHN0cmluZyx0aW1lcyl7aWYodGltZXM9PSIifHx0aW1lcz09InVuZGVmaW5lZCIpe3RpbWVzPTE7fQpmb3IoaT0wO2k8dGltZXM7aSsrKXtzdHJpbmc9ZGVjb2RlVVJJQ29tcG9uZW50KHN0cmluZyk7fQpyZXR1cm4gc3RyaW5nO30KZnVuY3Rpb24gZGVjb2RlSFRNTChlbmNvZGVkKXtpZih0eXBlb2YgZW5jb2RlZCE9PSdzdHJpbmcnKXJldHVybiBlbmNvZGVkO3ZhciBlbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO2VsLmlubmVySFRNTD1lbmNvZGVkO3JldHVybiBlbC52YWx1ZTt9CmZ1bmN0aW9uIGV4cGxvZGUoc3RyLHNlcGFyYXRvcixsaW1pdCl7c3RyPXN0ci5zcGxpdChzZXBhcmF0b3IpO2lmKHN0ci5sZW5ndGg8PWxpbWl0KXJldHVybiBzdHI7dmFyIHJldD1zdHIuc3BsaWNlKDAsbGltaXQpO3JldC5wdXNoKHN0ci5qb2luKHNlcGFyYXRvcikpO3JldHVybiByZXQ7fQpmdW5jdGlvbiBnZXRVcmxWYXJzKCl7dmFyIHFzPSh3aW5kb3cubG9jYXRpb24uc2VhcmNoKS5zdWJzdHJpbmcoMSk7cmV0dXJuIHBhcnNlUXVlcnkocXMpO30KZnVuY3Rpb24gZ2V0Q29va2llKGNfbmFtZSl7cmV0dXJuIENvb2tpZXMuZ2V0KGNfbmFtZSk7fQpmdW5jdGlvbiBnZXRDb29raWUoY19uYW1lKXt2YXIgY192YWx1ZT1kb2N1bWVudC5jb29raWU7dmFyIGNfc3RhcnQ9Y192YWx1ZS5pbmRleE9mKCIgIitjX25hbWUrIj0iKTtpZihjX3N0YXJ0PT0tMSl7Y19zdGFydD1jX3ZhbHVlLmluZGV4T2YoY19uYW1lKyI9Iik7fQppZihjX3N0YXJ0PT0tMSl7Y192YWx1ZT1udWxsO31lbHNle2Nfc3RhcnQ9Y192YWx1ZS5pbmRleE9mKCI9IixjX3N0YXJ0KSsxO3ZhciBjX2VuZD1jX3ZhbHVlLmluZGV4T2YoIjsiLGNfc3RhcnQpO2lmKGNfZW5kPT0tMSl7Y19lbmQ9Y192YWx1ZS5sZW5ndGg7fQpjX3ZhbHVlPXVuZXNjYXBlKGNfdmFsdWUuc3Vic3RyaW5nKGNfc3RhcnQsY19lbmQpKTt9CnJldHVybiBjX3ZhbHVlO30KZnVuY3Rpb24gc2V0Q29va2llKGNfbmFtZSx2YWx1ZSxleGRheXMpe2lzQ29va2llQWxsb3dlZChjX25hbWUsZnVuY3Rpb24oYWxsb3dlZCl7aWYoIWFsbG93ZWQpe3JldHVybiBDb29raWVzLnNldChjX25hbWUsdmFsdWUsZXhkYXlzLCcvJyk7bG9nQ29va2llKGNfbmFtZSx2YWx1ZSxleGRheXMpO3JldHVybjt9CnZhciBleGRhdGU9bmV3IERhdGUoKTtleGRhdGUuc2V0RGF0ZShleGRhdGUuZ2V0RGF0ZSgpK2V4ZGF5cyk7dmFyIGNfdmFsdWU9ZXNjYXBlKHZhbHVlKSsoKGV4ZGF5cz09bnVsbCk\/IiI6IjsgZXhwaXJlcz0iK2V4ZGF0ZS50b1VUQ1N0cmluZygpKSsiOyBwYXRoPS8iO2RvY3VtZW50LmNvb2tpZT1jX25hbWUrIj0iK2NfdmFsdWU7fSk7fQpmdW5jdGlvbiBsb2dDb29raWUobmFtZSx2YWx1ZSxleHBpcmVzLHRyaWVzKXtpZih0eXBlb2YgdHJpZXM9PT0ndW5kZWZpbmVkJyl7dHJpZXM9NTt9CmlmKHR5cGVvZiB3aW5kb3cuQ29va2llTG9nZ2VyPT09J3VuZGVmaW5lZCcpe2lmKHRyaWVzKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bG9nQ29va2llKG5hbWUsdmFsdWUsZXhwaXJlcyx0cmllcy0xKTt9LDEwMDApO319ZWxzZXt3aW5kb3cuQ29va2llTG9nZ2VyLmxvZyhuYW1lLHZhbHVlLGV4cGlyZXMpO319CmZ1bmN0aW9uIGlzQ29va2llQWxsb3dlZChuYW1lLGNhbGxiYWNrLHRyaWVzKXtpZih0eXBlb2Ygd2luZG93LkNvb2tpZUNvbnNlbnQ9PT0ndW5kZWZpbmVkJyl7aWYodHlwZW9mIHRyaWVzPT09J3VuZGVmaW5lZCcpe3RyaWVzPTU7fQppZih0cmllcyl7c2V0VGltZW91dChmdW5jdGlvbigpe2lzQ29va2llQWxsb3dlZChuYW1lLGNhbGxiYWNrLHRyaWVzLTEpO30sMTAwMCk7fX1lbHNle3dpbmRvdy5Db29raWVDb25zZW50LmlzQ29va2llQWxsb3dlZChuYW1lLGNhbGxiYWNrKTt9fQpmdW5jdGlvbiBnYVBhZ2VWaWV3KHBwKXsoZDJjX2dhQWNjb3VudHMuYWxsfHxbXSkubWFwKGZ1bmN0aW9uKGlkKXtsZXQgZD17cGFnZV9wYXRoOnBwfTtpZihkZXBsb3ltZW50VHlwZSE9J2xpdmUnfHwnVVMnIT0nQ0EnKXtjb25zb2xlLmxvZygnZ3RhZycsJ2NvbmZpZycsaWQsZCkKcmV0dXJuO30KZ3RhZygnY29uZmlnJyxpZCxkKTt9KTt9O2Z1bmN0aW9uIGdhNFBhZ2VWaWV3KHBwKXtpZihkZXBsb3ltZW50VHlwZSE9J2xpdmUnfHwnVVMnIT0nQ0EnKXtyZXR1cm47fQpndGFnKCdzZXQnLHsncGFnZV9wYXRoJzpwcH0pO2d0YWcoJ2V2ZW50JywncGFnZV92aWV3Jyx7J3NlbmRfdG8nOidHLTU5OFRMOU5FVk4nfSk7fQpmdW5jdGlvbiBnZXRHYUNsaWVudElkKCl7cmV0dXJuKCgodHlwZW9mIHdpbmRvdy5nYT09PSdvYmplY3QnJiZ3aW5kb3cuZ2EhPT1udWxsKXx8dHlwZW9mIHdpbmRvdy5nYT09PSdmdW5jdGlvbicpJiZ0eXBlb2YgZ2FbJ2dldEFsbCddPT09J2Z1bmN0aW9uJyk\/Z2EuZ2V0QWxsKClbMF0uZ2V0KCdjbGllbnRJZCcpOicnO30KZnVuY3Rpb24gZ2FUcmFjayhhYSxjLGEsbCx2KXtsZXQgYWM9W107Y29uc3QgY3M9ZGVwbG95bWVudFR5cGUhPSdsaXZlJ3x8J1VTJyE9J0NBJztjb25zdCBjaD0obyxkKT0+dHlwZW9mIG8hPT0ndW5kZWZpbmVkJz9vOmQ7YWE9Y2goYWEsJycpO2M9Y2goYywnJyk7YT1jaChhLCcnKTtsPWNoKGwsJycpO3Y9Y2godiwxKTtpZihhYT09J2ludGVybmFsJyl7YWM9ZDJjX2dhQWNjb3VudHMuaW50ZXJuYWw7fWVsc2UgaWYoYWEubGVuZ3RoJiYvXihifGN8ZClcLl90cmFja0V2ZW50Ly50ZXN0KGFhKSYmdHlwZW9mIGQyY19nYUFjY291bnRzW2FhWzBdXSE9J3VuZGVmaW5lZCcpe2FjLnB1c2goZDJjX2dhQWNjb3VudHNbYWFbMF1dKTt9CmlmKGFjLmxlbmd0aCl7YWMubWFwKChpZCk9Pntjb25zdCBkPXtzZW5kX3RvOmlkLGV2ZW50X2FjdGlvbjphLGV2ZW50X2NhdGVnb3J5OmMsZXZlbnRfbGFiZWw6bCx2YWx1ZTp2fTtpZihjcyl7Y29uc29sZS5sb2coYEdBVFJBQ0stR1RBRy1TRU5ELVRPWyR7aWR9XTpgLCdldmVudCcsYSxkKTtyZXR1cm47fQpndGFnKCdldmVudCcsYSxkKTt9KTt9ZWxzZXtjb25zdCBkPXtldmVudF9hY3Rpb246YSxldmVudF9jYXRlZ29yeTpjLGV2ZW50X2xhYmVsOmwsdmFsdWU6dn07aWYoY3Mpe2NvbnNvbGUubG9nKCdHQVRSQUNLLUdUQUctTk8tU0VORC1UTzonLCdldmVudCcsYSxkKTt9ZWxzZXtndGFnKCdldmVudCcsYSxkKTt9fX07ZnVuY3Rpb24gb25Db25maXJtU3VibWl0KGV2ZW50KXtyZXR1cm4gdHJ1ZTt9CmZ1bmN0aW9uIHNldFNlc3Npb25Db29raWUoY19uYW1lLHZhbHVlKXt2YXIgZXhkYXlzPW51bGw7dmFyIGNfdmFsdWU9ZXNjYXBlKHZhbHVlKSsiO2V4cGlyZXM9MDtwYXRoPS8iO2RvY3VtZW50LmNvb2tpZT1jX25hbWUrIj0iK2NfdmFsdWU7bG9nQ29va2llKGNfbmFtZSk7fQpmdW5jdGlvbiBpbml0TENJKHBhcmFtcyxuKXtpZihuPjIwKXJldHVybiBuO3ZhciBuPShuKT9uOjA7aWYodHlwZW9mIExDX0FQST09J3VuZGVmaW5lZCd8fHR5cGVvZiBMQ19JbnZpdGU9PSd1bmRlZmluZWQnKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aW5pdExDSShwYXJhbXMsKytuKTt9LDUwMCk7cmV0dXJuO30KaWYodHlwZW9mIExDX0FQSSE9J3VuZGVmaW5lZCcmJnR5cGVvZiBMQ19JbnZpdGUhPSd1bmRlZmluZWQnJiZwYXJhbXMpe3JldHVybiBMQ19BUEkuc2V0X2N1c3RvbV92YXJpYWJsZXMocGFyYW1zKTt9fQpmdW5jdGlvbiBzYW5pdGl6ZVJlZmVyZXIocmVmZXJlcil7cmV0dXJuIHJlZmVyZXIucmVwbGFjZSgvWyciYCgpPD5cW1xde318IV0vZywnJyk7fQpmdW5jdGlvbiBnZXRSZWZlcnJlclZhckZ1bmN0aW9uKHJlZmVyZXIpe3JldHVybiBmdW5jdGlvbigpe2lmKCcnPT1yZWZlcmVyKXJlZmVyZXI9ZG9jdW1lbnQucmVmZXJyZXI7cmVmZXJlcj1zYW5pdGl6ZVJlZmVyZXIocmVmZXJlcik7dmFyIHFzLHFzaW5kZXg9cmVmZXJlci5pbmRleE9mKCc\/JykrMTtpZihxc2luZGV4PjApe3ZhciBxcz1yZWZlcmVyLnNsaWNlKHFzaW5kZXgpO3JldHVybiBwYXJzZVF1ZXJ5KHFzKTt9CnJldHVybnt9fX0KdmFyIGdldFJlZmVyZXJWYXJzPWdldFJlZmVycmVyVmFyRnVuY3Rpb24oJycpO3ZhciB1dG1fbGFuZGluZ19jb29raWU9KGdldENvb2tpZSgndXRtX2xhbmRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2xhbmRpbmcnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fbGFuZGluZycpOicnKTtpZih1dG1fbGFuZGluZ19jb29raWUubGVuZ3RoPT0wKXtzZXRDb29raWUoJ3V0bV9sYW5kaW5nJyx3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpO30KaWYoZGVwbG95bWVudFR5cGU9PSdsaXZlJyl7dmFyIGdlbmVyYXRlR1VJRD1mdW5jdGlvbigpe3ZhciBTND1mdW5jdGlvbigpe3JldHVybiBNYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqMHgxMDAwMCkudG9TdHJpbmcoMTYpO307cmV0dXJuKFM0KCkrUzQoKSsiLSIrClM0KCkrIi0iKwpTNCgpKyItIisKUzQoKSsiLSIrClM0KCkrUzQoKStTNCgpKTt9CnZhciB1cmxWYXJzPWdldFVybFZhcnMoKTt2YXIgcmVmZXJlclZhcnM9Z2V0UmVmZXJlclZhcnMoKTt2YXIgcmVmZXJlcj0nJzt2YXIgcmF3UmVmZXJyZXI9cmVmZXJlcjtyZWZlcmVyPShyZWZlcmVyLmxlbmd0aDwxPzA6cmVmZXJlcik7aWYoJyc9PXJhd1JlZmVycmVyKXJhd1JlZmVycmVyPWRvY3VtZW50LnJlZmVycmVyO3ZhciBpdGVtVHlwZT0nY2FyJztpdGVtVHlwZT0oaXRlbVR5cGUubGVuZ3RoPDE\/MDppdGVtVHlwZSk7aWYoaXNOYU4ocmVmZXJlcikpe3JlZmVyZXI9cmVmZXJlci5yZXBsYWNlKC9cLy9nLCJ8IikucmVwbGFjZSgvXD8vZywiX18iKS5yZXBsYWNlKC9cdC9nLCcnKS5yZXBsYWNlKC9cbi9nLCcnKS5yZXBsYWNlKC9cci9nLCcnKS5yZXBsYWNlQWxsKCclMEEnLCcnKS5yZXBsYWNlQWxsKCclMDknLCcnKS5yZXBsYWNlQWxsKCclMEInLCcnKS5yZXBsYWNlQWxsKCclMDAnLCcnKS5yZXBsYWNlQWxsKCclMEQnLCcnKTt9CnZhciBtYWtlPSIiO2lmKG1ha2UubGVuZ3RoPT0wKW1ha2U9IjAiO3ZhciBtb2RlbD0iIjtpZihtb2RlbC5sZW5ndGg9PTApbW9kZWw9IjAiO3ZhciB5ZWFyPSIiO2lmKHllYXIubGVuZ3RoPT0wKXllYXI9IjAiO3ZhciBpc21vYmlsZT0iMSI7aWYoaXNtb2JpbGUubGVuZ3RoPT0wKWlzbW9iaWxlPSIwIjt2YXIgb3JpZ1NvdXJjZT0iIjt2YXIgb3JpZ0NhbXBhaWduPSIiO3ZhciBvcmlnS2V5d29yZD0iIjtpZih1cmxWYXJzWyJyZWxhbmNlSUQiXSE9dW5kZWZpbmVkKQpzZXRDb29raWUoJ3JlbGFuY2VJRCcsdXJsVmFyc1sicmVsYW5jZUlEIl0sMTgwKTt2YXIgc291cmNlPShnZXRDb29raWUoJ3V0bV9zb3VyY2UnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX3NvdXJjZScpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9zb3VyY2UnKTonJyk7dmFyIHNvdXJjZUNvb2tpZT1zb3VyY2U7dmFyIHNvdXJjZVVSTD0iIjtpZigidXRtX3NvdXJjZSJpbiB1cmxWYXJzKXtpZihzb3VyY2UubGVuZ3RoPT0wKXNvdXJjZT11cmxWYXJzWyd1dG1fc291cmNlJ107c291cmNlVVJMPXVybFZhcnNbJ3V0bV9zb3VyY2UnXTt9CnZhciBjYW1wYWlnbj0oZ2V0Q29va2llKCd1dG1fY2FtcGFpZ24nKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX2NhbXBhaWduJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2NhbXBhaWduJyk6JycpO2lmKGNhbXBhaWduLnRvTG93ZXJDYXNlKCk9PSdlY29sZS1ldHVkaWFudCcpe2NhbXBhaWduPScnO3NldENvb2tpZSgndXRtX2NhbXBhaWduJywiIiwxKTt9CnZhciBjYW1wYWlnbkNvb2tpZT1jYW1wYWlnbjt2YXIgY2FtcGFpZ25VUkw9IiI7aWYoInV0bV9jYW1wYWlnbiJpbiB1cmxWYXJzKXtpZihjYW1wYWlnbi5sZW5ndGg9PTApY2FtcGFpZ249dXJsVmFyc1sndXRtX2NhbXBhaWduJ107Y2FtcGFpZ25VUkw9dXJsVmFyc1sndXRtX2NhbXBhaWduJ107fQp2YXIgbWVkaXVtPShnZXRDb29raWUoJ3V0bV9tZWRpdW0nKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX21lZGl1bScpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9tZWRpdW0nKTonJyk7dmFyIG1lZGl1bUNvb2tpZT1tZWRpdW07dmFyIG1lZGl1bVVSTD0iIjtpZigidXRtX21lZGl1bSJpbiB1cmxWYXJzKXtpZihtZWRpdW0ubGVuZ3RoPT0wKW1lZGl1bT11cmxWYXJzWyd1dG1fbWVkaXVtJ107bWVkaXVtVVJMPXVybFZhcnNbJ3V0bV9tZWRpdW0nXTt9CnZhciBjb29raWVJbkNhbXBhaWducz1mYWxzZTt2YXIgdXJsSW5DYW1wYWlnbnM9ZmFsc2U7dmFyIGhhc0dvb2dsZU9yZ2FuaWM9ZmFsc2U7Zm9yKHZhciBpPTA7aTxhbGxDYW1wYWlnbnMubGVuZ3RoO2krKyl7aWYoYWxsQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PXNvdXJjZVVSTC50b0xvd2VyQ2FzZSgpJiZhbGxDYW1wYWlnbnNbaV1bMl0udG9Mb3dlckNhc2UoKT09Y2FtcGFpZ25VUkwudG9Mb3dlckNhc2UoKSl1cmxJbkNhbXBhaWducz10cnVlO2lmKGFsbENhbXBhaWduc1tpXVsxXS50b0xvd2VyQ2FzZSgpPT1zb3VyY2VDb29raWUudG9Mb3dlckNhc2UoKSYmYWxsQ2FtcGFpZ25zW2ldWzJdLnRvTG93ZXJDYXNlKCk9PWNhbXBhaWduQ29va2llLnRvTG93ZXJDYXNlKCkpY29va2llSW5DYW1wYWlnbnM9dHJ1ZTtpZihhbGxDYW1wYWlnbnNbaV1bMV0udG9Mb3dlckNhc2UoKT09J2dvb2dsZScmJmFsbENhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT0nb3JnYW5pcXVlJyloYXNHb29nbGVPcmdhbmljPXRydWU7fQppZihzb3VyY2VVUkw9PSIiJiZjYW1wYWlnblVSTD09IiImJnNvdXJjZT09IiImJmNhbXBhaWduPT0iIiYmaGFzR29vZ2xlT3JnYW5pYyl7c291cmNlVVJMPSJHb29nbGUiO2NhbXBhaWduVVJMPSJPcmdhbmlxdWUiO3VybEluQ2FtcGFpZ25zPXRydWU7fQppZihjb29raWVJbkNhbXBhaWducz09ZmFsc2UmJnVybEluQ2FtcGFpZ25zPT10cnVlKXtzb3VyY2U9c291cmNlVVJMO2NhbXBhaWduPWNhbXBhaWduVVJMO3NvdXJjZUNvb2tpZT1zb3VyY2VVUkw7Y2FtcGFpZ25Db29raWU9Y2FtcGFpZ25VUkw7fQppZihzb3VyY2VDb29raWUudG9Mb3dlckNhc2UoKT09J3NlbScmJnNvdXJjZVVSTC50b0xvd2VyQ2FzZSgpPT0nZ29vZ2xlJyYmdXJsSW5DYW1wYWlnbnMpe3NvdXJjZT1zb3VyY2VVUkw7Y2FtcGFpZ249Y2FtcGFpZ25VUkw7fQp2YXIgY3VycmVudFNpdGVJRD0xOTI7aWYoKGN1cnJlbnRTaXRlSUQ9PTU5Mnx8Y3VycmVudFNpdGVJRD09NDM3fHxjdXJyZW50U2l0ZUlEPT01Nzl8fGN1cnJlbnRTaXRlSUQ9PTU4NSkmJnNvdXJjZUNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nc2VtJyl7c291cmNlQ29va2llPSdHb29nbGUnO3NvdXJjZT0nR29vZ2xlJztjYW1wYWlnbkNvb2tpZT0nTmV1Zic7Y2FtcGFpZ249J05ldWYnO30KaWYoY2FtcGFpZ25Db29raWUudG9Mb3dlckNhc2UoKT09J29yZ2FuaWMnfHxjYW1wYWlnbkNvb2tpZS50b0xvd2VyQ2FzZSgpPT0nb3JnYW5pcXVlJyl7c291cmNlQ29va2llPScnO2NhbXBhaWduQ29va2llPScnO21lZGl1bUNvb2tpZT0nJzt9CmlmKHNvdXJjZS5sZW5ndGg+MCYmKHNvdXJjZUNvb2tpZS5sZW5ndGg9PTB8fHNvdXJjZUNvb2tpZT09c291cmNlKSlzZXRDb29raWUoJ3V0bV9zb3VyY2UnLHNvdXJjZSwxODApO2lmKGNhbXBhaWduLmxlbmd0aD4wJiYoY2FtcGFpZ25Db29raWUubGVuZ3RoPT0wfHxjYW1wYWlnbkNvb2tpZT09Y2FtcGFpZ24pKXNldENvb2tpZSgndXRtX2NhbXBhaWduJyxjYW1wYWlnbiwxODApO2lmKG1lZGl1bS5sZW5ndGg+MCYmKG1lZGl1bUNvb2tpZS5sZW5ndGg9PTB8fG1lZGl1bUNvb2tpZT09bWVkaXVtKSlzZXRDb29raWUoJ3V0bV9tZWRpdW0nLG1lZGl1bSwxODApO3ZhciBrZXl3b3JkPShnZXRDb29raWUoJ3V0bV9rZXl3b3JkJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9rZXl3b3JkJykhPSd1bmRlZmluZWQnP2dldENvb2tpZSgndXRtX2tleXdvcmQnKTonJyk7aWYoImt3ImluIHVybFZhcnMpe2tleXdvcmQ9ZGVjb2RlU3RyaW5nKHVybFZhcnNbJ2t3J10sMyk7fQppZihrZXl3b3JkLmxlbmd0aD4wKXNldENvb2tpZSgndXRtX2tleXdvcmQnLGtleXdvcmQsMTgwKTt2YXIgaXNSZXRhcmdldGluZz1mYWxzZTtmb3IodmFyIGk9MDtpPHJldGFyZ2V0aW5nQ2FtcGFpZ25zLmxlbmd0aDtpKyspe2lmKHJldGFyZ2V0aW5nQ2FtcGFpZ25zW2ldWzFdLnRvTG93ZXJDYXNlKCk9PXNvdXJjZVVSTC50b0xvd2VyQ2FzZSgpJiZyZXRhcmdldGluZ0NhbXBhaWduc1tpXVsyXS50b0xvd2VyQ2FzZSgpPT1jYW1wYWlnblVSTC50b0xvd2VyQ2FzZSgpKWlzUmV0YXJnZXRpbmc9dHJ1ZTt9CmlmKGlzUmV0YXJnZXRpbmcpe3ZhciBzb3VyY2VSZXRhcmdldGluZz0oZ2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJyk6JycpO3ZhciBjYW1wYWlnblJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT1udWxsJiZ0eXBlb2YgZ2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKSE9J3VuZGVmaW5lZCc\/Z2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnKTonJyk7aWYoc291cmNlIT1zb3VyY2VVUkx8fGNhbXBhaWduIT1jYW1wYWlnblVSTCl7aWYoc291cmNlVVJMLmxlbmd0aD4wJiZzb3VyY2VSZXRhcmdldGluZy5sZW5ndGg9PTApc2V0Q29va2llKCd1dG1fc291cmNlX3JldGFyZ2V0aW5nJyxzb3VyY2VVUkwsMTgwKTtpZihjYW1wYWlnblVSTC5sZW5ndGg+MCYmY2FtcGFpZ25SZXRhcmdldGluZy5sZW5ndGg9PTApc2V0Q29va2llKCd1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcnLGNhbXBhaWduVVJMLDE4MCk7fQpzZXRDb29raWUoJ3V0bV9zb3VyY2UnLHNvdXJjZVVSTCwxODApO3NldENvb2tpZSgndXRtX2NhbXBhaWduJyxjYW1wYWlnblVSTCwxODApO30KdmFyIHNvdXJjZVJldGFyZ2V0aW5nPShnZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKSE9bnVsbCYmdHlwZW9mIGdldENvb2tpZSgndXRtX3NvdXJjZV9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnKTonJyk7dmFyIGNhbXBhaWduUmV0YXJnZXRpbmc9KGdldENvb2tpZSgndXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycpOicnKTtpZihzb3VyY2VSZXRhcmdldGluZy5sZW5ndGg+MClzZXRDb29raWUoJ3V0bV9zb3VyY2VfcmV0YXJnZXRpbmcnLHNvdXJjZVJldGFyZ2V0aW5nLDE4MCk7aWYoY2FtcGFpZ25SZXRhcmdldGluZy5sZW5ndGg+MClzZXRDb29raWUoJ3V0bV9jYW1wYWlnbl9yZXRhcmdldGluZycsY2FtcGFpZ25SZXRhcmdldGluZywxODApO2lmKCFzb3VyY2Upe2lmKHJhd1JlZmVycmVyIT0nJyl7dmFyIHNlbGZIb3N0PShkb2N1bWVudC5sb2NhdGlvbi5ocmVmKS5tYXRjaCgvXltBLXpdKzpcL1wvKFteXC9dKylcLz8uKi8pO2lmKHNlbGZIb3N0KXtzZWxmSG9zdD1zZWxmSG9zdFsxXX0KdmFyIGhvc3Q9KHJhd1JlZmVycmVyLnRvU3RyaW5nKCkpLm1hdGNoKC9eW0Etel0rOlwvXC8oW15cL10rKVwvPy4qLyk7aWYoaG9zdCl7aG9zdD1ob3N0WzFdfWVsc2V7aG9zdD1zZWxmSG9zdDt9CmlmKGhvc3QhPXNlbGZIb3N0KXtob3N0PWhvc3Quc3BsaXQoJy4nKTtpZihob3N0Lmxlbmd0aD4yKXtzb3VyY2U9aG9zdFsxXTt9CmlmKGhvc3QubGVuZ3RoPT0yKXtzb3VyY2U9aG9zdFswXTt9CmlmKHNvdXJjZSlzZXRDb29raWUoJ3V0bV9zb3VyY2UnLHNvdXJjZSwxODApO2lmKCFjYW1wYWlnbil7Y2FtcGFpZ249J29yZ2FuaWMnO3NldENvb2tpZSgndXRtX2NhbXBhaWduJyxjYW1wYWlnbiwxODApO319fX0KaWYoc291cmNlLmxlbmd0aD09MClzb3VyY2U9IjAiO2lmKGNhbXBhaWduLmxlbmd0aD09MCljYW1wYWlnbj0iMCI7aWYoc291cmNlUmV0YXJnZXRpbmcubGVuZ3RoPT0wKXNvdXJjZVJldGFyZ2V0aW5nPSIwIjtpZihjYW1wYWlnblJldGFyZ2V0aW5nLmxlbmd0aD09MCljYW1wYWlnblJldGFyZ2V0aW5nPSIwIjtpZih1cmxWYXJzWyJEaXNwbGF5U291cmNlIl0hPXVuZGVmaW5lZCl7aWYoZ2V0Q29va2llKCdEaXNwbGF5U291cmNlJyk9PW51bGx8fHR5cGVvZiBnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2UnKT09J3VuZGVmaW5lZCcpe2lmKHVybFZhcnNbInV0bV9jYW1wYWlnbiJdIT11bmRlZmluZWQmJihnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1DYW1wYWlnbicpPT1udWxsfHx0eXBlb2YgZ2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24nKT09J3VuZGVmaW5lZCcpKXNldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTUNhbXBhaWduJyx1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSwxODApO2lmKHVybFZhcnNbInV0bV9zb3VyY2UiXSE9dW5kZWZpbmVkJiYoZ2V0Q29va2llKCdEaXNwbGF5U291cmNlVVRNU291cmNlJyk9PW51bGx8fHR5cGVvZiBnZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2VVVE1Tb3VyY2UnKT09J3VuZGVmaW5lZCcpKXNldENvb2tpZSgnRGlzcGxheVNvdXJjZVVUTVNvdXJjZScsdXJsVmFyc1sidXRtX3NvdXJjZSJdLDE4MCk7fQpzZXRDb29raWUoJ0Rpc3BsYXlTb3VyY2UnLHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSwxODApO30KdmFyIHNldEdjbGlkQ29va2llPXRydWU7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQpe2lmKHVybFZhcnNbInV0bV9zb3VyY2UiXT09J1NFTSd8fHVybFZhcnNbInV0bV9zb3VyY2UiXT09J1RyYWRlcid8fHVybFZhcnNbInV0bV9zb3VyY2UiXT09J0dvb2dsZS1uZXJkbWFya2V0aW5nJyl7c2V0R2NsaWRDb29raWU9ZmFsc2U7fX0KaWYodXJsVmFyc1siZ2NsaWQiXSE9dW5kZWZpbmVkJiZzZXRHY2xpZENvb2tpZSl7c2V0Q29va2llKCdnY2xpZCcsdXJsVmFyc1siZ2NsaWQiXSwxODApO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixmdW5jdGlvbihldmVudCl7aWYoJ3VuZGVmaW5lZCchPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyl7c2F2ZUdDTElEPWZ1bmN0aW9uKCl7aWYoJ3VuZGVmaW5lZCc9PXR5cGVvZiB3aW5kb3cualF1ZXJ5KXtyZXR1cm47fQokLnBvc3QoImh0dHBzOi8vcmVzdC5kMmNtZWRpYS5jYS9nY2xpZC5yZXN0LmFwaS5waHAiLHtzZXNzaW9uaWQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkLGdjbGlkOnVybFZhcnNbJ2djbGlkJ119KTt9O3RyeXthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclNlc3Npb25DYWxsYmFjayhzYXZlR0NMSUQpO31jYXRjaChlcnJvcil7Y29uc29sZS5sb2coZXJyb3IpO319fSk7fQp3aW5kb3cuYWN0aXZlUGFnZT1wYWdlO3ZhciB1aWQ9KGdldENvb2tpZSgndWlkJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3VpZCcpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3VpZCcpOmdlbmVyYXRlR1VJRCgpKTtzZXRDb29raWUoJ3VpZCcsdWlkLDE4MCk7dmFyIGRlYWxlcmlkPTE3NTI7dmFyIHNpdGVpZD0xOTI7d2luZG93LmFjdGl2ZVNpdGVJRD1zaXRlaWQ7d2luZG93LmFjdGl2ZURlYWxlcklEPWRlYWxlcmlkO3ZhciBjYXJpZD0nJztpZihjYXJpZC5sZW5ndGg9PTApY2FyaWQ9IjAiO2Z1bmN0aW9uIHRhZ0J1aWxkKGludGVybmFscyl7cmV0dXJuJzwnKyhpbnRlcm5hbHMuam9pbignICcpKSsnIC8+Jzt9CnZhciBjYWNoZUNsZWFyZXI9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKjk5OTk5OTkpO3ZhciBhZGRUa0ltZz1mdW5jdGlvbihzcmMpe3N3aXRjaChkb2N1bWVudC5yZWFkeVN0YXRlKXtjYXNlImxvYWRpbmciOmRvY3VtZW50LndyaXRlKHRhZ0J1aWxkKFsnaW1nJywnc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7IicsJ3NyYz0iJytzcmMrJyInLCdhbHQ9IiInXSkpO2JyZWFrO2Nhc2UiaW50ZXJhY3RpdmUiOmNhc2UiY29tcGxldGUiOmRlZmF1bHQ6dHJ5e3ZhciBpbWc9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaW1nIik7aW1nLnN0eWxlLmNzc1RleHQ9J3dpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7JztpbWcuc2V0QXR0cmlidXRlKCdzcmMnLHNyYyk7aW1nLnNldEF0dHJpYnV0ZSgnYWx0JywnVHJhY2tpbmcgcGl4ZWwnKTtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZyk7fWNhdGNoKGV4KXtpZihjb25zb2xlJiZjb25zb2xlLmxvZyljb25zb2xlLmxvZygiRXJyb3IgdGt3aWRnZXQ6ICIrZXgubWVzc2FnZSk7fQpicmVhazt9fTtjYW1wYWlnbj1jYW1wYWlnbi5yZXBsYWNlKC9cdC9nLCcnKS5yZXBsYWNlKC9cbi9nLCcnKS5yZXBsYWNlKC9cci9nLCcnKS5yZXBsYWNlKCclMEEnLCcnKS5yZXBsYWNlKCclMDknLCcnKS5yZXBsYWNlKCclMEInLCcnKS5yZXBsYWNlKCclMDAnLCcnKS5yZXBsYWNlKCclMEQnLCcnKTtzb3VyY2U9c291cmNlLnJlcGxhY2UoL1x0L2csJycpLnJlcGxhY2UoL1xuL2csJycpLnJlcGxhY2UoL1xyL2csJycpLnJlcGxhY2UoJyUwQScsJycpLnJlcGxhY2UoJyUwOScsJycpLnJlcGxhY2UoJyUwQicsJycpLnJlcGxhY2UoJyUwMCcsJycpLnJlcGxhY2UoJyUwRCcsJycpO3ZhciB0a3NyYz0nL3Byb3h5X3NhdWIvd2Vic2l0ZUhpdHMvJysKZGVhbGVyaWQrIi8iK3NpdGVpZCsiLyIrY2FyaWQrIi8iK2VzY2FwZSh1aWQpKyIvIitwYWdlKyIvIitlc2NhcGUoc291cmNlKSsiLyIrZXNjYXBlKGNhbXBhaWduKSsiLyIrZXNjYXBlKG1ha2UpKyIvIitlc2NhcGUobW9kZWwpKyIvIit5ZWFyKyIvIisKaXNtb2JpbGUrIi8iK2VuY29kZVVSSUNvbXBvbmVudChyZWZlcmVyKSsiLyIrZXNjYXBlKGl0ZW1UeXBlKSsiLyIrZXNjYXBlKHNvdXJjZVJldGFyZ2V0aW5nKSsiLyIrZXNjYXBlKGNhbXBhaWduUmV0YXJnZXRpbmcpKyIvIitjYWNoZUNsZWFyZXIrJy5naWYnO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZz09J3VuZGVmaW5lZCd8fCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSlhZGRUa0ltZyh0a3NyYyk7dmFyIGtleXdvcmRzPSIiO2lmKCJwImluIHJlZmVyZXJWYXJzJiZyZWZlcmVyLmluZGV4T2YoInlhaG9vIik+LTEpe2tleXdvcmRzPXJlZmVyZXJWYXJzWydwJ107fQppZigicSJpbiByZWZlcmVyVmFycyYmKHJlZmVyZXIuaW5kZXhPZigiZ29vZ2xlIik+LTF8fHJlZmVyZXIuaW5kZXhPZigiYmluZyIpPi0xKSl7a2V5d29yZHM9cmVmZXJlclZhcnNbJ3EnXTt9CnZhciB1TGFuZz0oZ2V0Q29va2llKCdsYW5nJyk9PSdlbicpPydlbic6J2ZyJzt3aW5kb3cuZmJDaGF0UmVmPXtyOidzaXRlJyxjOmNhbXBhaWduLHM6c291cmNlfTt2YXIgY3VzdG9tX3ZhcmlhYmxlcz1be25hbWU6J2xhbmd1YWdlJyx2YWx1ZTp1TGFuZ30se25hbWU6J3V0bV9jYW1wYWlnbicsdmFsdWU6Y2FtcGFpZ259LHtuYW1lOid1dG1fc291cmNlJyx2YWx1ZTpzb3VyY2V9LHtuYW1lOidwYWdlJyx2YWx1ZTpwYWdlfSx7bmFtZTondWlkJyx2YWx1ZTp1aWR9LHtuYW1lOidjYXJpZCcsdmFsdWU6Y2FyaWR9LHtuYW1lOidtYWtlJyx2YWx1ZTptYWtlfSx7bmFtZTonbW9kZWwnLHZhbHVlOm1vZGVsfSx7bmFtZToneWVhcicsdmFsdWU6eWVhcn0se25hbWU6J2lzTW9iaWxlU2l0ZScsdmFsdWU6aXNtb2JpbGV9XTt3aW5kb3cuY1ZhcmlhYmxlcz1jdXN0b21fdmFyaWFibGVzO3dpbmRvdy5yZWxhbmNlSGFuZGxlckZuYz1mdW5jdGlvbigpe3ZhciByZWxhbmNlSUQ9KGdldENvb2tpZSgncmVsYW5jZUlEJykhPW51bGwmJnR5cGVvZiBnZXRDb29raWUoJ3JlbGFuY2VJRCcpIT0ndW5kZWZpbmVkJz9nZXRDb29raWUoJ3JlbGFuY2VJRCcpOjApO2lmKHR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyE9J3VuZGVmaW5lZCcmJnR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50IT0ndW5kZWZpbmVkJyl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChyZWxhbmNlSUQsJ3JlbGFuY2VJRCcpO2lmKHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSE9dW5kZWZpbmVkKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KHVybFZhcnNbIkRpc3BsYXlTb3VyY2UiXSwnZGlzcGxheVNvdXJjZScpO2lmKHVybFZhcnNbInV0bV9jYW1wYWlnbiJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fY2FtcGFpZ24iXSwndXRtX2NhbXBhaWduJyk7aWYodXJsVmFyc1sidXRtX3NvdXJjZSJdIT11bmRlZmluZWQpYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCh1cmxWYXJzWyJ1dG1fc291cmNlIl0sJ3V0bV9zb3VyY2UnKTt9fQplbHNlCnNldFRpbWVvdXQod2luZG93LnJlbGFuY2VIYW5kbGVyRm5jLDEwMDApO307dmFyIGluaXRGPWZ1bmN0aW9uKCl7aW5pdExDSShjdXN0b21fdmFyaWFibGVzKTt3aW5kb3cucmVsYW5jZUhhbmRsZXJGbmMoKTt9O2lmKHdpbmRvdy5hdHRhY2hFdmVudCl3aW5kb3cuYXR0YWNoRXZlbnQoJ29ubG9hZCcsaW5pdEYpO2Vsc2Ugd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLGluaXRGLGZhbHNlKTt2YXIgYWljdXJyZW50cGFnZT0nbmV3Y2Fycy5odG1sJztpZihBSUN1cnJlbnRDb25maWdJRD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KEFJQ3VycmVudENvbmZpZ0lELCdBSUNvbmZpZycpO30KaWYoQUlJRFBlck5ld0NhcnNGcmVuY2gubGVuZ3RoPjAmJmFpY3VycmVudHBhZ2U9PSduZXdjYXJkZXRhaWwuaHRtbCcmJmdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKSE9bnVsbCl7dmFyIGxhc3RuZXd2ZWhpY2xlPWdldENvb2tpZSgnbGFzdG5ld3ZlaGljbGUnKTt2YXIgbGFzdG5ld3ZlaGljbGVzcGxpdD1sYXN0bmV3dmVoaWNsZS5zcGxpdCgnfHx8Jyk7dmFyIGFpbmV3Y2FyaWQ9MDtpZih0eXBlb2YgQUlJRFBlck5ld0NhcnNGcmVuY2hbbGFzdG5ld3ZlaGljbGVzcGxpdFswXStsYXN0bmV3dmVoaWNsZXNwbGl0WzFdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMl1dIT09J3VuZGVmaW5lZCcpYWluZXdjYXJpZD1BSUlEUGVyTmV3Q2Fyc0ZyZW5jaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYodHlwZW9mIEFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV0hPT0ndW5kZWZpbmVkJylhaW5ld2NhcmlkPUFJSURQZXJOZXdDYXJzRW5nbGlzaFtsYXN0bmV3dmVoaWNsZXNwbGl0WzBdK2xhc3RuZXd2ZWhpY2xlc3BsaXRbMV0rbGFzdG5ld3ZlaGljbGVzcGxpdFsyXV07aWYoYWluZXdjYXJpZD4wJiZ0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmchPSd1bmRlZmluZWQnKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGFpbmV3Y2FyaWQsJ0FJQ29uZmlnTmV3Q2FyJyk7fX19CnNldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgZm49ZnVuY3Rpb24oKXtpZih0eXBlb2YgalF1ZXJ5IT0ndW5kZWZpbmVkJyl7cmV0dXJuIGpRdWVyeS5yZWFkeSgpO30Kc2V0VGltZW91dChmbiwxMDApO30KZm4oKTt9LDEwMDApOwovKl1dPiovCgoJLyo8IVtDREFUQVsqLwoJdmFyIHBhcmFtcyA9IGdldFVybFZhcnMoKTsKCS8vc2V0IHBhcmFtIHZhbHVlIGludG8gc2Vzc2lvbiBzdG9yYWdlCglpZiAodHlwZW9mIHNlc3Npb25TdG9yYWdlICE9PSAndW5kZWZpbmVkJykgewoKCQlpZihwYXJhbXMuaGFzT3duUHJvcGVydHkoJ2gnKSl7CgkJCXNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2gnLHBhcmFtcy5oKTsKCQl9CgoJCWlmKHBhcmFtcy5oYXNPd25Qcm9wZXJ0eSgnbScpKXsKCQkJc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnbScscGFyYW1zLm0pOwoJCX0KCgkJdmFyIGggPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdoJyk7CgkJdmFyIG0gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdtJyk7CgoJCS8vcmVhZCBzZXNzaW9uIGFuZCByZW1vdmUgaGVhZGVyICYgbWVudSBpZiBvcHRpb25zIGhhdmUgYmVlbiBzZXQKCQlpZihoID09PSAnbm8nKXsKCQkJLy9zdHVmZiB0byByZW1vdmUgdGhhdCBpcyBjb25zaWRlcmVkIHBhcnQgb2YgdGhlIGhlYWRlcgoJCQl2YXIgaGVhZGVycyA9IFsKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItaW5mbycpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1mb290ZXInKSwKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5sYW5ndWFnZUJhcicpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmhlYWRlci1sb2dvJyksCgkJCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcubW9iaWxlLWhlYWRlciA+ICo6bm90KC5idXJnZXItbWVudS1jb250YWluZXIpJykKCQkJXTsKCgkJCWZvcih2YXIgZWxlbSBvZiBoZWFkZXJzKXsKCQkJCS8vcmVtb3ZlIG5vZGUgbGlzdCBxdWVyaWVzCgkJCQlpZiAoTm9kZUxpc3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2YoZWxlbSkpIHsKCQkJCQlmb3IodmFyIF9lbGVtIG9mIGVsZW0pewoJCQkJCQlpZiAoX2VsZW0gIT09IG51bGwpIHsKCQkJCQkJCV9lbGVtLnJlbW92ZSgpOwoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJZWxzZSBpZiAoZWxlbSAhPT0gbnVsbCl7CgkJCQkJZWxlbS5yZW1vdmUoKTsKCQkJCX0KCQkJfQoJCX0KCgkJLy9tZW51CgkJaWYobSA9PT0gJ25vJyl7CgkJCXZhciBtZW51cyA9IFsKCQkJCWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5oZWFkZXItbWVudScpLAoJCQkJZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLmJ1cmdlci1tZW51LWNvbnRhaW5lcicpLAoJCQldOwoJCQlmb3IodmFyIGVsZW0gb2YgbWVudXMpewoJCQkJaWYoZWxlbSAhPT0gbnVsbCl7CgkJCQkJZWxlbS5yZW1vdmUoKTsKCQkJCX0KCQkJfQoJCX0KCgkJLy9zaW5jZSBubyBoZWFkZXIgb3IgbWVudSwgcmVtb3ZlIGV2ZXJ5dGhpbmcKCQlpZiAobSA9PT0gJ25vJyAmJiBoID09PSAnbm8nKSB7CgkJCXZhciBoZWFkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubW9iaWxlLWhlYWRlcicpOwoJCQlpZihoZWFkZXIgIT09IG51bGwpewoJCQkJaGVhZGVyLnJlbW92ZSgpOwoJCQl9CgkJfQoKCX0KCS8qXV0+Ki8K","js_rl":"CgkJCQl3aW5kb3cuZ1Rlc3RTcGVlZENvbm49RGF0ZS5ub3coKTsKCQkJCXdpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PWZhbHNlOwoJCQkJd2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD1mYWxzZTsKCQkJCXdpbmRvdy5nRGVsYXllZExvYWRTY3JpcHQ9d2luZG93LmdEZWxheWVkTG9hZFNjcmlwdHx8ZnVuY3Rpb24oYSxkKXtzZXRUaW1lb3V0KCgpPT57dmFyIGU9ITA7Y29uc29sZS5sb2coIkdERUxBWUVETE9BRFNDUklQVDoiK2EsZCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoIm9iamVjdCI9PXR5cGVvZiBkJiZudWxsIT09ZClmb3IodmFyIG8gaW4gZClkLmhhc093blByb3BlcnR5KG8pJiZudWxsIT09ZFtvXSYmKC0xIT09WyJkZWZlciIsImFzeW5jIl0uaW5kZXhPZihvKSYmKGU9ITEpLG5bb109ZFtvXSk7bi5zcmM9YSxlJiYobi5hc3luYz0hMCksZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChuKX0pfTsKCQkJCgoJCWxldCBidG5DbG9zZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNhbGVydE1zZ0NvbnRhaW5lciAuY2xvc2UnKTsKCQlsZXQgaXNNb2JpbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXNNb2JpbGUnKT8udmFsdWUgPT0gJzEnOwoJCWlmKGlzTW9iaWxlKXsKCQkJY29uc3QgYm9keSA9IGRvY3VtZW50LmJvZHk7CgkJCWNvbnN0IGhlYWRlcm9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKG11dGF0aW9uc0xpc3QsIGhlYWRlcm9ic2VydmVyKSA9PiB7CgkJCQlmb3IgKGNvbnN0IG11dGF0aW9uIG9mIG11dGF0aW9uc0xpc3QpIHsKCQkJCQlpZiAobXV0YXRpb24udHlwZSA9PT0gJ2NoaWxkTGlzdCcpIHsKCQkJCQkJbXV0YXRpb24uYWRkZWROb2Rlcy5mb3JFYWNoKG5vZGUgPT4gewoJCQkJCQkJaWYgKG5vZGUubWF0Y2hlcyAmJiBub2RlLm1hdGNoZXMoJy5tb2JpbGUtaGVhZGVyJykpIHsKCQkJCQkJCQlsZXQgYWxlcnQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjYWxlcnRNc2dDb250YWluZXInKTsKCQkJCQkJCQlsZXQgaGVhZGVyID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignLm1vYmlsZS1oZWFkZXInKTsKCQkJCQkJCQloZWFkZXIuc3R5bGUudG9wID0gYWxlcnQub2Zmc2V0SGVpZ2h0KydweCc7CgkJCQkJCQkJaGVhZGVyb2JzZXJ2ZXIuZGlzY29ubmVjdCgpOwoJCQkJCQkJfQoJCQkJCQl9KTsKCQkJCQl9CgkJCQl9CgkJCX0pOwoJCQloZWFkZXJvYnNlcnZlci5vYnNlcnZlKGJvZHksIHsgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH0pOwoJCX0KCgkJYnRuQ2xvc2UuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBlID0+IHsKCQkJYnRuQ2xvc2UuY2xvc2VzdCgiI2FsZXJ0TXNnQ29udGFpbmVyIikucmVtb3ZlKCk7CgkJCWlmKGlzTW9iaWxlKXsKCQkJCWxldCBoZWFkZXIgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcubW9iaWxlLWhlYWRlcicpOwoJCQkJaWYoaGVhZGVyKXsKCQkJCQloZWFkZXIuc3R5bGUudG9wID0gJzAnOwoJCQkJfQoJCQl9CgkJCUNvb2tpZXMuc2V0KCdhbGVydE1lc3NhZ2VDbG9zZWQnLDEsNyk7CgkJfSk7CgoJCgkJCQkvKjwhW0NEQVRBWyovCgkJCQl2YXIgYm94QmxvY2tzID0geyJjYXIiOnsiZmJ4X2Nhcl8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjI2Mjk4LCJjb25zbyI6NS45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJFbGFudHJhIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2Nhcl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjI0NTk5LCJjb25zbyI6NS43MDAwMDAwMDAwMDAwMDAxNzc2MzU2ODM5NDAwMjUwNDY0Njc3ODEwNjY4OTQ1MzEyNSwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiRWxhbnRyYSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9jYXJfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjo0Mzc0OCwiY29uc28iOjguMDk5OTk5OTk5OTk5OTk5NjQ0NzI4NjMyMTE5OTQ5OTA3MDY0NDM3ODY2MjEwOTM3NSwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiRWxhbnRyYSBOIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2Nhcl80Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjQyMTk5LCJjb25zbyI6OC4wOTk5OTk5OTk5OTk5OTk2NDQ3Mjg2MzIxMTk5NDk5MDcwNjQ0Mzc4NjYyMTA5Mzc1LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJFbGFudHJhIE4iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY2FyXzUiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjUsInBvc2l0aW9uIjo1LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MzkwOTgsImNvbnNvIjo3LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJTb25hdGEiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfY2FyXzYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjYsInBvc2l0aW9uIjo2LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MzUyOTksImNvbnNvIjo2LjUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IlNvbmF0YSIsInNwZWNpYWxPcmRlciI6MH19LCJoeWJyaWQiOnsiZmJ4X2h5YnJpZF8xIjp7InZpc2libGUiOnRydWUsImlkIjoxLCJwb3NpdGlvbiI6MSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjM0Nzk4LCJjb25zbyI6NC41LCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJFbGFudHJhIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9oeWJyaWRfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjozMzg5OCwiY29uc28iOjQuNSwiY2FyQ2F0ZWdvcnkiOiJjYXIiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiRWxhbnRyYSBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzMiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjMsInBvc2l0aW9uIjozLCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NjQzNDksImNvbnNvIjo3LjkwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IlBhbGlzYWRlIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH0sImZieF9oeWJyaWRfNCI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6NCwicG9zaXRpb24iOjQsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjgsInByaWNlIjo2Mzc5OCwiY29uc28iOjcuOTAwMDAwMDAwMDAwMDAwMzU1MjcxMzY3ODgwMDUwMDkyOTM1NTYyMTMzNzg5MDYyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiUGFsaXNhZGUgSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF81Ijp7InZpc2libGUiOnRydWUsImlkIjo1LCJwb3NpdGlvbiI6NSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjQ2OTk4LCJjb25zbyI6NywiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiU2FudGEgRmUgSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF82Ijp7InZpc2libGUiOnRydWUsImlkIjo2LCJwb3NpdGlvbiI6NiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjQ1Njk4LCJjb25zbyI6Ni45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJTYW50YSBGZSBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzciOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjcsInBvc2l0aW9uIjo3LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6MzkxOTgsImNvbnNvIjo0LjU5OTk5OTk5OTk5OTk5OTY0NDcyODYzMjExOTk0OTkwNzA2NDQzNzg2NjIxMDkzNzUsImNhckNhdGVnb3J5IjoiY2FyIiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IlNvbmF0YSBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfaHlicmlkXzgiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjgsInBvc2l0aW9uIjo4LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo4LCJwcmljZSI6NDY0OTgsImNvbnNvIjo2LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJUdWNzb24gSHlicmlkIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2h5YnJpZF85Ijp7InZpc2libGUiOnRydWUsImlkIjo5LCJwb3NpdGlvbiI6OSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6OCwicHJpY2UiOjQ2NDk4LCJjb25zbyI6Ni43MDAwMDAwMDAwMDAwMDAxNzc2MzU2ODM5NDAwMjUwNDY0Njc3ODEwNjY4OTQ1MzEyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiVHVjc29uIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH19LCJlbGVjdHJpYyI6eyJmYnhfZWxlY3RyaWNfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjQsInByaWNlIjo1ODQ5OCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IklPTklRIDUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfZWxlY3RyaWNfMiI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MiwicG9zaXRpb24iOjIsImRyaXZldHJhaW4iOjMsImZ1ZWwiOjQsInByaWNlIjo1NTk5OCwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IklPTklRIDUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfZWxlY3RyaWNfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjQsInByaWNlIjo4MDU5OSwiY29uc28iOjEwMDAsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IklPTklRIDUgTiIsInNwZWNpYWxPcmRlciI6MH0sImZieF9lbGVjdHJpY180Ijp7InZpc2libGUiOnRydWUsImlkIjo0LCJwb3NpdGlvbiI6NCwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6NCwicHJpY2UiOjgxMTk4LCJjb25zbyI6MTAwMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiSU9OSVEgNSBOIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2VsZWN0cmljXzUiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjUsInBvc2l0aW9uIjo1LCJkcml2ZXRyYWluIjozLCJmdWVsIjo0LCJwcmljZSI6NTc5OTgsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6ImNhciIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJJT05JUSA2Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2VsZWN0cmljXzYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjYsInBvc2l0aW9uIjo2LCJkcml2ZXRyYWluIjozLCJmdWVsIjo0LCJwcmljZSI6NjM0NDgsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJJT05JUSA5Iiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2VsZWN0cmljXzciOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjcsInBvc2l0aW9uIjo3LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo0LCJwcmljZSI6NDY4OTgsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJLb25hIEVsZWN0cmljIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2VsZWN0cmljXzgiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjgsInBvc2l0aW9uIjo4LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo0LCJwcmljZSI6NDkzOTgsImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJLb25hIEVsZWN0cmljIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X2VsZWN0cmljXzkiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjksInBvc2l0aW9uIjo5LCJkcml2ZXRyYWluIjoxLCJmdWVsIjo0LCJwcmljZSI6NzUzOTksImNvbnNvIjoxMDAwLCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJORVhPIiwic3BlY2lhbE9yZGVyIjowfX0sInN1diI6eyJmYnhfc3V2XzEiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjEsInBvc2l0aW9uIjoxLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6Mjk3NDksImNvbnNvIjo2LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJLb25hIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjI5ODQ4LCJjb25zbyI6Ni43MDAwMDAwMDAwMDAwMDAxNzc2MzU2ODM5NDAwMjUwNDY0Njc3ODEwNjY4OTQ1MzEyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiS29uYSIsInNwZWNpYWxPcmRlciI6MH0sImZieF9zdXZfMyI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MywicG9zaXRpb24iOjMsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjoyODc0OSwiY29uc28iOjYuNzAwMDAwMDAwMDAwMDAwMTc3NjM1NjgzOTQwMDI1MDQ2NDY3NzgxMDY2ODk0NTMxMjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IktvbmEiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzQiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjQsInBvc2l0aW9uIjo0LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NTc2OTksImNvbnNvIjoxMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiUGFsaXNhZGUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzUiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjUsInBvc2l0aW9uIjo1LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NTY5OTgsImNvbnNvIjoxMCwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiUGFsaXNhZGUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzYiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjYsInBvc2l0aW9uIjo2LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NTI5OTksImNvbnNvIjo5LjY5OTk5OTk5OTk5OTk5OTI4OTQ1NzI2NDIzOTg5OTgxNDEyODg3NTczMjQyMTg3NSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiUGFsaXNhZGUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzciOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjcsInBvc2l0aW9uIjo3LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6NTAzOTksImNvbnNvIjo4LjgwMDAwMDAwMDAwMDAwMDcxMDU0MjczNTc2MDEwMDE4NTg3MTEyNDI2NzU3ODEyNSwiY2FyQ2F0ZWdvcnkiOiJzdXYiLCJjYXJNYWtlIjoiaHl1bmRhaSIsImNhck1vZGVsIjoiU2FudGEgRmUiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzgiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjgsInBvc2l0aW9uIjo4LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6Mzg1OTgsImNvbnNvIjo3LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJUdWNzb24iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzkiOnsidmlzaWJsZSI6dHJ1ZSwiaWQiOjksInBvc2l0aW9uIjo5LCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MzY5OTksImNvbnNvIjo3LjcwMDAwMDAwMDAwMDAwMDE3NzYzNTY4Mzk0MDAyNTA0NjQ2Nzc4MTA2Njg5NDUzMTI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJUdWNzb24iLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfc3V2XzEwIjp7InZpc2libGUiOnRydWUsImlkIjoxMCwicG9zaXRpb24iOjEwLCJkcml2ZXRyYWluIjoxLCJmdWVsIjoxLCJwcmljZSI6MjUwOTgsImNvbnNvIjo2LjkwMDAwMDAwMDAwMDAwMDM1NTI3MTM2Nzg4MDA1MDA5MjkzNTU2MjEzMzc4OTA2MjUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IlZlbnVlIiwic3BlY2lhbE9yZGVyIjowfSwiZmJ4X3N1dl8xMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MTEsInBvc2l0aW9uIjoxMSwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MSwicHJpY2UiOjIzNTk5LCJjb25zbyI6Ni45MDAwMDAwMDAwMDAwMDAzNTUyNzEzNjc4ODAwNTAwOTI5MzU1NjIxMzM3ODkwNjI1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJWZW51ZSIsInNwZWNpYWxPcmRlciI6MH19LCJ0cnVjayI6eyJmYnhfdHJ1Y2tfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjEsInByaWNlIjo0NDI5OSwiY29uc28iOjguNSwiY2FyQ2F0ZWdvcnkiOiJ0cnVjayIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJTYW50YSBDcnV6Iiwic3BlY2lhbE9yZGVyIjowfX0sInBoZXYiOnsiZmJ4X3BoZXZfMSI6eyJ2aXNpYmxlIjp0cnVlLCJpZCI6MSwicG9zaXRpb24iOjEsImRyaXZldHJhaW4iOjEsImZ1ZWwiOjE2LCJwcmljZSI6NTYxOTgsImNvbnNvIjo2Ljc5OTk5OTk5OTk5OTk5OTgyMjM2NDMxNjA1OTk3NDk1MzUzMjIxODkzMzEwNTQ2ODc1LCJjYXJDYXRlZ29yeSI6InN1diIsImNhck1ha2UiOiJoeXVuZGFpIiwiY2FyTW9kZWwiOiJUdWNzb24gUGx1Zy1JbiBIeWJyaWQiLCJzcGVjaWFsT3JkZXIiOjB9LCJmYnhfcGhldl8yIjp7InZpc2libGUiOnRydWUsImlkIjoyLCJwb3NpdGlvbiI6MiwiZHJpdmV0cmFpbiI6MSwiZnVlbCI6MTYsInByaWNlIjo1NTc5OCwiY29uc28iOjYuNzk5OTk5OTk5OTk5OTk5ODIyMzY0MzE2MDU5OTc0OTUzNTMyMjE4OTMzMTA1NDY4NzUsImNhckNhdGVnb3J5Ijoic3V2IiwiY2FyTWFrZSI6Imh5dW5kYWkiLCJjYXJNb2RlbCI6IlR1Y3NvbiBQbHVnLUluIEh5YnJpZCIsInNwZWNpYWxPcmRlciI6MH19fTsKCQkJCS8qLS0qLwoJCQkJdmFyIGJveFBvc2l0aW9ucyA9IHsiZmJ4X2Nhcl8xIjoxLCJmYnhfY2FyXzIiOjIsImZieF9oeWJyaWRfMSI6MSwiZmJ4X2h5YnJpZF8yIjoyLCJmYnhfY2FyXzMiOjMsImZieF9jYXJfNCI6NCwiZmJ4X2VsZWN0cmljXzEiOjEsImZieF9lbGVjdHJpY18yIjoyLCJmYnhfZWxlY3RyaWNfMyI6MywiZmJ4X2VsZWN0cmljXzQiOjQsImZieF9lbGVjdHJpY181Ijo1LCJmYnhfZWxlY3RyaWNfNiI6NiwiZmJ4X3N1dl8xIjoxLCJmYnhfc3V2XzIiOjIsImZieF9zdXZfMyI6MywiZmJ4X2VsZWN0cmljXzciOjcsImZieF9lbGVjdHJpY184Ijo4LCJmYnhfZWxlY3RyaWNfOSI6OSwiZmJ4X3N1dl80Ijo0LCJmYnhfc3V2XzUiOjUsImZieF9zdXZfNiI6NiwiZmJ4X2h5YnJpZF8zIjozLCJmYnhfaHlicmlkXzQiOjQsImZieF90cnVja18xIjoxLCJmYnhfc3V2XzciOjcsImZieF9oeWJyaWRfNSI6NSwiZmJ4X2h5YnJpZF82Ijo2LCJmYnhfY2FyXzUiOjUsImZieF9jYXJfNiI6NiwiZmJ4X2h5YnJpZF83Ijo3LCJmYnhfc3V2XzgiOjgsImZieF9zdXZfOSI6OSwiZmJ4X2h5YnJpZF84Ijo4LCJmYnhfaHlicmlkXzkiOjksImZieF9waGV2XzEiOjEsImZieF9waGV2XzIiOjIsImZieF9zdXZfMTAiOjEwLCJmYnhfc3V2XzExIjoxMX07CgkJCQkvKiogRmlsdGVyIEpTIGluIG5ld2NhcnMuanMgKiovCgkJCQkvKl1dPiovCgkJCQoKCQkJCXZhciBMZWFkQ29uZmlncyA9ICh0eXBlb2YgTGVhZENvbmZpZ3MgIT0gJ3VuZGVmaW5lZCcpID8gTGVhZENvbmZpZ3MgOiB7fTsKCgkJCQlsZXQgYWN0aXZlTGFuZyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmVzaXRlbGFuZ3VhZ2UnKSA\/IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3RpdmVzaXRlbGFuZ3VhZ2UnKS52YWx1ZSA6ICdGUkVOQ0gnOwoKCQkJCUxlYWRDb25maWdzLkRlYWxlckFwcG9pbnRtZW50ID0gewoKCQkJCQl0aXRsZTogKGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ1JlcXVlc3QgYW4gYXBwb2ludG1lbnQnIDogJ1ByZW5kcmUgUmVuZGV6LXZvdXMnKSwKCQkJCQljbG9zZU9uU3VibWl0IDogdHJ1ZSwKCQkJCQluYW1lIDogJ0RlYWxlckFwcG9pbnRtZW50JywKCgkJCQkJb25CZWZvcmVPcGVuOiBmdW5jdGlvbihsZWFkQ29uZil7CiAgICAgICAgICAgICAgICAgICAgICAgICQoZG9jdW1lbnQpLnRyaWdnZXIoJ2RlYWxlckFwcG9pbnRtZW50LnN0YXJ0Jyk7CgoJCQkJCQljb25zdCB0aW1lVHh0RWwgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuc2VsZWN0ZWRUaW1lJyk7CgkJCQkJCWNvbnN0IHRpbWVJbnB1dCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJkYXRlIl0nKTsKCQkJCQkJY29uc3QgcGlja2VyID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLmRhdGVwaWNrZXInKTsKCQkJCQkJY29uc3QgcGhvbmVFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJ1tuYW1lPSJwaG9uZW51bSJdJyk7CgkJCQkJCWNvbnN0IGhvdXJzQmxvY2sgPSBsZWFkQ29uZi5sZWFkTm9kZS5xdWVyeVNlbGVjdG9yKCcuaG91cnNMaXN0Jyk7CgkJCQkJCWxldCBkYXlOb2RlcyA9IEFycmF5LmZyb20oaG91cnNCbG9jay5jaGlsZHJlbik7CgkJCQkJCWxldCBkYXRlRm9ybWF0ID0gIGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ0YgaiBZLCBIOmknIDogJ2ogRiBZLCBIOmknOwoKCgkJCQkJCWNvbnN0IHNldFNlbGVjdGVkID0gKHNlbGVjdGVkRGF0ZXMsIGRhdGVTdHIsIGluc3RhbmNlKSA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudGx5U2VsZWN0ZWREYXRlID0gc2VsZWN0ZWREYXRlc1swXSB8fCBuZXcgRGF0ZSgpOy8vZG9uJ3QgcGxheSB3aXRoIHRoaXMgb3IgbWlnaHQgYWZmZWN0IGRhdGUvdGltZSBzZWxlY3Rpb24KCQkJCQkJCWxldCBkYXlOdW0gPSBjdXJyZW50bHlTZWxlY3RlZERhdGUuZ2V0RGF5KCk7CgoJCQkJCQkJZGF5TnVtID0gZGF5TnVtID09IDAgPyA3IDogZGF5TnVtOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXlNaW5UaW1lID0gZGF5Tm9kZXNbZGF5TnVtIC0gMV0uZGF0YXNldC5taW5ob3VyIHx8ICcwOTowMCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZGF5TWF4VGltZSA9IGRheU5vZGVzW2RheU51bSAtIDFdLmRhdGFzZXQubWF4aG91ciB8fCAnMTc6MDAnOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vbWluVGltZSBtYW5hZ2VtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2lmIGRhdGUgaXMgdG9kYXksIG1pblRpbWUgbmVlZHMgdG8gYmUgYSBtaW5pbXVtIG9mIDFob3VyIGxhdGVyIGZyb20gY3VycmVudCB0aW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZihzZWxlY3RlZERhdGVzWzBdKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgbm93ID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWNjZXB0ZWRFeGNlcHRpb24gPSA1Oy8vbWludXRlcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKHNlbGVjdGVkRGF0ZXNbMF0udG9EYXRlU3RyaW5nKCkgPT0gbm93LnRvRGF0ZVN0cmluZygpKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pbkhvdXIgPSBub3cuZ2V0SG91cnMoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1pbk1pbnV0ZSA9IG5vdy5nZXRNaW51dGVzKCkgKyA2MDsvL2FkZCAxIGhvdXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluTWludXRlID49IDYwKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbkhvdXIgKz0gTWF0aC5mbG9vcihtaW5NaW51dGUgLyA2MCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5NaW51dGUgPSBtaW5NaW51dGUgJSA2MDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbk1pbnV0ZSAlIDE1KXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL21ha2UgaXQgc28gdGhhdCBtaW51dGVzIGFyZSBlaXRoZXIgcm91bmRlZCB0byBuZXh0IDE1bWluIGluY3JlbWVudCBvciB0byB0aGUgcHJldmlvdXMgb25lIGlmIHdpdGhpbiBhY2NlcHRlZEV4Y2VwdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKG1pbk1pbnV0ZSAlIDE1IDw9IGFjY2VwdGVkRXhjZXB0aW9uKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluTWludXRlID0gbWluTWludXRlIC0gKG1pbk1pbnV0ZSAlIDE1KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZSBpZigobWluTWludXRlICUgMTUgPiBhY2NlcHRlZEV4Y2VwdGlvbikpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5NaW51dGUgPSBtaW5NaW51dGUgKyAoMTUgLSAobWluTWludXRlICUgMTUpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2RvIG5vdGhpbmcsIGFscmVhZHkgYXQgaW5jcmVtZW50CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYobWluSG91ciA+PSAyNCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL25vIG1vcmUgYXZhaWxhYmxlIHRpbWUgdG9kYXksIHNldCB0byBuZXh0IGRheSBhdCAwOTowMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2Uuc2V0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksIHRydWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gaW5zdGFuY2Uuc2V0KCdtaW5UaW1lJywgZGF5TWluVGltZSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF5TWluVGltZSA9IFN0cmluZyhtaW5Ib3VyKS5wYWRTdGFydCgyLCcwJykgKyAnOicgKyBTdHJpbmcobWluTWludXRlKS5wYWRTdGFydCgyLCcwJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9tYXhUaW1lIG1hbmFnZW1lbnQKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGxhc3QgYXBwb2ludG1lbnQgdGltZSBtYW5hZ2VtZW50ICgxNW1pbiBiZWZvcmUgY2xvc2luZyB0aW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IFtjbG9zaW5nSG91cnMsIGNsb3NpbmdNaW51dGVzXSA9IGRheU1heFRpbWUuc3BsaXQoJzonKS5tYXAoTnVtYmVyKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBkYXlEYXRlID0gbmV3IERhdGUoKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheURhdGUuc2V0SG91cnMoY2xvc2luZ0hvdXJzLCBjbG9zaW5nTWludXRlcywgMCwgMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXlEYXRlLnNldE1pbnV0ZXMoZGF5RGF0ZS5nZXRNaW51dGVzKCkgLSAxNSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL2Zvcm1hdCB0aGUgbmV3IHRpbWUgYmFjayBpbnRvICdISDptbScgZm9ybWF0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgYWN0dWFsQ2xvc2luZ0hvdXJzID0gZGF5RGF0ZS5nZXRIb3VycygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBhY3R1YWxDbG9zaW5nTWludXRlcyA9IGRheURhdGUuZ2V0TWludXRlcygpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRheU1heFRpbWUgPSBhY3R1YWxDbG9zaW5nSG91cnMgKyAnOicgKyBhY3R1YWxDbG9zaW5nTWludXRlczsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvL3NldCBzdGFydC9lbmQgdGltZSBmb3IgdGhhdCBkYXkKCQkJCQkJCWluc3RhbmNlLnNldCgnbWluVGltZScsIGRheU1pblRpbWUpOwoJCQkJCQkJaW5zdGFuY2Uuc2V0KCdtYXhUaW1lJywgZGF5TWF4VGltZSk7CgoJCQkJCQkJLy9TZXQgY3VycmVudCBkYXRlIGluaXRpYWxseQoJCQkJCQkJdGltZVR4dEVsLnRleHRDb250ZW50ID0gIXNlbGVjdGVkRGF0ZXMubGVuZ3RoCgkJCQkJCQkJCQkJCSAgPyBpbnN0YW5jZS5mb3JtYXREYXRlKG5ldyBEYXRlKCkuZnBfaW5jcigxKSwgKGFjdGl2ZUxhbmcgPT0gJ0VOR0xJU0gnID8gJ0YgaiBZLCAxMjowMCcgOiAnaiBGIFksIDEyOjAwJykpCgkJCQkJCQkJCQkJCSAgOiBkYXRlU3RyOwoKCQkJCQkJCS8vZ2V0IHRoZSBkYXRlIGluIGVuZ2xpc2ggYW5kIGZyZW5jaCBmb3IgdGhlIGxvY2FsIHN0b3JhZ2UKCQkJCQkJCXRpbWVUeHRFbC5kYXRhc2V0LmVuID0gaW5zdGFuY2UuZm9ybWF0RGF0ZShuZXcgRGF0ZSgpLmZwX2luY3IoMSksJ0YgaiBZLCAxMjowMCcsIGZsYXRwaWNrci5sMTBucy5lbik7CgkJCQkJCQl0aW1lVHh0RWwuZGF0YXNldC5mciA9IGluc3RhbmNlLmZvcm1hdERhdGUobmV3IERhdGUoKS5mcF9pbmNyKDEpLCdqIEYgWSwgMTI6MDAnLCBmbGF0cGlja3IubDEwbnMuZnIpOwoKCQkJCQkJCXRpbWVJbnB1dC52YWx1ZSA9IHRpbWVUeHRFbC50ZXh0Q29udGVudDsKCgkJCQkJCQlpbnN0YW5jZS5ob3VyRWxlbWVudC5ibHVyKCk7CgkJCQkJCX07CgoJCQkJCQlsZXQgY2xvc2VkRGF5cyA9IFtdOwoJCQkJCQlkYXlOb2Rlcy5mb3JFYWNoKChlLGkpID0+IHsKCQkJCQkJCWlmKChlLmRhdGFzZXQuY2xvc2VkIHx8ICcwJykgPT0gJzEnKSBjbG9zZWREYXlzLnB1c2goaSkKCQkJCQkJfSk7CgoJCQkJCQkvL0FkZCBmcmVuY2ggbG9jYWxpemF0aW9uIHdoZW4gbmVlZGVkCgkJCQkJCWlmKGFjdGl2ZUxhbmcgPT0gJ0ZSRU5DSCcpewoJCQkJCQkJZmxhdHBpY2tyLmxvY2FsaXplKGZsYXRwaWNrci5sMTBucy5mcik7CgkJCQkJCX0KCgoKCQkJCQkJY29uc3QgZnAgPSBmbGF0cGlja3IocGlja2VyLCB7CgkJCQkJCQlpbmxpbmU6dHJ1ZSwKCQkJCQkJCWVuYWJsZVRpbWU6IHRydWUsCgkJCQkJCQltaW5EYXRlOiAndG9kYXknLC8vYmFjayBmcm9tIG5ldyBEYXRlKCkuZnBfaW5jcigxKSBidXQgYWxzbyBhZGRlZCB0aW1lIHZhbGlkYXRpb24gZm9yIG1pblRpbWUKCQkJCQkJCW1pblRpbWU6ICIwOTowMCIsCgkJCQkJCQltYXhUaW1lOiAiMTc6MDAiLAoJCQkJCQkJZGF0ZUZvcm1hdDogZGF0ZUZvcm1hdCwvLyJELCBqIEYgWSwgSDppIiwKCQkJCQkJCW1pbnV0ZUluY3JlbWVudDoxNSwKCQkJCQkJCXRpbWVfMjRocjp0cnVlLAoJCQkJCQkJb25DaGFuZ2U6IHNldFNlbGVjdGVkLAoJCQkJCQkJb25SZWFkeTogc2V0U2VsZWN0ZWQsCgkJCQkJCQlkaXNhYmxlOiBbCgkJCQkJCQkJZnVuY3Rpb24oZGF0ZSl7CgkJCQkJCQkJCWxldCBkYXlOdW0gPSBkYXRlLmdldERheSgpID09IDAgPyA3IDogZGF0ZS5nZXREYXkoKTsKCQkJCQkJCQkJcmV0dXJuIGNsb3NlZERheXMuaW5jbHVkZXMoZGF5TnVtIC0gMSk7CgkJCQkJCQkJfQoJCQkJCQkJXSwKCQkJCQkJCWxvY2FsZTogewoJCQkJCQkJCWZpcnN0RGF5T2ZXZWVrOiAxIC8vIHN0YXJ0IHdlZWsgb24gTW9uZGF5CgkJCQkJCQl9CgoJCQkJCQl9KTsKCgkJCQkJfSwKCgkJCQkJb25CZWZvcmVTdWJtaXQgOiAobGVhZENvbmYpID0+IHsKCQkJCQkJY29uc3QgdGltZVR4dEVsID0gbGVhZENvbmYubGVhZE5vZGUucXVlcnlTZWxlY3RvcignLnNlbGVjdGVkVGltZScpOwoJCQkJCQllbWFpbEhhbmRsZXIuZGVhbGVyQXBwb2ludG1lbnREYXRhID0gewoJCQkJCQkJZGF0ZSA6IHRpbWVUeHRFbC50ZXh0Q29udGVudAoJCQkJCQl9OwoJCQkJCX0sCgoJCQkJCW9uQWZ0ZXJTdWJtaXQgOiAobGVhZENvbmYpID0+IHsKCgkJCQkJCWNvbnN0IHRpbWVUeHRFbCA9IGxlYWRDb25mLmxlYWROb2RlLnF1ZXJ5U2VsZWN0b3IoJy5zZWxlY3RlZFRpbWUnKTsKCgkJCQkJCWNvbnN0IGNiID0gdHJhY2tTdGVwID0+IHsKCQkJCQkJCXRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9mciA9IHRyYWNrU3RlcC5kYXRhc2V0LmNvbXBsX3R4dF9mci5yZXBsYWNlKCd7JEFQUE9JTlRfREFURX0nLCB0aW1lVHh0RWwuZGF0YXNldC5mcik7CgkJCQkJCQl0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZW4gPSB0cmFja1N0ZXAuZGF0YXNldC5jb21wbF90eHRfZW4ucmVwbGFjZSgneyRBUFBPSU5UX0RBVEV9JywgdGltZVR4dEVsLmRhdGFzZXQuZW4pOwoJCQkJCQl9OwoKCQkJCQkJbGV0IGNvbXBsZXRlRXZlbnQgPSBuZXcgQ3VzdG9tRXZlbnQoJ3RyYWNrc3RlcC5jb21wbGV0ZScsewoJCQkJCQkJZGV0YWlsOnsKCQkJCQkJCQlzdGVwSWQgOiAnRGVhbGVyQXBwb2ludG1lbnQnLAoJCQkJCQkJCW9uQ29tcGxldGUgOiBjYgoJCQkJCQkJfQoJCQkJCQl9KTsKCgkJCQkJCWRvY3VtZW50LmRpc3BhdGNoRXZlbnQoY29tcGxldGVFdmVudCk7CgogICAgICAgICAgICAgICAgICAgICAgICAkKGRvY3VtZW50KS50cmlnZ2VyKCdkZWFsZXJBcHBvaW50bWVudC5lbmQnKTsKCQkJCQl9CgoJCQkJfQoKCQkJCi8qKiAvbS9qcy9za2VsZXRvbi5iZWZvcmUuanMgKiovCnZhciBfX19kMmNfc2tlbGV0b25iZWZvcmVqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEzOjAzIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19za2VsZXRvbmJlZm9yZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6Mzc6NTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc2tlbGV0b25iZWZvcmVqc19jX29uPSIyMDIzLTA2LTAxIDEyOjMwOjE5IjsidXNlIHN0cmljdCI7bGV0ICRqc2NvbXAkbnVsbGlzaCR0bXAwO3dpbmRvdy5nU3BlZWRDb25uPXBhcnNlSW50KE1hdGguZmxvb3IoKERhdGUubm93KCktKG51bGwhPSgkanNjb21wJG51bGxpc2gkdG1wMD13aW5kb3cuZ1Rlc3RTcGVlZENvbm4pPyRqc2NvbXAkbnVsbGlzaCR0bXAwOjApKS8xRTMpKTtsZXQgJGpzY29tcCRudWxsaXNoJHRtcDE7Y29uc29sZS5sb2coIkdTUEVFRC1CRUZPUkU6IisoRGF0ZS5ub3coKS0obnVsbCE9KCRqc2NvbXAkbnVsbGlzaCR0bXAxPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/JGpzY29tcCRudWxsaXNoJHRtcDE6MCkpLzFFMyk7Ci8qKiAvbS9qcy9qcXVlcnkuanMgKiovCnZhciBfX19kMmNfanF1ZXJ5anNfY19vbj0iMjAyNS0wNS0yMyAxNzowNTo0OSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5anNfY19vbj0iMjAyNC0wMy0yNSAxMjozMTozMyI7InVzZSBzdHJpY3QiOwohZnVuY3Rpb24obixkYSl7Im9iamVjdCI9PXR5cGVvZiBtb2R1bGUmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9bi5kb2N1bWVudD9kYShuLCEwKTpmdW5jdGlvbih3YSl7aWYoIXdhLmRvY3VtZW50KXRocm93IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIGRhKHdhKX06ZGEobil9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKG4sZGEpe2Z1bmN0aW9uIHdhKGEsYixjKXt2YXIgZSxmLGc9KGM9Y3x8TCkuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7aWYoZy50ZXh0PWEsYilmb3IoZSBpbiBMYykoZj1iW2VdfHxiLmdldEF0dHJpYnV0ZSYmYi5nZXRBdHRyaWJ1dGUoZSkpJiZnLnNldEF0dHJpYnV0ZShlLGYpO2MuaGVhZC5hcHBlbmRDaGlsZChnKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGcpfWZ1bmN0aW9uIFUoYSl7cmV0dXJuIG51bGw9PWE\/YSsKIiI6Im9iamVjdCI9PXR5cGVvZiBhfHwiZnVuY3Rpb24iPT10eXBlb2YgYT9NYltrYy5jYWxsKGEpXXx8Im9iamVjdCI6dHlwZW9mIGF9ZnVuY3Rpb24gZWIoYSl7dmFyIGI9ISFhJiYibGVuZ3RoImluIGEmJmEubGVuZ3RoLGM9VShhKTtyZXR1cm4hTShhKSYmIWtiKGEpJiYoImFycmF5Ij09PWN8fDA9PT1ifHwibnVtYmVyIj09dHlwZW9mIGImJjA8YiYmYi0xIGluIGEpfWZ1bmN0aW9uIFgoYSxiKXtyZXR1cm4gYS5ub2RlTmFtZSYmYS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09Yi50b0xvd2VyQ2FzZSgpfWZ1bmN0aW9uIGJhKGEsYil7cmV0dXJuIGI\/Ilx4MDAiPT09YT8iXHVmZmZkIjphLnNsaWNlKDAsLTEpKyJcXCIrYS5jaGFyQ29kZUF0KGEubGVuZ3RoLTEpLnRvU3RyaW5nKDE2KSsiICI6IlxcIithfWZ1bmN0aW9uIGphKGEsYixjKXtyZXR1cm4gTShiKT9kLmdyZXAoYSxmdW5jdGlvbihlLGYpe3JldHVybiEhYi5jYWxsKGUsZixlKSE9PWN9KTpiLm5vZGVUeXBlP2QuZ3JlcChhLApmdW5jdGlvbihlKXtyZXR1cm4gZT09PWIhPT1jfSk6InN0cmluZyIhPXR5cGVvZiBiP2QuZ3JlcChhLGZ1bmN0aW9uKGUpe3JldHVybi0xPE5hLmNhbGwoYixlKSE9PWN9KTpkLmZpbHRlcihiLGEsYyl9ZnVuY3Rpb24gbGIoYSxiKXtmb3IoOyhhPWFbYl0pJiYxIT09YS5ub2RlVHlwZTspO3JldHVybiBhfWZ1bmN0aW9uIFlhKGEpe3JldHVybiBhfWZ1bmN0aW9uIFphKGEpe3Rocm93IGE7fWZ1bmN0aW9uIG1iKGEsYixjLGUpe3ZhciBmO3RyeXthJiZNKGY9YS5wcm9taXNlKT9mLmNhbGwoYSkuZG9uZShiKS5mYWlsKGMpOmEmJk0oZj1hLnRoZW4pP2YuY2FsbChhLGIsYyk6Yi5hcHBseSh2b2lkIDAsW2FdLnNsaWNlKGUpKX1jYXRjaChnKXtjLmFwcGx5KHZvaWQgMCxbZ10pfX1mdW5jdGlvbiBPYSgpe0wucmVtb3ZlRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsT2EpO24ucmVtb3ZlRXZlbnRMaXN0ZW5lcigibG9hZCIsT2EpO2QucmVhZHkoKX1mdW5jdGlvbiBOYihhLGIpe3JldHVybiBiLnRvVXBwZXJDYXNlKCl9CmZ1bmN0aW9uIEJhKGEpe3JldHVybiBhLnJlcGxhY2UoTWMsIm1zLSIpLnJlcGxhY2UoTmMsTmIpfWZ1bmN0aW9uIEphKCl7dGhpcy5leHBhbmRvPWQuZXhwYW5kbytKYS51aWQrK31mdW5jdGlvbiBPYihhLGIsYyl7dmFyIGUsZjtpZih2b2lkIDA9PT1jJiYxPT09YS5ub2RlVHlwZSlpZihlPSJkYXRhLSIrYi5yZXBsYWNlKE9jLCItJCYiKS50b0xvd2VyQ2FzZSgpLCJzdHJpbmciPT10eXBlb2YoYz1hLmdldEF0dHJpYnV0ZShlKSkpe3RyeXtjPSJ0cnVlIj09PShmPWMpfHwiZmFsc2UiIT09ZiYmKCJudWxsIj09PWY\/bnVsbDpmPT09K2YrIiI\/K2Y6UGMudGVzdChmKT9KU09OLnBhcnNlKGYpOmYpfWNhdGNoKGcpe314YS5zZXQoYSxiLGMpfWVsc2UgYz12b2lkIDA7cmV0dXJuIGN9ZnVuY3Rpb24gUGIoYSxiLGMsZSl7dmFyIGYsZyxoPTIwLG09ZT9mdW5jdGlvbigpe3JldHVybiBlLmN1cigpfTpmdW5jdGlvbigpe3JldHVybiBkLmNzcyhhLGIsIiIpfSxsPW0oKSx0PWMmJmNbM118fAooZC5jc3NOdW1iZXJbYl0\/IiI6InB4Iiksdz1hLm5vZGVUeXBlJiYoZC5jc3NOdW1iZXJbYl18fCJweCIhPT10JiYrbCkmJnliLmV4ZWMoZC5jc3MoYSxiKSk7aWYodyYmd1szXSE9PXQpe2wvPTI7dD10fHx3WzNdO2Zvcih3PStsfHwxO2gtLTspZC5zdHlsZShhLGIsdyt0KSwwPj0oMS1nKSooMS0oZz1tKCkvbHx8LjUpKSYmKGg9MCksdy89Zzt3Kj0yO2Quc3R5bGUoYSxiLHcrdCk7Yz1jfHxbXX1yZXR1cm4gYyYmKHc9K3d8fCtsfHwwLGY9Y1sxXT93KyhjWzFdKzEpKmNbMl06K2NbMl0sZSYmKGUudW5pdD10LGUuc3RhcnQ9dyxlLmVuZD1mKSksZn1mdW5jdGlvbiAkYShhLGIpe2Zvcih2YXIgYyxlLGYsZyxoLG0sbCx0PVtdLHc9MCxyPWEubGVuZ3RoO3c8cjt3KyspKGU9YVt3XSkuc3R5bGUmJihjPWUuc3R5bGUuZGlzcGxheSxiPygibm9uZSI9PT1jJiYodFt3XT1HLmdldChlLCJkaXNwbGF5Iil8fG51bGwsdFt3XXx8KGUuc3R5bGUuZGlzcGxheT0iIikpLCIiPT09ZS5zdHlsZS5kaXNwbGF5JiYKUWIoZSkmJih0W3ddPShsPWg9Zz12b2lkIDAsaD0oZj1lKS5vd25lckRvY3VtZW50LG09Zi5ub2RlTmFtZSwobD1sY1ttXSl8fChnPWguYm9keS5hcHBlbmRDaGlsZChoLmNyZWF0ZUVsZW1lbnQobSkpLGw9ZC5jc3MoZywiZGlzcGxheSIpLGcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChnKSwibm9uZSI9PT1sJiYobD0iYmxvY2siKSxsY1ttXT1sKSkpKToibm9uZSIhPT1jJiYodFt3XT0ibm9uZSIsRy5zZXQoZSwiZGlzcGxheSIsYykpKTtmb3Iodz0wO3c8cjt3KyspbnVsbCE9dFt3XSYmKGFbd10uc3R5bGUuZGlzcGxheT10W3ddKTtyZXR1cm4gYX1mdW5jdGlvbiBzYShhLGIpe3ZhciBjO3JldHVybiBjPSJ1bmRlZmluZWQiIT10eXBlb2YgYS5nZXRFbGVtZW50c0J5VGFnTmFtZT9hLmdldEVsZW1lbnRzQnlUYWdOYW1lKGJ8fCIqIik6InVuZGVmaW5lZCIhPXR5cGVvZiBhLnF1ZXJ5U2VsZWN0b3JBbGw\/YS5xdWVyeVNlbGVjdG9yQWxsKGJ8fCIqIik6W10sdm9pZCAwPT09Ynx8YiYmClgoYSxiKT9kLm1lcmdlKFthXSxjKTpjfWZ1bmN0aW9uIG5iKGEsYil7Zm9yKHZhciBjPTAsZT1hLmxlbmd0aDtjPGU7YysrKUcuc2V0KGFbY10sImdsb2JhbEV2YWwiLCFifHxHLmdldChiW2NdLCJnbG9iYWxFdmFsIikpfWZ1bmN0aW9uIFJiKGEsYixjLGUsZil7Zm9yKHZhciBnLGgsbSxsLHQ9Yi5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksdz1bXSxyPTAsej1hLmxlbmd0aDtyPHo7cisrKWlmKChnPWFbcl0pfHwwPT09ZylpZigib2JqZWN0Ij09PVUoZykpZC5tZXJnZSh3LGcubm9kZVR5cGU\/W2ddOmcpO2Vsc2UgaWYoUWMudGVzdChnKSl7aD1ofHx0LmFwcGVuZENoaWxkKGIuY3JlYXRlRWxlbWVudCgiZGl2IikpO209KG1jLmV4ZWMoZyl8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCk7bT1DYVttXXx8Q2EuX2RlZmF1bHQ7aC5pbm5lckhUTUw9bVsxXStkLmh0bWxQcmVmaWx0ZXIoZykrbVsyXTtmb3IobT1tWzBdO20tLTspaD1oLmxhc3RDaGlsZDtkLm1lcmdlKHcsaC5jaGlsZE5vZGVzKTsKKGg9dC5maXJzdENoaWxkKS50ZXh0Q29udGVudD0iIn1lbHNlIHcucHVzaChiLmNyZWF0ZVRleHROb2RlKGcpKTt0LnRleHRDb250ZW50PSIiO2ZvcihyPTA7Zz13W3IrK107KWlmKGUmJi0xPGQuaW5BcnJheShnLGUpKWYmJmYucHVzaChnKTtlbHNlIGlmKGw9b2IoZyksaD1zYSh0LmFwcGVuZENoaWxkKGcpLCJzY3JpcHQiKSxsJiZuYihoKSxjKWZvcihtPTA7Zz1oW20rK107KW5jLnRlc3QoZy50eXBlfHwiIikmJmMucHVzaChnKTtyZXR1cm4gdH1mdW5jdGlvbiBhYigpe3JldHVybiEwfWZ1bmN0aW9uIGJiKCl7cmV0dXJuITF9ZnVuY3Rpb24gZmIoYSxiLGMsZSxmLGcpe3ZhciBoLG07aWYoIm9iamVjdCI9PXR5cGVvZiBiKXtmb3IobSBpbiJzdHJpbmciIT10eXBlb2YgYyYmKGU9ZXx8YyxjPXZvaWQgMCksYilmYihhLG0sYyxlLGJbbV0sZyk7cmV0dXJuIGF9aWYobnVsbD09ZSYmbnVsbD09Zj8oZj1jLGU9Yz12b2lkIDApOm51bGw9PWYmJigic3RyaW5nIj09dHlwZW9mIGM\/KGY9CmUsZT12b2lkIDApOihmPWUsZT1jLGM9dm9pZCAwKSksITE9PT1mKWY9YmI7ZWxzZSBpZighZilyZXR1cm4gYTtyZXR1cm4gMT09PWcmJihoPWYsKGY9ZnVuY3Rpb24obCl7cmV0dXJuIGQoKS5vZmYobCksaC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9KS5ndWlkPWguZ3VpZHx8KGguZ3VpZD1kLmd1aWQrKykpLGEuZWFjaChmdW5jdGlvbigpe2QuZXZlbnQuYWRkKHRoaXMsYixmLGUsYyl9KX1mdW5jdGlvbiBwYihhLGIsYyl7Yz8oRy5zZXQoYSxiLCExKSxkLmV2ZW50LmFkZChhLGIse25hbWVzcGFjZTohMSxoYW5kbGVyOmZ1bmN0aW9uKGUpe3ZhciBmLGc9Ry5nZXQodGhpcyxiKTtpZigxJmUuaXNUcmlnZ2VyJiZ0aGlzW2JdKWlmKGcpKGQuZXZlbnQuc3BlY2lhbFtiXXx8e30pLmRlbGVnYXRlVHlwZSYmZS5zdG9wUHJvcGFnYXRpb24oKTtlbHNle2lmKGc9eWEuY2FsbChhcmd1bWVudHMpLEcuc2V0KHRoaXMsYixnKSx0aGlzW2JdKCksZj1HLmdldCh0aGlzLGIpLEcuc2V0KHRoaXMsYiwKITEpLGchPT1mKXJldHVybiBlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLGUucHJldmVudERlZmF1bHQoKSxmfWVsc2UgZyYmKEcuc2V0KHRoaXMsYixkLmV2ZW50LnRyaWdnZXIoZ1swXSxnLnNsaWNlKDEpLHRoaXMpKSxlLnN0b3BQcm9wYWdhdGlvbigpLGUuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9YWIpfX0pKTp2b2lkIDA9PT1HLmdldChhLGIpJiZkLmV2ZW50LmFkZChhLGIsYWIpfWZ1bmN0aW9uIFNiKGEsYil7cmV0dXJuIFgoYSwidGFibGUiKSYmWCgxMSE9PWIubm9kZVR5cGU\/YjpiLmZpcnN0Q2hpbGQsInRyIikmJmQoYSkuY2hpbGRyZW4oInRib2R5IilbMF18fGF9ZnVuY3Rpb24gcWIoYSl7cmV0dXJuIGEudHlwZT0obnVsbCE9PWEuZ2V0QXR0cmlidXRlKCJ0eXBlIikpKyIvIithLnR5cGUsYX1mdW5jdGlvbiAkYihhKXtyZXR1cm4idHJ1ZS8iPT09KGEudHlwZXx8IiIpLnNsaWNlKDAsNSk\/YS50eXBlPWEudHlwZS5zbGljZSg1KTphLnJlbW92ZUF0dHJpYnV0ZSgidHlwZSIpLAphfWZ1bmN0aW9uIGdiKGEsYil7dmFyIGMsZSxmLGcsaDtpZigxPT09Yi5ub2RlVHlwZSl7aWYoRy5oYXNEYXRhKGEpJiYoaD1HLmdldChhKS5ldmVudHMpKWZvcihlIGluIEcucmVtb3ZlKGIsImhhbmRsZSBldmVudHMiKSxoKXt2YXIgbT0wO2ZvcihjPWhbZV0ubGVuZ3RoO208YzttKyspZC5ldmVudC5hZGQoYixlLGhbZV1bbV0pfXhhLmhhc0RhdGEoYSkmJihmPXhhLmFjY2VzcyhhKSxnPWQuZXh0ZW5kKHt9LGYpLHhhLnNldChiLGcpKX19ZnVuY3Rpb24gY2IoYSxiLGMsZSl7Yj1vYyhiKTt2YXIgZixnLGgsbT0wLGw9YS5sZW5ndGgsdD1sLTEsdz1iWzBdLHI9TSh3KTtpZihyfHwxPGwmJiJzdHJpbmciPT10eXBlb2YgdyYmIU4uY2hlY2tDbG9uZSYmUmMudGVzdCh3KSlyZXR1cm4gYS5lYWNoKGZ1bmN0aW9uKEQpe3ZhciBGPWEuZXEoRCk7ciYmKGJbMF09dy5jYWxsKHRoaXMsRCxGLmh0bWwoKSkpO2NiKEYsYixjLGUpfSk7aWYobCYmKGc9KGY9UmIoYixhWzBdLm93bmVyRG9jdW1lbnQsCiExLGEsZSkpLmZpcnN0Q2hpbGQsMT09PWYuY2hpbGROb2Rlcy5sZW5ndGgmJihmPWcpLGd8fGUpKXtmb3IoaD0oZz1kLm1hcChzYShmLCJzY3JpcHQiKSxxYikpLmxlbmd0aDttPGw7bSsrKXt2YXIgej1mO20hPT10JiYoej1kLmNsb25lKHosITAsITApLGgmJmQubWVyZ2UoZyxzYSh6LCJzY3JpcHQiKSkpO2MuY2FsbChhW21dLHosbSl9aWYoaClmb3IoZj1nW2cubGVuZ3RoLTFdLm93bmVyRG9jdW1lbnQsZC5tYXAoZywkYiksbT0wO208aDttKyspej1nW21dLG5jLnRlc3Qoei50eXBlfHwiIikmJiFHLmFjY2Vzcyh6LCJnbG9iYWxFdmFsIikmJmQuY29udGFpbnMoZix6KSYmKHouc3JjJiYibW9kdWxlIiE9PSh6LnR5cGV8fCIiKS50b0xvd2VyQ2FzZSgpP2QuX2V2YWxVcmwmJiF6Lm5vTW9kdWxlJiZkLl9ldmFsVXJsKHouc3JjLHtub25jZTp6Lm5vbmNlfHx6LmdldEF0dHJpYnV0ZSgibm9uY2UiKX0sZik6d2Eoei50ZXh0Q29udGVudC5yZXBsYWNlKFNjLCIiKSx6LGYpKX1yZXR1cm4gYX0KZnVuY3Rpb24gVGIoYSxiLGMpe2Zvcih2YXIgZT1iP2QuZmlsdGVyKGIsYSk6YSxmPTA7bnVsbCE9KGI9ZVtmXSk7ZisrKWN8fDEhPT1iLm5vZGVUeXBlfHxkLmNsZWFuRGF0YShzYShiKSksYi5wYXJlbnROb2RlJiYoYyYmb2IoYikmJm5iKHNhKGIsInNjcmlwdCIpKSxiLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYikpO3JldHVybiBhfWZ1bmN0aW9uIEthKGEsYixjKXt2YXIgZSxmLGcsaCxtPWFjLnRlc3QoYiksbD1hLnN0eWxlO3JldHVybihjPWN8fFViKGEpKSYmKGg9Yy5nZXRQcm9wZXJ0eVZhbHVlKGIpfHxjW2JdLG0mJmgmJihoPWgucmVwbGFjZSh6YiwiJDEiKXx8dm9pZCAwKSwiIiE9PWh8fG9iKGEpfHwoaD1kLnN0eWxlKGEsYikpLCFOLnBpeGVsQm94U3R5bGVzKCkmJmJjLnRlc3QoaCkmJlRjLnRlc3QoYikmJihlPWwud2lkdGgsZj1sLm1pbldpZHRoLGc9bC5tYXhXaWR0aCxsLm1pbldpZHRoPWwubWF4V2lkdGg9bC53aWR0aD1oLGg9Yy53aWR0aCxsLndpZHRoPWUsbC5taW5XaWR0aD0KZixsLm1heFdpZHRoPWcpKSx2b2lkIDAhPT1oP2grIiI6aH1mdW5jdGlvbiBWYihhLGIpe3JldHVybntnZXQ6ZnVuY3Rpb24oKXtpZighYSgpKXJldHVybih0aGlzLmdldD1iKS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZGVsZXRlIHRoaXMuZ2V0fX19ZnVuY3Rpb24gQWIoYSl7dmFyIGI7aWYoIShiPWQuY3NzUHJvcHNbYV18fHBjW2FdKSl7aWYoIShhIGluIHFjKSl7YTp7Yj1hO2Zvcih2YXIgYz1iWzBdLnRvVXBwZXJDYXNlKCkrYi5zbGljZSgxKSxlPXJjLmxlbmd0aDtlLS07KWlmKChiPXJjW2VdK2MpaW4gcWMpYnJlYWsgYTtiPXZvaWQgMH1hPXBjW2FdPWJ8fGF9Yj1hfXJldHVybiBifWZ1bmN0aW9uIFdiKGEsYixjKXtyZXR1cm4oYT15Yi5leGVjKGIpKT9NYXRoLm1heCgwLGFbMl0tKGN8fDApKSsoYVszXXx8InB4Iik6Yn1mdW5jdGlvbiByYihhLGIsYyxlLGYsZyl7dmFyIGg9IndpZHRoIj09PWI\/MTowLG09MCxsPTAsdD0wO2lmKGM9PT0oZT8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwOwpmb3IoOzQ+aDtoKz0yKSJtYXJnaW4iPT09YyYmKHQrPWQuY3NzKGEsYytQYVtoXSwhMCxmKSksZT8oImNvbnRlbnQiPT09YyYmKGwtPWQuY3NzKGEsInBhZGRpbmciK1BhW2hdLCEwLGYpKSwibWFyZ2luIiE9PWMmJihsLT1kLmNzcyhhLCJib3JkZXIiK1BhW2hdKyJXaWR0aCIsITAsZikpKToobCs9ZC5jc3MoYSwicGFkZGluZyIrUGFbaF0sITAsZiksInBhZGRpbmciIT09Yz9sKz1kLmNzcyhhLCJib3JkZXIiK1BhW2hdKyJXaWR0aCIsITAsZik6bSs9ZC5jc3MoYSwiYm9yZGVyIitQYVtoXSsiV2lkdGgiLCEwLGYpKTtyZXR1cm4hZSYmMDw9ZyYmKGwrPU1hdGgubWF4KDAsTWF0aC5jZWlsKGFbIm9mZnNldCIrYlswXS50b1VwcGVyQ2FzZSgpK2Iuc2xpY2UoMSldLWctbC1tLS41KSl8fDApLGwrdH1mdW5jdGlvbiBCYihhLGIsYyl7dmFyIGU9VWIoYSksZj0oIU4uYm94U2l6aW5nUmVsaWFibGUoKXx8YykmJiJib3JkZXItYm94Ij09PWQuY3NzKGEsImJveFNpemluZyIsITEsZSksZz0KZixoPUthKGEsYixlKSxtPSJvZmZzZXQiK2JbMF0udG9VcHBlckNhc2UoKStiLnNsaWNlKDEpO2lmKGJjLnRlc3QoaCkpe2lmKCFjKXJldHVybiBoO2g9ImF1dG8ifXJldHVybighTi5ib3hTaXppbmdSZWxpYWJsZSgpJiZmfHwhTi5yZWxpYWJsZVRyRGltZW5zaW9ucygpJiZYKGEsInRyIil8fCJhdXRvIj09PWh8fCFwYXJzZUZsb2F0KGgpJiYiaW5saW5lIj09PWQuY3NzKGEsImRpc3BsYXkiLCExLGUpKSYmYS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmKGY9ImJvcmRlci1ib3giPT09ZC5jc3MoYSwiYm94U2l6aW5nIiwhMSxlKSwoZz1tIGluIGEpJiYoaD1hW21dKSksKGg9cGFyc2VGbG9hdChoKXx8MCkrcmIoYSxiLGN8fChmPyJib3JkZXIiOiJjb250ZW50IiksZyxlLGgpKyJweCJ9ZnVuY3Rpb24gemEoYSxiLGMsZSxmKXtyZXR1cm4gbmV3IHphLnByb3RvdHlwZS5pbml0KGEsYixjLGUsZil9ZnVuY3Rpb24gQ2IoKXtYYiYmKCExPT09TC5oaWRkZW4mJm4ucmVxdWVzdEFuaW1hdGlvbkZyYW1lPwpuLnJlcXVlc3RBbmltYXRpb25GcmFtZShDYik6bi5zZXRUaW1lb3V0KENiLGQuZnguaW50ZXJ2YWwpLGQuZngudGljaygpKX1mdW5jdGlvbiBEYigpe3JldHVybiBuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtzYj12b2lkIDB9KSxzYj1EYXRlLm5vdygpfWZ1bmN0aW9uIHRiKGEsYil7dmFyIGMsZT0wLGY9e2hlaWdodDphfTtmb3IoYj1iPzE6MDs0PmU7ZSs9Mi1iKWZbIm1hcmdpbiIrKGM9UGFbZV0pXT1mWyJwYWRkaW5nIitjXT1hO3JldHVybiBiJiYoZi5vcGFjaXR5PWYud2lkdGg9YSksZn1mdW5jdGlvbiB1KGEsYixjKXtmb3IodmFyIGUsZj0oeC50d2VlbmVyc1tiXXx8W10pLmNvbmNhdCh4LnR3ZWVuZXJzWyIqIl0pLGc9MCxoPWYubGVuZ3RoO2c8aDtnKyspaWYoZT1mW2ddLmNhbGwoYyxiLGEpKXJldHVybiBlfWZ1bmN0aW9uIHgoYSxiLGMpe3ZhciBlLGY9MCxnPXgucHJlZmlsdGVycy5sZW5ndGgsaD1kLkRlZmVycmVkKCkuYWx3YXlzKGZ1bmN0aW9uKCl7ZGVsZXRlIG0uZWxlbX0pLAptPWZ1bmN0aW9uKCl7aWYoZSlyZXR1cm4hMTt2YXIgdD1zYnx8RGIoKTt0PU1hdGgubWF4KDAsbC5zdGFydFRpbWUrbC5kdXJhdGlvbi10KTtmb3IodmFyIHc9MS0odC9sLmR1cmF0aW9ufHwwKSxyPTAsej1sLnR3ZWVucy5sZW5ndGg7cjx6O3IrKylsLnR3ZWVuc1tyXS5ydW4odyk7cmV0dXJuIGgubm90aWZ5V2l0aChhLFtsLHcsdF0pLDE+dyYmej90Oih6fHxoLm5vdGlmeVdpdGgoYSxbbCwxLDBdKSxoLnJlc29sdmVXaXRoKGEsW2xdKSwhMSl9LGw9aC5wcm9taXNlKHtlbGVtOmEscHJvcHM6ZC5leHRlbmQoe30sYiksb3B0czpkLmV4dGVuZCghMCx7c3BlY2lhbEVhc2luZzp7fSxlYXNpbmc6ZC5lYXNpbmcuX2RlZmF1bHR9LGMpLG9yaWdpbmFsUHJvcGVydGllczpiLG9yaWdpbmFsT3B0aW9uczpjLHN0YXJ0VGltZTpzYnx8RGIoKSxkdXJhdGlvbjpjLmR1cmF0aW9uLHR3ZWVuczpbXSxjcmVhdGVUd2VlbjpmdW5jdGlvbih0LHcpe3Q9ZC5Ud2VlbihhLGwub3B0cyx0LHcsbC5vcHRzLnNwZWNpYWxFYXNpbmdbdF18fApsLm9wdHMuZWFzaW5nKTtyZXR1cm4gbC50d2VlbnMucHVzaCh0KSx0fSxzdG9wOmZ1bmN0aW9uKHQpe3ZhciB3PTAscj10P2wudHdlZW5zLmxlbmd0aDowO2lmKGUpcmV0dXJuIHRoaXM7Zm9yKGU9ITA7dzxyO3crKylsLnR3ZWVuc1t3XS5ydW4oMSk7cmV0dXJuIHQ\/KGgubm90aWZ5V2l0aChhLFtsLDEsMF0pLGgucmVzb2x2ZVdpdGgoYSxbbCx0XSkpOmgucmVqZWN0V2l0aChhLFtsLHRdKSx0aGlzfX0pO2M9bC5wcm9wczshZnVuY3Rpb24odCx3KXt2YXIgcix6LEQsRixPO2ZvcihyIGluIHQpaWYoRD13W3o9QmEocildLEY9dFtyXSxBcnJheS5pc0FycmF5KEYpJiYoRD1GWzFdLEY9dFtyXT1GWzBdKSxyIT09eiYmKHRbel09RixkZWxldGUgdFtyXSksKE89ZC5jc3NIb29rc1t6XSkmJiJleHBhbmQiaW4gTylmb3IociBpbiBGPU8uZXhwYW5kKEYpLGRlbGV0ZSB0W3pdLEYpciBpbiB0fHwodFtyXT1GW3JdLHdbcl09RCk7ZWxzZSB3W3pdPUR9KGMsbC5vcHRzLnNwZWNpYWxFYXNpbmcpOwpmb3IoO2Y8ZztmKyspaWYoYj14LnByZWZpbHRlcnNbZl0uY2FsbChsLGEsYyxsLm9wdHMpKXJldHVybiBNKGIuc3RvcCkmJihkLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9Yi5zdG9wLmJpbmQoYikpLGI7cmV0dXJuIGQubWFwKGMsdSxsKSxNKGwub3B0cy5zdGFydCkmJmwub3B0cy5zdGFydC5jYWxsKGEsbCksbC5wcm9ncmVzcyhsLm9wdHMucHJvZ3Jlc3MpLmRvbmUobC5vcHRzLmRvbmUsbC5vcHRzLmNvbXBsZXRlKS5mYWlsKGwub3B0cy5mYWlsKS5hbHdheXMobC5vcHRzLmFsd2F5cyksZC5meC50aW1lcihkLmV4dGVuZChtLHtlbGVtOmEsYW5pbTpsLHF1ZXVlOmwub3B0cy5xdWV1ZX0pKSxsfWZ1bmN0aW9uIEMoYSl7cmV0dXJuKGEubWF0Y2goTGEpfHxbXSkuam9pbigiICIpfWZ1bmN0aW9uIEgoYSl7cmV0dXJuIGEuZ2V0QXR0cmlidXRlJiZhLmdldEF0dHJpYnV0ZSgiY2xhc3MiKXx8IiJ9ZnVuY3Rpb24gUChhKXtyZXR1cm4gQXJyYXkuaXNBcnJheShhKT8KYToic3RyaW5nIj09dHlwZW9mIGEmJmEubWF0Y2goTGEpfHxbXX1mdW5jdGlvbiBlYShhLGIsYyxlKXt2YXIgZjtpZihBcnJheS5pc0FycmF5KGIpKWQuZWFjaChiLGZ1bmN0aW9uKGcsaCl7Y3x8VWMudGVzdChhKT9lKGEsaCk6ZWEoYSsiWyIrKCJvYmplY3QiPT10eXBlb2YgaCYmbnVsbCE9aD9nOiIiKSsiXSIsaCxjLGUpfSk7ZWxzZSBpZihjfHwib2JqZWN0IiE9PVUoYikpZShhLGIpO2Vsc2UgZm9yKGYgaW4gYillYShhKyJbIitmKyJdIixiW2ZdLGMsZSl9ZnVuY3Rpb24gUWEoYSl7cmV0dXJuIGZ1bmN0aW9uKGIsYyl7InN0cmluZyIhPXR5cGVvZiBiJiYoYz1iLGI9IioiKTt2YXIgZT0wLGY9Yi50b0xvd2VyQ2FzZSgpLm1hdGNoKExhKXx8W107aWYoTShjKSlmb3IoO2I9ZltlKytdOykiKyI9PT1iWzBdPyhiPWIuc2xpY2UoMSl8fCIqIiwoYVtiXT1hW2JdfHxbXSkudW5zaGlmdChjKSk6KGFbYl09YVtiXXx8W10pLnB1c2goYyl9fWZ1bmN0aW9uIEViKGEsYixjLGUpe2Z1bmN0aW9uIGYobSl7dmFyIGw7CnJldHVybiBnW21dPSEwLGQuZWFjaChhW21dfHxbXSxmdW5jdGlvbih0LHcpe3Q9dyhiLGMsZSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0fHxofHxnW3RdP2g\/IShsPXQpOnZvaWQgMDooYi5kYXRhVHlwZXMudW5zaGlmdCh0KSxmKHQpLCExKX0pLGx9dmFyIGc9e30saD1hPT09Y2M7cmV0dXJuIGYoYi5kYXRhVHlwZXNbMF0pfHwhZ1siKiJdJiZmKCIqIil9ZnVuY3Rpb24gaGIoYSxiKXt2YXIgYyxlLGY9ZC5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihjIGluIGIpdm9pZCAwIT09YltjXSYmKChmW2NdP2E6ZXx8KGU9e30pKVtjXT1iW2NdKTtyZXR1cm4gZSYmZC5leHRlbmQoITAsYSxlKSxhfXZhciBvYT1bXSxzYz1PYmplY3QuZ2V0UHJvdG90eXBlT2YseWE9b2Euc2xpY2Usb2M9b2EuZmxhdD9mdW5jdGlvbihhKXtyZXR1cm4gb2EuZmxhdC5jYWxsKGEpfTpmdW5jdGlvbihhKXtyZXR1cm4gb2EuY29uY2F0LmFwcGx5KFtdLGEpfSx1Yj1vYS5wdXNoLE5hPW9hLmluZGV4T2YsCk1iPXt9LGtjPU1iLnRvU3RyaW5nLEZiPU1iLmhhc093blByb3BlcnR5LHRjPUZiLnRvU3RyaW5nLFZjPXRjLmNhbGwoT2JqZWN0KSxOPXt9LE09ZnVuY3Rpb24oYSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGEmJiJudW1iZXIiIT10eXBlb2YgYS5ub2RlVHlwZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGEuaXRlbX0sa2I9ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGwhPWEmJmE9PT1hLndpbmRvd30sTD1uLmRvY3VtZW50LExjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH0sV2M9L0hUTUwkL2ksZD1mdW5jdGlvbihhLGIpe3JldHVybiBuZXcgZC5mbi5pbml0KGEsYil9O2QuZm49ZC5wcm90b3R5cGU9e2pxdWVyeToiMy43LjAiLGNvbnN0cnVjdG9yOmQsbGVuZ3RoOjAsdG9BcnJheTpmdW5jdGlvbigpe3JldHVybiB5YS5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE\/eWEuY2FsbCh0aGlzKTowPmE\/dGhpc1thK3RoaXMubGVuZ3RoXTp0aGlzW2FdfSwKcHVzaFN0YWNrOmZ1bmN0aW9uKGEpe2E9ZC5tZXJnZSh0aGlzLmNvbnN0cnVjdG9yKCksYSk7cmV0dXJuIGEucHJldk9iamVjdD10aGlzLGF9LGVhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZWFjaCh0aGlzLGEpfSxtYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGQubWFwKHRoaXMsZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5jYWxsKGIsYyxiKX0pKX0sc2xpY2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soeWEuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0sZmlyc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgwKX0sbGFzdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVxKC0xKX0sZXZlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmdyZXAodGhpcyxmdW5jdGlvbihhLGIpe3JldHVybihiKzEpJTJ9KSl9LG9kZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLmdyZXAodGhpcyxmdW5jdGlvbihhLGIpe3JldHVybiBiJQoyfSkpfSxlcTpmdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aDthPSthKygwPmE\/YjowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9YSYmYTxiP1t0aGlzW2FdXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1Yixzb3J0Om9hLnNvcnQsc3BsaWNlOm9hLnNwbGljZX07ZC5leHRlbmQ9ZC5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgYSxiLGMsZSxmLGc9YXJndW1lbnRzWzBdfHx7fSxoPTEsbT1hcmd1bWVudHMubGVuZ3RoLGw9ITE7ImJvb2xlYW4iPT10eXBlb2YgZyYmKGw9ZyxnPWFyZ3VtZW50c1toXXx8e30saCsrKTsib2JqZWN0Ij09dHlwZW9mIGd8fE0oZyl8fChnPXt9KTtmb3IoaD09PW0mJihnPXRoaXMsaC0tKTtoPG07aCsrKWlmKG51bGwhPShhPWFyZ3VtZW50c1toXSkpZm9yKGIgaW4gYSl7dmFyIHQ9YVtiXTsiX19wcm90b19fIiE9PWImJmchPT10JiYobCYmdCYmKGQuaXNQbGFpbk9iamVjdCh0KXx8CihlPUFycmF5LmlzQXJyYXkodCkpKT8oYz1nW2JdLGY9ZSYmIUFycmF5LmlzQXJyYXkoYyk\/W106ZXx8ZC5pc1BsYWluT2JqZWN0KGMpP2M6e30sZT0hMSxnW2JdPWQuZXh0ZW5kKGwsZix0KSk6dm9pZCAwIT09dCYmKGdbYl09dCkpfXJldHVybiBnfTtkLmV4dGVuZCh7ZXhwYW5kbzoialF1ZXJ5IisoIjMuNy4wIitNYXRoLnJhbmRvbSgpKS5yZXBsYWNlKC9cRC9nLCIiKSxpc1JlYWR5OiEwLGVycm9yOmZ1bmN0aW9uKGEpe3Rocm93IEVycm9yKGEpO30sbm9vcDpmdW5jdGlvbigpe30saXNQbGFpbk9iamVjdDpmdW5jdGlvbihhKXt2YXIgYixjO3JldHVybiEoIWF8fCJbb2JqZWN0IE9iamVjdF0iIT09a2MuY2FsbChhKSkmJighKGI9c2MoYSkpfHwiZnVuY3Rpb24iPT10eXBlb2YoYz1GYi5jYWxsKGIsImNvbnN0cnVjdG9yIikmJmIuY29uc3RydWN0b3IpJiZ0Yy5jYWxsKGMpPT09VmMpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBhKXJldHVybiExO3JldHVybiEwfSwKZ2xvYmFsRXZhbDpmdW5jdGlvbihhLGIsYyl7d2EoYSx7bm9uY2U6YiYmYi5ub25jZX0sYyl9LGVhY2g6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlPTA7aWYoZWIoYSkpZm9yKGM9YS5sZW5ndGg7ZTxjJiYhMSE9PWIuY2FsbChhW2VdLGUsYVtlXSk7ZSsrKTtlbHNlIGZvcihlIGluIGEpaWYoITE9PT1iLmNhbGwoYVtlXSxlLGFbZV0pKWJyZWFrO3JldHVybiBhfSx0ZXh0OmZ1bmN0aW9uKGEpe3ZhciBiLGM9IiIsZT0wO2lmKGI9YS5ub2RlVHlwZSl7aWYoMT09PWJ8fDk9PT1ifHwxMT09PWIpcmV0dXJuIGEudGV4dENvbnRlbnQ7aWYoMz09PWJ8fDQ9PT1iKXJldHVybiBhLm5vZGVWYWx1ZX1lbHNlIGZvcig7Yj1hW2UrK107KWMrPWQudGV4dChiKTtyZXR1cm4gY30sbWFrZUFycmF5OmZ1bmN0aW9uKGEsYil7Yj1ifHxbXTtyZXR1cm4gbnVsbCE9YSYmKGViKE9iamVjdChhKSk\/ZC5tZXJnZShiLCJzdHJpbmciPT10eXBlb2YgYT9bYV06YSk6dWIuY2FsbChiLGEpKSxifSxpbkFycmF5OmZ1bmN0aW9uKGEsCmIsYyl7cmV0dXJuIG51bGw9PWI\/LTE6TmEuY2FsbChiLGEsYyl9LGlzWE1MRG9jOmZ1bmN0aW9uKGEpe3ZhciBiPWEmJihhLm93bmVyRG9jdW1lbnR8fGEpLmRvY3VtZW50RWxlbWVudDtyZXR1cm4hV2MudGVzdChhJiZhLm5hbWVzcGFjZVVSSXx8YiYmYi5ub2RlTmFtZXx8IkhUTUwiKX0sbWVyZ2U6ZnVuY3Rpb24oYSxiKXtmb3IodmFyIGM9K2IubGVuZ3RoLGU9MCxmPWEubGVuZ3RoO2U8YztlKyspYVtmKytdPWJbZV07cmV0dXJuIGEubGVuZ3RoPWYsYX0sZ3JlcDpmdW5jdGlvbihhLGIsYyl7dmFyIGU9W10sZj0wLGc9YS5sZW5ndGg7Zm9yKGM9IWM7ZjxnO2YrKykhYihhW2ZdLGYpIT09YyYmZS5wdXNoKGFbZl0pO3JldHVybiBlfSxtYXA6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZz0wLGg9W107aWYoZWIoYSkpZm9yKGU9YS5sZW5ndGg7ZzxlO2crKyludWxsIT0oZj1iKGFbZ10sZyxjKSkmJmgucHVzaChmKTtlbHNlIGZvcihnIGluIGEpbnVsbCE9KGY9YihhW2ddLGcsYykpJiYKaC5wdXNoKGYpO3JldHVybiBvYyhoKX0sZ3VpZDoxLHN1cHBvcnQ6Tn0pOyJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJihkLmZuW1N5bWJvbC5pdGVyYXRvcl09b2FbU3ltYm9sLml0ZXJhdG9yXSk7ZC5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihhLGIpe01iWyJbb2JqZWN0ICIrYisiXSJdPWIudG9Mb3dlckNhc2UoKX0pO3ZhciBYYz1vYS5wb3AsWWM9b2Euc29ydCxaYz1vYS5zcGxpY2UsemI9UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSt8KCg\/Ol58W15cXFxcXSkoPzpcXFxcLikqKVtcXHgyMFxcdFxcclxcblxcZl0rJCIsImciKTtkLmNvbnRhaW5zPWZ1bmN0aW9uKGEsYil7Yj1iJiZiLnBhcmVudE5vZGU7cmV0dXJuIGE9PT1ifHwhKCFifHwxIT09Yi5ub2RlVHlwZXx8IShhLmNvbnRhaW5zP2EuY29udGFpbnMoYik6YS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiYmCjE2JmEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oYikpKX07dmFyICRjPS8oW1wwLVx4MWZceDdmXXxeLT9cZCl8Xi0kfFteXHg4MC1cdUZGRkZcdy1dL2c7ZC5lc2NhcGVTZWxlY3Rvcj1mdW5jdGlvbihhKXtyZXR1cm4oYSsiIikucmVwbGFjZSgkYyxiYSl9O3ZhciBSYT1MOyFmdW5jdGlvbigpe2Z1bmN0aW9uIGEoayxwLHEsdil7dmFyIHksRSxBLEksQj1wJiZwLm93bmVyRG9jdW1lbnQsSj1wP3Aubm9kZVR5cGU6OTtpZihxPXF8fFtdLCJzdHJpbmciIT10eXBlb2Yga3x8IWt8fDEhPT1KJiY5IT09SiYmMTEhPT1KKXJldHVybiBxO2lmKCF2JiYodChwKSxwPXB8fFosdmEpKXtpZigxMSE9PUomJihJPWFkLmV4ZWMoaykpKWlmKHk9SVsxXSlpZig5PT09Sil7aWYoIShFPXAuZ2V0RWxlbWVudEJ5SWQoeSkpKXJldHVybiBxO2lmKEUuaWQ9PT15KXJldHVybiB0YS5jYWxsKHEsRSkscX1lbHNle2lmKEImJihFPUIuZ2V0RWxlbWVudEJ5SWQoeSkpJiZhLmNvbnRhaW5zKHAsRSkmJkUuaWQ9PT0KeSlyZXR1cm4gdGEuY2FsbChxLEUpLHF9ZWxzZXtpZihJWzJdKXJldHVybiB0YS5hcHBseShxLHAuZ2V0RWxlbWVudHNCeVRhZ05hbWUoaykpLHE7aWYoKHk9SVszXSkmJnAuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSlyZXR1cm4gdGEuYXBwbHkocSxwLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoeSkpLHF9aWYoIShZW2srIiAiXXx8a2EmJmthLnRlc3QoaykpKXtpZih5PWssQj1wLDE9PT1KJiYodmIudGVzdChrKXx8SGEudGVzdChrKSkpeyhCPWRjLnRlc3QoaykmJmwocC5wYXJlbnROb2RlKXx8cCk9PXAmJk4uc2NvcGV8fCgoQT1wLmdldEF0dHJpYnV0ZSgiaWQiKSk\/QT1kLmVzY2FwZVNlbGVjdG9yKEEpOnAuc2V0QXR0cmlidXRlKCJpZCIsQT1XKSk7Zm9yKEo9KHk9cihrKSkubGVuZ3RoO0otLTspeVtKXT0oQT8iIyIrQToiOnNjb3BlIikrIiAiK3ooeVtKXSk7eT15LmpvaW4oIiwiKX10cnl7cmV0dXJuIHRhLmFwcGx5KHEsQi5xdWVyeVNlbGVjdG9yQWxsKHkpKSxxfWNhdGNoKFIpe1koaywKITApfWZpbmFsbHl7QT09PVcmJnAucmVtb3ZlQXR0cmlidXRlKCJpZCIpfX19cmV0dXJuIFNhKGsucmVwbGFjZSh6YiwiJDEiKSxwLHEsdil9ZnVuY3Rpb24gYigpe3ZhciBrPVtdO3JldHVybiBmdW5jdGlvbiB5KHEsdil7cmV0dXJuIGsucHVzaChxKyIgIik+Sy5jYWNoZUxlbmd0aCYmZGVsZXRlIHlbay5zaGlmdCgpXSx5W3ErIiAiXT12fX1mdW5jdGlvbiBjKGspe3JldHVybiBrW1ddPSEwLGt9ZnVuY3Rpb24gZShrKXt2YXIgcD1aLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0Iik7dHJ5e3JldHVybiEhayhwKX1jYXRjaChxKXtyZXR1cm4hMX1maW5hbGx5e3AucGFyZW50Tm9kZSYmcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHApfX1mdW5jdGlvbiBmKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4gWChwLCJpbnB1dCIpJiZwLnR5cGU9PT1rfX1mdW5jdGlvbiBnKGspe3JldHVybiBmdW5jdGlvbihwKXtyZXR1cm4oWChwLCJpbnB1dCIpfHxYKHAsImJ1dHRvbiIpKSYmcC50eXBlPT09Cmt9fWZ1bmN0aW9uIGgoayl7cmV0dXJuIGZ1bmN0aW9uKHApe3JldHVybiJmb3JtImluIHA\/cC5wYXJlbnROb2RlJiYhMT09PXAuZGlzYWJsZWQ\/ImxhYmVsImluIHA\/ImxhYmVsImluIHAucGFyZW50Tm9kZT9wLnBhcmVudE5vZGUuZGlzYWJsZWQ9PT1rOnAuZGlzYWJsZWQ9PT1rOnAuaXNEaXNhYmxlZD09PWt8fHAuaXNEaXNhYmxlZCE9PSFrJiZiZChwKT09PWs6cC5kaXNhYmxlZD09PWs6ImxhYmVsImluIHAmJnAuZGlzYWJsZWQ9PT1rfX1mdW5jdGlvbiBtKGspe3JldHVybiBjKGZ1bmN0aW9uKHApe3JldHVybiBwPStwLGMoZnVuY3Rpb24ocSx2KXtmb3IodmFyIHksRT1rKFtdLHEubGVuZ3RoLHApLEE9RS5sZW5ndGg7QS0tOylxW3k9RVtBXV0mJihxW3ldPSEodlt5XT1xW3ldKSl9KX0pfWZ1bmN0aW9uIGwoayl7cmV0dXJuIGsmJiJ1bmRlZmluZWQiIT10eXBlb2Ygay5nZXRFbGVtZW50c0J5VGFnTmFtZSYma31mdW5jdGlvbiB0KGspe3ZhciBwO2s9az9rLm93bmVyRG9jdW1lbnR8fAprOlJhO3JldHVybiBrIT1aJiY5PT09ay5ub2RlVHlwZSYmay5kb2N1bWVudEVsZW1lbnQmJihyYT0oWj1rKS5kb2N1bWVudEVsZW1lbnQsdmE9IWQuaXNYTUxEb2MoWiksTWE9cmEubWF0Y2hlc3x8cmEud2Via2l0TWF0Y2hlc1NlbGVjdG9yfHxyYS5tc01hdGNoZXNTZWxlY3RvcixSYSE9WiYmKHA9Wi5kZWZhdWx0VmlldykmJnAudG9wIT09cCYmcC5hZGRFdmVudExpc3RlbmVyKCJ1bmxvYWQiLGNkKSxOLmdldEJ5SWQ9ZShmdW5jdGlvbihxKXtyZXR1cm4gcmEuYXBwZW5kQ2hpbGQocSkuaWQ9ZC5leHBhbmRvLCFaLmdldEVsZW1lbnRzQnlOYW1lfHwhWi5nZXRFbGVtZW50c0J5TmFtZShkLmV4cGFuZG8pLmxlbmd0aH0pLE4uZGlzY29ubmVjdGVkTWF0Y2g9ZShmdW5jdGlvbihxKXtyZXR1cm4gTWEuY2FsbChxLCIqIil9KSxOLnNjb3BlPWUoZnVuY3Rpb24oKXtyZXR1cm4gWi5xdWVyeVNlbGVjdG9yQWxsKCI6c2NvcGUiKX0pLE4uY3NzSGFzPWUoZnVuY3Rpb24oKXt0cnl7cmV0dXJuIFoucXVlcnlTZWxlY3RvcigiOmhhcygqLDpqcWZha2UpIiksCiExfWNhdGNoKHEpe3JldHVybiEwfX0pLE4uZ2V0QnlJZD8oSy5maWx0ZXIuSUQ9ZnVuY3Rpb24ocSl7dmFyIHY9cS5yZXBsYWNlKFRhLFVhKTtyZXR1cm4gZnVuY3Rpb24oeSl7cmV0dXJuIHkuZ2V0QXR0cmlidXRlKCJpZCIpPT09dn19LEsuZmluZC5JRD1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50QnlJZCYmdmEpcmV0dXJuKHE9di5nZXRFbGVtZW50QnlJZChxKSk\/W3FdOltdfSk6KEsuZmlsdGVyLklEPWZ1bmN0aW9uKHEpe3ZhciB2PXEucmVwbGFjZShUYSxVYSk7cmV0dXJuIGZ1bmN0aW9uKHkpe3JldHVybih5PSJ1bmRlZmluZWQiIT10eXBlb2YgeS5nZXRBdHRyaWJ1dGVOb2RlJiZ5LmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZ5LnZhbHVlPT09dn19LEsuZmluZC5JRD1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50QnlJZCYmdmEpe3ZhciB5LEU9di5nZXRFbGVtZW50QnlJZChxKTtpZihFKXtpZigoeT0KRS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmeS52YWx1ZT09PXEpcmV0dXJuW0VdO3ZhciBBPXYuZ2V0RWxlbWVudHNCeU5hbWUocSk7Zm9yKHY9MDtFPUFbdisrXTspaWYoKHk9RS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpKSYmeS52YWx1ZT09PXEpcmV0dXJuW0VdfXJldHVybltdfX0pLEsuZmluZC5UQUc9ZnVuY3Rpb24ocSx2KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHYuZ2V0RWxlbWVudHNCeVRhZ05hbWU\/di5nZXRFbGVtZW50c0J5VGFnTmFtZShxKTp2LnF1ZXJ5U2VsZWN0b3JBbGwocSl9LEsuZmluZC5DTEFTUz1mdW5jdGlvbihxLHYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2Ygdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZ2YSlyZXR1cm4gdi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKHEpfSxrYT1bXSxlKGZ1bmN0aW9uKHEpe3ZhciB2O3JhLmFwcGVuZENoaWxkKHEpLmlubmVySFRNTD0iPGEgaWQ9JyIrVysiJyBocmVmPScnIGRpc2FibGVkPSdkaXNhYmxlZCc+PC9hPjxzZWxlY3QgaWQ9JyIrClcrIi1cclxcJyBkaXNhYmxlZD0nZGlzYWJsZWQnPjxvcHRpb24gc2VsZWN0ZWQ9Jyc+PC9vcHRpb24+PC9zZWxlY3Q+IjtxLnF1ZXJ5U2VsZWN0b3JBbGwoIltzZWxlY3RlZF0iKS5sZW5ndGh8fGthLnB1c2goIlxcW1tcXHgyMFxcdFxcclxcblxcZl0qKD86dmFsdWV8Y2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQpIik7cS5xdWVyeVNlbGVjdG9yQWxsKCJbaWR+PSIrVysiLV0iKS5sZW5ndGh8fGthLnB1c2goIn49Iik7cS5xdWVyeVNlbGVjdG9yQWxsKCJhIyIrVysiKyoiKS5sZW5ndGh8fGthLnB1c2goIi4jLitbK35dIik7cS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8a2EucHVzaCgiOmNoZWNrZWQiKTsodj1aLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnNldEF0dHJpYnV0ZSgidHlwZSIsCiJoaWRkZW4iKTtxLmFwcGVuZENoaWxkKHYpLnNldEF0dHJpYnV0ZSgibmFtZSIsIkQiKTtyYS5hcHBlbmRDaGlsZChxKS5kaXNhYmxlZD0hMDsyIT09cS5xdWVyeVNlbGVjdG9yQWxsKCI6ZGlzYWJsZWQiKS5sZW5ndGgmJmthLnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIik7KHY9Wi5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCIiKTtxLmFwcGVuZENoaWxkKHYpO3EucXVlcnlTZWxlY3RvckFsbCgiW25hbWU9JyddIikubGVuZ3RofHxrYS5wdXNoKCJcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKm5hbWVbXFx4MjBcXHRcXHJcXG5cXGZdKj1bXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicnfFwiXCIpIil9KSxOLmNzc0hhc3x8a2EucHVzaCgiOmhhcyIpLGthPWthLmxlbmd0aCYmbmV3IFJlZ0V4cChrYS5qb2luKCJ8IikpLGxhPWZ1bmN0aW9uKHEsdil7aWYocT09PXYpcmV0dXJuIGliPSEwLDA7dmFyIHk9IXEuY29tcGFyZURvY3VtZW50UG9zaXRpb24tIXYuY29tcGFyZURvY3VtZW50UG9zaXRpb247CnJldHVybiB5fHwoMSYoeT0ocS5vd25lckRvY3VtZW50fHxxKT09KHYub3duZXJEb2N1bWVudHx8dik\/cS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih2KToxKXx8IU4uc29ydERldGFjaGVkJiZ2LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHEpPT09eT9xPT09Wnx8cS5vd25lckRvY3VtZW50PT1SYSYmYS5jb250YWlucyhSYSxxKT8tMTp2PT09Wnx8di5vd25lckRvY3VtZW50PT1SYSYmYS5jb250YWlucyhSYSx2KT8xOmhhP05hLmNhbGwoaGEscSktTmEuY2FsbChoYSx2KTowOjQmeT8tMToxKX0pLFp9ZnVuY3Rpb24gdygpe31mdW5jdGlvbiByKGsscCl7dmFyIHEsdix5LEUsQSxJO2lmKEE9VmFbaysiICJdKXJldHVybiBwPzA6QS5zbGljZSgwKTtBPWs7dmFyIEI9W107Zm9yKEk9Sy5wcmVGaWx0ZXI7QTspe2ZvcihFIGluIHEmJiEodj1tYS5leGVjKEEpKXx8KHYmJihBPUEuc2xpY2UodlswXS5sZW5ndGgpfHxBKSxCLnB1c2goeT1bXSkpLHE9ITEsKHY9SGEuZXhlYyhBKSkmJihxPQp2LnNoaWZ0KCkseS5wdXNoKHt2YWx1ZTpxLHR5cGU6dlswXS5yZXBsYWNlKHpiLCIgIil9KSxBPUEuc2xpY2UocS5sZW5ndGgpKSxLLmZpbHRlcikhKHY9WWJbRV0uZXhlYyhBKSl8fElbRV0mJiEodj1JW0VdKHYpKXx8KHE9di5zaGlmdCgpLHkucHVzaCh7dmFsdWU6cSx0eXBlOkUsbWF0Y2hlczp2fSksQT1BLnNsaWNlKHEubGVuZ3RoKSk7aWYoIXEpYnJlYWt9cmV0dXJuIHA\/QS5sZW5ndGg6QT9hLmVycm9yKGspOlZhKGssQikuc2xpY2UoMCl9ZnVuY3Rpb24geihrKXtmb3IodmFyIHA9MCxxPWsubGVuZ3RoLHY9IiI7cDxxO3ArKyl2Kz1rW3BdLnZhbHVlO3JldHVybiB2fWZ1bmN0aW9uIEQoayxwLHEpe3ZhciB2PXAuZGlyLHk9cC5uZXh0LEU9eXx8dixBPXEmJiJwYXJlbnROb2RlIj09PUUsST1EYSsrO3JldHVybiBwLmZpcnN0P2Z1bmN0aW9uKEIsSixSKXtmb3IoO0I9Qlt2XTspaWYoMT09PUIubm9kZVR5cGV8fEEpcmV0dXJuIGsoQixKLFIpO3JldHVybiExfTpmdW5jdGlvbihCLApKLFIpe3ZhciBULFYsaWE9W2ZhLEldO2lmKFIpZm9yKDtCPUJbdl07KXtpZigoMT09PUIubm9kZVR5cGV8fEEpJiZrKEIsSixSKSlyZXR1cm4hMH1lbHNlIGZvcig7Qj1CW3ZdOylpZigxPT09Qi5ub2RlVHlwZXx8QSlpZihWPUJbV118fChCW1ddPXt9KSx5JiZYKEIseSkpQj1CW3ZdfHxCO2Vsc2V7aWYoKFQ9VltFXSkmJlRbMF09PT1mYSYmVFsxXT09PUkpcmV0dXJuIGlhWzJdPVRbMl07aWYoKFZbRV09aWEpWzJdPWsoQixKLFIpKXJldHVybiEwfXJldHVybiExfX1mdW5jdGlvbiBGKGspe3JldHVybiAxPGsubGVuZ3RoP2Z1bmN0aW9uKHAscSx2KXtmb3IodmFyIHk9ay5sZW5ndGg7eS0tOylpZigha1t5XShwLHEsdikpcmV0dXJuITE7cmV0dXJuITB9OmtbMF19ZnVuY3Rpb24gTyhrLHAscSx2LHkpe2Zvcih2YXIgRSxBPVtdLEk9MCxCPWsubGVuZ3RoLEo9bnVsbCE9cDtJPEI7SSsrKShFPWtbSV0pJiYocSYmIXEoRSx2LHkpfHwoQS5wdXNoKEUpLEomJnAucHVzaChJKSkpO3JldHVybiBBfQpmdW5jdGlvbiBhYShrLHAscSx2LHksRSl7cmV0dXJuIHYmJiF2W1ddJiYodj1hYSh2KSkseSYmIXlbV10mJih5PWFhKHksRSkpLGMoZnVuY3Rpb24oQSxJLEIsSil7dmFyIFIsVCxWPVtdLGlhPVtdLHBhPUkubGVuZ3RoLG5hO2lmKCEobmE9QSkpe25hPXB8fCIqIjtmb3IodmFyIEVhPUIubm9kZVR5cGU\/W0JdOkIsY2E9W10sQWE9MCxXYT1FYS5sZW5ndGg7QWE8V2E7QWErKylhKG5hLEVhW0FhXSxjYSk7bmE9Y2F9bmE9IWt8fCFBJiZwP25hOk8obmEsVixrLEIsSik7aWYocT9xKG5hLFQ9eXx8KEE\/azpwYXx8dik\/W106SSxCLEopOlQ9bmEsdil7dmFyIEZhPU8oVCxpYSk7dihGYSxbXSxCLEopO2ZvcihCPUZhLmxlbmd0aDtCLS07KShSPUZhW0JdKSYmKFRbaWFbQl1dPSEobmFbaWFbQl1dPVIpKX1pZihBKXtpZih5fHxrKXtpZih5KXtGYT1bXTtmb3IoQj1ULmxlbmd0aDtCLS07KShSPVRbQl0pJiZGYS5wdXNoKG5hW0JdPVIpO3kobnVsbCxUPVtdLEZhLEopfWZvcihCPVQubGVuZ3RoO0ItLTspKFI9ClRbQl0pJiYtMTwoRmE9eT9OYS5jYWxsKEEsUik6VltCXSkmJihBW0ZhXT0hKElbRmFdPVIpKX19ZWxzZSBUPU8oVD09PUk\/VC5zcGxpY2UocGEsVC5sZW5ndGgpOlQpLHk\/eShudWxsLEksVCxKKTp0YS5hcHBseShJLFQpfSl9ZnVuY3Rpb24gR2Eoayl7Zm9yKHZhciBwLHEsdj1rLmxlbmd0aCx5PUsucmVsYXRpdmVba1swXS50eXBlXSxFPXl8fEsucmVsYXRpdmVbIiAiXSxBPXk\/MTowLEk9RChmdW5jdGlvbihSKXtyZXR1cm4gUj09PXB9LEUsITApLEI9RChmdW5jdGlvbihSKXtyZXR1cm4tMTxOYS5jYWxsKHAsUil9LEUsITApLEo9W2Z1bmN0aW9uKFIsVCxWKXtSPSF5JiYoVnx8VCE9Uyl8fCgocD1UKS5ub2RlVHlwZT9JKFIsVCxWKTpCKFIsVCxWKSk7cmV0dXJuIHA9bnVsbCxSfV07QTx2O0ErKylpZihFPUsucmVsYXRpdmVba1tBXS50eXBlXSlKPVtEKEYoSiksRSldO2Vsc2V7aWYoKEU9Sy5maWx0ZXJba1tBXS50eXBlXS5hcHBseShudWxsLGtbQV0ubWF0Y2hlcykpW1ddKXtmb3IocT0KKytBO3E8diYmIUsucmVsYXRpdmVba1txXS50eXBlXTtxKyspO3JldHVybiBhYSgxPEEmJkYoSiksMTxBJiZ6KGsuc2xpY2UoMCxBLTEpLmNvbmNhdCh7dmFsdWU6IiAiPT09a1tBLTJdLnR5cGU\/IioiOiIifSkpLnJlcGxhY2UoemIsIiQxIiksRSxBPHEmJkdhKGsuc2xpY2UoQSxxKSkscTx2JiZHYShrPWsuc2xpY2UocSkpLHE8diYmeihrKSl9Si5wdXNoKEUpfXJldHVybiBGKEopfWZ1bmN0aW9uIHFhKGsscCl7dmFyIHEsdix5LEUsQT1bXSxJPVtdLEI9dWFbaysiICJdO2lmKCFCKXtwfHwocD1yKGspKTtmb3IocT1wLmxlbmd0aDtxLS07KShCPUdhKHBbcV0pKVtXXT9BLnB1c2goQik6SS5wdXNoKEIpOyhCPXVhKGssKHY9MDxBLmxlbmd0aCx5PTA8SS5sZW5ndGgsRT1mdW5jdGlvbihKLFIsVCxWLGlhKXt2YXIgcGEsbmEsRWE9MCxjYT0iMCIsQWE9SiYmW10sV2E9W10sRmE9Uyx1Yz1KfHx5JiZLLmZpbmQuVEFHKCIqIixpYSksdmM9ZmErPW51bGw9PUZhPzE6TWF0aC5yYW5kb20oKXx8Ci4xLGRkPXVjLmxlbmd0aDtmb3IoaWEmJihTPVI9PVp8fFJ8fGlhKTtjYSE9PWRkJiZudWxsIT0ocGE9dWNbY2FdKTtjYSsrKXtpZih5JiZwYSl7dmFyIGVjPTA7Zm9yKFJ8fHBhLm93bmVyRG9jdW1lbnQ9PVp8fCh0KHBhKSxUPSF2YSk7bmE9SVtlYysrXTspaWYobmEocGEsUnx8WixUKSl7dGEuY2FsbChWLHBhKTticmVha31pYSYmKGZhPXZjKX12JiYoKHBhPSFuYSYmcGEpJiZFYS0tLEomJkFhLnB1c2gocGEpKX1pZihFYSs9Y2EsdiYmY2EhPT1FYSl7Zm9yKGVjPTA7bmE9QVtlYysrXTspbmEoQWEsV2EsUixUKTtpZihKKXtpZigwPEVhKWZvcig7Y2EtLTspQWFbY2FdfHxXYVtjYV18fChXYVtjYV09WGMuY2FsbChWKSk7V2E9TyhXYSl9dGEuYXBwbHkoVixXYSk7aWEmJiFKJiYwPFdhLmxlbmd0aCYmMTxFYStBLmxlbmd0aCYmZC51bmlxdWVTb3J0KFYpfXJldHVybiBpYSYmKGZhPXZjLFM9RmEpLEFhfSx2P2MoRSk6RSkpKS5zZWxlY3Rvcj1rfXJldHVybiBCfWZ1bmN0aW9uIFNhKGssCnAscSx2KXt2YXIgeSxFLEEsSSxCLEo9ImZ1bmN0aW9uIj09dHlwZW9mIGsmJmssUj0hdiYmcihrPUouc2VsZWN0b3J8fGspO2lmKHE9cXx8W10sMT09PVIubGVuZ3RoKXtpZigyPChFPVJbMF09UlswXS5zbGljZSgwKSkubGVuZ3RoJiYiSUQiPT09KEE9RVswXSkudHlwZSYmOT09PXAubm9kZVR5cGUmJnZhJiZLLnJlbGF0aXZlW0VbMV0udHlwZV0pe2lmKCEocD0oSy5maW5kLklEKEEubWF0Y2hlc1swXS5yZXBsYWNlKFRhLFVhKSxwKXx8W10pWzBdKSlyZXR1cm4gcTtKJiYocD1wLnBhcmVudE5vZGUpO2s9ay5zbGljZShFLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1mb3IoeT1ZYi5uZWVkc0NvbnRleHQudGVzdChrKT8wOkUubGVuZ3RoO3ktLSYmKEE9RVt5XSwhSy5yZWxhdGl2ZVtJPUEudHlwZV0pOylpZigoQj1LLmZpbmRbSV0pJiYodj1CKEEubWF0Y2hlc1swXS5yZXBsYWNlKFRhLFVhKSxkYy50ZXN0KEVbMF0udHlwZSkmJmwocC5wYXJlbnROb2RlKXx8cCkpKXtpZihFLnNwbGljZSh5LAoxKSwhKGs9di5sZW5ndGgmJnooRSkpKXJldHVybiB0YS5hcHBseShxLHYpLHE7YnJlYWt9fXJldHVybihKfHxxYShrLFIpKSh2LHAsIXZhLHEsIXB8fGRjLnRlc3QoaykmJmwocC5wYXJlbnROb2RlKXx8cCkscX12YXIgUSxLLFMsaGEsaWIsWixyYSx2YSxrYSxNYSx0YT11YixXPWQuZXhwYW5kbyxmYT0wLERhPTAsZGI9YigpLFZhPWIoKSx1YT1iKCksWT1iKCksbGE9ZnVuY3Rpb24oayxwKXtyZXR1cm4gaz09PXAmJihpYj0hMCksMH0sSWE9UmVnRXhwKCJbXFx4MjBcXHRcXHJcXG5cXGZdKyIsImciKSxtYT1SZWdFeHAoIl5bXFx4MjBcXHRcXHJcXG5cXGZdKixbXFx4MjBcXHRcXHJcXG5cXGZdKiIpLEhhPVJlZ0V4cCgiXltcXHgyMFxcdFxcclxcblxcZl0qKFs+K35dfFtcXHgyMFxcdFxcclxcblxcZl0pW1xceDIwXFx0XFxyXFxuXFxmXSoiKSx2Yj1SZWdFeHAoIltcXHgyMFxcdFxcclxcblxcZl18PiIpLGZjPVJlZ0V4cCgiOigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXxcXFtbXFx4MjBcXHRcXHJcXG5cXGZdKigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykoPzpbXFx4MjBcXHRcXHJcXG5cXGZdKihbKl4kfCF+XT89KVtcXHgyMFxcdFxcclxcblxcZl0qKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSl8KVtcXHgyMFxcdFxcclxcblxcZl0qXFxdKSopfC4qKVxcKXwpIiksCmVkPVJlZ0V4cCgiXig\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrJCIpLFliPXtJRDpSZWdFeHAoIl4jKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSIpLENMQVNTOlJlZ0V4cCgiXlxcLigoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykiKSxUQUc6UmVnRXhwKCJeKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrfFsqXSkiKSxBVFRSOlJlZ0V4cCgiXlxcW1tcXHgyMFxcdFxcclxcblxcZl0qKCg\/OlxcXFxbXFxkYS1mQS1GXXsxLDZ9W1xceDIwXFx0XFxyXFxuXFxmXT98XFxcXFteXFxyXFxuXFxmXXxbXFx3LV18W15ceDAwLVxceDdmXSkrKSg\/OltcXHgyMFxcdFxcclxcblxcZl0qKFsqXiR8IX5dPz0pW1xceDIwXFx0XFxyXFxuXFxmXSooPzonKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcInwoKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKXwpW1xceDIwXFx0XFxyXFxuXFxmXSpcXF0iKSwKUFNFVURPOlJlZ0V4cCgiXjooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86XFwoKCgnKCg\/OlxcXFwufFteXFxcXCddKSopJ3xcIigoPzpcXFxcLnxbXlxcXFxcIl0pKilcIil8KCg\/OlxcXFwufFteXFxcXCgpW1xcXV18XFxbW1xceDIwXFx0XFxyXFxuXFxmXSooKD86XFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlx4MDAtXFx4N2ZdKSspKD86W1xceDIwXFx0XFxyXFxuXFxmXSooWypeJHwhfl0\/PSlbXFx4MjBcXHRcXHJcXG5cXGZdKig\/OicoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg\/OlxcXFwufFteXFxcXFwiXSkqKVwifCgoPzpcXFxcW1xcZGEtZkEtRl17MSw2fVtcXHgyMFxcdFxcclxcblxcZl0\/fFxcXFxbXlxcclxcblxcZl18W1xcdy1dfFteXHgwMC1cXHg3Zl0pKykpfClbXFx4MjBcXHRcXHJcXG5cXGZdKlxcXSkqKXwuKilcXCl8KSIpLApDSElMRDpSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg\/OlxcKFtcXHgyMFxcdFxcclxcblxcZl0qKGV2ZW58b2RkfCgoWystXXwpKFxcZCopbnwpW1xceDIwXFx0XFxyXFxuXFxmXSooPzooWystXXwpW1xceDIwXFx0XFxyXFxuXFxmXSooXFxkKyl8KSlbXFx4MjBcXHRcXHJcXG5cXGZdKlxcKXwpIiwiaSIpLGJvb2w6UmVnRXhwKCJeKD86Y2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWQpJCIsImkiKSxuZWVkc0NvbnRleHQ6UmVnRXhwKCJeW1xceDIwXFx0XFxyXFxuXFxmXSpbPit+XXw6KGV2ZW58b2RkfGVxfGd0fGx0fG50aHxmaXJzdHxsYXN0KSg\/OlxcKFtcXHgyMFxcdFxcclxcblxcZl0qKCg\/Oi1cXGQpP1xcZCopW1xceDIwXFx0XFxyXFxuXFxmXSpcXCl8KSg\/PVteLV18JCkiLAoiaSIpfSxmZD0vXig\/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLGdkPS9eaFxkJC9pLGFkPS9eKD86IyhbXHctXSspfChcdyspfFwuKFtcdy1dKykpJC8sZGM9L1srfl0vLFRhPVJlZ0V4cCgiXFxcXFtcXGRhLWZBLUZdezEsNn1bXFx4MjBcXHRcXHJcXG5cXGZdP3xcXFxcKFteXFxyXFxuXFxmXSkiLCJnIiksVWE9ZnVuY3Rpb24oayxwKXtrPSIweCIray5zbGljZSgxKS02NTUzNjtyZXR1cm4gcHx8KDA+az9TdHJpbmcuZnJvbUNoYXJDb2RlKGsrNjU1MzYpOlN0cmluZy5mcm9tQ2hhckNvZGUoaz4+MTB8NTUyOTYsMTAyMyZrfDU2MzIwKSl9LGNkPWZ1bmN0aW9uKCl7dCgpfSxiZD1EKGZ1bmN0aW9uKGspe3JldHVybiEwPT09ay5kaXNhYmxlZCYmWChrLCJmaWVsZHNldCIpfSx7ZGlyOiJwYXJlbnROb2RlIixuZXh0OiJsZWdlbmQifSk7dHJ5e3RhLmFwcGx5KG9hPXlhLmNhbGwoUmEuY2hpbGROb2RlcyksUmEuY2hpbGROb2Rlcyksb2FbUmEuY2hpbGROb2Rlcy5sZW5ndGhdLm5vZGVUeXBlfWNhdGNoKGspe3RhPQp7YXBwbHk6ZnVuY3Rpb24ocCxxKXt1Yi5hcHBseShwLHlhLmNhbGwocSkpfSxjYWxsOmZ1bmN0aW9uKHApe3ViLmFwcGx5KHAseWEuY2FsbChhcmd1bWVudHMsMSkpfX19Zm9yKFEgaW4gYS5tYXRjaGVzPWZ1bmN0aW9uKGsscCl7cmV0dXJuIGEoayxudWxsLG51bGwscCl9LGEubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGsscCl7aWYodChrKSwhKCF2YXx8WVtwKyIgIl18fGthJiZrYS50ZXN0KHApKSl0cnl7dmFyIHE9TWEuY2FsbChrLHApO2lmKHF8fE4uZGlzY29ubmVjdGVkTWF0Y2h8fGsuZG9jdW1lbnQmJjExIT09ay5kb2N1bWVudC5ub2RlVHlwZSlyZXR1cm4gcX1jYXRjaCh2KXtZKHAsITApfXJldHVybiAwPGEocCxaLG51bGwsW2tdKS5sZW5ndGh9LGEuY29udGFpbnM9ZnVuY3Rpb24oayxwKXtyZXR1cm4oay5vd25lckRvY3VtZW50fHxrKSE9WiYmdChrKSxkLmNvbnRhaW5zKGsscCl9LGEuYXR0cj1mdW5jdGlvbihrLHApeyhrLm93bmVyRG9jdW1lbnR8fGspIT1aJiZ0KGspOwp2YXIgcT1LLmF0dHJIYW5kbGVbcC50b0xvd2VyQ2FzZSgpXTtxPXEmJkZiLmNhbGwoSy5hdHRySGFuZGxlLHAudG9Mb3dlckNhc2UoKSk\/cShrLHAsIXZhKTp2b2lkIDA7cmV0dXJuIHZvaWQgMCE9PXE\/cTprLmdldEF0dHJpYnV0ZShwKX0sYS5lcnJvcj1mdW5jdGlvbihrKXt0aHJvdyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIitrKTt9LGQudW5pcXVlU29ydD1mdW5jdGlvbihrKXt2YXIgcCxxPVtdLHY9MCx5PTA7aWYoaWI9IU4uc29ydFN0YWJsZSxoYT0hTi5zb3J0U3RhYmxlJiZ5YS5jYWxsKGssMCksWWMuY2FsbChrLGxhKSxpYil7Zm9yKDtwPWtbeSsrXTspcD09PWtbeV0mJih2PXEucHVzaCh5KSk7Zm9yKDt2LS07KVpjLmNhbGwoayxxW3ZdLDEpfXJldHVybiBoYT1udWxsLGt9LGQuZm4udW5pcXVlU29ydD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhkLnVuaXF1ZVNvcnQoeWEuYXBwbHkodGhpcykpKX0sKEs9ZC5leHByPQp7Y2FjaGVMZW5ndGg6NTAsY3JlYXRlUHNldWRvOmMsbWF0Y2g6WWIsYXR0ckhhbmRsZTp7fSxmaW5kOnt9LHJlbGF0aXZlOnsiPiI6e2RpcjoicGFyZW50Tm9kZSIsZmlyc3Q6ITB9LCIgIjp7ZGlyOiJwYXJlbnROb2RlIn0sIisiOntkaXI6InByZXZpb3VzU2libGluZyIsZmlyc3Q6ITB9LCJ+Ijp7ZGlyOiJwcmV2aW91c1NpYmxpbmcifX0scHJlRmlsdGVyOntBVFRSOmZ1bmN0aW9uKGspe3JldHVybiBrWzFdPWtbMV0ucmVwbGFjZShUYSxVYSksa1szXT0oa1szXXx8a1s0XXx8a1s1XXx8IiIpLnJlcGxhY2UoVGEsVWEpLCJ+PSI9PT1rWzJdJiYoa1szXT0iICIra1szXSsiICIpLGsuc2xpY2UoMCw0KX0sQ0hJTEQ6ZnVuY3Rpb24oayl7cmV0dXJuIGtbMV09a1sxXS50b0xvd2VyQ2FzZSgpLCJudGgiPT09a1sxXS5zbGljZSgwLDMpPyhrWzNdfHxhLmVycm9yKGtbMF0pLGtbNF09KyhrWzRdP2tbNV0rKGtbNl18fDEpOjIqKCJldmVuIj09PWtbM118fCJvZGQiPT09a1szXSkpLGtbNV09Cisoa1s3XStrWzhdfHwib2RkIj09PWtbM10pKTprWzNdJiZhLmVycm9yKGtbMF0pLGt9LFBTRVVETzpmdW5jdGlvbihrKXt2YXIgcCxxPSFrWzZdJiZrWzJdO3JldHVybiBZYi5DSElMRC50ZXN0KGtbMF0pP251bGw6KGtbM10\/a1syXT1rWzRdfHxrWzVdfHwiIjpxJiZmYy50ZXN0KHEpJiYocD1yKHEsITApKSYmKHA9cS5pbmRleE9mKCIpIixxLmxlbmd0aC1wKS1xLmxlbmd0aCkmJihrWzBdPWtbMF0uc2xpY2UoMCxwKSxrWzJdPXEuc2xpY2UoMCxwKSksay5zbGljZSgwLDMpKX19LGZpbHRlcjp7VEFHOmZ1bmN0aW9uKGspe3ZhciBwPWsucmVwbGFjZShUYSxVYSkudG9Mb3dlckNhc2UoKTtyZXR1cm4iKiI9PT1rP2Z1bmN0aW9uKCl7cmV0dXJuITB9OmZ1bmN0aW9uKHEpe3JldHVybiBYKHEscCl9fSxDTEFTUzpmdW5jdGlvbihrKXt2YXIgcD1kYltrKyIgIl07cmV0dXJuIHB8fChwPW5ldyBSZWdFeHAoIihefFtcXHgyMFxcdFxcclxcblxcZl0pIitrKyIoW1xceDIwXFx0XFxyXFxuXFxmXXwkKSIpLApkYihrLGZ1bmN0aW9uKHEpe3JldHVybiBwLnRlc3QoInN0cmluZyI9PXR5cGVvZiBxLmNsYXNzTmFtZSYmcS5jbGFzc05hbWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgcS5nZXRBdHRyaWJ1dGUmJnEuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KSl9LEFUVFI6ZnVuY3Rpb24oayxwLHEpe3JldHVybiBmdW5jdGlvbih2KXt2PWEuYXR0cih2LGspO3JldHVybiBudWxsPT12PyIhPSI9PT1wOiFwfHwodis9IiIsIj0iPT09cD92PT09cToiIT0iPT09cD92IT09cToiXj0iPT09cD9xJiYwPT09di5pbmRleE9mKHEpOiIqPSI9PT1wP3EmJi0xPHYuaW5kZXhPZihxKToiJD0iPT09cD9xJiZ2LnNsaWNlKC1xLmxlbmd0aCk9PT1xOiJ+PSI9PT1wPy0xPCgiICIrdi5yZXBsYWNlKElhLCIgIikrIiAiKS5pbmRleE9mKHEpOiJ8PSI9PT1wJiYodj09PXF8fHYuc2xpY2UoMCxxLmxlbmd0aCsxKT09PXErIi0iKSl9fSxDSElMRDpmdW5jdGlvbihrLHAscSx2LHkpe3ZhciBFPSJudGgiIT09ay5zbGljZSgwLAozKSxBPSJsYXN0IiE9PWsuc2xpY2UoLTQpLEk9Im9mLXR5cGUiPT09cDtyZXR1cm4gMT09PXYmJjA9PT15P2Z1bmN0aW9uKEIpe3JldHVybiEhQi5wYXJlbnROb2RlfTpmdW5jdGlvbihCLEosUil7dmFyIFQsVixpYTtKPUUhPT1BPyJuZXh0U2libGluZyI6InByZXZpb3VzU2libGluZyI7dmFyIHBhPUIucGFyZW50Tm9kZSxuYT1JJiZCLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCksRWE9IVImJiFJLGNhPSExO2lmKHBhKXtpZihFKXtmb3IoO0o7KXtmb3IoVj1CO1Y9VltKXTspaWYoST9YKFYsbmEpOjE9PT1WLm5vZGVUeXBlKXJldHVybiExO3ZhciBBYT1KPSJvbmx5Ij09PWsmJiFBYSYmIm5leHRTaWJsaW5nIn1yZXR1cm4hMH1pZihBYT1bQT9wYS5maXJzdENoaWxkOnBhLmxhc3RDaGlsZF0sQSYmRWEpZm9yKGNhPShpYT0oVD0oUj1wYVtXXXx8KHBhW1ddPXt9KSlba118fFtdKVswXT09PWZhJiZUWzFdKSYmVFsyXSxWPWlhJiZwYS5jaGlsZE5vZGVzW2lhXTtWPSsraWEmJlYmJlZbSl18fAooY2E9aWE9MCl8fEFhLnBvcCgpOyl7aWYoMT09PVYubm9kZVR5cGUmJisrY2EmJlY9PT1CKXtSW2tdPVtmYSxpYSxjYV07YnJlYWt9fWVsc2UgaWYoRWEmJihjYT1pYT0oVD0oQltXXXx8KEJbV109e30pKVtrXXx8W10pWzBdPT09ZmEmJlRbMV0pLCExPT09Y2EpZm9yKDsoVj0rK2lhJiZWJiZWW0pdfHwoY2E9aWE9MCl8fEFhLnBvcCgpKSYmKChJPyFYKFYsbmEpOjEhPT1WLm5vZGVUeXBlKXx8ISsrY2F8fChFYSYmKChSPVZbV118fChWW1ddPXt9KSlba109W2ZhLGNhXSksViE9PUIpKTspO3JldHVybihjYS09eSk9PT12fHwwPT1jYSV2JiYwPD1jYS92fX19LFBTRVVETzpmdW5jdGlvbihrLHApe3ZhciBxLHY9Sy5wc2V1ZG9zW2tdfHxLLnNldEZpbHRlcnNbay50b0xvd2VyQ2FzZSgpXXx8YS5lcnJvcigidW5zdXBwb3J0ZWQgcHNldWRvOiAiK2spO3JldHVybiB2W1ddP3YocCk6MTx2Lmxlbmd0aD8ocT1bayxrLCIiLHBdLEsuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eShrLnRvTG93ZXJDYXNlKCkpPwpjKGZ1bmN0aW9uKHksRSl7Zm9yKHZhciBBLEk9dih5LHApLEI9SS5sZW5ndGg7Qi0tOyl5W0E9TmEuY2FsbCh5LElbQl0pXT0hKEVbQV09SVtCXSl9KTpmdW5jdGlvbih5KXtyZXR1cm4gdih5LDAscSl9KTp2fX0scHNldWRvczp7bm90OmMoZnVuY3Rpb24oayl7dmFyIHA9W10scT1bXSx2PXFhKGsucmVwbGFjZSh6YiwiJDEiKSk7cmV0dXJuIHZbV10\/YyhmdW5jdGlvbih5LEUsQSxJKXt2YXIgQjtBPXYoeSxudWxsLEksW10pO2ZvcihJPXkubGVuZ3RoO0ktLTspKEI9QVtJXSkmJih5W0ldPSEoRVtJXT1CKSl9KTpmdW5jdGlvbih5LEUsQSl7cmV0dXJuIHBbMF09eSx2KHAsbnVsbCxBLHEpLHBbMF09bnVsbCwhcS5wb3AoKX19KSxoYXM6YyhmdW5jdGlvbihrKXtyZXR1cm4gZnVuY3Rpb24ocCl7cmV0dXJuIDA8YShrLHApLmxlbmd0aH19KSxjb250YWluczpjKGZ1bmN0aW9uKGspe3JldHVybiBrPWsucmVwbGFjZShUYSxVYSksZnVuY3Rpb24ocCl7cmV0dXJuLTE8KHAudGV4dENvbnRlbnR8fApkLnRleHQocCkpLmluZGV4T2Yoayl9fSksbGFuZzpjKGZ1bmN0aW9uKGspe3JldHVybiBlZC50ZXN0KGt8fCIiKXx8YS5lcnJvcigidW5zdXBwb3J0ZWQgbGFuZzogIitrKSxrPWsucmVwbGFjZShUYSxVYSkudG9Mb3dlckNhc2UoKSxmdW5jdGlvbihwKXt2YXIgcTtkbyBpZihxPXZhP3AubGFuZzpwLmdldEF0dHJpYnV0ZSgieG1sOmxhbmciKXx8cC5nZXRBdHRyaWJ1dGUoImxhbmciKSlyZXR1cm4ocT1xLnRvTG93ZXJDYXNlKCkpPT09a3x8MD09PXEuaW5kZXhPZihrKyItIik7d2hpbGUoKHA9cC5wYXJlbnROb2RlKSYmMT09PXAubm9kZVR5cGUpO3JldHVybiExfX0pLHRhcmdldDpmdW5jdGlvbihrKXt2YXIgcD1uLmxvY2F0aW9uJiZuLmxvY2F0aW9uLmhhc2g7cmV0dXJuIHAmJnAuc2xpY2UoMSk9PT1rLmlkfSxyb290OmZ1bmN0aW9uKGspe3JldHVybiBrPT09cmF9LGZvY3VzOmZ1bmN0aW9uKGspe2E6e3RyeXt2YXIgcD1aLmFjdGl2ZUVsZW1lbnQ7YnJlYWsgYX1jYXRjaChxKXt9cD0Kdm9pZCAwfXJldHVybiBrPT09cCYmWi5oYXNGb2N1cygpJiYhIShrLnR5cGV8fGsuaHJlZnx8fmsudGFiSW5kZXgpfSxlbmFibGVkOmgoITEpLGRpc2FibGVkOmgoITApLGNoZWNrZWQ6ZnVuY3Rpb24oayl7cmV0dXJuIFgoaywiaW5wdXQiKSYmISFrLmNoZWNrZWR8fFgoaywib3B0aW9uIikmJiEhay5zZWxlY3RlZH0sc2VsZWN0ZWQ6ZnVuY3Rpb24oayl7cmV0dXJuIGsucGFyZW50Tm9kZSYmay5wYXJlbnROb2RlLnNlbGVjdGVkSW5kZXgsITA9PT1rLnNlbGVjdGVkfSxlbXB0eTpmdW5jdGlvbihrKXtmb3Ioaz1rLmZpcnN0Q2hpbGQ7aztrPWsubmV4dFNpYmxpbmcpaWYoNj5rLm5vZGVUeXBlKXJldHVybiExO3JldHVybiEwfSxwYXJlbnQ6ZnVuY3Rpb24oayl7cmV0dXJuIUsucHNldWRvcy5lbXB0eShrKX0saGVhZGVyOmZ1bmN0aW9uKGspe3JldHVybiBnZC50ZXN0KGsubm9kZU5hbWUpfSxpbnB1dDpmdW5jdGlvbihrKXtyZXR1cm4gZmQudGVzdChrLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGspe3JldHVybiBYKGssCiJpbnB1dCIpJiYiYnV0dG9uIj09PWsudHlwZXx8WChrLCJidXR0b24iKX0sdGV4dDpmdW5jdGlvbihrKXt2YXIgcDtyZXR1cm4gWChrLCJpbnB1dCIpJiYidGV4dCI9PT1rLnR5cGUmJihudWxsPT0ocD1rLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09cC50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6bShmdW5jdGlvbigpe3JldHVyblswXX0pLGxhc3Q6bShmdW5jdGlvbihrLHApe3JldHVybltwLTFdfSksZXE6bShmdW5jdGlvbihrLHAscSl7cmV0dXJuWzA+cT9xK3A6cV19KSxldmVuOm0oZnVuY3Rpb24oayxwKXtmb3IodmFyIHE9MDtxPHA7cSs9MilrLnB1c2gocSk7cmV0dXJuIGt9KSxvZGQ6bShmdW5jdGlvbihrLHApe2Zvcih2YXIgcT0xO3E8cDtxKz0yKWsucHVzaChxKTtyZXR1cm4ga30pLGx0Om0oZnVuY3Rpb24oayxwLHEpe2ZvcihwPTA+cT9xK3A6cDxxP3A6cTswPD0tLXA7KWsucHVzaChwKTtyZXR1cm4ga30pLGd0Om0oZnVuY3Rpb24oayxwLHEpe2ZvcihxPTA+cT8KcStwOnE7KytxPHA7KWsucHVzaChxKTtyZXR1cm4ga30pfX0pLnBzZXVkb3MubnRoPUsucHNldWRvcy5lcSx7cmFkaW86ITAsY2hlY2tib3g6ITAsZmlsZTohMCxwYXNzd29yZDohMCxpbWFnZTohMH0pSy5wc2V1ZG9zW1FdPWYoUSk7Zm9yKFEgaW57c3VibWl0OiEwLHJlc2V0OiEwfSlLLnBzZXVkb3NbUV09ZyhRKTt3LnByb3RvdHlwZT1LLmZpbHRlcnM9Sy5wc2V1ZG9zO0suc2V0RmlsdGVycz1uZXcgdztOLnNvcnRTdGFibGU9Vy5zcGxpdCgiIikuc29ydChsYSkuam9pbigiIik9PT1XO3QoKTtOLnNvcnREZXRhY2hlZD1lKGZ1bmN0aW9uKGspe3JldHVybiAxJmsuY29tcGFyZURvY3VtZW50UG9zaXRpb24oWi5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpKX0pO2QuZmluZD1hO2QuZXhwclsiOiJdPWQuZXhwci5wc2V1ZG9zO2QudW5pcXVlPWQudW5pcXVlU29ydDthLmNvbXBpbGU9cWE7YS5zZWxlY3Q9U2E7YS5zZXREb2N1bWVudD10O2EuZXNjYXBlPWQuZXNjYXBlU2VsZWN0b3I7CmEuZ2V0VGV4dD1kLnRleHQ7YS5pc1hNTD1kLmlzWE1MRG9jO2Euc2VsZWN0b3JzPWQuZXhwcjthLnN1cHBvcnQ9ZC5zdXBwb3J0O2EudW5pcXVlU29ydD1kLnVuaXF1ZVNvcnR9KCk7dmFyIHdiPWZ1bmN0aW9uKGEsYixjKXtmb3IodmFyIGU9W10sZj12b2lkIDAhPT1jOyhhPWFbYl0pJiY5IT09YS5ub2RlVHlwZTspaWYoMT09PWEubm9kZVR5cGUpe2lmKGYmJmQoYSkuaXMoYykpYnJlYWs7ZS5wdXNoKGEpfXJldHVybiBlfSx3Yz1mdW5jdGlvbihhLGIpe2Zvcih2YXIgYz1bXTthO2E9YS5uZXh0U2libGluZykxPT09YS5ub2RlVHlwZSYmYSE9PWImJmMucHVzaChhKTtyZXR1cm4gY30seGM9ZC5leHByLm1hdGNoLm5lZWRzQ29udGV4dCx5Yz0vXjwoW2Etel1bXlwvXDA+Olx4MjBcdFxyXG5cZl0qKVtceDIwXHRcclxuXGZdKlwvPz4oPzo8XC9cMT58KSQvaTtkLmZpbHRlcj1mdW5jdGlvbihhLGIsYyl7dmFyIGU9YlswXTtyZXR1cm4gYyYmKGE9Ijpub3QoIithKyIpIiksMT09PWIubGVuZ3RoJiYKMT09PWUubm9kZVR5cGU\/ZC5maW5kLm1hdGNoZXNTZWxlY3RvcihlLGEpP1tlXTpbXTpkLmZpbmQubWF0Y2hlcyhhLGQuZ3JlcChiLGZ1bmN0aW9uKGYpe3JldHVybiAxPT09Zi5ub2RlVHlwZX0pKX07ZC5mbi5leHRlbmQoe2ZpbmQ6ZnVuY3Rpb24oYSl7dmFyIGIsYz10aGlzLmxlbmd0aCxlPXRoaXM7aWYoInN0cmluZyIhPXR5cGVvZiBhKXJldHVybiB0aGlzLnB1c2hTdGFjayhkKGEpLmZpbHRlcihmdW5jdGlvbigpe2ZvcihiPTA7YjxjO2IrKylpZihkLmNvbnRhaW5zKGVbYl0sdGhpcykpcmV0dXJuITB9KSk7dmFyIGY9dGhpcy5wdXNoU3RhY2soW10pO2ZvcihiPTA7YjxjO2IrKylkLmZpbmQoYSxlW2JdLGYpO3JldHVybiAxPGM\/ZC51bmlxdWVTb3J0KGYpOmZ9LGZpbHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soamEodGhpcyxhfHxbXSwhMSkpfSxub3Q6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKGphKHRoaXMsYXx8W10sITApKX0saXM6ZnVuY3Rpb24oYSl7cmV0dXJuISFqYSh0aGlzLAoic3RyaW5nIj09dHlwZW9mIGEmJnhjLnRlc3QoYSk\/ZChhKTphfHxbXSwhMSkubGVuZ3RofX0pO3ZhciBoZD0vXig\/OlxzKig8W1x3XFddKz4pW14+XSp8IyhbXHctXSspKSQvOyhkLmZuLmluaXQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoIWEpcmV0dXJuIHRoaXM7aWYoYz1jfHxpZCwic3RyaW5nIj09dHlwZW9mIGEpe2lmKCEoZT0iPCI9PT1hWzBdJiYiPiI9PT1hW2EubGVuZ3RoLTFdJiYzPD1hLmxlbmd0aD9bbnVsbCxhLG51bGxdOmhkLmV4ZWMoYSkpfHwhZVsxXSYmYilyZXR1cm4hYnx8Yi5qcXVlcnk\/KGJ8fGMpLmZpbmQoYSk6dGhpcy5jb25zdHJ1Y3RvcihiKS5maW5kKGEpO2lmKGVbMV0pe2lmKGI9YiBpbnN0YW5jZW9mIGQ\/YlswXTpiLGQubWVyZ2UodGhpcyxkLnBhcnNlSFRNTChlWzFdLGImJmIubm9kZVR5cGU\/Yi5vd25lckRvY3VtZW50fHxiOkwsITApKSx5Yy50ZXN0KGVbMV0pJiZkLmlzUGxhaW5PYmplY3QoYikpZm9yKGUgaW4gYilNKHRoaXNbZV0pP3RoaXNbZV0oYltlXSk6CnRoaXMuYXR0cihlLGJbZV0pO3JldHVybiB0aGlzfXJldHVybihmPUwuZ2V0RWxlbWVudEJ5SWQoZVsyXSkpJiYodGhpc1swXT1mLHRoaXMubGVuZ3RoPTEpLHRoaXN9cmV0dXJuIGEubm9kZVR5cGU\/KHRoaXNbMF09YSx0aGlzLmxlbmd0aD0xLHRoaXMpOk0oYSk\/dm9pZCAwIT09Yy5yZWFkeT9jLnJlYWR5KGEpOmEoZCk6ZC5tYWtlQXJyYXkoYSx0aGlzKX0pLnByb3RvdHlwZT1kLmZuO3ZhciBpZD1kKEwpLGpkPS9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLGtkPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O2QuZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oYSl7dmFyIGI9ZChhLHRoaXMpLGM9Yi5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxjO2UrKylpZihkLmNvbnRhaW5zKHRoaXMsYltlXSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbihhLGIpe3ZhciBjLGU9MCxmPXRoaXMubGVuZ3RoLApnPVtdLGg9InN0cmluZyIhPXR5cGVvZiBhJiZkKGEpO2lmKCF4Yy50ZXN0KGEpKWZvcig7ZTxmO2UrKylmb3IoYz10aGlzW2VdO2MmJmMhPT1iO2M9Yy5wYXJlbnROb2RlKWlmKDExPmMubm9kZVR5cGUmJihoPy0xPGguaW5kZXgoYyk6MT09PWMubm9kZVR5cGUmJmQuZmluZC5tYXRjaGVzU2VsZWN0b3IoYyxhKSkpe2cucHVzaChjKTticmVha31yZXR1cm4gdGhpcy5wdXNoU3RhY2soMTxnLmxlbmd0aD9kLnVuaXF1ZVNvcnQoZyk6Zyl9LGluZGV4OmZ1bmN0aW9uKGEpe3JldHVybiBhPyJzdHJpbmciPT10eXBlb2YgYT9OYS5jYWxsKGQoYSksdGhpc1swXSk6TmEuY2FsbCh0aGlzLGEuanF1ZXJ5P2FbMF06YSk6dGhpc1swXSYmdGhpc1swXS5wYXJlbnROb2RlP3RoaXMuZmlyc3QoKS5wcmV2QWxsKCkubGVuZ3RoOi0xfSxhZGQ6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZC51bmlxdWVTb3J0KGQubWVyZ2UodGhpcy5nZXQoKSxkKGEsYikpKSl9LGFkZEJhY2s6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuYWRkKG51bGw9PQphP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGEpKX19KTtkLmVhY2goe3BhcmVudDpmdW5jdGlvbihhKXtyZXR1cm4oYT1hLnBhcmVudE5vZGUpJiYxMSE9PWEubm9kZVR5cGU\/YTpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiB3YihhLCJwYXJlbnROb2RlIil9LHBhcmVudHNVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHdiKGEsInBhcmVudE5vZGUiLGMpfSxuZXh0OmZ1bmN0aW9uKGEpe3JldHVybiBsYihhLCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKGEpe3JldHVybiBsYihhLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihhKXtyZXR1cm4gd2IoYSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihhKXtyZXR1cm4gd2IoYSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHdiKGEsIm5leHRTaWJsaW5nIixjKX0scHJldlVudGlsOmZ1bmN0aW9uKGEsYiwKYyl7cmV0dXJuIHdiKGEsInByZXZpb3VzU2libGluZyIsYyl9LHNpYmxpbmdzOmZ1bmN0aW9uKGEpe3JldHVybiB3YygoYS5wYXJlbnROb2RlfHx7fSkuZmlyc3RDaGlsZCxhKX0sY2hpbGRyZW46ZnVuY3Rpb24oYSl7cmV0dXJuIHdjKGEuZmlyc3RDaGlsZCl9LGNvbnRlbnRzOmZ1bmN0aW9uKGEpe3JldHVybiBudWxsIT1hLmNvbnRlbnREb2N1bWVudCYmc2MoYS5jb250ZW50RG9jdW1lbnQpP2EuY29udGVudERvY3VtZW50OihYKGEsInRlbXBsYXRlIikmJihhPWEuY29udGVudHx8YSksZC5tZXJnZShbXSxhLmNoaWxkTm9kZXMpKX19LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjLGUpe3ZhciBmPWQubWFwKHRoaXMsYixjKTtyZXR1cm4iVW50aWwiIT09YS5zbGljZSgtNSkmJihlPWMpLGUmJiJzdHJpbmciPT10eXBlb2YgZSYmKGY9ZC5maWx0ZXIoZSxmKSksMTx0aGlzLmxlbmd0aCYmKGtkW2FdfHxkLnVuaXF1ZVNvcnQoZiksamQudGVzdChhKSYmZi5yZXZlcnNlKCkpLAp0aGlzLnB1c2hTdGFjayhmKX19KTt2YXIgTGE9L1teXHgyMFx0XHJcblxmXSsvZztkLkNhbGxiYWNrcz1mdW5jdGlvbihhKXt2YXIgYixjO2E9InN0cmluZyI9PXR5cGVvZiBhPyhiPWEsYz17fSxkLmVhY2goYi5tYXRjaChMYSl8fFtdLGZ1bmN0aW9uKHosRCl7Y1tEXT0hMH0pLGMpOmQuZXh0ZW5kKHt9LGEpO3ZhciBlLGYsZyxoLG09W10sbD1bXSx0PS0xLHc9ZnVuY3Rpb24oKXtoPWh8fGEub25jZTtmb3IoZz1lPSEwO2wubGVuZ3RoO3Q9LTEpZm9yKGY9bC5zaGlmdCgpOysrdDxtLmxlbmd0aDspITE9PT1tW3RdLmFwcGx5KGZbMF0sZlsxXSkmJmEuc3RvcE9uRmFsc2UmJih0PW0ubGVuZ3RoLGY9ITEpO2EubWVtb3J5fHwoZj0hMSk7ZT0hMTtoJiYobT1mP1tdOiIiKX0scj17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIG0mJihmJiYhZSYmKHQ9bS5sZW5ndGgtMSxsLnB1c2goZikpLGZ1bmN0aW9uIEYoRCl7ZC5lYWNoKEQsZnVuY3Rpb24oTyxhYSl7TShhYSk\/YS51bmlxdWUmJnIuaGFzKGFhKXx8Cm0ucHVzaChhYSk6YWEmJmFhLmxlbmd0aCYmInN0cmluZyIhPT1VKGFhKSYmRihhYSl9KX0oYXJndW1lbnRzKSxmJiYhZSYmdygpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbih6LEQpe2Zvcih2YXIgRjstMTwoRj1kLmluQXJyYXkoRCxtLEYpKTspbS5zcGxpY2UoRiwxKSxGPD10JiZ0LS19KSx0aGlzfSxoYXM6ZnVuY3Rpb24oeil7cmV0dXJuIHo\/LTE8ZC5pbkFycmF5KHosbSk6MDxtLmxlbmd0aH0sZW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gbSYmKG09W10pLHRoaXN9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gaD1sPVtdLG09Zj0iIix0aGlzfSxkaXNhYmxlZDpmdW5jdGlvbigpe3JldHVybiFtfSxsb2NrOmZ1bmN0aW9uKCl7cmV0dXJuIGg9bD1bXSxmfHxlfHwobT1mPSIiKSx0aGlzfSxsb2NrZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWh9LGZpcmVXaXRoOmZ1bmN0aW9uKHosRCl7cmV0dXJuIGh8fChEPVt6LChEPUR8fApbXSkuc2xpY2U\/RC5zbGljZSgpOkRdLGwucHVzaChEKSxlfHx3KCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gci5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIWd9fTtyZXR1cm4gcn07ZC5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGEpe3ZhciBiPVtbIm5vdGlmeSIsInByb2dyZXNzIixkLkNhbGxiYWNrcygibWVtb3J5IiksZC5DYWxsYmFja3MoIm1lbW9yeSIpLDJdLFsicmVzb2x2ZSIsImRvbmUiLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLGQuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDAsInJlc29sdmVkIl0sWyJyZWplY3QiLCJmYWlsIixkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwxLCJyZWplY3RlZCJdXSxjPSJwZW5kaW5nIixlPXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBjfSxhbHdheXM6ZnVuY3Rpb24oKXtyZXR1cm4gZi5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLAp0aGlzfSwiY2F0Y2giOmZ1bmN0aW9uKGcpe3JldHVybiBlLnRoZW4obnVsbCxnKX0scGlwZTpmdW5jdGlvbigpe3ZhciBnPWFyZ3VtZW50cztyZXR1cm4gZC5EZWZlcnJlZChmdW5jdGlvbihoKXtkLmVhY2goYixmdW5jdGlvbihtLGwpe3ZhciB0PU0oZ1tsWzRdXSkmJmdbbFs0XV07ZltsWzFdXShmdW5jdGlvbigpe3ZhciB3PXQmJnQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3cmJk0ody5wcm9taXNlKT93LnByb21pc2UoKS5wcm9ncmVzcyhoLm5vdGlmeSkuZG9uZShoLnJlc29sdmUpLmZhaWwoaC5yZWplY3QpOmhbbFswXSsiV2l0aCJdKHRoaXMsdD9bd106YXJndW1lbnRzKX0pfSk7Zz1udWxsfSkucHJvbWlzZSgpfSx0aGVuOmZ1bmN0aW9uKGcsaCxtKXtmdW5jdGlvbiBsKHcscix6LEQpe3JldHVybiBmdW5jdGlvbigpe3ZhciBGPXRoaXMsTz1hcmd1bWVudHMsYWE9ZnVuY3Rpb24oKXt2YXIgcWE7aWYoISh3PHQpKXtpZigocWE9ei5hcHBseShGLE8pKT09PXIucHJvbWlzZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvbiIpOwp2YXIgU2E9cWEmJigib2JqZWN0Ij09dHlwZW9mIHFhfHwiZnVuY3Rpb24iPT10eXBlb2YgcWEpJiZxYS50aGVuO00oU2EpP0Q\/U2EuY2FsbChxYSxsKHQscixZYSxEKSxsKHQscixaYSxEKSk6KHQrKyxTYS5jYWxsKHFhLGwodCxyLFlhLEQpLGwodCxyLFphLEQpLGwodCxyLFlhLHIubm90aWZ5V2l0aCkpKTooeiE9PVlhJiYoRj12b2lkIDAsTz1bcWFdKSwoRHx8ci5yZXNvbHZlV2l0aCkoRixPKSl9fSxHYT1EP2FhOmZ1bmN0aW9uKCl7dHJ5e2FhKCl9Y2F0Y2gocWEpe2QuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayYmZC5EZWZlcnJlZC5leGNlcHRpb25Ib29rKHFhLEdhLmVycm9yKSx0PD13KzEmJih6IT09WmEmJihGPXZvaWQgMCxPPVtxYV0pLHIucmVqZWN0V2l0aChGLE8pKX19O3c\/R2EoKTooZC5EZWZlcnJlZC5nZXRFcnJvckhvb2s\/R2EuZXJyb3I9ZC5EZWZlcnJlZC5nZXRFcnJvckhvb2soKTpkLkRlZmVycmVkLmdldFN0YWNrSG9vayYmKEdhLmVycm9yPWQuRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLApuLnNldFRpbWVvdXQoR2EpKX19dmFyIHQ9MDtyZXR1cm4gZC5EZWZlcnJlZChmdW5jdGlvbih3KXtiWzBdWzNdLmFkZChsKDAsdyxNKG0pP206WWEsdy5ub3RpZnlXaXRoKSk7YlsxXVszXS5hZGQobCgwLHcsTShnKT9nOllhKSk7YlsyXVszXS5hZGQobCgwLHcsTShoKT9oOlphKSl9KS5wcm9taXNlKCl9LHByb21pc2U6ZnVuY3Rpb24oZyl7cmV0dXJuIG51bGwhPWc\/ZC5leHRlbmQoZyxlKTplfX0sZj17fTtyZXR1cm4gZC5lYWNoKGIsZnVuY3Rpb24oZyxoKXt2YXIgbT1oWzJdLGw9aFs1XTtlW2hbMV1dPW0uYWRkO2wmJm0uYWRkKGZ1bmN0aW9uKCl7Yz1sfSxiWzMtZ11bMl0uZGlzYWJsZSxiWzMtZ11bM10uZGlzYWJsZSxiWzBdWzJdLmxvY2ssYlswXVszXS5sb2NrKTttLmFkZChoWzNdLmZpcmUpO2ZbaFswXV09ZnVuY3Rpb24oKXtyZXR1cm4gZltoWzBdKyJXaXRoIl0odGhpcz09PWY\/dm9pZCAwOnRoaXMsYXJndW1lbnRzKSx0aGlzfTtmW2hbMF0rIldpdGgiXT1tLmZpcmVXaXRofSksCmUucHJvbWlzZShmKSxhJiZhLmNhbGwoZixmKSxmfSx3aGVuOmZ1bmN0aW9uKGEpe3ZhciBiPWFyZ3VtZW50cy5sZW5ndGgsYz1iLGU9QXJyYXkoYyksZj15YS5jYWxsKGFyZ3VtZW50cyksZz1kLkRlZmVycmVkKCksaD1mdW5jdGlvbihtKXtyZXR1cm4gZnVuY3Rpb24obCl7ZVttXT10aGlzO2ZbbV09MTxhcmd1bWVudHMubGVuZ3RoP3lhLmNhbGwoYXJndW1lbnRzKTpsOy0tYnx8Zy5yZXNvbHZlV2l0aChlLGYpfX07aWYoMT49YiYmKG1iKGEsZy5kb25lKGgoYykpLnJlc29sdmUsZy5yZWplY3QsIWIpLCJwZW5kaW5nIj09PWcuc3RhdGUoKXx8TShmW2NdJiZmW2NdLnRoZW4pKSlyZXR1cm4gZy50aGVuKCk7Zm9yKDtjLS07KW1iKGZbY10saChjKSxnLnJlamVjdCk7cmV0dXJuIGcucHJvbWlzZSgpfX0pO3ZhciBsZD0vXihFdmFsfEludGVybmFsfFJhbmdlfFJlZmVyZW5jZXxTeW50YXh8VHlwZXxVUkkpRXJyb3IkLztkLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2s9ZnVuY3Rpb24oYSxiKXtuLmNvbnNvbGUmJgpuLmNvbnNvbGUud2FybiYmYSYmbGQudGVzdChhLm5hbWUpJiZuLmNvbnNvbGUud2FybigialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogIithLm1lc3NhZ2UsYS5zdGFjayxiKX07ZC5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbihhKXtuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBhO30pfTt2YXIgZ2M9ZC5EZWZlcnJlZCgpO2QuZm4ucmVhZHk9ZnVuY3Rpb24oYSl7cmV0dXJuIGdjLnRoZW4oYSlbImNhdGNoIl0oZnVuY3Rpb24oYil7ZC5yZWFkeUV4Y2VwdGlvbihiKX0pLHRoaXN9O2QuZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKGEpeyghMD09PWE\/LS1kLnJlYWR5V2FpdDpkLmlzUmVhZHkpfHwoZC5pc1JlYWR5PSEwKSE9PWEmJjA8LS1kLnJlYWR5V2FpdHx8Z2MucmVzb2x2ZVdpdGgoTCxbZF0pfX0pO2QucmVhZHkudGhlbj1nYy50aGVuOyJjb21wbGV0ZSI9PT1MLnJlYWR5U3RhdGV8fCJsb2FkaW5nIiE9PUwucmVhZHlTdGF0ZSYmIUwuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsPwpuLnNldFRpbWVvdXQoZC5yZWFkeSk6KEwuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsT2EpLG4uYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsT2EpKTt2YXIgWGE9ZnVuY3Rpb24oYSxiLGMsZSxmLGcsaCl7dmFyIG09MCxsPWEubGVuZ3RoLHQ9bnVsbD09YztpZigib2JqZWN0Ij09PVUoYykpZm9yKG0gaW4gZj0hMCxjKVhhKGEsYixtLGNbbV0sITAsZyxoKTtlbHNlIGlmKHZvaWQgMCE9PWUmJihmPSEwLE0oZSl8fChoPSEwKSx0JiYoaD8oYi5jYWxsKGEsZSksYj1udWxsKToodD1iLGI9ZnVuY3Rpb24odyxyLHope3JldHVybiB0LmNhbGwoZCh3KSx6KX0pKSxiKSlmb3IoO208bDttKyspYihhW21dLGMsaD9lOmUuY2FsbChhW21dLG0sYihhW21dLGMpKSk7cmV0dXJuIGY\/YTp0P2IuY2FsbChhKTpsP2IoYVswXSxjKTpnfSxNYz0vXi1tcy0vLE5jPS8tKFthLXpdKS9nLEdiPWZ1bmN0aW9uKGEpe3JldHVybiAxPT09YS5ub2RlVHlwZXx8OT09PWEubm9kZVR5cGV8fCErYS5ub2RlVHlwZX07CkphLnVpZD0xO0phLnByb3RvdHlwZT17Y2FjaGU6ZnVuY3Rpb24oYSl7dmFyIGI9YVt0aGlzLmV4cGFuZG9dO3JldHVybiBifHwoYj17fSxHYihhKSYmKGEubm9kZVR5cGU\/YVt0aGlzLmV4cGFuZG9dPWI6T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsdGhpcy5leHBhbmRvLHt2YWx1ZTpiLGNvbmZpZ3VyYWJsZTohMH0pKSksYn0sc2V0OmZ1bmN0aW9uKGEsYixjKXt2YXIgZTthPXRoaXMuY2FjaGUoYSk7aWYoInN0cmluZyI9PXR5cGVvZiBiKWFbQmEoYildPWM7ZWxzZSBmb3IoZSBpbiBiKWFbQmEoZSldPWJbZV07cmV0dXJuIGF9LGdldDpmdW5jdGlvbihhLGIpe3JldHVybiB2b2lkIDA9PT1iP3RoaXMuY2FjaGUoYSk6YVt0aGlzLmV4cGFuZG9dJiZhW3RoaXMuZXhwYW5kb11bQmEoYildfSxhY2Nlc3M6ZnVuY3Rpb24oYSxiLGMpe3JldHVybiB2b2lkIDA9PT1ifHxiJiYic3RyaW5nIj09dHlwZW9mIGImJnZvaWQgMD09PWM\/dGhpcy5nZXQoYSxiKToodGhpcy5zZXQoYSxiLGMpLHZvaWQgMCE9PQpjP2M6Yil9LHJlbW92ZTpmdW5jdGlvbihhLGIpe3ZhciBjPWFbdGhpcy5leHBhbmRvXTtpZih2b2lkIDAhPT1jKXtpZih2b2lkIDAhPT1iKXt2YXIgZT0oYj1BcnJheS5pc0FycmF5KGIpP2IubWFwKEJhKTooYj1CYShiKSlpbiBjP1tiXTpiLm1hdGNoKExhKXx8W10pLmxlbmd0aDtmb3IoO2UtLTspZGVsZXRlIGNbYltlXV19KHZvaWQgMD09PWJ8fGQuaXNFbXB0eU9iamVjdChjKSkmJihhLm5vZGVUeXBlP2FbdGhpcy5leHBhbmRvXT12b2lkIDA6ZGVsZXRlIGFbdGhpcy5leHBhbmRvXSl9fSxoYXNEYXRhOmZ1bmN0aW9uKGEpe2E9YVt0aGlzLmV4cGFuZG9dO3JldHVybiB2b2lkIDAhPT1hJiYhZC5pc0VtcHR5T2JqZWN0KGEpfX07dmFyIEc9bmV3IEphLHhhPW5ldyBKYSxQYz0vXig\/Olx7W1x3XFddKlx9fFxbW1x3XFddKlxdKSQvLE9jPS9bQS1aXS9nO2QuZXh0ZW5kKHtoYXNEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB4YS5oYXNEYXRhKGEpfHxHLmhhc0RhdGEoYSl9LGRhdGE6ZnVuY3Rpb24oYSwKYixjKXtyZXR1cm4geGEuYWNjZXNzKGEsYixjKX0scmVtb3ZlRGF0YTpmdW5jdGlvbihhLGIpe3hhLnJlbW92ZShhLGIpfSxfZGF0YTpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIEcuYWNjZXNzKGEsYixjKX0sX3JlbW92ZURhdGE6ZnVuY3Rpb24oYSxiKXtHLnJlbW92ZShhLGIpfX0pO2QuZm4uZXh0ZW5kKHtkYXRhOmZ1bmN0aW9uKGEsYil7dmFyIGMsZSxmLGc9dGhpc1swXSxoPWcmJmcuYXR0cmlidXRlcztpZih2b2lkIDA9PT1hKXtpZih0aGlzLmxlbmd0aCYmKGY9eGEuZ2V0KGcpLDE9PT1nLm5vZGVUeXBlJiYhRy5nZXQoZywiaGFzRGF0YUF0dHJzIikpKXtmb3IoYz1oLmxlbmd0aDtjLS07KWhbY10mJjA9PT0oZT1oW2NdLm5hbWUpLmluZGV4T2YoImRhdGEtIikmJihlPUJhKGUuc2xpY2UoNSkpLE9iKGcsZSxmW2VdKSk7Ry5zZXQoZywiaGFzRGF0YUF0dHJzIiwhMCl9cmV0dXJuIGZ9cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBhP3RoaXMuZWFjaChmdW5jdGlvbigpe3hhLnNldCh0aGlzLAphKX0pOlhhKHRoaXMsZnVuY3Rpb24obSl7dmFyIGw7aWYoZyYmdm9pZCAwPT09bSlyZXR1cm4gdm9pZCAwIT09KGw9eGEuZ2V0KGcsYSkpP2w6dm9pZCAwIT09KGw9T2IoZyxhKSk\/bDp2b2lkIDA7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7eGEuc2V0KHRoaXMsYSxtKX0pfSxudWxsLGIsMTxhcmd1bWVudHMubGVuZ3RoLG51bGwsITApfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt4YS5yZW1vdmUodGhpcyxhKX0pfX0pO2QuZXh0ZW5kKHtxdWV1ZTpmdW5jdGlvbihhLGIsYyl7dmFyIGU7aWYoYSlyZXR1cm4gYj0oYnx8ImZ4IikrInF1ZXVlIixlPUcuZ2V0KGEsYiksYyYmKCFlfHxBcnJheS5pc0FycmF5KGMpP2U9Ry5hY2Nlc3MoYSxiLGQubWFrZUFycmF5KGMpKTplLnB1c2goYykpLGV8fFtdfSxkZXF1ZXVlOmZ1bmN0aW9uKGEsYil7Yj1ifHwiZngiO3ZhciBjPWQucXVldWUoYSxiKSxlPWMubGVuZ3RoLGY9Yy5zaGlmdCgpLGc9ZC5fcXVldWVIb29rcyhhLApiKTsiaW5wcm9ncmVzcyI9PT1mJiYoZj1jLnNoaWZ0KCksZS0tKTtmJiYoImZ4Ij09PWImJmMudW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBnLnN0b3AsZi5jYWxsKGEsZnVuY3Rpb24oKXtkLmRlcXVldWUoYSxiKX0sZykpOyFlJiZnJiZnLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iKyJxdWV1ZUhvb2tzIjtyZXR1cm4gRy5nZXQoYSxjKXx8Ry5hY2Nlc3MoYSxjLHtlbXB0eTpkLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKS5hZGQoZnVuY3Rpb24oKXtHLnJlbW92ZShhLFtiKyJxdWV1ZSIsY10pfSl9KX19KTtkLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oYSxiKXt2YXIgYz0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgYSYmKGI9YSxhPSJmeCIsYy0tKSxhcmd1bWVudHMubGVuZ3RoPGM\/ZC5xdWV1ZSh0aGlzWzBdLGEpOnZvaWQgMD09PWI\/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1kLnF1ZXVlKHRoaXMsYSxiKTtkLl9xdWV1ZUhvb2tzKHRoaXMsCmEpOyJmeCI9PT1hJiYiaW5wcm9ncmVzcyIhPT1lWzBdJiZkLmRlcXVldWUodGhpcyxhKX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtkLmRlcXVldWUodGhpcyxhKX0pfSxjbGVhclF1ZXVlOmZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLnF1ZXVlKGF8fCJmeCIsW10pfSxwcm9taXNlOmZ1bmN0aW9uKGEsYil7dmFyIGMsZT0xLGY9ZC5EZWZlcnJlZCgpLGc9dGhpcyxoPXRoaXMubGVuZ3RoLG09ZnVuY3Rpb24oKXstLWV8fGYucmVzb2x2ZVdpdGgoZyxbZ10pfTsic3RyaW5nIiE9dHlwZW9mIGEmJihiPWEsYT12b2lkIDApO2ZvcihhPWF8fCJmeCI7aC0tOykoYz1HLmdldChnW2hdLGErInF1ZXVlSG9va3MiKSkmJmMuZW1wdHkmJihlKyssYy5lbXB0eS5hZGQobSkpO3JldHVybiBtKCksZi5wcm9taXNlKGIpfX0pO3ZhciB6Yz0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0\/XGQrfCkvLnNvdXJjZSx5Yj1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrCnpjKyIpKFthLXolXSopJCIsImkiKSxQYT1bIlRvcCIsIlJpZ2h0IiwiQm90dG9tIiwiTGVmdCJdLGpiPUwuZG9jdW1lbnRFbGVtZW50LG9iPWZ1bmN0aW9uKGEpe3JldHVybiBkLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKX0sbWQ9e2NvbXBvc2VkOiEwfTtqYi5nZXRSb290Tm9kZSYmKG9iPWZ1bmN0aW9uKGEpe3JldHVybiBkLmNvbnRhaW5zKGEub3duZXJEb2N1bWVudCxhKXx8YS5nZXRSb290Tm9kZShtZCk9PT1hLm93bmVyRG9jdW1lbnR9KTt2YXIgUWI9ZnVuY3Rpb24oYSxiKXtyZXR1cm4ibm9uZSI9PT0oYT1ifHxhKS5zdHlsZS5kaXNwbGF5fHwiIj09PWEuc3R5bGUuZGlzcGxheSYmb2IoYSkmJiJub25lIj09PWQuY3NzKGEsImRpc3BsYXkiKX0sbGM9e307ZC5mbi5leHRlbmQoe3Nob3c6ZnVuY3Rpb24oKXtyZXR1cm4gJGEodGhpcywhMCl9LGhpZGU6ZnVuY3Rpb24oKXtyZXR1cm4gJGEodGhpcyl9LHRvZ2dsZTpmdW5jdGlvbihhKXtyZXR1cm4iYm9vbGVhbiI9PXR5cGVvZiBhPwphP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFjaChmdW5jdGlvbigpe1FiKHRoaXMpP2QodGhpcykuc2hvdygpOmQodGhpcykuaGlkZSgpfSl9fSk7dmFyIFpiLEhiPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pLG1jPS88KFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKS9pLG5jPS9eJHxebW9kdWxlJHxcLyg\/OmphdmF8ZWNtYSlzY3JpcHQvaSx4Yj1MLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5hcHBlbmRDaGlsZChMLmNyZWF0ZUVsZW1lbnQoImRpdiIpKTsoWmI9TC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpO1piLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKTtaYi5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0Iik7eGIuYXBwZW5kQ2hpbGQoWmIpO04uY2hlY2tDbG9uZT14Yi5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQ7eGIuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+IjsKTi5ub0Nsb25lQ2hlY2tlZD0hIXhiLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmRlZmF1bHRWYWx1ZTt4Yi5pbm5lckhUTUw9IjxvcHRpb24+PC9vcHRpb24+IjtOLm9wdGlvbj0hIXhiLmxhc3RDaGlsZDt2YXIgQ2E9e3RoZWFkOlsxLCI8dGFibGU+IiwiPC90YWJsZT4iXSxjb2w6WzIsIjx0YWJsZT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdLHRyOlsyLCI8dGFibGU+PHRib2R5PiIsIjwvdGJvZHk+PC90YWJsZT4iXSx0ZDpbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il0sX2RlZmF1bHQ6WzAsIiIsIiJdfTtDYS50Ym9keT1DYS50Zm9vdD1DYS5jb2xncm91cD1DYS5jYXB0aW9uPUNhLnRoZWFkO0NhLnRoPUNhLnRkO04ub3B0aW9ufHwoQ2Eub3B0Z3JvdXA9Q2Eub3B0aW9uPVsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0pO3ZhciBRYz0vPHwmIz9cdys7LyxBYz0vXihbXi5dKikoPzpcLiguKyl8KS87CmQuZXZlbnQ9e2dsb2JhbDp7fSxhZGQ6ZnVuY3Rpb24oYSxiLGMsZSxmKXt2YXIgZyxoLG0sbCx0LHcscix6LEQ9Ry5nZXQoYSk7aWYoR2IoYSkpZm9yKGMuaGFuZGxlciYmKGM9KGc9YykuaGFuZGxlcixmPWcuc2VsZWN0b3IpLGYmJmQuZmluZC5tYXRjaGVzU2VsZWN0b3IoamIsZiksYy5ndWlkfHwoYy5ndWlkPWQuZ3VpZCsrKSwobD1ELmV2ZW50cyl8fChsPUQuZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCkpLChoPUQuaGFuZGxlKXx8KGg9RC5oYW5kbGU9ZnVuY3Rpb24oTyl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBkJiZkLmV2ZW50LnRyaWdnZXJlZCE9PU8udHlwZT9kLmV2ZW50LmRpc3BhdGNoLmFwcGx5KGEsYXJndW1lbnRzKTp2b2lkIDB9KSxEPShiPShifHwiIikubWF0Y2goTGEpfHxbIiJdKS5sZW5ndGg7RC0tOyl7dmFyIEY9ej0obT1BYy5leGVjKGJbRF0pfHxbXSlbMV07bT0obVsyXXx8IiIpLnNwbGl0KCIuIikuc29ydCgpO0YmJih3PWQuZXZlbnQuc3BlY2lhbFtGXXx8Cnt9LEY9KGY\/dy5kZWxlZ2F0ZVR5cGU6dy5iaW5kVHlwZSl8fEYsdz1kLmV2ZW50LnNwZWNpYWxbRl18fHt9LHQ9ZC5leHRlbmQoe3R5cGU6RixvcmlnVHlwZTp6LGRhdGE6ZSxoYW5kbGVyOmMsZ3VpZDpjLmd1aWQsc2VsZWN0b3I6ZixuZWVkc0NvbnRleHQ6ZiYmZC5leHByLm1hdGNoLm5lZWRzQ29udGV4dC50ZXN0KGYpLG5hbWVzcGFjZTptLmpvaW4oIi4iKX0sZyksKHI9bFtGXSl8fCgocj1sW0ZdPVtdKS5kZWxlZ2F0ZUNvdW50PTAsdy5zZXR1cCYmITEhPT13LnNldHVwLmNhbGwoYSxlLG0saCl8fGEuYWRkRXZlbnRMaXN0ZW5lciYmYS5hZGRFdmVudExpc3RlbmVyKEYsaCkpLHcuYWRkJiYody5hZGQuY2FsbChhLHQpLHQuaGFuZGxlci5ndWlkfHwodC5oYW5kbGVyLmd1aWQ9Yy5ndWlkKSksZj9yLnNwbGljZShyLmRlbGVnYXRlQ291bnQrKywwLHQpOnIucHVzaCh0KSxkLmV2ZW50Lmdsb2JhbFtGXT0hMCl9fSxyZW1vdmU6ZnVuY3Rpb24oYSxiLGMsZSxmKXt2YXIgZyxoLG0sbCwKdCx3LHIseixEPUcuaGFzRGF0YShhKSYmRy5nZXQoYSk7aWYoRCYmKGw9RC5ldmVudHMpKXtmb3IodD0oYj0oYnx8IiIpLm1hdGNoKExhKXx8WyIiXSkubGVuZ3RoO3QtLTspaWYodz16PShtPUFjLmV4ZWMoYlt0XSl8fFtdKVsxXSxyPShtWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksdyl7dmFyIEY9ZC5ldmVudC5zcGVjaWFsW3ddfHx7fSxPPWxbdz0oZT9GLmRlbGVnYXRlVHlwZTpGLmJpbmRUeXBlKXx8d118fFtdO209bVsyXSYmbmV3IFJlZ0V4cCgiKF58XFwuKSIrci5qb2luKCJcXC4oPzouKlxcLnwpIikrIihcXC58JCkiKTtmb3IoaD1nPU8ubGVuZ3RoO2ctLTspe3ZhciBhYT1PW2ddOyFmJiZ6IT09YWEub3JpZ1R5cGV8fGMmJmMuZ3VpZCE9PWFhLmd1aWR8fG0mJiFtLnRlc3QoYWEubmFtZXNwYWNlKXx8ZSYmZSE9PWFhLnNlbGVjdG9yJiYoIioqIiE9PWV8fCFhYS5zZWxlY3Rvcil8fChPLnNwbGljZShnLDEpLGFhLnNlbGVjdG9yJiZPLmRlbGVnYXRlQ291bnQtLSxGLnJlbW92ZSYmCkYucmVtb3ZlLmNhbGwoYSxhYSkpfWgmJiFPLmxlbmd0aCYmKEYudGVhcmRvd24mJiExIT09Ri50ZWFyZG93bi5jYWxsKGEscixELmhhbmRsZSl8fGQucmVtb3ZlRXZlbnQoYSx3LEQuaGFuZGxlKSxkZWxldGUgbFt3XSl9ZWxzZSBmb3IodyBpbiBsKWQuZXZlbnQucmVtb3ZlKGEsdytiW3RdLGMsZSwhMCk7ZC5pc0VtcHR5T2JqZWN0KGwpJiZHLnJlbW92ZShhLCJoYW5kbGUgZXZlbnRzIil9fSxkaXNwYXRjaDpmdW5jdGlvbihhKXt2YXIgYixjLGUsZixnPUFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLGg9ZC5ldmVudC5maXgoYSksbT0oRy5nZXQodGhpcywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2gudHlwZV18fFtdLGw9ZC5ldmVudC5zcGVjaWFsW2gudHlwZV18fHt9O2dbMF09aDtmb3IoYj0xO2I8YXJndW1lbnRzLmxlbmd0aDtiKyspZ1tiXT1hcmd1bWVudHNbYl07aWYoaC5kZWxlZ2F0ZVRhcmdldD10aGlzLCFsLnByZURpc3BhdGNofHwhMSE9PWwucHJlRGlzcGF0Y2guY2FsbCh0aGlzLApoKSl7dmFyIHQ9ZC5ldmVudC5oYW5kbGVycy5jYWxsKHRoaXMsaCxtKTtmb3IoYj0wOyhlPXRbYisrXSkmJiFoLmlzUHJvcGFnYXRpb25TdG9wcGVkKCk7KWZvcihoLmN1cnJlbnRUYXJnZXQ9ZS5lbGVtLG09MDsoZj1lLmhhbmRsZXJzW20rK10pJiYhaC5pc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZCgpOyloLnJuYW1lc3BhY2UmJiExIT09Zi5uYW1lc3BhY2UmJiFoLnJuYW1lc3BhY2UudGVzdChmLm5hbWVzcGFjZSl8fChoLmhhbmRsZU9iaj1mLGguZGF0YT1mLmRhdGEsdm9pZCAwIT09KGM9KChkLmV2ZW50LnNwZWNpYWxbZi5vcmlnVHlwZV18fHt9KS5oYW5kbGV8fGYuaGFuZGxlcikuYXBwbHkoZS5lbGVtLGcpKSYmITE9PT0oaC5yZXN1bHQ9YykmJihoLnByZXZlbnREZWZhdWx0KCksaC5zdG9wUHJvcGFnYXRpb24oKSkpO3JldHVybiBsLnBvc3REaXNwYXRjaCYmbC5wb3N0RGlzcGF0Y2guY2FsbCh0aGlzLGgpLGgucmVzdWx0fX0saGFuZGxlcnM6ZnVuY3Rpb24oYSxiKXt2YXIgYywKZSxmLGc9W10saD1iLmRlbGVnYXRlQ291bnQsbT1hLnRhcmdldDtpZihoJiZtLm5vZGVUeXBlJiYhKCJjbGljayI9PT1hLnR5cGUmJjE8PWEuYnV0dG9uKSlmb3IoO20hPT10aGlzO209bS5wYXJlbnROb2RlfHx0aGlzKWlmKDE9PT1tLm5vZGVUeXBlJiYoImNsaWNrIiE9PWEudHlwZXx8ITAhPT1tLmRpc2FibGVkKSl7dmFyIGw9W10sdD17fTtmb3IoYz0wO2M8aDtjKyspdm9pZCAwPT09dFtmPShlPWJbY10pLnNlbGVjdG9yKyIgIl0mJih0W2ZdPWUubmVlZHNDb250ZXh0Py0xPGQoZix0aGlzKS5pbmRleChtKTpkLmZpbmQoZix0aGlzLG51bGwsW21dKS5sZW5ndGgpLHRbZl0mJmwucHVzaChlKTtsLmxlbmd0aCYmZy5wdXNoKHtlbGVtOm0saGFuZGxlcnM6bH0pfXJldHVybiBtPXRoaXMsaDxiLmxlbmd0aCYmZy5wdXNoKHtlbGVtOm0saGFuZGxlcnM6Yi5zbGljZShoKX0pLGd9LGFkZFByb3A6ZnVuY3Rpb24oYSxiKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZC5FdmVudC5wcm90b3R5cGUsCmEse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpNKGIpP2Z1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiBiKHRoaXMub3JpZ2luYWxFdmVudCl9OmZ1bmN0aW9uKCl7aWYodGhpcy5vcmlnaW5hbEV2ZW50KXJldHVybiB0aGlzLm9yaWdpbmFsRXZlbnRbYV19LHNldDpmdW5jdGlvbihjKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcyxhLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpjfSl9fSl9LGZpeDpmdW5jdGlvbihhKXtyZXR1cm4gYVtkLmV4cGFuZG9dP2E6bmV3IGQuRXZlbnQoYSl9LHNwZWNpYWw6e2xvYWQ6e25vQnViYmxlOiEwfSxjbGljazp7c2V0dXA6ZnVuY3Rpb24oYSl7YT10aGlzfHxhO3JldHVybiBIYi50ZXN0KGEudHlwZSkmJmEuY2xpY2smJlgoYSwiaW5wdXQiKSYmcGIoYSwiY2xpY2siLCEwKSwhMX0sdHJpZ2dlcjpmdW5jdGlvbihhKXthPXRoaXN8fGE7cmV0dXJuIEhiLnRlc3QoYS50eXBlKSYmCmEuY2xpY2smJlgoYSwiaW5wdXQiKSYmcGIoYSwiY2xpY2siKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oYSl7YT1hLnRhcmdldDtyZXR1cm4gSGIudGVzdChhLnR5cGUpJiZhLmNsaWNrJiZYKGEsImlucHV0IikmJkcuZ2V0KGEsImNsaWNrIil8fFgoYSwiYSIpfX0sYmVmb3JldW5sb2FkOntwb3N0RGlzcGF0Y2g6ZnVuY3Rpb24oYSl7dm9pZCAwIT09YS5yZXN1bHQmJmEub3JpZ2luYWxFdmVudCYmKGEub3JpZ2luYWxFdmVudC5yZXR1cm5WYWx1ZT1hLnJlc3VsdCl9fX19O2QucmVtb3ZlRXZlbnQ9ZnVuY3Rpb24oYSxiLGMpe2EucmVtb3ZlRXZlbnRMaXN0ZW5lciYmYS5yZW1vdmVFdmVudExpc3RlbmVyKGIsYyl9O2QuRXZlbnQ9ZnVuY3Rpb24oYSxiKXtpZighKHRoaXMgaW5zdGFuY2VvZiBkLkV2ZW50KSlyZXR1cm4gbmV3IGQuRXZlbnQoYSxiKTthJiZhLnR5cGU\/KHRoaXMub3JpZ2luYWxFdmVudD1hLHRoaXMudHlwZT1hLnR5cGUsdGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQ9YS5kZWZhdWx0UHJldmVudGVkfHwKdm9pZCAwPT09YS5kZWZhdWx0UHJldmVudGVkJiYhMT09PWEucmV0dXJuVmFsdWU\/YWI6YmIsdGhpcy50YXJnZXQ9YS50YXJnZXQmJjM9PT1hLnRhcmdldC5ub2RlVHlwZT9hLnRhcmdldC5wYXJlbnROb2RlOmEudGFyZ2V0LHRoaXMuY3VycmVudFRhcmdldD1hLmN1cnJlbnRUYXJnZXQsdGhpcy5yZWxhdGVkVGFyZ2V0PWEucmVsYXRlZFRhcmdldCk6dGhpcy50eXBlPWE7YiYmZC5leHRlbmQodGhpcyxiKTt0aGlzLnRpbWVTdGFtcD1hJiZhLnRpbWVTdGFtcHx8RGF0ZS5ub3coKTt0aGlzW2QuZXhwYW5kb109ITB9O2QuRXZlbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpkLkV2ZW50LGlzRGVmYXVsdFByZXZlbnRlZDpiYixpc1Byb3BhZ2F0aW9uU3RvcHBlZDpiYixpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpiYixpc1NpbXVsYXRlZDohMSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1hYjsKYSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEucHJldmVudERlZmF1bHQoKX0sc3RvcFByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9YWI7YSYmIXRoaXMuaXNTaW11bGF0ZWQmJmEuc3RvcFByb3BhZ2F0aW9uKCl9LHN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3ZhciBhPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPWFiO2EmJiF0aGlzLmlzU2ltdWxhdGVkJiZhLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO3RoaXMuc3RvcFByb3BhZ2F0aW9uKCl9fTtkLmVhY2goe2FsdEtleTohMCxidWJibGVzOiEwLGNhbmNlbGFibGU6ITAsY2hhbmdlZFRvdWNoZXM6ITAsY3RybEtleTohMCxkZXRhaWw6ITAsZXZlbnRQaGFzZTohMCxtZXRhS2V5OiEwLHBhZ2VYOiEwLHBhZ2VZOiEwLHNoaWZ0S2V5OiEwLHZpZXc6ITAsImNoYXIiOiEwLGNvZGU6ITAsCmNoYXJDb2RlOiEwLGtleTohMCxrZXlDb2RlOiEwLGJ1dHRvbjohMCxidXR0b25zOiEwLGNsaWVudFg6ITAsY2xpZW50WTohMCxvZmZzZXRYOiEwLG9mZnNldFk6ITAscG9pbnRlcklkOiEwLHBvaW50ZXJUeXBlOiEwLHNjcmVlblg6ITAsc2NyZWVuWTohMCx0YXJnZXRUb3VjaGVzOiEwLHRvRWxlbWVudDohMCx0b3VjaGVzOiEwLHdoaWNoOiEwfSxkLmV2ZW50LmFkZFByb3ApO2QuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGUpe2lmKEwuZG9jdW1lbnRNb2RlKXt2YXIgZj1HLmdldCh0aGlzLCJoYW5kbGUiKSxnPWQuZXZlbnQuZml4KGUpO2cudHlwZT0iZm9jdXNpbiI9PT1lLnR5cGU\/ImZvY3VzIjoiYmx1ciI7Zy5pc1NpbXVsYXRlZD0hMDtmKGUpO2cudGFyZ2V0PT09Zy5jdXJyZW50VGFyZ2V0JiZmKGcpfWVsc2UgZC5ldmVudC5zaW11bGF0ZShiLGUudGFyZ2V0LGQuZXZlbnQuZml4KGUpKX1kLmV2ZW50LnNwZWNpYWxbYV09CntzZXR1cDpmdW5jdGlvbigpe3ZhciBlO2lmKHBiKHRoaXMsYSwhMCksIUwuZG9jdW1lbnRNb2RlKXJldHVybiExOyhlPUcuZ2V0KHRoaXMsYikpfHx0aGlzLmFkZEV2ZW50TGlzdGVuZXIoYixjKTtHLnNldCh0aGlzLGIsKGV8fDApKzEpfSx0cmlnZ2VyOmZ1bmN0aW9uKCl7cmV0dXJuIHBiKHRoaXMsYSksITB9LHRlYXJkb3duOmZ1bmN0aW9uKCl7dmFyIGU7aWYoIUwuZG9jdW1lbnRNb2RlKXJldHVybiExOyhlPUcuZ2V0KHRoaXMsYiktMSk\/Ry5zZXQodGhpcyxiLGUpOih0aGlzLnJlbW92ZUV2ZW50TGlzdGVuZXIoYixjKSxHLnJlbW92ZSh0aGlzLGIpKX0sX2RlZmF1bHQ6ZnVuY3Rpb24oZSl7cmV0dXJuIEcuZ2V0KGUudGFyZ2V0LGEpfSxkZWxlZ2F0ZVR5cGU6Yn07ZC5ldmVudC5zcGVjaWFsW2JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyxmPUwuZG9jdW1lbnRNb2RlP3RoaXM6ZSxnPUcuZ2V0KGYsYik7Z3x8CihMLmRvY3VtZW50TW9kZT90aGlzLmFkZEV2ZW50TGlzdGVuZXIoYixjKTplLmFkZEV2ZW50TGlzdGVuZXIoYSxjLCEwKSk7Ry5zZXQoZixiLChnfHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsZj1MLmRvY3VtZW50TW9kZT90aGlzOmUsZz1HLmdldChmLGIpLTE7Zz9HLnNldChmLGIsZyk6KEwuZG9jdW1lbnRNb2RlP3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihiLGMpOmUucmVtb3ZlRXZlbnRMaXN0ZW5lcihhLGMsITApLEcucmVtb3ZlKGYsYikpfX19KTtkLmVhY2goe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQiLHBvaW50ZXJlbnRlcjoicG9pbnRlcm92ZXIiLHBvaW50ZXJsZWF2ZToicG9pbnRlcm91dCJ9LGZ1bmN0aW9uKGEsYil7ZC5ldmVudC5zcGVjaWFsW2FdPXtkZWxlZ2F0ZVR5cGU6YixiaW5kVHlwZTpiLGhhbmRsZTpmdW5jdGlvbihjKXt2YXIgZSxmPQpjLnJlbGF0ZWRUYXJnZXQsZz1jLmhhbmRsZU9iajtyZXR1cm4gZiYmKGY9PT10aGlzfHxkLmNvbnRhaW5zKHRoaXMsZikpfHwoYy50eXBlPWcub3JpZ1R5cGUsZT1nLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGMudHlwZT1iKSxlfX19KTtkLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIGZiKHRoaXMsYSxiLGMsZSl9LG9uZTpmdW5jdGlvbihhLGIsYyxlKXtyZXR1cm4gZmIodGhpcyxhLGIsYyxlLDEpfSxvZmY6ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGY7aWYoYSYmYS5wcmV2ZW50RGVmYXVsdCYmYS5oYW5kbGVPYmopcmV0dXJuIGU9YS5oYW5kbGVPYmosZChhLmRlbGVnYXRlVGFyZ2V0KS5vZmYoZS5uYW1lc3BhY2U\/ZS5vcmlnVHlwZSsiLiIrZS5uYW1lc3BhY2U6ZS5vcmlnVHlwZSxlLnNlbGVjdG9yLGUuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGEpe2ZvcihmIGluIGEpdGhpcy5vZmYoZixiLGFbZl0pO3JldHVybiB0aGlzfXJldHVybiExIT09CmImJiJmdW5jdGlvbiIhPXR5cGVvZiBifHwoYz1iLGI9dm9pZCAwKSwhMT09PWMmJihjPWJiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXtkLmV2ZW50LnJlbW92ZSh0aGlzLGEsYyxiKX0pfX0pO3ZhciBuZD0vPHNjcmlwdHw8c3R5bGV8PGxpbmsvaSxSYz0vY2hlY2tlZFxzKig\/OltePV18PVxzKi5jaGVja2VkLikvaSxTYz0vXlxzKjwhXFtDREFUQVxbfFxdXF0+XHMqJC9nO2QuZXh0ZW5kKHtodG1sUHJlZmlsdGVyOmZ1bmN0aW9uKGEpe3JldHVybiBhfSxjbG9uZTpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9YS5jbG9uZU5vZGUoITApLG09b2IoYSk7aWYoIShOLm5vQ2xvbmVDaGVja2VkfHwxIT09YS5ub2RlVHlwZSYmMTEhPT1hLm5vZGVUeXBlfHxkLmlzWE1MRG9jKGEpKSl7dmFyIGw9c2EoaCksdD0wO2ZvcihlPShmPXNhKGEpKS5sZW5ndGg7dDxlO3QrKyl7dmFyIHc9Zlt0XSxyPWxbdF07dm9pZCAwOyJpbnB1dCI9PT0oZz1yLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZIYi50ZXN0KHcudHlwZSk\/CnIuY2hlY2tlZD13LmNoZWNrZWQ6ImlucHV0IiE9PWcmJiJ0ZXh0YXJlYSIhPT1nfHwoci5kZWZhdWx0VmFsdWU9dy5kZWZhdWx0VmFsdWUpfX1pZihiKWlmKGMpZm9yKGY9Znx8c2EoYSksbD1sfHxzYShoKSx0PTAsZT1mLmxlbmd0aDt0PGU7dCsrKWdiKGZbdF0sbFt0XSk7ZWxzZSBnYihhLGgpO3JldHVybiAwPChsPXNhKGgsInNjcmlwdCIpKS5sZW5ndGgmJm5iKGwsIW0mJnNhKGEsInNjcmlwdCIpKSxofSxjbGVhbkRhdGE6ZnVuY3Rpb24oYSl7Zm9yKHZhciBiLGMsZSxmPWQuZXZlbnQuc3BlY2lhbCxnPTA7dm9pZCAwIT09KGM9YVtnXSk7ZysrKWlmKEdiKGMpKXtpZihiPWNbRy5leHBhbmRvXSl7aWYoYi5ldmVudHMpZm9yKGUgaW4gYi5ldmVudHMpZltlXT9kLmV2ZW50LnJlbW92ZShjLGUpOmQucmVtb3ZlRXZlbnQoYyxlLGIuaGFuZGxlKTtjW0cuZXhwYW5kb109dm9pZCAwfWNbeGEuZXhwYW5kb10mJihjW3hhLmV4cGFuZG9dPXZvaWQgMCl9fX0pO2QuZm4uZXh0ZW5kKHtkZXRhY2g6ZnVuY3Rpb24oYSl7cmV0dXJuIFRiKHRoaXMsCmEsITApfSxyZW1vdmU6ZnVuY3Rpb24oYSl7cmV0dXJuIFRiKHRoaXMsYSl9LHRleHQ6ZnVuY3Rpb24oYSl7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIHZvaWQgMD09PWI\/ZC50ZXh0KHRoaXMpOnRoaXMuZW1wdHkoKS5lYWNoKGZ1bmN0aW9uKCl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fCh0aGlzLnRleHRDb250ZW50PWIpfSl9LG51bGwsYSxhcmd1bWVudHMubGVuZ3RoKX0sYXBwZW5kOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpezEhPT10aGlzLm5vZGVUeXBlJiYxMSE9PXRoaXMubm9kZVR5cGUmJjkhPT10aGlzLm5vZGVUeXBlfHxTYih0aGlzLGEpLmFwcGVuZENoaWxkKGEpfSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gY2IodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oYSl7aWYoMT09PXRoaXMubm9kZVR5cGV8fDExPT09dGhpcy5ub2RlVHlwZXx8OT09PQp0aGlzLm5vZGVUeXBlKXt2YXIgYj1TYih0aGlzLGEpO2IuaW5zZXJ0QmVmb3JlKGEsYi5maXJzdENoaWxkKX19KX0sYmVmb3JlOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMpfSl9LGFmdGVyOmZ1bmN0aW9uKCl7cmV0dXJuIGNiKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGEpe3RoaXMucGFyZW50Tm9kZSYmdGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShhLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVtcHR5OmZ1bmN0aW9uKCl7Zm9yKHZhciBhLGI9MDtudWxsIT0oYT10aGlzW2JdKTtiKyspMT09PWEubm9kZVR5cGUmJihkLmNsZWFuRGF0YShzYShhLCExKSksYS50ZXh0Q29udGVudD0iIik7cmV0dXJuIHRoaXN9LGNsb25lOmZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9bnVsbCE9YSYmYSxiPW51bGw9PWI\/YTpiLHRoaXMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGQuY2xvbmUodGhpcywKYSxiKX0pfSxodG1sOmZ1bmN0aW9uKGEpe3JldHVybiBYYSh0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPXRoaXNbMF18fHt9LGU9MCxmPXRoaXMubGVuZ3RoO2lmKHZvaWQgMD09PWImJjE9PT1jLm5vZGVUeXBlKXJldHVybiBjLmlubmVySFRNTDtpZigic3RyaW5nIj09dHlwZW9mIGImJiFuZC50ZXN0KGIpJiYhQ2FbKG1jLmV4ZWMoYil8fFsiIiwiIl0pWzFdLnRvTG93ZXJDYXNlKCldKXtiPWQuaHRtbFByZWZpbHRlcihiKTt0cnl7Zm9yKDtlPGY7ZSsrKTE9PT0oYz10aGlzW2VdfHx7fSkubm9kZVR5cGUmJihkLmNsZWFuRGF0YShzYShjLCExKSksYy5pbm5lckhUTUw9Yik7Yz0wfWNhdGNoKGcpe319YyYmdGhpcy5lbXB0eSgpLmFwcGVuZChiKX0sbnVsbCxhLGFyZ3VtZW50cy5sZW5ndGgpfSxyZXBsYWNlV2l0aDpmdW5jdGlvbigpe3ZhciBhPVtdO3JldHVybiBjYih0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihiKXt2YXIgYz10aGlzLnBhcmVudE5vZGU7MD5kLmluQXJyYXkodGhpcyxhKSYmCihkLmNsZWFuRGF0YShzYSh0aGlzKSksYyYmYy5yZXBsYWNlQ2hpbGQoYix0aGlzKSl9LGEpfX0pO2QuZWFjaCh7YXBwZW5kVG86ImFwcGVuZCIscHJlcGVuZFRvOiJwcmVwZW5kIixpbnNlcnRCZWZvcmU6ImJlZm9yZSIsaW5zZXJ0QWZ0ZXI6ImFmdGVyIixyZXBsYWNlQWxsOiJyZXBsYWNlV2l0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjKXtmb3IodmFyIGU9W10sZj1kKGMpLGc9Zi5sZW5ndGgtMSxoPTA7aDw9ZztoKyspYz1oPT09Zz90aGlzOnRoaXMuY2xvbmUoITApLGQoZltoXSlbYl0oYyksdWIuYXBwbHkoZSxjLmdldCgpKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soZSl9fSk7dmFyIGJjPW5ldyBSZWdFeHAoIl4oIit6YysiKSg\/IXB4KVthLXolXSskIiwiaSIpLGFjPS9eLS0vLFViPWZ1bmN0aW9uKGEpe3ZhciBiPWEub3duZXJEb2N1bWVudC5kZWZhdWx0VmlldztyZXR1cm4gYiYmYi5vcGVuZXJ8fChiPW4pLGIuZ2V0Q29tcHV0ZWRTdHlsZShhKX0sQmM9ZnVuY3Rpb24oYSwKYixjKXt2YXIgZSxmPXt9O2ZvcihlIGluIGIpZltlXT1hLnN0eWxlW2VdLGEuc3R5bGVbZV09YltlXTtmb3IoZSBpbiBjPWMuY2FsbChhKSxiKWEuc3R5bGVbZV09ZltlXTtyZXR1cm4gY30sVGM9bmV3IFJlZ0V4cChQYS5qb2luKCJ8IiksImkiKTshZnVuY3Rpb24oKXtmdW5jdGlvbiBhKCl7aWYobCl7bS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4O3dpZHRoOjYwcHg7bWFyZ2luLXRvcDoxcHg7cGFkZGluZzowO2JvcmRlcjowIjtsLnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6YmxvY2s7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OnNjcm9sbDttYXJnaW46YXV0bztib3JkZXI6MXB4O3BhZGRpbmc6MXB4O3dpZHRoOjYwJTt0b3A6MSUiO2piLmFwcGVuZENoaWxkKG0pLmFwcGVuZENoaWxkKGwpO3ZhciB0PW4uZ2V0Q29tcHV0ZWRTdHlsZShsKTtiPSIxJSIhPT10LnRvcDtoPTEyPT09TWF0aC5yb3VuZChwYXJzZUZsb2F0KHQubWFyZ2luTGVmdCkpOwpsLnN0eWxlLnJpZ2h0PSI2MCUiO2Y9MzY9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQodC5yaWdodCkpO2M9MzY9PT1NYXRoLnJvdW5kKHBhcnNlRmxvYXQodC53aWR0aCkpO2wuc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtlPTEyPT09TWF0aC5yb3VuZChwYXJzZUZsb2F0KGwub2Zmc2V0V2lkdGgvMykpO2piLnJlbW92ZUNoaWxkKG0pO2w9bnVsbH19dmFyIGIsYyxlLGYsZyxoLG09TC5jcmVhdGVFbGVtZW50KCJkaXYiKSxsPUwuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZSYmKGwuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIsTi5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsZC5leHRlbmQoTix7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gYSgpLGN9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSwKZn0scGl4ZWxQb3NpdGlvbjpmdW5jdGlvbigpe3JldHVybiBhKCksYn0scmVsaWFibGVNYXJnaW5MZWZ0OmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxofSxzY3JvbGxib3hTaXplOmZ1bmN0aW9uKCl7cmV0dXJuIGEoKSxlfSxyZWxpYWJsZVRyRGltZW5zaW9uczpmdW5jdGlvbigpe3ZhciB0LHcscix6O3JldHVybiBudWxsPT1nJiYodD1MLmNyZWF0ZUVsZW1lbnQoInRhYmxlIiksdz1MLmNyZWF0ZUVsZW1lbnQoInRyIikscj1MLmNyZWF0ZUVsZW1lbnQoImRpdiIpLHQuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7bGVmdDotMTExMTFweDtib3JkZXItY29sbGFwc2U6c2VwYXJhdGUiLHcuc3R5bGUuY3NzVGV4dD0iYm9yZGVyOjFweCBzb2xpZCIsdy5zdHlsZS5oZWlnaHQ9IjFweCIsci5zdHlsZS5oZWlnaHQ9IjlweCIsci5zdHlsZS5kaXNwbGF5PSJibG9jayIsamIuYXBwZW5kQ2hpbGQodCkuYXBwZW5kQ2hpbGQodykuYXBwZW5kQ2hpbGQociksej1uLmdldENvbXB1dGVkU3R5bGUodyksCmc9cGFyc2VJbnQoei5oZWlnaHQsMTApK3BhcnNlSW50KHouYm9yZGVyVG9wV2lkdGgsMTApK3BhcnNlSW50KHouYm9yZGVyQm90dG9tV2lkdGgsMTApPT09dy5vZmZzZXRIZWlnaHQsamIucmVtb3ZlQ2hpbGQodCkpLGd9fSkpfSgpO3ZhciByYz1bIldlYmtpdCIsIk1veiIsIm1zIl0scWM9TC5jcmVhdGVFbGVtZW50KCJkaXYiKS5zdHlsZSxwYz17fSxvZD0vXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8scGQ9e3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToiaGlkZGVuIixkaXNwbGF5OiJibG9jayJ9LENjPXtsZXR0ZXJTcGFjaW5nOiIwIixmb250V2VpZ2h0OiI0MDAifTtkLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihhLGIpe2lmKGIpcmV0dXJuIGE9S2EoYSwib3BhY2l0eSIpLCIiPT09YT8iMSI6YX19fSxjc3NOdW1iZXI6e2FuaW1hdGlvbkl0ZXJhdGlvbkNvdW50OiEwLGFzcGVjdFJhdGlvOiEwLGJvcmRlckltYWdlU2xpY2U6ITAsY29sdW1uQ291bnQ6ITAsCmZsZXhHcm93OiEwLGZsZXhTaHJpbms6ITAsZm9udFdlaWdodDohMCxncmlkQXJlYTohMCxncmlkQ29sdW1uOiEwLGdyaWRDb2x1bW5FbmQ6ITAsZ3JpZENvbHVtblN0YXJ0OiEwLGdyaWRSb3c6ITAsZ3JpZFJvd0VuZDohMCxncmlkUm93U3RhcnQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsc2NhbGU6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwLGZpbGxPcGFjaXR5OiEwLGZsb29kT3BhY2l0eTohMCxzdG9wT3BhY2l0eTohMCxzdHJva2VNaXRlcmxpbWl0OiEwLHN0cm9rZU9wYWNpdHk6ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGEsYixjLGUpe2lmKGEmJjMhPT1hLm5vZGVUeXBlJiY4IT09YS5ub2RlVHlwZSYmYS5zdHlsZSl7dmFyIGYsZyxoLG09QmEoYiksbD1hYy50ZXN0KGIpLHQ9YS5zdHlsZTtpZihsfHwoYj1BYihtKSksaD1kLmNzc0hvb2tzW2JdfHxkLmNzc0hvb2tzW21dLHZvaWQgMD09PWMpcmV0dXJuIGgmJgoiZ2V0ImluIGgmJnZvaWQgMCE9PShmPWguZ2V0KGEsITEsZSkpP2Y6dFtiXTsic3RyaW5nIj09PShnPXR5cGVvZiBjKSYmKGY9eWIuZXhlYyhjKSkmJmZbMV0mJihjPVBiKGEsYixmKSxnPSJudW1iZXIiKTtudWxsIT1jJiZjPT1jJiYoIm51bWJlciIhPT1nfHxsfHwoYys9ZiYmZlszXXx8KGQuY3NzTnVtYmVyW21dPyIiOiJweCIpKSxOLmNsZWFyQ2xvbmVTdHlsZXx8IiIhPT1jfHwwIT09Yi5pbmRleE9mKCJiYWNrZ3JvdW5kIil8fCh0W2JdPSJpbmhlcml0IiksaCYmInNldCJpbiBoJiZ2b2lkIDA9PT0oYz1oLnNldChhLGMsZSkpfHwobD90LnNldFByb3BlcnR5KGIsYyk6dFtiXT1jKSl9fSxjc3M6ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZyxoLG09QmEoYik7cmV0dXJuIGFjLnRlc3QoYil8fChiPUFiKG0pKSwoaD1kLmNzc0hvb2tzW2JdfHxkLmNzc0hvb2tzW21dKSYmImdldCJpbiBoJiYoZj1oLmdldChhLCEwLGMpKSx2b2lkIDA9PT1mJiYoZj1LYShhLGIsZSkpLCJub3JtYWwiPT09CmYmJmIgaW4gQ2MmJihmPUNjW2JdKSwiIj09PWN8fGM\/KGc9cGFyc2VGbG9hdChmKSwhMD09PWN8fGlzRmluaXRlKGcpP2d8fDA6Zik6Zn19KTtkLmVhY2goWyJoZWlnaHQiLCJ3aWR0aCJdLGZ1bmN0aW9uKGEsYil7ZC5jc3NIb29rc1tiXT17Z2V0OmZ1bmN0aW9uKGMsZSxmKXtpZihlKXJldHVybiFvZC50ZXN0KGQuY3NzKGMsImRpc3BsYXkiKSl8fGMuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgmJmMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg\/QmIoYyxiLGYpOkJjKGMscGQsZnVuY3Rpb24oKXtyZXR1cm4gQmIoYyxiLGYpfSl9LHNldDpmdW5jdGlvbihjLGUsZil7dmFyIGcsaD1VYihjKSxtPSFOLnNjcm9sbGJveFNpemUoKSYmImFic29sdXRlIj09PWgucG9zaXRpb24sbD0obXx8ZikmJiJib3JkZXItYm94Ij09PWQuY3NzKGMsImJveFNpemluZyIsITEsaCk7Zj1mP3JiKGMsYixmLGwsaCk6MDtyZXR1cm4gbCYmbSYmKGYtPU1hdGguY2VpbChjWyJvZmZzZXQiK2JbMF0udG9VcHBlckNhc2UoKSsKYi5zbGljZSgxKV0tcGFyc2VGbG9hdChoW2JdKS1yYihjLGIsImJvcmRlciIsITEsaCktLjUpKSxmJiYoZz15Yi5leGVjKGUpKSYmInB4IiE9PShnWzNdfHwicHgiKSYmKGMuc3R5bGVbYl09ZSxlPWQuY3NzKGMsYikpLFdiKDAsZSxmKX19fSk7ZC5jc3NIb29rcy5tYXJnaW5MZWZ0PVZiKE4ucmVsaWFibGVNYXJnaW5MZWZ0LGZ1bmN0aW9uKGEsYil7aWYoYilyZXR1cm4ocGFyc2VGbG9hdChLYShhLCJtYXJnaW5MZWZ0IikpfHxhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQtQmMoYSx7bWFyZ2luTGVmdDowfSxmdW5jdGlvbigpe3JldHVybiBhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnR9KSkrInB4In0pO2QuZWFjaCh7bWFyZ2luOiIiLHBhZGRpbmc6IiIsYm9yZGVyOiJXaWR0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5jc3NIb29rc1thK2JdPXtleHBhbmQ6ZnVuY3Rpb24oYyl7dmFyIGU9MCxmPXt9O2ZvcihjPSJzdHJpbmciPT10eXBlb2YgYz9jLnNwbGl0KCIgIik6W2NdOzQ+CmU7ZSsrKWZbYStQYVtlXStiXT1jW2VdfHxjW2UtMl18fGNbMF07cmV0dXJuIGZ9fTsibWFyZ2luIiE9PWEmJihkLmNzc0hvb2tzW2ErYl0uc2V0PVdiKX0pO2QuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihjLGUsZil7dmFyIGcsaD17fSxtPTA7aWYoQXJyYXkuaXNBcnJheShlKSl7Zj1VYihjKTtmb3IoZz1lLmxlbmd0aDttPGc7bSsrKWhbZVttXV09ZC5jc3MoYyxlW21dLCExLGYpO3JldHVybiBofXJldHVybiB2b2lkIDAhPT1mP2Quc3R5bGUoYyxlLGYpOmQuY3NzKGMsZSl9LGEsYiwxPGFyZ3VtZW50cy5sZW5ndGgpfX0pOygoZC5Ud2Vlbj16YSkucHJvdG90eXBlPXtjb25zdHJ1Y3Rvcjp6YSxpbml0OmZ1bmN0aW9uKGEsYixjLGUsZixnKXt0aGlzLmVsZW09YTt0aGlzLnByb3A9Yzt0aGlzLmVhc2luZz1mfHxkLmVhc2luZy5fZGVmYXVsdDt0aGlzLm9wdGlvbnM9Yjt0aGlzLnN0YXJ0PXRoaXMubm93PXRoaXMuY3VyKCk7dGhpcy5lbmQ9CmU7dGhpcy51bml0PWd8fChkLmNzc051bWJlcltjXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGE9emEucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGEmJmEuZ2V0P2EuZ2V0KHRoaXMpOnphLnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihhKXt2YXIgYixjPXphLnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24\/dGhpcy5wb3M9Yj1kLmVhc2luZ1t0aGlzLmVhc2luZ10oYSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qYSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz1iPWEsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKmIrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksYyYmYy5zZXQ\/Yy5zZXQodGhpcyk6emEucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0pLmluaXQucHJvdG90eXBlPQp6YS5wcm90b3R5cGU7KHphLnByb3BIb29rcz17X2RlZmF1bHQ6e2dldDpmdW5jdGlvbihhKXt2YXIgYjtyZXR1cm4gMSE9PWEuZWxlbS5ub2RlVHlwZXx8bnVsbCE9YS5lbGVtW2EucHJvcF0mJm51bGw9PWEuZWxlbS5zdHlsZVthLnByb3BdP2EuZWxlbVthLnByb3BdOihiPWQuY3NzKGEuZWxlbSxhLnByb3AsIiIpKSYmImF1dG8iIT09Yj9iOjB9LHNldDpmdW5jdGlvbihhKXtkLmZ4LnN0ZXBbYS5wcm9wXT9kLmZ4LnN0ZXBbYS5wcm9wXShhKToxIT09YS5lbGVtLm5vZGVUeXBlfHwhZC5jc3NIb29rc1thLnByb3BdJiZudWxsPT1hLmVsZW0uc3R5bGVbQWIoYS5wcm9wKV0\/YS5lbGVtW2EucHJvcF09YS5ub3c6ZC5zdHlsZShhLmVsZW0sYS5wcm9wLGEubm93K2EudW5pdCl9fX0pLnNjcm9sbFRvcD16YS5wcm9wSG9va3Muc2Nyb2xsTGVmdD17c2V0OmZ1bmN0aW9uKGEpe2EuZWxlbS5ub2RlVHlwZSYmYS5lbGVtLnBhcmVudE5vZGUmJihhLmVsZW1bYS5wcm9wXT1hLm5vdyl9fTtkLmVhc2luZz0Ke2xpbmVhcjpmdW5jdGlvbihhKXtyZXR1cm4gYX0sc3dpbmc6ZnVuY3Rpb24oYSl7cmV0dXJuLjUtTWF0aC5jb3MoYSpNYXRoLlBJKS8yfSxfZGVmYXVsdDoic3dpbmcifTtkLmZ4PXphLnByb3RvdHlwZS5pbml0O2QuZnguc3RlcD17fTt2YXIgc2IsWGIscWQ9L14oPzp0b2dnbGV8c2hvd3xoaWRlKSQvLHJkPS9xdWV1ZUhvb2tzJC87ZC5BbmltYXRpb249ZC5leHRlbmQoeCx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oYSxiKXt2YXIgYz10aGlzLmNyZWF0ZVR3ZWVuKGEsYik7cmV0dXJuIFBiKGMuZWxlbSxhLHliLmV4ZWMoYiksYyksY31dfSx0d2VlbmVyOmZ1bmN0aW9uKGEsYil7TShhKT8oYj1hLGE9WyIqIl0pOmE9YS5tYXRjaChMYSk7Zm9yKHZhciBjLGU9MCxmPWEubGVuZ3RoO2U8ZjtlKyspYz1hW2VdLHgudHdlZW5lcnNbY109eC50d2VlbmVyc1tjXXx8W10seC50d2VlbmVyc1tjXS51bnNoaWZ0KGIpfSxwcmVmaWx0ZXJzOltmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGgsCm0sbCx0LHc9IndpZHRoImluIGJ8fCJoZWlnaHQiaW4gYixyPXRoaXMsej17fSxEPWEuc3R5bGUsRj1hLm5vZGVUeXBlJiZRYihhKSxPPUcuZ2V0KGEsImZ4c2hvdyIpO2ZvcihlIGluIGMucXVldWV8fChudWxsPT0oaD1kLl9xdWV1ZUhvb2tzKGEsImZ4IikpLnVucXVldWVkJiYoaC51bnF1ZXVlZD0wLG09aC5lbXB0eS5maXJlLGguZW1wdHkuZmlyZT1mdW5jdGlvbigpe2gudW5xdWV1ZWR8fG0oKX0pLGgudW5xdWV1ZWQrKyxyLmFsd2F5cyhmdW5jdGlvbigpe3IuYWx3YXlzKGZ1bmN0aW9uKCl7aC51bnF1ZXVlZC0tO2QucXVldWUoYSwiZngiKS5sZW5ndGh8fGguZW1wdHkuZmlyZSgpfSl9KSksYilpZihmPWJbZV0scWQudGVzdChmKSl7aWYoZGVsZXRlIGJbZV0sZz1nfHwidG9nZ2xlIj09PWYsZj09PShGPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1mfHwhT3x8dm9pZCAwPT09T1tlXSljb250aW51ZTtGPSEwfXpbZV09TyYmT1tlXXx8ZC5zdHlsZShhLGUpfWlmKChiPSFkLmlzRW1wdHlPYmplY3QoYikpfHwKIWQuaXNFbXB0eU9iamVjdCh6KSlmb3IoZSBpbiB3JiYxPT09YS5ub2RlVHlwZSYmKGMub3ZlcmZsb3c9W0Qub3ZlcmZsb3csRC5vdmVyZmxvd1gsRC5vdmVyZmxvd1ldLG51bGw9PShsPU8mJk8uZGlzcGxheSkmJihsPUcuZ2V0KGEsImRpc3BsYXkiKSksIm5vbmUiPT09KHQ9ZC5jc3MoYSwiZGlzcGxheSIpKSYmKGw\/dD1sOigkYShbYV0sITApLGw9YS5zdHlsZS5kaXNwbGF5fHxsLHQ9ZC5jc3MoYSwiZGlzcGxheSIpLCRhKFthXSkpKSwoImlubGluZSI9PT10fHwiaW5saW5lLWJsb2NrIj09PXQmJm51bGwhPWwpJiYibm9uZSI9PT1kLmNzcyhhLCJmbG9hdCIpJiYoYnx8KHIuZG9uZShmdW5jdGlvbigpe0QuZGlzcGxheT1sfSksbnVsbD09bCYmKHQ9RC5kaXNwbGF5LGw9Im5vbmUiPT09dD8iIjp0KSksRC5kaXNwbGF5PSJpbmxpbmUtYmxvY2siKSksYy5vdmVyZmxvdyYmKEQub3ZlcmZsb3c9ImhpZGRlbiIsci5hbHdheXMoZnVuY3Rpb24oKXtELm92ZXJmbG93PWMub3ZlcmZsb3dbMF07CkQub3ZlcmZsb3dYPWMub3ZlcmZsb3dbMV07RC5vdmVyZmxvd1k9Yy5vdmVyZmxvd1syXX0pKSxiPSExLHopYnx8KE8\/ImhpZGRlbiJpbiBPJiYoRj1PLmhpZGRlbik6Tz1HLmFjY2VzcyhhLCJmeHNob3ciLHtkaXNwbGF5Omx9KSxnJiYoTy5oaWRkZW49IUYpLEYmJiRhKFthXSwhMCksci5kb25lKGZ1bmN0aW9uKCl7Zm9yKGUgaW4gRnx8JGEoW2FdKSxHLnJlbW92ZShhLCJmeHNob3ciKSx6KWQuc3R5bGUoYSxlLHpbZV0pfSkpLGI9dShGP09bZV06MCxlLHIpLGUgaW4gT3x8KE9bZV09Yi5zdGFydCxGJiYoYi5lbmQ9Yi5zdGFydCxiLnN0YXJ0PTApKX1dLHByZWZpbHRlcjpmdW5jdGlvbihhLGIpe2I\/eC5wcmVmaWx0ZXJzLnVuc2hpZnQoYSk6eC5wcmVmaWx0ZXJzLnB1c2goYSl9fSk7ZC5zcGVlZD1mdW5jdGlvbihhLGIsYyl7dmFyIGU9YSYmIm9iamVjdCI9PXR5cGVvZiBhP2QuZXh0ZW5kKHt9LGEpOntjb21wbGV0ZTpjfHwhYyYmYnx8TShhKSYmYSxkdXJhdGlvbjphLGVhc2luZzpjJiYKYnx8YiYmIU0oYikmJmJ9O3JldHVybiBkLmZ4Lm9mZj9lLmR1cmF0aW9uPTA6Im51bWJlciIhPXR5cGVvZiBlLmR1cmF0aW9uJiYoZS5kdXJhdGlvbiBpbiBkLmZ4LnNwZWVkcz9lLmR1cmF0aW9uPWQuZnguc3BlZWRzW2UuZHVyYXRpb25dOmUuZHVyYXRpb249ZC5meC5zcGVlZHMuX2RlZmF1bHQpLG51bGwhPWUucXVldWUmJiEwIT09ZS5xdWV1ZXx8KGUucXVldWU9ImZ4IiksZS5vbGQ9ZS5jb21wbGV0ZSxlLmNvbXBsZXRlPWZ1bmN0aW9uKCl7TShlLm9sZCkmJmUub2xkLmNhbGwodGhpcyk7ZS5xdWV1ZSYmZC5kZXF1ZXVlKHRoaXMsZS5xdWV1ZSl9LGV9O2QuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oYSxiLGMsZSl7cmV0dXJuIHRoaXMuZmlsdGVyKFFiKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OmJ9LGEsYyxlKX0sYW5pbWF0ZTpmdW5jdGlvbihhLGIsYyxlKXt2YXIgZj1kLmlzRW1wdHlPYmplY3QoYSksZz1kLnNwZWVkKGIsYyxlKTsKYj1mdW5jdGlvbigpe3ZhciBoPXgodGhpcyxkLmV4dGVuZCh7fSxhKSxnKTsoZnx8Ry5nZXQodGhpcywiZmluaXNoIikpJiZoLnN0b3AoITApfTtyZXR1cm4gYi5maW5pc2g9YixmfHwhMT09PWcucXVldWU\/dGhpcy5lYWNoKGIpOnRoaXMucXVldWUoZy5xdWV1ZSxiKX0sc3RvcDpmdW5jdGlvbihhLGIsYyl7dmFyIGU9ZnVuY3Rpb24oZil7dmFyIGc9Zi5zdG9wO2RlbGV0ZSBmLnN0b3A7ZyhjKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhJiYoYz1iLGI9YSxhPXZvaWQgMCksYiYmdGhpcy5xdWV1ZShhfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZj0hMCxnPW51bGwhPWEmJmErInF1ZXVlSG9va3MiLGg9ZC50aW1lcnMsbT1HLmdldCh0aGlzKTtpZihnKW1bZ10mJm1bZ10uc3RvcCYmZShtW2ddKTtlbHNlIGZvcihnIGluIG0pbVtnXSYmbVtnXS5zdG9wJiZyZC50ZXN0KGcpJiZlKG1bZ10pO2ZvcihnPWgubGVuZ3RoO2ctLTspaFtnXS5lbGVtIT09dGhpc3x8bnVsbCE9CmEmJmhbZ10ucXVldWUhPT1hfHwoaFtnXS5hbmltLnN0b3AoYyksZj0hMSxoLnNwbGljZShnLDEpKTshZiYmY3x8ZC5kZXF1ZXVlKHRoaXMsYSl9KX0sZmluaXNoOmZ1bmN0aW9uKGEpe3JldHVybiExIT09YSYmKGE9YXx8ImZ4IiksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGI9Ry5nZXQodGhpcyksYz1iW2ErInF1ZXVlIl0sZT1iW2ErInF1ZXVlSG9va3MiXSxmPWQudGltZXJzLGc9Yz9jLmxlbmd0aDowO2IuZmluaXNoPSEwO2QucXVldWUodGhpcyxhLFtdKTtlJiZlLnN0b3AmJmUuc3RvcC5jYWxsKHRoaXMsITApO2ZvcihlPWYubGVuZ3RoO2UtLTspZltlXS5lbGVtPT09dGhpcyYmZltlXS5xdWV1ZT09PWEmJihmW2VdLmFuaW0uc3RvcCghMCksZi5zcGxpY2UoZSwxKSk7Zm9yKGU9MDtlPGc7ZSsrKWNbZV0mJmNbZV0uZmluaXNoJiZjW2VdLmZpbmlzaC5jYWxsKHRoaXMpO2RlbGV0ZSBiLmZpbmlzaH0pfX0pO2QuZWFjaChbInRvZ2dsZSIsInNob3ciLCJoaWRlIl0sZnVuY3Rpb24oYSwKYil7dmFyIGM9ZC5mbltiXTtkLmZuW2JdPWZ1bmN0aW9uKGUsZixnKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9jLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUodGIoYiwhMCksZSxmLGcpfX0pO2QuZWFjaCh7c2xpZGVEb3duOnRiKCJzaG93Iiksc2xpZGVVcDp0YigiaGlkZSIpLHNsaWRlVG9nZ2xlOnRiKCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGEsYil7ZC5mblthXT1mdW5jdGlvbihjLGUsZil7cmV0dXJuIHRoaXMuYW5pbWF0ZShiLGMsZSxmKX19KTtkLnRpbWVycz1bXTtkLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgYSxiPTAsYz1kLnRpbWVycztmb3Ioc2I9RGF0ZS5ub3coKTtiPGMubGVuZ3RoO2IrKykoYT1jW2JdKSgpfHxjW2JdIT09YXx8Yy5zcGxpY2UoYi0tLDEpO2MubGVuZ3RofHxkLmZ4LnN0b3AoKTsKc2I9dm9pZCAwfTtkLmZ4LnRpbWVyPWZ1bmN0aW9uKGEpe2QudGltZXJzLnB1c2goYSk7ZC5meC5zdGFydCgpfTtkLmZ4LmludGVydmFsPTEzO2QuZnguc3RhcnQ9ZnVuY3Rpb24oKXtYYnx8KFhiPSEwLENiKCkpfTtkLmZ4LnN0b3A9ZnVuY3Rpb24oKXtYYj1udWxsfTtkLmZ4LnNwZWVkcz17c2xvdzo2MDAsZmFzdDoyMDAsX2RlZmF1bHQ6NDAwfTtkLmZuLmRlbGF5PWZ1bmN0aW9uKGEsYil7cmV0dXJuIGE9ZC5meCYmZC5meC5zcGVlZHNbYV18fGEsYj1ifHwiZngiLHRoaXMucXVldWUoYixmdW5jdGlvbihjLGUpe3ZhciBmPW4uc2V0VGltZW91dChjLGEpO2Uuc3RvcD1mdW5jdGlvbigpe24uY2xlYXJUaW1lb3V0KGYpfX0pfTt2YXIgSWI9TC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpLHNkPUwuY3JlYXRlRWxlbWVudCgic2VsZWN0IikuYXBwZW5kQ2hpbGQoTC5jcmVhdGVFbGVtZW50KCJvcHRpb24iKSk7SWIudHlwZT0iY2hlY2tib3giO04uY2hlY2tPbj0iIiE9PUliLnZhbHVlO04ub3B0U2VsZWN0ZWQ9CnNkLnNlbGVjdGVkOyhJYj1MLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0IjtJYi50eXBlPSJyYWRpbyI7Ti5yYWRpb1ZhbHVlPSJ0Ij09PUliLnZhbHVlO3ZhciBKYj1kLmV4cHIuYXR0ckhhbmRsZTtkLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIpe3JldHVybiBYYSh0aGlzLGQuYXR0cixhLGIsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlQXR0cjpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZC5yZW1vdmVBdHRyKHRoaXMsYSl9KX19KTtkLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnPWEubm9kZVR5cGU7aWYoMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuZ2V0QXR0cmlidXRlP2QucHJvcChhLGIsYyk6KDE9PT1nJiZkLmlzWE1MRG9jKGEpfHwoZj1kLmF0dHJIb29rc1tiLnRvTG93ZXJDYXNlKCldfHwoZC5leHByLm1hdGNoLmJvb2wudGVzdChiKT90ZDp2b2lkIDApKSwKdm9pZCAwIT09Yz9udWxsPT09Yz92b2lkIGQucmVtb3ZlQXR0cihhLGIpOmYmJiJzZXQiaW4gZiYmdm9pZCAwIT09KGU9Zi5zZXQoYSxjLGIpKT9lOihhLnNldEF0dHJpYnV0ZShiLGMrIiIpLGMpOmYmJiJnZXQiaW4gZiYmbnVsbCE9PShlPWYuZ2V0KGEsYikpP2U6bnVsbD09KGU9ZC5maW5kLmF0dHIoYSxiKSk\/dm9pZCAwOmUpfSxhdHRySG9va3M6e3R5cGU6e3NldDpmdW5jdGlvbihhLGIpe2lmKCFOLnJhZGlvVmFsdWUmJiJyYWRpbyI9PT1iJiZYKGEsImlucHV0Iikpe3ZhciBjPWEudmFsdWU7cmV0dXJuIGEuc2V0QXR0cmlidXRlKCJ0eXBlIixiKSxjJiYoYS52YWx1ZT1jKSxifX19fSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGEsYil7dmFyIGM9MCxlPWImJmIubWF0Y2goTGEpO2lmKGUmJjE9PT1hLm5vZGVUeXBlKWZvcig7Yj1lW2MrK107KWEucmVtb3ZlQXR0cmlidXRlKGIpfX0pO3ZhciB0ZD17c2V0OmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4hMT09PWI\/ZC5yZW1vdmVBdHRyKGEsCmMpOmEuc2V0QXR0cmlidXRlKGMsYyksY319O2QuZWFjaChkLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihhLGIpe3ZhciBjPUpiW2JdfHxkLmZpbmQuYXR0cjtKYltiXT1mdW5jdGlvbihlLGYsZyl7dmFyIGgsbSxsPWYudG9Mb3dlckNhc2UoKTtyZXR1cm4gZ3x8KG09SmJbbF0sSmJbbF09aCxoPW51bGwhPWMoZSxmLGcpP2w6bnVsbCxKYltsXT1tKSxofX0pO3ZhciB1ZD0vXig\/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLHZkPS9eKD86YXxhcmVhKSQvaTtkLmZuLmV4dGVuZCh7cHJvcDpmdW5jdGlvbihhLGIpe3JldHVybiBYYSh0aGlzLGQucHJvcCxhLGIsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihhKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbZC5wcm9wRml4W2FdfHxhXX0pfX0pO2QuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGEsYixjKXt2YXIgZSxmLGc9YS5ub2RlVHlwZTsKaWYoMyE9PWcmJjghPT1nJiYyIT09ZylyZXR1cm4gMT09PWcmJmQuaXNYTUxEb2MoYSl8fChiPWQucHJvcEZpeFtiXXx8YixmPWQucHJvcEhvb2tzW2JdKSx2b2lkIDAhPT1jP2YmJiJzZXQiaW4gZiYmdm9pZCAwIT09KGU9Zi5zZXQoYSxjLGIpKT9lOmFbYl09YzpmJiYiZ2V0ImluIGYmJm51bGwhPT0oZT1mLmdldChhLGIpKT9lOmFbYl19LHByb3BIb29rczp7dGFiSW5kZXg6e2dldDpmdW5jdGlvbihhKXt2YXIgYj1kLmZpbmQuYXR0cihhLCJ0YWJpbmRleCIpO3JldHVybiBiP3BhcnNlSW50KGIsMTApOnVkLnRlc3QoYS5ub2RlTmFtZSl8fHZkLnRlc3QoYS5ub2RlTmFtZSkmJmEuaHJlZj8wOi0xfX19LHByb3BGaXg6eyJmb3IiOiJodG1sRm9yIiwiY2xhc3MiOiJjbGFzc05hbWUifX0pO04ub3B0U2VsZWN0ZWR8fChkLnByb3BIb29rcy5zZWxlY3RlZD17Z2V0OmZ1bmN0aW9uKGEpe2E9YS5wYXJlbnROb2RlO3JldHVybiBhJiZhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LApudWxsfSxzZXQ6ZnVuY3Rpb24oYSl7YT1hLnBhcmVudE5vZGU7YSYmKGEuc2VsZWN0ZWRJbmRleCxhLnBhcmVudE5vZGUmJmEucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KTtkLmVhY2goInRhYkluZGV4IHJlYWRPbmx5IG1heExlbmd0aCBjZWxsU3BhY2luZyBjZWxsUGFkZGluZyByb3dTcGFuIGNvbFNwYW4gdXNlTWFwIGZyYW1lQm9yZGVyIGNvbnRlbnRFZGl0YWJsZSIuc3BsaXQoIiAiKSxmdW5jdGlvbigpe2QucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KTtkLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24oYSl7dmFyIGIsYyxlLGYsZyxoO3JldHVybiBNKGEpP3RoaXMuZWFjaChmdW5jdGlvbihtKXtkKHRoaXMpLmFkZENsYXNzKGEuY2FsbCh0aGlzLG0sSCh0aGlzKSkpfSk6KGI9UChhKSkubGVuZ3RoP3RoaXMuZWFjaChmdW5jdGlvbigpe2lmKGU9SCh0aGlzKSxjPTE9PT10aGlzLm5vZGVUeXBlJiYiICIrQyhlKSsiICIpe2ZvcihnPTA7ZzxiLmxlbmd0aDtnKyspZj0KYltnXSwwPmMuaW5kZXhPZigiICIrZisiICIpJiYoYys9ZisiICIpO2g9QyhjKTtlIT09aCYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixoKX19KTp0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbihhKXt2YXIgYixjLGUsZixnLGg7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKG0pe2QodGhpcykucmVtb3ZlQ2xhc3MoYS5jYWxsKHRoaXMsbSxIKHRoaXMpKSl9KTphcmd1bWVudHMubGVuZ3RoPyhiPVAoYSkpLmxlbmd0aD90aGlzLmVhY2goZnVuY3Rpb24oKXtpZihlPUgodGhpcyksYz0xPT09dGhpcy5ub2RlVHlwZSYmIiAiK0MoZSkrIiAiKXtmb3IoZz0wO2c8Yi5sZW5ndGg7ZysrKWZvcihmPWJbZ107LTE8Yy5pbmRleE9mKCIgIitmKyIgIik7KWM9Yy5yZXBsYWNlKCIgIitmKyIgIiwiICIpO2g9QyhjKTtlIT09aCYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixoKX19KTp0aGlzOnRoaXMuYXR0cigiY2xhc3MiLCIiKX0sdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oYSxiKXt2YXIgYywKZSxmLGcsaD10eXBlb2YgYSxtPSJzdHJpbmciPT09aHx8QXJyYXkuaXNBcnJheShhKTtyZXR1cm4gTShhKT90aGlzLmVhY2goZnVuY3Rpb24obCl7ZCh0aGlzKS50b2dnbGVDbGFzcyhhLmNhbGwodGhpcyxsLEgodGhpcyksYiksYil9KToiYm9vbGVhbiI9PXR5cGVvZiBiJiZtP2I\/dGhpcy5hZGRDbGFzcyhhKTp0aGlzLnJlbW92ZUNsYXNzKGEpOihjPVAoYSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYobSlmb3IoZz1kKHRoaXMpLGY9MDtmPGMubGVuZ3RoO2YrKyllPWNbZl0sZy5oYXNDbGFzcyhlKT9nLnJlbW92ZUNsYXNzKGUpOmcuYWRkQ2xhc3MoZSk7ZWxzZSB2b2lkIDAhPT1hJiYiYm9vbGVhbiIhPT1ofHwoKGU9SCh0aGlzKSkmJkcuc2V0KHRoaXMsIl9fY2xhc3NOYW1lX18iLGUpLHRoaXMuc2V0QXR0cmlidXRlJiZ0aGlzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLGV8fCExPT09YT8iIjpHLmdldCh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKSl9KSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGEpe3ZhciBiLApjPTA7Zm9yKGE9IiAiK2ErIiAiO2I9dGhpc1tjKytdOylpZigxPT09Yi5ub2RlVHlwZSYmLTE8KCIgIitDKEgoYikpKyIgIikuaW5kZXhPZihhKSlyZXR1cm4hMDtyZXR1cm4hMX19KTt2YXIgd2Q9L1xyL2c7ZC5mbi5leHRlbmQoe3ZhbDpmdW5jdGlvbihhKXt2YXIgYixjLGUsZj10aGlzWzBdO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPU0oYSksdGhpcy5lYWNoKGZ1bmN0aW9uKGcpe3ZhciBoOzE9PT10aGlzLm5vZGVUeXBlJiYobnVsbD09KGg9ZT9hLmNhbGwodGhpcyxnLGQodGhpcykudmFsKCkpOmEpP2g9IiI6Im51bWJlciI9PXR5cGVvZiBoP2grPSIiOkFycmF5LmlzQXJyYXkoaCkmJihoPWQubWFwKGgsZnVuY3Rpb24obSl7cmV0dXJuIG51bGw9PW0\/IiI6bSsiIn0pKSwoYj1kLnZhbEhvb2tzW3RoaXMudHlwZV18fGQudmFsSG9va3NbdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpXSkmJiJzZXQiaW4gYiYmdm9pZCAwIT09Yi5zZXQodGhpcyxoLCJ2YWx1ZSIpfHwodGhpcy52YWx1ZT0KaCkpfSkpOmY\/KGI9ZC52YWxIb29rc1tmLnR5cGVdfHxkLnZhbEhvb2tzW2Yubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIGImJnZvaWQgMCE9PShjPWIuZ2V0KGYsInZhbHVlIikpP2M6InN0cmluZyI9PXR5cGVvZihjPWYudmFsdWUpP2MucmVwbGFjZSh3ZCwiIik6bnVsbD09Yz8iIjpjOnZvaWQgMH19KTtkLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGEpe3ZhciBiPWQuZmluZC5hdHRyKGEsInZhbHVlIik7cmV0dXJuIG51bGwhPWI\/YjpDKGQudGV4dChhKSl9fSxzZWxlY3Q6e2dldDpmdW5jdGlvbihhKXt2YXIgYixjLGU9YS5vcHRpb25zLGY9YS5zZWxlY3RlZEluZGV4LGc9InNlbGVjdC1vbmUiPT09YS50eXBlLGg9Zz9udWxsOltdLG09Zz9mKzE6ZS5sZW5ndGg7Zm9yKGM9MD5mP206Zz9mOjA7YzxtO2MrKylpZighKCEoYj1lW2NdKS5zZWxlY3RlZCYmYyE9PWZ8fGIuZGlzYWJsZWR8fGIucGFyZW50Tm9kZS5kaXNhYmxlZCYmWChiLnBhcmVudE5vZGUsCiJvcHRncm91cCIpKSl7aWYoYT1kKGIpLnZhbCgpLGcpcmV0dXJuIGE7aC5wdXNoKGEpfXJldHVybiBofSxzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYyxlLGY9YS5vcHRpb25zO2I9ZC5tYWtlQXJyYXkoYik7Zm9yKHZhciBnPWYubGVuZ3RoO2ctLTspKChlPWZbZ10pLnNlbGVjdGVkPS0xPGQuaW5BcnJheShkLnZhbEhvb2tzLm9wdGlvbi5nZXQoZSksYikpJiYoYz0hMCk7cmV0dXJuIGN8fChhLnNlbGVjdGVkSW5kZXg9LTEpLGJ9fX19KTtkLmVhY2goWyJyYWRpbyIsImNoZWNrYm94Il0sZnVuY3Rpb24oKXtkLnZhbEhvb2tzW3RoaXNdPXtzZXQ6ZnVuY3Rpb24oYSxiKXtpZihBcnJheS5pc0FycmF5KGIpKXJldHVybiBhLmNoZWNrZWQ9LTE8ZC5pbkFycmF5KGQoYSkudmFsKCksYil9fTtOLmNoZWNrT258fChkLnZhbEhvb2tzW3RoaXNdLmdldD1mdW5jdGlvbihhKXtyZXR1cm4gbnVsbD09PWEuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpPyJvbiI6YS52YWx1ZX0pfSk7dmFyIEtiPW4ubG9jYXRpb24sCkRjPURhdGUubm93KCksaGM9L1w\/LztkLnBhcnNlWE1MPWZ1bmN0aW9uKGEpe3ZhciBiO2lmKCFhfHwic3RyaW5nIiE9dHlwZW9mIGEpcmV0dXJuIG51bGw7dHJ5e3ZhciBjPShuZXcgbi5ET01QYXJzZXIpLnBhcnNlRnJvbVN0cmluZyhhLCJ0ZXh0L3htbCIpfWNhdGNoKGUpe31yZXR1cm4gYj1jJiZjLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJwYXJzZXJlcnJvciIpWzBdLGMmJiFifHxkLmVycm9yKCJJbnZhbGlkIFhNTDogIisoYj9kLm1hcChiLmNoaWxkTm9kZXMsZnVuY3Rpb24oZSl7cmV0dXJuIGUudGV4dENvbnRlbnR9KS5qb2luKCJcbiIpOmEpKSxjfTt2YXIgRWM9L14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvLEZjPWZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9O2QuZXh0ZW5kKGQuZXZlbnQse3RyaWdnZXI6ZnVuY3Rpb24oYSxiLGMsZSl7dmFyIGYsZyxoLG0sbCx0LHc9W2N8fExdLHI9RmIuY2FsbChhLCJ0eXBlIik\/YS50eXBlOmEsej1GYi5jYWxsKGEsCiJuYW1lc3BhY2UiKT9hLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKGY9dD1nPWM9Y3x8TCwzIT09Yy5ub2RlVHlwZSYmOCE9PWMubm9kZVR5cGUmJiFFYy50ZXN0KHIrZC5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ci5pbmRleE9mKCIuIikmJihyPSh6PXIuc3BsaXQoIi4iKSkuc2hpZnQoKSx6LnNvcnQoKSksaD0wPnIuaW5kZXhPZigiOiIpJiYib24iK3IsKGE9YVtkLmV4cGFuZG9dP2E6bmV3IGQuRXZlbnQociwib2JqZWN0Ij09dHlwZW9mIGEmJmEpKS5pc1RyaWdnZXI9ZT8yOjMsYS5uYW1lc3BhY2U9ei5qb2luKCIuIiksYS5ybmFtZXNwYWNlPWEubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK3ouam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxhLnJlc3VsdD12b2lkIDAsYS50YXJnZXR8fChhLnRhcmdldD1jKSxiPW51bGw9PWI\/W2FdOmQubWFrZUFycmF5KGIsW2FdKSxsPWQuZXZlbnQuc3BlY2lhbFtyXXx8e30sZXx8IWwudHJpZ2dlcnx8ITEhPT0KbC50cmlnZ2VyLmFwcGx5KGMsYikpKXtpZighZSYmIWwubm9CdWJibGUmJiFrYihjKSl7dmFyIEQ9bC5kZWxlZ2F0ZVR5cGV8fHI7Zm9yKEVjLnRlc3QoRCtyKXx8KGY9Zi5wYXJlbnROb2RlKTtmO2Y9Zi5wYXJlbnROb2RlKXcucHVzaChmKSxnPWY7Zz09PShjLm93bmVyRG9jdW1lbnR8fEwpJiZ3LnB1c2goZy5kZWZhdWx0Vmlld3x8Zy5wYXJlbnRXaW5kb3d8fG4pfWZvcih6PTA7KGY9d1t6KytdKSYmIWEuaXNQcm9wYWdhdGlvblN0b3BwZWQoKTspdD1mLGEudHlwZT0xPHo\/RDpsLmJpbmRUeXBlfHxyLChtPShHLmdldChmLCJldmVudHMiKXx8T2JqZWN0LmNyZWF0ZShudWxsKSlbYS50eXBlXSYmRy5nZXQoZiwiaGFuZGxlIikpJiZtLmFwcGx5KGYsYiksKG09aCYmZltoXSkmJm0uYXBwbHkmJkdiKGYpJiYoYS5yZXN1bHQ9bS5hcHBseShmLGIpLCExPT09YS5yZXN1bHQmJmEucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGEudHlwZT1yLGV8fGEuaXNEZWZhdWx0UHJldmVudGVkKCl8fApsLl9kZWZhdWx0JiYhMSE9PWwuX2RlZmF1bHQuYXBwbHkody5wb3AoKSxiKXx8IUdiKGMpfHxoJiZNKGNbcl0pJiYha2IoYykmJigoZz1jW2hdKSYmKGNbaF09bnVsbCksZC5ldmVudC50cmlnZ2VyZWQ9cixhLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJnQuYWRkRXZlbnRMaXN0ZW5lcihyLEZjKSxjW3JdKCksYS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIocixGYyksZC5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGcmJihjW2hdPWcpKSxhLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGEsYixjKXthPWQuZXh0ZW5kKG5ldyBkLkV2ZW50LGMse3R5cGU6YSxpc1NpbXVsYXRlZDohMH0pO2QuZXZlbnQudHJpZ2dlcihhLG51bGwsYil9fSk7ZC5mbi5leHRlbmQoe3RyaWdnZXI6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZC5ldmVudC50cmlnZ2VyKGEsYix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihhLGIpe3ZhciBjPQp0aGlzWzBdO2lmKGMpcmV0dXJuIGQuZXZlbnQudHJpZ2dlcihhLGIsYywhMCl9fSk7dmFyIFVjPS9cW1xdJC8sR2M9L1xyP1xuL2cseGQ9L14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLHlkPS9eKD86aW5wdXR8c2VsZWN0fHRleHRhcmVhfGtleWdlbikvaTtkLnBhcmFtPWZ1bmN0aW9uKGEsYil7dmFyIGMsZT1bXSxmPWZ1bmN0aW9uKGcsaCl7aD1NKGgpP2goKTpoO2VbZS5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChnKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KG51bGw9PWg\/IiI6aCl9O2lmKG51bGw9PWEpcmV0dXJuIiI7aWYoQXJyYXkuaXNBcnJheShhKXx8YS5qcXVlcnkmJiFkLmlzUGxhaW5PYmplY3QoYSkpZC5lYWNoKGEsZnVuY3Rpb24oKXtmKHRoaXMubmFtZSx0aGlzLnZhbHVlKX0pO2Vsc2UgZm9yKGMgaW4gYSllYShjLGFbY10sYixmKTtyZXR1cm4gZS5qb2luKCImIil9O2QuZm4uZXh0ZW5kKHtzZXJpYWxpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZC5wYXJhbSh0aGlzLnNlcmlhbGl6ZUFycmF5KCkpfSwKc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgYT1kLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gYT9kLm1ha2VBcnJheShhKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFkKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmeWQudGVzdCh0aGlzLm5vZGVOYW1lKSYmIXhkLnRlc3QoYSkmJih0aGlzLmNoZWNrZWR8fCFIYi50ZXN0KGEpKX0pLm1hcChmdW5jdGlvbihhLGIpe2E9ZCh0aGlzKS52YWwoKTtyZXR1cm4gbnVsbD09YT9udWxsOkFycmF5LmlzQXJyYXkoYSk\/ZC5tYXAoYSxmdW5jdGlvbihjKXtyZXR1cm57bmFtZTpiLm5hbWUsdmFsdWU6Yy5yZXBsYWNlKEdjLCJcclxuIil9fSk6e25hbWU6Yi5uYW1lLHZhbHVlOmEucmVwbGFjZShHYywiXHJcbiIpfX0pLmdldCgpfX0pO3ZhciB6ZD0vJTIwL2csQWQ9LyMuKiQvLEJkPS8oWz8mXSlfPVteJl0qLyxDZD0vXiguKj8pOlsgXHRdKihbXlxyXG5dKikkL2dtLApEZD0vXig\/OkdFVHxIRUFEKSQvLEVkPS9eXC9cLy8sSGM9e30sY2M9e30sSWM9IiovIi5jb25jYXQoIioiKSxpYz1MLmNyZWF0ZUVsZW1lbnQoImEiKTtpYy5ocmVmPUtiLmhyZWY7ZC5leHRlbmQoe2FjdGl2ZTowLGxhc3RNb2RpZmllZDp7fSxldGFnOnt9LGFqYXhTZXR0aW5nczp7dXJsOktiLmhyZWYsdHlwZToiR0VUIixpc0xvY2FsOi9eKD86YWJvdXR8YXBwfGFwcC1zdG9yYWdlfC4rLWV4dGVuc2lvbnxmaWxlfHJlc3x3aWRnZXQpOiQvLnRlc3QoS2IucHJvdG9jb2wpLGdsb2JhbDohMCxwcm9jZXNzRGF0YTohMCxhc3luYzohMCxjb250ZW50VHlwZToiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04IixhY2NlcHRzOnsiKiI6SWMsdGV4dDoidGV4dC9wbGFpbiIsaHRtbDoidGV4dC9odG1sIix4bWw6ImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWwiLGpzb246ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvamF2YXNjcmlwdCJ9LGNvbnRlbnRzOnt4bWw6L1xieG1sXGIvLApodG1sOi9cYmh0bWwvLGpzb246L1xianNvblxiL30scmVzcG9uc2VGaWVsZHM6e3htbDoicmVzcG9uc2VYTUwiLHRleHQ6InJlc3BvbnNlVGV4dCIsanNvbjoicmVzcG9uc2VKU09OIn0sY29udmVydGVyczp7IiogdGV4dCI6U3RyaW5nLCJ0ZXh0IGh0bWwiOiEwLCJ0ZXh0IGpzb24iOkpTT04ucGFyc2UsInRleHQgeG1sIjpkLnBhcnNlWE1MfSxmbGF0T3B0aW9uczp7dXJsOiEwLGNvbnRleHQ6ITB9fSxhamF4U2V0dXA6ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9oYihoYihhLGQuYWpheFNldHRpbmdzKSxiKTpoYihkLmFqYXhTZXR0aW5ncyxhKX0sYWpheFByZWZpbHRlcjpRYShIYyksYWpheFRyYW5zcG9ydDpRYShjYyksYWpheDpmdW5jdGlvbihhLGIpe2Z1bmN0aW9uIGMoUyxoYSxpYixaKXt2YXIgcmEsdmEsa2EsTWEsdGEsVz1oYTtLfHwoSz0hMCxtJiZuLmNsZWFyVGltZW91dChtKSxlPXZvaWQgMCxnPVp8fCIiLFEucmVhZHlTdGF0ZT0wPFM\/NDowLHJhPTIwMDw9UyYmMzAwPlN8fAozMDQ9PT1TLGliJiYoTWE9ZnVuY3Rpb24oZmEsRGEsZGIpe2Zvcih2YXIgVmEsdWEsWSxsYSxJYT1mYS5jb250ZW50cyxtYT1mYS5kYXRhVHlwZXM7IioiPT09bWFbMF07KW1hLnNoaWZ0KCksdm9pZCAwPT09VmEmJihWYT1mYS5taW1lVHlwZXx8RGEuZ2V0UmVzcG9uc2VIZWFkZXIoIkNvbnRlbnQtVHlwZSIpKTtpZihWYSlmb3IodWEgaW4gSWEpaWYoSWFbdWFdJiZJYVt1YV0udGVzdChWYSkpe21hLnVuc2hpZnQodWEpO2JyZWFrfWlmKG1hWzBdaW4gZGIpWT1tYVswXTtlbHNle2Zvcih1YSBpbiBkYil7aWYoIW1hWzBdfHxmYS5jb252ZXJ0ZXJzW3VhKyIgIittYVswXV0pe1k9dWE7YnJlYWt9bGF8fChsYT11YSl9WT1ZfHxsYX1pZihZKXJldHVybiBZIT09bWFbMF0mJm1hLnVuc2hpZnQoWSksZGJbWV19KHIsUSxpYikpLCFyYSYmLTE8ZC5pbkFycmF5KCJzY3JpcHQiLHIuZGF0YVR5cGVzKSYmMD5kLmluQXJyYXkoImpzb24iLHIuZGF0YVR5cGVzKSYmKHIuY29udmVydGVyc1sidGV4dCBzY3JpcHQiXT0KZnVuY3Rpb24oKXt9KSxNYT1mdW5jdGlvbihmYSxEYSxkYixWYSl7dmFyIHVhLFksbGEsSWEsbWEsSGE9e30sdmI9ZmEuZGF0YVR5cGVzLnNsaWNlKCk7aWYodmJbMV0pZm9yKGxhIGluIGZhLmNvbnZlcnRlcnMpSGFbbGEudG9Mb3dlckNhc2UoKV09ZmEuY29udmVydGVyc1tsYV07Zm9yKFk9dmIuc2hpZnQoKTtZOylpZihmYS5yZXNwb25zZUZpZWxkc1tZXSYmKGRiW2ZhLnJlc3BvbnNlRmllbGRzW1ldXT1EYSksIW1hJiZWYSYmZmEuZGF0YUZpbHRlciYmKERhPWZhLmRhdGFGaWx0ZXIoRGEsZmEuZGF0YVR5cGUpKSxtYT1ZLFk9dmIuc2hpZnQoKSlpZigiKiI9PT1ZKVk9bWE7ZWxzZSBpZigiKiIhPT1tYSYmbWEhPT1ZKXtpZighKGxhPUhhW21hKyIgIitZXXx8SGFbIiogIitZXSkpZm9yKHVhIGluIEhhKWlmKChJYT11YS5zcGxpdCgiICIpKVsxXT09PVkmJihsYT1IYVttYSsiICIrSWFbMF1dfHxIYVsiKiAiK0lhWzBdXSkpeyEwPT09bGE\/bGE9SGFbdWFdOiEwIT09SGFbdWFdJiYoWT0KSWFbMF0sdmIudW5zaGlmdChJYVsxXSkpO2JyZWFrfWlmKCEwIT09bGEpaWYobGEmJmZhWyJ0aHJvd3MiXSlEYT1sYShEYSk7ZWxzZSB0cnl7RGE9bGEoRGEpfWNhdGNoKGZjKXtyZXR1cm57c3RhdGU6InBhcnNlcmVycm9yIixlcnJvcjpsYT9mYzoiTm8gY29udmVyc2lvbiBmcm9tICIrbWErIiB0byAiK1l9fX1yZXR1cm57c3RhdGU6InN1Y2Nlc3MiLGRhdGE6RGF9fShyLE1hLFEscmEpLHJhPyhyLmlmTW9kaWZpZWQmJigodGE9US5nZXRSZXNwb25zZUhlYWRlcigiTGFzdC1Nb2RpZmllZCIpKSYmKGQubGFzdE1vZGlmaWVkW2ZdPXRhKSwodGE9US5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKGQuZXRhZ1tmXT10YSkpLDIwND09PVN8fCJIRUFEIj09PXIudHlwZT9XPSJub2NvbnRlbnQiOjMwND09PVM\/Vz0ibm90bW9kaWZpZWQiOihXPU1hLnN0YXRlLHZhPU1hLmRhdGEscmE9IShrYT1NYS5lcnJvcikpKTooa2E9VywhUyYmV3x8KFc9ImVycm9yIiwwPlMmJihTPTApKSksUS5zdGF0dXM9ClMsUS5zdGF0dXNUZXh0PShoYXx8VykrIiIscmE\/Ri5yZXNvbHZlV2l0aCh6LFt2YSxXLFFdKTpGLnJlamVjdFdpdGgoeixbUSxXLGthXSksUS5zdGF0dXNDb2RlKGFhKSxhYT12b2lkIDAsbCYmRC50cmlnZ2VyKHJhPyJhamF4U3VjY2VzcyI6ImFqYXhFcnJvciIsW1EscixyYT92YTprYV0pLE8uZmlyZVdpdGgoeixbUSxXXSksbCYmKEQudHJpZ2dlcigiYWpheENvbXBsZXRlIixbUSxyXSksLS1kLmFjdGl2ZXx8ZC5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpKSl9Im9iamVjdCI9PXR5cGVvZiBhJiYoYj1hLGE9dm9pZCAwKTtiPWJ8fHt9O3ZhciBlLGYsZyxoLG0sbCx0LHcscj1kLmFqYXhTZXR1cCh7fSxiKSx6PXIuY29udGV4dHx8cixEPXIuY29udGV4dCYmKHoubm9kZVR5cGV8fHouanF1ZXJ5KT9kKHopOmQuZXZlbnQsRj1kLkRlZmVycmVkKCksTz1kLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxhYT1yLnN0YXR1c0NvZGV8fHt9LEdhPXt9LHFhPXt9LFNhPSJjYW5jZWxlZCIsUT0Ke3JlYWR5U3RhdGU6MCxnZXRSZXNwb25zZUhlYWRlcjpmdW5jdGlvbihTKXt2YXIgaGE7aWYoSyl7aWYoIWgpZm9yKGg9e307aGE9Q2QuZXhlYyhnKTspaFtoYVsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KGhbaGFbMV0udG9Mb3dlckNhc2UoKSsiICJdfHxbXSkuY29uY2F0KGhhWzJdKTtoYT1oW1MudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT1oYT9udWxsOmhhLmpvaW4oIiwgIil9LGdldEFsbFJlc3BvbnNlSGVhZGVyczpmdW5jdGlvbigpe3JldHVybiBLP2c6bnVsbH0sc2V0UmVxdWVzdEhlYWRlcjpmdW5jdGlvbihTLGhhKXtyZXR1cm4gbnVsbD09SyYmKFM9cWFbUy50b0xvd2VyQ2FzZSgpXT1xYVtTLnRvTG93ZXJDYXNlKCldfHxTLEdhW1NdPWhhKSx0aGlzfSxvdmVycmlkZU1pbWVUeXBlOmZ1bmN0aW9uKFMpe3JldHVybiBudWxsPT1LJiYoci5taW1lVHlwZT1TKSx0aGlzfSxzdGF0dXNDb2RlOmZ1bmN0aW9uKFMpe3ZhciBoYTtpZihTKWlmKEspUS5hbHdheXMoU1tRLnN0YXR1c10pOwplbHNlIGZvcihoYSBpbiBTKWFhW2hhXT1bYWFbaGFdLFNbaGFdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oUyl7Uz1TfHxTYTtyZXR1cm4gZSYmZS5hYm9ydChTKSxjKDAsUyksdGhpc319O2lmKEYucHJvbWlzZShRKSxyLnVybD0oKGF8fHIudXJsfHxLYi5ocmVmKSsiIikucmVwbGFjZShFZCxLYi5wcm90b2NvbCsiLy8iKSxyLnR5cGU9Yi5tZXRob2R8fGIudHlwZXx8ci5tZXRob2R8fHIudHlwZSxyLmRhdGFUeXBlcz0oci5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKExhKXx8WyIiXSxudWxsPT1yLmNyb3NzRG9tYWluKXthPUwuY3JlYXRlRWxlbWVudCgiYSIpO3RyeXthLmhyZWY9ci51cmwsYS5ocmVmPWEuaHJlZixyLmNyb3NzRG9tYWluPWljLnByb3RvY29sKyIvLyIraWMuaG9zdCE9YS5wcm90b2NvbCsiLy8iK2EuaG9zdH1jYXRjaChTKXtyLmNyb3NzRG9tYWluPSEwfX1pZihyLmRhdGEmJnIucHJvY2Vzc0RhdGEmJiJzdHJpbmciIT10eXBlb2Ygci5kYXRhJiYKKHIuZGF0YT1kLnBhcmFtKHIuZGF0YSxyLnRyYWRpdGlvbmFsKSksRWIoSGMscixiLFEpLEspcmV0dXJuIFE7Zm9yKHQgaW4obD1kLmV2ZW50JiZyLmdsb2JhbCkmJjA9PWQuYWN0aXZlKysmJmQuZXZlbnQudHJpZ2dlcigiYWpheFN0YXJ0Iiksci50eXBlPXIudHlwZS50b1VwcGVyQ2FzZSgpLHIuaGFzQ29udGVudD0hRGQudGVzdChyLnR5cGUpLGY9ci51cmwucmVwbGFjZShBZCwiIiksci5oYXNDb250ZW50P3IuZGF0YSYmci5wcm9jZXNzRGF0YSYmMD09PShyLmNvbnRlbnRUeXBlfHwiIikuaW5kZXhPZigiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIikmJihyLmRhdGE9ci5kYXRhLnJlcGxhY2UoemQsIisiKSk6KHc9ci51cmwuc2xpY2UoZi5sZW5ndGgpLHIuZGF0YSYmKHIucHJvY2Vzc0RhdGF8fCJzdHJpbmciPT10eXBlb2Ygci5kYXRhKSYmKGYrPShoYy50ZXN0KGYpPyImIjoiPyIpK3IuZGF0YSxkZWxldGUgci5kYXRhKSwhMT09PXIuY2FjaGUmJihmPWYucmVwbGFjZShCZCwKIiQxIiksdz0oaGMudGVzdChmKT8iJiI6Ij8iKSsiXz0iK0RjKysgK3cpLHIudXJsPWYrdyksci5pZk1vZGlmaWVkJiYoZC5sYXN0TW9kaWZpZWRbZl0mJlEuc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLGQubGFzdE1vZGlmaWVkW2ZdKSxkLmV0YWdbZl0mJlEuc2V0UmVxdWVzdEhlYWRlcigiSWYtTm9uZS1NYXRjaCIsZC5ldGFnW2ZdKSksKHIuZGF0YSYmci5oYXNDb250ZW50JiYhMSE9PXIuY29udGVudFR5cGV8fGIuY29udGVudFR5cGUpJiZRLnNldFJlcXVlc3RIZWFkZXIoIkNvbnRlbnQtVHlwZSIsci5jb250ZW50VHlwZSksUS5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLHIuZGF0YVR5cGVzWzBdJiZyLmFjY2VwdHNbci5kYXRhVHlwZXNbMF1dP3IuYWNjZXB0c1tyLmRhdGFUeXBlc1swXV0rKCIqIiE9PXIuZGF0YVR5cGVzWzBdPyIsICIrSWMrIjsgcT0wLjAxIjoiIik6ci5hY2NlcHRzWyIqIl0pLHIuaGVhZGVycylRLnNldFJlcXVlc3RIZWFkZXIodCxyLmhlYWRlcnNbdF0pOwppZihyLmJlZm9yZVNlbmQmJighMT09PXIuYmVmb3JlU2VuZC5jYWxsKHosUSxyKXx8SykpcmV0dXJuIFEuYWJvcnQoKTtpZihTYT0iYWJvcnQiLE8uYWRkKHIuY29tcGxldGUpLFEuZG9uZShyLnN1Y2Nlc3MpLFEuZmFpbChyLmVycm9yKSxlPUViKGNjLHIsYixRKSl7aWYoUS5yZWFkeVN0YXRlPTEsbCYmRC50cmlnZ2VyKCJhamF4U2VuZCIsW1Escl0pLEspcmV0dXJuIFE7ci5hc3luYyYmMDxyLnRpbWVvdXQmJihtPW4uc2V0VGltZW91dChmdW5jdGlvbigpe1EuYWJvcnQoInRpbWVvdXQiKX0sci50aW1lb3V0KSk7dHJ5e3ZhciBLPSExO2Uuc2VuZChHYSxjKX1jYXRjaChTKXtpZihLKXRocm93IFM7YygtMSxTKX19ZWxzZSBjKC0xLCJObyBUcmFuc3BvcnQiKTtyZXR1cm4gUX0sZ2V0SlNPTjpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQuZ2V0KGEsYixjLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihhLGIpe3JldHVybiBkLmdldChhLHZvaWQgMCxiLCJzY3JpcHQiKX19KTtkLmVhY2goWyJnZXQiLAoicG9zdCJdLGZ1bmN0aW9uKGEsYil7ZFtiXT1mdW5jdGlvbihjLGUsZixnKXtyZXR1cm4gTShlKSYmKGc9Z3x8ZixmPWUsZT12b2lkIDApLGQuYWpheChkLmV4dGVuZCh7dXJsOmMsdHlwZTpiLGRhdGFUeXBlOmcsZGF0YTplLHN1Y2Nlc3M6Zn0sZC5pc1BsYWluT2JqZWN0KGMpJiZjKSl9fSk7ZC5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGEpe2Zvcih2YXIgYiBpbiBhLmhlYWRlcnMpImNvbnRlbnQtdHlwZSI9PT1iLnRvTG93ZXJDYXNlKCkmJihhLmNvbnRlbnRUeXBlPWEuaGVhZGVyc1tiXXx8IiIpfSk7ZC5fZXZhbFVybD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuIGQuYWpheCh7dXJsOmEsdHlwZToiR0VUIixkYXRhVHlwZToic2NyaXB0IixjYWNoZTohMCxhc3luYzohMSxnbG9iYWw6ITEsY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbigpe319LGRhdGFGaWx0ZXI6ZnVuY3Rpb24oZSl7ZC5nbG9iYWxFdmFsKGUsYixjKX19KX07ZC5mbi5leHRlbmQoe3dyYXBBbGw6ZnVuY3Rpb24oYSl7dmFyIGI7CnJldHVybiB0aGlzWzBdJiYoTShhKSYmKGE9YS5jYWxsKHRoaXNbMF0pKSxiPWQoYSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJmIuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLGIubWFwKGZ1bmN0aW9uKCl7Zm9yKHZhciBjPXRoaXM7Yy5maXJzdEVsZW1lbnRDaGlsZDspYz1jLmZpcnN0RWxlbWVudENoaWxkO3JldHVybiBjfSkuYXBwZW5kKHRoaXMpKSx0aGlzfSx3cmFwSW5uZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIE0oYSk\/dGhpcy5lYWNoKGZ1bmN0aW9uKGIpe2QodGhpcykud3JhcElubmVyKGEuY2FsbCh0aGlzLGIpKX0pOnRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBiPWQodGhpcyksYz1iLmNvbnRlbnRzKCk7Yy5sZW5ndGg\/Yy53cmFwQWxsKGEpOmIuYXBwZW5kKGEpfSl9LHdyYXA6ZnVuY3Rpb24oYSl7dmFyIGI9TShhKTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGMpe2QodGhpcykud3JhcEFsbChiP2EuY2FsbCh0aGlzLApjKTphKX0pfSx1bndyYXA6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMucGFyZW50KGEpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXtkKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pO2QuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihhKXtyZXR1cm4hZC5leHByLnBzZXVkb3MudmlzaWJsZShhKX07ZC5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihhKXtyZXR1cm4hIShhLm9mZnNldFdpZHRofHxhLm9mZnNldEhlaWdodHx8YS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9O2QuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IG4uWE1MSHR0cFJlcXVlc3R9Y2F0Y2goYSl7fX07dmFyIEZkPXswOjIwMCwxMjIzOjIwNH0sTGI9ZC5hamF4U2V0dGluZ3MueGhyKCk7Ti5jb3JzPSEhTGImJiJ3aXRoQ3JlZGVudGlhbHMiaW4gTGI7Ti5hamF4PUxiPSEhTGI7ZC5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGEpe3ZhciBiLApjO2lmKE4uY29yc3x8TGImJiFhLmNyb3NzRG9tYWluKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsZil7dmFyIGcsaD1hLnhocigpO2lmKGgub3BlbihhLnR5cGUsYS51cmwsYS5hc3luYyxhLnVzZXJuYW1lLGEucGFzc3dvcmQpLGEueGhyRmllbGRzKWZvcihnIGluIGEueGhyRmllbGRzKWhbZ109YS54aHJGaWVsZHNbZ107Zm9yKGcgaW4gYS5taW1lVHlwZSYmaC5vdmVycmlkZU1pbWVUeXBlJiZoLm92ZXJyaWRlTWltZVR5cGUoYS5taW1lVHlwZSksYS5jcm9zc0RvbWFpbnx8ZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdfHwoZVsiWC1SZXF1ZXN0ZWQtV2l0aCJdPSJYTUxIdHRwUmVxdWVzdCIpLGUpaC5zZXRSZXF1ZXN0SGVhZGVyKGcsZVtnXSk7Yj1mdW5jdGlvbihtKXtyZXR1cm4gZnVuY3Rpb24oKXtiJiYoYj1jPWgub25sb2FkPWgub25lcnJvcj1oLm9uYWJvcnQ9aC5vbnRpbWVvdXQ9aC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCwiYWJvcnQiPT09bT9oLmFib3J0KCk6ImVycm9yIj09PW0\/CiJudW1iZXIiIT10eXBlb2YgaC5zdGF0dXM\/ZigwLCJlcnJvciIpOmYoaC5zdGF0dXMsaC5zdGF0dXNUZXh0KTpmKEZkW2guc3RhdHVzXXx8aC5zdGF0dXMsaC5zdGF0dXNUZXh0LCJ0ZXh0IiE9PShoLnJlc3BvbnNlVHlwZXx8InRleHQiKXx8InN0cmluZyIhPXR5cGVvZiBoLnJlc3BvbnNlVGV4dD97YmluYXJ5OmgucmVzcG9uc2V9Ont0ZXh0OmgucmVzcG9uc2VUZXh0fSxoLmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSl9fTtoLm9ubG9hZD1iKCk7Yz1oLm9uZXJyb3I9aC5vbnRpbWVvdXQ9YigiZXJyb3IiKTt2b2lkIDAhPT1oLm9uYWJvcnQ\/aC5vbmFib3J0PWM6aC5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT09aC5yZWFkeVN0YXRlJiZuLnNldFRpbWVvdXQoZnVuY3Rpb24oKXtiJiZjKCl9KX07Yj1iKCJhYm9ydCIpO3RyeXtoLnNlbmQoYS5oYXNDb250ZW50JiZhLmRhdGF8fG51bGwpfWNhdGNoKG0pe2lmKGIpdGhyb3cgbTt9fSxhYm9ydDpmdW5jdGlvbigpe2ImJgpiKCl9fX0pO2QuYWpheFByZWZpbHRlcihmdW5jdGlvbihhKXthLmNyb3NzRG9tYWluJiYoYS5jb250ZW50cy5zY3JpcHQ9ITEpfSk7ZC5hamF4U2V0dXAoe2FjY2VwdHM6e3NjcmlwdDoidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9lY21hc2NyaXB0LCBhcHBsaWNhdGlvbi94LWVjbWFzY3JpcHQifSxjb250ZW50czp7c2NyaXB0Oi9cYig\/OmphdmF8ZWNtYSlzY3JpcHRcYi99LGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oYSl7cmV0dXJuIGQuZ2xvYmFsRXZhbChhKSxhfX19KTtkLmFqYXhQcmVmaWx0ZXIoInNjcmlwdCIsZnVuY3Rpb24oYSl7dm9pZCAwPT09YS5jYWNoZSYmKGEuY2FjaGU9ITEpO2EuY3Jvc3NEb21haW4mJihhLnR5cGU9IkdFVCIpfSk7ZC5hamF4VHJhbnNwb3J0KCJzY3JpcHQiLGZ1bmN0aW9uKGEpe3ZhciBiLGM7aWYoYS5jcm9zc0RvbWFpbnx8YS5zY3JpcHRBdHRycylyZXR1cm57c2VuZDpmdW5jdGlvbihlLApmKXtiPWQoIjxzY3JpcHQ+IikuYXR0cihhLnNjcmlwdEF0dHJzfHx7fSkucHJvcCh7Y2hhcnNldDphLnNjcmlwdENoYXJzZXQsc3JjOmEudXJsfSkub24oImxvYWQgZXJyb3IiLGM9ZnVuY3Rpb24oZyl7Yi5yZW1vdmUoKTtjPW51bGw7ZyYmZigiZXJyb3IiPT09Zy50eXBlPzQwNDoyMDAsZy50eXBlKX0pO0wuaGVhZC5hcHBlbmRDaGlsZChiWzBdKX0sYWJvcnQ6ZnVuY3Rpb24oKXtjJiZjKCl9fX0pO3ZhciBKYyxLYz1bXSxqYz0vKD0pXD8oPz0mfCQpfFw\/XD8vO2QuYWpheFNldHVwKHtqc29ucDoiY2FsbGJhY2siLGpzb25wQ2FsbGJhY2s6ZnVuY3Rpb24oKXt2YXIgYT1LYy5wb3AoKXx8ZC5leHBhbmRvKyJfIitEYysrO3JldHVybiB0aGlzW2FdPSEwLGF9fSk7ZC5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9ITEhPT1hLmpzb25wJiYoamMudGVzdChhLnVybCk\/InVybCI6InN0cmluZyI9PXR5cGVvZiBhLmRhdGEmJjA9PT0oYS5jb250ZW50VHlwZXx8CiIiKS5pbmRleE9mKCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQiKSYmamMudGVzdChhLmRhdGEpJiYiZGF0YSIpO2lmKGh8fCJqc29ucCI9PT1hLmRhdGFUeXBlc1swXSlyZXR1cm4gZT1hLmpzb25wQ2FsbGJhY2s9TShhLmpzb25wQ2FsbGJhY2spP2EuanNvbnBDYWxsYmFjaygpOmEuanNvbnBDYWxsYmFjayxoP2FbaF09YVtoXS5yZXBsYWNlKGpjLCIkMSIrZSk6ITEhPT1hLmpzb25wJiYoYS51cmwrPShoYy50ZXN0KGEudXJsKT8iJiI6Ij8iKSthLmpzb25wKyI9IitlKSxhLmNvbnZlcnRlcnNbInNjcmlwdCBqc29uIl09ZnVuY3Rpb24oKXtyZXR1cm4gZ3x8ZC5lcnJvcihlKyIgd2FzIG5vdCBjYWxsZWQiKSxnWzBdfSxhLmRhdGFUeXBlc1swXT0ianNvbiIsZj1uW2VdLG5bZV09ZnVuY3Rpb24oKXtnPWFyZ3VtZW50c30sYy5hbHdheXMoZnVuY3Rpb24oKXt2b2lkIDA9PT1mP2QobikucmVtb3ZlUHJvcChlKTpuW2VdPWY7YVtlXSYmKGEuanNvbnBDYWxsYmFjaz1iLmpzb25wQ2FsbGJhY2ssCktjLnB1c2goZSkpO2cmJk0oZikmJmYoZ1swXSk7Zz1mPXZvaWQgMH0pLCJzY3JpcHQifSk7Ti5jcmVhdGVIVE1MRG9jdW1lbnQ9KChKYz1MLmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCgiIikuYm9keSkuaW5uZXJIVE1MPSI8Zm9ybT48L2Zvcm0+PGZvcm0+PC9mb3JtPiIsMj09PUpjLmNoaWxkTm9kZXMubGVuZ3RoKTtkLnBhcnNlSFRNTD1mdW5jdGlvbihhLGIsYyl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBhP1tdOigiYm9vbGVhbiI9PXR5cGVvZiBiJiYoYz1iLGI9ITEpLGJ8fChOLmNyZWF0ZUhUTUxEb2N1bWVudD8oKGU9KGI9TC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpKS5jcmVhdGVFbGVtZW50KCJiYXNlIikpLmhyZWY9TC5sb2NhdGlvbi5ocmVmLGIuaGVhZC5hcHBlbmRDaGlsZChlKSk6Yj1MKSxnPSFjJiZbXSwoZj15Yy5leGVjKGEpKT9bYi5jcmVhdGVFbGVtZW50KGZbMV0pXTooZj1SYihbYV0sYixnKSxnJiZnLmxlbmd0aCYmZChnKS5yZW1vdmUoKSwKZC5tZXJnZShbXSxmLmNoaWxkTm9kZXMpKSk7dmFyIGUsZixnfTtkLmZuLmxvYWQ9ZnVuY3Rpb24oYSxiLGMpe3ZhciBlLGYsZyxoPXRoaXMsbT1hLmluZGV4T2YoIiAiKTtyZXR1cm4tMTxtJiYoZT1DKGEuc2xpY2UobSkpLGE9YS5zbGljZSgwLG0pKSxNKGIpPyhjPWIsYj12b2lkIDApOmImJiJvYmplY3QiPT10eXBlb2YgYiYmKGY9IlBPU1QiKSwwPGgubGVuZ3RoJiZkLmFqYXgoe3VybDphLHR5cGU6Znx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6Yn0pLmRvbmUoZnVuY3Rpb24obCl7Zz1hcmd1bWVudHM7aC5odG1sKGU\/ZCgiPGRpdj4iKS5hcHBlbmQoZC5wYXJzZUhUTUwobCkpLmZpbmQoZSk6bCl9KS5hbHdheXMoYyYmZnVuY3Rpb24obCx0KXtoLmVhY2goZnVuY3Rpb24oKXtjLmFwcGx5KHRoaXMsZ3x8W2wucmVzcG9uc2VUZXh0LHQsbF0pfSl9KSx0aGlzfTtkLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbihhKXtyZXR1cm4gZC5ncmVwKGQudGltZXJzLGZ1bmN0aW9uKGIpe3JldHVybiBhPT09CmIuZWxlbX0pLmxlbmd0aH07ZC5vZmZzZXQ9e3NldE9mZnNldDpmdW5jdGlvbihhLGIsYyl7dmFyIGUsZixnLGg9ZC5jc3MoYSwicG9zaXRpb24iKSxtPWQoYSksbD17fTsic3RhdGljIj09PWgmJihhLnN0eWxlLnBvc2l0aW9uPSJyZWxhdGl2ZSIpO3ZhciB0PW0ub2Zmc2V0KCksdz1kLmNzcyhhLCJ0b3AiKSxyPWQuY3NzKGEsImxlZnQiKTsoImFic29sdXRlIj09PWh8fCJmaXhlZCI9PT1oKSYmLTE8KHcrcikuaW5kZXhPZigiYXV0byIpPyhnPShlPW0ucG9zaXRpb24oKSkudG9wLGY9ZS5sZWZ0KTooZz1wYXJzZUZsb2F0KHcpfHwwLGY9cGFyc2VGbG9hdChyKXx8MCk7TShiKSYmKGI9Yi5jYWxsKGEsYyxkLmV4dGVuZCh7fSx0KSkpO251bGwhPWIudG9wJiYobC50b3A9Yi50b3AtdC50b3ArZyk7bnVsbCE9Yi5sZWZ0JiYobC5sZWZ0PWIubGVmdC10LmxlZnQrZik7InVzaW5nImluIGI\/Yi51c2luZy5jYWxsKGEsbCk6bS5jc3MobCl9fTtkLmZuLmV4dGVuZCh7b2Zmc2V0OmZ1bmN0aW9uKGEpe2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PQphP3RoaXM6dGhpcy5lYWNoKGZ1bmN0aW9uKGYpe2Qub2Zmc2V0LnNldE9mZnNldCh0aGlzLGEsZil9KTt2YXIgYixjLGU9dGhpc1swXTtyZXR1cm4gZT9lLmdldENsaWVudFJlY3RzKCkubGVuZ3RoPyhiPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz1lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcse3RvcDpiLnRvcCtjLnBhZ2VZT2Zmc2V0LGxlZnQ6Yi5sZWZ0K2MucGFnZVhPZmZzZXR9KTp7dG9wOjAsbGVmdDowfTp2b2lkIDB9LHBvc2l0aW9uOmZ1bmN0aW9uKCl7aWYodGhpc1swXSl7dmFyIGEsYj10aGlzWzBdLGM9e3RvcDowLGxlZnQ6MH07aWYoImZpeGVkIj09PWQuY3NzKGIsInBvc2l0aW9uIikpdmFyIGU9Yi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtlbHNle2U9dGhpcy5vZmZzZXQoKTt2YXIgZj1iLm93bmVyRG9jdW1lbnQ7Zm9yKGE9Yi5vZmZzZXRQYXJlbnR8fGYuZG9jdW1lbnRFbGVtZW50O2EmJihhPT09Zi5ib2R5fHxhPT09Zi5kb2N1bWVudEVsZW1lbnQpJiYKInN0YXRpYyI9PT1kLmNzcyhhLCJwb3NpdGlvbiIpOylhPWEucGFyZW50Tm9kZTthJiZhIT09YiYmMT09PWEubm9kZVR5cGUmJigoYz1kKGEpLm9mZnNldCgpKS50b3ArPWQuY3NzKGEsImJvcmRlclRvcFdpZHRoIiwhMCksYy5sZWZ0Kz1kLmNzcyhhLCJib3JkZXJMZWZ0V2lkdGgiLCEwKSl9cmV0dXJue3RvcDplLnRvcC1jLnRvcC1kLmNzcyhiLCJtYXJnaW5Ub3AiLCEwKSxsZWZ0OmUubGVmdC1jLmxlZnQtZC5jc3MoYiwibWFyZ2luTGVmdCIsITApfX19LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hcChmdW5jdGlvbigpe2Zvcih2YXIgYT10aGlzLm9mZnNldFBhcmVudDthJiYic3RhdGljIj09PWQuY3NzKGEsInBvc2l0aW9uIik7KWE9YS5vZmZzZXRQYXJlbnQ7cmV0dXJuIGF8fGpifSl9fSk7ZC5lYWNoKHtzY3JvbGxMZWZ0OiJwYWdlWE9mZnNldCIsc2Nyb2xsVG9wOiJwYWdlWU9mZnNldCJ9LGZ1bmN0aW9uKGEsYil7dmFyIGM9InBhZ2VZT2Zmc2V0Ij09PQpiO2QuZm5bYV09ZnVuY3Rpb24oZSl7cmV0dXJuIFhhKHRoaXMsZnVuY3Rpb24oZixnLGgpe3ZhciBtO2lmKGtiKGYpP209Zjo5PT09Zi5ub2RlVHlwZSYmKG09Zi5kZWZhdWx0Vmlldyksdm9pZCAwPT09aClyZXR1cm4gbT9tW2JdOmZbZ107bT9tLnNjcm9sbFRvKGM\/bS5wYWdlWE9mZnNldDpoLGM\/aDptLnBhZ2VZT2Zmc2V0KTpmW2ddPWh9LGEsZSxhcmd1bWVudHMubGVuZ3RoKX19KTtkLmVhY2goWyJ0b3AiLCJsZWZ0Il0sZnVuY3Rpb24oYSxiKXtkLmNzc0hvb2tzW2JdPVZiKE4ucGl4ZWxQb3NpdGlvbixmdW5jdGlvbihjLGUpe2lmKGUpcmV0dXJuIGU9S2EoYyxiKSxiYy50ZXN0KGUpP2QoYykucG9zaXRpb24oKVtiXSsicHgiOmV9KX0pO2QuZWFjaCh7SGVpZ2h0OiJoZWlnaHQiLFdpZHRoOiJ3aWR0aCJ9LGZ1bmN0aW9uKGEsYil7ZC5lYWNoKHtwYWRkaW5nOiJpbm5lciIrYSxjb250ZW50OmIsIiI6Im91dGVyIithfSxmdW5jdGlvbihjLGUpe2QuZm5bZV09ZnVuY3Rpb24oZiwKZyl7dmFyIGg9YXJndW1lbnRzLmxlbmd0aCYmKGN8fCJib29sZWFuIiE9dHlwZW9mIGYpLG09Y3x8KCEwPT09Znx8ITA9PT1nPyJtYXJnaW4iOiJib3JkZXIiKTtyZXR1cm4gWGEodGhpcyxmdW5jdGlvbihsLHQsdyl7dmFyIHI7cmV0dXJuIGtiKGwpPzA9PT1lLmluZGV4T2YoIm91dGVyIik\/bFsiaW5uZXIiK2FdOmwuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK2FdOjk9PT1sLm5vZGVUeXBlPyhyPWwuZG9jdW1lbnRFbGVtZW50LE1hdGgubWF4KGwuYm9keVsic2Nyb2xsIithXSxyWyJzY3JvbGwiK2FdLGwuYm9keVsib2Zmc2V0IithXSxyWyJvZmZzZXQiK2FdLHJbImNsaWVudCIrYV0pKTp2b2lkIDA9PT13P2QuY3NzKGwsdCxtKTpkLnN0eWxlKGwsdCx3LG0pfSxiLGg\/Zjp2b2lkIDAsaCl9fSl9KTtkLmVhY2goImFqYXhTdGFydCBhamF4U3RvcCBhamF4Q29tcGxldGUgYWpheEVycm9yIGFqYXhTdWNjZXNzIGFqYXhTZW5kIi5zcGxpdCgiICIpLGZ1bmN0aW9uKGEsCmIpe2QuZm5bYl09ZnVuY3Rpb24oYyl7cmV0dXJuIHRoaXMub24oYixjKX19KTtkLmZuLmV4dGVuZCh7YmluZDpmdW5jdGlvbihhLGIsYyl7cmV0dXJuIHRoaXMub24oYSxudWxsLGIsYyl9LHVuYmluZDpmdW5jdGlvbihhLGIpe3JldHVybiB0aGlzLm9mZihhLG51bGwsYil9LGRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjLGUpe3JldHVybiB0aGlzLm9uKGIsYSxjLGUpfSx1bmRlbGVnYXRlOmZ1bmN0aW9uKGEsYixjKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg\/dGhpcy5vZmYoYSwiKioiKTp0aGlzLm9mZihiLGF8fCIqKiIsYyl9LGhvdmVyOmZ1bmN0aW9uKGEsYil7cmV0dXJuIHRoaXMubW91c2VlbnRlcihhKS5tb3VzZWxlYXZlKGJ8fGEpfX0pO2QuZWFjaCgiYmx1ciBmb2N1cyBmb2N1c2luIGZvY3Vzb3V0IHJlc2l6ZSBzY3JvbGwgY2xpY2sgZGJsY2xpY2sgbW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgY2hhbmdlIHNlbGVjdCBzdWJtaXQga2V5ZG93biBrZXlwcmVzcyBrZXl1cCBjb250ZXh0bWVudSIuc3BsaXQoIiAiKSwKZnVuY3Rpb24oYSxiKXtkLmZuW2JdPWZ1bmN0aW9uKGMsZSl7cmV0dXJuIDA8YXJndW1lbnRzLmxlbmd0aD90aGlzLm9uKGIsbnVsbCxjLGUpOnRoaXMudHJpZ2dlcihiKX19KTt2YXIgR2Q9L15bXHNcdUZFRkZceEEwXSt8KFteXHNcdUZFRkZceEEwXSlbXHNcdUZFRkZceEEwXSskL2c7ZC5wcm94eT1mdW5jdGlvbihhLGIpe3ZhciBjLGUsZjtpZigic3RyaW5nIj09dHlwZW9mIGImJihjPWFbYl0sYj1hLGE9YyksTShhKSlyZXR1cm4gZT15YS5jYWxsKGFyZ3VtZW50cywyKSwoZj1mdW5jdGlvbigpe3JldHVybiBhLmFwcGx5KGJ8fHRoaXMsZS5jb25jYXQoeWEuY2FsbChhcmd1bWVudHMpKSl9KS5ndWlkPWEuZ3VpZD1hLmd1aWR8fGQuZ3VpZCsrLGZ9O2QuaG9sZFJlYWR5PWZ1bmN0aW9uKGEpe2E\/ZC5yZWFkeVdhaXQrKzpkLnJlYWR5KCEwKX07ZC5pc0FycmF5PUFycmF5LmlzQXJyYXk7ZC5wYXJzZUpTT049SlNPTi5wYXJzZTtkLm5vZGVOYW1lPVg7ZC5pc0Z1bmN0aW9uPU07ZC5pc1dpbmRvdz0Ka2I7ZC5jYW1lbENhc2U9QmE7ZC50eXBlPVU7ZC5ub3c9RGF0ZS5ub3c7ZC5pc051bWVyaWM9ZnVuY3Rpb24oYSl7dmFyIGI9ZC50eXBlKGEpO3JldHVybigibnVtYmVyIj09PWJ8fCJzdHJpbmciPT09YikmJiFpc05hTihhLXBhcnNlRmxvYXQoYSkpfTtkLnRyaW09ZnVuY3Rpb24oYSl7cmV0dXJuIG51bGw9PWE\/IiI6KGErIiIpLnJlcGxhY2UoR2QsIiQxIil9OyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQmJmRlZmluZSgianF1ZXJ5IixbXSxmdW5jdGlvbigpe3JldHVybiBkfSk7dmFyIEhkPW4ualF1ZXJ5LElkPW4uJDtyZXR1cm4gZC5ub0NvbmZsaWN0PWZ1bmN0aW9uKGEpe3JldHVybiBuLiQ9PT1kJiYobi4kPUlkKSxhJiZuLmpRdWVyeT09PWQmJihuLmpRdWVyeT1IZCksZH0sInVuZGVmaW5lZCI9PXR5cGVvZiBkYSYmKG4ualF1ZXJ5PW4uJD1kKSxkfSk7dmFyIG1hdGNoZWQsYnJvd3NlcjsKalF1ZXJ5LnVhTWF0Y2g9ZnVuY3Rpb24obil7bj1uLnRvTG93ZXJDYXNlKCk7bj0vKGNocm9tZSlbIFwvXShbXHcuXSspLy5leGVjKG4pfHwvKHdlYmtpdClbIFwvXShbXHcuXSspLy5leGVjKG4pfHwvKG9wZXJhKSg\/Oi4qdmVyc2lvbnwpWyBcL10oW1x3Ll0rKS8uZXhlYyhuKXx8Lyhtc2llKSAoW1x3Ll0rKS8uZXhlYyhuKXx8MD5uLmluZGV4T2YoImNvbXBhdGlibGUiKSYmLyhtb3ppbGxhKSg\/Oi4qPyBydjooW1x3Ll0rKXwpLy5leGVjKG4pfHxbXTtyZXR1cm57YnJvd3NlcjpuWzFdfHwiIix2ZXJzaW9uOm5bMl18fCIwIn19O21hdGNoZWQ9alF1ZXJ5LnVhTWF0Y2gobmF2aWdhdG9yLnVzZXJBZ2VudCk7YnJvd3Nlcj17fTttYXRjaGVkLmJyb3dzZXImJihicm93c2VyW21hdGNoZWQuYnJvd3Nlcl09ITAsYnJvd3Nlci52ZXJzaW9uPW1hdGNoZWQudmVyc2lvbik7YnJvd3Nlci5jaHJvbWU\/YnJvd3Nlci53ZWJraXQ9ITA6YnJvd3Nlci53ZWJraXQmJihicm93c2VyLnNhZmFyaT0hMCk7CmpRdWVyeS5icm93c2VyPWJyb3dzZXI7CihmdW5jdGlvbihuKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxmdW5jdGlvbihkYSl7cmV0dXJuIG4oZGEsd2luZG93KX0pOiJvYmplY3QiPT09dHlwZW9mIG1vZHVsZSYmbW9kdWxlLmV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9bihyZXF1aXJlKCJqcXVlcnkiKSx3aW5kb3cpOm4oalF1ZXJ5LHdpbmRvdyl9KShmdW5jdGlvbihuLGRhKXtmdW5jdGlvbiB3YSh1KXthOnt2YXIgeD0vXihcZCspXC4oXGQrKVwuKFxkKykvLEM9eC5leGVjKG4uZm4uanF1ZXJ5KXx8W107eD14LmV4ZWModSl8fFtdO2Zvcih1PTE7Mz49dTt1Kyspe2lmKCtDW3VdPit4W3VdKXtDPTE7YnJlYWsgYX1pZigrQ1t1XTwreFt1XSl7Qz0tMTticmVhayBhfX1DPTB9cmV0dXJuIDA8PUN9ZnVuY3Rpb24gVSh1LHgpe3ZhciBDPWRhLmNvbnNvbGU7IW4ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKHUpfHxuLm1pZ3JhdGVEZWR1cGxpY2F0ZVdhcm5pbmdzJiZtYlt4XXx8CihtYlt4XT0hMCxuLm1pZ3JhdGVXYXJuaW5ncy5wdXNoKHgrIiBbIit1KyJdIiksQyYmQy53YXJuJiYhbi5taWdyYXRlTXV0ZSYmKEMud2FybigiSlFNSUdSQVRFOiAiK3gpLG4ubWlncmF0ZVRyYWNlJiZDLnRyYWNlJiZDLnRyYWNlKCkpKX1mdW5jdGlvbiBlYih1LHgsQyxILFApe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh1LHgse2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe1UoSCxQKTtyZXR1cm4gQ30sc2V0OmZ1bmN0aW9uKGVhKXtVKEgsUCk7Qz1lYX19KX1mdW5jdGlvbiBYKHUseCxDLEgsUCl7dmFyIGVhLFFhPXVbeF07dVt4XT1mdW5jdGlvbigpe1AmJlUoSCxQKTtlYT1uLm1pZ3JhdGVJc1BhdGNoRW5hYmxlZChIKT9DOlFhfHxuLm5vb3A7cmV0dXJuIGVhLmFwcGx5KHRoaXMsYXJndW1lbnRzKX19ZnVuY3Rpb24gYmEodSx4LEMsSCxQKXtpZighUCl0aHJvdyBFcnJvcigiTm8gd2FybmluZyBtZXNzYWdlIHByb3ZpZGVkIik7cmV0dXJuIFgodSwKeCxDLEgsUCl9ZnVuY3Rpb24gamEodSx4LEMsSCl7cmV0dXJuIFgodSx4LEMsSCl9ZnVuY3Rpb24gbGIodSl7cmV0dXJuIHUucmVwbGFjZSgvLShbYS16XSkvZyxmdW5jdGlvbih4LEMpe3JldHVybiBDLnRvVXBwZXJDYXNlKCl9KX1mdW5jdGlvbiBZYSh1KXtyZXR1cm4gcGIudGVzdCh1KSYmU2IudGVzdCh1WzBdLnRvVXBwZXJDYXNlKCkrdS5zbGljZSgxKSl9bi5taWdyYXRlVmVyc2lvbj0iMy40LjEiO3ZhciBaYT1PYmplY3QuY3JlYXRlKG51bGwpO24ubWlncmF0ZURpc2FibGVQYXRjaGVzPWZ1bmN0aW9uKCl7dmFyIHU7Zm9yKHU9MDt1PGFyZ3VtZW50cy5sZW5ndGg7dSsrKVphW2FyZ3VtZW50c1t1XV09ITB9O24ubWlncmF0ZUVuYWJsZVBhdGNoZXM9ZnVuY3Rpb24oKXt2YXIgdTtmb3IodT0wO3U8YXJndW1lbnRzLmxlbmd0aDt1KyspZGVsZXRlIFphW2FyZ3VtZW50c1t1XV19O24ubWlncmF0ZUlzUGF0Y2hFbmFibGVkPWZ1bmN0aW9uKHUpe3JldHVybiFaYVt1XX07ZGEuY29uc29sZSYmCmRhLmNvbnNvbGUubG9nJiYobiYmd2EoIjMuMC4wIikmJiF3YSgiNS4wLjAiKXx8ZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogalF1ZXJ5IDMueC00LnggUkVRVUlSRUQiKSxuLm1pZ3JhdGVXYXJuaW5ncyYmZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogTWlncmF0ZSBwbHVnaW4gbG9hZGVkIG11bHRpcGxlIHRpbWVzIiksZGEuY29uc29sZS5sb2coIkpRTUlHUkFURTogTWlncmF0ZSBpcyBpbnN0YWxsZWQiKyhuLm1pZ3JhdGVNdXRlPyIiOiIgd2l0aCBsb2dnaW5nIGFjdGl2ZSIpKyIsIHZlcnNpb24gIituLm1pZ3JhdGVWZXJzaW9uKSk7dmFyIG1iPXt9O24ubWlncmF0ZURlZHVwbGljYXRlV2FybmluZ3M9ITA7bi5taWdyYXRlV2FybmluZ3M9W107dm9pZCAwPT09bi5taWdyYXRlVHJhY2UmJihuLm1pZ3JhdGVUcmFjZT0hMCk7bi5taWdyYXRlUmVzZXQ9ZnVuY3Rpb24oKXttYj17fTtuLm1pZ3JhdGVXYXJuaW5ncy5sZW5ndGg9MH07IkJhY2tDb21wYXQiPT09ZGEuZG9jdW1lbnQuY29tcGF0TW9kZSYmClUoInF1aXJrcyIsImpRdWVyeSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIFF1aXJrcyBNb2RlIik7dmFyIE9hLE5iPXt9LEJhPW4uZm4uaW5pdCxKYT1uLmZpbmQsT2I9L1xbKFxzKlstXHddK1xzKikoW358XiQqXT89KVxzKihbLVx3I10qPyNbLVx3I10qKVxzKlxdLyxQYj0vXFsoXHMqWy1cd10rXHMqKShbfnxeJCpdPz0pXHMqKFstXHcjXSo\/I1stXHcjXSopXHMqXF0vZywkYT0vXltcc1x1RkVGRlx4QTBdK3woW15cc1x1RkVGRlx4QTBdKVtcc1x1RkVGRlx4QTBdKyQvZztqYShuLmZuLCJpbml0IixmdW5jdGlvbih1KXt2YXIgeD1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpO24ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKCJzZWxlY3Rvci1lbXB0eS1pZCIpJiYic3RyaW5nIj09PXR5cGVvZiB1JiYiIyI9PT11JiYoVSgic2VsZWN0b3ItZW1wdHktaWQiLCJqUXVlcnkoICcjJyApIGlzIG5vdCBhIHZhbGlkIHNlbGVjdG9yIikseFswXT1bXSk7cmV0dXJuIEJhLmFwcGx5KHRoaXMsCngpfSwic2VsZWN0b3ItZW1wdHktaWQiKTtuLmZuLmluaXQucHJvdG90eXBlPW4uZm47amEobiwiZmluZCIsZnVuY3Rpb24odSl7dmFyIHg9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKTtpZigic3RyaW5nIj09PXR5cGVvZiB1JiZPYi50ZXN0KHUpKXRyeXtkYS5kb2N1bWVudC5xdWVyeVNlbGVjdG9yKHUpfWNhdGNoKEMpe3U9dS5yZXBsYWNlKFBiLGZ1bmN0aW9uKEgsUCxlYSxRYSl7cmV0dXJuIlsiK1ArZWErJyInK1FhKyciXSd9KTt0cnl7ZGEuZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih1KSxVKCJzZWxlY3Rvci1oYXNoIiwiQXR0cmlidXRlIHNlbGVjdG9yIHdpdGggJyMnIG11c3QgYmUgcXVvdGVkOiAiK3hbMF0pLHhbMF09dX1jYXRjaChIKXtVKCJzZWxlY3Rvci1oYXNoIiwiQXR0cmlidXRlIHNlbGVjdG9yIHdpdGggJyMnIHdhcyBub3QgZml4ZWQ6ICIreFswXSl9fXJldHVybiBKYS5hcHBseSh0aGlzLHgpfSwic2VsZWN0b3ItaGFzaCIpO2ZvcihPYSBpbiBKYSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoSmEsCk9hKSYmKG4uZmluZFtPYV09SmFbT2FdKTtiYShuLmZuLCJzaXplIixmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aH0sInNpemUiLCJqUXVlcnkuZm4uc2l6ZSgpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQ7IHVzZSB0aGUgLmxlbmd0aCBwcm9wZXJ0eSIpO2JhKG4sInBhcnNlSlNPTiIsZnVuY3Rpb24oKXtyZXR1cm4gSlNPTi5wYXJzZS5hcHBseShudWxsLGFyZ3VtZW50cyl9LCJwYXJzZUpTT04iLCJqUXVlcnkucGFyc2VKU09OIGlzIGRlcHJlY2F0ZWQ7IHVzZSBKU09OLnBhcnNlIik7YmEobiwiaG9sZFJlYWR5IixuLmhvbGRSZWFkeSwiaG9sZFJlYWR5IiwialF1ZXJ5LmhvbGRSZWFkeSBpcyBkZXByZWNhdGVkIik7YmEobiwidW5pcXVlIixuLnVuaXF1ZVNvcnQsInVuaXF1ZSIsImpRdWVyeS51bmlxdWUgaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS51bmlxdWVTb3J0Iik7ZWIobi5leHByLCJmaWx0ZXJzIixuLmV4cHIucHNldWRvcywiZXhwci1wcmUtcHNldWRvcyIsImpRdWVyeS5leHByLmZpbHRlcnMgaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS5leHByLnBzZXVkb3MiKTsKZWIobi5leHByLCI6IixuLmV4cHIucHNldWRvcywiZXhwci1wcmUtcHNldWRvcyIsImpRdWVyeS5leHByWyc6J10gaXMgZGVwcmVjYXRlZDsgdXNlIGpRdWVyeS5leHByLnBzZXVkb3MiKTt3YSgiMy4xLjEiKSYmYmEobiwidHJpbSIsZnVuY3Rpb24odSl7cmV0dXJuIG51bGw9PXU\/IiI6KHUrIiIpLnJlcGxhY2UoJGEsIiQxIil9LCJ0cmltIiwialF1ZXJ5LnRyaW0gaXMgZGVwcmVjYXRlZDsgdXNlIFN0cmluZy5wcm90b3R5cGUudHJpbSIpO3dhKCIzLjIuMCIpJiYoYmEobiwibm9kZU5hbWUiLGZ1bmN0aW9uKHUseCl7cmV0dXJuIHUubm9kZU5hbWUmJnUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXgudG9Mb3dlckNhc2UoKX0sIm5vZGVOYW1lIiwialF1ZXJ5Lm5vZGVOYW1lIGlzIGRlcHJlY2F0ZWQiKSxiYShuLCJpc0FycmF5IixBcnJheS5pc0FycmF5LCJpc0FycmF5IiwialF1ZXJ5LmlzQXJyYXkgaXMgZGVwcmVjYXRlZDsgdXNlIEFycmF5LmlzQXJyYXkiKSk7d2EoIjMuMy4wIikmJgooYmEobiwiaXNOdW1lcmljIixmdW5jdGlvbih1KXt2YXIgeD10eXBlb2YgdTtyZXR1cm4oIm51bWJlciI9PT14fHwic3RyaW5nIj09PXgpJiYhaXNOYU4odS1wYXJzZUZsb2F0KHUpKX0sImlzTnVtZXJpYyIsImpRdWVyeS5pc051bWVyaWMoKSBpcyBkZXByZWNhdGVkIiksbi5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbih1LHgpe05iWyJbb2JqZWN0ICIreCsiXSJdPXgudG9Mb3dlckNhc2UoKX0pLGJhKG4sInR5cGUiLGZ1bmN0aW9uKHUpe3JldHVybiBudWxsPT11P3UrIiI6Im9iamVjdCI9PT10eXBlb2YgdXx8ImZ1bmN0aW9uIj09PXR5cGVvZiB1P05iW09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh1KV18fCJvYmplY3QiOnR5cGVvZiB1fSwidHlwZSIsImpRdWVyeS50eXBlIGlzIGRlcHJlY2F0ZWQiKSxiYShuLCJpc0Z1bmN0aW9uIixmdW5jdGlvbih1KXtyZXR1cm4iZnVuY3Rpb24iPT09CnR5cGVvZiB1fSwiaXNGdW5jdGlvbiIsImpRdWVyeS5pc0Z1bmN0aW9uKCkgaXMgZGVwcmVjYXRlZCIpLGJhKG4sImlzV2luZG93IixmdW5jdGlvbih1KXtyZXR1cm4gbnVsbCE9dSYmdT09PXUud2luZG93fSwiaXNXaW5kb3ciLCJqUXVlcnkuaXNXaW5kb3coKSBpcyBkZXByZWNhdGVkIikpO2lmKG4uYWpheCl7dmFyIHNhPW4uYWpheCxuYj0vKD0pXD8oPz0mfCQpfFw\/XD8vO2phKG4sImFqYXgiLGZ1bmN0aW9uKCl7dmFyIHU9c2EuYXBwbHkodGhpcyxhcmd1bWVudHMpO3UucHJvbWlzZSYmKGJhKHUsInN1Y2Nlc3MiLHUuZG9uZSwianFYSFItbWV0aG9kcyIsImpRWEhSLnN1Y2Nlc3MgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCIpLGJhKHUsImVycm9yIix1LmZhaWwsImpxWEhSLW1ldGhvZHMiLCJqUVhIUi5lcnJvciBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIiksYmEodSwiY29tcGxldGUiLHUuYWx3YXlzLCJqcVhIUi1tZXRob2RzIiwialFYSFIuY29tcGxldGUgaXMgZGVwcmVjYXRlZCBhbmQgcmVtb3ZlZCIpKTsKcmV0dXJuIHV9LCJqcVhIUi1tZXRob2RzIik7d2EoIjQuMC4wIil8fG4uYWpheFByZWZpbHRlcigiK2pzb24iLGZ1bmN0aW9uKHUpeyExIT09dS5qc29ucCYmKG5iLnRlc3QodS51cmwpfHwic3RyaW5nIj09PXR5cGVvZiB1LmRhdGEmJjA9PT0odS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZuYi50ZXN0KHUuZGF0YSkpJiZVKCJqc29ucC1wcm9tb3Rpb24iLCJKU09OLXRvLUpTT05QIGF1dG8tcHJvbW90aW9uIGlzIGRlcHJlY2F0ZWQiKX0pfXZhciBSYj1uLmZuLnJlbW92ZUF0dHIsYWI9bi5mbi50b2dnbGVDbGFzcyxiYj0vXFMrL2c7amEobi5mbiwicmVtb3ZlQXR0ciIsZnVuY3Rpb24odSl7dmFyIHg9dGhpcyxDPSExO24uZWFjaCh1Lm1hdGNoKGJiKSxmdW5jdGlvbihILFApe24uZXhwci5tYXRjaC5ib29sLnRlc3QoUCkmJnguZWFjaChmdW5jdGlvbigpe2lmKCExIT09bih0aGlzKS5wcm9wKFApKXJldHVybiBDPQohMCwhMX0pO0MmJihVKCJyZW1vdmVBdHRyLWJvb2wiLCJqUXVlcnkuZm4ucmVtb3ZlQXR0ciBubyBsb25nZXIgc2V0cyBib29sZWFuIHByb3BlcnRpZXM6ICIrUCkseC5wcm9wKFAsITEpKX0pO3JldHVybiBSYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJyZW1vdmVBdHRyLWJvb2wiKTtqYShuLmZuLCJ0b2dnbGVDbGFzcyIsZnVuY3Rpb24odSl7aWYodm9pZCAwIT09dSYmImJvb2xlYW4iIT09dHlwZW9mIHUpcmV0dXJuIGFiLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtVKCJ0b2dnbGVDbGFzcy1ib29sIiwialF1ZXJ5LmZuLnRvZ2dsZUNsYXNzKCBib29sZWFuICkgaXMgZGVwcmVjYXRlZCIpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgeD10aGlzLmdldEF0dHJpYnV0ZSYmdGhpcy5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiO3gmJm4uZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIix4KTt0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIix4fHwKITE9PT11PyIiOm4uZGF0YSh0aGlzLCJfX2NsYXNzTmFtZV9fIil8fCIiKX0pfSwidG9nZ2xlQ2xhc3MtYm9vbCIpO3ZhciBmYj0hMSxwYj0vXlthLXpdLyxTYj0vXig\/OkJvcmRlcig\/OlRvcHxSaWdodHxCb3R0b218TGVmdCk\/KD86V2lkdGh8KXwoPzpNYXJnaW58UGFkZGluZyk\/KD86VG9wfFJpZ2h0fEJvdHRvbXxMZWZ0KT98KD86TWlufE1heCk\/KD86V2lkdGh8SGVpZ2h0KSkkLztuLnN3YXAmJm4uZWFjaChbImhlaWdodCIsIndpZHRoIiwicmVsaWFibGVNYXJnaW5SaWdodCJdLGZ1bmN0aW9uKHUseCl7dmFyIEM9bi5jc3NIb29rc1t4XSYmbi5jc3NIb29rc1t4XS5nZXQ7QyYmKG4uY3NzSG9va3NbeF0uZ2V0PWZ1bmN0aW9uKCl7ZmI9ITA7dmFyIEg9Qy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZmI9ITE7cmV0dXJuIEh9KX0pO2phKG4sInN3YXAiLGZ1bmN0aW9uKHUseCxDLEgpe3ZhciBQLGVhPXt9O2ZifHxVKCJzd2FwIiwialF1ZXJ5LnN3YXAoKSBpcyB1bmRvY3VtZW50ZWQgYW5kIGRlcHJlY2F0ZWQiKTsKZm9yKFAgaW4geCllYVtQXT11LnN0eWxlW1BdLHUuc3R5bGVbUF09eFtQXTtDPUMuYXBwbHkodSxIfHxbXSk7Zm9yKFAgaW4geCl1LnN0eWxlW1BdPWVhW1BdO3JldHVybiBDfSwic3dhcCIpO3dhKCIzLjQuMCIpJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBQcm94eSYmKG4uY3NzUHJvcHM9bmV3IFByb3h5KG4uY3NzUHJvcHN8fHt9LHtzZXQ6ZnVuY3Rpb24oKXtVKCJjc3NQcm9wcyIsImpRdWVyeS5jc3NQcm9wcyBpcyBkZXByZWNhdGVkIik7cmV0dXJuIFJlZmxlY3Quc2V0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KSk7aWYod2EoIjQuMC4wIikpe3ZhciBxYj17YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLApncmlkUm93U3RhcnQ6ITAsbGluZUhlaWdodDohMCxvcGFjaXR5OiEwLG9yZGVyOiEwLG9ycGhhbnM6ITAsd2lkb3dzOiEwLHpJbmRleDohMCx6b29tOiEwfTtuLmNzc051bWJlcj0idW5kZWZpbmVkIiE9PXR5cGVvZiBQcm94eT9uZXcgUHJveHkocWIse2dldDpmdW5jdGlvbigpe1UoImNzcy1udW1iZXIiLCJqUXVlcnkuY3NzTnVtYmVyIGlzIGRlcHJlY2F0ZWQiKTtyZXR1cm4gUmVmbGVjdC5nZXQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSxzZXQ6ZnVuY3Rpb24oKXtVKCJjc3MtbnVtYmVyIiwialF1ZXJ5LmNzc051bWJlciBpcyBkZXByZWNhdGVkIik7cmV0dXJuIFJlZmxlY3Quc2V0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KTpxYn1lbHNlIHFiPW4uY3NzTnVtYmVyO3ZhciAkYj1uLmZuLmNzcztqYShuLmZuLCJjc3MiLGZ1bmN0aW9uKHUseCl7dmFyIEM9dGhpcztpZih1JiYib2JqZWN0Ij09PXR5cGVvZiB1JiYhQXJyYXkuaXNBcnJheSh1KSlyZXR1cm4gbi5lYWNoKHUsZnVuY3Rpb24oUCwKZWEpe24uZm4uY3NzLmNhbGwoQyxQLGVhKX0pLHRoaXM7aWYoIm51bWJlciI9PT10eXBlb2YgeCl7dmFyIEg9bGIodSk7WWEoSCl8fHFiW0hdfHxVKCJjc3MtbnVtYmVyIiwnTnVtYmVyLXR5cGVkIHZhbHVlcyBhcmUgZGVwcmVjYXRlZCBmb3IgalF1ZXJ5LmZuLmNzcyggIicrdSsnIiwgdmFsdWUgKScpfXJldHVybiAkYi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LCJjc3MtbnVtYmVyIik7dmFyIGdiPW4uZGF0YTtqYShuLCJkYXRhIixmdW5jdGlvbih1LHgsQyl7dmFyIEg7aWYoeCYmIm9iamVjdCI9PT10eXBlb2YgeCYmMj09PWFyZ3VtZW50cy5sZW5ndGgpe3ZhciBQPW4uaGFzRGF0YSh1KSYmZ2IuY2FsbCh0aGlzLHUpLGVhPXt9O2ZvcihIIGluIHgpSCE9PWxiKEgpPyhVKCJkYXRhLWNhbWVsQ2FzZSIsImpRdWVyeS5kYXRhKCkgYWx3YXlzIHNldHMvZ2V0cyBjYW1lbENhc2VkIG5hbWVzOiAiK0gpLFBbSF09eFtIXSk6ZWFbSF09eFtIXTtnYi5jYWxsKHRoaXMsdSxlYSk7cmV0dXJuIHh9cmV0dXJuIHgmJgoic3RyaW5nIj09PXR5cGVvZiB4JiZ4IT09bGIoeCkmJihQPW4uaGFzRGF0YSh1KSYmZ2IuY2FsbCh0aGlzLHUpKSYmeCBpbiBQPyhVKCJkYXRhLWNhbWVsQ2FzZSIsImpRdWVyeS5kYXRhKCkgYWx3YXlzIHNldHMvZ2V0cyBjYW1lbENhc2VkIG5hbWVzOiAiK3gpLDI8YXJndW1lbnRzLmxlbmd0aCYmKFBbeF09QyksUFt4XSk6Z2IuYXBwbHkodGhpcyxhcmd1bWVudHMpfSwiZGF0YS1jYW1lbENhc2UiKTtpZihuLmZ4KXt2YXIgY2I9bi5Ud2Vlbi5wcm90b3R5cGUucnVuLFRiPWZ1bmN0aW9uKHUpe3JldHVybiB1fTtqYShuLlR3ZWVuLnByb3RvdHlwZSwicnVuIixmdW5jdGlvbigpezE8bi5lYXNpbmdbdGhpcy5lYXNpbmddLmxlbmd0aCYmKFUoImVhc2luZy1vbmUtYXJnIiwiJ2pRdWVyeS5lYXNpbmcuIit0aGlzLmVhc2luZy50b1N0cmluZygpKyInIHNob3VsZCB1c2Ugb25seSBvbmUgYXJndW1lbnQiKSxuLmVhc2luZ1t0aGlzLmVhc2luZ109VGIpO2NiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sCiJlYXNpbmctb25lLWFyZyIpO3ZhciBLYT1uLmZ4LmludGVydmFsO2RhLnJlcXVlc3RBbmltYXRpb25GcmFtZSYmT2JqZWN0LmRlZmluZVByb3BlcnR5KG4uZngsImludGVydmFsIix7Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7ZGEuZG9jdW1lbnQuaGlkZGVufHxVKCJmeC1pbnRlcnZhbCIsImpRdWVyeS5meC5pbnRlcnZhbCBpcyBkZXByZWNhdGVkIik7cmV0dXJuIG4ubWlncmF0ZUlzUGF0Y2hFbmFibGVkKCJmeC1pbnRlcnZhbCIpP3ZvaWQgMD09PUthPzEzOkthOkthfSxzZXQ6ZnVuY3Rpb24odSl7VSgiZngtaW50ZXJ2YWwiLCJqUXVlcnkuZnguaW50ZXJ2YWwgaXMgZGVwcmVjYXRlZCIpO0thPXV9fSl9dmFyIFZiPW4uZm4ubG9hZCxBYj1uLmV2ZW50LmFkZCxXYj1uLmV2ZW50LmZpeDtuLmV2ZW50LnByb3BzPVtdO24uZXZlbnQuZml4SG9va3M9e307ZWIobi5ldmVudC5wcm9wcywiY29uY2F0IixuLmV2ZW50LnByb3BzLmNvbmNhdCwiZXZlbnQtb2xkLXBhdGNoIiwKImpRdWVyeS5ldmVudC5wcm9wcy5jb25jYXQoKSBpcyBkZXByZWNhdGVkIGFuZCByZW1vdmVkIik7amEobi5ldmVudCwiZml4IixmdW5jdGlvbih1KXt2YXIgeD11LnR5cGUsQz10aGlzLmZpeEhvb2tzW3hdLEg9bi5ldmVudC5wcm9wcztpZihILmxlbmd0aClmb3IoVSgiZXZlbnQtb2xkLXBhdGNoIiwialF1ZXJ5LmV2ZW50LnByb3BzIGFyZSBkZXByZWNhdGVkIGFuZCByZW1vdmVkOiAiK0guam9pbigpKTtILmxlbmd0aDspbi5ldmVudC5hZGRQcm9wKEgucG9wKCkpO2lmKEMmJiFDLl9taWdyYXRlZF8mJihDLl9taWdyYXRlZF89ITAsVSgiZXZlbnQtb2xkLXBhdGNoIiwialF1ZXJ5LmV2ZW50LmZpeEhvb2tzIGFyZSBkZXByZWNhdGVkIGFuZCByZW1vdmVkOiAiK3gpLChIPUMucHJvcHMpJiZILmxlbmd0aCkpZm9yKDtILmxlbmd0aDspbi5ldmVudC5hZGRQcm9wKEgucG9wKCkpO3g9V2IuY2FsbCh0aGlzLHUpO3JldHVybiBDJiZDLmZpbHRlcj9DLmZpbHRlcih4LHUpOnh9LCJldmVudC1vbGQtcGF0Y2giKTsKamEobi5ldmVudCwiYWRkIixmdW5jdGlvbih1LHgpe3U9PT1kYSYmImxvYWQiPT09eCYmImNvbXBsZXRlIj09PWRhLmRvY3VtZW50LnJlYWR5U3RhdGUmJlUoImxvYWQtYWZ0ZXItZXZlbnQiLCJqUXVlcnkod2luZG93KS5vbignbG9hZCcuLi4pIGNhbGxlZCBhZnRlciBsb2FkIGV2ZW50IG9jY3VycmVkIik7cmV0dXJuIEFiLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sImxvYWQtYWZ0ZXItZXZlbnQiKTtuLmVhY2goWyJsb2FkIiwidW5sb2FkIiwiZXJyb3IiXSxmdW5jdGlvbih1LHgpe2phKG4uZm4seCxmdW5jdGlvbigpe3ZhciBDPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3VtZW50cywwKTtpZigibG9hZCI9PT14JiYic3RyaW5nIj09PXR5cGVvZiBDWzBdKXJldHVybiBWYi5hcHBseSh0aGlzLEMpO1UoInNob3J0aGFuZC1yZW1vdmVkLXYzIiwialF1ZXJ5LmZuLiIreCsiKCkgaXMgZGVwcmVjYXRlZCIpO0Muc3BsaWNlKDAsMCx4KTtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiB0aGlzLm9uLmFwcGx5KHRoaXMsCkMpO3RoaXMudHJpZ2dlckhhbmRsZXIuYXBwbHkodGhpcyxDKTtyZXR1cm4gdGhpc30sInNob3J0aGFuZC1yZW1vdmVkLXYzIil9KTtuLmVhY2goImJsdXIgZm9jdXMgZm9jdXNpbiBmb2N1c291dCByZXNpemUgc2Nyb2xsIGNsaWNrIGRibGNsaWNrIG1vdXNlZG93biBtb3VzZXVwIG1vdXNlbW92ZSBtb3VzZW92ZXIgbW91c2VvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlIGNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgY29udGV4dG1lbnUiLnNwbGl0KCIgIiksZnVuY3Rpb24odSx4KXtiYShuLmZuLHgsZnVuY3Rpb24oQyxIKXtyZXR1cm4gMDxhcmd1bWVudHMubGVuZ3RoP3RoaXMub24oeCxudWxsLEMsSCk6dGhpcy50cmlnZ2VyKHgpfSwic2hvcnRoYW5kLWRlcHJlY2F0ZWQtdjMiLCJqUXVlcnkuZm4uIit4KyIoKSBldmVudCBzaG9ydGhhbmQgaXMgZGVwcmVjYXRlZCIpfSk7bihmdW5jdGlvbigpe24oZGEuZG9jdW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfSk7Cm4uZXZlbnQuc3BlY2lhbC5yZWFkeT17c2V0dXA6ZnVuY3Rpb24oKXt0aGlzPT09ZGEuZG9jdW1lbnQmJlUoInJlYWR5LWV2ZW50IiwiJ3JlYWR5JyBldmVudCBpcyBkZXByZWNhdGVkIil9fTtiYShuLmZuLCJiaW5kIixmdW5jdGlvbih1LHgsQyl7cmV0dXJuIHRoaXMub24odSxudWxsLHgsQyl9LCJwcmUtb24tbWV0aG9kcyIsImpRdWVyeS5mbi5iaW5kKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sInVuYmluZCIsZnVuY3Rpb24odSx4KXtyZXR1cm4gdGhpcy5vZmYodSxudWxsLHgpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4udW5iaW5kKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sImRlbGVnYXRlIixmdW5jdGlvbih1LHgsQyxIKXtyZXR1cm4gdGhpcy5vbih4LHUsQyxIKX0sInByZS1vbi1tZXRob2RzIiwialF1ZXJ5LmZuLmRlbGVnYXRlKCkgaXMgZGVwcmVjYXRlZCIpO2JhKG4uZm4sInVuZGVsZWdhdGUiLGZ1bmN0aW9uKHUseCxDKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg\/CnRoaXMub2ZmKHUsIioqIik6dGhpcy5vZmYoeCx1fHwiKioiLEMpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4udW5kZWxlZ2F0ZSgpIGlzIGRlcHJlY2F0ZWQiKTtiYShuLmZuLCJob3ZlciIsZnVuY3Rpb24odSx4KXtyZXR1cm4gdGhpcy5vbigibW91c2VlbnRlciIsdSkub24oIm1vdXNlbGVhdmUiLHh8fHUpfSwicHJlLW9uLW1ldGhvZHMiLCJqUXVlcnkuZm4uaG92ZXIoKSBpcyBkZXByZWNhdGVkIik7dmFyIHJiPS88KD8hYXJlYXxicnxjb2x8ZW1iZWR8aHJ8aW1nfGlucHV0fGxpbmt8bWV0YXxwYXJhbSkoKFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKVtePl0qKVwvPi9naSxCYj1mdW5jdGlvbih1KXt2YXIgeD1kYS5kb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpO3guYm9keS5pbm5lckhUTUw9dTtyZXR1cm4geC5ib2R5JiZ4LmJvZHkuaW5uZXJIVE1MfTtuLlVOU0FGRV9yZXN0b3JlTGVnYWN5SHRtbFByZWZpbHRlcj1mdW5jdGlvbigpe24ubWlncmF0ZUVuYWJsZVBhdGNoZXMoInNlbGYtY2xvc2VkLXRhZ3MiKX07CmphKG4sImh0bWxQcmVmaWx0ZXIiLGZ1bmN0aW9uKHUpe3ZhciB4PXUucmVwbGFjZShyYiwiPCQxPjwvJDI+Iik7eCE9PXUmJkJiKHUpIT09QmIoeCkmJlUoInNlbGYtY2xvc2VkLXRhZ3MiLCJIVE1MIHRhZ3MgbXVzdCBiZSBwcm9wZXJseSBuZXN0ZWQgYW5kIGNsb3NlZDogIit1KTtyZXR1cm4gdS5yZXBsYWNlKHJiLCI8JDE+PC8kMj4iKX0sInNlbGYtY2xvc2VkLXRhZ3MiKTtuLm1pZ3JhdGVEaXNhYmxlUGF0Y2hlcygic2VsZi1jbG9zZWQtdGFncyIpO3ZhciB6YT1uLmZuLm9mZnNldDtqYShuLmZuLCJvZmZzZXQiLGZ1bmN0aW9uKCl7dmFyIHU9dGhpc1swXTtyZXR1cm4hdXx8dS5ub2RlVHlwZSYmdS5nZXRCb3VuZGluZ0NsaWVudFJlY3Q\/emEuYXBwbHkodGhpcyxhcmd1bWVudHMpOihVKCJvZmZzZXQtdmFsaWQtZWxlbSIsImpRdWVyeS5mbi5vZmZzZXQoKSByZXF1aXJlcyBhIHZhbGlkIERPTSBlbGVtZW50IiksYXJndW1lbnRzLmxlbmd0aD90aGlzOnZvaWQgMCl9LCJvZmZzZXQtdmFsaWQtZWxlbSIpOwppZihuLmFqYXgpe3ZhciBDYj1uLnBhcmFtO2phKG4sInBhcmFtIixmdW5jdGlvbih1LHgpe3ZhciBDPW4uYWpheFNldHRpbmdzJiZuLmFqYXhTZXR0aW5ncy50cmFkaXRpb25hbDt2b2lkIDA9PT14JiZDJiYoVSgicGFyYW0tYWpheC10cmFkaXRpb25hbCIsImpRdWVyeS5wYXJhbSgpIG5vIGxvbmdlciB1c2VzIGpRdWVyeS5hamF4U2V0dGluZ3MudHJhZGl0aW9uYWwiKSx4PUMpO3JldHVybiBDYi5jYWxsKHRoaXMsdSx4KX0sInBhcmFtLWFqYXgtdHJhZGl0aW9uYWwiKX1iYShuLmZuLCJhbmRTZWxmIixuLmZuLmFkZEJhY2ssImFuZFNlbGYiLCJqUXVlcnkuZm4uYW5kU2VsZigpIGlzIGRlcHJlY2F0ZWQgYW5kIHJlbW92ZWQsIHVzZSBqUXVlcnkuZm4uYWRkQmFjaygpIik7aWYobi5EZWZlcnJlZCl7dmFyIERiPW4uRGVmZXJyZWQsdGI9W1sicmVzb2x2ZSIsImRvbmUiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZXNvbHZlZCJdLApbInJlamVjdCIsImZhaWwiLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLG4uQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLCJyZWplY3RlZCJdLFsibm90aWZ5IiwicHJvZ3Jlc3MiLG4uQ2FsbGJhY2tzKCJtZW1vcnkiKSxuLkNhbGxiYWNrcygibWVtb3J5IildXTtqYShuLCJEZWZlcnJlZCIsZnVuY3Rpb24odSl7ZnVuY3Rpb24geCgpe3ZhciBQPWFyZ3VtZW50cztyZXR1cm4gbi5EZWZlcnJlZChmdW5jdGlvbihlYSl7bi5lYWNoKHRiLGZ1bmN0aW9uKFFhLEViKXt2YXIgaGI9ImZ1bmN0aW9uIj09PXR5cGVvZiBQW1FhXSYmUFtRYV07Q1tFYlsxXV0oZnVuY3Rpb24oKXt2YXIgb2E9aGImJmhiLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtpZihvYSYmImZ1bmN0aW9uIj09PXR5cGVvZiBvYS5wcm9taXNlKW9hLnByb21pc2UoKS5kb25lKGVhLnJlc29sdmUpLmZhaWwoZWEucmVqZWN0KS5wcm9ncmVzcyhlYS5ub3RpZnkpO2Vsc2UgZWFbRWJbMF0rIldpdGgiXSh0aGlzPT09SD9lYS5wcm9taXNlKCk6CnRoaXMsaGI\/W29hXTphcmd1bWVudHMpfSl9KTtQPW51bGx9KS5wcm9taXNlKCl9dmFyIEM9RGIoKSxIPUMucHJvbWlzZSgpO2JhKEMsInBpcGUiLHgsImRlZmVycmVkLXBpcGUiLCJkZWZlcnJlZC5waXBlKCkgaXMgZGVwcmVjYXRlZCIpO2JhKEgsInBpcGUiLHgsImRlZmVycmVkLXBpcGUiLCJkZWZlcnJlZC5waXBlKCkgaXMgZGVwcmVjYXRlZCIpO3UmJnUuY2FsbChDLEMpO3JldHVybiBDfSwiZGVmZXJyZWQtcGlwZSIpO24uRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1EYi5leGNlcHRpb25Ib29rfXJldHVybiBufSk7Ci8qKiAvbS9qcy9qcXVlcnkuY29va2llLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWNvb2tpZWpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MjgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWNvb2tpZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzY6MDkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y29va2llanNfY19vbj0iMjAyMy0wOS0wNiAxNDozMDowNiI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oaCxsLHIpe2Z1bmN0aW9uIHQoYil7cmV0dXJuIGJ9ZnVuY3Rpb24gdShiKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChiLnJlcGxhY2UobSwiICIpKX1jYXRjaChjKXt0cnl7cmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudCh1bmVzY2FwZShiKS5yZXBsYWNlKG0sIiAiKSl9Y2F0Y2goYSl7cmV0dXJuIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZyhhLm1lc3NhZ2UpLGJ9fX1mdW5jdGlvbiBuKGIsYyxhLGUsayxmKXsidW5kZWZpbmVkIj09PXR5cGVvZiBmJiYoZj01KTsidW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llTG9nZ2VyP2YmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtuKGIsYyxhLGUsayxmLTEpfSwxRTMpOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGIsYyxhLGUsayl9dmFyIG09L1wrL2csZz1oLmNvb2tpZT1mdW5jdGlvbihiLGMsYSl7aWYoYyE9PXIpcmV0dXJuIENvb2tpZXMuaXNDb29raWVBbGxvd2VkKGIsZnVuY3Rpb24oZCl7ZGVidWcoIkNvb2tpZTogIiwKYixkKTthPWguZXh0ZW5kKHt9LGcuZGVmYXVsdHMsYSk7aWYoIWQpcmV0dXJuIENvb2tpZXMucmVtb3ZlKGIsYS5wYXRoLGEuZG9tYWluKSwhMTtudWxsPT09YyYmKGEuZXhwaXJlcz0tMSk7Im51bWJlciI9PT10eXBlb2YgYS5leHBpcmVzSW5NaW51dGVzJiYoYS5leHBpcmVzPWEuZXhwaXJlc0luTWludXRlcy8xNDQwKTtpZigibnVtYmVyIj09PXR5cGVvZiBhLmV4cGlyZXMpe2Q9YS5leHBpcmVzO3ZhciBwPWEuZXhwaXJlcz1uZXcgRGF0ZTtwLnNldFRpbWUoK3ArODY0RTUqZCl9ZD1uZXcgRGF0ZTtkLnNldEZ1bGxZZWFyKGQuZ2V0RnVsbFllYXIoKSsxKTthLmV4cGlyZXM+ZCYmKGEuZXhwaXJlcz1kKTtjPWcuanNvbj9KU09OLnN0cmluZ2lmeShjKTpTdHJpbmcoYyk7bihiLGMsYS5leHBpcmVzLGEucGF0aCxhLmRvbWFpbik7cmV0dXJuIGwuY29va2llPVtlbmNvZGVVUklDb21wb25lbnQoYiksIj0iLGcucmF3P2M6ZW5jb2RlVVJJQ29tcG9uZW50KGMpLGEuZXhwaXJlcz8iOyBleHBpcmVzPSIrCmEuZXhwaXJlcy50b1VUQ1N0cmluZygpOiIiLGEucGF0aD8iOyBwYXRoPSIrYS5wYXRoOiIiLGEuZG9tYWluPyI7IGRvbWFpbj0iK2EuZG9tYWluOiIiLGEuc2VjdXJlPyI7IHNlY3VyZSI6IiJdLmpvaW4oIiIpfSk7Zm9yKHZhciBlPWcucmF3P3Q6dSxrPWwuY29va2llLnNwbGl0KCI7ICIpLGY9MCx2PWsubGVuZ3RoO2Y8djtmKyspe3ZhciBxPWtbZl0uc3BsaXQoIj0iKTtpZihlKHEuc2hpZnQoKSk9PT1iKXJldHVybiBlPWUocS5qb2luKCI9IikpLGcuanNvbj9KU09OLnBhcnNlKGUpOmV9cmV0dXJuIG51bGx9O2cuZGVmYXVsdHM9e307aC5yZW1vdmVDb29raWU9ZnVuY3Rpb24oYixjKXtyZXR1cm4gbnVsbCE9PWguY29va2llKGIpPyhoLmNvb2tpZShiLG51bGwsYyksITApOiExfX0pKGpRdWVyeSxkb2N1bWVudCk7Ci8qKiAvbS9qcy92YW5pbGxhanMvY29va2llcy5jb25zZW50LmpzICoqLwp2YXIgX19fZDJjX2Nvb2tpZXNjb25zZW50anNfY19vbj0iMjAyNi0wNS0yNiAxNDozMDowMyI7J3VzZSBzdHJpY3QnOyhmdW5jdGlvbigpe3dpbmRvdy5EMkNGYkNvbnNlbnQ9d2luZG93LkQyQ0ZiQ29uc2VudHx8e19zdGF0ZTpudWxsLF9xdWV1ZTpbXSxfZmx1c2g6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLl9xdWV1ZTt0aGlzLl9xdWV1ZT1bXTthLmZvckVhY2goZnVuY3Rpb24oYil7dHJ5e2IoKX1jYXRjaChjKXt9fSl9LGdyYW50OmZ1bmN0aW9uKCl7dGhpcy5fc3RhdGU9ImdyYW50IjsidW5kZWZpbmVkIiE9PXR5cGVvZiBmYnEmJihmYnEoImNvbnNlbnQiLCJncmFudCIpLHRoaXMuX2ZsdXNoKCkpfSxyZXZva2U6ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZT0icmV2b2tlIjsidW5kZWZpbmVkIiE9PXR5cGVvZiBmYnEmJmZicSgiY29uc2VudCIsInJldm9rZSIpfSxvbkdyYW50ZWQ6ZnVuY3Rpb24oYSl7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhKWlmKCJncmFudCI9PT10aGlzLl9zdGF0ZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgZmJxKXRyeXthKCl9Y2F0Y2goYil7fWVsc2UgdGhpcy5fcXVldWUucHVzaChhKX0sCnN5bmNUb0ZicTpmdW5jdGlvbigpe3RoaXMuX3N0YXRlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBmYnEmJihmYnEoImNvbnNlbnQiLHRoaXMuX3N0YXRlKSwiZ3JhbnQiPT09dGhpcy5fc3RhdGUmJnRoaXMuX2ZsdXNoKCkpfX07d2luZG93LkNvb2tpZUNvbnNlbnQ9e0NBVEVHT1JZSURfRVNTRU5USUFMOjIsX2NtcEludGVydmFsSUQ6bnVsbCxfY3VycmVudFZlbmRvcjpudWxsLF9jb29raWVzOm51bGwsX2NhdGVnb3JpZXM6bnVsbCxfcmVnaXN0ZXJlZFJlcXVlc3RzOltdLGluaXQ6ZnVuY3Rpb24oKXtDb29raWVDb25zZW50Ll9sb2FkSlNPTihudWxsKTtDb29raWVDb25zZW50Ll9jbXBJbnRlcnZhbElEPXNldEludGVydmFsKGZ1bmN0aW9uKCl7Q29va2llQ29uc2VudC5saXN0ZW5Gb3JPbmVUcnVzdCgpfSwxRTMpO2xldCBhPUNvb2tpZUNvbnNlbnQuZ2V0Q29uc2VudCgpO251bGw9PWF8fGEuaW5kZXhPZigiQzAwMDIiKTsiZ3JhbnRlZCI9PT0obnVsbD09YXx8LTE8YS5pbmRleE9mKCJDMDAwNCIpPwoiZ3JhbnRlZCI6ImRlbmllZCIpP3dpbmRvdy5EMkNGYkNvbnNlbnQuZ3JhbnQoKTp3aW5kb3cuRDJDRmJDb25zZW50LnJldm9rZSgpfSxsaXN0ZW5Gb3JPbmVUcnVzdDpmdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIE9uZVRydXN0KXtjb25zb2xlLmxvZygiQ29va2llQ29uc2VudC5saXN0ZW5Gb3JPbmVUcnVzdCgpIik7Q29va2llQ29uc2VudC5fY3VycmVudFZlbmRvcj0iT25lVHJ1c3QiO2NsZWFySW50ZXJ2YWwoQ29va2llQ29uc2VudC5fY21wSW50ZXJ2YWxJRCk7dmFyIGE9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI29uZXRydXN0LWNsb3NlLWJ0bi1jb250YWluZXIgLm9uZXRydXN0LWNsb3NlLWJ0bi1oYW5kbGVyIik7YSYmYS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bGV0IGI9d2luZG93LmxvY2F0aW9uLmhvc3RuYW1lLGM9bG9jYXRpb24uaG9zdG5hbWUuc3BsaXQoIi4iKS5zbGljZSgtMikuam9pbigiLiIpOwpkb2N1bWVudC5jb29raWU9Ik9wdGFub25BbGVydEJveENsb3NlZD07IFBhdGg9LzsgRXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVDtkb21haW49IitiKyI7Ijtkb2N1bWVudC5jb29raWU9Ik9wdGFub25BbGVydEJveENsb3NlZD07IFBhdGg9LzsgRXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAxIEdNVDtkb21haW49IitjKyI7In0sMUUzKX0pO09uZVRydXN0Lk9uQ29uc2VudENoYW5nZWQoZnVuY3Rpb24oYil7aWYoYiYmYi5kZXRhaWwpe3ZhciBjPUNvb2tpZUNvbnNlbnQuX2dldENvbnNlbnRDb29raWUoKTtDb29raWVDb25zZW50Ll91cGRhdGVDb25zZW50Q29va2llKEpTT04uc3RyaW5naWZ5KGIuZGV0YWlsKSk7LTE8Yi5kZXRhaWwuaW5kZXhPZigiQzAwMDQiKT9ndGFnKCJjb25zZW50IiwidXBkYXRlIix7YWRfc3RvcmFnZToiZ3JhbnRlZCJ9KTpndGFnKCJjb25zZW50IiwidXBkYXRlIix7YWRfc3RvcmFnZToiZGVuaWVkIn0pOy0xPGIuZGV0YWlsLmluZGV4T2YoIkMwMDAyIik\/Cmd0YWcoImNvbnNlbnQiLCJ1cGRhdGUiLHthbmFseXRpY3Nfc3RvcmFnZToiZ3JhbnRlZCJ9KTpndGFnKCJjb25zZW50IiwidXBkYXRlIix7YW5hbHl0aWNzX3N0b3JhZ2U6ImRlbmllZCJ9KTstMTxiLmRldGFpbC5pbmRleE9mKCJDMDAwNCIpP3dpbmRvdy5EMkNGYkNvbnNlbnQuZ3JhbnQoKTp3aW5kb3cuRDJDRmJDb25zZW50LnJldm9rZSgpOzE9PWIuZGV0YWlsLmxlbmd0aCYmIkMwMDAxIj09Yi5kZXRhaWxbMF0mJihudWxsPT1jfHwxPGMubGVuZ3RoKSYmZDJjRm9vdGVyRGVsZXRlQWxsQ29va2llcyghMCk7aWYoLTE8Yi5kZXRhaWwuaW5kZXhPZigiQzAwMDIiKSl7Yz1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkMmNfY29uc2VudF93YWl0Iik7Yz1udWxsIT1jP0pTT04ucGFyc2UoYXRvYihjKSk6e307Zm9yKHZhciBkIGluIGMpQ29va2llcy5zZXQoY1tkXS5rZXksY1tkXS52YWx1ZSxjW2RdLmV4cGlyZXMsY1tkXS5wYXRoLGNbZF0uZG9tYWluKX1zZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCJkMmNfY29uc2VudF93YWl0Iik7CmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJvZHkiKS5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiZDJjX2NvbnNlbnRfY2hhbmdlZCIse2NhdGVnb3JpZXM6Yi5kZXRhaWx9KSl9fSl9fSxfdXBkYXRlQ29uc2VudENvb2tpZTpmdW5jdGlvbihhKXtDb29raWVzLnNldCgiZDJjX2Nvb2tpZV9jb25zZW50IixhLDM2NSwiLyIpfSxfZ2V0Q29uc2VudENvb2tpZTpmdW5jdGlvbigpe2lmKCFDb29raWVzLmhhcygiZDJjX2Nvb2tpZV9jb25zZW50IikpcmV0dXJuIG51bGw7bGV0IGE9Q29va2llcy5nZXQoImQyY19jb29raWVfY29uc2VudCIpO3JldHVybiBKU09OLnBhcnNlKGEpfSxnZXRDb25zZW50OmZ1bmN0aW9uKCl7bGV0IGE9KCIiK2RvY3VtZW50LmNvb2tpZSkuc3BsaXQoIjsiKTtmb3IobGV0IGI9MDtiPGEubGVuZ3RoO2IrKyl7bGV0IGM9YVtiXTtjPWMudHJpbSgpO2lmKDA9PWMuaW5kZXhPZigiZDJjX2Nvb2tpZV9jb25zZW50PSIpKXt0cnl7Yz1kZWNvZGVVUklDb21wb25lbnQoYyl9Y2F0Y2goZCl7Y29uc29sZS5sb2coZCk7CmJyZWFrfXJldHVybiBjLnN1YnN0cmluZygxOSxjLmxlbmd0aCl9fXJldHVybiBudWxsfSxpc0Nvb2tpZUFsbG93ZWQ6ZnVuY3Rpb24oYSxiKXtpZihbImQyY19jb29raWVfY29uc2VudCIsIkNTUkZET01BSU5DSEVDS18xIl0uaW5jbHVkZXMoYSkpYighMCk7ZWxzZSBpZihudWxsPT09Q29va2llQ29uc2VudC5fY29va2llc3x8bnVsbD09PUNvb2tpZUNvbnNlbnQuX2NhdGVnb3JpZXMpQ29va2llQ29uc2VudC5fcmVnaXN0ZXJKU09OTG9hZGVkRXZlbnQoZnVuY3Rpb24oKXtDb29raWVDb25zZW50LmlzQ29va2llQWxsb3dlZChhLGIpfSk7ZWxzZSBpZihDb29raWVDb25zZW50Ll9jb29raWVzLmhhc093blByb3BlcnR5KGEpKXt2YXIgYz1Db29raWVDb25zZW50Ll9jb29raWVzW2FdLGQ9Q29va2llQ29uc2VudC5fZ2V0VmVuZG9yQ2F0ZWdvcnkoYyksZT1Db29raWVDb25zZW50Ll9nZXRDb25zZW50Q29va2llKCk7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWJ1ZyYmZGVidWcoe25hbWU6YSwKY2F0ZWdvcnk6Yyx2ZW5kb3I6ZCxjb25zZW50OmV9KTtudWxsPT09ZXx8bnVsbD09PWQ\/YighMSk6Im9iamVjdCI9PT10eXBlb2YgZD8oYz0wPGQuZmlsdGVyKGZ1bmN0aW9uKGYpe3JldHVybi0xPGUuaW5kZXhPZihmKX0pLmxlbmd0aCxiKGMpKTpiKC0xPGUuaW5kZXhPZihkKSl9ZWxzZSBiKCExKX0sX2xvYWRKU09OOmZ1bmN0aW9uKGEpe2ZldGNoKCIvanMvanNvbi9jYXRlZ29yaXplZF9jb29raWVzLmpzb24iKS50aGVuKGZ1bmN0aW9uKGIpe3JldHVybiBiLmpzb24oKX0pLnRoZW4oZnVuY3Rpb24oYil7Q29va2llQ29uc2VudC5fY29va2llcz1iLmNvb2tpZXM7Q29va2llQ29uc2VudC5fY2F0ZWdvcmllcz1iLmNhdGVnb3JpZXM7aWYoImZ1bmN0aW9uIj09PXR5cGVvZiBhKXRyeXthKCl9Y2F0Y2goYyl7fTA8Q29va2llQ29uc2VudC5fcmVnaXN0ZXJlZFJlcXVlc3RzLmxlbmd0aCYmQ29va2llQ29uc2VudC5fcmVnaXN0ZXJlZFJlcXVlc3RzLmZvckVhY2goZnVuY3Rpb24oYyl7dHJ5e2MoKX1jYXRjaChkKXt9fSl9KX0sCl9yZWdpc3RlckpTT05Mb2FkZWRFdmVudDpmdW5jdGlvbihhKXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpaWYobnVsbCE9PUNvb2tpZUNvbnNlbnQuX2Nvb2tpZXMpdHJ5e2EoKX1jYXRjaChiKXt9ZWxzZSBDb29raWVDb25zZW50Ll9yZWdpc3RlcmVkUmVxdWVzdHMucHVzaChhKX0sX2dldFZlbmRvckNhdGVnb3J5OmZ1bmN0aW9uKGEpe2lmKG51bGw9PT1Db29raWVDb25zZW50Ll9jdXJyZW50VmVuZG9yKXtsZXQgYz1bXTtPYmplY3QudmFsdWVzKENvb2tpZUNvbnNlbnQuX2NhdGVnb3JpZXMpLmZvckVhY2goZnVuY3Rpb24oZCl7ZC5oYXNPd25Qcm9wZXJ0eShhKSYmYy5wdXNoKGRbYV0pfSk7cmV0dXJuIGN9bGV0IGI9Q29va2llQ29uc2VudC5fY2F0ZWdvcmllc1tDb29raWVDb25zZW50Ll9jdXJyZW50VmVuZG9yXTtyZXR1cm4gYiYmYi5oYXNPd25Qcm9wZXJ0eShhKT9iW2FdOm51bGx9fTt3aW5kb3cuQ29va2llQ29uc2VudC5pbml0KCl9KSgpOwovKiogL20vanMvdmFuaWxsYWpzL2NvbnRlbnRMb2FkZXIuanMgKiovCnZhciBfX19kMmNfY29udGVudExvYWRlcmpzX2Nfb249IjIwMjYtMDUtMDUgMTM6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWMpcmV0dXJuIGFbYl07Yz1hW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsYyxkKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGMsZCk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGMsZCkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7Yz0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5zcGxpdCgiLiIpO2E9MT09PWUubGVuZ3RoO2Q9ZVswXTtkPSFhJiZkIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGgtMTtmKyspe3ZhciBnPWVbZl07aWYoIShnIGluIGQpKXJldHVybjtkPWRbZ119ZT1lW2UubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZFtlXTpudWxsO2I9YihjKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGUpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2UpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGM9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoYy52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZCk7aWYoIWQuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGQ7dmFyIGU9ZC52YWx1ZX1jYXRjaChmKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKGYpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQpe3JldHVybiBhLm5leHQoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gYS50aHJvdyhkKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZCxlKXtmdW5jdGlvbiBmKGcpe2cuZG9uZT9kKGcudmFsdWUpOlByb21pc2UucmVzb2x2ZShnLnZhbHVlKS50aGVuKGIsYykudGhlbihmLGUpfWYoYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9Owpjb25zdCBjb250ZW50QmxvY2tzPSgpPT57Y29uc3QgYT1iPT4kanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXt2YXIgYz1iLmRhdGFzZXQsZCxlPW51bGw9PShkPWIucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT0iYmxvY2stZGF0YSJdJykpP3ZvaWQgMDpkLnZhbHVlO2Q9IkZSRU5DSCI9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWx1ZT8iZnIiOiJlbiI7Yz1PYmplY3QuYXNzaWduKHt9LGMse2RhdGE6ZXx8Int9In0pO2M9eWllbGQoeWllbGQgZmV0Y2goYC8ke2VuY29kZVVSSUNvbXBvbmVudChkKX0vYWpheC9nZXRTa2VsZXRvbkNvbnRlbnRgLHttZXRob2Q6IlBPU1QiLGhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsiLGNoYXJzZXQ6IlVURi04In0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKGMpfSkpLmpzb24oKTsKaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjLnN0YXR1cyYmInN1Y2Nlc3MiPT1jLnN0YXR1cylpZihjPWMuY29udGVudCwxPmMubGVuZ3RoKWIucmVwbGFjZVdpdGgoIiIpO2Vsc2V7Yz1kb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChjKS5jaGlsZHJlblswXTt2YXIgZjtlPW51bGw9PShmPWIuZGF0YXNldCk\/dm9pZCAwOmYuY2FsbGJhY2s7Yi5wYXJlbnRFbGVtZW50LmRhdGFzZXQubG9hZGVkPSIxIjtiLnJlcGxhY2VXaXRoKGMpO2UmJiJmdW5jdGlvbiI9PT10eXBlb2YgaGFuZGxlcnNbZV0mJmhhbmRsZXJzW2VdKGMpLmluaXQoKX19KTtoYW5kbGVycz17cGF5bWVudENhbGNCbG9jazpiPT57Y29uc3QgYz1iLmNsb3Nlc3QoIi5kaXZDYXJTaW5nbGVJbm5lckJveCIpO3JldHVybntpbml0OigpPT57JChiKS5maW5kKCIucGF5bWVudFRvb2x0aXAiKS5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3ZhciBkPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIik7CiQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6ZCxncmF2aXR5OiJlYXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImNsaWNrIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChlKXt9fSk7Yi5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIixmdW5jdGlvbihkKXtkLnN0b3BQcm9wYWdhdGlvbigpO2lmKGIuZGF0YXNldC50b29sdGlwQ3JlYXRlZClyZXR1cm4hMTtiLmRhdGFzZXQudG9vbHRpcENyZWF0ZWQ9IjEiOyQoZC5jdXJyZW50VGFyZ2V0LnF1ZXJ5U2VsZWN0b3IoIi5jYXItZmluYW5jZS1pbmZvIikpLmRhcmtUb29sdGlwKHtncmF2aXR5OiJ3ZXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246ImZsaXBJbiJ9KX0pO2IucXVlcnlTZWxlY3RvcigiLmNhci1maW5hbmNlLWluZm8iKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZnVuY3Rpb24oZCl7ZC5wcmV2ZW50RGVmYXVsdCgpO2lmKCFjKXJldHVybiExO2lmKCJTVVAiPT1kLnRhcmdldC50YWdOYW1lJiYKZC50YXJnZXQuaGFzQXR0cmlidXRlKCJkYXRhLWRpc2NsYWltZXItZGl2aWQiKSYmdm9pZCAwIT1kckRpc2NsYWltZXJKUylyZXR1cm4gZD1kLnRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtZGlzY2xhaW1lci1kaXZpZCIpLGRyRGlzY2xhaW1lckpTLm9wZW5EaXNjbGFpbWVyRGl2KGQpLCExO2Q9Yy5xdWVyeVNlbGVjdG9yKCIuZGl2Q2FyVGl0bGVDb250YWluZXIgYSIpLmhyZWY7d2luZG93Lm9wZW4oZCwiX3NlbGYiKX0pfX19fTtyZXR1cm57c2V0QmxvY2tPYnNlcnZlcjooKT0+e2NvbnN0IGI9bmV3IEludGVyc2VjdGlvbk9ic2VydmVyKGQ9PntkLmZvckVhY2goZT0+e2UuaXNJbnRlcnNlY3RpbmcmJihlLnRhcmdldC5jbGFzc0xpc3QuYWRkKCJhY3RpdmUiKSxiLnVub2JzZXJ2ZShlLnRhcmdldCksY29uc29sZS5sb2coInNrZWxldG9uIG9ic2VydmVkICIrZS50YXJnZXQpLGEoZS50YXJnZXQpKX0pfSx7dGhyZXNob2xkOi4xfSksYz1uZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpOwpkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29udGVudC1za2VsZXRvbiIpLmZvckVhY2goZD0+e2Iub2JzZXJ2ZShkKTsic2tlbGV0b24iPT09Yy5nZXQoImRlYnVnIikmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb250ZW50LXNrZWxldG9uIikuZm9yRWFjaChlPT5lLmNsYXNzTGlzdC5hZGQoImRlYnVnIikpfSl9LGhhbmRsZXJzfX07ZG9jUmVhZHlBcnIucHVzaCgoKT0+eyJmdW5jdGlvbiI9PT10eXBlb2YgY29udGVudEJsb2NrcyYmY29udGVudEJsb2NrcygpLnNldEJsb2NrT2JzZXJ2ZXIoKX0pOwovKiogL20vanMvdmFuaWxsYWpzL2Nvb2tpZXMuanMgKiovCnZhciBfX19kMmNfY29va2llc2pzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTM6MjUiOyd1c2Ugc3RyaWN0JzsoZnVuY3Rpb24oKXtmdW5jdGlvbiBsKGEsYyxiLGgsZCxmLGUpe3ZhciBnPSIiO2lmKGIpe2xldCBrPW5ldyBEYXRlO2suc2V0RnVsbFllYXIoay5nZXRGdWxsWWVhcigpKzEpO3N3aXRjaChiLmNvbnN0cnVjdG9yKXtjYXNlIE51bWJlcjozNjU8YiYmKGI9MzY1KTtnPW5ldyBEYXRlO2cuc2V0RGF0ZShnLmdldERhdGUoKStiKTtnPUluZmluaXR5PT09Yj8iOyBleHBpcmVzPUZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgR01UIjoiOyBleHBpcmVzPSIrZy50b1VUQ1N0cmluZygpO2JyZWFrO2Nhc2UgU3RyaW5nOm5ldyBEYXRlKGIpPmsmJihiPWsudG9VVENTdHJpbmcoKSk7Zz0iOyBleHBpcmVzPSIrYjticmVhaztjYXNlIERhdGU6Yj5rJiYoYj1rKSxnPSI7IGV4cGlyZXM9IitiLnRvVVRDU3RyaW5nKCl9fSJ1bmRlZmluZWQiPT09dHlwZW9mIGYmJihmPSJodHRwczoiPT09d2luZG93LmxvY2F0aW9uLnByb3RvY29sKTtyZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGEpKwoiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGMpK2crKGQ\/IjsgZG9tYWluPSIrZDoiIikrKGg\/IjsgcGF0aD0iK2g6IiIpKyhmPyI7IHNlY3VyZSI6IiIpKyhlJiYibm9fcmVzdHJpY3Rpb24iIT09ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCk\/ImxheCI9PT1lLnRvU3RyaW5nKCkudG9Mb3dlckNhc2UoKXx8MT09PU1hdGguY2VpbChlKXx8ITA9PT1lPyI7IHNhbWVzaXRlPWxheCI6Im5vbmUiPT09ZS50b1N0cmluZygpLnRvTG93ZXJDYXNlKCl8fDA+ZT8iOyBzYW1lc2l0ZT1ub25lIjoiOyBzYW1lc2l0ZT1zdHJpY3QiOiIiKX1mdW5jdGlvbiBtKGEsYyl7aWYoInVuZGVmaW5lZCI9PT10eXBlb2YgYXx8bnVsbD09PWEpcmV0dXJuLTE7c3dpdGNoKGEuY29uc3RydWN0b3Ipe2Nhc2UgTnVtYmVyOmlmKCJudW1iZXIiPT09Yyl2YXIgYj04NjQwMCphO2Vsc2UgYj1uZXcgRGF0ZSxiLnNldERhdGUoYi5nZXREYXRlKCkrYSksYj1JbmZpbml0eT09PWE\/IkZyaSwgMzEgRGVjIDk5OTkgMjM6NTk6NTkgR01UIjoKYi50b1VUQ1N0cmluZygpO2JyZWFrO2Nhc2UgU3RyaW5nOiJzdHJpbmciPT09Yz9iPWE6KGI9bmV3IERhdGUsYj0oKG5ldyBEYXRlKGEpKS5nZXRUaW1lKCktYi5nZXRUaW1lKCkpLzFFMyk7YnJlYWs7Y2FzZSBEYXRlOiJzdHJpbmciPT09Yz9iPWEudG9VVENTdHJpbmcoKTooYj1uZXcgRGF0ZSxiPShhLmdldFRpbWUoKS1iLmdldFRpbWUoKSkvMUUzKX0ibnVtYmVyIj09PWMmJihiPU1hdGgucm91bmQoYikpO3JldHVybiBifXZhciBuPS9bXC1cLlwrXCpdL2cscD0vXig\/OmV4cGlyZXN8bWF4XC1hZ2V8cGF0aHxkb21haW58c2VjdXJlfHNhbWVzaXRlfGh0dHBvbmx5KSQvaSxxPSJ1dG1fY2FtcGFpZ24gdXRtX2tleXdvcmQgdXRtX2xhbmRpbmcgdXRtX2xhbmRpbmdfZm9vdGVyIHV0bV9tZWRpdW0gdXRtX3NvdXJjZSB1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmcgdXRtX3NvdXJjZV9yZXRhcmdldGluZyBEaXNwbGF5U291cmNlVVRNQ2FtcGFpZ24gRGlzcGxheVNvdXJjZVVUTVNvdXJjZSIuc3BsaXQoIiAiKTsKd2luZG93LkNvb2tpZXM9e2dldDpmdW5jdGlvbihhKXtyZXR1cm4gYT9kZWNvZGVVUklDb21wb25lbnQoZG9jdW1lbnQuY29va2llLnJlcGxhY2UobmV3IFJlZ0V4cCgiKD86KD86XnwuKjspXFxzKiIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UobiwiXFwkJiIpKyJcXHMqXFw9XFxzKihbXjtdKikuKiQpfF4uKiQiKSwiJDEiKSl8fG51bGw6bnVsbH0sc2V0OmZ1bmN0aW9uKGEsYyxiLGgsZCxmLGUpe3JldHVybiFhfHxwLnRlc3QoYSk\/ITE6Q29va2llcy5pc0Nvb2tpZUFsbG93ZWQoYSxmdW5jdGlvbihnKXtkPWQ\/ZDoiIjtmPW51bGw9PWY\/ITA6ZjtlPW51bGw9PWU\/Ik5vbmUiOmU7Q29va2llcy5sb2coYSxjLGIsaCxkKTtpZighZylyZXR1cm4tMTxxLmluZGV4T2YoYSkmJm51bGw9PUNvb2tpZXMuZ2V0KCJkMmNfY29va2llX2NvbnNlbnQiKSYmKGc9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZDJjX2NvbnNlbnRfd2FpdCIpLGc9bnVsbCE9Zz9KU09OLnBhcnNlKGF0b2IoZykpOgp7fSxnW2FdPXtrZXk6YSx2YWx1ZTpjLGV4cGlyZXM6YixwYXRoOmgsZG9tYWluOmR9LHV0bUNvb2tpZXNTdG9yYWdlSlNPTj1KU09OLnN0cmluZ2lmeShnKSxzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJkMmNfY29uc2VudF93YWl0IixidG9hKHV0bUNvb2tpZXNTdG9yYWdlSlNPTikpKSxDb29raWVzLnJlbW92ZShhLGgsZCxmLGUpLCExO2RvY3VtZW50LmNvb2tpZT1sKGEsYyxiLGgsZCxmLGUpO3JldHVybiEwfSl9LHJlbW92ZTpmdW5jdGlvbihhLGMsYixoLGQpe2lmKCF0aGlzLmhhcyhhKSlyZXR1cm4hMTtkb2N1bWVudC5jb29raWU9bChhLCIiLCJUaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsYyxiLGgsZCk7cmV0dXJuITB9LGhhczpmdW5jdGlvbihhKXtyZXR1cm4hYXx8cC50ZXN0KGEpPyExOihuZXcgUmVnRXhwKCIoPzpefDtcXHMqKSIrZW5jb2RlVVJJQ29tcG9uZW50KGEpLnJlcGxhY2UobiwiXFwkJiIpKyJcXHMqXFw9IikpLnRlc3QoZG9jdW1lbnQuY29va2llKX0sCmtleXM6ZnVuY3Rpb24oKXtmb3IodmFyIGE9ZG9jdW1lbnQuY29va2llLnJlcGxhY2UoLygoPzpefFxzKjspW149XSspKD89O3wkKXxeXHMqfFxzKig\/Oj1bXjtdKik\/KD86XDF8JCkvZywiIikuc3BsaXQoL1xzKig\/Oj1bXjtdKik\/O1xzKi8pLGM9YS5sZW5ndGgsYj0wO2I8YztiKyspYVtiXT1kZWNvZGVVUklDb21wb25lbnQoYVtiXSk7cmV0dXJuIGF9LGNsZWFyOmZ1bmN0aW9uKGEsYyxiLGgpe2Zvcih2YXIgZD10aGlzLmtleXMoKSxmPWQubGVuZ3RoLGU9MDtlPGY7ZSsrKXRoaXMucmVtb3ZlSXRlbShkW2VdLGEsYyxiLGgpfSxsb2c6ZnVuY3Rpb24oYSxjLGIsaCxkLGYpeyJ1bmRlZmluZWQiPT09dHlwZW9mIGYmJihmPTUpOyJ1bmRlZmluZWQiPT09dHlwZW9mIHdpbmRvdy5Db29raWVMb2dnZXI\/ZiYmc2V0VGltZW91dChmdW5jdGlvbigpe0Nvb2tpZXMubG9nKGEsYyxiLGgsZCxmLTEpfSwxRTMpOndpbmRvdy5Db29raWVMb2dnZXIubG9nKGEsYyxiLGgsZCl9LGlzQ29va2llQWxsb3dlZDpmdW5jdGlvbihhLApjKXtyZXR1cm4idW5kZWZpbmVkIj09PXR5cGVvZiB3aW5kb3cuQ29va2llQ29uc2VudHx8InVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUNvbnNlbnQuaXNDb29raWVBbGxvd2VkP2MoITApOndpbmRvdy5Db29raWVDb25zZW50LmlzQ29va2llQWxsb3dlZChhLGMpfX07d2luZG93LkNvb2tpZUxvZ2dlcj17X3N0YWNrOltdLGluaXQ6ZnVuY3Rpb24oKXtsZXQgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGVhbGVyUHJvdmluY2VDb2RlIik7YSYmIlFDIj09bmV3IFN0cmluZyhhLnZhbHVlKSYmMT09TWF0aC5mbG9vcigzKk1hdGgucmFuZG9tKCkpJiZmZXRjaCgiL3Byb3h5X3JkMmMvZDJjYXBpL2xvZy9jb29raWVzL2FjdGl2ZSIpLnRoZW4oZnVuY3Rpb24oYyl7cmV0dXJuIGMuanNvbigpfSkudGhlbihmdW5jdGlvbihjKXsiYWN0aXZlIj09PWMuc3RhdHVzJiZDb29raWVMb2dnZXIud2FpdFN0YWNrKCl9KX0sbG9nOmZ1bmN0aW9uKGEsYyxiLGgsZCl7aWYoImxpdmUiPT09CndpbmRvdy5kZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpKXtkZWJ1ZygiTG9nZ2luZyBjb29raWU6Iix7bmFtZTphLHZhbHVlOmN8fCIiLGR1cmF0aW9uOm0oYiwibnVtYmVyIikscGF0aDpoLGRvbWFpbjpkfSk7dmFyIGYsZSxnPSJ1bmRlZmluZWQiIT10eXBlb2YgY3VycmVudFNpdGVJRD9jdXJyZW50U2l0ZUlEOm51bGwhPShlPW51bGw9PShmPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzaXRlSUQiKSk\/dm9pZCAwOmYudmFsdWUpP2U6IiI7dGhpcy5fc3RhY2sucHVzaCh7bmFtZTphLGR1cmF0aW9uOm0oYiwibnVtYmVyIikscGF0aDpofHwiLyIsZG9tYWluOmR8fHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZSx1cmk6d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLHNpdGVpZDpnLHZhbHVlOmJ0b2EoYyl9KX19LF9zZW5kU3RhY2s6ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5fc3RhY2subGVuZ3RoKXt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29va2llTG9nVG9rZW4iKT8KZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvb2tpZUxvZ1Rva2VuIikudmFsdWU6bnVsbDtpZihhKXt2YXIgYz0idW5kZWZpbmVkIiE9dHlwZW9mIGN1cnJlbnRTaXRlSUQ\/Y3VycmVudFNpdGVJRDpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2l0ZUlEIik\/ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpdGVJRCIpLnZhbHVlOiIiOyhuZXcgV29ya2VyKCIvanMvdmFuaWxsYWpzL2Nvb2tpZVdvcmtlci5qcyIpKS5wb3N0TWVzc2FnZSh7dG9rZW46YSxzaXRlSUQ6YyxzdGFjazpDb29raWVMb2dnZXIuX3N0YWNrfSk7Q29va2llTG9nZ2VyLl9zdGFjaz1bXX1lbHNlIGRlYnVnKCJObyBjb29raWUgbG9nIHRva2VuIGZvdW5kLiIpfX0sd2FpdFN0YWNrOmZ1bmN0aW9uKCl7ImxpdmUiPT09d2luZG93LmRlcGxveW1lbnRUeXBlLnRvTG93ZXJDYXNlKCkmJihzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Q29va2llTG9nZ2VyLl9zZW5kU3RhY2soKX0sMUU0KSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmVmb3JldW5sb2FkIiwKZnVuY3Rpb24oKXtDb29raWVMb2dnZXIuX3NlbmRTdGFjaygpfSkpfX07d2luZG93LkNvb2tpZUxvZ2dlci5pbml0KCl9KSgpOwovKiogL20vanMvanF1ZXJ5LmJhc2U2NC5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnliYXNlNjRqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjI0IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnliYXNlNjRqc19jX29uPSIyMDI0LTAxLTMxIDE0OjM1OjQ4IjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWJhc2U2NGpzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzU6NTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5YmFzZTY0anNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NTozOSI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnliYXNlNjRqc19jX29uPSIyMDIxLTEyLTE1IDEyOjQzOjM0IjsidXNlIHN0cmljdCI7CmpRdWVyeS5iYXNlNjQ9ZnVuY3Rpb24oayl7ZnVuY3Rpb24gZShhLGMpe2E9IkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmluZGV4T2YoYS5jaGFyQXQoYykpO2lmKC0xPT09YSl0aHJvdyJDYW5ub3QgZGVjb2RlIGJhc2U2NCI7cmV0dXJuIGF9ZnVuY3Rpb24gaChhLGMpe2E9YS5jaGFyQ29kZUF0KGMpO2lmKDI1NTxhKXRocm93IklOVkFMSURfQ0hBUkFDVEVSX0VSUjogRE9NIEV4Y2VwdGlvbiA1IjtyZXR1cm4gYX1yZXR1cm57ZGVjb2RlOmZ1bmN0aW9uKGEpe3ZhciBjPTAsYixmPWEubGVuZ3RoLGQ9W107YT1TdHJpbmcoYSk7aWYoMD09PWYpcmV0dXJuIGE7aWYoMCE9PWYlNCl0aHJvdyJDYW5ub3QgZGVjb2RlIGJhc2U2NCI7Ij0iPT09YS5jaGFyQXQoZi0xKSYmKGM9MSwiPSI9PT1hLmNoYXJBdChmLTIpJiYoYz0yKSxmLT00KTtmb3IoYj0wO2I8ZjtiKz00KXt2YXIgZz1lKGEsYik8PDE4fGUoYSxiKzEpPDwKMTJ8ZShhLGIrMik8PDZ8ZShhLGIrMyk7ZC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZz4+MTYsZz4+OCYyNTUsZyYyNTUpKX1zd2l0Y2goYyl7Y2FzZSAxOmc9ZShhLGIpPDwxOHxlKGEsYisxKTw8MTJ8ZShhLGIrMik8PDY7ZC5wdXNoKFN0cmluZy5mcm9tQ2hhckNvZGUoZz4+MTYsZz4+OCYyNTUpKTticmVhaztjYXNlIDI6Zz1lKGEsYik8PDE4fGUoYSxiKzEpPDwxMixkLnB1c2goU3RyaW5nLmZyb21DaGFyQ29kZShnPj4xNikpfXJldHVybiBkLmpvaW4oIiIpfSxlbmNvZGU6ZnVuY3Rpb24oYSl7aWYoMSE9PWFyZ3VtZW50cy5sZW5ndGgpdGhyb3ciU3ludGF4RXJyb3I6IGV4YWN0bHkgb25lIGFyZ3VtZW50IHJlcXVpcmVkIjthPVN0cmluZyhhKTt2YXIgYyxiPVtdLGY9YS5sZW5ndGgtYS5sZW5ndGglMztpZigwPT09YS5sZW5ndGgpcmV0dXJuIGE7Zm9yKGM9MDtjPGY7Yys9Myl7dmFyIGQ9aChhLGMpPDwxNnxoKGEsYysxKTw8OHxoKGEsYysyKTtiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4KMTgpKTtiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkPj4xMiY2MykpO2IucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjYmNjMpKTtiLnB1c2goIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky8iLmNoYXJBdChkJjYzKSl9c3dpdGNoKGEubGVuZ3RoLWYpe2Nhc2UgMTpkPWgoYSxjKTw8MTY7Yi5wdXNoKCJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTgpKyJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvIi5jaGFyQXQoZD4+MTImNjMpKyI9PSIpO2JyZWFrO2Nhc2UgMjpkPQpoKGEsYyk8PDE2fGgoYSxjKzEpPDw4LGIucHVzaCgiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjE4KSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjEyJjYzKSsiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIuY2hhckF0KGQ+PjYmNjMpKyI9Iil9cmV0dXJuIGIuam9pbigiIil9LFZFUlNJT046IjEuMCJ9fShqUXVlcnkpOwovKiogL20vanMvanF1ZXJ5LmRhcmt0b29sdGlwLmpzICoqLwp2YXIgX19fZDJjX2pxdWVyeWRhcmt0b29sdGlwanNfY19vbj0iMjAyNS0wNS0yMyAxNzowOTo0OCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfanF1ZXJ5ZGFya3Rvb2x0aXBqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMzOjA3IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihiKXtmdW5jdGlvbiBlKGEsYyl7dGhpcy5iZWFyZXI9YTt0aGlzLm9wdGlvbnM9Yzt0aGlzLmhpZGVFdmVudDt0aGlzLmhpZGluZz0hMTt0aGlzLm1vdXNlT3Zlck1vZGU9ImhvdmVyIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ8fCJtb3VzZW92ZXIiPT10aGlzLm9wdGlvbnMudHJpZ2dlcnx8Im9ubW91c2VvdmVyIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ9ZS5wcm90b3R5cGU9e3Nob3c6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO3RoaXMub3B0aW9ucy5tb2RhbCYmdGhpcy5tb2RhbExheWVyLmNzcygiZGlzcGxheSIsImJsb2NrIik7dGhpcy50b29sdGlwLmNzcygiZGlzcGxheSIsImJsb2NrIik7YS5tb3VzZU92ZXJNb2RlJiYodGhpcy50b29sdGlwLm9uKCJtb3VzZW92ZXIiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEuaGlkZUV2ZW50KTthLmhpZGluZz0hMX0pLHRoaXMudG9vbHRpcC5vbigibW91c2VvdXQiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEuaGlkZUV2ZW50KTsKYS5oaWRlKCk7YS5oaWRpbmc9ITF9KSl9LGhpZGU6ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2EuaGlkaW5nfHwoYS5oaWRpbmc9ITAsdGhpcy5oaWRlRXZlbnQ9c2V0VGltZW91dChmdW5jdGlvbigpe2EuaGlkaW5nPSExO2EudG9vbHRpcC5oaWRlKCl9KSxhLm9wdGlvbnMubW9kYWwmJihhLmhpZGluZz0hMSxhLm1vZGFsTGF5ZXIuaGlkZSgpKSx0aGlzLm9wdGlvbnMub25DbG9zZSgpKX0sdG9nZ2xlOmZ1bmN0aW9uKCl7dGhpcy50b29sdGlwLmlzKCI6dmlzaWJsZSIpP3RoaXMuaGlkZSgpOnRoaXMuc2hvdygpfSxhZGRBbmltYXRpb246ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5vcHRpb25zLmFuaW1hdGlvbil7Y2FzZSAiZmFkZUluIjp0aGlzLnRvb2x0aXAuYWRkQ2xhc3MoImFuaW1hdGVkIik7dGhpcy50b29sdGlwLmFkZENsYXNzKCJmYWRlSW4iKTticmVhaztjYXNlICJmbGlwSW4iOnRoaXMudG9vbHRpcC5hZGRDbGFzcygiYW5pbWF0ZWQiKSx0aGlzLnRvb2x0aXAuYWRkQ2xhc3MoImZsaXBJbiIpfX0sCnNldENvbnRlbnQ6ZnVuY3Rpb24oKXtiKHRoaXMuYmVhcmVyKS5jc3MoImN1cnNvciIsInBvaW50ZXIiKTtpZih0aGlzLm9wdGlvbnMuY29udGVudCl0aGlzLmNvbnRlbnQ9dGhpcy5vcHRpb25zLmNvbnRlbnQ7ZWxzZSBpZih0aGlzLmJlYXJlci5hdHRyKCJkYXRhLXRvb2x0aXAiKSl0aGlzLmNvbnRlbnQ9dGhpcy5iZWFyZXIuYXR0cigiZGF0YS10b29sdGlwIik7ZWxzZSByZXR1cm47aWYoIiMiPT10aGlzLmNvbnRlbnQuY2hhckF0KDApKXtpZih0aGlzLm9wdGlvbnMuZGVsZXRlX2NvbnRlbnQpe3ZhciBhPWIodGhpcy5jb250ZW50KS5odG1sKCk7Yih0aGlzLmNvbnRlbnQpLmh0bWwoIiIpO3RoaXMuY29udGVudD1hO2RlbGV0ZSBhfWVsc2UgYih0aGlzLmNvbnRlbnQpLmhpZGUoKSx0aGlzLmNvbnRlbnQ9Yih0aGlzLmNvbnRlbnQpLmh0bWwoKTt0aGlzLmNvbnRlbnRUeXBlPSJodG1sIn1lbHNlIHRoaXMuY29udGVudFR5cGU9InRleHQiO2E9IiIhPXRoaXMuYmVhcmVyLmF0dHIoImlkIikmJgoidW5kZWZpbmVkIiE9dGhpcy5iZWFyZXIuYXR0cigiaWQiKT8iaWQ9J2Rhcmt0b29sdGlwLSIrdGhpcy5iZWFyZXIuYXR0cigiaWQiKSsiJyI6ImlkPSdkYXJrdG9vbHRpcC0iKyhEYXRlLm5vdygpK01hdGguZmxvb3IoMUU0Kk1hdGgucmFuZG9tKCkpKSsiJyI7MD09PWIoIklOUy5kYXJrdG9vbHRpcC1tb2RhbC1sYXllciIpLmxlbmd0aCYmKHRoaXMubW9kYWxMYXllcj1iKCI8aW5zIGNsYXNzPSdkYXJrdG9vbHRpcC1tb2RhbC1sYXllcic+PC9pbnM+IikpO3RoaXMudG9vbHRpcD1iKCI8aW5zICIrYSsiIGNsYXNzID0gJ2RhcmstdG9vbHRpcCAiK3RoaXMub3B0aW9ucy50aGVtZSsiICIrdGhpcy5vcHRpb25zLnNpemUrIiAiK3RoaXMub3B0aW9ucy5ncmF2aXR5KyInPjxkaXY+Iit0aGlzLmNvbnRlbnQrIjwvZGl2PjxkaXYgY2xhc3MgPSAndGlwJz48L2Rpdj48L2lucz4iKTt0aGlzLnRpcD10aGlzLnRvb2x0aXAuZmluZCgiLnRpcCIpO2IoImJvZHkiKS5hcHBlbmQodGhpcy5tb2RhbExheWVyKTsKYigiYm9keSIpLmFwcGVuZCh0aGlzLnRvb2x0aXApOyJodG1sIj09dGhpcy5jb250ZW50VHlwZSYmdGhpcy50b29sdGlwLmNzcygibWF4LXdpZHRoIiwibm9uZSIpO3RoaXMudG9vbHRpcC5jc3MoIm9wYWNpdHkiLHRoaXMub3B0aW9ucy5vcGFjaXR5KTt0aGlzLmFkZEFuaW1hdGlvbigpO3RoaXMub3B0aW9ucy5jb25maXJtJiZ0aGlzLmFkZENvbmZpcm0oKX0sc2V0UG9zaXRpb25zOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy5iZWFyZXIub2Zmc2V0KCkubGVmdCxjPXRoaXMuYmVhcmVyLm9mZnNldCgpLnRvcDtzd2l0Y2godGhpcy5vcHRpb25zLmdyYXZpdHkpe2Nhc2UgInNvdXRoIjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkvMi10aGlzLnRvb2x0aXAub3V0ZXJXaWR0aCgpLzI7Yys9LXRoaXMudG9vbHRpcC5vdXRlckhlaWdodCgpLXRoaXMudGlwLm91dGVySGVpZ2h0KCkvMjticmVhaztjYXNlICJ3ZXN0IjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkrdGhpcy50aXAub3V0ZXJXaWR0aCgpLwoyO2MrPXRoaXMuYmVhcmVyLm91dGVySGVpZ2h0KCkvMi10aGlzLnRvb2x0aXAub3V0ZXJIZWlnaHQoKS8yO2JyZWFrO2Nhc2UgIm5vcnRoIjphKz10aGlzLmJlYXJlci5vdXRlcldpZHRoKCkvMi10aGlzLnRvb2x0aXAub3V0ZXJXaWR0aCgpLzI7Yys9dGhpcy5iZWFyZXIub3V0ZXJIZWlnaHQoKSt0aGlzLnRpcC5vdXRlckhlaWdodCgpLzI7YnJlYWs7Y2FzZSAiZWFzdCI6YSs9LXRoaXMudG9vbHRpcC5vdXRlcldpZHRoKCktdGhpcy50aXAub3V0ZXJXaWR0aCgpLzIsYys9dGhpcy5iZWFyZXIub3V0ZXJIZWlnaHQoKS8yLXRoaXMudG9vbHRpcC5vdXRlckhlaWdodCgpLzJ9dGhpcy5vcHRpb25zLmF1dG9MZWZ0JiZ0aGlzLnRvb2x0aXAuY3NzKCJsZWZ0IixhKTt0aGlzLm9wdGlvbnMuYXV0b1RvcCYmdGhpcy50b29sdGlwLmNzcygidG9wIixjKX0sc2V0RXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcyxjPWEub3B0aW9ucy5ob3ZlckRlbGF5LGY7aWYoYS5tb3VzZU92ZXJNb2RlKXRoaXMuYmVhcmVyLm9uKCJtb3VzZWVudGVyIiwKZnVuY3Rpb24oKXtmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXthLnNldFBvc2l0aW9ucygpO2Euc2hvdygpfSxjKX0pLm9uKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe2NsZWFyVGltZW91dChmKTthLmhpZGUoKX0pO2Vsc2UgaWYoImNsaWNrIj09dGhpcy5vcHRpb25zLnRyaWdnZXJ8fCJvbmNsaWsiPT10aGlzLm9wdGlvbnMudHJpZ2dlcil0aGlzLnRvb2x0aXAub24oImNsaWNrIixmdW5jdGlvbihkKXtkLnN0b3BQcm9wYWdhdGlvbigpfSksdGhpcy5iZWFyZXIub24oImNsaWNrIixmdW5jdGlvbihkKXtkLnByZXZlbnREZWZhdWx0KCk7YS5zZXRQb3NpdGlvbnMoKTthLnRvZ2dsZSgpO2Quc3RvcFByb3BhZ2F0aW9uKCl9KSxiKCJodG1sIikub24oImNsaWNrIixmdW5jdGlvbigpe2EuaGlkZSgpfSl9LGFjdGl2YXRlOmZ1bmN0aW9uKCl7dGhpcy5zZXRDb250ZW50KCk7dGhpcy5jb250ZW50JiZ0aGlzLnNldEV2ZW50cygpfSxhZGRDb25maXJtOmZ1bmN0aW9uKCl7dGhpcy50b29sdGlwLmFwcGVuZCgiPHVsIGNsYXNzID0gJ2NvbmZpcm0nPjxsaSBjbGFzcyA9ICdkYXJrdG9vbHRpcC15ZXMnPiIrCnRoaXMub3B0aW9ucy55ZXMrIjwvbGk+PGxpIGNsYXNzID0gJ2Rhcmt0b29sdGlwLW5vJz4iK3RoaXMub3B0aW9ucy5ubysiPC9saT48L3VsPiIpO3RoaXMuc2V0Q29uZmlybUV2ZW50cygpfSxzZXRDb25maXJtRXZlbnRzOmZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLnRvb2x0aXAuZmluZCgibGkuZGFya3Rvb2x0aXAteWVzIikub24oImNsaWNrIixmdW5jdGlvbihjKXthLm9uWWVzKCk7Yy5zdG9wUHJvcGFnYXRpb24oKX0pO3RoaXMudG9vbHRpcC5maW5kKCJsaS5kYXJrdG9vbHRpcC1ubyIpLm9uKCJjbGljayIsZnVuY3Rpb24oYyl7YS5vbk5vKCk7Yy5zdG9wUHJvcGFnYXRpb24oKX0pfSxmaW5hbE1lc3NhZ2U6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuZmluYWxNZXNzYWdlKXt2YXIgYT10aGlzO2EudG9vbHRpcC5maW5kKCJkaXY6Zmlyc3QiKS5odG1sKHRoaXMub3B0aW9ucy5maW5hbE1lc3NhZ2UpO2EudG9vbHRpcC5maW5kKCJ1bCIpLnJlbW92ZSgpO2Euc2V0UG9zaXRpb25zKCk7CnNldFRpbWVvdXQoZnVuY3Rpb24oKXthLmhpZGUoKTthLnNldENvbnRlbnQoKX0sYS5vcHRpb25zLmZpbmFsTWVzc2FnZUR1cmF0aW9uKX1lbHNlIHRoaXMuaGlkZSgpfSxvblllczpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5vblllcyh0aGlzLmJlYXJlcik7dGhpcy5maW5hbE1lc3NhZ2UoKX0sb25ObzpmdW5jdGlvbigpe3RoaXMub3B0aW9ucy5vbk5vKHRoaXMuYmVhcmVyKTt0aGlzLmhpZGUoKX19O2IuZm4uZGFya1Rvb2x0aXA9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2E9Yi5leHRlbmQoe30sYi5mbi5kYXJrVG9vbHRpcC5kZWZhdWx0cyxhKTsobmV3IGUoYih0aGlzKSxhKSkuYWN0aXZhdGUoKX0pfTtiLmZuLmRhcmtUb29sdGlwLmRlZmF1bHRzPXthbmltYXRpb246Im5vbmUiLGNvbmZpcm06ITEsY29udGVudDoiIixmaW5hbE1lc3NhZ2U6IiIsZmluYWxNZXNzYWdlRHVyYXRpb246MUUzLGdyYXZpdHk6InNvdXRoIixob3ZlckRlbGF5OjAsbW9kYWw6ITEsCm5vOiJObyIsb25ObzpmdW5jdGlvbigpe30sb25ZZXM6ZnVuY3Rpb24oKXt9LG9wYWNpdHk6Ljksc2l6ZToibWVkaXVtIix0aGVtZToiZGFyayIsdHJpZ2dlcjoiaG92ZXIiLHllczoiWWVzIixhdXRvVG9wOiEwLGF1dG9MZWZ0OiEwLG9uQ2xvc2U6ZnVuY3Rpb24oKXt9fX0pKGpRdWVyeSk7Ci8qKiAvbS9qcy9qcXVlcnkudmFsaWRpdHkubWluLmpzICoqLwooZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihiLGMsZSl7dmFyIGY9KGIucmVkdWN0aW9ufHxiKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksaT1bXTtyZXR1cm4gMT5iLmxlbmd0aD8oY29uc29sZS5sb2coIkNvdWxkIG5vdCB2YWxpZGF0ZSBlbGVtZW50IixiKSxiKTooZi5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKT9pLnB1c2godGhpcyk6ZCh0aGlzLGcoZSx7ZmllbGQ6aCh0aGlzKX0pKX0pLGIucmVkdWN0aW9uPWEoaSksYil9ZnVuY3Rpb24gYygpe2EudmFsaWRpdHkuaXNWYWxpZGF0aW5nKCkmJihhLnZhbGlkaXR5LnJlcG9ydC5lcnJvcnMrKyxhLnZhbGlkaXR5LnJlcG9ydC52YWxpZD0hMSl9ZnVuY3Rpb24gZChiLGQpe2MoKSxhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0ucmFpc2UmJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlKGEoYiksZCl9ZnVuY3Rpb24gZShiLGQpe2MoKSxhLnZhbGlkaXR5Lm91dHB1dHNbYS52YWxpZGl0eS5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmYS52YWxpZGl0eS5vdXRwdXRzW2EudmFsaWRpdHkuc2V0dGluZ3Mub3V0cHV0TW9kZV0ucmFpc2VBZ2dyZWdhdGUmJmEudmFsaWRpdHkub3V0cHV0c1thLnZhbGlkaXR5LnNldHRpbmdzLm91dHB1dE1vZGVdLnJhaXNlQWdncmVnYXRlKGIsZCl9ZnVuY3Rpb24gZihhKXt2YXIgYj0wO3JldHVybiBhLmVhY2goZnVuY3Rpb24oKXt2YXIgYT1wYXJzZUZsb2F0KHRoaXMudmFsdWUpO2IrPWlzTmFOKGEpPzA6YX0pLGJ9ZnVuY3Rpb24gZyhhLGIpe2Zvcih2YXIgYyBpbiBiKWE9YS5yZXBsYWNlKCIjeyIrYysifSIsYltjXSk7cmV0dXJuIGooYSl9ZnVuY3Rpb24gaChiKXt2YXIgYz1hKGIpLGQ9YS52YWxpZGl0eS5zZXR0aW5ncy5kZWZhdWx0RmllbGROYW1lO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgYy5hdHRyKCJ0aXRsZSIpJiZjLmF0dHIoInRpdGxlIikubGVuZ3RoKWQ9Yy5hdHRyKCJ0aXRsZSIpO2Vsc2UgaWYoL14oW0EtWjAtOV1bYS16XSopKyQvLnRlc3QoYi5pZCkpZD1iLmlkLnJlcGxhY2UoLyhbQS1aMC05XSlbYS16XSovZywiICQmIik7ZWxzZSBpZigvXlthLXowLTlfXSokLy50ZXN0KGIuaWQpKXtmb3IodmFyIGU9Yi5pZC5zcGxpdCgiXyIpLGY9MDtmPGUubGVuZ3RoOysrZillW2ZdPWooZVtmXSk7ZD1lLmpvaW4oIiAiKX1yZXR1cm4gZH1mdW5jdGlvbiBqKGEpe3JldHVybiBhLnN1YnN0cmluZz9hLnN1YnN0cmluZygwLDEpLnRvVXBwZXJDYXNlKCkrYS5zdWJzdHJpbmcoMSxhLmxlbmd0aCk6YX1hLnZhbGlkaXR5PXtzZXR0aW5nczphLmV4dGVuZCh7b3V0cHV0TW9kZToibGFiZWwiLGNzc0NsYXNzOiJlcnJvciIsc2Nyb2xsVG86ITEsbW9kYWxFcnJvcnNDbGlja2FibGU6ITAsZGVmYXVsdEZpZWxkTmFtZToiVGhpcyBmaWVsZCIsZWxlbWVudFN1cHBvcnQ6Ijp0ZXh0LCBbdHlwZT10ZWxdLCBbdHlwZT1lbWFpbF0sIFt0eXBlPWRhdGVdLCA6cGFzc3dvcmQsIHRleHRhcmVhLCBzZWxlY3QsIDpyYWRpbywgOmNoZWNrYm94IixhcmdUb1N0cmluZzpmdW5jdGlvbihhKXtyZXR1cm4gYS5nZXREYXRlP2EuZ2V0TW9udGgoKSsxKyIvIithLmdldERhdGUoKSsiLyIrYS5nZXRGdWxsWWVhcigpOmF9fSx7fSkscGF0dGVybnM6e2ludGVnZXI6L15cZCskLyxkYXRlOi9eKCgwP1xkKXwoMVswMTJdKSlcLyhbMDEyXT9cZHwzMHwzMSlcL1xkezEsNH0kLyxlbWFpbDovXigoKFthLXpdfFxkfFshI1wkJSYnXCpcK1wtXC89XD9cXl9ge1x8fX5dfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSsoXC4oW2Etel18XGR8WyEjXCQlJidcKlwrXC1cLz1cP1xeX2B7XHx9fl18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKykqKXwoKFx4MjIpKCgoKFx4MjB8XHgwOSkqKFx4MGRceDBhKSk\/KFx4MjB8XHgwOSkrKT8oKFtceDAxLVx4MDhceDBiXHgwY1x4MGUtXHgxZlx4N2ZdfFx4MjF8W1x4MjMtXHg1Yl18W1x4NWQtXHg3ZV18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfChcXChbXHgwMS1ceDA5XHgwYlx4MGNceDBkLVx4N2ZdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpKSooKChceDIwfFx4MDkpKihceDBkXHgwYSkpPyhceDIwfFx4MDkpKyk\/KFx4MjIpKSlAKCgoW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLikrKChbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KChbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKihbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKVwuPyQvaSx1c2Q6L15cJD8oXGR7MSwzfSw\/KFxkezN9LD8pKlxkezN9KFwuXGR7MCwyfSk\/fFxkezEsM30oXC5cZHswLDJ9KT98XC5cZHsxLDJ9PykkLyx1cmw6L14oaHR0cHM\/fGZ0cCk6XC9cLygoKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OikqQCk\/KCgoXGR8WzEtOV1cZHwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKVwuKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSlcLihcZHxbMS05XVxkfDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pXC4oXGR8WzEtOV1cZHwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKSl8KCgoW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCgoW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSooW2Etel18XGR8W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSlcLikrKChbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KChbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKihbYS16XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKVwuPykoOlxkKik\/KShcLygoKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApKyhcLygoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDp8QCkqKSopPyk\/KFw\/KCgoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDp8QCl8W1x1RTAwMC1cdUY4RkZdfFwvfFw\/KSopPyhcIygoKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6fEApfFwvfFw\/KSopPyQvaSxudW1iZXI6L15bKy1dPyhcZCsoXC5cZCopP3xcLlxkKykoW0VlXVxkKyk\/JC8semlwOi9eXGR7NX0oLVxkezR9KT8kLyxwaG9uZTovXlsyLTldXGR7Mn0tXGR7M30tXGR7NH0kLyxndWlkOi9eKFx7PyhbMC05YS1mQS1GXSl7OH0tKChbMC05YS1mQS1GXSl7NH0tKXszfShbMC05YS1mQS1GXSl7MTJ9XH0\/KSQvLHRpbWUxMjovXlswMV0\/XGQ6WzAtNV1cZD9ccz9bYUFwUF1cLj9bbU1dXC4\/JC8sdGltZTI0Oi9eKDIwfDIxfDIyfDIzfFswMV1cZHxcZCkoKFs6XVswLTVdXGQpezEsMn0pJC8sbm9uSHRtbDovXltePD5dKiQvfSxtZXNzYWdlczp7YXJlYWNvZGU6IiN7ZmllbGR9IGFjY2VwdHMgb25seSBsb2NhbCBhcmVhIGNvZGVzIixyZXF1aXJlOiIje2ZpZWxkfSBpcyByZXF1aXJlZC4iLG1hdGNoOiIje2ZpZWxkfSBpcyBpbiBhbiBpbnZhbGlkIGZvcm1hdC4iLGludGVnZXI6IiN7ZmllbGR9IG11c3QgYmUgYSBwb3NpdGl2ZSwgd2hvbGUgbnVtYmVyLiIsZGF0ZToiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBkYXRlLiIsZW1haWw6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGFuIGVtYWlsLiIsdXNkOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIFVTIERvbGxhciBhbW91bnQuIix1cmw6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgVVJMLiIsbnVtYmVyOiIje2ZpZWxkfSBtdXN0IGJlIGZvcm1hdHRlZCBhcyBhIG51bWJlci4iLHppcDoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSB6aXBjb2RlICMjIyMjIG9yICMjIyMjLSMjIyMuIixwaG9uZToiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBwaG9uZSBudW1iZXIgIyMjLSMjIy0jIyMjLiIsZ3VpZDoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSBndWlkIGxpa2UgezNGMjUwNEUwLTRGODktMTFEMy05QTBDLTAzMDVFODJDMzMwMX0uIix0aW1lMjQ6IiN7ZmllbGR9IG11c3QgYmUgZm9ybWF0dGVkIGFzIGEgMjQgaG91ciB0aW1lOiAyMzowMC4iLHRpbWUxMjoiI3tmaWVsZH0gbXVzdCBiZSBmb3JtYXR0ZWQgYXMgYSAxMiBob3VyIHRpbWU6IDEyOjAwIEFNL1BNIixsZXNzVGhhbjoiI3tmaWVsZH0gbXVzdCBiZSBsZXNzIHRoYW4gI3ttYXh9LiIsbGVzc1RoYW5PckVxdWFsVG86IiN7ZmllbGR9IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICN7bWF4fS4iLGdyZWF0ZXJUaGFuOiIje2ZpZWxkfSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAje21pbn0uIixncmVhdGVyVGhhbk9yRXF1YWxUbzoiI3tmaWVsZH0gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gI3ttaW59LiIscmFuZ2U6IiN7ZmllbGR9IG11c3QgYmUgYmV0d2VlbiAje21pbn0gYW5kICN7bWF4fS4iLHRvb0xvbmc6IiN7ZmllbGR9IGNhbm5vdCBiZSBsb25nZXIgdGhhbiAje21heH0gY2hhcmFjdGVycy4iLHRvb1Nob3J0OiIje2ZpZWxkfSBjYW5ub3QgYmUgc2hvcnRlciB0aGFuICN7bWlufSBjaGFyYWN0ZXJzLiIsbm9uSHRtbDoiI3tmaWVsZH0gY2Fubm90IGNvbnRhaW4gSFRNTCBjaGFyYWN0ZXJzLiIsYWxwaGFiZXQ6IiN7ZmllbGR9IGNvbnRhaW5zIGRpc2FsbG93ZWQgY2hhcmFjdGVycy4iLG1pbkNoYXJDbGFzczoiI3tmaWVsZH0gY2Fubm90IGhhdmUgbW9yZSB0aGFuICN7bWlufSAje2NoYXJDbGFzc30gY2hhcmFjdGVycy4iLG1heENoYXJDbGFzczoiI3tmaWVsZH0gY2Fubm90IGhhdmUgbGVzcyB0aGFuICN7bWlufSAje2NoYXJDbGFzc30gY2hhcmFjdGVycy4iLGVxdWFsOiJWYWx1ZXMgZG9uJ3QgbWF0Y2guIixkaXN0aW5jdDoiQSB2YWx1ZSB3YXMgcmVwZWF0ZWQuIixzdW06IlZhbHVlcyBkb24ndCBhZGQgdG8gI3tzdW19LiIsc3VtTWF4OiJUaGUgc3VtIG9mIHRoZSB2YWx1ZXMgbXVzdCBiZSBsZXNzIHRoYW4gI3ttYXh9LiIsc3VtTWluOiJUaGUgc3VtIG9mIHRoZSB2YWx1ZXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gI3ttaW59LiIscmFkaW9DaGVja2VkOiJUaGUgc2VsZWN0ZWQgdmFsdWUgaXMgbm90IHZhbGlkLiIsZ2VuZXJpYzoiSW52YWxpZC4ifSxjaGFyQ2xhc3Nlczp7YWxwaGFiZXRpY2FsOi9cdy9nLG51bWVyaWM6L1xkL2csYWxwaGFudW1lcmljOi9bQS1aYS16MC05XS9nLHN5bWJvbDovW15BLVphLXowLTldL2d9LG91dHB1dHM6e30sc2V0dXA6ZnVuY3Rpb24oYil7cmV0dXJuIHRoaXMuc2V0dGluZ3M9YS5leHRlbmQodGhpcy5zZXR0aW5ncyxiKSx0aGlzfSxyZXBvcnQ6bnVsbCxpc1ZhbGlkYXRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMucmVwb3J0fSxzdGFydDpmdW5jdGlvbigpe3RoaXMub3V0cHV0c1t0aGlzLnNldHRpbmdzLm91dHB1dE1vZGVdJiZ0aGlzLm91dHB1dHNbdGhpcy5zZXR0aW5ncy5vdXRwdXRNb2RlXS5zdGFydCYmdGhpcy5vdXRwdXRzW3RoaXMuc2V0dGluZ3Mub3V0cHV0TW9kZV0uc3RhcnQoKSx0aGlzLnJlcG9ydD17ZXJyb3JzOjAsdmFsaWQ6ITB9fSxlbmQ6ZnVuY3Rpb24oKXt2YXIgYT10aGlzLnJlcG9ydHx8e2Vycm9yczowLHZhbGlkOiEwfTtyZXR1cm4gdGhpcy5yZXBvcnQ9bnVsbCx0aGlzLm91dHB1dHNbdGhpcy5zZXR0aW5ncy5vdXRwdXRNb2RlXSYmdGhpcy5vdXRwdXRzW3RoaXMuc2V0dGluZ3Mub3V0cHV0TW9kZV0uZW5kJiZ0aGlzLm91dHB1dHNbdGhpcy5zZXR0aW5ncy5vdXRwdXRNb2RlXS5lbmQoYSksYX0sY2xlYXI6ZnVuY3Rpb24oKXt0aGlzLnN0YXJ0KCksdGhpcy5lbmQoKX19LGEuZm4uZXh0ZW5kKHt2YWxpZGl0eTpmdW5jdGlvbihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7aWYoImZvcm0iPT10aGlzLnRhZ05hbWUudG9Mb3dlckNhc2UoKSl7dmFyIGM9bnVsbDsic3RyaW5nIj09dHlwZW9mIGI\/Yz1mdW5jdGlvbigpe2EoYikucmVxdWlyZSgpfTppc0Z1bmN0aW9uKGIpJiYoYz1iKSxiJiZhKHRoaXMpLm9uKCJzdWJtaXQiLGZ1bmN0aW9uKCl7cmV0dXJuIGEudmFsaWRpdHkuc3RhcnQoKSxjKCksYS52YWxpZGl0eS5lbmQoKS52YWxpZH0pfX0pfSxyZXF1aXJlOmZ1bmN0aW9uKGMpe3JldHVybiBiKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM9YShiKS52YWwoKSxkPXRyaW0oYykubGVuZ3RoO3JldHVybiBkfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJlcXVpcmUpfSxtYXRjaDpmdW5jdGlvbihjLGQpe3JldHVybiBkfHwoZD1hLnZhbGlkaXR5Lm1lc3NhZ2VzLm1hdGNoLCJzdHJpbmciPT10eXBlb2YgYyYmYS52YWxpZGl0eS5tZXNzYWdlc1tjXSYmKGQ9YS52YWxpZGl0eS5tZXNzYWdlc1tjXSkpLCJzdHJpbmciPT10eXBlb2YgYyYmKGM9YS52YWxpZGl0eS5wYXR0ZXJuc1tjXSksYih0aGlzLGlzRnVuY3Rpb24oYyk\/ZnVuY3Rpb24oYSl7cmV0dXJuIWEudmFsdWUubGVuZ3RofHxjKGEudmFsdWUpfTpmdW5jdGlvbihhKXtyZXR1cm4gYy5nbG9iYWwmJihjLmxhc3RJbmRleD0wKSwhYS52YWx1ZS5sZW5ndGh8fGMudGVzdChhLnZhbHVlKX0sZCl9LHJhbmdlOmZ1bmN0aW9uKGMsZSxmKXtyZXR1cm4gYih0aGlzLGMuZ2V0VGltZSYmZS5nZXRUaW1lP2Z1bmN0aW9uKGEpe3ZhciBiPW5ldyBEYXRlKGEudmFsdWUpO3JldHVybiBiPj1uZXcgRGF0ZShjKSYmYjw9bmV3IERhdGUoZSl9OmMuc3Vic3RyaW5nJiZlLnN1YnN0cmluZyYmQmlnP2Z1bmN0aW9uKGEpe3ZhciBiPW5ldyBCaWcoYS52YWx1ZSk7cmV0dXJuIGIuZ3JlYXRlclRoYW5PckVxdWFsVG8obmV3IEJpZyhjKSkmJmIubGVzc1RoYW5PckVxdWFsVG8obmV3IEJpZyhlKSl9OmZ1bmN0aW9uKGEpe3ZhciBiPXBhcnNlRmxvYXQoYS52YWx1ZSk7cmV0dXJuIGI+PWMmJmI8PWV9LGZ8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5yYW5nZSx7bWluOmEudmFsaWRpdHkuc2V0dGluZ3MuYXJnVG9TdHJpbmcoYyksbWF4OmEudmFsaWRpdHkuc2V0dGluZ3MuYXJnVG9TdHJpbmcoZSl9KSl9LGdyZWF0ZXJUaGFuOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxjLmdldFRpbWU\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBEYXRlKGEudmFsdWUpPmN9OmMuc3Vic3RyaW5nJiZCaWc\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBCaWcoYS52YWx1ZSkuZ3JlYXRlclRoYW4obmV3IEJpZyhjKSl9OmZ1bmN0aW9uKGEpe3JldHVybiBwYXJzZUZsb2F0KGEudmFsdWUpPmN9LGR8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5ncmVhdGVyVGhhbix7bWluOmEudmFsaWRpdHkuc2V0dGluZ3MuYXJnVG9TdHJpbmcoYyl9KSl9LGdyZWF0ZXJUaGFuT3JFcXVhbFRvOmZ1bmN0aW9uKGMsZCl7cmV0dXJuIGIodGhpcyxjLmdldFRpbWU\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBEYXRlKGEudmFsdWUpPj1jfTpjLnN1YnN0cmluZyYmQmlnP2Z1bmN0aW9uKGEpe3JldHVybiBuZXcgQmlnKGEudmFsdWUpLmdyZWF0ZXJUaGFuT3JFcXVhbFRvKG5ldyBCaWcoYykpfTpmdW5jdGlvbihhKXtyZXR1cm4gcGFyc2VGbG9hdChhLnZhbHVlKT49Y30sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLmdyZWF0ZXJUaGFuT3JFcXVhbFRvLHttaW46YS52YWxpZGl0eS5zZXR0aW5ncy5hcmdUb1N0cmluZyhjKX0pKX0sbGVzc1RoYW46ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYih0aGlzLGMuZ2V0VGltZT9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IERhdGUoYS52YWx1ZSk8Y306Yy5zdWJzdHJpbmcmJkJpZz9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IEJpZyhhLnZhbHVlKS5sZXNzVGhhbihuZXcgQmlnKGMpKX06ZnVuY3Rpb24oYSl7cmV0dXJuIHBhcnNlRmxvYXQoYS52YWx1ZSk8Y30sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLmxlc3NUaGFuLHttYXg6YS52YWxpZGl0eS5zZXR0aW5ncy5hcmdUb1N0cmluZyhjKX0pKX0sbGVzc1RoYW5PckVxdWFsVG86ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYih0aGlzLGMuZ2V0VGltZT9mdW5jdGlvbihhKXtyZXR1cm4gbmV3IERhdGUoYS52YWx1ZSk8PWN9OmMuc3Vic3RyaW5nJiZCaWc\/ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyBCaWcoYS52YWx1ZSkubGVzc1RoYW5PckVxdWFsVG8obmV3IEJpZyhjKSl9OmZ1bmN0aW9uKGEpe3JldHVybiBwYXJzZUZsb2F0KGEudmFsdWUpPD1jfSxkfHxnKGEudmFsaWRpdHkubWVzc2FnZXMubGVzc1RoYW5PckVxdWFsVG8se21heDphLnZhbGlkaXR5LnNldHRpbmdzLmFyZ1RvU3RyaW5nKGMpfSkpfSxtYXhMZW5ndGg6ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGEpe3JldHVybiBhLnZhbHVlLmxlbmd0aDw9Y30sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLnRvb0xvbmcse21heDpjfSkpfSxtaW5MZW5ndGg6ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGEpe3JldHVybiBhLnZhbHVlLmxlbmd0aD49Y30sZHx8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLnRvb1Nob3J0LHttaW46Y30pKX0sYWxwaGFiZXQ6ZnVuY3Rpb24oYyxkKXt2YXIgZT1bXTtyZXR1cm4gYih0aGlzLGZ1bmN0aW9uKGEpe2Zvcih2YXIgYj0wO2I8YS52YWx1ZS5sZW5ndGg7KytiKWlmKC0xPT1jLmluZGV4T2YoYS52YWx1ZS5jaGFyQXQoYikpKXJldHVybiBlLnB1c2goYS52YWx1ZS5jaGFyQXQoYikpLCExO3JldHVybiEwfSxkfHxnKGEudmFsaWRpdHkubWVzc2FnZXMuYWxwaGFiZXQse2NoYXJzOmUuam9pbigiLCAiKX0pKX0sbWluQ2hhckNsYXNzOmZ1bmN0aW9uKGMsZCxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGMmJihjPWMudG9Mb3dlckNhc2UoKSxhLnZhbGlkaXR5LmNoYXJDbGFzc2VzW2NdJiYoYz1hLnZhbGlkaXR5LmNoYXJDbGFzc2VzW2NdKSksYih0aGlzLGZ1bmN0aW9uKGEpe3JldHVybihhLnZhbHVlLm1hdGNoKGMpfHxbXSkubGVuZ3RoPj1kfSxlfHxnKGEudmFsaWRpdHkubWVzc2FnZXMubWluQ2hhckNsYXNzLHttaW46ZCxjaGFyQ2xhc3M6Y30pKX0sbWF4Q2hhckNsYXNzOmZ1bmN0aW9uKGMsZCxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGMmJihjPWMudG9Mb3dlckNhc2UoKSxhLnZhbGlkaXR5LmNoYXJDbGFzc2VzW2NdJiYoYz1hLnZhbGlkaXR5LmNoYXJDbGFzc2VzW2NdKSksYih0aGlzLGZ1bmN0aW9uKGEpe3JldHVybihhLnZhbHVlLm1hdGNoKGMpfHxbXSkubGVuZ3RoPD1kfSxlfHxnKGEudmFsaWRpdHkubWVzc2FnZXMubWF4Q2hhckNsYXNzLHttYXg6ZCxjaGFyQ2xhc3M6Y30pKX0scGFzc3dvcmQ6ZnVuY3Rpb24oYil7cmV0dXJuIGI9YS5leHRlbmQoe2FscGhhYmV0Om51bGwsbWluTGVuZ3RoOjAsbWF4TGVuZ3RoOjAsbWluU3ltYm9sOjAsbWluQWxwaGFiZXRpY2FsOjAsbWluTnVtZXJpYzowLG1pbkFscGhhTnVtZXJpYzowfSxiKSxiLmFscGhhYmV0JiZ0aGlzLmFscGhhYmV0KGIuYWxwaGFiZXQpLGIubWluTGVuZ3RoJiZ0aGlzLm1pbkxlbmd0aChiLm1pbkxlbmd0aCksYi5tYXhMZW5ndGgmJnRoaXMubWF4TGVuZ3RoKGIubWF4TGVuZ3RoKSxiLm1pblN5bWJvbCYmdGhpcy5taW5DaGFyQ2xhc3MoInN5bWJvbCIsYi5taW5TeW1ib2wpLGIubWluQWxwaGFiZXRpY2FsJiZ0aGlzLm1pbkNoYXJDbGFzcygiYWxwaGFiZXRpY2FsIixiLm1pbkFscGhhYmV0aWNhbCksYi5taW5OdW1lcmljJiZ0aGlzLm1pbkNoYXJDbGFzcygibnVtZXJpYyIsYi5taW5OdW1lcmljKSxiLm1pbkFscGhhbnVtZXJpYyYmdGhpcy5taW5DaGFyQ2xhc3MoImFscGhhbnVtZXJpYyIsYi5taW5BbHBoYW51bWVyaWMpLHRoaXN9LG5vbkh0bWw6ZnVuY3Rpb24oYyl7cmV0dXJuIGIodGhpcyxmdW5jdGlvbihiKXtyZXR1cm4gYS52YWxpZGl0eS5wYXR0ZXJucy5ub25IdG1sLnRlc3QoYi52YWx1ZSl9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMubm9uSHRtbCl9LGVxdWFsOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksZj1mdW5jdGlvbihhKXtyZXR1cm4gYX0sZz1hLnZhbGlkaXR5Lm1lc3NhZ2VzLmVxdWFsO2lmKGQubGVuZ3RoKXtpc0Z1bmN0aW9uKGIpPyhmPWIsInN0cmluZyI9PXR5cGVvZiBjJiYoZz1jKSk6InN0cmluZyI9PXR5cGVvZiBiJiYoZz1iKTt2YXIgaD1hLm1hcChkLGZ1bmN0aW9uKGEpe3JldHVybiBmKGEudmFsdWUpfSksaj1oWzBdLGs9ITA7Zm9yKHZhciBsIGluIGgpaFtsXSE9aiYmKGs9ITEpO2t8fChlKGQsZyksdGhpcy5yZWR1Y3Rpb249YShbXSkpfXJldHVybiB0aGlzfSxkaXN0aW5jdDpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGY9ZnVuY3Rpb24oYSl7cmV0dXJuIGF9LGc9YS52YWxpZGl0eS5tZXNzYWdlcy5kaXN0aW5jdCxoPVtdLGk9ITA7aWYoZC5sZW5ndGgpe2lzRnVuY3Rpb24oYik\/KGY9Yiwic3RyaW5nIj09dHlwZW9mIGMmJihnPWMpKToic3RyaW5nIj09dHlwZW9mIGImJihnPWIpO2Zvcih2YXIgaj1hLm1hcChkLGZ1bmN0aW9uKGEpe3JldHVybiBmKGEudmFsdWUpfSksaz0wO2s8ai5sZW5ndGg7KytrKWlmKGpba10ubGVuZ3RoKXtmb3IodmFyIGw9MDtsPGgubGVuZ3RoOysrbCloW2xdPT1qW2tdJiYoaT0hMSk7aC5wdXNoKGpba10pfWl8fChlKGQsZyksdGhpcy5yZWR1Y3Rpb249YShbXSkpfXJldHVybiB0aGlzfSxzdW06ZnVuY3Rpb24oYixjKXt2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KTtyZXR1cm4gZC5sZW5ndGgmJmIhPWYoZCkmJihlKGQsY3x8ZyhhLnZhbGlkaXR5Lm1lc3NhZ2VzLnN1bSx7c3VtOmJ9KSksdGhpcy5yZWR1Y3Rpb249YShbXSkpLHRoaXN9LHN1bU1heDpmdW5jdGlvbihiLGMpe3ZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpO3JldHVybiBkLmxlbmd0aCYmYjxmKGQpJiYoZShkLGN8fGcoYS52YWxpZGl0eS5tZXNzYWdlcy5zdW1NYXgse21heDpifSkpLHRoaXMucmVkdWN0aW9uPWEoW10pKSx0aGlzfSxzdW1NaW46ZnVuY3Rpb24oYixjKXt2YXIgZD0odGhpcy5yZWR1Y3Rpb258fHRoaXMpLmZpbHRlcihhLnZhbGlkaXR5LnNldHRpbmdzLmVsZW1lbnRTdXBwb3J0KTtyZXR1cm4gZC5sZW5ndGgmJmI8ZihkKSYmKGUoZCxjfHxnKGEudmFsaWRpdHkubWVzc2FnZXMuc3VtTWluLHttaW46Yn0pKSx0aGlzLnJlZHVjdGlvbj1hKFtdKSksdGhpc30scmFkaW9DaGVja2VkOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7ZC5pcygiOnJhZGlvIikmJmQuZmluZCgiOmNoZWNrZWQiKS52YWwoKSE9YiYmZShkLGN8fGEudmFsaWRpdHkubWVzc2FnZXMucmFkaW9DaGVja2VkKX0scmFkaW9Ob3RDaGVja2VkOmZ1bmN0aW9uKGIsYyl7dmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7ZC5pcygiOnJhZGlvIikmJmQuZmlsdGVyKCI6Y2hlY2tlZCIpLnZhbCgpPT1iJiZlKGQsY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5yYWRpb0NoZWNrZWQpfSxjaGVja2JveENoZWNrZWQ6ZnVuY3Rpb24oYil7dmFyIGM9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7Yy5pcygiOmNoZWNrYm94IikmJiFjLmlzKCI6Y2hlY2tlZCIpJiYoZShjLGJ8fGEudmFsaWRpdHkubWVzc2FnZXMucmFkaW9DaGVja2VkKSxjLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSl9LGFzc2VydDpmdW5jdGlvbihjLGQpe3ZhciBmPXRoaXMucmVkdWN0aW9ufHx0aGlzO2lmKGYubGVuZ3RoKXtpZihpc0Z1bmN0aW9uKGMpKXJldHVybiBiKHRoaXMsYyxkfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLmdlbmVyaWMpO2N8fChlKGYsZHx8YS52YWxpZGl0eS5tZXNzYWdlcy5nZW5lcmljKSx0aGlzLnJlZHVjdGlvbj1hKFtdKSl9cmV0dXJuIHRoaXN9fSksYS5mbi5leHRlbmQoe3ZhbGlkQWxsb3JOb25lOmZ1bmN0aW9uKCl7dmFyIGI9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksYz0hMDtyZXR1cm4gYi5lYWNoKGZ1bmN0aW9uKCl7aWYoIiIhPWEodGhpcykudmFsKCkpcmV0dXJuIGIuZWFjaChmdW5jdGlvbigpeyIiPT1hKHRoaXMpLnZhbCgpJiYoYz0hMSxkKHRoaXMsZygiIix7ZmllbGQ6aCh0aGlzKX0pKSl9KSwhMX0pLHRoaXN9LHJlcXVpcmVXaXRoV2F0ZXJtYXJrOmZ1bmN0aW9uKGMpe3JldHVybiBiKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM9ZnVuY3Rpb24oYSl7cmV0dXJuIDA8YS50cmltKCkubGVuZ3RofSxkPWEoYikuYXR0cigiYWx0IiksZT1hKGIpLnZhbCgpLnRyaW0oKTtyZXR1cm4gZD9kIT1lJiZjKGUpOmMoZSl9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMucmVxdWlyZSl9LHJlcXVpcmVQb3N0YWxDb2RlOmZ1bmN0aW9uKGMpe3JldHVybiBiKHRoaXMsZnVuY3Rpb24oYil7dmFyIGM9YShiKS52YWwoKS5yZXBsYWNlKC9ccy9nLCIiKS5yZXBsYWNlKC9bXkEtejAtOV0vZywiMCIpLnRvVXBwZXJDYXNlKCk7aWYoMD09Yy5sZW5ndGgpcmV0dXJuITA7aWYoNT5jLmxlbmd0aClyZXR1cm4hMTtpZihaaXBSZWdleD1hLnZhbGlkaXR5LnBhdHRlcm5zLnppcCxudWxsIT1jLm1hdGNoKFppcFJlZ2V4KSlyZXR1cm4hMDtyZXR1cm4gQ2FuYWRhUG9zdFJlZ2V4PS9bQUJDRUdISktMTU5QUlNUVldYWVpdWzAtOV1bQUJDRUdISktMTU5QUlNUVldYWVpdWzAtOV1bQUJDRUdISktMTU5QUlNUVldYWVpdWzAtOV0vLG51bGwhPWMubWF0Y2goQ2FuYWRhUG9zdFJlZ2V4KSYmKGEoYikudmFsKGMuc3Vic3RyaW5nKDAsMykrIiAiK2Muc3Vic3RyaW5nKDMsNikpLCEwKX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5yZXF1aXJlKX0sdmFsaWRFbWFpbEFkZHJlc3M6ZnVuY3Rpb24oYyl7dmFyIGQ9dGhpcyxlPVsiLmNvbSIsIi5jYSIsIi5uZXQiLCIuYml6IiwiLnF1ZWJlYyIsIi5jbyIsIi5pbmZvIiwiLm1vYmkiLCIub3JnIiwiLmluYyJdOzE9PWEoIiNBRE1JTl9HRU5FUkFMX0JMT0NLX0ZSX0RPTUFJTl9DSEVDSyIpLmxlbmd0aCYmIjEiIT1hKCIjQURNSU5fR0VORVJBTF9CTE9DS19GUl9ET01BSU5fQ0hFQ0siKS52YWwoKSYmZS5wdXNoKCIuZnIiKTt2YXIgZj1iKHRoaXMsZnVuY3Rpb24oYil7cmV0dXJuIHJ1bGU9YS52YWxpZGl0eS5wYXR0ZXJucy5lbWFpbCxydWxlLmdsb2JhbCYmKHJ1bGUubGFzdEluZGV4PTApLCFiLnZhbHVlLmxlbmd0aHx8cnVsZS50ZXN0KGIudmFsdWUpfSwiIik7cmV0dXJuIGY\/Yih0aGlzLGZ1bmN0aW9uKGIpe3ZhciBjPWEoYikudmFsKCkudG9Mb3dlckNhc2UoKSxkPSExO2lmKCFjLmxlbmd0aClyZXR1cm4hMDtTdHJpbmcucHJvdG90eXBlLmVuZHNXaXRofHwoU3RyaW5nLnByb3RvdHlwZS5lbmRzV2l0aD1mdW5jdGlvbihhKXt2YXIgYj10aGlzLmxlbmd0aC1hLmxlbmd0aDtyZXR1cm4gMDw9YiYmdGhpcy5sYXN0SW5kZXhPZihhKT09PWJ9KTtmb3IodmFyIGY9MDtmPGUubGVuZ3RoO2YrKyljLnRvTG93ZXJDYXNlKCkuZW5kc1dpdGgoZVtmXSkmJihkPSEwKTtpZighMT09ZClyZXR1cm4hMTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGVtYWlsSGFuZGxlcil7dmFyIGc9ITA7cmV0dXJuIGVtYWlsSGFuZGxlci52YWxpZGF0ZUVtYWlsKGMpLmRvbmUoZnVuY3Rpb24oYSl7ImludmFsaWQiPT09YS5zdGF0dXMmJihnPSExKX0pLGd9cmV0dXJuITB9LGN8fGEudmFsaWRpdHkubWVzc2FnZXMuZW1haWwpOmN8fGEudmFsaWRpdHkubWVzc2FnZXMuZW1haWx9LHJhZGlvT3B0aW9uQ2hvc2VuOmZ1bmN0aW9uKGIpe3ZhciBjPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGQ9e307Zm9yKHZhciBmIGluIGMuZWFjaChmdW5jdGlvbigpe3ZhciBiPWEodGhpcykuYXR0cigibmFtZSIpOyJ1bmRlZmluZWQiPT10eXBlb2YgZFtiXSYmKGRbYl09W10pLGRbYl0ucHVzaCh0aGlzKX0pLGQpMD09YShkW2ZdKS5maWx0ZXIoIjpyYWRpbyIpLmZpbHRlcigiOmNoZWNrZWQiKS5sZW5ndGgmJmUoYShkW2ZdKSxifHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnJhZGlvQ2hlY2tlZCl9LG9uZU9yTW9yZUNoZWNrZWQ6ZnVuY3Rpb24oYil7dmFyIGM9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCk7Yy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9Yy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4hIWEodGhpcykuaXMoIlt0eXBlPWNoZWNrYm94XTpjaGVja2VkIil9KS5sZW5ndGg7MD09ZCYmKGMucGFyZW50cygidWwiKS5maXJzdCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSxlKGMsYnx8YS52YWxpZGl0eS5tZXNzYWdlcy5yYWRpb0NoZWNrZWQpKX0pfSx2YWxpZGF0ZU1vYmlsZTpmdW5jdGlvbihjKXtmb3IodmFyIGQ9KHRoaXMucmVkdWN0aW9ufHx0aGlzKS5maWx0ZXIoYS52YWxpZGl0eS5zZXR0aW5ncy5lbGVtZW50U3VwcG9ydCksZT0hMCxmPSIiLGc9YShkKS5sZW5ndGgsaD1bNDM4LDUxNCwyNjMsNDUwLDU3OSw4MTksMjQ5LDcwNSwyMjYsNTE5LDI4OSwzNjUsOTA1LDQxNiw0MzcsNjQ3LDM0Myw2MTMsNzA5LDg3Myw0MTgsNTgxLDUwNiw5MDJdLGo9MDtqPD1nO2orKylpZihqPGcpZis9YShhKGQpW2pdKS52YWwoKTtlbHNle2lmKGY9Zi5yZXBsYWNlKC9bXjAtOV0rL2dpLCIiKSwwPT09Zi5sZW5ndGgpcmV0dXJuIGIoZCwoKT0+ITAsY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSk7IjEiPT1mWzBdJiYoZj1mLnN1YnN0cmluZygxKSk7dmFyIGs9cGFyc2VJbnQoZi5zdWJzdHJpbmcoMCwzKSk7YS5hamF4KHt1cmw6Imh0dHBzOi8vcmVzdC5kMmNtZWRpYS5jYS9zaXRlcy9zdmMvdmFsaWRhdGVQaG9uZU51bWJlci5waHAiLHR5cGU6IkdFVCIsYXN5bmM6ITEsdGltZW91dDoyZTMsZGF0YVR5cGU6Impzb24iLGRhdGE6e3Bob25lOmYsbW9iaWxlOjEsYXJlYWNvZGU6IkNBIn19KS5kb25lKGZ1bmN0aW9uKGYpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgZi5pc09rKSExPT09Zi5waG9uZU51bWJlcklzVmFsaWQmJihlPSExKTtlbHNlIGlmKCJ1bmRlZmluZWQiIT10eXBlb2YgaC5pbmRleE9mJiYtMT09aC5pbmRleE9mKGspKXJldHVybiExO3JldHVybiBiKGQsZnVuY3Rpb24oKXtyZXR1cm4gZX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSl9KS5mYWlsKGZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBoLmluZGV4T2YmJi0xPT1oLmluZGV4T2YoaykmJihlPSExKSxiKGQsZnVuY3Rpb24oKXtyZXR1cm4gZX0sY3x8YS52YWxpZGl0eS5tZXNzYWdlcy5waG9uZSl9KX19LHZhbGlkYXRlUGhvbmU6ZnVuY3Rpb24oYyl7Zm9yKHZhciBkPSh0aGlzLnJlZHVjdGlvbnx8dGhpcykuZmlsdGVyKGEudmFsaWRpdHkuc2V0dGluZ3MuZWxlbWVudFN1cHBvcnQpLGU9ITAsZj0iIixnPWEoZCkubGVuZ3RoLGg9WzQzOCw1MTQsMjYzLDQ1MCw1NzksODE5LDI0OSw3MDUsMjI2LDUxOSwyODksMzY1LDkwNSw0MTYsNDM3LDY0NywzNDMsNjEzLDcwOSw4NzMsNDE4LDU4MSw1MDYsOTAyXSxqPTA7ajw9ZztqKyspaWYoajxnKWYrPWEoYShkKVtqXSkudmFsKCk7ZWxzZXtpZihmPWYucmVwbGFjZSgvW14wLTldKy9naSwiIiksInVuZGVmaW5lZCIhPXR5cGVvZiBlbWFpbEhhbmRsZXImJnRoaXMuaGFzQ2xhc3MoInJlcXVpcmVkIikmJihlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9ITApLDA9PT1mLmxlbmd0aClyZXR1cm4gYihkLCgpPT4hMCxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnBob25lKTsiMSI9PWZbMF0mJihmPWYuc3Vic3RyaW5nKDEpKTt2YXIgaz1wYXJzZUludChmLnN1YnN0cmluZygwLDMpKTthLmFqYXgoe3VybDoiaHR0cHM6Ly9yZXN0LmQyY21lZGlhLmNhL3NpdGVzL3N2Yy92YWxpZGF0ZVBob25lTnVtYmVyLnBocCIsdHlwZToiR0VUIixhc3luYzohMSx0aW1lb3V0OjJlMyxkYXRhVHlwZToianNvbiIsZGF0YTp7cGhvbmU6ZixhcmVhY29kZToiQ0EifX0pLmRvbmUoZnVuY3Rpb24oZil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBmLmlzT2spITE9PT1mLnBob25lTnVtYmVySXNWYWxpZCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiZlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnkmJmVtYWlsSGFuZGxlci5waG9uZVZhbGlkYXRpb25BdHRlbXB0cysrLGU9ITEpO2Vsc2UgaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoLmluZGV4T2YmJi0xPT1oLmluZGV4T2YoaykpcmV0dXJuITE7cmV0dXJuIGIoZCxmdW5jdGlvbigpe3JldHVybiBlfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnBob25lKX0pLmZhaWwoZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGguaW5kZXhPZiYmLTE9PWguaW5kZXhPZihrKSYmKCJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiZlbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnkmJmVtYWlsSGFuZGxlci5waG9uZVZhbGlkYXRpb25BdHRlbXB0cysrLGU9ITEpLGIoZCxmdW5jdGlvbigpe3JldHVybiBlfSxjfHxhLnZhbGlkaXR5Lm1lc3NhZ2VzLnBob25lKX0pfX19KX0pKGpRdWVyeSksZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihhKXtyZXR1cm4gYS5hdHRyKCJpZCIpLmxlbmd0aD9hLmF0dHIoImlkIik6YS5hdHRyKCJuYW1lIil9YS52YWxpZGl0eS5vdXRwdXRzLmxhYmVsPXtzdGFydDpmdW5jdGlvbigpe2EoImxhYmVsLiIrYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcykucmVtb3ZlKCl9LGVuZDpmdW5jdGlvbihiKXshYi52YWxpZCYmYS52YWxpZGl0eS5zZXR0aW5ncy5zY3JvbGxUbyYmKGxvY2F0aW9uLmhhc2g9YSgibGFiZWwuIithLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKyI6ZXEoMCkiKS5hdHRyKCJmb3IiKSl9LHJhaXNlOmZ1bmN0aW9uKGMsZCl7dmFyIGU9ImxhYmVsLiIrYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcysiW2Zvcj0nIitiKGMpKyInXSI7YShlKS5sZW5ndGg\/YShlKS50ZXh0KGQpOmEoIjxsYWJlbC8+IikuYXR0cigiZm9yIixiKGMpKS5hZGRDbGFzcyhhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKS50ZXh0KGQpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtjLmxlbmd0aCYmY1swXS5zZWxlY3QoKX0pLmluc2VydEFmdGVyKGMpfSxyYWlzZUFnZ3JlZ2F0ZTpmdW5jdGlvbihiLGMpe2IubGVuZ3RoJiZ0aGlzLnJhaXNlKGEoYi5nZXQoYi5sZW5ndGgtMSkpLGMpfX19KGpRdWVyeSksZnVuY3Rpb24oYSl7YS52YWxpZGl0eS5vdXRwdXRzLm1vZGFsPXtzdGFydDpmdW5jdGlvbigpe2EoIi52YWxpZGl0eS1tb2RhbC1tc2ciKS5yZW1vdmUoKX0sZW5kOmZ1bmN0aW9uKGIpeyFiLnZhbGlkJiZhLnZhbGlkaXR5LnNldHRpbmdzLnNjcm9sbFRvJiYobG9jYXRpb24uaGFzaD1hKCIudmFsaWRpdHktbW9kYWwtbXNnOmVxKDApIikuYXR0cigiaWQiKSl9LHJhaXNlOmZ1bmN0aW9uKGIsYyl7aWYoYi5sZW5ndGgpe3ZhciBkPWIub2Zmc2V0KCksZT1iLmdldCgwKSxmPXtsZWZ0OnBhcnNlSW50KGQubGVmdCtiLndpZHRoKCkrNCwxMCkrInB4Iix0b3A6cGFyc2VJbnQoZC50b3AtMTAsMTApKyJweCJ9O2EoIjxkaXYvPiIpLmFkZENsYXNzKCJ2YWxpZGl0eS1tb2RhbC1tc2ciKS5jc3MoZikudGV4dChjKS5vbigiY2xpY2siLGEudmFsaWRpdHkuc2V0dGluZ3MubW9kYWxFcnJvcnNDbGlja2FibGU\/ZnVuY3Rpb24oKXthKHRoaXMpLnJlbW92ZSgpfTpudWxsKS5hcHBlbmRUbygiYm9keSIpfX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYixjKXtiLmxlbmd0aCYmdGhpcy5yYWlzZShhKGIuZ2V0KGIubGVuZ3RoLTEpKSxjKX19fShqUXVlcnkpLGZ1bmN0aW9uKGEpe3ZhciBiPVtdO2EudmFsaWRpdHkub3V0cHV0cy5zdW1tYXJ5PXtzdGFydDpmdW5jdGlvbigpe2EoIi52YWxpZGl0eS1lcnJvbmVvdXMiKS5yZW1vdmVDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksYj1bXX0sZW5kOmZ1bmN0aW9uKCl7aWYoYSgiLnZhbGlkaXR5LXN1bW1hcnktY29udGFpbmVyIikuaGlkZSgpLmZpbmQoInVsIikuaHRtbCgiIiksYi5sZW5ndGgpe2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGg7KytjKWEoIjxsaS8+IikudGV4dChiW2NdKS5hcHBlbmRUbygiLnZhbGlkaXR5LXN1bW1hcnktY29udGFpbmVyIHVsIik7YSgiLnZhbGlkaXR5LXN1bW1hcnktY29udGFpbmVyIikuc2hvdygpLGEudmFsaWRpdHkuc2V0dGluZ3Muc2Nyb2xsVG8mJihsb2NhdGlvbi5oYXNoPWEoIi52YWxpZGl0eS1lcnJvbmVvdXM6ZXEoMCkiKS5hdHRyKCJpZCIpKX19LHJhaXNlOmZ1bmN0aW9uKGEsYyl7Yi5wdXNoKGMpO3ZhciBkPWEuY2xvc2VzdCgiZm9ybSIpLmhhc0NsYXNzKCJqcXRyYW5zZm9ybWRvbmUiKTthLnBhcmVudCgpLmlzKCJkaXYiKSYmZD8oYS5wYXJlbnQoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIiksYS5wYXJlbnQoKS5wYXJlbnQoKS5hZGRDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIikpOmEuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpfSxyYWlzZUFnZ3JlZ2F0ZTpmdW5jdGlvbihhLGIpe3RoaXMucmFpc2UoYSxiKX0sY29udGFpbmVyOmZ1bmN0aW9uKCl7ZG9jdW1lbnQud3JpdGUoIjxkaXYgY2xhc3M9XCJ2YWxpZGl0eS1zdW1tYXJ5LWNvbnRhaW5lclwiPlRoZSBmb3JtIGRpZG4ndCBzdWJtaXQgZm9yIHRoZSBmb2xsb3dpbmcgcmVhc29uKHMpOjx1bD48L3VsPjwvZGl2PiIpfX19KGpRdWVyeSksZnVuY3Rpb24oKXt2YXIgYT1mdW5jdGlvbigpeyQodGhpcykucmVtb3ZlQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpfTskLnZhbGlkaXR5Lm91dHB1dHMucXVpY2ttYWlsPXtzdGFydDpmdW5jdGlvbigpe30sZW5kOmZ1bmN0aW9uKCl7fSxyYWlzZTpmdW5jdGlvbihhKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGEuV2F0ZXJtYXJrJiYidW5kZWZpbmVkIiE9YS5hdHRyKCJhbHQiKSl7YS5XYXRlcm1hcmsoYS5hdHRyKCJhbHQiKSwiI0ZGQkFCQSIpO3ZhciBiPWZ1bmN0aW9uKCl7YS5XYXRlcm1hcmsoYS5hdHRyKCJhbHQiKSl9fWVsc2V7YS5jc3MoImJhY2tncm91bmQtY29sb3IiLCIjZmY3ZTc5Iik7dmFyIGI9ZnVuY3Rpb24oKXt0bXA9dG1wP3RtcDoidHJhbnNwYXJlbnQiLGEuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIix0bXApfX0kKGRvY3VtZW50KS5vbigibW91c2Vkb3duIixiKX0sY29udGFpbmVyOmZ1bmN0aW9uKCl7fX0sJC52YWxpZGl0eS5vdXRwdXRzLnBvcHVwPXtzdGFydDpmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9mZigidG91Y2hzdGFydCBtb3VzZWRvd24iLCIudmFsaWRpdHktZXJyb25lb3VzIixhKX0sZW5kOmZ1bmN0aW9uKGIpe3JldHVybiBiLnZhbGlkfHwkKGRvY3VtZW50KS5vbigidG91Y2hzdGFydCBtb3VzZWRvd24iLCIudmFsaWRpdHktZXJyb25lb3VzIixhKSxifSxyYWlzZTpmdW5jdGlvbihhKXt2YXIgYj1hLmNsb3Nlc3QoImZvcm0iKS5oYXNDbGFzcygianF0cmFuc2Zvcm1kb25lIik7YS5wYXJlbnQoKS5pcygiZGl2IikmJmI\/KGEucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpLGEucGFyZW50KCkucGFyZW50KCkuYWRkQ2xhc3MoInZhbGlkaXR5LWVycm9uZW91cyIpKTphLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYSl7Y29uc29sZS5sb2coYSksYS5pcygiOnJhZGlvIikmJmEuaXMoIi5qcVRyYW5zZm9ybUhpZGRlbiIpJiZhLnBhcmVudCgpLnBhcmVudCgpLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKX19fSgpLGZ1bmN0aW9uKGEpe2EudmFsaWRpdHkub3V0cHV0cy5jc3NPbmx5PXtzdGFydDpmdW5jdGlvbigpe2EoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcykucmVtb3ZlQ2xhc3MoYS52YWxpZGl0eS5zZXR0aW5ncy5jc3NDbGFzcyl9LGVuZDpmdW5jdGlvbihiKXshYi52YWxpZCYmYS52YWxpZGl0eS5zZXR0aW5ncy5zY3JvbGxUbyYmKGxvY2F0aW9uLmhhc2g9YShhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKyI6ZXEoMCkiKS5hdHRyKCJpZCIpKX0scmFpc2U6ZnVuY3Rpb24oYil7YShiKS5hZGRDbGFzcyhhLnZhbGlkaXR5LnNldHRpbmdzLmNzc0NsYXNzKX0scmFpc2VBZ2dyZWdhdGU6ZnVuY3Rpb24oYixjKXtiLmxlbmd0aCYmdGhpcy5yYWlzZShhKGIuZ2V0KGIubGVuZ3RoLTEpKSxjKX19fShqUXVlcnkpOwovKiogL20vanMvbWFpbi5qcyAqKi8KdmFyIF9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMyAyMzozMDoxNCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTMgMjI6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTMgMjE6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTMgMjA6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTMgMTk6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTMgMTg6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTMgMTc6MzA6MjAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTMgMTY6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTMgMTU6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTMgMTQ6MzA6MTgiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEzIDEzOjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEzIDEyOjMwOjIxIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEzIDExOjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEzIDEwOjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEzIDA5OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEzIDA4OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEzIDA3OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEzIDA2OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEzIDA1OjMwOjEzIjsidXNlIHN0cmljdCI7Cl9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMyAwNDozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMyAwMzozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMyAwMjozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMyAwMTozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMyAwMDozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMiAyMzozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMiAyMjozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMiAyMTozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMiAyMDozMDoxMyI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTIgMTk6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTIgMTg6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTIgMTc6MzA6MTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTIgMTY6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTIgMTU6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTIgMTQ6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTIgMTM6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTIgMTI6MzA6MTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTIgMTE6MzA6MTUiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEyIDEwOjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEyIDA5OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEyIDA4OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEyIDA3OjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEyIDA2OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEyIDA1OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEyIDA0OjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEyIDAzOjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEyIDAyOjMwOjEyIjsidXNlIHN0cmljdCI7Cl9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMiAwMTozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAyMDozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAxOTozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAxODozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAxNzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAxNjozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAxNTozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAxNDozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMSAxMzozMDoxMiI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMTI6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMTE6MzA6MTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMTA6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMDk6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMDg6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMDc6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMDY6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMDU6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTEgMDQ6MzA6MTIiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDAzOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDAyOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDAxOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTExIDAwOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDIzOjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDIyOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDIxOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDIwOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDE5OjMwOjEzIjsidXNlIHN0cmljdCI7Cl9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxODozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxNzozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxNjozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxNTozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxNDozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxMzozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxMjozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxMTozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0xMCAxMDozMDoxNiI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDk6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDg6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDc6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDY6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDU6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDQ6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDM6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDI6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMTAgMDE6MzA6MTIiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTEwIDAwOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDIzOjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDIyOjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDIxOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDIwOjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDE5OjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDE4OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDE3OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA5IDE2OjMwOjE2IjsidXNlIHN0cmljdCI7Cl9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAxNTozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAxNDozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAxMzozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAxMjozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAxMTozMDoxOCI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAxMDozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwOTozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwODozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOSAwNzozMDoxMyI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMDY6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMDU6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMDQ6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMDM6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMDI6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMDE6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDkgMDA6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMjM6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMjI6MzA6MTIiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDIxOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDIwOjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDE5OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDE4OjMwOjEzIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDE3OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDE2OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDE1OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDE0OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA4IDEzOjMwOjE3IjsidXNlIHN0cmljdCI7Cl9fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAxMjozMDoxNiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAxMTozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAxMDozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwOTozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwODozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwNzozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwNjozMDoxMiI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwNTozMDoxMyI7InVzZSBzdHJpY3QiO19fX2QyY19tYWluanNfY19vbj0iMjAyNi0wNy0wOCAwNDozMDoxMyI7InVzZSBzdHJpY3QiOwpfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMDM6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMDI6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMDE6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDggMDA6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMjM6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMjI6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMjE6MzA6MTIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMjA6MzA6MTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbWFpbmpzX2Nfb249IjIwMjYtMDctMDcgMTk6MzA6MTMiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA3IDE4OjMwOjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA3IDE3OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA3IDE2OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA3IDE1OjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA3IDE0OjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA3IDEzOjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX21haW5qc19jX29uPSIyMDI2LTA3LTA3IDEyOjMwOjE2IjsidXNlIHN0cmljdCI7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTsKJGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTskanNjb21wLlNJTVBMRV9GUk9VTkRfUE9MWUZJTEw9ITE7JGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTj0hMTskanNjb21wLmRlZmluZVByb3BlcnR5PSRqc2NvbXAuQVNTVU1FX0VTNXx8ImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzP09iamVjdC5kZWZpbmVQcm9wZXJ0eTpmdW5jdGlvbihhLGIsYyl7aWYoYT09QXJyYXkucHJvdG90eXBlfHxhPT1PYmplY3QucHJvdG90eXBlKXJldHVybiBhO2FbYl09Yy52YWx1ZTtyZXR1cm4gYX07CiRqc2NvbXAuZ2V0R2xvYmFsPWZ1bmN0aW9uKGEpe2E9WyJvYmplY3QiPT10eXBlb2YgZ2xvYmFsVGhpcyYmZ2xvYmFsVGhpcyxhLCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3csIm9iamVjdCI9PXR5cGVvZiBzZWxmJiZzZWxmLCJvYmplY3QiPT10eXBlb2YgZ2xvYmFsJiZnbG9iYWxdO2Zvcih2YXIgYj0wO2I8YS5sZW5ndGg7KytiKXt2YXIgYz1hW2JdO2lmKGMmJmMuTWF0aD09TWF0aClyZXR1cm4gY310aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpO307JGpzY29tcC5nbG9iYWw9JGpzY29tcC5nZXRHbG9iYWwodGhpcyk7JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPSJmdW5jdGlvbiI9PT10eXBlb2YgU3ltYm9sJiYic3ltYm9sIj09PXR5cGVvZiBTeW1ib2woIngiKTskanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFM9ISRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFN8fCRqc2NvbXAuSVNfU1lNQk9MX05BVElWRTskanNjb21wLnBvbHlmaWxscz17fTsKJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2w9e307JGpzY29tcC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7dmFyICRqc2NvbXAkbG9va3VwUG9seWZpbGxlZFZhbHVlPWZ1bmN0aW9uKGEsYil7dmFyIGM9JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbYl07aWYobnVsbD09YylyZXR1cm4gYVtiXTtjPWFbY107cmV0dXJuIHZvaWQgMCE9PWM\/YzphW2JdfTskanNjb21wLnBvbHlmaWxsPWZ1bmN0aW9uKGEsYixjLGQpe2ImJigkanNjb21wLklTT0xBVEVfUE9MWUZJTExTPyRqc2NvbXAucG9seWZpbGxJc29sYXRlZChhLGIsYyxkKTokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZChhLGIsYyxkKSl9OwokanNjb21wLnBvbHlmaWxsVW5pc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXtjPSRqc2NvbXAuZ2xvYmFsO2E9YS5zcGxpdCgiLiIpO2ZvcihkPTA7ZDxhLmxlbmd0aC0xO2QrKyl7dmFyIGU9YVtkXTtpZighKGUgaW4gYykpcmV0dXJuO2M9Y1tlXX1hPWFbYS5sZW5ndGgtMV07ZD1jW2FdO2I9YihkKTtiIT1kJiZudWxsIT1iJiYkanNjb21wLmRlZmluZVByb3BlcnR5KGMsYSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KX07CiRqc2NvbXAucG9seWZpbGxJc29sYXRlZD1mdW5jdGlvbihhLGIsYyxkKXt2YXIgZT1hLnNwbGl0KCIuIik7YT0xPT09ZS5sZW5ndGg7ZD1lWzBdO2Q9IWEmJmQgaW4gJGpzY29tcC5wb2x5ZmlsbHM\/JGpzY29tcC5wb2x5ZmlsbHM6JGpzY29tcC5nbG9iYWw7Zm9yKHZhciBrPTA7azxlLmxlbmd0aC0xO2srKyl7dmFyIGg9ZVtrXTtpZighKGggaW4gZCkpcmV0dXJuO2Q9ZFtoXX1lPWVbZS5sZW5ndGgtMV07Yz0kanNjb21wLklTX1NZTUJPTF9OQVRJVkUmJiJlczYiPT09Yz9kW2VdOm51bGw7Yj1iKGMpO251bGwhPWImJihhPyRqc2NvbXAuZGVmaW5lUHJvcGVydHkoJGpzY29tcC5wb2x5ZmlsbHMsZSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KTpiIT09YyYmKHZvaWQgMD09PSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdJiYoYz0xRTkqTWF0aC5yYW5kb20oKT4+PjAsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbZV09JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFPwokanNjb21wLmdsb2JhbC5TeW1ib2woZSk6JGpzY29tcC5QT0xZRklMTF9QUkVGSVgrYysiJCIrZSksJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShkLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pKSl9OyRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQ9ZnVuY3Rpb24oKXt2YXIgYT17YTohMH0sYj17fTt0cnl7cmV0dXJuIGIuX19wcm90b19fPWEsYi5hfWNhdGNoKGMpe31yZXR1cm4hMX07CiRqc2NvbXAuc2V0UHJvdG90eXBlT2Y9JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTJiYiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LnNldFByb3RvdHlwZU9mP09iamVjdC5zZXRQcm90b3R5cGVPZjokanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0KCk\/ZnVuY3Rpb24oYSxiKXthLl9fcHJvdG9fXz1iO2lmKGEuX19wcm90b19fIT09Yil0aHJvdyBuZXcgVHlwZUVycm9yKGErIiBpcyBub3QgZXh0ZW5zaWJsZSIpO3JldHVybiBhfTpudWxsOyRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGw9ZnVuY3Rpb24oYSl7dmFyIGI9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gYjxhLmxlbmd0aD97ZG9uZTohMSx2YWx1ZTphW2IrK119Ontkb25lOiEwfX19OyRqc2NvbXAuYXJyYXlJdGVyYXRvcj1mdW5jdGlvbihhKXtyZXR1cm57bmV4dDokanNjb21wLmFycmF5SXRlcmF0b3JJbXBsKGEpfX07CiRqc2NvbXAubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3ZhciBiPSJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaXRlcmF0b3ImJmFbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gYj9iLmNhbGwoYSk6JGpzY29tcC5hcnJheUl0ZXJhdG9yKGEpfTskanNjb21wLmdlbmVyYXRvcj17fTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0Xz1mdW5jdGlvbihhKXtpZighKGEgaW5zdGFuY2VvZiBPYmplY3QpKXRocm93IG5ldyBUeXBlRXJyb3IoIkl0ZXJhdG9yIHJlc3VsdCAiK2ErIiBpcyBub3QgYW4gb2JqZWN0Iik7fTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dD1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMTt0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7dGhpcy55aWVsZFJlc3VsdD12b2lkIDA7dGhpcy5uZXh0QWRkcmVzcz0xO3RoaXMuZmluYWxseUFkZHJlc3NfPXRoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUNvbnRleHRzXz10aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0YXJ0Xz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSdW5uaW5nXyl0aHJvdyBuZXcgVHlwZUVycm9yKCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBydW5uaW5nIik7dGhpcy5pc1J1bm5pbmdfPSEwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdG9wXz1mdW5jdGlvbigpe3RoaXMuaXNSdW5uaW5nXz0hMX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0Vycm9ySGFuZGxlcl89ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPXRoaXMuY2F0Y2hBZGRyZXNzX3x8dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMueWllbGRSZXN1bHQ9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2V4Y2VwdGlvbjphLGlzRXhjZXB0aW9uOiEwfTt0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUucmV0dXJuPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e3JldHVybjphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRocm91Z2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEpe3RoaXMuYWJydXB0Q29tcGxldGlvbl89e2p1bXBUbzphfTt0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZD1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YjtyZXR1cm57dmFsdWU6YX19OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkQWxsPWZ1bmN0aW9uKGEsYil7YT0kanNjb21wLm1ha2VJdGVyYXRvcihhKTt2YXIgYz1hLm5leHQoKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhjKTtpZihjLmRvbmUpdGhpcy55aWVsZFJlc3VsdD1jLnZhbHVlLHRoaXMubmV4dEFkZHJlc3M9YjtlbHNlIHJldHVybiB0aGlzLnlpZWxkQWxsSXRlcmF0b3JfPWEsdGhpcy55aWVsZChjLnZhbHVlLGIpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvPWZ1bmN0aW9uKGEpe3RoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRW5kPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz0wfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRDYXRjaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSxiKXt0aGlzLmNhdGNoQWRkcmVzc189YTt2b2lkIDAhPWImJih0aGlzLmZpbmFsbHlBZGRyZXNzXz1iKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0RmluYWxseUJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz0wO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlVHJ5QmxvY2s9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWE7dGhpcy5jYXRjaEFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckNhdGNoQmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7YT10aGlzLmFicnVwdENvbXBsZXRpb25fLmV4Y2VwdGlvbjt0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGw7cmV0dXJuIGF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYixjKXtjP3RoaXMuZmluYWxseUNvbnRleHRzX1tjXT10aGlzLmFicnVwdENvbXBsZXRpb25fOnRoaXMuZmluYWxseUNvbnRleHRzXz1bdGhpcy5hYnJ1cHRDb21wbGV0aW9uX107dGhpcy5jYXRjaEFkZHJlc3NfPWF8fDA7dGhpcy5maW5hbGx5QWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmxlYXZlRmluYWxseUJsb2NrPWZ1bmN0aW9uKGEsYil7Yj10aGlzLmZpbmFsbHlDb250ZXh0c18uc3BsaWNlKGJ8fDApWzBdO2lmKGI9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz10aGlzLmFicnVwdENvbXBsZXRpb25ffHxiKXtpZihiLmlzRXhjZXB0aW9uKXJldHVybiB0aGlzLmp1bXBUb0Vycm9ySGFuZGxlcl8oKTt2b2lkIDAhPWIuanVtcFRvJiZ0aGlzLmZpbmFsbHlBZGRyZXNzXzxiLmp1bXBUbz8odGhpcy5uZXh0QWRkcmVzcz1iLmp1bXBUbyx0aGlzLmFicnVwdENvbXBsZXRpb25fPW51bGwpOnRoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199ZWxzZSB0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmZvckluPWZ1bmN0aW9uKGEpe3JldHVybiBuZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yKGEpfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3RoaXMub2JqZWN0Xz1hO3RoaXMucHJvcGVydGllc189W107Zm9yKHZhciBiIGluIGEpdGhpcy5wcm9wZXJ0aWVzXy5wdXNoKGIpO3RoaXMucHJvcGVydGllc18ucmV2ZXJzZSgpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IucHJvdG90eXBlLmdldE5leHQ9ZnVuY3Rpb24oKXtmb3IoOzA8dGhpcy5wcm9wZXJ0aWVzXy5sZW5ndGg7KXt2YXIgYT10aGlzLnByb3BlcnRpZXNfLnBvcCgpO2lmKGEgaW4gdGhpcy5vYmplY3RfKXJldHVybiBhfXJldHVybiBudWxsfTskanNjb21wLmdlbmVyYXRvci5FbmdpbmVfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF89bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ7dGhpcy5wcm9ncmFtXz1hfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXy5uZXh0LGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy5uZXh0XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnJldHVybl89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTt2YXIgYj10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfO2lmKGIpcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXygicmV0dXJuImluIGI\/YlsicmV0dXJuIl06ZnVuY3Rpb24oYyl7cmV0dXJue3ZhbHVlOmMsZG9uZTohMH19LGEsdGhpcy5jb250ZXh0Xy5yZXR1cm4pO3RoaXMuY29udGV4dF8ucmV0dXJuKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUudGhyb3dfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl9bInRocm93Il0sYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLnRocm93XyhhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnlpZWxkQWxsU3RlcF89ZnVuY3Rpb24oYSxiLGMpe3RyeXt2YXIgZD1hLmNhbGwodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXyxiKTskanNjb21wLmdlbmVyYXRvci5lbnN1cmVJdGVyYXRvclJlc3VsdElzT2JqZWN0XyhkKTtpZighZC5kb25lKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCksZDt2YXIgZT1kLnZhbHVlfWNhdGNoKGspe3JldHVybiB0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGwsdGhpcy5jb250ZXh0Xy50aHJvd18oayksdGhpcy5uZXh0U3RlcF8oKX10aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfPW51bGw7Yy5jYWxsKHRoaXMuY29udGV4dF8sZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0U3RlcF89ZnVuY3Rpb24oKXtmb3IoO3RoaXMuY29udGV4dF8ubmV4dEFkZHJlc3M7KXRyeXt2YXIgYT10aGlzLnByb2dyYW1fKHRoaXMuY29udGV4dF8pO2lmKGEpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSx7dmFsdWU6YS52YWx1ZSxkb25lOiExfX1jYXRjaChiKXt0aGlzLmNvbnRleHRfLnlpZWxkUmVzdWx0PXZvaWQgMCx0aGlzLmNvbnRleHRfLnRocm93XyhiKX10aGlzLmNvbnRleHRfLnN0b3BfKCk7aWYodGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXyl7YT10aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fO3RoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl89bnVsbDtpZihhLmlzRXhjZXB0aW9uKXRocm93IGEuZXhjZXB0aW9uO3JldHVybnt2YWx1ZTphLnJldHVybixkb25lOiEwfX1yZXR1cm57dmFsdWU6dm9pZCAwLGRvbmU6ITB9fTsKJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXz1mdW5jdGlvbihhKXt0aGlzLm5leHQ9ZnVuY3Rpb24oYil7cmV0dXJuIGEubmV4dF8oYil9O3RoaXMudGhyb3c9ZnVuY3Rpb24oYil7cmV0dXJuIGEudGhyb3dfKGIpfTt0aGlzLnJldHVybj1mdW5jdGlvbihiKXtyZXR1cm4gYS5yZXR1cm5fKGIpfTt0aGlzW1N5bWJvbC5pdGVyYXRvcl09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc319OyRqc2NvbXAuZ2VuZXJhdG9yLmNyZWF0ZUdlbmVyYXRvcj1mdW5jdGlvbihhLGIpe2I9bmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYikpOyRqc2NvbXAuc2V0UHJvdG90eXBlT2YmJmEucHJvdG90eXBlJiYkanNjb21wLnNldFByb3RvdHlwZU9mKGIsYS5wcm90b3R5cGUpO3JldHVybiBifTsKJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGIoZCl7cmV0dXJuIGEubmV4dChkKX1mdW5jdGlvbiBjKGQpe3JldHVybiBhLnRocm93KGQpfXJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihkLGUpe2Z1bmN0aW9uIGsoaCl7aC5kb25lP2QoaC52YWx1ZSk6UHJvbWlzZS5yZXNvbHZlKGgudmFsdWUpLnRoZW4oYixjKS50aGVuKGssZSl9ayhhLm5leHQoKSl9KX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb249ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihhKCkpfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JQcm9ncmFtPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IobmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl8obmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8oYSkpKX07CmpRdWVyeS5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGpRdWVyeX07alF1ZXJ5LmV2ZW50LnNwZWNpYWwudG91Y2hzdGFydD17c2V0dXA6ZnVuY3Rpb24oYSxiLGMpe2IuaW5jbHVkZXMoIm5vUHJldmVudERlZmF1bHQiKT90aGlzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGMse3Bhc3NpdmU6ITF9KTp0aGlzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLGMse3Bhc3NpdmU6ITB9KX19O2pRdWVyeS5leHByLnBzZXVkb3MucmVhbGx5VmlzaWJsZT1mdW5jdGlvbihhKXt0cnl7aWYoYT09ZG9jdW1lbnQuYm9keSlyZXR1cm4hMDt2YXIgYj1qUXVlcnkoYSk7cmV0dXJuIGIuaXMoIjp2aXNpYmxlIikmJiJoaWRkZW4iIT09Yi5jc3MoInZpc2liaWxpdHkiKSYmMDxiLnBhcmVudCgiOnJlYWxseVZpc2libGUiKS5sZW5ndGh9Y2F0Y2goYyl7cmV0dXJuIGNvbnNvbGUubG9nKGMubWVzc2FnZSxjKSwhMX19OwpBcnJheS5wcm90b3R5cGUuZmluZHx8T2JqZWN0LmRlZmluZVByb3BlcnR5KEFycmF5LnByb3RvdHlwZSwiZmluZCIse3ZhbHVlOmZ1bmN0aW9uKGEsYil7aWYobnVsbD09dGhpcyl0aHJvdyBUeXBlRXJyb3IoJyJ0aGlzIiBpcyBudWxsIG9yIG5vdCBkZWZpbmVkJyk7dmFyIGM9T2JqZWN0KHRoaXMpLGQ9Yy5sZW5ndGg+Pj4wO2lmKCJmdW5jdGlvbiIhPT10eXBlb2YgYSl0aHJvdyBUeXBlRXJyb3IoInByZWRpY2F0ZSBtdXN0IGJlIGEgZnVuY3Rpb24iKTtmb3IodmFyIGU9MDtlPGQ7KXt2YXIgaz1jW2VdO2lmKGEuY2FsbChiLGssZSxjKSlyZXR1cm4gaztlKyt9fSxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTsKdmFyIGlzRnVuY3Rpb249YT0+ImZ1bmN0aW9uIj09PXR5cGVvZiBhLHRyaW09YT0+YS5yZXBsYWNlKC9eXHMrfFxzKyQvZywiIiksZGVidWc9ZnVuY3Rpb24oKXtpZihkZWJ1Z0VuYWJsZWQoKSl7dmFyIGE9Y29uc29sZSxiPWFyZ3VtZW50czsiZnVuY3Rpb24iPT10eXBlb2YgYS5sb2cmJmEubG9nLmFwcGx5KGEsYil9fSxkZWJ1Z0VuYWJsZWQ9ZnVuY3Rpb24oKXt2YXIgYT1kb2N1bWVudC5sb2NhdGlvbi5ob3N0LGI9ZG9jdW1lbnQuY29va2llLm1hdGNoKC90ZXN0aW5nPShbXjtdKykvaSk7cmV0dXJuKGI9bnVsbD09Yj8hMTpiWzFdKXx8L14oZGVhbGVyfGRlbW8pfGQyY21lZGlhXC5jYSQvLnRlc3QoYSkmJiJvZmYiIT1ifSxlbmFibGVEZWJ1Zz1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJ0ZXN0aW5nIiwib24iKX0sZGlzYWJsZURlYnVnPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInRlc3RpbmciLCJvZmYiKX0sQWxlcnRCYXI9ZnVuY3Rpb24oYSl7dmFyIGI9YS5zZWN0aW9ucy50b0xvd2VyQ2FzZSgpLApjPWEuY3VycmVudC50b0xvd2VyQ2FzZSgpLGQ9JCgiLmhlYWRlci13cmFwcGVyIikubGVuZ3RoPyQoIi5oZWFkZXItd3JhcHBlciIpOiQoIiNtYWluRGl2IiksZT0kKCIjYWxlcnRNc2dDb250YWluZXIiKSxrPSQoImJvZHkiKSxoPSQoIi5BZGRlZFRvcExpbmtEaXYiKSxuPW5ldyBEYXRlO24uc2V0VGltZShuLmdldFRpbWUoKSszNkU1KTt2YXIgeD1mdW5jdGlvbigpe0Nvb2tpZXMuc2V0KCJhbGVydE1lc3NhZ2VDbG9zZWQiLDEsbiwiLyIpO2UuaGlkZSgpO2QuY3NzKHttYXJnaW5Ub3A6MH0pO2suY3NzKCJiYWNrZ3JvdW5kLXBvc2l0aW9uLXkiLCIiKTswPGgubGVuZ3RoJiZoLmNzcygibWFyZ2luLXRvcCIsIiIpfTstMTxiLmluZGV4T2YoYykmJiFDb29raWVzLmdldCgiYWxlcnRNZXNzYWdlQ2xvc2VkIikmJihlLmNzcyh7YmFja2dyb3VuZENvbG9yOmEuY29sb3J9KSwkKCIuY2xvc2UiLGUpLm9uKCJjbGljayIseCksZC5jc3MoIm1hcmdpbi10b3AiLGUuaGVpZ2h0KCkrInB4IiksCmsuY3NzKHsiYmFja2dyb3VuZC1wb3NpdGlvbi15IjplLmhlaWdodCgpKyJweCJ9KSwwPGgubGVuZ3RoJiZoLmNzcygibWFyZ2luLXRvcCIsZS5oZWlnaHQoKSsicHgiKSxlLnNob3coKSl9O2Z1bmN0aW9uIExlYWRHZW5BREYoYSxiLGMsZCxlLGssaCxuKXtpZih0eXBlb2YgY2FycHJvb2ZIYW5kbGVyKXJldHVybiBjYXJwcm9vZkhhbmRsZXIubGVhZEdlbi5hcHBseShjYXJwcm9vZkhhbmRsZXIsYXJndW1lbnRzKX0KZnVuY3Rpb24gcnVuSW1hZ2VQb3B1cEZpcmV3b3JrcygpeyJ1bmRlZmluZWQiIT10eXBlb2YgRmlyZXdvcmtUaW1lciYmKGltYWdlRmlyZXdvcmtzPSEwLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCJGRkZGRkYiLDIwMCwyMDApLEZpcmV3b3JrVGltZXIoImJnSW1hZ2UiLCJGRjAwMDAiLDM4MCwyNTAsMUUzKSxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiMDBmZjExIiw5MCwxNzAsMkUzKSxGaXJld29ya1RpbWVyKCJiZ0ltYWdlIiwiNDRjZGZmIiwzMjAsMjUwLDNFMywwLC44KSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7cnVuSW1hZ2VQb3B1cEZpcmV3b3JrcygpfSwxRTQpKX0KZnVuY3Rpb24gaGFuZGxlQWN0aW9uQ2xpY2soYSl7YT1hfHx3aW5kb3cuZXZlbnQ7YT1hLmN1cnJlbnRUYXJnZXR8fGEuc3JjRWxlbWVudDt2YXIgYj13aW5kb3cubG9jYXRpb24uaHJlZi5zdWJzdHJpbmcod2luZG93LmxvY2F0aW9uLmhyZWYubGFzdEluZGV4T2YoIi8iKSsxKSxjPSJ1c2VkIixkPSIiO2lmKC0xPT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCItaWQiKSl7ZD1iLnJlcGxhY2UoIi5odG1sIiwiIikuc3BsaXQoIi0iKTtpZigzPmQubGVuZ3RofHwtMTxiLmluZGV4T2YoInNlYXJjaCIpfHwtMTxiLmluZGV4T2YoImZpbmQtIil8fC0xPGIuaW5kZXhPZigicmVjaGVyY2hlIil8fC0xPGIuaW5kZXhPZigicHJpeC0iKXx8LTE8Yi5pbmRleE9mKCJwcmljZS0iKXx8LTE8Yi5pbmRleE9mKCJlc3NhaXMtcm91dGllci0iKXx8LTE8Yi5pbmRleE9mKCJ0ZXN0LWRyaXZlLSIpfHwtMTxiLmluZGV4T2YoInZlaGljdWxlLWVjaGFuZ2UtIil8fC0xPGIuaW5kZXhPZigidHJhZGUtaW4tIil8fAotMTxiLmluZGV4T2YoInBuZXVzLXBpZWNlcy0iKXx8LTE8Yi5pbmRleE9mKCJjYXItcGFydHMtIil8fC0xPGIuaW5kZXhPZigicmVuZGV6LXZvdXMtIil8fC0xPGIuaW5kZXhPZigiLWFwcG9pbnRtZW50Iil8fC0xPGIuaW5kZXhPZigiY3JlZGl0Iil8fC0xPGIuaW5kZXhPZigiZmluYW5jZW1lbnQiKXx8LTE8Yi5pbmRleE9mKCJwcmUtYXBwcm8iKXx8LTE8Yi5pbmRleE9mKCJuZXctd2VzdCIpfHwtMTxiLmluZGV4T2YoImNvbmZpZGVudGlhbGl0ZSIpfHwtMTxiLmluZGV4T2YoInByaXZhY3ktcG9saWN5Iil8fC0xPGIuaW5kZXhPZigidGVybWVzLWV0LWNvbmRpdGlvbnMiKXx8LTE8Yi5pbmRleE9mKCJ0ZXJtcy1hbmQtY29uZGl0aW9ucyIpKWQ9Ii5odG1sIjtlbHNle3ZhciBlPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTsidW5kZWZpbmVkIj09dHlwZW9mIGRbMl18fGUhPWRbMl0mJmUrMSE9ZFsyXXx8KGM9Im5ldyIpO2Q9Ii8iK2J9ZD1hLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikucmVwbGFjZSgiLmh0bWwiLApkKX1lbHNle3N3aXRjaChhLmdldEF0dHJpYnV0ZSgiYWN0aW9uIikpe2Nhc2UgIlRlc3REcml2ZUFjdGlvbkJveCI6ZD0kKCIjdGVzdERyaXZlRm9sZGVyIikudmFsKCkrYjticmVhaztjYXNlICJQcmljZUFjdGlvbkJveCI6ZD0kKCIjcHJpY2VSZXF1ZXN0Rm9sZGVyIikudmFsKCkrYjticmVhaztjYXNlICJFdmFsQWN0aW9uQm94IjpkPSQoIiNldmFsQ2FyRm9sZGVyIikudmFsKCkrYjticmVhaztjYXNlICJGaW5hbmNlQWN0aW9uQm94IjpkPSQoIiNGaW5hbmNlRm9sZGVyIikudmFsKCkrYjticmVhaztkZWZhdWx0OiJ1bmRlZmluZWQiIT10eXBlb2YgJChhKS5hdHRyKCJmb2xkZXIiKT9kPSQoYSkuYXR0cigiZm9sZGVyIik6InVuZGVmaW5lZCIhPXR5cGVvZiAkKGEpLmF0dHIoInRhcmdldHVyaSIpJiYoZD0kKGEpLmF0dHIoInRhcmdldHVyaSIpKX1Db29raWVzLnNldCgiZnJvbWRldGFpbHNwYWdlIiwiMSIsbnVsbCwiLyIpfWlmKCJ1bmRlZmluZWQiIT10eXBlb2YgZCYmbnVsbCE9CmQmJjA8ZC5sZW5ndGgpe2I9ZDJjbWVkaWEuaHRtbEZpbGUoITEsITApO2U9Yi5zcGxpdCgiLSIpO3ZhciBrPSIiLGg9IiIsbj0iIjswPGUubGVuZ3RoJiYoaz1lWzBdKTsxPGUubGVuZ3RoJiYoaD1lWzFdKTsyPGUubGVuZ3RoJiYobj1lWzJdKTswPGsubGVuZ3RoJiYwPGgubGVuZ3RoJiYwPG4ubGVuZ3RoJiYhaXNOYU4obikmJjQ9PW4udG9TdHJpbmcoKS5sZW5ndGgmJi0xPGQuaW5kZXhPZigiLmh0bSIpJiYoZT1hLmdldEF0dHJpYnV0ZSgiZm9sZGVyIiksZD0idW5kZWZpbmVkIiE9dHlwZW9mIGUmJm51bGwhPWU\/ZTpkLnN1YnN0cmluZygwLGQubGFzdEluZGV4T2YoIi8iKSsxKSxkPWQucmVwbGFjZSgiLmh0bWwiLCIvIikrYisiLmh0bWwiKTskKGEpLmhhc0NsYXNzKCJ0cmFkZWluTGluayIpJiYoMDxhLmdldEF0dHJpYnV0ZSgidGFyZ2V0VVJJIikuaW5kZXhPZigidHJhZGVpbnZhbHVlcyIpfHwwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJpbnN0YW50b2ZmZXIuYWNjdS10cmFkZS5jb20iKSk\/CnNob3dUcmFkZUluUG9wdXAoYS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpKTooIm5ldyI9PWMmJihkPWQucmVwbGFjZSgib2NjYXNpb24iLCJuZXVmIikucmVwbGFjZSgidXNlZCIsIm5ldyIpKSx3aW5kb3cubG9jYXRpb24uaHJlZj1kKX19CmZ1bmN0aW9uIG9wZW5GaW5hbmNlTXVsdGlzdGVwRm9ybU9uQ3VycmVudFBhZ2UoYSxiLGMsZCxlLGssaCl7YS5wcmV2ZW50RGVmYXVsdCgpO2Euc3RvcFByb3BhZ2F0aW9uKCk7Yj8kKCIjcG9wdXBtYWtlTXVsdGlzdGVwRm9ybSIpLnZhbChiKToiTkVXQ0FSREVUQUlMUyI9PSQoImJvZHkiKS5hdHRyKCJpZCIpPyQoIiNwb3B1cG1ha2VNdWx0aXN0ZXBGb3JtIikudmFsKCQoIi5icmFuZGVtYWlsIikudmFsKCkpOiJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmJCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoJCgiI3Bob25lbWFrZSIpLnZhbCgpKTtjPyQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbChjKToiTkVXQ0FSREVUQUlMUyI9PSQoImJvZHkiKS5hdHRyKCJpZCIpPyQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIubW9kZWxlbWFpbCIpLnZhbCgpKToiY2FyZGV0YWlsLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCkmJgokKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS52YWwoJCgiI3Bob25lbW9kZWwiKS52YWwoKSk7ZD8kKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLnZhbChkKToiTkVXQ0FSREVUQUlMUyI9PSQoImJvZHkiKS5hdHRyKCJpZCIpPyQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCQoIi55ZWFyZW1haWwiKS52YWwoKSk6ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYkKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLnZhbCgkKCIjcGhvbmVteWVhciIpLnZhbCgpKTtlPyQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLnZhbChlKToiTkVXQ0FSREVUQUlMUyI9PSQoImJvZHkiKS5hdHRyKCJpZCIpPyQoIiNwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIpLnZhbCgiIik6ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpJiYkKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS52YWwoJCgiI3Bob25lc3RvY2tudW1iZXIiKS52YWwoKSk7Cms\/JCgiI3RvcGNhcmlkTXVsdGlzdGVwRm9ybSIpLnZhbChrKToiTkVXQ0FSREVUQUlMUyI9PSQoImJvZHkiKS5hdHRyKCJpZCIpJiYkKCIjdG9wY2FyaWRNdWx0aXN0ZXBGb3JtIikudmFsKCIiKTtoJiYoaC5zZW5kVG8mJiQoIiNGSU5BTkNFX0ZPUk1fU0VORFRPX0VNQUlMIikudmFsKGguc2VuZFRvKSxoLnNlbmRUb0FkZiYmJCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9BREZfRU1BSUwiKS52YWwoaC5zZW5kVG9BZGYpLGguZGVhbGVyTmFtZSYmJCgiI0ZJTkFOQ0VfRk9STV9ERUFMRVJOQU1FIikudmFsKGguZGVhbGVyTmFtZSkpO2E9ImZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciI7JCgiI0ZpbmFuY2VfRm9ybVR5cGUiKS5sZW5ndGgmJiJtdWx0aXN0ZXBJbnN0YW50Ij09JCgiI0ZpbmFuY2VfRm9ybVR5cGUiKS52YWwoKSYmJCgiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIiKS5sZW5ndGgmJihhPSJmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyIik7CiQoIiMiK2EpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKDEpfWZ1bmN0aW9uIG9wZW5TaG93cm9vbUNvbnRhY3RQb3B1cChhLGIsYyxkKXthLnByZXZlbnREZWZhdWx0KCk7YS5zdG9wUHJvcGFnYXRpb24oKTtlbWFpbEhhbmRsZXIubWFrZT1iOyQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbChiKTtlbWFpbEhhbmRsZXIubW9kZWw9YzskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKGMpO2VtYWlsSGFuZGxlci55ZWFyPWQ7JCgiI2xhc3R2aWV3ZWR5ZWFyIikudmFsKGQpOyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoImNsaWNrIikub3BlbigpfXZhciBkMmNtZWRpYT1kMmNtZWRpYXx8e307CmQyY21lZGlhLnNjcm9sbFRvPWZ1bmN0aW9uKGEsYixjKXsidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPTFFMyk7InVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj0wKTskKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7c2Nyb2xsVG9wOiQoYSkub2Zmc2V0KCkudG9wLWJ9LGMpO3JldHVybiExfTsKZDJjbWVkaWEudXJsPXtfc2FuaXRpemU6ITAsZGVzYW5pdGl6ZTpmdW5jdGlvbihhKXtpZigic3RyaW5nIj09PXR5cGVvZiBhKXJldHVybiBhLnJlcGxhY2UoL18vZywiLSIpO2lmKCJvYmplY3QiPT09dHlwZW9mIGEpe2Zvcih2YXIgYiBpbiBhKWFbYl09dGhpcy5kZXNhbml0aXplKGFbYl0pO3JldHVybiBhfX0sZ2VuZXJhdGU6ZnVuY3Rpb24oKXt2YXIgYT0iIjt0aGlzLl9zYW5pdGl6ZSYmKGFyZ3VtZW50cz10aGlzLnNhbml0aXplKGFyZ3VtZW50cykpO2ZvcihpPTA7aTxhcmd1bWVudHMubGVuZ3RoLTE7aSsrKWErPWFyZ3VtZW50c1tpXSsiLSI7cmV0dXJuIGErYXJndW1lbnRzW2ldKyIuaHRtbCJ9LHBhcnNlOmZ1bmN0aW9uKCl7dXJsPWRlY29kZVVSSUNvbXBvbmVudChkb2N1bWVudC5VUkwpO3N0clBhcmFtPXVybC5zdWJzdHJpbmcodXJsLmxhc3RJbmRleE9mKCIvIikpO29ialBhcmFtPXttYWtlOm51bGwsbW9kZWw6bnVsbCx5ZWFyOm51bGwsaWQ6bnVsbH07Zm91bmQ9ITE7CnZhciBhO251bGwhPShhPXN0clBhcmFtLm1hdGNoKC9eXC8oMjBbMC05XXsyfXwxOVswLTldezJ9KS0oW14tXSstW14tXC5dKykoLipcLmh0bWwpLykpJiYoc3RyUGFyYW09Ii8iK2FbMl0rIi0iK2FbMV0rYVszXSk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLSguKiktKFxkezR9KSgtaWQoXGQqKSk\/Lmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPWFbMV0sb2JqUGFyYW0ubW9kZWw9YVsyXSxvYmpQYXJhbS55ZWFyPWFbM10sb2JqUGFyYW0uaWQ9YVs1XSxmb3VuZD0hMCk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLSguKiktKFxkezR9KSgtY1xkKik\/Lmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPWFbMV0sb2JqUGFyYW0ubW9kZWw9YVsyXSxvYmpQYXJhbS55ZWFyPWFbM10sZm91bmQ9ITApO2E9c3RyUGFyYW0ubWF0Y2goL1wvKFteL10qKS0oXGR7NH0pLmh0bWwvKTtmb3VuZHx8bnVsbD09PWF8fChvYmpQYXJhbS5tYWtlPQphWzFdLG9ialBhcmFtLnllYXI9YVsyXSxmb3VuZD0hMCk7YT1zdHJQYXJhbS5tYXRjaCgvXC8oW14vXSopLShbXi5dKikuaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxvYmpQYXJhbS5tb2RlbD1hWzJdLGZvdW5kPSEwKTthPXN0clBhcmFtLm1hdGNoKC9cLyhbXi9dKikuaHRtbC8pO2ZvdW5kfHxudWxsPT09YXx8KG9ialBhcmFtLm1ha2U9YVsxXSxmb3VuZD0hMCk7dGhpcy5fc2FuaXRpemUmJihvYmpQYXJhbT10aGlzLmRlc2FuaXRpemUob2JqUGFyYW0pKTtyZXR1cm4gb2JqUGFyYW19LHNhbml0aXplOmZ1bmN0aW9uKGEpe2lmKCJzdHJpbmciPT09dHlwZW9mIGEpcmV0dXJuIGEucmVwbGFjZSgvLS9nLCJfIikucmVwbGFjZSgvWyciXS9nLCIiKTtpZigib2JqZWN0Ij09PXR5cGVvZiBhKXtmb3IodmFyIGIgaW4gYSlhW2JdPXRoaXMuc2FuaXRpemUoYVtiXSk7cmV0dXJuIGF9fSxzYW5pdGl6ZVJlZmVyZXI6ZnVuY3Rpb24oYSl7cmV0dXJuIGEucmVwbGFjZSgvWyciYCgpPD5cW1xde318IV0vZywKIiIpfX07ZDJjbWVkaWEuZ2V0SHR0cFRleHQ9ZnVuY3Rpb24oKXtyZXR1cm4iaHR0cHM6Ij09ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wmJiQoIiN0b3BkZXBsb3ltZW50dHlwZSIpLmxlbmd0aCYmImxpdmUiPT0kKCIjdG9wZGVwbG95bWVudHR5cGUiKS52YWwoKT8iaHR0cHMiOiJodHRwIn07ZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyPWZ1bmN0aW9uKGEpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYT8iIjphLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc2xpY2UoMSl9O2QyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkPWZ1bmN0aW9uKGEpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYT8iIjphLnNwbGl0KCIgIikucmVkdWNlKGZ1bmN0aW9uKGIsYyl7Yz1kMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXIoYyk7cmV0dXJuIGI\/YisiICIrYzpjfSwiIil9OwpkMmNtZWRpYS5zYWZlU3RyaW5nPWZ1bmN0aW9uKGEpe3ZhciBiPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO2IudGV4dENvbnRlbnQ9YTtyZXR1cm4gYi5pbm5lclRleHR9OwpkMmNtZWRpYS5odG1sRmlsZT1mdW5jdGlvbihhLGIpe3ZhciBjPXdpbmRvdy5sb2NhdGlvbi5zZWFyY2gubGVuZ3RoJiYtMTx3aW5kb3cubG9jYXRpb24uc2VhcmNoLmluZGV4T2YoInBhdGg9Iik\/d2luZG93LmxvY2F0aW9uLnNlYXJjaDp3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7Yz1jLnN1YnN0cmluZyhjLmxhc3RJbmRleE9mKCIvIikrMSk7Yz1kMmNtZWRpYS5zYWZlU3RyaW5nKGMpO3RyeXt2YXIgZD1kZWNvZGVVUklDb21wb25lbnQoYyl9Y2F0Y2goayl7dmFyIGU9eyIlQzAiOiImQWdyYXZlOyIsIiVDMSI6IiZBYWN1dGU7IiwiJUMyIjoiJkFjaXJjOyIsIiVDMyI6IiZBdGlsZGU7IiwiJUM0IjoiJkF1bWw7IiwiJUM1IjoiJkFyaW5nOyIsIiVDNiI6IiZBRWxpZzsiLCIlQzciOiImQ2NlZGlsOyIsIiVDOCI6IiZFZ3JhdmU7IiwiJUM5IjoiJkVhY3V0ZTsiLCIlQ0EiOiImRWNpcmM7IiwiJUNCIjoiJkV1bWw7IiwiJUNDIjoiJklncmF2ZTsiLCIlQ0QiOiImSWFjdXRlOyIsIiVDRSI6IiZJY2lyYzsiLAoiJUNGIjoiJkl1bWw7IiwiJUQwIjoiJkVUSDsiLCIlRDEiOiImTnRpbGRlOyIsIiVEMiI6IiZPZ3JhdmU7IiwiJUQzIjoiJk9hY3V0ZTsiLCIlRDQiOiImT2NpcmM7IiwiJUQ1IjoiJk90aWxkZTsiLCIlRDYiOiImT3VtbDsiLCIlRDgiOiImT3NsYXNoOyIsIiVEOSI6IiZVZ3JhdmU7IiwiJURBIjoiJlVhY3V0ZTsiLCIlREIiOiImVWNpcmM7IiwiJURDIjoiJlV1bWw7IiwiJUREIjoiJllhY3V0ZTsiLCIlREUiOiImVEhPUk47IiwiJURGIjoiJnN6bGlnOyIsIiVFMCI6IiZhZ3JhdmU7IiwiJUUxIjoiJmFhY3V0ZTsiLCIlRTIiOiImYWNpcmM7IiwiJUUzIjoiJmF0aWxkZTsiLCIlRTQiOiImYXVtbDsiLCIlRTUiOiImYXJpbmc7IiwiJUU2IjoiJmFlbGlnOyIsIiVFNyI6IiZjY2VkaWw7IiwiJUU4IjoiJmVncmF2ZTsiLCIlRTkiOiImZWFjdXRlOyIsIiVFQSI6IiZlY2lyYzsiLCIlRUIiOiImZXVtbDsiLCIlRUMiOiImaWdyYXZlOyIsIiVFRCI6IiZpYWN1dGU7IiwiJUVFIjoiJmljaXJjOyIsCiIlRUYiOiImaXVtbDsiLCIlRjAiOiImZXRoOyIsIiVGMSI6IiZudGlsZGU7IiwiJUYyIjoiJm9ncmF2ZTsiLCIlRjMiOiImb2FjdXRlOyIsIiVGNCI6IiZvY2lyYzsiLCIlRjUiOiImb3RpbGRlOyIsIiVGNiI6IiZvdW1sOyIsIiVGNyI6IiZkaXZpZGU7IiwiJUY4IjoiJm9zbGFzaDsiLCIlRjkiOiImdWdyYXZlOyIsIiVGQSI6IiZ1YWN1dGU7IiwiJUZCIjoiJnVjaXJjOyIsIiVGQyI6IiZ1dW1sOyIsIiVGRCI6IiZ5YWN1dGU7IiwiJUZFIjoiJnRob3JuOyIsIiVGRiI6IiZ5dW1sOyJ9O2Q9Yy5yZXBsYWNlKC8lWzAtOUEtRl17Mn0vaWcsZnVuY3Rpb24oaCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBlW2hdKXJldHVybiBkZWNvZGVVUklDb21wb25lbnQoaCk7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpO24udGV4dENvbnRlbnQ9ZVtoXTtyZXR1cm4gbi5pbm5lclRleHR9KX1kPWQuc3Vic3RyaW5nKDAsZC5pbmRleE9mKCIuaHRtIikpO2EmJihkPWQucmVwbGFjZSgvIC9nLAoiXyIpLnJlcGxhY2UoLycvZywiIikucmVwbGFjZSgiLmh0bWwiLCIiKSk7bnVsbCE9KGE9ZC5tYXRjaCgvXigxOVswLTldezJ9fDIwWzAtOV17Mn0pLShbXi1dKy1bXi1dKykoLiopJC8pKSYmKGQ9YVsyXSsiLSIrYVsxXSthWzNdLCJFTkdMSVNIIj09KCJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJFTkdMSVNIIjoiRlJFTkNIIikmJmImJihkPWFbMV0rIi0iK2FbMl0rYVszXSkpO3JldHVybiBkfTtkMmNtZWRpYS5pc0hvbWVwYWdlPWZ1bmN0aW9uKCl7dmFyIGE9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lO3JldHVybiIvIj09YXx8Ii9lbmcvIj09YXx8Ii9mci8iPT1hfTtkMmNtZWRpYS5wYWdlRGVwYXJ0bWVudD1mdW5jdGlvbigpe3ZhciBhPSQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLnZhbCgpO3JldHVybiJPVEhFUiI9PWEmJmQyY21lZGlhLmlzSG9tZXBhZ2UoKT8iSE9NRVBBR0UiOmF9Owp2YXIganNfZDJjX2dldF92YWw9anNfZDJjX2dldF92YWx8fGZ1bmN0aW9uKGEpe3RyeXtyZXR1cm4oZWw9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkpP2VsLnZhbHVlOiIifWNhdGNoKGIpe3JldHVybiBjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlN5c3RlbSBmYWlsZWQgd2hpbGUgcmV0cmlldmluZyByZXBsYWNlbWVudCB2YWx1ZTogIitiLm1lc3NhZ2UsYiksYX19O1N0cmluZy5wcm90b3R5cGUubm9EMkNSZXBsYWNlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWVPZigpfTsKZDJjQkdDbGljaz1mdW5jdGlvbihhKXt2YXIgYj10aGlzOyQuZXh0ZW5kKGIsYSk7dGhpcy5zZXQ9ZnVuY3Rpb24oYyl7InVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz0hMSk7dmFyIGQ9Yi5iZ0ltZ1VybCxlPWIuYmdJbWdQYXRoLGs9Yi5iZ0ltZ0ZpeGVkLGg9Yi5iZ0ltZ1Jlc3BvbnNpdmUsbj1iLm1ha2UseD1kb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZS5yZXBsYWNlKC8tL2csIiIpLHY9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKS50b0xvd2VyQ2FzZSgpOiJmcmVuY2giLGY9IiIsZz0hMTswIT1jJiYobj1jLnRvTG93ZXJDYXNlKCkpO3ZhciBtPWM9IiI7bj9lLmhhc093blByb3BlcnR5KG4pPyhjPWVbbl0sbT1rW25dK2hbbl0sZz0hMCk6ZS5oYXNPd25Qcm9wZXJ0eSgiYWxsIik\/KGM9ZS5hbGwsbT1rLmFsbCtoLmFsbCxnPSEwKTplLmhhc093blByb3BlcnR5KHYpJiYoYz1lW3ZdLG09a1t2XStoW3ZdKTplLmhhc093blByb3BlcnR5KHYpJiYKMD09ZyYmKGM9ZVt2XSxtPWtbdl0raFt2XSk7YyYmKGIuYmdJbWc9Yy5zcGxpdCgiLyIpLnBvcCgpLCQoImJvZHkiKS5hdHRyKCJzdHlsZSIsImJhY2tncm91bmQtaW1hZ2U6IHVybCgnIitjKyInKTsgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjsgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsiK20pKTtmb3IodmFyIGwgaW4gZCl7aWYoLTEhPXguaW5kZXhPZihsLHgpKXtmPWRbbF07YnJlYWt9aWYobD09dil7Zj1kW2xdO2JyZWFrfX0wPT1mLmxlbmd0aCYmKGQuaGFzT3duUHJvcGVydHkobik\/Zj1kW25dOmQuaGFzT3duUHJvcGVydHkoImFsbCIpJiYoZj1kLmFsbCkpOzA8Zi5sZW5ndGgmJihkPSQod2luZG93KS53aWR0aCgpLzItJCgiLndyYXBwZXIiKS53aWR0aCgpLzIsZT0kKHdpbmRvdykud2lkdGgoKS8yKyQoIi53cmFwcGVyIikud2lkdGgoKS8yLCQoIiNiZ0NsaWNrMSIpLnJlbW92ZSgpLCQoIiNiZ0NsaWNrMiIpLnJlbW92ZSgpLCQoImJvZHkiKS5hcHBlbmQoIjxkaXYgaWQ9J2JnQ2xpY2sxJyBzdHlsZT0nei1pbmRleDoxMDA7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6IisKZCsicHg7aGVpZ2h0OjEwMCU7cG9zaXRpb246Zml4ZWQ7bGVmdDowcHg7dG9wOjBweDsnPjwvZGl2PiIpLCQoImJvZHkiKS5hcHBlbmQoIjxkaXYgaWQ9J2JnQ2xpY2syJyBzdHlsZT0nei1pbmRleDoxMDA7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6IitkKyJweDtoZWlnaHQ6MTAwJTtwb3NpdGlvbjpmaXhlZDtsZWZ0OiIrZSsicHg7dG9wOjBweDsnPjwvZGl2PiIpLCQoIiNiZ0NsaWNrMSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtiLnJlZGlyZWN0KGYpfSksJCgiI2JnQ2xpY2syIikub24oImNsaWNrIixmdW5jdGlvbigpe2IucmVkaXJlY3QoZil9KSl9O3RoaXMucmVzZXQ9ZnVuY3Rpb24oYyl7Yi5zZXQoKX07dGhpcy5yZWRpcmVjdD1mdW5jdGlvbihjKXsibGl2ZSI9PWIuZGVwbG95bWVudFR5cGUmJihnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkNsaXF1ZXMiLCJJbWFnZS1kZS1mb25kIixiLmJnSW1nLDEpLCJmdW5jdGlvbiI9PXR5cGVvZiBiLmQyY0V2ZW50JiZiLmQyY0V2ZW50LmNhbGwoYiwKYi5iZ0ltZykpO3dpbmRvdy5vcGVuKGMpfTskKHdpbmRvdykub24oInJlc2l6ZSIsYi5yZXNldCk7cmV0dXJuIHRoaXN9O3ZhciBpbmplY3RHb29nbGVNYXBzS2V5PWZ1bmN0aW9uKGEpe2xldCBiPW51bGw7cmV0dXJuIGZ1bmN0aW9uKGMpe2lmKGIpcmV0dXJuIGMoYik7YS5hamF4KCIvYWpheC9nZXRHb29nbGVNYXBzS2V5IikuZG9uZShmdW5jdGlvbihkKXtiPShkLmtleT9kLmtleToiIikucmVwbGFjZSgvW15BLXowLTlfLV0vZywiIik7YyhiKX0pfX0oalF1ZXJ5KTsKZnVuY3Rpb24gcmhzUHJvbW9JbWFnZShhKXt2YXIgYj10aGlzO2IuZGF0YT1hO3ZhciBjPVtdLGQ9LTE7YT13aW5kb3cubG9jYXRpb247YT1kZWNvZGVVUklDb21wb25lbnQoYS5wYXRobmFtZSthLnNlYXJjaCkudG9Mb3dlckNhc2UoKTtmb3Ioc2VhcmNoIGluIGIuZGF0YSlpZigiZGVmYXVsdCI9PXNlYXJjaHx8LTEhPWEuaW5kZXhPZihkZWNvZGVVUklDb21wb25lbnQoKHNlYXJjaCsiIikudG9Mb3dlckNhc2UoKSkpKWZvcihpPTA7aTxiLmRhdGFbc2VhcmNoXS5sZW5ndGg7aSsrKWMucHVzaChiLmRhdGFbc2VhcmNoXVtpXSk7Yi5yb3RhdGU9ZnVuY3Rpb24oKXsrK2Q+Yy5sZW5ndGgtMSYmKGQ9MCk7dmFyIGU9Y1tkXSxrPSQoIjxpbWcgLz4iKS5hdHRyKHtzcmM6ZS5pLHN0eWxlOiJ3aWR0aDoxMDAlOyBtYXgtd2lkdGg6MjgwcHg7IGJvcmRlci1yYWRpdXM6IDVweDsgY3Vyc29yOnBvaW50ZXI7IixhbHQ6IiJ9KTskKCJkaXYjcmlnaHRQcm9tb0ltYWdlIikuaHRtbChrKTtudWxsIT0KZS51JiYwPGUudS5sZW5ndGgmJiQoImRpdiNyaWdodFByb21vSW1hZ2UiKS5hdHRyKCJvbmNsaWNrIiwid2luZG93LmxvY2F0aW9uID0gJyIrZS51KyInIik7JCgiZGl2I3JpZ2h0UHJvbW9JbWFnZSIpLnNob3coKTsxIT1jLmxlbmd0aCYmc2V0VGltZW91dChiLnJvdGF0ZSxlLmRlbGF5KX07MDxjLmxlbmd0aCYmYi5yb3RhdGUoKX1mdW5jdGlvbiBjbGVhblRleHQoYSl7YT1hLnJlcGxhY2UoL1tceDYwXS9nLCInIik7YT1hLnJlcGxhY2UoL+KAmS9nLCInIik7YT1hLnJlcGxhY2UoL2AvZywiJyIpO3JldHVybiBhLnJlcGxhY2UoL1tcdTIwMTld4oCZL2csIiciKX0KZnVuY3Rpb24gZW5jb2RlVGV4dChhKXt2YXIgYj1hO3RyeXtiPSQuYmFzZTY0LmVuY29kZShhKX1jYXRjaChrKXtjb25zb2xlLmxvZyhrLm1lc3NhZ2Usayk7YT0iIjtmb3IodmFyIGM9MDtjPGIubGVuZ3RoO2MrKyl7dmFyIGQ9Yi5jaGFyQXQoYyksZT1kLmNoYXJDb2RlQXQoMCk7aWYoNDc8ZSYmNTg+ZXx8NjQ8ZSYmOTE+ZXx8OTY8ZSYmMTIzPmUpYSs9ZDtlbHNlIHRyeXskLmJhc2U2NC5lbmNvZGUoZCksYSs9ZH1jYXRjaChoKXt9fWI9JC5iYXNlNjQuZW5jb2RlKGEpfXJldHVybiBifWZ1bmN0aW9uIGNsZWFuQW5kRW5jb2RlVGV4dChhKXt0cnl7dmFyIGI9IiI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhKXJldHVybiIiO2I9InN0cmluZyIhPXR5cGVvZiBhP2EudG9TdHJpbmcoKTphO2I9Y2xlYW5UZXh0KGIpO3JldHVybiBlbmNvZGVUZXh0KGIpfWNhdGNoKGMpe3JldHVybiBjb25zb2xlLmxvZyhjLm1lc3NhZ2UsYyksYX19CmZ1bmN0aW9uIEV4UGhvbmUoYSl7c3dpdGNoKGEudHlwZSl7Y2FzZSAibW91c2VlbnRlciI6JCgiLmV4dGVuZGVkUGhvbmUiKS5zaG93KCk7YnJlYWs7Y2FzZSAibW91c2VsZWF2ZSI6JCgiLmV4dGVuZGVkUGhvbmUiKS5oaWRlKCl9fWZ1bmN0aW9uIGdldFJlc2l6ZWRJbWFnZXMoKXtkZWJ1Z0VuYWJsZWQoKTtyZXR1cm4hMX1mdW5jdGlvbiBjaGFuZ2VIb21lQWN0aW9uQmFja0ltYWdlKGEsYil7JChhKS5jc3Moe2JhY2tncm91bmQ6InVybCgiK2IrIikiLGJhY2tncm91bmRSZXBlYXQ6Im5vLXJlcGVhdCIsYmFja2dyb3VuZFNpemU6IjI0MHB4IDEyMXB4In0pfXZhciBfX2N1cnJlbnRUaHJlYXNob2xkOwpmdW5jdGlvbiB0aHJlYWRob2xkU2Nyb2xsUGVyY2VudCgpe19fY3VycmVudFRocmVhc2hvbGR8fChfX2N1cnJlbnRUaHJlYXNob2xkPSgkKHdpbmRvdykuaGVpZ2h0KCkrJChkb2N1bWVudCkuc2Nyb2xsVG9wKCkpLyQoZG9jdW1lbnQpLmhlaWdodCgpLHNldFRpbWVvdXQoIl9fY3VycmVudFRocmVhc2hvbGQgPSBudWxsIiwzMzMpKTtyZXR1cm4gX19jdXJyZW50VGhyZWFzaG9sZH0KZnVuY3Rpb24gdGhyZXNob2xkRXhlYyhhLGIsYyl7dmFyIGQ9bnVsbDtjPWM\/YzpbXTtpZigiZnVuY3Rpb24iIT10eXBlb2YgYSl7dmFyIGU9TWF0aC5yb3VuZCgxRTQqYSkvMUU0OzE8ZSYmKGUvPTEwMCk7YT1mdW5jdGlvbigpe3JldHVybiBlfX12YXIgaz1mdW5jdGlvbigpe2lmKHRocmVhZGhvbGRTY3JvbGxQZXJjZW50KCk+YSgpKXt0cnl7Yi5hcHBseShudWxsLGMpfWNhdGNoKGgpe2NvbnNvbGUubG9nKGgpfWQ9Y2xlYXJJbnRlcnZhbChkKX19OyQoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ZD1zZXRJbnRlcnZhbChrLDMzMyl9LDJFMyl9KX0KZnVuY3Rpb24gc2Nyb2xsdXBFeGVjKGEpe3ZhciBiPW51bGwsYz0wLGQ9ZnVuY3Rpb24oKXskKHdpbmRvdykub24oInNjcm9sbCIsZnVuY3Rpb24oZSl7ZT0kKHRoaXMpLnNjcm9sbFRvcCgpO2U8YyYmKGEuY2FsbChudWxsKSxiPWNsZWFySW50ZXJ2YWwoYikpO2M9ZX0pfTskKGZ1bmN0aW9uKCl7Yj1zZXRJbnRlcnZhbChkLDMzMyl9KX1mdW5jdGlvbiBpblZpZXdFeGVjKGEsYil7dGhyZXNob2xkRXhlYyhmdW5jdGlvbigpe3ZhciBjPSQoYSk7dHJ5e3JldHVybiFjLmxlbmd0aHx8Yy5pcygiOmhpZGRlbiIpfHwwPT1jLm9mZnNldCgpLnRvcD8uOTU6Yy5vZmZzZXQoKS50b3AvJChkb2N1bWVudCkuaGVpZ2h0KCl9Y2F0Y2goZCl7cmV0dXJuLjk1fX0sYixbYV0pfXZhciBsdF9JRTk9ImZ1bmN0aW9uIiE9dHlwZW9mIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXI\/ITA6ITEsbHRfSUUxMT0wPT0hZG9jdW1lbnQuYWxsOwpmdW5jdGlvbiBpc0lFKCl7dmFyIGE9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlO3RyeXtkb2N1bWVudC5kb2N1bWVudE1vZGU9IiJ9Y2F0Y2goYyl7fXZhciBiPSJudW1iZXIiPT10eXBlb2YgZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHwobmV3IEZ1bmN0aW9uKCJyZXR1cm4vKkBjY19vbiFAKi8hMSIpKSgpO3RyeXtkb2N1bWVudC5kb2N1bWVudE1vZGU9YX1jYXRjaChjKXt9cmV0dXJuIGJ9dmFyIHQ9MDtfX3N0YXJ0PWZ1bmN0aW9uKCl7dD0obmV3IERhdGUpLmdldFRpbWUoKX07X19zdG9wPWZ1bmN0aW9uKCl7dmFyIGE9KG5ldyBEYXRlKS5nZXRUaW1lKCk7Y29uc29sZS5sb2coInRvb2siLChhLXQpLzFFMyl9O3ZhciBhbGVydEZhbGxiYWNrPSEwO2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGNvbnNvbGV8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGNvbnNvbGUubG9nKWNvbnNvbGU9e30sY29uc29sZS5sb2c9YWxlcnRGYWxsYmFjaz9mdW5jdGlvbihhKXt9OmZ1bmN0aW9uKCl7fTsKQXJyYXkucHJvdG90eXBlLm1hcHx8KEFycmF5LnByb3RvdHlwZS5tYXA9ZnVuY3Rpb24oYSxiKXt2YXIgYyxkO2lmKG51bGw9PXRoaXMpdGhyb3cgbmV3IFR5cGVFcnJvcigiIHRoaXMgaXMgbnVsbCBvciBub3QgZGVmaW5lZCIpO3ZhciBlPU9iamVjdCh0aGlzKSxrPWUubGVuZ3RoPj4+MDtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGEgZnVuY3Rpb24iKTsxPGFyZ3VtZW50cy5sZW5ndGgmJihjPWIpO3ZhciBoPUFycmF5KGspO2ZvcihkPTA7ZDxrOyl7aWYoZCBpbiBlKXt2YXIgbj1lW2RdO249YS5jYWxsKGMsbixkLGUpO2hbZF09bn1kKyt9cmV0dXJuIGh9KTtBcnJheS5wcm90b3R5cGUuaW5kZXhPZnx8KEFycmF5LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKGEsYil7Yj1ifHwwO2Zvcih2YXIgYz10aGlzLmxlbmd0aDtiPGM7YisrKWlmKHRoaXNbYl09PT1hKXJldHVybiBiO3JldHVybi0xfSk7CkFycmF5LnByb3RvdHlwZS5yZWR1Y2V8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBcnJheS5wcm90b3R5cGUsInJlZHVjZSIse3ZhbHVlOmZ1bmN0aW9uKGEpe2lmKG51bGw9PT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoIkFycmF5LnByb3RvdHlwZS5yZWR1Y2UgY2FsbGVkIG9uIG51bGwgb3IgdW5kZWZpbmVkIik7aWYoImZ1bmN0aW9uIiE9PXR5cGVvZiBhKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7dmFyIGI9T2JqZWN0KHRoaXMpLGM9Yi5sZW5ndGg+Pj4wLGQ9MDtpZigyPD1hcmd1bWVudHMubGVuZ3RoKXZhciBlPWFyZ3VtZW50c1sxXTtlbHNle2Zvcig7ZDxjJiYhKGQgaW4gYik7KWQrKztpZihkPj1jKXRocm93IG5ldyBUeXBlRXJyb3IoIlJlZHVjZSBvZiBlbXB0eSBhcnJheSB3aXRoIG5vIGluaXRpYWwgdmFsdWUiKTtlPWJbZCsrXX1mb3IoO2Q8YzspZCBpbiBiJiYoZT1hKGUsYltkXSxkLGIpKSxkKys7cmV0dXJuIGV9fSk7CkFycmF5LnByb3RvdHlwZS5mb3JFYWNofHwoQXJyYXkucHJvdG90eXBlLmZvckVhY2g9ZnVuY3Rpb24oYSl7dmFyIGIsYztpZihudWxsPT10aGlzKXRocm93IG5ldyBUeXBlRXJyb3IoInRoaXMgaXMgbnVsbCBvciBub3QgZGVmaW5lZCIpO3ZhciBkPU9iamVjdCh0aGlzKSxlPWQubGVuZ3RoPj4+MDtpZigiZnVuY3Rpb24iIT09dHlwZW9mIGEpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGEgZnVuY3Rpb24iKTsxPGFyZ3VtZW50cy5sZW5ndGgmJihiPWFyZ3VtZW50c1sxXSk7Zm9yKGM9MDtjPGU7KWMgaW4gZCYmYS5jYWxsKGIsZFtjXSxjLGQpLGMrK30pO2Z1bmN0aW9uIGdldERhdGFBdHRyaWJ1dGVzKGEpe3JldHVybiBhLmRhdGFzZXR8fFtdLnNsaWNlLmNhbGwoYS5hdHRyaWJ1dGVzKS5yZWR1Y2UoZnVuY3Rpb24oYixjKXtyZXR1cm4vXmRhdGEtLy50ZXN0KGMubmFtZSkmJihiW2MubmFtZS5zdWJzdHIoNSldPWMudmFsdWUpLGJ9LHt9KX0KZnVuY3Rpb24gZ2V0UGFyYW1ldGVyQnlOYW1lKGEpe2E9YS5yZXBsYWNlKC9bXFtdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpO2E9KG5ldyBSZWdFeHAoIltcXD8mXSIrYSsiPShbXiYjXSopIikpLmV4ZWMobG9jYXRpb24uc2VhcmNoKTtyZXR1cm4gbnVsbD09YT8iIjpkZWNvZGVVUklDb21wb25lbnQoYVsxXS5yZXBsYWNlKC9cKy9nLCIgIikpfQpmdW5jdGlvbiBzaG93VHJhZGVJblBvcHVwKGEpe2lmKDA9PSQoIiN0cmFkZWluTGlua1BvcHVwQ29udGFpbmVyIikubGVuZ3RoKXt2YXIgYj0iNzUwcHgiLGM9IjU3MHB4IjsxPT0vTW9iaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSYmKGI9IjMwMHB4IixjPSI2MDBweCIpOyQoImJvZHkiKS5hcHBlbmQoJzxkaXYgaWQ9InRyYWRlaW5MaW5rUG9wdXBDb250YWluZXIiIHN0eWxlPSJ3aWR0aDogJytiKyI7IGhlaWdodDogIitjKyciPjxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9kaXY+PGlmcmFtZSBzcmM9IicrYSsnIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgIGNsYXNzPSItdDAgLWwwIC13MTAwcCAtaDEwMHAiIGlkPSJ0cmFkZWluTGlua1BvcHVwSWZyYW1lIj48L2lmcmFtZT48L2Rpdj4nKX0kKCIjdHJhZGVpbkxpbmtQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9CmZ1bmN0aW9uIGN1cnJlbnRQcm9tb1JlZGlyZWN0KCl7ZXZlbnQucHJldmVudERlZmF1bHQoKTtzd2l0Y2goITApe2Nhc2UgImZ1bmN0aW9uIj09dHlwZW9mIHNob3dQb3B1cFdpZGdldDpzaG93UG9wdXBXaWRnZXQoKTticmVhaztjYXNlICJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI1ZpZXdQcm9tb0FjdGlvbkJveExpbmsiKS5hdHRyKCJocmVmIik6JCgiI1ZpZXdQcm9tb0FjdGlvbkJveExpbmsiKVswXS5jbGljaygpO2JyZWFrO2Nhc2UgInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjcHJvbW90aW9uU2lkZVZCdXR0b24gYSIpLmF0dHIoImhyZWYiKTokKCIjcHJvbW90aW9uU2lkZVZCdXR0b24gYSIpWzBdLmNsaWNrKCk7YnJlYWs7Y2FzZSAidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNWaWV3Q3VzdG9tUHJvbW9BY3Rpb25Cb3hMaW5rIikuYXR0cigiaHJlZiIpOiQoIiNWaWV3Q3VzdG9tUHJvbW9BY3Rpb25Cb3hMaW5rIilbMF0uY2xpY2soKX19CmZ1bmN0aW9uIHNob3dOZXdSZWJhdGVDb2RlUG9wdXAoKXswIT0kKCIjZGlzYWJsZVBvcHVwcyIpLmxlbmd0aCYmMCE9JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKXx8JCgiI0ltYWdlUG9wdXBDb250YWluZXJfbmV3cmViYXRlIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX1mdW5jdGlvbiBzaG93TmV3QmVzdFByaWNlVmRwUG9wdXAoKXswIT0kKCIjZGlzYWJsZVBvcHVwcyIpLmxlbmd0aCYmMCE9JCgiI2Rpc2FibGVQb3B1cHMiKS52YWwoKXx8JCgiI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0KZnVuY3Rpb24gcHJpbnRfcHJvbW9fcHJldihhKXt2YXIgYj0hMSxjPSQoYSkucGFyZW50cygiLnByb21vcyIpO2E9Yy5maW5kKCIucHJvbW8tdGl0bGUiKS5odG1sKCk7dmFyIGQ9Yy5maW5kKCIucHJvbW8tZGVzYyIpLmh0bWwoKTtjPWMuZmluZCgiLnByb21vLWltYWdlIGltZyIpLmF0dHIoImRhdGEtcHJpbnQtc3JjIik7JCgiI3Byb21vVG9QcmludCIpLnJlbW92ZSgpOyQoIiNwcm9tb1RvUHJpbnRXcmFwIikucmVtb3ZlKCk7JCgiYm9keSIpLmFwcGVuZCgnPGRpdiBjbGFzcz0idG9wcmludCIgaWQ9InByb21vVG9QcmludCI+PGltZyBib3JkZXI9IjAiIHN0eWxlPSJ3aWR0aDoxMDAlOyIgc3JjPSInK2MrJyIgYWx0PSIiIGlkPSJwcm9tb0ltZyI+PGJyPjxicj48Yj4nK2ErIjwvYj48YnI+IitkKyI8L2Rpdj4iKTskKCIjcHJvbW9JbWciKS5vbigibG9hZCIsZnVuY3Rpb24oKXtifHwkKCIjcHJvbW9Ub1ByaW50IikucHJpbnRFbGVtZW50KCk7Yj0hMH0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtifHwKJCgiI3Byb21vVG9QcmludCIpLnByaW50RWxlbWVudCgpO2I9ITB9LDFFMyk7cmV0dXJuITF9ZnVuY3Rpb24gZ2V0TXVsdGlwbGVBZGRyZXNzUGhvbmUoYSl7JCgiLm11bHRpQWRkcmVzc1Bob25lIikuc2xpZGVVcCgpO2E9JCgiLm11bHRpQWRkcmVzc1Bob25lIiwkKCQoYSkucGFyZW50KCkpKTskKGEpLmlzKCI6aGlkZGVuIik\/JChhKS5zbGlkZURvd24oKTokKGEpLnNsaWRlVXAoKX0KZnVuY3Rpb24gYWRkR2VuZXJhbFN0eWxlKCl7dmFyIGE9JCgiI0FETUlOX0dFTkVSQUxfQkdfQ09MT1IiKS52YWwoKSxiPSQoIiNkZWZhdWx0X2JsYWNrX3RleHQiKS52YWwoKTtpZigiIzAwMDAwMCIhPWJ8fCIjMDAwIiE9YikkKCIuVXNlZFZkcDJNb2JpbGUgI2JyZWFkY3J1bWJzIikuYWRkQ2xhc3MoInRleHRDb2xvciIpLCQoImkuZmEtZmFjZWJvb2stc3F1YXJlIikuYWRkQ2xhc3MoInRleHRDb2xvciIpLCQoIi51c2VkLWRldGFpbHMgLmRlZmF1bHQgZGl2OmZpcnN0IikuYWRkQ2xhc3MoInRleHRDb2xvciIpOyIjZmZmZmZmIiE9YiYmIiNmZmYiIT1ifHwkKCIuVXNlZFNycDJNb2JpbGUgLmRlZmF1bHQgLm1ha2VNb2RlbFllYXIiKS5hZGRDbGFzcygidGV4dENvbG9yVXNlZFNSUE1vYmlsZSIpOyIjZmZmZmZmIiE9YSYmKCQoIi5vbGQtZGV0YWlscy10ciIpLmFkZENsYXNzKCJiZ05vbmUiKSwkKCIjc3BlY1RpdGxlIikuYWRkQ2xhc3MoImJnTm9uZSIpLCQoIi5Vc2VkVmRwMk1vYmlsZSIpLmFkZENsYXNzKCJvdGhlckJHIikpfQpmdW5jdGlvbiBhcHBlbmRUcmFkZUJvb3N0QmFubmVyKCl7fWRvY1JlYWR5QXJyLnB1c2goKCk9PnthcHBlbmRUcmFkZUJvb3N0QmFubmVyKCk7YWRkR2VuZXJhbFN0eWxlKCl9KTsKalF1ZXJ5KGZ1bmN0aW9uKGEpe2EoIiNuYXYiKS5hZGRDbGFzcygibmF2Iik7KGZ1bmN0aW9uKCl7TENfQVBJPXdpbmRvdy5MQ19BUEl8fHt9O0xDX0FQSS5vbl90aWNrZXRfY3JlYXRlZD1mdW5jdGlvbihtKXt0cnl7KGZ1bmN0aW9uKGwpe251bGwhPWwmJihsPSc8aW1nIHNyYz0iaHR0cHM6Ly9zdGF0cy5kMmNtZWRpYS5jYS9zZXJ2aWNlL2NvbnRhY3QuZ2lmP3RjPScrKG0udGlja2V0X2lkKyImdT0iK2wpKyciIHN0eWxlPSJ3aWR0aDoxcHg7aGVpZ2h0OjFweDtyaWdodDoxMHB4O3RvcDoxMHB4O3Bvc2l0aW9uOmFic29sdXRlOyIgLz4nLGEoImJvZHkiKS5hcHBlbmQobCkpfSkoZnVuY3Rpb24oKXt2YXIgbD0idW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEP3dpbmRvdy5hY3RpdmVQcm9maWxlSUQ6bnVsbDtyZXR1cm4gbnVsbD09bD9Db29raWVzLmdldCgidXVpZCIpOmx9KCkpfWNhdGNoKGwpe319fSkoKTtpZigiZnVuY3Rpb24iPT10eXBlb2Ygb25Db25maXJtU3VibWl0KWEoIi5jb25maXJtX2h0bWwiKS5vbigic3VibWl0IiwKb25Db25maXJtU3VibWl0KTt0cnl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS5hdHRyKCJpZCIpKXt2YXIgYj0hMSxjPSExLGQ9ITEsZT0hMSxrPSExLGg9ITEsbj0xMDAseD0xPGEoIiNzbGlkZXIubml2b1NsaWRlciBhIikubGVuZ3RoPyEwOiExO2EoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgmJihoPWs9ZT1kPWM9Yj0hMCxuPWEoIiNCQU5ORVJfU0VBUkNIX0JBUl9WSURFT19PUEFDSVRZIikubGVuZ3RoP2EoIiNCQU5ORVJfU0VBUkNIX0JBUl9WSURFT19PUEFDSVRZIikudmFsKCk6MTAwKTtkb2NSZWFkeUFyci5wdXNoKCgpPT57c2V0VGltZW91dChmdW5jdGlvbigpe2EoIiNzbGlkZXIubml2b1NsaWRlciIpLm5pdm9TbGlkZXIoe2VmZmVjdDoiZmFkZSIsYmVmb3JlQ2hhbmdlOmZ1bmN0aW9uKCl7YSgiI3BhcmFsbGF4V3JhcHBlciIpLmVubGxheCgpfSxhZnRlckNoYW5nZTpmdW5jdGlvbigpe2EoIiNzbGlkZXIubml2b1NsaWRlciIpLnRyaWdnZXIoIm5pdm9TbGlkZXJDaGFuZ2VkIil9LAphZnRlckxvYWQ6ZnVuY3Rpb24oKXthKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS50cmlnZ2VyKCJuaXZvU2xpZGVyTG9hZGVkIik7YSgiI3BhcmFsbGF4V3JhcHBlciIpLmVubGxheCgpO2EoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgmJihhKCIjc2xpZGVyLm5pdm9TbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5zdG9wLGEoIi5uaXZvLWNvbnRyb2xOYXYiKS5oaWRlKCksYSgiLm5pdm8tZGlyZWN0aW9uTmF2IikuaGlkZSgpLHRoaXMuc3RhcnRZb3V0dWJlKCkpfSxtYW51YWxBZHZhbmNlOmIsdmlkZW9Pbkxvb3A6YyxoaWRlQ29udHJvbDpkLGhpZGVJbmZvOmUsZnVsbFdpZHRoOmssbXV0ZVZpZGVvOmgsdmlkZW9CcmlnaHRuZXNzOm4sY29udHJvbE5hdjp4LGRpcmVjdGlvbk5hdjp4LHNob3dEaXNjbGFpbWVyOiEwfSl9LDVFMyl9KX1pZigidW5kZWZpbmVkIiE9dHlwZW9mIGEoIi5leHRlbmRlZFBob25lVHJpZ2dlciIpLmF0dHIoImlkIikpYSgiLmV4dGVuZGVkUGhvbmVUcmlnZ2VyIikub24oIm1vdXNlZW50ZXIiLApFeFBob25lKS5vbigibW91c2VsZWF2ZSIsRXhQaG9uZSk7dmFyIHY9ZnVuY3Rpb24oKXt9O2EoIi50cmFkZWluTGluayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtpZihhKHRoaXMpLmF0dHIoInRhcmdldFVSSSIpJiY2PGEodGhpcykuYXR0cigidGFyZ2V0VVJJIikubGVuZ3RoKXJldHVybiBzaG93VHJhZGVJblBvcHVwKGEodGhpcykuYXR0cigidGFyZ2V0VVJJIikpLCExfSk7YSgiLnVwX21lbnUiKS5vbmUoIm1vdXNlb3ZlciIsdik7c2V0VGltZW91dCh2LDFFNCk7KGZ1bmN0aW9uKCl7aWYoMCE9YSgiI01haW5NZW51X05FVyIpLmxlbmd0aCl7dmFyIHE9YSgiLmltZ19tZW51LnVwX21lbnUgdWwubmF2ID4gbGkjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkuZmlyc3RJdGVtIikscj0hMTswIT1xLmxlbmd0aCYmKGEoIiNNYWluTWVudV9ORVciKS5maW5kKCIucHJpY2UiKS5jc3MoImN1cnNvciIsInBvaW50ZXIiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIHA9YSh0aGlzKS5zaWJsaW5ncygpLmZpcnN0KCk7CndpbmRvdy5sb2NhdGlvbj1wLmF0dHIoImhyZWYiKX0pLGEoIiNNYWluTWVudV9ORVciKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocik7cS5hZGRDbGFzcygiaG92ZXIiKX0pLHEuc2libGluZ3MoKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24oKXtjbGVhclRpbWVvdXQocik7cS5yZW1vdmVDbGFzcygiaG92ZXIiKX0pLm9uKCJtb3VzZWxlYXZlIixmdW5jdGlvbigpe3I9c2V0VGltZW91dChmdW5jdGlvbigpe3EuYWRkQ2xhc3MoImhvdmVyIil9LDMwMCl9KSl9fSkoKTthKCJpbWdbZXJyb3JpbWddIikub24oImVycm9yIixmdW5jdGlvbigpe3ZhciBxPWEodGhpcyk7cS5hdHRyKCJzcmMiLHEuYXR0cigiZXJyb3JpbWciKSl9KTtjb25zdCBtPWEod2luZG93KSxsPWEoIi51cF9tZW51Iik7aWYobC5sZW5ndGgmJiFsLmhhc0NsYXNzKCJub2xvY2siKSl7bGV0IHE9bC5vZmZzZXQoKS50b3Ascj0hMTthKGRvY3VtZW50KS5vbigic2Nyb2xsIiwoKT0+e3J8fAood2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKT0+e3ZhciBwPW0uc2Nyb2xsVG9wKCksdz1sLmhhc0NsYXNzKCJmaXhlZCIpO3cmJnA8cT9sLnJlbW92ZUNsYXNzKCJmaXhlZCIpOiF3JiZwPnEmJmwuYWRkQ2xhc3MoImZpeGVkIik7KHA9bC5oYXNDbGFzcygiZml4ZWQiKSkmJmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpP2wuY3NzKHt0b3A6YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSsicHgifSk6bC5hdHRyKCJzdHlsZSIsIiIpO3c9YSgiLnB1bGxvdXRzLnNpZGVfdG9wOnZpc2libGUiKTtwJiYwPHcubGVuZ3RoPyh3LmZpbHRlcigiLnB1bGxvdXQtb3BlbmVkIikuY3NzKHt0b3A6bC5oZWlnaHQoKSsicHgifSksdy5maWx0ZXIoIi5wdWxsb3V0LWNsb3NlZCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgej1hKHRoaXMpLEQ9Z2V0X3Bvdyh6LmF0dHIoImlkIikpOyF6LmRhdGEoInBvc1kiKSYmei5kYXRhKCJwb3NZIiwtRC5wb3NpdGlvbik7CkQ9ei5kYXRhKCJwb3NZIikrbC5oZWlnaHQoKTt6LmNzcyh7dG9wOkQrInB4In0pfSkpOih3LmZpbHRlcigiLnB1bGxvdXQtb3BlbmVkIikuY3NzKHt0b3A6MH0pLHcuZmlsdGVyKCIucHVsbG91dC1jbG9zZWQiKS5kYXRhKCJwb3NZIikmJncuZmlsdGVyKCIucHVsbG91dC1jbG9zZWQiKS5lYWNoKGZ1bmN0aW9uKCl7YSh0aGlzKS5jc3Moe3RvcDphKHRoaXMpLmRhdGEoInBvc1kiKSsicHgifSl9KSk7cj0hMX0pLHI9ITApfSl9dj1mdW5jdGlvbigpe2lmKDA9PWEoIiN0cmFkZWluQmFyRmxvYXQiKS5sZW5ndGgpe2EoImJvZHkiKS5hcHBlbmQoJzxkaXYgaWQ9InRyYWRlaW5CYXJGbG9hdCIgc3R5bGU9InRleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOiBmaXhlZDt3aWR0aDogMTAwJTt6LWluZGV4OiAxMDA7ZGlzcGxheTpub25lOyI+PC9kaXY+Jyk7YSgiI3RyYWRlSW5CYXIiKS5jbG9uZSghMCwhMCkuYXBwZW5kVG8oIiN0cmFkZWluQmFyRmxvYXQiKS50cmlnZ2VyKCJ0cmFkZUluQmFyLmNsb25lZCIpOwppZihhKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLmxlbmd0aCYmIjEiPT1hKCIjdHJhZGVJbkJhclN0aWNreUJvdHRvbSIpLnZhbCgpKXthKCIjdHJhZGVpbkJhckZsb2F0IikuY3NzKCJib3R0b20iLCItMnB4Iik7dmFyIHE9YSgiLmNlcnRpZmllZC1mb290ZXIiKS5oZWlnaHQoKSxyPWEoIiN0cmFkZWluQmFyRmxvYXQiKS5oZWlnaHQoKTthKCIuY2VydGlmaWVkLWZvb3RlciIpLmhlaWdodChxK3IpfWVsc2V7cT1hKCIjdHJhZGVpbkJhckZsb2F0Iik7cj1xLmNzczt2YXIgcD0iMSI9PWEoIiNtZW51TG9jayIpLnZhbCgpPzQ4OjA7MDxhKCIjYWxlcnRNc2dDb250YWluZXIiKS5sZW5ndGgmJmEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpJiYocCs9YSgiI2FsZXJ0TXNnQ29udGFpbmVyIikub3V0ZXJIZWlnaHQoKSk7ci5jYWxsKHEsInRvcCIscCl9YSgiI3RyYWRlaW5CYXJGbG9hdCAuLXBiMTAiKS5jc3Moe2Rpc3BsYXk6ImlubGluZS10YWJsZSIsd2lkdGg6YSgiI21haW5EaXYiKS53aWR0aCgpfSl9cT0KIm5ld2NhcmRldGFpbC5odG1sIj09YSgiI1BBR0VJRCIpLnZhbCgpfHwiY2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCk7cj0ibmV3Y2FyZGV0YWlsLmh0bWwiPT1hKCIjUEFHRUlEIikudmFsKCk\/ITA6ITE7cD0wPGEoIi5tYWluRGl2QWRqdXN0SGVhZGVyIikubGVuZ3RoPyEwOiExO2EoIiN0cmFkZUluQmFyIikuaXNJblZpZXdwb3J0KCl8fHE\/cT8ocj9hKCIubmV3VmRwQWN0aW9ucyIpLmlzQWJvdmVWaWV3cG9ydCgyMDApOmEoIi51c2VkVmRwQWN0aW9ucyIpLmlzQWJvdmVWaWV3cG9ydCgyMDApKT9hKCIjdHJhZGVpbkJhckZsb2F0IikuaGlkZSgpOmEoIiN0cmFkZWluQmFyRmxvYXQiKS5zaG93KCk6YSgiI3RyYWRlaW5CYXJGbG9hdCIpLmhpZGUoKToocCYmIWEoIiN0cmFkZUluQmFyIikuaXNBYm92ZVZpZXdwb3J0KDIwMCl8fCFwKSYmYSgiI3RyYWRlaW5CYXJGbG9hdCIpLnNob3coKTswPGEoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmxlbmd0aCYmYSgiI2FsZXJ0TXNnQ29udGFpbmVyIikuaXMoIjpoaWRkZW4iKSYmCjQ4IT1hKCIjdHJhZGVpbkJhckZsb2F0IikuY3NzKCJ0b3AiKSYmYSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS5sZW5ndGgmJiIxIiE9YSgiI3RyYWRlSW5CYXJTdGlja3lCb3R0b20iKS52YWwoKSYmYSgiI3RyYWRlaW5CYXJGbG9hdCIpLmNzcygidG9wIiw0OCl9O2Z1bmN0aW9uIHUocSxyKXt2YXIgcD0wO3JldHVybiBmdW5jdGlvbigpe2NsZWFyVGltZW91dChwKTtwPXNldFRpbWVvdXQocSxyKX19aWYoYSgiI3RyYWRlSW5CYXIiKS5sZW5ndGgpYShkb2N1bWVudCkub24oInNjcm9sbCIsdSh2LDEwMCkpO3ZhciBmPWEoInVsLm5hdiA+IGxpID4gdWwgPiBsaSA+IHVsIik7Zi5lYWNoKGZ1bmN0aW9uKCl7YSh0aGlzKS5wYXJlbnQoKS5vbigibW91c2VlbnRlciIsZnVuY3Rpb24ocSl7YSgidWwiLHRoaXMpLnNjcm9sbFRvcCgwKX0pfSk7Zi5vbigiRE9NTW91c2VTY3JvbGwgbW91c2V3aGVlbCIsZnVuY3Rpb24ocSl7dmFyIHI9YSh0aGlzKSxwPXRoaXMuc2Nyb2xsVG9wLHc9dGhpcy5zY3JvbGxIZWlnaHQsCno9dz50aGlzLmNsaWVudEhlaWdodCxEPXIuaGVpZ2h0KCksQz1xLm9yaWdpbmFsRXZlbnQ7Qz0iRE9NTW91c2VTY3JvbGwiPT1xLnR5cGU\/LTQwKkMuZGV0YWlsOkMud2hlZWxEZWx0YTt2YXIgRT0wPEM7aWYoIXopcmV0dXJuITA7ej1mdW5jdGlvbihHKXtyLnNjcm9sbFRvcChHKTtxLnN0b3BQcm9wYWdhdGlvbigpO3EucHJldmVudERlZmF1bHQoKTtxLnJldHVyblZhbHVlPSExO3JldHVybiEwfTtyZXR1cm4hKCFFJiYtQz53LUQtcCYmeih3KXx8RSYmQz5wJiZ6KDApKX0pfWNhdGNoKG0pe2NvbnNvbGUubG9nKCJFcnJvciIsbSl9aWYoYSgiLnVwX21lbnUuaW1nX21lbnUiKS5sZW5ndGgpe2Y9YSgiLmltZ19zdHlsZV8xICNNYWluTWVudV9ORVciKS5jaGlsZHJlbigiLnN1YiIpO3ZhciBnPWYuZmluZCgiLmZpcnN0SXRlbSIpLmZpbmQoIi5zdWIiKTtmLmNoaWxkcmVuKCJsaSIpLm9uKHttb3VzZWVudGVyOmZ1bmN0aW9uKCl7IWEodGhpcykuaXMoIi5oYXNTdWIiKSYmZy5oaWRlKCl9LAptb3VzZWxlYXZlOmZ1bmN0aW9uKCl7IWEodGhpcykuaXMoIi5oYXNTdWIiKSYmZy5zaG93KCl9fSl9YSgiLm51bWVyaWMiKS5vbigia2V5cHJlc3MiLGZ1bmN0aW9uKG0pe2lmKDQ4Pm0ua2V5Q29kZXx8NTc8bS5rZXlDb2RlKW0ucmV0dXJuVmFsdWU9ITF9KTtpZigib250b3VjaHN0YXJ0ImluIHdpbmRvd3x8d2luZG93LkRvY3VtZW50VG91Y2gmJmRvY3VtZW50IGluc3RhbmNlb2YgRG9jdW1lbnRUb3VjaClhKCIubGVmdF9ib3ggYSIpLm9uKCJ0YXAiLGZ1bmN0aW9uKG0pe209YSh0aGlzKTtpZigicmFkaW8iIT1tLmF0dHIoInR5cGUiKSYmbS5hdHRyKCJvbmNsaWNrIikpcmV0dXJuIG0udHJpZ2dlcigiY2xpY2siKSwhMX0pLGEoIi5oYXNJdGVtcyA+IGEsIC5oYXNTdWIgPiBhIikub24oImNsaWNrIixmdW5jdGlvbihtKXtpZigiY2xpY2siIT1tLnR5cGUpcmV0dXJuITA7dmFyIGw9YSh0aGlzKS5kYXRhKCJjbGlja0NvdW50Iik7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBsfHwiMCI9PQpsKWEoIi5uYXYgbGkuaGFzSXRlbXMgYSwgLm5hdiBsaS5oYXNTdWIgYSIpLmRhdGEoImNsaWNrQ291bnQiLCIwIiksYSh0aGlzKS5kYXRhKCJjbGlja0NvdW50IiwiMSIpLG0ucHJldmVudERlZmF1bHQoKTtlbHNlIHJldHVybiBkb2N1bWVudC5sb2NhdGlvbj1hKHRoaXMpLmF0dHIoImhyZWYiKSxhKHRoaXMpLmRhdGEoImNsaWNrQ291bnQiLCIwIiksITB9KTthKCJkaXYuZ21hcC1wbGFjZWhvbGRlciIpLmVhY2goZnVuY3Rpb24oKXt2YXIgbT1hKHRoaXMpLGw9bS5kYXRhKCk7aW5qZWN0R29vZ2xlTWFwc0tleShmdW5jdGlvbih1KXt1PSJodHRwczovL3d3dy5nb29nbGUuY29tL21hcHMvZW1iZWQvdjEvcGxhY2U\/IitbInE9IitlbmNvZGVVUklDb21wb25lbnQobC5wbGFjZUlkKSwiem9vbT0iK2wuem9vbSwibGFuZ3VhZ2U9IitsLmxhbmd1YWdlLCJyZWdpb249Q0EiLCJrZXk9Iit1XS5qb2luKCImIik7bS5odG1sKCc8aWZyYW1lIHNyYz0iJyt1KyciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjQwMCIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJib3JkZXI6MCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPicpfSl9KTsKdHJ5e2EoIi5hZGR0dCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgbT1bIm9uQ2xvc2UiLCJvblllcyIsIm9uTm8iXSxsPWEodGhpcyksdT1sLmRhdGEoKSxxPXt9LHI7Zm9yKHIgaW4gdSlxW3JdPWZ1bmN0aW9uKHAsdyl7cmV0dXJuLTEhPW0uaW5kZXhPZihwKT9mdW5jdGlvbigpe2V2YWwodyl9Ond9KHIsdVtyXSk7bC5kYXJrVG9vbHRpcChxKX0pfWNhdGNoKG0pe2NvbnNvbGUubG9nKG0ubWVzc2FnZSxtKX19KTtmdW5jdGlvbiBjaGlsZE9mKGEsYil7Zm9yKDsidW5kZWZpbmVkIiE9PXR5cGVvZiBhJiZudWxsIT09YSYmKGE9YS5wYXJlbnROb2RlKSYmYSE9PWI7KTtyZXR1cm4hIWF9dmFyIE1lbnVIYW5kbGVyOwooZnVuY3Rpb24oKXt2YXIgYTtNZW51SGFuZGxlcj1mdW5jdGlvbiBjKCl7ZnVuY3Rpb24gZChmLGcpe2xldCBtPShnLm1vZGVsfHwiIikudHJpbSgpLGw9KGcudHJpbXx8IiIpLnRyaW0oKTtmPWYucmVwbGFjZSgiIyNNRU5VWUVBUiMjIixnLnllYXIpO20mJmwmJihtLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobC50b0xvd2VyQ2FzZSgpKT9sPSIiOmwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhtLnRvTG93ZXJDYXNlKCkpJiYobT0iIikpO3JldHVybiBmLnJlcGxhY2UoIiMjTUVOVU1PREVMIyMiLG0pLnJlcGxhY2UoIiMjTUVOVVRSSU0jIyIsbCkucmVwbGFjZSgvICsvZywiICIpfWlmKGEpcmV0dXJuIGE7YT10aGlzO3RoaXMuZ2V0U3BlY1VybD1mdW5jdGlvbigpe3ZhciBmPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpfHwiMCI9PT0kKCIjbmV3X3RyYW5zbGF0ZWRfdGl0bGVzIikudmFsKCk\/ImVuIjoiZnIiOyIwIj09JCgiI211bHRpLWxhbmd1YWdlIikudmFsKCkmJgooZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciIpO3JldHVybiIvanNvbi9uZXdjYXJzZGV0YWlsc18iK2YrIi5qc29uIn07dGhpcy5tZW51PSQoIi5tZW51NSwgLm1lbnU2LCAubWVudTcsIC5tZW51OCwgLm1lbnU5LCAubWVudTEwIik7dGhpcy5zcGVjc0FqYXg9JC5nZXQodGhpcy5nZXRTcGVjVXJsKCkpO3RoaXMuY2Fycz17ZGV0YWlsczp7fSxmaW5kQnlJZDpmdW5jdGlvbihmKXt2YXIgZz17fTskLmVhY2godGhpcy5kZXRhaWxzLm1ha2VzLGZ1bmN0aW9uKG0sbCl7JC5lYWNoKGwubW9kZWxzLGZ1bmN0aW9uKHUscSl7MT09cS5pc3Nlcmllc3x8MT09cS5pc0NsYXNzPyQuZWFjaChxLnN0eWxlcyxmdW5jdGlvbihyLHApe3AuaWQ9PWYmJihnPXApfSk6cS5pZD09ZiYmKGc9cSl9KTskLmlzRW1wdHlPYmplY3QoZyl9KTtyZXR1cm4gZ319O3RoaXMuc3BlY3NBamF4LmRvbmUoZnVuY3Rpb24oZil7YygpLmNhcnMuZGV0YWlscz1mfSk7dGhpcy5wb3NpdGlvbnM9CmZ1bmN0aW9uKGYsZyxtKXtyZXR1cm57dGFyZ2V0OiQoZy5jdXJyZW50VGFyZ2V0KSxzZWNvbmRMZXZlbE1lbnU6bnVsbCx3aW5kb3dIZWlnaHQ6bnVsbCxzZWNvbmRMZXZlbE1lbnVUb3A6bnVsbCxzZWNvbmRMZXZlbE1lbnVCb3R0b206bnVsbCxzdWJNZW51SXRlbVRvcDpudWxsLHN1Yk1lbnVJdGVtSGVpZ2h0Om51bGwsc3ViTWVudUl0ZW1Cb3R0b206bnVsbCxib3R0b21BbGlnbjpudWxsLHNwZWNzOm51bGwsc3BlY3NUb3A6bnVsbCxzcGVjc0hlaWdodDpudWxsLHNwZWNzQm90dG9tOm51bGwsY3VzdG9tU2Vjb25kTGV2ZWxNZW51Om51bGwscm91bmQ6ZnVuY3Rpb24obCl7cmV0dXJuKyhNYXRoLnJvdW5kKGwrImUrMiIpKyJlLTIiKX0sdXBkYXRlOmZ1bmN0aW9uKCl7dGhpcy5zZWNvbmRMZXZlbE1lbnU9ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMuY3VzdG9tU2Vjb25kTGV2ZWxNZW51P3RoaXMuY3VzdG9tU2Vjb25kTGV2ZWxNZW51KCk6dGhpcy50YXJnZXQuZmluZCgidWwuc3ViOmZpcnN0Iik7CnRyeXt0aGlzLndpbmRvd0hlaWdodD0kKHdpbmRvdykuaGVpZ2h0KCksdGhpcy5zZWNvbmRMZXZlbE1lbnVUb3A9dGhpcy5zZWNvbmRMZXZlbE1lbnUucG9zaXRpb24oKS50b3AsdGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQ9dGhpcy5zZWNvbmRMZXZlbE1lbnUub3V0ZXJIZWlnaHQoKSx0aGlzLnNlY29uZExldmVsTWVudUJvdHRvbT10aGlzLnJvdW5kKHRoaXMuc2Vjb25kTGV2ZWxNZW51VG9wK3RoaXMuc2Vjb25kTGV2ZWxNZW51SGVpZ2h0KX1jYXRjaChsKXt9dHJ5e3RoaXMuc3ViTWVudUl0ZW1Ub3A9JChmKS5wb3NpdGlvbigpLnRvcCx0aGlzLnN1Yk1lbnVJdGVtSGVpZ2h0PSQoZikub3V0ZXJIZWlnaHQoKSx0aGlzLnN1Yk1lbnVJdGVtQm90dG9tPXRoaXMucm91bmQodGhpcy5zdWJNZW51SXRlbUhlaWdodCt0aGlzLnN1Yk1lbnVJdGVtVG9wKSx0aGlzLmJvdHRvbUFsaWduPXRoaXMucm91bmQoJChmKS5wYXJlbnQoInVsIikub3V0ZXJIZWlnaHQoKSskKGYpLnBhcmVudCgidWwiKS5vZmZzZXQoKS50b3AtCnRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tKX1jYXRjaChsKXt9dHJ5e3RoaXMuc3BlY3M9bSx0aGlzLnNwZWNzVG9wPXRoaXMuc3BlY3MucG9zaXRpb24oKS50b3AsdGhpcy5zcGVjc0hlaWdodD10aGlzLnNwZWNzLm91dGVySGVpZ2h0KCksdGhpcy5zcGVjc0JvdHRvbT10aGlzLnJvdW5kKHRoaXMuc3BlY3NUb3ArdGhpcy5zcGVjc0hlaWdodCl9Y2F0Y2gobCl7fX0sYWRqdXN0U2Vjb25kTGV2ZWw6ZnVuY3Rpb24oKXtpZiguNjUqdGhpcy53aW5kb3dIZWlnaHQ8dGhpcy5zZWNvbmRMZXZlbE1lbnVIZWlnaHQpe2lmKHRoaXMuc2Vjb25kTGV2ZWxNZW51Lmhhc0NsYXNzKCJsb2NhdGlvbi1kZXRhaWxzIikpcmV0dXJuO3RoaXMuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUF0dHIoInN0eWxlIik7dGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJoZWlnaHQiLC42NSp0aGlzLndpbmRvd0hlaWdodCk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKHsib3ZlcmZsb3cteSI6ImF1dG8iLHdpZHRoOiI0MDBweCIsCnBvc2l0aW9uOiJzdGF0aWMiLGRpcmVjdGlvbjoicnRsIn0pO3RoaXMuc2Vjb25kTGV2ZWxNZW51LmZpbmQoIj4gbGkiKS5jc3Moe2RpcmVjdGlvbjoibHRyIn0pO2lmKDA9PSQoZikuY2hpbGRyZW4oIi5tYWlubWVudS1zdWJtZW51IikubGVuZ3RoKXt2YXIgbD0kKCI8ZGl2Lz4iKTtsLmFkZENsYXNzKCJtYWlubWVudS1zdWJtZW51Iik7bC5kZXRhY2goKS5hcHBlbmQodGhpcy5zZWNvbmRMZXZlbE1lbnUpO3RoaXMudGFyZ2V0LmFwcGVuZChsKX10aGlzLnVwZGF0ZSgpfWlmKHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPHRoaXMuc3ViTWVudUl0ZW1Ub3ApJChmKS5hZGRDbGFzcygiYWxpZ24tbGV2ZWwiKSx0aGlzLnVwZGF0ZSgpLGw9dGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b208JChmKS5wYXJlbnQoInVsIikub3V0ZXJIZWlnaHQoKT8kKGYpLm91dGVySGVpZ2h0KCkrJChmKS5wb3NpdGlvbigpLnRvcC10aGlzLnNlY29uZExldmVsTWVudUhlaWdodDokKGYpLnBhcmVudCgidWwiKS5vdXRlckhlaWdodCgpKwokKGYpLnBhcmVudCgidWwiKS5wb3NpdGlvbigpLnRvcC10aGlzLnNlY29uZExldmVsTWVudUJvdHRvbSx0aGlzLnNlY29uZExldmVsTWVudS5jc3MoInRyYW5zZm9ybSIsInRyYW5zbGF0ZVkoIitsKyJweCkiKTtlbHNlIGlmKHRoaXMuc2Vjb25kTGV2ZWxNZW51Qm90dG9tPnRoaXMuc3ViTWVudUl0ZW1Ub3AmJnRoaXMuc3ViTWVudUl0ZW1Cb3R0b20+dGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20pe2w9MD5wYXJzZUludCh0aGlzLnNlY29uZExldmVsTWVudS5jc3MoImxlZnQiKS5yZXBsYWNlKCJweCIsIiIpKT8icmlnaHQiOiJsZWZ0Ijt2YXIgdT17dHJhbnNmb3JtOiJ0cmFuc2xhdGVZKCIrTWF0aC5hYnModGhpcy5zZWNvbmRMZXZlbE1lbnVCb3R0b20tdGhpcy5zdWJNZW51SXRlbUJvdHRvbSkrdGhpcy5zZWNvbmRMZXZlbE1lbnVUb3ArInB4KSJ9OyJyaWdodCIhPWwmJih1W2xdPXRoaXMudGFyZ2V0LnBvc2l0aW9uKCkubGVmdCt0aGlzLnRhcmdldC53aWR0aCgpKTt0aGlzLnNlY29uZExldmVsTWVudS5jc3ModSl9ZWxzZSB0aGlzLnNlY29uZExldmVsTWVudVRvcD4KdGhpcy5zdWJNZW51SXRlbVRvcCYmdGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGVZKCIrdGhpcy5zdWJNZW51SXRlbVRvcCsicHgpIil9LGFkanVzdEhvcml6b250YWw6ZnVuY3Rpb24oKXt0aGlzLnNlY29uZExldmVsTWVudS5oYXNDbGFzcygiaW52aXNpYmxlIil8fHRoaXMuc2Vjb25kTGV2ZWxNZW51LmFkZENsYXNzKCJpbnZpc2libGUiKTt2YXIgbD10aGlzLmlzSW5WaWV3cG9ydCh0aGlzLnNlY29uZExldmVsTWVudVswXSksdT0wPnBhcnNlSW50KHRoaXMuc2Vjb25kTGV2ZWxNZW51LmNzcygibGVmdCIpLnJlcGxhY2UoInB4IiwiIikpPyJyaWdodCI6ImxlZnQiO2x8fCJsZWZ0IiE9PXV8fCh0aGlzLnNlY29uZExldmVsTWVudS5oYXNDbGFzcygiTDEwMCIpJiZ0aGlzLnNlY29uZExldmVsTWVudS5yZW1vdmVDbGFzcygiTDEwMCIpLHRoaXMuc2Vjb25kTGV2ZWxNZW51LmFkZENsYXNzKCJSMTAwIikpO2w9e307bFt1XT10aGlzLnRhcmdldC5wb3NpdGlvbigpLmxlZnQrCnRoaXMudGFyZ2V0LndpZHRoKCk7dGhpcy5zZWNvbmRMZXZlbE1lbnUuY3NzKGwpO3RoaXMuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUNsYXNzKCJpbnZpc2libGUiKX0saXNJblZpZXdwb3J0OmZ1bmN0aW9uKGwpe2w9bC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gMDw9bC50b3AmJjA8PWwubGVmdCYmbC5ib3R0b208PSh3aW5kb3cuaW5uZXJIZWlnaHR8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQpJiZsLnJpZ2h0PD0od2luZG93LmlubmVyV2lkdGh8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl9fX07dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCJ1bC5uYXYgPiBsaSIsZnVuY3Rpb24oZil7dmFyIGc9YS5wb3NpdGlvbnModGhpcyxmKTtnLnVwZGF0ZSgpO2cuc2Vjb25kTGV2ZWxNZW51Qm90dG9tLSQod2luZG93KS5zY3JvbGxUb3AoKT5nLndpbmRvd0hlaWdodD9nLnNlY29uZExldmVsTWVudS5hZGRDbGFzcygic2xpbS1zdWJtZW51Iik6Cmcuc2Vjb25kTGV2ZWxNZW51LnJlbW92ZUNsYXNzKCJzbGltLXN1Ym1lbnUiKTsibW91c2VsZWF2ZSIhPT1mLnR5cGUmJihmPSQodGhpcykuZmluZCgiPiB1bCIpLGYubGVuZ3RoJiYhZi5kYXRhKCJjYWxjdWxhdGVkIikmJihnPSQodGhpcykub3V0ZXJXaWR0aCgpLGYub3V0ZXJXaWR0aCgpPGcmJmYuY3NzKCJ3aWR0aCIsZysxKSxmLmRhdGEoImNhbGN1bGF0ZWQiLCEwKSkpfSk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkiLGZ1bmN0aW9uKGYpe3ZhciBnPWEucG9zaXRpb25zKHRoaXMsZik7MCE9JChmLmN1cnJlbnRUYXJnZXQpLmZpbmQoInVsLnN1YiA+IGxpIikubGVuZ3RoJiYibW91c2VsZWF2ZSIhPWYudHlwZSYmKGcudXBkYXRlKCksZy5hZGp1c3RTZWNvbmRMZXZlbCgpKX0pO3RoaXMubWVudS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIiwiI01haW5NZW51X0RFQUxFUlNISVBTID4gdWwuc3ViIGxpLmxvY2F0aW9uLW5hbWVzIiwKZnVuY3Rpb24oZil7dmFyIGc9YS5wb3NpdGlvbnModGhpcyxmKSxtPSQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCIubG9jYXRpb24tZGV0YWlscyIpO2cuY3VzdG9tU2Vjb25kTGV2ZWxNZW51PWZ1bmN0aW9uKCl7cmV0dXJuIG19OzAhPSQoZi5jdXJyZW50VGFyZ2V0KS5maW5kKCIubG9jYXRpb24tZGV0YWlscyIpLmxlbmd0aCYmIm1vdXNlbGVhdmUiIT1mLnR5cGUmJigkKGYuY3VycmVudFRhcmdldCkuZmluZCgiLmxvY2F0aW9uLWRldGFpbHMiKS5vbigibGF6eWxvYWRlZCIsZnVuY3Rpb24obCl7Zy5jdXN0b21TZWNvbmRMZXZlbE1lbnUoKS5hdHRyKCJzdHlsZSIsbnVsbCk7Zy51cGRhdGUoKTtnLmFkanVzdEhvcml6b250YWwoKTtnLmFkanVzdFNlY29uZExldmVsKCl9KSxnLmN1c3RvbVNlY29uZExldmVsTWVudSgpLmF0dHIoInN0eWxlIixudWxsKSxnLnVwZGF0ZSgpLGcuYWRqdXN0SG9yaXpvbnRhbCgpLGcuYWRqdXN0U2Vjb25kTGV2ZWwoKSl9KTt0aGlzLm1lbnUub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsCicjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBbZGF0YS1pZD0iU1VCX1RBQl9DT01NRVJDSUFMX0NPTU1FUiJdJyxmdW5jdGlvbihmKXtmPWEucG9zaXRpb25zKHRoaXMsZik7Zi51cGRhdGUoKTtmLmFkanVzdFNlY29uZExldmVsKCl9KTtpZigiZm9yZF9saW5jb2xuX2V4dGVybmFsIj09JCgiI0RFQUxFUlBBUlRSRURJUkVDVFRZUEUiKS52YWwoKSYmMDwkKCIjREVBTEVSQlJBTkQiKS5sZW5ndGgmJiQoIiNERUFMRVJCUkFORCIpLnZhbCgpLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoImZvcmQiKSYmIiIhPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSl7dmFyIGU9JCgiaHRtbCIpLmF0dHIoImxhbmciKSxrPSQoIiNERUFMRVJQQUNPREUiKS52YWwoKSxoPSJlbiI9PWU\/Ii9yZXF1ZXN0cy9jYXItcGFydHMtYW5kLWFjY2Vzc29yaWVzLmh0bWwiOiIvZGVtYW5kZXMvY29tbWFuZGUtcGllY2VzLWFjY2Vzc29pcmVzLWF1dG9tb2JpbGVzLmh0bWwiLG49Imh0dHBzOi8vZm9yZGFjY2Vzcy5jb20vRm9yZC5hc3B4P2xvY2F0aW9uPSIrCms7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfU0VSVklDRSB1bC5zdWIgbGlbZGF0YS1pZD0nUElFQ0VTJ10iLGZ1bmN0aW9uKCl7dmFyIGY9JCh0aGlzKTtmPSQoIj4gYSIsZik7Zi5hdHRyKCJocmVmIik9PWgmJihmLmF0dHIoImhyZWYiLG4pLGYuYXR0cigidGFyZ2V0IiwiX2JsYW5rIikpfSl9dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfRklOQU5DRSA+IGEiLGZ1bmN0aW9uKCl7dmFyIGY9JCh0aGlzKSxnPSQoImh0bWwiKS5hdHRyKCJsYW5nIiksbT0kKCIjREVBTEVSUEFDT0RFIikudmFsKCksbD0kKCIjREVBTEVSQlJBTkRfUFJJTUFSWSIpLnZhbCgpLnRvTG93ZXJDYXNlKCk7ImZvcmRfbGluY29sbl9leHRlcm5hbCIhPSQoIiNGSU5BTkNFRk9STVRZUEUiKS52YWwoKXx8ImZvcmQiIT1sJiYibGluY29sbiIhPWx8fCIiPT1tfHwoZi5hdHRyKCJocmVmIiwiZm9yZCI9PWw\/KCJlbiI9PWc\/Imh0dHBzOi8vd3d3LmZvcmQuY2EvZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDRiZkZWFsZXJJZD0iOgoiaHR0cHM6Ly9mci5mb3JkLmNhL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0YmZGVhbGVySWQ9IikrbTooImVuIj09Zz8iaHR0cHM6Ly93d3cubGluY29sbmNhbmFkYS5jb20vZmluYW5jZS9hcHBseS8xP1NvdXJjZU9mRGF0YT1DQURDTCZkZWFsZXJJZD0iOiJodHRwczovL2ZyLmxpbmNvbG5jYW5hZGEuY29tL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0wmZGVhbGVySWQ9IikrbSksZi5hdHRyKCJ0YXJnZXQiLCJfYmxhbmsiKSl9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYoMDwkKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS5sZW5ndGgmJiIiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSYmIiMjTElOS1JVTEVTIyMiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSl7aWYoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmN0YS10cGwiKS5sZW5ndGgmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG5ld2NhckRldGFpbHMmJgoidW5kZWZpbmVkIiE9PXR5cGVvZiBuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsKXtpZighMT09PSgiY29tbWVyY2lhbCI9PW5ld2NhckRldGFpbHMuYWN0aXZlTW9kZWwuc2VjdGlvbj8hMDohMSkpcmV0dXJuO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jdGEtdHBsIGEiKS5mb3JFYWNoKChmLGcpPT57Zz1mLmdldEF0dHJpYnV0ZSgiaHJlZiIpO2lmKGcuaW5jbHVkZXMoInNob3AuZm9yZC5jYSIpKXtsZXQgbT0hMTtnLmluY2x1ZGVzKCJzdXBlcmR1dHkiKSYmKG09Zy5yZXBsYWNlKCIvc3VwZXJkdXR5LyIsIi9zdXBlcmR1dHktY29tbWVyY2lhbC8iKSk7ITEhPT1tJiZmLnNldEF0dHJpYnV0ZSgiaHJlZiIsbSl9fSl9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiI2NsYXNzY29tbWVyY2lhbF9jb250YWluZXIiKS5sZW5ndGgmJmRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5kaXZDYXJTaW5nbGVPdXRlckJveCBhIikuZm9yRWFjaCgoZixnKT0+e2c9Zi5nZXRBdHRyaWJ1dGUoImhyZWYiKTsKaWYoZy5pbmNsdWRlcygic2hvcC5mb3JkLmNhIikpe2xldCBtPSExO2cuaW5jbHVkZXMoInN1cGVyZHV0eSIpJiYobT1nLnJlcGxhY2UoIi9zdXBlcmR1dHkvIiwiL3N1cGVyZHV0eS1jb21tZXJjaWFsLyIpKTshMSE9PW0mJmYuc2V0QXR0cmlidXRlKCJocmVmIixtKX19KX19LDJFMyk7dGhpcy5tZW51Lm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLCIjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpLCAjTWFpbk1lbnVfTkVXID4gdWwuc3ViID4gbGkgPiAubWFpbm1lbnUtc3VibWVudSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksICAjTWFpbk1lbnVfVEFCX0NPTU1FUkNJQUwgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpID4gdWwuc3ViID4gbGksICNNYWluTWVudV9UQUJfQ09NTUVSQ0lBTCA+IHVsLnN1YiA+IGxpID4gLm1haW5tZW51LXN1Ym1lbnUgPiB1bC5zdWIgPiBsaSA+IHVsLnN1YiA+IGxpIixmdW5jdGlvbihmKXtpZigibW91c2VsZWF2ZSIhPQpmLnR5cGUpe3ZhciBnPSQodGhpcykuZmluZCgiLm1lbnUtdGVjaC1zcGVjcyIpOzA9PWcubGVuZ3RoJiYoZz0kKCIjbWVudS1zcGVjcy10ZW1wbGF0ZSIpLmNsb25lKCkpO3ZhciBtPXRoaXM7aWYoMD09JChtKS5jaGlsZHJlbigiLm1lbnUtdGVjaC1zcGVjcyIpLmxlbmd0aCl7dmFyIGw9JChtKS5maW5kKCJhOm50aC1vZi10eXBlKDIpIikudGV4dCgpLHU9JChtKS5maW5kKCJhOmZpcnN0LWNoaWxkIikuYXR0cigiaHJlZiIpLHE9dS5sYXN0SW5kZXhPZigiLyIpKzE7Y2FyTGlua1RyaW1tZWQ9dS5zdWJzdHJpbmcocSx1Lmxlbmd0aCk7dmFyIHI9JCgiI3R4dEJ1aWxkQW5kUHJpY2VGb2xkZXJQYXRoIikudmFsKCkrY2FyTGlua1RyaW1tZWQ7KGZ1bmN0aW9uKCl7aWYoMDwkKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS5sZW5ndGgmJiIiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSYmIiMjTElOS1JVTEVTIyMiIT0kKCIjZDJjLWJucC1saW5rcnVsZXMtdGV4dGFyZWEiKS52YWwoKSl7dmFyIHk9CjA8JChtKS5jbG9zZXN0KCJsaVtkYXRhLWlkXj0nTkVXX0NPTU1FUkNJQUwnXSIpLmxlbmd0aD8hMDohMSxBPSQoIiNkMmMtYm5wLWxpbmtydWxlcy10ZXh0YXJlYSIpLnZhbCgpO0E9SlNPTi5wYXJzZShBKTt2YXIgST0kKCJodG1sIikuYXR0cigibGFuZyIpLEI9ci5tYXRjaCgiZW4iPT1JPy9cL2J1aWxkLWFuZC1wcmljZVwvKFxkezR9LShcdyspLShcdyspLipcLmh0bWwpLiovOi9cL2NvbmZpZ3VyYXRpb24tZXQtcHJpeFwvKChcdyspLShcdyspLVxkezR9KS4qXC5odG1sLyksSj1CWzBdLEY9QlsyXS50b0xvd2VyQ2FzZSgpO0I9QlszXS50b0xvd2VyQ2FzZSgpLnJlcGxhY2VBbGwoIl8iLCIgIik7eSYmQi5pbmNsdWRlcygic3VwZXIgZHV0eSIpJiYoQj0ic3VwZXIgZHV0eSBjb21tZXJjaWFsIik7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgQVtGXSYmInVuZGVmaW5lZCI9PT10eXBlb2YgQVtGXVtCXSlmb3IodmFyIEsgaW4gQVtGXSlpZih5PUssQi5pbmNsdWRlcyh5KSl7Qj15OwpicmVha30idW5kZWZpbmVkIiE9PXR5cGVvZiBBW0ZdJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBBW0ZdW0JdJiYoJChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLmF0dHIoInRhcmdldCIsIl9ibGFuayIpLHI9ci5yZXBsYWNlKEosQVtGXVtCXVtJXSkpfX0pKCk7JChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLmF0dHIoImhyZWYiLHIpOyQoZykuZmluZCgiLm1lbnUtc3BlYy1saW5rIikuYXR0cigiaHJlZiIsdSk7JChnKS5yZW1vdmVBdHRyKCJpZCIpOyQoZykuY2hpbGRyZW4oIi5tZW51LXNwZWNzLXRpdGxlIikuYXBwZW5kKGwpO3ZhciBwPXt9OyQuaXNFbXB0eU9iamVjdChjKCkuY2Fycy5kZXRhaWxzKT8kLndoZW4oYygpLnNwZWNzQWpheCkuZG9uZShmdW5jdGlvbih5KXtwPWMoKS5jYXJzLmZpbmRCeUlkKCQobSkuZGF0YSgibW9kZWxpZCIpKX0pOnA9YygpLmNhcnMuZmluZEJ5SWQoJChtKS5kYXRhKCJtb2RlbGlkIikpO2lmKCEkLmlzRW1wdHlPYmplY3QocCkpe3ZhciB3PWEuc2hvdWxkVXNlRnJlbmNoTmFtZXMoKT8KcC5uYW1lOnAubW9kZWw7cC5oYXNPd25Qcm9wZXJ0eSgiYmFzZV9zdHlsZSIpJiYocD1wLmJhc2Vfc3R5bGUsdz1wLm1vZGVsKTtxPSJGUkVOQ0giPT0kKCIjdGV4dExhbmd1YWdlIikudmFsKCk\/Ik4vRCI6Ik4vQSI7bD0iIj09cC5kaXNwbGFjZW1lbnQ\/cTpwLmRpc3BsYWNlbWVudDt1PSIiPT1wLmNpdHlGdWVsP3E6cC5jaXR5RnVlbDtxPSIiPT1wLmh3eUZ1ZWw\/cTpwLmh3eUZ1ZWw7dmFyIHo9cC5tc3JwQWxsSW4sRD0kKGcpLmZpbmQoIi5tZW51LXNwZWMtYm5wIikudGV4dCgpLnRyaW0oKTtEPUQucmVwbGFjZSgiJE1PREVMIix3KTt3PWA8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4ke3oudG9Mb2NhbGVTdHJpbmcoKX08L3NwYW4+YDt6PSQoIiNBRE1JTl9ORVdfRE9OVF9TSE9XX1BSSUNFX01PREVMUyIpLnZhbCgpLmluY2x1ZGVzKHAubW9kZWxpZCk7aWYoMDwkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5sZW5ndGgpeyQoZykuZmluZCgiLm1lbnUtc3BlYy1wcmljZSIpLnRleHQoIiIpOwp2YXIgQz0kKCc8ZGl2IGNsYXNzPSJwcmljZSIvPicpLEU9JCgnPHNwYW4gY2xhc3M9InByaWNlX2FtdCIvPicpLEc9JCgnPHNwYW4gY2xhc3M9InByaWNlX3NjcmF0Y2hlZCIvPicpLEg9JCgnPHNwYW4gY2xhc3M9InByaWNlX3Byb21vIi8+Jyk7MDwkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5jaGlsZHJlbigiLnByaWNlLXNjcmF0Y2giKS5sZW5ndGg\/KEcuaHRtbCh3KSxFLmFwcGVuZChHKSxFLmNzcyh7InRleHQtZGVjb3JhdGlvbiI6ImxpbmUtdGhyb3VnaCIsY29sb3I6InJlZCJ9KSk6RS5odG1sKHcpO0MuYXBwZW5kKEUpOzA8JChtKS5jaGlsZHJlbigiLnByaWNlIikuY2hpbGRyZW4oIi5wcmljZV9wcm9tbyIpLmxlbmd0aCYmKEgudGV4dCgkKG0pLmNoaWxkcmVuKCIucHJpY2UiKS5jaGlsZHJlbigiLnByaWNlX3Byb21vIikudGV4dCgpKSxILmNzcyh7Y29sb3I6InJlZCJ9KSxDLmFwcGVuZChIKSk7JChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikuYXBwZW5kKEMpfWVsc2UgJChnKS5maW5kKCIubWVudS1zcGVjLXByaWNlIikuaHRtbCh3KTsKJChnKS5maW5kKCIubWVudS1zcGVjLWhwIikudGV4dChwLmhwQXRSUE0pOyQoZykuZmluZCgiLm1lbnUtc3BlYy1wb3dlciIpLnRleHQobCk7JChnKS5maW5kKCIubWVudS1zcGVjLWZ1ZWwtY2l0eSIpLnRleHQodSk7JChnKS5maW5kKCIubWVudS1zcGVjLWZ1ZWwtaGlnaHdheSIpLnRleHQocSk7JChnKS5maW5kKCIubWVudS1zcGVjLWRyaXZldHJhaW4iKS50ZXh0KHAuZHJpdmVUcmFpbik7JChnKS5maW5kKCIubWVudS1zcGVjLWJucCIpLmNvbnRlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDM9PXRoaXMubm9kZVR5cGV9KS5sYXN0KCkucmVwbGFjZVdpdGgoRCk7eiYmKCQoZykuZmluZCgiLm1lbnUtc3BlYy1ibnAiKS5yZW1vdmUoKSwkKGcpLmZpbmQoIi5tZW51LXNwZWMtcHJpY2UiKS50ZXh0KCQoIiNORVdfUFJJQ0VfVEVYVCIpLnZhbCgpKSk7bD0kKGcpLmZpbmQoIi5tZW51LXByaWNlLXRleHQiKTt1PWwuYXR0cigiZGF0YS1wcmljZS10ZW1wbGF0ZSIpfHxsLnRleHQoKTsKbC50ZXh0KGQodSxwKSk7NUU4PnAuaWQmJiQobSkuYXBwZW5kKGcuZmFkZUluKDIwMCkpO2w9bmV3IEN1c3RvbUV2ZW50KCJ0b3BuYXYtdGVjaC1zcGVjLWxvYWRlZCIse2RldGFpbDp7dGVtcGxhdGU6Z319KTtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KGwpfX1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dmFyIHk9YS5wb3NpdGlvbnMobSxmLCQoZykpO3kudXBkYXRlKCk7dmFyIEE9JChtKS5wYXJlbnQoInVsLnN1YiIpLnBhcmVudCgpLnBhcmVudCgpO0Eub2Zmc2V0KCk7QS5vdXRlckhlaWdodCgpO3kuc3BlY3NCb3R0b208eS5zdWJNZW51SXRlbVRvcCYmJChnKS5jc3MoInRvcCIseS5zdWJNZW51SXRlbUJvdHRvbS15LnNwZWNzQm90dG9tKTt5LnN1Yk1lbnVJdGVtVG9wPHkuc3BlY3NCb3R0b20mJnkuc3ViTWVudUl0ZW1Cb3R0b20+eS5zcGVjc0JvdHRvbSYmJChnKS5jc3MoInRvcCIsJChnKS5wb3NpdGlvbigpLnRvcCsoeS5zdWJNZW51SXRlbUJvdHRvbS15LnNwZWNzQm90dG9tKSl9LAowKTtkZWxldGUgcH19KTskKCcudXBfbWVudSBbaWRePSJNYWluTWVudV8iXS50b3A6bm90KC5pc09wZW4pJykub24oIm1vdXNlZW50ZXIiLGZ1bmN0aW9uKGYpeyQoZi5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygiaXNPcGVuIil8fCQoJy51cF9tZW51IFtpZF49Ik1haW5NZW51XyJdLnRvcCcpLnJlbW92ZUNsYXNzKCJpc09wZW4iKX0pOyQoZG9jdW1lbnQpLm9uKCJjbGljayIsZnVuY3Rpb24oZil7Y2hpbGRPZihkb2N1bWVudC5hY3RpdmVFbGVtZW50LCQoIi51cF9tZW51IilbMF0pfHwkKCcudXBfbWVudSBbaWRePSJNYWluTWVudV8iXS50b3AnKS5yZW1vdmVDbGFzcygiaXNPcGVuIil9KTskKCIjTWFpbk1lbnVfQ09OVEFDVCIpLm9uKCJtb3VzZWVudGVyIG1vdXNlbGVhdmUiLGZ1bmN0aW9uKGYpe3ZhciBnPSQoIiNtZW51LW1hcC1saW5rIik7MD09Zy5sZW5ndGh8fDA8Zy5maW5kKCJpZnJhbWUiKS5sZW5ndGh8fGluamVjdEdvb2dsZU1hcHNLZXkoZnVuY3Rpb24obSl7bT0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9tYXBzL2VtYmVkL3YxL3BsYWNlPyIrClsicT0iK2VuY29kZVVSSUNvbXBvbmVudChnLmRhdGEoInBsYWNlSWQiKSksInpvb209IitnLmRhdGEoInpvb20iKSwibGFuZ3VhZ2U9IitnLmRhdGEoImxhbmd1YWdlIiksInJlZ2lvbj1DQSIsImtleT0iK21dLmpvaW4oIiYiKTtnLmFwcGVuZCgnPGlmcmFtZSBzcmM9IicrbSsnIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSI0MDAiIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0iYm9yZGVyOjAiIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4nKX0pfSk7JCgiI01haW5NZW51X0ZJTkFOQ0UsICNNYWluTWVudV9DT05UQUNUIikub24oIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIsZnVuY3Rpb24oZil7dmFyIGc9Zi5jdXJyZW50VGFyZ2V0LmlkLG09JCgiIyIrZyk7MD09PSQoIiMiK2crIi5pc09wZW4iKS5sZW5ndGgmJiJtb3VzZWxlYXZlIiE9PWYudHlwZSYmbS5hZGRDbGFzcygiaXNPcGVuIik7aWYoIm1vdXNlbGVhdmUiPT09Zi50eXBlKXt2YXIgbD0kKCIuY3JlZGl0U2NvcmVQb3B1cEZvcm0iKVswXTsKZz0kKCIjIitnKyIgPiBhLnRvcF9saW5rIilbMF07KGwmJmYuZnJvbUVsZW1lbnQ9PT1sfHxnJiZmLmZyb21FbGVtZW50PT09ZykmJm0ucmVtb3ZlQ2xhc3MoImlzT3BlbiIpO2w9JChmLnRvRWxlbWVudCkuaGFzQ2xhc3MoImNhbC13cmFwcGVyIil8fCQoZi50b0VsZW1lbnQpLmNoaWxkcmVuKCkuaGFzQ2xhc3MoImNhbC13cmFwcGVyIil8fCQoZi50b0VsZW1lbnQpLmhhc0NsYXNzKCJuZWJDYWwiKXx8JChmLnRvRWxlbWVudCkuY2xvc2VzdCgiLm5lYkNhbCIpLmxlbmd0aDtnPSQoZi50b0VsZW1lbnQpLmhhc0NsYXNzKCJwYWMtY29udGFpbmVyIik7aWYoIShudWxsPT09Zi50b0VsZW1lbnR8fGNoaWxkT2YoZi50b0VsZW1lbnQsbVswXSl8fGNoaWxkT2YoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCxtWzBdKXx8bHx8Zyl8fGNoaWxkT2YoZi50b0VsZW1lbnQsJCgiLnVwX21lbnUiKVswXSkmJiFjaGlsZE9mKGYudG9FbGVtZW50LG1bMF0pKSQoIi5uZWJDYWwiKS5pcygiOnZpc2libGUiKSYmCihmPSQoIi5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdCAuY3JlZGl0U2NvcmVCaXJ0aGRhdGUiKS5kYXRhKCJuZWJDYWwiKSkmJmYuaGlkZSgpLG0ucmVtb3ZlQ2xhc3MoImlzT3BlbiIpfX0pO2lmKCQoITApKXtlPSQoIi5tZW51NSAubmF2ID4gbGkiKTtrPWUubGVuZ3RoO3ZhciB4PSQoIiNNYWluTWVudV9DT05UQUNUIiksdj0tMTtlLmVhY2goZnVuY3Rpb24oZixnKXskKGcpLmlzKHgpJiYodj1mKX0pOy0xPHYmJi41PD12L2smJnguZmluZCgiLmNvbnRhY3R1cy1mb3JtLmNvbnRhY3Qtc2hvcnQiKS5jc3Moe3JpZ2h0OiJpbmhlcml0In0pfXRoaXMuc2hvdWxkVXNlRnJlbmNoTmFtZXM9ZnVuY3Rpb24oKXtyZXR1cm4iRlJFTkNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpJiYiMSI9PT0kKCIjbmV3X3RyYW5zbGF0ZWRfdGl0bGVzIikudmFsKCl9O3RoaXMuc2V0TWVudUV4cHJlc3NGb3JtU2VsZWN0ZWRPcHRpb249ZnVuY3Rpb24oKXt2YXIgZj13aW5kb3cubG9jYXRpb24uaHJlZiwKZz0vdXNlZHxvY2Nhc2lvbi8udGVzdChmKSxtPS9uZXd8bmV1ZnMvLnRlc3QoZiksbD0vZmluYW5jZW1lbnR8Y3JlZGl0Ly50ZXN0KGYpLHU9L3NlcnZpY2V8YWNjZXNzb3JpZXN8dGlyZXxwbmV1c3xib2R5c2hvcHxib2R5LXNob3B8Y2Fyb3NzZXJpZS8udGVzdChmKTtmPSIiO20\/Zj0ibmV3IjpnP2Y9InVzZWQiOmw\/Zj0iZmluYW5jZSI6dSYmKGY9InNlcnZpY2UiKTsiIiE9ZiYmKGc9JCgiLm1lbnUgI3F1aWNrRW1haWxEZXBhcnRtZW50IiksJCgnIG9wdGlvblt2YWx1ZT0iJytmKyciXScsZykucHJvcCgic2VsZWN0ZWQiLCJzZWxlY3RlZCIpLG09JCgib3B0aW9uOnNlbGVjdGVkIixnKS5pbmRleCgpLGcucHJldigidWwiKS5maW5kKCJsaSIpLmVxKG0pLmZpbmQoImEiKS50cmlnZ2VyKCJjbGljayIpKX07c2V0VGltZW91dChmdW5jdGlvbigpe2Euc2V0TWVudUV4cHJlc3NGb3JtU2VsZWN0ZWRPcHRpb24oKX0sMTApO2NvbnNvbGUubG9nKCJNZW51SGFuZGxlciBpbml0IC0tIHRlc3QgcmVtb3ZlIGxhdGVyIik7CnRoaXMudHJhbnNsYXRlVGl0bGVzPWZ1bmN0aW9uKCl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe3RyeXt2YXIgZj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1tZW51LXRyYW5zbGF0ZV0iKTtpZihmKXt2YXIgZz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJib2R5IikuY2xhc3NOYW1lLm1hdGNoKCJGUkVOQ0giKT8iZnIiOiJlbiIsbT0obmV3IFVSTChgL2pzL2pzb24vbWVudVRpdGxlc18ke2d9Lmpzb25gLHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pKS5ocmVmO3Jlc3BvbnNlPXlpZWxkIGZldGNoKG0pO2lmKHRleHQ9eWllbGQgcmVzcG9uc2UudGV4dCgpKWlmKGRhdGE9SlNPTi5wYXJzZSh0ZXh0KSxmJiYwIT09ZGF0YS5sZW5ndGgpZm9yKGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIGw9ZltnXS5nZXRBdHRyaWJ1dGUoImRhdGEtbWVudS10cmFuc2xhdGUiKTtkYXRhW2xdJiZCYXNlNjQuaXNCYXNlNjQoZGF0YVtsXS50ZXh0KSYmCihmW2ddLnRleHRDb250ZW50PUJhc2U2NC5kZWNvZGUoZGF0YVtsXS50ZXh0KSl9fX1jYXRjaCh1KXtjb25zb2xlLmxvZyh1KX19KX07dGhpcy50cmFuc2xhdGVUaXRsZXMoKX19KSgpOyQoZnVuY3Rpb24oKXt3aW5kb3cubWVudUhhbmRsZXI9bmV3IE1lbnVIYW5kbGVyfSk7CnZhciBnZXRBY3RpdmVQYWdlPWZ1bmN0aW9uKCl7dmFyIGE9IiI7InVuZGVmaW5lZCI9PT10eXBlb2YgYWN0aXZlUGFnZSYmKGFjdGl2ZVBhZ2U9IiIpO3N3aXRjaChhY3RpdmVQYWdlKXtjYXNlICJIT01FUEFHRSI6YT0iQWNjdWVpbCI7YnJlYWs7Y2FzZSAiQ0FSREVUQUlMUyI6YT0iT2NjYXNpb24tVkRQIjticmVhaztjYXNlICJVU0VEQ0FSUyI6YT0iT2NjYXNpb24tU1JQIjticmVhaztjYXNlICJORVdDQVJTIjphPSJOZXVmLVNSUCI7YnJlYWs7Y2FzZSAiTkVXQ0FSREVUQUlMUyI6YT0iTmV1Zi1WRFAifXJldHVybiBhfSxzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQ9ZnVuY3Rpb24oYSxiKXtnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkNsaXF1ZXMgQmFubmllcmUiLGEsYiwxKX07CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNob21lcGFnZS1iYW5uZXIgI3NsaWRlciA+IGEiLGZ1bmN0aW9uKGEpe2lmKGE9Z2V0QWN0aXZlUGFnZSgpKXt2YXIgYj0iIiE9JCh0aGlzKS5hdHRyKCJocmVmIik\/JCh0aGlzKS5hdHRyKCJocmVmIik6IlBvcHVwIjtzZW5kR29vZ2xlQW5hbHl0aWNCYW5uZXJDbGlja2VkRXZlbnQoYSxiKX19KTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjbW9iaWxlU2xpZGVyICNtb2JpbGVTbGlkZXIyID4gYSIsZnVuY3Rpb24oYSl7aWYoYT1nZXRBY3RpdmVQYWdlKCkpe3ZhciBiPSIiIT0kKHRoaXMpLmF0dHIoImhyZWYiKT8kKHRoaXMpLmF0dHIoImhyZWYiKToiUG9wdXAiO3NlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudChhLGIpfX0pOwokKGRvY3VtZW50KS5vbigiY2xpY2siLCIjdG9wQmFubmVySW1hZ2UiLGZ1bmN0aW9uKGEpeyhhPWdldEFjdGl2ZVBhZ2UoKSkmJnNlbmRHb29nbGVBbmFseXRpY0Jhbm5lckNsaWNrZWRFdmVudChhLCJQb3B1cCIpfSk7dmFyIGhvbWVQYWdlQmFubmVyVmlldz1bXTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjaG9tZXBhZ2UtYmFubmVyICNzbGlkZXIgPiBhIixmdW5jdGlvbihhKXsoYT1nZXRBY3RpdmVQYWdlKCkpJiYiQWNjdWVpbCI9PWEmJihhPSQoIiNzbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIkRlc2t0b3AtY2xpY2siLGEsMSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJuaXZvU2xpZGVyQ2hhbmdlZCBuaXZvU2xpZGVyTG9hZGVkIiwiI2hvbWVwYWdlLWJhbm5lciAjc2xpZGVyIixmdW5jdGlvbihhKXshKGE9Z2V0QWN0aXZlUGFnZSgpKXx8IkFjY3VlaWwiIT1hfHw1MDA8JChkb2N1bWVudCkuc2Nyb2xsVG9wKCl8fChhPSQoIiNzbGlkZXIiKS5kYXRhKCJuaXZvOnZhcnMiKS5jdXJyZW50U2xpZGUrMSwwPiQuaW5BcnJheShhLGhvbWVQYWdlQmFubmVyVmlldykmJihob21lUGFnZUJhbm5lclZpZXcucHVzaChhKSxnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiSG9tZS1wYWdlIHNsaWRlciIsIkRlc2t0b3AtdmlldyIsYSwxKSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJjbGljayIsIiNtb2JpbGVTbGlkZXIgI21vYmlsZVNsaWRlcjIgPiBhIixmdW5jdGlvbihhKXsoYT1nZXRBY3RpdmVQYWdlKCkpJiYiQWNjdWVpbCI9PWEmJihhPSQoIiNtb2JpbGVTbGlkZXIyIikuZGF0YSgibml2bzp2YXJzIikuY3VycmVudFNsaWRlKzEsZ2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIkhvbWUtcGFnZSBzbGlkZXIiLCJNb2JpbGUtY2xpY2siLGEsMSkpfSk7CiQoZG9jdW1lbnQpLm9uKCJuaXZvU2xpZGVyQ2hhbmdlZCBuaXZvU2xpZGVyTG9hZGVkIiwiI21vYmlsZVNsaWRlciAjbW9iaWxlU2xpZGVyMiIsZnVuY3Rpb24oYSl7IShhPWdldEFjdGl2ZVBhZ2UoKSl8fCJBY2N1ZWlsIiE9YXx8MzUwPCQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpfHwoYT0kKCIjbW9iaWxlU2xpZGVyMiIpLmRhdGEoIm5pdm86dmFycyIpLmN1cnJlbnRTbGlkZSsxLDA+JC5pbkFycmF5KGEsaG9tZVBhZ2VCYW5uZXJWaWV3KSYmKGhvbWVQYWdlQmFubmVyVmlldy5wdXNoKGEpLGdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJIb21lLXBhZ2Ugc2xpZGVyIiwiTW9iaWxlLXZpZXciLGEsMSkpKX0pOwpmdW5jdGlvbiB0aHJlc2hvbGRQb3B1cCgpe3ZhciBhPWdldFVybFZhcnMoKTtpZihudWxsPT1Db29raWVzLmdldCgicG9wdXBTaG93biIpfHwidW5kZWZpbmVkIiE9dHlwZW9mIGEuZGVidWcpc2hvd1BvcHVwV2lkZ2V0KHtkb05vdFJlZGlyZWN0OiEwfSksQ29va2llcy5zZXQoInBvcHVwU2hvd24iLCIxIiw5MCwiLyIpfWZ1bmN0aW9uIF9sb2NhbFN0b3JhZ2VTZXQoYSxiLGMpe2M9ODY0RTUqKGN8fDEpO2I9e3ZhbHVlOmIsZXhwaXJ5OihuZXcgRGF0ZSkuZ2V0VGltZSgpK2N9O2xvY2FsU3RvcmFnZS5zZXRJdGVtKGEsSlNPTi5zdHJpbmdpZnkoYikpfWZ1bmN0aW9uIF9sb2NhbFN0b3JhZ2VHZXQoYSl7dmFyIGI9bG9jYWxTdG9yYWdlLmdldEl0ZW0oYSk7aWYoIWIpcmV0dXJuIG51bGw7Yj1KU09OLnBhcnNlKGIpO3JldHVybihuZXcgRGF0ZSkuZ2V0VGltZSgpPmIuZXhwaXJ5Pyhsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhKSxudWxsKTpiLnZhbHVlfQpmdW5jdGlvbiBfbG9jYWxTdG9yYWdlUmVtb3ZlKGEpe2lmKCFsb2NhbFN0b3JhZ2UuZ2V0SXRlbShhKSlyZXR1cm4gbnVsbDtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhKTtyZXR1cm4gbnVsbH1mdW5jdGlvbiBnZW5lcmF0ZVVuaXF1ZUlkKCl7cmV0dXJuImlkLSIrRGF0ZS5ub3coKSsiLSIrTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMil9Y29uc3QgaW5pdFRvb2x0aXBzPSgpPT57dHJ5e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLXBvcHBlcl0iKS5mb3JFYWNoKGE9PntUb29sdGlwKGEpLmNyZWF0ZSgpfSl9Y2F0Y2goYSl7Y29uc29sZS5sb2coIlRvb2x0aXAgb2JqZWN0IG5vdCBmb3VuZCIpfX07CmZ1bmN0aW9uIGhhbmRsZUNvb2tpZUNvbnRlbnQoKXtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS1jb29raWVoaWRlXSIpLmZvckVhY2goYT0+e2xldCBiPWEuZGF0YXNldC5jb29raWVoaWRlO2IubGVuZ3RoJiZDb29raWVzLmdldChiKSYmKGEuaGlkZGVuPSEwKX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWNvb2tpZXNob3ddIikuZm9yRWFjaChhPT57bGV0IGI9YS5kYXRhc2V0LmNvb2tpZXNob3c7Yi5sZW5ndGgmJkNvb2tpZXMuZ2V0KGIpJiYoYS5oaWRkZW49ITEpfSl9dmFyIHNpdGVQYWdlPXt9Owpjb25zdCBkb2NSZWFkeT1mdW5jdGlvbigpe19sb2NhbFN0b3JhZ2VHZXQoImQyYy11aWQiKXx8X2xvY2FsU3RvcmFnZVNldCgiZDJjLXVpZCIsZ2VuZXJhdGVVbmlxdWVJZCgpLDIpO2lmKCJjb21wbGV0ZSI9PT1kb2N1bWVudC5yZWFkeVN0YXRlKXtsZXQgYTtjb25zb2xlLmxvZygiR1NQRUVELURPQ1JFQURZIENPTVBMRVRFOiIrKERhdGUubm93KCktKG51bGwhPShhPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/YTowKSkvMUUzKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tdHh0IikuZm9yRWFjaChiPT57Yi5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi10eHQiLCExKX0pO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5za2VsZXRvbi1zbGlkZXIiKS5mb3JFYWNoKGI9PntiLmNsYXNzTGlzdC50b2dnbGUoInNrZWxldG9uLXNsaWRlciIsITEpfSk7d2luZG93LmdTa2VsZXRvbklzUmVtb3ZlZD0hMDtzaXRlUGFnZT17bmFtZToidW5kZWZpbmVkIiE9dHlwZW9mIHBhZ2U\/CnBhZ2U6IiIsaXNNb2JpbGU6IjEiPT0oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImlzbW9iaWxlIil8fCIiKS52YWx1ZSxsYW5nOihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlc2l0ZWxhbmd1YWdlIil8fCIiKS52YWx1ZXx8IkZSRU5DSCJ9O2hhbmRsZUNvb2tpZUNvbnRlbnQoKTtpbml0VG9vbHRpcHMoKTtkb2NSZWFkeUFyci5mb3JFYWNoKGI9PmIoKSk7ZG9jUmVhZHlBcnI9W119ZWxzZXtsZXQgYTtpZigiaW50ZXJhY3RpdmUiPT09ZG9jdW1lbnQucmVhZHlTdGF0ZSYmd2luZG93LmdSZXNvdXJjZUxvYWRlckFuZEpxdWVyeUlzUmVhZHkmJiExPT09KG51bGwhPShhPXdpbmRvdy5nU2tlbGV0b25Jc1JlbW92ZWQpP2E6ITEpKXtsZXQgYjtjb25zb2xlLmxvZygiR1NQRUVELURPQ1JFQURZIElOVEVSQUNUSVZFOiIrKERhdGUubm93KCktKG51bGwhPShiPXdpbmRvdy5nVGVzdFNwZWVkQ29ubik\/YjowKSkvMUUzKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tdHh0IikuZm9yRWFjaChjPT4Ke2MuY2xhc3NMaXN0LnRvZ2dsZSgic2tlbGV0b24tdHh0IiwhMSl9KTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuc2tlbGV0b24tc2xpZGVyIikuZm9yRWFjaChjPT57Yy5jbGFzc0xpc3QudG9nZ2xlKCJza2VsZXRvbi1zbGlkZXIiLCExKX0pO3dpbmRvdy5nU2tlbGV0b25Jc1JlbW92ZWQ9ITB9c2V0VGltZW91dChkb2NSZWFkeSw1MCl9fTtkb2NSZWFkeSgpOwokKGZ1bmN0aW9uKCl7dmFyIGE9ITA7JCh3aW5kb3cpLm9uKCJzY3JvbGwiLGZ1bmN0aW9uKCl7dmFyIGQ9JChkb2N1bWVudCkuaGVpZ2h0KCksZT0kKHdpbmRvdykuaGVpZ2h0KCkrJCh3aW5kb3cpLnNjcm9sbFRvcCgpOy4wNT4oZC1lKS9kJiZhJiYoYT0hMSwidW5kZWZpbmVkIiE9PXR5cGVvZiBnYVRyYWNrJiZnYVRyYWNrKCJfdHJhY2tFdmVudCIsIkJvdHRvbSBvZiBwYWdlIHJlYWNoZWQiLCQoJ2lucHV0W25hbWU9InRhcmdldFBhZ2UiXScpLnZhbCgpLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpKX0pOyQoIi5lbWJlZC1jb250YWluZXIteW91dHViZSIpLnBhcmVudCgiLndyYXBwZXIiKS5yZW1vdmVDbGFzcygid3JhcHBlciIpO2lmKCQoIiNpc0JyYW5kUGFnZSIpLmxlbmd0aCl7dmFyIGI9Z2V0VXJsVmFycygpO2lmKGIua3cmJi0xIT1iLmt3LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiY2FuYWRhIikpe3ZhciBjPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKSYmIkVOR0xJU0giPT0KJCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIjtiPSJlbiI9PWM\/IkhlcmUgd2Ugb2ZmZXIgdGhlIGJlc3QgcHJpY2VzIjoiSWNpIG9uIG9mZnJlIGxlcyBtZWlsbGV1cnMgcHJpeCI7Yz0iZW4iPT1jPyJvbiAiKyQoIiNpc0JyYW5kUGFnZSIpLnZhbCgpKyIncyBpbiBDYW5hZGEiOiQoIiNpc0JyYW5kUGFnZSIpLnZhbCgpKyIgYXUgQ2FuYWRhIjskKCIjZGVmYXVsdFRvcEJhbm5lclRpdGxlIikudGV4dChiKTskKCIjZGVmYXVsdFRvcEJhbm5lclRleHQiKS50ZXh0KGMpfX0kKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyIikubGVuZ3RoJiYoYj1nZXRVcmxWYXJzKCksYi5maW5hbmNlcG9wJiYieWVzIj09Yi5maW5hbmNlcG9wJiZzZXRUaW1lb3V0KCgpPT57JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkub3BlbigpfSwxRTMpKTswPCQoIi50cmFkZXNpaS1yb290IikudGV4dCgpLmxlbmd0aD8kKCIudHJhZGVzaWktcm9vdCIpLmNzcygiei1pbmRleCIsCjFFMyk6c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi50cmFkZXNpaS1yb290IikuY3NzKCJ6LWluZGV4IiwxRTMpfSwxRTMpfSk7ZnVuY3Rpb24gYWRkTWF4TGVuZ3RoKCl7JCgiOmlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBhPSQodGhpcykuYXR0cigidHlwZSIpLGI9JCh0aGlzKS5hdHRyKCJtYXhsZW5ndGgiKTtpZih2b2lkIDA9PWJ8fG51bGw9PWJ8fCIiPT1iKSJ0ZXh0Ij09YXx8InRlbCI9PWF8fCJlbWFpbCI9PWF8fCJ1cmwiPT1hPyQodGhpcykucHJvcCgibWF4bGVuZ3RoIiwyNTYpOiJudW1iZXIiPT1hJiYoJCh0aGlzKS5wcm9wKCJvbmlucHV0IiwidGhpcy52YWx1ZT10aGlzLnZhbHVlLnNsaWNlKDAsdGhpcy5tYXhsZW5ndGgpIiksJCh0aGlzKS5wcm9wKCJtYXhsZW5ndGgiLDI1NikpfSl9ZG9jUmVhZHlBcnIucHVzaCgoKT0+eyQoIi5yZXZlYWwtbW9kYWwiKS5vbigicG9wdXBpemVyLm9uT3BlbiIsZnVuY3Rpb24oKXthZGRNYXhMZW5ndGgoKX0pO2FkZE1heExlbmd0aCgpfSk7CihmdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQsZSl7dGhpcy5lbD1kO3RoaXMuJGVsPWEoZCk7aWYodm9pZCAwPT09ZXx8Im9iamVjdCI9PT10eXBlb2YgZSl0aGlzLnNldHRpbmdzPWEuZXh0ZW5kKGMsZSk7dGhpcy5pbml0KCl9dmFyIGM9e2xhdDoiIixsb25nOiIiLHBvc3RhbDoiIixyYXRpbzouNjg4NSx3aWR0aDoiYXV0byJ9O2IucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKCl7dmFyIGQ9dGhpcy4kZWwuaXMoIi5sYXp5bG9hZCIpPyJkYXRhLWltZ3NyYyI6InNyYyI7dGhpcy4kZWwuYXR0cihkLHRoaXMuZ2V0VXJsKCkpfSxpc1Zpc2libGU6ZnVuY3Rpb24oKXt2YXIgZD10aGlzLiRlbC5hdHRyKCJ3aWR0aCIpO3JldHVybiEoIjBweCI9PT10aGlzLiRlbC5hdHRyKCJoZWlnaHQiKXx8IjBweCI9PT1kKX0sZ2V0V2lkdGg6ZnVuY3Rpb24oKXt0aGlzLiRlbC5hdHRyKCJ3aWR0aCIpO3ZhciBkPTA7ImF1dG8iPT09dGhpcy5zZXR0aW5ncy53aWR0aHx8ImF1dG8iPT09dGhpcy4kZWwuZGF0YSgid2lkdGgiKT8KZD10aGlzLiRlbC5wYXJlbnQoKS5jc3MoIndpZHRoIik6aXNOYU4ocGFyc2VJbnQodGhpcy5zZXR0aW5ncy53aWR0aCkpP3ZvaWQgMCE9PXRoaXMuJGVsLmF0dHIoIndpZHRoIikmJihkPXRoaXMuJGVsLmF0dHIoIndpZHRoIikpOmQ9dGhpcy5zZXR0aW5ncy53aWR0aDt0aGlzLiRlbC5hdHRyKCJ3aWR0aCIsZCk7cmV0dXJuIHBhcnNlSW50KGQucmVwbGFjZSgicHgiLCIiKSl9LGdldEhlaWdodDpmdW5jdGlvbigpe3ZhciBkPSJhdXRvIj09PXRoaXMuc2V0dGluZ3Mud2lkdGh8fCJhdXRvIj09PXRoaXMuJGVsLmRhdGEoIndpZHRoIik\/TWF0aC5yb3VuZCh0aGlzLmdldFdpZHRoKCkqdGhpcy5zZXR0aW5ncy5yYXRpbykrInB4Ijp0aGlzLiRlbC5wYXJlbnQoKS5jc3MoImhlaWdodCIpO3RoaXMuJGVsLmF0dHIoImhlaWdodCIsZCk7cmV0dXJuIHBhcnNlSW50KGQucmVwbGFjZSgicHgiLCIiKSl9LGdldFVybDpmdW5jdGlvbigpe3ZhciBkPWdldERhdGFBdHRyaWJ1dGVzKHRoaXMuZWwpLAplPXRoaXMuZ2V0V2lkdGgoKSxrPXRoaXMuZ2V0SGVpZ2h0KCksaD1kLmxhdCsiLCIrZC5sb25nLG49ZC5oYXNPd25Qcm9wZXJ0eSgibWFya2VySWNvbiIpPyJpY29uOiIrZC5tYXJrZXJJY29uKyJ8IjoiIjtkPWEuZXh0ZW5kKHtzaXplOmUrIngiK2ssY2VudGVyOmgsem9vbToiMTIiLG1hcmtlcnM6bitofSxkKTtyZXR1cm4iaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL3N0YXRpY21hcD8iK2EucGFyYW0oZCl9LGRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLiRlbC5yZW1vdmVEYXRhKCl9fTthLmZuLmdvb2dsZVN0YXRpY01hcD1mdW5jdGlvbihkKXt2YXIgZT1hcmd1bWVudHM7aWYoMT50aGlzLmxlbmd0aClyZXR1cm4gdGhpczt0aGlzLmVhY2goZnVuY3Rpb24oKXtpZighYS5kYXRhKHRoaXMsInBsdWdpbl9zdGF0aWNNYXAiKSlyZXR1cm4gYS5kYXRhKHRoaXMsInBsdWdpbl9zdGF0aWNNYXAiLG5ldyBiKHRoaXMsZCkpLHRoaXN9KTtpZigic3RyaW5nIj09PXR5cGVvZiBkJiYKIl8iIT09ZFswXSYmImluaXQiIT09ZCl7MTx0aGlzLmxlbmd0aCYmY29uc29sZS5sb2coImdvb2dsZVN0YXRpY01hcCB3YXJuaW5nIGNvZGUgMSIpO3ZhciBrPWEuZGF0YSh0aGlzLmZpcnN0KClbMF0sInBsdWdpbl9zdGF0aWNNYXAiKTtyZXR1cm4ga1tkXS5hcHBseShrLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGUsMSkpfXJldHVybiB0aGlzfX0pKGpRdWVyeSk7ZnVuY3Rpb24gcGFyc2VRdWVyeShhKXtpZigxPmEubGVuZ3RoKXJldHVybnt9O2Zvcih2YXIgYj17fSxjPWEuc3BsaXQoIiYiKSxkPTA7ZDxjLmxlbmd0aDtkKyspYT1leHBsb2RlKGNbZF0sIj0iLDEpLGJbYVswXV09YVsxXTtyZXR1cm4gYn1mdW5jdGlvbiBkZWNvZGVTdHJpbmcoYSxiKXtpZigiIj09Ynx8InVuZGVmaW5lZCI9PWIpYj0xO2ZvcihpPTA7aTxiO2krKylhPWRlY29kZVVSSUNvbXBvbmVudChhKTtyZXR1cm4gYX0KZnVuY3Rpb24gZXhwbG9kZShhLGIsYyl7YT1hLnNwbGl0KGIpO2lmKGEubGVuZ3RoPD1jKXJldHVybiBhO2M9YS5zcGxpY2UoMCxjKTtjLnB1c2goYS5qb2luKGIpKTtyZXR1cm4gY31mdW5jdGlvbiBnZXRVcmxWYXJzKCl7dmFyIGE9d2luZG93LmxvY2F0aW9uLnNlYXJjaC5zdWJzdHJpbmcoMSk7cmV0dXJuIHBhcnNlUXVlcnkoYSl9ZnVuY3Rpb24gZ2V0Q29va2llKGEpe3JldHVybiBDb29raWVzLmdldChhKX1mdW5jdGlvbiBzZXRDb29raWUoYSxiLGMpe0Nvb2tpZXMuc2V0KGEsYixjLCIvIil9ZnVuY3Rpb24gZ2V0Q29va2llRDJjKGEpe3JldHVybiBDb29raWVzLmdldChhKX1mdW5jdGlvbiBzZXRDb29raWVEMmMoYSxiLGMpe0Nvb2tpZXMuc2V0KGEsYixjLCIvIil9ZnVuY3Rpb24gaXNTU0woKXtyZXR1cm4iaHR0cHM6Ij09PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbH1mdW5jdGlvbiBzZXRTZXNzaW9uQ29va2llKGEsYil7Q29va2llcy5zZXQoYSxiLDAsIi8iKX0KZnVuY3Rpb24gaW5pdExDSShhLGIpe2lmKDIwPGIpcmV0dXJuIGI7Yj1iP2I6MDtpZigidW5kZWZpbmVkIj09dHlwZW9mIExDX0FQSXx8InVuZGVmaW5lZCI9PXR5cGVvZiBMQ19JbnZpdGUpc2V0VGltZW91dChmdW5jdGlvbigpe2luaXRMQ0koYSwrK2IpfSw1MDApO2Vsc2UgaWYoInVuZGVmaW5lZCIhPXR5cGVvZiBMQ19BUEkmJiJ1bmRlZmluZWQiIT10eXBlb2YgTENfSW52aXRlJiZhKXJldHVybiBMQ19BUEkuc2V0X2N1c3RvbV92YXJpYWJsZXMoYSl9ZnVuY3Rpb24gZ2V0UmVmZXJyZXJWYXJGdW5jdGlvbihhKXtyZXR1cm4gZnVuY3Rpb24oKXsiIj09YSYmKGE9ZG9jdW1lbnQucmVmZXJyZXIpO3ZhciBiPWEuaW5kZXhPZigiPyIpKzE7cmV0dXJuIDA8Yj8oYj1hLnNsaWNlKGIpLHBhcnNlUXVlcnkoYikpOnt9fX0KKGZ1bmN0aW9uKGEpe3ZhciBiPXtjYWxsYmFja3M6W10saGFzU2NyaXB0OmZ1bmN0aW9uKCl7dmFyIGU9YSgnaGVhZCBzY3JpcHRbc3JjKj0ibWFwcy5qcy5waHAiXScpO3JldHVybiAwPT1lLmxlbmd0aD8hMTovbWFwc1wuanMvLnRlc3QoZS5hdHRyKCJzcmMiKSl9LGxvYWQ6ZnVuY3Rpb24oZSl7aWYoYi5oYXNTY3JpcHQoKSkidW5kZWZpbmVkIj09PXR5cGVvZiBnb29nbGU\/Yi5jYWxsYmFja3MucHVzaChlKTplKCk7ZWxzZXtiLmNhbGxiYWNrcy5wdXNoKGUpO3RyeXt2YXIgaz0iRU5HTElTSCI9PWEoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciI7KGZ1bmN0aW9uKGgsbix4LHYsZil7aFtmXSYmaFtmXS5tYXBzfHwoaD1uLmNyZWF0ZUVsZW1lbnQoeCksbj1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKHgpWzBdLGguc3JjPXYsaC5hc3luYz0hMSxkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoImdvb2dsZU1hcHNMb2FkZWQiLGc9Pntmb3IoZz0wO2c8Yi5jYWxsYmFja3MubGVuZ3RoO2crKyliLmNhbGxiYWNrc1tnXS5jYWxsKCl9KSwKbi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShoLG4pKX0pKHdpbmRvdyxkb2N1bWVudCwic2NyaXB0IiwiL2pzL21hcHMuanMucGhwP2xhbmc9IitrLCJnb29nbGUiKX1jYXRjaChoKXtjb25zb2xlLmxvZyhoKX19fX0sYz17YXV0b0NvbXBsZXRlOntjb21wb25lbnRSZXN0cmljdGlvbnM6e2NvdW50cnk6ImNhIn19LHJhZGl1czoxRTV9LGQ9ZnVuY3Rpb24oZSxrKXt2YXIgaD10aGlzO2guZWw9ZTtoLiRlbD1hKGUpO2guc2V0dGluZ3M9YS5leHRlbmQoYyxrKTtoLmFkZHJlc3M9e2NpdHk6IiIsc3RyZWV0X251bWJlcjoiIixzdHJlZXQ6IiIsc3VibG9jYWxpdHk6IiIscHJvdmluY2U6IiIsY291bnRyeToiIixwb3N0YWw6IiJ9O2guJGVsLm9uZSgiZm9jdXMiLGZ1bmN0aW9uKCl7aC5pbml0KCl9KX07ZC5wcm90b3R5cGU9e19jaGVja0Zvckdvb2dsZU1hcHM6ZnVuY3Rpb24oZSl7InVuZGVmaW5lZCI9PT10eXBlb2YgZ29vZ2xlfHwidW5kZWZpbmVkIj09PXR5cGVvZiBnb29nbGUubWFwcz8KYi5sb2FkKGUpOiJmdW5jdGlvbiI9PT10eXBlb2YgZSYmZS5jYWxsKCl9LGdldEFkZHJlc3M6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hZGRyZXNzfSxfc2V0QWRkcmVzczpmdW5jdGlvbihlKXt2YXIgaz10aGlzO2EuZWFjaChlLGZ1bmN0aW9uKGgsbil7c3dpdGNoKCEwKXtjYXNlIC0xPGEuaW5BcnJheSgic3RyZWV0X251bWJlciIsbi50eXBlcyk6ay5hZGRyZXNzLnN0cmVldF9udW1iZXI9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgicm91dGUiLG4udHlwZXMpOmsuYWRkcmVzcy5zdHJlZXQ9bjticmVhaztjYXNlIC0xPGEuaW5BcnJheSgic3VibG9jYWxpdHkiLG4udHlwZXMpOmsuYWRkcmVzcy5zdWJsb2NhbGl0eT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJsb2NhbGl0eSIsbi50eXBlcyk6Y2FzZSAtMTxhLmluQXJyYXkoImFkbWluaXN0cmF0aXZlX2FyZWFfbGV2ZWxfMyIsbi50eXBlcyk6IiI9PWsuYWRkcmVzcy5jaXR5JiYoay5hZGRyZXNzLmNpdHk9bik7YnJlYWs7CmNhc2UgLTE8YS5pbkFycmF5KCJhZG1pbmlzdHJhdGl2ZV9hcmVhX2xldmVsXzEiLG4udHlwZXMpOmsuYWRkcmVzcy5wcm92aW5jZT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJjb3VudHJ5IixuLnR5cGVzKTprLmFkZHJlc3MuY291bnRyeT1uO2JyZWFrO2Nhc2UgLTE8YS5pbkFycmF5KCJwb3N0YWxfY29kZSIsbi50eXBlcyk6ay5hZGRyZXNzLnBvc3RhbD1ufX0pfSxfc2V0U2VhcmNoQm91bmRzOmZ1bmN0aW9uKGUsayxoKXtrPW5ldyBnb29nbGUubWFwcy5MYXRMbmcoayxoKTtrPW5ldyBnb29nbGUubWFwcy5DaXJjbGUoe2NlbnRlcjprLHJhZGl1czp0aGlzLnNldHRpbmdzLnJhZGl1c30pO2Uuc2V0Qm91bmRzKGsuZ2V0Qm91bmRzKCkpfSxpbml0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcztlLl9jaGVja0Zvckdvb2dsZU1hcHMoZnVuY3Rpb24oKXt2YXIgaz1uZXcgZ29vZ2xlLm1hcHMuR2VvY29kZXIsaD1uZXcgZ29vZ2xlLm1hcHMucGxhY2VzLkF1dG9jb21wbGV0ZShlLmVsLAplLnNldHRpbmdzLmF1dG9Db21wbGV0ZSk7ZS5zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgibGF0IikmJmUuc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoImxvbmciKT8iIiE9PWUuc2V0dGluZ3MubGF0JiYiIiE9PWUuc2V0dGluZ3MubG9uZyYmZS5fc2V0U2VhcmNoQm91bmRzKGgsZS5zZXR0aW5ncy5sYXQsZS5zZXR0aW5ncy5sb25nKTplLnNldHRpbmdzLmhhc093blByb3BlcnR5KCJhZGRyZXNzIik\/ZS5zZXR0aW5ncy5hZGRyZXNzJiZrLmdlb2NvZGUoe2FkZHJlc3M6ZS5zZXR0aW5ncy5hZGRyZXNzfSxmdW5jdGlvbihuLHgpe2UuX3NldFNlYXJjaEJvdW5kcyhoLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubGF0KCksblswXS5nZW9tZXRyeS5sb2NhdGlvbi5sbmcoKSl9KToidW5kZWZpbmVkIiE9PXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzJiYwPGZvb3Rlck1hcEFkZHJlc3MubGVuZ3RoJiZrLmdlb2NvZGUoe2FkZHJlc3M6Zm9vdGVyTWFwQWRkcmVzc1swXS5hZGRyZXNzfSxmdW5jdGlvbihuLAp4KXtlLl9zZXRTZWFyY2hCb3VuZHMoaCxuWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpLG5bMF0uZ2VvbWV0cnkubG9jYXRpb24ubG5nKCkpfSk7Z29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIoaCwicGxhY2VfY2hhbmdlZCIsZnVuY3Rpb24oKXt2YXIgbj1oLmdldFBsYWNlKCk7ZS5fc2V0QWRkcmVzcyhuLmFkZHJlc3NfY29tcG9uZW50cyk7ZS4kZWwudmFsKG4uZm9ybWF0dGVkX2FkZHJlc3MpO249bmV3IEV2ZW50KCJpbnB1dCIpO2UuZWwuZGlzcGF0Y2hFdmVudChuKTtlLiRlbC50cmlnZ2VyKCJmb2N1cyIpfSl9KX19O2EuZm4uZ29vZ2xlUGxhY2VzPWZ1bmN0aW9uKGUpe3ZhciBrPWFyZ3VtZW50cztpZih2b2lkIDA9PT1lfHwib2JqZWN0Ij09PXR5cGVvZiBlKXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXthLmRhdGEodGhpcywicGx1Z2luX3BsYWNlcyIpfHxhLmRhdGEodGhpcywicGx1Z2luX3BsYWNlcyIsbmV3IGQodGhpcyxlKSl9KTtpZigic3RyaW5nIj09PXR5cGVvZiBlJiYKIl8iIT09ZVswXSYmImluaXQiIT09ZSl7dmFyIGg9YS5kYXRhKHRoaXNbMF0sInBsdWdpbl9wbGFjZXMiKTtyZXR1cm4gaFtlXS5hcHBseShoLEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGssMSkpfX19KShqUXVlcnkpOwpmdW5jdGlvbiBzaG93QmFubmVyUG9wdXAoYSl7dHJ5eyQoYSkuaGFzQ2xhc3MoInRyYWRlaW5MaW5rIikmJigwPGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKS5pbmRleE9mKCJ0cmFkZWludmFsdWVzIil8fDA8YS5nZXRBdHRyaWJ1dGUoInRhcmdldFVSSSIpLmluZGV4T2YoImluc3RhbnRvZmZlci5hY2N1LXRyYWRlLmNvbSIpKT9zaG93VHJhZGVJblBvcHVwKGEuZ2V0QXR0cmlidXRlKCJ0YXJnZXRVUkkiKSk6MDwkKCIjYmFubmVyUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJiQoIiNiYW5uZXJQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9Y2F0Y2goYil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gZGlzcGxheSB0cmFkZWludmFsdWVzIGlmcmFtZS4gRXJyb3I6ICIrYi5tZXNzYWdlKX19CiQoZnVuY3Rpb24oKXswPCQoJ2lucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcz0idHJ1ZSJdJykubGVuZ3RoJiYkKCdpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXM9InRydWUiXScpLmdvb2dsZVBsYWNlcygpOyJ1bmRlZmluZWQiIT09dHlwZW9mICQuZm4uZGFya1Rvb2x0aXAmJigkKCIjc29jaWFsX21lZGlhX2ljb25zX2RpdiBhLCAuZ1JhdGluZy1pY29uIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6Im5vcnRoIixvcGFjaXR5OjF9KSwkKCIuc29jaWFsLW1lZGlhLWljb25zIFtkYXRhLXRvb2x0aXBdIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6InNvdXRoIixvcGFjaXR5OjF9KSwkKCIjbWl0c3ViaXNoaUNlcnRpZmllZEZvb3RlciBhLnNvY2lhbC1tZWRpYV9faWNvbiwgI2h5dW5kYWlDZXJ0aWZpZWRGb290ZXIgYS5zb2NpYWwtbWVkaWFfX2ljb24iKS5kYXJrVG9vbHRpcCh7Z3Jhdml0eToic291dGgiLG9wYWNpdHk6MX0pKTt2YXIgYT0kKCIuZ3JheWJveC51c2VkRGV0YWlsc1Bob25lLCAuZ3JheWJveC5uZXdEZXRhaWxzUGhvbmUiKTsKMD09PWEuY2hpbGRyZW4oKS5sZW5ndGgmJjA9PT1hLnRleHQoKS50cmltKCkubGVuZ3RoJiZhLmhpZGUoKX0pOyQoIiNmaW5hbmNlQWx0RGlzcGxheSAuc3RlcDEgYmlnLnRleHQgYmlnIikuYXR0cigiZGF0YS1kZXBhcnRtZW50IiwiRmluYW5jZSIpOyQoIi5jcmVkaXRfbV9jYWxsdXNfd3JhcHBlciBhIikuYXR0cigiZGF0YS1kZXBhcnRtZW50IiwiRmluYW5jZSIpOwokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpeyQoIiNkaXZDZXJ0aWZpY2F0aW9uLWNhcmd1cnVzLXdyYXBwZXIiKS5sZW5ndGgmJihlbGVtZW50VG9PYnNlcnZlPXdpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Q2VydGlmaWNhdGlvbi1jYXJndXJ1cy13cmFwcGVyIikuY2hpbGRyZW5bMF0sb2JzZXJ2ZXI9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oYSxiKXtiPSQoIiNkaXZDZXJ0aWZpY2F0aW9uLWNhcmd1cnVzLXdyYXBwZXIiKTtsZXQgYz0kKCJzcGFuW2RhdGEtY2ctZXJyb3JdIixiKTtjb25zb2xlLmxvZygiRDJDRyIsYixjLGEpO2MubGVuZ3RoJiZiLnJlbW92ZSgpfSksb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50VG9PYnNlcnZlLHtjaGFyYWN0ZXJEYXRhOiExLGNoaWxkTGlzdDohMCxhdHRyaWJ1dGVzOiExfSkpfSk7JChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXstMTx3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIvbmV3LyIpfHwkKCIjbmV3LXZkcC1zcGVjLWJyb2NodXJlIikuaGlkZSgpfSk7CiQoZnVuY3Rpb24oKXskKCIjRm9vdGVyX0ZJTkFOQ0UgPiBhLCBhI0ZpbmFuY2VBY3Rpb25Cb3gsIGEjRmluYW5jZUFjdGlvbkJveExpbmsiKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbigpe3ZhciBhPSQodGhpcyksYj0kKCJodG1sIikuYXR0cigibGFuZyIpO2lmKDA8JCgiI0RFQUxFUlBBQ09ERSIpLmxlbmd0aCl7dmFyIGM9JCgiI0RFQUxFUlBBQ09ERSIpLnZhbCgpLGQ9JCgiI0RFQUxFUkJSQU5EX1BSSU1BUlkiKS52YWwoKS50b0xvd2VyQ2FzZSgpO2lmKCJmb3JkX2xpbmNvbG5fZXh0ZXJuYWwiPT0kKCIjRklOQU5DRUZPUk1UWVBFIikudmFsKCkmJigiZm9yZCI9PWR8fCJsaW5jb2xuIj09ZCkmJiIiIT1jKXt2YXIgZT0oImVuIj09Yj8iaHR0cHM6Ly93d3cuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSI6Imh0dHBzOi8vZnIuZm9yZC5jYS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENGJmRlYWxlcklkPSIpKwpjO2I9KCJlbiI9PWI\/Imh0dHBzOi8vd3d3LmxpbmNvbG5jYW5hZGEuY29tL2ZpbmFuY2UvYXBwbHkvMT9Tb3VyY2VPZkRhdGE9Q0FEQ0wmZGVhbGVySWQ9IjoiaHR0cHM6Ly9mci5saW5jb2xuY2FuYWRhLmNvbS9maW5hbmNlL2FwcGx5LzE\/U291cmNlT2ZEYXRhPUNBRENMJmRlYWxlcklkPSIpK2M7YS5vZmYoImNsaWNrIik7YS5hdHRyKCJocmVmIiwiZm9yZCI9PWQ\/ZTpiKTthLmF0dHIoInRhcmdldCIsIl9ibGFuayIpfX19KX0pOwokKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7dHJ5e2lmKGdldFBhcmFtZXRlckJ5TmFtZSgicHJvbW8iKSl7dmFyIGE9MDxhY3RpdmF0ZWRQb3B1cERpdklELmxlbmd0aD9hY3RpdmF0ZWRQb3B1cERpdklEOiExO2lmKGEmJjA8YS5sZW5ndGgpe3ZhciBiPSQoIiMiK2EpLnBvcHVwaXplKHtwcmlvcml0eToxMDAsZW5kUG9wdXBRdWV1ZTohMH0pO3BvcHVwU3VwZXJ2aXNvci5yZWdpc3RlcihiKX19Im9iamVjdCI9PXR5cGVvZiBwb3B1cFN1cGVydmlzb3ImJnNldFRpbWVvdXQocG9wdXBTdXBlcnZpc29yLnNob3csNTAwKX1jYXRjaChjKXtjb25zb2xlLmxvZyhjKX19KTsKJChmdW5jdGlvbigpeyQoIi5uYXYgYSIpLm9uKCJjbGljayIsZnVuY3Rpb24oYSl7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50JiYoKGE9JCh0aGlzKS5hdHRyKCJocmVmIikpJiYhUmVnRXhwKCJqYXZhc2NyaXB0OiIsImdpIikudGVzdChhKSYmYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChhLCJNRU5VX2NsaWNrZWRfVVJMIiksKGE9Ii8iPT1hPyJIb21lIjokKHRoaXMpLnRleHQoKSkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYSwiTUVOVV9jbGlja2VkX0lORk8iKSl9KX0pOwp2YXIgRDJDVXRpbHM9e0xhbmc6e2lzRU46ZnVuY3Rpb24oKXtyZXR1cm4hKCJmdW5jdGlvbiI9PT10eXBlb2YgJCYmJCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKSl9LGdldFNob3J0TGFuZzpmdW5jdGlvbihhKXtyZXR1cm4gRDJDVXRpbHMuTGFuZy5pc0VOKCk\/YT8iRU4iOiJlbiI6YT8iRlIiOiJmciJ9fSxGb3JtYXQ6e3RvTnVtYmVyOmZ1bmN0aW9uKGEpe2E9YS50b1N0cmluZygpLnNwbGl0KCIuIik7Zm9yKHZhciBiPS8oXGQrKShcZHszfSkvO2IudGVzdChhWzBdKTspYVswXT1hWzBdLnJlcGxhY2UoYiwiJDEsJDIiKTtyZXR1cm4gYVswXX0sdG9QcmljZTpmdW5jdGlvbihhLGIpe3JldHVybiBiPyhiPUQyQ1V0aWxzLkxhbmcuaXNFTigpPyIiOiIgJCIsYCR7RDJDVXRpbHMuTGFuZy5pc0VOKCk\/IiQiOiIifSR7RDJDVXRpbHMuRm9ybWF0LnRvTnVtYmVyKGEpfSR7Yn1gKTpgPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+JHtEMkNVdGlscy5Gb3JtYXQudG9OdW1iZXIoYSl9PC9zcGFuPmB9fSwKTnVtYmVyOntyb3VuZERvd246ZnVuY3Rpb24oYSl7dmFyIGI9Mj09PWFyZ3VtZW50cy5sZW5ndGg\/cGFyc2VJbnQoYXJndW1lbnRzWzFdKToxO3JldHVybiBNYXRoLmZsb29yKGEvYikqYn0scm91bmRVcDpmdW5jdGlvbihhKXt2YXIgYj0yPT09YXJndW1lbnRzLmxlbmd0aD9wYXJzZUludChhcmd1bWVudHNbMV0pOjE7cmV0dXJuIE1hdGguY2VpbChhL2IpKmJ9fSxBcnJheXM6e2ZpbmQ6ZnVuY3Rpb24oYSxiLGMpe3ZhciBkPWEubGVuZ3RoO2lmKDA8ZClmb3IodmFyIGU9MDtlPGQ7ZSsrKWlmKGFbZV1bYl09PWMpcmV0dXJuIGFbZV07cmV0dXJuLTF9fSxTdHJpbmc6e2NhcGl0YWxpemVGaXJzdExldHRlcjpmdW5jdGlvbihhKXtyZXR1cm4gU3RyaW5nKGEpLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK1N0cmluZyhhKS5zbGljZSgxKX19LE1vYmlsZTp7aXNNb2JpbGU6ZnVuY3Rpb24oKXtyZXR1cm4gMDwkKCIjaXNNb2JpbGUiKS5sZW5ndGh9fX07CmZ1bmN0aW9uIHNldHVwRmluYW5jaW5nTGluayhhLGIpezQ4NT09KCQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpKSYmYi5jbGVhcmFuY2UmJjA8YS5sZW5ndGgmJihiPSQoIiNNYWluTWVudV9mNDgyYmFhYi1hYWM0LWVkYTYtNmI1Mi0zID4gYSIpLDA9PWIubGVuZ3RoJiYoYj0kKCIuQ0xFQVJBTkNFIikucGFyZW50KCkuZmluZCgiLnN1Ym1lbnVJdGVtOmZpcnN0LWNoaWxkIikpLDA8Yi5sZW5ndGgmJihiPWIuYXR0cigiaHJlZiIpLCIiIT09YiYmYS5hdHRyKCJocmVmIixiKSkpfXZhciBvcGVuV2luZG93cz1bXSx3aW5kb3dPcGVuT0c9d2luZG93Lm9wZW47CndpbmRvdy5vcGVuPWZ1bmN0aW9uKCl7dmFyIGE9d2luZG93T3Blbk9HLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxiPXt3aW5kb3c6YSxhcmdzOmFyZ3VtZW50c307b3BlbldpbmRvd3MucHVzaChiKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBqUXVlcnkmJmpRdWVyeShkb2N1bWVudCkudHJpZ2dlcigid2luZG93Lm9wZW4iLGIpO3JldHVybiBhfTsKJChmdW5jdGlvbigpeyQoZG9jdW1lbnQpLm9uKCJ3aW5kb3cub3BlbiIsZnVuY3Rpb24oYSxiKXthPWIuYXJncztmb3IodmFyIGM9ITEsZD0wO2Q8YS5sZW5ndGg7ZCsrKWlmKC0xPGFbZF0uaW5kZXhPZigiY2FyZmF4Iil8fGFbZF0uaW5kZXhPZigiY2FycHJvb2YiKSl7Yz0hMDticmVha31pZihjKXthPXdpbmRvdy5zY3JlZW4uYXZhaWxIZWlnaHR8fHdpbmRvdy5pbm5lckhlaWdodHx8ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodHx8ZG9jdW1lbnQuYm9keS5jbGllbnRIZWlnaHQ7dHJ5e2Iud2luZG93LnJlc2l6ZVRvKGIud2luZG93Lm91dGVyV2lkdGgsTWF0aC5yb3VuZCguOTUqYSkpfWNhdGNoKGUpe319fSl9KTsKJChmdW5jdGlvbigpe3ZhciBhPSQoIi51cF9tZW51IiksYj0kKCIucHJvbW90aW9uU2lkZVZCdXR0b24iKSxjPSQoJyNzbGlkZWl0ID4gbGFiZWxbZm9yPSJvcGVuLWl0ZW0iXTpub3QoLnRleHQtdXMtYnRuKScpO2lmKGEubGVuZ3RoJiZiLmxlbmd0aCl7dmFyIGQ9ITEsZT1mdW5jdGlvbigpe3ZhciBrPSQod2luZG93KS5zY3JvbGxUb3AoKSxoPSQod2luZG93KS5oZWlnaHQoKTtrPWEub2Zmc2V0KCkudG9wK2Eub3V0ZXJIZWlnaHQoKSsxMDAtaztoPU1hdGgubWF4KGgvMixrKTtiLnBhcmVudCgpLmhhc0NsYXNzKCJzcGVjaWFsU2NoZWR1bGVDb250ZW50Iil8fCJzcGVjaWFsU2NoZWR1bGVDb250ZW50Ij09Yi5wYXJlbnQoKS5hdHRyKCJpZCIpfHxiLmNzcyh7cG9zaXRpb246ImZpeGVkIix0b3A6aCsicHgiLHRyYW5zZm9ybToidHJhbnNsYXRlWSgtNTAlKSIsdHJhbnNpdGlvbjoibm9uZSJ9KTtjLmxlbmd0aCYmKGg9YlswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5ib3R0b20sCmMuY3NzKHtwb3NpdGlvbjoiZml4ZWQiLHRvcDpoKzUrInB4In0pKTtkPSExfTskKHdpbmRvdykub24oInNjcm9sbCByZXNpemUiLGZ1bmN0aW9uKCl7ZHx8KHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSksZD0hMCl9KTtzZXRUaW1lb3V0KGUsMTAwKX19KTtmdW5jdGlvbiByZXBsYWNlVXNlZFZlaGljbGVNb2RlbERpc3BsYXkoYSl7aWYoInN0cmluZyI9PT10eXBlb2YgYXx8YSBpbnN0YW5jZW9mIFN0cmluZykiZnVuY3Rpb24iPT09dHlwZW9mICQmJiQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIil8fC0xIT09YS5pbmRleE9mKCJIeWJyaWRlIikmJihhPWEucmVwbGFjZSgiSHlicmlkZSIsIkh5YnJpZCIpKTtyZXR1cm4gYX0KJChmdW5jdGlvbigpe2lmKCQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5sZW5ndGgpe3ZhciBhPSQoIkJPRFkiKS5oYXNDbGFzcygiRlJFTkNIIik\/ImZyIjoiZW4iLGI9JCgiQk9EWSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iUsOpc2VydmV6LWxlIGF2ZWMgUGF5UGFsICEiOiJSZXNlcnZlIGl0ICB3aXRoIFBheVBhbCAhIjskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuZmluZCgnaW5wdXRbdHlwZT0iaW1hZ2UiXVtuYW1lPSJzdWJtaXQiXScpLmF0dHIoInNyYyIsIi9pbWFnZXMvY29udGludWVfd2l0aF9wYXlwYWxfIithKyIucG5nIik7JCgiLnBheXBhbF9idXR0b25faHRtbCIpLmZpbmQoImZvcm0iKS5hdHRyKCJ0YXJnZXQiLCJwYXlwYWxJZnJhbWUiKTskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuZmluZCgidGFibGUgdHI6Zmlyc3QgdGQiKS5jb250ZW50cygpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiAzPT10aGlzLm5vZGVUeXBlfSkuZmlyc3QoKS5yZXBsYWNlV2l0aChiKTskKCIucGF5cGFsX2J1dHRvbl9odG1sIGZvcm0iKS5maW5kKCdbbmFtZT0iaXRlbV9uYW1lIl0nKS5yZW1vdmUoKTsKJCgiLnBheXBhbF9idXR0b25faHRtbCBmb3JtIikuZmluZCgnW25hbWU9Iml0ZW1fbnVtYmVyIl0nKS5yZW1vdmUoKTthPSc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpdGVtX25hbWUiIHZhbHVlPSInKyQoIiNwaG9uZW1ha2UiKS52YWwoKSsiICIrJCgiI3Bob25lbW9kZWwiKS52YWwoKSsiICIrJCgiI3Bob25lbXllYXIiKS52YWwoKSsiIFN0b2NrKCMiKyQoIiNwaG9uZXN0b2NrbnVtYmVyIikudmFsKCkrJykiPic7JCgiLnBheXBhbF9idXR0b25faHRtbCBmb3JtIikuYXBwZW5kKGEpOyQoIi5wYXlwYWxfYnV0dG9uX2h0bWwiKS5maW5kKCdpbnB1dFt0eXBlPSJpbWFnZSJdW25hbWU9InN1Ym1pdCJdJykub24oImNsaWNrIixmdW5jdGlvbigpe2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJDbGlxdWVzIFBheVBhbCIsIk9jY2FzaW9uIiwkKCIjaGlkZGVuRGVhbGVyTmFtZSIpLnZhbCgpKyItIiskKCIjcGhvbmVtYWtlIikudmFsKCkrIi0iKyQoIiNwaG9uZW1vZGVsIikudmFsKCkrCiItIiskKCIjcGhvbmVteWVhciIpLnZhbCgpKyItIiskKCIjcGhvbmVzdG9ja251bWJlciIpLnZhbCgpLDEpfSk7JCgiI3BheXBhbFBvcHVwIikuZGV0YWNoKCkuYXBwZW5kVG8oImJvZHkiKTskKCcucGF5cGFsX2J1dHRvbl9odG1sIGlucHV0W25hbWU9InN1Ym1pdCJdJykub24oImNsaWNrIixmdW5jdGlvbigpeyQoIiNwYXlwYWxQb3B1cCIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9KTskKCIucGF5cGFsX2J1dHRvbl9odG1sIikuc2hvdygpfSQoIiN0ZXN0RHJpdmVUeXBlIikubGVuZ3RoJiYoIlZpcnR1YWwiPT0kKCIjdGVzdERyaXZlVHlwZSIpLnZhbCgpfHwiVmlydHVlbCI9PSQoIiN0ZXN0RHJpdmVUeXBlIikudmFsKCkpJiYkKCIucHJlZmVyZWRWaXJ0dWFsVG9vbCIpLnNob3coKX0pOwpmdW5jdGlvbiBwcmljZVJlcXVlc3RDb21tZW50VGV4dCgpe3ZhciBhPSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKSxiPSQoIiNpc21vYmlsZSIpLGM9JCgiI3F1ZXN0aW9uc0NvbW1lbnRzIik7YT0iRU5HTElTSCI9PWEudmFsKCk\/IkhpLCBJJ2QgbGlrZSB0byBnZXQgeW91ciBiZXN0IHByaWNlIG9uIGEgMCAgIjoiQm9uam91ciwgaidhaW1lcmFpcyBhdm9pciB2b3RyZSBtZWlsbGV1cnMgcHJpeCBwb3VyIHVuICAgMCI7MDxiLmxlbmd0aCYmIjEiPT1iLnZhbCgpJiYwPGMubGVuZ3RoJiZjLnZhbCgpPT1hJiZjLnZhbCgiIil9JChmdW5jdGlvbigpe3ByaWNlUmVxdWVzdENvbW1lbnRUZXh0KCl9KTsKJChmdW5jdGlvbigpe3ZhciBhPSQoIiNmb290ZXIgLmljb24tdGV4dCBzcGFuW2l0ZW1wcm9wPSd0ZWxlcGhvbmUnXSBhLnBob25lLWxpbmsiKSxiPSQoIiNmb290ZXIgLmljb24tdGV4dCAuZmEtcGhvbmUiKTswPGEubGVuZ3RoJiYwPGIubGVuZ3RoJiYiIj09YS5odG1sKCkudHJpbSgpJiZiLmhpZGUoKX0pOwpmdW5jdGlvbiBwYWdlVmlld0NvdW50R29vZ2xlRXZlbnQoKXt2YXIgYT13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUsYj0wLGM9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZDJjX1ZEUE1WIik7bnVsbCE9Yz8oYz1KU09OLnBhcnNlKGMpLGI9bnVsbCE9Y1thXT9jW2FdOjAsY1thXT1wYXJzZUludChiKSsxKTooYz17fSxjW2FdPTEpO2E9IjEiPT0kKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCk\/Ik5FVyI6JCgiI2RlZmF1bHREZXBhcnRtZW50IikudmFsKCk7MD09Yj9nYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiVkRQIG11bHRpcGxlIHZpZXdzIixhLCIxeCIsMSk6MT09Yj9nYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiVkRQIG11bHRpcGxlIHZpZXdzIixhLCIyeCIsMSk6Z2FUcmFjaygiYy5fdHJhY2tFdmVudCIsIlZEUCBtdWx0aXBsZSB2aWV3cyIsYSwiM3grIiwxKTtzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJkMmNfVkRQTVYiLEpTT04uc3RyaW5naWZ5KGMpKX0KJC5mbi5pc0luVmlld3BvcnQ9ZnVuY3Rpb24oKXt2YXIgYT0kKHRoaXMpLm9mZnNldCgpLnRvcCxiPWErJCh0aGlzKS5vdXRlckhlaWdodCgpLGM9JCh3aW5kb3cpLnNjcm9sbFRvcCgpLGQ9YyskKHdpbmRvdykuaGVpZ2h0KCk7cmV0dXJuIGI+YyYmYTxkfTskLmZuLmlzQWJvdmVWaWV3cG9ydD1mdW5jdGlvbihhKXthPWF8fDA7dmFyIGI9JCh0aGlzKS5vZmZzZXQoKS50b3ArJCh0aGlzKS5vdXRlckhlaWdodCgpLGM9JCh3aW5kb3cpLnNjcm9sbFRvcCgpO3JldHVybiBiPmMrYX07ZnVuY3Rpb24gc2V0UG9wdXBPcGVuT25DbGljaygpeyQoIltkYXRhLXBvcHVwaWRdIikuZWFjaChmdW5jdGlvbigpe3ZhciBhPSQodGhpcykuYXR0cigiZGF0YS1wb3B1cGlkIik7JCh0aGlzKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCk7JCgiIyIrYSkucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX0pfSl9CmZ1bmN0aW9uIGFkZERlYWxlckluc2lkZVNjcmlwdCgpe2lmKCQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikubGVuZ3RoKXt2YXIgYT0kKCIuZGVhbGVyLWluc2lkZS1jdGEtYWN0aW9uLWJveCIpLmF0dHIoImRhdGEtaWREZWFsZXIiKSxiPSQoIi5kZWFsZXItaW5zaWRlLWN0YS1hY3Rpb24tYm94IikuYXR0cigiZGF0YS1sYW5nIiksYz0kKCIuZGVhbGVyLWluc2lkZS1jdGEtYWN0aW9uLWJveCIpLmF0dHIoImRhdGEtYnV0dG9uLXR5cGUiKSxkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2Quc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9qYXZhc2NyaXB0Iik7ZC5zZXRBdHRyaWJ1dGUoInNyYyIsImh0dHBzOi8vZGVhbGVyaW5zaWRlYXBwLmNvbS93aWRnZXRzL2RlYWxlcl9pbnNpZGVfY2FsbC5qcz9kZWFsZXJJZD0iK2ErIiZsYW5nPSIrYisiJmJ1dHRvblR5cGU9IitjKTtkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaGVhZCIpWzBdLmFwcGVuZENoaWxkKGQpfX0KJChmdW5jdGlvbigpe3NldFBvcHVwT3Blbk9uQ2xpY2soKTthZGREZWFsZXJJbnNpZGVTY3JpcHQoKX0pO2Z1bmN0aW9uIG1vdG9pbnNpZ2h0U2hvcEdvb2dsZU9wdGltaXplKCl7JCgiI2pzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyLWlucHV0IikubGVuZ3RoJiYkKCIuanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJiQoIi5qcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLmF0dHIoImRhdGEtbW90b2luc2lnaHRzaG9waWZyYW1ldXJsIiwkKCIjanMtbW90b2luc2lnaHRTaG9wUG9wdXBDb250YWluZXItaW5wdXQiKS52YWwoKSl9ZnVuY3Rpb24gaHRtbFRvTm9kZShhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtiLmlubmVySFRNTD1hLnRyaW0oKTtyZXR1cm4gYi5maXJzdEVsZW1lbnRDaGlsZH0KZnVuY3Rpb24gaHRtbFRvRG9jdW1lbnRGcmFnKGEpe3JldHVybiBkb2N1bWVudC5jcmVhdGVSYW5nZSgpLmNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChhKX1mdW5jdGlvbiBodG1sVG9FbGVtZW50cyhhKXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZW1wbGF0ZSIpO2IuaW5uZXJIVE1MPWE7cmV0dXJuIGIuY29udGVudC5jaGlsZE5vZGVzfQpjb25zdCB2aWV3UG9ydE9ic2VydmVyPWZ1bmN0aW9uKGEpe2xldCBiPSExLGM9ITEsZD01MDtjb25zdCBlPWs9PntrPWtbMF07bGV0IGg9LjAxPj1rLmludGVyc2VjdGlvblJhdGlvJiZrLmJvdW5kaW5nQ2xpZW50UmVjdC50b3A8ZDtjLmNsYXNzTGlzdC50b2dnbGUoInRvcC1maXhlZCIsaCk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLnNtc0N0YUJ0biIpLmZvckVhY2gobj0+bi5oaWRkZW49IWgpO251bGwhPT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9hc3QtY29udGFpbmVyIikmJihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9hc3QtY29udGFpbmVyIikuaGlkZGVuPSFoKX07cmV0dXJue29ic2VydmU6KCk9PntpZihhKXtkKz1hLm9mZnNldEhlaWdodCsxNjt2YXIgaz1hLmNsb3Nlc3QoIi5vYnNlcnZlZC13cmFwcGVyIil8fCExO2lmKCFrKXtsZXQgaD1odG1sVG9Ob2RlKCc8ZGl2IGNsYXNzPSJmaXhlZC13cmFwcGVyIj48L2Rpdj4nKTtrPWh0bWxUb05vZGUoJzxkaXYgY2xhc3M9Im9ic2VydmVkLXdyYXBwZXIiPjwvZGl2PicpOwphLmFmdGVyKGspO2suYXBwZW5kQ2hpbGQoaCk7aC5hcHBlbmRDaGlsZChhKTtrLnN0eWxlLmhlaWdodD1gJHtoLm9mZnNldEhlaWdodH1weGB9Yj1rO2M9Yi5xdWVyeVNlbGVjdG9yKCIuZml4ZWQtd3JhcHBlciIpOyhuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIoZSx7cm9vdE1hcmdpbjpgLSR7ZH1weCAwcHggMHB4IDBweGAsdGhyZXNob2xkOlswLC4wMV19KSkub2JzZXJ2ZShiKX19fX07CmZ1bmN0aW9uIGQyY0Zvb3RlckRlbGV0ZUFsbENvb2tpZXMoYSl7bG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oImQyZmF2RGF0YSIpO2xvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmb3JtRmlsbERhdGEiKTtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiKTtsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiKTt2YXIgYj13aW5kb3cubG9jYXRpb24uaG9zdG5hbWUsYz1iO2I9Yi5yZXBsYWNlKCJ3d3cuIiwiIik7dmFyIGQ9Yj1iLnJlcGxhY2UoIm0uIiwiIik7Yi5pbmNsdWRlcygiZDJjbWVkaWEuY2EiKSYmKGI9ImQyY21lZGlhLmNhIik7Zm9yKHZhciBlPWRvY3VtZW50LmNvb2tpZS5zcGxpdCgiOyIpLGs9MDtrPGUubGVuZ3RoO2srKyl7dmFyIGg9ZVtrXSxuPWguaW5kZXhPZigiPSIpO2g9LTE8bj9oLnN1YnN0cigwLG4pOmg7ImQyY19jb29raWVfY29uc2VudCIhPWgudHJpbSgpJiYiT3B0YW5vbkFsZXJ0Qm94Q2xvc2VkIiE9CmgudHJpbSgpJiYiT3B0YW5vbkNvbnNlbnQiIT1oLnRyaW0oKSYmKGg9aC50cmltKCksZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0uIitiKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0iK2IrIjtleHBpcmVzPVRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIixkb2N1bWVudC5jb29raWU9aCsiPTtQYXRoPS87ZG9tYWluPSIrYysiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49LiIrZCsiO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49IitkKyI7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2RvbWFpbj0uZDJjbWVkaWEuY2E7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsCmRvY3VtZW50LmNvb2tpZT1oKyI9O1BhdGg9Lztkb21haW49ZDJjbWVkaWEuY2E7ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07ZXhwaXJlcz1UaHUsIDAxIEphbiAxOTcwIDAwOjAwOjAwIEdNVCIsZG9jdW1lbnQuY29va2llPWgrIj07UGF0aD0vO2V4cGlyZXM9VGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMCBHTVQiLGNvbnNvbGUubG9nKCJEMkRDIixoLGIpLGs9PXBhcnNlRmxvYXQoZS5sZW5ndGgpLTEmJigidW5kZWZpbmVkIj09PXR5cGVvZiBhJiYkKCIjZDJjRm9vdGVyQ29va2llRGVsZXRlIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKSxzZXRUaW1lb3V0KGQyY0Zvb3RlckRlbGV0ZUFsbENvb2tpZXNSZWZyZXNoLDJFMykpKX1yZXR1cm4hMH0KZnVuY3Rpb24gZDJjRm9vdGVyRGVsZXRlQWxsQ29va2llc1JlZnJlc2goKXt3aW5kb3cudG9wPT09d2luZG93LnNlbGYmJmxvY2F0aW9uLnJlbG9hZCgpfQp3aW5kb3cuZ29vZ2xlUmVjYXB0Y2hhPWZ1bmN0aW9uKCl7dmFyIGE9e3BvbGljeVNpdGVLZXk6IjZMY3gyOFFzQUFBQUFIcGJUYndTTmNRZm1oM2o5cFkwenRGMW9CVVIiLGNoZWNrYm94U2l0ZUtleTpqc19kMmNfZ2V0X3ZhbCgiSVNWTSIpPyI2TGRBWk1Zc0FBQUFBRE4wck8zeVozNG9zTEJ1TTVHSkdXWUJfT2c5IjoiNkxlS2VjWXNBQUFBQUEwWWE3SFVNZUQxNzdkNl9Qc2JjbWowOVZuRiIsZGVmYXVsdEFjdGlvbjoibGVhZF9zdWJtaXQiLGxvYWRlZDohMSxjaGVja2JveGVzOnt9LGFjdGl2ZUZvcm1JZDpudWxsLGlzUmVhZHk6ZnVuY3Rpb24oKXtyZXR1cm4gYS5sb2FkZWQmJndpbmRvdy5ncmVjYXB0Y2hhJiZ3aW5kb3cuZ3JlY2FwdGNoYS5lbnRlcnByaXNlfSxpbml0OmZ1bmN0aW9uKCl7aWYoIWEubG9hZGVkKXRyeXt2YXIgYj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtiLnNyYz0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9yZWNhcHRjaGEvZW50ZXJwcmlzZS5qcz9yZW5kZXI9IisKYS5wb2xpY3lTaXRlS2V5O2IuYXN5bmM9ITA7Yi5kZWZlcj0hMDtiLm9ubG9hZD1mdW5jdGlvbigpe2EubG9hZGVkPSEwO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJncmVjYXB0Y2hhLmQyY2xvYWRlZCIpKX07dmFyIGM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdO2MucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoYixjKX1jYXRjaChkKXtjb25zb2xlLmxvZyhkKX19LHVzZUNoZWNrYm94OmZ1bmN0aW9uKGIsYyl7dmFyIGQ9e3dpZGdldElkOi0xLHRva2VuOiIiLGFjdGlvbjpjfHxhLmRlZmF1bHRBY3Rpb259O2EuY2hlY2tib3hlc1tiXT1kO2EubG9hZGVkfHxhLmluaXQoKTtjPWZ1bmN0aW9uKCl7aWYoISgtMTxkLndpZGdldElkKSlpZihkb2N1bWVudC5nZXRFbGVtZW50QnlJZChiKSl0cnl7Z3JlY2FwdGNoYS5lbnRlcnByaXNlLnJlYWR5KGZ1bmN0aW9uKCl7ZC53aWRnZXRJZD1ncmVjYXB0Y2hhLmVudGVycHJpc2UucmVuZGVyKGIsCntzaXRla2V5OmEuY2hlY2tib3hTaXRlS2V5LGFjdGlvbjpkLmFjdGlvbixjYWxsYmFjazpmdW5jdGlvbihlKXtkLnRva2VuPWV9LCJleHBpcmVkLWNhbGxiYWNrIjpmdW5jdGlvbigpe2QudG9rZW49IiJ9LCJlcnJvci1jYWxsYmFjayI6ZnVuY3Rpb24oKXtkLnRva2VuPSIifX0pfSl9Y2F0Y2goZSl7Y29uc29sZS5sb2coZSl9ZWxzZSBjb25zb2xlLmxvZygiR1JDIGNoZWNrYm94IGNvbnRhaW5lciBub3QgZm91bmQ6IixiKX07YS5pc1JlYWR5KCk\/YygpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdyZWNhcHRjaGEuZDJjbG9hZGVkIixjLHtvbmNlOiEwfSl9LHJlc2V0Q2hlY2tib3g6ZnVuY3Rpb24oYil7KGI\/W2JdOk9iamVjdC5rZXlzKGEuY2hlY2tib3hlcykpLmZvckVhY2goZnVuY3Rpb24oYyl7aWYoYz1hLmNoZWNrYm94ZXNbY10pe2lmKC0xPGMud2lkZ2V0SWQmJmEuaXNSZWFkeSgpKXRyeXtncmVjYXB0Y2hhLmVudGVycHJpc2UucmVzZXQoYy53aWRnZXRJZCl9Y2F0Y2goZCl7Y29uc29sZS5sb2coZCl9Yy50b2tlbj0KIiJ9fSl9LGlzQ2hlY2tib3hTb2x2ZWQ6ZnVuY3Rpb24oYil7Yj1hLmNoZWNrYm94ZXNbYl07cmV0dXJuISghYnx8IWIudG9rZW4pfSxjdXJyZW50Q29udGV4dDpmdW5jdGlvbigpe3ZhciBiPWEuYWN0aXZlRm9ybUlkO3JldHVybihiPWI\/YS5jaGVja2JveGVzW2JdOm51bGwpP3ttb2RlOiJjaGVja2JveCIsYWN0aW9uOmIuYWN0aW9uLHRva2VuOmIudG9rZW59Onttb2RlOiJwb2xpY3kiLGFjdGlvbjphLmRlZmF1bHRBY3Rpb24sdG9rZW46IiJ9fSxnZXRSZXNwb25zZTpmdW5jdGlvbihiKXt2YXIgYz0kLkRlZmVycmVkKCksZD1hLmN1cnJlbnRDb250ZXh0KCk7aWYoImNoZWNrYm94Ij09PWQubW9kZSlyZXR1cm4gYy5yZXNvbHZlKGQudG9rZW58fCIiKS5wcm9taXNlKCk7aWYoIWEuaXNSZWFkeSgpKXJldHVybiBjLnJlc29sdmUoIiIpLnByb21pc2UoKTt2YXIgZT1ifHxkLmFjdGlvbjt0cnl7Z3JlY2FwdGNoYS5lbnRlcnByaXNlLnJlYWR5KGZ1bmN0aW9uKCl7Z3JlY2FwdGNoYS5lbnRlcnByaXNlLmV4ZWN1dGUoYS5wb2xpY3lTaXRlS2V5LAp7YWN0aW9uOmV9KS50aGVuKGZ1bmN0aW9uKGspe2MucmVzb2x2ZShrKX0pLmNhdGNoKGZ1bmN0aW9uKGspe2NvbnNvbGUubG9nKCJHUkMgRmFpbCIsayk7Yy5yZXNvbHZlKCIiKX0pfSl9Y2F0Y2goayl7Y29uc29sZS5sb2coayksYy5yZXNvbHZlKCIiKX1yZXR1cm4gY319O3JldHVybiBhfSgpO3RyeXtkb2N1bWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgiZ29vZ2xlUmVjYXB0Y2hhLnJlYWR5IikpfWNhdGNoKGEpe31mdW5jdGlvbiBnZXRMdXh1cnlUYXhBbW91bnQoYSl7dmFyIGI9MDsxRTU8YSYmKGI9LjEqYSxhPS4yKihhLTFFNSksYj1iPGE\/YjphKTtyZXR1cm4gTWF0aC5yb3VuZChiKX0KdmFyIHdvcmRzPVtdLHBhcnQsd29yZEluZGV4PTAsb2Zmc2V0PTAsbGVuPTEsZm9yd2FyZHM9ITAsc2tpcF9jb3VudD0wLHNraXBfZGVsYXk9MTUsc3BlZWQ9NzAsd29yZGZsaWNrPWZ1bmN0aW9uKGEsYil7d29yZHM9YTtsZW49d29yZHMubGVuZ3RoO3NldEludGVydmFsKGZ1bmN0aW9uKCl7Zm9yd2FyZHM\/b2Zmc2V0Pj13b3Jkc1t3b3JkSW5kZXhdLmxlbmd0aCYmKCsrc2tpcF9jb3VudCxza2lwX2NvdW50PT1za2lwX2RlbGF5JiYoZm9yd2FyZHM9ITEsc2tpcF9jb3VudD0wKSk6MD09b2Zmc2V0JiYoZm9yd2FyZHM9ITAsd29yZEluZGV4Kyssb2Zmc2V0PTAsd29yZEluZGV4Pj1sZW4mJih3b3JkSW5kZXg9MCkpO3BhcnQ9d29yZHNbd29yZEluZGV4XS5zdWJzdHIoMCxvZmZzZXQpOzA9PXNraXBfY291bnQmJihmb3J3YXJkcz9vZmZzZXQrKzpvZmZzZXQtLSk7Yi50ZXh0KHBhcnQpfSxzcGVlZCl9OwpmdW5jdGlvbiBpc0luVmlld3BvcnQoYSxiKXtiPXZvaWQgMD09PWI\/e306YjthPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7bGV0IGM9aXNOdW1lcmljKGIudG9wKT9iLnRvcDowO2I9aXNOdW1lcmljKGIubGVmdCk\/Yi5sZWZ0OjA7cmV0dXJuIE1hdGguZmxvb3IoYS50b3ApPj1jJiZNYXRoLmZsb29yKGEubGVmdCk+PWImJk1hdGguZmxvb3IoYS5ib3R0b20pPD0od2luZG93LmlubmVySGVpZ2h0fHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0KSYmTWF0aC5mbG9vcihhLnJpZ2h0KTw9KHdpbmRvdy5pbm5lcldpZHRofHxkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGgpfWZ1bmN0aW9uIGlzTnVtZXJpYyhhKXtyZXR1cm4vXi0\/XGQrJC9nLnRlc3QoYSl9CmRvY1JlYWR5QXJyLnB1c2goKCk9Pntkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbcm9sZT0iYnV0dG9uIl0nKS5mb3JFYWNoKGE9PnthLmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGI9Pntjb25zdCBjPXZvaWQgMCE9PWIua2V5P2Iua2V5OmIua2V5Q29kZTtpZigiRW50ZXIiPT09Y3x8MTM9PT1jKWIucHJldmVudERlZmF1bHQoKSxhLmNsaWNrKCl9KX0pfSk7CigoKT0+e2xldCBhPWRvY3VtZW50LmNvb2tpZSxiPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoRG9jdW1lbnQucHJvdG90eXBlLCJjb29raWUiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRG9jdW1lbnQucHJvdG90eXBlLCJfY29va2llIixiKTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRG9jdW1lbnQucHJvdG90eXBlLCJjb29raWUiLHtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQoKXtyZXR1cm4gdGhpcy5fY29va2llfSxzZXQoYyl7dmFyIGQ9Yy50cmltKCkuc3BsaXQoIjsiKTtsZXQgZT17fTt2YXIgaz0wO2ZvcihoIG9mIGQpZD1oLnRyaW0oKS5zcGxpdCgiPSIpLDA9PWs\/KGUubmFtZT1kWzBdLGUudmFsdWU9ZFsxXXx8MCk6IiIhPWRbMF0mJihlW2RbMF1dPWRbMV18fDApLGsrKztrPWUubmFtZTt2YXIgaD1lLmV4cGlyZXN8fDA7ZD1lLnBhdGh8fCIvIjtsZXQgbj1lLmRvbWFpbnx8IiI7ZS52YWx1ZSYmIiIhPWUudmFsdWUmJm51bGwhPWUudmFsdWUmJgp3aW5kb3cuQ29va2llTG9nZ2VyLmxvZyhrLGUudmFsdWUsaCxkLG4pO2M9dGhpcy5fY29va2llPWM7aWYoYyE9PWEpdHJ5e3RoaXMuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNvb2tpZWNoYW5nZSIse2RldGFpbDp7b2xkVmFsdWU6YSxuZXdWYWx1ZTpjfX0pKX1maW5hbGx5e2E9Y319fSl9KSgpO2RvY1JlYWR5QXJyLnB1c2goKCk9Pnt2YXIgYT1udWxsO2lmKHdpbmRvdy5sb2NhdGlvbi5oYXNoKXt0cnl7YT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGRlY29kZVVSSSh3aW5kb3cubG9jYXRpb24uaGFzaCkpfWNhdGNoKGIpe3JldHVybn1hJiYoYT1hLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCt3aW5kb3cuc2Nyb2xsWSx3aW5kb3cuc2Nyb2xsVG8oe3RvcDphLTIwLGJlaGF2aW9yOiJzbW9vdGgifSkpfX0pOwooZnVuY3Rpb24oKXtmdW5jdGlvbiBhKGMpe2RlYnVnKHtjb2xsZWN0OmN9KTtjPWMubmV3VVJMP25ldyBVUkwoYy5uZXdVUkwpOndpbmRvdy5sb2NhdGlvbjsiIiE9PWMuaGFzaCYmYy5oYXNoLnN1YnN0cmluZygxKS5zcGxpdCgiJiIpLm1hcChmdW5jdGlvbihkLGUsayl7dHJ5e3ZhciBbaCxuXT1kLnNwbGl0KCI9Iik7c3dpdGNoKGgpe2Nhc2UgInV0bV9lIjp2YXIgeD1hdG9iKG4pLnNwbGl0KCI6OiIpLHY9bnVsbCE9Z2V0Q29va2llKCJ1dG1fY2FtcGFpZ24iKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBnZXRDb29raWUoInV0bV9jYW1wYWlnbiIpP2dldENvb2tpZSgidXRtX2NhbXBhaWduIik6eFsyXTt2JiZzZXRDb29raWUoInV0bV9jYW1wYWlnbiIsdiwxODApO3ZhciBmPW51bGwhPWdldENvb2tpZSgidXRtX3NvdXJjZSIpJiYidW5kZWZpbmVkIiE9dHlwZW9mIGdldENvb2tpZSgidXRtX3NvdXJjZSIpP2dldENvb2tpZSgidXRtX3NvdXJjZSIpOnhbM107ZiYmc2V0Q29va2llKCJ1dG1fc291cmNlIiwKZiwxODApO2JyZWFrO2Nhc2UgInV0bV9leCI6eD1hdG9iKG4pO3ZhciBnPW5ldyBVUkwoImh0dHBzOi8vIit3aW5kb3cubG9jYXRpb24uaG9zdCt4KTswPGcuc2VhcmNoUGFyYW1zLnNpemUmJmcuc2VhcmNoUGFyYW1zLmZvckVhY2goYil9cmV0dXJue2tleTpoLHZhbHVlOm59fWNhdGNoKG0pe2RlYnVnKG0pfX0pfWZ1bmN0aW9uIGIoYyxkKXt0cnl7c3dpdGNoKGQpe2Nhc2UgIkRpc3BsYXlTb3VyY2UiOmNhc2UgImdjbGlkIjpkZWJ1Zyh7a2V5OmQsY29va2llOmdldENvb2tpZShkKSx2YWx1ZTpjfSksbnVsbCE9Z2V0Q29va2llKGQpJiYiIiE9Z2V0Q29va2llKGQpfHxzZXRDb29raWUoZCxjLDE4MCl9fWNhdGNoKGUpe2RlYnVnKGUpfX13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsYSwhMSk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImhhc2hjaGFuZ2UiLGEsITEpfSkoKTswPj0kKCIjc2hhcmVPbkZhY2Vib29rIikubGVuZ3RoJiYkKCJmb290ZXIiKS5wcmVwZW5kKCc8ZGl2IGlkPSJzaGFyZU9uRmFjZWJvb2siIGRhdGEtZXhwbGFpbj0iaG9uZGEvYWN1cmEgY2VydCB1c2VzIGd0bSwgaXQgaGFzIGEgYmluZCB0aGF0IHRocm93cyBhbiBlcnJvciBpZiB0aGlzIGlkIGRvZXMgbm90IGV4aXN0LiBjb2RlIGlzIGZyb20gZ3RtIHNpZGUuIj48L2Rpdj4nKTsKKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gYSgpe2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mICQuY29va2llKXtsZXQgYzt2YXIgYj1udWxsIT0oYz0kLmNvb2tpZSgiVGVydGlhcnlTb3VyY2UiKSk\/YzoiIjsiIiE9PWImJigkKCcqW2hyZWYqPSIkRkRUZXJ0aWFyeVNvdXJjZSJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykuYXR0cigiaHJlZiIsJCh0aGlzKS5hdHRyKCJocmVmIikucmVwbGFjZSgiJEZEVGVydGlhcnlTb3VyY2UiLGIpKX0pLCQoJypbb25jbGljayo9IiRGRFRlcnRpYXJ5U291cmNlIl0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJvbmNsaWNrIiwkKHRoaXMpLmF0dHIoIm9uY2xpY2siKS5yZXBsYWNlKCIkRkRUZXJ0aWFyeVNvdXJjZSIsYikpfSksJCgnKlt2YWx1ZSo9IiRGRFRlcnRpYXJ5U291cmNlIl0nKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJ2YWx1ZSIsJCh0aGlzKS5hdHRyKCJ2YWx1ZSIpLnJlcGxhY2UoIiRGRFRlcnRpYXJ5U291cmNlIiwKYikpfSkpfX1hKCk7c2V0VGltZW91dChhLDFFMyk7c2V0VGltZW91dChhLDVFMyk7MDw9bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNYWMiKSYmKCQoIi5sYW5ndWFnZUJhciAuZ1JhdGluZy1pY29uI2dSYXRpbmcgLnJhdGluZyIpLmFkZENsYXNzKCJtYXJnaW4tYm90dG9tLS00cHgiKSwkKCIubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gYS5idG4gPiBzcGFuIikuYWRkQ2xhc3MoIm1hcmdpbi1ib3R0b20tLTRweCIpLCQoIi5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0IikuYWRkQ2xhc3MoIm1hcmdpbi1ib3R0b20tLTRweCIpLCQoIi5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbl90ZXh0IikuY3NzKCJ0b3AiLCI1MiUiKSl9KSgpOwpmdW5jdGlvbiBhZGROb1RyYW5zbGF0ZUVtYWlsRGVmKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2lkKj0iZW1haWxCb2R5RGVmIl0sIFtpZCo9ImVtYWlsU3ViamVjdERlZiJdLCBbY2xhc3MqPSJlbWFpbFN1YmplY3QiXSwgW2NsYXNzKj0iZW1haWxCb2R5Il0sIFtjbGFzcyo9ImxlYWRFbWFpbCJdLCBbY2xhc3MqPSJlbWFpbC1kZWZpbml0aW9uIl0nKS5mb3JFYWNoKGE9PnthLnNldEF0dHJpYnV0ZSgidHJhbnNsYXRlIiwibm8iKX0pfWFkZE5vVHJhbnNsYXRlRW1haWxEZWYoKTtmdW5jdGlvbiB2d3MoKXtkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoIi0tdndzIixgJHt3aW5kb3cuaW5uZXJXaWR0aC8xMDAtKHdpbmRvdy5pbm5lcldpZHRoLWRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCkvMTAwLzJ9cHhgKX12d3MoKTtsZXQgcm9fdndzPW5ldyBSZXNpemVPYnNlcnZlcigoKT0+e3Z3cygpfSk7cm9fdndzLm9ic2VydmUoZG9jdW1lbnQuYm9keSk7Ci8qKiAvbS9qcy9sYXp5c2l6ZXMubWluLmpzICoqLwovKiEgbGF6eXNpemVzIC0gdjQuMS41ICovCi8qISBtb2RpZmllZDogb2xpdmllckBkMmNtZWRpYS5jYSB0byBzdXBwb3J0IGRhdGEtaW1nc3JjIGJlY2F1c2Ugb2Ygb25lVHJ1c3QgYnJlYWtzIGxhenlsb2FkIG9uIGRhdGEtc3JjICovCiFmdW5jdGlvbihhLGIpe3ZhciBjPWIoYSxhLmRvY3VtZW50KTthLmxhenlTaXplcz1jLCJvYmplY3QiPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cyYmKG1vZHVsZS5leHBvcnRzPWMpfSh3aW5kb3csZnVuY3Rpb24oYSxiKXsidXNlIHN0cmljdCI7aWYoYi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXt2YXIgYyxkLGU9Yi5kb2N1bWVudEVsZW1lbnQsZj1hLkRhdGUsZz1hLkhUTUxQaWN0dXJlRWxlbWVudCxoPSJhZGRFdmVudExpc3RlbmVyIixpPSJnZXRBdHRyaWJ1dGUiLGo9YVtoXSxrPWEuc2V0VGltZW91dCxsPWEucmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxrLG09YS5yZXF1ZXN0SWRsZUNhbGxiYWNrLG49L15waWN0dXJlJC9pLG89WyJsb2FkIiwiZXJyb3IiLCJsYXp5aW5jbHVkZWQiLCJfbGF6eWxvYWRlZCJdLHA9e30scT1BcnJheS5wcm90b3R5cGUuZm9yRWFjaCxyPWZ1bmN0aW9uKGEsYil7cmV0dXJuIHBbYl18fChwW2JdPW5ldyBSZWdFeHAoIihcXHN8XikiK2IrIihcXHN8JCkiKSkscFtiXS50ZXN0KGFbaV0oImNsYXNzIil8fCIiKSYmcFtiXX0scz1mdW5jdGlvbihhLGIpe3IoYSxiKXx8YS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwoYVtpXSgiY2xhc3MiKXx8IiIpLnRyaW0oKSsiICIrYil9LHQ9ZnVuY3Rpb24oYSxiKXt2YXIgYzsoYz1yKGEsYikpJiZhLnNldEF0dHJpYnV0ZSgiY2xhc3MiLChhW2ldKCJjbGFzcyIpfHwiIikucmVwbGFjZShjLCIgIikpfSx1PWZ1bmN0aW9uKGEsYixjKXt2YXIgZD1jP2g6InJlbW92ZUV2ZW50TGlzdGVuZXIiO2MmJnUoYSxiKSxvLmZvckVhY2goZnVuY3Rpb24oYyl7YVtkXShjLGIpfSl9LHY9ZnVuY3Rpb24oYSxkLGUsZixnKXt2YXIgaD1iLmNyZWF0ZUV2ZW50KCJFdmVudCIpO3JldHVybiBlfHwoZT17fSksZS5pbnN0YW5jZT1jLGguaW5pdEV2ZW50KGQsIWYsIWcpLGguZGV0YWlsPWUsYS5kaXNwYXRjaEV2ZW50KGgpLGh9LHc9ZnVuY3Rpb24oYixjKXt2YXIgZTshZyYmKGU9YS5waWN0dXJlZmlsbHx8ZC5wZik\/KGMmJmMuc3JjJiYhYltpXSgic3Jjc2V0IikmJmIuc2V0QXR0cmlidXRlKCJzcmNzZXQiLGMuc3JjKSxlKHtyZWV2YWx1YXRlOiEwLGVsZW1lbnRzOltiXX0pKTpjJiZjLnNyYyYmKGIuc3JjPWMuc3JjKX0seD1mdW5jdGlvbihhLGIpe3JldHVybihnZXRDb21wdXRlZFN0eWxlKGEsbnVsbCl8fHt9KVtiXX0seT1mdW5jdGlvbihhLGIsYyl7Zm9yKGM9Y3x8YS5vZmZzZXRXaWR0aDtjPGQubWluU2l6ZSYmYiYmIWEuX2xhenlzaXplc1dpZHRoOyljPWIub2Zmc2V0V2lkdGgsYj1iLnBhcmVudE5vZGU7cmV0dXJuIGN9LHo9ZnVuY3Rpb24oKXt2YXIgYSxjLGQ9W10sZT1bXSxmPWQsZz1mdW5jdGlvbigpe3ZhciBiPWY7Zm9yKGY9ZC5sZW5ndGg\/ZTpkLGE9ITAsYz0hMTtiLmxlbmd0aDspYi5zaGlmdCgpKCk7YT0hMX0saD1mdW5jdGlvbihkLGUpe2EmJiFlP2QuYXBwbHkodGhpcyxhcmd1bWVudHMpOihmLnB1c2goZCksY3x8KGM9ITAsKGIuaGlkZGVuP2s6bCkoZykpKX07cmV0dXJuIGguX2xzRmx1c2g9ZyxofSgpLEE9ZnVuY3Rpb24oYSxiKXtyZXR1cm4gYj9mdW5jdGlvbigpe3ooYSl9OmZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPWFyZ3VtZW50czt6KGZ1bmN0aW9uKCl7YS5hcHBseShiLGMpfSl9fSxCPWZ1bmN0aW9uKGEpe3ZhciBiLGM9MCxlPWQudGhyb3R0bGVEZWxheSxnPWQucmljVGltZW91dCxoPWZ1bmN0aW9uKCl7Yj0hMSxjPWYubm93KCksYSgpfSxpPW0mJmc+NDk\/ZnVuY3Rpb24oKXttKGgse3RpbWVvdXQ6Z30pLGchPT1kLnJpY1RpbWVvdXQmJihnPWQucmljVGltZW91dCl9OkEoZnVuY3Rpb24oKXtrKGgpfSwhMCk7cmV0dXJuIGZ1bmN0aW9uKGEpe3ZhciBkOyhhPSEwPT09YSkmJihnPTMzKSxifHwoYj0hMCxkPWUtKGYubm93KCktYyksZDwwJiYoZD0wKSxhfHxkPDk\/aSgpOmsoaSxkKSl9fSxDPWZ1bmN0aW9uKGEpe3ZhciBiLGMsZD05OSxlPWZ1bmN0aW9uKCl7Yj1udWxsLGEoKX0sZz1mdW5jdGlvbigpe3ZhciBhPWYubm93KCktYzthPGQ\/ayhnLGQtYSk6KG18fGUpKGUpfTtyZXR1cm4gZnVuY3Rpb24oKXtjPWYubm93KCksYnx8KGI9ayhnLGQpKX19OyFmdW5jdGlvbigpe3ZhciBiLGM9e2xhenlDbGFzczoibGF6eWxvYWQiLGxvYWRlZENsYXNzOiJsYXp5bG9hZGVkIixsb2FkaW5nQ2xhc3M6Imxhenlsb2FkaW5nIixwcmVsb2FkQ2xhc3M6ImxhenlwcmVsb2FkIixlcnJvckNsYXNzOiJsYXp5ZXJyb3IiLGF1dG9zaXplc0NsYXNzOiJsYXp5YXV0b3NpemVzIixzcmNBdHRyOiJkYXRhLWltZ3NyYyIsc3Jjc2V0QXR0cjoiZGF0YS1zcmNzZXQiLHNpemVzQXR0cjoiZGF0YS1zaXplcyIsbWluU2l6ZTo0MCxjdXN0b21NZWRpYTp7fSxpbml0OiEwLGV4cEZhY3RvcjoxLjUsaEZhYzouOCxsb2FkTW9kZToyLGxvYWRIaWRkZW46ITAscmljVGltZW91dDowLHRocm90dGxlRGVsYXk6MTI1fTtkPWEubGF6eVNpemVzQ29uZmlnfHxhLmxhenlzaXplc0NvbmZpZ3x8e307Zm9yKGIgaW4gYyliIGluIGR8fChkW2JdPWNbYl0pO2EubGF6eVNpemVzQ29uZmlnPWQsayhmdW5jdGlvbigpe2QuaW5pdCYmRigpfSl9KCk7dmFyIEQ9ZnVuY3Rpb24oKXt2YXIgZyxsLG0sbyxwLHksRCxGLEcsSCxJLEosSyxMLE09L15pbWckL2ksTj0vXmlmcmFtZSQvaSxPPSJvbnNjcm9sbCJpbiBhJiYhLyhnbGV8aW5nKWJvdC8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxQPTAsUT0wLFI9MCxTPS0xLFQ9ZnVuY3Rpb24oYSl7Ui0tLGEmJmEudGFyZ2V0JiZ1KGEudGFyZ2V0LFQpLCghYXx8UjwwfHwhYS50YXJnZXQpJiYoUj0wKX0sVT1mdW5jdGlvbihhLGMpe3ZhciBkLGY9YSxnPSJoaWRkZW4iPT14KGIuYm9keSwidmlzaWJpbGl0eSIpfHwiaGlkZGVuIiE9eChhLnBhcmVudE5vZGUsInZpc2liaWxpdHkiKSYmImhpZGRlbiIhPXgoYSwidmlzaWJpbGl0eSIpO2ZvcihGLT1jLEkrPWMsRy09YyxIKz1jO2cmJihmPWYub2Zmc2V0UGFyZW50KSYmZiE9Yi5ib2R5JiZmIT1lOykoZz0oeChmLCJvcGFjaXR5Iil8fDEpPjApJiYidmlzaWJsZSIhPXgoZiwib3ZlcmZsb3ciKSYmKGQ9Zi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxnPUg+ZC5sZWZ0JiZHPGQucmlnaHQmJkk+ZC50b3AtMSYmRjxkLmJvdHRvbSsxKTtyZXR1cm4gZ30sVj1mdW5jdGlvbigpe3ZhciBhLGYsaCxqLGssbSxuLHAscSxyPWMuZWxlbWVudHM7aWYoKG89ZC5sb2FkTW9kZSkmJlI8OCYmKGE9ci5sZW5ndGgpKXtmPTAsUysrLG51bGw9PUsmJigiZXhwYW5kImluIGR8fChkLmV4cGFuZD1lLmNsaWVudEhlaWdodD41MDAmJmUuY2xpZW50V2lkdGg+NTAwPzUwMDozNzApLEo9ZC5leHBhbmQsSz1KKmQuZXhwRmFjdG9yKSxRPEsmJlI8MSYmUz4yJiZvPjImJiFiLmhpZGRlbj8oUT1LLFM9MCk6UT1vPjEmJlM+MSYmUjw2P0o6UDtmb3IoO2Y8YTtmKyspaWYocltmXSYmIXJbZl0uX2xhenlSYWNlKWlmKE8paWYoKHA9cltmXVtpXSgiZGF0YS1leHBhbmQiKSkmJihtPTEqcCl8fChtPVEpLHEhPT1tJiYoeT1pbm5lcldpZHRoK20qTCxEPWlubmVySGVpZ2h0K20sbj0tMSptLHE9bSksaD1yW2ZdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLChJPWguYm90dG9tKT49biYmKEY9aC50b3ApPD1EJiYoSD1oLnJpZ2h0KT49bipMJiYoRz1oLmxlZnQpPD15JiYoSXx8SHx8R3x8RikmJihkLmxvYWRIaWRkZW58fCJoaWRkZW4iIT14KHJbZl0sInZpc2liaWxpdHkiKSkmJihsJiZSPDMmJiFwJiYobzwzfHxTPDQpfHxVKHJbZl0sbSkpKXtpZihiYShyW2ZdKSxrPSEwLFI+OSlicmVha31lbHNlIWsmJmwmJiFqJiZSPDQmJlM8NCYmbz4yJiYoZ1swXXx8ZC5wcmVsb2FkQWZ0ZXJMb2FkKSYmKGdbMF18fCFwJiYoSXx8SHx8R3x8Rnx8ImF1dG8iIT1yW2ZdW2ldKGQuc2l6ZXNBdHRyKSkpJiYoaj1nWzBdfHxyW2ZdKTtlbHNlIGJhKHJbZl0pO2omJiFrJiZiYShqKX19LFc9QihWKSxYPWZ1bmN0aW9uKGEpe3MoYS50YXJnZXQsZC5sb2FkZWRDbGFzcyksdChhLnRhcmdldCxkLmxvYWRpbmdDbGFzcyksdShhLnRhcmdldCxaKSx2KGEudGFyZ2V0LCJsYXp5bG9hZGVkIil9LFk9QShYKSxaPWZ1bmN0aW9uKGEpe1koe3RhcmdldDphLnRhcmdldH0pfSwkPWZ1bmN0aW9uKGEsYil7dHJ5e2EuY29udGVudFdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKGIpfWNhdGNoKGMpe2Euc3JjPWJ9fSxfPWZ1bmN0aW9uKGEpe3ZhciBiLGM9YVtpXShkLnNyY3NldEF0dHIpOyhiPWQuY3VzdG9tTWVkaWFbYVtpXSgiZGF0YS1tZWRpYSIpfHxhW2ldKCJtZWRpYSIpXSkmJmEuc2V0QXR0cmlidXRlKCJtZWRpYSIsYiksYyYmYS5zZXRBdHRyaWJ1dGUoInNyY3NldCIsYyl9LGFhPUEoZnVuY3Rpb24oYSxiLGMsZSxmKXt2YXIgZyxoLGosbCxvLHA7KG89dihhLCJsYXp5YmVmb3JldW52ZWlsIixiKSkuZGVmYXVsdFByZXZlbnRlZHx8KGUmJihjP3MoYSxkLmF1dG9zaXplc0NsYXNzKTphLnNldEF0dHJpYnV0ZSgic2l6ZXMiLGUpKSxoPWFbaV0oZC5zcmNzZXRBdHRyKSxnPWFbaV0oZC5zcmNBdHRyKSxmJiYoaj1hLnBhcmVudE5vZGUsbD1qJiZuLnRlc3Qoai5ub2RlTmFtZXx8IiIpKSxwPWIuZmlyZXNMb2FkfHwic3JjImluIGEmJihofHxnfHxsKSxvPXt0YXJnZXQ6YX0scCYmKHUoYSxULCEwKSxjbGVhclRpbWVvdXQobSksbT1rKFQsMjUwMCkscyhhLGQubG9hZGluZ0NsYXNzKSx1KGEsWiwhMCkpLGwmJnEuY2FsbChqLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJzb3VyY2UiKSxfKSxoP2Euc2V0QXR0cmlidXRlKCJzcmNzZXQiLGgpOmcmJiFsJiYoTi50ZXN0KGEubm9kZU5hbWUpPyQoYSxnKTphLnNyYz1nKSxmJiYoaHx8bCkmJncoYSx7c3JjOmd9KSksYS5fbGF6eVJhY2UmJmRlbGV0ZSBhLl9sYXp5UmFjZSx0KGEsZC5sYXp5Q2xhc3MpLHooZnVuY3Rpb24oKXsoIXB8fGEuY29tcGxldGUmJmEubmF0dXJhbFdpZHRoPjEpJiYocD9UKG8pOlItLSxYKG8pKX0sITApfSksYmE9ZnVuY3Rpb24oYSl7dmFyIGIsYz1NLnRlc3QoYS5ub2RlTmFtZSksZT1jJiYoYVtpXShkLnNpemVzQXR0cil8fGFbaV0oInNpemVzIikpLGY9ImF1dG8iPT1lOyghZiYmbHx8IWN8fCFhW2ldKCJzcmMiKSYmIWEuc3Jjc2V0fHxhLmNvbXBsZXRlfHxyKGEsZC5lcnJvckNsYXNzKXx8IXIoYSxkLmxhenlDbGFzcykpJiYoYj12KGEsImxhenl1bnZlaWxyZWFkIikuZGV0YWlsLGYmJkUudXBkYXRlRWxlbShhLCEwLGEub2Zmc2V0V2lkdGgpLGEuX2xhenlSYWNlPSEwLFIrKyxhYShhLGIsZixlLGMpKX0sY2E9ZnVuY3Rpb24oKXtpZighbCl7aWYoZi5ub3coKS1wPDk5OSlyZXR1cm4gdm9pZCBrKGNhLDk5OSk7dmFyIGE9QyhmdW5jdGlvbigpe2QubG9hZE1vZGU9MyxXKCl9KTtsPSEwLGQubG9hZE1vZGU9MyxXKCksaigic2Nyb2xsIixmdW5jdGlvbigpezM9PWQubG9hZE1vZGUmJihkLmxvYWRNb2RlPTIpLGEoKX0sITApfX07cmV0dXJue186ZnVuY3Rpb24oKXtwPWYubm93KCksYy5lbGVtZW50cz1iLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoZC5sYXp5Q2xhc3MpLGc9Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGQubGF6eUNsYXNzKyIgIitkLnByZWxvYWRDbGFzcyksTD1kLmhGYWMsaigic2Nyb2xsIixXLCEwKSxqKCJyZXNpemUiLFcsITApLGEuTXV0YXRpb25PYnNlcnZlcj9uZXcgTXV0YXRpb25PYnNlcnZlcihXKS5vYnNlcnZlKGUse2NoaWxkTGlzdDohMCxzdWJ0cmVlOiEwLGF0dHJpYnV0ZXM6ITB9KTooZVtoXSgiRE9NTm9kZUluc2VydGVkIixXLCEwKSxlW2hdKCJET01BdHRyTW9kaWZpZWQiLFcsITApLHNldEludGVydmFsKFcsOTk5KSksaigiaGFzaGNoYW5nZSIsVywhMCksWyJmb2N1cyIsIm1vdXNlb3ZlciIsImNsaWNrIiwibG9hZCIsInRyYW5zaXRpb25lbmQiLCJhbmltYXRpb25lbmQiLCJ3ZWJraXRBbmltYXRpb25FbmQiXS5mb3JFYWNoKGZ1bmN0aW9uKGEpe2JbaF0oYSxXLCEwKX0pLC9kJHxeYy8udGVzdChiLnJlYWR5U3RhdGUpP2NhKCk6KGooImxvYWQiLGNhKSxiW2hdKCJET01Db250ZW50TG9hZGVkIixXKSxrKGNhLDJlNCkpLGMuZWxlbWVudHMubGVuZ3RoPyhWKCksei5fbHNGbHVzaCgpKTpXKCl9LGNoZWNrRWxlbXM6Vyx1bnZlaWw6YmF9fSgpLEU9ZnVuY3Rpb24oKXt2YXIgYSxjPUEoZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGUsZixnO2lmKGEuX2xhenlzaXplc1dpZHRoPWQsZCs9InB4IixhLnNldEF0dHJpYnV0ZSgic2l6ZXMiLGQpLG4udGVzdChiLm5vZGVOYW1lfHwiIikpZm9yKGU9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgic291cmNlIiksZj0wLGc9ZS5sZW5ndGg7ZjxnO2YrKyllW2ZdLnNldEF0dHJpYnV0ZSgic2l6ZXMiLGQpO2MuZGV0YWlsLmRhdGFBdHRyfHx3KGEsYy5kZXRhaWwpfSksZT1mdW5jdGlvbihhLGIsZCl7dmFyIGUsZj1hLnBhcmVudE5vZGU7ZiYmKGQ9eShhLGYsZCksZT12KGEsImxhenliZWZvcmVzaXplcyIse3dpZHRoOmQsZGF0YUF0dHI6ISFifSksZS5kZWZhdWx0UHJldmVudGVkfHwoZD1lLmRldGFpbC53aWR0aCkmJmQhPT1hLl9sYXp5c2l6ZXNXaWR0aCYmYyhhLGYsZSxkKSl9LGY9ZnVuY3Rpb24oKXt2YXIgYixjPWEubGVuZ3RoO2lmKGMpZm9yKGI9MDtiPGM7YisrKWUoYVtiXSl9LGc9QyhmKTtyZXR1cm57XzpmdW5jdGlvbigpe2E9Yi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGQuYXV0b3NpemVzQ2xhc3MpLGooInJlc2l6ZSIsZyl9LGNoZWNrRWxlbXM6Zyx1cGRhdGVFbGVtOmV9fSgpLEY9ZnVuY3Rpb24oKXtGLml8fChGLmk9ITAsRS5fKCksRC5fKCkpfTtyZXR1cm4gYz17Y2ZnOmQsYXV0b1NpemVyOkUsbG9hZGVyOkQsaW5pdDpGLHVQOncsYUM6cyxyQzp0LGhDOnIsZmlyZTp2LGdXOnksckFGOnp9fX0pOwovKkVPRiovOwovKiogL20vanMvdmFuaWxsYWpzL2RyRGlzY2xhaW1lckpTLmpzICoqLwp2YXIgX19fZDJjX2RyRGlzY2xhaW1lckpTanNfY19vbj0iMjAyNi0wNS0wNSAxMzozMDowOCI7J3VzZSBzdHJpY3QnO2RyRGlzY2xhaW1lckpTPXttYW5hZ2VEaXNjbGFpbWVyRGl2cygpe2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixhPT57KGE9YS50YXJnZXQuY2xvc2VzdCgiLmRpc2NsYWltZXJzU3VwZXJzY3JpcHRzLCAuY2xvc2VEUkRpc2NsYWltZXJEcmF3ZXIsICNkckNhbGN1bGF0b3JWaWV3RGlzY2xhaW1lckxpbmsiKSkmJihhLmNsYXNzTGlzdC5jb250YWlucygiY2xvc2VEUkRpc2NsYWltZXJEcmF3ZXIiKT9kckRpc2NsYWltZXJKUy5jbG9zZUN1cnJlbnRPcGVuZWREaXNjbGFpbWVyRGl2KGEuZGF0YXNldC5kaXNjbGFpbWVyRGl2aWQpOmEuY2xhc3NMaXN0LmNvbnRhaW5zKCJkclZpZXdEaXNjbGFpbWVyTGluayIpP2RyRGlzY2xhaW1lckpTLm9wZW5EaXNjbGFpbWVyRGl2KCJkckNhbGN1bGF0b3JEaXNjbGFpbWVyRHJhd2VyIik6ZHJEaXNjbGFpbWVySlMub3BlbkRpc2NsYWltZXJEaXYoYS5kYXRhc2V0LmRpc2NsYWltZXJEaXZpZCkpfSl9LG9wZW5EaXNjbGFpbWVyRGl2OmZ1bmN0aW9uKGEpe2RyRGlzY2xhaW1lckpTLmNsb3NlQWxsT3BlbkRpc2NsYWltZXJEaXZzKCk7CmRyRGlzY2xhaW1lckpTLmNsb3NlRmluYW5jZURpc2NsYW1lckRpdigpO2lmKGE9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYSkpYS5jbGFzc0xpc3QuYWRkKCJvcGVuIiksYS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9LGNsb3NlQ3VycmVudE9wZW5lZERpc2NsYWltZXJEaXY6ZnVuY3Rpb24oYSl7aWYoYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjJHthfWApKWEuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpLGEuc3R5bGUuZGlzcGxheT0ibm9uZSJ9LGNsb3NlQWxsT3BlbkRpc2NsYWltZXJEaXZzOmZ1bmN0aW9uKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiZGl2W2RhdGEtZGlzY2xhaW1lci1pZF0ub3BlbiIpLmZvckVhY2goYT0+e2RyRGlzY2xhaW1lckpTLmNsb3NlQ3VycmVudE9wZW5lZERpc2NsYWltZXJEaXYoYS5pZCl9KX0sY2xvc2VGaW5hbmNlRGlzY2xhbWVyRGl2OmZ1bmN0aW9uKCl7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIikuZm9yRWFjaChhPT4Ke2EuY2xhc3NMaXN0LnJlbW92ZSgib3BlbiIpO2Euc3R5bGUuZGlzcGxheT0ibm9uZSJ9KX19O2RvY1JlYWR5QXJyLnB1c2goKCk9PntkckRpc2NsYWltZXJKUy5tYW5hZ2VEaXNjbGFpbWVyRGl2cygpfSk7Ci8qKiAvbS9qcy9qcXVlcnktdWktZmFjdG9yeS8xLjEzLjIvanF1ZXJ5LXVpLm1pbi5qcyAqKi8KLyohIGpRdWVyeSBVSSAtIHYxLjEzLjIgLSAyMDI0LTAzLTEyCiogaHR0cDovL2pxdWVyeXVpLmNvbQoqIEluY2x1ZGVzOiB3aWRnZXQuanMsIGpxdWVyeS1wYXRjaC5qcywga2V5Y29kZS5qcywgdW5pcXVlLWlkLmpzLCB3aWRnZXRzL2FjY29yZGlvbi5qcywgd2lkZ2V0cy9tb3VzZS5qcywgd2lkZ2V0cy9zbGlkZXIuanMsIGVmZmVjdC5qcwoqIENvcHlyaWdodCBqUXVlcnkgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzOyBMaWNlbnNlZCBNSVQgKi8KCiFmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJqcXVlcnkiXSxlKTplKGpRdWVyeSl9KGZ1bmN0aW9uKHUpeyJ1c2Ugc3RyaWN0Ijt1LnVpPXUudWl8fHt9O3UudWkudmVyc2lvbj0iMS4xMy4yIjt2YXIgbixpPTAsbz1BcnJheS5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkscj1BcnJheS5wcm90b3R5cGUuc2xpY2U7dS5jbGVhbkRhdGE9KG49dS5jbGVhbkRhdGEsZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGkscz0wO251bGwhPShpPWVbc10pO3MrKykodD11Ll9kYXRhKGksImV2ZW50cyIpKSYmdC5yZW1vdmUmJnUoaSkudHJpZ2dlckhhbmRsZXIoInJlbW92ZSIpO24oZSl9KSx1LndpZGdldD1mdW5jdGlvbihlLGksdCl7dmFyIHMsbixhLG89e30scj1lLnNwbGl0KCIuIilbMF0saD1yKyItIisoZT1lLnNwbGl0KCIuIilbMV0pO3JldHVybiB0fHwodD1pLGk9dS5XaWRnZXQpLEFycmF5LmlzQXJyYXkodCkmJih0PXUuZXh0ZW5kLmFwcGx5KG51bGwsW3t9XS5jb25jYXQodCkpKSx1LmV4cHIucHNldWRvc1toLnRvTG93ZXJDYXNlKCldPWZ1bmN0aW9uKGUpe3JldHVybiEhdS5kYXRhKGUsaCl9LHVbcl09dVtyXXx8e30scz11W3JdW2VdLG49dVtyXVtlXT1mdW5jdGlvbihlLHQpe2lmKCF0aGlzfHwhdGhpcy5fY3JlYXRlV2lkZ2V0KXJldHVybiBuZXcgbihlLHQpO2FyZ3VtZW50cy5sZW5ndGgmJnRoaXMuX2NyZWF0ZVdpZGdldChlLHQpfSx1LmV4dGVuZChuLHMse3ZlcnNpb246dC52ZXJzaW9uLF9wcm90bzp1LmV4dGVuZCh7fSx0KSxfY2hpbGRDb25zdHJ1Y3RvcnM6W119KSwoYT1uZXcgaSkub3B0aW9ucz11LndpZGdldC5leHRlbmQoe30sYS5vcHRpb25zKSx1LmVhY2godCxmdW5jdGlvbih0LHMpe2Z1bmN0aW9uIG4oKXtyZXR1cm4gaS5wcm90b3R5cGVbdF0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWZ1bmN0aW9uIGEoZSl7cmV0dXJuIGkucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMsZSl9b1t0XT0iZnVuY3Rpb24iPT10eXBlb2Ygcz9mdW5jdGlvbigpe3ZhciBlLHQ9dGhpcy5fc3VwZXIsaT10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj1uLHRoaXMuX3N1cGVyQXBwbHk9YSxlPXMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPXQsdGhpcy5fc3VwZXJBcHBseT1pLGV9OnN9KSxuLnByb3RvdHlwZT11LndpZGdldC5leHRlbmQoYSx7d2lkZ2V0RXZlbnRQcmVmaXg6cyYmYS53aWRnZXRFdmVudFByZWZpeHx8ZX0sbyx7Y29uc3RydWN0b3I6bixuYW1lc3BhY2U6cix3aWRnZXROYW1lOmUsd2lkZ2V0RnVsbE5hbWU6aH0pLHM\/KHUuZWFjaChzLl9jaGlsZENvbnN0cnVjdG9ycyxmdW5jdGlvbihlLHQpe3ZhciBpPXQucHJvdG90eXBlO3Uud2lkZ2V0KGkubmFtZXNwYWNlKyIuIitpLndpZGdldE5hbWUsbix0Ll9wcm90byl9KSxkZWxldGUgcy5fY2hpbGRDb25zdHJ1Y3RvcnMpOmkuX2NoaWxkQ29uc3RydWN0b3JzLnB1c2gobiksdS53aWRnZXQuYnJpZGdlKGUsbiksbn0sdS53aWRnZXQuZXh0ZW5kPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxpLHM9ci5jYWxsKGFyZ3VtZW50cywxKSxuPTAsYT1zLmxlbmd0aDtuPGE7bisrKWZvcih0IGluIHNbbl0paT1zW25dW3RdLG8uY2FsbChzW25dLHQpJiZ2b2lkIDAhPT1pJiYodS5pc1BsYWluT2JqZWN0KGkpP2VbdF09dS5pc1BsYWluT2JqZWN0KGVbdF0pP3Uud2lkZ2V0LmV4dGVuZCh7fSxlW3RdLGkpOnUud2lkZ2V0LmV4dGVuZCh7fSxpKTplW3RdPWkpO3JldHVybiBlfSx1LndpZGdldC5icmlkZ2U9ZnVuY3Rpb24oYSx0KXt2YXIgbz10LnByb3RvdHlwZS53aWRnZXRGdWxsTmFtZXx8YTt1LmZuW2FdPWZ1bmN0aW9uKGkpe3ZhciBlPSJzdHJpbmciPT10eXBlb2YgaSxzPXIuY2FsbChhcmd1bWVudHMsMSksbj10aGlzO3JldHVybiBlP3RoaXMubGVuZ3RofHwiaW5zdGFuY2UiIT09aT90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0PXUuZGF0YSh0aGlzLG8pO3JldHVybiJpbnN0YW5jZSI9PT1pPyhuPXQsITEpOnQ\/ImZ1bmN0aW9uIiE9dHlwZW9mIHRbaV18fCJfIj09PWkuY2hhckF0KDApP3UuZXJyb3IoIm5vIHN1Y2ggbWV0aG9kICciK2krIicgZm9yICIrYSsiIHdpZGdldCBpbnN0YW5jZSIpOihlPXRbaV0uYXBwbHkodCxzKSkhPT10JiZ2b2lkIDAhPT1lPyhuPWUmJmUuanF1ZXJ5P24ucHVzaFN0YWNrKGUuZ2V0KCkpOmUsITEpOnZvaWQgMDp1LmVycm9yKCJjYW5ub3QgY2FsbCBtZXRob2RzIG9uICIrYSsiIHByaW9yIHRvIGluaXRpYWxpemF0aW9uOyBhdHRlbXB0ZWQgdG8gY2FsbCBtZXRob2QgJyIraSsiJyIpfSk6bj12b2lkIDA6KHMubGVuZ3RoJiYoaT11LndpZGdldC5leHRlbmQuYXBwbHkobnVsbCxbaV0uY29uY2F0KHMpKSksdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9dS5kYXRhKHRoaXMsbyk7ZT8oZS5vcHRpb24oaXx8e30pLGUuX2luaXQmJmUuX2luaXQoKSk6dS5kYXRhKHRoaXMsbyxuZXcgdChpLHRoaXMpKX0pKSxufX0sdS5XaWRnZXQ9ZnVuY3Rpb24oKXt9LHUuV2lkZ2V0Ll9jaGlsZENvbnN0cnVjdG9ycz1bXSx1LldpZGdldC5wcm90b3R5cGU9e3dpZGdldE5hbWU6IndpZGdldCIsd2lkZ2V0RXZlbnRQcmVmaXg6IiIsZGVmYXVsdEVsZW1lbnQ6IjxkaXY+IixvcHRpb25zOntjbGFzc2VzOnt9LGRpc2FibGVkOiExLGNyZWF0ZTpudWxsfSxfY3JlYXRlV2lkZ2V0OmZ1bmN0aW9uKGUsdCl7dD11KHR8fHRoaXMuZGVmYXVsdEVsZW1lbnR8fHRoaXMpWzBdLHRoaXMuZWxlbWVudD11KHQpLHRoaXMudXVpZD1pKyssdGhpcy5ldmVudE5hbWVzcGFjZT0iLiIrdGhpcy53aWRnZXROYW1lK3RoaXMudXVpZCx0aGlzLmJpbmRpbmdzPXUoKSx0aGlzLmhvdmVyYWJsZT11KCksdGhpcy5mb2N1c2FibGU9dSgpLHRoaXMuY2xhc3Nlc0VsZW1lbnRMb29rdXA9e30sdCE9PXRoaXMmJih1LmRhdGEodCx0aGlzLndpZGdldEZ1bGxOYW1lLHRoaXMpLHRoaXMuX29uKCEwLHRoaXMuZWxlbWVudCx7cmVtb3ZlOmZ1bmN0aW9uKGUpe2UudGFyZ2V0PT09dCYmdGhpcy5kZXN0cm95KCl9fSksdGhpcy5kb2N1bWVudD11KHQuc3R5bGU\/dC5vd25lckRvY3VtZW50OnQuZG9jdW1lbnR8fHQpLHRoaXMud2luZG93PXUodGhpcy5kb2N1bWVudFswXS5kZWZhdWx0Vmlld3x8dGhpcy5kb2N1bWVudFswXS5wYXJlbnRXaW5kb3cpKSx0aGlzLm9wdGlvbnM9dS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyx0aGlzLl9nZXRDcmVhdGVPcHRpb25zKCksZSksdGhpcy5fY3JlYXRlKCksdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLl9zZXRPcHRpb25EaXNhYmxlZCh0aGlzLm9wdGlvbnMuZGlzYWJsZWQpLHRoaXMuX3RyaWdnZXIoImNyZWF0ZSIsbnVsbCx0aGlzLl9nZXRDcmVhdGVFdmVudERhdGEoKSksdGhpcy5faW5pdCgpfSxfZ2V0Q3JlYXRlT3B0aW9uczpmdW5jdGlvbigpe3JldHVybnt9fSxfZ2V0Q3JlYXRlRXZlbnREYXRhOnUubm9vcCxfY3JlYXRlOnUubm9vcCxfaW5pdDp1Lm5vb3AsZGVzdHJveTpmdW5jdGlvbigpe3ZhciBpPXRoaXM7dGhpcy5fZGVzdHJveSgpLHUuZWFjaCh0aGlzLmNsYXNzZXNFbGVtZW50TG9va3VwLGZ1bmN0aW9uKGUsdCl7aS5fcmVtb3ZlQ2xhc3ModCxlKX0pLHRoaXMuZWxlbWVudC5vZmYodGhpcy5ldmVudE5hbWVzcGFjZSkucmVtb3ZlRGF0YSh0aGlzLndpZGdldEZ1bGxOYW1lKSx0aGlzLndpZGdldCgpLm9mZih0aGlzLmV2ZW50TmFtZXNwYWNlKS5yZW1vdmVBdHRyKCJhcmlhLWRpc2FibGVkIiksdGhpcy5iaW5kaW5ncy5vZmYodGhpcy5ldmVudE5hbWVzcGFjZSl9LF9kZXN0cm95OnUubm9vcCx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50fSxvcHRpb246ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG4sYT1lO2lmKDA9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB1LndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zKTtpZigic3RyaW5nIj09dHlwZW9mIGUpaWYoYT17fSxlPShpPWUuc3BsaXQoIi4iKSkuc2hpZnQoKSxpLmxlbmd0aCl7Zm9yKHM9YVtlXT11LndpZGdldC5leHRlbmQoe30sdGhpcy5vcHRpb25zW2VdKSxuPTA7bjxpLmxlbmd0aC0xO24rKylzW2lbbl1dPXNbaVtuXV18fHt9LHM9c1tpW25dXTtpZihlPWkucG9wKCksMT09PWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PXNbZV0\/bnVsbDpzW2VdO3NbZV09dH1lbHNle2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT10aGlzLm9wdGlvbnNbZV0\/bnVsbDp0aGlzLm9wdGlvbnNbZV07YVtlXT10fXJldHVybiB0aGlzLl9zZXRPcHRpb25zKGEpLHRoaXN9LF9zZXRPcHRpb25zOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCBpbiBlKXRoaXMuX3NldE9wdGlvbih0LGVbdF0pO3JldHVybiB0aGlzfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuImNsYXNzZXMiPT09ZSYmdGhpcy5fc2V0T3B0aW9uQ2xhc3Nlcyh0KSx0aGlzLm9wdGlvbnNbZV09dCwiZGlzYWJsZWQiPT09ZSYmdGhpcy5fc2V0T3B0aW9uRGlzYWJsZWQodCksdGhpc30sX3NldE9wdGlvbkNsYXNzZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzO2Zvcih0IGluIGUpcz10aGlzLmNsYXNzZXNFbGVtZW50TG9va3VwW3RdLGVbdF0hPT10aGlzLm9wdGlvbnMuY2xhc3Nlc1t0XSYmcyYmcy5sZW5ndGgmJihpPXUocy5nZXQoKSksdGhpcy5fcmVtb3ZlQ2xhc3Mocyx0KSxpLmFkZENsYXNzKHRoaXMuX2NsYXNzZXMoe2VsZW1lbnQ6aSxrZXlzOnQsY2xhc3NlczplLGFkZDohMH0pKSl9LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbihlKXt0aGlzLl90b2dnbGVDbGFzcyh0aGlzLndpZGdldCgpLHRoaXMud2lkZ2V0RnVsbE5hbWUrIi1kaXNhYmxlZCIsbnVsbCwhIWUpLGUmJih0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmhvdmVyYWJsZSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpLHRoaXMuX3JlbW92ZUNsYXNzKHRoaXMuZm9jdXNhYmxlLG51bGwsInVpLXN0YXRlLWZvY3VzIikpfSxlbmFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITF9KX0sZGlzYWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zZXRPcHRpb25zKHtkaXNhYmxlZDohMH0pfSxfY2xhc3NlczpmdW5jdGlvbihuKXt2YXIgYT1bXSxvPXRoaXM7ZnVuY3Rpb24gZShlLHQpe2Zvcih2YXIgaSxzPTA7czxlLmxlbmd0aDtzKyspaT1vLmNsYXNzZXNFbGVtZW50TG9va3VwW2Vbc11dfHx1KCksaT1uLmFkZD8oZnVuY3Rpb24oKXt2YXIgaT1bXTtuLmVsZW1lbnQuZWFjaChmdW5jdGlvbihlLHQpe3UubWFwKG8uY2xhc3Nlc0VsZW1lbnRMb29rdXAsZnVuY3Rpb24oZSl7cmV0dXJuIGV9KS5zb21lKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlzKHQpfSl8fGkucHVzaCh0KX0pLG8uX29uKHUoaSkse3JlbW92ZToiX3VudHJhY2tDbGFzc2VzRWxlbWVudCJ9KX0oKSx1KHUudW5pcXVlU29ydChpLmdldCgpLmNvbmNhdChuLmVsZW1lbnQuZ2V0KCkpKSkpOnUoaS5ub3Qobi5lbGVtZW50KS5nZXQoKSksby5jbGFzc2VzRWxlbWVudExvb2t1cFtlW3NdXT1pLGEucHVzaChlW3NdKSx0JiZuLmNsYXNzZXNbZVtzXV0mJmEucHVzaChuLmNsYXNzZXNbZVtzXV0pfXJldHVybihuPXUuZXh0ZW5kKHtlbGVtZW50OnRoaXMuZWxlbWVudCxjbGFzc2VzOnRoaXMub3B0aW9ucy5jbGFzc2VzfHx7fX0sbikpLmtleXMmJmUobi5rZXlzLm1hdGNoKC9cUysvZyl8fFtdLCEwKSxuLmV4dHJhJiZlKG4uZXh0cmEubWF0Y2goL1xTKy9nKXx8W10pLGEuam9pbigiICIpfSxfdW50cmFja0NsYXNzZXNFbGVtZW50OmZ1bmN0aW9uKGkpe3ZhciBzPXRoaXM7dS5lYWNoKHMuY2xhc3Nlc0VsZW1lbnRMb29rdXAsZnVuY3Rpb24oZSx0KXstMSE9PXUuaW5BcnJheShpLnRhcmdldCx0KSYmKHMuY2xhc3Nlc0VsZW1lbnRMb29rdXBbZV09dSh0Lm5vdChpLnRhcmdldCkuZ2V0KCkpKX0pLHRoaXMuX29mZih1KGkudGFyZ2V0KSl9LF9yZW1vdmVDbGFzczpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIHRoaXMuX3RvZ2dsZUNsYXNzKGUsdCxpLCExKX0sX2FkZENsYXNzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gdGhpcy5fdG9nZ2xlQ2xhc3MoZSx0LGksITApfSxfdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24oZSx0LGkscyl7dmFyIG49InN0cmluZyI9PXR5cGVvZiBlfHxudWxsPT09ZSxpPXtleHRyYTpuP3Q6aSxrZXlzOm4\/ZTp0LGVsZW1lbnQ6bj90aGlzLmVsZW1lbnQ6ZSxhZGQ6cz0iYm9vbGVhbiI9PXR5cGVvZiBzP3M6aX07cmV0dXJuIGkuZWxlbWVudC50b2dnbGVDbGFzcyh0aGlzLl9jbGFzc2VzKGkpLHMpLHRoaXN9LF9vbjpmdW5jdGlvbihuLGEsZSl7dmFyIG8scj10aGlzOyJib29sZWFuIiE9dHlwZW9mIG4mJihlPWEsYT1uLG49ITEpLGU\/KGE9bz11KGEpLHRoaXMuYmluZGluZ3M9dGhpcy5iaW5kaW5ncy5hZGQoYSkpOihlPWEsYT10aGlzLmVsZW1lbnQsbz10aGlzLndpZGdldCgpKSx1LmVhY2goZSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoKXtpZihufHwhMCE9PXIub3B0aW9ucy5kaXNhYmxlZCYmIXUodGhpcykuaGFzQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikpcmV0dXJuKCJzdHJpbmciPT10eXBlb2YgdD9yW3RdOnQpLmFwcGx5KHIsYXJndW1lbnRzKX0ic3RyaW5nIiE9dHlwZW9mIHQmJihpLmd1aWQ9dC5ndWlkPXQuZ3VpZHx8aS5ndWlkfHx1Lmd1aWQrKyk7dmFyIHM9ZS5tYXRjaCgvXihbXHc6LV0qKVxzKiguKikkLyksZT1zWzFdK3IuZXZlbnROYW1lc3BhY2Uscz1zWzJdO3M\/by5vbihlLHMsaSk6YS5vbihlLGkpfSl9LF9vZmY6ZnVuY3Rpb24oZSx0KXt0PSh0fHwiIikuc3BsaXQoIiAiKS5qb2luKHRoaXMuZXZlbnROYW1lc3BhY2UrIiAiKSt0aGlzLmV2ZW50TmFtZXNwYWNlLGUub2ZmKHQpLHRoaXMuYmluZGluZ3M9dSh0aGlzLmJpbmRpbmdzLm5vdChlKS5nZXQoKSksdGhpcy5mb2N1c2FibGU9dSh0aGlzLmZvY3VzYWJsZS5ub3QoZSkuZ2V0KCkpLHRoaXMuaG92ZXJhYmxlPXUodGhpcy5ob3ZlcmFibGUubm90KGUpLmdldCgpKX0sX2RlbGF5OmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcztyZXR1cm4gc2V0VGltZW91dChmdW5jdGlvbigpe3JldHVybigic3RyaW5nIj09dHlwZW9mIGU\/aVtlXTplKS5hcHBseShpLGFyZ3VtZW50cyl9LHR8fDApfSxfaG92ZXJhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuaG92ZXJhYmxlPXRoaXMuaG92ZXJhYmxlLmFkZChlKSx0aGlzLl9vbihlLHttb3VzZWVudGVyOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHUoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfSxtb3VzZWxlYXZlOmZ1bmN0aW9uKGUpe3RoaXMuX3JlbW92ZUNsYXNzKHUoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1ob3ZlciIpfX0pfSxfZm9jdXNhYmxlOmZ1bmN0aW9uKGUpe3RoaXMuZm9jdXNhYmxlPXRoaXMuZm9jdXNhYmxlLmFkZChlKSx0aGlzLl9vbihlLHtmb2N1c2luOmZ1bmN0aW9uKGUpe3RoaXMuX2FkZENsYXNzKHUoZS5jdXJyZW50VGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1mb2N1cyIpfSxmb2N1c291dDpmdW5jdGlvbihlKXt0aGlzLl9yZW1vdmVDbGFzcyh1KGUuY3VycmVudFRhcmdldCksbnVsbCwidWktc3RhdGUtZm9jdXMiKX19KX0sX3RyaWdnZXI6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzLG4sYT10aGlzLm9wdGlvbnNbZV07aWYoaT1pfHx7fSwodD11LkV2ZW50KHQpKS50eXBlPShlPT09dGhpcy53aWRnZXRFdmVudFByZWZpeD9lOnRoaXMud2lkZ2V0RXZlbnRQcmVmaXgrZSkudG9Mb3dlckNhc2UoKSx0LnRhcmdldD10aGlzLmVsZW1lbnRbMF0sbj10Lm9yaWdpbmFsRXZlbnQpZm9yKHMgaW4gbilzIGluIHR8fCh0W3NdPW5bc10pO3JldHVybiB0aGlzLmVsZW1lbnQudHJpZ2dlcih0LGkpLCEoImZ1bmN0aW9uIj09dHlwZW9mIGEmJiExPT09YS5hcHBseSh0aGlzLmVsZW1lbnRbMF0sW3RdLmNvbmNhdChpKSl8fHQuaXNEZWZhdWx0UHJldmVudGVkKCkpfX0sdS5lYWNoKHtzaG93OiJmYWRlSW4iLGhpZGU6ImZhZGVPdXQifSxmdW5jdGlvbihhLG8pe3UuV2lkZ2V0LnByb3RvdHlwZVsiXyIrYV09ZnVuY3Rpb24odCxlLGkpe3ZhciBzLG49KGU9InN0cmluZyI9PXR5cGVvZiBlP3tlZmZlY3Q6ZX06ZSk\/ITAhPT1lJiYibnVtYmVyIiE9dHlwZW9mIGUmJmUuZWZmZWN0fHxvOmE7Im51bWJlciI9PXR5cGVvZihlPWV8fHt9KT9lPXtkdXJhdGlvbjplfTohMD09PWUmJihlPXt9KSxzPSF1LmlzRW1wdHlPYmplY3QoZSksZS5jb21wbGV0ZT1pLGUuZGVsYXkmJnQuZGVsYXkoZS5kZWxheSkscyYmdS5lZmZlY3RzJiZ1LmVmZmVjdHMuZWZmZWN0W25dP3RbYV0oZSk6biE9PWEmJnRbbl0\/dFtuXShlLmR1cmF0aW9uLGUuZWFzaW5nLGkpOnQucXVldWUoZnVuY3Rpb24oZSl7dSh0aGlzKVthXSgpLGkmJmkuY2FsbCh0WzBdKSxlKCl9KX19KTt2YXIgdCxzO3Uud2lkZ2V0O3UuZXhwci5wc2V1ZG9zfHwodS5leHByLnBzZXVkb3M9dS5leHByWyI6Il0pLHUudW5pcXVlU29ydHx8KHUudW5pcXVlU29ydD11LnVuaXF1ZSksdS5lc2NhcGVTZWxlY3Rvcnx8KHQ9LyhbXDAtXHgxZlx4N2ZdfF4tP1xkKXxeLSR8W15ceDgwLVx1RkZGRlx3LV0vZyxzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ\/IlwwIj09PWU\/Iu+\/vSI6ZS5zbGljZSgwLC0xKSsiXFwiK2UuY2hhckNvZGVBdChlLmxlbmd0aC0xKS50b1N0cmluZygxNikrIiAiOiJcXCIrZX0sdS5lc2NhcGVTZWxlY3Rvcj1mdW5jdGlvbihlKXtyZXR1cm4oZSsiIikucmVwbGFjZSh0LHMpfSksdS5mbi5ldmVuJiZ1LmZuLm9kZHx8dS5mbi5leHRlbmQoe2V2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUlMj09MH0pfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIGUlMj09MX0pfX0pO3UudWkua2V5Q29kZT17QkFDS1NQQUNFOjgsQ09NTUE6MTg4LERFTEVURTo0NixET1dOOjQwLEVORDozNSxFTlRFUjoxMyxFU0NBUEU6MjcsSE9NRTozNixMRUZUOjM3LFBBR0VfRE9XTjozNCxQQUdFX1VQOjMzLFBFUklPRDoxOTAsUklHSFQ6MzksU1BBQ0U6MzIsVEFCOjksVVA6Mzh9LHUuZm4uZXh0ZW5kKHt1bmlxdWVJZDooZT0wLGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3RoaXMuaWR8fCh0aGlzLmlkPSJ1aS1pZC0iKyArK2UpfSl9KSxyZW1vdmVVbmlxdWVJZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXsvXnVpLWlkLVxkKyQvLnRlc3QodGhpcy5pZCkmJnUodGhpcykucmVtb3ZlQXR0cigiaWQiKX0pfX0pLHUud2lkZ2V0KCJ1aS5hY2NvcmRpb24iLHt2ZXJzaW9uOiIxLjEzLjIiLG9wdGlvbnM6e2FjdGl2ZTowLGFuaW1hdGU6e30sY2xhc3Nlczp7InVpLWFjY29yZGlvbi1oZWFkZXIiOiJ1aS1jb3JuZXItdG9wIiwidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiOiJ1aS1jb3JuZXItYWxsIiwidWktYWNjb3JkaW9uLWNvbnRlbnQiOiJ1aS1jb3JuZXItYm90dG9tIn0sY29sbGFwc2libGU6ITEsZXZlbnQ6ImNsaWNrIixoZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZmluZCgiPiBsaSA+IDpmaXJzdC1jaGlsZCIpLmFkZChlLmZpbmQoIj4gOm5vdChsaSkiKS5ldmVuKCkpfSxoZWlnaHRTdHlsZToiYXV0byIsaWNvbnM6e2FjdGl2ZUhlYWRlcjoidWktaWNvbi10cmlhbmdsZS0xLXMiLGhlYWRlcjoidWktaWNvbi10cmlhbmdsZS0xLWUifSxhY3RpdmF0ZTpudWxsLGJlZm9yZUFjdGl2YXRlOm51bGx9LGhpZGVQcm9wczp7Ym9yZGVyVG9wV2lkdGg6ImhpZGUiLGJvcmRlckJvdHRvbVdpZHRoOiJoaWRlIixwYWRkaW5nVG9wOiJoaWRlIixwYWRkaW5nQm90dG9tOiJoaWRlIixoZWlnaHQ6ImhpZGUifSxzaG93UHJvcHM6e2JvcmRlclRvcFdpZHRoOiJzaG93Iixib3JkZXJCb3R0b21XaWR0aDoic2hvdyIscGFkZGluZ1RvcDoic2hvdyIscGFkZGluZ0JvdHRvbToic2hvdyIsaGVpZ2h0OiJzaG93In0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3B0aW9uczt0aGlzLnByZXZTaG93PXRoaXMucHJldkhpZGU9dSgpLHRoaXMuX2FkZENsYXNzKCJ1aS1hY2NvcmRpb24iLCJ1aS13aWRnZXQgdWktaGVscGVyLXJlc2V0IiksdGhpcy5lbGVtZW50LmF0dHIoInJvbGUiLCJ0YWJsaXN0IiksZS5jb2xsYXBzaWJsZXx8ITEhPT1lLmFjdGl2ZSYmbnVsbCE9ZS5hY3RpdmV8fChlLmFjdGl2ZT0wKSx0aGlzLl9wcm9jZXNzUGFuZWxzKCksZS5hY3RpdmU8MCYmKGUuYWN0aXZlKz10aGlzLmhlYWRlcnMubGVuZ3RoKSx0aGlzLl9yZWZyZXNoKCl9LF9nZXRDcmVhdGVFdmVudERhdGE6ZnVuY3Rpb24oKXtyZXR1cm57aGVhZGVyOnRoaXMuYWN0aXZlLHBhbmVsOnRoaXMuYWN0aXZlLmxlbmd0aD90aGlzLmFjdGl2ZS5uZXh0KCk6dSgpfX0sX2NyZWF0ZUljb25zOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLm9wdGlvbnMuaWNvbnM7dCYmKGU9dSgiPHNwYW4+IiksdGhpcy5fYWRkQ2xhc3MoZSwidWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiwidWktaWNvbiAiK3QuaGVhZGVyKSxlLnByZXBlbmRUbyh0aGlzLmhlYWRlcnMpLGU9dGhpcy5hY3RpdmUuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKSx0aGlzLl9yZW1vdmVDbGFzcyhlLHQuaGVhZGVyKS5fYWRkQ2xhc3MoZSxudWxsLHQuYWN0aXZlSGVhZGVyKS5fYWRkQ2xhc3ModGhpcy5oZWFkZXJzLCJ1aS1hY2NvcmRpb24taWNvbnMiKSl9LF9kZXN0cm95SWNvbnM6ZnVuY3Rpb24oKXt0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLmhlYWRlcnMsInVpLWFjY29yZGlvbi1pY29ucyIpLHRoaXMuaGVhZGVycy5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZSgpfSxfZGVzdHJveTpmdW5jdGlvbigpe3ZhciBlO3RoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCJyb2xlIiksdGhpcy5oZWFkZXJzLnJlbW92ZUF0dHIoInJvbGUgYXJpYS1leHBhbmRlZCBhcmlhLXNlbGVjdGVkIGFyaWEtY29udHJvbHMgdGFiSW5kZXgiKS5yZW1vdmVVbmlxdWVJZCgpLHRoaXMuX2Rlc3Ryb3lJY29ucygpLGU9dGhpcy5oZWFkZXJzLm5leHQoKS5jc3MoImRpc3BsYXkiLCIiKS5yZW1vdmVBdHRyKCJyb2xlIGFyaWEtaGlkZGVuIGFyaWEtbGFiZWxsZWRieSIpLnJlbW92ZVVuaXF1ZUlkKCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZlLmNzcygiaGVpZ2h0IiwiIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiYWN0aXZlIiE9PWU\/KCJldmVudCI9PT1lJiYodGhpcy5vcHRpb25zLmV2ZW50JiZ0aGlzLl9vZmYodGhpcy5oZWFkZXJzLHRoaXMub3B0aW9ucy5ldmVudCksdGhpcy5fc2V0dXBFdmVudHModCkpLHRoaXMuX3N1cGVyKGUsdCksImNvbGxhcHNpYmxlIiE9PWV8fHR8fCExIT09dGhpcy5vcHRpb25zLmFjdGl2ZXx8dGhpcy5fYWN0aXZhdGUoMCksImljb25zIj09PWUmJih0aGlzLl9kZXN0cm95SWNvbnMoKSx0JiZ0aGlzLl9jcmVhdGVJY29ucygpKSk6dGhpcy5fYWN0aXZhdGUodCl9LF9zZXRPcHRpb25EaXNhYmxlZDpmdW5jdGlvbihlKXt0aGlzLl9zdXBlcihlKSx0aGlzLmVsZW1lbnQuYXR0cigiYXJpYS1kaXNhYmxlZCIsZSksdGhpcy5fdG9nZ2xlQ2xhc3MobnVsbCwidWktc3RhdGUtZGlzYWJsZWQiLCEhZSksdGhpcy5fdG9nZ2xlQ2xhc3ModGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSxudWxsLCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISFlKX0sX2tleWRvd246ZnVuY3Rpb24oZSl7aWYoIWUuYWx0S2V5JiYhZS5jdHJsS2V5KXt2YXIgdD11LnVpLmtleUNvZGUsaT10aGlzLmhlYWRlcnMubGVuZ3RoLHM9dGhpcy5oZWFkZXJzLmluZGV4KGUudGFyZ2V0KSxuPSExO3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgdC5SSUdIVDpjYXNlIHQuRE9XTjpuPXRoaXMuaGVhZGVyc1socysxKSVpXTticmVhaztjYXNlIHQuTEVGVDpjYXNlIHQuVVA6bj10aGlzLmhlYWRlcnNbKHMtMStpKSVpXTticmVhaztjYXNlIHQuU1BBQ0U6Y2FzZSB0LkVOVEVSOnRoaXMuX2V2ZW50SGFuZGxlcihlKTticmVhaztjYXNlIHQuSE9NRTpuPXRoaXMuaGVhZGVyc1swXTticmVhaztjYXNlIHQuRU5EOm49dGhpcy5oZWFkZXJzW2ktMV19biYmKHUoZS50YXJnZXQpLmF0dHIoInRhYkluZGV4IiwtMSksdShuKS5hdHRyKCJ0YWJJbmRleCIsMCksdShuKS50cmlnZ2VyKCJmb2N1cyIpLGUucHJldmVudERlZmF1bHQoKSl9fSxfcGFuZWxLZXlEb3duOmZ1bmN0aW9uKGUpe2Uua2V5Q29kZT09PXUudWkua2V5Q29kZS5VUCYmZS5jdHJsS2V5JiZ1KGUuY3VycmVudFRhcmdldCkucHJldigpLnRyaWdnZXIoImZvY3VzIil9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnM7dGhpcy5fcHJvY2Vzc1BhbmVscygpLCExPT09ZS5hY3RpdmUmJiEwPT09ZS5jb2xsYXBzaWJsZXx8IXRoaXMuaGVhZGVycy5sZW5ndGg\/KGUuYWN0aXZlPSExLHRoaXMuYWN0aXZlPXUoKSk6ITE9PT1lLmFjdGl2ZT90aGlzLl9hY3RpdmF0ZSgwKTp0aGlzLmFjdGl2ZS5sZW5ndGgmJiF1LmNvbnRhaW5zKHRoaXMuZWxlbWVudFswXSx0aGlzLmFjdGl2ZVswXSk\/dGhpcy5oZWFkZXJzLmxlbmd0aD09PXRoaXMuaGVhZGVycy5maW5kKCIudWktc3RhdGUtZGlzYWJsZWQiKS5sZW5ndGg\/KGUuYWN0aXZlPSExLHRoaXMuYWN0aXZlPXUoKSk6dGhpcy5fYWN0aXZhdGUoTWF0aC5tYXgoMCxlLmFjdGl2ZS0xKSk6ZS5hY3RpdmU9dGhpcy5oZWFkZXJzLmluZGV4KHRoaXMuYWN0aXZlKSx0aGlzLl9kZXN0cm95SWNvbnMoKSx0aGlzLl9yZWZyZXNoKCl9LF9wcm9jZXNzUGFuZWxzOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5oZWFkZXJzLHQ9dGhpcy5wYW5lbHM7ImZ1bmN0aW9uIj09dHlwZW9mIHRoaXMub3B0aW9ucy5oZWFkZXI\/dGhpcy5oZWFkZXJzPXRoaXMub3B0aW9ucy5oZWFkZXIodGhpcy5lbGVtZW50KTp0aGlzLmhlYWRlcnM9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLmhlYWRlciksdGhpcy5fYWRkQ2xhc3ModGhpcy5oZWFkZXJzLCJ1aS1hY2NvcmRpb24taGVhZGVyIHVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiwidWktc3RhdGUtZGVmYXVsdCIpLHRoaXMucGFuZWxzPXRoaXMuaGVhZGVycy5uZXh0KCkuZmlsdGVyKCI6bm90KC51aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUpIikuaGlkZSgpLHRoaXMuX2FkZENsYXNzKHRoaXMucGFuZWxzLCJ1aS1hY2NvcmRpb24tY29udGVudCIsInVpLWhlbHBlci1yZXNldCB1aS13aWRnZXQtY29udGVudCIpLHQmJih0aGlzLl9vZmYoZS5ub3QodGhpcy5oZWFkZXJzKSksdGhpcy5fb2ZmKHQubm90KHRoaXMucGFuZWxzKSkpfSxfcmVmcmVzaDpmdW5jdGlvbigpe3ZhciBpLGU9dGhpcy5vcHRpb25zLHQ9ZS5oZWlnaHRTdHlsZSxzPXRoaXMuZWxlbWVudC5wYXJlbnQoKTt0aGlzLmFjdGl2ZT10aGlzLl9maW5kQWN0aXZlKGUuYWN0aXZlKSx0aGlzLl9hZGRDbGFzcyh0aGlzLmFjdGl2ZSwidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiLCJ1aS1zdGF0ZS1hY3RpdmUiKS5fcmVtb3ZlQ2xhc3ModGhpcy5hY3RpdmUsInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiksdGhpcy5fYWRkQ2xhc3ModGhpcy5hY3RpdmUubmV4dCgpLCJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiKSx0aGlzLmFjdGl2ZS5uZXh0KCkuc2hvdygpLHRoaXMuaGVhZGVycy5hdHRyKCJyb2xlIiwidGFiIikuZWFjaChmdW5jdGlvbigpe3ZhciBlPXUodGhpcyksdD1lLnVuaXF1ZUlkKCkuYXR0cigiaWQiKSxpPWUubmV4dCgpLHM9aS51bmlxdWVJZCgpLmF0dHIoImlkIik7ZS5hdHRyKCJhcmlhLWNvbnRyb2xzIixzKSxpLmF0dHIoImFyaWEtbGFiZWxsZWRieSIsdCl9KS5uZXh0KCkuYXR0cigicm9sZSIsInRhYnBhbmVsIiksdGhpcy5oZWFkZXJzLm5vdCh0aGlzLmFjdGl2ZSkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsdGFiSW5kZXg6LTF9KS5uZXh0KCkuYXR0cih7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KS5oaWRlKCksdGhpcy5hY3RpdmUubGVuZ3RoP3RoaXMuYWN0aXZlLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJJbmRleDowfSkubmV4dCgpLmF0dHIoeyJhcmlhLWhpZGRlbiI6ImZhbHNlIn0pOnRoaXMuaGVhZGVycy5lcSgwKS5hdHRyKCJ0YWJJbmRleCIsMCksdGhpcy5fY3JlYXRlSWNvbnMoKSx0aGlzLl9zZXR1cEV2ZW50cyhlLmV2ZW50KSwiZmlsbCI9PT10PyhpPXMuaGVpZ2h0KCksdGhpcy5lbGVtZW50LnNpYmxpbmdzKCI6dmlzaWJsZSIpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT11KHRoaXMpLHQ9ZS5jc3MoInBvc2l0aW9uIik7ImFic29sdXRlIiE9PXQmJiJmaXhlZCIhPT10JiYoaS09ZS5vdXRlckhlaWdodCghMCkpfSksdGhpcy5oZWFkZXJzLmVhY2goZnVuY3Rpb24oKXtpLT11KHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pLHRoaXMuaGVhZGVycy5uZXh0KCkuZWFjaChmdW5jdGlvbigpe3UodGhpcykuaGVpZ2h0KE1hdGgubWF4KDAsaS11KHRoaXMpLmlubmVySGVpZ2h0KCkrdSh0aGlzKS5oZWlnaHQoKSkpfSkuY3NzKCJvdmVyZmxvdyIsImF1dG8iKSk6ImF1dG8iPT09dCYmKGk9MCx0aGlzLmhlYWRlcnMubmV4dCgpLmVhY2goZnVuY3Rpb24oKXt2YXIgZT11KHRoaXMpLmlzKCI6dmlzaWJsZSIpO2V8fHUodGhpcykuc2hvdygpLGk9TWF0aC5tYXgoaSx1KHRoaXMpLmNzcygiaGVpZ2h0IiwiIikuaGVpZ2h0KCkpLGV8fHUodGhpcykuaGlkZSgpfSkuaGVpZ2h0KGkpKX0sX2FjdGl2YXRlOmZ1bmN0aW9uKGUpe2U9dGhpcy5fZmluZEFjdGl2ZShlKVswXTtlIT09dGhpcy5hY3RpdmVbMF0mJihlPWV8fHRoaXMuYWN0aXZlWzBdLHRoaXMuX2V2ZW50SGFuZGxlcih7dGFyZ2V0OmUsY3VycmVudFRhcmdldDplLHByZXZlbnREZWZhdWx0OnUubm9vcH0pKX0sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlP3RoaXMuaGVhZGVycy5lcShlKTp1KCl9LF9zZXR1cEV2ZW50czpmdW5jdGlvbihlKXt2YXIgaT17a2V5ZG93bjoiX2tleWRvd24ifTtlJiZ1LmVhY2goZS5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsdCl7aVt0XT0iX2V2ZW50SGFuZGxlciJ9KSx0aGlzLl9vZmYodGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSksdGhpcy5fb24odGhpcy5oZWFkZXJzLGkpLHRoaXMuX29uKHRoaXMuaGVhZGVycy5uZXh0KCkse2tleWRvd246Il9wYW5lbEtleURvd24ifSksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGVhZGVycyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGVhZGVycyl9LF9ldmVudEhhbmRsZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5vcHRpb25zLGk9dGhpcy5hY3RpdmUscz11KGUuY3VycmVudFRhcmdldCksbj1zWzBdPT09aVswXSxhPW4mJnQuY29sbGFwc2libGUsbz1hP3UoKTpzLm5leHQoKSxyPWkubmV4dCgpLG89e29sZEhlYWRlcjppLG9sZFBhbmVsOnIsbmV3SGVhZGVyOmE\/dSgpOnMsbmV3UGFuZWw6b307ZS5wcmV2ZW50RGVmYXVsdCgpLG4mJiF0LmNvbGxhcHNpYmxlfHwhMT09PXRoaXMuX3RyaWdnZXIoImJlZm9yZUFjdGl2YXRlIixlLG8pfHwodC5hY3RpdmU9IWEmJnRoaXMuaGVhZGVycy5pbmRleChzKSx0aGlzLmFjdGl2ZT1uP3UoKTpzLHRoaXMuX3RvZ2dsZShvKSx0aGlzLl9yZW1vdmVDbGFzcyhpLCJ1aS1hY2NvcmRpb24taGVhZGVyLWFjdGl2ZSIsInVpLXN0YXRlLWFjdGl2ZSIpLHQuaWNvbnMmJihpPWkuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKSx0aGlzLl9yZW1vdmVDbGFzcyhpLG51bGwsdC5pY29ucy5hY3RpdmVIZWFkZXIpLl9hZGRDbGFzcyhpLG51bGwsdC5pY29ucy5oZWFkZXIpKSxufHwodGhpcy5fcmVtb3ZlQ2xhc3MocywidWktYWNjb3JkaW9uLWhlYWRlci1jb2xsYXBzZWQiKS5fYWRkQ2xhc3MocywidWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUiLCJ1aS1zdGF0ZS1hY3RpdmUiKSx0Lmljb25zJiYobj1zLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIiksdGhpcy5fcmVtb3ZlQ2xhc3MobixudWxsLHQuaWNvbnMuaGVhZGVyKS5fYWRkQ2xhc3MobixudWxsLHQuaWNvbnMuYWN0aXZlSGVhZGVyKSksdGhpcy5fYWRkQ2xhc3Mocy5uZXh0KCksInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpKSl9LF90b2dnbGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5uZXdQYW5lbCxpPXRoaXMucHJldlNob3cubGVuZ3RoP3RoaXMucHJldlNob3c6ZS5vbGRQYW5lbDt0aGlzLnByZXZTaG93LmFkZCh0aGlzLnByZXZIaWRlKS5zdG9wKCEwLCEwKSx0aGlzLnByZXZTaG93PXQsdGhpcy5wcmV2SGlkZT1pLHRoaXMub3B0aW9ucy5hbmltYXRlP3RoaXMuX2FuaW1hdGUodCxpLGUpOihpLmhpZGUoKSx0LnNob3coKSx0aGlzLl90b2dnbGVDb21wbGV0ZShlKSksaS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLGkucHJldigpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSksdC5sZW5ndGgmJmkubGVuZ3RoP2kucHJldigpLmF0dHIoe3RhYkluZGV4Oi0xLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSk6dC5sZW5ndGgmJnRoaXMuaGVhZGVycy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMD09PXBhcnNlSW50KHUodGhpcykuYXR0cigidGFiSW5kZXgiKSwxMCl9KS5hdHRyKCJ0YWJJbmRleCIsLTEpLHQuYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLnByZXYoKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pfSxfYW5pbWF0ZTpmdW5jdGlvbihlLGksdCl7dmFyIHMsbixhLG89dGhpcyxyPTAsaD1lLmNzcygiYm94LXNpemluZyIpLGw9ZS5sZW5ndGgmJighaS5sZW5ndGh8fGUuaW5kZXgoKTxpLmluZGV4KCkpLHU9dGhpcy5vcHRpb25zLmFuaW1hdGV8fHt9LGM9bCYmdS5kb3dufHx1LGw9ZnVuY3Rpb24oKXtvLl90b2dnbGVDb21wbGV0ZSh0KX07cmV0dXJuIG49KG49InN0cmluZyI9PXR5cGVvZiBjP2M6bil8fGMuZWFzaW5nfHx1LmVhc2luZyxhPShhPSJudW1iZXIiPT10eXBlb2YgYz9jOmEpfHxjLmR1cmF0aW9ufHx1LmR1cmF0aW9uLGkubGVuZ3RoP2UubGVuZ3RoPyhzPWUuc2hvdygpLm91dGVySGVpZ2h0KCksaS5hbmltYXRlKHRoaXMuaGlkZVByb3BzLHtkdXJhdGlvbjphLGVhc2luZzpuLHN0ZXA6ZnVuY3Rpb24oZSx0KXt0Lm5vdz1NYXRoLnJvdW5kKGUpfX0pLHZvaWQgZS5oaWRlKCkuYW5pbWF0ZSh0aGlzLnNob3dQcm9wcyx7ZHVyYXRpb246YSxlYXNpbmc6bixjb21wbGV0ZTpsLHN0ZXA6ZnVuY3Rpb24oZSx0KXt0Lm5vdz1NYXRoLnJvdW5kKGUpLCJoZWlnaHQiIT09dC5wcm9wPyJjb250ZW50LWJveCI9PT1oJiYocis9dC5ub3cpOiJjb250ZW50IiE9PW8ub3B0aW9ucy5oZWlnaHRTdHlsZSYmKHQubm93PU1hdGgucm91bmQocy1pLm91dGVySGVpZ2h0KCktcikscj0wKX19KSk6aS5hbmltYXRlKHRoaXMuaGlkZVByb3BzLGEsbixsKTplLmFuaW1hdGUodGhpcy5zaG93UHJvcHMsYSxuLGwpfSxfdG9nZ2xlQ29tcGxldGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vbGRQYW5lbCxpPXQucHJldigpO3RoaXMuX3JlbW92ZUNsYXNzKHQsInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpLHRoaXMuX3JlbW92ZUNsYXNzKGksInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIikuX2FkZENsYXNzKGksInVpLWFjY29yZGlvbi1oZWFkZXItY29sbGFwc2VkIiksdC5sZW5ndGgmJih0LnBhcmVudCgpWzBdLmNsYXNzTmFtZT10LnBhcmVudCgpWzBdLmNsYXNzTmFtZSksdGhpcy5fdHJpZ2dlcigiYWN0aXZhdGUiLG51bGwsZSl9fSksdS51aS5pZT0hIS9tc2llIFtcdy5dKy8uZXhlYyhuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkpO3ZhciBlLGE9ITE7dShkb2N1bWVudCkub24oIm1vdXNldXAiLGZ1bmN0aW9uKCl7YT0hMX0pO3Uud2lkZ2V0KCJ1aS5tb3VzZSIse3ZlcnNpb246IjEuMTMuMiIsb3B0aW9uczp7Y2FuY2VsOiJpbnB1dCwgdGV4dGFyZWEsIGJ1dHRvbiwgc2VsZWN0LCBvcHRpb24iLGRpc3RhbmNlOjEsZGVsYXk6MH0sX21vdXNlSW5pdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5lbGVtZW50Lm9uKCJtb3VzZWRvd24uIit0aGlzLndpZGdldE5hbWUsZnVuY3Rpb24oZSl7cmV0dXJuIHQuX21vdXNlRG93bihlKX0pLm9uKCJjbGljay4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihlKXtpZighMD09PXUuZGF0YShlLnRhcmdldCx0LndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpKXJldHVybiB1LnJlbW92ZURhdGEoZS50YXJnZXQsdC53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSxlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpLCExfSksdGhpcy5zdGFydGVkPSExfSxfbW91c2VEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50Lm9mZigiLiIrdGhpcy53aWRnZXROYW1lKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSYmdGhpcy5kb2N1bWVudC5vZmYoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkub2ZmKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSl9LF9tb3VzZURvd246ZnVuY3Rpb24oZSl7aWYoIWEpe3RoaXMuX21vdXNlTW92ZWQ9ITEsdGhpcy5fbW91c2VTdGFydGVkJiZ0aGlzLl9tb3VzZVVwKGUpLHRoaXMuX21vdXNlRG93bkV2ZW50PWU7dmFyIHQ9dGhpcyxpPTE9PT1lLndoaWNoLHM9ISgic3RyaW5nIiE9dHlwZW9mIHRoaXMub3B0aW9ucy5jYW5jZWx8fCFlLnRhcmdldC5ub2RlTmFtZSkmJnUoZS50YXJnZXQpLmNsb3Nlc3QodGhpcy5vcHRpb25zLmNhbmNlbCkubGVuZ3RoO3JldHVybiBpJiYhcyYmdGhpcy5fbW91c2VDYXB0dXJlKGUpPyh0aGlzLm1vdXNlRGVsYXlNZXQ9IXRoaXMub3B0aW9ucy5kZWxheSx0aGlzLm1vdXNlRGVsYXlNZXR8fCh0aGlzLl9tb3VzZURlbGF5VGltZXI9c2V0VGltZW91dChmdW5jdGlvbigpe3QubW91c2VEZWxheU1ldD0hMH0sdGhpcy5vcHRpb25zLmRlbGF5KSksdGhpcy5fbW91c2VEaXN0YW5jZU1ldChlKSYmdGhpcy5fbW91c2VEZWxheU1ldChlKSYmKHRoaXMuX21vdXNlU3RhcnRlZD0hMSE9PXRoaXMuX21vdXNlU3RhcnQoZSksIXRoaXMuX21vdXNlU3RhcnRlZCk\/KGUucHJldmVudERlZmF1bHQoKSwhMCk6KCEwPT09dS5kYXRhKGUudGFyZ2V0LHRoaXMud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IikmJnUucmVtb3ZlRGF0YShlLnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlPWZ1bmN0aW9uKGUpe3JldHVybiB0Ll9tb3VzZU1vdmUoZSl9LHRoaXMuX21vdXNlVXBEZWxlZ2F0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdC5fbW91c2VVcChlKX0sdGhpcy5kb2N1bWVudC5vbigibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5vbigibW91c2V1cC4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZVVwRGVsZWdhdGUpLGUucHJldmVudERlZmF1bHQoKSxhPSEwKSk6ITB9fSxfbW91c2VNb3ZlOmZ1bmN0aW9uKGUpe2lmKHRoaXMuX21vdXNlTW92ZWQpe2lmKHUudWkuaWUmJighZG9jdW1lbnQuZG9jdW1lbnRNb2RlfHxkb2N1bWVudC5kb2N1bWVudE1vZGU8OSkmJiFlLmJ1dHRvbilyZXR1cm4gdGhpcy5fbW91c2VVcChlKTtpZighZS53aGljaClpZihlLm9yaWdpbmFsRXZlbnQuYWx0S2V5fHxlLm9yaWdpbmFsRXZlbnQuY3RybEtleXx8ZS5vcmlnaW5hbEV2ZW50Lm1ldGFLZXl8fGUub3JpZ2luYWxFdmVudC5zaGlmdEtleSl0aGlzLmlnbm9yZU1pc3NpbmdXaGljaD0hMDtlbHNlIGlmKCF0aGlzLmlnbm9yZU1pc3NpbmdXaGljaClyZXR1cm4gdGhpcy5fbW91c2VVcChlKX1yZXR1cm4oZS53aGljaHx8ZS5idXR0b24pJiYodGhpcy5fbW91c2VNb3ZlZD0hMCksdGhpcy5fbW91c2VTdGFydGVkPyh0aGlzLl9tb3VzZURyYWcoZSksZS5wcmV2ZW50RGVmYXVsdCgpKToodGhpcy5fbW91c2VEaXN0YW5jZU1ldChlKSYmdGhpcy5fbW91c2VEZWxheU1ldChlKSYmKHRoaXMuX21vdXNlU3RhcnRlZD0hMSE9PXRoaXMuX21vdXNlU3RhcnQodGhpcy5fbW91c2VEb3duRXZlbnQsZSksdGhpcy5fbW91c2VTdGFydGVkP3RoaXMuX21vdXNlRHJhZyhlKTp0aGlzLl9tb3VzZVVwKGUpKSwhdGhpcy5fbW91c2VTdGFydGVkKX0sX21vdXNlVXA6ZnVuY3Rpb24oZSl7dGhpcy5kb2N1bWVudC5vZmYoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkub2ZmKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdGhpcy5fbW91c2VTdGFydGVkJiYodGhpcy5fbW91c2VTdGFydGVkPSExLGUudGFyZ2V0PT09dGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0JiZ1LmRhdGEoZS50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiLCEwKSx0aGlzLl9tb3VzZVN0b3AoZSkpLHRoaXMuX21vdXNlRGVsYXlUaW1lciYmKGNsZWFyVGltZW91dCh0aGlzLl9tb3VzZURlbGF5VGltZXIpLGRlbGV0ZSB0aGlzLl9tb3VzZURlbGF5VGltZXIpLHRoaXMuaWdub3JlTWlzc2luZ1doaWNoPSExLGE9ITEsZS5wcmV2ZW50RGVmYXVsdCgpfSxfbW91c2VEaXN0YW5jZU1ldDpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVgtZS5wYWdlWCksTWF0aC5hYnModGhpcy5fbW91c2VEb3duRXZlbnQucGFnZVktZS5wYWdlWSkpPj10aGlzLm9wdGlvbnMuZGlzdGFuY2V9LF9tb3VzZURlbGF5TWV0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubW91c2VEZWxheU1ldH0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXt9LF9tb3VzZURyYWc6ZnVuY3Rpb24oKXt9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oKXt9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24oKXtyZXR1cm4hMH19KSx1LndpZGdldCgidWkuc2xpZGVyIix1LnVpLm1vdXNlLHt2ZXJzaW9uOiIxLjEzLjIiLHdpZGdldEV2ZW50UHJlZml4OiJzbGlkZSIsb3B0aW9uczp7YW5pbWF0ZTohMSxjbGFzc2VzOnsidWktc2xpZGVyIjoidWktY29ybmVyLWFsbCIsInVpLXNsaWRlci1oYW5kbGUiOiJ1aS1jb3JuZXItYWxsIiwidWktc2xpZGVyLXJhbmdlIjoidWktY29ybmVyLWFsbCB1aS13aWRnZXQtaGVhZGVyIn0sZGlzdGFuY2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9hZGRDbGFzcygidWktc2xpZGVyIHVpLXNsaWRlci0iK3RoaXMub3JpZW50YXRpb24sInVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCIpLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9hbmltYXRlT2ZmPSExfSxfcmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuX2NyZWF0ZVJhbmdlKCksdGhpcy5fY3JlYXRlSGFuZGxlcygpLHRoaXMuX3NldHVwRXZlbnRzKCksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9jcmVhdGVIYW5kbGVzOmZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLm9wdGlvbnMsaT10aGlzLmVsZW1lbnQuZmluZCgiLnVpLXNsaWRlci1oYW5kbGUiKSxzPVtdLG49dC52YWx1ZXMmJnQudmFsdWVzLmxlbmd0aHx8MTtmb3IoaS5sZW5ndGg+biYmKGkuc2xpY2UobikucmVtb3ZlKCksaT1pLnNsaWNlKDAsbikpLGU9aS5sZW5ndGg7ZTxuO2UrKylzLnB1c2goIjxzcGFuIHRhYmluZGV4PScwJz48L3NwYW4+Iik7dGhpcy5oYW5kbGVzPWkuYWRkKHUocy5qb2luKCIiKSkuYXBwZW5kVG8odGhpcy5lbGVtZW50KSksdGhpcy5fYWRkQ2xhc3ModGhpcy5oYW5kbGVzLCJ1aS1zbGlkZXItaGFuZGxlIiwidWktc3RhdGUtZGVmYXVsdCIpLHRoaXMuaGFuZGxlPXRoaXMuaGFuZGxlcy5lcSgwKSx0aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihlKXt1KHRoaXMpLmRhdGEoInVpLXNsaWRlci1oYW5kbGUtaW5kZXgiLGUpLmF0dHIoInRhYkluZGV4IiwwKX0pfSxfY3JlYXRlUmFuZ2U6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnM7ZS5yYW5nZT8oITA9PT1lLnJhbmdlJiYoZS52YWx1ZXM\/ZS52YWx1ZXMubGVuZ3RoJiYyIT09ZS52YWx1ZXMubGVuZ3RoP2UudmFsdWVzPVtlLnZhbHVlc1swXSxlLnZhbHVlc1swXV06QXJyYXkuaXNBcnJheShlLnZhbHVlcykmJihlLnZhbHVlcz1lLnZhbHVlcy5zbGljZSgwKSk6ZS52YWx1ZXM9W3RoaXMuX3ZhbHVlTWluKCksdGhpcy5fdmFsdWVNaW4oKV0pLHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UubGVuZ3RoPyh0aGlzLl9yZW1vdmVDbGFzcyh0aGlzLnJhbmdlLCJ1aS1zbGlkZXItcmFuZ2UtbWluIHVpLXNsaWRlci1yYW5nZS1tYXgiKSx0aGlzLnJhbmdlLmNzcyh7bGVmdDoiIixib3R0b206IiJ9KSk6KHRoaXMucmFuZ2U9dSgiPGRpdj4iKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpLHRoaXMuX2FkZENsYXNzKHRoaXMucmFuZ2UsInVpLXNsaWRlci1yYW5nZSIpKSwibWluIiE9PWUucmFuZ2UmJiJtYXgiIT09ZS5yYW5nZXx8dGhpcy5fYWRkQ2xhc3ModGhpcy5yYW5nZSwidWktc2xpZGVyLXJhbmdlLSIrZS5yYW5nZSkpOih0aGlzLnJhbmdlJiZ0aGlzLnJhbmdlLnJlbW92ZSgpLHRoaXMucmFuZ2U9bnVsbCl9LF9zZXR1cEV2ZW50czpmdW5jdGlvbigpe3RoaXMuX29mZih0aGlzLmhhbmRsZXMpLHRoaXMuX29uKHRoaXMuaGFuZGxlcyx0aGlzLl9oYW5kbGVFdmVudHMpLHRoaXMuX2hvdmVyYWJsZSh0aGlzLmhhbmRsZXMpLHRoaXMuX2ZvY3VzYWJsZSh0aGlzLmhhbmRsZXMpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlcy5yZW1vdmUoKSx0aGlzLnJhbmdlJiZ0aGlzLnJhbmdlLnJlbW92ZSgpLHRoaXMuX21vdXNlRGVzdHJveSgpfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKGUpe3ZhciBpLHMsbixhLHQsbyxyPXRoaXMsaD10aGlzLm9wdGlvbnM7cmV0dXJuIWguZGlzYWJsZWQmJih0aGlzLmVsZW1lbnRTaXplPXt3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmVsZW1lbnQub3V0ZXJIZWlnaHQoKX0sdGhpcy5lbGVtZW50T2Zmc2V0PXRoaXMuZWxlbWVudC5vZmZzZXQoKSxvPXt4OmUucGFnZVgseTplLnBhZ2VZfSxpPXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZShvKSxzPXRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSsxLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKGUpe3ZhciB0PU1hdGguYWJzKGktci52YWx1ZXMoZSkpOyh0PHN8fHM9PT10JiYoZT09PXIuX2xhc3RDaGFuZ2VkVmFsdWV8fHIudmFsdWVzKGUpPT09aC5taW4pKSYmKHM9dCxuPXUodGhpcyksYT1lKX0pLCExIT09dGhpcy5fc3RhcnQoZSxhKSYmKHRoaXMuX21vdXNlU2xpZGluZz0hMCx0aGlzLl9oYW5kbGVJbmRleD1hLHRoaXMuX2FkZENsYXNzKG4sbnVsbCwidWktc3RhdGUtYWN0aXZlIiksbi50cmlnZ2VyKCJmb2N1cyIpLHQ9bi5vZmZzZXQoKSxvPSF1KGUudGFyZ2V0KS5wYXJlbnRzKCkuYWRkQmFjaygpLmlzKCIudWktc2xpZGVyLWhhbmRsZSIpLHRoaXMuX2NsaWNrT2Zmc2V0PW8\/e2xlZnQ6MCx0b3A6MH06e2xlZnQ6ZS5wYWdlWC10LmxlZnQtbi53aWR0aCgpLzIsdG9wOmUucGFnZVktdC50b3Atbi5oZWlnaHQoKS8yLShwYXJzZUludChuLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApLShwYXJzZUludChuLmNzcygiYm9yZGVyQm90dG9tV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChuLmNzcygibWFyZ2luVG9wIiksMTApfHwwKX0sdGhpcy5oYW5kbGVzLmhhc0NsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfHx0aGlzLl9zbGlkZShlLGEsaSksdGhpcy5fYW5pbWF0ZU9mZj0hMCkpfSxfbW91c2VTdGFydDpmdW5jdGlvbigpe3JldHVybiEwfSxfbW91c2VEcmFnOmZ1bmN0aW9uKGUpe3ZhciB0PXt4OmUucGFnZVgseTplLnBhZ2VZfSx0PXRoaXMuX25vcm1WYWx1ZUZyb21Nb3VzZSh0KTtyZXR1cm4gdGhpcy5fc2xpZGUoZSx0aGlzLl9oYW5kbGVJbmRleCx0KSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fcmVtb3ZlQ2xhc3ModGhpcy5oYW5kbGVzLG51bGwsInVpLXN0YXRlLWFjdGl2ZSIpLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9zdG9wKGUsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2NoYW5nZShlLHRoaXMuX2hhbmRsZUluZGV4KSx0aGlzLl9oYW5kbGVJbmRleD1udWxsLHRoaXMuX2NsaWNrT2Zmc2V0PW51bGwsdGhpcy5fYW5pbWF0ZU9mZj0hMX0sX2RldGVjdE9yaWVudGF0aW9uOmZ1bmN0aW9uKCl7dGhpcy5vcmllbnRhdGlvbj0idmVydGljYWwiPT09dGhpcy5vcHRpb25zLm9yaWVudGF0aW9uPyJ2ZXJ0aWNhbCI6Imhvcml6b250YWwifSxfbm9ybVZhbHVlRnJvbU1vdXNlOmZ1bmN0aW9uKGUpe3ZhciB0LGU9Imhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbj8odD10aGlzLmVsZW1lbnRTaXplLndpZHRoLGUueC10aGlzLmVsZW1lbnRPZmZzZXQubGVmdC0odGhpcy5fY2xpY2tPZmZzZXQ\/dGhpcy5fY2xpY2tPZmZzZXQubGVmdDowKSk6KHQ9dGhpcy5lbGVtZW50U2l6ZS5oZWlnaHQsZS55LXRoaXMuZWxlbWVudE9mZnNldC50b3AtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LnRvcDowKSksZT1lL3Q7cmV0dXJuKGU9MTxlPzE6ZSk8MCYmKGU9MCksInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJihlPTEtZSksdD10aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCksdD10aGlzLl92YWx1ZU1pbigpK2UqdCx0aGlzLl90cmltQWxpZ25WYWx1ZSh0KX0sX3VpSGFzaDpmdW5jdGlvbihlLHQsaSl7dmFyIHM9e2hhbmRsZTp0aGlzLmhhbmRsZXNbZV0saGFuZGxlSW5kZXg6ZSx2YWx1ZTp2b2lkIDAhPT10P3Q6dGhpcy52YWx1ZSgpfTtyZXR1cm4gdGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKSYmKHMudmFsdWU9dm9pZCAwIT09dD90OnRoaXMudmFsdWVzKGUpLHMudmFsdWVzPWl8fHRoaXMudmFsdWVzKCkpLHN9LF9oYXNNdWx0aXBsZVZhbHVlczpmdW5jdGlvbigpe3JldHVybiB0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aH0sX3N0YXJ0OmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3RyaWdnZXIoInN0YXJ0IixlLHRoaXMuX3VpSGFzaCh0KSl9LF9zbGlkZTpmdW5jdGlvbihlLHQsaSl7dmFyIHMsbj10aGlzLnZhbHVlKCksYT10aGlzLnZhbHVlcygpO3RoaXMuX2hhc011bHRpcGxlVmFsdWVzKCkmJihzPXRoaXMudmFsdWVzKHQ\/MDoxKSxuPXRoaXMudmFsdWVzKHQpLDI9PT10aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCYmITA9PT10aGlzLm9wdGlvbnMucmFuZ2UmJihpPTA9PT10P01hdGgubWluKHMsaSk6TWF0aC5tYXgocyxpKSksYVt0XT1pKSxpIT09biYmITEhPT10aGlzLl90cmlnZ2VyKCJzbGlkZSIsZSx0aGlzLl91aUhhc2godCxpLGEpKSYmKHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk\/dGhpcy52YWx1ZXModCxpKTp0aGlzLnZhbHVlKGkpKX0sX3N0b3A6ZnVuY3Rpb24oZSx0KXt0aGlzLl90cmlnZ2VyKCJzdG9wIixlLHRoaXMuX3VpSGFzaCh0KSl9LF9jaGFuZ2U6ZnVuY3Rpb24oZSx0KXt0aGlzLl9rZXlTbGlkaW5nfHx0aGlzLl9tb3VzZVNsaWRpbmd8fCh0aGlzLl9sYXN0Q2hhbmdlZFZhbHVlPXQsdGhpcy5fdHJpZ2dlcigiY2hhbmdlIixlLHRoaXMuX3VpSGFzaCh0KSkpfSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHZvaWQgdGhpcy5fY2hhbmdlKG51bGwsMCkpOnRoaXMuX3ZhbHVlKCl9LHZhbHVlczpmdW5jdGlvbihlLHQpe3ZhciBpLHMsbjtpZigxPGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXNbZV09dGhpcy5fdHJpbUFsaWduVmFsdWUodCksdGhpcy5fcmVmcmVzaFZhbHVlKCksdm9pZCB0aGlzLl9jaGFuZ2UobnVsbCxlKTtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdGhpcy5fdmFsdWVzKCk7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIHRoaXMuX2hhc011bHRpcGxlVmFsdWVzKCk\/dGhpcy5fdmFsdWVzKGUpOnRoaXMudmFsdWUoKTtmb3IoaT10aGlzLm9wdGlvbnMudmFsdWVzLHM9ZSxuPTA7bjxpLmxlbmd0aDtuKz0xKWlbbl09dGhpcy5fdHJpbUFsaWduVmFsdWUoc1tuXSksdGhpcy5fY2hhbmdlKG51bGwsbik7dGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt2YXIgaSxzPTA7c3dpdGNoKCJyYW5nZSI9PT1lJiYhMD09PXRoaXMub3B0aW9ucy5yYW5nZSYmKCJtaW4iPT09dD8odGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcygwKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpOiJtYXgiPT09dCYmKHRoaXMub3B0aW9ucy52YWx1ZT10aGlzLl92YWx1ZXModGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgtMSksdGhpcy5vcHRpb25zLnZhbHVlcz1udWxsKSksQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMudmFsdWVzKSYmKHM9dGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgpLHRoaXMuX3N1cGVyKGUsdCksZSl7Y2FzZSJvcmllbnRhdGlvbiI6dGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9yZW1vdmVDbGFzcygidWktc2xpZGVyLWhvcml6b250YWwgdWktc2xpZGVyLXZlcnRpY2FsIikuX2FkZENsYXNzKCJ1aS1zbGlkZXItIit0aGlzLm9yaWVudGF0aW9uKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLm9wdGlvbnMucmFuZ2UmJnRoaXMuX3JlZnJlc2hSYW5nZSh0KSx0aGlzLmhhbmRsZXMuY3NzKCJob3Jpem9udGFsIj09PXQ\/ImJvdHRvbSI6ImxlZnQiLCIiKTticmVhaztjYXNlInZhbHVlIjp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2NoYW5nZShudWxsLDApLHRoaXMuX2FuaW1hdGVPZmY9ITE7YnJlYWs7Y2FzZSJ2YWx1ZXMiOmZvcih0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLGk9cy0xOzA8PWk7aS0tKXRoaXMuX2NoYW5nZShudWxsLGkpO3RoaXMuX2FuaW1hdGVPZmY9ITE7YnJlYWs7Y2FzZSJzdGVwIjpjYXNlIm1pbiI6Y2FzZSJtYXgiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fY2FsY3VsYXRlTmV3TWF4KCksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInJhbmdlIjp0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9hbmltYXRlT2ZmPSExfX0sX3NldE9wdGlvbkRpc2FibGVkOmZ1bmN0aW9uKGUpe3RoaXMuX3N1cGVyKGUpLHRoaXMuX3RvZ2dsZUNsYXNzKG51bGwsInVpLXN0YXRlLWRpc2FibGVkIiwhIWUpfSxfdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnMudmFsdWU7cmV0dXJuIGU9dGhpcy5fdHJpbUFsaWduVmFsdWUoZSl9LF92YWx1ZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaTtpZihhcmd1bWVudHMubGVuZ3RoKXJldHVybiBlPXRoaXMub3B0aW9ucy52YWx1ZXNbZV0sZT10aGlzLl90cmltQWxpZ25WYWx1ZShlKTtpZih0aGlzLl9oYXNNdWx0aXBsZVZhbHVlcygpKXtmb3IodD10aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCksaT0wO2k8dC5sZW5ndGg7aSs9MSl0W2ldPXRoaXMuX3RyaW1BbGlnblZhbHVlKHRbaV0pO3JldHVybiB0fXJldHVybltdfSxfdHJpbUFsaWduVmFsdWU6ZnVuY3Rpb24oZSl7aWYoZTw9dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTtpZihlPj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgpO3ZhciB0PTA8dGhpcy5vcHRpb25zLnN0ZXA\/dGhpcy5vcHRpb25zLnN0ZXA6MSxpPShlLXRoaXMuX3ZhbHVlTWluKCkpJXQsZT1lLWk7cmV0dXJuIDIqTWF0aC5hYnMoaSk+PXQmJihlKz0wPGk\/dDotdCkscGFyc2VGbG9hdChlLnRvRml4ZWQoNSkpfSxfY2FsY3VsYXRlTmV3TWF4OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLm1heCx0PXRoaXMuX3ZhbHVlTWluKCksaT10aGlzLm9wdGlvbnMuc3RlcDsoZT1NYXRoLnJvdW5kKChlLXQpL2kpKmkrdCk+dGhpcy5vcHRpb25zLm1heCYmKGUtPWkpLHRoaXMubWF4PXBhcnNlRmxvYXQoZS50b0ZpeGVkKHRoaXMuX3ByZWNpc2lvbigpKSl9LF9wcmVjaXNpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9wcmVjaXNpb25PZih0aGlzLm9wdGlvbnMuc3RlcCk7cmV0dXJuIGU9bnVsbCE9PXRoaXMub3B0aW9ucy5taW4\/TWF0aC5tYXgoZSx0aGlzLl9wcmVjaXNpb25PZih0aGlzLm9wdGlvbnMubWluKSk6ZX0sX3ByZWNpc2lvbk9mOmZ1bmN0aW9uKGUpe3ZhciB0PWUudG9TdHJpbmcoKSxlPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09ZT8wOnQubGVuZ3RoLWUtMX0sX3ZhbHVlTWluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5taW59LF92YWx1ZU1heDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heH0sX3JlZnJlc2hSYW5nZTpmdW5jdGlvbihlKXsidmVydGljYWwiPT09ZSYmdGhpcy5yYW5nZS5jc3Moe3dpZHRoOiIiLGxlZnQ6IiJ9KSwiaG9yaXpvbnRhbCI9PT1lJiZ0aGlzLnJhbmdlLmNzcyh7aGVpZ2h0OiIiLGJvdHRvbToiIn0pfSxfcmVmcmVzaFZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsaSxlLHMsbixhPXRoaXMub3B0aW9ucy5yYW5nZSxvPXRoaXMub3B0aW9ucyxyPXRoaXMsaD0hdGhpcy5fYW5pbWF0ZU9mZiYmby5hbmltYXRlLGw9e307dGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihlKXtpPShyLnZhbHVlcyhlKS1yLl92YWx1ZU1pbigpKS8oci5fdmFsdWVNYXgoKS1yLl92YWx1ZU1pbigpKSoxMDAsbFsiaG9yaXpvbnRhbCI9PT1yLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09aSsiJSIsdSh0aGlzKS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKGwsby5hbmltYXRlKSwhMD09PXIub3B0aW9ucy5yYW5nZSYmKCJob3Jpem9udGFsIj09PXIub3JpZW50YXRpb24\/KDA9PT1lJiZyLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe2xlZnQ6aSsiJSJ9LG8uYW5pbWF0ZSksMT09PWUmJnIucmFuZ2VbaD8iYW5pbWF0ZSI6ImNzcyJdKHt3aWR0aDppLXQrIiUifSx7cXVldWU6ITEsZHVyYXRpb246by5hbmltYXRlfSkpOigwPT09ZSYmci5yYW5nZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKHtib3R0b206aSsiJSJ9LG8uYW5pbWF0ZSksMT09PWUmJnIucmFuZ2VbaD8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6aS10KyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOm8uYW5pbWF0ZX0pKSksdD1pfSk6KGU9dGhpcy52YWx1ZSgpLHM9dGhpcy5fdmFsdWVNaW4oKSxuPXRoaXMuX3ZhbHVlTWF4KCksaT1uIT09cz8oZS1zKS8obi1zKSoxMDA6MCxsWyJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24\/ImxlZnQiOiJib3R0b20iXT1pKyIlIix0aGlzLmhhbmRsZS5zdG9wKDEsMSlbaD8iYW5pbWF0ZSI6ImNzcyJdKGwsby5hbmltYXRlKSwibWluIj09PWEmJiJob3Jpem9udGFsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2g\/ImFuaW1hdGUiOiJjc3MiXSh7d2lkdGg6aSsiJSJ9LG8uYW5pbWF0ZSksIm1heCI9PT1hJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOjEwMC1pKyIlIn0sby5hbmltYXRlKSwibWluIj09PWEmJiJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDppKyIlIn0sby5hbmltYXRlKSwibWF4Ij09PWEmJiJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtoPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDoxMDAtaSsiJSJ9LG8uYW5pbWF0ZSkpfSxfaGFuZGxlRXZlbnRzOntrZXlkb3duOmZ1bmN0aW9uKGUpe3ZhciB0LGkscyxuPXUoZS50YXJnZXQpLmRhdGEoInVpLXNsaWRlci1oYW5kbGUtaW5kZXgiKTtzd2l0Y2goZS5rZXlDb2RlKXtjYXNlIHUudWkua2V5Q29kZS5IT01FOmNhc2UgdS51aS5rZXlDb2RlLkVORDpjYXNlIHUudWkua2V5Q29kZS5QQUdFX1VQOmNhc2UgdS51aS5rZXlDb2RlLlBBR0VfRE9XTjpjYXNlIHUudWkua2V5Q29kZS5VUDpjYXNlIHUudWkua2V5Q29kZS5SSUdIVDpjYXNlIHUudWkua2V5Q29kZS5ET1dOOmNhc2UgdS51aS5rZXlDb2RlLkxFRlQ6aWYoZS5wcmV2ZW50RGVmYXVsdCgpLCF0aGlzLl9rZXlTbGlkaW5nJiYodGhpcy5fa2V5U2xpZGluZz0hMCx0aGlzLl9hZGRDbGFzcyh1KGUudGFyZ2V0KSxudWxsLCJ1aS1zdGF0ZS1hY3RpdmUiKSwhMT09PXRoaXMuX3N0YXJ0KGUsbikpKXJldHVybn1zd2l0Y2gocz10aGlzLm9wdGlvbnMuc3RlcCx0PWk9dGhpcy5faGFzTXVsdGlwbGVWYWx1ZXMoKT90aGlzLnZhbHVlcyhuKTp0aGlzLnZhbHVlKCksZS5rZXlDb2RlKXtjYXNlIHUudWkua2V5Q29kZS5IT01FOmk9dGhpcy5fdmFsdWVNaW4oKTticmVhaztjYXNlIHUudWkua2V5Q29kZS5FTkQ6aT10aGlzLl92YWx1ZU1heCgpO2JyZWFrO2Nhc2UgdS51aS5rZXlDb2RlLlBBR0VfVVA6aT10aGlzLl90cmltQWxpZ25WYWx1ZSh0Kyh0aGlzLl92YWx1ZU1heCgpLXRoaXMuX3ZhbHVlTWluKCkpL3RoaXMubnVtUGFnZXMpO2JyZWFrO2Nhc2UgdS51aS5rZXlDb2RlLlBBR0VfRE9XTjppPXRoaXMuX3RyaW1BbGlnblZhbHVlKHQtKHRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSkvdGhpcy5udW1QYWdlcyk7YnJlYWs7Y2FzZSB1LnVpLmtleUNvZGUuVVA6Y2FzZSB1LnVpLmtleUNvZGUuUklHSFQ6aWYodD09PXRoaXMuX3ZhbHVlTWF4KCkpcmV0dXJuO2k9dGhpcy5fdHJpbUFsaWduVmFsdWUodCtzKTticmVhaztjYXNlIHUudWkua2V5Q29kZS5ET1dOOmNhc2UgdS51aS5rZXlDb2RlLkxFRlQ6aWYodD09PXRoaXMuX3ZhbHVlTWluKCkpcmV0dXJuO2k9dGhpcy5fdHJpbUFsaWduVmFsdWUodC1zKX10aGlzLl9zbGlkZShlLG4saSl9LGtleXVwOmZ1bmN0aW9uKGUpe3ZhciB0PXUoZS50YXJnZXQpLmRhdGEoInVpLXNsaWRlci1oYW5kbGUtaW5kZXgiKTt0aGlzLl9rZXlTbGlkaW5nJiYodGhpcy5fa2V5U2xpZGluZz0hMSx0aGlzLl9zdG9wKGUsdCksdGhpcy5fY2hhbmdlKGUsdCksdGhpcy5fcmVtb3ZlQ2xhc3ModShlLnRhcmdldCksbnVsbCwidWktc3RhdGUtYWN0aXZlIikpfX19KTt2YXIgaD11LGw9e30sYz1sLnRvU3RyaW5nLGQ9L14oW1wtK10pPVxzKihcZCtcLj9cZCopLyxmPVt7cmU6L3JnYmE\/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKig\/OixccyooXGQ\/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bZVsxXSxlWzJdLGVbM10sZVs0XV19fSx7cmU6L3JnYmE\/XChccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig\/OixccyooXGQ\/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bMi41NSplWzFdLDIuNTUqZVsyXSwyLjU1KmVbM10sZVs0XV19fSx7cmU6LyMoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkoW2EtZjAtOV17Mn0pPy8scGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuW3BhcnNlSW50KGVbMV0sMTYpLHBhcnNlSW50KGVbMl0sMTYpLHBhcnNlSW50KGVbM10sMTYpLGVbNF0\/KHBhcnNlSW50KGVbNF0sMTYpLzI1NSkudG9GaXhlZCgyKToxXX19LHtyZTovIyhbYS1mMC05XSkoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSk\/LyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bcGFyc2VJbnQoZVsxXStlWzFdLDE2KSxwYXJzZUludChlWzJdK2VbMl0sMTYpLHBhcnNlSW50KGVbM10rZVszXSwxNiksZVs0XT8ocGFyc2VJbnQoZVs0XStlWzRdLDE2KS8yNTUpLnRvRml4ZWQoMik6MV19fSx7cmU6L2hzbGE\/XChccyooXGQrKD86XC5cZCspPylccyosXHMqKFxkKyg\/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg\/OlwuXGQrKT8pXCVccyooPzosXHMqKFxkPyg\/OlwuXGQrKT8pXHMqKT9cKS8sc3BhY2U6ImhzbGEiLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF1dfX1dLHA9aC5Db2xvcj1mdW5jdGlvbihlLHQsaSxzKXtyZXR1cm4gbmV3IGguQ29sb3IuZm4ucGFyc2UoZSx0LGkscyl9LGc9e3JnYmE6e3Byb3BzOntyZWQ6e2lkeDowLHR5cGU6ImJ5dGUifSxncmVlbjp7aWR4OjEsdHlwZToiYnl0ZSJ9LGJsdWU6e2lkeDoyLHR5cGU6ImJ5dGUifX19LGhzbGE6e3Byb3BzOntodWU6e2lkeDowLHR5cGU6ImRlZ3JlZXMifSxzYXR1cmF0aW9uOntpZHg6MSx0eXBlOiJwZXJjZW50In0sbGlnaHRuZXNzOntpZHg6Mix0eXBlOiJwZXJjZW50In19fX0sbT17Ynl0ZTp7Zmxvb3I6ITAsbWF4OjI1NX0scGVyY2VudDp7bWF4OjF9LGRlZ3JlZXM6e21vZDozNjAsZmxvb3I6ITB9fSx2PXAuc3VwcG9ydD17fSxfPWgoIjxwPiIpWzBdLHk9aC5lYWNoO2Z1bmN0aW9uIGIoZSl7cmV0dXJuIG51bGw9PWU\/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGU\/bFtjLmNhbGwoZSldfHwib2JqZWN0Ijp0eXBlb2YgZX1mdW5jdGlvbiB4KGUsdCxpKXt2YXIgcz1tW3QudHlwZV18fHt9O3JldHVybiBudWxsPT1lP2l8fCF0LmRlZj9udWxsOnQuZGVmOihlPXMuZmxvb3I\/fn5lOnBhcnNlRmxvYXQoZSksaXNOYU4oZSk\/dC5kZWY6cy5tb2Q\/KGUrcy5tb2QpJXMubW9kOk1hdGgubWluKHMubWF4LE1hdGgubWF4KDAsZSkpKX1mdW5jdGlvbiB3KHMpe3ZhciBuPXAoKSxhPW4uX3JnYmE9W107cmV0dXJuIHM9cy50b0xvd2VyQ2FzZSgpLHkoZixmdW5jdGlvbihlLHQpe3ZhciBpPXQucmUuZXhlYyhzKSxpPWkmJnQucGFyc2UoaSksdD10LnNwYWNlfHwicmdiYSI7aWYoaSlyZXR1cm4gaT1uW3RdKGkpLG5bZ1t0XS5jYWNoZV09aVtnW3RdLmNhY2hlXSxhPW4uX3JnYmE9aS5fcmdiYSwhMX0pLGEubGVuZ3RoPygiMCwwLDAsMCI9PT1hLmpvaW4oKSYmaC5leHRlbmQoYSxILnRyYW5zcGFyZW50KSxuKTpIW3NdfWZ1bmN0aW9uIEMoZSx0LGkpe3JldHVybiA2KihpPShpKzEpJTEpPDE\/ZSsodC1lKSppKjY6MippPDE\/dDozKmk8Mj9lKyh0LWUpKigyLzMtaSkqNjplfV8uc3R5bGUuY3NzVGV4dD0iYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDEsMSwxLC41KSIsdi5yZ2JhPS0xPF8uc3R5bGUuYmFja2dyb3VuZENvbG9yLmluZGV4T2YoInJnYmEiKSx5KGcsZnVuY3Rpb24oZSx0KXt0LmNhY2hlPSJfIitlLHQucHJvcHMuYWxwaGE9e2lkeDozLHR5cGU6InBlcmNlbnQiLGRlZjoxfX0pLGguZWFjaCgiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2wiLnNwbGl0KCIgIiksZnVuY3Rpb24oZSx0KXtsWyJbb2JqZWN0ICIrdCsiXSJdPXQudG9Mb3dlckNhc2UoKX0pLChwLmZuPWguZXh0ZW5kKHAucHJvdG90eXBlLHtwYXJzZTpmdW5jdGlvbihuLGUsdCxpKXtpZih2b2lkIDA9PT1uKXJldHVybiB0aGlzLl9yZ2JhPVtudWxsLG51bGwsbnVsbCxudWxsXSx0aGlzOyhuLmpxdWVyeXx8bi5ub2RlVHlwZSkmJihuPWgobikuY3NzKGUpLGU9dm9pZCAwKTt2YXIgYT10aGlzLHM9YihuKSxvPXRoaXMuX3JnYmE9W107cmV0dXJuIHZvaWQgMCE9PWUmJihuPVtuLGUsdCxpXSxzPSJhcnJheSIpLCJzdHJpbmciPT09cz90aGlzLnBhcnNlKHcobil8fEguX2RlZmF1bHQpOiJhcnJheSI9PT1zPyh5KGcucmdiYS5wcm9wcyxmdW5jdGlvbihlLHQpe29bdC5pZHhdPXgoblt0LmlkeF0sdCl9KSx0aGlzKToib2JqZWN0Ij09PXM\/KHkoZyxuIGluc3RhbmNlb2YgcD9mdW5jdGlvbihlLHQpe25bdC5jYWNoZV0mJihhW3QuY2FjaGVdPW5bdC5jYWNoZV0uc2xpY2UoKSl9OmZ1bmN0aW9uKGUsaSl7dmFyIHM9aS5jYWNoZTt5KGkucHJvcHMsZnVuY3Rpb24oZSx0KXtpZighYVtzXSYmaS50byl7aWYoImFscGhhIj09PWV8fG51bGw9PW5bZV0pcmV0dXJuO2Fbc109aS50byhhLl9yZ2JhKX1hW3NdW3QuaWR4XT14KG5bZV0sdCwhMCl9KSxhW3NdJiZoLmluQXJyYXkobnVsbCxhW3NdLnNsaWNlKDAsMykpPDAmJihudWxsPT1hW3NdWzNdJiYoYVtzXVszXT0xKSxpLmZyb20mJihhLl9yZ2JhPWkuZnJvbShhW3NdKSkpfSksdGhpcyk6dm9pZCAwfSxpczpmdW5jdGlvbihlKXt2YXIgbj1wKGUpLGE9ITAsbz10aGlzO3JldHVybiB5KGcsZnVuY3Rpb24oZSx0KXt2YXIgaSxzPW5bdC5jYWNoZV07cmV0dXJuIHMmJihpPW9bdC5jYWNoZV18fHQudG8mJnQudG8oby5fcmdiYSl8fFtdLHkodC5wcm9wcyxmdW5jdGlvbihlLHQpe2lmKG51bGwhPXNbdC5pZHhdKXJldHVybiBhPXNbdC5pZHhdPT09aVt0LmlkeF19KSksYX0pLGF9LF9zcGFjZTpmdW5jdGlvbigpe3ZhciBpPVtdLHM9dGhpcztyZXR1cm4geShnLGZ1bmN0aW9uKGUsdCl7c1t0LmNhY2hlXSYmaS5wdXNoKGUpfSksaS5wb3AoKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLG8pe3ZhciB0PShsPXAoZSkpLl9zcGFjZSgpLGk9Z1t0XSxlPTA9PT10aGlzLmFscGhhKCk\/cCgidHJhbnNwYXJlbnQiKTp0aGlzLHI9ZVtpLmNhY2hlXXx8aS50byhlLl9yZ2JhKSxoPXIuc2xpY2UoKSxsPWxbaS5jYWNoZV07cmV0dXJuIHkoaS5wcm9wcyxmdW5jdGlvbihlLHQpe3ZhciBpPXQuaWR4LHM9cltpXSxuPWxbaV0sYT1tW3QudHlwZV18fHt9O251bGwhPT1uJiYobnVsbD09PXM\/aFtpXT1uOihhLm1vZCYmKG4tcz5hLm1vZC8yP3MrPWEubW9kOnMtbj5hLm1vZC8yJiYocy09YS5tb2QpKSxoW2ldPXgoKG4tcykqbytzLHQpKSl9KSx0aGlzW3RdKGgpfSxibGVuZDpmdW5jdGlvbihlKXtpZigxPT09dGhpcy5fcmdiYVszXSlyZXR1cm4gdGhpczt2YXIgdD10aGlzLl9yZ2JhLnNsaWNlKCksaT10LnBvcCgpLHM9cChlKS5fcmdiYTtyZXR1cm4gcChoLm1hcCh0LGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDEtaSkqc1t0XStpKmV9KSl9LHRvUmdiYVN0cmluZzpmdW5jdGlvbigpe3ZhciBlPSJyZ2JhKCIsdD1oLm1hcCh0aGlzLl9yZ2JhLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGwhPWU\/ZToyPHQ\/MTowfSk7cmV0dXJuIDE9PT10WzNdJiYodC5wb3AoKSxlPSJyZ2IoIiksZSt0LmpvaW4oKSsiKSJ9LHRvSHNsYVN0cmluZzpmdW5jdGlvbigpe3ZhciBlPSJoc2xhKCIsdD1oLm1hcCh0aGlzLmhzbGEoKSxmdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lJiYoZT0yPHQ\/MTowKSxlPXQmJnQ8Mz9NYXRoLnJvdW5kKDEwMCplKSsiJSI6ZX0pO3JldHVybiAxPT09dFszXSYmKHQucG9wKCksZT0iaHNsKCIpLGUrdC5qb2luKCkrIikifSx0b0hleFN0cmluZzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl9yZ2JhLnNsaWNlKCksaT10LnBvcCgpO3JldHVybiBlJiZ0LnB1c2gofn4oMjU1KmkpKSwiIyIraC5tYXAodCxmdW5jdGlvbihlKXtyZXR1cm4gMT09PShlPShlfHwwKS50b1N0cmluZygxNikpLmxlbmd0aD8iMCIrZTplfSkuam9pbigiIil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLl9yZ2JhWzNdPyJ0cmFuc3BhcmVudCI6dGhpcy50b1JnYmFTdHJpbmcoKX19KSkucGFyc2UucHJvdG90eXBlPXAuZm4sZy5oc2xhLnRvPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWVbMF18fG51bGw9PWVbMV18fG51bGw9PWVbMl0pcmV0dXJuW251bGwsbnVsbCxudWxsLGVbM11dO3ZhciB0PWVbMF0vMjU1LGk9ZVsxXS8yNTUscz1lWzJdLzI1NSxuPWVbM10sYT1NYXRoLm1heCh0LGkscyksbz1NYXRoLm1pbih0LGkscykscj1hLW8saD1hK28sZT0uNSpoLGk9bz09PWE\/MDp0PT09YT82MCooaS1zKS9yKzM2MDppPT09YT82MCoocy10KS9yKzEyMDo2MCoodC1pKS9yKzI0MCxoPTA9PXI\/MDplPD0uNT9yL2g6ci8oMi1oKTtyZXR1cm5bTWF0aC5yb3VuZChpKSUzNjAsaCxlLG51bGw9PW4\/MTpuXX0sZy5oc2xhLmZyb209ZnVuY3Rpb24oZSl7aWYobnVsbD09ZVswXXx8bnVsbD09ZVsxXXx8bnVsbD09ZVsyXSlyZXR1cm5bbnVsbCxudWxsLG51bGwsZVszXV07dmFyIHQ9ZVswXS8zNjAsaT1lWzFdLHM9ZVsyXSxlPWVbM10saT1zPD0uNT9zKigxK2kpOnMraS1zKmkscz0yKnMtaTtyZXR1cm5bTWF0aC5yb3VuZCgyNTUqQyhzLGksdCsxLzMpKSxNYXRoLnJvdW5kKDI1NSpDKHMsaSx0KSksTWF0aC5yb3VuZCgyNTUqQyhzLGksdC0xLzMpKSxlXX0seShnLGZ1bmN0aW9uKGgsZSl7dmFyIHQ9ZS5wcm9wcyxhPWUuY2FjaGUsbz1lLnRvLHI9ZS5mcm9tO3AuZm5baF09ZnVuY3Rpb24oZSl7aWYobyYmIXRoaXNbYV0mJih0aGlzW2FdPW8odGhpcy5fcmdiYSkpLHZvaWQgMD09PWUpcmV0dXJuIHRoaXNbYV0uc2xpY2UoKTt2YXIgaT1iKGUpLHM9ImFycmF5Ij09PWl8fCJvYmplY3QiPT09aT9lOmFyZ3VtZW50cyxuPXRoaXNbYV0uc2xpY2UoKTtyZXR1cm4geSh0LGZ1bmN0aW9uKGUsdCl7ZT1zWyJvYmplY3QiPT09aT9lOnQuaWR4XTtudWxsPT1lJiYoZT1uW3QuaWR4XSksblt0LmlkeF09eChlLHQpfSkscj8oKGU9cChyKG4pKSlbYV09bixlKTpwKG4pfSx5KHQsZnVuY3Rpb24obyxyKXtwLmZuW29dfHwocC5mbltvXT1mdW5jdGlvbihlKXt2YXIgdCxpPWIoZSkscz0iYWxwaGEiPT09bz90aGlzLl9oc2xhPyJoc2xhIjoicmdiYSI6aCxuPXRoaXNbc10oKSxhPW5bci5pZHhdO3JldHVybiJ1bmRlZmluZWQiPT09aT9hOigiZnVuY3Rpb24iPT09aSYmKGk9YihlPWUuY2FsbCh0aGlzLGEpKSksbnVsbD09ZSYmci5lbXB0eT90aGlzOigic3RyaW5nIj09PWkmJih0PWQuZXhlYyhlKSkmJihlPWErcGFyc2VGbG9hdCh0WzJdKSooIisiPT09dFsxXT8xOi0xKSksbltyLmlkeF09ZSx0aGlzW3NdKG4pKSl9KX0pfSksKHAuaG9vaz1mdW5jdGlvbihlKXtlPWUuc3BsaXQoIiAiKTt5KGUsZnVuY3Rpb24oZSxhKXtoLmNzc0hvb2tzW2FdPXtzZXQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49IiI7aWYoInRyYW5zcGFyZW50IiE9PXQmJigic3RyaW5nIiE9PWIodCl8fChpPXcodCkpKSl7aWYodD1wKGl8fHQpLCF2LnJnYmEmJjEhPT10Ll9yZ2JhWzNdKXtmb3Iocz0iYmFja2dyb3VuZENvbG9yIj09PWE\/ZS5wYXJlbnROb2RlOmU7KCIiPT09bnx8InRyYW5zcGFyZW50Ij09PW4pJiZzJiZzLnN0eWxlOyl0cnl7bj1oLmNzcyhzLCJiYWNrZ3JvdW5kQ29sb3IiKSxzPXMucGFyZW50Tm9kZX1jYXRjaChlKXt9dD10LmJsZW5kKG4mJiJ0cmFuc3BhcmVudCIhPT1uP246Il9kZWZhdWx0Iil9dD10LnRvUmdiYVN0cmluZygpfXRyeXtlLnN0eWxlW2FdPXR9Y2F0Y2goZSl7fX19LGguZnguc3RlcFthXT1mdW5jdGlvbihlKXtlLmNvbG9ySW5pdHx8KGUuc3RhcnQ9cChlLmVsZW0sYSksZS5lbmQ9cChlLmVuZCksZS5jb2xvckluaXQ9ITApLGguY3NzSG9va3NbYV0uc2V0KGUuZWxlbSxlLnN0YXJ0LnRyYW5zaXRpb24oZS5lbmQsZS5wb3MpKX19KX0pKCJiYWNrZ3JvdW5kQ29sb3IgYm9yZGVyQm90dG9tQ29sb3IgYm9yZGVyTGVmdENvbG9yIGJvcmRlclJpZ2h0Q29sb3IgYm9yZGVyVG9wQ29sb3IgY29sb3IgY29sdW1uUnVsZUNvbG9yIG91dGxpbmVDb2xvciB0ZXh0RGVjb3JhdGlvbkNvbG9yIHRleHRFbXBoYXNpc0NvbG9yIiksaC5jc3NIb29rcy5ib3JkZXJDb2xvcj17ZXhwYW5kOmZ1bmN0aW9uKGkpe3ZhciBzPXt9O3JldHVybiB5KFsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sZnVuY3Rpb24oZSx0KXtzWyJib3JkZXIiK3QrIkNvbG9yIl09aX0pLHN9fTt2YXIgTSxrLEQsRSxTLE8sSSxOLEEsUCxIPWguQ29sb3IubmFtZXM9e2FxdWE6IiMwMGZmZmYiLGJsYWNrOiIjMDAwMDAwIixibHVlOiIjMDAwMGZmIixmdWNoc2lhOiIjZmYwMGZmIixncmF5OiIjODA4MDgwIixncmVlbjoiIzAwODAwMCIsbGltZToiIzAwZmYwMCIsbWFyb29uOiIjODAwMDAwIixuYXZ5OiIjMDAwMDgwIixvbGl2ZToiIzgwODAwMCIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHNpbHZlcjoiI2MwYzBjMCIsdGVhbDoiIzAwODA4MCIsd2hpdGU6IiNmZmZmZmYiLHllbGxvdzoiI2ZmZmYwMCIsdHJhbnNwYXJlbnQ6W251bGwsbnVsbCxudWxsLDBdLF9kZWZhdWx0OiIjZmZmZmZmIn0sVD0idWktZWZmZWN0cy0iLFc9InVpLWVmZmVjdHMtc3R5bGUiLFY9InVpLWVmZmVjdHMtYW5pbWF0ZWQiO2Z1bmN0aW9uIEYoZSl7dmFyIHQsaSxzPWUub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldz9lLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShlLG51bGwpOmUuY3VycmVudFN0eWxlLG49e307aWYocyYmcy5sZW5ndGgmJnNbMF0mJnNbc1swXV0pZm9yKGk9cy5sZW5ndGg7aS0tOykic3RyaW5nIj09dHlwZW9mIHNbdD1zW2ldXSYmKG5bdC5yZXBsYWNlKC8tKFtcZGEtel0pL2dpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQudG9VcHBlckNhc2UoKX0pXT1zW3RdKTtlbHNlIGZvcih0IGluIHMpInN0cmluZyI9PXR5cGVvZiBzW3RdJiYoblt0XT1zW3RdKTtyZXR1cm4gbn1mdW5jdGlvbiBxKGUsdCxpLHMpe3JldHVybiBlPXtlZmZlY3Q6ZT11LmlzUGxhaW5PYmplY3QoZSk\/KHQ9ZSkuZWZmZWN0OmV9LCJmdW5jdGlvbiI9PXR5cGVvZih0PW51bGw9PXQ\/e306dCkmJihzPXQsaT1udWxsLHQ9e30pLCJudW1iZXIiIT10eXBlb2YgdCYmIXUuZnguc3BlZWRzW3RdfHwocz1pLGk9dCx0PXt9KSwiZnVuY3Rpb24iPT10eXBlb2YgaSYmKHM9aSxpPW51bGwpLHQmJnUuZXh0ZW5kKGUsdCksaT1pfHx0LmR1cmF0aW9uLGUuZHVyYXRpb249dS5meC5vZmY\/MDoibnVtYmVyIj09dHlwZW9mIGk\/aTppIGluIHUuZnguc3BlZWRzP3UuZnguc3BlZWRzW2ldOnUuZnguc3BlZWRzLl9kZWZhdWx0LGUuY29tcGxldGU9c3x8dC5jb21wbGV0ZSxlfWZ1bmN0aW9uIEwoZSl7cmV0dXJuIWV8fCJudW1iZXIiPT10eXBlb2YgZXx8dS5meC5zcGVlZHNbZV18fCgic3RyaW5nIj09dHlwZW9mIGUmJiF1LmVmZmVjdHMuZWZmZWN0W2VdfHwoImZ1bmN0aW9uIj09dHlwZW9mIGV8fCJvYmplY3QiPT10eXBlb2YgZSYmIWUuZWZmZWN0KSl9ZnVuY3Rpb24gQihlLHQpe3ZhciBpPXQub3V0ZXJXaWR0aCgpLHQ9dC5vdXRlckhlaWdodCgpLGU9L15yZWN0XCgoLT9cZCpcLj9cZCpweHwtP1xkKyV8YXV0byksP1xzKigtP1xkKlwuP1xkKnB4fC0\/XGQrJXxhdXRvKSw\/XHMqKC0\/XGQqXC4\/XGQqcHh8LT9cZCslfGF1dG8pLD9ccyooLT9cZCpcLj9cZCpweHwtP1xkKyV8YXV0bylcKSQvLmV4ZWMoZSl8fFsiIiwwLGksdCwwXTtyZXR1cm57dG9wOnBhcnNlRmxvYXQoZVsxXSl8fDAscmlnaHQ6ImF1dG8iPT09ZVsyXT9pOnBhcnNlRmxvYXQoZVsyXSksYm90dG9tOiJhdXRvIj09PWVbM10\/dDpwYXJzZUZsb2F0KGVbM10pLGxlZnQ6cGFyc2VGbG9hdChlWzRdKXx8MH19dS5lZmZlY3RzPXtlZmZlY3Q6e319LEU9WyJhZGQiLCJyZW1vdmUiLCJ0b2dnbGUiXSxTPXtib3JkZXI6MSxib3JkZXJCb3R0b206MSxib3JkZXJDb2xvcjoxLGJvcmRlckxlZnQ6MSxib3JkZXJSaWdodDoxLGJvcmRlclRvcDoxLGJvcmRlcldpZHRoOjEsbWFyZ2luOjEscGFkZGluZzoxfSx1LmVhY2goWyJib3JkZXJMZWZ0U3R5bGUiLCJib3JkZXJSaWdodFN0eWxlIiwiYm9yZGVyQm90dG9tU3R5bGUiLCJib3JkZXJUb3BTdHlsZSJdLGZ1bmN0aW9uKGUsdCl7dS5meC5zdGVwW3RdPWZ1bmN0aW9uKGUpeygibm9uZSIhPT1lLmVuZCYmIWUuc2V0QXR0cnx8MT09PWUucG9zJiYhZS5zZXRBdHRyKSYmKGguc3R5bGUoZS5lbGVtLHQsZS5lbmQpLGUuc2V0QXR0cj0hMCl9fSksdS5mbi5hZGRCYWNrfHwodS5mbi5hZGRCYWNrPWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmFkZChudWxsPT1lP3RoaXMucHJldk9iamVjdDp0aGlzLnByZXZPYmplY3QuZmlsdGVyKGUpKX0pLHUuZWZmZWN0cy5hbmltYXRlQ2xhc3M9ZnVuY3Rpb24obixlLHQsaSl7dmFyIGE9dS5zcGVlZChlLHQsaSk7cmV0dXJuIHRoaXMucXVldWUoZnVuY3Rpb24oKXt2YXIgaT11KHRoaXMpLGU9aS5hdHRyKCJjbGFzcyIpfHwiIix0PSh0PWEuY2hpbGRyZW4\/aS5maW5kKCIqIikuYWRkQmFjaygpOmkpLm1hcChmdW5jdGlvbigpe3JldHVybntlbDp1KHRoaXMpLHN0YXJ0OkYodGhpcyl9fSkscz1mdW5jdGlvbigpe3UuZWFjaChFLGZ1bmN0aW9uKGUsdCl7blt0XSYmaVt0KyJDbGFzcyJdKG5bdF0pfSl9O3MoKSx0PXQubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZW5kPUYodGhpcy5lbFswXSksdGhpcy5kaWZmPWZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPXt9O2ZvcihpIGluIHQpcz10W2ldLGVbaV0hPT1zJiYoU1tpXXx8IXUuZnguc3RlcFtpXSYmaXNOYU4ocGFyc2VGbG9hdChzKSl8fChuW2ldPXMpKTtyZXR1cm4gbn0odGhpcy5zdGFydCx0aGlzLmVuZCksdGhpc30pLGkuYXR0cigiY2xhc3MiLGUpLHQ9dC5tYXAoZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dS5EZWZlcnJlZCgpLGk9dS5leHRlbmQoe30sYSx7cXVldWU6ITEsY29tcGxldGU6ZnVuY3Rpb24oKXt0LnJlc29sdmUoZSl9fSk7cmV0dXJuIHRoaXMuZWwuYW5pbWF0ZSh0aGlzLmRpZmYsaSksdC5wcm9taXNlKCl9KSx1LndoZW4uYXBwbHkodSx0LmdldCgpKS5kb25lKGZ1bmN0aW9uKCl7cygpLHUuZWFjaChhcmd1bWVudHMsZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsO3UuZWFjaCh0aGlzLmRpZmYsZnVuY3Rpb24oZSl7dC5jc3MoZSwiIil9KX0pLGEuY29tcGxldGUuY2FsbChpWzBdKX0pfSl9LHUuZm4uZXh0ZW5kKHthZGRDbGFzczooRD11LmZuLmFkZENsYXNzLGZ1bmN0aW9uKGUsdCxpLHMpe3JldHVybiB0P3UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHthZGQ6ZX0sdCxpLHMpOkQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkscmVtb3ZlQ2xhc3M6KGs9dS5mbi5yZW1vdmVDbGFzcyxmdW5jdGlvbihlLHQsaSxzKXtyZXR1cm4gMTxhcmd1bWVudHMubGVuZ3RoP3UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHtyZW1vdmU6ZX0sdCxpLHMpOmsuYXBwbHkodGhpcyxhcmd1bWVudHMpfSksdG9nZ2xlQ2xhc3M6KE09dS5mbi50b2dnbGVDbGFzcyxmdW5jdGlvbihlLHQsaSxzLG4pe3JldHVybiJib29sZWFuIj09dHlwZW9mIHR8fHZvaWQgMD09PXQ\/aT91LmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx0P3thZGQ6ZX06e3JlbW92ZTplfSxpLHMsbik6TS5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dS5lZmZlY3RzLmFuaW1hdGVDbGFzcy5jYWxsKHRoaXMse3RvZ2dsZTplfSx0LGkscyl9KSxzd2l0Y2hDbGFzczpmdW5jdGlvbihlLHQsaSxzLG4pe3JldHVybiB1LmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7YWRkOnQscmVtb3ZlOmV9LGkscyxuKX19KSx1LmV4cHImJnUuZXhwci5wc2V1ZG9zJiZ1LmV4cHIucHNldWRvcy5hbmltYXRlZCYmKHUuZXhwci5wc2V1ZG9zLmFuaW1hdGVkPShPPXUuZXhwci5wc2V1ZG9zLmFuaW1hdGVkLGZ1bmN0aW9uKGUpe3JldHVybiEhdShlKS5kYXRhKFYpfHxPKGUpfSkpLCExIT09dS51aUJhY2tDb21wYXQmJnUuZXh0ZW5kKHUuZWZmZWN0cyx7c2F2ZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgaT0wLHM9dC5sZW5ndGg7aTxzO2krKyludWxsIT09dFtpXSYmZS5kYXRhKFQrdFtpXSxlWzBdLnN0eWxlW3RbaV1dKX0scmVzdG9yZTpmdW5jdGlvbihlLHQpe2Zvcih2YXIgaSxzPTAsbj10Lmxlbmd0aDtzPG47cysrKW51bGwhPT10W3NdJiYoaT1lLmRhdGEoVCt0W3NdKSxlLmNzcyh0W3NdLGkpKX0sc2V0TW9kZTpmdW5jdGlvbihlLHQpe3JldHVybiB0PSJ0b2dnbGUiPT09dD9lLmlzKCI6aGlkZGVuIik\/InNob3ciOiJoaWRlIjp0fSxjcmVhdGVXcmFwcGVyOmZ1bmN0aW9uKGkpe2lmKGkucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKSlyZXR1cm4gaS5wYXJlbnQoKTt2YXIgcz17d2lkdGg6aS5vdXRlcldpZHRoKCEwKSxoZWlnaHQ6aS5vdXRlckhlaWdodCghMCksZmxvYXQ6aS5jc3MoImZsb2F0Iil9LGU9dSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygidWktZWZmZWN0cy13cmFwcGVyIikuY3NzKHtmb250U2l6ZToiMTAwJSIsYmFja2dyb3VuZDoidHJhbnNwYXJlbnQiLGJvcmRlcjoibm9uZSIsbWFyZ2luOjAscGFkZGluZzowfSksdD17d2lkdGg6aS53aWR0aCgpLGhlaWdodDppLmhlaWdodCgpfSxuPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7dHJ5e24uaWR9Y2F0Y2goZSl7bj1kb2N1bWVudC5ib2R5fXJldHVybiBpLndyYXAoZSksaVswXSE9PW4mJiF1LmNvbnRhaW5zKGlbMF0sbil8fHUobikudHJpZ2dlcigiZm9jdXMiKSxlPWkucGFyZW50KCksInN0YXRpYyI9PT1pLmNzcygicG9zaXRpb24iKT8oZS5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSJ9KSxpLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pKToodS5leHRlbmQocyx7cG9zaXRpb246aS5jc3MoInBvc2l0aW9uIiksekluZGV4OmkuY3NzKCJ6LWluZGV4Iil9KSx1LmVhY2goWyJ0b3AiLCJsZWZ0IiwiYm90dG9tIiwicmlnaHQiXSxmdW5jdGlvbihlLHQpe3NbdF09aS5jc3ModCksaXNOYU4ocGFyc2VJbnQoc1t0XSwxMCkpJiYoc1t0XT0iYXV0byIpfSksaS5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsdG9wOjAsbGVmdDowLHJpZ2h0OiJhdXRvIixib3R0b206ImF1dG8ifSkpLGkuY3NzKHQpLGUuY3NzKHMpLnNob3coKX0scmVtb3ZlV3JhcHBlcjpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3JldHVybiBlLnBhcmVudCgpLmlzKCIudWktZWZmZWN0cy13cmFwcGVyIikmJihlLnBhcmVudCgpLnJlcGxhY2VXaXRoKGUpLGVbMF0hPT10JiYhdS5jb250YWlucyhlWzBdLHQpfHx1KHQpLnRyaWdnZXIoImZvY3VzIikpLGV9fSksdS5leHRlbmQodS5lZmZlY3RzLHt2ZXJzaW9uOiIxLjEzLjIiLGRlZmluZTpmdW5jdGlvbihlLHQsaSl7cmV0dXJuIGl8fChpPXQsdD0iZWZmZWN0IiksdS5lZmZlY3RzLmVmZmVjdFtlXT1pLHUuZWZmZWN0cy5lZmZlY3RbZV0ubW9kZT10LGl9LHNjYWxlZERpbWVuc2lvbnM6ZnVuY3Rpb24oZSx0LGkpe2lmKDA9PT10KXJldHVybntoZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTt2YXIgcz0iaG9yaXpvbnRhbCIhPT1pPyh0fHwxMDApLzEwMDoxLHQ9InZlcnRpY2FsIiE9PWk\/KHR8fDEwMCkvMTAwOjE7cmV0dXJue2hlaWdodDplLmhlaWdodCgpKnQsd2lkdGg6ZS53aWR0aCgpKnMsb3V0ZXJIZWlnaHQ6ZS5vdXRlckhlaWdodCgpKnQsb3V0ZXJXaWR0aDplLm91dGVyV2lkdGgoKSpzfX0sY2xpcFRvQm94OmZ1bmN0aW9uKGUpe3JldHVybnt3aWR0aDplLmNsaXAucmlnaHQtZS5jbGlwLmxlZnQsaGVpZ2h0OmUuY2xpcC5ib3R0b20tZS5jbGlwLnRvcCxsZWZ0OmUuY2xpcC5sZWZ0LHRvcDplLmNsaXAudG9wfX0sdW5zaGlmdDpmdW5jdGlvbihlLHQsaSl7dmFyIHM9ZS5xdWV1ZSgpOzE8dCYmcy5zcGxpY2UuYXBwbHkocyxbMSwwXS5jb25jYXQocy5zcGxpY2UodCxpKSkpLGUuZGVxdWV1ZSgpfSxzYXZlU3R5bGU6ZnVuY3Rpb24oZSl7ZS5kYXRhKFcsZVswXS5zdHlsZS5jc3NUZXh0KX0scmVzdG9yZVN0eWxlOmZ1bmN0aW9uKGUpe2VbMF0uc3R5bGUuY3NzVGV4dD1lLmRhdGEoVyl8fCIiLGUucmVtb3ZlRGF0YShXKX0sbW9kZTpmdW5jdGlvbihlLHQpe2U9ZS5pcygiOmhpZGRlbiIpO3JldHVybiJ0b2dnbGUiPT09dCYmKHQ9ZT8ic2hvdyI6ImhpZGUiKSx0PShlPyJoaWRlIj09PXQ6InNob3ciPT09dCk\/Im5vbmUiOnR9LGdldEJhc2VsaW5lOmZ1bmN0aW9uKGUsdCl7dmFyIGkscztzd2l0Y2goZVswXSl7Y2FzZSJ0b3AiOmk9MDticmVhaztjYXNlIm1pZGRsZSI6aT0uNTticmVhaztjYXNlImJvdHRvbSI6aT0xO2JyZWFrO2RlZmF1bHQ6aT1lWzBdL3QuaGVpZ2h0fXN3aXRjaChlWzFdKXtjYXNlImxlZnQiOnM9MDticmVhaztjYXNlImNlbnRlciI6cz0uNTticmVhaztjYXNlInJpZ2h0IjpzPTE7YnJlYWs7ZGVmYXVsdDpzPWVbMV0vdC53aWR0aH1yZXR1cm57eDpzLHk6aX19LGNyZWF0ZVBsYWNlaG9sZGVyOmZ1bmN0aW9uKGUpe3ZhciB0LGk9ZS5jc3MoInBvc2l0aW9uIikscz1lLnBvc2l0aW9uKCk7cmV0dXJuIGUuY3NzKHttYXJnaW5Ub3A6ZS5jc3MoIm1hcmdpblRvcCIpLG1hcmdpbkJvdHRvbTplLmNzcygibWFyZ2luQm90dG9tIiksbWFyZ2luTGVmdDplLmNzcygibWFyZ2luTGVmdCIpLG1hcmdpblJpZ2h0OmUuY3NzKCJtYXJnaW5SaWdodCIpfSkub3V0ZXJXaWR0aChlLm91dGVyV2lkdGgoKSkub3V0ZXJIZWlnaHQoZS5vdXRlckhlaWdodCgpKSwvXihzdGF0aWN8cmVsYXRpdmUpLy50ZXN0KGkpJiYoaT0iYWJzb2x1dGUiLHQ9dSgiPCIrZVswXS5ub2RlTmFtZSsiPiIpLmluc2VydEFmdGVyKGUpLmNzcyh7ZGlzcGxheTovXihpbmxpbmV8cnVieSkvLnRlc3QoZS5jc3MoImRpc3BsYXkiKSk\/ImlubGluZS1ibG9jayI6ImJsb2NrIix2aXNpYmlsaXR5OiJoaWRkZW4iLG1hcmdpblRvcDplLmNzcygibWFyZ2luVG9wIiksbWFyZ2luQm90dG9tOmUuY3NzKCJtYXJnaW5Cb3R0b20iKSxtYXJnaW5MZWZ0OmUuY3NzKCJtYXJnaW5MZWZ0IiksbWFyZ2luUmlnaHQ6ZS5jc3MoIm1hcmdpblJpZ2h0IiksZmxvYXQ6ZS5jc3MoImZsb2F0Iil9KS5vdXRlcldpZHRoKGUub3V0ZXJXaWR0aCgpKS5vdXRlckhlaWdodChlLm91dGVySGVpZ2h0KCkpLmFkZENsYXNzKCJ1aS1lZmZlY3RzLXBsYWNlaG9sZGVyIiksZS5kYXRhKFQrInBsYWNlaG9sZGVyIix0KSksZS5jc3Moe3Bvc2l0aW9uOmksbGVmdDpzLmxlZnQsdG9wOnMudG9wfSksdH0scmVtb3ZlUGxhY2Vob2xkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9VCsicGxhY2Vob2xkZXIiLGk9ZS5kYXRhKHQpO2kmJihpLnJlbW92ZSgpLGUucmVtb3ZlRGF0YSh0KSl9LGNsZWFuVXA6ZnVuY3Rpb24oZSl7dS5lZmZlY3RzLnJlc3RvcmVTdHlsZShlKSx1LmVmZmVjdHMucmVtb3ZlUGxhY2Vob2xkZXIoZSl9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24ocyxlLG4sYSl7cmV0dXJuIGE9YXx8e30sdS5lYWNoKGUsZnVuY3Rpb24oZSx0KXt2YXIgaT1zLmNzc1VuaXQodCk7MDxpWzBdJiYoYVt0XT1pWzBdKm4raVsxXSl9KSxhfX0pLHUuZm4uZXh0ZW5kKHtlZmZlY3Q6ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKGUpe3ZhciB0PXUodGhpcyksaT11LmVmZmVjdHMubW9kZSh0LHIpfHxhO3QuZGF0YShWLCEwKSxoLnB1c2goaSksYSYmKCJzaG93Ij09PWl8fGk9PT1hJiYiaGlkZSI9PT1pKSYmdC5zaG93KCksYSYmIm5vbmUiPT09aXx8dS5lZmZlY3RzLnNhdmVTdHlsZSh0KSwiZnVuY3Rpb24iPT10eXBlb2YgZSYmZSgpfXZhciBzPXEuYXBwbHkodGhpcyxhcmd1bWVudHMpLG49dS5lZmZlY3RzLmVmZmVjdFtzLmVmZmVjdF0sYT1uLm1vZGUsdD1zLnF1ZXVlLGk9dHx8ImZ4IixvPXMuY29tcGxldGUscj1zLm1vZGUsaD1bXTtyZXR1cm4gdS5meC5vZmZ8fCFuP3I\/dGhpc1tyXShzLmR1cmF0aW9uLG8pOnRoaXMuZWFjaChmdW5jdGlvbigpe28mJm8uY2FsbCh0aGlzKX0pOiExPT09dD90aGlzLmVhY2goZSkuZWFjaChsKTp0aGlzLnF1ZXVlKGksZSkucXVldWUoaSxsKTtmdW5jdGlvbiBsKGUpe3ZhciB0PXUodGhpcyk7ZnVuY3Rpb24gaSgpeyJmdW5jdGlvbiI9PXR5cGVvZiBvJiZvLmNhbGwodFswXSksImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUoKX1zLm1vZGU9aC5zaGlmdCgpLCExPT09dS51aUJhY2tDb21wYXR8fGE\/Im5vbmUiPT09cy5tb2RlPyh0W3JdKCksaSgpKTpuLmNhbGwodFswXSxzLGZ1bmN0aW9uKCl7dC5yZW1vdmVEYXRhKFYpLHUuZWZmZWN0cy5jbGVhblVwKHQpLCJoaWRlIj09PXMubW9kZSYmdC5oaWRlKCksaSgpfSk6KHQuaXMoIjpoaWRkZW4iKT8iaGlkZSI9PT1yOiJzaG93Ij09PXIpPyh0W3JdKCksaSgpKTpuLmNhbGwodFswXSxzLGkpfX0sc2hvdzooQT11LmZuLnNob3csZnVuY3Rpb24oZSl7aWYoTChlKSlyZXR1cm4gQS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZT1xLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gZS5tb2RlPSJzaG93Iix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsZSl9KSxoaWRlOihOPXUuZm4uaGlkZSxmdW5jdGlvbihlKXtpZihMKGUpKXJldHVybiBOLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlPXEuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlLm1vZGU9ImhpZGUiLHRoaXMuZWZmZWN0LmNhbGwodGhpcyxlKX0pLHRvZ2dsZTooST11LmZuLnRvZ2dsZSxmdW5jdGlvbihlKXtpZihMKGUpfHwiYm9vbGVhbiI9PXR5cGVvZiBlKXJldHVybiBJLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtlPXEuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlLm1vZGU9InRvZ2dsZSIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLGUpfSksY3NzVW5pdDpmdW5jdGlvbihlKXt2YXIgaT10aGlzLmNzcyhlKSxzPVtdO3JldHVybiB1LmVhY2goWyJlbSIsInB4IiwiJSIsInB0Il0sZnVuY3Rpb24oZSx0KXswPGkuaW5kZXhPZih0KSYmKHM9W3BhcnNlRmxvYXQoaSksdF0pfSksc30sY3NzQ2xpcDpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLmNzcygiY2xpcCIsInJlY3QoIitlLnRvcCsicHggIitlLnJpZ2h0KyJweCAiK2UuYm90dG9tKyJweCAiK2UubGVmdCsicHgpIik6Qih0aGlzLmNzcygiY2xpcCIpLHRoaXMpfSx0cmFuc2ZlcjpmdW5jdGlvbihlLHQpe3ZhciBpPXUodGhpcykscz11KGUudG8pLG49ImZpeGVkIj09PXMuY3NzKCJwb3NpdGlvbiIpLGE9dSgiYm9keSIpLG89bj9hLnNjcm9sbFRvcCgpOjAscj1uP2Euc2Nyb2xsTGVmdCgpOjAsYT1zLm9mZnNldCgpLGE9e3RvcDphLnRvcC1vLGxlZnQ6YS5sZWZ0LXIsaGVpZ2h0OnMuaW5uZXJIZWlnaHQoKSx3aWR0aDpzLmlubmVyV2lkdGgoKX0scz1pLm9mZnNldCgpLGg9dSgiPGRpdiBjbGFzcz0ndWktZWZmZWN0cy10cmFuc2Zlcic+PC9kaXY+Iik7aC5hcHBlbmRUbygiYm9keSIpLmFkZENsYXNzKGUuY2xhc3NOYW1lKS5jc3Moe3RvcDpzLnRvcC1vLGxlZnQ6cy5sZWZ0LXIsaGVpZ2h0OmkuaW5uZXJIZWlnaHQoKSx3aWR0aDppLmlubmVyV2lkdGgoKSxwb3NpdGlvbjpuPyJmaXhlZCI6ImFic29sdXRlIn0pLmFuaW1hdGUoYSxlLmR1cmF0aW9uLGUuZWFzaW5nLGZ1bmN0aW9uKCl7aC5yZW1vdmUoKSwiZnVuY3Rpb24iPT10eXBlb2YgdCYmdCgpfSl9fSksdS5meC5zdGVwLmNsaXA9ZnVuY3Rpb24oZSl7ZS5jbGlwSW5pdHx8KGUuc3RhcnQ9dShlLmVsZW0pLmNzc0NsaXAoKSwic3RyaW5nIj09dHlwZW9mIGUuZW5kJiYoZS5lbmQ9QihlLmVuZCxlLmVsZW0pKSxlLmNsaXBJbml0PSEwKSx1KGUuZWxlbSkuY3NzQ2xpcCh7dG9wOmUucG9zKihlLmVuZC50b3AtZS5zdGFydC50b3ApK2Uuc3RhcnQudG9wLHJpZ2h0OmUucG9zKihlLmVuZC5yaWdodC1lLnN0YXJ0LnJpZ2h0KStlLnN0YXJ0LnJpZ2h0LGJvdHRvbTplLnBvcyooZS5lbmQuYm90dG9tLWUuc3RhcnQuYm90dG9tKStlLnN0YXJ0LmJvdHRvbSxsZWZ0OmUucG9zKihlLmVuZC5sZWZ0LWUuc3RhcnQubGVmdCkrZS5zdGFydC5sZWZ0fSl9LFA9e30sdS5lYWNoKFsiUXVhZCIsIkN1YmljIiwiUXVhcnQiLCJRdWludCIsIkV4cG8iXSxmdW5jdGlvbih0LGUpe1BbZV09ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGgucG93KGUsdCsyKX19KSx1LmV4dGVuZChQLHtTaW5lOmZ1bmN0aW9uKGUpe3JldHVybiAxLU1hdGguY29zKGUqTWF0aC5QSS8yKX0sQ2lyYzpmdW5jdGlvbihlKXtyZXR1cm4gMS1NYXRoLnNxcnQoMS1lKmUpfSxFbGFzdGljOmZ1bmN0aW9uKGUpe3JldHVybiAwPT09ZXx8MT09PWU\/ZTotTWF0aC5wb3coMiw4KihlLTEpKSpNYXRoLnNpbigoODAqKGUtMSktNy41KSpNYXRoLlBJLzE1KX0sQmFjazpmdW5jdGlvbihlKXtyZXR1cm4gZSplKigzKmUtMil9LEJvdW5jZTpmdW5jdGlvbihlKXtmb3IodmFyIHQsaT00O2U8KCh0PU1hdGgucG93KDIsLS1pKSktMSkvMTE7KTtyZXR1cm4gMS9NYXRoLnBvdyg0LDMtaSktNy41NjI1Kk1hdGgucG93KCgzKnQtMikvMjItZSwyKX19KSx1LmVhY2goUCxmdW5jdGlvbihlLHQpe3UuZWFzaW5nWyJlYXNlSW4iK2VdPXQsdS5lYXNpbmdbImVhc2VPdXQiK2VdPWZ1bmN0aW9uKGUpe3JldHVybiAxLXQoMS1lKX0sdS5lYXNpbmdbImVhc2VJbk91dCIrZV09ZnVuY3Rpb24oZSl7cmV0dXJuIGU8LjU\/dCgyKmUpLzI6MS10KC0yKmUrMikvMn19KTt1LmVmZmVjdHN9KTsKLyoqIC9tL2pzL3ZhbmlsbGFqcy9zdG9yZS5qcyAqKi8KdmFyIF9fX2QyY19zdG9yZWpzX2Nfb249IjIwMjYtMDItMjAgMTE6MzA6MTAiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYSxiLGMpe2lmKGE9PUFycmF5LnByb3RvdHlwZXx8YT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYTthW2JdPWMudmFsdWU7cmV0dXJuIGF9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihhKXthPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGI9MDtiPGEubGVuZ3RoOysrYil7dmFyIGM9YVtiXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihhLGIpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdO2lmKG51bGw9PWMpcmV0dXJuIGFbYl07Yz1hW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YVtiXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihhLGIsYyxkKXtiJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYSxiLGMsZCk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYSxiLGMsZCkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7Yz0kanNjb21wLmdsb2JhbDthPWEuc3BsaXQoIi4iKTtmb3IoZD0wO2Q8YS5sZW5ndGgtMTtkKyspe3ZhciBlPWFbZF07aWYoIShlIGluIGMpKXJldHVybjtjPWNbZV19YT1hW2EubGVuZ3RoLTFdO2Q9Y1thXTtiPWIoZCk7YiE9ZCYmbnVsbCE9YiYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGEse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9YS5zcGxpdCgiLiIpO2E9MT09PWUubGVuZ3RoO2Q9ZVswXTtkPSFhJiZkIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgZj0wO2Y8ZS5sZW5ndGgtMTtmKyspe3ZhciBnPWVbZl07aWYoIShnIGluIGQpKXJldHVybjtkPWRbZ119ZT1lW2UubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZFtlXTpudWxsO2I9YihjKTtudWxsIT1iJiYoYT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSk6YiE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2VdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGUpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2UpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtlXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmJ9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGE9e2E6ITB9LGI9e307dHJ5e3JldHVybiBiLl9fcHJvdG9fXz1hLGIuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGEsYil7YS5fX3Byb3RvX189YjtpZihhLl9fcHJvdG9fXyE9PWIpdGhyb3cgbmV3IFR5cGVFcnJvcihhKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGEpe3ZhciBiPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGI8YS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YVtiKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChhKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihhKXt2YXIgYj0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZhW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGI\/Yi5jYWxsKGEpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihhKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYSl7aWYoIShhIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIithKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLnlpZWxkUmVzdWx0PWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246YSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86YX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYSxiKXt0aGlzLm5leHRBZGRyZXNzPWI7cmV0dXJue3ZhbHVlOmF9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihhLGIpe2E9JGpzY29tcC5tYWtlSXRlcmF0b3IoYSk7dmFyIGM9YS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWI7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1hLHRoaXMueWllbGQoYy52YWx1ZSxiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihhKXt0aGlzLm5leHRBZGRyZXNzPWF9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGEsYil7dGhpcy5jYXRjaEFkZHJlc3NfPWE7dm9pZCAwIT1iJiYodGhpcy5maW5hbGx5QWRkcmVzc189Yil9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1hfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1hO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGEpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO2E9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBhfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWJ8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihhLGIpe2I9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShifHwwKVswXTtpZihiPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Yil7aWYoYi5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1iLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Yi5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Yi5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihhKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihhKXt0aGlzLm9iamVjdF89YTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYiBpbiBhKXRoaXMucHJvcGVydGllc18ucHVzaChiKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGE9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihhIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89YX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGEpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGI9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihiKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBiP2JbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxhLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihhKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGEsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGEsYixjKXt0cnl7dmFyIGQ9YS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYik7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZCk7aWYoIWQuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGQ7dmFyIGU9ZC52YWx1ZX1jYXRjaChmKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKGYpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGUpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGE9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihhKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmEudmFsdWUsZG9uZTohMX19Y2F0Y2goYil7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYil9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2E9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYS5pc0V4Y2VwdGlvbil0aHJvdyBhLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6YS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGIpe3JldHVybiBhLm5leHRfKGIpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGIpe3JldHVybiBhLnRocm93XyhiKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYil7cmV0dXJuIGEucmV0dXJuXyhiKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYSxiKXtiPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZhLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihiLGEucHJvdG90eXBlKTtyZXR1cm4gYn07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihhKXtmdW5jdGlvbiBiKGQpe3JldHVybiBhLm5leHQoZCl9ZnVuY3Rpb24gYyhkKXtyZXR1cm4gYS50aHJvdyhkKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZCxlKXtmdW5jdGlvbiBmKGcpe2cuZG9uZT9kKGcudmFsdWUpOlByb21pc2UucmVzb2x2ZShnLnZhbHVlKS50aGVuKGIsYykudGhlbihmLGUpfWYoYS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGEpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKSl9OwpjbGllbnRTdG9yYWdlPXtzZXQ6ZnVuY3Rpb24oYSxiLGMsZCl7Yz12b2lkIDA9PT1jPzE6YztkPXZvaWQgMD09PWQ\/ImxvY2FsIjpkO2NvbnN0IGU9InNlc3Npb24iPT09ZD93aW5kb3cuc2Vzc2lvblN0b3JhZ2U6d2luZG93LmxvY2FsU3RvcmFnZTt0cnl7Yj17dmFsdWU6Yn0sImxvY2FsIj09PWQmJihjKj04NjRFNSxiLmV4cGlyeT0obmV3IERhdGUpLmdldFRpbWUoKStjKSxlLnNldEl0ZW0oYSxKU09OLnN0cmluZ2lmeShiKSl9Y2F0Y2goZil7Y29uc29sZS5lcnJvcihgRXJyb3Igc2F2aW5nIHRvICR7ZH0gc3RvcmFnZWAsZil9fSxnZXQ6ZnVuY3Rpb24oYSxiKXtiPXZvaWQgMD09PWI\/bnVsbDpiO2NvbnN0IGM9KGQsZSk9Pnt0cnl7Y29uc3QgZj1kLmdldEl0ZW0oYSk7aWYoIWYpcmV0dXJuIG51bGw7Y29uc3QgZz1KU09OLnBhcnNlKGYpO2lmKGUmJmcuZXhwaXJ5JiYobmV3IERhdGUpLmdldFRpbWUoKT5nLmV4cGlyeSlyZXR1cm4gZC5yZW1vdmVJdGVtKGEpLG51bGw7bGV0IGg7CnJldHVybiBudWxsIT0oaD1nLnZhbHVlKT9oOmd9Y2F0Y2goZil7cmV0dXJuIG51bGx9fTtyZXR1cm4ibG9jYWwiPT09Yj9jKHdpbmRvdy5sb2NhbFN0b3JhZ2UsITApOiJzZXNzaW9uIj09PWI\/Yyh3aW5kb3cuc2Vzc2lvblN0b3JhZ2UsITEpOmMod2luZG93LmxvY2FsU3RvcmFnZSwhMCl8fGMod2luZG93LnNlc3Npb25TdG9yYWdlLCExKX0scmVtb3ZlOmZ1bmN0aW9uKGEsYil7Yj12b2lkIDA9PT1iP251bGw6YjsibG9jYWwiIT09YiYmbnVsbCE9PWJ8fHdpbmRvdy5sb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShhKTsic2Vzc2lvbiIhPT1iJiZudWxsIT09Ynx8d2luZG93LnNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0oYSl9fTsKY3JlYXRlRGF0YVN0b3JlPWE9PnthPWF8fHt9O2luaXQ9Yz0+T2JqZWN0LmFzc2lnbih7fSxjKTtjb25zdCBiPWluaXQoYSk7cmV0dXJue3NldDpmdW5jdGlvbihjLGQpe2JbY109T2JqZWN0LmFzc2lnbih7fSxiW2NdLGQpO3JldHVybiBiW2NdfSxnZXQ6ZnVuY3Rpb24oYyxkKXtkPXZvaWQgMD09PWQ\/bnVsbDpkO2M9Yy5zcGxpdCgiLiIpO2xldCBlPWI7Zm9yKGNvbnN0IGYgb2YgYyl7aWYodm9pZCAwPT09ZVtmXSlyZXR1cm4gZDtlPWVbZl19cmV0dXJuIHZvaWQgMCE9PWU\/ZTpkfSxmZXRjaDpmdW5jdGlvbihjKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7dHJ5e2NvbnN0IGQ9eWllbGQgZmV0Y2goYGh0dHBzOi8vJHtiLmRlYWxlckluZm8uZG9tYWlufS9hamF4Q29udHJvbGxlci8ke2N9YCk7aWYoIWQub2spdGhyb3cgRXJyb3IoIk5ldHdvcmsgcmVzcG9uc2Ugd2FzIG5vdCBvayIpO2NvbnN0IGU9eWllbGQgZC5qc29uKCk7CmJbY109ZTtyZXR1cm4gYltjXX1jYXRjaChkKXt0aHJvdyBFcnJvcihgRmFpbGVkIHRvIGZldGNoIGZyb20gc2VydmVyOiAke2QubWVzc2FnZX1gKTt9fSl9LGRlbGV0ZTpmdW5jdGlvbihjKXtpZighYltjXSl0aHJvdyBFcnJvcigiSUQgbm90IGZvdW5kIik7ZGVsZXRlIGJbY107cmV0dXJuITB9LGdldEFsbDpmdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LGIpfX19OwovKiogL20vanMvZW1haWxIYW5kbGVyLmpzICoqLwp2YXIgX19fZDJjX2VtYWlsSGFuZGxlcmpzX2Nfb249IjIwMjYtMDctMTMgMjM6MzA6MjUiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oZSxnLG4pe2lmKGU9PUFycmF5LnByb3RvdHlwZXx8ZT09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gZTtlW2ddPW4udmFsdWU7cmV0dXJuIGV9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihlKXtlPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsZSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGc9MDtnPGUubGVuZ3RoOysrZyl7dmFyIG49ZVtnXTtpZihuJiZuLk1hdGg9PU1hdGgpcmV0dXJuIG59dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihlLGcpe3ZhciBuPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2ddO2lmKG51bGw9PW4pcmV0dXJuIGVbZ107bj1lW25dO3JldHVybiB2b2lkIDAhPT1uP246ZVtnXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihlLGcsbixhKXtnJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoZSxnLG4sYSk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoZSxnLG4sYSkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oZSxnLG4sYSl7bj0kanNjb21wLmdsb2JhbDtlPWUuc3BsaXQoIi4iKTtmb3IoYT0wO2E8ZS5sZW5ndGgtMTthKyspe3ZhciBiPWVbYV07aWYoIShiIGluIG4pKXJldHVybjtuPW5bYl19ZT1lW2UubGVuZ3RoLTFdO2E9bltlXTtnPWcoYSk7ZyE9YSYmbnVsbCE9ZyYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShuLGUse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpnfSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oZSxnLG4sYSl7dmFyIGI9ZS5zcGxpdCgiLiIpO2U9MT09PWIubGVuZ3RoO2E9YlswXTthPSFlJiZhIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgYz0wO2M8Yi5sZW5ndGgtMTtjKyspe3ZhciBkPWJbY107aWYoIShkIGluIGEpKXJldHVybjthPWFbZF19Yj1iW2IubGVuZ3RoLTFdO249JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PW4\/YVtiXTpudWxsO2c9ZyhuKTtudWxsIT1nJiYoZT8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpnfSk6ZyE9PW4mJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXSYmKG49MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2JdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGIpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK24rIiQiK2IpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoYSwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmd9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGU9e2E6ITB9LGc9e307dHJ5e3JldHVybiBnLl9fcHJvdG9fXz1lLGcuYX1jYXRjaChuKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGUsZyl7ZS5fX3Byb3RvX189ZztpZihlLl9fcHJvdG9fXyE9PWcpdGhyb3cgbmV3IFR5cGVFcnJvcihlKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gZX06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGUpe3ZhciBnPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGc8ZS5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6ZVtnKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oZSl7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChlKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihlKXt2YXIgZz0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZlW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGc\/Zy5jYWxsKGUpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihlKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oZSl7aWYoIShlIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitlKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihlKXt0aGlzLnlpZWxkUmVzdWx0PWV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihlKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246ZSxpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihlKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46ZX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihlKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86ZX07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oZSxnKXt0aGlzLm5leHRBZGRyZXNzPWc7cmV0dXJue3ZhbHVlOmV9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihlLGcpe2U9JGpzY29tcC5tYWtlSXRlcmF0b3IoZSk7dmFyIG49ZS5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8obik7aWYobi5kb25lKXRoaXMueWllbGRSZXN1bHQ9bi52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWc7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1lLHRoaXMueWllbGQobi52YWx1ZSxnKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihlKXt0aGlzLm5leHRBZGRyZXNzPWV9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGUsZyl7dGhpcy5jYXRjaEFkZHJlc3NfPWU7dm9pZCAwIT1nJiYodGhpcy5maW5hbGx5QWRkcmVzc189Zyl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihlKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1lfHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGUsZyl7dGhpcy5uZXh0QWRkcmVzcz1lO3RoaXMuY2F0Y2hBZGRyZXNzXz1nfHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGUpe3RoaXMuY2F0Y2hBZGRyZXNzXz1lfHwwO2U9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBlfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihlLGcsbil7bj90aGlzLmZpbmFsbHlDb250ZXh0c19bbl09dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1lfHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWd8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihlLGcpe2c9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShnfHwwKVswXTtpZihnPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8Zyl7aWYoZy5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1nLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188Zy5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9Zy5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1lfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihlKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihlKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihlKXt0aGlzLm9iamVjdF89ZTt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgZyBpbiBlKXRoaXMucHJvcGVydGllc18ucHVzaChnKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGU9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihlIGluIHRoaXMub2JqZWN0XylyZXR1cm4gZX1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihlKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89ZX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxlLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGUpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGc9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihnKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBnP2dbInJldHVybiJdOmZ1bmN0aW9uKG4pe3JldHVybnt2YWx1ZTpuLGRvbmU6ITB9fSxlLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihlKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihlKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGUsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oZSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGUsZyxuKXt0cnl7dmFyIGE9ZS5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sZyk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYSk7aWYoIWEuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGE7dmFyIGI9YS52YWx1ZX1jYXRjaChjKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKGMpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO24uY2FsbCh0aGlzLmNvbnRleHRfLGIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGU9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihlKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmUudmFsdWUsZG9uZTohMX19Y2F0Y2goZyl7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oZyl9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2U9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoZS5pc0V4Y2VwdGlvbil0aHJvdyBlLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6ZS5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oZSl7dGhpcy5uZXh0PWZ1bmN0aW9uKGcpe3JldHVybiBlLm5leHRfKGcpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGcpe3JldHVybiBlLnRocm93XyhnKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oZyl7cmV0dXJuIGUucmV0dXJuXyhnKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oZSxnKXtnPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGcpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZlLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihnLGUucHJvdG90eXBlKTtyZXR1cm4gZ307CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihlKXtmdW5jdGlvbiBnKGEpe3JldHVybiBlLm5leHQoYSl9ZnVuY3Rpb24gbihhKXtyZXR1cm4gZS50aHJvdyhhKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGQpe2QuZG9uZT9hKGQudmFsdWUpOlByb21pc2UucmVzb2x2ZShkLnZhbHVlKS50aGVuKGcsbikudGhlbihjLGIpfWMoZS5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoZSgpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihlKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGUpKSl9Owp2YXIgZW1haWxIYW5kbGVyPWZ1bmN0aW9uKCl7dmFyIGU9MTExMixnPWZ1bmN0aW9uKGIpe3RyeXtyZXR1cm4gd2luZG93LnRvcC5sb2NhdGlvbltiXX1jYXRjaChjKXtyZXR1cm4gd2luZG93LmxvY2F0aW9uW2JdfX0sbj1mdW5jdGlvbigpe3RoaXMuYWN0aW9uPWZ1bmN0aW9uKCl7fTt0aGlzLm5leHQ9bnVsbDt0aGlzLl9uZXh0Q2FsbGVkPSExfTtuLnByb3RvdHlwZT17ZXhldXRlOmZ1bmN0aW9uKCl7ImZ1bmN0aW9uIj09PXR5cGVvZiB0aGlzLmFjdGlvbiYmdGhpcy5hY3Rpb24uY2FsbCh0aGlzKX0sZ290b05leHQ6ZnVuY3Rpb24oKXt0aGlzLl9oYXNOZXh0KCkmJnRoaXMubmV4dC5leGV1dGUoKTt0aGlzLl9uZXh0Q2FsbGVkPSEwO3JldHVybiB0aGlzfSxzZXROZXh0OmZ1bmN0aW9uKGIpe3RoaXMubmV4dD1iO3JldHVybiB0aGlzfSxzZXRBY3Rpb246ZnVuY3Rpb24oYil7dGhpcy5hY3Rpb249YjtyZXR1cm4gdGhpc30sX2hhc05leHQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbCE9PQp0aGlzLm5leHQmJiF0aGlzLl9uZXh0Q2FsbGVkfX07dmFyIGE9e3N1YmplY3Q6IiIsYm9keToiIixzZW5kVG86IiIsc2VuZFRvQURGRm9ybWF0OiIiLHNlbGVjdGVkU2VuZFRvOiIiLHNlbGVjdGVkU2VuZFRvQURGRm9ybWF0OiIiLHNlbmRGcm9tOiIiLHVzZXJFbWFpbDoiIix0cmFkZWluOiIiLHBvcHVwZGl2OiIiLHVzZXJGaXJzdE5hbWU6IiIsdXNlckxhc3ROYW1lOiIiLHVzZXJQaG9uZToiIixwaG9uZU1hbmRhdG9yeTowLHBob25lVmFsaWRhdGlvbkF0dGVtcHRzOjEsdXNlclBvc3RhbDoiIix1c2VyQWRkcmVzczoiIixiaXJ0aGRhdGU6IiIsdXNlckF0dGFjaG1lbnRQYXRoOiIiLG1haWxJRDoiZ2VuZXJpY01haWwiLGxlYWRJbnZva2VyOiJnZW5lcmljIixsZWFkSW52b2tlclNJRDoiIixpc0NUQTohMSxidXR0b25UZXh0OiIiLHJlc2V0Q2FsbGJhY2tzOmZ1bmN0aW9uKCl7JC5leHRlbmQoYSx7Y2FsbGJhY2s6bnVsbCxvbkR1cGxpY2F0ZVNlbmQ6ITEsb25BZnRlckNvbnNlbnQ6ITEsCm9uQmVmb3JlU2hvd0NvbnNlbnQ6ITF9KX0sbWFrZToiIixtb2RlbDoiIix0cmltOiIiLHZpbjoiIixwcmljZTowLHllYXI6MCx2ZWhpY2xlVHlwZToiIixzdG9ja051bWJlcjoiIixwdXJjaGFzZV9pbnRlbnQ6IiIscHVyY2hhc2VfaW50ZW50X3NlY3Rpb246IiIsYWxsb3dfc2hhcmVfcGVyc29uYWxfZGF0YToiIixwcmVmZXJyZWRfY29udGFjdDoiIixjYXJpZDowLGNvbmRpdGlvbjoiVXNlZCIsbGFuZ3VhZ2U6IiIsaXNtb2JpbGVzaXRlOiJOTyIsaXNBbXA6Ik5PIixyZWZlcmVyOiIiLHBvcHVwT2ZmZXJUeXBlOiIiLHBhcnRpYWw6ITEsZnJvbUZhY2Vib29rOiExLHNraXBTZW5kaW5nOiExLGZyb21PbkxvYWQ6ITEscG9zdFN1Ym1pdENhbGxiYWNrOiIiLHJlc3VtZUFjdGl2aXR5OiEwLHN1Ym1pdERhdGE6IiIsc3VibWl0VHlwZToibm9ybWFsIixsYXN0Q2hlY2tzdW06IiIsY29uc2VudERlYWxlcjohMSxjb25zZW50T0VNOiExLGNvbnNlbnRUeXBlOiJJbXBsaWNpdCIsY29uc2VudEV4cGlyYXRpb246IiIsCmNvbnNlbnREYXRlOiIiLGNvbnNlbnRGcmVxdWVuY3k6LTEsY29uc2VudERldGFpbHNGUjoiIixjb25zZW50RGV0YWlsc0VOOiIiLGRldGFpbHNEZWZhdWx0czoiIixmcm9tQUE6MCxvd25lcklEOjAsZGVwYXJ0bWVudDoiIixza2lwR2V0RGVwOiExLGRlcGFydG1lbnRCeVN0b2NrOiExLGFza1B1cmNoYXNlSW50ZW50OiExLGxlYWRUaXRsZVVJVGV4dDoiIixsZWFkVGl0bGVUZXh0OiIiLGdlb2xvY19zdGF0dXM6IiIsZ2VvbG9jX2xhdDoiIixnZW9sb2NfbG9uZzoiIixnZW9sb2NfYWNjdXJhY3k6LTEsZ2VvbG9jX3RyYWNrX3N0cjoiIixnZW9sb2NfZW1haWxfc3RyOiIiLHRyYW5zcG9ydE9wdGlvbjoiIixjYXIyX21ha2U6IiIsY2FyMl9tb2RlbDoiIixjYXIyX3RyaW06IiIsY2FyMl95ZWFyOiIiLGNhcjJfY29sb3I6IiIsY2FyMl9vZG9tZXRlcjoiIixjYXIyX3ZpbjoiIixjYXIyX3RyYW5zbWlzc29uOiIiLGNhcjJfZHJpdmV0cmFpbjoiIixjYXIyX2Z1ZWx0eXBlOiIiLGNvbW1lbnRzOiIiLApncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbjoiIixpZ25vcmVDYXB0Y2hhOiExLGNvbnRhY3RJRDowLGNvbnRhY3RBZGRyZXNzOiIiLGNvbnRhY3RDaXR5OiIiLGNvbnRhY3RQcm92aW5jZToiIixjb250YWN0WmlwOiIiLGNvbnRhY3ROQVM6IiIsY29udGFjdEJpcnRoOiIiLGRlYWxlck5hbWU6IiIsZ2V0TmV3U2VxdWVuY2U6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG59LGNyZWF0ZUNoZWNrc3VtOmZ1bmN0aW9uKCl7Zm9yKHZhciBiPSIiLGM9WyJtYWtlIiwibW9kZWwiLCJ5ZWFyIiwibWFpbElEIl0sZD0wO2Q8Yy5sZW5ndGg7ZCsrKXt2YXIgZj1jW2RdLGg9YVtmXSxtPXR5cGVvZiBoO2lmKCJzdHJpbmciPT1tfHwibnVtYmVyIj09bSliKz1mKyI6IitoKyI7In1jPSIwMDAwMDAwMCA3NzA3MzA5NiBFRTBFNjEyQyA5OTA5NTFCQSAwNzZEQzQxOSA3MDZBRjQ4RiBFOTYzQTUzNSA5RTY0OTVBMyAwRURCODgzMiA3OURDQjhBNCBFMEQ1RTkxRSA5N0QyRDk4OCAwOUI2NEMyQiA3RUIxN0NCRCBFN0I4MkQwNyA5MEJGMUQ5MSAxREI3MTA2NCA2QUIwMjBGMiBGM0I5NzE0OCA4NEJFNDFERSAxQURBRDQ3RCA2RERERTRFQiBGNEQ0QjU1MSA4M0QzODVDNyAxMzZDOTg1NiA2NDZCQThDMCBGRDYyRjk3QSA4QTY1QzlFQyAxNDAxNUM0RiA2MzA2NkNEOSBGQTBGM0Q2MyA4RDA4MERGNSAzQjZFMjBDOCA0QzY5MTA1RSBENTYwNDFFNCBBMjY3NzE3MiAzQzAzRTREMSA0QjA0RDQ0NyBEMjBEODVGRCBBNTBBQjU2QiAzNUI1QThGQSA0MkIyOTg2QyBEQkJCQzlENiBBQ0JDRjk0MCAzMkQ4NkNFMyA0NURGNUM3NSBEQ0Q2MERDRiBBQkQxM0Q1OSAyNkQ5MzBBQyA1MURFMDAzQSBDOEQ3NTE4MCBCRkQwNjExNiAyMUI0RjRCNSA1NkIzQzQyMyBDRkJBOTU5OSBCOEJEQTUwRiAyODAyQjg5RSA1RjA1ODgwOCBDNjBDRDlCMiBCMTBCRTkyNCAyRjZGN0M4NyA1ODY4NEMxMSBDMTYxMURBQiBCNjY2MkQzRCA3NkRDNDE5MCAwMURCNzEwNiA5OEQyMjBCQyBFRkQ1MTAyQSA3MUIxODU4OSAwNkI2QjUxRiA5RkJGRTRBNSBFOEI4RDQzMyA3ODA3QzlBMiAwRjAwRjkzNCA5NjA5QTg4RSBFMTBFOTgxOCA3RjZBMERCQiAwODZEM0QyRCA5MTY0NkM5NyBFNjYzNUMwMSA2QjZCNTFGNCAxQzZDNjE2MiA4NTY1MzBEOCBGMjYyMDA0RSA2QzA2OTVFRCAxQjAxQTU3QiA4MjA4RjRDMSBGNTBGQzQ1NyA2NUIwRDlDNiAxMkI3RTk1MCA4QkJFQjhFQSBGQ0I5ODg3QyA2MkREMURERiAxNURBMkQ0OSA4Q0QzN0NGMyBGQkQ0NEM2NSA0REIyNjE1OCAzQUI1NTFDRSBBM0JDMDA3NCBENEJCMzBFMiA0QURGQTU0MSAzREQ4OTVENyBBNEQxQzQ2RCBEM0Q2RjRGQiA0MzY5RTk2QSAzNDZFRDlGQyBBRDY3ODg0NiBEQTYwQjhEMCA0NDA0MkQ3MyAzMzAzMURFNSBBQTBBNEM1RiBERDBEN0NDOSA1MDA1NzEzQyAyNzAyNDFBQSBCRTBCMTAxMCBDOTBDMjA4NiA1NzY4QjUyNSAyMDZGODVCMyBCOTY2RDQwOSBDRTYxRTQ5RiA1RURFRjkwRSAyOUQ5Qzk5OCBCMEQwOTgyMiBDN0Q3QThCNCA1OUIzM0QxNyAyRUI0MEQ4MSBCN0JENUMzQiBDMEJBNkNBRCBFREI4ODMyMCA5QUJGQjNCNiAwM0I2RTIwQyA3NEIxRDI5QSBFQUQ1NDczOSA5REQyNzdBRiAwNERCMjYxNSA3M0RDMTY4MyBFMzYzMEIxMiA5NDY0M0I4NCAwRDZENkEzRSA3QTZBNUFBOCBFNDBFQ0YwQiA5MzA5RkY5RCAwQTAwQUUyNyA3RDA3OUVCMSBGMDBGOTM0NCA4NzA4QTNEMiAxRTAxRjI2OCA2OTA2QzJGRSBGNzYyNTc1RCA4MDY1NjdDQiAxOTZDMzY3MSA2RTZCMDZFNyBGRUQ0MUI3NiA4OUQzMkJFMCAxMERBN0E1QSA2N0RENEFDQyBGOUI5REY2RiA4RUJFRUZGOSAxN0I3QkU0MyA2MEIwOEVENSBENkQ2QTNFOCBBMUQxOTM3RSAzOEQ4QzJDNCA0RkRGRjI1MiBEMUJCNjdGMSBBNkJDNTc2NyAzRkI1MDZERCA0OEIyMzY0QiBEODBEMkJEQSBBRjBBMUI0QyAzNjAzNEFGNiA0MTA0N0E2MCBERjYwRUZDMyBBODY3REY1NSAzMTZFOEVFRiA0NjY5QkU3OSBDQjYxQjM4QyBCQzY2ODMxQSAyNTZGRDJBMCA1MjY4RTIzNiBDQzBDNzc5NSBCQjBCNDcwMyAyMjAyMTZCOSA1NTA1MjYyRiBDNUJBM0JCRSBCMkJEMEIyOCAyQkI0NUE5MiA1Q0IzNkEwNCBDMkQ3RkZBNyBCNUQwQ0YzMSAyQ0Q5OUU4QiA1QkRFQUUxRCA5QjY0QzJCMCBFQzYzRjIyNiA3NTZBQTM5QyAwMjZEOTMwQSA5QzA5MDZBOSBFQjBFMzYzRiA3MjA3Njc4NSAwNTAwNTcxMyA5NUJGNEE4MiBFMkI4N0ExNCA3QkIxMkJBRSAwQ0I2MUIzOCA5MkQyOEU5QiBFNUQ1QkUwRCA3Q0RDRUZCNyAwQkRCREYyMSA4NkQzRDJENCBGMUQ0RTI0MiA2OEREQjNGOCAxRkRBODM2RSA4MUJFMTZDRCBGNkI5MjY1QiA2RkIwNzdFMSAxOEI3NDc3NyA4ODA4NUFFNiBGRjBGNkE3MCA2NjA2M0JDQSAxMTAxMEI1QyA4RjY1OUVGRiBGODYyQUU2OSA2MTZCRkZEMyAxNjZDQ0Y0NSBBMDBBRTI3OCBENzBERDJFRSA0RTA0ODM1NCAzOTAzQjNDMiBBNzY3MjY2MSBEMDYwMTZGNyA0OTY5NDc0RCAzRTZFNzdEQiBBRUQxNkE0QSBEOUQ2NUFEQyA0MERGMEI2NiAzN0Q4M0JGMCBBOUJDQUU1MyBERUJCOUVDNSA0N0IyQ0Y3RiAzMEI1RkZFOSBCREJERjIxQyBDQUJBQzI4QSA1M0IzOTMzMCAyNEI0QTNBNiBCQUQwMzYwNSBDREQ3MDY5MyA1NERFNTcyOSAyM0Q5NjdCRiBCMzY2N0EyRSBDNDYxNEFCOCA1RDY4MUIwMiAyQTZGMkI5NCBCNDBCQkUzNyBDMzBDOEVBMSA1QTA1REYxQiAyRDAyRUY4RCIuc3BsaXQoIiAiKS5tYXAoZnVuY3Rpb24oayl7cmV0dXJuIHBhcnNlSW50KGssCjE2KX0pO3ZhciByPXJeLTE7ZD0wO2ZvcihmPWIubGVuZ3RoO2Q8ZjtkKyspcj1yPj4+OF5jWyhyXmIuY2hhckNvZGVBdChkKSkmMjU1XTtyZXR1cm4ocl4tMSk+Pj4wfSxzZXRNdWx0aURlYWxlckJvZHk6ZnVuY3Rpb24oYixjKXt2YXIgZD0kKCIjcG9zdExlYWRMYWJlbCIpLnZhbCgpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGQ\/KGQ9ZC5yZXBsYWNlKCJ7JE1VTFRJREVBTEVSTkFNRX0iLGIpLnJlcGxhY2UoInskUE9TVF9MRUFEX0VNQUlMU30iLGMpLGEuYm9keT1hLmJvZHkucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsZCksYS5kZWFsZXJOYW1lPWIpOmEuYm9keT1hLmJvZHkucmVwbGFjZSgvPGJyXHM\/XC8+e1wkREVBTEVSX1NFTkRUT30oYnJccz9cLyk\/LywiIikucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsIiIpfSxzaG93Q29uc2VudDpmdW5jdGlvbihiLGMpe2EuZ2V0RW1haWxDb25zZW50KGZ1bmN0aW9uKGQpe3ZhciBmPWEuZ2V0TmV3U2VxdWVuY2UoKSxoPWEuZ2V0TmV3U2VxdWVuY2UoKTsKZi5zZXRBY3Rpb24oZnVuY3Rpb24oKXthLmRlYWxlclNlbGVjdEZ1bmMoITEsdGhpcyl9KTtoLnNldEFjdGlvbihmdW5jdGlvbigpe3ZvaWQgMD09YiYmKGI9ITEpO3ZvaWQgMD09YyYmKGM9ITEpO3ZhciBtPSQoIiNhc1BvcFVwIikscj0hMTsoYS5hc2tQdXJjaGFzZUludGVudHx8YS5zaG91bGREaXNwbGF5UHVyY2hhc2VJbnRlbnRDb250YWN0KCkpJiYwPCQoIiNhc1B1cmNoYXNlSW50ZW50IikubGVuZ3RoJiYobT0kKCIjYXNQdXJjaGFzZUludGVudCIpLHI9ITApO2lmKDA8bS5sZW5ndGgpe2dldENvb2tpZSgidmlzaXRvcl9oYXNfZXhwbGljaXRfY29uc2VudCIpO3ZhciBrPXBhcnNlSW50KGdldENvb2tpZSgidmlzaXRvcl9oYXNfc2Vlbl9wb3B1cCIpLDEwKTtpc05hTihrKSYmKGs9MCk7YS5za2lwU2VuZGluZz1iO2EuZnJvbU9uTG9hZD1jO2lmKGQuaGFzQ29uc2VudCl7c3dpdGNoKGEuc3VibWl0VHlwZSl7Y2FzZSAiaW5zdGFudFJlYmF0ZSI6Y2FzZSAic2NyYXRjaCI6cmVhbFN1Ym1pdFJlYmF0ZUNvdXBvbigpOwpicmVhaztkZWZhdWx0OiIiIT1hLnBvc3RTdWJtaXRDYWxsYmFjayYmZXZhbChhLnBvc3RTdWJtaXRDYWxsYmFjayl9YS5yZWFkeVRvU2VuZCgpfWVsc2V7c3dpdGNoKGEuc3VibWl0VHlwZSl7Y2FzZSAic2NyYXRjaCI6Y2FzZSAiaW5zdGFudFJlYmF0ZSI6Y2xvc2VQb3B1cFdpZGdldCgpfSJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQmVmb3JlU2hvd0NvbnNlbnQmJmEub25CZWZvcmVTaG93Q29uc2VudC5jYWxsKCk7aWYocilhLnNob3VsZERpc3BsYXlQdXJjaGFzZUludGVudENvbnRhY3QoKT9kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5jbGFzc0xpc3QucmVtb3ZlKCJoaWRkZW4iKTpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5jbGFzc0xpc3QuYWRkKCJoaWRkZW4iKSwkKCIjZW1haWxDb25zZW50U3VibWl0Iikub24oImNsaWNrIixmdW5jdGlvbigpe3ZhciB0PXt9O20uZmluZCgiZm9ybSIpLnNlcmlhbGl6ZUFycmF5KCkubWFwKHE9Pgp7dFtxLm5hbWVdPXEudmFsdWV9KTskKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GTywgLnN0ZXBDb25zZW50IikuY3NzKHtib3JkZXI6Im5vbmUifSk7JCgiI0FMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk9fVEVYVF9FUlJPUiIpLmhpZGUoKTtpZigxPT0kKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GTyIpLmlzKCI6dmlzaWJsZSIpJiYoIXQuc2hhcmVfcGVyc29uYWx8fCJubyI9PXQuc2hhcmVfcGVyc29uYWwpKXJldHVybiAkKCIjQUxMT1dfU0hBUkVfUEVSU09OQUxfSU5GTyIpLmNzcyh7Ym9yZGVyOiIxcHggc29saWQgcmVkIn0pLCQoIiNBTExPV19TSEFSRV9QRVJTT05BTF9JTkZPX1RFWFRfRVJST1IiKS5zaG93KCksITE7aWYoIXQuaGFzT3duUHJvcGVydHkoImNvbnNlbnQiKSlyZXR1cm4gJCgiLnN0ZXBDb25zZW50IikuY3NzKHtib3JkZXI6IjFweCBzb2xpZCByZWQifSksITE7dmFyIHU9e3B1cmNoYXNlX2ludGVudDotMSxzaGFyZV9wZXJzb25hbDoibm8iLHByZWZlcnJlZF9jb250YWN0OiIifTsKZm9yKHZhciBsIGluIHUpdS5oYXNPd25Qcm9wZXJ0eShsKSYmKHQuaGFzT3duUHJvcGVydHkobCk\/c2V0Q29va2llKGwsdFtsXSk6dFtsXT11W2xdKTthLnB1cmNoYXNlX2ludGVudD10LnB1cmNoYXNlX2ludGVudDthLmFsbG93X3NoYXJlX3BlcnNvbmFsX2RhdGE9dC5zaGFyZV9wZXJzb25hbDthLnByZWZlcnJlZF9jb250YWN0PXQucHJlZmVycmVkX2NvbnRhY3Q7dT0iLTEiIT10LmNvbnNlbnQ7bD10Lmhhc093blByb3BlcnR5KCJjb25zZW50X29lbSIpJiYiMSI9PXQuY29uc2VudF9vZW07YS5zdWJtaXRDb25zZW50KHUsbCwiY29tcGxleCIpO3JldHVybiExfSk7ZWxzZSAkKCIjY29uc2VudFN1Ym1pdCIpLm9uKCJjbGljayIsZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpO3Q9ITE7JCgiLmRlYWxlckNvbnNlbnQiKS5jc3Moe2JvcmRlcjoibm9uZSJ9KTskKCIub2VtQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiJub25lIn0pO3ZhciB1PXt9O20uZmluZCgiZm9ybSIpLnNlcmlhbGl6ZUFycmF5KCkubWFwKHE9Pgp7dVtxLm5hbWVdPXEudmFsdWV9KTt1Lmhhc093blByb3BlcnR5KCJjb25zZW50Iil8fCgkKCIuZGVhbGVyQ29uc2VudCIpLmNzcyh7Ym9yZGVyOiIxcHggc29saWQgcmVkIn0pLHQ9ITApO20uZmluZCgiZm9ybSAub2VtQ29uc2VudCIpLmxlbmd0aCYmIXUuaGFzT3duUHJvcGVydHkoImNvbnNlbnRfb2VtIikmJiQoIiNvZW1DZXJ0aWZpY2F0aW9uIikudmFsKCkmJihtLmZpbmQoImZvcm0gLm9lbUNvbnNlbnQiKS5jc3Moe2JvcmRlcjoiMXB4IHNvbGlkIHJlZCJ9KSx0PSEwKTtpZih0KXJldHVybiExO3Q9Ii0xIiE9dS5jb25zZW50O3ZhciBsPXUuaGFzT3duUHJvcGVydHkoImNvbnNlbnRfb2VtIikmJiIxIj09dS5jb25zZW50X29lbTthLnN1Ym1pdENvbnNlbnQodCxsKX0pO2EucHJlU2VuZEltcGxpY2l0KCk7bS5yZXZlYWwoe2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCIsCmNsb3Nlb25lc2NhcGU6ITF9KX19ZWxzZSIiPT1hLmNvbnNlbnREZXRhaWxzRU4mJnZvaWQgMCE9YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSCYmdm9pZCAwIT1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0gmJihhLmNvbnNlbnREZXRhaWxzRU49YS5kZXRhaWxzRGVmYXVsdHMuRU5HTElTSFsyXSxhLmNvbnNlbnREZXRhaWxzRlI9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIWzJdKSxiP3JlYWxTaG93UG9wdXBXaWRnZXQoYyk6YS5yZWFkeVRvU2VuZCgpfSk7Zi5zZXROZXh0KGgpLmV4ZXV0ZSgpfSl9LGhpZGVDb25zZW50OmZ1bmN0aW9uKCl7dmFyIGI9JCgiI2FzUG9wVXA6dmlzaWJsZSIpOyQoIiNhc1B1cmNoYXNlSW50ZW50IikuaXMoIjp2aXNpYmxlIikmJiJoaWRkZW4iIT09JCgiI2FzUHVyY2hhc2VJbnRlbnQiKS5jc3MoInZpc2liaWxpdHkiKSYmKGI9JCgiI2FzUHVyY2hhc2VJbnRlbnQ6dmlzaWJsZSIpLGNvbXBsZXg9ITApOzA8Yi5sZW5ndGgmJmIudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9LApzYXZlQ29uc2VudDpmdW5jdGlvbihiLGMsZCxmKXskKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsImF1dG8iKTthLmhpZGVDb25zZW50KCk7dm9pZCAwPT1kJiYoZD0iIik7dmFyIGg9Yj83MzA6MTgwO2M9e2VtYWlsOmEudXNlckVtYWlsLGZpcnN0OmEudXNlckZpcnN0TmFtZSxsYXN0OmEudXNlckxhc3ROYW1lLHBob25lOmEudXNlclBob25lLHNpdGVJRDokKCIjc2l0ZUlEIikudmFsKCksZnJlcXVlbmN5OmI\/MTotMSxleHBsaWNpdDpiPzE6MCxleHBsaWNpdE9FTTpjPzE6MCxpbWc6ZCxyZWZlcmVyOnZvaWQgMCE9ZG9jdW1lbnQucmVmZXJyZXI\/ZG9jdW1lbnQucmVmZXJyZXI6IiIsZnJvbToiRUgifTtpZih2b2lkIDAhPT1hLnByZWZlcnJlZF9jb250YWN0JiYiIiE9PWEucHJlZmVycmVkX2NvbnRhY3R8fHZvaWQgMCE9PWdldENvb2tpZSgicHJlZmVycmVkX2NvbnRhY3QiKSYmIiIhPT1nZXRDb29raWUoInByZWZlcnJlZF9jb250YWN0IikpZD1hLnByZWZlcnJlZF9jb250YWN0fHwKZ2V0Q29va2llKCJwcmVmZXJyZWRfY29udGFjdCIpLGQ9eyJUw6lsw6lwaG9uZSI6IlBIT05FIixDb3VycmllbDoiRU1BSUwifVtkXXx8ZCxudWxsIT09ZCYmKGMuY29udGFjdFByZWZlcmVuY2U9ZC50b1VwcGVyQ2FzZSgpKTtzZXRDb29raWUoInZpc2l0b3JfZnJlcXVlbmN5X3ByZWZlcmVuY2UiLC0xLGgpO3NldENvb2tpZSgidmlzaXRvcl9jb25zZW50X3ByZWZlcmVuY2UiLGI\/IkV4cGxpY2l0IjoiSW1wbGljaXQiLGgpO3NldENvb2tpZSgidmlzaXRvcl9oYXNfZXhwbGljaXRfY29uc2VudCIsYj8ieWVzIjoibm8iLGgpO3NldENvb2tpZSgidmlzaXRvcl9lbWFpbF9wcmVmZXJlbmNlIixjLmVtYWlsLDkwKTskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5zaG93KCk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKX0sNUUzKTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL2FqYXgvdHJhY2tFbWFpbFByZWZlcmVuY2U\/d3N3aWR0aD0wIiwKZGF0YVR5cGU6Impzb24iLGRhdGE6Yyxjb21wbGV0ZTpmdW5jdGlvbihtKXt0cnl7dmFyIHI9SlNPTi5wYXJzZShtLnJlc3BvbnNlVGV4dCk7YS5jb25zZW50RGV0YWlsc0VOPWJ0b2Eoci5kZXRhaWxDb25zZW50LkVOR0xJU0gpO2EuY29uc2VudERldGFpbHNGUj1idG9hKHIuZGV0YWlsQ29uc2VudC5GUkVOQ0gpfWNhdGNoKGspe31hLnBvc3RTYXZlQ29uc2VudChiLGYpfX0pfSxwb3N0U2F2ZUNvbnNlbnQ6ZnVuY3Rpb24oYixjKXt2b2lkIDAhPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0gmJnZvaWQgMCE9YS5kZXRhaWxzRGVmYXVsdHMuRlJFTkNIJiYoYj8oYS5jb25zZW50RGV0YWlsc0VOPWEuZGV0YWlsc0RlZmF1bHRzLkVOR0xJU0hbMV0sYS5jb25zZW50RGV0YWlsc0ZSPWEuZGV0YWlsc0RlZmF1bHRzLkZSRU5DSFsxXSk6KGEuY29uc2VudERldGFpbHNFTj1hLmRldGFpbHNEZWZhdWx0cy5FTkdMSVNIWzJdLGEuY29uc2VudERldGFpbHNGUj1hLmRldGFpbHNEZWZhdWx0cy5GUkVOQ0hbMl0pKTsKaWYoYyl7aWYoYS5pZ25vcmVDYXB0Y2hhP2EucmVhZHlUb1NlbmQoKTphLnJlY2FwdGNoYS5nZXRSZXNwb25zZSgpLmRvbmUoZnVuY3Rpb24oZCl7YS5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbj1kO2EucmVhZHlUb1NlbmQoKX0pLCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQWZ0ZXJDb25zZW50KWEub25BZnRlckNvbnNlbnQoYil9ZWxzZSBhLmhpZGVDb25zZW50KCl9LHN1Ym1pdENvbnNlbnQ6ZnVuY3Rpb24oYixjLGQpe2EuY29uc2VudERlYWxlcj1iO2EuY29uc2VudE9FTT1jO2lmKGQmJiJjb21wbGV4Ij09ZCl7dmFyIGY9IiI7LTE9PWEucHVyY2hhc2VfaW50ZW50PyhkPSJQYXMgZGUgcmVwb25zZSIsZj0iTk9fQU5TV0VSIik6ZD1hLnB1cmNoYXNlX2ludGVudDtudWxsIT1kLm1hdGNoKC8zMC8pPyhkPSJNb2lucyBkZSAzMCBqb3VycyIsZj0iTFRfMzBfREFZUyIpOm51bGwhPWQubWF0Y2goLzMvKT8oZD0iTW9pbnMgZGUgMyBtb2lzIixmPSJMVF8zX01PTlRIUyIpOm51bGwhPWQubWF0Y2goLzYvKSYmCihudWxsIT1kLm1hdGNoKC9wbHVzfG92ZXJ8bW9yZS8pPyhkPSJQbHVzIGRlIDYgbW9pcyIsZj0iR1RfNl9NT05USFMiKTooZD0iTW9pbnMgZGUgNiBtb2lzIixmPSJMVF82X01PTlRIUyIpKTt2YXIgaD0iUmVwb25zZSAtICIrYS5wdXJjaGFzZV9pbnRlbnRfc2VjdGlvbi50b1VwcGVyQ2FzZSgpO2EubG9nRXZlbnQoIkludGVudGlvbnMgYWNoYXQ6ICIrZCwiUFVSQ0hBU0VfSU5URU5UXyIrZik7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKFsiYi5fdHJhY2tFdmVudCIsIkludGVudGlvbnMgYWNoYXQiLGgsZCwxXSl9c3dpdGNoKGEuc3VibWl0VHlwZSl7Y2FzZSAic2NyYXRjaCI6Y2FzZSAiaW5zdGFudFJlYmF0ZSI6cmVhbFN1Ym1pdFJlYmF0ZUNvdXBvbigpO2JyZWFrO2RlZmF1bHQ6IiIhPWEucG9zdFN1Ym1pdENhbGxiYWNrJiZldmFsKGEucG9zdFN1Ym1pdENhbGxiYWNrKX0ic2NyYXRjaCI9PWEuc3VibWl0VHlwZSYmc2hvd1BvcHVwV2lkZ2V0KCk7JCgiI2xhc3RDb25zZW50UG9wIikudmFsKGI\/CiJFeHBsaWNpdCI6IkltcGxpY2l0Iik7YS5zYXZlQ29uc2VudChiLGMsIiIsITApfSxwcmVTZW5kQ2hlY2tzOmZ1bmN0aW9uKGIpe2I\/YS5yZWFkeVRvU2VuZCgpOmEuc2hvd0NvbnNlbnQoKX0sc2VuZE1haWw6ZnVuY3Rpb24oYil7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2Euc3VibWl0VHlwZT0ibm9ybWFsIjtiPSJ1bmRlZmluZWQiIT10eXBlb2YgYj9iOiExO2EuaWdub3JlQ2FwdGNoYXx8KGEuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW49eWllbGQgYS5yZWNhcHRjaGEuZ2V0UmVzcG9uc2UoKSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjb25MZWFkU3VibWl0R2VvbG9jIikudmFsKCl8fDEhPSQoIiNvbkxlYWRTdWJtaXRHZW9sb2MiKS52YWwoKXx8InVuZGVmaW5lZCI9PXR5cGVvZiBnZW9Mb2NhdG9yfHxhLnNraXBHZW9Mb2MpYS5wcmVTZW5kQ2hlY2tzKGIpO2Vsc2V7dmFyIGM9bmV3IGdlb0xvY2F0b3IoZnVuY3Rpb24oZCl7YS5nZW9sb2Nfc3RhdHVzPQpkLmdlb2xvY19zdGF0dXM7MT09ZC5yZXN1bHQmJihhLmdlb2xvY19sYXQ9ZC5sYXRpdHVkZSxhLmdlb2xvY19sb25nPWQubG9uZ2l0dWRlLGEuZ2VvbG9jX2FjY3VyYWN5PWQuYWNjdXJhY3ksYS5nZW9sb2NfdHJhY2tfc3RyPWQuZ2VvY29kZV9hZGRyZXNzLGEuZ2VvbG9jX2VtYWlsX3N0cj1kLmdlb2NvZGVfYWRkcmVzc19zdHIsLTE9PWEuYm9keS5pbmRleE9mKCIjI0dFT0xPQ0FUSU9OIyMiKSYmKGEuYm9keT10cmltKGEuYm9keSkucmVwbGFjZSgvPGJyPiZuYnNwOy9nLCI8YnI+IikrIiMjR0VPTE9DQVRJT04jIyIpLCJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCYmYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCgiUE9TVEFMX0NPREUiLGQuZ2VvY29kZV9hZGRyZXNzX3N0cikpOyJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2xlYWRTZW50IikudmFsKCkmJgooZD0kKCI8aW5wdXQ+IikuYXR0cih7aWQ6ImxlYWRTZW50Iix0eXBlOiJoaWRkZW4ifSkudmFsKDEpLCQoIiNmb290ZXJEaXYiKS5hcHBlbmQoZCksYS5wcmVTZW5kQ2hlY2tzKGIpKX0pO2MudHJhY2tMb2NhdGlvbkdBPSEwO2MuZ2V0TG9jYXRpb24oKX19KX0sc2VuZFVzZXJFbWFpbDpmdW5jdGlvbihiLGMpe3NlbmRUb0RhdGE9e307dmFyIGQ9Yj0iIixmPSIiLGg9IiI7Zm9yKGkgaW4gYylpZigic3RyaW5nIj09dHlwZW9mIGkpc3dpdGNoKGkudG9Mb3dlckNhc2UoKSl7Y2FzZSAiZW1haWx0byI6ZD1jW2ldO2JyZWFrO2Nhc2UgImVtYWlsaWQiOmI9Y1tpXTticmVhaztjYXNlICJkZWFsZXJlbWFpbCI6Zj1jW2ldO2JyZWFrO2Nhc2UgImRlYWxlcnBob25lIjpoPWNbaV07YnJlYWs7ZGVmYXVsdDpzZW5kVG9EYXRhW2ldPWNbaV19Yz17dmFyczpKU09OLnN0cmluZ2lmeShzZW5kVG9EYXRhKSxzaXRlaWQ6JCgiI3RvcHNpdGVpZCIpLnZhbCgpLGxhbmd1YWdlOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSwKZW1haWxpZDpiLGVtYWlsdG86ZCxkZWFsZXJFbWFpbDpmLGRlYWxlclBob25lOmgsc291cmNlVVJJOndpbmRvdy5sb2NhdGlvbi5ocmVmfTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL2FqYXgvYWRkTWFpbFRvU2VuZD93c3dpZHRoPTAiLGRhdGE6Y30pfSxnZXRTdG9ja051bWJlcjpmdW5jdGlvbigpe2lmKGEuc3RvY2tOdW1iZXIpcmV0dXJuIGEuc3RvY2tOdW1iZXI7aWYoMDwkKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikubGVuZ3RoJiYwPCQoIiN0YXJnZXRQYWdlIikubGVuZ3RoJiZbIk5FV0NBUkRFVEFJTFMiLCJDQVJERVRBSUxTIiwiUFJPTU8iLCJWRUhJQ0xFRVZBTCJdLmluY2x1ZGVzKCQoIiN0YXJnZXRQYWdlIikudmFsKCkpKXt2YXIgYj0kKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7aWYoMjxiLmxlbmd0aCl7dmFyIGM9Yi5pbmRleE9mKCIoU3RvY2siKTstMTxjJiYoYj1iLnN1YnN0cihjKzcpLGM9Yi5pbmRleE9mKCIpIiksCi0xPGMmJihiPWIuc3Vic3RyKDAsYykudHJpbSgpKSk7Yis9IiJ9ZWxzZSBiPSIifWVsc2UgYj1nZXRQYXJhbWV0ZXJCeU5hbWUoInN0b2Nrbm8iKXx8IiI7cmV0dXJuIGIudHJpbSgpfSxnZXRWUERVcmxGcm9tU3RvY2s6ZnVuY3Rpb24oKXt2YXIgYj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpOiQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7dHJ5e3ZhciBjPWEuZ2V0U3RvY2tOdW1iZXIoKSxkPSIiLGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/CiJ1c2VkIjoib2NjYXNpb24iLGg9ZygiaHJlZiIpLG09ZygicHJvdG9jb2wiKSxyPWgucmVwbGFjZShtKyIvLyIsIiIpLnNwbGl0KCIvIiksaz1yWzBdLHQ9aC5pbmRleE9mKCItaWQiKTtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBwYWdlfHwiQlVJTERBTkRQUklDRSIhPXBhZ2UmJiJORVdDQVJERVRBSUxTIiE9cGFnZSlpZigtMTx0KXt2YXIgdT1wYXJzZUludChoLnN1YnN0cih0KzMpLnJlcGxhY2UoIi5odG1sIiwiIiksMTApO2lmKCFpc05hTih1KSYmMDx1KXt2YXIgbD1yW3IubGVuZ3RoLTFdOy0xPGwuaW5kZXhPZih1KSYmKGQ9JzxhIGhyZWY9IicrbSsiLy8iK2srIi8iK2YrIi8iK2wrIlwiIHRhcmdldD0nX2JsYW5rJz4iK2IrIjwvYT4iKX19ZWxzZSIiIT09YS50cmltJiYoYj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsKIiAiK2EudHJpbTokKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIithLnRyaW0rIiAiKyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKTtlbHNlIiIhPT1hLnRyaW0mJihiPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIithLnRyaW06JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkrIiAiKyQoIiNsYXN0dmlld2VkbW9kZWwiKS52YWwoKSsiICIrYS50cmltKyIgIiskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSksZD0nPGEgaHJlZj0iJytoKyJcIiB0YXJnZXQ9J19ibGFuayc+IitiKyI8L2E+IjtpZigiIj09ZCYmMjxjLmxlbmd0aCl7dmFyIHE9JCgiI3RvcHNpdGVpZCIpLnZhbCgpLHc9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/CiJlbiI6ImZyIjskLmFqYXgoe3R5cGU6IkdFVCIsYXN5bmM6ITEsZGF0YVR5cGU6Impzb24iLHVybDoiLyIrdysiL3BocC9nZXRVUkxGcm9tU3RvY2sucGhwP3NpdGVJRD0iK3ErIiZzdG9jaz0iK2Msc3VjY2VzczpmdW5jdGlvbihwKXsib2JqZWN0Ij09dHlwZW9mIHAmJm51bGwhPXAmJnZvaWQgMCE9cC5tYWtlJiYoZD0nPGEgaHJlZj0iJyttKyIvLyIraysiLyIrZisiLyIrKHAubWFrZSsiLSIrcC5tb2RlbCsiLSIrcC55ZWFyKyItaWQiK3AuaWQrIi5odG1sXCIgdGFyZ2V0PSdfYmxhbmsnPiIpK3AuZnVsbCsiPC9hPiIpfX0pfSIiIT1kJiYoYj1kKX1jYXRjaChwKXtjb25zb2xlLmxvZyhwKX1yZXR1cm4gYn0sc2V0U2VuZEFuZERlcGFydG1lbnRPdmVycmlkZTpmdW5jdGlvbihiKXtmdW5jdGlvbiBjKHUsbCl7MDx1Lmxlbmd0aCYmIiIhPT11LnZhbCgpJiYoYi5zZW5kVG89dS52YWwoKSk7MDxsLmxlbmd0aCYmIiIhPT1sLnZhbCgpJiYoYi5zZW5kVG9BREZGb3JtYXQ9bC52YWwoKSl9CmlmKDAhPSQoIiNpc0dlbmVyaWNTZWFyY2hQYWdlIikubGVuZ3RoJiYidHJ1ZSI9PT0kKCIjaXNHZW5lcmljU2VhcmNoUGFnZSIpLnZhbCgpKXtzd2l0Y2goYS5tYWlsSUQpe2Nhc2UgIm1lbnVTZXJ2aWNlIjpjYXNlICJtZW51Q29udGFjdFVzIjpjYXNlICJoZWFkZXJTZXJ2aWNlIjpyZXR1cm59dmFyIGQ9JCgiI0NVU1RPTV9TRU5EX0xFQUQiKTtpZigwIT09ZC5sZW5ndGgmJjAhPT1kLnZhbCgpJiYibnVsbCIhPT1kLnZhbCgpKXtiLmRlcGFydG1lbnQ9ZC52YWwoKS50b1VwcGVyQ2FzZSgpO3ZhciBmPSQoIiNuZXdFbWFpbCIpLGg9JCgiI25ld0FkZkVtYWlsIiksbT0kKCIjdGV4dFNlbmRUb0VtYWlsIikscj0kKCIjdGV4dFNlbmRUb0VtYWlsQURGIiksaz0kKCIjZmluYW5jZUVtYWlsIiksdD0kKCIjZmluYW5jZUFkZkVtYWlsIik7c3dpdGNoKGQudmFsKCkpe2Nhc2UgIm5ldyI6YyhmLGgpO2JyZWFrO2Nhc2UgInVzZWQiOmMobSxyKTticmVhaztjYXNlICJmaW5hbmNlIjpjKGssdCl9fX19LApnZXRKc29uT2JqZWN0OmZ1bmN0aW9uKCl7IiI9PWEudHJpbSYmJCgiI3BvcHVwdHJpbSIpLmxlbmd0aCYmInskUE9QVVBUUklNfSIhPSQoIiNwb3B1cHRyaW0iKS52YWwoKSYmKGEudHJpbT0kKCIjcG9wdXB0cmltIikudmFsKCkpO3ZhciBiPXt9LGM9ZnVuY3Rpb24oeSl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoKG51bGwhPUNvb2tpZXMuZ2V0KHkpJiYidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMuZ2V0KHkpP2VzY2FwZShDb29raWVzLmdldCh5KSk6IiIpKyIiLnJlcGxhY2UoL1wrL2csIiUyMCIpKX1jYXRjaChEKXtyZXR1cm4obnVsbCE9Q29va2llcy5nZXQoeSkmJiJ1bmRlZmluZWQiIT10eXBlb2YgQ29va2llcy5nZXQoeSk\/ZXNjYXBlKENvb2tpZXMuZ2V0KHkpKToiIikrIiIucmVwbGFjZSgvXCsvZywiJTIwIil9fSxkPWMoInJlbGFuY2VJRCIpLGY9YygidXRtX3NvdXJjZSIpLGg9YygidXRtX2NhbXBhaWduIiksbT1hLmRlY29kZVVSTFJlY3Vyc2l2ZWx5KGMoInV0bV9rZXl3b3JkIikpLApyPWMoInV0bV9sYW5kaW5nX2Zvb3RlciIpLGs9YygidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpLHQ9YygidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIiksdT0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iS2V5d29yZCI6Ik1vdC1jbCYjMjMzOyIsbD0wPG0ubGVuZ3RoPyJbICIrdSsiOiAiK20rIl0iOiIiLHE9MDxyLmxlbmd0aD8iW0Rlc3RpbmF0aW9uOiAiK2QyY21lZGlhLmdldEh0dHBUZXh0KCkrIjovLyIrd2luZG93LmxvY2F0aW9uLmhvc3QrcisiXSI6IltEZXN0aW5hdGlvbjogIitkMmNtZWRpYS5nZXRIdHRwVGV4dCgpKyI6Ly8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0K3IrIiAuXSI7dT1jKCJsb2NfaW50ZXJlc3QiKTtjPWMoImxvY19waHlzaWNhbCIpO3ZhciB3PXU\/YGxvY19pbnRlcmVzdD0ke3V9YDoiIixwPWM\/YGxvY19waHlzaWNhbD0ke2N9YDoiIix2PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJPcmdhbmljIjoiT3JnYW5pcXVlIjsKbD0wPGYubGVuZ3RoP2Ake2Z9IC0gJHtofSAke2x9ICR7d30gJHtwfWA6djtxPWQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKGwpKyIgIitxO3A9IiI7dz1hLmdldFN0b2NrTnVtYmVyKCk7IiIhPXcmJihwPSIoU3RvY2s6IithLmdldFN0b2NrTnVtYmVyKCkrIikiKTt2PXtuZXc6IkVOR0xJU0giPT1zaXRlUGFnZS5sYW5nPyJuZXciOiJuZXVmIixuZXdpbnY6IkVOR0xJU0giPT1zaXRlUGFnZS5sYW5nPyJuZXciOiJuZXVmIix1c2VkOiJFTkdMSVNIIj09c2l0ZVBhZ2UubGFuZz8idXNlZCI6ImQnb2NjYXNpb24ifTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFVUTURFVEFJTFN9L2cscSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVU0VSTkFNRX0vZyxhLnVzZXJGaXJzdE5hbWUpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVVNFUlBPU1RBTH0vZyxhLnVzZXJQb3N0YWwudG9VcHBlckNhc2UoKSk7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRVVE1ERVRBSUxTfS9nLAoiIik7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC97XCRGT09URVJ9L2csIiIpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkRU1BSUxCVUlMREFORFBSSUNFfS9nLGEuYmFuZHBMaW5rKCkpO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJMQUJFTH0vZyxwKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLHApO2EuYm9keT1hLmJvZHkucmVwbGFjZSgve1wkVkVISUNMRV9DT05ESVRJT059L2csdlthLmNvbmRpdGlvbi50b0xvd2VyQ2FzZSgpXSk7aWYoIiIhPT1hLmJvZHkpe3ZhciBBPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCk6IiI7cD0iIiE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLmxlbmd0aD8KJCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCk6JCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKTtBPUEhPXAmJiIiIT1BP0E6cDthLmRlYWxlck5hbWU9YS5kZWFsZXJOYW1lP2EuZGVhbGVyTmFtZTpBfWEuYm9keT1hLmJvZHkucmVwbGFjZSgieyRERUFMRVJOQU1FfSIsYS5kZWFsZXJOYW1lKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoInskQ1VTVE9NVkVISUNMRUlOVEVSRVNUfSIsYS5tYWtlKyIgIithLm1vZGVsKyIgIithLnllYXIpO2EubGVhZFJlcXVlc3RUeXBlJiYoYS5ib2R5PWEuYm9keS5yZXBsYWNlQWxsKCJ7JFJFUVVFU1R9IixhLmxlYWRSZXF1ZXN0VHlwZSksYS5zdWJqZWN0PWEuc3ViamVjdC5yZXBsYWNlQWxsKCJ7JFJFUVVFU1R9IixhLmxlYWRSZXF1ZXN0VHlwZSksYS5sZWFkUmVxdWVzdFR5cGU9IiIpO2JvZHlMb3dlcj1hLmJvZHkudG9Mb3dlckNhc2UoKTtmb3Iodj0wOy0xPGJvZHlMb3dlci5pbmRleE9mKCJyZW1vdmVlbXB0eSIpOyl7cD1ib2R5TG93ZXIuaW5kZXhPZigicmVtb3ZlZW1wdHkiKTsKaWYoLTE9PXApYnJlYWs7cnBsRW5kPWJvZHlMb3dlci5pbmRleE9mKCI8YnI+IixwKTtycGxTdGFydD1ib2R5TG93ZXIubGFzdEluZGV4T2YoIjxicj4iLHApO2lmKC0xPT1ycGxFbmR8fC0xPT1ycGxTdGFydClicmVhaztycGxTdHJpbmc9YS5ib2R5LnN1YnN0cmluZyhycGxTdGFydCxycGxFbmQpO2EuYm9keT1hLmJvZHkucmVwbGFjZShycGxTdHJpbmcsIiIpO2JvZHlMb3dlcj1hLmJvZHkudG9Mb3dlckNhc2UoKTt2Kys7aWYoNTA8dilicmVha312PWEuZ2V0VlBEVXJsRnJvbVN0b2NrKCk7MD09di50cmltKCkubGVuZ3RoJiYocD0kKCdpbnB1dFtuYW1lPSJzZWFyY2hlZHZlaGljbGUiXScpLmZpbHRlcigiOnZpc2libGU6Zmlyc3QiKSx2PXAubGVuZ3RoP3AudmFsKCk6IiIpO2EucGF5bWVudFZlaGljbGUmJjA8YS5wYXltZW50VmVoaWNsZS5sZW5ndGgmJih2PWEucGF5bWVudFZlaGljbGUpOyIiPT1hLmNhcmlkJiYkKCIjdG9wY2FyaWQiKS5sZW5ndGgmJihhLmNhcmlkPSQoIiN0b3BjYXJpZCIpLnZhbCgpKTsKIiI9PWEudmluJiYkKCIjcGhvbmV2aW4iKS5sZW5ndGgmJihhLnZpbj0kKCIjcGhvbmV2aW4iKS52YWwoKSk7cD1hLmJvZHkuaW5kZXhPZigiPHNwYW4gaWQ9J3BoU0VBUkNIVkVISUNMRSc+Iik7aWYoLTE8cCl7dmFyIHo9YS5ib2R5LnN1YnN0cihwKzI3KS5pbmRleE9mKCI8L3NwYW4+Iik7LTE8eiYmKGEuYm9keT1hLmJvZHkuc3Vic3RyKDAscCkrdithLmJvZHkuc3Vic3RyKHAreisyNys3KSl9YS5ib2R5PWEuYm9keS5yZXBsYWNlKC88c3BhbiBpZD0ncGhTRUFSQ0hWRUhJQ0xFJz4vZywiIik7YS5ib2R5PWEuYm9keS5yZXBsYWNlKC88XC9zcGFuPi9nLCIiKTthLmJvZHk9YS5ib2R5LnJlcGxhY2UoL3tcJFNFQVJDSEVEVkVISUNMRX0vZyx2KTtpZigiMSI9PSQoIiNoYXNWQkRDRW5hYmxlZCIpLnZhbCgpKXtwPSIiO3Y9MDt6PSIiO0Nvb2tpZXMuZ2V0KCJEMkNVVUlEIik7Zm9yKHZhciB4IGluIHNlc3Npb25TdG9yYWdlKWlmKDA9PXguaW5kZXhPZigiVkRQTVZCTlAtIikpe3ZhciBDPQpzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHgpO0M+PXomJih6PUMscD14LnJlcGxhY2UoIlZEUE1WQk5QLSIsIiIpKX1pZigiIj09cCYmKHo9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZDJjX1ZEUE1WIiksbnVsbCE9eikpZm9yKHggaW4gej1KU09OLnBhcnNlKHopLHopQz16W3hdLDI8PUMmJkM+diYmKHY9QyxwPXgpOyIiIT1wJiYtMT09YS5ib2R5LmluZGV4T2YoIltWQkRDLUhPVF0iKSYmLTE9PWEuYm9keS5pbmRleE9mKCJbVkJEQy1NWVNdIikmJih4PXdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCsiLy8iK3dpbmRvdy5sb2NhdGlvbi5ob3N0K3AsYS5ib2R5Kz0nW1ZCREMtSE9UXSA8YSBocmVmPSInK3grJyI+Jyt4KyI8L2E+Iil9eD0kKCIjY3VycmVudFN0YXR1cyIpLnZhbCgpO3g9InVuZGVmaW5lZCI9PXR5cGVvZiB4PyJ1c2VkIjp4LnRvTG93ZXJDYXNlKCk7cD0kKCIjc2VuZEVtYWlsVG9BbGxEZWFsZXJzIik7cD1wLmxlbmd0aCYmMT09cC52YWwoKTtwPSQoIiNoYXNNdWx0aXBsZURlYWxlcnMiKTsKcD1wLmxlbmd0aCYmMT09cC52YWwoKTtwPSQoIiN0b3BjYXJpZCIpO3A9MDxwLmxlbmd0aD8kKCIjdG9wY2FyaWQiKS52YWwoKToiIjtwPSJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2JyYW5kRW1haWxBZGZPdmVycmlkZSIpLnZhbCgpPyQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKToiIjt2PSJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2JyYW5kRW1haWxBZGZPdmVycmlkZSIpLnZhbCgpPyQoIiNicmFuZEVtYWlsQWRmT3ZlcnJpZGUiKS52YWwoKToiIjsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNuZXdTZWN0aW9uT3ZlcnJpZGUiKS52YWwoKSYmJCgiI25ld1NlY3Rpb25PdmVycmlkZSIpLnZhbCgpOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI25ld1NlY3Rpb25FbWFpbCIpLnZhbCgpJiYkKCIjbmV3U2VjdGlvbkVtYWlsIikudmFsKCk7InVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjbmV3U2VjdGlvbkFkZkVtYWlsIikudmFsKCkmJiQoIiNuZXdTZWN0aW9uQWRmRW1haWwiKS52YWwoKTsKc3dpdGNoKCEwKXtjYXNlIDU8cC5sZW5ndGgmJiJuZXciPT14JiYhYS5oYXNTZWxlY3RlZE11bHRpQWRkcmVzczphLnNlbmRUbz1wLGEuc2VuZFRvQURGRm9ybWF0PTU8di5sZW5ndGg\/djpwfWIubGFuZ3VhZ2U9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpOyJmdW5jdGlvbiI9PXR5cGVvZiBjbGVhbkFuZEVuY29kZVRleHQ\/KGIuc3ViamVjdD1jbGVhbkFuZEVuY29kZVRleHQoYS5zdWJqZWN0KSxiLmJvZHk9Y2xlYW5BbmRFbmNvZGVUZXh0KGEuYm9keSkpOihiLnN1YmplY3Q9JC5iYXNlNjQuZW5jb2RlKGEuc3ViamVjdCksYi5ib2R5PSQuYmFzZTY0LmVuY29kZShhLmJvZHkpKTtjbGVhbkVtYWlsRGVsaW1pdGVyPWZ1bmN0aW9uKHkpe3ZhciBEPSIiOyJ1bmRlZmluZWQiIT10eXBlb2YgeSYmbnVsbCE9eSYmeS5sZW5ndGgmJihEPXkuc3BsaXQoIjsiKS5qb2luKCIsIikpO3JldHVybiBEfTsidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSYmIk5FVyI9PWEuZ2V0RGVwKCkmJgphLnNlbmRUbz09JCgiI1NJVEVVU0VERU1BSUwiKS52YWwoKSYmYS5zZW5kVG9BREZGb3JtYXQ9PSQoIiNTSVRFVVNFREVNQUlMQURGIikudmFsKCkmJihhLnNlbmRUbz0kKCIjU0lURU5FV0VNQUlMIikudmFsKCksYS5zZW5kVG9BREZGb3JtYXQ9JCgiI1NJVEVORVdFTUFJTEFERiIpLnZhbCgpKTtiLnNlbmRUbz1hLnNlbmRUbztiLnNlbmRUb0FERkZvcm1hdD1jbGVhbkVtYWlsRGVsaW1pdGVyKGEuc2VuZFRvQURGRm9ybWF0KTtiLnNlbGVjdGVkU2VuZFRvPWEuc2VsZWN0ZWRTZW5kVG87Yi5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdD1hLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0O2IuZW1haWxMaXN0U3VmZml4PSIiOyQoIiNzaXRlY29tcGlsZWlkIikubGVuZ3RoJiYoYi5lbWFpbExpc3RTdWZmaXg9JCgiI3NpdGVjb21waWxlaWQiKS52YWwoKSk7Yi5sZWFkSW52b2tlcj1hLmxlYWRJbnZva2VyfHwiZ2VuZXJpYyI7Yi5kaWdpdGFsUmV0YWlsU0lEPWEuZGlnaXRhbFJldGFpbFNJRHx8CiIiO2IuY29uc2VudERlYWxlcj1hLmNvbnNlbnREZWFsZXI7Yi5jb25zZW50T0VNPWEuY29uc2VudE9FTTtiLnVzZXJFbWFpbD1hLnVzZXJFbWFpbDtiLnRyYWRlaW49YS50cmFkZWluO2IucG9wdXBkaXY9YS5wb3B1cGRpdjtiLnVzZXJBdHRhY2htZW50UGF0aD1hLnVzZXJBdHRhY2htZW50UGF0aDtiLnVzZXJGaXJzdE5hbWU9YS51c2VyRmlyc3ROYW1lO2IudXNlckxhc3ROYW1lPWEudXNlckxhc3ROYW1lO2IubGljZW5zZW51bT1hLmxpY2Vuc2VudW07Yi51c2VyUGhvbmU9YS51c2VyUGhvbmU7Yi5waG9uZVZhbGlkYXRpb25BdHRlbXB0cz1hLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzO2IucGhvbmVNYW5kYXRvcnk9YS5waG9uZU1hbmRhdG9yeTtiLnVzZXJQb3N0YWw9YS51c2VyUG9zdGFsLnRvVXBwZXJDYXNlKCl8fGEuY29udGFjdFppcC50b1VwcGVyQ2FzZSgpO2IudXNlckFkZHJlc3M9YS51c2VyQWRkcmVzc3x8YS5jb250YWN0QWRkcmVzcztiLnByb3ZpbmNlPWEuY29udGFjdFByb3ZpbmNlOwpiLmJpcnRoZGF0ZT1hLmJpcnRoZGF0ZTtiLnNlbmRGcm9tPWEuc2VuZEZyb207Yi5tYWlsSUQ9YS5tYWlsSUQ7Yi5pc0NUQT1hLmlzQ1RBO2IuYnV0dG9uVGV4dD1hLmJ1dHRvblRleHQ7Yi5mcm9tVVJMPXdpbmRvdy5sb2NhdGlvbi5ocmVmO2IubWFrZT1hLm1ha2V8fCIiO2IubW9kZWw9YS5tb2RlbHx8IiI7Yi50cmltPWEudHJpbXx8IiI7Yi52aW49YS52aW58fCIiO2IucHJpY2U9YS5wcmljZXx8IiI7Yi55ZWFyPWEueWVhcnx8IiI7Yi52ZWhpY2xlVHlwZT1hLnZlaGljbGVUeXBlfHwiIjtiLnN0b2NrTnVtYmVyPXc7Yi5jYXJpZD1hLmNhcmlkfHwiIjtiLmNvbmRpdGlvbj1hLmNvbmRpdGlvbjtiLmlzbW9iaWxlc2l0ZT1hLmlzbW9iaWxlc2l0ZTtiLmlzQW1wPSJOTyI7Yi5yZWZlcmVyPSQoIiN0b3ByZWZlcmVyIikudmFsKCk7Yi5zaXRlaWQ9JCgiI3RvcHNpdGVpZCIpLnZhbCgpO2IuZGVhbGVyaWQ9YS5kZWFsZXJpZHx8IiI7Yi5vZW1DZXJ0aWZpY2F0aW9uPSQoIiNvZW1DZXJ0aWZpY2F0aW9uIikudmFsKCl8fApudWxsO2IudXRtX3NvdXJjZT1mO2IucmVsYW5jZUlEPWQ7Yi51dG1fY2FtcGFpZ249aDtiLnV0bV9rZXl3b3JkPW07Yi51dG1fbGFuZGluZz1yO2IudXRtX2RldGFpbHM9bDtiLnV0bV9zb3VyY2VfcmV0YXJnZXRpbmc9aztiLnV0bV9jYW1wYWlnbl9yZXRhcmdldGluZz10O2IubG9jX2ludGVyZXN0PXU7Yi5sb2NfcGh5c2ljYWw9YztiLnBvcHVwT2ZmZXJUeXBlPWEucG9wdXBPZmZlclR5cGU7Yi5mcm9tRmFjZWJvb2s9YS5mcm9tRmFjZWJvb2s7Yi5kZXRhaWxzRlI9YS5jb25zZW50RGV0YWlsc0ZSO2IuZGV0YWlsc0VOPWEuY29uc2VudERldGFpbHNFTjtiLmZyb21BQT1hLmZyb21BQTtiLm93bmVySUQ9YS5vd25lcklEO2IubGVhZFRpdGxlVUlUZXh0PWEubGVhZFRpdGxlVUlUZXh0O2Iuc21zPWEuc21zO2Iub25BZnRlckxlYWRDcmVhdGVkPWEub25BZnRlckxlYWRDcmVhdGVkO2IudHJhZGVpbmJhclJlZ2lzdGVyUGFydGlhbElEPWEudHJhZGVpbmJhclJlZ2lzdGVyUGFydGlhbElEfHwKIiI7InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSYmKCIiIT1hLnVzZXJGaXJzdE5hbWUmJmNsaWVudFN0b3JhZ2Uuc2V0KCJmaXJzdG5hbWUiLGEudXNlckZpcnN0TmFtZSksIiIhPWEudXNlckxhc3ROYW1lJiZjbGllbnRTdG9yYWdlLnNldCgibGFzdG5hbWUiLGEudXNlckxhc3ROYW1lKSwiIiE9YS51c2VyRW1haWwmJmNsaWVudFN0b3JhZ2Uuc2V0KCJlbWFpbCIsYS51c2VyRW1haWwpLCIiIT1hLnVzZXJQaG9uZSYmY2xpZW50U3RvcmFnZS5zZXQoInBob25lIixhLnVzZXJQaG9uZSkpO2IuY2hhdGJvdEJvb3N0SWQ9Z2V0Q29va2llRDJjKCJkMmNjaGF0Ym90aWQiKTtiLnN0eWxlaWQ9JCgiI3N0eWxlSWRJblVzZSIpLmxlbmd0aD8kKCIjc3R5bGVJZEluVXNlIikudmFsKCk6JCgiI2FjdGl2ZVN0eWxlSUQiKS5sZW5ndGg\/JCgiI2FjdGl2ZVN0eWxlSUQiKS52YWwoKToiIjsidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuYWRwX2ZvdXJleWVzX2lkJiZ3aW5kb3cuYWRwX2ZvdXJleWVzX2lkPwooYi5Vbml0ZVdlYnNpdGVDdXN0b21lcklkPXdpbmRvdy5hZHBfZm91cmV5ZXNfaWQsY29uc29sZS5sb2coIkQyVUQgLSBlbWFpbEhhbmRsZXIgSlMgcGFzc2VkIix3aW5kb3cuYWRwX2ZvdXJleWVzX2lkKSk6Y29uc29sZS5sb2coIkQyVUQgLSBlbWFpbEhhbmRsZXIgSlMgLSB3aW5kb3cuYWRwX2ZvdXJleWVzX2lkIGlmIHdhcyB0cmlnZ2VyZWQiLHdpbmRvdy5hZHBfZm91cmV5ZXNfaWQpO2Eub25BZnRlckxlYWRDcmVhdGVkJiYoYi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT0iIixhLnNlbmRUbz1hLnNlbmRUb3x8IiIsZD1hLnNlbmRUby5zcGxpdCgiOyIpLGRbMF0udHJpbSgpLmxlbmd0aD9iLm9uQWZ0ZXJMZWFkQ3JlYXRlZC5mcm9tPWRbMF0udHJpbSgpOihkPWEuc2VuZFRvQURGRm9ybWF0LnNwbGl0KCIsIiksZFswXS50cmltKCkubGVuZ3RoJiYoYi5vbkFmdGVyTGVhZENyZWF0ZWQuZnJvbT1kWzBdLnRyaW0oKSkpKTtiLnVzZXJBZ2VudD0kKCIjdHh0VXNlckFnZW50IikudmFsKCk7CmIuZ3JlY2FwdGNoYVJlc3BvbnNlVG9rZW49YS5ncmVjYXB0Y2hhUmVzcG9uc2VUb2tlbjtkPWEucmVjYXB0Y2hhLmN1cnJlbnRDb250ZXh0KCk7Yi5ncmVjYXB0Y2hhQWN0aW9uPWQuYWN0aW9uO2IuZ3JlY2FwdGNoYU1vZGU9ZC5tb2RlO2IuY29udGFjdElEPWEuY29udGFjdElEO2IuY29udGFjdE5BUz1hLmNvbnRhY3ROQVM7Yi5jb250YWN0QmlydGg9YS5jb250YWN0QmlydGg7Yi5kZWFsZXJOYW1lPWEuZGVhbGVyTmFtZT9hLmRlYWxlck5hbWU6QTtiLmFsbG93X3NoYXJlX3BlcnNvbmFsX2RhdGE9YS5hbGxvd19zaGFyZV9wZXJzb25hbF9kYXRhO2IucHJlZmVycmVkX2NvbnRhY3Q9YS5wcmVmZXJyZWRfY29udGFjdDtiLnV0bWRldGFpbHNUb1JlcGxhY2U9cTsiIiE9YS5nZW9sb2Nfc3RhdHVzJiYoYi5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jX3N0YXR1cyxiLmdlb2xvY19sYXQ9YS5nZW9sb2NfbGF0LGIuZ2VvbG9jX2xvbmc9YS5nZW9sb2NfbG9uZyxiLmdlb2xvY19hY2N1cmFjeT0KYS5nZW9sb2NfYWNjdXJhY3ksImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFuQW5kRW5jb2RlVGV4dD8oYi5nZW9sb2NfdHJhY2tfc3RyPWNsZWFuQW5kRW5jb2RlVGV4dChhLmdlb2xvY190cmFja19zdHIpLGIuZ2VvbG9jX2VtYWlsX3N0cj1jbGVhbkFuZEVuY29kZVRleHQoYS5nZW9sb2NfZW1haWxfc3RyKSk6KGIuZ2VvbG9jX3RyYWNrX3N0cj0kLmJhc2U2NC5lbmNvZGUoYS5nZW9sb2NfdHJhY2tfc3RyKSxiLmdlb2xvY19lbWFpbF9zdHI9JC5iYXNlNjQuZW5jb2RlKGEuZ2VvbG9jX2VtYWlsX3N0cikpKTsiIiE9YS5jYXIyX21ha2UmJihiLmNhcjJfbWFrZT1hLmNhcjJfbWFrZSxiLmNhcjJfbW9kZWw9YS5jYXIyX21vZGVsLGIuY2FyMl90cmltPWEuY2FyMl90cmltLGIuY2FyMl95ZWFyPWEuY2FyMl95ZWFyLGIuY2FyMl9jb2xvcj1hLmNhcjJfY29sb3IsYi5jYXIyX29kb21ldGVyPWEuY2FyMl9vZG9tZXRlcixiLmNhcjJfdmluPWEuY2FyMl92aW4sYi5jYXIyX3RyYW5zbWlzc29uPQphLmNhcjJfdHJhbnNtaXNzb24sYi5jYXIyX2RyaXZldHJhaW49YS5jYXIyX2RyaXZldHJhaW4sYi5jYXIyX2Z1ZWx0eXBlPWEuY2FyMl9mdWVsdHlwZSk7Yi5zZXJ2aWNlRGF0ZTE9YS5zZXJ2aWNlRGF0ZTF8fCIiO2Iuc2VydmljZURhdGUyPWEuc2VydmljZURhdGUyfHwiIjtiLndhaXRpbmdPblNpdGU9YS53YWl0aW5nT25TaXRlfHwiIjtiLmNvbW1lbnRzPWEuY29tbWVudHM7YS5za2lwR2V0RGVwP2IuZGVwYXJ0bWVudD1hLmRlcGFydG1lbnQ6KGIuZGVwYXJ0bWVudD1hLmdldERlcCgpLGEuZGVwYXJ0bWVudD1hLmdldERlcCgpKTtpZigiVVNFRCI9PWIuZGVwYXJ0bWVudCYmMD09YS5kZXBhcnRtZW50QnlTdG9jayl7dmFyIEI9JCgnaW5wdXRbbmFtZT0ic2VhcmNoZWR2ZWhpY2xlIl0nKS5maWx0ZXIoIjp2aXNpYmxlOmZpcnN0IikudmFsKCk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBCJiYoQj1CLnNwbGl0KCIoU3RvY2siKSxCWzFdKSl7dmFyIEY9IlVTRUQiO0I9QlsxXS5yZXBsYWNlKCIpIiwKIiIpLnJlcGxhY2UoIjoiLCIiKS5yZXBsYWNlKCIjIiwiIikudHJpbSgpLnRvTG93ZXJDYXNlKCk7JC5hamF4KHt0eXBlOiJHRVQiLGFzeW5jOiExLGRhdGFUeXBlOiJqc29uIix1cmw6Ii9qcy9qc29uL3VzZWRCeVByaWNlQXNjLmpzb24iLHN1Y2Nlc3M6ZnVuY3Rpb24oeSl7JC5lYWNoKHksZnVuY3Rpb24oRCxFKXtpZihFLnNuLnRvTG93ZXJDYXNlKCk9PUIpcmV0dXJuIEY9IjEiPT1FLmlzbmV3fHwiMSI9PUUuaXNkZW1vPyJORVciOiJVU0VEIiwhMX0pO2EuZGVwYXJ0bWVudEJ5U3RvY2s9Rn19KX19IiIhPT1hLmRlcGFydG1lbnRCeVN0b2NrJiYhMSE9PWEuZGVwYXJ0bWVudEJ5U3RvY2smJihiLmRlcGFydG1lbnQ9YS5kZXBhcnRtZW50QnlTdG9jayk7IWIuZGVwYXJ0bWVudHx8Im5ldyI9PWIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpJiYidXNlZCI9PWIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpP2IuY29uZGl0aW9uPWIuZGVwYXJ0bWVudCYmIm5ldyI9PWIuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpPwoiTmV3IjoiVXNlZCI6Yi5jb25kaXRpb249JCgiI2N1cnJlbnRTdGF0dXMiKS5sZW5ndGg\/JCgiI2N1cnJlbnRTdGF0dXMiKS52YWwoKToidW5rbm93biI7Yi5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkhPWIuY29uZGl0aW9uLnRvTG93ZXJDYXNlKCkmJihiLmNvbmRpdGlvbj1iLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKSk7bnVsbCE9YS5jcmVkaXREYXRhJiYoYi5jcmVkaXREYXRhPWEuY3JlZGl0RGF0YSk7bnVsbCE9YS5kZWFsZXJBcHBvaW50bWVudERhdGEmJihiLmRlYWxlckFwcG9pbnRtZW50RGF0YT1hLmRlYWxlckFwcG9pbnRtZW50RGF0YSk7MDwkKCIjcHVyY2hhc2VfaW50ZW50X2Fuc3dlciIpLmxlbmd0aCYmKGIucHVyY2hhc2VfaW50ZW50PWEucHVyY2hhc2VfaW50ZW50LGIucHVyY2hhc2VfaW50ZW50X2Fuc3dlcj0kKCIjcHVyY2hhc2VfaW50ZW50X2Fuc3dlciIpLnZhbCgpLGIucHVyY2hhc2VfaW50ZW50X25vX2Fuc3dlcj0kKCIjcHVyY2hhc2VfaW50ZW50X25vX2Fuc3dlciIpLnZhbCgpKTsKYi5wdXJjaGFzZV9pbnRlbnQ9YS5hc2tQdXJjaGFzZUludGVudD9iLnB1cmNoYXNlX2ludGVudD9iLnB1cmNoYXNlX2ludGVudDotMTohMTskKCIjY3VycmVudEl0ZW1UeXBlIikubGVuZ3RoP2IuaXRlbVR5cGU9JCgiI2N1cnJlbnRJdGVtVHlwZSIpLnZhbCgpOmIuaXRlbVR5cGU9IiI7YS5ib2R5Kz0iXHgzYyEtLSBKUyBVbmlxdWUgaWQ6IitNYXRoLnJvdW5kKDVFMypNYXRoLnJhbmRvbSgpKSsiLS1ceDNlIjtyZXR1cm4gYn0sZ2V0RGVwOmZ1bmN0aW9uKCl7dmFyIGI9KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpLGM9L1xiKG5ld3xuZXVmfG5ldWZzfGNvbmZpZ3VyYXRpb24tZXQtcHJpeHxidWlsZC1hbmQtcHJpY2V8ZGVtb3N8ZGVtb25zdHJhdGV1cnN8Y2xlYXJhbmNlKVxiLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSksZD0vXGIodXNlZHxvY2Nhc2lvbilcYi8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5nVXNlZFNycEFwcHomJgoidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZSYmImZ1bmN0aW9uIj09PXR5cGVvZiB3aW5kb3cuZ1VzZWRTcnBBcHB6LmZpbHRlckludGVyZmFjZS5nZXRDdXJyZW50RmlsdGVyU3RhdGUpe3ZhciBmPXdpbmRvdy5nVXNlZFNycEFwcHouZmlsdGVySW50ZXJmYWNlLmdldEN1cnJlbnRGaWx0ZXJTdGF0ZSgiY2F0ZWdvcnkiKTtpZighMSE9PWYmJmYubGVuZ3RoKWlmKDE9PT1mLmxlbmd0aCYmMz09PWZbMF0udmFsdWUpYz0hMCxkPSExO2Vsc2V7dmFyIGgsbT0wLHI9MDtmb3IoaD0wO2ghPT1mLmxlbmd0aDtoKyspZltoXS5udW0+bSYmKG09ZltoXS5udW0scj1mW2hdLnZhbHVlKTsxPT09cnx8Mj09PXI\/KGM9ITEsZD0hMCk6Mz09PXImJihjPSEwLGQ9ITEpfX1mPTA7aD0kKCdpbnB1dFtuYW1lPSJzZWFyY2hlZHZlaGljbGUiXScpLmZpbHRlcigiOnJlYWxseVZpc2libGU6Zmlyc3QiKTswPGgubGVuZ3RoJiYoaD1oLnZhbCgpLm1hdGNoKC8xOVswLTldezJ9fDIwWzAtOV17Mn0vZyksCm51bGwhPWgmJihmPXBhcnNlSW50KGhbMF0pKSk7Znx8KGY9YS55ZWFyKTtzd2l0Y2goYS5tYWlsSUQpe2Nhc2UgIlRpcmVzUmVxdWVzdCI6Y2FzZSAiUGFydHNSZXF1ZXN0IjpyZXR1cm4iUEFSVFMiO2Nhc2UgIlNlcnZpY2VSZXF1ZXN0IjpjYXNlICJSZWNhbGxzIjpjYXNlICJCb2R5U2hvcCI6Y2FzZSAibWVudVNlcnZpY2UiOmNhc2UgImhlYWRlclNlcnZpY2UiOmNhc2UgIkVzdGhldGljUmVxdWVzdCI6cmV0dXJuIlNFUlZJQ0UiO2Nhc2UgIkNyZWRpdFJlcXVlc3QiOmNhc2UgIkNyZWRpdFJlcXVlc3RNb2JpbGUiOmNhc2UgIkRlYWxlclRyYWNrIjpjYXNlICJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0IjpjYXNlICJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Mm5kQ2hhbmNlIjpjYXNlICJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0SW5zdGFudCI6Y2FzZSAiQ3JlZGl0U2NvcmUiOmNhc2UgIkNyZWRpdEFwcENhcmQiOnJldHVybiJGSU5BTkNFIjtjYXNlICJKb2JPZmZlciI6cmV0dXJuIkhSIjsKY2FzZSAibWVudUNvbnRhY3RVcyI6aWYoIiIhPT1hLmRlcGFydG1lbnQpcmV0dXJuIGEuZGVwYXJ0bWVudC50b1VwcGVyQ2FzZSgpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIG1haWxRdWlja0VtYWlsLmRlcGFydG1lbnQmJiIiIT09bWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudClyZXR1cm4gbWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudC50b1VwcGVyQ2FzZSgpfWlmKDA8Zil7aWYoZCYmZj49YisxKXJldHVybiJORVciO2lmKCFjJiYhZCl7aWYoZj49Yi0xKXJldHVybiJORVciO2lmKGY8Yi0xKXJldHVybiJVU0VEIn19cmV0dXJuImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpPyQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLnZhbCgpOmQ\/IlVTRUQiOmM\/Ik5FVyI6IiIhPT1hLmRlcGFydG1lbnQ\/YS5kZXBhcnRtZW50OiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3BvcHVwRGVwYXJ0bWVudCIpLmF0dHIoImlkIikmJiQoIiNwb3B1cERlcGFydG1lbnQiKS52YWwoKS5sZW5ndGg\/CiQoIiNwb3B1cERlcGFydG1lbnQiKS52YWwoKToidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLmF0dHIoImlkIikmJiQoIiNkZWZhdWx0RGVwYXJ0bWVudCIpLnZhbCgpLmxlbmd0aD8kKCIjZGVmYXVsdERlcGFydG1lbnQiKS52YWwoKToiVVNFRCJ9LGRlYWxlclNlbGVjdEZ1bmM6ZnVuY3Rpb24oYixjKXtiPXZvaWQgMD09PWI\/ITE6Yjt2YXIgZD0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIiksZj1kLmZpbmQoInNlbGVjdCIpLGg9ZC5maW5kKCIuZGVhbGVyLXNlbGVjdC13cmFwcGVyIik7YS5oYXNTZWxlY3RlZE11bHRpQWRkcmVzcz0hMTt2YXIgbT1zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkZWFsZXJTZWxlY3RWYWx1ZXMiKTtpZihtKXJldHVybiBhLnNldERlYWxlclNlbGVjdEVtYWlscygpLGJ8fChiPUpTT04ucGFyc2UobSksYS5zZXRNdWx0aURlYWxlckJvZHkoYi5kZWFsZXJOYW1lLGEuc2VuZFRvKSksYy5nb3RvTmV4dCgpO2lmKCgkKCIjY3VzdG9tRm9ybV9zZW5kdG8iKS5sZW5ndGgmJgoiIiE9JCgiI2N1c3RvbUZvcm1fc2VuZHRvIikudmFsKCl8fCQoIiNjdXN0b21Gb3JtX3NlbmR0b0FERiIpLmxlbmd0aCYmIiIhPSQoIiNjdXN0b21Gb3JtX3NlbmR0b0FERiIpLnZhbCgpKSYmMDw9JCgiI1BBR0VJRCIpLnZhbCgpLmluZGV4T2YoImdlbmVyaWNfIil8fDA9PWQubGVuZ3RoKXJldHVybiBjLmdvdG9OZXh0KCk7aWYoIkpvYk9mZmVyIj09YS5tYWlsSUQmJiIiIT0kKCIjdGV4dFNlbmRUb0VtYWlsRGVmYXVsdCIpLnZhbCgpKXJldHVybiBhLnNlbmRUbz0kKCIjdGV4dFNlbmRUb0VtYWlsRGVmYXVsdCIpLnZhbCgpLGEuc2VsZWN0ZWRTZW5kVG89JCgiI3RleHRTZW5kVG9FbWFpbERlZmF1bHQiKS52YWwoKSxhLnNlbmRUb0FERkZvcm1hdD0kKCIjdGV4dFNlbmRUb0VtYWlsRGVmYXVsdEFERiIpLnZhbCgpLGEuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9JCgiI3RleHRTZW5kVG9FbWFpbERlZmF1bHRBREYiKS52YWwoKSxjLmdvdG9OZXh0KCk7aWYoMCE9PWEuc2VsZWN0ZWRTZW5kVG8ubGVuZ3RofHwKMCE9PWEuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQubGVuZ3RoKXJldHVybiAwPT09YS5zZW5kVG8ubGVuZ3RoJiYoYS5zZW5kVG89YS5zZWxlY3RlZFNlbmRUbyksMD09PWEuc2VuZFRvQURGRm9ybWF0Lmxlbmd0aCYmKGEuc2VuZFRvQURGRm9ybWF0PWEuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQpLGMuZ290b05leHQoKTtiPSQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS5sZW5ndGg\/JCgiI1BPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9UWVBFX1NFTEVDVCIpLnZhbCgpOiJsb2NhdGlvbiI7aWYoMDwkKCIjdGFyZ2V0UGFnZSIpLmxlbmd0aCYmIkNBUkRFVEFJTFMiPT09JCgiI3RhcmdldFBhZ2UiKS52YWwoKSYmImxvY2F0aW9uIj09PWJ8fCgiIiE9PWEuc3RvY2tOdW1iZXJ8fGEuY2FyaWR8fGEuZ2V0U3RvY2tOdW1iZXIoKSkmJiJsb2NhdGlvbiI9PT1iKXJldHVybiBjLmdvdG9OZXh0KCk7JCgiI211bHRpLWRlYWxlci1tYXAiKS5sZW5ndGgmJihHb29nbGVNYXBzV3JhcHBlci5zZXRHb29nbGVNYXAoKSwKYj0kKCIjZm9vdGVyR29vZ2xlTWFwWm9vbSIpLnZhbCgpLGI9MTxwYXJzZUludChiKSYmMTg+PXBhcnNlSW50KGIpP3BhcnNlSW50KGIpOjksYj1uZXcgR29vZ2xlTWFwc1dyYXBwZXIoe2VsZW1lbnQ6Im11bHRpLWRlYWxlci1tYXAiLGFkZHJlc3NlczoidW5kZWZpbmVkIiE9dHlwZW9mIGZvb3Rlck1hcEFkZHJlc3Nlcz9mb290ZXJNYXBBZGRyZXNzZXM6W10sem9vbTpiLG9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmZ1bmN0aW9uKGssdCl7dmFyIHU9JChgLmRlYWxlci1zZWxlY3Qtd3JhcHBlciBidXR0b25bZGF0YS1kZWFsZXJpZD0iJHtrLmRlYWxlcklkfSJdYCk7dS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z29vZ2xlLm1hcHMuZXZlbnQudHJpZ2dlcih0LCJjbGljayIpfSk7dC5hZGRMaXN0ZW5lcigiY2xpY2siLGZ1bmN0aW9uKCl7JCgiLmRlYWxlci1zZWxlY3Qtd3JhcHBlciBidXR0b24iKS5yZW1vdmVDbGFzcygiZm9jdXNlZCIpO3ZhciBsPSQoJyNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gc2VsZWN0W25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpOwp1Lmxlbmd0aCYmKHUuYWRkQ2xhc3MoImZvY3VzZWQiKSx1WzBdLmZvY3VzKCksbXVsdGlEZWFsZXJTZWxlY3Quc2V0U2VsZWN0KHVbMF0sITEpKTtpZihsLmxlbmd0aCl7dmFyIHE9bC5maW5kKGBvcHRpb25bZGF0YS1kZWFsZXJpZD0iJHtrLmRlYWxlcklkfSJdYCk7cS5sZW5ndGgmJmwudmFsKHEudmFsKCkpfX0pOyQoYCNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gb3B0aW9uW2RhdGEtZGVhbGVyaWQ9IiR7ay5kZWFsZXJJZH0iXWApLmRhdGEoIm1hcmtlciIsdCl9LG9uQWZ0ZXJJbml0OmZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzZXMmJjAhPWZvb3Rlck1hcEFkZHJlc3Nlcy5sZW5ndGh8fCQoIiNtdWx0aS1kZWFsZXItbWFwIikuaGlkZSgpOyQoJyNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gc2VsZWN0W25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGs9JCh0aGlzKS5maW5kKCI6c2VsZWN0ZWQiKTsKay5sZW5ndGgmJmdvb2dsZS5tYXBzLmV2ZW50LnRyaWdnZXIoay5kYXRhKCJtYXJrZXIiKSwiY2xpY2siKX0pfX0pLCQoIiNtdWx0aS1kZWFsZXItbWFwIikuc2hvdygpLGIuaW5pdCgpKTtmLm9mZigiZm9jdXMiKS5vbigiZm9jdXMiLGZ1bmN0aW9uKCl7Zi5yZW1vdmVDbGFzcygidmFsaWRpdHktZXJyb25lb3VzIil9KTt2YXIgcj1mdW5jdGlvbihrKXt2YXIgdD1hLmdldERlcCgpO2lmKCJKb2JPZmZlciI9PWEubWFpbElEKXN3aXRjaCgkKCIjam9ib2ZmZXJfZGVwYXJ0bWVudCIpLnZhbCgpKXtjYXNlICJTYWxlc25ldyI6dD0iTkVXIjticmVhaztjYXNlICJTYWxlc3VzZWQiOnQ9IlVTRUQiO2JyZWFrO2Nhc2UgIlNlcnZpY2UiOnQ9IlNFUlZJQ0UiO2JyZWFrO2Nhc2UgIlBhcnRzIjp0PSJQQVJUUyI7YnJlYWs7ZGVmYXVsdDp0PSJORVcifXZhciB1PSIiLGw9IiI7c3dpdGNoKHQpe2Nhc2UgIlVTRUQiOnU9ay5kYXRhKCJlbWFpbHVzZWQiKTtsPWsuZGF0YSgiZW1haWxhZGZ1c2VkIik7CmJyZWFrO2Nhc2UgIlNFUlZJQ0UiOnU9ay5kYXRhKCJlbWFpbHNlcnZpY2UiKTtsPWsuZGF0YSgiZW1haWxhZGZzZXJ2aWNlIik7YnJlYWs7Y2FzZSAiUEFSVFMiOnU9ay5kYXRhKCJlbWFpbHBhcnRzIil8fGsuZGF0YSgiZW1haWxzZXJ2aWNlIik7bD1rLmRhdGEoImVtYWlsYWRmcGFydHMiKXx8ay5kYXRhKCJlbWFpbGFkZnNlcnZpY2UiKTticmVhaztjYXNlICJGSU5BTkNFIjp1PWsuZGF0YSgiZW1haWxmaW5hbmNlIiksbD1rLmRhdGEoImVtYWlsYWRmZmluYW5jZSIpfWEuc2VuZFRvPXV8fGsuZGF0YSgiZW1haWwiKXx8ay5kYXRhKCJlbWFpbHVzZWQiKTthLnNlbGVjdGVkU2VuZFRvPXV8fGsuZGF0YSgiZW1haWwiKXx8ay5kYXRhKCJlbWFpbHVzZWQiKTthLnNlbmRUb0FERkZvcm1hdD1sfHxrLmRhdGEoImVtYWlsYWRmIil8fGsuZGF0YSgiZW1haWxhZGZ1c2VkIik7YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdD1sfHxrLmRhdGEoImVtYWlsYWRmIil8fGsuZGF0YSgiZW1haWxhZGZ1c2VkIik7CmEuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITA7YS5kZWFsZXJpZD1rLmRhdGEoImRlYWxlcmlkIik7YS5zZXRNdWx0aURlYWxlckJvZHkoay50ZXh0KCkudHJpbSgpLGEuc2VuZFRvKTtrPXtzZW5kVG86YS5zZW5kVG8sc2VsZWN0ZWRTZW5kVG86YS5zZWxlY3RlZFNlbmRUbyxzZW5kVG9BREZGb3JtYXQ6YS5zZW5kVG9BREZGb3JtYXQsc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ6YS5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdCxkZWFsZXJOYW1lOmsudGV4dCgpLnRyaW0oKSxkZWFsZXJpZDprLmRhdGEoImRlYWxlcmlkIiksb3B0aW9uaWQ6ay52YWwoKX07c2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgiZGVhbGVyU2VsZWN0VmFsdWVzIixKU09OLnN0cmluZ2lmeShrKSl9OyQoIiNtdXRsaUFkZHJlc3NTdWJtaXQiKS5vZmYoImNsaWNrIikub24oImNsaWNrIixmdW5jdGlvbigpe2lmKCIiPT09Zi52YWwoKSlmLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKSxoLmFkZENsYXNzKCJ2YWxpZGl0eS1lcnJvbmVvdXMiKTsKZWxzZXt2YXIgaz1mLmZpbmQoIjpzZWxlY3RlZCIpO3Ioayk7JCgiLnJldmVhbC1tb2RhbC1iZyIpLmNzcygiei1pbmRleCIsZSk7ZC50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKTtjLmdvdG9OZXh0KCl9fSk7aWYoJCgiLm11bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi1jbG9zZSIpLmxlbmd0aCkkKCIubXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uLWNsb3NlIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtMZWFkcyYmT2JqZWN0LmtleXMoTGVhZHMpLmZvckVhY2goZnVuY3Rpb24oayl7InVuZGVmaW5lZCIhPT10eXBlb2YgTGVhZHNba10ubGVhZElkJiZMZWFkSGFuZGxlcigpLmdldExlYWQoTGVhZHNba10ubGVhZElkKS5jbG9zZSgpfSk7cG9wdXBTdXBlcnZpc29yJiZwb3B1cFN1cGVydmlzb3IucG9wdXBzJiZwb3B1cFN1cGVydmlzb3IucG9wdXBzLmZvckVhY2goZnVuY3Rpb24oayl7ayYmdHlwZW9mIGsuaXNBY3RpdmUoKSYmay5jYW5jZWwoKX0pOyQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiLAplKTtkLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSk7aWYoIiIhPT1hLm1ha2UmJm11bHRpRGVhbGVyU2VsZWN0JiYoYj1tdWx0aURlYWxlclNlbGVjdC5maWx0ZXIoZiksYi5ieU1ha2UoYS5tYWtlKSxiPWIuaGFzT25seU9uZSgpKSlyZXR1cm4gcihiKSxjLmdvdG9OZXh0KCk7aC5sZW5ndGgmJihiPWguZmluZCgiYnV0dG9uIikudG9BcnJheSgpLGIubGVuZ3RoJiYoYj1mdW5jdGlvbihrKXtmb3IobGV0IHQ9ay5sZW5ndGgtMTswPHQ7dC0tKXtjb25zdCB1PU1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSoodCsxKSk7W2tbdF0sa1t1XV09W2tbdV0sa1t0XV19cmV0dXJuIGt9KGIpLGguZmluZCgiYnV0dG9uIikucmVtb3ZlKCksaC5hcHBlbmQoYikpKTtkLnJldmVhbCh7YW5pbWF0aW9uOiJmYWRlQW5kUG9wIixhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazohMSxkaXNtaXNzbW9kYWxjbGFzczoiY2xvc2UtcmV2ZWFsLW1vZGFsMiIsY2xvc2VvbmVzY2FwZTohMX0pOwplPTExMTI8ZT9lOiQoIi5yZXZlYWwtbW9kYWwtYmciKS5jc3MoInotaW5kZXgiKTskKCIucmV2ZWFsLW1vZGFsLWJnIikuY3NzKCJ6LWluZGV4IixwYXJzZUludChkLmNzcygiei1pbmRleCIpKS0xKX0sc2V0RGVhbGVyU2VsZWN0RW1haWxzOmZ1bmN0aW9uKCl7dmFyIGI9c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgiZGVhbGVyU2VsZWN0VmFsdWVzIik7aWYoYiYmKGI9SlNPTi5wYXJzZShiKSxhLmRlYWxlcmlkPWIuZGVhbGVyaWQsYj0kKCcjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIHNlbGVjdFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0gb3B0aW9uW3ZhbHVlPSInK2Iub3B0aW9uaWQrJyJdJykpKXt2YXIgYz1hLmdldERlcCgpO2lmKCJKb2JPZmZlciI9PWEubWFpbElEKXN3aXRjaCgkKCIjam9ib2ZmZXJfZGVwYXJ0bWVudCIpLnZhbCgpKXtjYXNlICJTYWxlc25ldyI6Yz0iTkVXIjticmVhaztjYXNlICJTYWxlc3VzZWQiOmM9IlVTRUQiO2JyZWFrO2Nhc2UgIlNlcnZpY2UiOmM9CiJTRVJWSUNFIjticmVhaztjYXNlICJQYXJ0cyI6Yz0iUEFSVFMiO2JyZWFrO2RlZmF1bHQ6Yz0iTkVXIn12YXIgZD0iIixmPSIiO3N3aXRjaChjKXtjYXNlICJVU0VEIjpkPWIuZGF0YSgiZW1haWx1c2VkIik7Zj1iLmRhdGEoImVtYWlsYWRmdXNlZCIpO2JyZWFrO2Nhc2UgIlNFUlZJQ0UiOmQ9Yi5kYXRhKCJlbWFpbHNlcnZpY2UiKTtmPWIuZGF0YSgiZW1haWxhZGZzZXJ2aWNlIik7YnJlYWs7Y2FzZSAiUEFSVFMiOmQ9Yi5kYXRhKCJlbWFpbHBhcnRzIil8fGIuZGF0YSgiZW1haWxzZXJ2aWNlIik7Zj1iLmRhdGEoImVtYWlsYWRmcGFydHMiKXx8Yi5kYXRhKCJlbWFpbGFkZnNlcnZpY2UiKTticmVhaztjYXNlICJGSU5BTkNFIjpkPWIuZGF0YSgiZW1haWxmaW5hbmNlIiksZj1iLmRhdGEoImVtYWlsYWRmZmluYW5jZSIpfWEuc2VuZFRvPWR8fGIuZGF0YSgiZW1haWwiKXx8Yi5kYXRhKCJlbWFpbHVzZWQiKTthLnNlbGVjdGVkU2VuZFRvPWR8fGIuZGF0YSgiZW1haWwiKXx8Yi5kYXRhKCJlbWFpbHVzZWQiKTsKYS5zZW5kVG9BREZGb3JtYXQ9Znx8Yi5kYXRhKCJlbWFpbGFkZiIpfHxiLmRhdGEoImVtYWlsYWRmdXNlZCIpO2Euc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9Znx8Yi5kYXRhKCJlbWFpbGFkZiIpfHxiLmRhdGEoImVtYWlsYWRmdXNlZCIpO2EuaGFzU2VsZWN0ZWRNdWx0aUFkZHJlc3M9ITB9fSxoYW5kbGVTZW5kRmFpbHVyZTpmdW5jdGlvbihiLGMpe2EubG9nRm9ybVJlcXVlc3QoIkZvcm1TdWJtaXR0ZWRFbWFpbE5vdFNlbnQiLGEubWFpbElELGIpO2EucGFydGlhbD0hMTthLmxhc3RDaGVja3N1bT0hMTtiPSIiO3RyeXtiPWpzX2QyY19nZXRfdmFsKCJFTUFJTF9GQUlMX01FU1NBR0UiKX1jYXRjaChkKXt9Ynx8KGI9IlRoZXJlIHdhcyBhIHByb2JsZW0gc2VuZGluZyB5b3VyIG1lc3NhZ2UuIFBsZWFzZSB0cnkgYWdhaW4uIik7YWxlcnQoYz9iKyJcbiIrYzpiKTtqUXVlcnkoImJvZHkiKS50cmlnZ2VyKCJlbWFpbEhhbmRsZXIuZW1haWxTZW50Iix7bWFpbElEOmEubWFpbElELHN1Y2Nlc3M6ITEsCmVycm9yOmN8fCIifSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuY2FsbGJhY2spdHJ5e2EuY2FsbGJhY2soITEpfWNhdGNoKGQpe31hLmNhbGxiYWNrPW51bGx9LHJlYWR5VG9TZW5kOmZ1bmN0aW9uKCl7dmFyIGI9YS5jcmVhdGVDaGVja3N1bSgpO2lmKGEubGFzdENoZWNrc3VtPT1iKSJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uRHVwbGljYXRlU2VuZD9hLm9uRHVwbGljYXRlU2VuZC5jYWxsKCk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJDUkMgTWF0Y2giLGEubGFzdENoZWNrc3VtLGIpO2Vsc2V7YS5sYXN0Q2hlY2tzdW09YjskKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLmxlbmd0aCYmIiIhPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLmxlbmd0aCYmJCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSE9CiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpJiYoYj0kKCJib2R5IikuaGFzQ2xhc3MoIkZSRU5DSCIpPyJDb25jZXNzaW9uIG\/vv70gZXN0IHNpdHXvv70gbGUgdu+\/vWhpY3VsZTogIjoiRGVhbGVyIHdoZXJlIHRoZSB2ZWhpY2xlIGlzIGxvY2F0ZWQ6ICIsYis9JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS52YWwoKSxhLmJvZHk9YS5ib2R5LnJlcGxhY2UoInskREVBTEVSX1NFTkRUT30iLGIpKTswPCQoIiNpc21vYmlsZSIpLmxlbmd0aCYmKGEuaXNtb2JpbGVzaXRlPSJZRVMiKTtpZigwPT1hLnN1YmplY3QubGVuZ3RofHwwPT1hLmJvZHkubGVuZ3RoKXJldHVybiExO2EuaW5qZWN0Q3RhQ29tcGxldGVkRGF0YSgpO2pzb25PYmplY3Q9YS5nZXRKc29uT2JqZWN0KCk7Yj1udWxsO2I9SlNPTi5zdHJpbmdpZnkoanNvbk9iamVjdCk7dmFyIGM9YS5wb3B1cE9mZmVyVHlwZTtiPXtqc29uOmJ9O2lmKGEucGFydGlhbCliLnBhcnRpYWw9CiEwO2Vsc2V7InVuZGVmaW5lZCIhPXR5cGVvZiBndGFnJiZ3aW5kb3cuZDJjX2F3Y0lkJiZ3aW5kb3cuZDJjX2F3Y0xhYmVsJiYoImxpdmUiPT1kZXBsb3ltZW50VHlwZS50b0xvd2VyQ2FzZSgpP2d0YWcoImV2ZW50IiwiY29udmVyc2lvbiIse3NlbmRfdG86ZDJjX2F3Y0lkKyIvIitkMmNfYXdjTGFiZWx9KTpjb25zb2xlLmxvZygiZ3RhZygnZXZlbnQnLCdjb252ZXJzaW9uJywgeyAnc2VuZF90byc6ICIrZDJjX2F3Y0lkKyIvIitkMmNfYXdjTGFiZWwrIiB9KTsiKSk7dmFyIGQ9e21haWxJRDphLm1haWxJRCxtYWtlOmEubWFrZSxtb2RlbDphLm1vZGVsLHllYXI6YS55ZWFyLHZpbjphLnZpbixjb25kaXRpb246YS5jb25kaXRpb24sZGVwYXJ0bWVudDphLmRlcGFydG1lbnQsdHJhZGVpbjphLnRyYWRlaW4scG9wdXBPZmZlclR5cGU6YS5wb3B1cE9mZmVyVHlwZSxib2R5VHlwZTphLnZlaGljbGVUeXBlLHNhbGVzRGVwdDphLnNhbGVzRGVwdCxwb3B1cERpdjphLnBvcHVwZGl2LGlzQ1RBOmEuaXNDVEEsCmJ1dHRvblRleHQ6YS5idXR0b25UZXh0fTtqUXVlcnkoImJvZHkiKS50cmlnZ2VyKCJlbWFpbEhhbmRsZXIuc3VibWl0IixkKX0kKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5zaG93KCk7c2V0VGltZW91dChmdW5jdGlvbigpeyQoIi51aS1sb2FkZXItYmFja2dyb3VuZCIpLmhpZGUoKX0sNUUzKTskKCdpbnB1dFtuYW1lPSJsZWFkX2RlcGFydG1lbnQiXScpLnZhbChqc29uT2JqZWN0LmRlcGFydG1lbnQpOyQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoYS5zdWJqZWN0LnJlcGxhY2UoL1tcblxyXS9nLCIgIikpOyIiIT1hLmxlYWRUaXRsZVRleHQmJigkKCdpbnB1dFtuYW1lPSJsZWFkVHlwZSJdJykudmFsKGEubGVhZFRpdGxlVGV4dC5yZXBsYWNlKC9bXG5ccl0vZywiICIpKSxhLmxlYWRUaXRsZVRleHQ9IiIpOyQoJ2lucHV0W25hbWU9InBhZ2VJRCJdJykudmFsKCQoIiNQQUdFSUQiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iY3VycmVudFVSTCJdJykudmFsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTsKJCgnaW5wdXRbbmFtZT0iaXNGdWxsV2lkdGgiXScpLnZhbCgkKCIjaXNGdWxsV2lkdGhQYWdlTmV3VkRQIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImRlYWxlck5hbWUiXScpLnZhbCgkKCIjbmV3VkRQRGVhbGVyTmFtZSIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJidXR0b25Qb3NpdGlvbiJdJykudmFsKCQoIiNuZXdWRFBCdXR0b25Qb3NpdGlvbiIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJpc01vYmlsZU5ld1ZEUCJdJykudmFsKCQoIiNpc21vYmlsZSIpLnZhbCgpKTskKCdpbnB1dFtuYW1lPSJpc0NvbmZpcm1Qb3B1cCJdJykudmFsKDApOyJjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciI9PWEucG9wdXBkaXYmJiQoJ2lucHV0W25hbWU9ImlzQ29uZmlybVBvcHVwIl0nKS52YWwoMSk7JCgnaW5wdXRbbmFtZT0iY29uZmlybV9lbWFpbCJdJykudmFsKGEudXNlckVtYWlsKTskKCdpbnB1dFtuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiXScpLnZhbChhLnVzZXJGaXJzdE5hbWUpOwokKCdpbnB1dFtuYW1lPSJjb25maXJtX2xhc3RfbmFtZSJdJykudmFsKGEudXNlckxhc3ROYW1lKTskKCdpbnB1dFtuYW1lPSJjb25maXJtX3Bob25lX251bWJlciJdJykudmFsKGEudXNlclBob25lKTtmb3JtRmlsbC5zYXZlKHtlbWFpbDphLnVzZXJFbWFpbCxmaXJzdE5hbWU6YS51c2VyRmlyc3ROYW1lLGxhc3ROYW1lOmEudXNlckxhc3ROYW1lLHBob25lOmEudXNlclBob25lLHBvc3RhbDphLnVzZXJQb3N0YWx9KTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL21haWwvc2VuZE1haWxFeC5waHAiLGRhdGE6YixiZWZvcmVTZW5kOmZ1bmN0aW9uKGYpe2YmJmYub3ZlcnJpZGVNaW1lVHlwZSYmZi5vdmVycmlkZU1pbWVUeXBlKCJhcHBsaWNhdGlvbi9qc29uO2NoYXJzZXQ9VVRGLTgiKTt0cnl7bGV0IGg9JCgibWV0YVtuYW1lPSdjc3JmLWRvbWFpbi1jaGVjayddIik7aC5sZW5ndGgmJmYuc2V0UmVxdWVzdEhlYWRlcigiY3NyZi1kb21haW4tY2hlY2siLGguYXR0cigiY29udGVudCIpKX1jYXRjaChoKXtjb25zb2xlLmVycm9yKGYpfX0sCnN1Y2Nlc3M6ZnVuY3Rpb24oZil7YS5sb2dGb3JtUmVxdWVzdCgiRm9ybVN1Ym1pdHRlZCIsYS5tYWlsSUQsYyk7YS5wYXJ0aWFsPSExO2EubGFzdENoZWNrc3VtPSExO3ZhciBoPXt9O3RyeXtoPSJzdHJpbmciPT10eXBlb2YgZj9KU09OLnBhcnNlKGYpOmZ9Y2F0Y2gobSl7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJlbWFpbEhhbmRsZXI6IG1hbGZvcm1lZCBKU09OIHJlc3BvbnNlIixmLG0pO2EuaGFuZGxlU2VuZEZhaWx1cmUoYyxtJiZtLm1lc3NhZ2UpO3JldHVybn1hLl9fbGFzdFJldHVybj1oO2lmKCJvYmplY3QiPT10eXBlb2YgaHx8InVuZGVmaW5lZCIhPXR5cGVvZiBoLmxlYWRpZClhLl9fbGVhZGlkPWgubGVhZGlkOyJmdW5jdGlvbiIhPXR5cGVvZiBhLmNhbGxiYWNrJiYoYS5jYWxsYmFjaz1mdW5jdGlvbigpe30pO2pRdWVyeSgiYm9keSIpLnRyaWdnZXIoImVtYWlsSGFuZGxlci5lbWFpbFNlbnQiLHttYWlsSUQ6YS5tYWlsSUQsbWFrZTphLm1ha2UsbW9kZWw6YS5tb2RlbCwKeWVhcjphLnllYXIsdmluOmEudmluLGNvbmRpdGlvbjphLmNvbmRpdGlvbixkZXBhcnRtZW50OmEuZGVwYXJ0bWVudCx0cmFkZWluOmEudHJhZGVpbixzdWNjZXNzOiJTVUNDRVNTIj09PWguc3RhdHVzLGRldGFpbDp7Y29uZmlybV9maXJzdF9uYW1lOmEudXNlckZpcnN0TmFtZSxjb25maXJtX2xhc3RfbmFtZTphLnVzZXJMYXN0TmFtZSxjb25maXJtX2VtYWlsOmEudXNlckVtYWlsLGNvbmZpcm1fcGhvbmVfbnVtYmVyOmEudXNlclBob25lLHllYXI6YS55ZWFyLG1ha2U6YS5tYWtlLG1vZGVsOmEubW9kZWwsaWQ6aC5sZWFkaWQsdmluOmEudmluLGNvbmRpdGlvbjphLmNvbmRpdGlvbix2ZXJzaW9uOmEudmVyc2lvbnx8IiIsTklWOmEudmluLHRyaW06YS50cmltLGxlYWRUeXBlOmEubGVhZFR5cGV8fCIiLG1haWxJZDphLm1haWxJRH19KTsiU1VDQ0VTUyI9PWguc3RhdHVzPyhhLmNhbGxiYWNrKCEwKSxhLm1haW5Qcm9tbyYmKGY9bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLAp7ZGV0YWlsOntzdGVwSWQ6Ik1haW5Qcm9tb0J0biJ9fSksZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChmKSkpOmEuY2FsbGJhY2soITEpO2EuY2FsbGJhY2s9bnVsbH0sZXJyb3I6ZnVuY3Rpb24oZixoLG0pe2YmJjQwND09PWYuc3RhdHVzfHxhLmhhbmRsZVNlbmRGYWlsdXJlKGMsbXx8aHx8IiIpfSxzdGF0dXNDb2RlOns0MDQ6ZnVuY3Rpb24oKXthLmhhbmRsZVNlbmRGYWlsdXJlKGMsIjQwNCIpfX19KTthLnBvcHVwT2ZmZXJUeXBlPSIifX0saW5qZWN0Q3RhQ29tcGxldGVkRGF0YTpmdW5jdGlvbigpe2xldCBiPSIiLGM9IiI7dmFyIGQ9IiI7dHJ5e3ZhciBmPSJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2U\/Y2xpZW50U3RvcmFnZS5nZXQoImJhbmRwX2NvbmZpZyIsImxvY2FsIik6bG9jYWxTdG9yYWdlLmdldEl0ZW0oImJhbmRwX2NvbmZpZyIpfWNhdGNoKG0pe2Y9bnVsbH12YXIgaD0idW5kZWZpbmVkIiE9PXR5cGVvZiBmJiZudWxsIT09Zj9KU09OLnBhcnNlKGRlY29kZVVSSUNvbXBvbmVudChmKSk6CkpTT04ucGFyc2UoInt9Iik7Zj0obSxyKT0+e3I9cnx8ITE7bGV0IGs9bS5vcHRpb25zLnJlZHVjZSgoQSx6KT0+QStgJHt6fTxicj5gLCIiKSx0PSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJWZWhpY2xlIGRldGFpbHMiOiJWw6loaWN1bGUgY29uZmlndXLDqSIsdT0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iRmluYW5jaW5nIGRldGFpbHMiOiJEw6l0YWlscyBkdSBmaW5hbmNlbWVudCIsbCxxLHc7cj1yPyIiOmAKCQkJCQkJPHU+JHt1fTo8L3U+PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PShsPW0ucGF5bWVudCk\/dm9pZCAwOmwudG90YWx9PGJyPgoJCQkJCQkke251bGw9PW0\/dm9pZCAwOm51bGw9PShxPW0ucGF5bWVudCk\/dm9pZCAwOnEucmF0ZX08YnI+CgkJCQkJCSR7bnVsbD09bT92b2lkIDA6bnVsbD09KHc9bS5wYXltZW50KT92b2lkIDA6dy5hbW91bnR9PGJyPjxicj4KCQkJCQlgO2xldCBwLHY7cmV0dXJuYAoJCQkJCTx1PiR7dH06PC91Pjxicj4KCQkJCQkke251bGw9PW0\/dm9pZCAwOm0ubW9kZWx9PGJyPgoJCQkJCUV4dDogJHsobnVsbD09bT92b2lkIDA6bnVsbD09KHA9bS5jb2xvcnMpP3ZvaWQgMDpwLmV4dCl8fCIifSwgSW50OiAkeyhudWxsPT1tP3ZvaWQgMDpudWxsPT0odj1tLmNvbG9ycyk\/dm9pZCAwOnYuaW50KXx8IiJ9PGJyPgoJCQkJCSR7KG51bGw9PW0\/dm9pZCAwOm0uZHJpdmVUcmFpbil8fCIifTxicj4KCQkJCQkke2t9PGJyPgoJCQkJCSR7cn0KCQkJCWB9O2guYmFuZHAmJihiPWYoaC5iYW5kcCkucmVwbGFjZSgvKFx0fFxuKSovZywiIikpO2lmKENvb2tpZXMuZ2V0KCJjdGFfZGF0YV92YWxpZCIpKXtkPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKXx8Int9Iik7aD0hIWQucGF5bWVudDtkLmJhbmRwJiYoZC5iYW5kcC5vcHRpb25zPWQuYmFuZHAub3B0aW9uc3x8W10sYj1mKGQuYmFuZHAsaCkpO2lmKGgpe2xldCBtLHIsaztjPWAKCQkJCQkJPHU+JHsiRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iVmVoaWNsZSBkZXRhaWxzIjoiRMOpdGFpbHMgZHUgZmluYW5jZW1lbnQifTo8L3U+PGJyPgoJCQkJCQkke251bGw9PWQ\/dm9pZCAwOm51bGw9PShtPWQucGF5bWVudCk\/dm9pZCAwOm0ubGlzdFByaWNlfTxicj4KCQkJCQkJJHtudWxsPT1kP3ZvaWQgMDpudWxsPT0ocj1kLnBheW1lbnQpP3ZvaWQgMDpyLnJhdGV9PGJyPgoJCQkJCQkke251bGw9PWQ\/dm9pZCAwOm51bGw9PShrPWQucGF5bWVudCk\/dm9pZCAwOmsucGF5bWVudH08YnI+CgkJCQkJYH1kPSJcblx0XHRcdFx0XHQ8YnI+XG5cdFx0XHRcdFx0PGJyPlxuXHRcdFx0XHRcdDx1PjxzdHJvbmc+VHJhbnNhY3Rpb24gQnVpbGRlcjo8L3N0cm9uZz48L3U+XG5cblx0XHRcdFx0In1pZihifHxjKWEuYm9keSs9KGQrYAoJCQkJCTxicj4KCQkJCQk8YnI+CgkJCQkJJHtifQoJCQkJCSR7Y30KCQkJCWApLnJlcGxhY2UoL1xyP1xufFxyL2csIiIpfSxkZWNvZGVVUkxSZWN1cnNpdmVseTpmdW5jdGlvbihiKXtyZXR1cm4tMSE9Yi5pbmRleE9mKCIlIik\/YS5kZWNvZGVVUkxSZWN1cnNpdmVseShkZWNvZGVVUklDb21wb25lbnQodW5lc2NhcGUoYikpKTpifSx2YWxpZGF0ZUVtYWlsOmZ1bmN0aW9uKGIpe3JldHVybiAkLmFqYXgoe3R5cGU6IkdFVCIsdXJsOiIvYWpheC92YWxpZGF0ZUVtYWlsQWNjb3VudD93c3dpZHRoPTAmZW1haWw9IitiLGFzeW5jOiExfSl9LGdldFVVSUQ6ZnVuY3Rpb24oKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5hY3RpdmVQcm9maWxlSUQmJm51bGwhPXdpbmRvdy5hY3RpdmVQcm9maWxlSUQ\/d2luZG93LmFjdGl2ZVByb2ZpbGVJRDoidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiZudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ\/YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkOgoidW5kZWZpbmVkIiE9dHlwZW9mIENvb2tpZXMmJiJ1bmRlZmluZWQiIT1Db29raWVzLmdldCgidXVpZCIpJiZudWxsIT1Db29raWVzLmdldCgidXVpZCIpP0Nvb2tpZXMuZ2V0KCJ1dWlkIik6IiJ9LHNldENvbnRhY3RJbmZvOmZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgJC5mbi5nb29nbGVQbGFjZXMpe3ZhciBiPSQoJ2lucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcz0idHJ1ZSJdJyk7MCE9Yi5sZW5ndGgmJihiPWIuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIiksIiIhPWIuY2l0eSYmIiI9PWEuY29udGFjdENpdHkmJihhLmNvbnRhY3RDaXR5PWIuY2l0eS5sb25nX25hbWUpLCIiIT1iLnN0cmVldCYmIiIhPWIuc3RyZWV0X251bWJlciYmIiI9PWEuY29udGFjdEFkZHJlc3MmJihhLmNvbnRhY3RBZGRyZXNzPWIuc3RyZWV0X251bWJlci5sb25nX25hbWUrIiAiK2Iuc3RyZWV0LmxvbmdfbmFtZSksIiIhPWIucHJvdmluY2UmJiIiPT1hLmNvbnRhY3RQcm92aW5jZSYmKGEuY29udGFjdFByb3ZpbmNlPQpiLnByb3ZpbmNlLnNob3J0X25hbWUpLCIiIT1iLnBvc3RhbCYmIiI9PWEuY29udGFjdFppcCYmKGEuY29udGFjdFppcD1iLnBvc3RhbC5sb25nX25hbWUpKX19LGdldExvbmdEYXRlVG9TaG9ydEZvcm1hdDpmdW5jdGlvbihiKXtpZigiIj09YilyZXR1cm4gYjtiPWIudG9Mb3dlckNhc2UoKTt2YXIgYz17amFudmllcjoiamFudWFyeSIsImbDqXZyaWVyIjoiZmVicnVhcnkiLG1hcnM6Im1hcmNoIixhdnJpbDoiYXByaWwiLG1haToibWF5IixqdWluOiJqdW5lIixqdWlsbGV0OiJqdWx5IiwiYW\/Du3QiOiJhdWd1c3QiLHNlcHRlbWJyZToic2VwdGVtYmVyIixvY3RvYnJlOiJvY3RvYmVyIixub3ZlbWJyZToibm92ZW1iZXIiLCJkw6ljZW1icmUiOiJkZWNlbWJlciJ9O2I9Yi5yZXBsYWNlKC9cYlxTK1xiL2lnLGZ1bmN0aW9uKGQpe3ZhciBmPWQudG9Mb3dlckNhc2UoKTtyZXR1cm4gY1tmXT9jW2ZdOmR9KTtyZXR1cm4obmV3IERhdGUoYikpLmZvcm1hdCgieXl5eS1NTS1kZCIpfSxnZXRFbWFpbENvbnNlbnQ6ZnVuY3Rpb24oYil7dmFyIGM9Cm5ldyBEYXRlO2Euc2V0Q29udGFjdEluZm8oKTt2YXIgZD1hLmNvbnRhY3RCaXJ0aD9hLmNvbnRhY3RCaXJ0aDphLmdldExvbmdEYXRlVG9TaG9ydEZvcm1hdChhLmJpcnRoZGF0ZSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuc2hvdygpO2dldERhdGE9e2VtYWlsOmEudXNlckVtYWlsLHBob25lOmEudXNlclBob25lLG5hbWU6YS51c2VyRmlyc3ROYW1lKyIgIithLnVzZXJMYXN0TmFtZSxhZGRyOmEuY29udGFjdEFkZHJlc3M\/YS5jb250YWN0QWRkcmVzczphLnVzZXJBZGRyZXNzLGNpdHk6YS5jb250YWN0Q2l0eSxwcm92aW5jZTphLmNvbnRhY3RQcm92aW5jZSx6aXA6YS5jb250YWN0WmlwP2EuY29udGFjdFppcDphLnVzZXJQb3N0YWwsbmFzOmEuY29udGFjdE5BUyxiaXJ0aDpkLHNpdGVJRDokKCIjc2l0ZUlEIikudmFsKCksVVVJRDphLmdldFVVSUQoKSx0czpjLmdldFRpbWUoKSxsYW5nOiQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKSx1cGRhdGVJbXBsaWNpdDohMH07CiQuYWpheCh7dHlwZToiR0VUIix1cmw6Ii9hamF4L2dldEVtYWlsQ29uc2VudEZyb21DUk0\/d3N3aWR0aD0wIixkYXRhOmdldERhdGEsZGF0YVR5cGU6Impzb24ifSkuYWx3YXlzKGZ1bmN0aW9uKGYsaCxtKXtmPWY\/Zjp7aGFzQ29uc2VudDohMX07JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpO3RyeXsidW5kZWZpbmVkIj09dHlwZW9mIGYmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiKioqKiBlcnJvciAqKioqIix7ZXJyb3I6Ik5vIERhdGEiLHRleHRTdGF0dXM6aCxydmFsdWU6Zix2OmdldERhdGEsdDoiL2FqYXgvZ2V0RW1haWxDb25zZW50RnJvbUNSTT93c3dpZHRoPTAifSksW1siY29uc2VudFR5cGUiLCJjb25zZW50VHlwZSJdLFsiY29uc2VudEV4cGlyYXRpb24iLCJleHBpcmF0aW9uIl0sWyJjb25zZW50RGF0ZSIsImRhdGUiXSxbImNvbnNlbnRGcmVxdWVuY3kiLCJmcmVxdWVuY3kiXSwKWyJjb25zZW50RGV0YWlsc0ZSIiwiZGV0YWlsc0ZSRU5DSCJdLFsiY29uc2VudERldGFpbHNFTiIsImRldGFpbHNFTkdMSVNIIl0sWyJkZXRhaWxzRGVmYXVsdHMiLCJkZXRhaWxzRGVmYXVsdHMiXSxbImNvbnRhY3RJRCIsInVpZCJdXS5tYXAoZnVuY3Rpb24ocil7dmFyIGs9clswXTtyPXJbMV07ZGVsZXRlIHZvaWQgMDthW2tdPXZvaWQgMCE9ZltyXT9mW3JdOmFba119KX1jYXRjaChyKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIioqKiogZXJyb3IgKioqKiIse2Vycm9yOnIsdGV4dFN0YXR1czpoLHJ2YWx1ZTpmLHY6Z2V0RGF0YSx0OiIvYWpheC9nZXRFbWFpbENvbnNlbnRGcm9tQ1JNP3dzd2lkdGg9MCJ9KX1iKGYpfSl9LGJhbmRwTGluazpmdW5jdGlvbihiKXtiPWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlcGxhY2UoLy0vZywiXyIpLnJlcGxhY2UoLycvZywiIil9O2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgQ29va2llcy5nZXQoImJhbmRwbGluayIpfHwKbnVsbD09Q29va2llcy5nZXQoImJhbmRwbGluayIpfHwidW5kZWZpbmVkIj09dHlwZW9mIENvb2tpZXMuZ2V0KCJzZXNzaWQiKXx8bnVsbD09Q29va2llcy5nZXQoInNlc3NpZCIpKXJldHVybiIiO3ZhciBjPUNvb2tpZXMuZ2V0KCJiYW5kcGxpbmsiKSxkPUNvb2tpZXMuZ2V0KCJzZXNzaWQiKTtpZigwPmMuaW5kZXhPZigifHx8IikpcmV0dXJuIiI7dmFyIGY9Yy5zcGxpdCgifHx8Iik7aWYoND5mLmxlbmd0aClyZXR1cm4iIjtjPShuZXcgU3RyaW5nKGZbMF0pKS5zcGxpdCgiLyIpO3ZhciBoPW5ldyBTdHJpbmcoZlsxXSksbT1uZXcgU3RyaW5nKGZbMl0pO2Y9bmV3IFN0cmluZyhmWzNdKTt2YXIgcj0kKCIjcG9wdXB0cmltIikubGVuZ3RoJiYieyRQT1BVUFRSSU19IiE9JCgiI3BvcHVwdHJpbSIpLnZhbCgpPyQoIiNwb3B1cHRyaW0iKS52YWwoKToiIixrPSI8YSBocmVmPSciK2QyY21lZGlhLmdldEh0dHBUZXh0KCkrIjovLyIrd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lKyQoIiN0eHRCdWlsZEFuZFByaWNlRm9sZGVyUGF0aCIpLnZhbCgpOwoiRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8ocGFyc2VJbnQoY1syXSksJCgiI1RYVE1PTlRIIitwYXJzZUludChjWzFdKS50b1N0cmluZygpKS52YWwoKSxrKz1mKyItIitiKGgpKyItIitiKG0pKyIuaHRtbD9zaWQ9IitkKyInIHRhcmdldD0nX2JsYW5rJz4iK2YrIiAiK2grIiAiK20rIiAiK3IrIjwvYT4iKTooJCgiI1RYVE1PTlRIIitwYXJzZUludChjWzFdKS50b1N0cmluZygpKS52YWwoKSxrKz1iKGgpKyItIitiKG0pKyItIitmKyIuaHRtbD9zaWQ9IitkKyInIHRhcmdldD0nX2JsYW5rJz4iK2grIiAiK20rIiAiK3IrIiAiK2YrIjwvYT4iKTtyZXR1cm4ga30sbG9nRm9ybVJlcXVlc3Q6ZnVuY3Rpb24oYixjLGQpe3ZhciBmPU1hdGguZmxvb3IoOTk5OTk5OSpNYXRoLnJhbmRvbSgpKSxoPSQoIiN0b3BzaXRlaWQiKS5sZW5ndGg\/JCgiI3RvcHNpdGVpZCIpLnZhbCgpOiIwIixtPSQoIiN0b3BjYXJpZCIpLmxlbmd0aCYmMDwkKCIjdG9wY2FyaWQiKS52YWwoKS5sZW5ndGg\/CiQoIiN0b3BjYXJpZCIpLnZhbCgpOiIwIixyPUNvb2tpZXMuZ2V0KCJ1aWQiKT9Db29raWVzLmdldCgidWlkIik6IjAiLGs9Q29va2llcy5nZXQoInV0bV9zb3VyY2UiKT9Db29raWVzLmdldCgidXRtX3NvdXJjZSIpOiIwIix0PUNvb2tpZXMuZ2V0KCJ1dG1fY2FtcGFpZ24iKT9Db29raWVzLmdldCgidXRtX2NhbXBhaWduIik6IjAiLHU9Q29va2llcy5nZXQoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKT9Db29raWVzLmdldCgidXRtX3NvdXJjZV9yZXRhcmdldGluZyIpOiIwIixsPUNvb2tpZXMuZ2V0KCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKT9Db29raWVzLmdldCgidXRtX2NhbXBhaWduX3JldGFyZ2V0aW5nIik6IjAiLHE9JCgiI3RvcGlzbW9iaWxlIikubGVuZ3RoJiYxPT0kKCIjdG9waXNtb2JpbGUiKS52YWwoKT8iWUVTIjoiTk8iLHc9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLmxlbmd0aD8kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk6IkZSRU5DSCIscD12b2lkIDAhPT0KYSYmdm9pZCAwIT09YS5waG9uZU1hbmRhdG9yeT9hLnBob25lTWFuZGF0b3J5OjA7InVuZGVmaW5lZCIhPXR5cGVvZiBkJiZkfHwoZD0iMCIpO3Q9dC5yZXBsYWNlKC9cdC9nLCIiKS5yZXBsYWNlKC9cbi9nLCIiKS5yZXBsYWNlKC9cci9nLCIiKS5yZXBsYWNlQWxsKCIlMEEiLCIiKS5yZXBsYWNlQWxsKCIlMDkiLCIiKS5yZXBsYWNlQWxsKCIlMEIiLCIiKS5yZXBsYWNlQWxsKCIlMDAiLCIiKS5yZXBsYWNlQWxsKCIlNUMiLCIiKS5yZXBsYWNlQWxsKCIlMEQiLCIiKTtrPWsucmVwbGFjZSgvXHQvZywiIikucmVwbGFjZSgvXG4vZywiIikucmVwbGFjZSgvXHIvZywiIikucmVwbGFjZUFsbCgiJTBBIiwiIikucmVwbGFjZUFsbCgiJTA5IiwiIikucmVwbGFjZUFsbCgiJTBCIiwiIikucmVwbGFjZUFsbCgiJTAwIiwiIikucmVwbGFjZUFsbCgiJTVDIiwiIikucmVwbGFjZUFsbCgiJTBEIiwiIik7Yj0iL3Byb3h5X3NhdWIvbG9nRm9ybVJlcXVlc3QvIitlbmNvZGVVUklDb21wb25lbnQoaCkrCiIvIitlbmNvZGVVUklDb21wb25lbnQobSkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChyKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGspKyIvIitlbmNvZGVVUklDb21wb25lbnQodCkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChxKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KHcpKyIvIitlbmNvZGVVUklDb21wb25lbnQodSkrIi8iK2VuY29kZVVSSUNvbXBvbmVudChsKSsiLyIrZW5jb2RlVVJJQ29tcG9uZW50KGMpKyIvIitlbmNvZGVVUklDb21wb25lbnQoYikrIi8iK2VuY29kZVVSSUNvbXBvbmVudChkKSsiLyIrISFwKyIvIitlbmNvZGVVUklDb21wb25lbnQoZikrIi5naWYiOyQoImJvZHkiKS5hcHBlbmQoIjxpbWcgc3R5bGU9J3dpZHRoOjFweDtoZWlnaHQ6MXB4O3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MHB4O3RvcDowcHg7JyBzcmM9JyIrYisiJyBhbHQ9JycgLz4iKX0sZ2V0VXNlZEVtYWlsRm9yTXVsdGlwbGVEZWFsZXJzOmZ1bmN0aW9uKCl7dmFyIGI9ImZyIjsiRU5HTElTSCI9PQokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkmJihiPSJlbiIpO3VyaT0iLyIrYisiL3BocC9nZXREZWFsZXJzRW1haWxUby5waHA\/bWFrZT0iK2EubWFrZSsiJm1vZGVsPSIrYS5tb2RlbCsiJnllYXI9IithLnllYXIrIiZjYj0iK01hdGguZmxvb3IoOTk5OTk5OSpNYXRoLnJhbmRvbSgpKTskLmFqYXgoe3VybDp1cmksYXN5bmM6ITEsc3VjY2VzczpmdW5jdGlvbihjKXtjPWMuc3BsaXQoInx8fCIpOyJ1bmRlZmluZWQiIT10eXBlb2YgY1swXSYmMDxjWzBdLmxlbmd0aCYmKGEuc2VuZFRvPWNbMF0pOyJ1bmRlZmluZWQiIT10eXBlb2YgY1sxXSYmMDxjWzFdLmxlbmd0aCYmKGEuc2VuZFRvQURGRm9ybWF0PWNbMV0pfX0pfSxwcmVTZW5kSW1wbGljaXQ6ZnVuY3Rpb24oKXtpZihhLnBhcnRpYWwpcmV0dXJuITE7anNvbk9iamVjdD1hLmdldEpzb25PYmplY3QoKTt2YXIgYj17anNvbjpKU09OLnN0cmluZ2lmeShqc29uT2JqZWN0KSxwYXJ0aWFsOiEwfTskLmFqYXgoe3R5cGU6IlBPU1QiLAp1cmw6Ii9tYWlsL3NlbmRNYWlsRXgucGhwIixkYXRhOmIsYmVmb3JlU2VuZDpmdW5jdGlvbihjKXskKCdpbnB1dFtuYW1lPSJsZWFkX2RlcGFydG1lbnQiXScpLnZhbChqc29uT2JqZWN0LmRlcGFydG1lbnQpOyQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoYS5zdWJqZWN0LnJlcGxhY2UoL1tcblxyXS9nLCIgIikpOyQoJ2lucHV0W25hbWU9InBhZ2VJRCJdJykudmFsKCQoIiNQQUdFSUQiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iY3VycmVudFVSTCJdJykudmFsKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTskKCdpbnB1dFtuYW1lPSJpc0Z1bGxXaWR0aCJdJykudmFsKCQoIiNpc0Z1bGxXaWR0aFBhZ2VOZXdWRFAiKS52YWwoKSk7JCgnaW5wdXRbbmFtZT0iZGVhbGVyTmFtZSJdJykudmFsKCQoIiNuZXdWRFBEZWFsZXJOYW1lIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImJ1dHRvblBvc2l0aW9uIl0nKS52YWwoJCgiI25ld1ZEUEJ1dHRvblBvc2l0aW9uIikudmFsKCkpOyQoJ2lucHV0W25hbWU9ImlzTW9iaWxlTmV3VkRQIl0nKS52YWwoJCgiI2lzbW9iaWxlIikudmFsKCkpOwpjJiZjLm92ZXJyaWRlTWltZVR5cGUmJmMub3ZlcnJpZGVNaW1lVHlwZSgiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PVVURi04Iik7dHJ5e2xldCBkPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO2QubGVuZ3RoJiZjLnNldFJlcXVlc3RIZWFkZXIoImNzcmYtZG9tYWluLWNoZWNrIixkLmF0dHIoImNvbnRlbnQiKSl9Y2F0Y2goZCl7Y29uc29sZS5lcnJvcihjKX19LHN1Y2Nlc3M6ZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKGMpfSxlcnJvcjpmdW5jdGlvbihjLGQsZil7YS5sb2dGb3JtUmVxdWVzdCgiRm9ybVN1Ym1pdHRlZEVtYWlsTm90U2VudCIsYS5tYWlsSUQsYS5wb3B1cE9mZmVyVHlwZSk7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJwcmVTZW5kSW1wbGljaXQgZmFpbGVkIixkLGYpfX0pfSxsb2dFdmVudDpmdW5jdGlvbihiLGMpe2M9Yz9jOmEubWFpbElEO2lmKCFifHwhYylyZXR1cm4idW5kZWZpbmVkIiE9PQp0eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixiLGMpLCExOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD9hY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGIsYyk6InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCIhVU5MT0dHRUQgRVZFTlQhIixiLGMpfSxidWlsZENSTUtleTpmdW5jdGlvbigpe3ZhciBiPXBhcnNlSW50KCQoIiN0b3BzaXRlaWQiKS52YWwoKSwxMCksYz1hLmdldFVVSUQoKSxkPWdldENvb2tpZSgiZW1haWxGcm9tQXV0b0Fuc3dlciIpO2lmKCFpc05hTihiKSYmKCIiIT1kfHwiIiE9YykmJiJudW1iZXIiPT10eXBlb2YgYiYmMDxiKXt2YXIgZj1uZXcgRGF0ZSxoPWYuZ2V0TW9udGgoKSsxO2g9JC5iYXNlNjQuZW5jb2RlKGYuZ2V0RnVsbFllYXIoKSsiLSIrKDEwPmg\/IjAiK2g6aCkrCiItIisoMTA+Zi5nZXREYXRlKCk\/IjAiK2YuZ2V0RGF0ZSgpOmYuZ2V0RGF0ZSgpKSk7Zj1oLnN1YnN0cigwLDgpO2g9aC5zdWJzdHIoOCk7cmV0dXJuICQuYmFzZTY0LmVuY29kZShmKyQuYmFzZTY0LmVuY29kZShiKyI7IitjKyI7IitkKStoKX1yZXR1cm4iIn0sc2V0TWFrZU1vZGVsWWVhckZyb21MYXN0Vmlld2VkOmZ1bmN0aW9uKCl7dmFyIGI9JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCksYz0kKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCksZD0kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBiJiYiIj09PWEubWFrZSYmKGEubWFrZT1iKTsidW5kZWZpbmVkIiE9PXR5cGVvZiBjJiYiIj09PWEubW9kZWwmJihhLm1vZGVsPWMpOyJ1bmRlZmluZWQiPT09dHlwZW9mIGR8fCIiIT09YS55ZWFyJiYwIT09YS55ZWFyfHwoYS55ZWFyPWQpfSxnZXQgcmVjYXB0Y2hhKCl7cmV0dXJuIHdpbmRvdy5nb29nbGVSZWNhcHRjaGF9LHNhbml0aXplSFRNTDpmdW5jdGlvbihiKXtyZXR1cm4gZW5jb2RlVVJJKGIpfSwKc2hvdWxkRGlzcGxheVB1cmNoYXNlSW50ZW50Q29udGFjdDooKT0+e2lmKG51bGw9PT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCIpfHxkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjYXNQdXJjaGFzZUludGVudCAuc3RlcENvbnRhY3QiKS5jbGFzc0xpc3QuY29udGFpbnMoImhpZGRlbiIpKXJldHVybiExO2xldCBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhc1B1cmNoYXNlSW50ZW50IC5zdGVwQ29udGFjdCIpLmRhdGFzZXQuZGVwYXJ0bWVudHM7Yj1iLnNwbGl0KCI7Iik7aWYoLTE8Yi5pbmRleE9mKGEuZGVwYXJ0bWVudC50b0xvd2VyQ2FzZSgpKSlyZXR1cm4hMDt2YXIgYz0idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lP2RvY3VtZW50LmxvY2F0aW9uLnBhdGhuYW1lOmRvY3VtZW50LmxvY2F0aW9uLmhyZWYubWF0Y2goL1tBLXpdOlwvXC9bXlwvXStcLyhbXlw\/XSspXD8\/LiovKVsxXTtjPWEuc2FuaXRpemVIVE1MKGMpOwpsZXQgZD1PYmplY3QudmFsdWVzKE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh7bmV3OlsibmV1ZiIsIm5ldyJdLHVzZWQ6WyJvY2Nhc2lvbiIsInVzZWQiXSxzZXJ2aWNlOlsic2VydmljZSIsImVudHJldGllbiIsIm1haW50ZW5hbmNlIiwicmVwYWlyIl0sZmluYW5jZTpbImZpbmFuY2VtZW50IiwiZmluYW5jZSIsImNyZWRpdCIsImxvYW4iXX0pLmZpbHRlcihmPT57W2ZdPWY7cmV0dXJuLTE8Yi5pbmRleE9mKGYpfSkpKS5mbGF0KCk7cmV0dXJuKG5ldyBSZWdFeHAoIigiK2Quam9pbigifCIpKyIpIikpLnRlc3QoYy50b0xvd2VyQ2FzZSgpKX19O2pRdWVyeShmdW5jdGlvbihiKXtiPWpzX2QyY19nZXRfdmFsKCJJU1ZNIik7dmFyIGM9anNfZDJjX2dldF92YWwoImZmZEwxIiksZD1qc19kMmNfZ2V0X3ZhbCgiR1JXTCIpLnNwbGl0KCI7Iik7YS5pZ25vcmVDYXB0Y2hhPWJ8fC0xIT1kLmluZGV4T2YoYyk7YS5pZ25vcmVDYXB0Y2hhfHwod2luZG93Lmdvb2dsZVJlY2FwdGNoYT8KYS5yZWNhcHRjaGEuaW5pdCgpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoImdvb2dsZVJlY2FwdGNoYS5yZWFkeSIsZnVuY3Rpb24oKXthLnJlY2FwdGNoYS5pbml0KCl9LHtvbmNlOiEwfSkpfSk7YS5yZXNldENhbGxiYWNrcygpO2EuYXNrUHVyY2hhc2VJbnRlbnQ9ZnVuY3Rpb24oYil7dmFyIGM9InVuZGVpbmZlZCIhPXR5cGVvZiBiLnBhdGhuYW1lP2IucGF0aG5hbWU6Yi5ocmVmLm1hdGNoKC9bQS16XTpcL1wvW15cL10rXC8oW15cP10rKVw\/Py4qLylbMV07dmFyIGQ9UmVnRXhwKCIoZGVtb25zdHJhdGV1cnN8ZGVtb3xsaXF1aWRhdGlvbnxjbGVhcmFuY2V8cHJvbW90aW9uc3xuZXVmfG5ld3xvY2Nhc2lvbnx1c2VkfGNyZWRpdHxmaW5hbmNlbWVudCkiKTtiPXtkZW1vbnN0cmF0ZXVyczoiZGVtbyIsY2xlYXJhbmNlOiJsaXF1aWRhdGlvbiIsIm5ldyI6Im5ldWYiLHByb21vdGlvbnM6InByb21vIix1c2VkOiJvY2Nhc2lvbiIsY3JlZGl0OiJmaW5hbmNlbWVudCJ9O3JldHVybiBkLnRlc3QoYy50b0xvd2VyQ2FzZSgpKT8KKGM9Yy5tYXRjaChkKSxudWxsIT1jJiYoYS5wdXJjaGFzZV9pbnRlbnRfc2VjdGlvbj0idW5kZWZpbmVkIiE9dHlwZW9mIGJbY1sxXV0\/YltjWzFdXTpjWzFdKSwhMCk6ITF9KGRvY3VtZW50LmxvY2F0aW9uKTtyZXR1cm4gYX0oKSxlbWFpbFRyYWNraW5nPWZ1bmN0aW9uKCl7dmFyIGU9e2JyYW5kOiIiLG1vZGVsOiIiLHllYXI6IiIsaXNwcm9tbzohMSxpc2V4cHJlc3M6ITEsaXNob21lcGFnZTohMSxzZWN0aW9uOiIiLHRleHRDYXJTZWN0aW9uVHlwZToiVVNFRCIsaXNNb2JpbGVOZXdWRFA6ITEsaXNGdWxsV2lkdGg6ITEsYnV0dG9uUG9zaXRpb246IiIsZGVhbGVyTmFtZToiIn0sZz1mdW5jdGlvbihjKXt2YXIgZD1bXSxmPWMuYnJhbmQ\/Yy5icmFuZDplbWFpbEhhbmRsZXIubWFrZSxoPWMubW9kZWw\/Yy5tb2RlbDplbWFpbEhhbmRsZXIubW9kZWw7Yz1jLnllYXI\/Yy55ZWFyOmVtYWlsSGFuZGxlci55ZWFyO2YubGVuZ3RoJiZkLnB1c2goZik7aC5sZW5ndGgmJmQucHVzaChoKTtjLmxlbmd0aCYmCmQucHVzaChjKTtyZXR1cm4gZC5qb2luKCItIil9LG49ZnVuY3Rpb24oYyl7dmFyIGQ9eyJob21lcGFnZS5odG1sIjoiSG9tZS1QYWdlIiwiY29udGFjdHVzLmh0bWwiOiJDb250YWN0VXMiLCJuZXdjYXJkZXRhaWwuaHRtbCI6Ik5ldy1WRFAiLCJuZXdjYXJzLmh0bWwiOiJOZXctU1JQIiwiYnVpbGRhbmRwcmljZS5odG1sIjoiTmV3LUImUCIsInJlc3VtZS1idWlsZGFuZHByaWNlLmh0bWwiOiJOZXctQiZQLVJlc3VtZSIsImNvbXBhcmVOZXdWZWhpY2xlcy5odG1sIjoiTmV3LUNvbXBhcmUiLCJ1c2VkY2Fycy5odG1sIjoiVXNlZC1TUlAiLCJjYXJkZXRhaWwuaHRtbCI6IlVzZWQtVkRQIiwiY3JlZGl0Lmh0bWwiOiJEZW1hbmRlcyAtIEZpbmFuY2VtZW50IiwiZGVhbGVydHJhY2suaHRtbCI6IkRlbWFuZGVzIC0gRmluYW5jZW1lbnQiLCJwcm9tb3Rpb24uaHRtbCI6IlByb21vdGlvbnMiLCJwcm9tb3Rpb25zYWxlcy5odG1sIjoiUHJvbW90aW9ucyIsInByb21vdGlvbnNlcnZpY2UuaHRtbCI6IlByb21vdGlvbnMiLAoicGFydHNSZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFBp77+9Y2VzIiwic2VydmljZXMuaHRtbCI6IlNlcnZpY2UiLCJzZXJ2aWNlUmVxdWVzdC5odG1sIjoiRGVtYW5kZXMgLSBSRFYgU2VydmljZSIsImJvZHlTaG9wLmh0bWwiOiJEZW1hbmRlcyAtIFJEViBDYXJvc3NlcmllIiwidGlyZXNSZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFBuZXVzIiwib3VydGVhbS5odG1sIjoiVGVhbSIsInRlc3Rkcml2ZS5odG1sIjoiRGVtYW5kZXMgLSBFc3NhaXMtUm91dGllci1PY2Nhc2lvbiIsInRlc3Rkcml2ZW5ldy5odG1sIjoiRGVtYW5kZXMgLSBFc3NhaXMtUm91dGllci1OZXVmIiwiYnJvY2h1cmVzLmh0bWwiOiJEZW1hbmRlcyAtIEJyb2NodXJlcyIsImpvYm9mZmVyLmh0bWwiOiJEZW1hbmRlcyAtIEVtcGxvaXMiLCJtYWtlb2ZmZXJuZXcuaHRtbCI6IkRlbWFuZGVzIC0gT2ZmcmUgLSBOZXVmIiwibWFrZW9mZmVyLmh0bWwiOiJEZW1hbmRlcyAtIE9mZnJlIC0gT2NjYXNpb24iLCJwcmljZXJlcXVlc3RuZXcuaHRtbCI6IkRlbWFuZGVzIC0gUHJpeCAtIE5ldWYiLAoicHJpY2VyZXF1ZXN0Lmh0bWwiOiJEZW1hbmRlcyAtIFByaXggLSBPY2Nhc2lvbiIsImZpbmRjYXIuaHRtbCI6IkRlbWFuZGVzIC0gUmVjaGVyY2hlIE9jY2FzaW9uIiwidHJhZGVpbm5ldy5odG1sIjoiRGVtYW5kZXMgLSBFY2hhbmdlIE5ldWYiLCJ0cmFkZWluLmh0bWwiOiJEZW1hbmRlcyAtIEVjaGFuZ2UgT2NjYXNpb24ifSxmPS0xIT0oYy5jdXJyZW50VVJMfHwiIikuaW5kZXhPZigic3RlcD1yZXN1bWUiKSxoPS0xIT0oYy5jdXJyZW50VVJMfHwiIikuaW5kZXhPZigic3RlcD1vcHRpb25zIik7ImJ1aWxkYW5kcHJpY2UuaHRtbCI9PWMucGFnZUlEJiYoZnx8aCkmJihjLnBhZ2VJRD0icmVzdW1lLWJ1aWxkYW5kcHJpY2UuaHRtbCIpO3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgZFtjLnBhZ2VJRF0\/ZFtjLnBhZ2VJRF06Ik90aGVyIn0sYT1mdW5jdGlvbihjKXt2YXIgZD0iRGVtYW5kZXMiLGY9Yy5icmFuZD9jLmJyYW5kOmVtYWlsSGFuZGxlci5tYWtlLGg9Yy5tb2RlbD9jLm1vZGVsOgplbWFpbEhhbmRsZXIubW9kZWw7Yy5pc3Byb21vJiYoZCs9Ii1Qcm9tb3Rpb24iKTswPGYubGVuZ3RoJiYwPGgubGVuZ3RoJiYhYy5pc2hvbWVwYWdlP2Q9Yy5pc3Byb21vP2QrKCItIitnKGMpKTpkK1siIixmLGgsYy5zZWN0aW9uXS5qb2luKCItIik6Yy5pc3Byb21vJiZjLmlzaG9tZXBhZ2UmJihkKz0iLUluZGV4Iik7IjEiPT1jLmlzZXhwcmVzcyYmKGMudGV4dENhclNlY3Rpb25UeXBlJiYoZD0iRGVtYW5kZXMtRXhwcmVzcyIpLGQrPSItIitnKGMpLGQrPSItIitjLnNlY3Rpb24pO3JldHVybiBkfSxiPWZ1bmN0aW9uKGMpe3ZhciBkPTEyMDA8d2luZG93LnNjcmVlbi5hdmFpbFdpZHRoPyI+MTIwMHB4IC0gIi5pc0Z1bGxXaWR0aDoiPDEyMDBweCAtIE5vcm1hbCBWRFAiO1tkLGMuYnV0dG9uUG9zaXRpb25dLmpvaW4oIi0iKTtjPVtjLmRlYWxlck5hbWUsZCwiTGVhZCJdLmpvaW4oIi0iKTtnYVRyYWNrKCJjIiwiTmV3LVZEUC1EZXNrdG9wLUxheW91dC1DUiIsYWN0aW9uLGMsMSl9Owp0aGlzLnRyYWNrPWZ1bmN0aW9uKGMpe2lmKGdldENvb2tpZSgibGVhZFNlbmQiKSlyZXR1cm4gZGVidWcoImxlYWQgc2VudCIpO3NldENvb2tpZSgibGVhZFNlbmQiLCEwLDEpO2M9JC5leHRlbmQoe30sZSxjKTtjLmN1cnJlbnRVUkw9Yy5jdXJyZW50VVJMP2MuY3VycmVudFVSTDp3aW5kb3cubG9jYXRpb24uaHJlZjtjLmlzcHJvbW89IjEiPT1jLmlzcHJvbW87Yy5pc2hvbWVwYWdlPSIxIj09Yy5pc2hvbWVwYWdlO3ZhciBkPW4oYyk7Z2FUcmFjaygiIiwiQ291cnJpZWxzIixjLmxhYmVsLGEoYyksMSk7Z2FUcmFjaygiYyIsIkNvdXJyaWVscy1kZXB0IixjLmRlcGFydG1lbnQsZyhjKSwxKTtnYVRyYWNrKCJjIiwiQ291cnJpZWxzLXBhZ2UiLGQsYy5sZWFkVHlwZSwxKTtjLmlzTW9iaWxlTmV3VkRQJiYiTmV3LVZEUCI9PWQmJmIoYyk7dHJ5e2QyY19nYUFjY291bnRzLmFsbC5tYXAoZnVuY3Rpb24oZil7Z3RhZygiY29uZmlnIixmLHtwYWdlX3BhdGg6Ii9jb25maXJtYXRpb24uaHRtbCJ9KX0pLApndGFnKCJjb25maWciLCJHLVo1UThaNUM3S0YiLHtwYWdlX3BhdGg6Ii9jb25maXJtYXRpb24uaHRtbCJ9KX1jYXRjaChmKXtkZWJ1ZyhmKX19O3JldHVybiB0aGlzfSgpLGdldE1haWxTZW50SGFuZGxlcj1mdW5jdGlvbihlKXt2YXIgZz17dGltZW91dENhbGxiYWNrOm51bGwsdGltZW91dDpudWxsfTtnLmlkVG9BZGQ9ZT9lOiIiOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLmRlZmF1bHRTdWNjZXNzIikuc2hvdygpOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIikuZmluZCgiLnNlcnZpY2VTdWNjZXNzIikuaGlkZSgpOyQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIitlKS5sZW5ndGh8fChlPSIiLGcuaWRUb0FkZD0iIiwiU0VSVklDRSIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50JiYiUEFSVFMiIT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCl8fCgkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmZpbmQoIi5kZWZhdWx0U3VjY2VzcyIpLmhpZGUoKSwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIpLmZpbmQoIi5zZXJ2aWNlU3VjY2VzcyIpLnNob3coKSk7Cmcuc2hvd1N1Y2Nlc3M9ZnVuY3Rpb24oKXtnZXRDb29raWUoInByZXZlbnREdXBsaWNhdGVDcmVkaXRTY29yZSIpfHxnZXRDb29raWUoImNyZWRpdFNjb3JlQ29uZmlybVBvcHVwU2hvd24iKXx8Z2V0Q29va2llKCJjcmVkaXRTY29yZUVtYmVkZGVkRmlsbGVkIil8fCIiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYiIiE9ZW1haWxIYW5kbGVyLnVzZXJBZGRyZXNzJiYiIiE9ZW1haWxIYW5kbGVyLmJpcnRoZGF0ZXx8Im5ldyIhPWVtYWlsSGFuZGxlci5kZXBhcnRtZW50LnRvTG93ZXJDYXNlKCkmJiJ1c2VkIiE9ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKXx8ISQoIiNjcmVkaXRTY29yZUNvbmZpcm1Qb3B1cENvbnRhaW5lciIpLmxlbmd0aHx8IlRyYWRlSW5CYXJQb3B1cENvbnRhaW5lciI9PWVtYWlsSGFuZGxlci5wb3B1cGRpdj8oJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2UpLnBhcmVudCgpLmlzKCJib2R5Iil8fCQoIiNlbWFpbFN1Y2Nlc3NNZXNzYWdlIisKZSkuYXBwZW5kVG8oImJvZHkiKSwkKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZSkucmV2ZWFsKHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiExLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwifSksJCgiI2VtYWlsU3VjY2Vzc01lc3NhZ2UiK2UrIiAuY29uZmlybV9zdWNjZXNzQ29udGludWUiKS5vbigiY2xpY2siLGcuY2xvc2VTdWNjZXNzKSk6JCgiI2NyZWRpdFNjb3JlQ29uZmlybVBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oMSk7JCgiLnVpLWxvYWRlci1iYWNrZ3JvdW5kIikuaGlkZSgpOyQoIiNlbWFpbG1zZ2ZybSIrZy5pZFRvQWRkKS50cmlnZ2VyKCJzdWJtaXQiKX07Zy5jbG9zZVN1Y2Nlc3M9ZnVuY3Rpb24oKXskKCIjZW1haWxTdWNjZXNzTWVzc2FnZSIrZy5pZFRvQWRkKS50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKTtudWxsIT1nLnRpbWVvdXRDYWxsYmFjayYmCmcudGltZW91dENhbGxiYWNrKCk7cmV0dXJuITF9O2cuc2hvd0ZhaWw9ZnVuY3Rpb24oKXskKCIjZW1haWxGYWlsTWVzc2FnZSIrZy5pZFRvQWRkKS5yZXZlYWwoe2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCJ9KTskKCIjZW1haWxGYWlsTWVzc2FnZSIrZSsiIC5jb25maXJtX2ZhaWxDb250aW51ZSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXskKCIjZW1haWxGYWlsTWVzc2FnZSIrZSkudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KTskKCIudWktbG9hZGVyLWJhY2tncm91bmQiKS5oaWRlKCl9O3JldHVybiBnfSxtYWlsU2VudEhhbmRsZXI9bmV3IGdldE1haWxTZW50SGFuZGxlcigiIik7CmZ1bmN0aW9uIHN0b3JhZ2VBdmFpbGFibGUoZSl7dHJ5e3ZhciBnPXdpbmRvd1tlXTtnLnNldEl0ZW0oIl9fc3RvcmFnZV90ZXN0X18iLCJfX3N0b3JhZ2VfdGVzdF9fIik7Zy5yZW1vdmVJdGVtKCJfX3N0b3JhZ2VfdGVzdF9fIik7cmV0dXJuITB9Y2F0Y2gobil7cmV0dXJuIG4gaW5zdGFuY2VvZiBET01FeGNlcHRpb24mJigyMj09PW4uY29kZXx8MTAxND09PW4uY29kZXx8IlF1b3RhRXhjZWVkZWRFcnJvciI9PT1uLm5hbWV8fCJOU19FUlJPUl9ET01fUVVPVEFfUkVBQ0hFRCI9PT1uLm5hbWUpJiZnJiYwIT09Zy5sZW5ndGh9fQp2YXIgZm9ybUZpbGw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLGc9c3RvcmFnZUF2YWlsYWJsZSgibG9jYWxTdG9yYWdlIiksbj1udWxsLGE9ITAsYj1bXSxjPXtuYW1lOlsiaW5wdXQubmFtZSIsJ2lucHV0W25hbWU9Im5hbWUiXSddLHBvc3RhbDpbImlucHV0LnBvc3RhbCIsJ2lucHV0W25hbWU9InBvc3RhbCJdJ10sZmlyc3ROYW1lOidpbnB1dC5maXJzdE5hbWUgaW5wdXQuZmlyc3RuYW1lIGlucHV0W25hbWU9ImZpcnN0bmFtZSJdIGlucHV0W25hbWU9ImZpcnN0TmFtZSJdIGlucHV0I2ZpcnN0bmFtZSBpbnB1dCNmaXJzdE5hbWUgaW5wdXQjbWluaV9mbmFtZScuc3BsaXQoIiAiKSxsYXN0TmFtZTonaW5wdXQubGFzdE5hbWUgaW5wdXQubGFzdG5hbWUgaW5wdXRbbmFtZT0ibGFzdG5hbWUiXSBpbnB1dFtuYW1lPSJsYXN0TmFtZSJdIGlucHV0I2xhc3RuYW1lIGlucHV0I2xhc3ROYW1lIGlucHV0I21pbmlfbG5hbWUnLnNwbGl0KCIgIikscGhvbmU6WyJpbnB1dC5waG9uZSIsJ2lucHV0W25hbWU9InBob25lIl0nLAonaW5wdXRbbmFtZT0icGhvbmVOdW1iZXIiXScsImlucHV0I21pbmlfcGhvbmUiLCdbdHlwZT0idGVsIl0nXSxlbWFpbDpbImlucHV0LmVtYWlsIiwnaW5wdXRbbmFtZT0iZW1haWwiXScsJ2lucHV0W25hbWU9ImVtYWlsQWRkcmVzcyJdJywiaW5wdXQjbWluaV9lbWFpbCJdfSxkPWZ1bmN0aW9uKGwpe2lmKCFnKXJldHVybiExO3ZhciBxPWxvY2FsU3RvcmFnZS5nZXRJdGVtKCJmb3JtRmlsbERhdGEiKTtpZihudWxsPT09cSlyZXR1cm4hMTskLmFqYXgoe3R5cGU6IlBPU1QiLHVybDoiL3Byb3h5X3NkMmMvc2VydmljZS9kMmMuZW5jcnlwdGlvbi5nZXQiLGRhdGE6e2RhdGE6cX19KS5kb25lKGZ1bmN0aW9uKHcpe2lmKHcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbCl0cnl7bChKU09OLnBhcnNlKHcuZGF0YSkpfWNhdGNoKHApe2NvbnNvbGUubG9nKHApfX0pfSxmPWZ1bmN0aW9uKCl7YT0hMDtuPW51bGw7Yi5mb3JFYWNoKGZ1bmN0aW9uKGwpe2wuZmlsbGVkPSExfSl9LGg9ZnVuY3Rpb24obCl7dSgidXNlci5sb2FkZWQiLApmdW5jdGlvbigpe2lmKCFtKGwpKXtiLnB1c2goe3Njb3BlOmwsZmlsbGVkOiEwfSk7Zm9yKHZhciBxIGluIGMpbi5oYXNPd25Qcm9wZXJ0eShxKSYmbC5maW5kKCQoY1txXS5qb2luKCIsIikpKS52YWwobltxXSk7aygiZm9ybS5maWxsZWQiKX19KTtudWxsPT09biYmYT8oYT0hMSxkKGZ1bmN0aW9uKHEpe3EucG9zdGFsPXEucG9zdGFsLnRvVXBwZXJDYXNlKCk7cS5maXJzdE5hbWU9cS5maXJzdE5hbWUudHJpbSgpO3EubGFzdE5hbWU9cS5sYXN0TmFtZS50cmltKCk7ZW1haWxIYW5kbGVyLnVzZXJQb3N0YWw9cS5wb3N0YWw7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1xLmVtYWlsO2VtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPXEuZmlyc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9cS5sYXN0TmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPXEucGhvbmU7cS5uYW1lPShxLmZpcnN0TmFtZSsiICIrcS5sYXN0TmFtZSkudHJpbSgpO249cTtrKCJ1c2VyLmxvYWRlZCIpfSkpOgpuJiZrKCJ1c2VyLmxvYWRlZCIpfSxtPWZ1bmN0aW9uKGwpe3JldHVybihfc2NvcGU9Yi5maW5kKGZ1bmN0aW9uKHEpe2lmKHEuc2NvcGUuaXMobCkpcmV0dXJuIHF9KSk\/X3Njb3BlLmZpbGxlZDohMX0scj1bXSxrPWZ1bmN0aW9uKGwpe3ZhciBxPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2lmKHJbbF0pe3ZhciB3PXJbbF0uc2xpY2UoKTt2YXIgcD13Lmxlbmd0aDtmb3IoaT0wO2k8cDtpKyspd1tpXS5hcHBseSh0aGlzLHEpfX0sdD1mdW5jdGlvbihsLHEpe3JbbF18fChyW2xdPVtdKTtyW2xdLnB1c2gocSl9LHU9ZnVuY3Rpb24obCxxKXt0KGwsZnVuY3Rpb24gcCgpe3JbbF0uc3BsaWNlKHJbbF0uaW5kZXhPZihwKSwxKTtxLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pfTskKGZ1bmN0aW9uKCl7ZyYmKCQoZG9jdW1lbnQpLm9uKCJwb3B1cGl6ZXIub25PcGVuIixmdW5jdGlvbihsLHEpe2w9cS50YXJnZXQ\/cS50YXJnZXQ6JChxKTtoKGwpfSksJChkb2N1bWVudCkub24oInBvcHVwaXplci5vbkNsb3NlIiwKZnVuY3Rpb24obCxxKXt9KSwkKCJmb3JtIikuZWFjaChmdW5jdGlvbihsLHEpe2goJChxKSl9KSl9KTtyZXR1cm4gZT17c2F2ZTpmdW5jdGlvbihsKXtpZighZylyZXR1cm4hMTtuJiYiIj09PWwucG9zdGFsJiYobC5wb3N0YWw9bi5wb3N0YWwpOyQuYWpheCh7dHlwZToiUE9TVCIsdXJsOiIvcHJveHlfc2QyYy9zZXJ2aWNlL2QyYy5lbmNyeXB0aW9uLnNldCIsZGF0YTp7ZGF0YTpKU09OLnN0cmluZ2lmeShsKX19KS5kb25lKGZ1bmN0aW9uKHEpe3EmJihsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZm9ybUZpbGxEYXRhIixxLmRhdGEpLGYoKSl9KX19fSgpOwovKiogL20vanMvamhhc2h0YWJsZS5qcyAqKi8KdmFyIF9fX2QyY19qaGFzaHRhYmxlanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNzowNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzU6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzM6NDkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDM6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfamhhc2h0YWJsZWpzX2Nfb249IjIwMjEtMTItMTUgMTI6NDA6MTMiOyJ1c2Ugc3RyaWN0IjsKdmFyIEhhc2h0YWJsZT1mdW5jdGlvbigpe2Z1bmN0aW9uIHUoYSl7aWYoInN0cmluZyI9PXR5cGVvZiBhKXJldHVybiBhO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLmhhc2hDb2RlKXJldHVybiBhPWEuaGFzaENvZGUoKSwic3RyaW5nIj09dHlwZW9mIGE\/YTp1KGEpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLnRvU3RyaW5nKXJldHVybiBhLnRvU3RyaW5nKCk7dHJ5e3JldHVybiBTdHJpbmcoYSl9Y2F0Y2goYyl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChhKX19ZnVuY3Rpb24gQihhLGMpe3JldHVybiBhLmVxdWFscyhjKX1mdW5jdGlvbiBDKGEsYyl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGMuZXF1YWxzP2MuZXF1YWxzKGEpOmE9PT1jfWZ1bmN0aW9uIHYoYSl7cmV0dXJuIGZ1bmN0aW9uKGMpe2lmKG51bGw9PT1jKXRocm93IEVycm9yKCJudWxsIGlzIG5vdCBhIHZhbGlkICIrYSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjKXRocm93IEVycm9yKGErCiIgbXVzdCBub3QgYmUgdW5kZWZpbmVkIik7fX1mdW5jdGlvbiBxKGEsYyxoLGQpe3RoaXNbMF09YTt0aGlzLmVudHJpZXM9W107dGhpcy5hZGRFbnRyeShjLGgpO251bGwhPT1kJiYodGhpcy5nZXRFcXVhbGl0eUZ1bmN0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIGR9KX1mdW5jdGlvbiByKGEpe3JldHVybiBmdW5jdGlvbihjKXtmb3IodmFyIGg9dGhpcy5lbnRyaWVzLmxlbmd0aCxkLGs9dGhpcy5nZXRFcXVhbGl0eUZ1bmN0aW9uKGMpO2gtLTspaWYoZD10aGlzLmVudHJpZXNbaF0sayhjLGRbMF0pKXN3aXRjaChhKXtjYXNlIDA6cmV0dXJuITA7Y2FzZSAxOnJldHVybiBkO2Nhc2UgMjpyZXR1cm5baCxkWzFdXX1yZXR1cm4hMX19ZnVuY3Rpb24gdyhhKXtyZXR1cm4gZnVuY3Rpb24oYyl7Zm9yKHZhciBoPWMubGVuZ3RoLGQ9MCxrPXRoaXMuZW50cmllcy5sZW5ndGg7ZDxrOysrZCljW2grZF09dGhpcy5lbnRyaWVzW2RdW2FdfX1mdW5jdGlvbiBtKGEsYyl7cmV0dXJuKGE9YVtjXSkmJgphIGluc3RhbmNlb2YgcT9hOm51bGx9ZnVuY3Rpb24geChhLGMpe3ZhciBoPXRoaXMsZD1bXSxrPXt9LG49ImZ1bmN0aW9uIj09dHlwZW9mIGE\/YTp1LEQ9ImZ1bmN0aW9uIj09dHlwZW9mIGM\/YzpudWxsO3RoaXMucHV0PWZ1bmN0aW9uKGIsZSl7cChiKTt5KGUpO3ZhciBmPW4oYiksZyxsPW51bGw7KGc9bShrLGYpKT8oZj1nLmdldEVudHJ5Rm9yS2V5KGIpKT8obD1mWzFdLGZbMV09ZSk6Zy5hZGRFbnRyeShiLGUpOihnPW5ldyBxKGYsYixlLEQpLGRbZC5sZW5ndGhdPWcsa1tmXT1nKTtyZXR1cm4gbH07dGhpcy5nZXQ9ZnVuY3Rpb24oYil7cChiKTt2YXIgZT1uKGIpO2lmKGU9bShrLGUpKWlmKGI9ZS5nZXRFbnRyeUZvcktleShiKSlyZXR1cm4gYlsxXTtyZXR1cm4gbnVsbH07dGhpcy5jb250YWluc0tleT1mdW5jdGlvbihiKXtwKGIpO3ZhciBlPW4oYik7cmV0dXJuKGU9bShrLGUpKT9lLmNvbnRhaW5zS2V5KGIpOiExfTt0aGlzLmNvbnRhaW5zVmFsdWU9ZnVuY3Rpb24oYil7eShiKTsKZm9yKHZhciBlPWQubGVuZ3RoO2UtLTspaWYoZFtlXS5jb250YWluc1ZhbHVlKGIpKXJldHVybiEwO3JldHVybiExfTt0aGlzLmNsZWFyPWZ1bmN0aW9uKCl7ZC5sZW5ndGg9MDtrPXt9fTt0aGlzLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hZC5sZW5ndGh9O3ZhciB0PWZ1bmN0aW9uKGIpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxmPWQubGVuZ3RoO2YtLTspZFtmXVtiXShlKTtyZXR1cm4gZX19O3RoaXMua2V5cz10KCJrZXlzIik7dGhpcy52YWx1ZXM9dCgidmFsdWVzIik7dGhpcy5lbnRyaWVzPXQoImdldEVudHJpZXMiKTt0aGlzLnJlbW92ZT1mdW5jdGlvbihiKXtwKGIpO3ZhciBlPW4oYiksZj1udWxsLGc9bShrLGUpO2lmKGcmJihmPWcucmVtb3ZlRW50cnlGb3JLZXkoYiksbnVsbCE9PWYmJiFnLmVudHJpZXMubGVuZ3RoKSl7YTp7Zm9yKGI9ZC5sZW5ndGg7Yi0tOylpZihnPWRbYl0sZT09PWdbMF0pYnJlYWsgYTtiPW51bGx9eihkLGIpO2RlbGV0ZSBrW2VdfXJldHVybiBmfTsKdGhpcy5zaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPTAsZT1kLmxlbmd0aDtlLS07KWIrPWRbZV0uZW50cmllcy5sZW5ndGg7cmV0dXJuIGJ9O3RoaXMuZWFjaD1mdW5jdGlvbihiKXtmb3IodmFyIGU9aC5lbnRyaWVzKCksZj1lLmxlbmd0aCxnO2YtLTspZz1lW2ZdLGIoZ1swXSxnWzFdKX07dGhpcy5wdXRBbGw9ZnVuY3Rpb24oYixlKXtiPWIuZW50cmllcygpO2Zvcih2YXIgZixnLGwsQT1iLmxlbmd0aCxFPSJmdW5jdGlvbiI9PXR5cGVvZiBlO0EtLTspZj1iW0FdLGc9ZlswXSxmPWZbMV0sRSYmKGw9aC5nZXQoZykpJiYoZj1lKGcsbCxmKSksaC5wdXQoZyxmKX07dGhpcy5jbG9uZT1mdW5jdGlvbigpe3ZhciBiPW5ldyB4KGEsYyk7Yi5wdXRBbGwoaCk7cmV0dXJuIGJ9fXZhciB6PSJmdW5jdGlvbiI9PXR5cGVvZiBBcnJheS5wcm90b3R5cGUuc3BsaWNlP2Z1bmN0aW9uKGEsYyl7YS5zcGxpY2UoYywxKX06ZnVuY3Rpb24oYSxjKXt2YXIgaDtpZihjPT09YS5sZW5ndGgtMSlhLmxlbmd0aD0KYztlbHNle3ZhciBkPWEuc2xpY2UoYysxKTthLmxlbmd0aD1jO3ZhciBrPTA7Zm9yKGg9ZC5sZW5ndGg7azxoOysraylhW2Mra109ZFtrXX19LHA9digia2V5IikseT12KCJ2YWx1ZSIpO3EucHJvdG90eXBlPXtnZXRFcXVhbGl0eUZ1bmN0aW9uOmZ1bmN0aW9uKGEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBhLmVxdWFscz9COkN9LGdldEVudHJ5Rm9yS2V5OnIoMSksZ2V0RW50cnlBbmRJbmRleEZvcktleTpyKDIpLHJlbW92ZUVudHJ5Rm9yS2V5OmZ1bmN0aW9uKGEpe3JldHVybihhPXRoaXMuZ2V0RW50cnlBbmRJbmRleEZvcktleShhKSk\/KHoodGhpcy5lbnRyaWVzLGFbMF0pLGFbMV0pOm51bGx9LGFkZEVudHJ5OmZ1bmN0aW9uKGEsYyl7dGhpcy5lbnRyaWVzW3RoaXMuZW50cmllcy5sZW5ndGhdPVthLGNdfSxrZXlzOncoMCksdmFsdWVzOncoMSksZ2V0RW50cmllczpmdW5jdGlvbihhKXtmb3IodmFyIGM9YS5sZW5ndGgsaD0wLGQ9dGhpcy5lbnRyaWVzLmxlbmd0aDtoPGQ7KytoKWFbYysKaF09dGhpcy5lbnRyaWVzW2hdLnNsaWNlKDApfSxjb250YWluc0tleTpyKDApLGNvbnRhaW5zVmFsdWU6ZnVuY3Rpb24oYSl7Zm9yKHZhciBjPXRoaXMuZW50cmllcy5sZW5ndGg7Yy0tOylpZihhPT09dGhpcy5lbnRyaWVzW2NdWzFdKXJldHVybiEwO3JldHVybiExfX07cmV0dXJuIHh9KCk7Ci8qKiAvbS9qcy9uZXdjYXJzLmpzICoqLwp2YXIgX19fZDJjX25ld2NhcnNqc19jX29uPSIyMDI2LTA2LTEyIDEyOjMwOjAzIjsndXNlIHN0cmljdCc7dmFyICRqc2NvbXA9JGpzY29tcHx8e307JGpzY29tcC5zY29wZT17fTskanNjb21wLkFTU1VNRV9FUzU9ITE7JGpzY29tcC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfU0VUPSExOyRqc2NvbXAuU0lNUExFX0ZST1VORF9QT0xZRklMTD0hMTskanNjb21wLklTT0xBVEVfUE9MWUZJTExTPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRT0hMTskanNjb21wLkZPUkNFX1BPTFlGSUxMX1BST01JU0VfV0hFTl9OT19VTkhBTkRMRURfUkVKRUNUSU9OPSExOyRqc2NvbXAuZGVmaW5lUHJvcGVydHk9JGpzY29tcC5BU1NVTUVfRVM1fHwiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM\/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKGEsYixlKXtpZihhPT1BcnJheS5wcm90b3R5cGV8fGE9PU9iamVjdC5wcm90b3R5cGUpcmV0dXJuIGE7YVtiXT1lLnZhbHVlO3JldHVybiBhfTsKJGpzY29tcC5nZXRHbG9iYWw9ZnVuY3Rpb24oYSl7YT1bIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLGEsIm9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdywib2JqZWN0Ij09dHlwZW9mIHNlbGYmJnNlbGYsIm9iamVjdCI9PXR5cGVvZiBnbG9iYWwmJmdsb2JhbF07Zm9yKHZhciBiPTA7YjxhLmxlbmd0aDsrK2Ipe3ZhciBlPWFbYl07aWYoZSYmZS5NYXRoPT1NYXRoKXJldHVybiBlfXRocm93IEVycm9yKCJDYW5ub3QgZmluZCBnbG9iYWwgb2JqZWN0Iik7fTskanNjb21wLmdsb2JhbD0kanNjb21wLmdldEdsb2JhbCh0aGlzKTskanNjb21wLklTX1NZTUJPTF9OQVRJVkU9ImZ1bmN0aW9uIj09PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT09dHlwZW9mIFN5bWJvbCgieCIpOyRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUz0hJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMU3x8JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFOyRqc2NvbXAucG9seWZpbGxzPXt9OwokanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTskanNjb21wLlBPTFlGSUxMX1BSRUZJWD0iJGpzY3AkIjt2YXIgJGpzY29tcCRsb29rdXBQb2x5ZmlsbGVkVmFsdWU9ZnVuY3Rpb24oYSxiKXt2YXIgZT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtiXTtpZihudWxsPT1lKXJldHVybiBhW2JdO2U9YVtlXTtyZXR1cm4gdm9pZCAwIT09ZT9lOmFbYl19OyRqc2NvbXAucG9seWZpbGw9ZnVuY3Rpb24oYSxiLGUsZyl7YiYmKCRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM\/JGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkKGEsYixlLGcpOiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkKGEsYixlLGcpKX07CiRqc2NvbXAucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKGEsYixlLGcpe2U9JGpzY29tcC5nbG9iYWw7YT1hLnNwbGl0KCIuIik7Zm9yKGc9MDtnPGEubGVuZ3RoLTE7ZysrKXt2YXIgaD1hW2ddO2lmKCEoaCBpbiBlKSlyZXR1cm47ZT1lW2hdfWE9YVthLmxlbmd0aC0xXTtnPWVbYV07Yj1iKGcpO2IhPWcmJm51bGwhPWImJiRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZSxhLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pfTsKJGpzY29tcC5wb2x5ZmlsbElzb2xhdGVkPWZ1bmN0aW9uKGEsYixlLGcpe3ZhciBoPWEuc3BsaXQoIi4iKTthPTE9PT1oLmxlbmd0aDtnPWhbMF07Zz0hYSYmZyBpbiAkanNjb21wLnBvbHlmaWxscz8kanNjb21wLnBvbHlmaWxsczokanNjb21wLmdsb2JhbDtmb3IodmFyIG49MDtuPGgubGVuZ3RoLTE7bisrKXt2YXIgdD1oW25dO2lmKCEodCBpbiBnKSlyZXR1cm47Zz1nW3RdfWg9aFtoLmxlbmd0aC0xXTtlPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRSYmImVzNiI9PT1lP2dbaF06bnVsbDtiPWIoZSk7bnVsbCE9YiYmKGE\/JGpzY29tcC5kZWZpbmVQcm9wZXJ0eSgkanNjb21wLnBvbHlmaWxscyxoLHtjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6Yn0pOmIhPT1lJiYodm9pZCAwPT09JGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF0mJihlPTFFOSpNYXRoLnJhbmRvbSgpPj4+MCwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXT0kanNjb21wLklTX1NZTUJPTF9OQVRJVkU\/CiRqc2NvbXAuZ2xvYmFsLlN5bWJvbChoKTokanNjb21wLlBPTFlGSUxMX1BSRUZJWCtlKyIkIitoKSwkanNjb21wLmRlZmluZVByb3BlcnR5KGcsJGpzY29tcC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbaF0se2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpifSkpKX07JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldD1mdW5jdGlvbigpe3ZhciBhPXthOiEwfSxiPXt9O3RyeXtyZXR1cm4gYi5fX3Byb3RvX189YSxiLmF9Y2F0Y2goZSl7fXJldHVybiExfTsKJGpzY29tcC5zZXRQcm90b3R5cGVPZj0kanNjb21wLlRSVVNUX0VTNl9QT0xZRklMTFMmJiJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LnNldFByb3RvdHlwZU9mOiRqc2NvbXAudW5kZXJzY29yZVByb3RvQ2FuQmVTZXQoKT9mdW5jdGlvbihhLGIpe2EuX19wcm90b19fPWI7aWYoYS5fX3Byb3RvX18hPT1iKXRocm93IG5ldyBUeXBlRXJyb3IoYSsiIGlzIG5vdCBleHRlbnNpYmxlIik7cmV0dXJuIGF9Om51bGw7JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbD1mdW5jdGlvbihhKXt2YXIgYj0wO3JldHVybiBmdW5jdGlvbigpe3JldHVybiBiPGEubGVuZ3RoP3tkb25lOiExLHZhbHVlOmFbYisrXX06e2RvbmU6ITB9fX07JGpzY29tcC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKGEpe3JldHVybntuZXh0OiRqc2NvbXAuYXJyYXlJdGVyYXRvckltcGwoYSl9fTsKJGpzY29tcC5tYWtlSXRlcmF0b3I9ZnVuY3Rpb24oYSl7dmFyIGI9InVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJlN5bWJvbC5pdGVyYXRvciYmYVtTeW1ib2wuaXRlcmF0b3JdO3JldHVybiBiP2IuY2FsbChhKTokanNjb21wLmFycmF5SXRlcmF0b3IoYSl9OyRqc2NvbXAuZ2VuZXJhdG9yPXt9OyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfPWZ1bmN0aW9uKGEpe2lmKCEoYSBpbnN0YW5jZW9mIE9iamVjdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiSXRlcmF0b3IgcmVzdWx0ICIrYSsiIGlzIG5vdCBhbiBvYmplY3QiKTt9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0PWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExO3RoaXMueWllbGRBbGxJdGVyYXRvcl89bnVsbDt0aGlzLnlpZWxkUmVzdWx0PXZvaWQgMDt0aGlzLm5leHRBZGRyZXNzPTE7dGhpcy5maW5hbGx5QWRkcmVzc189dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5Q29udGV4dHNfPXRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RhcnRfPWZ1bmN0aW9uKCl7aWYodGhpcy5pc1J1bm5pbmdfKXRocm93IG5ldyBUeXBlRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTt0aGlzLmlzUnVubmluZ189ITB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnN0b3BfPWZ1bmN0aW9uKCl7dGhpcy5pc1J1bm5pbmdfPSExfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuanVtcFRvRXJyb3JIYW5kbGVyXz1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9dGhpcy5jYXRjaEFkZHJlc3NffHx0aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubmV4dF89ZnVuY3Rpb24oYSl7dGhpcy55aWVsZFJlc3VsdD1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17ZXhjZXB0aW9uOmEsaXNFeGNlcHRpb246ITB9O3RoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5yZXR1cm49ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17cmV0dXJuOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVGhyb3VnaEZpbmFsbHlCbG9ja3M9ZnVuY3Rpb24oYSl7dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz17anVtcFRvOmF9O3RoaXMubmV4dEFkZHJlc3M9dGhpcy5maW5hbGx5QWRkcmVzc199OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnlpZWxkPWZ1bmN0aW9uKGEsYil7dGhpcy5uZXh0QWRkcmVzcz1iO3JldHVybnt2YWx1ZTphfX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGRBbGw9ZnVuY3Rpb24oYSxiKXthPSRqc2NvbXAubWFrZUl0ZXJhdG9yKGEpO3ZhciBlPWEubmV4dCgpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGUpO2lmKGUuZG9uZSl0aGlzLnlpZWxkUmVzdWx0PWUudmFsdWUsdGhpcy5uZXh0QWRkcmVzcz1iO2Vsc2UgcmV0dXJuIHRoaXMueWllbGRBbGxJdGVyYXRvcl89YSx0aGlzLnlpZWxkKGUudmFsdWUsYil9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG89ZnVuY3Rpb24oYSl7dGhpcy5uZXh0QWRkcmVzcz1hfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FbmQ9ZnVuY3Rpb24oKXt0aGlzLm5leHRBZGRyZXNzPTB9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldENhdGNoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihhLGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1hO3ZvaWQgMCE9YiYmKHRoaXMuZmluYWxseUFkZHJlc3NfPWIpfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zZXRGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSl7dGhpcy5jYXRjaEFkZHJlc3NfPTA7dGhpcy5maW5hbGx5QWRkcmVzc189YXx8MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVUcnlCbG9jaz1mdW5jdGlvbihhLGIpe3RoaXMubmV4dEFkZHJlc3M9YTt0aGlzLmNhdGNoQWRkcmVzc189Ynx8MH07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmVudGVyQ2F0Y2hCbG9jaz1mdW5jdGlvbihhKXt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDthPXRoaXMuYWJydXB0Q29tcGxldGlvbl8uZXhjZXB0aW9uO3RoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbDtyZXR1cm4gYX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiLGUpe2U\/dGhpcy5maW5hbGx5Q29udGV4dHNfW2VdPXRoaXMuYWJydXB0Q29tcGxldGlvbl86dGhpcy5maW5hbGx5Q29udGV4dHNfPVt0aGlzLmFicnVwdENvbXBsZXRpb25fXTt0aGlzLmNhdGNoQWRkcmVzc189YXx8MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUubGVhdmVGaW5hbGx5QmxvY2s9ZnVuY3Rpb24oYSxiKXtiPXRoaXMuZmluYWxseUNvbnRleHRzXy5zcGxpY2UoYnx8MClbMF07aWYoYj10aGlzLmFicnVwdENvbXBsZXRpb25fPXRoaXMuYWJydXB0Q29tcGxldGlvbl98fGIpe2lmKGIuaXNFeGNlcHRpb24pcmV0dXJuIHRoaXMuanVtcFRvRXJyb3JIYW5kbGVyXygpO3ZvaWQgMCE9Yi5qdW1wVG8mJnRoaXMuZmluYWxseUFkZHJlc3NfPGIuanVtcFRvPyh0aGlzLm5leHRBZGRyZXNzPWIuanVtcFRvLHRoaXMuYWJydXB0Q29tcGxldGlvbl89bnVsbCk6dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX31lbHNlIHRoaXMubmV4dEFkZHJlc3M9YX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZm9ySW49ZnVuY3Rpb24oYSl7cmV0dXJuIG5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3IoYSl9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LlByb3BlcnR5SXRlcmF0b3I9ZnVuY3Rpb24oYSl7dGhpcy5vYmplY3RfPWE7dGhpcy5wcm9wZXJ0aWVzXz1bXTtmb3IodmFyIGIgaW4gYSl0aGlzLnByb3BlcnRpZXNfLnB1c2goYik7dGhpcy5wcm9wZXJ0aWVzXy5yZXZlcnNlKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvci5wcm90b3R5cGUuZ2V0TmV4dD1mdW5jdGlvbigpe2Zvcig7MDx0aGlzLnByb3BlcnRpZXNfLmxlbmd0aDspe3ZhciBhPXRoaXMucHJvcGVydGllc18ucG9wKCk7aWYoYSBpbiB0aGlzLm9iamVjdF8pcmV0dXJuIGF9cmV0dXJuIG51bGx9OyRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV89ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xz1uZXcgJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dDt0aGlzLnByb2dyYW1fPWF9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLm5leHQsYSx0aGlzLmNvbnRleHRfLm5leHRfKTt0aGlzLmNvbnRleHRfLm5leHRfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUucmV0dXJuXz1mdW5jdGlvbihhKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO3ZhciBiPXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl87aWYoYilyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKCJyZXR1cm4iaW4gYj9iWyJyZXR1cm4iXTpmdW5jdGlvbihlKXtyZXR1cm57dmFsdWU6ZSxkb25lOiEwfX0sYSx0aGlzLmNvbnRleHRfLnJldHVybik7dGhpcy5jb250ZXh0Xy5yZXR1cm4oYSk7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS50aHJvd189ZnVuY3Rpb24oYSl7dGhpcy5jb250ZXh0Xy5zdGFydF8oKTtpZih0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8odGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yX1sidGhyb3ciXSxhLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8udGhyb3dfKGEpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUueWllbGRBbGxTdGVwXz1mdW5jdGlvbihhLGIsZSl7dHJ5e3ZhciBnPWEuY2FsbCh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfLGIpOyRqc2NvbXAuZ2VuZXJhdG9yLmVuc3VyZUl0ZXJhdG9yUmVzdWx0SXNPYmplY3RfKGcpO2lmKCFnLmRvbmUpcmV0dXJuIHRoaXMuY29udGV4dF8uc3RvcF8oKSxnO3ZhciBoPWcudmFsdWV9Y2F0Y2gobil7cmV0dXJuIHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbCx0aGlzLmNvbnRleHRfLnRocm93XyhuKSx0aGlzLm5leHRTdGVwXygpfXRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl89bnVsbDtlLmNhbGwodGhpcy5jb250ZXh0XyxoKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRTdGVwXz1mdW5jdGlvbigpe2Zvcig7dGhpcy5jb250ZXh0Xy5uZXh0QWRkcmVzczspdHJ5e3ZhciBhPXRoaXMucHJvZ3JhbV8odGhpcy5jb250ZXh0Xyk7aWYoYSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLHt2YWx1ZTphLnZhbHVlLGRvbmU6ITF9fWNhdGNoKGIpe3RoaXMuY29udGV4dF8ueWllbGRSZXN1bHQ9dm9pZCAwLHRoaXMuY29udGV4dF8udGhyb3dfKGIpfXRoaXMuY29udGV4dF8uc3RvcF8oKTtpZih0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fKXthPXRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl87dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO2lmKGEuaXNFeGNlcHRpb24pdGhyb3cgYS5leGNlcHRpb247cmV0dXJue3ZhbHVlOmEucmV0dXJuLGRvbmU6ITB9fXJldHVybnt2YWx1ZTp2b2lkIDAsZG9uZTohMH19OwokanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfPWZ1bmN0aW9uKGEpe3RoaXMubmV4dD1mdW5jdGlvbihiKXtyZXR1cm4gYS5uZXh0XyhiKX07dGhpcy50aHJvdz1mdW5jdGlvbihiKXtyZXR1cm4gYS50aHJvd18oYil9O3RoaXMucmV0dXJuPWZ1bmN0aW9uKGIpe3JldHVybiBhLnJldHVybl8oYil9O3RoaXNbU3ltYm9sLml0ZXJhdG9yXT1mdW5jdGlvbigpe3JldHVybiB0aGlzfX07JGpzY29tcC5nZW5lcmF0b3IuY3JlYXRlR2VuZXJhdG9yPWZ1bmN0aW9uKGEsYil7Yj1uZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhiKSk7JGpzY29tcC5zZXRQcm90b3R5cGVPZiYmYS5wcm90b3R5cGUmJiRqc2NvbXAuc2V0UHJvdG90eXBlT2YoYixhLnByb3RvdHlwZSk7cmV0dXJuIGJ9OwokanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3I9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gYihnKXtyZXR1cm4gYS5uZXh0KGcpfWZ1bmN0aW9uIGUoZyl7cmV0dXJuIGEudGhyb3coZyl9cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGcsaCl7ZnVuY3Rpb24gbih0KXt0LmRvbmU\/Zyh0LnZhbHVlKTpQcm9taXNlLnJlc29sdmUodC52YWx1ZSkudGhlbihiLGUpLnRoZW4obixoKX1uKGEubmV4dCgpKX0pfTskanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbj1mdW5jdGlvbihhKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKGEoKSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvclByb2dyYW09ZnVuY3Rpb24oYSl7cmV0dXJuICRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcihuZXcgJGpzY29tcC5nZW5lcmF0b3IuR2VuZXJhdG9yXyhuZXcgJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXyhhKSkpfTsKbGV0ICRqc2NvbXAkb3B0Y2hhaW4kdG1wMTkzNzM4OTg1OSQwOwpuZXdDYXJzPXtpc01vYmlsZToiMSI9PT0obnVsbD09KCRqc2NvbXAkb3B0Y2hhaW4kdG1wMTkzNzM4OTg1OSQwPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpc01vYmlsZSIpKT92b2lkIDA6JGpzY29tcCRvcHRjaGFpbiR0bXAxOTM3Mzg5ODU5JDAudmFsdWUpLGNvbnRhaW5lcjpkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibmV3Y2FyQ29udGFpbmVyIikscmVzaXplTWFpbldpbmRvdzpmdW5jdGlvbigpe2lmKCFuZXdDYXJzLmlzTW9iaWxlKXt2YXIgYT0kKCIjcmlnaHRTaWRlIikuaGVpZ2h0KCktMzUsYj0kKCIjbmV3Y2FyQ29udGFpbmVyIikuaGVpZ2h0KCk7IWlzTmFOKGEpJiYhaXNOYU4oYikmJmE+YiYmKCQoIiNuZXdjYXJDb250YWluZXIiKS5oZWlnaHQoYSksJCgiI2Zvb3RlckRpdiIpLmNzcygicGFkZGluZyIsIjBweCIpKX19LHNldFBheW1lbnRUb29sdGlwczooKT0+e25ld0NhcnMuaXNNb2JpbGU\/JCgiLmRpdkNhcnNCb3hXcmFwcGVyIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykuZmluZCgiLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50SW5mb0J1YmJsZSAucGF5bWVudFRvb2x0aXAiKS5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3ZhciBhPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIik7CiQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6YSxncmF2aXR5OiJlYXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImNsaWNrIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChiKXt9fSl9KTokKCIuZGl2Q2Fyc0JveFdyYXBwZXIiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5vbigibW91c2VlbnRlciBtb3VzZWxlYXZlIixmdW5jdGlvbihhKXt0cnl7aWYoJCh0aGlzKS5kYXRhKCJ0b29sdGlwQ3JlYXRlZCIpKXJldHVybiExOyQodGhpcykuZGF0YSgidG9vbHRpcENyZWF0ZWQiLDEpOyQodGhpcykuZmluZCgiLmRpdkNhclBheW1lbnRDb250YWluZXJUb29sdGlwIikuZGFya1Rvb2x0aXAoe2dyYXZpdHk6Indlc3QiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIiLGFuaW1hdGlvbjoiZmxpcEluIn0pfWNhdGNoKGIpe319KX0pfSxuZXdDYXJzRmlsdGVyOigpPT57ZnVuY3Rpb24gYSgpe3ZhciBjPSQoIi5kaXZDYXRlZ29yeUJveFdyYXBwZXIiKS5tYXAoZnVuY3Rpb24oZCwKZil7cmV0dXJuIHBhcnNlSW50KCQoZikuYXR0cigibmJWaXNpYmxlIikpfSkuZ2V0KCkucmVkdWNlKGZ1bmN0aW9uKGQsZil7cmV0dXJuIGQrZn0sMCk7cmV0dXJue2ZpbHRlcnM6e3N0YXR1czoiTmV3Iixib2R5U3R5bGU6JCgiaW5wdXQ6Y2hlY2tlZC5maWx0ZXJDaGVjay5jYXRlZ29yeSIpLm1hcChmdW5jdGlvbihkLGYpe3JldHVybiAkKGYpLnZhbCgpfSkuZ2V0KCksZnVlbFR5cGU6JCgiaW5wdXQ6Y2hlY2tlZC5maWx0ZXJDaGVjay5mdWVsdHlwZSIpLm1hcChmdW5jdGlvbihkLGYpe3JldHVybiAkKGYpLmRhdGEoImVzc2VuY2UiKX0pLmdldCgpLGRyaXZlVHJhaW46JCgiaW5wdXQ6Y2hlY2tlZC5maWx0ZXJDaGVjay5kcml2ZXRyYWluIikubWFwKGZ1bmN0aW9uKGQsZil7cmV0dXJuICQoZikuZGF0YSgiZHJpdmV0cmFpbiIpfSkuZ2V0KCksbWF4UHJpY2U6cC5tYXgsbWluUHJpY2U6cC5taW59LHZlaGljbGVDb3VudDpjfX12YXIgYj0hMTt0cnl7InVuZGVmaW5lZCI9PWpRdWVyeS5icm93c2VyLm1zaWU\/CmI9ITA6OTw9cGFyc2VJbnQoalF1ZXJ5LmJyb3dzZXIudmVyc2lvbiwxMCkmJihiPSEwKX1jYXRjaChjKXt9aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBib3hCbG9ja3N8fDE+Ym94QmxvY2tzLmxlbmd0aCliPSExOy0xPHdpbmRvdy5sb2NhdGlvbi5ocmVmLmluZGV4T2YoImNhbWlvbnMtY29tbWVyY2lhdXgiKSYmKGI9ITEpO2lmKGIpe3ZhciBlPW5ld0NhcnMuZ2V0RmlsdGVyKCk7Yj1nZXRVcmxWYXJzKCk7dmFyIGc9Yi5oYXNPd25Qcm9wZXJ0eSgiYm9keSIpLGg9Yi5oYXNPd25Qcm9wZXJ0eSgiZnVlbCIpO25ld0NhcnMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3JBbGwoIi5maWx0ZXJDaGVjayIpLmZvckVhY2goYz0+e2cmJmMuY2xhc3NMaXN0LmNvbnRhaW5zKCJjYXRlZ29yeSIpfHxoJiZjLmNsYXNzTGlzdC5jb250YWlucygiZnVlbHR5cGUiKXx8KGMuY2hlY2tlZD0hZS5oYXNPd25Qcm9wZXJ0eShjLmlkKXx8ITA9PT1lW2MuaWRdKX0pOyQoIiNmaWx0ZXJNYWluQm94Iikuc2hvdygpOwpmb3IodmFyIG4gaW4gYm94QmxvY2tzKXtiPTA7Zm9yKHZhciB0IGluIGJveEJsb2Nrc1tuXSliKys7JCgiI2NsYXNzIituKyJfY29udGFpbmVyIikuYXR0cigibmJWaXNpYmxlIixiKX0kKCIuZmlsdGVyQ2hlY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGM9JCh0aGlzKTtuZXdDYXJzLnNldEZpbHRlcihjLmF0dHIoImlkIiksYy5pcygiOmNoZWNrZWQiKSk7c2V0VGltZW91dCh4LDEwMCk7aWYoYy5oYXNDbGFzcygiY2F0ZWdvcnkiKSl7dmFyIGQ9Yy52YWwoKTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7QihkKX0sMTAwKX19KTskKCIucmFkaW9Tb3J0Iikub24oImNsaWNrIixmdW5jdGlvbigpe0MoJCh0aGlzKS52YWwoKSl9KTskKCIuZmlsdGVyU3BhbiIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXt2YXIgYz0kKHRoaXMpO25ld0NhcnMuc2V0RmlsdGVyKCJmaWx0ZXJTcGFuIixjLmF0dHIoInJlbCIpKTtjPSIjIitjLmF0dHIoInJlbCIpOyQoYykudHJpZ2dlcigiY2xpY2siKX0pOwp2YXIgeT0iIix3PSIiLEc9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5jb25zbz09ZC5jb25zbz8wOmMuY29uc28+ZC5jb25zbz8xOi0xfSxIPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMuY29uc289PWQuY29uc28\/MDpjLmNvbnNvPmQuY29uc28\/LTE6MX0sST1mdW5jdGlvbihjLGQpe3JldHVybiBjLnByaWNlPT1kLnByaWNlPzA6Yy5wcmljZT5kLnByaWNlPzE6LTF9LEo9ZnVuY3Rpb24oYyxkKXtyZXR1cm4gYy5wcmljZT09ZC5wcmljZT8wOmMucHJpY2U+ZC5wcmljZT8tMToxfSxLPWZ1bmN0aW9uKGMsZCl7cmV0dXJuIGMuY2FyTW9kZWw9PWQuY2FyTW9kZWw\/Yy55ZWFyPmQueWVhcj8tMTpjLnllYXI8ZC55ZWFyPzE6MDpjLmNhck1vZGVsPmQuY2FyTW9kZWw\/MTotMX0sQz1mdW5jdGlvbihjLGQpe3c9InVuZGVmaW5lZCIhPT10eXBlb2YgZD9kOnk9PWM\/IkFzYyI9PXc\/IkRlc2MiOiJBc2MiOiJBc2MiO3k9YztuZXdDYXJzLnNldEZpbHRlcigic29ydEJ5Iix5KTtuZXdDYXJzLnNldEZpbHRlcigic29ydERpciIsCncpO2Zvcih2YXIgZiBpbiBib3hCbG9ja3Mpe2M9MTtkPVtdO2Zvcih2YXIgbSBpbiBib3hCbG9ja3NbZl0pe3ZhciBsPWJveEJsb2Nrc1tmXVttXTtsLnZpc2libGUmJihkW2QubGVuZ3RoXT1sKX1zd2l0Y2goeSl7Y2FzZSAicHJpY2UiOiJBc2MiPT13P2Quc29ydChJKTpkLnNvcnQoSik7YnJlYWs7Y2FzZSAibW9kZWwiOmQuc29ydChLKTticmVhaztjYXNlICJjb25zbyI6IkFzYyI9PXc\/ZC5zb3J0KEcpOmQuc29ydChIKX1kLnNvcnQoZnVuY3Rpb24oayx1KXtyZXR1cm4gay5zcGVjaWFsT3JkZXI9PXUuc3BlY2lhbE9yZGVyPzA6ay5zcGVjaWFsT3JkZXI+dS5zcGVjaWFsT3JkZXI\/MTotMX0pO2ZvcihsPTA7bDxkLmxlbmd0aDtsKyspZFtsXS52aXNpYmxlJiYoZFtsXS5wb3NpdGlvbiE9bCsxJiYoZFtsXS5wb3NpdGlvbj1sKzEsQShmLCJmYnhfIitmKyJfIitkW2xdLmlkLCJtb3ZlIixsKzEpKSxjKyspfX0sTD1mdW5jdGlvbigpe2Zvcih2YXIgYyBpbiBib3hCbG9ja3Mpe3ZhciBkPQoxLGY7Zm9yKGYgaW4gYm94QmxvY2tzW2NdKXt2YXIgbT1ib3hCbG9ja3NbY11bZl07bS52aXNpYmxlJiZtLnBvc2l0aW9uIT1kJiYobS5wb3NpdGlvbj1kLEEoYyxmLCJtb3ZlIixkKSk7QShjLGYsbS52aXNpYmxlPyJzaG93IjoiaGlkZSIpO20udmlzaWJsZSYmZCsrfSQoIiNjbGFzcyIrYysiX2NvbnRhaW5lciIpLmF0dHIoIm5iVmlzaWJsZSIsZC0xKX19LEQ9ZnVuY3Rpb24oYyxkKXtmb3IodmFyIGY9MCxtPTE7bTxkO20rKyl7dmFyIGw9JCgiIyIrYyttKTswPGwubGVuZ3RoJiZsLnByb3AoImNoZWNrZWQiKSYmKGYrPU1hdGgucG93KDIsbS0xKSl9cmV0dXJuIGZ9LHg9ZnVuY3Rpb24oKXt2YXIgYz1EKCJmaWx0ZXJFc3NlbmNlQ2hlY2siLDYpLGQ9RCgiZmlsdGVyRHJpdmVUcmFpbkNoZWNrIiw0KSxmPVtdLG09W107JCgiLmZpbHRlckNoZWNrLmNhdGVnb3J5IikuZWFjaChmdW5jdGlvbigpeyQodGhpcykuaXMoIjpjaGVja2VkIikmJmYucHVzaCgkKHRoaXMpLnZhbCgpKX0pO3ZhciBsPQohMTswPCQoIi5maWx0ZXJDaGVjay5jYXJNYWtlIikubGVuZ3RoJiYoJCgiLmZpbHRlckNoZWNrLmNhck1ha2UiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5pcygiOmNoZWNrZWQiKSYmbS5wdXNoKCQodGhpcykudmFsKCkpfSksbD0hMCk7Zm9yKHZhciBrIGluIGJveEJsb2Nrcyl7dmFyIHU9MCxxO2ZvcihxIGluIGJveEJsb2Nrc1trXSl7dmFyIE09cGFyc2VJbnQoYm94QmxvY2tzW2tdW3FdLmZ1ZWwsMTApLHY9ITE7dj0odj0odj0odj0odj0hKHBhcnNlSW50KGJveEJsb2Nrc1trXVtxXS5kcml2ZXRyYWluLDEwKSZkKSl8fCEoTSZjKSl8fCEoIWJveEJsb2Nrc1trXVtxXS5jYXJDYXRlZ29yeXx8LTE8JC5pbkFycmF5KGJveEJsb2Nrc1trXVtxXS5jYXJDYXRlZ29yeSxmKSkpfHwhKCExPT09bHx8LTE8JC5pbkFycmF5KGJveEJsb2Nrc1trXVtxXS5jYXJNYWtlLG0pJiZsKSl8fCEoMD09Ym94QmxvY2tzW2tdW3FdLnByaWNlfHxib3hCbG9ja3Nba11bcV0ucHJpY2U8PXAubWF4JiYKYm94QmxvY2tzW2tdW3FdLnByaWNlPj1wLm1pbik7Ym94QmxvY2tzW2tdW3FdLnZpc2libGU9IXY7Ym94QmxvY2tzW2tdW3FdLnZpc2libGUmJnUrK30kKCIjY2xhc3MiK2srIl9jb250YWluZXIiKS5hdHRyKCJuYlZpc2libGUiLHUpO0Ioayl9TCgpOyIxIj09PSQoImJvZHkiKS5kYXRhKCJmaWx0ZXJzOmxvYWQiKSYmJCgiYm9keSIpLnRyaWdnZXIoJC5leHRlbmQoe3R5cGU6ImZpbHRlcnM6Y2hhbmdlIn0sYSgpKSl9LEI9ZnVuY3Rpb24oYyl7dmFyIGQ9JCgiI2NsYXNzIitjKyJfY29udGFpbmVyIik7aWYoMDxkLmxlbmd0aCl7dmFyIGY9JCgiI3Nob3dDbGFzc18iK2MpOzA9PT1mLmxlbmd0aCYmKGY9JCgnaW5wdXRbZGF0YS1lc3NlbmNlPSInK2MrJyJdJykpO2Y9MD09PWYubGVuZ3RoPyEwOmYuaXMoIjpjaGVja2VkIik7MDxwYXJzZUludChkLmF0dHIoIm5iVmlzaWJsZSIpLDEwKT8oZiYmKGQuYXR0cigic3RhdGUiLCJvcGVuIiksZC5mYWRlSW4oNjAwKSxuZXdDYXJzLmlzTW9iaWxlfHwKKGY9TWF0aC5jZWlsKHBhcnNlSW50KGQuYXR0cigibmJWaXNpYmxlIiksMTApLzMpLCQoIi5DTEFTU18iK2MpLmFuaW1hdGUoe2hlaWdodDpyLmhlaWdodCpmKyJweCJ9LDYwMCkpLGY9ITApLGZ8fEUoZCkpOkUoZCl9fSxFPWZ1bmN0aW9uKGMpe2MuYXR0cigic3RhdGUiLCJjbG9zZSIpO2MuZmFkZU91dCg2MDApO3JldHVybiEwfSxBPWZ1bmN0aW9uKGMsZCxmLG0sbCl7aWYoImhpZGUiPT1mKSQoIiMiK2QpLmFuaW1hdGUoe29wYWNpdHk6MH0sNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsMCkuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIil9KSxib3hCbG9ja3NbY11bZF0udmlzaWJsZT0hMSxzaXRlUGFnZS5pc01vYmlsZSYmKG5ld0NhcnMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYCMke2R9YCkuaGlkZGVuPSEwKTtlbHNlIGlmKCJzaG93Ij09ZikkKCIjIitkKS5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIikuYW5pbWF0ZSh7b3BhY2l0eToxfSwKNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsMSl9KSxib3hCbG9ja3NbY11bZF0udmlzaWJsZT0hMCxzaXRlUGFnZS5pc01vYmlsZSYmKG5ld0NhcnMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoYCMke2R9YCkuaGlkZGVuPSExKTtlbHNlIGlmKCFzaXRlUGFnZS5pc01vYmlsZSl7dmFyIGs9JCgiLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIikud2lkdGgoKTtjPU1hdGguZmxvb3Ioay9yLndpZHRoKTtmPWJveFBvc2l0aW9uc1tkXTtrPU1hdGguZmxvb3Ioay9jKTtjPXtsZWZ0OiIrPSIrKChtLTEpJWMqay0oZi0xKSVjKmspKyJweCIsdG9wOiIrPSIrKE1hdGguZmxvb3IoKG0tMSkvYykqci5oZWlnaHQtTWF0aC5mbG9vcigoZi0xKS9jKSpyLmhlaWdodCkrInB4In07dm9pZCAwPT1sPyQoIiMiK2QpLmFkZENsYXNzKCJNb3ZpbmdCb3giKS5hbmltYXRlKGMsNjAwLGZ1bmN0aW9uKCl7JCh0aGlzKS5yZW1vdmVDbGFzcygiTW92aW5nQm94Iil9KTokKCIjIisKZCkuYWRkQ2xhc3MoIk1vdmluZ0JveCIpLmFuaW1hdGUoYyw2MDAsZnVuY3Rpb24oKXskKHRoaXMpLnJlbW92ZUNsYXNzKCJNb3ZpbmdCb3giKTtldmFsKGwpfSk7Ym94UG9zaXRpb25zW2RdPW19fSxGPWZ1bmN0aW9uKCl7dmFyIGM9e3dpZHRoOjAsaGVpZ2h0OjB9OyQoJy5kaXZDYXJTaW5nbGVPdXRlckJveFtpcy1ib3gtdmlzaWJsZT0iMSJdOmZpcnN0JykuZWFjaChmdW5jdGlvbigpe2Mud2lkdGg9JCh0aGlzKS5vdXRlcldpZHRoKCEwKTtjLmhlaWdodD0kKHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pO3JldHVybiBjfSx6PTk2MDskKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5hdHRyKCJpcy1ib3gtdmlzaWJsZSIsMSk7dmFyIHI9RigpOzA8JCgiQk9EWS5pc0Z1bGxXaWR0aFBhZ2UiKS5sZW5ndGgmJjA8JCgiQk9EWS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIikubGVuZ3RoJiYoMTMwMDx3aW5kb3cuaW5uZXJXaWR0aCYmKHo9MTIwMCksJCh3aW5kb3cpLm9uKCJyZXNpemUiLGZ1bmN0aW9uKCl7dmFyIGM9Cno7ej0xMzAwPHdpbmRvdy5pbm5lcldpZHRoPzEyMDA6OTYwO2MhPXomJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtOKCl9KX0pKTt2YXIgTj1mdW5jdGlvbigpe3ZhciBjPXI7cj1GKCk7JCgiLmRpdkNhcnNCb3hXcmFwcGVyIikuZWFjaChmdW5jdGlvbigpe3ZhciBkPTA7JCh0aGlzKS5maW5kKCIuZGl2Q2FyU2luZ2xlT3V0ZXJCb3giKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9cGFyc2VJbnQoJCh0aGlzKS5jc3MoInRvcCIpKSxtPXBhcnNlSW50KCQodGhpcykuY3NzKCJsZWZ0IikpOzA9PT1mJiYwPT09bXx8JCh0aGlzKS5jc3Moe3RvcDpyLmhlaWdodCooZi9wYXJzZUludChjLmhlaWdodCkpKyJweCJ9KS5jc3Moe2xlZnQ6ci53aWR0aCoobS9wYXJzZUludChjLndpZHRoKSkrInB4In0pOzE9PT1wYXJzZUludCgkKHRoaXMpLmF0dHIoImlzLWJveC12aXNpYmxlIikpJiZkKyt9KTtkJiYkKHRoaXMpLmNzcyh7aGVpZ2h0Ok1hdGguZmxvb3IoZC8zKSpyLmhlaWdodCsoZCUzP3IuaGVpZ2h0OgowKSsicHgifSl9KX0scD17bWluOjAsbWF4OjFFNn07KGZ1bmN0aW9uKCl7dmFyIGM9JCgiI3ByaWNlUmFuZ2VTbGlkZXJGaWx0ZXJDb250YWluZXIiKTtpZigwPGMubGVuZ3RoKXt2YXIgZD1jLmZpbmQoImRpdi5yYW5nZS1zbGlkZXIiKTtpZigwPGQubGVuZ3RoKXt2YXIgZj1udWxsLG09ZnVuY3Rpb24obCxrKXtwPXttaW46RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihrLnZhbHVlc1swXSwxRTMpLG1heDpEMkNVdGlscy5OdW1iZXIucm91bmRVcChrLnZhbHVlc1sxXSwxRTMpfTtudWxsIT09bCYmbmV3Q2Fycy5zZXRGaWx0ZXIoInNldFNob3dlZFZhbHVlcyIscC5taW4rIjoiK3AubWF4KTtjLmZpbmQoInNwYW4ucHJpY2UtbWluIikudGV4dChwLm1pbi50b0xvY2FsZVN0cmluZygpKTtjLmZpbmQoInNwYW4ucHJpY2UtbWF4IikudGV4dChwLm1heC50b0xvY2FsZVN0cmluZygpKTtjbGVhclRpbWVvdXQoZik7Zj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7eCgpfSw1MDApfTtwPXttaW46RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihkLmF0dHIoImF0dHItcHJpY2UtbWluIikpLAptYXg6RDJDVXRpbHMuTnVtYmVyLnJvdW5kRG93bihkLmF0dHIoImF0dHItcHJpY2UtbWF4IikpfTtkLnNsaWRlcih7cmFuZ2U6ITAsbWluOnAubWluLG1heDpwLm1heCxzbGlkZTptLGNoYW5nZTptLGNyZWF0ZTpmdW5jdGlvbihsLGspe2w9bmV3Q2Fycy5nZXRGaWx0ZXIoKTtrPVtwLm1pbixwLm1heF07InN0cmluZyI9PT10eXBlb2YgbC5zZXRTaG93ZWRWYWx1ZXMmJihrPWwuc2V0U2hvd2VkVmFsdWVzLnNwbGl0KCI6IikpO2Quc2xpZGVyKCJ2YWx1ZXMiLGspO20obnVsbCx7dmFsdWVzOmt9KTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JCgiYm9keSIpLnRyaWdnZXIoJC5leHRlbmQoe3R5cGU6ImZpbHRlcnM6bG9hZCJ9LGEoKSkpfSwzRTMpfX0pfX19KSgpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt2YXIgYz0kKCIjc29ydEJ5Iik7dmFyIGQ9JCgiI3NvcnREaXIiKSxmPSJtb2RlbCI7dmFyIG09IkFzYyI7dmFyIGw9e21vZGVsOiJyYWRpb01vZGxlIixwcmljZToicmFkaW9QcmljZSIsCmNvbnNvOiJyYWRpb0NvbnNvIn07Yy5sZW5ndGgmJmQubGVuZ3RoJiYoZj1jLnZhbCgpLG09ZC52YWwoKSk7ZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgbFtlLnNvcnRCeV0\/KGM9ZS5zb3J0QnksbT1lLnNvcnREaXIpOmM9Zjt0cnl7dmFyIGs9JCgiIyIrbFtjXSk7ay5sZW5ndGgmJmsucHJvcCgiY2hlY2tlZCIsImNoZWNrZWQiKTtDKGMsbSl9Y2F0Y2godSl7fX0sNTAwKTtpZigkKCIjdG9nZ2xlRmlsdGVyQnRuIikubGVuZ3RoKSQoIiN0b2dnbGVGaWx0ZXJCdG4iKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmxlbmd0aCYmKCQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmhhc0NsYXNzKCJvcGVuIik\/JCgiI3NpZGVTaWRlYmFyRmlsdGVyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKTokKCIjc2lkZVNpZGViYXJGaWx0ZXIiKS5hZGRDbGFzcygib3BlbiIpKX0pO2lmKCQoIiNjbG9zZVNpZGViYXJCdG4iKS5sZW5ndGgpJCgiI2Nsb3NlU2lkZWJhckJ0biIpLm9uKCJjbGljayB0YXAiLApmdW5jdGlvbigpeyQoIiNzaWRlU2lkZWJhckZpbHRlciIpLmxlbmd0aCYmJCgiI3NpZGVTaWRlYmFyRmlsdGVyIikuaGFzQ2xhc3MoIm9wZW4iKSYmJCgiI3NpZGVTaWRlYmFyRmlsdGVyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKX0pOyQoIi5zZWxlY3RUb2dnbGVXcmFwcGVyQ2FyTWFrZSIpLmxlbmd0aCYmKCQoIiNzZWxlY3RBbGxCdG5DYXJNYWtlIikub24oImNsaWNrIHRhcCIsZnVuY3Rpb24oKXskKCIuZmlsdGVyQ2hlY2suY2FyTWFrZSIpLnByb3AoImNoZWNrZWQiLCEwKTtzZXRUaW1lb3V0KHgsMTAwKX0pLCQoIiN1bnNlbGVjdEFsbEJ0bkNhck1ha2UiKS5vbigiY2xpY2sgdGFwIixmdW5jdGlvbigpeyQoIi5maWx0ZXJDaGVjay5jYXJNYWtlIikucHJvcCgiY2hlY2tlZCIsITEpO3NldFRpbWVvdXQoeCwxMDApfSkpfX0sc2V0RmlsdGVyOihhLGIpPT57dmFyIGU9e30sZz1fbG9jYWxTdG9yYWdlR2V0KCJuZXdTdnBGaWx0ZXIiKTtudWxsIT1nJiYib2JqZWN0IiE9dHlwZW9mIGcmJgooZT1KU09OLnBhcnNlKGcpKTtnPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZTt2b2lkIDA9PWVbZ10mJihlW2ddPXt9KTtlW2ddW2FdPWI7X2xvY2FsU3RvcmFnZVNldCgibmV3U3ZwRmlsdGVyIixKU09OLnN0cmluZ2lmeShlKSl9LGdldEZpbHRlcjooKT0+e2xldCBhPSExO3ZhciBiPV9sb2NhbFN0b3JhZ2VHZXQoIm5ld1N2cEZpbHRlciIpO2xldCBlPXt9O251bGwhPWImJiJvYmplY3QiIT10eXBlb2YgYiYmKGU9SlNPTi5wYXJzZShiKSk7Yj13aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7dm9pZCAwIT1lW2JdJiYoYT1lW2JdKTtyZXR1cm4gYX0sc2V0UHJpY2VUb29sVGlwczooKT0+e25ld0NhcnMuaXNNb2JpbGV8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiIpLmZvckVhY2goYT0+e2xldCBiPWEuZGF0YXNldC50b29sdGlwOyQoYSkuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6YixncmF2aXR5OiJ3ZXN0Iix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIiwKYW5pbWF0aW9uOiJmbGlwSW4ifSl9KX0sc2V0RXZlbnRzOigpPT57bmV3Q2Fycy5pc01vYmlsZXx8KCQoImltZ1tlcnJvcmltZ10iKS5vbigiZXJyb3IiLGZ1bmN0aW9uKCl7dGhpcy5zcmM9JCh0aGlzKS5hdHRyKCJlcnJvcmltZyIpfSksJCgiaW1nW211bHRpaW1nPXRydWVdIikuZWFjaChmdW5jdGlvbigpeyQodGhpcykub24oIm1vdXNlb3ZlciIsZnVuY3Rpb24oKXskKHRoaXMpLmF0dHIoInNyYyIsJCh0aGlzKS5hdHRyKCJjb2xvcmltZyIpKX0pOyQodGhpcykub24oIm1vdXNlb3V0IixmdW5jdGlvbigpeyQodGhpcykuYXR0cigic3JjIiwkKHRoaXMpLmF0dHIoImJsYWNraW1nIikpfSl9KSl9LGdldEludmVudG9yeURhdGE6KCk9Pntjb25zdCBhPShiLGUpPT57bGV0IGc9IkZSRU5DSCI9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWx1ZT8iZnIiOiJlbiI7ZmV0Y2goYC8ke2d9L2FqYXgvZ2V0SW52ZW50b3J5RGF0YWAse21ldGhvZDoiUE9TVCIsCmhlYWRlcnM6e0FjY2VwdDoiYXBwbGljYXRpb24vanNvbiIsIkNvbnRlbnQtVHlwZSI6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZDsiLGNoYXJzZXQ6IlVURi04In0sYm9keTpuZXcgVVJMU2VhcmNoUGFyYW1zKGIpfSkudGhlbihoPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoJiYhMD09PWgub2smJjIwMD09aC5zdGF0dXMpcmV0dXJuIGguanNvbigpfSkudGhlbihoPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoLnN0YXR1cyYmInN1Y2Nlc3MiPT1oLnN0YXR1cyl7bGV0IG49aC5jb3VudDtoPWgudXJsO2xldCB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNpblN0b2NrTGFiZWwiKS52YWx1ZTswPG4mJihlLnBhcmVudE5vZGUuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLGA8YSBocmVmPSIke2h9Ij4ke259ICR7dH08L2E+YCksZS5wYXJlbnROb2RlLmhpZGRlbj0hMSl9fSkuY2F0Y2goZnVuY3Rpb24oaCl7fSl9O2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2lucHV0W2RhdGEtdHlwZT0iaW52ZGF0YSJdJykuZm9yRWFjaChiPT4Ke2Eoe21ha2U6Yi5kYXRhc2V0Lm1ha2UsbW9kZWw6Yi5kYXRhc2V0Lm1vZGVsLHllYXI6Yi5kYXRhc2V0LnllYXIsc3R5bGVpZHM6Yi5kYXRhc2V0LnN0eWxlaWRzLGh5YnJpZDpiLmRhdGFzZXQuaHlicmlkfSxiKX0pfSxnZXRQYXltZW50RGF0YTooKT0+e2NvbnN0IGE9KGIsZSxnKT0+JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yRnVuY3Rpb24oZnVuY3Rpb24qKCl7dHJ5e2NvbnN0IGg9eWllbGQoeWllbGQgZmV0Y2goYC8ke2VuY29kZVVSSUNvbXBvbmVudChnKX0vYWpheC9nZXRTaG93cm9vbVBheW1lbnRIdG1sYCx7bWV0aG9kOiJQT1NUIixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24iLCJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IixjaGFyc2V0OiJVVEYtOCJ9LGJvZHk6bmV3IFVSTFNlYXJjaFBhcmFtcyhiKX0pKS5qc29uKCk7ZS5wYXJlbnROb2RlLnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi1ibG9jayIpLmhpZGRlbj0KITA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBoLnN0YXR1cyYmInN1Y2Nlc3MiPT1oLnN0YXR1cyl7bGV0IG49aC5jb250ZW50OzA8bi5sZW5ndGgmJihlLnBhcmVudE5vZGUuaW5zZXJ0QWRqYWNlbnRIVE1MKCJiZWZvcmVlbmQiLG4pLGUucGFyZW50Tm9kZS5oaWRkZW49ITEpfX1jYXRjaChoKXt9fSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbZGF0YS10eXBlPSJwYXltZW50ZGF0YSJdJykuZm9yRWFjaChiPT57bGV0IGU9IkZSRU5DSCI9PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWx1ZT8iZnIiOiJlbiI7YSh7c3R5bGVpZDpiLmRhdGFzZXQuc3R5bGVpZCx0aXRsZTpiLmRhdGFzZXQudGl0bGUsaHJlZjpiLmRhdGFzZXQuaHJlZixsaW5rU3R5bGU6Yi5kYXRhc2V0LmxpbmtzdHlsZSxsaW5rQ2xhc3M6Yi5kYXRhc2V0LmxpbmtjbGFzcyxjb250YWluZXJDbGFzczpiLmRhdGFzZXQuY29udGFpbmVyY2xhc3MscHJvbW9UZXh0OmIuZGF0YXNldC5wcm9tb3RleHQsCmxhbmc6ZX0sYixlKX0pfX07JCh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe25ld0NhcnMucmVzaXplTWFpbldpbmRvdygpfSk7ZG9jUmVhZHlBcnIucHVzaCgoKT0+e25ld0NhcnMuZ2V0UGF5bWVudERhdGEoKTtuZXdDYXJzLnNldFBheW1lbnRUb29sdGlwcygpO25ld0NhcnMuc2V0RXZlbnRzKCk7bmV3Q2Fycy5uZXdDYXJzRmlsdGVyKCk7bmV3Q2Fycy5zZXRQcmljZVRvb2xUaXBzKCk7bmV3Q2Fycy5nZXRJbnZlbnRvcnlEYXRhKCl9KTsKLyoqIC9tL2pzL2pxdWVyeS51aS50b3VjaC1wdW5jaC5taW4uanMgKiovCi8qIQogKiBqUXVlcnkgVUkgVG91Y2ggUHVuY2ggMC4yLjMKICoKICogQ29weXJpZ2h0IDIwMTHigJMyMDE0LCBEYXZlIEZ1cmZlcm8KICogRHVhbCBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIG9yIEdQTCBWZXJzaW9uIDIgbGljZW5zZXMuCiAqCiAqIERlcGVuZHM6CiAqICBqcXVlcnkudWkud2lkZ2V0LmpzCiAqICBqcXVlcnkudWkubW91c2UuanMKICovCiFmdW5jdGlvbihhKXtmdW5jdGlvbiBmKGEsYil7aWYoIShhLm9yaWdpbmFsRXZlbnQudG91Y2hlcy5sZW5ndGg+MSkpe2EucHJldmVudERlZmF1bHQoKTt2YXIgYz1hLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0sZD1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKTtkLmluaXRNb3VzZUV2ZW50KGIsITAsITAsd2luZG93LDEsYy5zY3JlZW5YLGMuc2NyZWVuWSxjLmNsaWVudFgsYy5jbGllbnRZLCExLCExLCExLCExLDAsbnVsbCksYS50YXJnZXQuZGlzcGF0Y2hFdmVudChkKX19aWYoYS5zdXBwb3J0LnRvdWNoPSJvbnRvdWNoZW5kImluIGRvY3VtZW50LGEuc3VwcG9ydC50b3VjaCl7dmFyIGUsYj1hLnVpLm1vdXNlLnByb3RvdHlwZSxjPWIuX21vdXNlSW5pdCxkPWIuX21vdXNlRGVzdHJveTtiLl90b3VjaFN0YXJ0PWZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7IWUmJmIuX21vdXNlQ2FwdHVyZShhLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0pJiYoZT0hMCxiLl90b3VjaE1vdmVkPSExLGYoYSwibW91c2VvdmVyIiksZihhLCJtb3VzZW1vdmUiKSxmKGEsIm1vdXNlZG93biIpKX0sYi5fdG91Y2hNb3ZlPWZ1bmN0aW9uKGEpe2UmJih0aGlzLl90b3VjaE1vdmVkPSEwLGYoYSwibW91c2Vtb3ZlIikpfSxiLl90b3VjaEVuZD1mdW5jdGlvbihhKXtlJiYoZihhLCJtb3VzZXVwIiksZihhLCJtb3VzZW91dCIpLHRoaXMuX3RvdWNoTW92ZWR8fGYoYSwiY2xpY2siKSxlPSExKX0sYi5fbW91c2VJbml0PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcztiLmVsZW1lbnQub24oe3RvdWNoc3RhcnQ6YS5wcm94eShiLCJfdG91Y2hTdGFydCIpLHRvdWNobW92ZTphLnByb3h5KGIsIl90b3VjaE1vdmUiKSx0b3VjaGVuZDphLnByb3h5KGIsIl90b3VjaEVuZCIpfSksYy5jYWxsKGIpfSxiLl9tb3VzZURlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgYj10aGlzO2IuZWxlbWVudC5vZmYoe3RvdWNoc3RhcnQ6YS5wcm94eShiLCJfdG91Y2hTdGFydCIpLHRvdWNobW92ZTphLnByb3h5KGIsIl90b3VjaE1vdmUiKSx0b3VjaGVuZDphLnByb3h5KGIsIl90b3VjaEVuZCIpfSksZC5jYWxsKGIpfX19KGpRdWVyeSk7LypFT0YqLzsKLyoqIC9tL2pzL3BheW1lbnRDYWxjdWxhdG9yLmpzICoqLwp2YXIgX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMyAyMzozMDoyNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEzIDIyOjMwOjI4IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMyAyMTozMDoyOCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTMgMjA6MzA6MjgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEzIDE5OjMwOjI5IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMyAxODozMDoyOSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTMgMTc6MzA6MzkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEzIDE2OjMwOjI4IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTMgMTU6MzA6MzgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEzIDE0OjMwOjM0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMyAxMzozMDozOSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTMgMTI6MzA6NDAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEzIDExOjMwOjI5IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMyAxMDozMDozNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTMgMDk6MzA6MzgiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMyAwODozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTMgMDc6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEzIDA2OjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMyAwNTozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTMgMDQ6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEzIDAzOjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMyAwMjozMDoyNiI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEzIDAxOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMyAwMDozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTIgMjM6MzA6MjciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEyIDIyOjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMiAyMTozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTIgMjA6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEyIDE5OjMwOjI2IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTIgMTg6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEyIDE3OjMwOjM2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMiAxNjozMDozMSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTIgMTU6MzA6MjgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEyIDE0OjMwOjMxIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMiAxMzozMDoyOCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTIgMTI6MzA6MzIiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMiAxMTozMDozMCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTIgMTA6MzA6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEyIDA5OjMwOjMyIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMiAwODozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTIgMDc6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEyIDA2OjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMiAwNTozMDoyNiI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEyIDA0OjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMiAwMzozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTIgMDI6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEyIDAxOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAyMDozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMTk6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDE4OjMwOjI2IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMTc6MzA6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDE2OjMwOjMxIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAxNTozMDoyNyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMTQ6MzA6MzAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDEzOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAxMjozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMTE6MzA6MzUiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAxMDozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMDk6MzA6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDA4OjMwOjMyIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAwNzozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMDY6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDA1OjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAwNDozMDoyNSI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDAzOjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMSAwMjozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTEgMDE6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTExIDAwOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAyMzozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMjI6MzA6MjQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDIxOjMwOjI1IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMjA6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDE5OjMwOjI3IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAxODozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMTc6MzA6MzQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDE2OjMwOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAxNTozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMTQ6MzA6MzIiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAxMzozMDozMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMTI6MzA6MzQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDExOjMwOjM0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAxMDozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMDk6MzA6MzQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDA4OjMwOjMxIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAwNzozMDoyNyI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDA2OjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAwNTozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMDQ6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDAzOjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0xMCAwMjozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMTAgMDE6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTEwIDAwOjMwOjI1IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMjM6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDIyOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAyMTozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMjA6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDE5OjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAxODozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMTc6MzA6MzMiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAxNjozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMTU6MzA6MzUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDE0OjMwOjMyIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAxMzozMDozMCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMTI6MzA6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDExOjMwOjM1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAxMDozMDozNCI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDA5OjMwOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAwODozMDozNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMDc6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDA2OjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAwNTozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMDQ6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDAzOjMwOjI2IjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDkgMDI6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA5IDAxOjMwOjI2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOSAwMDozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMjM6MzA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDIyOjMwOjI0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAyMTozMDoyNSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMjA6MzA6MjUiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAxOTozMDoyNiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMTg6MzA6MjYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDE3OjMwOjMyIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAxNjozMDozMiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMTU6MzA6MzQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDE0OjMwOjMwIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAxMzozMDozMiI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDEyOjMwOjMzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAxMTozMDozMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMTA6MzA6MzMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDA5OjMwOjMxIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAwODozMDoyOSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMDc6MzA6MjMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDA2OjMwOjIzIjsidXNlIHN0cmljdCI7Cl9fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMDU6MzA6MjQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDA0OjMwOjI0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAwMzozMDoyNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDggMDI6MzA6MjMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA4IDAxOjMwOjIzIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wOCAwMDozMDoyMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMjM6MzA6MjMiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAyMjozMDoyMyI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMjE6MzA6MjMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDIwOjMwOjI1IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAxOTozMDoyNCI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMTg6MzA6MjQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDE3OjMwOjM2IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAxNjozMDozMyI7InVzZSBzdHJpY3QiOwpfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDE1OjMwOjM0IjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAxNDozMDozMSI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMTM6MzA6MjkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfcGF5bWVudENhbGN1bGF0b3Jqc19jX29uPSIyMDI2LTA3LTA3IDEyOjMwOjMyIjsidXNlIHN0cmljdCI7X19fZDJjX3BheW1lbnRDYWxjdWxhdG9yanNfY19vbj0iMjAyNi0wNy0wNyAxMTozMDozMiI7InVzZSBzdHJpY3QiO19fX2QyY19wYXltZW50Q2FsY3VsYXRvcmpzX2Nfb249IjIwMjYtMDctMDcgMTA6MzA6MjgiOyJ1c2Ugc3RyaWN0IjsKZnVuY3Rpb24gcG9wdXBDYWxjdWxhdG9ySW5pdGlhbGl6ZWQoKXtmdW5jdGlvbiBhKCl7YiYmYi5hYm9ydCgpO2NhbGNVcGRhdGVQYXltZW50WGhyJiYoY2FsY1VwZGF0ZVBheW1lbnRYaHIuYWJvcnQoKSxjYWxjVXBkYXRlUGF5bWVudFhocj1udWxsKTt2YXIgZD0oJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRQYXltZW50RGF0YUZvclN0eWxlSUQ\/d3N3aWR0aD0wIixjPWdldFBvcENvbnRhaW5TZXR0aW5ncygpLGY9Z2V0T3B0aW9uc0Ftb3VudChjKSx1PWdldEFjY2Vzc29yaWVzQW1vdW50KGMpO2xldCBtPWdldFNlbGVjdGVkQWNjZXNzb3JpZXMoYyk7dmFyIG49Z2V0UHJvdGVjdGlvblBsYW5zQW1vdW50KGMpLHA9Yy5oYXNPd25Qcm9wZXJ0eSgibm9UcmltU2VsZWN0IikmJighMD09PWMubm9UcmltU2VsZWN0fHwidHJ1ZSI9PT1jLm5vVHJpbVNlbGVjdCl8fCJ1c2VkY2Fycy5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHwKImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpLHg9Yy5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKT9jLnN0b2NrTnVtYmVyOiIiLHk9Yy5oYXNPd25Qcm9wZXJ0eSgidmluIik\/Yy52aW46IiIscj1wYXJzZUludCgkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCgpfHwwKTtpZihwJiYheCl7dmFyIHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBob25lc3RvY2tudW1iZXIiKTt0JiYoeD10LnZhbHVlfHwiIil9cCYmIXkmJih0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaG9uZXZpbiIpKSYmKHk9dC52YWx1ZXx8IiIpO3AmJiFjLnN0eWxlaWQmJih0PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJhY3RpdmVTdHlsZUlEIikpJiYoYy5zdHlsZWlkPXQudmFsdWV8fGMuc3R5bGVpZCk7aWYoImNhc2giPT0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKSllbmFibGVDYXNoT3B0aW9uKCk7CmVsc2V7dD1wYXJzZUludCgkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS52YWwoKXx8MCkrcjt2YXIgQT1bXTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuY29uZGl0aW9uYWwtcmViYXRlLWNoZWNrYm94IikuZm9yRWFjaChmdW5jdGlvbihxKXtxLmNoZWNrZWQmJihxPXEuZ2V0QXR0cmlidXRlKCJkYXRhLWNvbmRpdGlvbmFsLXJlYmF0ZS1pZCIpKSYmQS5wdXNoKHEpfSk7dmFyIHc9bnVsbDtDb29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKSYmKHc9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKSk7dmFyIEI9JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoKTshQiYmdyYmd1szXSYmKEI9d1szXSk7dmFyIGc9JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik7IWcmJncmJgp3WzBdJiYoZz13WzBdKTshJCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoKSYmdyYmd1syXSYmJCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwod1syXSk7Yj0kLmFqYXgoe3VybDpkLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJKU09OIixkYXRhOntzdHlsZWlkOmMuc3R5bGVpZCxwYXltZW50VHlwZTpnLGRvd25wYXltZW50OnQsb3B0aW9uc0Ftb3VudDpmLHBheW1lbnRGcmVxdWVuY3k6JCgiI3BheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS52YWwoKSxrbUFsbG93YW5jZTpCLG9wdGlvbnM6Zixpc0ludmVudG9yeTpwLHNuOngsdmluOnksY29uZGl0aW9uYWxSZWJhdGVJZHM6QS5qb2luKCIsIiksYWNjZXNzb3JpZXM6dSxzZWxlY3RlZEFjY2Vzc29yaWVzOm0scHJvdGVjdGlvblBsYW5zOm59LHN1Y2Nlc3M6ZnVuY3Rpb24ocSl7cS5jdXJyZW50UGF5bWVudCYmcS5jdXJyZW50UGF5bWVudC5sZW5ndGgmJigkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbChyKSwKZz0ibGVhc2UiPT09Zz8ibGVhc2luZyI6ImZpbmFuY2UiPT09Zz8iZmluYW5jaW5nIjpnLCJjYXNoIj09PWcmJigkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCkpLHEuY3VycmVudFBheW1lbnQmJjAhPT1xLmN1cnJlbnRQYXltZW50Lmxlbmd0aHx8ImNhc2giPT09Zz8oJCgiI3BheW1lbnRDYWxjdWxhdG9yRXJyb3JNZXNzYWdlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlRmluYW5jZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUxlYXNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvck9wdGlvbkNvbnRhaW5lciIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLAohMSkscS5jdXJyZW50UGF5bWVudCYmMDxxLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKCQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKHEuY3VycmVudFBheW1lbnRbMF0uaW50ZXJ2YWwpLGc9Z3x8KCJsZWFzZSI9PT1xLmN1cnJlbnRQYXltZW50WzBdLnR5cGU\/ImxlYXNpbmciOiJmaW5hbmNpbmciKSkpOigkKCIjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITApLCQoIiNwYXltZW50Q2FsY3VsYXRvckVycm9yTWVzc2FnZSIpLnNob3coKSksc2hvd0hpZGVQYXltZW50U2VjdGlvbihxLGcpLDA+PSQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIG9wdGlvbiIpLmxlbmd0aCYmCnBvcHVsYXRlTGVhc2VLTUFsbG93YW5jZURyb3Bkb3duKHEpLCJsZWFzaW5nIj09Zz8kKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLnNob3coKTokKCIucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLmhpZGUoKSxnZXRDYXNoUHJpY2VCbG9jayhxKSwiY2FzaCI9PT1nP2VuYWJsZUNhc2hPcHRpb24oKToocS5jdXJyZW50UGF5bWVudCYmcS5jdXJyZW50UGF5bWVudC5sZW5ndGgmJnNob3dQYXltZW50cyhxLmN1cnJlbnRQYXltZW50LHEucGF5bWVudEZlZXMscS5tYWtlaWQscSksc2V0VGltZW91dChmdW5jdGlvbigpe3ZhciB6PSQoJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXTpjaGVja2VkJyk7ei5sZW5ndGgmJiJORVdDQVJTIiE9KCQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCExKSYmIlVTRURDQVJTIiE9KCQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCExKSYmKHo9e2N1cnJlbnRQYXltZW50OnouYXR0cigiZGF0YS1yZWFscGF5bWVudCIpLApjdXJyZW50UmF0ZTp6LmF0dHIoImRhdGEtcmF0ZSIpLHBheW1lbnRUZXJtOnoudmFsKCkscGF5bWVudFR5cGU6JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIikscGF5bWVudEludGVydmFsOiQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKCkscGF5bWVudERvd25QYXltZW50OnBhcnNlSW50KCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpfHwwKStwYXJzZUludCgkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLnZhbCgpfHwwKSx0b3RhbEludGVyZXN0OnouYXR0cigiZGF0YS10b3RhbGludGVyZXN0IiksbHV4ZVRheEFtb3VudDp6LmF0dHIoImRhdGEtbHV4ZVRheEFtb3VudCIpLHJhdGVUeXBlOnouYXR0cigiZGF0YS1yYXRldHlwZSIpLGVmZmVjdGl2ZVJhdGU6ei5hdHRyKCJkYXRhLWVmZmVjdGl2ZVJhdGUiKSx0b3RhbENvc3Q6ei5hdHRyKCJkYXRhLXRvdGFsQ29zdCIpfSwKY2hhbmdlUGFnZVBheW1lbnRWYWx1ZSh6KSl9LDI1MCkpKX0sZXJyb3I6ZnVuY3Rpb24ocSx6LEQpe2NvbnNvbGUuZXJyb3IoImxvYWRQYXltZW50czo6IFBheW1lbnQgY2FsY3VsYXRpb24gZXJyb3I6Iix6LEQpfX0pfX12YXIgYj1udWxsOyQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXthKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLm9uKCJjbGljayIsZnVuY3Rpb24oZCl7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTt2YXIgYz1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLmNhbGMtcGF5bWVudC1jYXNoIik7JCh0aGlzKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTtzd2l0Y2goITApe2Nhc2UgImxlYXNpbmciPT09JCh0aGlzKS5hdHRyKCJkYXRhLXR5cGUiKTpjLmhpZGRlbj0KITA7JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5zaG93KCk7JCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5zaG93KCk7c2hvd0Rpc2NsYWltZXJMaW5rKCk7YnJlYWs7Y2FzZSAiZmluYW5jaW5nIj09PSQodGhpcykuYXR0cigiZGF0YS10eXBlIik6Yy5oaWRkZW49ITA7JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9ySW5wdXRDb250YWluZXIiKS5zaG93KCk7c2hvd0Rpc2NsYWltZXJMaW5rKCk7YnJlYWs7Y2FzZSAiY2FzaCI9PT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpOmhpZGVEaXNjbGFpbWVyTGluaygpLGMuaGlkZGVuPSExLCQoIi5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwKbnVsbCE9PUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYoYz1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpLGNbMF09ImNhc2giLENvb2tpZXMuc2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIsYy5qb2luKCItIiksbnVsbCwiLyIpKSx3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9ITAsInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuc2V0Qk5QVmlldyYmbW9kZWxDb25maWcuc2V0Qk5QVmlldyghMCwiY2FzaCIpfWxldCBmOzEhPShudWxsPT1kP3ZvaWQgMDpudWxsPT0oZj1kLmRldGFpbCk\/dm9pZCAwOmYuaXNGaXJzdFJ1bikmJiQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudHJpZ2dlcigiYmx1ciIpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5vbigiY2hhbmdlIiwKZnVuY3Rpb24oKXthKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLm9uKCJibHVyIixmdW5jdGlvbigpe2xldCBkPXBhcnNlSW50KCQodGhpcykudmFsKCkucmVwbGFjZSgvW15cZF0vZywiIikpfHwwO3ZhciBjPSJsZWFzaW5nIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIC5hY3RpdmVQYXltZW50VHlwZSIpLmF0dHIoImRhdGEtdHlwZSIpP3BhcnNlSW50KCQoIiNtYXhEb3duUGF5bWVudEZvclRyaW0iKS52YWwoKSl8fDA6cGFyc2VJbnQoJCgiI21heERvd25QYXltZW50RmluYW5jZUZvclRyaW0iKS52YWwoKSl8fDA7MDxjJiZkPmMmJihkPWMpOyQodGhpcykudmFsKGQpO2EoKX0pOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLm9uKCJibHVyIixmdW5jdGlvbigpe2xldCBkPXBhcnNlSW50KCQodGhpcykuYXR0cigibWF4IikpfHwwLGM9cGFyc2VJbnQoJCh0aGlzKS52YWwoKSl8fDA7Yz1jPmQ\/ZDpjOyQodGhpcykudmFsKGMpOwpfbG9jYWxTdG9yYWdlU2V0KCJ0cmFkZWluX2N1cnJlbnRfdmFsdWUiLEpTT04uc3RyaW5naWZ5KHt2YWx1ZTpjfSksMSk7YSgpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXskKHRoaXMpLmlzKCI6Y2hlY2tlZCIpPygkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZUluY2x1ZGVkIikuc2hvdygpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVOb3RJbmNsdWRlZCIpLmhpZGUoKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5oaWRlKCksCiQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVOb3RJbmNsdWRlZCIpLnNob3coKSl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIgYSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnZXRQb3BDb250YWluU2V0dGluZ3MoKS5hbHJlYWR5SW5pdD0hMDt3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQmJih3aW5kb3cudGVtcFBheW1lbnRTZWxlY3RDaGFuZ2VkPSEwKTt3aW5kb3cucGF5bWVudFNlbGVjdENoYW5nZWQ9ITE7dm9pZCAwIT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudmVoaWNsZUNvbmZpZ3VyYXRvckRSIikmJiJ1bmRlZmluZWQiIT09dHlwZW9mIG1vZGVsQ29uZmlnJiZtb2RlbENvbmZpZy5jaGFuZ2VQYXltZW50UGxhblBvcHVwKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLmNsb3NlKCl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciAuY2xvc2UtcmV2ZWFsLW1vZGFsIikub24oImNsaWNrIiwKZnVuY3Rpb24oKXt2b2lkIDAhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi52ZWhpY2xlQ29uZmlndXJhdG9yRFIiKSYmInVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJihtb2RlbENvbmZpZy5jaGFuZ2VQYXltZW50UGxhblBvcHVwKCksJCgiI2RyQ2FsY3VsYXRvckRpc2NsYWltZXJEcmF3ZXIiKS5sZW5ndGgmJiQoIiNkckNhbGN1bGF0b3JEaXNjbGFpbWVyRHJhd2VyIikuaXMoIjp2aXNpYmxlIikmJihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJDYWxjdWxhdG9yRGlzY2xhaW1lckRyYXdlciIpLmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKSxkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZHJDYWxjdWxhdG9yRGlzY2xhaW1lckRyYXdlciIpLnN0eWxlLmRpc3BsYXk9Im5vbmUiKSl9KTskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0Iikub24oImNoYW5nZSIsZnVuY3Rpb24oKXt2YXIgZD1nZXRQb3BDb250YWluU2V0dGluZ3MoKTtkLnN0eWxlaWQ9JCh0aGlzKS52YWwoKTsKJCgiI2FjdGl2ZVN0eWxlSUQiKS5sZW5ndGgmJiQoIiNhY3RpdmVTdHlsZUlEIikudmFsKGQuc3R5bGVpZCk7cGF5bWVudENhbGN1bGF0b3JQb3B1cEluaXQoKTt1cGRhdGVVcmwoZCl9KTskKCJib2R5Iikub24oImNsaWNrIHRhcCIsIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZmluYW5jaW5nLW9wdGlvbi5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICoiLGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScpLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIil9KTskKCJib2R5Iikub24oImNoYW5nZSIsJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScsZnVuY3Rpb24oKXt2YXIgZD0kKHRoaXMpLnZhbCgpLGM9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl1bdmFsdWU9IicrCmQrJyJdW2RhdGEtcmF0ZXR5cGU9IicrYysnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uIikucmVtb3ZlQ2xhc3MoInNlbGVjdGVkIik7JCgnaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl1bdmFsdWU9IicrZCsnIl1bZGF0YS1yYXRldHlwZT0iJytjKyciXScpLmNsb3Nlc3QoIi5maW5hbmNpbmctb3B0aW9uIikuYWRkQ2xhc3MoInNlbGVjdGVkIik7JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpfSk7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0nLGZ1bmN0aW9uKCl7dmFyIGQ9JCh0aGlzKS52YWwoKSxjPSQodGhpcykuYXR0cigiZGF0YS1yYXRldHlwZSIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInKwpkKyciXVtkYXRhLXJhdGV0eXBlPSInK2MrJyJdJykucHJvcCgiY2hlY2tlZCIsITApLnRyaWdnZXIoImNoYW5nZSIpfSk7dmFyIGU9ITE7JCgiYm9keSIpLm9uKCJjaGFuZ2UiLCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nLGZ1bmN0aW9uKCl7dmFyIGQ9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksYz0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKSxmPSQodGhpcykudmFsKCksdT0kKCIjcGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCIpLnZhbCgpLG09JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoKSxuPSQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKCk\/JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwoKTowLHA9JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudmFsKCk\/CiQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpOjA7bj1wYXJzZUludChuKStwYXJzZUludChwKTtuPW4udG9GaXhlZCgwKTtwPWMrIi0iK2YrIi0iK3UrIi0iK20rIi0iK247cCE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJm51bGwhPUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYod2luZG93LnBheW1lbnRTZWxlY3RDaGFuZ2VkPSEwLHZvaWQgMCE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKVswXSYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmdm9pZCAwIT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudmVoaWNsZUNvbmZpZ3VyYXRvckRSIikmJihlPSEwLG1vZGVsQ29uZmlnLnNldEJOUFZpZXcoZSxjKSksbnVsbCE9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikmJgpDb29raWVzLnNldCgicHJldmlvdXNwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIsQ29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIiksbnVsbCwiLyIpKTtlfHwidW5kZWZpbmVkIj09dHlwZW9mIG1vZGVsQ29uZmlnfHwidW5kZWZpbmVkIj09PXR5cGVvZiBtb2RlbENvbmZpZ3x8dm9pZCAwPT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIudmVoaWNsZUNvbmZpZ3VyYXRvckRSIil8fG1vZGVsQ29uZmlnLnNob3VsZFJlbG9hZEJOUFZpZXdPblBheW1lbnRDaGFuZ2UoZSxjKTtDb29raWVzLnNldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiLHAsbnVsbCwiLyIpO3ZhciB4PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJtb250aHMiOiJtb2lzIix5PSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIkIituKyIgZG93biBwYXltZW50IjpuKyIgJCBjb21wdGFudCI7cD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8KInBlciB3ZWVrIGZvciI6InBhciBzZW1haW5lIHBvdXIiO3N3aXRjaCh1KXtjYXNlICJ3ZWVrbHkiOnA9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/InBlciB3ZWVrIGZvciI6InBhciBzZW1haW5lIHBvdXIiO2JyZWFrO2Nhc2UgImJpd2Vla2x5IjpwPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyJwZXIgMiB3ZWVrcyBmb3IiOiJwYXIgMiBzZW1haW5lcyBwb3VyIjticmVhaztjYXNlICJzZW1pbW9udGhseSI6cD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8idHdpY2UgYSBtb250aCBmb3IiOiIyIGZvaXMgcGFyIG1vaXMgcG91ciI7YnJlYWs7Y2FzZSAibW9udGhseSI6cD0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8icGVyIG1vbnRoIGZvciI6InBhciBtb2lzIHBvdXIifW09ImxlYXNpbmciPT09Yz9tKyJrbSI6IiI7dmFyIHI9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/ImxlYXNpbmciPT09Yz8iTGVhc2luZyI6IkZpbmFuY2luZyI6CiJsZWFzaW5nIj09PWM\/IkxvY2F0aW9uIjoiRmluYW5jZW1lbnQiO2QudmVoaWNsZUluZm8mJihlbWFpbEhhbmRsZXIucGF5bWVudFZlaGljbGU9ZC52ZWhpY2xlSW5mby5tYWtlKyIgIisoZC52ZWhpY2xlSW5mby5tb2RlbHx8ZC52ZWhpY2xlSW5mby5DRk1vZGVsTmFtZSkrIiAiK2QudmVoaWNsZUluZm8uQ0ZTdHlsZU5hbWUsZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpP2QudmVoaWNsZUluZm8ueWVhcisiICIrZW1haWxIYW5kbGVyLnBheW1lbnRWZWhpY2xlOmVtYWlsSGFuZGxlci5wYXltZW50VmVoaWNsZSsiICIrZC52ZWhpY2xlSW5mby55ZWFyLGVtYWlsSGFuZGxlci5wYXltZW50VmVoaWNsZSs9IigiK3IrIiAiK3ArIiAiK2YrIiAiK3grIi4gIit5KyIuICIrbSsiKSIsZW1haWxIYW5kbGVyLm1ha2U9ZC52ZWhpY2xlSW5mby5tYWtlLGVtYWlsSGFuZGxlci5tb2RlbD1kLnZlaGljbGVJbmZvLm1vZGVsfHxkLnZlaGljbGVJbmZvLkNGTW9kZWxOYW1lLAplbWFpbEhhbmRsZXIudHJpbT1kLnZlaGljbGVJbmZvLkNGU3R5bGVOYW1lLGVtYWlsSGFuZGxlci55ZWFyPWQudmVoaWNsZUluZm8ueWVhcik7aWYoIk5FV0NBUlMiIT09KCQoIiN0YXJnZXRQYWdlIikudmFsKCl8fCExKSYmIlVTRURDQVJTIiE9PSgkKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwhMSkpe209JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50Iik7ZD0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZSIpO3A9JCh0aGlzKS5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKTt4PSQodGhpcykuYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50Iik7eT0kKHRoaXMpLmF0dHIoImRhdGEtZWZmZWN0aXZlUmF0ZSIpO3I9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7dmFyIHQ9JCh0aGlzKS5hdHRyKCJkYXRhLXRvdGFsQ29zdCIpO2NoYW5nZVBhZ2VQYXltZW50VmFsdWUoe2N1cnJlbnRQYXltZW50Om0sY3VycmVudFJhdGU6ZCxwYXltZW50VGVybTpmLHBheW1lbnRUeXBlOmMscGF5bWVudEludGVydmFsOnUsCnBheW1lbnREb3duUGF5bWVudDpuLHRvdGFsSW50ZXJlc3Q6cCxsdXhlVGF4QW1vdW50OngscmF0ZVR5cGU6cixlZmZlY3RpdmVSYXRlOnksdG90YWxDb3N0OnR9KX1yPSIiIT0kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpPyQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk6Iit0eCI7JCgiI2RlYWxlclByb3ZpbmNlQ29kZSIpLmxlbmd0aCYmIkFCIj09JCgiI2RlYWxlclByb3ZpbmNlQ29kZSIpLnZhbCgpJiYocj0iIiE9JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKT8kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpOiIrR1NUIik7aWYoJCgiLmJucF9wYXltZW50X2NvbnRhaW5lciIpLmxlbmd0aCl7eD0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCJGUkVOQ0giO209JCh0aGlzKS5hdHRyKCJkYXRhLXJlYWxwYXltZW50Iik7ZD0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZSIpO3A9IjEiPT0kKCIjcm91bmRQYXltZW50IikudmFsKCk\/MDoyOwp0PXBhcnNlRmxvYXQobSkudG9GaXhlZChwKTt0PXQucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oQSx3KXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrdysiPC9zdXA+In0pO3k9JCh0aGlzKS5hdHRyKCJkYXRhLWVmZmVjdGl2ZVJhdGUiKTtwPSQoIiNJTlRFUlZBTF9TSE9SVF9XRUVLTFkiKS52YWwoKTttPTUyO3N3aXRjaCh1KXtjYXNlICJ3ZWVrbHkiOnA9JCgiI0lOVEVSVkFMX1NIT1JUX1dFRUtMWSIpLnZhbCgpO209NTI7YnJlYWs7Y2FzZSAiYml3ZWVrbHkiOnA9JCgiI0lOVEVSVkFMX1NIT1JUX0JJV0VFS0xZIikudmFsKCk7bT0yNjticmVhaztjYXNlICJzZW1pbW9udGhseSI6cD0kKCIjSU5URVJWQUxfU0hPUlRfU0VNSU1PTlRITFkiKS52YWwoKTttPTI0O2JyZWFrO2Nhc2UgIm1vbnRobHkiOnA9JCgiI0lOVEVSVkFMX1NIT1JUX01PTlRITFkiKS52YWwoKSxtPTEyfXU9cisiLyIrcDsiMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKSYmCiJibHVyIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKSYmKHQ9JzxzcGFuIGNsYXNzPSJibHVyLXByaWNlIj4nK3QrIjwvc3Bhbj4iKTtwPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKHQpO249RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UobikrKCJFTkdMSVNIIj09PXg\/IiBkb3duIjoiIGNvbXB0YW50Iik7Yz0iZmluYW5jaW5nIj09PWM\/IkVOR0xJU0giPT09eD9mKyIgbW9udGhzIGZpbi4iOiJGaW4uICIrZisiIG1vaXMiOiJFTkdMSVNIIj09PXg\/ZisiIG1vbnRocyBsZWFzZSI6IkxvYy4gIitmKyIgbW9pcyI7ZD1wYXJzZUZsb2F0KGQpLnRvRml4ZWQoMikrIiUiO3g9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQoeSxkLCIiLCIiLCExKTt5PWMrIiAvICIrbisiIEAgIitkK3grIjoiOzE9PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmKGY9cGFyc2VJbnQocGFyc2VJbnQoZikvMTIqbSksbT1zdG9yZS5nZXQoImkxOG4iKS5QQVlNRU5UUy50b0xvd2VyQ2FzZSgpLAohMD09PXN0b3JlLmdldCgiZmllbGRzLlZXX0RSX1BQX0VOQUJMRUQiKSYmKG4rPSc8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyIgIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTctZGl2IiBkYXRhLWRpc2NsYWltZXItaWQ9IjciPjxzdXAgZGF0YS1kaXNjbGFpbWVyLWlkPSI3Ij43PC9zdXA+PC9hPicscCs9JzxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIiAgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSJkaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtMy1kaXYiIGRhdGEtZGlzY2xhaW1lci1pZD0iMyI+PHN1cCBkYXRhLWRpc2NsYWltZXItaWQ9IjMiPjM8L3N1cD48L2E+JykseT1jKyIgLyAiK2YrIiAiK20rIiAvICIrbisiIEAgIitkK3grIjoiKTskKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIC5icC1wYXltZW50LWRlc2MiKS5odG1sKHkpOwokKCIuYm5wX3BheW1lbnRfY29udGFpbmVyIC5icC1wYXltZW50LWFtb3VudCIpLmh0bWwocCk7JCgiLmJucF9wYXltZW50X2NvbnRhaW5lciAuYnAtdGF4LXR4dCIpLnRleHQodSk7Zj0kKHRoaXMpLmNsb3Nlc3QoIi5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIik7IjEiPT0kKCIjaXNtb2JpbGUiKS52YWwoKSYmKGY9JCh0aGlzKS5jbG9zZXN0KCIucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIpLmZpbmQoIi5wYXltZW50VG9vbHRpcCIpKTtmPWYuYXR0cigiZGF0YS10b29sdGlwIik7Zj1TdHJpbmcoZikucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7Iik7Y2hhbmdlQm5QVG9vbFRpcE1lc3NhZ2UoZik7InVuZGVmaW5lZCIhPT10eXBlb2YgbW9kZWxDb25maWcmJihtb2RlbENvbmZpZy5zYXZlQ29uZmlnKCksbW9kZWxDb25maWcuY2FsY3VsYXRlQWNjUGF5bWVudHMoKSl9fSk7CiQoImJvZHkiKS5vbigiY2hhbmdlIiwiLmNvbmRpdGlvbmFsLXJlYmF0ZS1jaGVja2JveCIsZnVuY3Rpb24oKXtpZigkKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLmlzKCI6dmlzaWJsZSIpfHwkKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIiKS5pcygiOnZpc2libGUiKSkiY2FzaCI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKT9jYWxjVXBkYXRlUGF5bWVudEluZm8oKTphKCl9KX1mdW5jdGlvbiBlc2NhcGVIVE1MKGEpe3JldHVybiBTdHJpbmcoYSkucmVwbGFjZSgvJi9nLCImYW1wOyIpLnJlcGxhY2UoLzwvZywiJmx0OyIpLnJlcGxhY2UoLz4vZywiJmd0OyIpLnJlcGxhY2UoLyIvZywiJnF1b3Q7IikucmVwbGFjZSgvJy9nLCImIzM5OyIpfQp2YXIgY3RhUGF5bWVudFRleHRGcj1bXSxjdGFQYXltZW50VGV4dEVuPVtdLGNhbGNDdXJQYXltZW50PXt9LGN0YVBheW1lbnRWYWx1ZXM9W10sY2FzaFByaWNlRm9yUGFnZT1udWxsLGNhbGNVcGRhdGVQYXltZW50WGhyPW51bGw7CmZ1bmN0aW9uIHVwZGF0ZVVybChhKXt0cnl7aWYoIWEudmVoaWNsZUluZm8pcmV0dXJuO3ZhciBiPWEudmVoaWNsZUluZm8sZT0idW5kZWZpbmVkIiE9dHlwZW9mIG5ld2NhckRldGFpbHM\/bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5zdHlsZXM6Yi5tb2RlbEpTT04uc3R5bGVzLGQ9d2luZG93LnBhcmVudC5sb2NhdGlvbi5ocmVmLnNwbGl0KCIvIikuc2xpY2UoMCwtMSkuam9pbigiLyIpLGM9ZS5maWx0ZXIoZnVuY3Rpb24oZil7cmV0dXJuIGYuaWQ9PWEuc3R5bGVpZH0pLnBvcCgpfWNhdGNoKGYpe2NvbnNvbGUuZXJyb3IoZik7cmV0dXJufWMmJihlPWMuZW5nbGlzaFRyaW18fCIiLGI9Z2V0Q3VycmVudFZlaGljbGVQYXRoKGIpKyItIitlLnJlcGxhY2UoL1xzfC0vZywiICIpLGUubGVuZ3RoJiZ3aW5kb3cucGFyZW50Lmhpc3RvcnkucHVzaFN0YXRlKHt9LCIiLGQrIi8iK2IrIi5odG1sIikpfQpmdW5jdGlvbiBjaGFuZ2VCblBUb29sVGlwTWVzc2FnZShhKXthPSc8c3BhbiBjbGFzcz0icGF5bWVudFRvb2x0aXAgZmFsIGZhLWluZm8tY2lyY2xlIiBkYXRhLXRvb2x0aXA9IicrYSsnIj48L3NwYW4+JzskKCIucGF5bWVudEluZm9CdWJibGVCblAiKS5odG1sKGEpO3RyeXt2YXIgYj0kKCIucGF5bWVudEluZm9CdWJibGVCblAgLnBheW1lbnRUb29sdGlwIikuYXR0cigiZGF0YS10b29sdGlwIik7JCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIC5wYXltZW50VG9vbHRpcCIpLmRhcmtUb29sdGlwKHtjb250ZW50OmIsZ3Jhdml0eToic291dGgiLHRoZW1lOiJsaWdodCIsdHJpZ2dlcjoiaG92ZXIiLGFuaW1hdGlvbjoiZmFkZUluIn0pfWNhdGNoKGUpe319CmZ1bmN0aW9uIHBvcHVwaXplck9uQ2xvc2UoYSxiKXsicGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIhPT1hLmN1cnJlbnRUYXJnZXQucGFyZW50RWxlbWVudC5pZCYmKHdpbmRvdy50ZW1wUGF5bWVudFNlbGVjdENoYW5nZWQmJih3aW5kb3cudGVtcFBheW1lbnRTZWxlY3RDaGFuZ2VkPSExLHdpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD0hMCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiKS5wb3B1cGl6ZSgpLm9wZW4oMSksJCgiLnJldmVhbC1tb2RhbCIpLm9mZigicG9wdXBpemVyLmNsb3NlIixwb3B1cGl6ZXJPbkNsb3NlKSl9CmZ1bmN0aW9uIGdldFBvcENvbnRhaW5TZXR0aW5ncygpe3ZhciBhPSQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikuZGF0YSgicG9wdXBTZXR0aW5ncyIpO2Eubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHM9ITE7YS5ub01vdG9pbnNpZ2h0RmluYW5jZVBheW1lbnRzPSExO2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGEpcmV0dXJuITE7InVuZGVmaW5lZCIhPXR5cGVvZiBzZWFyY2hEZXRhaWxzJiZzZWFyY2hEZXRhaWxzLnZlaGljbGU\/KGEucGF5bWVudFR5cGU9IjEiPT0oc2VhcmNoRGV0YWlscy52ZWhpY2xlLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzfHwhMSk\/ImZpbmFuY2UiOmEucGF5bWVudFR5cGUsYS5wYXltZW50VHlwZT0iMSI9PShzZWFyY2hEZXRhaWxzLnZlaGljbGUubm9Nb3RvaW5zaWdodFBheW1lbnR8fCExKT8ibGVhc2UiOmEucGF5bWVudFR5cGUsYS5ub01vdG9pbnNpZ2h0TGVhc2VQYXltZW50cz0iMSI9PShzZWFyY2hEZXRhaWxzLnZlaGljbGUubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHN8fAohMSk\/ITA6ITEsYS5ub01vdG9pbnNpZ2h0RmluYW5jZVBheW1lbnRzPSIxIj09KHNlYXJjaERldGFpbHMudmVoaWNsZS5ub01vdG9pbnNpZ2h0UGF5bWVudHx8ITEpPyEwOiExKTooYS5wYXltZW50VHlwZT0iMSI9PShhLm5vTGVhc2V8fCExKT8iZmluYW5jZSI6YS5wYXltZW50VHlwZSxhLnBheW1lbnRUeXBlPSIxIj09KGEubm9GaW5hbmNlfHwhMSk\/ImxlYXNlIjphLnBheW1lbnRUeXBlLGEubm9Nb3RvaW5zaWdodExlYXNlUGF5bWVudHM9IjEiPT0oYS5ub0xlYXNlfHwhMSk\/ITA6ITEsYS5ub01vdG9pbnNpZ2h0RmluYW5jZVBheW1lbnRzPSIxIj09KGEubm9GaW5hbmNlfHwhMSk\/ITA6ITEpO3JldHVybiBhfQpmdW5jdGlvbiBjaGFuZ2VQYWdlUGF5bWVudFZhbHVlKGEpe3ZhciBiPWEuY3VycmVudFBheW1lbnQsZT1hLmN1cnJlbnRSYXRlLGQ9YS5wYXltZW50VGVybSxjPWEucGF5bWVudFR5cGUsZj1hLnBheW1lbnRJbnRlcnZhbCx1PWEucGF5bWVudERvd25QYXltZW50LG09YS50b3RhbEludGVyZXN0LG49YS5sdXhlVGF4QW1vdW50LHA9YS5yYXRlVHlwZSx4PWEuZWZmZWN0aXZlUmF0ZSx5PWEudG90YWxDb3N0LHI9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IkVOR0xJU0giOiJGUkVOQ0giLHQ9Z2V0UG9wQ29udGFpblNldHRpbmdzKCksQT0iMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclJvdW5kUGF5bWVudCIpLnZhbCgpPzA6Mix3PTI9PUE\/TWF0aC5mbG9vcihwYXJzZUZsb2F0KGIpKS50b0ZpeGVkKDApOnBhcnNlRmxvYXQoYikudG9GaXhlZCgwKTtiPXBhcnNlRmxvYXQoYikudG9GaXhlZChBKTtBPWIuc3BsaXQoIi4iKVsxXXx8IiI7Yj1iLnJlcGxhY2UoL1wuKFswLTldKikvLApmdW5jdGlvbihDLEYpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytGKyI8L3N1cD4ifSk7IjEiPT0kKCIjcGF5bWVudENhbGN1bGF0b3JTdHJpa2VQYXltZW50IikudmFsKCkmJiJibHVyIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKSYmKGI9JzxzcGFuIGNsYXNzPSJibHVyLXByaWNlIj4nK2IrIjwvc3Bhbj4iKTt2YXIgQj1EMkNVdGlscy5Gb3JtYXQudG9QcmljZShiKSxnPWIrIiQiLHE9IiQiK2Isej0ibGVhc2luZyI9PT1jPyJMb2NhdGlvbiI6IkZpbmFuY2VtZW50IixEPSJsZWFzaW5nIj09PWM\/IkxlYXNpbmciOiJGaW5hbmNpbmciLHY9ZSsiJSIsaD0iIiE9JCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKT8kKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpOiIrdHgiOyQoIiNkZWFsZXJQcm92aW5jZUNvZGUiKS5sZW5ndGgmJiJBQiI9PSQoIiNkZWFsZXJQcm92aW5jZUNvZGUiKS52YWwoKSYmKGg9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/CiQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk6IitHU1QiKTt2YXIgaz1oKyIvbW9pcyIsbD1oKyIvbXRoIjtzd2l0Y2goZil7Y2FzZSAid2Vla2x5IjprPWgrIi9zZW0iO2w9aCsiL3dlZWsiO2JyZWFrO2Nhc2UgImJpd2Vla2x5IjprPWgrIi8yc2VtIjtsPWgrIi8yd2VlayI7YnJlYWs7Y2FzZSAic2VtaW1vbnRobHkiOms9aCsiL2JpbWVuc3VlbCI7bD1oKyIvc2VtaW1vbnRobHkiO2JyZWFrO2RlZmF1bHQ6az1oKyIvbW9pcyIsbD1oKyIvbW9udGgifWxldCBHPWg9IiI7MT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYhMD09PXN0b3JlLmdldCgiZmllbGRzLlZXX0RSX1BQX0VOQUJMRUQiKSYmKEc9JzxzcGFuPjxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIiAgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSJkaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtMy1kaXYiIGRhdGEtZGlzY2xhaW1lci1pZD0iMyI+PHN1cCBkYXRhLWRpc2NsYWltZXItaWQ9IjMiPjM8L3N1cD48L2E+PC9zcGFuPicsCmg9JzxzcGFuPjxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIiAgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSJkaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtNy1kaXYiIGRhdGEtZGlzY2xhaW1lci1pZD0iNyI+PHN1cCBkYXRhLWRpc2NsYWltZXItaWQ9IjciPjc8L3N1cD48L2E+PC9zcGFuPicpO3ZhciBIPSIxIj09JCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudCIpLnZhbCgpPyJzY3JhdGNoIj09PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnRPcHRpb24iKS52YWwoKT8ic3RyaWtlLXByaWNlLWJsYWNrIjoiIjoiIixFPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKHUpKyIgY29tcHRhbnQiLEw9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UodSkrIiBkb3duIHBheW1lbnQiO3U9eisiICIrZCsiIG1vaXMiO0Q9RCsiICIrZCsiIG1vbnRocyI7Qj0nPHNwYW4gY2xhc3M9InR4dC1wYXltZW50ICcrSCsnIj4nKwpCKyI8L3NwYW4+ICIrRysnIEAgPHNwYW4gY2xhc3M9InR4dC1wYXltZW50Ij4nK3YrIjwvc3Bhbj4iK2Zvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KHgsZSwnIGNsYXNzPSJ0eHQtcGF5bWVudCIgJyk7aD0oIkVOR0xJU0giPT09cj9sOmspKyIgIisoIkVOR0xJU0giPT09cj9MOkUpK2grKCIxIj09JCgiI2lzbW9iaWxlIikudmFsKCk\/IiI6JyA8c3BhbiBzdHlsZT0iZm9udC13ZWlnaHQ6NzAwO2NvbG9yOiMwMDA7IiBjbGFzcz0idmRwSW5mb1Rvb2x0aXAgZmFyIGZhLWluZm8tY2lyY2xlIj48L3NwYW4+Jyk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTIsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUxIikuaHRtbCgiRU5HTElTSCI9PT1yP0Q6dSk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTEsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUyIikuaHRtbChCKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMywgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTMiKS5odG1sKGgpOwpFPUI9IiI7Y2FsY0N1clBheW1lbnQuY3VycmVudFBheW1lbnQmJmNhbGNDdXJQYXltZW50LmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKEU9Y2FsY0N1clBheW1lbnQuY3VycmVudFBheW1lbnRbMF0udG90YWwsQj1gQWZmaWNow6kgw6AgJHtFfSRgLEU9YExpc3RlZCBhdCAkJHtFfWApO2N0YVBheW1lbnRUZXh0RnI9W2Ake2d9ICR7a31gLGAke3V9IEAgJHt2fWAsYCR7Qn1gXTtjdGFQYXltZW50VGV4dEVuPVtgJHtxfSAke2x9YCxgJHtEfSBAICR7dn1gLGAke0V9YF07Y3RhUGF5bWVudFZhbHVlcz1bYS5jdXJyZW50UGF5bWVudCxlLGQsZl07d2luZG93LnBhcmVudC5BTVAmJndpbmRvdy5wYXJlbnQuQU1QLnNldFN0YXRlKHtTU1JfU1RBVEU6e2xlYXNlVGVybVRleHQ6IkVOR0xJU0giPT09cj9EOnUsbGVhc2VQYXltZW50VHh0OncsbGVhc2VQYXltZW50RGVjaW1hbDpBLGxlYXNlUmF0ZTp2LGxlYXNlVGF4VGV4dDpofX0pO2NhbGNDdXJQYXltZW50LmN1clRlcm09ZDtjYWxjQ3VyUGF5bWVudC5jdXJSYXRlPQplO2NhbGNDdXJQYXltZW50LmN1ckludGVydmFsPWY7Y2FsY0N1clBheW1lbnQudGF4VGV4dEZyPWs7Y2FsY0N1clBheW1lbnQudGF4VGV4dEVuPWw7YT0oJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRQYXltZW50VG9vbHRpcEJ5U3R5bGVJRD93c3dpZHRoPTAiO2M9ImxlYXNpbmciPT1jPyJsZWFzZSI6ImZpbmFuY2UiO3I9Z2V0T3B0aW9uc0Ftb3VudCh0KTt3PXQuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYoITA9PT10Lm5vVHJpbVNlbGVjdHx8InRydWUiPT09dC5ub1RyaW1TZWxlY3QpfHwidXNlZGNhcnMuaHRtbCI9PT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PT0kKCIjUEFHRUlEIikudmFsKCk7QT10Lmhhc093blByb3BlcnR5KCJzdG9ja051bWJlciIpP3Quc3RvY2tOdW1iZXI6IiI7Zz10Lmhhc093blByb3BlcnR5KCJ2aW4iKT90LnZpbjoiIjtxPWdldEFjY2Vzc29yaWVzQW1vdW50KHQpOwp2PWdldFNlbGVjdGVkQWNjZXNzb3JpZXModCk7az1nZXRQcm90ZWN0aW9uUGxhbnNBbW91bnQodCk7bGV0IE49W107ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmNvbmRpdGlvbmFsLXJlYmF0ZS1jaGVja2JveCIpLmZvckVhY2goZnVuY3Rpb24oQyl7Qy5jaGVja2VkJiYoQz1DLmdldEF0dHJpYnV0ZSgiZGF0YS1jb25kaXRpb25hbC1yZWJhdGUtaWQiKSkmJk4ucHVzaChDKX0pO3cmJiFBJiYobD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmVzdG9ja251bWJlciIpKSYmKEE9bC52YWx1ZXx8IiIpO3cmJiFnJiYobD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmV2aW4iKSkmJihnPWwudmFsdWV8fCIiKTskLmFqYXgoe3VybDphLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJIVE1MIixkYXRhOntzdHlsZWlkOnQuc3R5bGVpZCx0eXBlOmMscGF5bWVudDpwYXJzZUZsb2F0KGIpLHRlcm06cGFyc2VJbnQoZCkscmF0ZTpwYXJzZUZsb2F0KGUpLGludGVydmFsOmYsb3B0aW9uczpyLAp0b3RhbEludGVyZXN0Om0saXNJbnZlbnRvcnk6dyxzbjpBLHZpbjpnLGx1eGVUYXhBbW91bnQ6bixyYXRlX3R5cGU6cCx0b3RhbENvc3Q6eSxjb25kaXRpb25hbFJlYmF0ZUlkczpOLmpvaW4oIiwiKSxhY2Nlc3NvcmllczpxLHNlbGVjdGVkQWNjZXNzb3JpZXM6dixwcm90ZWN0aW9uUGxhbnM6ayxlZmZlY3RpdmVSYXRlOnh9LGJlZm9yZVNlbmQ6ZnVuY3Rpb24oQyl7dHJ5e2xldCBGPSQoIm1ldGFbbmFtZT0nY3NyZi1kb21haW4tY2hlY2snXSIpO0YubGVuZ3RoJiZDLnNldFJlcXVlc3RIZWFkZXIoImNzcmYtZG9tYWluLWNoZWNrIixGLmF0dHIoImNvbnRlbnQiKSl9Y2F0Y2goRil7Y29uc29sZS5lcnJvcihDKX19LHN1Y2Nlc3M6ZnVuY3Rpb24oQyl7JCgiI2Rhcmt0b29sdGlwLXBheW1lbnRXcmFwcGVyLCAjZGFya3Rvb2x0aXAtdmRwUGF5bWVudFRvb2x0aXAsICNkYXJrdG9vbHRpcC12ZHBJbmZvVG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcFVzZWRJbmZvVG9vbHRpcCIpLnJlbW92ZSgpOwp2YXIgRj0kKCIubmV3VmRwQWN0aW9ucyIpLmhhc0NsYXNzKCJ3ZXN0Iik\/Indlc3QiOiQoIi51c2VkVmRwQWN0aW9ucyIpLmhhc0NsYXNzKCJ3ZXN0Iik\/Indlc3QiOiJlYXN0IjskKCIudmRwUGF5bWVudFRvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwSW5mb1Rvb2x0aXAsIC5wYXltZW50V3JhcHBlciAudmRwVXNlZEluZm9Ub29sdGlwIikuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6QyxncmF2aXR5OkYsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciIsYW5pbWF0aW9uOiJmbGlwSW4ifSl9fSl9CmZ1bmN0aW9uIGdldEN1cnJlbnRWZWhpY2xlUGF0aChhKXt2YXIgYj1bZDJjbWVkaWEudXJsLnNhbml0aXplKGEubWFrZSksZDJjbWVkaWEudXJsLnNhbml0aXplKGEubW9kZWwpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLnllYXIpXS5qb2luKCItIik7IkVOR0xJU0giPT09KCQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8IkZSRU5DSCIpJiYoYj1bZDJjbWVkaWEudXJsLnNhbml0aXplKGEubWFrZSksZDJjbWVkaWEudXJsLnNhbml0aXplKGEubW9kZWwpLGQyY21lZGlhLnVybC5zYW5pdGl6ZShhLnllYXIpXS5qb2luKCItIikpO3JldHVybiBifQpmdW5jdGlvbiBzaG93UGF5bWVudHMoYSxiLGUsZCl7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmh0bWwoIiIpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5odG1sKCIiKTt2YXIgYz0iMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclJvdW5kUGF5bWVudCIpLnZhbCgpPzA6MjsiMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpO3ZhciBmPVtdLHU9JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKXx8MDsiZmluYW5jZSI9PWFbMF0udHlwZSYmYVswXS5kb3ducGF5bWVudD5kLm1heERvd25GaW5hbmNlPygkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5zaG93KCksCiQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITApKToibGVhc2UiPT1hWzBdLnR5cGUmJmFbMF0uZG93bnBheW1lbnQ+ZC5tYXhEb3duPygkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLnNob3coKSwkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCksCiQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lciIpLnByb3AoImhpZGRlbiIsITApKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMSksJCgiI3BheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikuaXMoIjpjaGVja2VkIik\/KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmhpZGUoKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSkpOwo1PGEubGVuZ3RoP2EuZm9yRWFjaChmdW5jdGlvbih2KXsoMD09di50ZXJtJTEyfHw2ND09di50ZXJtfHw0MD09ZSYmNTE9PXYudGVybXx8MjA9PWUmJlsyNywzMCwzOSw0Ml0uaW5jbHVkZXModi50ZXJtKXx8WzE2LDIxXS5pbmNsdWRlcyhlKXx8NDI9PXYudGVybSYmMTAxND09dXx8WzMwLDQyXS5pbmNsdWRlcyh2LnRlcm0pJiZbNDcxNTYyLDQ3MTU2Myw0NzE1NjRdLmluY2x1ZGVzKHBhcnNlSW50KHNldHRpbmdzLnN0eWxlaWQpKXx8WzE2LDFdLmluY2x1ZGVzKGUpJiZbMjgsNDBdLmluY2x1ZGVzKHYudGVybSl8fDI3PT12LnRlcm0mJjI3PT1lfHw1Mj09di50ZXJtJiYzOT09ZSkmJmYucHVzaCh2KX0pOmY9YTsiZGVzYyI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclRlcm1PcmRlciIpLnZhbCgpJiYoZj1mLnJldmVyc2UoKSk7dmFyIG09e30sbj0hMTtmLmZvckVhY2goZnVuY3Rpb24odixoKXtPYmplY3QuaGFzT3duKG0sdi50ZXJtKT9uPSEwOm1bdi50ZXJtXT17fTttW3YudGVybV1bdi5yYXRlX3R5cGVdPQpofSk7dmFyIHA9W10seD0hMSx5PSExLHI9cGFyc2VJbnQoc2V0dGluZ3MuZGVmYXVsdFRlcm0sMTApfHwwO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpPyh4PUNvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpLnNwbGl0KCItIilbMV18fCExLHk9Q29va2llcy5nZXQoInBheW1lbnRDYWxjdWxhdG9yU2VsZWN0ZWRPcHRpb25zIikuc3BsaXQoIi0iKVswXXx8ITEpOjA8ciYmKHg9cixyPXNldHRpbmdzLnBheW1lbnRUeXBlLHk9ImxlYXNlIj09PXI\/ImxlYXNpbmciOiJmaW5hbmNlIj09PXI\/ImZpbmFuY2luZyI6cik7YVswXSYmImxlYXNlIj09YVswXS50eXBlJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBhWzBdLmttX2FsbG93YW5jZSYmKHI9MDxkLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZT9kLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZToyRTQsJCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwocikpOwpsZXQgdD1kLnRvdGFsSW5jZW50aXZlLEE9bj8kKCIjTE9XRVNUUEFZTUVOVF9MQUJFTCIpLnZhbCgpOiIiLHc9bj8kKCIjTE9XRVNUUkFURV9MQUJFTCIpLnZhbCgpOiIiO3ZhciBCPTA7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIC5qcy10ZW1wS21BbGxvd2VkIikucmVtb3ZlKCk7bGV0IGc9IiIscT0iIjsxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJiEwPT09c3RvcmUuZ2V0KCJmaWVsZHMuVldfRFJfUFBfRU5BQkxFRCIpJiYoZz0nPHNwYW4+PGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgY2FsY0Rpc2NsYWltZXJzU3VwZXJzY3JpcHRzICIgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSJjYWxjdWxhdG9yLWRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy0zLWRpdiIgIGRhdGEtZGlzY2xhaW1lci1pZD0iMyI+PHN1cD4zPC9zdXA+PC9hPjwvc3Bhbj4nLHE9JzxzcGFuPjxhIGhyZWY9ImphdmFzY3JpcHQ6dm9pZCgwKSIgY2xhc3M9ImRpc2NsYWltZXJzU3VwZXJzY3JpcHRzIGNhbGNEaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyAiIGRhdGEtZGlzY2xhaW1lci1kaXZpZD0iY2FsY3VsYXRvci1kaXNjbGFpbWVycy1zdXBlcnNjcmlwdHMtMi1kaXYiICBkYXRhLWRpc2NsYWltZXItaWQ9IjIiPjxzdXA+Mjwvc3VwPjwvYT48L3NwYW4+Jyk7CiQuZWFjaChmLGZ1bmN0aW9uKHYsaCl7aWYoIXAuaW5jbHVkZXMoaC50ZXJtKSl7cC5wdXNoKGgudGVybSk7dmFyIGs9InN0YW5kYXJkIj09aC5yYXRlX3R5cGV8fDI+T2JqZWN0LmtleXMobVtoLnRlcm1dKS5sZW5ndGg\/aDpmW21baC50ZXJtXS5zdGFuZGFyZF0sbD0yPT1PYmplY3Qua2V5cyhtW2gudGVybV0pLmxlbmd0aD9mW21baC50ZXJtXS5zdWJ2ZW50ZWRdOiExLEc9Mj09T2JqZWN0LmtleXMobVtoLnRlcm1dKS5sZW5ndGg\/bVtoLnRlcm1dLnN1YnZlbnRlZDohMSxIPWgudGVybSxFPWguZG93bnBheW1lbnQudG9GaXhlZCgwKSxMPWsucGF5bWVudC50b0ZpeGVkKGMpLE49ay5wYXltZW50LnRvRml4ZWQoYyk7TD1MLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKE8sTSl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK00rIjwvc3VwPiJ9KTt2YXIgQz1rLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChjKSxGPWsucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGMpO0M9Qy5yZXBsYWNlKC9cLihbMC05XSopLywKZnVuY3Rpb24oTyxNKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrTSsiPC9zdXA+In0pO3ZhciBVPWsucmF0ZSxmYT0icGF5bWVudCIrdjt2PSJwYXltZW50Iit2KyJ3aXRoVGF4ZXMiO0g9JCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IjxzcGFuPiIrSCsiPC9zcGFuPiBtb250aCI6IjxzcGFuPiIrSCsiPC9zcGFuPiBtb2lzIjtFPWA8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4ke0V9PC9zcGFuPmArKCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIgZG93biBwYXltZW50IjoiIGNvbXB0YW50Iik7dmFyIFA9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/IjxkaXY+IiskKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpKyI8L2Rpdj4iOiIrdHgiOyQoIiNkZWFsZXJQcm92aW5jZUNvZGUiKS5sZW5ndGgmJiJBQiI9PSQoIiNkZWFsZXJQcm92aW5jZUNvZGUiKS52YWwoKSYmKFA9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/CiI8ZGl2PiIrJCgiI2Rpc2NsYWltZXJQcmljZVRleHQiKS52YWwoKSsiPC9kaXY+IjoiK0dTVCIpO3ZhciBRPWsuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU\/ay5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZTowLFY9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHQoUSxrLnJhdGUsIiIsJ2NsYXNzPSItZnMxMCInKSxXPWsudG90YWxPYmxpZ2F0aW9uQW1vdW50P2sudG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsWD0nZGF0YS10b29sdGlwPSInK2sudG9vbHRpcCsnIicsWT0nZGF0YS10b29sdGlwPSInK2sudG9vbHRpcFdpdGhUYXhlcysnIicsSSxoYT1udWxsIT0oST1rLm0yZF9maW5hbmNlKT9JOnQ7ST0ic2luZ2xlLWNvbHVtbiI7aD1wYXJzZUludChoLnRlcm0pO2g9eCYmeD09aCYmeSYmeT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik\/ImNoZWNrZWQiOiIiO3ZhciBSPSJzbWFsbC1ib3giLEo9IiIsSz0iIjtpZihsKXtJPQoibGVmdC1zZWN0aW9uIjtSPSIiO0o9bC5wYXltZW50LnRvRml4ZWQoYyk7bGV0IE89bC5wYXltZW50LnRvRml4ZWQoYyk7Sj1KLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKGlhLFMpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytTKyI8L3N1cD4ifSk7Sz1sLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChjKTtsZXQgTT1sLnBheW1lbnRXaXRoVGF4ZXMudG9GaXhlZChjKTtLPUsucmVwbGFjZSgvXC4oWzAtOV0qKS8sZnVuY3Rpb24oaWEsUyl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK1MrIjwvc3VwPiJ9KTt2YXIgWj1sLnJhdGUudG9GaXhlZCgyKSxqYT0icGF5bWVudCIrRztHPSJwYXltZW50IitHKyJ3aXRoVGF4ZXMiO2xldCBUPWwuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU\/bC5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZTowLGFhPWZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0KFQsbC5yYXRlLCIiLCdjbGFzcz0iLWZzMTAiJyksYmE9bC50b3RhbE9ibGlnYXRpb25BbW91bnQ\/CmwudG90YWxPYmxpZ2F0aW9uQW1vdW50OjAsY2E9J2RhdGEtdG9vbHRpcD0iJytsLnRvb2x0aXArJyInLGRhPSdkYXRhLXRvb2x0aXA9IicrbC50b29sdGlwV2l0aFRheGVzKyciJyxlYT1sLm0yZF9maW5hbmNlO0o9J1x0PGRpdiBpZD0iJytqYSsnIiBjbGFzcz0icmlnaHQtc2VjdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK2NhKyc+XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK0orIjwvc3Bhbj4iK2crJyA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCByaWdodFRvb2x0aXAiICcrY2ErJz48L2k+PC9kaXY+XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrUCsnPC9kaXY+XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1yYXRlIj4nK1orIiUgIithYSsnPC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0PGlucHV0XHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnQiXHRcdFx0XHRcdHZhbHVlPSInKwpsLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytsLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytsLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytsLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrTysnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2wucmVzaWR1YWwrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2wudG90YWxJbnRlcmVzdCsnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrbC5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytUKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK2JhKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytsLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrbC5yZXNpZHVhbFZhbHVlKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInKwplYSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSIwIlx0XHRcdFx0Plx0XHRcdDxsYWJlbD4nK3crIjwvbGFiZWw+XHRcdDwvZGl2Plx0PC9kaXY+IjtLPSdcdDxkaXYgaWQ9IicrRysnIiBjbGFzcz0icmlnaHQtc2VjdGlvbiBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIiAnK2RhKyc+XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK0srIjwvc3Bhbj4iK3ErJyA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCByaWdodFRvb2x0aXAiICcrZGErJz48L2k+PC9kaXY+XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1yYXRlIj4nK1orIiUgIithYSsnPC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciI+XHRcdFx0PGlucHV0XHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXHRcdFx0XHRcdHZhbHVlPSInKwpsLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytsLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytsLnBheW1lbnRXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytsLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrTSsnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInK2wucmVzaWR1YWxXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbGludGVyZXN0PSInK2wudG90YWxJbnRlcmVzdFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLWx1eGVUYXhBbW91bnQ9IicrbC5sdXhlVGF4QW1vdW50KyciXHRcdFx0XHRcdGRhdGEtZWZmZWN0aXZlUmF0ZT0iJytUKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK2JhKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytsLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrbC5yZXNpZHVhbFZhbHVlV2l0aFRheGVzKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInKwplYSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IicrbC5nc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSInK2wuaHN0KyciICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iJytsLnBzdCsnIlx0XHRcdFx0Plx0XHRcdDxsYWJlbD4nK3crIjwvbGFiZWw+XHRcdDwvZGl2Plx0PC9kaXY+In1sPSc8ZGl2IGNsYXNzPSJmaW5hbmNpbmctb3B0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgJytSKyciPlx0PGRpdiBjbGFzcz0idGVybSI+JytIKyc8L2Rpdj5cdDxkaXYgY2xhc3M9ImRvd24tcGF5bWVudCI+JytFKyc8L2Rpdj5cdDxkaXYgY2xhc3M9InNlcGFyYXRvclBheSI+PC9kaXY+XHQ8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI+XHRcdDxkaXYgaWQ9IicrZmErJyIgY2xhc3M9IicrSSsnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrWCsnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nKwpMKyI8L3NwYW4+IitnKycgPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgbGVmdFRvb2x0aXAiICcrWCsnPjwvaT48L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJkZXRhaWxzVGF4Ij4nK1ArJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1yYXRlIj4nK1UrIiUgIitWKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIiPlx0XHRcdFx0PGlucHV0IFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0JytoKydcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50Ilx0XHRcdFx0XHR2YWx1ZT0iJytrLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJytrLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yZWFscGF5bWVudD0iJytrLnBheW1lbnQrJyJcdFx0XHRcdFx0ZGF0YS1yYXRldHlwZT0iJytrLnJhdGVfdHlwZSsnIlx0XHRcdFx0XHRkYXRhLWRpc3BsYXllZHBheW1lbnQ9IicrTisnIlx0XHRcdFx0XHRkYXRhLXJlc2lkdWFsPSInKwprLnJlc2lkdWFsKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytrLnRvdGFsSW50ZXJlc3QrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2subHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrUSsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytXKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytrLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9Iicray5yZXNpZHVhbFZhbHVlKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInK2hhKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IjAiXHRcdFx0XHQ+XHRcdFx0XHQ8bGFiZWw+JytBKyI8L2xhYmVsPlx0XHRcdDwvZGl2Plx0XHQ8L2Rpdj4iK0orIlx0PC9kaXY+PC9kaXY+IjtDPSc8ZGl2IGNsYXNzPSJmaW5hbmNpbmctb3B0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgJysKUisnIj5cdDxkaXYgY2xhc3M9InRlcm0iPicrSCsnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJkb3duLXBheW1lbnQiPicrRSsnPC9kaXY+XHQ8ZGl2IGNsYXNzPSJzZXBhcmF0b3JQYXkiPjwvZGl2Plx0PGRpdiBjbGFzcz0iY29udGVudC1jb250YWluZXIiPlx0XHQ8ZGl2IGlkPSInK3YrJyIgY2xhc3M9IicrSSsnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrWSsnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK0MrIjwvc3Bhbj4iK3ErJyA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCBsZWZ0VG9vbHRpcCIgJytZKyc+PC9pPjwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1yYXRlIj4nK1UrIiUgIitWKyc8L2Rpdj5cdFx0XHQ8ZGl2IGNsYXNzPSJyYWRpby1jb250YWluZXIiPlx0XHRcdFx0PGlucHV0IFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0JysKaCsnXHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJcdFx0XHRcdFx0dmFsdWU9Iicray50ZXJtKyciXHRcdFx0XHRcdGRhdGEtYmFzZXBheW1lbnQ9Iicray5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9Iicray5wYXltZW50V2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9Iicray5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK0YrJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytrLnJlc2lkdWFsKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytrLnRvdGFsSW50ZXJlc3QrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2subHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrUSsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytXKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytrLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrCmsucmVzaWR1YWxWYWx1ZVdpdGhUYXhlcysnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJyt0KyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iJytrLmdzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9Iicray5oc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtcHN0PSInK2sucHN0KyciXHRcdFx0XHQ+XHRcdFx0XHQ8bGFiZWw+JytBKyI8L2xhYmVsPlx0XHRcdDwvZGl2Plx0XHQ8L2Rpdj4iK0srIlx0PC9kaXY+PC9kaXY+IjswPT1rLnBheW1lbnRXaXRoVGF4ZXMmJihDPSIiKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuYXBwZW5kKGwpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5hcHBlbmQoQyk7QisrfX0pO3I9JCgnI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW2NoZWNrZWRdJykubGVuZ3RoPyQoJyNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVtjaGVja2VkXScpWzBdOgokKCcjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0nKS5sYXN0KClbMF07JChyKS5wcm9wKCJjaGVja2VkIiwiY2hlY2tlZCIpLnRyaWdnZXIoImNoYW5nZSIpO3I9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYVswXS50b3RhbC50b0ZpeGVkKDApKTskKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VUb3RhbCIpLnRleHQocik7ImxlYXNlIj09YVswXS50eXBlPyhyPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGFbMF0ua21fYWxsb3dhbmNlLnRvRml4ZWQoMCkpLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUtNIikudGV4dChyKSwkKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDYXNoIikucHJvcCgiaGlkZGVuIiwhMCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlTGVhc2UiKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlRmluYW5jZSIpLmhpZGUoKSk6KCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUxlYXNlIikuaGlkZSgpLAokKCIucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDYXNoIikucHJvcCgiaGlkZGVuIiwhMCksJCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlRmluYW5jZSIpLnNob3coKSk7JCgiLnBheW1lbnRDYWxjdWxhdG9yQ29tbW9uTm90aWNlIikuc2hvdygpOyQoIiNwYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVjayIpLmlzKCI6Y2hlY2tlZCIpPygkKCIucGF5bWVudENhbGN1bGF0b3JUYXhlSW5jbHVkZWQiKS5zaG93KCksJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZU5vdEluY2x1ZGVkIikuaGlkZSgpKTooJCgiLnBheW1lbnRDYWxjdWxhdG9yVGF4ZUluY2x1ZGVkIikuaGlkZSgpLCQoIi5wYXltZW50Q2FsY3VsYXRvclRheGVOb3RJbmNsdWRlZCIpLnNob3coKSk7MDxiPyhiPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGIudG9GaXhlZCgwKSksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlRmVlcyIpLnRleHQoYiksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRGZWVzIikuc2hvdygpKToKJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRGZWVzIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckN1c3RvbUZlZXMgI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlc0xpc3QiKS5lbXB0eSgpO2xldCB6PSQoIjx1bD4iKTtkLmN1c3RvbUZlZXMubGVuZ3RoJiYkLmVhY2goZC5jdXN0b21GZWVzLGZ1bmN0aW9uKHYsaCl7dj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8obmV3IFRleHREZWNvZGVyKS5kZWNvZGUoVWludDhBcnJheS5mcm9tKGF0b2IoaC5kZXNjRW4pLGs9PmsuY2hhckNvZGVBdCgwKSkpOihuZXcgVGV4dERlY29kZXIpLmRlY29kZShVaW50OEFycmF5LmZyb20oYXRvYihoLmRlc2NGciksaz0+ay5jaGFyQ29kZUF0KDApKSk7aD1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihoLmFtb3VudC50b0ZpeGVkKDApKTtoPUQyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKGgpO2g9JCgiPGxpPiIpLnRleHQodisiIDogIikuYXBwZW5kKGgpO3YudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiYWRtaW4iKSYmCjE9PT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYhMD09PXN0b3JlLmdldCgiZmllbGRzLlZXX0RSX1BQX0VOQUJMRUQiKSYmaC5hcHBlbmQoJCgiPGE+Iix7aHJlZjoiamF2YXNjcmlwdDp2b2lkKDApIiwiY2xhc3MiOiJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyBjYWxjRGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMiLCJkYXRhLWRpc2NsYWltZXItZGl2aWQiOiJjYWxjdWxhdG9yLWRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy00LWRpdiIsImRhdGEtZGlzY2xhaW1lci1pZCI6IjQifSkuYXBwZW5kKCQoIjxzdXA+IikudGV4dCgiNCIpKSk7ei5hcHBlbmQoaCl9KTtudWxsIT09YVswXS5sdXh1cnlUYXgmJnZvaWQgMCE9PWFbMF0ubHV4dXJ5VGF4JiYwPGFbMF0ubHV4dXJ5VGF4JiZ6LmFwcGVuZChnZXRMdXh1cnlUYXhMYWJlbChhWzBdKSk7ei5jaGlsZHJlbigpLmxlbmd0aD8oJCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyAjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzTGlzdCIpLmFwcGVuZCh6KSwKJCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyIpLnNob3coKSk6JCgiI3BheW1lbnRDYWxjdWxhdG9yQ3VzdG9tRmVlcyIpLmhpZGUoKTtiPSJsZWFzZSI9PWFbMF0udHlwZT8oJCgiI3BheW1lbnRDYWxjdWxhdG9yTGVhc2VUZXh0IikudmFsKCl8fCIiKS50b0xvd2VyQ2FzZSgpOigkKCIjcGF5bWVudENhbGN1bGF0b3JGaW5hbmNlVGV4dCIpLnZhbCgpfHwiIikudG9Mb3dlckNhc2UoKTskKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VUeXBlIikudGV4dChiKTswPGFbMF0ucmViYXRlPyhhPSQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIkIithWzBdLnJlYmF0ZTphWzBdLnJlYmF0ZSsiICQiLCQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZVJlYmF0ZSIpLnRleHQoYSksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRSZWJhdGVzIikuc2hvdygpKTokKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZFJlYmF0ZXMiKS5oaWRlKCk7aWYoZC5jb25kaXRpb25hbFJlYmF0ZXMmJgowPGQuY29uZGl0aW9uYWxSZWJhdGVzLmxlbmd0aCl7dmFyIEQ9IiI7ZC5jb25kaXRpb25hbFJlYmF0ZXMuZm9yRWFjaChmdW5jdGlvbih2KXt2YXIgaD1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcih2LmFtb3VudC50b1N0cmluZygpKTtEKz0iPGxpPiIrdi5uYW1lKyI6IC0iK0QyQ1V0aWxzLkZvcm1hdC50b1ByaWNlKGgpKyI8L2xpPiJ9KTtEJiYkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VJbmNsdWRlZFJlYmF0ZXMiKS5hZnRlcignPGRpdiBpZD0icGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb25kaXRpb25hbFJlYmF0ZXMiIGNsYXNzPSJwYXltZW50Q2FsY3VsYXRvck5vdGljZVNlY3Rpb24iPjxzdHJvbmc+JysoJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IlNlbGVjdGVkIENvbmRpdGlvbmFsIFJlYmF0ZXM6IjoiUmFiYWlzIGNvbmRpdGlvbm5lbHMgc8OpbGVjdGlvbm7DqToiKSsiPC9zdHJvbmc+PHVsPiIrRCsiPC91bD48L2Rpdj4iKX1lbHNlICQoIiNwYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbmRpdGlvbmFsUmViYXRlcyIpLnJlbW92ZSgpOwpzZXRQYXltZW50Q2FsY3VsYXRvclBvcHVwVG9vbHRpcCgpfQpmdW5jdGlvbiBzZXRQYXltZW50Q2FsY3VsYXRvclBvcHVwVG9vbHRpcCgpe2lmKCIxIj09JCgiI2lzbW9iaWxlIikudmFsKCkpJCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIC5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oYil7dHJ5e3ZhciBlPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIiksZD0kKHRoaXMpLmhhc0NsYXNzKCJsZWZ0VG9vbHRpcCIpPyJ3ZXN0IjoiZWFzdCI7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDplLGdyYXZpdHk6ZCx0aGVtZToibGlnaHQiLHRyaWdnZXI6ImNsaWNrIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChjKXt9fSk7ZWxzZXtmb3IodmFyIGE9MDs1PmE7YSsrKSQoIiNkYXJrdG9vbHRpcC1wYXltZW50IithKS5sZW5ndGgmJigkKCIjZGFya3Rvb2x0aXAtcGF5bWVudCIrYSkucmVtb3ZlKCksCiQoIiNkYXJrdG9vbHRpcC1wYXltZW50IithKyJ3aXRoVGF4ZXMiKS5yZW1vdmUoKSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIikuZWFjaChmdW5jdGlvbigpe3RyeXt2YXIgYj0kKHRoaXMpLmF0dHIoImRhdGEtdG9vbHRpcCIpLGU9JCh0aGlzKS5maW5kKCIucGF5bWVudFRvb2x0aXAiKSxkPSJlYXN0IjtlLmhhc0NsYXNzKCJsZWZ0VG9vbHRpcCIpP2Q9Indlc3QiOmUuaGFzQ2xhc3MoInJpZ2h0VG9vbHRpcCIpJiYoZD0iZWFzdCIpOyQodGhpcykuZGFya1Rvb2x0aXAoe2NvbnRlbnQ6YixncmF2aXR5OmQsdGhlbWU6ImxpZ2h0Iix0cmlnZ2VyOiJob3ZlciJ9KX1jYXRjaChjKXt9fSl9fQpmdW5jdGlvbiBzZXRQYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvKGEpe3ZhciBiPWdldFBvcENvbnRhaW5TZXR0aW5ncygpO2IudmVoaWNsZUluZm89YTskKCIjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mb1llYXIiKS50ZXh0KGEueWVhcik7dmFyIGU9YS5DRk1vZGVsTmFtZXx8YS5tb2RlbCxkPWEubWFrZS50b1VwcGVyQ2FzZSgpKyIgIitlLnRvVXBwZXJDYXNlKCk7Ik1FUkNFREVTLUJFTloiIT1hLm1ha2UudG9VcHBlckNhc2UoKXx8L1xic3ByaW50ZXJcYi9pLnRlc3QoZSl8fChkPWEubWFrZS50b1VwcGVyQ2FzZSgpKTtpZigiYnVpbGRhbmRwcmljZS5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpfHxiLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmKCEwPT09Yi5ub1RyaW1TZWxlY3R8fCJ0cnVlIj09PWIubm9UcmltU2VsZWN0KXx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCJjYXJkZXRhaWwuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKSlkKz0KIiAiK2EuQ0ZTdHlsZU5hbWUudG9VcHBlckNhc2UoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvTWFrZU1vZGVsVHJpbSIpLnRleHQoZCk7ZT1hLm1ha2UrInx8fCIrZSsifHx8IithLnllYXI7Yi5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKSYmKGUrPSJ8fHwoU3RvY2s6IitiLnN0b2NrTnVtYmVyKyIpIik7Q29va2llcy5zZXQoImxhc3R2aWV3ZWR2ZWhpY2xlIixlLG51bGwsIi8iKTthLmltYWdlc1swXSYmKGU9KGEuaW1hZ2VzWzBdKyIiKS5yZXBsYWNlKC9odHRwKHM\/KTpcL1wvbWVkaWEuKGNocm9tZWRhdGF8Y2FyYm9vaykuY29tXC9NZWRpYUdhbGxlcnlcL21lZGlhXC8vLCIvL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJzL2NiJUNCLyVNQUtFLyVNT0RFTC8lWUVBUi8iKS5yZXBsYWNlKCIlQ0IiLE1hdGgucm91bmQoOTkqTWF0aC5yYW5kb20oKSkrMUU1KS5yZXBsYWNlKCIlTUFLRSIsCmEubWFrZS5yZXBsYWNlKCItIiwiXyIpKS5yZXBsYWNlKCIlTU9ERUwiLGEubW9kZWwucmVwbGFjZSgiLSIsIl8iKSkucmVwbGFjZSgiJVlFQVIiLGEueWVhciksJCgiI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUltYWdlRGl2IikuaHRtbCgnPGltZyBpZD0icGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW1hZ2UiIHNyYz0iJytlLnJlcGxhY2UoLyYvZywiJmFtcDsiKS5yZXBsYWNlKC88L2csIiZsdDsiKS5yZXBsYWNlKC8+L2csIiZndDsiKS5yZXBsYWNlKC8iL2csIiZxdW90OyIpLnJlcGxhY2UoLycvZywiJiMwMzk7IikrJyIgY2xhc3M9InBheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUltYWdlIj4nKSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCBvcHRpb24iKS5yZW1vdmUoKTsoInVuZGVmaW5lZCIhPXR5cGVvZiBuZXdjYXJEZXRhaWxzP25ld2NhckRldGFpbHMuYWxsU3R5bGVzOmEubW9kZWxKU09OLnN0eWxlcykuZm9yRWFjaChmdW5jdGlvbihjKXskKCIjcGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IikuYXBwZW5kKG5ldyBPcHRpb24oYy5DRlN0eWxlTmFtZSwKYy5pZCkpfSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdCIpLnZhbChiLnN0eWxlaWQpO2NhbGNVcGRhdGVQYXltZW50SW5mbygpfQpmdW5jdGlvbiBjYWxjVXBkYXRlU3R5bGVJbmZvKGEpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgbmV3Y2FyRGV0YWlscyYmbmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbCl7dmFyIGI9bmV3Y2FyRGV0YWlscy5hbGxTdHlsZXMuZmlsdGVyKGZ1bmN0aW9uKGQpe3JldHVybiBkLmlkPT1hfSlbMF07Yj1ifHxuZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLnN0eWxlc1swXTtiLm1ha2U9bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5tYWtlO2IubW9kZWw9bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5tb2RlbDtiLmltYWdlcz1uZXdjYXJEZXRhaWxzLmFjdGl2ZU1vZGVsLmltYWdlcztzZXRQYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvKGIpfWVsc2V7Yj1zZXR0aW5ncy5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKT9zZXR0aW5ncy5zdG9ja051bWJlcjoiIjt2YXIgZT0oJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRWZWhpY2xlSnNvbkJ5U3R5bGVJRD93c3dpZHRoPTAiOwokLmFqYXgoe3VybDplLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJKU09OIixkYXRhOntzdHlsZWlkOmEsdmVoaWNsZWlkOmJ9LHN1Y2Nlc3M6ZnVuY3Rpb24oZCl7c2V0UGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyhkKX19KX19CmZ1bmN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUG9wdXBJbml0KCl7dmFyIGE9Z2V0UG9wQ29udGFpblNldHRpbmdzKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKCIjcGF5bWVudENhbGN1bGF0b3JJc05ld1BvcHVwRW5hYmxlZCIpLnZhbCgpOyIiIT1hLnByb21vQnV0dG9uVGV4dCYmIjEiIT09Q29va2llcy5nZXQoInBvcHVwRm9ybUZpbGxlZCIpJiYkKCIjcGF5bWVudENhbGN1bGF0b3JJc05ld1BvcHVwRW5hYmxlZCIpLnZhbCgpPygtMSE9PWEucHJvbW9CdXR0b25UZXh0LmluZGV4T2YoIjxiciIpJiYoYS5wcm9tb0J1dHRvblRleHQ9YS5wcm9tb0J1dHRvblRleHQuc3Vic3RyKDAsYS5wcm9tb0J1dHRvblRleHQuaW5kZXhPZigiPGJyIikpKSwkKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIgYSIpLmh0bWwoYS5wcm9tb0J1dHRvblRleHQpLCQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLnNob3coKSk6CiQoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpLmhpZGUoKTtsZXQgYj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9ImxlYXNpbmciXScpLGU9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSJmaW5hbmNpbmciXScpLGQ9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSJjYXNoIl0nKTtiLmhpZGRlbj0iMSI9PShhLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzfHwhMSk7ZS5oaWRkZW49IjEiPT0oYS5ub01vdG9pbnNpZ2h0RmluYW5jZVBheW1lbnRzfHwhMSk7ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5jYWxjLXBheW1lbnQtY2FzaCIpLmhpZGRlbj0hMDtzZXRUaW1lb3V0KCgpPT57aWYoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9zdWJtaXRfZGF0YSIpJiYKIiI9PSQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCkpe3ZhciBjPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9zdWJtaXRfZGF0YSIpKTskKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbChjLnZhbHVlKTtfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX2N1cnJlbnRfdmFsdWUiKSYmKGM9SlNPTi5wYXJzZShfbG9jYWxTdG9yYWdlR2V0KCJ0cmFkZWluX2N1cnJlbnRfdmFsdWUiKSksJCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS5hdHRyKCJkYXRhLWN1cnJlbnQiLGMudmFsdWUpKX1pZigiIiE9JCgiI3BheW1lbnRUcmFkZUluVmFsdWUiKS52YWwoKSYmMDwkKCIjcGF5bWVudFRyYWRlSW5WYWx1ZSIpLnZhbCgpKXtjPXBhcnNlSW50KCQoIiNwYXltZW50VHJhZGVJblZhbHVlIikudmFsKCkpfHwwO3ZhciBmPXBhcnNlSW50KCQoIiNwYXltZW50VHJhZGVJblZhbHVlIikuYXR0cigiZGF0YS1jdXJyZW50IikpfHxjOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbChmKTsKJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikuYXR0cigibWF4IixjKTskKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluQnV0dG9uIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnNob3coKX1lbHNlICQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgiIiksJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkJ1dHRvbiIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluVmFsdWUiKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJblZhbHVlIikudHJpZ2dlcigiYmx1ciIpO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQ3RhVHJhY2smJkN0YVRyYWNrLmdldFRyYWNrU3RlcCgiUGF5bWVudENhbGN1bGF0b3JBY3Rpb25Cb3giKSl7bGV0IHU9bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLHtkZXRhaWw6e3N0ZXBJZDoiUGF5bWVudENhbGN1bGF0b3JBY3Rpb25Cb3giLGZvcmNlVXBkYXRlOiEwLApvbkNvbXBsZXRlOm49PntuLmRhdGFzZXQuY29tcGxfdHh0X2ZyPW4uZGF0YXNldC5pbml0X2NvbXBsX3R4dF9mci5yZXBsYWNlKCJ7JFBBWU1FTlRSQVRFfSIsY3RhUGF5bWVudFRleHRGclswXSkucmVwbGFjZSgieyRQQVlNRU5UWVBFfSIsY3RhUGF5bWVudFRleHRGclsxXSk7bi5kYXRhc2V0LmNvbXBsX3R4dF9lbj1uLmRhdGFzZXQuaW5pdF9jb21wbF90eHRfZW4ucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLGN0YVBheW1lbnRUZXh0RW5bMF0pLnJlcGxhY2UoInskUEFZTUVOVFlQRX0iLGN0YVBheW1lbnRUZXh0RW5bMV0pO249e3BheW1lbnQ6e319O19sb2NhbFN0b3JhZ2VHZXQoInJldGFpbF90cmFja19kYXRhIikmJihuPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSkpO2xldCBwPSJGUkVOQ0giPT09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpP2N0YVBheW1lbnRUZXh0RnI6Y3RhUGF5bWVudFRleHRFbjtuLnBheW1lbnQ9e2xpc3RQcmljZTpwWzJdfHwKIiIscGF5bWVudDpwWzBdfHwiIixyYXRlOnBbMV18fCIiLHBheW1lbnRWYWx1ZTpjdGFQYXltZW50VmFsdWVzfHxbXX07X2xvY2FsU3RvcmFnZVNldCgicmV0YWlsX3RyYWNrX2RhdGEiLEpTT04uc3RyaW5naWZ5KG4pLDMwKTtDb29raWVzLnNldCgiY3RhX2RhdGFfdmFsaWQiLDEsMSwiLyIpfX19KTtjPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciBhIik7Zj1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db25maXJtIik7bnVsbCE9ZiYmKGYuaGlkZGVuJiYoZi5oaWRkZW49ITEpLG51bGwhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lciIpJiYoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuY2xhc3NMaXN0LnJlbW92ZSgiZmxleC1jZW50ZXIiKSwKZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuY2xhc3NMaXN0LmFkZCgiZmxleC1lbmQiLCItbXI1IikpLGM9Zi5xdWVyeVNlbGVjdG9yKCJhIikpO2MuaW5uZXJUZXh0PSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJDb25maXJtIjoiQ29uZmlybWVyIjtjLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIixuPT57bi5wcmV2ZW50RGVmYXVsdCgpO249ImNhc2giPT09JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgLmFjdGl2ZVBheW1lbnRUeXBlIikuYXR0cigiZGF0YS10eXBlIik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmlzKCI6aGlkZGVuIikmJiFufHxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KHUpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIikucG9wdXBpemUoKS5jbG9zZSgpfSk7Zj1uPT57bj0iY2FzaCI9PT0kKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSAuYWN0aXZlUGF5bWVudFR5cGUiKS5hdHRyKCJkYXRhLXR5cGUiKTsKJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciIpLmlzKCI6aGlkZGVuIikmJiFufHxkb2N1bWVudC5kaXNwYXRjaEV2ZW50KHUpfTtsZXQgbT1hLnBheW1lbnRUeXBlO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYoYz1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpLG09InVuZGVmaW5lZCIhPWNbMF0\/Y1swXTptLG09ImxlYXNpbmciPT09bT8ibGVhc2UiOiJmaW5hbmNpbmciPT09bT8iZmluYW5jZSI6bSk7ImxlYXNlIj09bSYmYj9iLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGljayIse2RldGFpbDp7aXNGaXJzdFJ1bjohMH19KSk6ImZpbmFuY2UiPT1tJiZlP2UuZGlzcGF0Y2hFdmVudChuZXcgQ3VzdG9tRXZlbnQoImNsaWNrIix7ZGV0YWlsOntpc0ZpcnN0UnVuOiEwfX0pKTpkLmRpc3BhdGNoRXZlbnQobmV3IEN1c3RvbUV2ZW50KCJjbGljayIsCntkZXRhaWw6e2lzRmlyc3RSdW46ITB9fSkpOyQoIi5yZXZlYWwtbW9kYWwiKS5vZmYoInBvcHVwaXplci5jbG9zZSIsZikub24oInBvcHVwaXplci5jbG9zZSIsZik7JCgiI3BheW1lbnRDYWxjdWxhdG9yQ2FsbFRvQWN0aW9uQ29udGFpbmVyIikuc2hvdygpfX0sMTAwKTtjYWxjVXBkYXRlU3R5bGVJbmZvKGEuc3R5bGVpZCl9CmZ1bmN0aW9uIGNhbGNVcGRhdGVQYXltZW50SW5mbygpe3ZhciBhPWdldFBvcENvbnRhaW5TZXR0aW5ncygpLGI9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudERhdGFGb3JTdHlsZUlEP3dzd2lkdGg9MCIsZT1hLnBheW1lbnRUeXBlLGQ9MCxjPXBhcnNlSW50KCQoIi5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZSIpLnZhbCgpfHwwKSxmPW51bGwsdT1udWxsLG09Z2V0T3B0aW9uc0Ftb3VudChhKSxuPWdldEFjY2Vzc29yaWVzQW1vdW50KGEpLHA9Z2V0U2VsZWN0ZWRBY2Nlc3NvcmllcyhhKSx4PWdldFByb3RlY3Rpb25QbGFuc0Ftb3VudChhKSx5PWEuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYoITA9PT1hLm5vVHJpbVNlbGVjdHx8InRydWUiPT09YS5ub1RyaW1TZWxlY3QpfHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8ImNhcmRldGFpbC5odG1sIj09CiQoIiNQQUdFSUQiKS52YWwoKSxyPSExLHQ9YS5oYXNPd25Qcm9wZXJ0eSgic3RvY2tOdW1iZXIiKT9hLnN0b2NrTnVtYmVyOiIiLEE9YS5oYXNPd25Qcm9wZXJ0eSgidmluIik\/YS52aW46IiI7aWYoeSYmIXQpe3ZhciB3PWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJwaG9uZXN0b2NrbnVtYmVyIik7dyYmKHQ9dy52YWx1ZXx8IiIpfXkmJiFBJiYodz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGhvbmV2aW4iKSkmJihBPXcudmFsdWV8fCIiKTt5JiYhYS5zdHlsZWlkJiYodz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYWN0aXZlU3R5bGVJRCIpKSYmKGEuc3R5bGVpZD13LnZhbHVlfHxhLnN0eWxlaWQpO0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYodT1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpLGU9InVuZGVmaW5lZCIhPXVbMF0\/dVswXTplLHI9dVsxXSxkPXBhcnNlSW50KHVbNF0pLQpjLGQ9MD5kPzA6ZCxmPXVbMl0sdT11WzNdKTthLm5vTW90b2luc2lnaHRMZWFzZVBheW1lbnRzJiYibGVhc2UiPT1lJiYoZT0iZmluYW5jZSIscj0hMSxkPTAsdT1mPW51bGwpO2Eubm9Nb3RvaW5zaWdodEZpbmFuY2VQYXltZW50cyYmWyJmaW5hbmNlIiwiZmluYW5jaW5nIl0uaW5jbHVkZXMoZSkmJihlPSJsZWFzZSIscj0hMSxkPTAsdT1mPW51bGwpO2xldCBCPVtdO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5jb25kaXRpb25hbC1yZWJhdGUtY2hlY2tib3giKS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2cuY2hlY2tlZCYmKGc9Zy5nZXRBdHRyaWJ1dGUoImRhdGEtY29uZGl0aW9uYWwtcmViYXRlLWlkIikpJiZCLnB1c2goZyl9KTtjYWxjVXBkYXRlUGF5bWVudFhocj0kLmFqYXgoe3VybDpiLHR5cGU6IlBPU1QiLGRhdGFUeXBlOiJKU09OIixkYXRhOntzdHlsZWlkOmEuc3R5bGVpZCxwYXltZW50VHlwZTplLGRvd25wYXltZW50OmMrZCxvcHRpb25zQW1vdW50Om0scGF5bWVudEZyZXF1ZW5jeTpmLAprbUFsbG93YW5jZTp1LGlzSW52ZW50b3J5Onksb3B0aW9uczptLHNuOnQsdmluOkEsY29uZGl0aW9uYWxSZWJhdGVJZHM6Qi5qb2luKCIsIiksYWNjZXNzb3JpZXM6bixzZWxlY3RlZEFjY2Vzc29yaWVzOnAscHJvdGVjdGlvblBsYW5zOnh9LHN1Y2Nlc3M6ZnVuY3Rpb24oZyl7Zy5zZWxlY3RlZFRlcm09cjskKCIjbWF4RG93blBheW1lbnRGb3JUcmltIikudmFsKGcubWF4RG93bik7JCgiI21heERvd25QYXltZW50RmluYW5jZUZvclRyaW0iKS52YWwoZy5tYXhEb3duRmluYW5jZSk7JCgiI3BheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2Ugb3B0aW9uIikucmVtb3ZlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS52YWwoZCk7ZT0ibGVhc2UiPT09ZT8ibGVhc2luZyI6ImZpbmFuY2UiPT09ZT8iZmluYW5jaW5nIjplOyJjYXNoIj09PWUmJigkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCkpOwpnLmN1cnJlbnRQYXltZW50JiYwIT09Zy5jdXJyZW50UGF5bWVudC5sZW5ndGh8fCJjYXNoIj09PWU\/KCQoIiNwYXltZW50Q2FsY3VsYXRvckVycm9yTWVzc2FnZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudEVycm9yTWVzc2FnZUZpbmFuY2UiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VMZWFzZSIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIiKS5zaG93KCksJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMSksZy5jdXJyZW50UGF5bWVudCYmMDxnLmN1cnJlbnRQYXltZW50Lmxlbmd0aCYmKCQoIiNwYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKGcuY3VycmVudFBheW1lbnRbMF0uaW50ZXJ2YWwpLGU9ZXx8KCJsZWFzZSI9PT0KZy5jdXJyZW50UGF5bWVudFswXS50eXBlPyJsZWFzaW5nIjoiZmluYW5jaW5nIikpKTooJCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuaGlkZSgpLCQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5oaWRlKCksJCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcyIpLmhpZGUoKSwkKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIiKS5wcm9wKCJoaWRkZW4iLCEwKSwkKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5zaG93KCkpO3Nob3dIaWRlUGF5bWVudFNlY3Rpb24oZyxlKTtwb3B1bGF0ZUxlYXNlS01BbGxvd2FuY2VEcm9wZG93bihnKTsibGVhc2luZyI9PWU\/JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5zaG93KCk6JCgiLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5oaWRlKCk7Z2V0Q2FzaFByaWNlQmxvY2soZyk7CiJjYXNoIj09PWU\/ZW5hYmxlQ2FzaE9wdGlvbigpOmcuY3VycmVudFBheW1lbnQmJmcuY3VycmVudFBheW1lbnQubGVuZ3RoJiYoY2FsY0N1clBheW1lbnQ9ZyxzaG93UGF5bWVudHMoZy5jdXJyZW50UGF5bWVudCxnLnBheW1lbnRGZWVzLGcubWFrZWlkLGcpKX0sZXJyb3I6ZnVuY3Rpb24oZyxxLHopeyJhYm9ydCIhPT1xJiZjb25zb2xlLmVycm9yKCJjYWxjVXBkYXRlUGF5bWVudEluZm86OiBQYXltZW50IGNhbGN1bGF0aW9uIGVycm9yOiIscSx6KX19KX0KZnVuY3Rpb24gZW5hYmxlQ2FzaE9wdGlvbigpeyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSdjYXNoJ10iKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKCIucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlTGVhc2UiKS5oaWRlKCk7JCgiLnBheW1lbnRDYWxjdWxhdG9yTm90aWNlRmluYW5jZSIpLmhpZGUoKTskKCIjcGF5bWVudENhbGN1bGF0b3JDdXN0b21GZWVzIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvckNvbW1vbk5vdGljZSIpLmhpZGUoKTsKJCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlSW5jbHVkZWRGZWVzIikuaGlkZSgpOyQoIi5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNhc2giKS5wcm9wKCJoaWRkZW4iLCExKTskKCIjcGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnRFcnJvck1lc3NhZ2VGaW5hbmNlIikuaGlkZSgpOyQoIiNwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50RXJyb3JNZXNzYWdlTGVhc2UiKS5oaWRlKCk7JCgiI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIikuc2hvdygpO2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY2FsYy1wYXltZW50LWNhc2giKS5oaWRkZW49ITE7JCgiI3BheW1lbnRDYWxjdWxhdG9yTm90aWNlQ29udGFpbmVyIikucHJvcCgiaGlkZGVuIiwhMSk7CjE9PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmKCQoIiNkckNhbGN1bGF0b3JWaWV3RGlzY2xhaW1lckxpbmsiKS5oaWRlKCksY2hhbmdlUGFnZUNhc2hWYWx1ZSgpKX0KZnVuY3Rpb24gY2hhbmdlUGFnZUNhc2hWYWx1ZSgpe2lmKG51bGwhPT1jYXNoUHJpY2VGb3JQYWdlKXt2YXIgYT0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iRU5HTElTSCI6IkZSRU5DSCIsYj1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihjYXNoUHJpY2VGb3JQYWdlLnRvU3RyaW5nKCkpLGU9c3RvcmUuZ2V0KCJpMThuIikuREVGQVVMVF9QQVlNRU5UX0NBU0gsZD0nPHNwYW4gY2xhc3M9InR4dC1wYXltZW50IGZvcm1hdC1wcmljZSI+JytiKyI8L3NwYW4+IixjPXN0b3JlLmdldCgiaTE4biIpLkxBQkVMX0JFRk9SRV9UQVhFUy50b0xvd2VyQ2FzZSgpOyQoIi5wYXltZW50V3JhcHBlciAucGF5bWVudExpbmUyLCAucGF5bWVudFdyYXBwZXJNb2JpbGVWRFAgLnBheW1lbnRMaW5lMSIpLmh0bWwoZSk7JCgiLnBheW1lbnRXcmFwcGVyIC5wYXltZW50TGluZTEsIC5wYXltZW50V3JhcHBlck1vYmlsZVZEUCAucGF5bWVudExpbmUyIikuaHRtbChkKTskKCIucGF5bWVudFdyYXBwZXIgLnBheW1lbnRMaW5lMywgLnBheW1lbnRXcmFwcGVyTW9iaWxlVkRQIC5wYXltZW50TGluZTMiKS5odG1sKGMpOwphPSJFTkdMSVNIIj09PWE\/IiQiK2I6YisiICQiO2N0YVBheW1lbnRUZXh0RnI9W2EsIkNvbXB0YW50IiwiIl07Y3RhUGF5bWVudFRleHRFbj1bYSwiQ2FzaCIsIiJdO2N0YVBheW1lbnRWYWx1ZXM9W2Nhc2hQcmljZUZvclBhZ2UsMCwwLCJjYXNoIl07JCgiLmJucF9wYXltZW50X2NvbnRhaW5lciIpLmxlbmd0aCYmKCQoIi5ibnBfcGF5bWVudF9jb250YWluZXIiKS5oaWRlKCksJCgiLnBheW1lbnRJbmZvQnViYmxlQm5QIikuaGlkZSgpKTskKCIjZGFya3Rvb2x0aXAtcGF5bWVudFdyYXBwZXIsICNkYXJrdG9vbHRpcC12ZHBQYXltZW50VG9vbHRpcCwgI2Rhcmt0b29sdGlwLXZkcEluZm9Ub29sdGlwLCAjZGFya3Rvb2x0aXAtdmRwVXNlZEluZm9Ub29sdGlwIikucmVtb3ZlKCk7JCgiLnZkcFBheW1lbnRUb29sdGlwLCAucGF5bWVudFdyYXBwZXIgLnZkcEluZm9Ub29sdGlwLCAucGF5bWVudFdyYXBwZXIgLnZkcFVzZWRJbmZvVG9vbHRpcCIpLmRhcmtUb29sdGlwKHtvcGFjaXR5OjB9KX19CmZ1bmN0aW9uIGdldENhc2hQcmljZUJsb2NrKGEpe3ZhciBiPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyIiksZT1nZXRQb3BDb250YWluU2V0dGluZ3MoKSxkPWUuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYoITA9PT1lLm5vVHJpbVNlbGVjdHx8InRydWUiPT09ZS5ub1RyaW1TZWxlY3QpfHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8ImNhcmRldGFpbC5odG1sIj09JCgiI1BBR0VJRCIpLnZhbCgpLGM9JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpfHwiRlJFTkNIIjtsZXQgZj1wYXJzZUludChhLm9yaWdpbmFsUHJpY2V8fGUudmVoaWNsZUluZm8mJmUudmVoaWNsZUluZm8ubXNycEFsbElufHwwKTt2YXIgdT1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihmLnRvU3RyaW5nKCkpO2xldCBtPWIucXVlcnlTZWxlY3RvcigiLmNhbGMtcGF5bWVudC1jYXNoIik7dmFyIG49IjEiPT0KYi5xdWVyeVNlbGVjdG9yKCIjZGlzcGxheUJyZWFrZG93biIpLnZhbHVlLHA9IjEiPT1iLnF1ZXJ5U2VsZWN0b3IoIiNoaWRlUmViYXRlcyIpLnZhbHVlLHg9IjEiPT1iLnF1ZXJ5U2VsZWN0b3IoIiNzY3JhdGNoT3JpZ2luYWxQcmljZSIpLnZhbHVlO2xldCB5PSJFTkdMSVNIIj09Yz8iU3RhcnRpbmcgYXQiOiLDgCBwYXJ0aXIgZGUiO2I9IkVOR0xJU0giPT1jPyJZb3VyIHByaWNlIjoiVm90cmUgcHJpeCI7ZCYmKHk9JCgiI05FV0lOVl9QUklDRV9MQUJFTF9PUklHSU5BTCIpLnZhbCgpLGI9JCgiI05FV0lOVl9QUklDRV9MQUJFTF9GSU5BTCIpLnZhbCgpLGUudmVoaWNsZUluZm8mJnkucmVwbGFjZSgieyRNQUtFfSIsZS52ZWhpY2xlSW5mby5tYWtlKS5yZXBsYWNlKCJ7JE1PREVMfSIsZS52ZWhpY2xlSW5mby5DRk1vZGVsTmFtZSkucmVwbGFjZSgieyRWRVJTSU9OfSIsZS52ZWhpY2xlSW5mby5DRlN0eWxlTmFtZSkucmVwbGFjZSgieyRZRUFSfSIsZS52ZWhpY2xlSW5mby55ZWFyKSk7CmxldCByPSJFTkdMSVNIIj09Yz8iZGVzY0VuIjoiZGVzY0ZyIjskKCIjcGF5bWVudENhbGN1bGF0b3JOb3RpY2VUb3RhbCIpLmh0bWwoZik7ZD14JiZhLnByaWNlQW1lbmRlbWVudHMmJjA+YS5wcmljZUFtZW5kZW1lbnRzLnRvdGFsPyJzdHJpa2UtcHJpY2UiOiIiO2M9YAoJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHtuJiYhcD9iOnl9PC9zcGFuPgoJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUgJHsiZm9ybWF0LXByaWNlIn0gJHtkfSI+JHt1fTwvc3Bhbj4KCQk8L2Rpdj5gO2lmKDA9PShhLnByaWNlQW1lbmRlbWVudHN8fFtdKS5sZW5ndGgpbS5pbm5lckhUTUw9YztlbHNle3g9KGEucHJpY2VBbWVuZGVtZW50cy5mZWVzTGlzdHx8W10pLnJlZHVjZSgoQixnKT0+e2lmKDA9PWcuYW1vdW50KXJldHVybiBCO2xldCBxPSIiOyhuZXcgVGV4dERlY29kZXIpLmRlY29kZShVaW50OEFycmF5LmZyb20oYXRvYihnLmRlc2NFbiksRD0+RC5jaGFyQ29kZUF0KDApKSkudG9Mb3dlckNhc2UoKS5pbmNsdWRlcygiYWRtaW4iKSYmITA9PT1zdG9yZS5nZXQoImZpZWxkcy5WV19EUl9QUF9FTkFCTEVEIikmJihxPSc8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyBjYWxjRGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgIiBkYXRhLWRpc2NsYWltZXItZGl2aWQ9ImNhbGN1bGF0b3ItZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTQtZGl2IiAgZGF0YS1kaXNjbGFpbWVyLWlkPSI0Ij48c3VwPjQ8L3N1cD48L2E+Jyk7CmxldCB6PXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKGcuYW1vdW50LnRvU3RyaW5nKCkpO3JldHVybiBCKz1gCgkJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7KG5ldyBUZXh0RGVjb2RlcikuZGVjb2RlKFVpbnQ4QXJyYXkuZnJvbShhdG9iKGdbcl0pLEQ9PkQuY2hhckNvZGVBdCgwKSkpfTwvc3Bhbj4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSI+PHNwYW4gY2xhc3M9IiR7ImZvcm1hdC1wcmljZSJ9Ij4ke3p9PC9zcGFuPiR7cX08L3NwYW4+CgkJCTwvZGl2PgoJCWB9LCIiKTt2YXIgdD0oYS5wcmljZUFtZW5kZW1lbnRzLmluY2VudGl2ZXNMaXN0fHxbXSkucmVkdWNlKChCLGcpPT57aWYoMD09Zy5hbW91bnQpcmV0dXJuIEI7bGV0IHE9cGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoZy5hbW91bnQudG9TdHJpbmcoKSk7cmV0dXJuIEIrPWAKCQkJPGRpdiBjbGFzcz0icHJpY2VSb3ciPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlTmFtZSI+JHsobmV3IFRleHREZWNvZGVyKS5kZWNvZGUoVWludDhBcnJheS5mcm9tKGF0b2IoZ1tyXSksej0+ei5jaGFyQ29kZUF0KDApKSl9PC9zcGFuPgoJCQkJPHNwYW4gY2xhc3M9InByaWNlLXZhbHVlICR7ImZvcm1hdC1wcmljZSJ9Ij4tJHtxfTwvc3Bhbj4KCQkJPC9kaXY+CgkJYH0sIiIpO3U9KGEucHJpY2VBbWVuZGVtZW50cy5wb3N0VGF4SW5jZW50aXZlc0xpc3R8fFtdKS5yZWR1Y2UoKEIsZyk9PntpZigwPT1nLmFtb3VudClyZXR1cm4gQjtsZXQgcT1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihnLmFtb3VudC50b1N0cmluZygpKTtyZXR1cm4gQis9YAoJCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2VOYW1lIj4keyhuZXcgVGV4dERlY29kZXIpLmRlY29kZShVaW50OEFycmF5LmZyb20oYXRvYihnW3JdKSx6PT56LmNoYXJDb2RlQXQoMCkpKX08L3NwYW4+CgkJCQk8c3BhbiBjbGFzcz0icHJpY2UtdmFsdWUgJHsiZm9ybWF0LXByaWNlIn0iPi0ke3F9PC9zcGFuPgoJCQk8L2Rpdj4KCQlgfSwiIik7dmFyIEE9Zi0oYS5wcmljZUFtZW5kZW1lbnRzLnRvdGFsRmVlfHwwKSsoYS5wcmljZUFtZW5kZW1lbnRzLnRvdGFsUmViYXRlfHwwKSx3PTA8KGEucHJpY2VBbWVuZGVtZW50cy5jb25kaXRpb25hbFJlYmF0ZXNUb3RhbHx8MCk7ZT13JiZhLnByaWNlQW1lbmRlbWVudHMuZmluYWxQcmljZT9hLnByaWNlQW1lbmRlbWVudHMuZmluYWxQcmljZTpmO1siTkVXQ0FSUyIsIk5FV0NBUkRFVEFJTFMiXS5pbmNsdWRlcyhzaXRlUGFnZS5uYW1lKXx8KEE9Zi0oYS5wcmljZUFtZW5kZW1lbnRzLnRvdGFsRmVlfHwwKSsoYS5wcmljZUFtZW5kZW1lbnRzLnRvdGFsUmViYXRlfHwwKSxlPXcmJmEucHJpY2VBbWVuZGVtZW50cy5maW5hbFByaWNlP2EucHJpY2VBbWVuZGVtZW50cy5maW5hbFByaWNlOmYpO2Nhc2hQcmljZUZvclBhZ2U9ZTtBPXBheW1lbnRDYWxjdWxhdG9yRm9ybWF0TnVtYmVyKEEudG9TdHJpbmcoKSk7ZT1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihlLnRvU3RyaW5nKCkpOwphPXgubGVuZ3RofHx0Lmxlbmd0aDtuPW4mJiFwJiZhP2AKCQk8ZGl2IGNsYXNzPSJwcmljZVJvdyI+CgkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7eX08L3NwYW4+CgkJCTxzcGFuIGNsYXNzPSJwcmljZS12YWx1ZSAkeyJmb3JtYXQtcHJpY2UifSAke2R9Ij4ke0F9PC9zcGFuPgoJCTwvZGl2PmAreCt0OiIiO2EmJihwPSIiIT1uPyJwcmljZUZpbmFsIjoiIixhPSIiLDE9PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmITA9PT1zdG9yZS5nZXQoImZpZWxkcy5WV19EUl9QUF9FTkFCTEVEIikmJihhPSc8YSBocmVmPSJqYXZhc2NyaXB0OnZvaWQoMCkiIGNsYXNzPSJkaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyBjYWxjRGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgIiAgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSJjYWxjdWxhdG9yLWRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy0xLWRpdiIgZGF0YS1kaXNjbGFpbWVyLWlkPSIxIj48c3VwPjE8L3N1cD48L2E+JyksYz1gCgkJCTxkaXYgY2xhc3M9InByaWNlUm93Ij4KCQkJCTxzcGFuIGNsYXNzPSJwcmljZU5hbWUiPiR7Yn08L3NwYW4+CgkJCQk8c3BhbiBjbGFzcz0iJHtwfSI+PHNwYW4gY2xhc3M9IiR7ImZvcm1hdC1wcmljZSJ9Ij4ke2V9PC9zcGFuPiR7YX08L3NwYW4+CgkJCTwvZGl2PmApO20uaW5uZXJIVE1MPW4rYyt1fX0KZnVuY3Rpb24gZ2V0T3B0aW9uc0Ftb3VudChhKXt2YXIgYj1hLnBheW1lbnRPcHRpb25zP2EucGF5bWVudE9wdGlvbnM6MDthLmhhc093blByb3BlcnR5KCJub1RyaW1TZWxlY3QiKSYmKCEwPT09YS5ub1RyaW1TZWxlY3R8fCJ0cnVlIj09PWEubm9UcmltU2VsZWN0KXx8InVzZWRjYXJzLmh0bWwiPT0kKCIjUEFHRUlEIikudmFsKCl8fCQoIiNQQUdFSUQiKS52YWwoKTthPWEuY29uc2lkZXJJbnZlbnRvcnk\/YS5jb25zaWRlckludmVudG9yeToiMCI7dmFyIGU9InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmImZ1bmN0aW9uIj09PXR5cGVvZiBtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlO2lmKGV8fGEmJmUpYj1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRPcHRpb25zVG90YWwsYT1wYXJzZUludChtb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuZGVmYXVsdE9wdGlvbkFtb3VudCksMDxhJiYoYi09YSxiPU1hdGgubWF4KDAsYikpO3JldHVybiBifHwKMH1mdW5jdGlvbiBnZXRBY2Nlc3Nvcmllc0Ftb3VudChhKXt2YXIgYj0wO2EuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYoITA9PT1hLm5vVHJpbVNlbGVjdHx8InRydWUiPT09YS5ub1RyaW1TZWxlY3QpfHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8JCgiI1BBR0VJRCIpLnZhbCgpO2E9YS5jb25zaWRlckludmVudG9yeT9hLmNvbnNpZGVySW52ZW50b3J5OiIwIjt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiYiZnVuY3Rpb24iPT09dHlwZW9mIG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGU7KGV8fGEmJmUpJiZ2b2lkIDAhPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZEFjY1RvdGFsJiYoYj1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRBY2NUb3RhbCk7cmV0dXJuIGJ8fDB9CmZ1bmN0aW9uIGdldFNlbGVjdGVkQWNjZXNzb3JpZXMoYSl7dmFyIGI9IiI7YT1hLmNvbnNpZGVySW52ZW50b3J5P2EuY29uc2lkZXJJbnZlbnRvcnk6IjAiO3ZhciBlPSJ1bmRlZmluZWQiIT10eXBlb2YgbW9kZWxDb25maWcmJiJmdW5jdGlvbiI9PT10eXBlb2YgbW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZTsoZXx8YSYmZSkmJnZvaWQgMCE9bW9kZWxDb25maWcuZ2V0U2VsZWN0ZWRTdHlsZSgpLnNlbGVjdGVkQWNjSWRzJiYoYj1tb2RlbENvbmZpZy5nZXRTZWxlY3RlZFN0eWxlKCkuc2VsZWN0ZWRBY2NJZHMuam9pbigiLCIpKTtyZXR1cm4gYnx8IiJ9CmZ1bmN0aW9uIGdldFByb3RlY3Rpb25QbGFuc0Ftb3VudChhKXt2YXIgYj0wO2EuaGFzT3duUHJvcGVydHkoIm5vVHJpbVNlbGVjdCIpJiYoITA9PT1hLm5vVHJpbVNlbGVjdHx8InRydWUiPT09YS5ub1RyaW1TZWxlY3QpfHwidXNlZGNhcnMuaHRtbCI9PSQoIiNQQUdFSUQiKS52YWwoKXx8JCgiI1BBR0VJRCIpLnZhbCgpO2E9YS5jb25zaWRlckludmVudG9yeT9hLmNvbnNpZGVySW52ZW50b3J5OiIwIjt2YXIgZT0idW5kZWZpbmVkIiE9dHlwZW9mIG1vZGVsQ29uZmlnJiYiZnVuY3Rpb24iPT09dHlwZW9mIG1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGU7KGV8fGEmJmUpJiZ2b2lkIDAhPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZFByb3RlY3Rpb25QbGFuVG90YWwmJihiPW1vZGVsQ29uZmlnLmdldFNlbGVjdGVkU3R5bGUoKS5zZWxlY3RlZFByb3RlY3Rpb25QbGFuVG90YWwpO3JldHVybiBifHwwfQpmdW5jdGlvbiBwYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhKXtyZXR1cm4gYS5yZXBsYWNlKC9cQig\/PShcZHszfSkrKD8hXGQpKS9nLCIsIil9ZnVuY3Rpb24gcGF5bWVudENhbGN1bGF0b3JDbGlja2VkVHJpZ2dlcihhLGIpeyQoYSkudHJpZ2dlcigicGF5bWVudENhbGN1bGF0b3IuY2xpY2siLHtvcmlnRXZlbnQ6Yn0pO2E9bmV3IEV2ZW50KCJwYXltZW50Q2FsY3VsYXRvci5jbGljayIpO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQoYSl9ZnVuY3Rpb24gcGF5bWVudENhbGN1bGF0b3JDbGlja2VkTmV3VkRQVHJpZ2dlcihhLGIpe3ZhciBlPSQoIiNwb3B1cG1ha2UiKS52YWwoKSxkPSQoIiNwb3B1cG1vZGVsIikudmFsKCksYz0kKCIjcG9wdXB5ZWFyIikudmFsKCk7Z2FUcmFjaygiX3RyYWNrRXZlbnQiLCJOZXctVkRQLU91dGJvdW5kLWNsaWNrcyIsIkNhbGN1bGF0cmljZSIsZSsiLSIrZCsiLSIrYyk7cGF5bWVudENhbGN1bGF0b3JDbGlja2VkVHJpZ2dlcihhLGIpfQpmdW5jdGlvbiBmb3JtYXRFZmZlY3RpdmVSYXRlVGV4dChhLGIsZSxkLGMpe2Q9dm9pZCAwPT09ZD8iIjpkO2M9dm9pZCAwPT09Yz8hMDpjO2I9cGFyc2VGbG9hdChhKS1wYXJzZUZsb2F0KGIpO3ZhciBmPXN0b3JlLmdldCgiZmllbGRzIikuQURNSU5fU0hPV19FRkZFQ1RJVkVfUkFURV9TRUxFQ1Q7aWYoImZhbHNlIj09PXN0b3JlLmdldCgiZmllbGRzIikuQURNSU5fU0hPV19FRkZFQ1RJVkVfUkFURXx8ImV2ZXJ5d2hlcmUiIT1mJiYwPj1iKXJldHVybiIiO2I9c3RvcmUuZ2V0KCJpMThuIikuRUZGRUNUSVZFX1JBVEVfTEFCRUw7Zj0kKCIjaXNtb2JpbGUiKS52YWwoKT8iPGJyLz4iOiIgIjtiPWIucmVwbGFjZSgieyRSQVRFfSIsYDxzcGFuICR7ZX0+JHthfSU8L3NwYW4+YCk7cmV0dXJuYCR7Zn0ke2M\/YDxkaXYgJHtkfT5gOiIifSggJHtifSApJHtjPyI8L2Rpdj4iOiIifWB9CmZ1bmN0aW9uIHBvcHVsYXRlTGVhc2VLTUFsbG93YW5jZURyb3Bkb3duKGEpe3RyeXtpZihhLmxlYXNlJiYwPGEubGVhc2UubGVuZ3RoKXt2YXIgYj1bXTthLmxlYXNlLmZvckVhY2goZnVuY3Rpb24oZCl7LTE9PSQuaW5BcnJheShkLmttX2FsbG93YW5jZSxiKSYmYi5wdXNoKGQua21fYWxsb3dhbmNlKX0pO2IuZm9yRWFjaChmdW5jdGlvbihkKXt2YXIgYz1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihkLnRvRml4ZWQoMCkpOyQoIiNwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikuYXBwZW5kKG5ldyBPcHRpb24oYysiIGttIixkKSl9KTt2YXIgZT0yRTQ7YS5jdXJyZW50UGF5bWVudFswXSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2UmJihlPTA8YS5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U\/YS5jdXJyZW50UGF5bWVudFswXS5rbV9hbGxvd2FuY2U6MkU0KTskKCIjcGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbChlKX19Y2F0Y2goZCl7Y29uc29sZS5lcnJvcigiRXJyb3IgcG9wdWxhdGluZyBsZWFzZSBrbSBhbGxvd2FuY2UgZHJvcGRvd24gaW4gdGhlIGZ1bmN0aW9uIHBvcHVsYXRlTGVhc2VLTUFsbG93YW5jZURyb3Bkb3duOiAiLApkKX19CmZ1bmN0aW9uIHNob3dIaWRlUGF5bWVudFNlY3Rpb24oYSxiKXskKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaSIpLnJlbW92ZUNsYXNzKCJhY3RpdmVQYXltZW50VHlwZSIpOzA8JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGlbZGF0YS10eXBlPSciK2IrIiddIikubGVuZ3RoJiYkKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9JyIrYisiJ10iKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTsiY2FzaCIhPT1iJiYodm9pZCAwIT1hLmZpbmFuY2UmJjA9PT1hLmZpbmFuY2UubGVuZ3RoPyQoIiNwYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLmhpZGUoKTokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUZpbmFuY2UiKS5zaG93KCksdm9pZCAwIT1hLmxlYXNlJiYwPT09YS5sZWFzZS5sZW5ndGg\/JCgiI3BheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVMZWFzZSIpLmhpZGUoKTokKCIjcGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuc2hvdygpKX0KZnVuY3Rpb24gc2hvd0Rpc2NsYWltZXJMaW5rKCl7MT09JCgiI2lzRFJTaXRlIikubGVuZ3RoJiYiMSI9PSQoIiNpc0RSU2l0ZSIpLnZhbCgpJiYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBheW1lbnRDYWxjdWxhdG9yVGVybXMiKS5zdHlsZS5kaXNwbGF5PSJibG9jayIsZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyQ2FsY3VsYXRvclZpZXdEaXNjbGFpbWVyTGluayIpJiYoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImRyQ2FsY3VsYXRvclZpZXdEaXNjbGFpbWVyTGluayIpLnN0eWxlLmRpc3BsYXk9ImJsb2NrIikpfQpmdW5jdGlvbiBoaWRlRGlzY2xhaW1lckxpbmsoKXsxPT0kKCIjaXNEUlNpdGUiKS5sZW5ndGgmJiIxIj09JCgiI2lzRFJTaXRlIikudmFsKCkmJihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGF5bWVudENhbGN1bGF0b3JUZXJtcyIpLnN0eWxlLmRpc3BsYXk9Im5vbmUiLGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkckNhbGN1bGF0b3JWaWV3RGlzY2xhaW1lckxpbmsiKSYmKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkckNhbGN1bGF0b3JWaWV3RGlzY2xhaW1lckxpbmsiKS5zdHlsZS5kaXNwbGF5PSJub25lIikpfWZ1bmN0aW9uIGdldEx1eHVyeVRheExhYmVsKGEpe2E9RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UocGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoYS5sdXh1cnlUYXgudG9GaXhlZCgwKSkpO3JldHVybiI8bGk+IitzdG9yZS5nZXQoImkxOG4iKS5XRUJfU0lURV9QUklDRV9CUkVBS0RPV05fTFVYVVJZX1RBWF9MQUJFTCsiIDogIithKyI8L2xpPiJ9OwovKiogL20vanMvdmFuaWxsYWpzL2ltYXNrLm1pbi5qcyAqKi8KIWZ1bmN0aW9uKHQsZSl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9dHlwZW9mIG1vZHVsZT9lKGV4cG9ydHMpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFsiZXhwb3J0cyJdLGUpOmUoKHQ9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6dHx8c2VsZikuSU1hc2s9e30pfSh0aGlzLChmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7dmFyIGU9InVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWxUaGlzP2dsb2JhbFRoaXM6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c\/d2luZG93OiJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY\/c2VsZjp7fSxuPWZ1bmN0aW9uKHQpe3JldHVybiB0JiZ0Lk1hdGg9PU1hdGgmJnR9LGk9bigib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMpfHxuKCJvYmplY3QiPT10eXBlb2Ygd2luZG93JiZ3aW5kb3cpfHxuKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZil8fG4oIm9iamVjdCI9PXR5cGVvZiBlJiZlKXx8ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30oKXx8RnVuY3Rpb24oInJldHVybiB0aGlzIikoKSxyPXt9LHU9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiEhdCgpfWNhdGNoKHQpe3JldHVybiEwfX0scz0hdSgoZnVuY3Rpb24oKXtyZXR1cm4gNyE9T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LDEse2dldDpmdW5jdGlvbigpe3JldHVybiA3fX0pWzFdfSkpLGE9IXUoKGZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt9LmJpbmQoKTtyZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdHx8dC5oYXNPd25Qcm9wZXJ0eSgicHJvdG90eXBlIil9KSksbz1hLGw9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGwsaD1vP2wuYmluZChsKTpmdW5jdGlvbigpe3JldHVybiBsLmFwcGx5KGwsYXJndW1lbnRzKX0sYz17fSxmPXt9LnByb3BlcnR5SXNFbnVtZXJhYmxlLHA9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixkPXAmJiFmLmNhbGwoezE6Mn0sMSk7Yy5mPWQ\/ZnVuY3Rpb24odCl7dmFyIGU9cCh0aGlzLHQpO3JldHVybiEhZSYmZS5lbnVtZXJhYmxlfTpmO3ZhciB2LGcsaz1mdW5jdGlvbih0LGUpe3JldHVybntlbnVtZXJhYmxlOiEoMSZ0KSxjb25maWd1cmFibGU6ISgyJnQpLHdyaXRhYmxlOiEoNCZ0KSx2YWx1ZTplfX0seT1hLG09RnVuY3Rpb24ucHJvdG90eXBlLGI9bS5iaW5kLF89bS5jYWxsLEE9eSYmYi5iaW5kKF8sXyksQz15P2Z1bmN0aW9uKHQpe3JldHVybiB0JiZBKHQpfTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmZnVuY3Rpb24oKXtyZXR1cm4gXy5hcHBseSh0LGFyZ3VtZW50cyl9fSxFPUMsRj1FKHt9LnRvU3RyaW5nKSxTPUUoIiIuc2xpY2UpLHc9ZnVuY3Rpb24odCl7cmV0dXJuIFMoRih0KSw4LC0xKX0sQj1DLEQ9dSx4PXcsTT1pLk9iamVjdCxPPUIoIiIuc3BsaXQpLFA9RCgoZnVuY3Rpb24oKXtyZXR1cm4hTSgieiIpLnByb3BlcnR5SXNFbnVtZXJhYmxlKDApfSkpP2Z1bmN0aW9uKHQpe3JldHVybiJTdHJpbmciPT14KHQpP08odCwiIik6TSh0KX06TSxUPWkuVHlwZUVycm9yLEk9ZnVuY3Rpb24odCl7aWYobnVsbD09dCl0aHJvdyBUKCJDYW4ndCBjYWxsIG1ldGhvZCBvbiAiK3QpO3JldHVybiB0fSxqPVAsUj1JLFY9ZnVuY3Rpb24odCl7cmV0dXJuIGooUih0KSl9LEw9ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9LE49TCxVPWZ1bmN0aW9uKHQpe3JldHVybiJvYmplY3QiPT10eXBlb2YgdD9udWxsIT09dDpOKHQpfSx6PWkscT1MLEg9ZnVuY3Rpb24odCl7cmV0dXJuIHEodCk\/dDp2b2lkIDB9LFk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyP0goelt0XSk6elt0XSYmelt0XVtlXX0sWj1DKHt9LmlzUHJvdG90eXBlT2YpLEc9WSgibmF2aWdhdG9yIiwidXNlckFnZW50Iil8fCIiLEs9aSwkPUcsVz1LLnByb2Nlc3MsWD1LLkRlbm8sSj1XJiZXLnZlcnNpb25zfHxYJiZYLnZlcnNpb24sUT1KJiZKLnY4O1EmJihnPSh2PVEuc3BsaXQoIi4iKSlbMF0+MCYmdlswXTw0PzE6Kyh2WzBdK3ZbMV0pKSwhZyYmJCYmKCEodj0kLm1hdGNoKC9FZGdlXC8oXGQrKS8pKXx8dlsxXT49NzQpJiYodj0kLm1hdGNoKC9DaHJvbWVcLyhcZCspLykpJiYoZz0rdlsxXSk7dmFyIHR0PWcsZXQ9dSxudD0hIU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMmJiFldCgoZnVuY3Rpb24oKXt2YXIgdD1TeW1ib2woKTtyZXR1cm4hU3RyaW5nKHQpfHwhKE9iamVjdCh0KWluc3RhbmNlb2YgU3ltYm9sKXx8IVN5bWJvbC5zaGFtJiZ0dCYmdHQ8NDF9KSksaXQ9bnQmJiFTeW1ib2wuc2hhbSYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3IscnQ9WSx1dD1MLHN0PVosYXQ9aXQsb3Q9aS5PYmplY3QsbHQ9YXQ\/ZnVuY3Rpb24odCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fTpmdW5jdGlvbih0KXt2YXIgZT1ydCgiU3ltYm9sIik7cmV0dXJuIHV0KGUpJiZzdChlLnByb3RvdHlwZSxvdCh0KSl9LGh0PWkuU3RyaW5nLGN0PUwsZnQ9ZnVuY3Rpb24odCl7dHJ5e3JldHVybiBodCh0KX1jYXRjaCh0KXtyZXR1cm4iT2JqZWN0In19LHB0PWkuVHlwZUVycm9yLGR0PWZ1bmN0aW9uKHQpe2lmKGN0KHQpKXJldHVybiB0O3Rocm93IHB0KGZ0KHQpKyIgaXMgbm90IGEgZnVuY3Rpb24iKX0sdnQ9aCxndD1MLGt0PVUseXQ9aS5UeXBlRXJyb3IsbXQ9e2V4cG9ydHM6e319LGJ0PWksX3Q9T2JqZWN0LmRlZmluZVByb3BlcnR5LEF0PWZ1bmN0aW9uKHQsZSl7dHJ5e190KGJ0LHQse3ZhbHVlOmUsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSl9Y2F0Y2gobil7YnRbdF09ZX1yZXR1cm4gZX0sQ3Q9QXQsRXQ9Il9fY29yZS1qc19zaGFyZWRfXyIsRnQ9aVtFdF18fEN0KEV0LHt9KSxTdD1GdDsobXQuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBTdFt0XXx8KFN0W3RdPXZvaWQgMCE9PWU\/ZTp7fSl9KSgidmVyc2lvbnMiLFtdKS5wdXNoKHt2ZXJzaW9uOiIzLjIxLjAiLG1vZGU6Imdsb2JhbCIsY29weXJpZ2h0OiKpIDIwMTQtMjAyMiBEZW5pcyBQdXNoa2FyZXYgKHpsb2lyb2NrLnJ1KSIsbGljZW5zZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMvYmxvYi92My4yMS4wL0xJQ0VOU0UiLHNvdXJjZToiaHR0cHM6Ly9naXRodWIuY29tL3psb2lyb2NrL2NvcmUtanMifSk7dmFyIHd0PUksQnQ9aS5PYmplY3QsRHQ9ZnVuY3Rpb24odCl7cmV0dXJuIEJ0KHd0KHQpKX0seHQ9RHQsTXQ9Qyh7fS5oYXNPd25Qcm9wZXJ0eSksT3Q9T2JqZWN0Lmhhc093bnx8ZnVuY3Rpb24odCxlKXtyZXR1cm4gTXQoeHQodCksZSl9LFB0PUMsVHQ9MCxJdD1NYXRoLnJhbmRvbSgpLGp0PVB0KDEuLnRvU3RyaW5nKSxSdD1mdW5jdGlvbih0KXtyZXR1cm4iU3ltYm9sKCIrKHZvaWQgMD09PXQ\/IiI6dCkrIilfIitqdCgrK1R0K0l0LDM2KX0sVnQ9aSxMdD1tdC5leHBvcnRzLE50PU90LFV0PVJ0LHp0PW50LHF0PWl0LEh0PUx0KCJ3a3MiKSxZdD1WdC5TeW1ib2wsWnQ9WXQmJll0LmZvcixHdD1xdD9ZdDpZdCYmWXQud2l0aG91dFNldHRlcnx8VXQsS3Q9ZnVuY3Rpb24odCl7aWYoIU50KEh0LHQpfHwhenQmJiJzdHJpbmciIT10eXBlb2YgSHRbdF0pe3ZhciBlPSJTeW1ib2wuIit0O3p0JiZOdChZdCx0KT9IdFt0XT1ZdFt0XTpIdFt0XT1xdCYmWnQ\/WnQoZSk6R3QoZSl9cmV0dXJuIEh0W3RdfSwkdD1oLFd0PVUsWHQ9bHQsSnQ9ZnVuY3Rpb24odCxlKXt2YXIgbj10W2VdO3JldHVybiBudWxsPT1uP3ZvaWQgMDpkdChuKX0sUXQ9ZnVuY3Rpb24odCxlKXt2YXIgbixpO2lmKCJzdHJpbmciPT09ZSYmZ3Qobj10LnRvU3RyaW5nKSYmIWt0KGk9dnQobix0KSkpcmV0dXJuIGk7aWYoZ3Qobj10LnZhbHVlT2YpJiYha3QoaT12dChuLHQpKSlyZXR1cm4gaTtpZigic3RyaW5nIiE9PWUmJmd0KG49dC50b1N0cmluZykmJiFrdChpPXZ0KG4sdCkpKXJldHVybiBpO3Rocm93IHl0KCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX0sdGU9S3QsZWU9aS5UeXBlRXJyb3IsbmU9dGUoInRvUHJpbWl0aXZlIiksaWU9ZnVuY3Rpb24odCxlKXtpZighV3QodCl8fFh0KHQpKXJldHVybiB0O3ZhciBuLGk9SnQodCxuZSk7aWYoaSl7aWYodm9pZCAwPT09ZSYmKGU9ImRlZmF1bHQiKSxuPSR0KGksdCxlKSwhV3Qobil8fFh0KG4pKXJldHVybiBuO3Rocm93IGVlKCJDYW4ndCBjb252ZXJ0IG9iamVjdCB0byBwcmltaXRpdmUgdmFsdWUiKX1yZXR1cm4gdm9pZCAwPT09ZSYmKGU9Im51bWJlciIpLFF0KHQsZSl9LHJlPWx0LHVlPWZ1bmN0aW9uKHQpe3ZhciBlPWllKHQsInN0cmluZyIpO3JldHVybiByZShlKT9lOmUrIiJ9LHNlPVUsYWU9aS5kb2N1bWVudCxvZT1zZShhZSkmJnNlKGFlLmNyZWF0ZUVsZW1lbnQpLGxlPWZ1bmN0aW9uKHQpe3JldHVybiBvZT9hZS5jcmVhdGVFbGVtZW50KHQpOnt9fSxoZT0hcyYmIXUoKGZ1bmN0aW9uKCl7cmV0dXJuIDchPU9iamVjdC5kZWZpbmVQcm9wZXJ0eShsZSgiZGl2IiksImEiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gN319KS5hfSkpLGNlPXMsZmU9aCxwZT1jLGRlPWssdmU9VixnZT11ZSxrZT1PdCx5ZT1oZSxtZT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yO3IuZj1jZT9tZTpmdW5jdGlvbih0LGUpe2lmKHQ9dmUodCksZT1nZShlKSx5ZSl0cnl7cmV0dXJuIG1lKHQsZSl9Y2F0Y2godCl7fWlmKGtlKHQsZSkpcmV0dXJuIGRlKCFmZShwZS5mLHQsZSksdFtlXSl9O3ZhciBiZT17fSxfZT1zJiZ1KChmdW5jdGlvbigpe3JldHVybiA0MiE9T2JqZWN0LmRlZmluZVByb3BlcnR5KChmdW5jdGlvbigpe30pLCJwcm90b3R5cGUiLHt2YWx1ZTo0Mix3cml0YWJsZTohMX0pLnByb3RvdHlwZX0pKSxBZT1pLENlPVUsRWU9QWUuU3RyaW5nLEZlPUFlLlR5cGVFcnJvcixTZT1mdW5jdGlvbih0KXtpZihDZSh0KSlyZXR1cm4gdDt0aHJvdyBGZShFZSh0KSsiIGlzIG5vdCBhbiBvYmplY3QiKX0sd2U9cyxCZT1oZSxEZT1fZSx4ZT1TZSxNZT11ZSxPZT1pLlR5cGVFcnJvcixQZT1PYmplY3QuZGVmaW5lUHJvcGVydHksVGU9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcixJZT0iZW51bWVyYWJsZSIsamU9ImNvbmZpZ3VyYWJsZSIsUmU9IndyaXRhYmxlIjtiZS5mPXdlP0RlP2Z1bmN0aW9uKHQsZSxuKXtpZih4ZSh0KSxlPU1lKGUpLHhlKG4pLCJmdW5jdGlvbiI9PXR5cGVvZiB0JiYicHJvdG90eXBlIj09PWUmJiJ2YWx1ZSJpbiBuJiZSZSBpbiBuJiYhbi53cml0YWJsZSl7dmFyIGk9VGUodCxlKTtpJiZpLndyaXRhYmxlJiYodFtlXT1uLnZhbHVlLG49e2NvbmZpZ3VyYWJsZTpqZSBpbiBuP24uY29uZmlndXJhYmxlOmkuY29uZmlndXJhYmxlLGVudW1lcmFibGU6SWUgaW4gbj9uLmVudW1lcmFibGU6aS5lbnVtZXJhYmxlLHdyaXRhYmxlOiExfSl9cmV0dXJuIFBlKHQsZSxuKX06UGU6ZnVuY3Rpb24odCxlLG4pe2lmKHhlKHQpLGU9TWUoZSkseGUobiksQmUpdHJ5e3JldHVybiBQZSh0LGUsbil9Y2F0Y2godCl7fWlmKCJnZXQiaW4gbnx8InNldCJpbiBuKXRocm93IE9lKCJBY2Nlc3NvcnMgbm90IHN1cHBvcnRlZCIpO3JldHVybiJ2YWx1ZSJpbiBuJiYodFtlXT1uLnZhbHVlKSx0fTt2YXIgVmU9YmUsTGU9ayxOZT1zP2Z1bmN0aW9uKHQsZSxuKXtyZXR1cm4gVmUuZih0LGUsTGUoMSxuKSl9OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFtlXT1uLHR9LFVlPXtleHBvcnRzOnt9fSx6ZT1MLHFlPUZ0LEhlPUMoRnVuY3Rpb24udG9TdHJpbmcpO3plKHFlLmluc3BlY3RTb3VyY2UpfHwocWUuaW5zcGVjdFNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gSGUodCl9KTt2YXIgWWUsWmUsR2UsS2U9cWUuaW5zcGVjdFNvdXJjZSwkZT1MLFdlPUtlLFhlPWkuV2Vha01hcCxKZT0kZShYZSkmJi9uYXRpdmUgY29kZS8udGVzdChXZShYZSkpLFFlPW10LmV4cG9ydHMsdG49UnQsZW49UWUoImtleXMiKSxubj17fSxybj1KZSx1bj1pLHNuPUMsYW49VSxvbj1OZSxsbj1PdCxobj1GdCxjbj1mdW5jdGlvbih0KXtyZXR1cm4gZW5bdF18fChlblt0XT10bih0KSl9LGZuPW5uLHBuPSJPYmplY3QgYWxyZWFkeSBpbml0aWFsaXplZCIsZG49dW4uVHlwZUVycm9yLHZuPXVuLldlYWtNYXA7aWYocm58fGhuLnN0YXRlKXt2YXIgZ249aG4uc3RhdGV8fChobi5zdGF0ZT1uZXcgdm4pLGtuPXNuKGduLmdldCkseW49c24oZ24uaGFzKSxtbj1zbihnbi5zZXQpO1llPWZ1bmN0aW9uKHQsZSl7aWYoeW4oZ24sdCkpdGhyb3cgbmV3IGRuKHBuKTtyZXR1cm4gZS5mYWNhZGU9dCxtbihnbix0LGUpLGV9LFplPWZ1bmN0aW9uKHQpe3JldHVybiBrbihnbix0KXx8e319LEdlPWZ1bmN0aW9uKHQpe3JldHVybiB5bihnbix0KX19ZWxzZXt2YXIgYm49Y24oInN0YXRlIik7Zm5bYm5dPSEwLFllPWZ1bmN0aW9uKHQsZSl7aWYobG4odCxibikpdGhyb3cgbmV3IGRuKHBuKTtyZXR1cm4gZS5mYWNhZGU9dCxvbih0LGJuLGUpLGV9LFplPWZ1bmN0aW9uKHQpe3JldHVybiBsbih0LGJuKT90W2JuXTp7fX0sR2U9ZnVuY3Rpb24odCl7cmV0dXJuIGxuKHQsYm4pfX12YXIgX249e3NldDpZZSxnZXQ6WmUsaGFzOkdlLGVuZm9yY2U6ZnVuY3Rpb24odCl7cmV0dXJuIEdlKHQpP1plKHQpOlllKHQse30pfSxnZXR0ZXJGb3I6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciBuO2lmKCFhbihlKXx8KG49WmUoZSkpLnR5cGUhPT10KXRocm93IGRuKCJJbmNvbXBhdGlibGUgcmVjZWl2ZXIsICIrdCsiIHJlcXVpcmVkIik7cmV0dXJuIG59fX0sQW49cyxDbj1PdCxFbj1GdW5jdGlvbi5wcm90b3R5cGUsRm49QW4mJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IsU249Q24oRW4sIm5hbWUiKSx3bj1TbiYmInNvbWV0aGluZyI9PT1mdW5jdGlvbigpe30ubmFtZSxCbj1TbiYmKCFBbnx8QW4mJkZuKEVuLCJuYW1lIikuY29uZmlndXJhYmxlKSxEbj1pLHhuPUwsTW49T3QsT249TmUsUG49QXQsVG49S2UsSW49e0VYSVNUUzpTbixQUk9QRVI6d24sQ09ORklHVVJBQkxFOkJufS5DT05GSUdVUkFCTEUsam49X24uZ2V0LFJuPV9uLmVuZm9yY2UsVm49U3RyaW5nKFN0cmluZykuc3BsaXQoIlN0cmluZyIpOyhVZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByLHU9ISFpJiYhIWkudW5zYWZlLHM9ISFpJiYhIWkuZW51bWVyYWJsZSxhPSEhaSYmISFpLm5vVGFyZ2V0R2V0LG89aSYmdm9pZCAwIT09aS5uYW1lP2kubmFtZTplO3huKG4pJiYoIlN5bWJvbCgiPT09U3RyaW5nKG8pLnNsaWNlKDAsNykmJihvPSJbIitTdHJpbmcobykucmVwbGFjZSgvXlN5bWJvbFwoKFteKV0qKVwpLywiJDEiKSsiXSIpLCghTW4obiwibmFtZSIpfHxJbiYmbi5uYW1lIT09bykmJk9uKG4sIm5hbWUiLG8pLChyPVJuKG4pKS5zb3VyY2V8fChyLnNvdXJjZT1Wbi5qb2luKCJzdHJpbmciPT10eXBlb2Ygbz9vOiIiKSkpLHQhPT1Ebj8odT8hYSYmdFtlXSYmKHM9ITApOmRlbGV0ZSB0W2VdLHM\/dFtlXT1uOk9uKHQsZSxuKSk6cz90W2VdPW46UG4oZSxuKX0pKEZ1bmN0aW9uLnByb3RvdHlwZSwidG9TdHJpbmciLChmdW5jdGlvbigpe3JldHVybiB4bih0aGlzKSYmam4odGhpcykuc291cmNlfHxUbih0aGlzKX0pKTt2YXIgTG49e30sTm49TWF0aC5jZWlsLFVuPU1hdGguZmxvb3Isem49ZnVuY3Rpb24odCl7dmFyIGU9K3Q7cmV0dXJuIGUhPWV8fDA9PT1lPzA6KGU+MD9VbjpObikoZSl9LHFuPXpuLEhuPU1hdGgubWF4LFluPU1hdGgubWluLFpuPXpuLEduPU1hdGgubWluLEtuPWZ1bmN0aW9uKHQpe3JldHVybiB0PjA\/R24oWm4odCksOTAwNzE5OTI1NDc0MDk5MSk6MH0sJG49S24sV249VixYbj1mdW5jdGlvbih0LGUpe3ZhciBuPXFuKHQpO3JldHVybiBuPDA\/SG4obitlLDApOlluKG4sZSl9LEpuPWZ1bmN0aW9uKHQpe3JldHVybiAkbih0Lmxlbmd0aCl9LFFuPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4saSl7dmFyIHIsdT1XbihlKSxzPUpuKHUpLGE9WG4oaSxzKTtpZih0JiZuIT1uKXtmb3IoO3M+YTspaWYoKHI9dVthKytdKSE9cilyZXR1cm4hMH1lbHNlIGZvcig7cz5hO2ErKylpZigodHx8YSBpbiB1KSYmdVthXT09PW4pcmV0dXJuIHR8fGF8fDA7cmV0dXJuIXQmJi0xfX0sdGk9e2luY2x1ZGVzOlFuKCEwKSxpbmRleE9mOlFuKCExKX0sZWk9T3Qsbmk9VixpaT10aS5pbmRleE9mLHJpPW5uLHVpPUMoW10ucHVzaCksc2k9ZnVuY3Rpb24odCxlKXt2YXIgbixpPW5pKHQpLHI9MCx1PVtdO2ZvcihuIGluIGkpIWVpKHJpLG4pJiZlaShpLG4pJiZ1aSh1LG4pO2Zvcig7ZS5sZW5ndGg+cjspZWkoaSxuPWVbcisrXSkmJih+aWkodSxuKXx8dWkodSxuKSk7cmV0dXJuIHV9LGFpPVsiY29uc3RydWN0b3IiLCJoYXNPd25Qcm9wZXJ0eSIsImlzUHJvdG90eXBlT2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInRvTG9jYWxlU3RyaW5nIiwidG9TdHJpbmciLCJ2YWx1ZU9mIl0sb2k9c2ksbGk9YWkuY29uY2F0KCJsZW5ndGgiLCJwcm90b3R5cGUiKTtMbi5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzfHxmdW5jdGlvbih0KXtyZXR1cm4gb2kodCxsaSl9O3ZhciBoaT17fTtoaS5mPU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHM7dmFyIGNpPVksZmk9TG4scGk9aGksZGk9U2Usdmk9QyhbXS5jb25jYXQpLGdpPWNpKCJSZWZsZWN0Iiwib3duS2V5cyIpfHxmdW5jdGlvbih0KXt2YXIgZT1maS5mKGRpKHQpKSxuPXBpLmY7cmV0dXJuIG4\/dmkoZSxuKHQpKTplfSxraT1PdCx5aT1naSxtaT1yLGJpPWJlLF9pPXUsQWk9TCxDaT0vI3xcLnByb3RvdHlwZVwuLyxFaT1mdW5jdGlvbih0LGUpe3ZhciBuPVNpW0ZpKHQpXTtyZXR1cm4gbj09Qml8fG4hPXdpJiYoQWkoZSk\/X2koZSk6ISFlKX0sRmk9RWkubm9ybWFsaXplPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcodCkucmVwbGFjZShDaSwiLiIpLnRvTG93ZXJDYXNlKCl9LFNpPUVpLmRhdGE9e30sd2k9RWkuTkFUSVZFPSJOIixCaT1FaS5QT0xZRklMTD0iUCIsRGk9RWkseGk9aSxNaT1yLmYsT2k9TmUsUGk9VWUuZXhwb3J0cyxUaT1BdCxJaT1mdW5jdGlvbih0LGUsbil7Zm9yKHZhciBpPXlpKGUpLHI9YmkuZix1PW1pLmYscz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgYT1pW3NdO2tpKHQsYSl8fG4mJmtpKG4sYSl8fHIodCxhLHUoZSxhKSl9fSxqaT1EaSxSaT1mdW5jdGlvbih0LGUpe3ZhciBuLGkscix1LHMsYT10LnRhcmdldCxvPXQuZ2xvYmFsLGw9dC5zdGF0O2lmKG49bz94aTpsP3hpW2FdfHxUaShhLHt9KTooeGlbYV18fHt9KS5wcm90b3R5cGUpZm9yKGkgaW4gZSl7aWYodT1lW2ldLHI9dC5ub1RhcmdldEdldD8ocz1NaShuLGkpKSYmcy52YWx1ZTpuW2ldLCFqaShvP2k6YSsobD8iLiI6IiMiKStpLHQuZm9yY2VkKSYmdm9pZCAwIT09cil7aWYodHlwZW9mIHU9PXR5cGVvZiByKWNvbnRpbnVlO0lpKHUscil9KHQuc2hhbXx8ciYmci5zaGFtKSYmT2kodSwic2hhbSIsITApLFBpKG4saSx1LHQpfX0sVmk9c2ksTGk9YWksTmk9T2JqZWN0LmtleXN8fGZ1bmN0aW9uKHQpe3JldHVybiBWaSh0LExpKX0sVWk9cyx6aT1DLHFpPWgsSGk9dSxZaT1OaSxaaT1oaSxHaT1jLEtpPUR0LCRpPVAsV2k9T2JqZWN0LmFzc2lnbixYaT1PYmplY3QuZGVmaW5lUHJvcGVydHksSmk9emkoW10uY29uY2F0KSxRaT0hV2l8fEhpKChmdW5jdGlvbigpe2lmKFVpJiYxIT09V2koe2I6MX0sV2koWGkoe30sImEiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe1hpKHRoaXMsImIiLHt2YWx1ZTozLGVudW1lcmFibGU6ITF9KX19KSx7YjoyfSkpLmIpcmV0dXJuITA7dmFyIHQ9e30sZT17fSxuPVN5bWJvbCgpLGk9ImFiY2RlZmdoaWprbG1ub3BxcnN0IjtyZXR1cm4gdFtuXT03LGkuc3BsaXQoIiIpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2VbdF09dH0pKSw3IT1XaSh7fSx0KVtuXXx8WWkoV2koe30sZSkpLmpvaW4oIiIpIT1pfSkpP2Z1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPUtpKHQpLGk9YXJndW1lbnRzLmxlbmd0aCxyPTEsdT1aaS5mLHM9R2kuZjtpPnI7KWZvcih2YXIgYSxvPSRpKGFyZ3VtZW50c1tyKytdKSxsPXU\/SmkoWWkobyksdShvKSk6WWkobyksaD1sLmxlbmd0aCxjPTA7aD5jOylhPWxbYysrXSxVaSYmIXFpKHMsbyxhKXx8KG5bYV09b1thXSk7cmV0dXJuIG59OldpLHRyPVFpO1JpKHt0YXJnZXQ6Ik9iamVjdCIsc3RhdDohMCxmb3JjZWQ6T2JqZWN0LmFzc2lnbiE9PXRyfSx7YXNzaWduOnRyfSk7dmFyIGVyPXt9O2VyW0t0KCJ0b1N0cmluZ1RhZyIpXT0ieiI7dmFyIG5yPWksaXI9IltvYmplY3Qgel0iPT09U3RyaW5nKGVyKSxycj1MLHVyPXcsc3I9S3QoInRvU3RyaW5nVGFnIiksYXI9bnIuT2JqZWN0LG9yPSJBcmd1bWVudHMiPT11cihmdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHN9KCkpLGxyPWlyP3VyOmZ1bmN0aW9uKHQpe3ZhciBlLG4saTtyZXR1cm4gdm9pZCAwPT09dD8iVW5kZWZpbmVkIjpudWxsPT09dD8iTnVsbCI6InN0cmluZyI9PXR5cGVvZihuPWZ1bmN0aW9uKHQsZSl7dHJ5e3JldHVybiB0W2VdfWNhdGNoKHQpe319KGU9YXIodCksc3IpKT9uOm9yP3VyKGUpOiJPYmplY3QiPT0oaT11cihlKSkmJnJyKGUuY2FsbGVlKT8iQXJndW1lbnRzIjppfSxocj1pLlN0cmluZyxjcj1mdW5jdGlvbih0KXtpZigiU3ltYm9sIj09PWxyKHQpKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgYSBTeW1ib2wgdmFsdWUgdG8gYSBzdHJpbmciKTtyZXR1cm4gaHIodCl9LGZyPXpuLHByPWNyLGRyPUksdnI9aS5SYW5nZUVycm9yLGdyPWZ1bmN0aW9uKHQpe3ZhciBlPXByKGRyKHRoaXMpKSxuPSIiLGk9ZnIodCk7aWYoaTwwfHxpPT0xLzApdGhyb3cgdnIoIldyb25nIG51bWJlciBvZiByZXBldGl0aW9ucyIpO2Zvcig7aT4wOyhpPj4+PTEpJiYoZSs9ZSkpMSZpJiYobis9ZSk7cmV0dXJuIG59O1JpKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITB9LHtyZXBlYXQ6Z3J9KTt2YXIga3I9Qyx5cj1Lbixtcj1jcixicj1JLF9yPWtyKGdyKSxBcj1rcigiIi5zbGljZSksQ3I9TWF0aC5jZWlsLEVyPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLG4saSl7dmFyIHIsdSxzPW1yKGJyKGUpKSxhPXlyKG4pLG89cy5sZW5ndGgsbD12b2lkIDA9PT1pPyIgIjptcihpKTtyZXR1cm4gYTw9b3x8IiI9PWw\/czooKHU9X3IobCxDcigocj1hLW8pL2wubGVuZ3RoKSkpLmxlbmd0aD5yJiYodT1Bcih1LDAscikpLHQ\/cyt1OnUrcyl9fSxGcj17c3RhcnQ6RXIoITEpLGVuZDpFcighMCl9LFNyPS9WZXJzaW9uXC8xMCg\/OlwuXGQrKXsxLDJ9KD86IFtcdy4vXSspPyg\/OiBNb2JpbGVcL1x3Kyk\/IFNhZmFyaVwvLy50ZXN0KEcpLHdyPUZyLnN0YXJ0O1JpKHt0YXJnZXQ6IlN0cmluZyIscHJvdG86ITAsZm9yY2VkOlNyfSx7cGFkU3RhcnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHdyKHRoaXMsdCxhcmd1bWVudHMubGVuZ3RoPjE\/YXJndW1lbnRzWzFdOnZvaWQgMCl9fSk7dmFyIEJyPUZyLmVuZDtmdW5jdGlvbiBEcih0KXtyZXR1cm4gRHI9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I\/ZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0fTpmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmdC5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmdCE9PVN5bWJvbC5wcm90b3R5cGU\/InN5bWJvbCI6dHlwZW9mIHR9LERyKHQpfWZ1bmN0aW9uIHhyKHQsZSl7aWYoISh0IGluc3RhbmNlb2YgZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9ZnVuY3Rpb24gTXIodCxlKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZVtuXTtpLmVudW1lcmFibGU9aS5lbnVtZXJhYmxlfHwhMSxpLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gaSYmKGkud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGkua2V5LGkpfX1mdW5jdGlvbiBPcih0LGUsbil7cmV0dXJuIGUmJk1yKHQucHJvdG90eXBlLGUpLG4mJk1yKHQsbiksT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsInByb3RvdHlwZSIse3dyaXRhYmxlOiExfSksdH1mdW5jdGlvbiBQcih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlJiZudWxsIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJTdXBlciBleHByZXNzaW9uIG11c3QgZWl0aGVyIGJlIG51bGwgb3IgYSBmdW5jdGlvbiIpO3QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwicHJvdG90eXBlIix7d3JpdGFibGU6ITF9KSxlJiZJcih0LGUpfWZ1bmN0aW9uIFRyKHQpe3JldHVybiBUcj1PYmplY3Quc2V0UHJvdG90eXBlT2Y\/T2JqZWN0LmdldFByb3RvdHlwZU9mOmZ1bmN0aW9uKHQpe3JldHVybiB0Ll9fcHJvdG9fX3x8T2JqZWN0LmdldFByb3RvdHlwZU9mKHQpfSxUcih0KX1mdW5jdGlvbiBJcih0LGUpe3JldHVybiBJcj1PYmplY3Quc2V0UHJvdG90eXBlT2Z8fGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuX19wcm90b19fPWUsdH0sSXIodCxlKX1mdW5jdGlvbiBqcih0LGUpe2lmKG51bGw9PXQpcmV0dXJue307dmFyIG4saSxyPWZ1bmN0aW9uKHQsZSl7aWYobnVsbD09dClyZXR1cm57fTt2YXIgbixpLHI9e30sdT1PYmplY3Qua2V5cyh0KTtmb3IoaT0wO2k8dS5sZW5ndGg7aSsrKW49dVtpXSxlLmluZGV4T2Yobik+PTB8fChyW25dPXRbbl0pO3JldHVybiByfSh0LGUpO2lmKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciB1PU9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHModCk7Zm9yKGk9MDtpPHUubGVuZ3RoO2krKyluPXVbaV0sZS5pbmRleE9mKG4pPj0wfHxPYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlLmNhbGwodCxuKSYmKHJbbl09dFtuXSl9cmV0dXJuIHJ9ZnVuY3Rpb24gUnIodCxlKXtpZihlJiYoIm9iamVjdCI9PXR5cGVvZiBlfHwiZnVuY3Rpb24iPT10eXBlb2YgZSkpcmV0dXJuIGU7aWYodm9pZCAwIT09ZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEZXJpdmVkIGNvbnN0cnVjdG9ycyBtYXkgb25seSByZXR1cm4gb2JqZWN0IG9yIHVuZGVmaW5lZCIpO3JldHVybiBmdW5jdGlvbih0KXtpZih2b2lkIDA9PT10KXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigidGhpcyBoYXNuJ3QgYmVlbiBpbml0aWFsaXNlZCAtIHN1cGVyKCkgaGFzbid0IGJlZW4gY2FsbGVkIik7cmV0dXJuIHR9KHQpfWZ1bmN0aW9uIFZyKHQpe3ZhciBlPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBSZWZsZWN0fHwhUmVmbGVjdC5jb25zdHJ1Y3QpcmV0dXJuITE7aWYoUmVmbGVjdC5jb25zdHJ1Y3Quc2hhbSlyZXR1cm4hMTtpZigiZnVuY3Rpb24iPT10eXBlb2YgUHJveHkpcmV0dXJuITA7dHJ5e3JldHVybiBCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbixbXSwoZnVuY3Rpb24oKXt9KSkpLCEwfWNhdGNoKHQpe3JldHVybiExfX0oKTtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbixpPVRyKHQpO2lmKGUpe3ZhciByPVRyKHRoaXMpLmNvbnN0cnVjdG9yO249UmVmbGVjdC5jb25zdHJ1Y3QoaSxhcmd1bWVudHMscil9ZWxzZSBuPWkuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBScih0aGlzLG4pfX1mdW5jdGlvbiBMcih0LGUpe2Zvcig7IU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGUpJiZudWxsIT09KHQ9VHIodCkpOyk7cmV0dXJuIHR9ZnVuY3Rpb24gTnIoKXtyZXR1cm4gTnI9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LmdldD9SZWZsZWN0LmdldDpmdW5jdGlvbih0LGUsbil7dmFyIGk9THIodCxlKTtpZihpKXt2YXIgcj1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGksZSk7cmV0dXJuIHIuZ2V0P3IuZ2V0LmNhbGwoYXJndW1lbnRzLmxlbmd0aDwzP3Q6bik6ci52YWx1ZX19LE5yLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1mdW5jdGlvbiBVcih0LGUsbixpKXtyZXR1cm4gVXI9InVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZSZWZsZWN0LnNldD9SZWZsZWN0LnNldDpmdW5jdGlvbih0LGUsbixpKXt2YXIgcix1PUxyKHQsZSk7aWYodSl7aWYoKHI9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih1LGUpKS5zZXQpcmV0dXJuIHIuc2V0LmNhbGwoaSxuKSwhMDtpZighci53cml0YWJsZSlyZXR1cm4hMX1pZihyPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoaSxlKSl7aWYoIXIud3JpdGFibGUpcmV0dXJuITE7ci52YWx1ZT1uLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLGUscil9ZWxzZSFmdW5jdGlvbih0LGUsbil7ZSBpbiB0P09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOm4sZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITB9KTp0W2VdPW59KGksZSxuKTtyZXR1cm4hMH0sVXIodCxlLG4saSl9ZnVuY3Rpb24genIodCxlLG4saSxyKXtpZighVXIodCxlLG4saXx8dCkmJnIpdGhyb3cgbmV3IEVycm9yKCJmYWlsZWQgdG8gc2V0IHByb3BlcnR5Iik7cmV0dXJuIG59ZnVuY3Rpb24gcXIodCxlKXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdH0odCl8fGZ1bmN0aW9uKHQsZSl7dmFyIG49bnVsbD09dD9udWxsOiJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZ0W1N5bWJvbC5pdGVyYXRvcl18fHRbIkBAaXRlcmF0b3IiXTtpZihudWxsPT1uKXJldHVybjt2YXIgaSxyLHU9W10scz0hMCxhPSExO3RyeXtmb3Iobj1uLmNhbGwodCk7IShzPShpPW4ubmV4dCgpKS5kb25lKSYmKHUucHVzaChpLnZhbHVlKSwhZXx8dS5sZW5ndGghPT1lKTtzPSEwKTt9Y2F0Y2godCl7YT0hMCxyPXR9ZmluYWxseXt0cnl7c3x8bnVsbD09bi5yZXR1cm58fG4ucmV0dXJuKCl9ZmluYWxseXtpZihhKXRocm93IHJ9fXJldHVybiB1fSh0LGUpfHxmdW5jdGlvbih0LGUpe2lmKCF0KXJldHVybjtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIEhyKHQsZSk7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpLnNsaWNlKDgsLTEpOyJPYmplY3QiPT09biYmdC5jb25zdHJ1Y3RvciYmKG49dC5jb25zdHJ1Y3Rvci5uYW1lKTtpZigiTWFwIj09PW58fCJTZXQiPT09bilyZXR1cm4gQXJyYXkuZnJvbSh0KTtpZigiQXJndW1lbnRzIj09PW58fC9eKD86VWl8SSludCg\/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk\/QXJyYXkkLy50ZXN0KG4pKXJldHVybiBIcih0LGUpfSh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gSHIodCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIG49MCxpPW5ldyBBcnJheShlKTtuPGU7bisrKWlbbl09dFtuXTtyZXR1cm4gaX1SaSh7dGFyZ2V0OiJTdHJpbmciLHByb3RvOiEwLGZvcmNlZDpTcn0se3BhZEVuZDpmdW5jdGlvbih0KXtyZXR1cm4gQnIodGhpcyx0LGFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dm9pZCAwKX19KSxSaSh7Z2xvYmFsOiEwfSx7Z2xvYmFsVGhpczppfSk7dmFyIFlyPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt4cih0aGlzLHQpLE9iamVjdC5hc3NpZ24odGhpcyx7aW5zZXJ0ZWQ6IiIscmF3SW5zZXJ0ZWQ6IiIsc2tpcDohMSx0YWlsU2hpZnQ6MH0sZSl9cmV0dXJuIE9yKHQsW3trZXk6ImFnZ3JlZ2F0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucmF3SW5zZXJ0ZWQrPXQucmF3SW5zZXJ0ZWQsdGhpcy5za2lwPXRoaXMuc2tpcHx8dC5za2lwLHRoaXMuaW5zZXJ0ZWQrPXQuaW5zZXJ0ZWQsdGhpcy50YWlsU2hpZnQrPXQudGFpbFNoaWZ0LHRoaXN9fSx7a2V5OiJvZmZzZXQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnRhaWxTaGlmdCt0aGlzLmluc2VydGVkLmxlbmd0aH19XSksdH0oKTtmdW5jdGlvbiBacih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR8fHQgaW5zdGFuY2VvZiBTdHJpbmd9dmFyIEdyPSJOT05FIixLcj0iTEVGVCIsJHI9IkZPUkNFX0xFRlQiLFdyPSJSSUdIVCIsWHI9IkZPUkNFX1JJR0hUIjtmdW5jdGlvbiBKcih0KXtyZXR1cm4gdC5yZXBsYWNlKC8oWy4qKz9ePSE6JHt9KCl8W1xdXC9cXF0pL2csIlxcJDEiKX1mdW5jdGlvbiBRcih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90Olt0LG5ldyBZcl19ZnVuY3Rpb24gdHUodCxlKXtpZihlPT09dClyZXR1cm4hMDt2YXIgbixpPUFycmF5LmlzQXJyYXkoZSkscj1BcnJheS5pc0FycmF5KHQpO2lmKGkmJnIpe2lmKGUubGVuZ3RoIT10Lmxlbmd0aClyZXR1cm4hMTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKWlmKCF0dShlW25dLHRbbl0pKXJldHVybiExO3JldHVybiEwfWlmKGkhPXIpcmV0dXJuITE7aWYoZSYmdCYmIm9iamVjdCI9PT1EcihlKSYmIm9iamVjdCI9PT1Ecih0KSl7dmFyIHU9ZSBpbnN0YW5jZW9mIERhdGUscz10IGluc3RhbmNlb2YgRGF0ZTtpZih1JiZzKXJldHVybiBlLmdldFRpbWUoKT09dC5nZXRUaW1lKCk7aWYodSE9cylyZXR1cm4hMTt2YXIgYT1lIGluc3RhbmNlb2YgUmVnRXhwLG89dCBpbnN0YW5jZW9mIFJlZ0V4cDtpZihhJiZvKXJldHVybiBlLnRvU3RyaW5nKCk9PXQudG9TdHJpbmcoKTtpZihhIT1vKXJldHVybiExO3ZhciBsPU9iamVjdC5rZXlzKGUpO2ZvcihuPTA7bjxsLmxlbmd0aDtuKyspaWYoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbCh0LGxbbl0pKXJldHVybiExO2ZvcihuPTA7bjxsLmxlbmd0aDtuKyspaWYoIXR1KHRbbFtuXV0sZVtsW25dXSkpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuISghZXx8IXR8fCJmdW5jdGlvbiIhPXR5cGVvZiBlfHwiZnVuY3Rpb24iIT10eXBlb2YgdCkmJmUudG9TdHJpbmcoKT09PXQudG9TdHJpbmcoKX12YXIgZXU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUsbixpLHIpe2Zvcih4cih0aGlzLHQpLHRoaXMudmFsdWU9ZSx0aGlzLmN1cnNvclBvcz1uLHRoaXMub2xkVmFsdWU9aSx0aGlzLm9sZFNlbGVjdGlvbj1yO3RoaXMudmFsdWUuc2xpY2UoMCx0aGlzLnN0YXJ0Q2hhbmdlUG9zKSE9PXRoaXMub2xkVmFsdWUuc2xpY2UoMCx0aGlzLnN0YXJ0Q2hhbmdlUG9zKTspLS10aGlzLm9sZFNlbGVjdGlvbi5zdGFydH1yZXR1cm4gT3IodCxbe2tleToic3RhcnRDaGFuZ2VQb3MiLGdldDpmdW5jdGlvbigpe3JldHVybiBNYXRoLm1pbih0aGlzLmN1cnNvclBvcyx0aGlzLm9sZFNlbGVjdGlvbi5zdGFydCl9fSx7a2V5OiJpbnNlcnRlZENvdW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJzb3JQb3MtdGhpcy5zdGFydENoYW5nZVBvc319LHtrZXk6Imluc2VydGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZS5zdWJzdHIodGhpcy5zdGFydENoYW5nZVBvcyx0aGlzLmluc2VydGVkQ291bnQpfX0se2tleToicmVtb3ZlZENvdW50IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5tYXgodGhpcy5vbGRTZWxlY3Rpb24uZW5kLXRoaXMuc3RhcnRDaGFuZ2VQb3N8fHRoaXMub2xkVmFsdWUubGVuZ3RoLXRoaXMudmFsdWUubGVuZ3RoLDApfX0se2tleToicmVtb3ZlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2xkVmFsdWUuc3Vic3RyKHRoaXMuc3RhcnRDaGFuZ2VQb3MsdGhpcy5yZW1vdmVkQ291bnQpfX0se2tleToiaGVhZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWUuc3Vic3RyaW5nKDAsdGhpcy5zdGFydENoYW5nZVBvcyl9fSx7a2V5OiJ0YWlsIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZS5zdWJzdHJpbmcodGhpcy5zdGFydENoYW5nZVBvcyt0aGlzLmluc2VydGVkQ291bnQpfX0se2tleToicmVtb3ZlRGlyZWN0aW9uIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5yZW1vdmVkQ291bnR8fHRoaXMuaW5zZXJ0ZWRDb3VudD9Hcjp0aGlzLm9sZFNlbGVjdGlvbi5lbmQhPT10aGlzLmN1cnNvclBvcyYmdGhpcy5vbGRTZWxlY3Rpb24uc3RhcnQhPT10aGlzLmN1cnNvclBvc3x8dGhpcy5vbGRTZWxlY3Rpb24uZW5kIT09dGhpcy5vbGRTZWxlY3Rpb24uc3RhcnQ\/S3I6V3J9fV0pLHR9KCksbnU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOiIiLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOjAsaT1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMDt4cih0aGlzLHQpLHRoaXMudmFsdWU9ZSx0aGlzLmZyb209bix0aGlzLnN0b3A9aX1yZXR1cm4gT3IodCxbe2tleToidG9TdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmFsdWV9fSx7a2V5OiJleHRlbmQiLHZhbHVlOmZ1bmN0aW9uKHQpe3RoaXMudmFsdWUrPVN0cmluZyh0KX19LHtrZXk6ImFwcGVuZFRvIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdC5hcHBlbmQodGhpcy50b1N0cmluZygpLHt0YWlsOiEwfSkuYWdncmVnYXRlKHQuX2FwcGVuZFBsYWNlaG9sZGVyKCkpfX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybnt2YWx1ZTp0aGlzLnZhbHVlLGZyb206dGhpcy5mcm9tLHN0b3A6dGhpcy5zdG9wfX0sc2V0OmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKCF0aGlzLnZhbHVlLmxlbmd0aHx8bnVsbCE9dCYmdGhpcy5mcm9tPj10KXJldHVybiIiO3ZhciBlPXRoaXMudmFsdWVbMF07cmV0dXJuIHRoaXMudmFsdWU9dGhpcy52YWx1ZS5zbGljZSgxKSxlfX0se2tleToic2hpZnQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoIXRoaXMudmFsdWUubGVuZ3RoKXJldHVybiIiO3ZhciB0PXRoaXMudmFsdWVbdGhpcy52YWx1ZS5sZW5ndGgtMV07cmV0dXJuIHRoaXMudmFsdWU9dGhpcy52YWx1ZS5zbGljZSgwLC0xKSx0fX1dKSx0fSgpO2Z1bmN0aW9uIGl1KHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtyZXR1cm4gbmV3IGl1LklucHV0TWFzayh0LGUpfXZhciBydT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7eHIodGhpcyx0KSx0aGlzLl92YWx1ZT0iIix0aGlzLl91cGRhdGUoT2JqZWN0LmFzc2lnbih7fSx0LkRFRkFVTFRTLGUpKSx0aGlzLmlzSW5pdGlhbGl6ZWQ9ITB9cmV0dXJuIE9yKHQsW3trZXk6InVwZGF0ZU9wdGlvbnMiLHZhbHVlOmZ1bmN0aW9uKHQpe09iamVjdC5rZXlzKHQpLmxlbmd0aCYmdGhpcy53aXRoVmFsdWVSZWZyZXNoKHRoaXMuX3VwZGF0ZS5iaW5kKHRoaXMsdCkpfX0se2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntfdmFsdWU6dGhpcy52YWx1ZX19LHNldDpmdW5jdGlvbih0KXt0aGlzLl92YWx1ZT10Ll92YWx1ZX19LHtrZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3ZhbHVlPSIifX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMucmVzb2x2ZSh0KX19LHtrZXk6InJlc29sdmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlc2V0KCksdGhpcy5hcHBlbmQodCx7aW5wdXQ6ITB9LCIiKSx0aGlzLmRvQ29tbWl0KCksdGhpcy52YWx1ZX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5yZXNldCgpLHRoaXMuYXBwZW5kKHQse30sIiIpLHRoaXMuZG9Db21taXQoKX19LHtrZXk6InR5cGVkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvUGFyc2UodGhpcy52YWx1ZSl9LHNldDpmdW5jdGlvbih0KXt0aGlzLnZhbHVlPXRoaXMuZG9Gb3JtYXQodCl9fSx7a2V5OiJyYXdJbnB1dFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5leHRyYWN0SW5wdXQoMCx0aGlzLnZhbHVlLmxlbmd0aCx7cmF3OiEwfSl9LHNldDpmdW5jdGlvbih0KXt0aGlzLnJlc2V0KCksdGhpcy5hcHBlbmQodCx7cmF3OiEwfSwiIiksdGhpcy5kb0NvbW1pdCgpfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJpc0ZpbGxlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaXNDb21wbGV0ZX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdH19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gdGhpcy52YWx1ZS5zbGljZSh0LGUpfX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGg7cmV0dXJuIG5ldyBudSh0aGlzLmV4dHJhY3RJbnB1dCh0LGUpLHQpfX0se2tleToiYXBwZW5kVGFpbCIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIFpyKHQpJiYodD1uZXcgbnUoU3RyaW5nKHQpKSksdC5hcHBlbmRUbyh0aGlzKX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdD8odGhpcy5fdmFsdWUrPXQsbmV3IFlyKHtpbnNlcnRlZDp0LHJhd0luc2VydGVkOnR9KSk6bmV3IFlyfX0se2tleToiX2FwcGVuZENoYXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlLG49YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAscj10aGlzLnN0YXRlLHU9UXIodGhpcy5kb1ByZXBhcmUodCxuKSkscz1xcih1LDIpO2lmKHQ9c1swXSwoZT0oZT1zWzFdKS5hZ2dyZWdhdGUodGhpcy5fYXBwZW5kQ2hhclJhdyh0LG4pKSkuaW5zZXJ0ZWQpe3ZhciBhLG89ITEhPT10aGlzLmRvVmFsaWRhdGUobik7aWYobyYmbnVsbCE9aSl7dmFyIGw9dGhpcy5zdGF0ZTshMD09PXRoaXMub3ZlcndyaXRlJiYoYT1pLnN0YXRlLGkudW5zaGlmdCh0aGlzLnZhbHVlLmxlbmd0aCkpO3ZhciBoPXRoaXMuYXBwZW5kVGFpbChpKTsobz1oLnJhd0luc2VydGVkPT09aS50b1N0cmluZygpKSYmaC5pbnNlcnRlZHx8InNoaWZ0IiE9PXRoaXMub3ZlcndyaXRlfHwodGhpcy5zdGF0ZT1sLGE9aS5zdGF0ZSxpLnNoaWZ0KCksbz0oaD10aGlzLmFwcGVuZFRhaWwoaSkpLnJhd0luc2VydGVkPT09aS50b1N0cmluZygpKSxvJiZoLmluc2VydGVkJiYodGhpcy5zdGF0ZT1sKX1vfHwoZT1uZXcgWXIsdGhpcy5zdGF0ZT1yLGkmJmEmJihpLnN0YXRlPWEpKX1yZXR1cm4gZX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IFlyfX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgWXJ9fSx7a2V5OiJhcHBlbmQiLHZhbHVlOmZ1bmN0aW9uKHQsZSxuKXtpZighWnIodCkpdGhyb3cgbmV3IEVycm9yKCJ2YWx1ZSBzaG91bGQgYmUgc3RyaW5nIik7dmFyIGk9bmV3IFlyLHI9WnIobik\/bmV3IG51KFN0cmluZyhuKSk6bjtlJiZlLnRhaWwmJihlLl9iZWZvcmVUYWlsU3RhdGU9dGhpcy5zdGF0ZSk7Zm9yKHZhciB1PTA7dTx0Lmxlbmd0aDsrK3UpaS5hZ2dyZWdhdGUodGhpcy5fYXBwZW5kQ2hhcih0W3VdLGUscikpO3JldHVybiBudWxsIT1yJiYoaS50YWlsU2hpZnQrPXRoaXMuYXBwZW5kVGFpbChyKS50YWlsU2hpZnQpLHRoaXMuZWFnZXImJm51bGwhPWUmJmUuaW5wdXQmJnQmJmkuYWdncmVnYXRlKHRoaXMuX2FwcGVuZEVhZ2VyKCkpLGl9fSx7a2V5OiJyZW1vdmUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGg7cmV0dXJuIHRoaXMuX3ZhbHVlPXRoaXMudmFsdWUuc2xpY2UoMCx0KSt0aGlzLnZhbHVlLnNsaWNlKGUpLG5ldyBZcn19LHtrZXk6IndpdGhWYWx1ZVJlZnJlc2giLHZhbHVlOmZ1bmN0aW9uKHQpe2lmKHRoaXMuX3JlZnJlc2hpbmd8fCF0aGlzLmlzSW5pdGlhbGl6ZWQpcmV0dXJuIHQoKTt0aGlzLl9yZWZyZXNoaW5nPSEwO3ZhciBlPXRoaXMucmF3SW5wdXRWYWx1ZSxuPXRoaXMudmFsdWUsaT10KCk7cmV0dXJuIHRoaXMucmF3SW5wdXRWYWx1ZT1lLHRoaXMudmFsdWUmJnRoaXMudmFsdWUhPT1uJiYwPT09bi5pbmRleE9mKHRoaXMudmFsdWUpJiZ0aGlzLmFwcGVuZChuLnNsaWNlKHRoaXMudmFsdWUubGVuZ3RoKSx7fSwiIiksZGVsZXRlIHRoaXMuX3JlZnJlc2hpbmcsaX19LHtrZXk6InJ1bklzb2xhdGVkIix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9pc29sYXRlZHx8IXRoaXMuaXNJbml0aWFsaXplZClyZXR1cm4gdCh0aGlzKTt0aGlzLl9pc29sYXRlZD0hMDt2YXIgZT10aGlzLnN0YXRlLG49dCh0aGlzKTtyZXR1cm4gdGhpcy5zdGF0ZT1lLGRlbGV0ZSB0aGlzLl9pc29sYXRlZCxufX0se2tleToiZG9QcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e307cmV0dXJuIHRoaXMucHJlcGFyZT90aGlzLnByZXBhcmUodCx0aGlzLGUpOnR9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4oIXRoaXMudmFsaWRhdGV8fHRoaXMudmFsaWRhdGUodGhpcy52YWx1ZSx0aGlzLHQpKSYmKCF0aGlzLnBhcmVudHx8dGhpcy5wYXJlbnQuZG9WYWxpZGF0ZSh0KSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmNvbW1pdCYmdGhpcy5jb21taXQodGhpcy52YWx1ZSx0aGlzKX19LHtrZXk6ImRvRm9ybWF0Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mb3JtYXQ\/dGhpcy5mb3JtYXQodCx0aGlzKTp0fX0se2tleToiZG9QYXJzZSIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucGFyc2U\/dGhpcy5wYXJzZSh0LHRoaXMpOnR9fSx7a2V5OiJzcGxpY2UiLHZhbHVlOmZ1bmN0aW9uKHQsZSxuLGkpe3ZhciByLHU9dCtlLHM9dGhpcy5leHRyYWN0VGFpbCh1KTt0aGlzLmVhZ2VyJiYoaT1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSBLcjpyZXR1cm4gJHI7Y2FzZSBXcjpyZXR1cm4gWHI7ZGVmYXVsdDpyZXR1cm4gdH19KGkpLHI9dGhpcy5leHRyYWN0SW5wdXQoMCx1LHtyYXc6ITB9KSk7dmFyIGE9dGhpcy5uZWFyZXN0SW5wdXRQb3ModCxlPjEmJjAhPT10JiYhdGhpcy5lYWdlcj9HcjppKSxvPW5ldyBZcih7dGFpbFNoaWZ0OmEtdH0pLmFnZ3JlZ2F0ZSh0aGlzLnJlbW92ZShhKSk7aWYodGhpcy5lYWdlciYmaSE9PUdyJiZyPT09dGhpcy5yYXdJbnB1dFZhbHVlKWlmKGk9PT0kcilmb3IodmFyIGw7cj09PXRoaXMucmF3SW5wdXRWYWx1ZSYmKGw9dGhpcy52YWx1ZS5sZW5ndGgpOylvLmFnZ3JlZ2F0ZShuZXcgWXIoe3RhaWxTaGlmdDotMX0pKS5hZ2dyZWdhdGUodGhpcy5yZW1vdmUobC0xKSk7ZWxzZSBpPT09WHImJnMudW5zaGlmdCgpO3JldHVybiBvLmFnZ3JlZ2F0ZSh0aGlzLmFwcGVuZChuLHtpbnB1dDohMH0scykpfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFzaz09PXR9fV0pLHR9KCk7ZnVuY3Rpb24gdXUodCl7aWYobnVsbD09dCl0aHJvdyBuZXcgRXJyb3IoIm1hc2sgcHJvcGVydHkgc2hvdWxkIGJlIGRlZmluZWQiKTtyZXR1cm4gdCBpbnN0YW5jZW9mIFJlZ0V4cD9pdS5NYXNrZWRSZWdFeHA6WnIodCk\/aXUuTWFza2VkUGF0dGVybjp0IGluc3RhbmNlb2YgRGF0ZXx8dD09PURhdGU\/aXUuTWFza2VkRGF0ZTp0IGluc3RhbmNlb2YgTnVtYmVyfHwibnVtYmVyIj09dHlwZW9mIHR8fHQ9PT1OdW1iZXI\/aXUuTWFza2VkTnVtYmVyOkFycmF5LmlzQXJyYXkodCl8fHQ9PT1BcnJheT9pdS5NYXNrZWREeW5hbWljOml1Lk1hc2tlZCYmdC5wcm90b3R5cGUgaW5zdGFuY2VvZiBpdS5NYXNrZWQ\/dDp0IGluc3RhbmNlb2YgaXUuTWFza2VkP3QuY29uc3RydWN0b3I6dCBpbnN0YW5jZW9mIEZ1bmN0aW9uP2l1Lk1hc2tlZEZ1bmN0aW9uOihjb25zb2xlLndhcm4oIk1hc2sgbm90IGZvdW5kIGZvciBtYXNrIix0KSxpdS5NYXNrZWQpfWZ1bmN0aW9uIHN1KHQpe2lmKGl1Lk1hc2tlZCYmdCBpbnN0YW5jZW9mIGl1Lk1hc2tlZClyZXR1cm4gdDt2YXIgZT0odD1PYmplY3QuYXNzaWduKHt9LHQpKS5tYXNrO2lmKGl1Lk1hc2tlZCYmZSBpbnN0YW5jZW9mIGl1Lk1hc2tlZClyZXR1cm4gZTt2YXIgbj11dShlKTtpZighbil0aHJvdyBuZXcgRXJyb3IoIk1hc2tlZCBjbGFzcyBpcyBub3QgZm91bmQgZm9yIHByb3ZpZGVkIG1hc2ssIGFwcHJvcHJpYXRlIG1vZHVsZSBuZWVkcyB0byBiZSBpbXBvcnQgbWFudWFsbHkgYmVmb3JlIGNyZWF0aW5nIG1hc2suIik7cmV0dXJuIG5ldyBuKHQpfXJ1LkRFRkFVTFRTPXtmb3JtYXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9LHBhcnNlOmZ1bmN0aW9uKHQpe3JldHVybiB0fX0saXUuTWFza2VkPXJ1LGl1LmNyZWF0ZU1hc2s9c3U7dmFyIGF1PVsibWFzayJdLG91PXswOi9cZC8sYTovW1x1MDA0MS1cdTAwNUFcdTAwNjEtXHUwMDdBXHUwMEFBXHUwMEI1XHUwMEJBXHUwMEMwLVx1MDBENlx1MDBEOC1cdTAwRjZcdTAwRjgtXHUwMkMxXHUwMkM2LVx1MDJEMVx1MDJFMC1cdTAyRTRcdTAyRUNcdTAyRUVcdTAzNzAtXHUwMzc0XHUwMzc2XHUwMzc3XHUwMzdBLVx1MDM3RFx1MDM4Nlx1MDM4OC1cdTAzOEFcdTAzOENcdTAzOEUtXHUwM0ExXHUwM0EzLVx1MDNGNVx1MDNGNy1cdTA0ODFcdTA0OEEtXHUwNTI3XHUwNTMxLVx1MDU1Nlx1MDU1OVx1MDU2MS1cdTA1ODdcdTA1RDAtXHUwNUVBXHUwNUYwLVx1MDVGMlx1MDYyMC1cdTA2NEFcdTA2NkVcdTA2NkZcdTA2NzEtXHUwNkQzXHUwNkQ1XHUwNkU1XHUwNkU2XHUwNkVFXHUwNkVGXHUwNkZBLVx1MDZGQ1x1MDZGRlx1MDcxMFx1MDcxMi1cdTA3MkZcdTA3NEQtXHUwN0E1XHUwN0IxXHUwN0NBLVx1MDdFQVx1MDdGNFx1MDdGNVx1MDdGQVx1MDgwMC1cdTA4MTVcdTA4MUFcdTA4MjRcdTA4MjhcdTA4NDAtXHUwODU4XHUwOEEwXHUwOEEyLVx1MDhBQ1x1MDkwNC1cdTA5MzlcdTA5M0RcdTA5NTBcdTA5NTgtXHUwOTYxXHUwOTcxLVx1MDk3N1x1MDk3OS1cdTA5N0ZcdTA5ODUtXHUwOThDXHUwOThGXHUwOTkwXHUwOTkzLVx1MDlBOFx1MDlBQS1cdTA5QjBcdTA5QjJcdTA5QjYtXHUwOUI5XHUwOUJEXHUwOUNFXHUwOURDXHUwOUREXHUwOURGLVx1MDlFMVx1MDlGMFx1MDlGMVx1MEEwNS1cdTBBMEFcdTBBMEZcdTBBMTBcdTBBMTMtXHUwQTI4XHUwQTJBLVx1MEEzMFx1MEEzMlx1MEEzM1x1MEEzNVx1MEEzNlx1MEEzOFx1MEEzOVx1MEE1OS1cdTBBNUNcdTBBNUVcdTBBNzItXHUwQTc0XHUwQTg1LVx1MEE4RFx1MEE4Ri1cdTBBOTFcdTBBOTMtXHUwQUE4XHUwQUFBLVx1MEFCMFx1MEFCMlx1MEFCM1x1MEFCNS1cdTBBQjlcdTBBQkRcdTBBRDBcdTBBRTBcdTBBRTFcdTBCMDUtXHUwQjBDXHUwQjBGXHUwQjEwXHUwQjEzLVx1MEIyOFx1MEIyQS1cdTBCMzBcdTBCMzJcdTBCMzNcdTBCMzUtXHUwQjM5XHUwQjNEXHUwQjVDXHUwQjVEXHUwQjVGLVx1MEI2MVx1MEI3MVx1MEI4M1x1MEI4NS1cdTBCOEFcdTBCOEUtXHUwQjkwXHUwQjkyLVx1MEI5NVx1MEI5OVx1MEI5QVx1MEI5Q1x1MEI5RVx1MEI5Rlx1MEJBM1x1MEJBNFx1MEJBOC1cdTBCQUFcdTBCQUUtXHUwQkI5XHUwQkQwXHUwQzA1LVx1MEMwQ1x1MEMwRS1cdTBDMTBcdTBDMTItXHUwQzI4XHUwQzJBLVx1MEMzM1x1MEMzNS1cdTBDMzlcdTBDM0RcdTBDNThcdTBDNTlcdTBDNjBcdTBDNjFcdTBDODUtXHUwQzhDXHUwQzhFLVx1MEM5MFx1MEM5Mi1cdTBDQThcdTBDQUEtXHUwQ0IzXHUwQ0I1LVx1MENCOVx1MENCRFx1MENERVx1MENFMFx1MENFMVx1MENGMVx1MENGMlx1MEQwNS1cdTBEMENcdTBEMEUtXHUwRDEwXHUwRDEyLVx1MEQzQVx1MEQzRFx1MEQ0RVx1MEQ2MFx1MEQ2MVx1MEQ3QS1cdTBEN0ZcdTBEODUtXHUwRDk2XHUwRDlBLVx1MERCMVx1MERCMy1cdTBEQkJcdTBEQkRcdTBEQzAtXHUwREM2XHUwRTAxLVx1MEUzMFx1MEUzMlx1MEUzM1x1MEU0MC1cdTBFNDZcdTBFODFcdTBFODJcdTBFODRcdTBFODdcdTBFODhcdTBFOEFcdTBFOERcdTBFOTQtXHUwRTk3XHUwRTk5LVx1MEU5Rlx1MEVBMS1cdTBFQTNcdTBFQTVcdTBFQTdcdTBFQUFcdTBFQUJcdTBFQUQtXHUwRUIwXHUwRUIyXHUwRUIzXHUwRUJEXHUwRUMwLVx1MEVDNFx1MEVDNlx1MEVEQy1cdTBFREZcdTBGMDBcdTBGNDAtXHUwRjQ3XHUwRjQ5LVx1MEY2Q1x1MEY4OC1cdTBGOENcdTEwMDAtXHUxMDJBXHUxMDNGXHUxMDUwLVx1MTA1NVx1MTA1QS1cdTEwNURcdTEwNjFcdTEwNjVcdTEwNjZcdTEwNkUtXHUxMDcwXHUxMDc1LVx1MTA4MVx1MTA4RVx1MTBBMC1cdTEwQzVcdTEwQzdcdTEwQ0RcdTEwRDAtXHUxMEZBXHUxMEZDLVx1MTI0OFx1MTI0QS1cdTEyNERcdTEyNTAtXHUxMjU2XHUxMjU4XHUxMjVBLVx1MTI1RFx1MTI2MC1cdTEyODhcdTEyOEEtXHUxMjhEXHUxMjkwLVx1MTJCMFx1MTJCMi1cdTEyQjVcdTEyQjgtXHUxMkJFXHUxMkMwXHUxMkMyLVx1MTJDNVx1MTJDOC1cdTEyRDZcdTEyRDgtXHUxMzEwXHUxMzEyLVx1MTMxNVx1MTMxOC1cdTEzNUFcdTEzODAtXHUxMzhGXHUxM0EwLVx1MTNGNFx1MTQwMS1cdTE2NkNcdTE2NkYtXHUxNjdGXHUxNjgxLVx1MTY5QVx1MTZBMC1cdTE2RUFcdTE3MDAtXHUxNzBDXHUxNzBFLVx1MTcxMVx1MTcyMC1cdTE3MzFcdTE3NDAtXHUxNzUxXHUxNzYwLVx1MTc2Q1x1MTc2RS1cdTE3NzBcdTE3ODAtXHUxN0IzXHUxN0Q3XHUxN0RDXHUxODIwLVx1MTg3N1x1MTg4MC1cdTE4QThcdTE4QUFcdTE4QjAtXHUxOEY1XHUxOTAwLVx1MTkxQ1x1MTk1MC1cdTE5NkRcdTE5NzAtXHUxOTc0XHUxOTgwLVx1MTlBQlx1MTlDMS1cdTE5QzdcdTFBMDAtXHUxQTE2XHUxQTIwLVx1MUE1NFx1MUFBN1x1MUIwNS1cdTFCMzNcdTFCNDUtXHUxQjRCXHUxQjgzLVx1MUJBMFx1MUJBRVx1MUJBRlx1MUJCQS1cdTFCRTVcdTFDMDAtXHUxQzIzXHUxQzRELVx1MUM0Rlx1MUM1QS1cdTFDN0RcdTFDRTktXHUxQ0VDXHUxQ0VFLVx1MUNGMVx1MUNGNVx1MUNGNlx1MUQwMC1cdTFEQkZcdTFFMDAtXHUxRjE1XHUxRjE4LVx1MUYxRFx1MUYyMC1cdTFGNDVcdTFGNDgtXHUxRjREXHUxRjUwLVx1MUY1N1x1MUY1OVx1MUY1Qlx1MUY1RFx1MUY1Ri1cdTFGN0RcdTFGODAtXHUxRkI0XHUxRkI2LVx1MUZCQ1x1MUZCRVx1MUZDMi1cdTFGQzRcdTFGQzYtXHUxRkNDXHUxRkQwLVx1MUZEM1x1MUZENi1cdTFGREJcdTFGRTAtXHUxRkVDXHUxRkYyLVx1MUZGNFx1MUZGNi1cdTFGRkNcdTIwNzFcdTIwN0ZcdTIwOTAtXHUyMDlDXHUyMTAyXHUyMTA3XHUyMTBBLVx1MjExM1x1MjExNVx1MjExOS1cdTIxMURcdTIxMjRcdTIxMjZcdTIxMjhcdTIxMkEtXHUyMTJEXHUyMTJGLVx1MjEzOVx1MjEzQy1cdTIxM0ZcdTIxNDUtXHUyMTQ5XHUyMTRFXHUyMTgzXHUyMTg0XHUyQzAwLVx1MkMyRVx1MkMzMC1cdTJDNUVcdTJDNjAtXHUyQ0U0XHUyQ0VCLVx1MkNFRVx1MkNGMlx1MkNGM1x1MkQwMC1cdTJEMjVcdTJEMjdcdTJEMkRcdTJEMzAtXHUyRDY3XHUyRDZGXHUyRDgwLVx1MkQ5Nlx1MkRBMC1cdTJEQTZcdTJEQTgtXHUyREFFXHUyREIwLVx1MkRCNlx1MkRCOC1cdTJEQkVcdTJEQzAtXHUyREM2XHUyREM4LVx1MkRDRVx1MkREMC1cdTJERDZcdTJERDgtXHUyRERFXHUyRTJGXHUzMDA1XHUzMDA2XHUzMDMxLVx1MzAzNVx1MzAzQlx1MzAzQ1x1MzA0MS1cdTMwOTZcdTMwOUQtXHUzMDlGXHUzMEExLVx1MzBGQVx1MzBGQy1cdTMwRkZcdTMxMDUtXHUzMTJEXHUzMTMxLVx1MzE4RVx1MzFBMC1cdTMxQkFcdTMxRjAtXHUzMUZGXHUzNDAwLVx1NERCNVx1NEUwMC1cdTlGQ0NcdUEwMDAtXHVBNDhDXHVBNEQwLVx1QTRGRFx1QTUwMC1cdUE2MENcdUE2MTAtXHVBNjFGXHVBNjJBXHVBNjJCXHVBNjQwLVx1QTY2RVx1QTY3Ri1cdUE2OTdcdUE2QTAtXHVBNkU1XHVBNzE3LVx1QTcxRlx1QTcyMi1cdUE3ODhcdUE3OEItXHVBNzhFXHVBNzkwLVx1QTc5M1x1QTdBMC1cdUE3QUFcdUE3RjgtXHVBODAxXHVBODAzLVx1QTgwNVx1QTgwNy1cdUE4MEFcdUE4MEMtXHVBODIyXHVBODQwLVx1QTg3M1x1QTg4Mi1cdUE4QjNcdUE4RjItXHVBOEY3XHVBOEZCXHVBOTBBLVx1QTkyNVx1QTkzMC1cdUE5NDZcdUE5NjAtXHVBOTdDXHVBOTg0LVx1QTlCMlx1QTlDRlx1QUEwMC1cdUFBMjhcdUFBNDAtXHVBQTQyXHVBQTQ0LVx1QUE0Qlx1QUE2MC1cdUFBNzZcdUFBN0FcdUFBODAtXHVBQUFGXHVBQUIxXHVBQUI1XHVBQUI2XHVBQUI5LVx1QUFCRFx1QUFDMFx1QUFDMlx1QUFEQi1cdUFBRERcdUFBRTAtXHVBQUVBXHVBQUYyLVx1QUFGNFx1QUIwMS1cdUFCMDZcdUFCMDktXHVBQjBFXHVBQjExLVx1QUIxNlx1QUIyMC1cdUFCMjZcdUFCMjgtXHVBQjJFXHVBQkMwLVx1QUJFMlx1QUMwMC1cdUQ3QTNcdUQ3QjAtXHVEN0M2XHVEN0NCLVx1RDdGQlx1RjkwMC1cdUZBNkRcdUZBNzAtXHVGQUQ5XHVGQjAwLVx1RkIwNlx1RkIxMy1cdUZCMTdcdUZCMURcdUZCMUYtXHVGQjI4XHVGQjJBLVx1RkIzNlx1RkIzOC1cdUZCM0NcdUZCM0VcdUZCNDBcdUZCNDFcdUZCNDNcdUZCNDRcdUZCNDYtXHVGQkIxXHVGQkQzLVx1RkQzRFx1RkQ1MC1cdUZEOEZcdUZEOTItXHVGREM3XHVGREYwLVx1RkRGQlx1RkU3MC1cdUZFNzRcdUZFNzYtXHVGRUZDXHVGRjIxLVx1RkYzQVx1RkY0MS1cdUZGNUFcdUZGNjYtXHVGRkJFXHVGRkMyLVx1RkZDN1x1RkZDQS1cdUZGQ0ZcdUZGRDItXHVGRkQ3XHVGRkRBLVx1RkZEQ10vLCIqIjovLi99LGx1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlKXt4cih0aGlzLHQpO3ZhciBuPWUubWFzayxpPWpyKGUsYXUpO3RoaXMubWFza2VkPXN1KHttYXNrOm59KSxPYmplY3QuYXNzaWduKHRoaXMsaSl9cmV0dXJuIE9yKHQsW3trZXk6InJlc2V0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaXNGaWxsZWQ9ITEsdGhpcy5tYXNrZWQucmVzZXQoKX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aDtyZXR1cm4gMD09PXQmJmU+PTE\/KHRoaXMuaXNGaWxsZWQ9ITEsdGhpcy5tYXNrZWQucmVtb3ZlKHQsZSkpOm5ldyBZcn19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQudmFsdWV8fCh0aGlzLmlzRmlsbGVkJiYhdGhpcy5pc09wdGlvbmFsP3RoaXMucGxhY2Vob2xkZXJDaGFyOiIiKX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC51bm1hc2tlZFZhbHVlfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5tYXNrZWQudmFsdWUpfHx0aGlzLmlzT3B0aW9uYWx9fSx7a2V5OiJfYXBwZW5kQ2hhciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O2lmKHRoaXMuaXNGaWxsZWQpcmV0dXJuIG5ldyBZcjt2YXIgbj10aGlzLm1hc2tlZC5zdGF0ZSxpPXRoaXMubWFza2VkLl9hcHBlbmRDaGFyKHQsZSk7cmV0dXJuIGkuaW5zZXJ0ZWQmJiExPT09dGhpcy5kb1ZhbGlkYXRlKGUpJiYoaS5pbnNlcnRlZD1pLnJhd0luc2VydGVkPSIiLHRoaXMubWFza2VkLnN0YXRlPW4pLGkuaW5zZXJ0ZWR8fHRoaXMuaXNPcHRpb25hbHx8dGhpcy5sYXp5fHxlLmlucHV0fHwoaS5pbnNlcnRlZD10aGlzLnBsYWNlaG9sZGVyQ2hhciksaS5za2lwPSFpLmluc2VydGVkJiYhdGhpcy5pc09wdGlvbmFsLHRoaXMuaXNGaWxsZWQ9Qm9vbGVhbihpLmluc2VydGVkKSxpfX0se2tleToiYXBwZW5kIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0O3JldHVybih0PXRoaXMubWFza2VkKS5hcHBlbmQuYXBwbHkodCxhcmd1bWVudHMpfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PW5ldyBZcjtyZXR1cm4gdGhpcy5pc0ZpbGxlZHx8dGhpcy5pc09wdGlvbmFsfHwodGhpcy5pc0ZpbGxlZD0hMCx0Lmluc2VydGVkPXRoaXMucGxhY2Vob2xkZXJDaGFyKSx0fX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgWXJ9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4odD10aGlzLm1hc2tlZCkuZXh0cmFjdFRhaWwuYXBwbHkodCxhcmd1bWVudHMpfX0se2tleToiYXBwZW5kVGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4odD10aGlzLm1hc2tlZCkuYXBwZW5kVGFpbC5hcHBseSh0LGFyZ3VtZW50cyl9fSx7a2V5OiJleHRyYWN0SW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOjAsZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMDtyZXR1cm4gdGhpcy5tYXNrZWQuZXh0cmFjdElucHV0KHQsZSxuKX19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOkdyLG49MCxpPXRoaXMudmFsdWUubGVuZ3RoLHI9TWF0aC5taW4oTWF0aC5tYXgodCxuKSxpKTtzd2l0Y2goZSl7Y2FzZSBLcjpjYXNlICRyOnJldHVybiB0aGlzLmlzQ29tcGxldGU\/cjpuO2Nhc2UgV3I6Y2FzZSBYcjpyZXR1cm4gdGhpcy5pc0NvbXBsZXRlP3I6aTtkZWZhdWx0OnJldHVybiByfX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQsZTtyZXR1cm4odD10aGlzLm1hc2tlZCkuZG9WYWxpZGF0ZS5hcHBseSh0LGFyZ3VtZW50cykmJighdGhpcy5wYXJlbnR8fChlPXRoaXMucGFyZW50KS5kb1ZhbGlkYXRlLmFwcGx5KGUsYXJndW1lbnRzKSl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1hc2tlZC5kb0NvbW1pdCgpfX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybnttYXNrZWQ6dGhpcy5tYXNrZWQuc3RhdGUsaXNGaWxsZWQ6dGhpcy5pc0ZpbGxlZH19LHNldDpmdW5jdGlvbih0KXt0aGlzLm1hc2tlZC5zdGF0ZT10Lm1hc2tlZCx0aGlzLmlzRmlsbGVkPXQuaXNGaWxsZWR9fV0pLHR9KCksaHU9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3hyKHRoaXMsdCksT2JqZWN0LmFzc2lnbih0aGlzLGUpLHRoaXMuX3ZhbHVlPSIiLHRoaXMuaXNGaXhlZD0hMH1yZXR1cm4gT3IodCxbe2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX19LHtrZXk6InVubWFza2VkVmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlzVW5tYXNraW5nP3RoaXMudmFsdWU6IiJ9fSx7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9pc1Jhd0lucHV0PSExLHRoaXMuX3ZhbHVlPSIifX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMuX3ZhbHVlLmxlbmd0aDtyZXR1cm4gdGhpcy5fdmFsdWU9dGhpcy5fdmFsdWUuc2xpY2UoMCx0KSt0aGlzLl92YWx1ZS5zbGljZShlKSx0aGlzLl92YWx1ZXx8KHRoaXMuX2lzUmF3SW5wdXQ9ITEpLG5ldyBZcn19LHtrZXk6Im5lYXJlc3RJbnB1dFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOkdyLG49MCxpPXRoaXMuX3ZhbHVlLmxlbmd0aDtzd2l0Y2goZSl7Y2FzZSBLcjpjYXNlICRyOnJldHVybiBuO2RlZmF1bHQ6cmV0dXJuIGl9fX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMuX3ZhbHVlLmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtyZXR1cm4gbi5yYXcmJnRoaXMuX2lzUmF3SW5wdXQmJnRoaXMuX3ZhbHVlLnNsaWNlKHQsZSl8fCIifX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuITB9fSx7a2V5OiJpc0ZpbGxlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5fdmFsdWUpfX0se2tleToiX2FwcGVuZENoYXIiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPW5ldyBZcjtpZih0aGlzLl92YWx1ZSlyZXR1cm4gbjt2YXIgaT10aGlzLmNoYXI9PT10LHI9aSYmKHRoaXMuaXNVbm1hc2tpbmd8fGUuaW5wdXR8fGUucmF3KSYmIXRoaXMuZWFnZXImJiFlLnRhaWw7cmV0dXJuIHImJihuLnJhd0luc2VydGVkPXRoaXMuY2hhciksdGhpcy5fdmFsdWU9bi5pbnNlcnRlZD10aGlzLmNoYXIsdGhpcy5faXNSYXdJbnB1dD1yJiYoZS5yYXd8fGUuaW5wdXQpLG59fSx7a2V5OiJfYXBwZW5kRWFnZXIiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGVuZENoYXIodGhpcy5jaGFyKX19LHtrZXk6Il9hcHBlbmRQbGFjZWhvbGRlciIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1uZXcgWXI7cmV0dXJuIHRoaXMuX3ZhbHVlfHwodGhpcy5fdmFsdWU9dC5pbnNlcnRlZD10aGlzLmNoYXIpLHR9fSx7a2V5OiJleHRyYWN0VGFpbCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV18fHRoaXMudmFsdWUubGVuZ3RoLG5ldyBudSgiIil9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gWnIodCkmJih0PW5ldyBudShTdHJpbmcodCkpKSx0LmFwcGVuZFRvKHRoaXMpfX0se2tleToiYXBwZW5kIix2YWx1ZTpmdW5jdGlvbih0LGUsbil7dmFyIGk9dGhpcy5fYXBwZW5kQ2hhcih0WzBdLGUpO3JldHVybiBudWxsIT1uJiYoaS50YWlsU2hpZnQrPXRoaXMuYXBwZW5kVGFpbChuKS50YWlsU2hpZnQpLGl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXt9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue192YWx1ZTp0aGlzLl92YWx1ZSxfaXNSYXdJbnB1dDp0aGlzLl9pc1Jhd0lucHV0fX0sc2V0OmZ1bmN0aW9uKHQpe09iamVjdC5hc3NpZ24odGhpcyx0KX19XSksdH0oKSxjdT1bImNodW5rcyJdLGZ1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpbXSxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTowO3hyKHRoaXMsdCksdGhpcy5jaHVua3M9ZSx0aGlzLmZyb209bn1yZXR1cm4gT3IodCxbe2tleToidG9TdHJpbmciLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY2h1bmtzLm1hcChTdHJpbmcpLmpvaW4oIiIpfX0se2tleToiZXh0ZW5kIix2YWx1ZTpmdW5jdGlvbihlKXtpZihTdHJpbmcoZSkpe1pyKGUpJiYoZT1uZXcgbnUoU3RyaW5nKGUpKSk7dmFyIG49dGhpcy5jaHVua3NbdGhpcy5jaHVua3MubGVuZ3RoLTFdLGk9biYmKG4uc3RvcD09PWUuc3RvcHx8bnVsbD09ZS5zdG9wKSYmZS5mcm9tPT09bi5mcm9tK24udG9TdHJpbmcoKS5sZW5ndGg7aWYoZSBpbnN0YW5jZW9mIG51KWk\/bi5leHRlbmQoZS50b1N0cmluZygpKTp0aGlzLmNodW5rcy5wdXNoKGUpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIHQpe2lmKG51bGw9PWUuc3RvcClmb3IodmFyIHI7ZS5jaHVua3MubGVuZ3RoJiZudWxsPT1lLmNodW5rc1swXS5zdG9wOykocj1lLmNodW5rcy5zaGlmdCgpKS5mcm9tKz1lLmZyb20sdGhpcy5leHRlbmQocik7ZS50b1N0cmluZygpJiYoZS5zdG9wPWUuYmxvY2tJbmRleCx0aGlzLmNodW5rcy5wdXNoKGUpKX19fX0se2tleToiYXBwZW5kVG8iLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKCEoZSBpbnN0YW5jZW9mIGl1Lk1hc2tlZFBhdHRlcm4pKXJldHVybiBuZXcgbnUodGhpcy50b1N0cmluZygpKS5hcHBlbmRUbyhlKTtmb3IodmFyIG49bmV3IFlyLGk9MDtpPHRoaXMuY2h1bmtzLmxlbmd0aCYmIW4uc2tpcDsrK2kpe3ZhciByPXRoaXMuY2h1bmtzW2ldLHU9ZS5fbWFwUG9zVG9CbG9jayhlLnZhbHVlLmxlbmd0aCkscz1yLnN0b3AsYT12b2lkIDA7aWYobnVsbCE9cyYmKCF1fHx1LmluZGV4PD1zKSYmKChyIGluc3RhbmNlb2YgdHx8ZS5fc3RvcHMuaW5kZXhPZihzKT49MCkmJm4uYWdncmVnYXRlKGUuX2FwcGVuZFBsYWNlaG9sZGVyKHMpKSxhPXIgaW5zdGFuY2VvZiB0JiZlLl9ibG9ja3Nbc10pLGEpe3ZhciBvPWEuYXBwZW5kVGFpbChyKTtvLnNraXA9ITEsbi5hZ2dyZWdhdGUobyksZS5fdmFsdWUrPW8uaW5zZXJ0ZWQ7dmFyIGw9ci50b1N0cmluZygpLnNsaWNlKG8ucmF3SW5zZXJ0ZWQubGVuZ3RoKTtsJiZuLmFnZ3JlZ2F0ZShlLmFwcGVuZChsLHt0YWlsOiEwfSkpfWVsc2Ugbi5hZ2dyZWdhdGUoZS5hcHBlbmQoci50b1N0cmluZygpLHt0YWlsOiEwfSkpfXJldHVybiBufX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybntjaHVua3M6dGhpcy5jaHVua3MubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdGF0ZX0pKSxmcm9tOnRoaXMuZnJvbSxzdG9wOnRoaXMuc3RvcCxibG9ja0luZGV4OnRoaXMuYmxvY2tJbmRleH19LHNldDpmdW5jdGlvbihlKXt2YXIgbj1lLmNodW5rcyxpPWpyKGUsY3UpO09iamVjdC5hc3NpZ24odGhpcyxpKSx0aGlzLmNodW5rcz1uLm1hcCgoZnVuY3Rpb24oZSl7dmFyIG49ImNodW5rcyJpbiBlP25ldyB0Om5ldyBudTtyZXR1cm4gbi5zdGF0ZT1lLG59KSl9fSx7a2V5OiJ1bnNoaWZ0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZighdGhpcy5jaHVua3MubGVuZ3RofHxudWxsIT10JiZ0aGlzLmZyb20+PXQpcmV0dXJuIiI7Zm9yKHZhciBlPW51bGwhPXQ\/dC10aGlzLmZyb206dCxuPTA7bjx0aGlzLmNodW5rcy5sZW5ndGg7KXt2YXIgaT10aGlzLmNodW5rc1tuXSxyPWkudW5zaGlmdChlKTtpZihpLnRvU3RyaW5nKCkpe2lmKCFyKWJyZWFrOysrbn1lbHNlIHRoaXMuY2h1bmtzLnNwbGljZShuLDEpO2lmKHIpcmV0dXJuIHJ9cmV0dXJuIiJ9fSx7a2V5OiJzaGlmdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZighdGhpcy5jaHVua3MubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgdD10aGlzLmNodW5rcy5sZW5ndGgtMTswPD10Oyl7dmFyIGU9dGhpcy5jaHVua3NbdF0sbj1lLnNoaWZ0KCk7aWYoZS50b1N0cmluZygpKXtpZighbilicmVhazstLXR9ZWxzZSB0aGlzLmNodW5rcy5zcGxpY2UodCwxKTtpZihuKXJldHVybiBufXJldHVybiIifX1dKSx0fSgpLHB1PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLG4pe3hyKHRoaXMsdCksdGhpcy5tYXNrZWQ9ZSx0aGlzLl9sb2c9W107dmFyIGk9ZS5fbWFwUG9zVG9CbG9jayhuKXx8KG48MD97aW5kZXg6MCxvZmZzZXQ6MH06e2luZGV4OnRoaXMubWFza2VkLl9ibG9ja3MubGVuZ3RoLG9mZnNldDowfSkscj1pLm9mZnNldCx1PWkuaW5kZXg7dGhpcy5vZmZzZXQ9cix0aGlzLmluZGV4PXUsdGhpcy5vaz0hMX1yZXR1cm4gT3IodCxbe2tleToiYmxvY2siLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC5fYmxvY2tzW3RoaXMuaW5kZXhdfX0se2tleToicG9zIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXNrZWQuX2Jsb2NrU3RhcnRQb3ModGhpcy5pbmRleCkrdGhpcy5vZmZzZXR9fSx7a2V5OiJzdGF0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJue2luZGV4OnRoaXMuaW5kZXgsb2Zmc2V0OnRoaXMub2Zmc2V0LG9rOnRoaXMub2t9fSxzZXQ6ZnVuY3Rpb24odCl7T2JqZWN0LmFzc2lnbih0aGlzLHQpfX0se2tleToicHVzaFN0YXRlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2xvZy5wdXNoKHRoaXMuc3RhdGUpfX0se2tleToicG9wU3RhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbG9nLnBvcCgpO3JldHVybiB0aGlzLnN0YXRlPXQsdH19LHtrZXk6ImJpbmRCbG9jayIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLmJsb2NrfHwodGhpcy5pbmRleDwwJiYodGhpcy5pbmRleD0wLHRoaXMub2Zmc2V0PTApLHRoaXMuaW5kZXg+PXRoaXMubWFza2VkLl9ibG9ja3MubGVuZ3RoJiYodGhpcy5pbmRleD10aGlzLm1hc2tlZC5fYmxvY2tzLmxlbmd0aC0xLHRoaXMub2Zmc2V0PXRoaXMuYmxvY2sudmFsdWUubGVuZ3RoKSl9fSx7a2V5OiJfcHVzaExlZnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih0aGlzLnB1c2hTdGF0ZSgpLHRoaXMuYmluZEJsb2NrKCk7MDw9dGhpcy5pbmRleDstLXRoaXMuaW5kZXgsdGhpcy5vZmZzZXQ9KG51bGw9PT0oZT10aGlzLmJsb2NrKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS52YWx1ZS5sZW5ndGgpfHwwKXt2YXIgZTtpZih0KCkpcmV0dXJuIHRoaXMub2s9ITB9cmV0dXJuIHRoaXMub2s9ITF9fSx7a2V5OiJfcHVzaFJpZ2h0Iix2YWx1ZTpmdW5jdGlvbih0KXtmb3IodGhpcy5wdXNoU3RhdGUoKSx0aGlzLmJpbmRCbG9jaygpO3RoaXMuaW5kZXg8dGhpcy5tYXNrZWQuX2Jsb2Nrcy5sZW5ndGg7Kyt0aGlzLmluZGV4LHRoaXMub2Zmc2V0PTApaWYodCgpKXJldHVybiB0aGlzLm9rPSEwO3JldHVybiB0aGlzLm9rPSExfX0se2tleToicHVzaExlZnRCZWZvcmVGaWxsZWQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaExlZnQoKGZ1bmN0aW9uKCl7aWYoIXQuYmxvY2suaXNGaXhlZCYmdC5ibG9jay52YWx1ZSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsJHIpLDAhPT10Lm9mZnNldHx8dm9pZCAwfSkpfX0se2tleToicHVzaExlZnRCZWZvcmVJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiB0aGlzLl9wdXNoTGVmdCgoZnVuY3Rpb24oKXtpZighdC5ibG9jay5pc0ZpeGVkKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxLciksITB9KSl9fSx7a2V5OiJwdXNoTGVmdEJlZm9yZVJlcXVpcmVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hMZWZ0KChmdW5jdGlvbigpe2lmKCEodC5ibG9jay5pc0ZpeGVkfHx0LmJsb2NrLmlzT3B0aW9uYWwmJiF0LmJsb2NrLnZhbHVlKSlyZXR1cm4gdC5vZmZzZXQ9dC5ibG9jay5uZWFyZXN0SW5wdXRQb3ModC5vZmZzZXQsS3IpLCEwfSkpfX0se2tleToicHVzaFJpZ2h0QmVmb3JlRmlsbGVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hSaWdodCgoZnVuY3Rpb24oKXtpZighdC5ibG9jay5pc0ZpeGVkJiZ0LmJsb2NrLnZhbHVlKXJldHVybiB0Lm9mZnNldD10LmJsb2NrLm5lYXJlc3RJbnB1dFBvcyh0Lm9mZnNldCxYciksdC5vZmZzZXQhPT10LmJsb2NrLnZhbHVlLmxlbmd0aHx8dm9pZCAwfSkpfX0se2tleToicHVzaFJpZ2h0QmVmb3JlSW5wdXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5fcHVzaFJpZ2h0KChmdW5jdGlvbigpe2lmKCF0LmJsb2NrLmlzRml4ZWQpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LEdyKSwhMH0pKX19LHtrZXk6InB1c2hSaWdodEJlZm9yZVJlcXVpcmVkIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7cmV0dXJuIHRoaXMuX3B1c2hSaWdodCgoZnVuY3Rpb24oKXtpZighKHQuYmxvY2suaXNGaXhlZHx8dC5ibG9jay5pc09wdGlvbmFsJiYhdC5ibG9jay52YWx1ZSkpcmV0dXJuIHQub2Zmc2V0PXQuYmxvY2submVhcmVzdElucHV0UG9zKHQub2Zmc2V0LEdyKSwhMH0pKX19XSksdH0oKSxkdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5tYXNrJiYodC52YWxpZGF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gZS5zZWFyY2godC5tYXNrKT49MH0pLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX1dKSxufShydSk7aXUuTWFza2VkUmVnRXhwPWR1O3ZhciB2dT1bIl9ibG9ja3MiXSxndT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06e307cmV0dXJuIHhyKHRoaXMsbiksdC5kZWZpbml0aW9ucz1PYmplY3QuYXNzaWduKHt9LG91LHQuZGVmaW5pdGlvbnMpLGUuY2FsbCh0aGlzLE9iamVjdC5hc3NpZ24oe30sbi5ERUZBVUxUUyx0KSl9cmV0dXJuIE9yKG4sW3trZXk6Il91cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOnt9O3QuZGVmaW5pdGlvbnM9T2JqZWN0LmFzc2lnbih7fSx0aGlzLmRlZmluaXRpb25zLHQuZGVmaW5pdGlvbnMpLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpLHRoaXMuX3JlYnVpbGRNYXNrKCl9fSx7a2V5OiJfcmVidWlsZE1hc2siLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXMuZGVmaW5pdGlvbnM7dGhpcy5fYmxvY2tzPVtdLHRoaXMuX3N0b3BzPVtdLHRoaXMuX21hc2tlZEJsb2Nrcz17fTt2YXIgaT10aGlzLm1hc2s7aWYoaSYmZSlmb3IodmFyIHI9ITEsdT0hMSxzPTA7czxpLmxlbmd0aDsrK3Mpe2lmKHRoaXMuYmxvY2tzKWlmKCJjb250aW51ZSI9PT1mdW5jdGlvbigpe3ZhciBlPWkuc2xpY2Uocyksbj1PYmplY3Qua2V5cyh0LmJsb2NrcykuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gMD09PWUuaW5kZXhPZih0KX0pKTtuLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUubGVuZ3RoLXQubGVuZ3RofSkpO3ZhciByPW5bMF07aWYocil7dmFyIHU9c3UoT2JqZWN0LmFzc2lnbih7cGFyZW50OnQsbGF6eTp0LmxhenksZWFnZXI6dC5lYWdlcixwbGFjZWhvbGRlckNoYXI6dC5wbGFjZWhvbGRlckNoYXIsb3ZlcndyaXRlOnQub3ZlcndyaXRlfSx0LmJsb2Nrc1tyXSkpO3JldHVybiB1JiYodC5fYmxvY2tzLnB1c2godSksdC5fbWFza2VkQmxvY2tzW3JdfHwodC5fbWFza2VkQmxvY2tzW3JdPVtdKSx0Ll9tYXNrZWRCbG9ja3Nbcl0ucHVzaCh0Ll9ibG9ja3MubGVuZ3RoLTEpKSxzKz1yLmxlbmd0aC0xLCJjb250aW51ZSJ9fSgpKWNvbnRpbnVlO3ZhciBhPWlbc10sbz1hIGluIGU7aWYoYSE9PW4uU1RPUF9DSEFSKWlmKCJ7IiE9PWEmJiJ9IiE9PWEpaWYoIlsiIT09YSYmIl0iIT09YSl7aWYoYT09PW4uRVNDQVBFX0NIQVIpe2lmKCsrcywhKGE9aVtzXSkpYnJlYWs7bz0hMX12YXIgbD1vP25ldyBsdSh7cGFyZW50OnRoaXMsbGF6eTp0aGlzLmxhenksZWFnZXI6dGhpcy5lYWdlcixwbGFjZWhvbGRlckNoYXI6dGhpcy5wbGFjZWhvbGRlckNoYXIsbWFzazplW2FdLGlzT3B0aW9uYWw6dX0pOm5ldyBodSh7Y2hhcjphLGVhZ2VyOnRoaXMuZWFnZXIsaXNVbm1hc2tpbmc6cn0pO3RoaXMuX2Jsb2Nrcy5wdXNoKGwpfWVsc2UgdT0hdTtlbHNlIHI9IXI7ZWxzZSB0aGlzLl9zdG9wcy5wdXNoKHRoaXMuX2Jsb2Nrcy5sZW5ndGgpfX19LHtrZXk6InN0YXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gT2JqZWN0LmFzc2lnbih7fSxOcihUcihuLnByb3RvdHlwZSksInN0YXRlIix0aGlzKSx7X2Jsb2Nrczp0aGlzLl9ibG9ja3MubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdGF0ZX0pKX0pfSxzZXQ6ZnVuY3Rpb24odCl7dmFyIGU9dC5fYmxvY2tzLGk9anIodCx2dSk7dGhpcy5fYmxvY2tzLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHQuc3RhdGU9ZVtuXX0pKSx6cihUcihuLnByb3RvdHlwZSksInN0YXRlIixpLHRoaXMsITApfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7TnIoVHIobi5wcm90b3R5cGUpLCJyZXNldCIsdGhpcykuY2FsbCh0aGlzKSx0aGlzLl9ibG9ja3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVzZXQoKX0pKX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9ibG9ja3MuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzQ29tcGxldGV9KSl9fSx7a2V5OiJpc0ZpbGxlZCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNGaWxsZWR9KSl9fSx7a2V5OiJpc0ZpeGVkIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc0ZpeGVkfSkpfX0se2tleToiaXNPcHRpb25hbCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNPcHRpb25hbH0pKX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2Jsb2Nrcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kb0NvbW1pdCgpfSkpLE5yKFRyKG4ucHJvdG90eXBlKSwiZG9Db21taXQiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYmxvY2tzLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLnVubWFza2VkVmFsdWV9KSwiIil9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInVubWFza2VkVmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZS52YWx1ZX0pLCIiKX0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJhcHBlbmRUYWlsIix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gTnIoVHIobi5wcm90b3R5cGUpLCJhcHBlbmRUYWlsIix0aGlzKS5jYWxsKHRoaXMsdCkuYWdncmVnYXRlKHRoaXMuX2FwcGVuZFBsYWNlaG9sZGVyKCkpfX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU9bmV3IFlyLG49bnVsbD09PSh0PXRoaXMuX21hcFBvc1RvQmxvY2sodGhpcy52YWx1ZS5sZW5ndGgpKXx8dm9pZCAwPT09dD92b2lkIDA6dC5pbmRleDtpZihudWxsPT1uKXJldHVybiBlO3RoaXMuX2Jsb2Nrc1tuXS5pc0ZpbGxlZCYmKytuO2Zvcih2YXIgaT1uO2k8dGhpcy5fYmxvY2tzLmxlbmd0aDsrK2kpe3ZhciByPXRoaXMuX2Jsb2Nrc1tpXS5fYXBwZW5kRWFnZXIoKTtpZighci5pbnNlcnRlZClicmVhaztlLmFnZ3JlZ2F0ZShyKX1yZXR1cm4gZX19LHtrZXk6Il9hcHBlbmRDaGFyUmF3Iix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06e30sbj10aGlzLl9tYXBQb3NUb0Jsb2NrKHRoaXMudmFsdWUubGVuZ3RoKSxpPW5ldyBZcjtpZighbilyZXR1cm4gaTtmb3IodmFyIHI9bi5pbmRleDs7KytyKXt2YXIgdSxzPXRoaXMuX2Jsb2Nrc1tyXTtpZighcylicmVhazt2YXIgYT1zLl9hcHBlbmRDaGFyKHQsT2JqZWN0LmFzc2lnbih7fSxlLHtfYmVmb3JlVGFpbFN0YXRlOm51bGw9PT0odT1lLl9iZWZvcmVUYWlsU3RhdGUpfHx2b2lkIDA9PT11P3ZvaWQgMDp1Ll9ibG9ja3Nbcl19KSksbz1hLnNraXA7aWYoaS5hZ2dyZWdhdGUoYSksb3x8YS5yYXdJbnNlcnRlZClicmVha31yZXR1cm4gaX19LHtrZXk6ImV4dHJhY3RUYWlsIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxuPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxpPW5ldyBmdTtyZXR1cm4gZT09PW58fHRoaXMuX2ZvckVhY2hCbG9ja3NJblJhbmdlKGUsbiwoZnVuY3Rpb24oZSxuLHIsdSl7dmFyIHM9ZS5leHRyYWN0VGFpbChyLHUpO3Muc3RvcD10Ll9maW5kU3RvcEJlZm9yZShuKSxzLmZyb209dC5fYmxvY2tTdGFydFBvcyhuKSxzIGluc3RhbmNlb2YgZnUmJihzLmJsb2NrSW5kZXg9biksaS5leHRlbmQocyl9KSksaX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxuPWFyZ3VtZW50cy5sZW5ndGg+MiYmdm9pZCAwIT09YXJndW1lbnRzWzJdP2FyZ3VtZW50c1syXTp7fTtpZih0PT09ZSlyZXR1cm4iIjt2YXIgaT0iIjtyZXR1cm4gdGhpcy5fZm9yRWFjaEJsb2Nrc0luUmFuZ2UodCxlLChmdW5jdGlvbih0LGUscix1KXtpKz10LmV4dHJhY3RJbnB1dChyLHUsbil9KSksaX19LHtrZXk6Il9maW5kU3RvcEJlZm9yZSIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlLG49MDtuPHRoaXMuX3N0b3BzLmxlbmd0aDsrK24pe3ZhciBpPXRoaXMuX3N0b3BzW25dO2lmKCEoaTw9dCkpYnJlYWs7ZT1pfXJldHVybiBlfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLG49bmV3IFlyO2lmKHRoaXMubGF6eSYmbnVsbD09dClyZXR1cm4gbjt2YXIgaT10aGlzLl9tYXBQb3NUb0Jsb2NrKHRoaXMudmFsdWUubGVuZ3RoKTtpZighaSlyZXR1cm4gbjt2YXIgcj1pLmluZGV4LHU9bnVsbCE9dD90OnRoaXMuX2Jsb2Nrcy5sZW5ndGg7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5zbGljZShyLHUpLmZvckVhY2goKGZ1bmN0aW9uKGkpe2lmKCFpLmxhenl8fG51bGwhPXQpe3ZhciByPW51bGwhPWkuX2Jsb2Nrcz9baS5fYmxvY2tzLmxlbmd0aF06W10sdT1pLl9hcHBlbmRQbGFjZWhvbGRlci5hcHBseShpLHIpO2UuX3ZhbHVlKz11Lmluc2VydGVkLG4uYWdncmVnYXRlKHUpfX0pKSxufX0se2tleToiX21hcFBvc1RvQmxvY2siLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0iIixuPTA7bjx0aGlzLl9ibG9ja3MubGVuZ3RoOysrbil7dmFyIGk9dGhpcy5fYmxvY2tzW25dLHI9ZS5sZW5ndGg7aWYodDw9KGUrPWkudmFsdWUpLmxlbmd0aClyZXR1cm57aW5kZXg6bixvZmZzZXQ6dC1yfX19fSx7a2V5OiJfYmxvY2tTdGFydFBvcyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2Jsb2Nrcy5zbGljZSgwLHQpLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLnZhbHVlLmxlbmd0aH0pLDApfX0se2tleToiX2ZvckVhY2hCbG9ja3NJblJhbmdlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06dGhpcy52YWx1ZS5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjI\/YXJndW1lbnRzWzJdOnZvaWQgMCxpPXRoaXMuX21hcFBvc1RvQmxvY2sodCk7aWYoaSl7dmFyIHI9dGhpcy5fbWFwUG9zVG9CbG9jayhlKSx1PXImJmkuaW5kZXg9PT1yLmluZGV4LHM9aS5vZmZzZXQsYT1yJiZ1P3Iub2Zmc2V0OnRoaXMuX2Jsb2Nrc1tpLmluZGV4XS52YWx1ZS5sZW5ndGg7aWYobih0aGlzLl9ibG9ja3NbaS5pbmRleF0saS5pbmRleCxzLGEpLHImJiF1KXtmb3IodmFyIG89aS5pbmRleCsxO288ci5pbmRleDsrK28pbih0aGlzLl9ibG9ja3Nbb10sbywwLHRoaXMuX2Jsb2Nrc1tvXS52YWx1ZS5sZW5ndGgpO24odGhpcy5fYmxvY2tzW3IuaW5kZXhdLHIuaW5kZXgsMCxyLm9mZnNldCl9fX19LHtrZXk6InJlbW92ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHMubGVuZ3RoPjAmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06MCxlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp0aGlzLnZhbHVlLmxlbmd0aCxpPU5yKFRyKG4ucHJvdG90eXBlKSwicmVtb3ZlIix0aGlzKS5jYWxsKHRoaXMsdCxlKTtyZXR1cm4gdGhpcy5fZm9yRWFjaEJsb2Nrc0luUmFuZ2UodCxlLChmdW5jdGlvbih0LGUsbixyKXtpLmFnZ3JlZ2F0ZSh0LnJlbW92ZShuLHIpKX0pKSxpfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoPjEmJnZvaWQgMCE9PWFyZ3VtZW50c1sxXT9hcmd1bWVudHNbMV06R3I7aWYoIXRoaXMuX2Jsb2Nrcy5sZW5ndGgpcmV0dXJuIDA7dmFyIG49bmV3IHB1KHRoaXMsdCk7aWYoZT09PUdyKXJldHVybiBuLnB1c2hSaWdodEJlZm9yZUlucHV0KCk\/bi5wb3M6KG4ucG9wU3RhdGUoKSxuLnB1c2hMZWZ0QmVmb3JlSW5wdXQoKT9uLnBvczp0aGlzLnZhbHVlLmxlbmd0aCk7aWYoZT09PUtyfHxlPT09JHIpe2lmKGU9PT1Lcil7aWYobi5wdXNoUmlnaHRCZWZvcmVGaWxsZWQoKSxuLm9rJiZuLnBvcz09PXQpcmV0dXJuIHQ7bi5wb3BTdGF0ZSgpfWlmKG4ucHVzaExlZnRCZWZvcmVJbnB1dCgpLG4ucHVzaExlZnRCZWZvcmVSZXF1aXJlZCgpLG4ucHVzaExlZnRCZWZvcmVGaWxsZWQoKSxlPT09S3Ipe2lmKG4ucHVzaFJpZ2h0QmVmb3JlSW5wdXQoKSxuLnB1c2hSaWdodEJlZm9yZVJlcXVpcmVkKCksbi5vayYmbi5wb3M8PXQpcmV0dXJuIG4ucG9zO2lmKG4ucG9wU3RhdGUoKSxuLm9rJiZuLnBvczw9dClyZXR1cm4gbi5wb3M7bi5wb3BTdGF0ZSgpfXJldHVybiBuLm9rP24ucG9zOmU9PT0kcj8wOihuLnBvcFN0YXRlKCksbi5vaz9uLnBvczoobi5wb3BTdGF0ZSgpLG4ub2s\/bi5wb3M6MCkpfXJldHVybiBlPT09V3J8fGU9PT1Ycj8obi5wdXNoUmlnaHRCZWZvcmVJbnB1dCgpLG4ucHVzaFJpZ2h0QmVmb3JlUmVxdWlyZWQoKSxuLnB1c2hSaWdodEJlZm9yZUZpbGxlZCgpP24ucG9zOmU9PT1Ycj90aGlzLnZhbHVlLmxlbmd0aDoobi5wb3BTdGF0ZSgpLG4ub2s\/bi5wb3M6KG4ucG9wU3RhdGUoKSxuLm9rP24ucG9zOnRoaXMubmVhcmVzdElucHV0UG9zKHQsS3IpKSkpOnR9fSx7a2V5OiJtYXNrZWRCbG9jayIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubWFza2VkQmxvY2tzKHQpWzBdfX0se2tleToibWFza2VkQmxvY2tzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLG49dGhpcy5fbWFza2VkQmxvY2tzW3RdO3JldHVybiBuP24ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZS5fYmxvY2tzW3RdfSkpOltdfX1dKSxufShydSk7Z3UuREVGQVVMVFM9e2xhenk6ITAscGxhY2Vob2xkZXJDaGFyOiJfIn0sZ3UuU1RPUF9DSEFSPSJgIixndS5FU0NBUEVfQ0hBUj0iXFwiLGd1LklucHV0RGVmaW5pdGlvbj1sdSxndS5GaXhlZERlZmluaXRpb249aHUsaXUuTWFza2VkUGF0dGVybj1ndTt2YXIga3U9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKCl7cmV0dXJuIHhyKHRoaXMsbiksZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIE9yKG4sW3trZXk6Il9tYXRjaEZyb20iLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heExlbmd0aC1TdHJpbmcodGhpcy5mcm9tKS5sZW5ndGh9fSx7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0PU9iamVjdC5hc3NpZ24oe3RvOnRoaXMudG98fDAsZnJvbTp0aGlzLmZyb218fDAsbWF4TGVuZ3RoOnRoaXMubWF4TGVuZ3RofHwwfSx0KTt2YXIgZT1TdHJpbmcodC50bykubGVuZ3RoO251bGwhPXQubWF4TGVuZ3RoJiYoZT1NYXRoLm1heChlLHQubWF4TGVuZ3RoKSksdC5tYXhMZW5ndGg9ZTtmb3IodmFyIGk9U3RyaW5nKHQuZnJvbSkucGFkU3RhcnQoZSwiMCIpLHI9U3RyaW5nKHQudG8pLnBhZFN0YXJ0KGUsIjAiKSx1PTA7dTxyLmxlbmd0aCYmclt1XT09PWlbdV07KSsrdTt0Lm1hc2s9ci5zbGljZSgwLHUpLnJlcGxhY2UoLzAvZywiXFwwIikrIjAiLnJlcGVhdChlLXUpLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX0se2tleToiaXNDb21wbGV0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE5yKFRyKG4ucHJvdG90eXBlKSwiaXNDb21wbGV0ZSIsdGhpcykmJkJvb2xlYW4odGhpcy52YWx1ZSl9fSx7a2V5OiJib3VuZGFyaWVzIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT0iIixuPSIiLGk9cXIodC5tYXRjaCgvXihcRCopKFxkKikoXEQqKS8pfHxbXSwzKSxyPWlbMV0sdT1pWzJdO3JldHVybiB1JiYoZT0iMCIucmVwZWF0KHIubGVuZ3RoKSt1LG49IjkiLnJlcGVhdChyLmxlbmd0aCkrdSksW2U9ZS5wYWRFbmQodGhpcy5tYXhMZW5ndGgsIjAiKSxuPW4ucGFkRW5kKHRoaXMubWF4TGVuZ3RoLCI5IildfX0se2tleToiZG9QcmVwYXJlIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZSxpPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxyPVFyKE5yKFRyKG4ucHJvdG90eXBlKSwiZG9QcmVwYXJlIix0aGlzKS5jYWxsKHRoaXMsdC5yZXBsYWNlKC9cRC9nLCIiKSxpKSksdT1xcihyLDIpO2lmKHQ9dVswXSxlPXVbMV0sIXRoaXMuYXV0b2ZpeHx8IXQpcmV0dXJuIHQ7dmFyIHM9U3RyaW5nKHRoaXMuZnJvbSkucGFkU3RhcnQodGhpcy5tYXhMZW5ndGgsIjAiKSxhPVN0cmluZyh0aGlzLnRvKS5wYWRTdGFydCh0aGlzLm1heExlbmd0aCwiMCIpLG89dGhpcy52YWx1ZSt0O2lmKG8ubGVuZ3RoPnRoaXMubWF4TGVuZ3RoKXJldHVybiIiO3ZhciBsPXRoaXMuYm91bmRhcmllcyhvKSxoPXFyKGwsMiksYz1oWzBdLGY9aFsxXTtyZXR1cm4gTnVtYmVyKGYpPHRoaXMuZnJvbT9zW28ubGVuZ3RoLTFdOk51bWJlcihjKT50aGlzLnRvPyJwYWQiPT09dGhpcy5hdXRvZml4JiZvLmxlbmd0aDx0aGlzLm1heExlbmd0aD9bIiIsZS5hZ2dyZWdhdGUodGhpcy5hcHBlbmQoc1tvLmxlbmd0aC0xXSt0LGkpKV06YVtvLmxlbmd0aC0xXTp0fX0se2tleToiZG9WYWxpZGF0ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdCxlPXRoaXMudmFsdWUsaT1lLnNlYXJjaCgvW14wXS8pO2lmKC0xPT09aSYmZS5sZW5ndGg8PXRoaXMuX21hdGNoRnJvbSlyZXR1cm4hMDtmb3IodmFyIHI9dGhpcy5ib3VuZGFyaWVzKGUpLHU9cXIociwyKSxzPXVbMF0sYT11WzFdLG89YXJndW1lbnRzLmxlbmd0aCxsPW5ldyBBcnJheShvKSxoPTA7aDxvO2grKylsW2hdPWFyZ3VtZW50c1toXTtyZXR1cm4gdGhpcy5mcm9tPD1OdW1iZXIoYSkmJk51bWJlcihzKTw9dGhpcy50byYmKHQ9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQobCkpfX1dKSxufShndSk7aXUuTWFza2VkUmFuZ2U9a3U7dmFyIHl1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbih0KXtyZXR1cm4geHIodGhpcyxuKSxlLmNhbGwodGhpcyxPYmplY3QuYXNzaWduKHt9LG4uREVGQVVMVFMsdCkpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0Lm1hc2s9PT1EYXRlJiZkZWxldGUgdC5tYXNrLHQucGF0dGVybiYmKHQubWFzaz10LnBhdHRlcm4pO3ZhciBlPXQuYmxvY2tzO3QuYmxvY2tzPU9iamVjdC5hc3NpZ24oe30sbi5HRVRfREVGQVVMVF9CTE9DS1MoKSksdC5taW4mJih0LmJsb2Nrcy5ZLmZyb209dC5taW4uZ2V0RnVsbFllYXIoKSksdC5tYXgmJih0LmJsb2Nrcy5ZLnRvPXQubWF4LmdldEZ1bGxZZWFyKCkpLHQubWluJiZ0Lm1heCYmdC5ibG9ja3MuWS5mcm9tPT09dC5ibG9ja3MuWS50byYmKHQuYmxvY2tzLm0uZnJvbT10Lm1pbi5nZXRNb250aCgpKzEsdC5ibG9ja3MubS50bz10Lm1heC5nZXRNb250aCgpKzEsdC5ibG9ja3MubS5mcm9tPT09dC5ibG9ja3MubS50byYmKHQuYmxvY2tzLmQuZnJvbT10Lm1pbi5nZXREYXRlKCksdC5ibG9ja3MuZC50bz10Lm1heC5nZXREYXRlKCkpKSxPYmplY3QuYXNzaWduKHQuYmxvY2tzLHRoaXMuYmxvY2tzLGUpLE9iamVjdC5rZXlzKHQuYmxvY2tzKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj10LmJsb2Nrc1tlXTshKCJhdXRvZml4ImluIG4pJiYiYXV0b2ZpeCJpbiB0JiYobi5hdXRvZml4PXQuYXV0b2ZpeCl9KSksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXRoaXMuZGF0ZSxpPWFyZ3VtZW50cy5sZW5ndGgscj1uZXcgQXJyYXkoaSksdT0wO3U8aTt1Kyspclt1XT1hcmd1bWVudHNbdV07cmV0dXJuKHQ9TnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKSkuY2FsbC5hcHBseSh0LFt0aGlzXS5jb25jYXQocikpJiYoIXRoaXMuaXNDb21wbGV0ZXx8dGhpcy5pc0RhdGVFeGlzdCh0aGlzLnZhbHVlKSYmbnVsbCE9ZSYmKG51bGw9PXRoaXMubWlufHx0aGlzLm1pbjw9ZSkmJihudWxsPT10aGlzLm1heHx8ZTw9dGhpcy5tYXgpKX19LHtrZXk6ImlzRGF0ZUV4aXN0Iix2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mb3JtYXQodGhpcy5wYXJzZSh0LHRoaXMpLHRoaXMpLmluZGV4T2YodCk+PTB9fSx7a2V5OiJkYXRlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50eXBlZFZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy50eXBlZFZhbHVlPXR9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0NvbXBsZXRlP05yKFRyKG4ucHJvdG90eXBlKSwidHlwZWRWYWx1ZSIsdGhpcyk6bnVsbH0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidHlwZWRWYWx1ZSIsdCx0aGlzLCEwKX19LHtrZXk6Im1hc2tFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0PT09RGF0ZXx8TnIoVHIobi5wcm90b3R5cGUpLCJtYXNrRXF1YWxzIix0aGlzKS5jYWxsKHRoaXMsdCl9fV0pLG59KGd1KTt5dS5ERUZBVUxUUz17cGF0dGVybjoiZHsufWBtey59YFkiLGZvcm1hdDpmdW5jdGlvbih0KXtyZXR1cm4gdD9bU3RyaW5nKHQuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCIwIiksU3RyaW5nKHQuZ2V0TW9udGgoKSsxKS5wYWRTdGFydCgyLCIwIiksdC5nZXRGdWxsWWVhcigpXS5qb2luKCIuIik6IiJ9LHBhcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPXFyKHQuc3BsaXQoIi4iKSwzKSxuPWVbMF0saT1lWzFdLHI9ZVsyXTtyZXR1cm4gbmV3IERhdGUocixpLTEsbil9fSx5dS5HRVRfREVGQVVMVF9CTE9DS1M9ZnVuY3Rpb24oKXtyZXR1cm57ZDp7bWFzazprdSxmcm9tOjEsdG86MzEsbWF4TGVuZ3RoOjJ9LG06e21hc2s6a3UsZnJvbToxLHRvOjEyLG1heExlbmd0aDoyfSxZOnttYXNrOmt1LGZyb206MTkwMCx0bzo5OTk5fX19LGl1Lk1hc2tlZERhdGU9eXU7dmFyIG11PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpe3hyKHRoaXMsdCl9cmV0dXJuIE9yKHQsW3trZXk6InNlbGVjdGlvblN0YXJ0IixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDt0cnl7dD10aGlzLl91bnNhZmVTZWxlY3Rpb25TdGFydH1jYXRjaCh0KXt9cmV0dXJuIG51bGwhPXQ\/dDp0aGlzLnZhbHVlLmxlbmd0aH19LHtrZXk6InNlbGVjdGlvbkVuZCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQ7dHJ5e3Q9dGhpcy5fdW5zYWZlU2VsZWN0aW9uRW5kfWNhdGNoKHQpe31yZXR1cm4gbnVsbCE9dD90OnRoaXMudmFsdWUubGVuZ3RofX0se2tleToic2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKG51bGwhPXQmJm51bGwhPWUmJih0IT09dGhpcy5zZWxlY3Rpb25TdGFydHx8ZSE9PXRoaXMuc2VsZWN0aW9uRW5kKSl0cnl7dGhpcy5fdW5zYWZlU2VsZWN0KHQsZSl9Y2F0Y2godCl7fX19LHtrZXk6Il91bnNhZmVTZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7fX0se2tleToiaXNBY3RpdmUiLGdldDpmdW5jdGlvbigpe3JldHVybiExfX0se2tleToiYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24odCl7fX0se2tleToidW5iaW5kRXZlbnRzIix2YWx1ZTpmdW5jdGlvbigpe319XSksdH0oKTtpdS5NYXNrRWxlbWVudD1tdTt2YXIgYnU9ZnVuY3Rpb24odCl7UHIobix0KTt2YXIgZT1WcihuKTtmdW5jdGlvbiBuKHQpe3ZhciBpO3JldHVybiB4cih0aGlzLG4pLChpPWUuY2FsbCh0aGlzKSkuaW5wdXQ9dCxpLl9oYW5kbGVycz17fSxpfXJldHVybiBPcihuLFt7a2V5OiJyb290RWxlbWVudCIsZ2V0OmZ1bmN0aW9uKCl7dmFyIHQsZSxuO3JldHVybiBudWxsIT09KHQ9bnVsbD09PShlPShuPXRoaXMuaW5wdXQpLmdldFJvb3ROb2RlKXx8dm9pZCAwPT09ZT92b2lkIDA6ZS5jYWxsKG4pKSYmdm9pZCAwIT09dD90OmRvY3VtZW50fX0se2tleToiaXNBY3RpdmUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0PT09dGhpcy5yb290RWxlbWVudC5hY3RpdmVFbGVtZW50fX0se2tleToiX3Vuc2FmZVNlbGVjdGlvblN0YXJ0IixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbnB1dC5zZWxlY3Rpb25TdGFydH19LHtrZXk6Il91bnNhZmVTZWxlY3Rpb25FbmQiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LnNlbGVjdGlvbkVuZH19LHtrZXk6Il91bnNhZmVTZWxlY3QiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dGhpcy5pbnB1dC5zZXRTZWxlY3Rpb25SYW5nZSh0LGUpfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LnZhbHVlfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5pbnB1dC52YWx1ZT10fX0se2tleToiYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztPYmplY3Qua2V5cyh0KS5mb3JFYWNoKChmdW5jdGlvbihpKXtyZXR1cm4gZS5fdG9nZ2xlRXZlbnRIYW5kbGVyKG4uRVZFTlRTX01BUFtpXSx0W2ldKX0pKX19LHtrZXk6InVuYmluZEV2ZW50cyIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzO09iamVjdC5rZXlzKHRoaXMuX2hhbmRsZXJzKS5mb3JFYWNoKChmdW5jdGlvbihlKXtyZXR1cm4gdC5fdG9nZ2xlRXZlbnRIYW5kbGVyKGUpfSkpfX0se2tleToiX3RvZ2dsZUV2ZW50SGFuZGxlciIsdmFsdWU6ZnVuY3Rpb24odCxlKXt0aGlzLl9oYW5kbGVyc1t0XSYmKHRoaXMuaW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LHRoaXMuX2hhbmRsZXJzW3RdKSxkZWxldGUgdGhpcy5faGFuZGxlcnNbdF0pLGUmJih0aGlzLmlucHV0LmFkZEV2ZW50TGlzdGVuZXIodCxlKSx0aGlzLl9oYW5kbGVyc1t0XT1lKX19XSksbn0obXUpO2J1LkVWRU5UU19NQVA9e3NlbGVjdGlvbkNoYW5nZToia2V5ZG93biIsaW5wdXQ6ImlucHV0Iixkcm9wOiJkcm9wIixjbGljazoiY2xpY2siLGZvY3VzOiJmb2N1cyIsY29tbWl0OiJibHVyIn0saXUuSFRNTE1hc2tFbGVtZW50PWJ1O3ZhciBfdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX3Vuc2FmZVNlbGVjdGlvblN0YXJ0IixnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnJvb3RFbGVtZW50LGU9dC5nZXRTZWxlY3Rpb24mJnQuZ2V0U2VsZWN0aW9uKCksbj1lJiZlLmFuY2hvck9mZnNldCxpPWUmJmUuZm9jdXNPZmZzZXQ7cmV0dXJuIG51bGw9PWl8fG51bGw9PW58fG48aT9uOml9fSx7a2V5OiJfdW5zYWZlU2VsZWN0aW9uRW5kIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnJvb3RFbGVtZW50LGU9dC5nZXRTZWxlY3Rpb24mJnQuZ2V0U2VsZWN0aW9uKCksbj1lJiZlLmFuY2hvck9mZnNldCxpPWUmJmUuZm9jdXNPZmZzZXQ7cmV0dXJuIG51bGw9PWl8fG51bGw9PW58fG4+aT9uOml9fSx7a2V5OiJfdW5zYWZlU2VsZWN0Iix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKHRoaXMucm9vdEVsZW1lbnQuY3JlYXRlUmFuZ2Upe3ZhciBuPXRoaXMucm9vdEVsZW1lbnQuY3JlYXRlUmFuZ2UoKTtuLnNldFN0YXJ0KHRoaXMuaW5wdXQuZmlyc3RDaGlsZHx8dGhpcy5pbnB1dCx0KSxuLnNldEVuZCh0aGlzLmlucHV0Lmxhc3RDaGlsZHx8dGhpcy5pbnB1dCxlKTt2YXIgaT10aGlzLnJvb3RFbGVtZW50LHI9aS5nZXRTZWxlY3Rpb24mJmkuZ2V0U2VsZWN0aW9uKCk7ciYmKHIucmVtb3ZlQWxsUmFuZ2VzKCksci5hZGRSYW5nZShuKSl9fX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmlucHV0LnRleHRDb250ZW50fSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5pbnB1dC50ZXh0Q29udGVudD10fX1dKSxufShidSk7aXUuSFRNTENvbnRlbnRlZGl0YWJsZU1hc2tFbGVtZW50PV91O3ZhciBBdT1bIm1hc2siXSxDdT1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSxuKXt4cih0aGlzLHQpLHRoaXMuZWw9ZSBpbnN0YW5jZW9mIG11P2U6ZS5pc0NvbnRlbnRFZGl0YWJsZSYmIklOUFVUIiE9PWUudGFnTmFtZSYmIlRFWFRBUkVBIiE9PWUudGFnTmFtZT9uZXcgX3UoZSk6bmV3IGJ1KGUpLHRoaXMubWFza2VkPXN1KG4pLHRoaXMuX2xpc3RlbmVycz17fSx0aGlzLl92YWx1ZT0iIix0aGlzLl91bm1hc2tlZFZhbHVlPSIiLHRoaXMuX3NhdmVTZWxlY3Rpb249dGhpcy5fc2F2ZVNlbGVjdGlvbi5iaW5kKHRoaXMpLHRoaXMuX29uSW5wdXQ9dGhpcy5fb25JbnB1dC5iaW5kKHRoaXMpLHRoaXMuX29uQ2hhbmdlPXRoaXMuX29uQ2hhbmdlLmJpbmQodGhpcyksdGhpcy5fb25Ecm9wPXRoaXMuX29uRHJvcC5iaW5kKHRoaXMpLHRoaXMuX29uRm9jdXM9dGhpcy5fb25Gb2N1cy5iaW5kKHRoaXMpLHRoaXMuX29uQ2xpY2s9dGhpcy5fb25DbGljay5iaW5kKHRoaXMpLHRoaXMuYWxpZ25DdXJzb3I9dGhpcy5hbGlnbkN1cnNvci5iaW5kKHRoaXMpLHRoaXMuYWxpZ25DdXJzb3JGcmllbmRseT10aGlzLmFsaWduQ3Vyc29yRnJpZW5kbHkuYmluZCh0aGlzKSx0aGlzLl9iaW5kRXZlbnRzKCksdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMuX29uQ2hhbmdlKCl9cmV0dXJuIE9yKHQsW3trZXk6Im1hc2siLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1hc2tlZC5tYXNrfSxzZXQ6ZnVuY3Rpb24odCl7aWYoIXRoaXMubWFza0VxdWFscyh0KSlpZih0IGluc3RhbmNlb2YgaXUuTWFza2VkfHx0aGlzLm1hc2tlZC5jb25zdHJ1Y3RvciE9PXV1KHQpKXt2YXIgZT1zdSh7bWFzazp0fSk7ZS51bm1hc2tlZFZhbHVlPXRoaXMubWFza2VkLnVubWFza2VkVmFsdWUsdGhpcy5tYXNrZWQ9ZX1lbHNlIHRoaXMubWFza2VkLnVwZGF0ZU9wdGlvbnMoe21hc2s6dH0pfX0se2tleToibWFza0VxdWFscyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU7cmV0dXJuIG51bGw9PXR8fChudWxsPT09KGU9dGhpcy5tYXNrZWQpfHx2b2lkIDA9PT1lP3ZvaWQgMDplLm1hc2tFcXVhbHModCkpfX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMubWFza2VkLnZhbHVlPXQsdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy5hbGlnbkN1cnNvcigpfX0se2tleToidW5tYXNrZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3VubWFza2VkVmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLm1hc2tlZC51bm1hc2tlZFZhbHVlPXQsdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy5hbGlnbkN1cnNvcigpfX0se2tleToidHlwZWRWYWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFza2VkLnR5cGVkVmFsdWV9LHNldDpmdW5jdGlvbih0KXt0aGlzLm1hc2tlZC50eXBlZFZhbHVlPXQsdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy5hbGlnbkN1cnNvcigpfX0se2tleToiX2JpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbC5iaW5kRXZlbnRzKHtzZWxlY3Rpb25DaGFuZ2U6dGhpcy5fc2F2ZVNlbGVjdGlvbixpbnB1dDp0aGlzLl9vbklucHV0LGRyb3A6dGhpcy5fb25Ecm9wLGNsaWNrOnRoaXMuX29uQ2xpY2ssZm9jdXM6dGhpcy5fb25Gb2N1cyxjb21taXQ6dGhpcy5fb25DaGFuZ2V9KX19LHtrZXk6Il91bmJpbmRFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5lbCYmdGhpcy5lbC51bmJpbmRFdmVudHMoKX19LHtrZXk6Il9maXJlRXZlbnQiLHZhbHVlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGU+MT9lLTE6MCksaT0xO2k8ZTtpKyspbltpLTFdPWFyZ3VtZW50c1tpXTt2YXIgcj10aGlzLl9saXN0ZW5lcnNbdF07ciYmci5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gdC5hcHBseSh2b2lkIDAsbil9KSl9fSx7a2V5OiJzZWxlY3Rpb25TdGFydCIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2N1cnNvckNoYW5naW5nP3RoaXMuX2NoYW5naW5nQ3Vyc29yUG9zOnRoaXMuZWwuc2VsZWN0aW9uU3RhcnR9fSx7a2V5OiJjdXJzb3JQb3MiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jdXJzb3JDaGFuZ2luZz90aGlzLl9jaGFuZ2luZ0N1cnNvclBvczp0aGlzLmVsLnNlbGVjdGlvbkVuZH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuZWwmJnRoaXMuZWwuaXNBY3RpdmUmJih0aGlzLmVsLnNlbGVjdCh0LHQpLHRoaXMuX3NhdmVTZWxlY3Rpb24oKSl9fSx7a2V5OiJfc2F2ZVNlbGVjdGlvbiIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnZhbHVlIT09dGhpcy5lbC52YWx1ZSYmY29uc29sZS53YXJuKCJFbGVtZW50IHZhbHVlIHdhcyBjaGFuZ2VkIG91dHNpZGUgb2YgbWFzay4gU3luY3Jvbml6ZSBtYXNrIHVzaW5nIGBtYXNrLnVwZGF0ZVZhbHVlKClgIHRvIHdvcmsgcHJvcGVybHkuIiksdGhpcy5fc2VsZWN0aW9uPXtzdGFydDp0aGlzLnNlbGVjdGlvblN0YXJ0LGVuZDp0aGlzLmN1cnNvclBvc319fSx7a2V5OiJ1cGRhdGVWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLm1hc2tlZC52YWx1ZT10aGlzLmVsLnZhbHVlLHRoaXMuX3ZhbHVlPXRoaXMubWFza2VkLnZhbHVlfX0se2tleToidXBkYXRlQ29udHJvbCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm1hc2tlZC51bm1hc2tlZFZhbHVlLGU9dGhpcy5tYXNrZWQudmFsdWUsbj10aGlzLnVubWFza2VkVmFsdWUhPT10fHx0aGlzLnZhbHVlIT09ZTt0aGlzLl91bm1hc2tlZFZhbHVlPXQsdGhpcy5fdmFsdWU9ZSx0aGlzLmVsLnZhbHVlIT09ZSYmKHRoaXMuZWwudmFsdWU9ZSksbiYmdGhpcy5fZmlyZUNoYW5nZUV2ZW50cygpfX0se2tleToidXBkYXRlT3B0aW9ucyIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9dC5tYXNrLG49anIodCxBdSksaT0hdGhpcy5tYXNrRXF1YWxzKGUpLHI9IXR1KHRoaXMubWFza2VkLG4pO2kmJih0aGlzLm1hc2s9ZSksciYmdGhpcy5tYXNrZWQudXBkYXRlT3B0aW9ucyhuKSwoaXx8cikmJnRoaXMudXBkYXRlQ29udHJvbCgpfX0se2tleToidXBkYXRlQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbih0KXtudWxsIT10JiYodGhpcy5jdXJzb3JQb3M9dCx0aGlzLl9kZWxheVVwZGF0ZUN1cnNvcih0KSl9fSx7a2V5OiJfZGVsYXlVcGRhdGVDdXJzb3IiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5fYWJvcnRVcGRhdGVDdXJzb3IoKSx0aGlzLl9jaGFuZ2luZ0N1cnNvclBvcz10LHRoaXMuX2N1cnNvckNoYW5naW5nPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5lbCYmKGUuY3Vyc29yUG9zPWUuX2NoYW5naW5nQ3Vyc29yUG9zLGUuX2Fib3J0VXBkYXRlQ3Vyc29yKCkpfSksMTApfX0se2tleToiX2ZpcmVDaGFuZ2VFdmVudHMiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5fZmlyZUV2ZW50KCJhY2NlcHQiLHRoaXMuX2lucHV0RXZlbnQpLHRoaXMubWFza2VkLmlzQ29tcGxldGUmJnRoaXMuX2ZpcmVFdmVudCgiY29tcGxldGUiLHRoaXMuX2lucHV0RXZlbnQpfX0se2tleToiX2Fib3J0VXBkYXRlQ3Vyc29yIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2N1cnNvckNoYW5naW5nJiYoY2xlYXJUaW1lb3V0KHRoaXMuX2N1cnNvckNoYW5naW5nKSxkZWxldGUgdGhpcy5fY3Vyc29yQ2hhbmdpbmcpfX0se2tleToiYWxpZ25DdXJzb3IiLHZhbHVlOmZ1bmN0aW9uKCl7dGhpcy5jdXJzb3JQb3M9dGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKHRoaXMubWFza2VkLm5lYXJlc3RJbnB1dFBvcyh0aGlzLmN1cnNvclBvcyxLcikpfX0se2tleToiYWxpZ25DdXJzb3JGcmllbmRseSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGlvblN0YXJ0PT09dGhpcy5jdXJzb3JQb3MmJnRoaXMuYWxpZ25DdXJzb3IoKX19LHtrZXk6Im9uIix2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9saXN0ZW5lcnNbdF18fCh0aGlzLl9saXN0ZW5lcnNbdF09W10pLHRoaXMuX2xpc3RlbmVyc1t0XS5wdXNoKGUpLHRoaXN9fSx7a2V5OiJvZmYiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuX2xpc3RlbmVyc1t0XSlyZXR1cm4gdGhpcztpZighZSlyZXR1cm4gZGVsZXRlIHRoaXMuX2xpc3RlbmVyc1t0XSx0aGlzO3ZhciBuPXRoaXMuX2xpc3RlbmVyc1t0XS5pbmRleE9mKGUpO3JldHVybiBuPj0wJiZ0aGlzLl9saXN0ZW5lcnNbdF0uc3BsaWNlKG4sMSksdGhpc319LHtrZXk6Il9vbklucHV0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZih0aGlzLl9pbnB1dEV2ZW50PXQsdGhpcy5fYWJvcnRVcGRhdGVDdXJzb3IoKSwhdGhpcy5fc2VsZWN0aW9uKXJldHVybiB0aGlzLnVwZGF0ZVZhbHVlKCk7dmFyIGU9bmV3IGV1KHRoaXMuZWwudmFsdWUsdGhpcy5jdXJzb3JQb3MsdGhpcy52YWx1ZSx0aGlzLl9zZWxlY3Rpb24pLG49dGhpcy5tYXNrZWQucmF3SW5wdXRWYWx1ZSxpPXRoaXMubWFza2VkLnNwbGljZShlLnN0YXJ0Q2hhbmdlUG9zLGUucmVtb3ZlZC5sZW5ndGgsZS5pbnNlcnRlZCxlLnJlbW92ZURpcmVjdGlvbikub2Zmc2V0LHI9bj09PXRoaXMubWFza2VkLnJhd0lucHV0VmFsdWU\/ZS5yZW1vdmVEaXJlY3Rpb246R3IsdT10aGlzLm1hc2tlZC5uZWFyZXN0SW5wdXRQb3MoZS5zdGFydENoYW5nZVBvcytpLHIpO3IhPT1HciYmKHU9dGhpcy5tYXNrZWQubmVhcmVzdElucHV0UG9zKHUsR3IpKSx0aGlzLnVwZGF0ZUNvbnRyb2woKSx0aGlzLnVwZGF0ZUN1cnNvcih1KSxkZWxldGUgdGhpcy5faW5wdXRFdmVudH19LHtrZXk6Il9vbkNoYW5nZSIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLnZhbHVlIT09dGhpcy5lbC52YWx1ZSYmdGhpcy51cGRhdGVWYWx1ZSgpLHRoaXMubWFza2VkLmRvQ29tbWl0KCksdGhpcy51cGRhdGVDb250cm9sKCksdGhpcy5fc2F2ZVNlbGVjdGlvbigpfX0se2tleToiX29uRHJvcCIsdmFsdWU6ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHQuc3RvcFByb3BhZ2F0aW9uKCl9fSx7a2V5OiJfb25Gb2N1cyIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5hbGlnbkN1cnNvckZyaWVuZGx5KCl9fSx7a2V5OiJfb25DbGljayIsdmFsdWU6ZnVuY3Rpb24odCl7dGhpcy5hbGlnbkN1cnNvckZyaWVuZGx5KCl9fSx7a2V5OiJkZXN0cm95Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX3VuYmluZEV2ZW50cygpLHRoaXMuX2xpc3RlbmVycy5sZW5ndGg9MCxkZWxldGUgdGhpcy5lbH19XSksdH0oKTtpdS5JbnB1dE1hc2s9Q3U7dmFyIEV1PWZ1bmN0aW9uKHQpe1ByKG4sdCk7dmFyIGU9VnIobik7ZnVuY3Rpb24gbigpe3JldHVybiB4cih0aGlzLG4pLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXt0LmVudW0mJih0Lm1hc2s9IioiLnJlcGVhdCh0LmVudW1bMF0ubGVuZ3RoKSksTnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJkb1ZhbGlkYXRlIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlPXRoaXMsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybiB0aGlzLmVudW0uc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaW5kZXhPZihlLnVubWFza2VkVmFsdWUpPj0wfSkpJiYodD1OcihUcihuLnByb3RvdHlwZSksImRvVmFsaWRhdGUiLHRoaXMpKS5jYWxsLmFwcGx5KHQsW3RoaXNdLmNvbmNhdChyKSl9fV0pLG59KGd1KTtpdS5NYXNrZWRFbnVtPUV1O3ZhciBGdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHhyKHRoaXMsbiksZS5jYWxsKHRoaXMsT2JqZWN0LmFzc2lnbih7fSxuLkRFRkFVTFRTLHQpKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7TnIoVHIobi5wcm90b3R5cGUpLCJfdXBkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCksdGhpcy5fdXBkYXRlUmVnRXhwcygpfX0se2tleToiX3VwZGF0ZVJlZ0V4cHMiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9Il4iKyh0aGlzLmFsbG93TmVnYXRpdmU\/IlsrfFxcLV0\/IjoiIiksZT0odGhpcy5zY2FsZT8iKCIrSnIodGhpcy5yYWRpeCkrIlxcZHswLCIrdGhpcy5zY2FsZSsifSk\/IjoiIikrIiQiO3RoaXMuX251bWJlclJlZ0V4cElucHV0PW5ldyBSZWdFeHAodCsiKDB8KFsxLTldK1xcZCopKT8iK2UpLHRoaXMuX251bWJlclJlZ0V4cD1uZXcgUmVnRXhwKHQrIlxcZCoiK2UpLHRoaXMuX21hcFRvUmFkaXhSZWdFeHA9bmV3IFJlZ0V4cCgiWyIrdGhpcy5tYXBUb1JhZGl4Lm1hcChKcikuam9pbigiIikrIl0iLCJnIiksdGhpcy5fdGhvdXNhbmRzU2VwYXJhdG9yUmVnRXhwPW5ldyBSZWdFeHAoSnIodGhpcy50aG91c2FuZHNTZXBhcmF0b3IpLCJnIil9fSx7a2V5OiJfcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyIsdmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSh0aGlzLl90aG91c2FuZHNTZXBhcmF0b3JSZWdFeHAsIiIpfX0se2tleToiX2luc2VydFRob3VzYW5kc1NlcGFyYXRvcnMiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuc3BsaXQodGhpcy5yYWRpeCk7cmV0dXJuIGVbMF09ZVswXS5yZXBsYWNlKC9cQig\/PShcZHszfSkrKD8hXGQpKS9nLHRoaXMudGhvdXNhbmRzU2VwYXJhdG9yKSxlLmpvaW4odGhpcy5yYWRpeCl9fSx7a2V5OiJkb1ByZXBhcmUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlO3Q9dC5yZXBsYWNlKHRoaXMuX21hcFRvUmFkaXhSZWdFeHAsdGhpcy5yYWRpeCk7Zm9yKHZhciBpPXRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModCkscj1hcmd1bWVudHMubGVuZ3RoLHU9bmV3IEFycmF5KHI+MT9yLTE6MCkscz0xO3M8cjtzKyspdVtzLTFdPWFyZ3VtZW50c1tzXTt2YXIgYT1RcigoZT1OcihUcihuLnByb3RvdHlwZSksImRvUHJlcGFyZSIsdGhpcykpLmNhbGwuYXBwbHkoZSxbdGhpcyxpXS5jb25jYXQodSkpKSxvPXFyKGEsMiksbD1vWzBdLGg9b1sxXTtyZXR1cm4gdCYmIWkmJihoLnNraXA9ITApLFtsLGhdfX0se2tleToiX3NlcGFyYXRvcnNDb3VudCIsdmFsdWU6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdJiZhcmd1bWVudHNbMV0sbj0wLGk9MDtpPHQ7KytpKXRoaXMuX3ZhbHVlLmluZGV4T2YodGhpcy50aG91c2FuZHNTZXBhcmF0b3IsaSk9PT1pJiYoKytuLGUmJih0Kz10aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGgpKTtyZXR1cm4gbn19LHtrZXk6Il9zZXBhcmF0b3JzQ291bnRGcm9tU2xpY2UiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOnRoaXMuX3ZhbHVlO3JldHVybiB0aGlzLl9zZXBhcmF0b3JzQ291bnQodGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0KS5sZW5ndGgsITApfX0se2tleToiZXh0cmFjdElucHV0Iix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLGk9YXJndW1lbnRzLmxlbmd0aD4yP2FyZ3VtZW50c1syXTp2b2lkIDAscj10aGlzLl9hZGp1c3RSYW5nZVdpdGhTZXBhcmF0b3JzKHQsZSksdT1xcihyLDIpO3JldHVybiB0PXVbMF0sZT11WzFdLHRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnMoTnIoVHIobi5wcm90b3R5cGUpLCJleHRyYWN0SW5wdXQiLHRoaXMpLmNhbGwodGhpcyx0LGUsaSkpfX0se2tleToiX2FwcGVuZENoYXJSYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fTtpZighdGhpcy50aG91c2FuZHNTZXBhcmF0b3IpcmV0dXJuIE5yKFRyKG4ucHJvdG90eXBlKSwiX2FwcGVuZENoYXJSYXciLHRoaXMpLmNhbGwodGhpcyx0LGUpO3ZhciBpPWUudGFpbCYmZS5fYmVmb3JlVGFpbFN0YXRlP2UuX2JlZm9yZVRhaWxTdGF0ZS5fdmFsdWU6dGhpcy5fdmFsdWUscj10aGlzLl9zZXBhcmF0b3JzQ291bnRGcm9tU2xpY2UoaSk7dGhpcy5fdmFsdWU9dGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLnZhbHVlKTt2YXIgdT1OcihUcihuLnByb3RvdHlwZSksIl9hcHBlbmRDaGFyUmF3Iix0aGlzKS5jYWxsKHRoaXMsdCxlKTt0aGlzLl92YWx1ZT10aGlzLl9pbnNlcnRUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMuX3ZhbHVlKTt2YXIgcz1lLnRhaWwmJmUuX2JlZm9yZVRhaWxTdGF0ZT9lLl9iZWZvcmVUYWlsU3RhdGUuX3ZhbHVlOnRoaXMuX3ZhbHVlLGE9dGhpcy5fc2VwYXJhdG9yc0NvdW50RnJvbVNsaWNlKHMpO3JldHVybiB1LnRhaWxTaGlmdCs9KGEtcikqdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoLHUuc2tpcD0hdS5yYXdJbnNlcnRlZCYmdD09PXRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLHV9fSx7a2V5OiJfZmluZFNlcGFyYXRvckFyb3VuZCIsdmFsdWU6ZnVuY3Rpb24odCl7aWYodGhpcy50aG91c2FuZHNTZXBhcmF0b3Ipe3ZhciBlPXQtdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoKzEsbj10aGlzLnZhbHVlLmluZGV4T2YodGhpcy50aG91c2FuZHNTZXBhcmF0b3IsZSk7aWYobjw9dClyZXR1cm4gbn1yZXR1cm4tMX19LHtrZXk6Il9hZGp1c3RSYW5nZVdpdGhTZXBhcmF0b3JzIix2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMuX2ZpbmRTZXBhcmF0b3JBcm91bmQodCk7bj49MCYmKHQ9bik7dmFyIGk9dGhpcy5fZmluZFNlcGFyYXRvckFyb3VuZChlKTtyZXR1cm4gaT49MCYmKGU9aSt0aGlzLnRob3VzYW5kc1NlcGFyYXRvci5sZW5ndGgpLFt0LGVdfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTowLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnRoaXMudmFsdWUubGVuZ3RoLG49dGhpcy5fYWRqdXN0UmFuZ2VXaXRoU2VwYXJhdG9ycyh0LGUpLGk9cXIobiwyKTt0PWlbMF0sZT1pWzFdO3ZhciByPXRoaXMudmFsdWUuc2xpY2UoMCx0KSx1PXRoaXMudmFsdWUuc2xpY2UoZSkscz10aGlzLl9zZXBhcmF0b3JzQ291bnQoci5sZW5ndGgpO3RoaXMuX3ZhbHVlPXRoaXMuX2luc2VydFRob3VzYW5kc1NlcGFyYXRvcnModGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyhyK3UpKTt2YXIgYT10aGlzLl9zZXBhcmF0b3JzQ291bnRGcm9tU2xpY2Uocik7cmV0dXJuIG5ldyBZcih7dGFpbFNoaWZ0OihhLXMpKnRoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aH0pfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbih0LGUpe2lmKCF0aGlzLnRob3VzYW5kc1NlcGFyYXRvcilyZXR1cm4gdDtzd2l0Y2goZSl7Y2FzZSBHcjpjYXNlIEtyOmNhc2UgJHI6dmFyIG49dGhpcy5fZmluZFNlcGFyYXRvckFyb3VuZCh0LTEpO2lmKG4+PTApe3ZhciBpPW4rdGhpcy50aG91c2FuZHNTZXBhcmF0b3IubGVuZ3RoO2lmKHQ8aXx8dGhpcy52YWx1ZS5sZW5ndGg8PWl8fGU9PT0kcilyZXR1cm4gbn1icmVhaztjYXNlIFdyOmNhc2UgWHI6dmFyIHI9dGhpcy5fZmluZFNlcGFyYXRvckFyb3VuZCh0KTtpZihyPj0wKXJldHVybiByK3RoaXMudGhvdXNhbmRzU2VwYXJhdG9yLmxlbmd0aH1yZXR1cm4gdH19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPSh0LmlucHV0P3RoaXMuX251bWJlclJlZ0V4cElucHV0OnRoaXMuX251bWJlclJlZ0V4cCkudGVzdCh0aGlzLl9yZW1vdmVUaG91c2FuZHNTZXBhcmF0b3JzKHRoaXMudmFsdWUpKTtpZihlKXt2YXIgaT10aGlzLm51bWJlcjtlPWUmJiFpc05hTihpKSYmKG51bGw9PXRoaXMubWlufHx0aGlzLm1pbj49MHx8dGhpcy5taW48PXRoaXMubnVtYmVyKSYmKG51bGw9PXRoaXMubWF4fHx0aGlzLm1heDw9MHx8dGhpcy5udW1iZXI8PXRoaXMubWF4KX1yZXR1cm4gZSYmTnIoVHIobi5wcm90b3R5cGUpLCJkb1ZhbGlkYXRlIix0aGlzKS5jYWxsKHRoaXMsdCl9fSx7a2V5OiJkb0NvbW1pdCIsdmFsdWU6ZnVuY3Rpb24oKXtpZih0aGlzLnZhbHVlKXt2YXIgdD10aGlzLm51bWJlcixlPXQ7bnVsbCE9dGhpcy5taW4mJihlPU1hdGgubWF4KGUsdGhpcy5taW4pKSxudWxsIT10aGlzLm1heCYmKGU9TWF0aC5taW4oZSx0aGlzLm1heCkpLGUhPT10JiYodGhpcy51bm1hc2tlZFZhbHVlPVN0cmluZyhlKSk7dmFyIGk9dGhpcy52YWx1ZTt0aGlzLm5vcm1hbGl6ZVplcm9zJiYoaT10aGlzLl9ub3JtYWxpemVaZXJvcyhpKSksdGhpcy5wYWRGcmFjdGlvbmFsWmVyb3MmJnRoaXMuc2NhbGU+MCYmKGk9dGhpcy5fcGFkRnJhY3Rpb25hbFplcm9zKGkpKSx0aGlzLl92YWx1ZT1pfU5yKFRyKG4ucHJvdG90eXBlKSwiZG9Db21taXQiLHRoaXMpLmNhbGwodGhpcyl9fSx7a2V5OiJfbm9ybWFsaXplWmVyb3MiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlbW92ZVRob3VzYW5kc1NlcGFyYXRvcnModCkuc3BsaXQodGhpcy5yYWRpeCk7cmV0dXJuIGVbMF09ZVswXS5yZXBsYWNlKC9eKFxEKikoMCopKFxkKikvLChmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gZStpfSkpLHQubGVuZ3RoJiYhL1xkJC8udGVzdChlWzBdKSYmKGVbMF09ZVswXSsiMCIpLGUubGVuZ3RoPjEmJihlWzFdPWVbMV0ucmVwbGFjZSgvMCokLywiIiksZVsxXS5sZW5ndGh8fChlLmxlbmd0aD0xKSksdGhpcy5faW5zZXJ0VGhvdXNhbmRzU2VwYXJhdG9ycyhlLmpvaW4odGhpcy5yYWRpeCkpfX0se2tleToiX3BhZEZyYWN0aW9uYWxaZXJvcyIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIHQ7dmFyIGU9dC5zcGxpdCh0aGlzLnJhZGl4KTtyZXR1cm4gZS5sZW5ndGg8MiYmZS5wdXNoKCIiKSxlWzFdPWVbMV0ucGFkRW5kKHRoaXMuc2NhbGUsIjAiKSxlLmpvaW4odGhpcy5yYWRpeCl9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVtb3ZlVGhvdXNhbmRzU2VwYXJhdG9ycyh0aGlzLl9ub3JtYWxpemVaZXJvcyh0aGlzLnZhbHVlKSkucmVwbGFjZSh0aGlzLnJhZGl4LCIuIil9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInVubWFza2VkVmFsdWUiLHQucmVwbGFjZSgiLiIsdGhpcy5yYWRpeCksdGhpcywhMCl9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTnVtYmVyKHRoaXMudW5tYXNrZWRWYWx1ZSl9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInVubWFza2VkVmFsdWUiLFN0cmluZyh0KSx0aGlzLCEwKX19LHtrZXk6Im51bWJlciIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHlwZWRWYWx1ZX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMudHlwZWRWYWx1ZT10fX0se2tleToiYWxsb3dOZWdhdGl2ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2lnbmVkfHxudWxsIT10aGlzLm1pbiYmdGhpcy5taW48MHx8bnVsbCE9dGhpcy5tYXgmJnRoaXMubWF4PDB9fV0pLG59KHJ1KTtGdS5ERUZBVUxUUz17cmFkaXg6IiwiLHRob3VzYW5kc1NlcGFyYXRvcjoiIixtYXBUb1JhZGl4OlsiLiJdLHNjYWxlOjIsc2lnbmVkOiExLG5vcm1hbGl6ZVplcm9zOiEwLHBhZEZyYWN0aW9uYWxaZXJvczohMX0saXUuTWFza2VkTnVtYmVyPUZ1O3ZhciBTdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4oKXtyZXR1cm4geHIodGhpcyxuKSxlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gT3Iobixbe2tleToiX3VwZGF0ZSIsdmFsdWU6ZnVuY3Rpb24odCl7dC5tYXNrJiYodC52YWxpZGF0ZT10Lm1hc2spLE5yKFRyKG4ucHJvdG90eXBlKSwiX3VwZGF0ZSIsdGhpcykuY2FsbCh0aGlzLHQpfX1dKSxufShydSk7aXUuTWFza2VkRnVuY3Rpb249U3U7dmFyIHd1PVsiY29tcGlsZWRNYXNrcyIsImN1cnJlbnRNYXNrUmVmIiwiY3VycmVudE1hc2siXSxCdT1mdW5jdGlvbih0KXtQcihuLHQpO3ZhciBlPVZyKG4pO2Z1bmN0aW9uIG4odCl7dmFyIGk7cmV0dXJuIHhyKHRoaXMsbiksKGk9ZS5jYWxsKHRoaXMsT2JqZWN0LmFzc2lnbih7fSxuLkRFRkFVTFRTLHQpKSkuY3VycmVudE1hc2s9bnVsbCxpfXJldHVybiBPcihuLFt7a2V5OiJfdXBkYXRlIix2YWx1ZTpmdW5jdGlvbih0KXtOcihUcihuLnByb3RvdHlwZSksIl91cGRhdGUiLHRoaXMpLmNhbGwodGhpcyx0KSwibWFzayJpbiB0JiYodGhpcy5jb21waWxlZE1hc2tzPUFycmF5LmlzQXJyYXkodC5tYXNrKT90Lm1hc2subWFwKChmdW5jdGlvbih0KXtyZXR1cm4gc3UodCl9KSk6W10pfX0se2tleToiX2FwcGVuZENoYXJSYXciLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTp7fSxuPXRoaXMuX2FwcGx5RGlzcGF0Y2godCxlKTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzayYmbi5hZ2dyZWdhdGUodGhpcy5jdXJyZW50TWFzay5fYXBwZW5kQ2hhcih0LGUpKSxufX0se2tleToiX2FwcGx5RGlzcGF0Y2giLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9YXJndW1lbnRzLmxlbmd0aD4wJiZ2b2lkIDAhPT1hcmd1bWVudHNbMF0\/YXJndW1lbnRzWzBdOiIiLGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9LG49ZS50YWlsJiZudWxsIT1lLl9iZWZvcmVUYWlsU3RhdGU\/ZS5fYmVmb3JlVGFpbFN0YXRlLl92YWx1ZTp0aGlzLnZhbHVlLGk9dGhpcy5yYXdJbnB1dFZhbHVlLHI9ZS50YWlsJiZudWxsIT1lLl9iZWZvcmVUYWlsU3RhdGU\/ZS5fYmVmb3JlVGFpbFN0YXRlLl9yYXdJbnB1dFZhbHVlOmksdT1pLnNsaWNlKHIubGVuZ3RoKSxzPXRoaXMuY3VycmVudE1hc2ssYT1uZXcgWXIsbz1zJiZzLnN0YXRlO2lmKHRoaXMuY3VycmVudE1hc2s9dGhpcy5kb0Rpc3BhdGNoKHQsT2JqZWN0LmFzc2lnbih7fSxlKSksdGhpcy5jdXJyZW50TWFzaylpZih0aGlzLmN1cnJlbnRNYXNrIT09cyl7aWYodGhpcy5jdXJyZW50TWFzay5yZXNldCgpLHIpe3ZhciBsPXRoaXMuY3VycmVudE1hc2suYXBwZW5kKHIse3JhdzohMH0pO2EudGFpbFNoaWZ0PWwuaW5zZXJ0ZWQubGVuZ3RoLW4ubGVuZ3RofXUmJihhLnRhaWxTaGlmdCs9dGhpcy5jdXJyZW50TWFzay5hcHBlbmQodSx7cmF3OiEwLHRhaWw6ITB9KS50YWlsU2hpZnQpfWVsc2UgdGhpcy5jdXJyZW50TWFzay5zdGF0ZT1vO3JldHVybiBhfX0se2tleToiX2FwcGVuZFBsYWNlaG9sZGVyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2FwcGx5RGlzcGF0Y2guYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrJiZ0LmFnZ3JlZ2F0ZSh0aGlzLmN1cnJlbnRNYXNrLl9hcHBlbmRQbGFjZWhvbGRlcigpKSx0fX0se2tleToiX2FwcGVuZEVhZ2VyIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX2FwcGx5RGlzcGF0Y2guYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrJiZ0LmFnZ3JlZ2F0ZSh0aGlzLmN1cnJlbnRNYXNrLl9hcHBlbmRFYWdlcigpKSx0fX0se2tleToiZG9EaXNwYXRjaCIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9YXJndW1lbnRzLmxlbmd0aD4xJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0\/YXJndW1lbnRzWzFdOnt9O3JldHVybiB0aGlzLmRpc3BhdGNoKHQsdGhpcyxlKX19LHtrZXk6ImRvVmFsaWRhdGUiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybih0PU5yKFRyKG4ucHJvdG90eXBlKSwiZG9WYWxpZGF0ZSIsdGhpcykpLmNhbGwuYXBwbHkodCxbdGhpc10uY29uY2F0KHIpKSYmKCF0aGlzLmN1cnJlbnRNYXNrfHwoZT10aGlzLmN1cnJlbnRNYXNrKS5kb1ZhbGlkYXRlLmFwcGx5KGUscikpfX0se2tleToicmVzZXQiLHZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ7bnVsbD09PSh0PXRoaXMuY3VycmVudE1hc2spfHx2b2lkIDA9PT10fHx0LnJlc2V0KCksdGhpcy5jb21waWxlZE1hc2tzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc2V0KCl9KSl9fSx7a2V5OiJ2YWx1ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay52YWx1ZToiIn0sc2V0OmZ1bmN0aW9uKHQpe3pyKFRyKG4ucHJvdG90eXBlKSwidmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJ1bm1hc2tlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLnVubWFza2VkVmFsdWU6IiJ9LHNldDpmdW5jdGlvbih0KXt6cihUcihuLnByb3RvdHlwZSksInVubWFza2VkVmFsdWUiLHQsdGhpcywhMCl9fSx7a2V5OiJ0eXBlZFZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz90aGlzLmN1cnJlbnRNYXNrLnR5cGVkVmFsdWU6IiJ9LHNldDpmdW5jdGlvbih0KXt2YXIgZT1TdHJpbmcodCk7dGhpcy5jdXJyZW50TWFzayYmKHRoaXMuY3VycmVudE1hc2sudHlwZWRWYWx1ZT10LGU9dGhpcy5jdXJyZW50TWFzay51bm1hc2tlZFZhbHVlKSx0aGlzLnVubWFza2VkVmFsdWU9ZX19LHtrZXk6ImlzQ29tcGxldGUiLGdldDpmdW5jdGlvbigpe3ZhciB0O3JldHVybiBCb29sZWFuKG51bGw9PT0odD10aGlzLmN1cnJlbnRNYXNrKXx8dm9pZCAwPT09dD92b2lkIDA6dC5pc0NvbXBsZXRlKX19LHtrZXk6ImlzRmlsbGVkIixnZXQ6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gQm9vbGVhbihudWxsPT09KHQ9dGhpcy5jdXJyZW50TWFzayl8fHZvaWQgMD09PXQ\/dm9pZCAwOnQuaXNGaWxsZWQpfX0se2tleToicmVtb3ZlIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0LGU9bmV3IFlyO3RoaXMuY3VycmVudE1hc2smJmUuYWdncmVnYXRlKCh0PXRoaXMuY3VycmVudE1hc2spLnJlbW92ZS5hcHBseSh0LGFyZ3VtZW50cykpLmFnZ3JlZ2F0ZSh0aGlzLl9hcHBseURpc3BhdGNoKCkpO3JldHVybiBlfX0se2tleToic3RhdGUiLGdldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3QuYXNzaWduKHt9LE5yKFRyKG4ucHJvdG90eXBlKSwic3RhdGUiLHRoaXMpLHtfcmF3SW5wdXRWYWx1ZTp0aGlzLnJhd0lucHV0VmFsdWUsY29tcGlsZWRNYXNrczp0aGlzLmNvbXBpbGVkTWFza3MubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdGF0ZX0pKSxjdXJyZW50TWFza1JlZjp0aGlzLmN1cnJlbnRNYXNrLGN1cnJlbnRNYXNrOnRoaXMuY3VycmVudE1hc2smJnRoaXMuY3VycmVudE1hc2suc3RhdGV9KX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuY29tcGlsZWRNYXNrcyxpPXQuY3VycmVudE1hc2tSZWYscj10LmN1cnJlbnRNYXNrLHU9anIodCx3dSk7dGhpcy5jb21waWxlZE1hc2tzLmZvckVhY2goKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHQuc3RhdGU9ZVtuXX0pKSxudWxsIT1pJiYodGhpcy5jdXJyZW50TWFzaz1pLHRoaXMuY3VycmVudE1hc2suc3RhdGU9ciksenIoVHIobi5wcm90b3R5cGUpLCJzdGF0ZSIsdSx0aGlzLCEwKX19LHtrZXk6ImV4dHJhY3RJbnB1dCIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz8odD10aGlzLmN1cnJlbnRNYXNrKS5leHRyYWN0SW5wdXQuYXBwbHkodCxhcmd1bWVudHMpOiIifX0se2tleToiZXh0cmFjdFRhaWwiLHZhbHVlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUsaT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGkpLHU9MDt1PGk7dSsrKXJbdV09YXJndW1lbnRzW3VdO3JldHVybiB0aGlzLmN1cnJlbnRNYXNrPyh0PXRoaXMuY3VycmVudE1hc2spLmV4dHJhY3RUYWlsLmFwcGx5KHQscik6KGU9TnIoVHIobi5wcm90b3R5cGUpLCJleHRyYWN0VGFpbCIsdGhpcykpLmNhbGwuYXBwbHkoZSxbdGhpc10uY29uY2F0KHIpKX19LHtrZXk6ImRvQ29tbWl0Iix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuY3VycmVudE1hc2smJnRoaXMuY3VycmVudE1hc2suZG9Db21taXQoKSxOcihUcihuLnByb3RvdHlwZSksImRvQ29tbWl0Iix0aGlzKS5jYWxsKHRoaXMpfX0se2tleToibmVhcmVzdElucHV0UG9zIix2YWx1ZTpmdW5jdGlvbigpe2Zvcih2YXIgdCxlLGk9YXJndW1lbnRzLmxlbmd0aCxyPW5ldyBBcnJheShpKSx1PTA7dTxpO3UrKylyW3VdPWFyZ3VtZW50c1t1XTtyZXR1cm4gdGhpcy5jdXJyZW50TWFzaz8odD10aGlzLmN1cnJlbnRNYXNrKS5uZWFyZXN0SW5wdXRQb3MuYXBwbHkodCxyKTooZT1OcihUcihuLnByb3RvdHlwZSksIm5lYXJlc3RJbnB1dFBvcyIsdGhpcykpLmNhbGwuYXBwbHkoZSxbdGhpc10uY29uY2F0KHIpKX19LHtrZXk6Im92ZXJ3cml0ZSIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudE1hc2s\/dGhpcy5jdXJyZW50TWFzay5vdmVyd3JpdGU6TnIoVHIobi5wcm90b3R5cGUpLCJvdmVyd3JpdGUiLHRoaXMpfSxzZXQ6ZnVuY3Rpb24odCl7Y29uc29sZS53YXJuKCcib3ZlcndyaXRlIiBvcHRpb24gaXMgbm90IGF2YWlsYWJsZSBpbiBkeW5hbWljIG1hc2ssIHVzZSB0aGlzIG9wdGlvbiBpbiBzaWJsaW5ncycpfX0se2tleToiZWFnZXIiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmN1cnJlbnRNYXNrP3RoaXMuY3VycmVudE1hc2suZWFnZXI6TnIoVHIobi5wcm90b3R5cGUpLCJlYWdlciIsdGhpcyl9LHNldDpmdW5jdGlvbih0KXtjb25zb2xlLndhcm4oJyJlYWdlciIgb3B0aW9uIGlzIG5vdCBhdmFpbGFibGUgaW4gZHluYW1pYyBtYXNrLCB1c2UgdGhpcyBvcHRpb24gaW4gc2libGluZ3MnKX19LHtrZXk6Im1hc2tFcXVhbHMiLHZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0aGlzLmNvbXBpbGVkTWFza3MuZXZlcnkoKGZ1bmN0aW9uKGUsbil7dmFyIGk7cmV0dXJuIGUubWFza0VxdWFscyhudWxsPT09KGk9dFtuXSl8fHZvaWQgMD09PWk\/dm9pZCAwOmkubWFzayl9KSl9fV0pLG59KHJ1KTtCdS5ERUZBVUxUUz17ZGlzcGF0Y2g6ZnVuY3Rpb24odCxlLG4pe2lmKGUuY29tcGlsZWRNYXNrcy5sZW5ndGgpe3ZhciBpPWUucmF3SW5wdXRWYWx1ZSxyPWUuY29tcGlsZWRNYXNrcy5tYXAoKGZ1bmN0aW9uKGUscil7cmV0dXJuIGUucmVzZXQoKSxlLmFwcGVuZChpLHtyYXc6ITB9KSxlLmFwcGVuZCh0LG4pLHt3ZWlnaHQ6ZS5yYXdJbnB1dFZhbHVlLmxlbmd0aCxpbmRleDpyfX0pKTtyZXR1cm4gci5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLndlaWdodC10LndlaWdodH0pKSxlLmNvbXBpbGVkTWFza3NbclswXS5pbmRleF19fX0saXUuTWFza2VkRHluYW1pYz1CdTt2YXIgRHU9e01BU0tFRDoidmFsdWUiLFVOTUFTS0VEOiJ1bm1hc2tlZFZhbHVlIixUWVBFRDoidHlwZWRWYWx1ZSJ9O2Z1bmN0aW9uIHh1KHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg+MSYmdm9pZCAwIT09YXJndW1lbnRzWzFdP2FyZ3VtZW50c1sxXTpEdS5NQVNLRUQsbj1hcmd1bWVudHMubGVuZ3RoPjImJnZvaWQgMCE9PWFyZ3VtZW50c1syXT9hcmd1bWVudHNbMl06RHUuTUFTS0VELGk9c3UodCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpLnJ1bklzb2xhdGVkKChmdW5jdGlvbihpKXtyZXR1cm4gaVtlXT10LGlbbl19KSl9fWZ1bmN0aW9uIE11KHQpe2Zvcih2YXIgZT1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KGU+MT9lLTE6MCksaT0xO2k8ZTtpKyspbltpLTFdPWFyZ3VtZW50c1tpXTtyZXR1cm4geHUuYXBwbHkodm9pZCAwLG4pKHQpfWl1LlBJUEVfVFlQRT1EdSxpdS5jcmVhdGVQaXBlPXh1LGl1LnBpcGU9TXU7dHJ5e2dsb2JhbFRoaXMuSU1hc2s9aXV9Y2F0Y2godCl7fXQuSFRNTENvbnRlbnRlZGl0YWJsZU1hc2tFbGVtZW50PV91LHQuSFRNTE1hc2tFbGVtZW50PWJ1LHQuSW5wdXRNYXNrPUN1LHQuTWFza0VsZW1lbnQ9bXUsdC5NYXNrZWQ9cnUsdC5NYXNrZWREYXRlPXl1LHQuTWFza2VkRHluYW1pYz1CdSx0Lk1hc2tlZEVudW09RXUsdC5NYXNrZWRGdW5jdGlvbj1TdSx0Lk1hc2tlZE51bWJlcj1GdSx0Lk1hc2tlZFBhdHRlcm49Z3UsdC5NYXNrZWRSYW5nZT1rdSx0Lk1hc2tlZFJlZ0V4cD1kdSx0LlBJUEVfVFlQRT1EdSx0LmNyZWF0ZU1hc2s9c3UsdC5jcmVhdGVQaXBlPXh1LHQuZGVmYXVsdD1pdSx0LnBpcGU9TXUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSkpOw0KLy8jIHNvdXJjZU1hcHBpbmdVUkw9aW1hc2subWluLmpzLm1hcDsKLyoqIC9tL2pzL3ZhbmlsbGFqcy9mb3JtLmpzICoqLwp2YXIgX19fZDJjX2Zvcm1qc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjIwIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19mb3JtanNfY19vbj0iMjAyNC0wMS0zMSAxNDozMzowOSI7InVzZSBzdHJpY3QiO19fX2QyY19mb3JtanNfY19vbj0iMjAyMy0wNC0yNyAxMDozMDo0OSI7InVzZSBzdHJpY3QiOwpjb25zdCBGb3JtPWZ1bmN0aW9uKCl7dGhpcy5NQVNLUz17cGhvbmU6IjAwMCAwMDAtMDAwMCIsc2luOiIwMDAgMDAwIDAwMCIscG9zdGFsQ29kZToiYTBhIDBhMCJ9O3RoaXMubWFzaz0oYSxiKT0+e2E9ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChhKTthLmxlbmd0aCYmYS5mb3JFYWNoKGM9PntJTWFzayhjLGIpfSl9O3RoaXMubWFza051bWJlcj0oYSxiKT0+e2xldCBjPXttYXNrOk51bWJlcixtaW46MH07YiYmKGMubWF4PWIpO3RoaXMubWFzayhhLGMpfTt0aGlzLm1hc2tQaG9uZT1hPT57dGhpcy5tYXNrKGEse21hc2s6W3ttYXNrOnRoaXMuTUFTS1MucGhvbmV9LHttYXNrOmAxICR7dGhpcy5NQVNLUy5waG9uZX1gfV19KX07dGhpcy5tYXNrUG9zdGFsQ29kZT1hPT57dGhpcy5tYXNrKGEse21hc2s6dGhpcy5NQVNLUy5wb3N0YWxDb2RlLHByZXBhcmU6Yj0+Yi50b1VwcGVyQ2FzZSgpfSl9fTsKLyoqIC9tL2pzL2dlbmVyaWNNYWlsLmpzICoqLwp2YXIgX19fZDJjX2dlbmVyaWNNYWlsanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMDoxNSI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfZ2VuZXJpY01haWxqc19jX29uPSIyMDI0LTExLTI4IDEwOjMwOjExIjsidXNlIHN0cmljdCI7CkdlbmVyaWNNYWlsPWZ1bmN0aW9uKHYpe2Z1bmN0aW9uIG0oYyl7Yz1jLnRvU3RyaW5nKCk7cmV0dXJuIGMucmVwbGFjZSgvPFwvP1tePl0rPi9naSwiIil9dmFyIGI9dGhpcztiLm1haWxJRD12O2IuZW1haWxTZW50PWZ1bmN0aW9uKGMpe21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoYi5tYWlsSUQpO2M\/KCJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFNlbnRIYW5kbGVyJiYobWFpbFNlbnRIYW5kbGVyLnRpbWVvdXRDYWxsYmFjaz1iLm1zZ1NlbnRGaW5pc2hlZEhhbmRsZXIsbWFpbFNlbnRIYW5kbGVyLnNob3dTdWNjZXNzKCkpLGIuY2xlYXJGb3JtKCkpOiJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFNlbnRIYW5kbGVyJiYobWFpbFNlbnRIYW5kbGVyLnRpbWVvdXRDYWxsYmFjaz1iLm1zZ1NlbnRGaW5pc2hlZEhhbmRsZXIsbWFpbFNlbnRIYW5kbGVyLnNob3dGYWlsKCkpfTtiLmNsZWFyRm9ybT1mdW5jdGlvbigpe3ZhciBjPWIuanFTY29wZTtpZigidW5kZWZpbmVkIj09PQp0eXBlb2YgY3x8IiI9PWMpaWYoJCgiLklubmVyQm94TGF5ZXIiKS5sZW5ndGgpYz0iLklubmVyQm94TGF5ZXIiO2Vsc2UgcmV0dXJuOyQoIi5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciBpbnB1dCwgLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGV4dGFyZWEiLGMpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLnZhbCgiIik7JCh0aGlzKS5hdHRyKCJwbGFjZWhvbGRlciIsJCh0aGlzKS5hdHRyKCJhbHQiKSl9KTskKCIjZm9vdGVyRGl2ICNsZWFkU2VudCIpLnJlbW92ZSgpfTtiLm1zZ1NlbnRGaW5pc2hlZEhhbmRsZXI9ZnVuY3Rpb24oKXt9O2IuYmFuZHBMaW5rPWZ1bmN0aW9uKGMpe3JldHVybiBlbWFpbEhhbmRsZXIuYmFuZHBMaW5rKGMpfTtiLnNhdmU9ZnVuY3Rpb24oYyl7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKGMpO2lmKCFiLl92YWxpZGF0ZUZpZWxkcygpKXJldHVybiAkKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7c2Nyb2xsVG9wOiQoIi52YWxpZGl0eS1lcnJvbmVvdXM6Zmlyc3QiKS5vZmZzZXQoKS50b3AtCjEwMH0sMkUzKSwhMTtiLnByZXBhcmUoKTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoKX07Yi5wcmVwYXJlPWZ1bmN0aW9uKCl7dmFyIGM9ZnVuY3Rpb24oaCl7eD0oaCsiIikuc3BsaXQoIi4iKTt4MT14WzBdO3gyPTE8eC5sZW5ndGg\/Ii4iK3hbMV06IiI7Zm9yKGg9LyhcZCspKFxkezN9KS87aC50ZXN0KHgxKTspeDE9eDEucmVwbGFjZShoLCIkMSwkMiIpO3JldHVybiB4MSt4Mn0sZz1iLmpxU2NvcGU\/Yi5qcVNjb3BlOiIuSW5uZXJCb3hMYXllciIsaz0iIixhPSIiLGU9IiIsZD0iIixmPSIiO2s9MDwkKCIjZW1haWxTdWJqZWN0RGVmXyIrYi5tYWlsSUQsZykubGVuZ3RoPyQoIiNlbWFpbFN1YmplY3REZWZfIitiLm1haWxJRCxnKS50ZXh0KCk6MDwkKCIjZW1haWxTdWJqZWN0RGVmIixnKS5sZW5ndGg\/JCgiI2VtYWlsU3ViamVjdERlZiIsZykudGV4dCgpOiQoIiNlbWFpbFN1YmplY3REZWYiKS50ZXh0KCk7YT0wPCQoIiNlbWFpbEJvZHlEZWZfIitiLm1haWxJRCxnKS5sZW5ndGg\/JCgiI2VtYWlsQm9keURlZl8iKwpiLm1haWxJRCxnKS5odG1sKCk6JCgiI2VtYWlsQm9keURlZiIsZykubGVuZ3RoPyQoIiNlbWFpbEJvZHlEZWYiLGcpLmh0bWwoKTokKCIjZW1haWxCb2R5RGVmIikuaHRtbCgpO3ZhciBsPSJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRJc0RlbW8iKS5hdHRyKCJpZCIpJiYiMSI9PSQoIiN0ZXh0SXNEZW1vIikudmFsKCk\/ITA6ITE7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsUXVpY2tFbWFpbCYmbnVsbCE9bWFpbFF1aWNrRW1haWwmJiJzdHJpbmciPT09dHlwZW9mIG1haWxRdWlja0VtYWlsLm1lc3NhZ2UmJihlbWFpbEhhbmRsZXIuY29tbWVudHM9bWFpbFF1aWNrRW1haWwubWVzc2FnZSk7c3dpdGNoKGIubWFpbElEKXtjYXNlICJRdWlja0VtYWlsIjpjYXNlICJRdWlja0VtYWlsTmV3SW52ZW50b3J5IjpjYXNlICJtZW51Q29udGFjdFVzIjplbWFpbEhhbmRsZXIucG9wdXBkaXY9InF1aWNrRW1haWxGb3JtIjttYWlsUXVpY2tFbWFpbC5hc3NpZ25WYWx1ZXMoKTthPWEucmVwbGFjZSgve1wkTkFNRX0vZywKZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFF1aWNrRW1haWwubmFtZSkpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLG1haWxRdWlja0VtYWlsLmVtYWlsKTthPWEucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZyxtYWlsUXVpY2tFbWFpbC5waG9uZSkucmVwbGFjZSgve1wkTUVTU0FHRX0vZyxtYWlsUXVpY2tFbWFpbC5tZXNzYWdlKTthPWEucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLG1haWxRdWlja0VtYWlsLm1ha2UpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csbWFpbFF1aWNrRW1haWwubW9kZWwpO2E9YS5yZXBsYWNlKC97XCRFTUFJTFlFQVJ9L2csbWFpbFF1aWNrRW1haWwueWVhcikucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csbWFpbFF1aWNrRW1haWwuc3RvY2tOdW1iZXIpO2E9YS5yZXBsYWNlKC97XCRERVBBUlRNRU5UMn0vZyxtYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50KTthPWEucmVwbGFjZSgvQ2l0eTovZywiIik7InVuZGVmaW5lZCIhPQp0eXBlb2YgbWFpbFF1aWNrRW1haWwucm9hZFRlc3QmJm51bGwhPW1haWxRdWlja0VtYWlsLnJvYWRUZXN0JiYoYT1hLnJlcGxhY2UoL3tcJEVNQUlMUk9BRFRFU1R9L2csbWFpbFF1aWNrRW1haWwucm9hZFRlc3QpLnJlcGxhY2UoL3tcJEVNQUlMQ0FSRH0vZyxtYWlsUXVpY2tFbWFpbC5naWZ0Q2FyZCkpO2VtYWlsSGFuZGxlci51c2VyRW1haWw9bWFpbFF1aWNrRW1haWwuZW1haWw7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9bWFpbFF1aWNrRW1haWwubmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPW1haWxRdWlja0VtYWlsLnBob25lO2U9bWFpbFF1aWNrRW1haWwubWVzc2FnZTtlbWFpbEhhbmRsZXIudHJpbT0kKCIjZXhwcmVzc2NhcnRyaW0iKS52YWwoKTtlbWFpbEhhbmRsZXIudmluPSQoIiNleHByZXNzY2FydmluIikudmFsKCk7ZW1haWxIYW5kbGVyLnByaWNlPSQoIiNleHByZXNzY2FycHJpY2UiKS52YWwoKTtlbWFpbEhhbmRsZXIubWFrZT0kKCIjZXhwcmVzc2Nhcm1ha2UiKS52YWwoKTsKZW1haWxIYW5kbGVyLm1vZGVsPSQoIiNleHByZXNzY2FybW9kZWwiKS52YWwoKTtlbWFpbEhhbmRsZXIueWVhcj0kKCIjZXhwcmVzc2NhcnllYXIiKS52YWwoKTtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9bWFpbFF1aWNrRW1haWwuc3RvY2tOdW1iZXI7InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjZXhwcmVzc2NhcmlkIikuYXR0cigiaWQiKT9lbWFpbEhhbmRsZXIuY2FyaWQ9IiI6ZW1haWxIYW5kbGVyLmNhcmlkPSQoIiNleHByZXNzY2FyaWQiKS52YWwoKTskKCJpbnB1dC5sYWJlbGVtYWlsIikudmFsKCJEZW1hbmRlcy1FeHByZXNzIik7JCgiaW5wdXQuaXNleHByZXNzIikudmFsKCIxIik7InVuZGVmaW5lZCIhPXR5cGVvZiBzZWFyY2hFbmdpbmUmJigkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKG1haWxRdWlja0VtYWlsLm1ha2UpLCQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwobWFpbFF1aWNrRW1haWwubW9kZWwpLCQoImlucHV0LnllYXJlbWFpbCIpLnZhbChtYWlsUXVpY2tFbWFpbC55ZWFyKSk7CiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NjYXJpZCIpLmF0dHIoImlkIik\/MDwkKCIjZXhwcmVzc2NhcmlkIikudmFsKCkubGVuZ3RoP2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVzZWQiOmVtYWlsSGFuZGxlci5jb25kaXRpb249MDxtYWlsUXVpY2tFbWFpbC5tYWtlLmxlbmd0aD8iTmV3IjoiVW5rbm93biI6ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVW5rbm93biI7IiIhPT1tYWlsUXVpY2tFbWFpbC5kZXBhcnRtZW50JiYoZW1haWxIYW5kbGVyLmRlcGFydG1lbnQ9bWFpbFF1aWNrRW1haWwuZGVwYXJ0bWVudCk7ZD1tYWlsUXVpY2tFbWFpbC5nZXRTZW5kVG8oKTtmPW1haWxRdWlja0VtYWlsLmdldFNlbmRUb0FkZigpO2JyZWFrO2Nhc2UgIlJlYmF0ZUNvdXBvblByb21vIjptYWlsUXVpY2tFbWFpbC5hc3NpZ25WYWx1ZXMoKTtlPW1haWxRdWlja0VtYWlsLm1lc3NhZ2U7YT1hLnJlcGxhY2UoL3tcJE5BTUV9L2csZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFF1aWNrRW1haWwubmFtZSkpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLAptYWlsUXVpY2tFbWFpbC5lbWFpbCk7YT1hLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csbWFpbFF1aWNrRW1haWwucGhvbmUpLnJlcGxhY2UoL3tcJE1FU1NBR0V9L2csbWFpbFF1aWNrRW1haWwubWVzc2FnZSk7YT1hLnJlcGxhY2UoL3tcJENPVVBPTk1BS0V9L2csJCgiI2NvdXBvbm1ha2UiKS52YWwoKSkucmVwbGFjZSgve1wkQ09VUE9OTU9ERUx9L2csJCgiI2NvdXBvbm1vZGVsIikudmFsKCkpO2E9YS5yZXBsYWNlKC97XCRDT1VQT05ZRUFSfS9nLCQoIiNjb3Vwb255ZWFyIikudmFsKCkpLnJlcGxhY2UoL3tcJENPVVBPTlNUT0NLTlVNQkVSfS9nLCQoIiNjb3Vwb25zdG9ja251bWJlciIpLnZhbCgpKTthPWEucmVwbGFjZSgve1wkQ09VUE9OVkFMVUV9L2csJCgiI2NvdXBvblZhbHVlIikudmFsKCkrIiQiKS5yZXBsYWNlKC97XCRQUklDRX0vZywkKCIjdmVoaWNsZU9yaWdQcmljZSIpLnZhbCgpKyIkIik7ZW1haWxIYW5kbGVyLm1ha2U9JCgiI2NvdXBvbm1ha2UiKS52YWwoKTsKZW1haWxIYW5kbGVyLm1vZGVsPSQoIiNjb3Vwb25tb2RlbCIpLnZhbCgpO2VtYWlsSGFuZGxlci55ZWFyPSQoIiNjb3Vwb255ZWFyIikudmFsKCk7ZW1haWxIYW5kbGVyLnVzZXJFbWFpbD1tYWlsUXVpY2tFbWFpbC5lbWFpbDtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1tYWlsUXVpY2tFbWFpbC5uYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9bWFpbFF1aWNrRW1haWwucGhvbmU7ZW1haWxIYW5kbGVyLnRyaW09JCgiI2NvdXBvbnZlaGljbGV0cmltIikudmFsKCk7ZW1haWxIYW5kbGVyLnZpbj0kKCIjY291cG9udmVoaWNsZXZpbiIpLnZhbCgpO2VtYWlsSGFuZGxlci5wcmljZT0kKCIjdmVoaWNsZU9yaWdQcmljZSIpLnZhbCgpO2VtYWlsSGFuZGxlci5zdG9ja051bWJlcj0kKCIjY291cG9uc3RvY2tudW1iZXIiKS52YWwoKTtlbWFpbEhhbmRsZXIuY2FyaWQ9JCgiI2NvdXBvbnZlaGljbGVpZCIpLnZhbCgpOyQoImlucHV0LmxhYmVsZW1haWwiKS52YWwoIlJlYmF0ZUNvdXBvblByb21vIik7CiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VhcmNoRW5naW5lJiYoJCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgkKCIjY291cG9ubWFrZSIpLnZhbCgpKSwkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKCQoIiNjb3Vwb25tb2RlbCIpLnZhbCgpKSwkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoJCgiI2NvdXBvbnllYXIiKS52YWwoKSkpO2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVzZWQiO2IuZW1haWxTZW50PWZ1bmN0aW9uKGgpeyQoIi5jbG9zZS1yZXZlYWwtbW9kYWwiKS50cmlnZ2VyKCJjbGljayIpfTticmVhaztjYXNlICJDYXJwcm9vZk1haWwiOmVtYWlsSGFuZGxlci5wb3B1cGRpdj0iY2FycHJvb2ZNYWluRGl2IjtrPSQoIiNlbWFpbFN1YmplY3REZWYyIikudGV4dCgpO2E9JCgiI2VtYWlsQm9keURlZjIiKS5odG1sKCk7JCgiaW5wdXQubGFiZWxlbWFpbCIpLnZhbCgiRGVtYW5kZXMtQ2FyUHJvb2YiKTskKCJpbnB1dC5pc2V4cHJlc3MiKS52YWwoIjAiKTskKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKGNhcnByb29mSGFuZGxlci5tYWtlKTsKJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbChjYXJwcm9vZkhhbmRsZXIubW9kZWwpOyQoImlucHV0LnllYXJlbWFpbCIpLnZhbChjYXJwcm9vZkhhbmRsZXIueWVhcik7YT1hLnJlcGxhY2UoL3tcJE5BTUV9L2csZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQoY2FycHJvb2ZIYW5kbGVyLm5hbWUpKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxjYXJwcm9vZkhhbmRsZXIuZW1haWwpO2E9YS5yZXBsYWNlKC97XCRFTUFJTE1BS0V9L2csY2FycHJvb2ZIYW5kbGVyLm1ha2UpLnJlcGxhY2UoL3tcJEVNQUlMTU9ERUx9L2csY2FycHJvb2ZIYW5kbGVyLm1vZGVsKS5yZXBsYWNlKC97XCRFTUFJTFlFQVJ9L2csY2FycHJvb2ZIYW5kbGVyLnllYXIpO2E9YS5yZXBsYWNlKC97XCRDT0xPUn0vZyxjYXJwcm9vZkhhbmRsZXIuY29sb3IpLnJlcGxhY2UoL3tcJFNUT0NLTlVNQkVSfS9nLGNhcnByb29mSGFuZGxlci5zdG9ja051bWJlcikucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZywKY2FycHJvb2ZIYW5kbGVyLnBob25lKTtlbWFpbEhhbmRsZXIudXNlckVtYWlsPWNhcnByb29mSGFuZGxlci5lbWFpbDtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1jYXJwcm9vZkhhbmRsZXIubmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPWNhcnByb29mSGFuZGxlci5waG9uZTtlbWFpbEhhbmRsZXIubWFrZT1jYXJwcm9vZkhhbmRsZXIubWFrZTtlbWFpbEhhbmRsZXIubW9kZWw9Y2FycHJvb2ZIYW5kbGVyLm1vZGVsO2VtYWlsSGFuZGxlci55ZWFyPWNhcnByb29mSGFuZGxlci55ZWFyO2VtYWlsSGFuZGxlci50cmltPSQoIiNjYXJwcm9vZmNhcnRyaW0iKS52YWwoKTtlbWFpbEhhbmRsZXIudmluPSQoIiNjYXJwcm9vZmNhcnZpbiIpLnZhbCgpO2VtYWlsSGFuZGxlci5wcmljZT0kKCIjY2FycHJvb2ZjYXJwcmljZSIpLnZhbCgpO2VtYWlsSGFuZGxlci5zdG9ja051bWJlcj1jYXJwcm9vZkhhbmRsZXIuc3RvY2tOdW1iZXI7ZW1haWxIYW5kbGVyLmNhcmlkPSQoIiNjYXJwcm9vZmNhcmlkIikudmFsKCk7CmQ9Y2FycHJvb2ZIYW5kbGVyLnNlbmRUby5sZW5ndGgmJiIiIT1jYXJwcm9vZkhhbmRsZXIuc2VuZFRvP2NhcnByb29mSGFuZGxlci5zZW5kVG86JCgiI3RleHRTZW5kVG9FbWFpbCIpLmxlbmd0aD8kKCIjdGV4dFNlbmRUb0VtYWlsIikudmFsKCk6IiI7Zj1jYXJwcm9vZkhhbmRsZXIuc2VuZFRvQWRmLmxlbmd0aCYmIiIhPWNhcnByb29mSGFuZGxlci5zZW5kVG9BZGY\/Y2FycHJvb2ZIYW5kbGVyLnNlbmRUb0FkZjokKCIjdGV4dFNlbmRUb0VtYWlsQURGIikubGVuZ3RoPyQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKToiIjtlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT1jYXJwcm9vZkhhbmRsZXIuZGVhbGVyTmFtZTticmVhaztjYXNlICJDdXN0b21lclJhdGluZyI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJDdXN0b21lclJhdGluZyI7bWFpbFJhdGluZy5hc3NpZ25WYWx1ZXMoKTthPWEucmVwbGFjZSgve1wkUkFUSU5HTUVTU0FHRX0vZyxtYWlsUmF0aW5nLm1lc3NhZ2UpLnJlcGxhY2UoL3tcJExOQU1FfS9nLApkMmNtZWRpYS5jYXBpdGFsaXNlRmlyc3RMZXR0ZXJPZkV2ZXJ5V29yZChtYWlsUmF0aW5nLnVzZXJMYXN0TmFtZSkpLnJlcGxhY2UoL3tcJEZOQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxSYXRpbmcudXNlckZpcnN0TmFtZSkpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLG1haWxSYXRpbmcudXNlckVtYWlsKS5yZXBsYWNlKC97XCRQSE9ORX0vZyxtYWlsUmF0aW5nLnVzZXJQaG9uZSkucmVwbGFjZSgve1wkUkFUSU5HU1RBUlN9L2csbWFpbFJhdGluZy5yYXRpbmcpLnJlcGxhY2UoL3tcJENMSUVOVE5BTUV9L2csbWFpbFJhdGluZy51c2VyRmlyc3ROYW1lKyIgIittYWlsUmF0aW5nLnVzZXJMYXN0TmFtZSk7az1rLnJlcGxhY2UoL3tcJENMSUVOVE5BTUV9L2csbWFpbFJhdGluZy51c2VyRmlyc3ROYW1lKyIgIittYWlsUmF0aW5nLnVzZXJMYXN0TmFtZSk7ZW1haWxIYW5kbGVyLnZpbj0iIjtlbWFpbEhhbmRsZXIucHJpY2U9MDtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9CiIiO2VtYWlsSGFuZGxlci5jYXJpZD0iIjtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPSJVbmtub3duIjtlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1tYWlsUmF0aW5nLnVzZXJGaXJzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1tYWlsUmF0aW5nLnVzZXJMYXN0TmFtZTtlbWFpbEhhbmRsZXIudXNlclBob25lPW1haWxSYXRpbmcudXNlclBob25lO2VtYWlsSGFuZGxlci51c2VyRW1haWw9bWFpbFJhdGluZy51c2VyRW1haWw7ZD1tYWlsUmF0aW5nLnNlbmRUbztmPSIgICI7YnJlYWs7Y2FzZSAiaGVhZGVyU2VydmljZSI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJtZW51U2VydmljZSI7c2VydmljZUZvcm1faGVhZGVyU2VydmljZS5zZXRFbWFpbFNlbnRDYWxsYmFjaygpO2E9c2VydmljZUZvcm1faGVhZGVyU2VydmljZS5zZXRFbWFpbEhhbmRsZXJWYWx1ZXNBbmRCb2R5KGEpO2Q9c2VydmljZUZvcm1faGVhZGVyU2VydmljZS5nZXRTZW5kVG8oKTtrKz0iIEV4cHJlc3MiOwpicmVhaztjYXNlICJtZW51U2VydmljZSI6ZW1haWxIYW5kbGVyLnBvcHVwZGl2PSJtZW51U2VydmljZSI7c2VydmljZUZvcm1fbWVudVNlcnZpY2Uuc2V0RW1haWxTZW50Q2FsbGJhY2soKTthPXNlcnZpY2VGb3JtX21lbnVTZXJ2aWNlLnNldEVtYWlsSGFuZGxlclZhbHVlc0FuZEJvZHkoYSk7ZD1zZXJ2aWNlRm9ybV9tZW51U2VydmljZS5nZXRTZW5kVG8oKTtrKz0iIEV4cHJlc3MiO2JyZWFrO2RlZmF1bHQ6IiI9PWQmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRTZW5kVG9FbWFpbCIpLmF0dHIoImlkIikmJihkPSQoIiN0ZXh0U2VuZFRvRW1haWwiKS52YWwoKSk7IiI9PWYmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLmF0dHIoImlkIikmJjM8JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLnZhbCgpLmxlbmd0aCYmKGY9JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLnZhbCgpKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxWZWhpY2xlV2lkZ2V0JiYKKG1haWxWZWhpY2xlV2lkZ2V0LmFzc2lnblZhbHVlcygpLGE9YS5yZXBsYWNlKC97XCRFTUFJTE1BS0V9L2csbWFpbFZlaGljbGVXaWRnZXQubWFrZSkucmVwbGFjZSgve1wkRU1BSUxNT0RFTH0vZyxtYWlsVmVoaWNsZVdpZGdldC5tb2RlbCkucmVwbGFjZSgve1wkRU1BSUxZRUFSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnllYXIpLnJlcGxhY2UoL3tcJENPTE9SfS9nLG1haWxWZWhpY2xlV2lkZ2V0LmNvbG9yKS5yZXBsYWNlKC97XCRFTUFJTFNUT0NLTlVNQkVSfS9nLG1haWxWZWhpY2xlV2lkZ2V0LnN0b2NrTnVtYmVyKS5yZXBsYWNlKC97XCRTVE9DS05VTUJFUn0vZyxtYWlsVmVoaWNsZVdpZGdldC5zdG9ja051bWJlcikucmVwbGFjZSgve1wkRlJPTVlFQVJ9L2csbWFpbFZlaGljbGVXaWRnZXQuZnJvbVllYXIpLnJlcGxhY2UoL3tcJFRPWUVBUn0vZyxtYWlsVmVoaWNsZVdpZGdldC50b1llYXIpLnJlcGxhY2UoL3tcJElOVEVOVElPTn0vZyxtYWlsVmVoaWNsZVdpZGdldC5pbnRlbnRpb24pLnJlcGxhY2UoL3tcJFBMQVRFU30vZywKbWFpbFZlaGljbGVXaWRnZXQucGxhdGVzKS5yZXBsYWNlKC97XCRWSU59L2csbWFpbFZlaGljbGVXaWRnZXQudmluKSxtYWlsVmVoaWNsZVdpZGdldC5vZG9tb3RlciYmKGE9YS5yZXBsYWNlKC97XCRLTX0vZyxjKG1haWxWZWhpY2xlV2lkZ2V0Lm9kb21vdGVyKSkpLCQoImlucHV0LmJyYW5kZW1haWwiKS5sZW5ndGgmJiQoImlucHV0LmJyYW5kZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXQubWFrZSksJCgiaW5wdXQubW9kZWxlbWFpbCIpLmxlbmd0aCYmJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldC5tb2RlbCksJCgiaW5wdXQueWVhcmVtYWlsIikubGVuZ3RoJiYkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwobWFpbFZlaGljbGVXaWRnZXQueWVhciksZW1haWxIYW5kbGVyLm1ha2U9bWFpbFZlaGljbGVXaWRnZXQubWFrZSxlbWFpbEhhbmRsZXIubW9kZWw9bWFpbFZlaGljbGVXaWRnZXQubW9kZWwsZW1haWxIYW5kbGVyLnllYXI9bWFpbFZlaGljbGVXaWRnZXQueWVhciwKZW1haWxIYW5kbGVyLnRyaW09JCgiI2NhcnRyaW0iKS52YWwoKSxlbWFpbEhhbmRsZXIudmluPW1haWxWZWhpY2xlV2lkZ2V0LnZpbixlbWFpbEhhbmRsZXIucHJpY2U9JCgiI2NhcnByaWNlIikudmFsKCksZW1haWxIYW5kbGVyLnN0b2NrTnVtYmVyPW1haWxWZWhpY2xlV2lkZ2V0LnN0b2NrTnVtYmVyLGVtYWlsSGFuZGxlci5jYXJpZD0kKCIjY2FyaWQiKS52YWwoKSwwPCQoIiNjYXJpZCIpLnZhbCgpLmxlbmd0aHx8ZW1haWxIYW5kbGVyLnllYXI8KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpP2VtYWlsSGFuZGxlci5jb25kaXRpb249IlVzZWQiOmVtYWlsSGFuZGxlci5jb25kaXRpb249MDxtYWlsVmVoaWNsZVdpZGdldC5tYWtlLmxlbmd0aD8iTmV3IjoiVW5rbm93biIpO2E9YS5yZXBsYWNlKC97XCRQTEFURVN9L2csIiIpOyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFZlaGljbGVXaWRnZXRFeCYmJCgiI3ZlaGljbGVTZWxlY3RGb3JtRXgiKS5sZW5ndGgmJihtYWlsVmVoaWNsZVdpZGdldEV4LmFzc2lnblZhbHVlcygpLAphPWEucmVwbGFjZSgve1wkTUFLRUVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZSkucmVwbGFjZSgve1wkTU9ERUxFWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4Lm1vZGVsKS5yZXBsYWNlKC97XCRZRUFSRVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC55ZWFyKS5yZXBsYWNlKC97XCRDT0xPUkVYfS9nLG1haWxWZWhpY2xlV2lkZ2V0RXguY29sb3IpLnJlcGxhY2UoL3tcJFRSSU1FWH0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LnRyaW0pLnJlcGxhY2UoL3tcJFRSQU5TTUlTU0lPTn0vZyxtYWlsVmVoaWNsZVdpZGdldEV4LnRyYW5zbWlzc2lvbikucmVwbGFjZSgve1wkS019L2csYyhtYWlsVmVoaWNsZVdpZGdldEV4Lm9kb21vdGVyKSkucmVwbGFjZSgve1wkVklORVh9L2csbWFpbFZlaGljbGVXaWRnZXRFeC52aW4pLnJlcGxhY2UoL3tcJERSSVZFVFJBSU59L2csbWFpbFZlaGljbGVXaWRnZXRFeC5kcml2ZXRyYWluKS5yZXBsYWNlKC97XCRHQVN9L2csbWFpbFZlaGljbGVXaWRnZXRFeC5mdWVsKSwKJCgiaW5wdXQuYnJhbmRlbWFpbCIpLmxlbmd0aCYmMDxtYWlsVmVoaWNsZVdpZGdldEV4Lm1ha2UubGVuZ3RoJiYkKCJpbnB1dC5icmFuZGVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZSksJCgiaW5wdXQubW9kZWxlbWFpbCIpLmxlbmd0aCYmMDxtYWlsVmVoaWNsZVdpZGdldEV4Lm1vZGVsLmxlbmd0aCYmJCgiaW5wdXQubW9kZWxlbWFpbCIpLnZhbChtYWlsVmVoaWNsZVdpZGdldEV4Lm1vZGVsKSwkKCJpbnB1dC55ZWFyZW1haWwiKS5sZW5ndGgmJjA8bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLmxlbmd0aCYmJCgiaW5wdXQueWVhcmVtYWlsIikudmFsKG1haWxWZWhpY2xlV2lkZ2V0RXgueWVhciksZW1haWxIYW5kbGVyLm1ha2U9bWFpbFZlaGljbGVXaWRnZXRFeC5tYWtlLGVtYWlsSGFuZGxlci5tb2RlbD1tYWlsVmVoaWNsZVdpZGdldEV4Lm1vZGVsLGVtYWlsSGFuZGxlci55ZWFyPW1haWxWZWhpY2xlV2lkZ2V0RXgueWVhcixlbWFpbEhhbmRsZXIudHJpbT1tYWlsVmVoaWNsZVdpZGdldEV4LnRyaW0sCiJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyLmlzVHJhZGVJbkJhcnx8IlByaWNlVmVoaWNsZSIhPWIubWFpbElEJiYiUHJpY2VWZWhpY2xlTmV3IiE9Yi5tYWlsSUQmJiJFc3RoZXRpY1JlcXVlc3QiIT1iLm1haWxJRHx8KGVtYWlsSGFuZGxlci5tYWtlPW1haWxWZWhpY2xlV2lkZ2V0Lm1ha2UsZW1haWxIYW5kbGVyLm1vZGVsPW1haWxWZWhpY2xlV2lkZ2V0Lm1vZGVsLGVtYWlsSGFuZGxlci55ZWFyPW1haWxWZWhpY2xlV2lkZ2V0LnllYXIsZW1haWxIYW5kbGVyLnRyaW09bWFpbFZlaGljbGVXaWRnZXQudHJpbSwiUHJpY2VWZWhpY2xlIiE9Yi5tYWlsSUQmJiJQcmljZVZlaGljbGVOZXciIT1iLm1haWxJRCl8fChlbWFpbEhhbmRsZXIuY2FyMl9tYWtlPW1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZSxlbWFpbEhhbmRsZXIuY2FyMl9tb2RlbD1tYWlsVmVoaWNsZVdpZGdldEV4Lm1vZGVsLGVtYWlsSGFuZGxlci5jYXIyX3RyaW09bWFpbFZlaGljbGVXaWRnZXRFeC50cmltLAplbWFpbEhhbmRsZXIuY2FyMl95ZWFyPW1haWxWZWhpY2xlV2lkZ2V0RXgueWVhcixlbWFpbEhhbmRsZXIuY2FyMl9jb2xvcj1tYWlsVmVoaWNsZVdpZGdldEV4LmNvbG9yLGVtYWlsSGFuZGxlci5jYXIyX29kb21ldGVyPWMobWFpbFZlaGljbGVXaWRnZXRFeC5vZG9tb3RlciksZW1haWxIYW5kbGVyLmNhcjJfdmluPW1haWxWZWhpY2xlV2lkZ2V0RXgudmluLGVtYWlsSGFuZGxlci5jYXIyX3RyYW5zbWlzc29uPW1haWxWZWhpY2xlV2lkZ2V0RXgudHJhbnNtaXNzaW9uLGVtYWlsSGFuZGxlci5jYXIyX2RyaXZldHJhaW49bWFpbFZlaGljbGVXaWRnZXRFeC5kcml2ZXRyYWluLGVtYWlsSGFuZGxlci5jYXIyX2Z1ZWx0eXBlPW1haWxWZWhpY2xlV2lkZ2V0RXguZnVlbCxhPWEucmVwbGFjZSgve1wkVFJBREVJTkxPV30vZywiTi9BIiksYT1hLnJlcGxhY2UoL3tcJFRSQURFSU5ISUdIfS9nLCJOL0EiKSxhPWEucmVwbGFjZSgve1wkVFJBREVJTkFWR30vZywiTi9BIikpLGVtYWlsSGFuZGxlci52aW49CiIiLGVtYWlsSGFuZGxlci5wcmljZT0wLGVtYWlsSGFuZGxlci5zdG9ja051bWJlcj0iIixlbWFpbEhhbmRsZXIuY2FyaWQ9IiIsMDwkKCIjY2FyaWQiKS52YWwoKS5sZW5ndGg\/ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iVXNlZCI6ZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0wPG1haWxWZWhpY2xlV2lkZ2V0RXgubWFrZS5sZW5ndGg\/Ik5ldyI6IlVua25vd24iKTtpZigidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNzZXJ2aWNlUGFja2FnZXMiKS5wcm9wKCJpZCIpKXt2YXIgbj0hMSxyPSIiOyQoImlucHV0LnNlbGVjdGVkU2VydmljZSIpLmVhY2goZnVuY3Rpb24oaCxwKXtoPSQocCk7aC5pcygiOmNoZWNrZWQiKSYmKHIrPSI8YnI+IitoLnZhbCgpLG49ITApfSk7biYmKHI9Ijxicj48YnI+PHU+IiskKCIjc2VsZWN0ZWRTZXJ2aWNlc1RpdGxlIikudmFsKCkrIjwvdT4iK3IpO2E9YS5yZXBsYWNlKC97XCRTRUxFQ1RFRFNFUlZJQ0VTfS9nLHIpfSJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJJbmZvJiYKKG1haWxVc2VySW5mby5hc3NpZ25WYWx1ZXMoKSxhPWEucmVwbGFjZSgve1wkRk5BTUV9L2csZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbFVzZXJJbmZvLmZpcnN0TmFtZSkpLnJlcGxhY2UoL3tcJExOQU1FfS9nLGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxVc2VySW5mby5sYXN0TmFtZSkpLnJlcGxhY2UoL3tcJEVNQUlMUEhPTkV9L2csbWFpbFVzZXJJbmZvLnBob25lKS5yZXBsYWNlKC97XCRFTUFJTH0vZyxtYWlsVXNlckluZm8uZW1haWwpKTsidW5kZWZpbmVkIiE9dHlwZW9mIG1haWxKb2JPZmZlciYmKG1haWxKb2JPZmZlci5hc3NpZ25WYWx1ZXMoKSxkPSQoIiN0ZXh0U2VuZFRvRW1haWwiKS52YWwoKSxmPSQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS52YWwoKSxhPWEucmVwbGFjZSgve1wkSk9CUE9TVH0vZyxtKGQyY21lZGlhLmNhcGl0YWxpc2VGaXJzdExldHRlck9mRXZlcnlXb3JkKG1haWxKb2JPZmZlci5qb2JQb3NpdG9uKSkpLnJlcGxhY2UoL3tcJEpPQkRFUEFSVE1FTlR9L2csCm0oZDJjbWVkaWEuY2FwaXRhbGlzZUZpcnN0TGV0dGVyT2ZFdmVyeVdvcmQobWFpbEpvYk9mZmVyLmpvYkRlcGFydG1lbnQpKSkucmVwbGFjZSgve1wkSk9CTVNHfS9nLG0obWFpbEpvYk9mZmVyLmpvYk1lc3NhZ2UpKSk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVXNlckFkZHJlc3Mpe21haWxVc2VyQWRkcmVzcy5hc3NpZ25WYWx1ZXMoKTt2YXIgcT10cmltKG1haWxVc2VyQWRkcmVzcy5hZGRyZXNzQXBwKyIgIittYWlsVXNlckFkZHJlc3MuYWRkcmVzc051bWJlcisiICIrbWFpbFVzZXJBZGRyZXNzLmFkZHJlc3NTdHJlZXQpO2E9YS5yZXBsYWNlKC97XCRDVVJSRU5UQUREUkVTU30vZyxtKHEpKS5yZXBsYWNlKC97XCRDVVJSRU5UQ0lUWX0vZyxtKG1haWxVc2VyQWRkcmVzcy5jaXR5KSkucmVwbGFjZSgve1wkQ1VSUkVOVFBST1ZJTkNFfS9nLG0obWFpbFVzZXJBZGRyZXNzLnByb3ZpbmNlKSkucmVwbGFjZSgve1wkQ1VSUkVOVFBPU1RBTENPREV9L2csbShtYWlsVXNlckFkZHJlc3MucG9zdGFsQ29kZSkpfSJ1bmRlZmluZWQiIT0KdHlwZW9mIG1haWxTY2hlZHVsZSYmKG1haWxTY2hlZHVsZS5hc3NpZ25WYWx1ZXMoKSxhPWEucmVwbGFjZSgve1wkREFURTF9L2csbWFpbFNjaGVkdWxlLmZpcnN0Q2hvaWNlKS5yZXBsYWNlKC97XCREQVRFMn0vZyxtYWlsU2NoZWR1bGUuc2Vjb25kQ2hvaWNlKS5yZXBsYWNlKC97XCRXQUlUSU5HT05TSVRFfS9nLG1haWxTY2hlZHVsZS53YWl0aW5nT25TaXRlKS5yZXBsYWNlKC97XCRUUkFOU1BPUlRPUFRJT059L2csbWFpbFNjaGVkdWxlLmdldFRyYW5zcG9ydE9wdGlvblRleHQoKSksZW1haWxIYW5kbGVyLnNlcnZpY2VEYXRlMT1tYWlsU2NoZWR1bGUuZmlyc3RDaG9pY2UsZW1haWxIYW5kbGVyLnNlcnZpY2VEYXRlMj1tYWlsU2NoZWR1bGUuc2Vjb25kQ2hvaWNlLGVtYWlsSGFuZGxlci53YWl0aW5nT25TaXRlPW1haWxTY2hlZHVsZS53YWl0aW5nT25TaXRlLGVtYWlsSGFuZGxlci50cmFuc3BvcnRPcHRpb249bWFpbFNjaGVkdWxlLnRyYW5zcG9ydE9wdGlvbik7dmFyIHQ9cT0iIiwKdT0iIjsidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNmaW5hbmNlT3B0aW9uRGl2IikuYXR0cigiaWQiKSYmKCJjaGVja2VkIj09JCgiI2ZpbmFuY2VPcHRpb25EaXYgaW5wdXQiKS5hdHRyKCJjaGVja2VkIik\/cT0kKCIjdGV4dENhc2giKS52YWwoKToocT0iY2hlY2tlZCI9PSQoIiNmaW5hbmNlT3B0aW9uRGl2MiBpbnB1dCIpLmF0dHIoImNoZWNrZWQiKT8kKCIjdGV4dEZpbmFuY2UiKS52YWwoKTokKCIjdGV4dExlYXNlIikudmFsKCksdT0kKCIjZmluYW5jZVRlcm1TZWxlY3QiKS52YWwoKSksInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjdmVoaWNsZU9mZmVyIikuYXR0cigiaWQiKSYmKHQ9IiQiK2MoJCgiI3ZlaGljbGVPZmZlciIpLnZhbCgpKSksYT1hLnJlcGxhY2UoL3tcJFBBWU1FTlR9L2cscSkucmVwbGFjZSgve1wkUEFZTUVOVFRFUk19L2csdSkucmVwbGFjZSgve1wkT0ZGRVJ9L2csdCkpOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3F1ZXN0aW9uc0NvbW1lbnRzIikuYXR0cigiaWQiKSYmCihlPW0oJCgiI3F1ZXN0aW9uc0NvbW1lbnRzIikudmFsKCkpLGE9YS5yZXBsYWNlKC97XCRRVUVTVElPTlN9L2csZSksZW1haWxIYW5kbGVyLmNvbW1lbnRzPWUpOyJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI3JlcXVlc3RUeXBlIikuYXR0cigiaWQiKSYmKGE9YS5yZXBsYWNlKC97XCRERU1BTkRFfS9nLCQoIiNyZXF1ZXN0VHlwZSIpLnZhbCgpKSl9JCgiI3Rlc3REcml2ZVR5cGUiKS5sZW5ndGgmJihhPWEucmVwbGFjZSgve1wkVEVTVERSSVZFVFlQRX0vZywkKCIjdGVzdERyaXZlVHlwZSIpLnZhbCgpKSxhPSJWaXJ0dWFsIj09JCgiI3Rlc3REcml2ZVR5cGUiKS52YWwoKXx8IlZpcnR1ZWwiPT0kKCIjdGVzdERyaXZlVHlwZSIpLnZhbCgpP2EucmVwbGFjZSgve1wkVEVTVERSSVZFVklSVFVBTH0vZywkKCIjcHJlZmVyZWRWaXJ0dWFsVG9vbCIpLnZhbCgpKTphLnJlcGxhY2UoL3tcJFRFU1REUklWRVZJUlRVQUx9L2csIk4vQSIpKTskKGcpLmZpbmQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoPwplbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT0kKGcpLmZpbmQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikuZmluZCgiOnNlbGVjdGVkIikuaHRtbCgpOiIxIj09JCgiI2lzTW9iaWxlIikudmFsKCkmJiQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikubGVuZ3RoJiYoZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9JCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5maW5kKCI6c2VsZWN0ZWQiKS5odG1sKCkpO2VtYWlsSGFuZGxlci5kZWFsZXJOYW1lJiYoYT1hLnJlcGxhY2UoInskREVBTEVSTkFNRX0iLGVtYWlsSGFuZGxlci5kZWFsZXJOYW1lKSk7YT1hLnJlcGxhY2UoL3tcJChEQVRFWzEyXSl9L2csZnVuY3Rpb24oaCxwKXtoPSQoJ2lucHV0W25hbWU9IicrcC50b0xvd2VyQ2FzZSgpKyciXScsZyk7cmV0dXJuIDA8aC5sZW5ndGg\/KG5ldyBEYXRlKGgudmFsKCkpKS5kYXRlRm9ybWF0KCJZLW0tZCBIOmkiKToiIn0pO2M9IiI7MDwkKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKS5sZW5ndGgmJihjPSQoIiNsYXN0dmlld2VkbWFrZSIpLnZhbCgpKwoiICIrJCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpKyIgIiskKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSsiICIrJCgiI2xhc3R2aWV3ZWRzdG9ja251bWJlciIpLnZhbCgpKTthPWEucmVwbGFjZSgieyRMQVNUVkVISUNMRVZJRVdFRH0iLGMpO2E9YS5yZXBsYWNlKFJlZ0V4cCgie1xcJChRVUVTVElPTlN8TUVTU0FHRXxSQVRJTkdNRVNTQUdFfEVNQUlMUEhPTkV8RU1BSUxNQUtFfEVNQUlMTU9ERUx8RU1BSUxZRUFSfFBBWU1FTlR8UEFZTUVOVFRFUk18T0ZGRVJ8U1RPQ0tOVU1CRVJ8Q09MT1J8Rk5BTUV8TE5BTUV8RU1BSUx8S018VklORVh8U0VMRUNURURTRVJWSUNFU3xFTUFJTENJVFl8UExBVEVTfERBVEUxfERBVEUyfFRSQU5TUE9SVE9QVElPTil9IiwiZyIpLCIiKTthPWEucmVwbGFjZSgve1wkRU1BSUxCVUlMREFORFBSSUNFfS9nLGIuYmFuZHBMaW5rKCkpOyIiPT1kJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzU2VuZFRvRW1haWwiKS5hdHRyKCJpZCIpJiYKKGQ9bCYmInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikuYXR0cigiaWQiKSYmMDwkKCIjZXhwcmVzc1NlbmRUb0VtYWlsTkVXIikudmFsKCkubGVuZ3RoPyQoIiNleHByZXNzU2VuZFRvRW1haWxORVciKS52YWwoKTokKCIjZXhwcmVzc1NlbmRUb0VtYWlsIikudmFsKCkpO2lmKCIiPT1mJiYidW5kZWZpbmVkIiE9dHlwZW9mICQoIiNleHByZXNzU2VuZFRvRW1haWxBREYiKS5hdHRyKCJpZCIpKWlmKGwmJiJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERk5FVyIpLmF0dHIoImlkIikmJjA8JCgiI2V4cHJlc3NTZW5kVG9FbWFpbEFERk5FVyIpLnZhbCgpLmxlbmd0aClmPSQoIiNleHByZXNzU2VuZFRvRW1haWxBREZORVciKS52YWwoKTtlbHNlIGlmKCJzZXJ2aWNlIj09ZW1haWxIYW5kbGVyLmRlcGFydG1lbnQudG9Mb3dlckNhc2UoKXx8YiYmKCJtZW51U2VydmljZSI9PWIubWFpbElEfHwiaGVhZGVyU2VydmljZSI9PQpiLm1haWxJRCkpZj0kKCIjZXhwcmVzc1NlbmRUb0VtYWlsQURGU0VSVklDRSIpLnZhbCgpOyIiPT1kJiYkKCIjZXhwcmVzc0luRGVtbyIpLmxlbmd0aCYmIjEiPT0kKCIjZXhwcmVzc0luRGVtbyIpLnZhbCgpJiYoZW1haWxIYW5kbGVyLmNvbmRpdGlvbj0iTmV3IiwwPCQoIiNleHByZXNzU2VuZFRvRW1haWxORVciKS52YWwoKS5sZW5ndGgmJihkPSQoIiNleHByZXNzU2VuZFRvRW1haWxORVciKS52YWwoKSkpOyJRdWlja0VtYWlsIj09Yi5tYWlsSUQmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGUmJjA8ZS5sZW5ndGgmJjA8JCgiI3NlcnZpY2VFbWFpbCIpLmxlbmd0aCYmMDwkKCIjc2VydmljZUFkZkVtYWlsIikubGVuZ3RoJiYodGVybXM9InJhcHBlbDtzZXJ2aWNlO2h1aWxlO3BpZWNlcztwae+\/vWNlcztwbmV1czt0cmFuc21pc3Npb247YWNjZXNzb2lyZXM7YWx0ZXJuYXRldXI7YW50aXJvdWlsbGU7YW50aS1yb3VpbGxlO2JhdHRlcmllO2JhdGVyaWU7cu+\/vXBhcmF0aW9uO3BlaW50dXJlO2ZyZWlucztkaXNxdWVzO2NhcnJvc3NlcmllO2NhdGFseXNldXI7Y2hvYztkZW1hcnJldXI777+9Y2hhcHBlbWVudDttb3RldXI7ZXNzdWllLWdsYWNlO2Vzc3VpLWdsYWNlOyBmZXV4O2NsaWdub3RhbnQ7a2xheG9uO2ZpbHRyZTtob3Jsb2dlO3JhZGlvO3RvaXQtb3V2cmFudDsgbWFnOyBtYWdzO23vv71jYW5pcXVlO211ZmZsZXI7bmF2aWdhdGlvbjtvcmRpbmF0ZXVyOyBwaGFyZXM7bHVtae+\/vXJlcztsdW1pZXJlO3Byb2Js77+9bWU7cHJvYmxlbWU7cmVjYWxsO3BhcnRzO3RpcmU7YWNjZXNzb3JpZXM7YWx0ZXJuYXRvcjtydXN0cHJvb2Zpbmc7YmF0dGVyeTtyZXBhaXI7cGFpbnQ7YnJha2U7ZGlza3M7IGJvZHk7c3RhcnRlcjtleGhhdXN0O2VuZ2luZTt3aXBlcjt3aXBlcnM7IGZsYXNoOyBsaWdodDtmbGFzaGVyO2ZsYXNoZXJzOyBob3JuO2ZpbHRlcjtjbG9jaztyb29mO21lY2FuaWM7Y29tcHV0ZXI7ZWN1O3Byb2JsZW0iLnNwbGl0KCI7IiksCm1hdGNoZWRUZXJtcz1bXSwkLmVhY2godGVybXMsZnVuY3Rpb24oaCxwKXtpZigtMTxlLmluZGV4T2YocCkpcmV0dXJuIGQ9JCgiI3NlcnZpY2VFbWFpbCIpLnZhbCgpLGY9JCgiI3NlcnZpY2VBZGZFbWFpbCIpLnZhbCgpLCExfSkpO2VtYWlsSGFuZGxlci5zdWJqZWN0PWs7ZW1haWxIYW5kbGVyLmJvZHk9YTtlbWFpbEhhbmRsZXIuc2VuZFRvPWQ7ZW1haWxIYW5kbGVyLnNlbmRGcm9tPSIiO2VtYWlsSGFuZGxlci5tYWlsSUQ9Yi5tYWlsSUQ7ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWIuZW1haWxTZW50OyJ1bmRlZmluZWQiIT10eXBlb2YgbWFpbFVzZXJJbmZvJiYibWVudUNvbnRhY3RVcyIhPWVtYWlsSGFuZGxlci5tYWlsSUQmJiJtZW51U2VydmljZSIhPWVtYWlsSGFuZGxlci5tYWlsSUQmJihlbWFpbEhhbmRsZXIudXNlckVtYWlsPW1haWxVc2VySW5mby5lbWFpbCxlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZT1tYWlsVXNlckluZm8uZmlyc3ROYW1lLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Cm1haWxVc2VySW5mby5sYXN0TmFtZSxlbWFpbEhhbmRsZXIudXNlclBob25lPW1haWxVc2VySW5mby5waG9uZSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsSm9iT2ZmZXImJihlbWFpbEhhbmRsZXIudXNlckF0dGFjaG1lbnRQYXRoPW1haWxKb2JPZmZlci5qb2JGaWxlKTtlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PWY7LTEhPWVtYWlsSGFuZGxlci5ib2R5LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigidGVzdEBkMmNtZWRpYS5jYSIpJiYkKCJpbnB1dC50ZXN0bW9kZSIpLnZhbCgiMSIpOyQoZykuZmluZCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5sZW5ndGg\/ZW1haWxIYW5kbGVyLnNlbmRUbz0kKGcpLmZpbmQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikudmFsKCk6IjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKSYmJCgiI3NlcnZpY2VFbWFpbHNTZWxlY3QiKS5sZW5ndGgmJihlbWFpbEhhbmRsZXIuc2VuZFRvPSQoIiNzZXJ2aWNlRW1haWxzU2VsZWN0IikudmFsKCkpfTtiLl92YWxpZGF0ZUZpZWxkcz0KZnVuY3Rpb24oYyl7dmFyIGc9ITEsaz0kKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5odG1sKCksYT10aGlzLmpxU2NvcGU7aWYoIiNxdWlja0VtYWlsRm9ybSI9PWEpcmV0dXJuITA7JC52YWxpZGl0eS5zdGFydCgpO3ZhciBlPSIuSW5uZXJCb3hMYXllciI7MDwkKCIubWFpbl9sZWZ0X2JveCIpLmxlbmd0aCYmKGU9Ii5tYWluX2xlZnRfYm94Iik7YT1iLmpxU2NvcGU\/Yi5qcVNjb3BlOmU7MT4kKGEpLmxlbmd0aCYmKGE9IiNuZXdkZXRhaWxzIik7MT4kKGEpLmxlbmd0aCYmKGE9Ii5uZXctZGV0YWlscyIpOzE+JChhKS5sZW5ndGgmJihhPSJib2R5Iik7InVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKGMpO2M9JChhKS5maW5kKCIucmVxdWlyZWQsLnZhbGlkYXRlIik7JChhKS5maW5kKCJpbnB1dDpub3QoOmhpZGRlbiksIHRleHRhcmVhIikubm9uSHRtbCgpO2MuZmlsdGVyKCIucmVxdWlyZWQiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5yZXF1aXJlKCkubm9uSHRtbCgpfSk7CmMuZmlsdGVyKCIucmVxdWlyZWQtcGhvbmUiKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5yZXF1aXJlKCkudmFsaWRhdGVQaG9uZSgpfSk7Yy5maWx0ZXIoIi5waG9uZTpub3QoLnJlcXVpcmVkLXBob25lKSIpLmVhY2goKGwsbik9PnskKG4pLnZhbGlkYXRlUGhvbmUoKX0pO2U9JCgiI3Bob25lMSwjcGhvbmUyLCNwaG9uZTMiLGEpLmZpbHRlcigiOnZpc2libGUiKTtpZigwPGUubGVuZ3RoKXt2YXIgZCxmO2xldCBsLG47MDwoZVswXS52YWx1ZSsobnVsbCE9KGw9bnVsbD09KGQ9ZVsxXSk\/dm9pZCAwOmQudmFsdWUpP2w6IiIpKyhudWxsIT0obj1udWxsPT0oZj1lWzJdKT92b2lkIDA6Zi52YWx1ZSk\/bjoiIikpLmxlbmd0aCYmJChlKS52YWxpZGF0ZVBob25lKCl9Yy5maWx0ZXIoIi56aXAiKS5lYWNoKGZ1bmN0aW9uKCl7KCQodGhpcykuaXMoIi5yZXF1aXJlZCIpfHwwIT0kKHRoaXMpLnZhbCgpLmxlbmd0aCkmJiQodGhpcykucmVxdWlyZVBvc3RhbENvZGUoKX0pOzE9PSQoIi52aW4iKS5sZW5ndGgmJgooJCgiLnZpbiIpLmlzKCIucmVxdWlyZWQiKSYmJCgiLnZpbiIpLnJlcXVpcmUoKS5ub25IdG1sKCksMDwkKCIudmluIikudmFsKCkubGVuZ3RoJiYkKCIudmluIikubWluTGVuZ3RoKDE3KSk7MT09JCgiLnZpbkV4IikubGVuZ3RoJiYoJCgiLnZpbkV4IikuaXMoIi5yZXF1aXJlZCIpJiYkKCIudmluRXgiKS5yZXF1aXJlKCkubm9uSHRtbCgpLDA8JCgiLnZpbkV4IikudmFsKCkubGVuZ3RoJiYkKCIudmluRXgiKS5taW5MZW5ndGgoMTcpKTtjLmZpbHRlcigiLmVtYWlsIikuZWFjaChmdW5jdGlvbigpeygkKHRoaXMpLmlzKCIucmVxdWlyZWQiKXx8MCE9JCh0aGlzKS52YWwoKS5sZW5ndGgpJiYkKHRoaXMpLnZhbGlkRW1haWxBZGRyZXNzKCl9KTskKGEpLmZpbmQoIi52YWxpZGF0ZS1ncm91cCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgbD0kKHRoaXMpLnZhbCgpOyQobCxhKS52YWxpZEFsbG9yTm9uZSgpfSk7Yy5maWx0ZXIoIi51cGxvYWQiKS5lYWNoKGZ1bmN0aW9uKCl7ISQodGhpcykuaXMoIi5yZXF1aXJlZCIpJiYKMD09JCh0aGlzKS52YWwoKS5sZW5ndGh8fCIiIT0kKHRoaXMpLnZhbCgpfHwoJCgiI3VwbG9hZFN0YXR1cyIpLmNzcygiY29sb3IiLCJyZWQiKSwkKCIjdXBsb2FkU3RhdHVzIikuaHRtbCgkKCIjZmlsZVVwbG9hZFJlcXVlc3QiKS52YWwoKSksJCgiI3VwbG9hZFN0YXR1cyIpLnNob3coKSl9KTtkPSQudmFsaWRpdHkucmVwb3J0LmVycm9yczskKCIjZW1haWwiKS5tYXRjaCgiZW1haWwiKTskLnZhbGlkaXR5LnJlcG9ydC5lcnJvcnM+ZCYmKGY9JCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikudGV4dCgpKyIuPGJyLz4iKyQoIiNlbWFpbEVycm9yTXNnIiwiI3VzZXJJbmZvRm9ybSIpLnZhbCgpKyIuIiwwPT1kJiYoZj0kKCIjZW1haWxFcnJvck1zZyIsIiN1c2VySW5mb0Zvcm0iKS52YWwoKSksJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikuaHRtbChmKSk7InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsVXNlckluZm8mJiJmdW5jdGlvbiI9PXR5cGVvZiBtYWlsVXNlckluZm8uYWRkZWRWYWxpZGF0aW9uJiYKbWFpbFVzZXJJbmZvLmFkZGVkVmFsaWRhdGlvbihhKTskLnZhbGlkaXR5LmVuZCgpLnZhbGlkP2c9ITA6KCQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLnNob3coKSwkKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5jZW50ZXIoKSwkKGRvY3VtZW50KS5vbmUoIm1vdXNlZG93biIsZnVuY3Rpb24obCl7JC52YWxpZGl0eS5jbGVhcigpOyQoIiNNaXNzaW5nVmFsaWRhdGlvbk1zZyIpLmhpZGUoKTskKCIjTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5odG1sKGspfSkpO3JldHVybiBnfX07dmFyIG1haWxQYWdlPW5ldyBHZW5lcmljTWFpbDsKJChkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXswPCQoIiN0b3Bpc21vYmlsZSIpLmxlbmd0aCYmMTwkKCIjdG9waXNtb2JpbGUiKS52YWwoKSYmKG1haWxQYWdlLmpxU2NvcGU9Ii5uZXctZGV0YWlscyIpOyQoIiNzZW5kRW1haWxGb3JtIGJ1dHRvbiIpLm9uKCJjbGljayB0YXAiLG1haWxQYWdlLnNhdmUpOyQoIiNzZW5kRW1haWxGb3JtU3VibWl0Iikub24oImNsaWNrIHRhcCIsbWFpbFBhZ2Uuc2F2ZSk7bWFpbFBhZ2UubWFpbElEPSQoIiN0ZXh0U2F2ZU1haWxJRCIpLnZhbCgpOyQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InN1bW1hcnkiLHNjcm9sbFRvOiExfSk7alF1ZXJ5LmZuLmNlbnRlcj1mdW5jdGlvbigpeyQoImlzbW9iaWxlIikmJjA8JCgiI3NlbmRFbWFpbEZvcm1TdWJtaXQiKS5sZW5ndGg\/dGhpcy5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDooJCh3aW5kb3cpLndpZHRoKCktJCgiI01pc3NpbmdWYWxpZGF0aW9uTXNnIikub3V0ZXJXaWR0aCgpKS8yLAp0b3A6JCgiI3NlbmRFbWFpbEZvcm1TdWJtaXQiKS5wb3NpdGlvbigpLnRvcC0xMH0pOnRoaXMuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLGxlZnQ6KCQod2luZG93KS53aWR0aCgpLSQoIiNjb250YWluZXIiKS5vdXRlcldpZHRoKCkpLzIsdG9wOigkKHdpbmRvdykuaGVpZ2h0KCktJCgiI2NvbnRhaW5lciIpLm91dGVySGVpZ2h0KCkpLzJ9KTtyZXR1cm4gdGhpc307InVuZGVmaW5lZCIhPXR5cGVvZiBtYWlsUGFnZS5tYWlsSUQmJmVtYWlsSGFuZGxlci5sb2dGb3JtUmVxdWVzdCgiRm9ybUxvYWRlZCIsbWFpbFBhZ2UubWFpbElEKX0pOwovKiogL20vanMvcG9wdXBpemVyLmpzICoqLwp2YXIgX19fZDJjX3BvcHVwaXplcmpzX2Nfb249IjIwMjYtMDYtMDQgMDk6MzA6MTMiOyd1c2Ugc3RyaWN0Jztpc1NjcmF0Y2hBbmRTYXZlPSJ1bmRlZmluZWQiPT10eXBlb2YgaXNTY3JhdGNoQW5kU2F2ZT8iIjppc1NjcmF0Y2hBbmRTYXZlO3BvcHVwV2lkZ2V0X3BhZ2VWaWV3c0luY3JlbWVudGVkPSJ1bmRlZmluZWQiPT10eXBlb2YgcG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ\/IiI6cG9wdXBXaWRnZXRfcGFnZVZpZXdzSW5jcmVtZW50ZWQ7c2hvd1BvcHVwV2lkZ2V0PSJmdW5jdGlvbiIhPXR5cGVvZiBzaG93UG9wdXBXaWRnZXQ\/ZnVuY3Rpb24oKXt9OnNob3dQb3B1cFdpZGdldDthY3RpdmF0ZVBvcHVwQmVmb3JlTG9hZD0iZnVuY3Rpb24iIT10eXBlb2YgYWN0aXZhdGVQb3B1cEJlZm9yZUxvYWQ\/ZnVuY3Rpb24oKXt9OmFjdGl2YXRlUG9wdXBCZWZvcmVMb2FkOwp2YXIgcG9wdXBJc1N1Ym1pdHRpbmc9ITEsQ1BvcHVwU3VwZXJ2aXNvcj1mdW5jdGlvbigpe3ZhciBjPXRoaXM7Yy5vbmxvYWRRdWV1ZT1bXTtjLmluZGV4PTA7Yy5pc0FuaW1hdGluZz0hMTtjLnBvcHVwcz1bXTtjLnJlZ2lzdGVyPWZ1bmN0aW9uKGEpe3ZhciBrPTA7MDxOdW1iZXIoYS5zZXR0aW5ncy5zaG93b25sb2FkKSYmITAhPT1hLnNldHRpbmdzLnNob3dvbmxvYWQmJihrPWEuc2V0dGluZ3Muc2hvd29ubG9hZCk7dmFyIGI9MTsxPGEuc2V0dGluZ3MucHJpb3JpdHkmJihiPWEuc2V0dGluZ3MucHJpb3JpdHkpOzEhPUNvb2tpZXMuZ2V0KCJub3VzZWRjdGEiKXx8InVzZWRjYXJzLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCkmJiJjYXJkZXRhaWwuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKT9jLm9ubG9hZFF1ZXVlLnB1c2goe3BvcHVwOmEsZGVsYXk6ayxwcmlvcml0eTpifSk6Y29uc29sZS5sb2coIk5vdCBzaG93aW5nIHBvcHVwIG9ubG9hZCwgYmVjYXVzZSBpdHMgYSB1c2VkIHBhZ2UgYW5kIHRoZSBjb29raWUgbm91c2VkY3RhIGlzIHNldCIpfTsKYy5yZXBvc2l0aW9uPWZ1bmN0aW9uKCl7aWYoIShwb3B1cGl6ZXJBY3RpdmUoKXx8InVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbENvbmZpZyYmbW9kZWxDb25maWcuaXNBY3RpdmUmJm1vZGVsQ29uZmlnLmlzQWN0aXZlKCkpKXJldHVybiAkKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsIiIpLCExO2lmKGMuaXNBbmltYXRpbmcpcmV0dXJuITE7dmFyIGE9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuaW5uZXJIZWlnaHQ\/d2luZG93LmlubmVySGVpZ2h0OiQod2luZG93KS5oZWlnaHQoKSxrPSQoZG9jdW1lbnQpLnNjcm9sbFRvcCgpLGI9L01vYmkvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk\/NToyMDskKCIucmV2ZWFsLW1vZGFsIikuZWFjaChmdW5jdGlvbihkLGUpe2Q9JCh0aGlzKTtpZigidmlzaWJsZSI9PWQuY3NzKCJ2aXNpYmlsaXR5Iikpe2U9ZC5vZmZzZXQoKS50b3A7dmFyIGg9ZC5vdXRlckhlaWdodCgpLGw9ZStoO2lmKGE8aCtifHxuYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKC8oaVBob25lfGlQb2QpL2cpKXtpZigkKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsCiJhdXRvIiksaz5sfHxrK2E8ZSllPWsrYixjLmlzQW5pbWF0aW5nPSEwLGQuYW5pbWF0ZSh7dG9wOmUrInB4In0sMjAwLGZ1bmN0aW9uKCl7Yy5pc0FuaW1hdGluZz0hMX0pfWVsc2UgZT1rKyhhLWgpLzIsZT1lPGI\/YjplLGMuaXNBbmltYXRpbmc9ITAsZC5hbmltYXRlKHt0b3A6ZSsicHgifSwyMDAsZnVuY3Rpb24oKXtjLmlzQW5pbWF0aW5nPSExfSl9fSl9O2Muc2hvdz1mdW5jdGlvbigpe2lmKCEoMDwkKCIjZGlzYWJsZVBvcHVwcyIpLmxlbmd0aCYmIjEiPT0kKCIjZGlzYWJsZVBvcHVwcyIpLnZhbCgpKSYmKGMub25sb2FkUXVldWUuc29ydChmdW5jdGlvbihhLGspe2lmKGEucHJpb3JpdHk+ay5wcmlvcml0eSlyZXR1cm4gMTtpZihhLnByaW9yaXR5PGsucHJpb3JpdHkpcmV0dXJuLTE7aWYoYS5wcmlvcml0eT09ay5wcmlvcml0eSlyZXR1cm4gYS5kZWxheTxrLmRlbGF5PzE6LTF9KSwoIkJVSUxEQU5EUFJJQ0UiIT1wYWdlfHwiLTEiIT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCJzdGVwPXJlc3VtZSIpKSYmCjA8Yy5vbmxvYWRRdWV1ZS5sZW5ndGgpKXtmb3Ioa2V5IGluIGMub25sb2FkUXVldWUpaWYoMT09Yy5vbmxvYWRRdWV1ZVtrZXldLnBvcHVwLnNldHRpbmdzLmVuZFBvcHVwUXVldWUpcmV0dXJuIGMub25sb2FkUXVldWVba2V5XS5wb3B1cC5vcGVuKGMub25sb2FkUXVldWVba2V5XS5kZWxheSksITE7Zm9yKGtleSBpbiBjLm9ubG9hZFF1ZXVlKWMub25sb2FkUXVldWVba2V5XS5wb3B1cC5vcGVuKGMub25sb2FkUXVldWVba2V5XS5kZWxheSl9fTt2YXIgbT1mdW5jdGlvbigpe2lmKHBvcHVwaXplckFjdGl2ZSgpKXJldHVybiBzZXRUaW1lb3V0KG0sNTAwKSwhMTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYocG9wdXBpemVyQWN0aXZlKCkpcmV0dXJuIG0oKTskLnBvc3RNZXNzYWdlKCJjbG9zZVBvcHVwIiwiKiIsd2luZG93LnBhcmVudCl9LDFFMyl9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXswPCQoIiNhdXRvYXViYWluZV9wb3B1cCIpLmxlbmd0aCYmImZhbHNlIiE9JCgiI2F1dG9hdWJhaW5lX3BvcHVwIikudmFsKCkmJgptKCl9LDVFMyl9LHBvcHVwU3VwZXJ2aXNvcj1uZXcgQ1BvcHVwU3VwZXJ2aXNvcixwb3B1cGl6ZXJBY3RpdmU9ZnVuY3Rpb24oKXtpZihwb3B1cGl6ZXJDb25maWcucG9wdXBPcGVuKXJldHVybiEwO3ZhciBjPSExOyQoIi5yZXZlYWwtbW9kYWwsIC5yZXZlYWwtbW9kZWwtZG8tbm90LXNob3ciKS5lYWNoKGZ1bmN0aW9uKCl7aWYoMSE9Yyl7dmFyIG09JCh0aGlzKTtpZighbS5pcygiOmhpZGRlbiIpKXN3aXRjaChtLmNzcygidmlzaWJpbGl0eSIpKXtjYXNlICJ1bmRlZmluZWQiOmNhc2UgInZpc2libGUiOmM9ITB9fX0pO2lmKCQoIi5wcF9vdmVybGF5IikuaXMoIjp2aXNpYmxlIil8fGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1vdmVybGF5IikpYz0hMDtyZXR1cm4gY30scG9wdXBpemVyQ29uZmlnPXt9OyQuZXh0ZW5kKCEwLHBvcHVwaXplckNvbmZpZyx7cG9wdXBPcGVuOiExfSk7CnZhciBwb3B1cGl6ZXI9ZnVuY3Rpb24oYyxtKXt2YXIgYT10aGlzLGs9ImF1dG8iO2M\/YS50YXJnZXQ9YzpjPWEudGFyZ2V0O2Euc2V0dGluZ3M9bTthLnNldFRyaWdnZXI9ZnVuY3Rpb24oYil7az0ic3RyaW5nIj09dHlwZW9mIGImJiJjbGljayI9PWIudG9Mb3dlckNhc2UoKT8iY2xpY2siOiJhdXRvIjthLnNldHRpbmdzLnRyaWdnZXI9aztyZXR1cm4gYX07YS5pbml0PWZ1bmN0aW9uKCl7dmFyIGI9ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVJbml0aWFsaXplLGQ9ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemU7aWYoYS5pc0NvbnRlbnRMb2FkZWQoKXx8IWImJiFkKXtpZihiKXt2YXIgZT1hLnNldHRpbmdzLm9uQmVmb3JlSW5pdGlhbGl6ZS5jYWxsKGMsYSk7aWYoMD09ZSlyZXR1cm59Yj0hMTtpZihhLnNldHRpbmdzLnRocmVzaG9sZCYmYS5zZXR0aW5ncy5tYWlucG9wdXApe2Euc2V0dGluZ3Muc2hvd29ubG9hZD0hMTsKaWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUmJihiPSEwLGU9YS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZS5jYWxsKGMsYSksMD09ZSkpe2Euc2F2ZVNldHRpbmdzKCk7cmV0dXJufXRocmVzaG9sZEV4ZWMoYS5zZXR0aW5ncy50aHJlc2hvbGRWYWx1ZS8xMDAsYS5leGVjT3Blbil9aWYoYS5zZXR0aW5ncy5zY3JvbGx1cCYmYS5zZXR0aW5ncy5tYWlucG9wdXApe2Euc2V0dGluZ3Muc2hvd29ubG9hZD0hMTtpZihkJiYoYj0hMCxlPWEuc2V0dGluZ3Mub25BZnRlckluaXRpYWxpemUuY2FsbChjLGEpLDA9PWUpKXthLnNhdmVTZXR0aW5ncygpO3JldHVybn1zY3JvbGx1cEV4ZWMoYS5leGVjT3Blbil9Yy5hZGRDbGFzcygicmV2ZWFsLW1vZGFsIik7InVuZGVmaW5lZCIhPXR5cGVvZiBhLnNldHRpbmdzLmFkZGVkQ2xhc3NlcyYmMDxhLnNldHRpbmdzLmFkZGVkQ2xhc3Nlcy5sZW5ndGgmJmMuYWRkQ2xhc3MoYS5zZXR0aW5ncy5hZGRlZENsYXNzZXMpOwokKCJmb3JtIixjKS5vbigic3VibWl0IixhLnN1Ym1pdCk7ZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTthLnNldHRpbmdzLmFuaW1hdGlvbiYmZS5nZXRDb250ZXh0JiYoInVuZGVmaW5lZCIhPXR5cGVvZiBhLnNldHRpbmdzLmFuaW1hdGlvbi5lZmZlY3QmJihhLnNldHRpbmdzLnJldmVhbC5hbmltYXRpb249ImV4dGVybmFsQW5pbWF0aW9uIixjLmFkZENsYXNzKGEuc2V0dGluZ3MuYW5pbWF0aW9uLmVmZmVjdCkpLCJ1bmRlZmluZWQiIT10eXBlb2YgYS5zZXR0aW5ncy5hbmltYXRpb24uc3BlZWQmJmMuYWRkQ2xhc3MoYS5zZXR0aW5ncy5hbmltYXRpb24uc3BlZWQpKTthLnNldHRpbmdzLmluaXRpYWxpemVkPSEwO2MudHJpZ2dlcigicG9wdXBpemVyLmluaXRpYWxpemVkIixhKTtpZihkJiYhYiYmKGU9YS5zZXR0aW5ncy5vbkFmdGVySW5pdGlhbGl6ZS5jYWxsKGMsYSksMD09ZSkpe2Euc2F2ZVNldHRpbmdzKCk7cmV0dXJufWEuc2F2ZVNldHRpbmdzKCk7ZD0kKCIjaGlkZGVuU2tpcE9ubG9hZFByaW50c2NyZWVuIik7CmlmKDA8ZC5sZW5ndGgmJiJET19TS0lQX1BPUFVQIj09ZC52YWwoKSlyZXR1cm4hMTshYS5zZXR0aW5ncy5zaG93b25sb2FkfHxudWxsIT1Db29raWVzLmdldCgicG9wdXBGb3JtRmlsbGVkIil8fG51bGwhPUNvb2tpZXMuZ2V0KGEuc2V0dGluZ3MuY29va2llTmFtZSl8fDEhPWEuc2V0dGluZ3MuY2xvc2VCdXR0b24mJjAhPWEuc2V0dGluZ3MuY2xvc2VCdXR0b258fCgtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiL3JlcXVlc3QvIil8fC0xIT13aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKCIvZGVtYW5kZXMvIikpJiYtMT09YS5zZXR0aW5ncy5uYW1lLmluZGV4T2YoImltYWdlUG9wdXAiKXx8cG9wdXBTdXBlcnZpc29yLnJlZ2lzdGVyKGEpOyQoZG9jdW1lbnQpLm9mZigiY2xpY2siLCIuIittLnJldmVhbC5kaXNtaXNzbW9kYWxjbGFzcykub24oImNsaWNrIiwiLiIrbS5yZXZlYWwuZGlzbWlzc21vZGFsY2xhc3MsZnVuY3Rpb24oaCl7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIuY2xvc2UiLApjKX0pOyQoZG9jdW1lbnQpLm9mZigia2V5dXAiKS5vbigia2V5dXAiLGZ1bmN0aW9uKGgpezI3PT09aC53aGljaCYmYy50cmlnZ2VyKCJwb3B1cGl6ZXIuY2xvc2UiLGMpfSk7InVuZGVmaW5lZCIhPT10eXBlb2YgYS5zZXR0aW5ncy5mb3JtLmZyb21BQSYmKGVtYWlsSGFuZGxlci5mcm9tQUE9YS5zZXR0aW5ncy5mb3JtLmZyb21BQSk7cmV0dXJuIGF9YS5sb2FkKGEuaW5pdCl9O2Eub25PcGVuPWZ1bmN0aW9uKCl7YS5pc0NvbnRlbnRMb2FkZWQoKXx8YS5sb2FkKCk7aWYoImF1dG8iPT1rJiZudWxsIT1Db29raWVzLmdldChhLnNldHRpbmdzLmNvb2tpZU5hbWUpKXJldHVybiExO3ZhciBiPWVtYWlsSGFuZGxlci5nZXROZXdTZXF1ZW5jZSgpO2Iuc2V0QWN0aW9uKGZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLmRlYWxlclNlbGVjdEZ1bmMoITAsdGhpcyl9KTt2YXIgZD1lbWFpbEhhbmRsZXIuZ2V0TmV3U2VxdWVuY2UoKTtkLnNldEFjdGlvbihmdW5jdGlvbigpe2MuZmluZCgiLnBvcHVwaXplckJvZHkiKS5zaG93KCk7CmlmKG51bGwhPUNvb2tpZXMuZ2V0KCJwb3B1cEZvcm1GaWxsZWQiKXx8bnVsbCE9Q29va2llcy5nZXQoYS5zZXR0aW5ncy5jb29raWVOYW1lKSljLmZpbmQoIi5jbG9zZS1yZXZlYWwtbW9kYWwiKS5yZW1vdmVDbGFzcygibW9kYWwtY2xvc2UtaGlkZSIpLGMuZmluZCgiLmNsb3NlLXJldmVhbC1tb2RhbCIpLnNob3coKTthLmNyZWF0ZUNvbmZpcm1Gb3JtKCk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVPcGVuJiYwPT1hLnNldHRpbmdzLm9uQmVmb3JlT3Blbi5jYWxsKGMsYSkpcmV0dXJuITE7dmFyIGU9Ii9wb3B1cC0iK2EudGFyZ2V0LmZpbmQoIi5lbWFpbFN1YmplY3QiKS50ZXh0KCkucmVwbGFjZSgvW1xuXHJdL2csIiAiKTthLnRhcmdldC5maW5kKCIjaW1hZ2VQb3B1cExlYWRUeXBlIikubGVuZ3RoJiYoZT0iL3BvcHVwLSIrYS50YXJnZXQuZmluZCgiI2ltYWdlUG9wdXBMZWFkVHlwZSIpLmF0dHIoImRhdGEtdHJhbnNsYXRlZCIpLnJlcGxhY2UoL1tcblxyXS9nLAoiICIpKTthLnRhcmdldC5maW5kKCIjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIiKS5sZW5ndGgmJihlPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/Ii9uZXVmcy9jYWxjdWxhdHJpY2UtcHJldC1hdXRvLXBvcHVwLmh0bWwiOiIvbmV3L2Nhci1sb2FuLWNhbGN1bGF0b3ItcG9wdXAuaHRtbCIpO2dhUGFnZVZpZXcoZSk7Z2E0UGFnZVZpZXcoZSk7YS5sb2dFdmVudCgicG9wdXAub3BlbiIpOyJsaXZlIj09JCgiI3RvcGRlcGxveW1lbnR0eXBlIikudmFsKCkmJmdhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1MYXVuY2hlZCIsYS5zZXR0aW5ncy5uYW1lLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpO2Euc2V0dGluZ3MuY291bnRkb3duJiZhLmluaXRDb3VudGRvd24oKTtjLmRhdGEoIm9wZW4iLCEwKTtwb3B1cGl6ZXJDb25maWcucG9wdXBPcGVuPSEwOyJvbk9wZW4iPT1hLnNldHRpbmdzLmNvb2tpZUNyZWF0ZSYmYS5zZXRDb29raWUoKTtlPWMuZmluZCgiZm9ybSIpLmZpcnN0KCk7CmUuZmluZCgnaW5wdXQgW3R5cGU9InRleHQiXScpLmVhY2goZnVuY3Rpb24oKXskKHRoaXMpLm9mZigiZm9jdXMgYmx1ciBjaGFuZ2UiKS5jc3MoImNvbG9yIiwiIzAwMCIpOyQodGhpcykuYXR0cigicGxhY2Vob2xkZXIiLCQodGhpcykuYXR0cigiYWx0IikpfSk7dmFyIGg9bmV3IEZvcm07aC5tYXNrUGhvbmUoYy5maW5kKCJmb3JtIikuc2VsZWN0b3IrIiBpbnB1dC5waG9uZSIpO2gubWFza1Bob25lKGMuZmluZCgiZm9ybSIpLnNlbGVjdG9yKyIgaW5wdXQubW9iaWxlIik7MDxlLmZpbmQoIi5waG9uZS5yZXF1aXJlZCIpLmxlbmd0aD9lbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9MTplbWFpbEhhbmRsZXIucGhvbmVNYW5kYXRvcnk9MDthLnNldHRpbmdzLmZvcm0uZW1haWxpZCYmZW1haWxIYW5kbGVyLmxvZ0Zvcm1SZXF1ZXN0KCJGb3JtTG9hZGVkIixhLnNldHRpbmdzLmZvcm0uZW1haWxpZCxhLnNldHRpbmdzLmZvcm0ub2ZmZXJ0eXBlKTthLnNldHRpbmdzLnJldmVhbC5jbG9zZWQ9CmEub25DbG9zZTtjLnJldmVhbChhLnNldHRpbmdzLnJldmVhbCk7JCgiI2Zsb2F0UHJvbW9Ub3BCdG5Db250YWluZXIiKS5oaWRlKCk7JCgiI2NvbnRhaW5lckZsQiIpLmhpZGUoKTskKCIjdG9hc3QtY29udGFpbmVyIikuaGlkZSgpOyQoIiNhbGVydE1zZ0NvbnRhaW5lciIpLmhpZGUoKTthLnNldHRpbmdzLmZvcm0uT0tCdXR0b25DbGFzcyYmKGU9YS5zZXR0aW5ncy5mb3JtLk9LQnV0dG9uQ2xhc3MsIi4iPT1lWzBdJiYoZT1lLnN1YnN0cmluZygxKSksJCgiLiIrZSxjKS5vZmYoImNsaWNrIikub24oImNsaWNrIixhLnN1Ym1pdCkpO2Euc2V0dGluZ3MuZm9ybS5DYW5jZWxCdXR0b25DbGFzcyYmKGU9YS5zZXR0aW5ncy5mb3JtLkNhbmNlbEJ1dHRvbkNsYXNzLCIuIj09ZVswXSYmKGU9ZS5zdWJzdHJpbmcoMSkpLCQoIi4iK2UsYykub2ZmKCJjbGljayIpLm9uKCJjbGljayIsYS5jYW5jZWwpKTtjLnRyaWdnZXIoInBvcHVwaXplci5vbk9wZW4iLGEpfSk7JCgiI1BPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9CRUZPUkVfUE9QVVAiKS5sZW5ndGgmJgoiMSI9PSQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfQkVGT1JFX1BPUFVQIikudmFsKCk\/ImF1dG8iIT1rP2Iuc2V0TmV4dChkKS5leGV1dGUoKTpkLmV4ZXV0ZSgpOmQuZXhldXRlKCl9O2Eub25DbG9zZT1mdW5jdGlvbigpe2MuZGF0YSgib3BlbiIsITEpO3BvcHVwaXplckNvbmZpZy5wb3B1cE9wZW49ITE7YS5zZXR0aW5ncy5zdWJtaXR0ZWR8fGEubG9nRXZlbnQoInBvcHVwLmNhbmNlbCIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIjdG9hc3QtY29udGFpbmVyIikuc2hvdygpfSw1MDApO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKCIucmV2ZWFsLW1vZGFsLWJnIikubGVuZ3RoJiYkKCIucmV2ZWFsLW1vZGFsLWJnIikucmVtb3ZlKCl9LDFFMyk7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIub25DbG9zZSIsYSk7ImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25DbG9zZSYmYS5zZXR0aW5ncy5vbkNsb3NlLmNhbGwoYyxhKX07YS5zdWJtaXQ9ZnVuY3Rpb24oKXtpZihwb3B1cElzU3VibWl0dGluZylyZXR1cm4hMTsKcG9wdXBJc1N1Ym1pdHRpbmc9ITA7c2V0VGltZW91dChmdW5jdGlvbigpe3BvcHVwSXNTdWJtaXR0aW5nPSExfSwzRTMpO3ZhciBiPWMuZmluZCgiZm9ybSIpLmZpcnN0KCksZD1bXSxlPSIiLGg9IiIsbD1bXSxwPVtdLGc9ITAsdD0iIix6PSIiLEE9IiI7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVWYWxpZGF0aW9uKXN3aXRjaChhLnNldHRpbmdzLm9uQmVmb3JlVmFsaWRhdGlvbi5jYWxsKGIsYyxhKSl7Y2FzZSAhMTpjYXNlIDA6cmV0dXJuIHBvcHVwSXNTdWJtaXR0aW5nPSExO2Nhc2UgLTE6Zz0hMX1pZihnKXskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsc2Nyb2xsVG86ITF9KS5zdGFydCgpO2IuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtiLmZpbmQoImlucHV0LnJlcXVpcmVkLCBzZWxlY3QucmVxdWlyZWQsIHRleHRhcmVhLnJlcXVpcmVkIikucmVxdWlyZSgpO3ZhciB2PSExLEI9ITEsCnc9ITE7Yi5maW5kKCJpbnB1dCIpLmZpbHRlcigiLnJlcVJhZGlvIikucmFkaW9PcHRpb25DaG9zZW4oKTtiLmZpbmQoImlucHV0IikuZWFjaChmdW5jdGlvbigpe3ZhciBmPSQodGhpcyk7Zi5oYXNDbGFzcygiZW1haWwiKSYmKGYuaGFzQ2xhc3MoInJlcXVpcmVkIil8fDA8Zi52YWwoKS5sZW5ndGgpJiYodz0hMCk7aWYoZi5oYXNDbGFzcygicGhvbmUiKXx8Zi5oYXNDbGFzcygibW9iaWxlIikpaWYoQj0hMCxmLmhhc0NsYXNzKCJyZXF1aXJlZCIpfHwwPGYudmFsKCkubGVuZ3RoKXY9ITB9KTswPT12JiYwPT13JiYoQj92PSEwOnc9ITApO2IuZmluZCgiaW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9JCh0aGlzKTtmLmhhc0NsYXNzKCJlbWFpbCIpJiZmLnZhbGlkRW1haWxBZGRyZXNzKCk7Zi5oYXNDbGFzcygicGhvbmUiKSYmZi52YWxpZGF0ZVBob25lKCk7Zi5oYXNDbGFzcygibW9iaWxlIikmJmYudmFsaWRhdGVNb2JpbGUoKX0pOzE+Yy5maW5kKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciKS5sZW5ndGgmJgpjLmFwcGVuZCgnPGRpdiBjbGFzcz0iTWlzc2luZ1ZhbGlkYXRpb25Nc2ciPjwvZGl2PicpO2lmKCEkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXJldHVybiAkKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciLGMpLnNob3coKSwkKGRvY3VtZW50KS5vbigibW91c2Vkb3duIixmdW5jdGlvbihmKXskKCIuTWlzc2luZ1ZhbGlkYXRpb25Nc2ciLGMpLmhpZGUoKTskKHRoaXMpLm9mZihmKX0pLGEubG9nRXZlbnQoInBvcHVwLnZhbGlkYXRpb25GYWlsZWQiKSxwb3B1cElzU3VibWl0dGluZz0hMX1pZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZXN1Ym1pdCl7Zz0hMDt0cnl7Zz1hLnNldHRpbmdzLm9uQmVmb3Jlc3VibWl0LmNhbGwoYyxhKX1jYXRjaChmKXtjb25zb2xlLmxvZygiT24gYmVmb3JlIHN1Ym1pdCBmYWlsZWQsIHJldHVybmluZyB0cnVlLiIsZil9aWYoMD09ZylyZXR1cm4gYS5zZXR0aW5ncy5jbG9zZU9uU3VibWl0JiZhLmNsb3NlKCksITF9YS5sb2dFdmVudCgicG9wdXAuc3VibWl0Iik7CmIuZmluZCgiaW5wdXQiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGY9JCh0aGlzKTsoZi5oYXNDbGFzcygiZW1haWwiKXx8ImVtYWlsIj09PWYuYXR0cigidHlwZSIpKSYmZC5wdXNoKGYudmFsKCkpO2YuaGFzQ2xhc3MoInBvc3RhbCIpJiYoZT1mLnZhbCgpKTtmLmhhc0NsYXNzKCJ0cmFkZWluIikmJihoPWYudmFsKCkpOyhmLmhhc0NsYXNzKCJwaG9uZSIpfHxmLmhhc0NsYXNzKCJtb2JpbGUiKXx8InRlbCI9PT1mLmF0dHIoInR5cGUiKSkmJnAucHVzaChmLnZhbCgpKTsidW5kZWZpbmVkIj09dHlwZW9mIGYuYXR0cigibmFtZSIpJiZmLmF0dHIoIm5hbWUiLCIiKTsoZi5oYXNDbGFzcygibmFtZSIpfHwibmFtZSI9PWYuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpJiZsLnB1c2goZi52YWwoKSk7KGYuaGFzQ2xhc3MoImZpcnN0bmFtZSIpfHwiZmlyc3RuYW1lIj09Zi5hdHRyKCJuYW1lIikudG9Mb3dlckNhc2UoKSkmJmwudW5zaGlmdChmLnZhbCgpKTsoZi5oYXNDbGFzcygibGFzdG5hbWUiKXx8CiJsYXN0bmFtZSI9PWYuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpJiZsLnB1c2goZi52YWwoKSk7aWYoZi5oYXNDbGFzcygiY29tbWVudCIpfHwiY29tbWVudCI9PWYuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpdD1mLnZhbCgpO2lmKGYuaGFzQ2xhc3MoImFkZHJlc3MiKXx8ImFkZHJlc3MiPT1mLmF0dHIoIm5hbWUiKS50b0xvd2VyQ2FzZSgpKXo9Zi52YWwoKTtpZihmLmhhc0NsYXNzKCJiaXJ0aGRhdGUiKXx8ImJpcnRoZGF0ZSI9PWYuYXR0cigibmFtZSIpLnRvTG93ZXJDYXNlKCkpQT1mLnZhbCgpfSk7Zz1iLnNlcmlhbGl6ZUFycmF5KCk7dmFyIHg9JCgiLmVtYWlsQm9keSIsYykuaHRtbCgpKyIiLHU9JCgiLmVtYWlsU3ViamVjdCIsYykuaHRtbCgpKyIiOyJQcmljZVZlaGljbGUiPT1hLnNldHRpbmdzLmZvcm0uZW1haWxpZCYmMD09Yi5maW5kKCJbbmFtZT1ub0NCQl0iKS52YWwoKSYmIlNNUyI9PWIuZmluZCgiI3RyYWRlSW5CYXJTbXNPckVtYWlsU21zOmNoZWNrZWQiKS52YWwoKSYmCih1Kz0iIChTTVMpIik7dmFyIHE9W107W10ucHVzaC5hcHBseShxLGcpO1tdLnB1c2guYXBwbHkocSxhLmdsb2JhbFJlcGxhY2VtZW50cygpKTskLmVhY2gocSxmdW5jdGlvbigpe3ZhciBmPW5ldyBSZWdFeHAoIntcXCQiK3RoaXMubmFtZS50b1VwcGVyQ2FzZSgpKyJ9IiwiZyIpLG49dGhpcy52YWx1ZTsiU0VBUkNIRURWRUhJQ0xFIj09dGhpcy5uYW1lLnRvVXBwZXJDYXNlKCkmJihuPSI8c3BhbiBpZD0ncGhTRUFSQ0hWRUhJQ0xFJz4iK24rIjwvc3Bhbj4iKTt4PXgucmVwbGFjZShmLG4pO3U9dS5yZXBsYWNlKGYsdGhpcy52YWx1ZSl9KTtnPXtzZW5kVG86YS5zZXR0aW5ncy5mb3JtLnNlbmRUbyxzZW5kVG9BREZGb3JtYXQ6YS5zZXR0aW5ncy5mb3JtLnNlbmRUb0FERixjb25kaXRpb246YS5zZXR0aW5ncy52ZWhpY2xlU3RhdGUsbWFpbElEOmEuc2V0dGluZ3MuZm9ybS5lbWFpbGlkLHN1YmplY3Q6dSxib2R5OngsdXNlclBvc3RhbDplLGFkZHJlc3M6eixiaXJ0aGRhdGU6QSx0cmFkZWluOmgsCnBvcHVwZGl2OiIiLHVzZXJFbWFpbDpkLmpvaW4oIjsiKSx1c2VyTmFtZTpsLmpvaW4oIiAiKSx1c2VyUGhvbmU6cC5qb2luKCIsIiksc21zOmEuc2V0dGluZ3MuZm9ybS5zbXMscG9wdXBPZmZlclR5cGU6YS5zZXR0aW5ncy5mb3JtLm9mZmVydHlwZSxjb21tZW50czp0fTskLmV4dGVuZCghMCxlbWFpbEhhbmRsZXIsZyk7InN0cmluZyI9PXR5cGVvZiBlbWFpbEhhbmRsZXIudXNlck5hbWUmJihnPWVtYWlsSGFuZGxlci51c2VyTmFtZS5zcGxpdCgiICIpLGVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lPWcuc2hpZnQoKSxlbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lPWcuam9pbigiICIpKTtlbWFpbEhhbmRsZXIucG9wdXBkaXY9YS50YXJnZXQuYXR0cigiaWQiKTtpZihhLnNldHRpbmdzLmZpbGxmbGFnKXZhciBDPWZ1bmN0aW9uKCl7Q29va2llcy5zZXQoInBvcHVwRm9ybUZpbGxlZCIsIjEiLDkwLCIvIik7Yy50cmlnZ2VyKCJwb3B1cGl6ZXIuZm9ybUZpbGxlZCIsYSl9O2lmKCJmdW5jdGlvbiI9PQp0eXBlb2YgZW1haWxIYW5kbGVyLmNhbGxiYWNrJiYwPGVtYWlsSGFuZGxlci5jYWxsYmFjay5sZW5ndGgpdmFyIEQ9ZW1haWxIYW5kbGVyLmNhbGxiYWNrO3ZhciBFPWZ1bmN0aW9uKCl7cmV0dXJuITB9OyJmdW5jdGlvbiI9PXR5cGVvZiBhLnNldHRpbmdzLm9uQWZ0ZXJzdWJtaXQmJihFPWEuc2V0dGluZ3Mub25BZnRlcnN1Ym1pdCk7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ZnVuY3Rpb24oKXtjLmNzcyh7b3BhY2l0eToxLHZpc2liaWxpdHk6ImhpZGRlbiJ9KTtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMX07ZW1haWxIYW5kbGVyLm9uQWZ0ZXJDb25zZW50PWZ1bmN0aW9uKGYpe2Euc2V0dGluZ3MuY2xvc2VPblN1Ym1pdD9hLmNsb3NlKCk6Yy5yZXZlYWwoYS5zZXR0aW5ncy5yZXZlYWwpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PSExO2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD0hMX07ZW1haWxIYW5kbGVyLm9uRHVwbGljYXRlU2VuZD0KZnVuY3Rpb24oKXthLnNldHRpbmdzLmNsb3NlT25TdWJtaXQmJmEuY2xvc2UoKTtlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKX07ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKGYpe3ZhciBuPSExO2Euc2V0dGluZ3MuZm9ybS5zaG93RW1haWxDb25maXJtYXRpb24mJihuPWdldE1haWxTZW50SGFuZGxlcigiXyIrYy5hdHRyKCJpZCIpKSxuLnRpbWVvdXRDYWxsYmFjaz1mdW5jdGlvbigpe2IudHJpZ2dlcigicmVzZXQiKX0pO3ZhciBGPWEuc2V0dGluZ3MuY2xvc2VPblN1Ym1pdDtpZihmKWEubG9nRXZlbnQoInBvcHVwLmxlYWRfc2VudCIpLDA9PUUuY2FsbChjLGEpJiYoRj0hMSksImZ1bmN0aW9uIj09dHlwZW9mIEMmJkMoKSwiZnVuY3Rpb24iPT10eXBlb2YgRCYmRCgpLCJvblN1Ym1pdCI9PWEuc2V0dGluZ3MuY29va2llQ3JlYXRlJiZhLnNldENvb2tpZSgpLEYmJiJoaWRkZW4iIT1jLmNzcygidmlzaWJpbGl0eSIpJiZhLmNsb3NlKCJDT05TRU5UIiksYS5zZXR0aW5ncy5tYWlucG9wdXAmJgooZW1haWxIYW5kbGVyLm1haW5Qcm9tbz0hMCksbj9uLnNob3dTdWNjZXNzKCk6MDwkKCJmb3JtIyIrYy5hdHRyKCJpZCIpKyJfY29uZmlybSIpLmxlbmd0aCYmJCgiZm9ybSMiK2MuYXR0cigiaWQiKSsiX2NvbmZpcm0iKS50cmlnZ2VyKCJzdWJtaXQiKTtlbHNle258fChuPWdldE1haWxTZW50SGFuZGxlcigpKTt0cnl7bi5zaG93RmFpbCgpfWNhdGNoKEcpe319c2V0VGltZW91dChlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKSwxRTMpfTthLnNhdmVTZXR0aW5ncyh7c3VibWl0dGVkOiEwfSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGEuc2V0dGluZ3Mub25CZWZvcmVTZW5kTWFpbCYmMD09YS5zZXR0aW5ncy5vbkJlZm9yZVNlbmRNYWlsLmNhbGwoYyxhKSlyZXR1cm4hMTthLnNldERlZmF1bHRBREYoKTsiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkFERiYmKGc9YS5zZXR0aW5ncy5vbkFERi5jYWxsKGMsYSksIm9iamVjdCI9PXR5cGVvZiBnJiYkLmV4dGVuZChhLnNldHRpbmdzLkFERiwKZykpO2c9Im1ha2UgbW9kZWwgeWVhciBzdG9ja051bWJlciB0cmltIHZpbiBwcmljZSBjYXJpZCIuc3BsaXQoIiAiKTtxPWEuc2V0dGluZ3MuQURGO2Zvcih2YXIgeT0wO3k8Zy5sZW5ndGg7eSsrKXt2YXIgcj1nW3ldO2VtYWlsSGFuZGxlcltyXT0iIiE9ZW1haWxIYW5kbGVyW3JdP2VtYWlsSGFuZGxlcltyXTpxW3JdP3Fbcl06ZW1haWxIYW5kbGVyW3JdfWVtYWlsSGFuZGxlci5ib2R5PWEuY2xlYW5CbGFua1ZhcmlhYmxlcyhlbWFpbEhhbmRsZXIuYm9keSk7YS5zaG93UHVyY2hhc2VJbnRlbnRQb3B1cCgpfHxlbWFpbEhhbmRsZXIuc2VuZE1haWwoYS5zZXR0aW5ncy5ieXBhc3NDb25zZW50KTtyZXR1cm4hMH07YS5zaG93UHVyY2hhc2VJbnRlbnRQb3B1cD1mdW5jdGlvbigpe2lmKGEuc2V0dGluZ3MucHVyY2hhc2VJbnRlbnRQb3B1cCl7dmFyIGI9JCgiI2ludGVyc3RpdGlhbFZlaGljbGVJbnRlbnQiKTtpZigxPmIubGVuZ3RofHxudWxsIT1Db29raWVzLmdldCgicHVyY2hhc2VfaW50ZW50IikpcmV0dXJuITE7CmdhVHJhY2soIl90cmFja0V2ZW50IiwiSW50ZW50aW9ucyBkJ2FjaGF0IiwiUG9wdXAgdnVzIixhLnNldHRpbmdzLmdvb2dsZVRyYWNraW5nLmxhYmVsLDEpO2MuY3NzKHtvcGFjaXR5OjEsdmlzaWJpbGl0eToiaGlkZGVuIn0pO2IuZmluZCgiZm9ybSIpLm9uKCJzdWJtaXQiLGZ1bmN0aW9uKCl7dmFyIGQ9JCh0aGlzKSxlPWQuZmluZCgiaW5wdXQiKTskLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCJ9KS5zdGFydCgpO2QuZmluZCgiaW5wdXQ6bm90KDpoaWRkZW4pLCB0ZXh0YXJlYSIpLm5vbkh0bWwoKTtlLmZpbHRlcigiLnJlcXVpcmVkIikucmVxdWlyZSgpLm5vbkh0bWwoKTtlLmZpbHRlcigiLnJlcVJhZGlvIikucmFkaW9PcHRpb25DaG9zZW4oKTtpZigkLnZhbGlkaXR5LmVuZCgpLnZhbGlkKXtiLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpO3ZhciBoPXtwdXJjaGFzZV9pbnRlbnQ6ITB9O2Quc2VyaWFsaXplQXJyYXkoKS5tYXAoZnVuY3Rpb24obCxwLGcpe2hbbC5uYW1lXT0KbC52YWx1ZX0pO0Nvb2tpZXMuc2V0KCJwdXJjaGFzZV9pbnRlbnQiLGgucHVyY2hhc2VfaW50ZW50LDMwLCIvIik7Z2FUcmFjaygiX3RyYWNrRXZlbnQiLCJJbnRlbnRpb25zIGQnYWNoYXQiLCJSZXBvbnNlcyIsaC5wdXJjaGFzZV9pbnRlbnQsMSk7ZW1haWxIYW5kbGVyLnNlbmRNYWlsKGEuc2V0dGluZ3MuYnlwYXNzQ29uc2VudCl9cmV0dXJuITF9KTtiLnJldmVhbCh7Y2xvc2Vfb25fYmFja2dyb3VuZF9jbGljazohMSxkaXNtaXNzX21vZGFsX2NsYXNzOiJfX05VTExfXyJ9KTtyZXR1cm4hMH1yZXR1cm4hMX07YS5nbG9iYWxSZXBsYWNlbWVudHM9ZnVuY3Rpb24oKXt2YXIgYj1bXTskKCJpbnB1dFt0eXBlPWhpZGRlbl0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9JCh0aGlzKS5hdHRyKCJuYW1lIik7Zz0idW5kZWZpbmVkIiE9dHlwZW9mIGc\/ZzokKHRoaXMpLmF0dHIoImlkIik7aWYoIWcpcmV0dXJuITA7dmFyIHQ9ITE7ImVtYWlsYnVpbGRhbmRwcmljZSI9PWcudG9Mb3dlckNhc2UoKSYmCiIiPT0kKHRoaXMpLnZhbCgpLnJlcGxhY2UoLyAvZywiIikmJih0PSEwKTt0fHwoImJyYW5kIj09Zy50b0xvd2VyQ2FzZSgpJiZiLnB1c2goe25hbWU6Im1ha2UiLHZhbHVlOiQodGhpcykudmFsKCl9KSxiLnB1c2goe25hbWU6Zyx2YWx1ZTokKHRoaXMpLnZhbCgpfSkpfSk7dmFyIGQ9IiI7aWYoMDwkKCIjbGFzdHZpZXdlZG1ha2UiKS5sZW5ndGgmJjA8JCgiI2xhc3R2aWV3ZWRtYWtlIikudmFsKCkubGVuZ3RoKXt2YXIgZT0kKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCk7ZD0kKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKTt2YXIgaD0kKCIjbGFzdHZpZXdlZG1vZGVsIikudmFsKCksbD0kKCIjbGFzdHZpZXdlZHllYXIiKS52YWwoKSxwPSQoIiNsYXN0dmlld2VkdHJpbSIpLnZhbCgpfHwiIjtkPWQrIiAiK2grIiAiK2wrKHAubGVuZ3RoPyIgIitwOiIiKTtkKz0wPGUubGVuZ3RoPyIgKFN0b2NrIyAiK2UrIikiOiIifWIucHVzaCh7bmFtZToiTEFTVFZFSElDTEVWSUVXRUQiLAp2YWx1ZTpkfSk7cmV0dXJuIGJ9O2EuY2xlYW5CbGFua1ZhcmlhYmxlcz1mdW5jdGlvbihiKXt2YXIgZD1iLnJlcGxhY2UoL3tcJFFVRVNUSU9OU30vZywiIikucmVwbGFjZSgve1wkTUVTU0FHRX0vZywiIikucmVwbGFjZSgve1wkRU1BSUxQSE9ORX0vZywiIikucmVwbGFjZSgve1wkRU1BSUxNQUtFfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTE1PREVMfS9nLCIiKS5yZXBsYWNlKC97XCRFTUFJTFlFQVJ9L2csIiIpLnJlcGxhY2UoL3tcJFBBWU1FTlR9L2csIiIpLnJlcGxhY2UoL3tcJFBBWU1FTlRURVJNfS9nLCIiKS5yZXBsYWNlKC97XCRPRkZFUn0vZywiIikucmVwbGFjZSgve1wkU1RPQ0tOVU1CRVJ9L2csIiIpLnJlcGxhY2UoL3tcJENPTE9SfS9nLCIiKS5yZXBsYWNlKC97XCRGTkFNRX0vZywiIikucmVwbGFjZSgve1wkTE5BTUV9L2csIiIpLnJlcGxhY2UoL3tcJEVNQUlMfS9nLCIiKS5yZXBsYWNlKC97XCRVU0VSUEhPTkV9L2csIiIpO21haWxQYWdlJiZiLnJlcGxhY2UoL3tcJEVNQUlMQlVJTERBTkRQUklDRX0vZywKbWFpbFBhZ2UuYmFuZHBMaW5rKCkpO3JldHVybiBkfTthLmNhbmNlbD1mdW5jdGlvbigpe2EuY2xvc2UoIkNBTkNFTCIpfTthLm9wZW49ZnVuY3Rpb24oYil7aWYoMT09Yy5kYXRhKCJvcGVuIikpcmV0dXJuITE7Im9iamVjdCI9PXR5cGVvZiBiJiYtMSE9ImNsaWNrIHRhcCIuaW5kZXhPZihiLnR5cGUudG9Mb3dlckNhc2UoKSkmJihrPSJjbGljayIpO2lmKCFpc05hTihiKSlyZXR1cm4gc2V0VGltZW91dChhLm9wZW4sMUUzKmIpO2lmKCFhLmlzQ29udGVudExvYWRlZCgpKXJldHVybiBhLmxvYWQoYS5vcGVuKTtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cubmV3VkRQVmlkZW9Jc1BsYXlpbmcmJjE9PXdpbmRvdy5uZXdWRFBWaWRlb0lzUGxheWluZyYmImNsaWNrIiE9a3x8YS5pc0FjdGl2ZSgpKXJldHVybiBhLm9wZW4oNSk7YS5vbk9wZW4oKTtyZXR1cm4gYX07YS5leGVjT3Blbj1mdW5jdGlvbigpe251bGw9PUNvb2tpZXMuZ2V0KCJwb3B1cFNob3duRXhlYyIpJiYoQ29va2llcy5zZXQoInBvcHVwU2hvd25FeGVjIiwKIjEiLG51bGwsd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSxhLm9wZW4oMCkpfTthLmluaXRDb3VudGRvd249ZnVuY3Rpb24oKXt0cnl7dmFyIGI9bmV3IERhdGUoMUUzKmEuc2V0dGluZ3MuY291bnRkb3duKTtpZigwPGMuZmluZCgiLmNvdW50ZG93biIpLmxlbmd0aCl7dmFyIGQ9Yy5maW5kKCIuY291bnRkb3duIiksZT1uZXcgRGF0ZSxoPWIuZ2V0VGltZSgpLWUuZ2V0VGltZSgpO2lmKDA8aCl7dmFyIGw9W01hdGguZmxvb3IoaC84NjRFNSksTWF0aC5mbG9vcihoJTg2NEU1LzM2RTUpLE1hdGguZmxvb3IoaCU4NjRFNSUzNkU1LzZFNCksTWF0aC5mbG9vcihoJTg2NEU1JTM2RTUlNkU0LzFFMyldO2ZvcihiPTA7YjxsLmxlbmd0aDtiKyspbFtiXT05PGxbYl0\/bFtiXS50b1N0cmluZygpOiIwIitsW2JdO3ZhciBwPWwuam9pbigiOiIpO2QuY291bnRkb3duKHtzdGFydFRpbWU6cCxpbWFnZToiL2ltYWdlcy9kaWdpdHNfc21hbGwucG5nIixkaWdpdFdpZHRoOjI5LGRpZ2l0SGVpZ2h0OjQzfSl9ZWxzZSBkLmhpZGUoKX19Y2F0Y2goZyl7InVuZGVmaW5lZCIhPT0KdHlwZW9mIGRlYnVnJiYoZGVidWcoZyksZGVidWcoIkludmFsaWQgZGF0ZSAiLGEuc2V0dGluZ3MuY291bnRkb3duKSl9fTthLmNsb3NlPWZ1bmN0aW9uKGIpe2lmKCJDQU5DRUwiPT1iJiYiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZUNhbmNlbCl7dmFyIGQ9YS5zZXR0aW5ncy5vbkJlZm9yZUNhbmNlbC5jYWxsKGMsYSk7aWYoMD09ZClyZXR1cm4hMX1pZigiZnVuY3Rpb24iPT10eXBlb2YgYS5zZXR0aW5ncy5vbkJlZm9yZUNsb3NlJiYoZD1hLnNldHRpbmdzLm9uQmVmb3JlQ2xvc2UuY2FsbChjLGEsYiksMD09ZCkpcmV0dXJuITE7Yy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX07YS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiBwb3B1cGl6ZXJBY3RpdmUoKX07YS5zZXRDb29raWU9ZnVuY3Rpb24oKXtDb29raWVzLnNldChhLnNldHRpbmdzLmNvb2tpZU5hbWUsIjEiLGEuc2V0dGluZ3MuY29va2llRHVyYXRpb24sIi8iKTt2YXIgYj1hLnNldHRpbmdzLmNvb2tpZU5hbWUudG9Mb3dlckNhc2UoKTsKaWYoInJlYmF0ZXNob3duIj09Ynx8InJlYmF0ZW90aGVyc2hvd24iPT1iJiYidXNlZCI9PSQoIiNjdXJyZW50U3RhdHVzIikudmFsKCkpYj1uZXcgRGF0ZSxiLnNldFRpbWUoYi5nZXRUaW1lKCkrMThFNCksQ29va2llcy5zZXQoInVzZWRTbGlkZXJQb3B1cERpc3BsYXllZCIsIjEiLGIsIi8iKX07YS5zYXZlU2V0dGluZ3M9ZnVuY3Rpb24oYil7Yj0idW5kZWZpbmVkIj09dHlwZW9mIGI\/e306YjtiPSJvYmplY3QiIT10eXBlb2YgYj97dXNlckRlZmluZWROb25PYmplY3Q6Yn06YjtjLmRhdGEoInBvcHVwU2V0dGluZ3MiLCQuZXh0ZW5kKCEwLGEuc2V0dGluZ3MsYikpfTthLnNldERlZmF1bHRBREY9ZnVuY3Rpb24oKXt2YXIgYj0kKCIjcG9wdXBtYWtlIikudmFsKCksZD0kKCIjcG9wdXBtb2RlbCIpLnZhbCgpLGU9JCgiI3BvcHVweWVhciIpLnZhbCgpOzA8JCgiaW5wdXQuYnJhbmRlbWFpbCIpLnZhbCgpLmxlbmd0aCYmMDwkKCJpbnB1dC5tb2RlbGVtYWlsIikudmFsKCkubGVuZ3RoJiYKMDwkKCJpbnB1dC55ZWFyZW1haWwiKS52YWwoKS5sZW5ndGgmJihiPSQoImlucHV0LmJyYW5kZW1haWwiKS52YWwoKSxkPSQoImlucHV0Lm1vZGVsZW1haWwiKS52YWwoKSxlPSQoImlucHV0LnllYXJlbWFpbCIpLnZhbCgpKTthLnNldHRpbmdzLkFERj17bWFrZTpiLG1vZGVsOmQseWVhcjplLHN0b2NrTnVtYmVyOiQoIiNwb3B1cHN0b2NrbnVtYmVyIikudmFsKCl9fTthLmxvZ0V2ZW50PWZ1bmN0aW9uKGIpe3ZhciBkPWEuc2V0dGluZ3MuZm9ybTtkPWQub2ZmZXJ0eXBlP2Qub2ZmZXJ0eXBlOiJFTUFJTElEXyIrZC5lbWFpbGlkO2lmKCFiKXJldHVybiExOyQoYS50YXJnZXQpLnRyaWdnZXIoYik7aWYoInBvcHVwLmxlYWRfc2VudCI9PWIpe3ZhciBlPWsucmVwbGFjZSgvKF5bYS16XXsxfSkvZyxmdW5jdGlvbihsKXtyZXR1cm4gbC50b1VwcGVyQ2FzZSgpfSksaD1kMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1sZWFkcyIsZSxoLAoxKX0idW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQ\/KCJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixiLGQsYSksYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudChiLGQpKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIiFVTkxPR0dFRCBFVkVOVCEiLGIsZCl9O2EuaXNDb250ZW50TG9hZGVkPWZ1bmN0aW9uKCl7aWYoIWEudGFyZ2V0WzBdLmhhc0F0dHJpYnV0ZSgiZGF0YS1sYXp5bG9hZGlkIikpcmV0dXJuITA7dmFyIGI9MD09PWEudGFyZ2V0Lmh0bWwoKS50cmltKCkubGVuZ3RoLGQ9YS5zZXR0aW5ncy5jb250ZW50TG9hZGVkfHwhMTtyZXR1cm4hYiYmZH07YS5sb2FkPWZ1bmN0aW9uKGIpe2EuaXNDb250ZW50TG9hZGVkKCk\/KGEuc2V0dGluZ3MuY29udGVudExvYWRlZD0hMCxiKCkpOgokLmFqYXgoe3R5cGU6IkdFVCIsY2FjaGU6ITAsdXJsOigiRU5HTElTSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Ii9lbiI6Ii9mciIpKyIvYWpheC9nZXRQb3B1cENvbnRlbnQiLGRhdGE6e3dzd2lkdGg6IjAiLF86YS5zZXR0aW5ncy5pZGVudCxpZDphLnRhcmdldC5kYXRhKCJsYXp5bG9hZGlkIiksbWFrZTokKCIjbGFzdHZpZXdlZG1ha2UiKS52YWwoKXx8IiIsbW9kZWw6JCgiI2xhc3R2aWV3ZWRtb2RlbCIpLnZhbCgpfHwiIix5ZWFyOiQoIiNsYXN0dmlld2VkeWVhciIpLnZhbCgpfHwiIix0cmltOiQoIiNsYXN0dmlld2VkdHJpbSIpLnZhbCgpfHwiIixzdG9ja051bWJlcjokKCIjbGFzdHZpZXdlZHN0b2NrbnVtYmVyIikudmFsKCl8fCIiLHZlaGljbGVJZDokKCIjdG9wY2FyaWQiKS52YWwoKXx8MH0sc3VjY2VzczpmdW5jdGlvbihkKXthLnRhcmdldC5odG1sKGQpO2Euc2V0dGluZ3MuY29udGVudExvYWRlZD0hMDsiZnVuY3Rpb24iPT09CnR5cGVvZiBhZGROb1RyYW5zbGF0ZUVtYWlsRGVmJiZhZGROb1RyYW5zbGF0ZUVtYWlsRGVmKCk7YigpfX0pfTthLmNyZWF0ZUNvbmZpcm1Gb3JtPWZ1bmN0aW9uKCl7dmFyIGI9YS50YXJnZXQuYXR0cigiaWQiKSsiX2NvbmZpcm0iOzE+JCgiI2NvbmZpcm1fZm9ybXMiKS5sZW5ndGgmJiQoImJvZHkiKS5hcHBlbmQoJCgiPGRpdj48L2Rpdj4iKS5hdHRyKCJpZCIsImNvbmZpcm1fZm9ybXMiKSk7aWYoMT4kKCIjIitiKS5sZW5ndGgmJmEuc2V0dGluZ3MuY29uZmlybUZvcm0mJjAhPT1hLnNldHRpbmdzLmNvbmZpcm1Gb3JtLmxlbmd0aCl7Yj0kKCI8Zm9ybT48L2Zvcm0+IikuYXR0cigiaWQiLGIpLmF0dHIoIm1ldGhvZCIsIlBPU1QiKS5hdHRyKCJhY3Rpb24iLCIvY29uZmlybWF0aW9uLmh0bWwiKS5hdHRyKCJ0YXJnZXQiLCJpZnJhbWVndHJhY2siKTt2YXIgZD0kKCIjYXV0b2F1YmFpbmVfcG9wdXAiKTtkPVt7bmFtZToiZ3RhZ19jb252ZXJzaW9uIix2YWx1ZToiZ3RhZyJ9LHtuYW1lOiJsZWFkX2RlcGFydG1lbnQiLAp2YWx1ZToiIn0se25hbWU6ImxlYWRUeXBlIix2YWx1ZToiIn0se25hbWU6InBhZ2VJRCIsdmFsdWU6IiJ9LHtuYW1lOiJjdXJyZW50VVJMIix2YWx1ZToiIn0se25hbWU6ImJ1dHRvblBvc2l0aW9uIix2YWx1ZToiIn0se25hbWU6ImRlYWxlck5hbWUiLHZhbHVlOiIifSx7bmFtZToiaXNGdWxsV2lkdGgiLHZhbHVlOiIifSx7bmFtZToiaXNNb2JpbGVOZXdWRFAiLHZhbHVlOiIifSx7bmFtZToidGVzdG1vZGUiLHZhbHVlOiIwIixjbGFzczoidGVzdG1vZGUifSx7bmFtZToiZnJvbUF1dG9BdWJhaW5lIix2YWx1ZTowPGQubGVuZ3RoJiYiZmFsc2UiIT1kLnZhbCgpfV07W10ucHVzaC5hcHBseShkLGEuc2V0dGluZ3MuY29uZmlybUZvcm0pO2Zvcih2YXIgZT0wO2U8ZC5sZW5ndGg7ZSsrKSQoIjxpbnB1dCAvPiIpLmF0dHIoInR5cGUiLCJoaWRkZW4iKS5hdHRyKGRbZV0pLmFwcGVuZFRvKGIpOyQoIiNjb25maXJtX2Zvcm1zIikuYXBwZW5kKGIpO2Iub24oInN1Ym1pdCIsb25Db25maXJtU3VibWl0KX0xPgokKCIjZ3RyYWNrRnJhbWUiKS5sZW5ndGgmJiQoIjxpZnJhbWU+PC9pZnJhbWU+IikuYXR0cih7d2lkdGg6MSxoZWlnaHQ6MSxmcmFtZUJvcmRlcjowLGlkOiJndHJhY2tGcmFtZSIsbmFtZToiaWZyYW1lZ3RyYWNrIixzdHlsZToid2lkdGg6IDFweDsgaGVpZ2h0OiAxcHg7In0pLmFwcGVuZFRvKCIjY29uZmlybV9mb3JtcyIpfTtyZXR1cm4gYX07CmpRdWVyeShmdW5jdGlvbihjKXt2YXIgbT1jKCIjc2l0ZWNvbXBpbGVpZCIpLmxlbmd0aD9jKCIjc2l0ZWNvbXBpbGVpZCIpLnZhbCgpOk1hdGgucm91bmQoMUU3Kk1hdGgucmFuZG9tKCkpLnRvU3RyaW5nKDE2KTtjLmZuLnBvcHVwaXplPWZ1bmN0aW9uKGEpe2E9YT9hOnt9O3ZhciBrPXtyZXZlYWw6e2FuaW1hdGlvbjoiZmFkZUFuZFBvcCIsYW5pbWF0aW9uc3BlZWQ6MzAwLGNsb3Nlb25iYWNrZ3JvdW5kY2xpY2s6ITEsZGlzbWlzc21vZGFsY2xhc3M6ImNsb3NlLXJldmVhbC1tb2RhbCJ9LGZvcm06e2VtYWlsaWQ6MCxvZmZlcnR5cGU6MCxuYW1lOjAsc2VuZFRvOjAsc2VuZFRvQURGOjAsT0tCdXR0b25DbGFzczoic3VibWl0QnRuIixDYW5jZWxCdXR0b25DbGFzczoiY2FuY2VsQnRuIixzaG93RW1haWxDb25maXJtYXRpb246ITF9LEFERjp7bWFrZToiIixtb2RlbDoiIix5ZWFyOiIiLHN0b2NrTnVtYmVyOiIifSxpZGVudDptLGVuZFBvcHVwUXVldWU6ITEscHJpb3JpdHk6MSxhbmltYXRpb246ITEsCm5vdHJhbnNmb3JtOiExLGZpbGxmbGFnOiExLHN1Ym1pdHRlZDohMSxzaG93b25sb2FkOiExLGNvb2tpZU5hbWU6ITEsY29va2llRHVyYXRpb246NjAsY2xvc2VPblN1Ym1pdDohMCxhZGRlZENsYXNzZXM6IiJ9O2lmKDE9PXRoaXMubGVuZ3RoKXt2YXIgYj10aGlzLmRhdGEoInBvcHVwU2V0dGluZ3MiKT90aGlzLmRhdGEoInBvcHVwU2V0dGluZ3MiKTp7fTtzZXR0aW5ncz17fTtjLmV4dGVuZCghMCxzZXR0aW5ncyxrLGIsYSk7IXNldHRpbmdzLmNvb2tpZU5hbWUmJjA8dGhpcy5hdHRyKCJpZCIpLmxlbmd0aCYmKHNldHRpbmdzLmNvb2tpZU5hbWU9ImNwcF8iK3RoaXMuYXR0cigiaWQiKSk7IXNldHRpbmdzLm5hbWUmJjA8dGhpcy5hdHRyKCJpZCIpLmxlbmd0aCYmKHNldHRpbmdzLm5hbWU9dGhpcy5hdHRyKCJpZCIpLnJlcGxhY2UoL0NvbnRhaW5lclxiLywiIikpO3RoaXMuZGF0YSgicG9wdXBTZXR0aW5ncyIsc2V0dGluZ3MpO2E9bmV3IHBvcHVwaXplcih0aGlzLHNldHRpbmdzKTsKc2V0dGluZ3MuaW5pdGlhbGl6ZWR8fChhLmluaXQoKSxwb3B1cFN1cGVydmlzb3IucG9wdXBzLnB1c2goYSkpO3JldHVybiBhfXBvcHVwcz1bXTt0aGlzLmVhY2goZnVuY3Rpb24oKXtwb3B1cHMucHVzaChjKHRoaXMpLnBvcHVwaXplKCkpfSk7cmV0dXJuIHBvcHVwc307c2V0VGltZW91dChmdW5jdGlvbigpe3ZhciBhPW51bGw7Yyh3aW5kb3cpLm9uKCJ0b3VjaG1vdmUsIG9uc2Nyb2xsLCBzY3JvbGwgbW91c2V3aGVlbCByZXNpemUiLGZ1bmN0aW9uKGspe2NsZWFyVGltZW91dChhKTthPXNldFRpbWVvdXQocG9wdXBTdXBlcnZpc29yLnJlcG9zaXRpb24sMUUzKX0pfSwxRTMpfSk7Ci8qKiAvbS9qcy92dGlwLmpzICoqLwp2YXIgX19fZDJjX3Z0aXBqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEwOjQ3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY192dGlwanNfY19vbj0iMjAyNC0wMy0yNSAxMjozNTozOSI7InVzZSBzdHJpY3QiOwp0aGlzLnZ0aXA9ZnVuY3Rpb24oKXt0aGlzLnhPZmZzZXQ9LTEwO3RoaXMueU9mZnNldD0xMDskKCIudnRpcCIpLm9mZigpLm9uKCJob3ZlciIsZnVuY3Rpb24oYSl7dGhpcy50PXRoaXMudGl0bGU7dGhpcy50aXRsZT0iIjt0aGlzLnRvcD1hLnBhZ2VZK3lPZmZzZXQ7dGhpcy5sZWZ0PWEucGFnZVgreE9mZnNldDskKCJib2R5IikuYXBwZW5kKCc8cCBpZD0idnRpcCIgc3R5bGU9InotaW5kZXg6MTAwMDAwOyI+PGltZyBpZD0idnRpcEFycm93IiAvPicrdGhpcy50KyI8L3A+Iik7JCgicCN2dGlwICN2dGlwQXJyb3ciKS5hdHRyKCJzcmMiLCIvaW1hZ2VzL3NjcmF0Y2gvdnRpcF9hcnJvdy5wbmciKTskKCJwI3Z0aXAiKS5jc3MoInRvcCIsdGhpcy50b3ArInB4IikuY3NzKCJsZWZ0Iix0aGlzLmxlZnQrInB4IikuZmFkZUluKCJzbG93Iil9LGZ1bmN0aW9uKCl7dGhpcy50aXRsZT10aGlzLnQ7JCgicCN2dGlwIikuZmFkZU91dCgic2xvdyIpLnJlbW92ZSgpfSkub24oIm1vdXNlbW92ZSIsCmZ1bmN0aW9uKGEpe3RoaXMudG9wPWEucGFnZVkreU9mZnNldDt0aGlzLmxlZnQ9YS5wYWdlWCt4T2Zmc2V0OyQoInAjdnRpcCIpLmNzcygidG9wIix0aGlzLnRvcCsicHgiKS5jc3MoImxlZnQiLHRoaXMubGVmdCsicHgiKX0pfTtqUXVlcnkoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKGEpe3Z0aXAoKX0pOwovKiogL20vanMvd1NjcmF0Y2hQYWQuanMgKiovCnZhciBfX19kMmNfd1NjcmF0Y2hQYWRqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEzOjM3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY193U2NyYXRjaFBhZGpzX2Nfb249IjIwMjQtMDQtMTIgMTg6MzA6MDYiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGQpe2Z1bmN0aW9uIGgoYixhKXt0aGlzLnNwPW51bGw7dGhpcy5zZXR0aW5ncz1iO3RoaXMuJGVsZW09YTt0aGlzLmVuYWJsZWQ9ITA7dGhpcy5zY3JhdGNoPSExO3RoaXMuY3R4PXRoaXMuY2FudmFzPW51bGw7cmV0dXJuIHRoaXN9ZC5mbi53U2NyYXRjaFBhZD1mdW5jdGlvbihiLGEpe2lmKCJlbmFibGUiPT1iKWQodGhpcykuZGF0YSgiX3dTY3JhdGNoUGFkIikuZW5hYmxlKCk7ZWxzZXtpZigib2JqZWN0Ij09PXR5cGVvZiBiKWE9YjtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgYil7dmFyIGM9W10sZj10aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1kKHRoaXMpLmRhdGEoIl93U2NyYXRjaFBhZCIpO2UmJigicmVzZXQiPT09Yj9lLnJlc2V0KCk6ImNsZWFyIj09PWI\/ZS5jbGVhcigpOiJlbmFibGVkIj09PWI\/ZS5lbmFibGVkPSEwPT09YTp2b2lkIDAhPT1kLmZuLndTY3JhdGNoUGFkLmRlZmF1bHRTZXR0aW5nc1tiXSYmKHZvaWQgMCE9PWE\/ZS5zZXR0aW5nc1tiXT0KYTpjLnB1c2goZS5zZXR0aW5nc1tiXSkpKX0pO3JldHVybiAxPT09Yy5sZW5ndGg\/Y1swXTowPGMubGVuZ3RoP2M6Zn1hPWQuZXh0ZW5kKHt9LGQuZm4ud1NjcmF0Y2hQYWQuZGVmYXVsdFNldHRpbmdzLGF8fHt9KTtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9ZCh0aGlzKSxnPWpRdWVyeS5leHRlbmQoITAse30sYSk7aWYoIWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQpe3ZhciBrPSJCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgSFRNTDUgY2FudmFzLCBwbGVhc2UgdXBncmFkZSB0byBhIG1vcmUgbW9kZXJuIGJyb3dzZXIuIjtkKCIjdGV4dERvZXNOb3RTdXBwb3J0SFRNTDUiKS5sZW5ndGgmJihrPWQoIiN0ZXh0RG9lc05vdFN1cHBvcnRIVE1MNSIpLnZhbCgpKTtlLmNzcygicGFkZGluZy10b3AiLCI2MHB4Iik7ZS5jc3MoImhlaWdodCIsIjU1cHgiKTtlLmh0bWwoayk7InVuZGVmaW5lZCIhPXR5cGVvZiBnLmlkVG9BZGQmJmQoIiNibG9ja2FnZSIrCmcuaWRUb0FkZCkubGVuZ3RoJiZkKCIjYmxvY2thZ2UiK2cuaWRUb0FkZCkuY3NzKCJ0b3AiLHBhcnNlSW50KGQoIiNibG9ja2FnZSIrZy5pZFRvQWRkKS5jc3MoInRvcCIpKSszMCsicHgiKTtyZXR1cm4hMX1nPW5ldyBoKGcsZSk7ZS5hcHBlbmQoZy5nZW5lcmF0ZSgpKTtnLnBpeGVscz1nLmNhbnZhcy53aWR0aCpnLmNhbnZhcy5oZWlnaHQ7ZS5kYXRhKCJfd1NjcmF0Y2hQYWQiLGcpO2cuaW5pdCgpfSl9fTtkLmZuLndTY3JhdGNoUGFkLmRlZmF1bHRTZXR0aW5ncz17d2lkdGg6NjAwLGhlaWdodDoxMTUsaW1hZ2U6Ii9pbWFnZXMvc2NyYXRjaC9zbGlkZTIucG5nIixpbWFnZTI6Ii9pbWFnZXMvcG9wdXBzL3N0eWxlMi9zY3JhdGNoLnBuZyIsaW1hZ2VEaXNhYmxlZDoiL2ltYWdlcy9wb3B1cHMvc3R5bGUyL3NjcmF0Y2hfZGlzYWJsZWQucG5nIixjb2xvcjoiIzMzNjY5OSIsb3ZlcmxheToibm9uZSIsc2l6ZTozMCxyZWFsdGltZVBlcmNlbnQ6ITEsc2NyYXRjaERvd246bnVsbCxzY3JhdGNoVXA6bnVsbCwKc2NyYXRjaE1vdmU6bnVsbCxjdXJzb3I6bnVsbCxpZFRvQWRkOiIiLGJhY2tncm91bmRDb2xvcjoiIzAxMGEyOCIsZW5hYmxlZDohMH07aC5wcm90b3R5cGU9e2dlbmVyYXRlOmZ1bmN0aW9uKCl7dGhpcy5jYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dGhpcy5jdHg9dGhpcy5jYW52YXMuZ2V0Q29udGV4dCgiMmQiKTt0aGlzLnNwPWQoIjxkaXY+PC9kaXY+IikuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUifSkuYXBwZW5kKGQodGhpcy5jYW52YXMpLmF0dHIoIndpZHRoIix0aGlzLnNldHRpbmdzLndpZHRoKyJweCIpLmF0dHIoImhlaWdodCIsdGhpcy5zZXR0aW5ncy5oZWlnaHQrInB4IikuYXR0cigic3R5bGUiLCJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0ycHg7dG9wOi0xcHg7ei1pbmRleDoxOyIpKTt0aGlzLnNldHRpbmdzLmVuYWJsZWQmJnRoaXMuZW5hYmxlKCk7cmV0dXJuIHRoaXMuc3B9LGVuYWJsZTpmdW5jdGlvbigpe3RoaXMuZHJhd0ltYWdlKHRoaXMuc2V0dGluZ3MuaW1hZ2UyLAohMCk7dGhpcy5iaW5kQnJvd3NlcigpO3RoaXMuYmluZE1vYmlsZSh0aGlzLnNwKX0sYmluZEJyb3dzZXI6ZnVuY3Rpb24oYil7dmFyIGE9dGhpcztkKHRoaXMuY2FudmFzKS5vbigibW91c2Vkb3duIixmdW5jdGlvbihjKXtpZighYS5lbmFibGVkKXJldHVybiEwO2MucHJldmVudERlZmF1bHQoKTtjLnN0b3BQcm9wYWdhdGlvbigpO2EuY2FudmFzX29mZnNldD1kKGEuY2FudmFzKS5vZmZzZXQoKTthLnNjcmF0Y2g9ITA7YS5zY3JhdGNoRnVuYyhjLGEsIkRvd24iKX0pLm9uKCJtb3VzZW1vdmUiLGZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKTtjLnN0b3BQcm9wYWdhdGlvbigpO2Euc2NyYXRjaCYmYS5zY3JhdGNoRnVuYyhjLGEsIk1vdmUiKX0pLm9uKCJtb3VzZXVwIixmdW5jdGlvbihjKXtjLnByZXZlbnREZWZhdWx0KCk7Yy5zdG9wUHJvcGFnYXRpb24oKTthLnNjcmF0Y2gmJihhLnNjcmF0Y2g9ITEsYS5zY3JhdGNoRnVuYyhjLGEsIlVwIikpfSl9LGJpbmRNb2JpbGU6ZnVuY3Rpb24oYil7Yi5vbigidG91Y2hzdGFydCB0b3VjaG1vdmUgdG91Y2hlbmQgdG91Y2hjYW5jZWwiLApmdW5jdGlvbigpe3ZhciBhPWV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdO3N3aXRjaChldmVudC50eXBlKXtjYXNlICJ0b3VjaHN0YXJ0Ijp2YXIgYz0ibW91c2Vkb3duIjticmVhaztjYXNlICJ0b3VjaG1vdmUiOmM9Im1vdXNlbW92ZSI7YnJlYWs7Y2FzZSAidG91Y2hlbmQiOmM9Im1vdXNldXAiO2JyZWFrO2RlZmF1bHQ6cmV0dXJufXZhciBmPWRvY3VtZW50LmNyZWF0ZUV2ZW50KCJNb3VzZUV2ZW50Iik7Zi5pbml0TW91c2VFdmVudChjLCEwLCEwLHdpbmRvdywxLGEuc2NyZWVuWCxhLnNjcmVlblksYS5jbGllbnRYLGEuY2xpZW50WSwhMSwhMSwhMSwhMSwwLG51bGwpO2EudGFyZ2V0LmRpc3BhdGNoRXZlbnQoZik7ZXZlbnQucHJldmVudERlZmF1bHQoKX0pfSxpbml0OmZ1bmN0aW9uKCl7dGhpcy5zcC5jc3MoIndpZHRoIix0aGlzLnNldHRpbmdzLndpZHRoLTIpO3RoaXMuc3AuY3NzKCJoZWlnaHQiLHRoaXMuc2V0dGluZ3MuaGVpZ2h0LTIpO3RoaXMuc3AuY3NzKCJjdXJzb3IiLHRoaXMuc2V0dGluZ3MuY3Vyc29yPwondXJsKCInK3RoaXMuc2V0dGluZ3MuY3Vyc29yKyciKSwgZGVmYXVsdCc6ImRlZmF1bHQiKTtkKHRoaXMuY2FudmFzKS5jc3Moe2N1cnNvcjp0aGlzLnNldHRpbmdzLmN1cnNvcj8ndXJsKCInK3RoaXMuc2V0dGluZ3MuY3Vyc29yKyciKSwgZGVmYXVsdCc6ImRlZmF1bHQifSk7dGhpcy5jYW52YXMud2lkdGg9dGhpcy5zZXR0aW5ncy53aWR0aDt0aGlzLmNhbnZhcy5oZWlnaHQ9dGhpcy5zZXR0aW5ncy5oZWlnaHQ7dGhpcy5waXhlbHM9dGhpcy5jYW52YXMud2lkdGgqdGhpcy5jYW52YXMuaGVpZ2h0O3RoaXMuc2V0dGluZ3MuaW1hZ2UyPyh0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlMiksdGhpcy5zZXR0aW5ncy5lbmFibGVkfHx0aGlzLmRyYXdJbWFnZSh0aGlzLnNldHRpbmdzLmltYWdlRGlzYWJsZWQsITApKTooIm5vbmUiIT10aGlzLnNldHRpbmdzLm92ZXJsYXk\/KHRoaXMuc2V0dGluZ3MuaW1hZ2UmJnRoaXMuZHJhd0ltYWdlKHRoaXMuc2V0dGluZ3MuaW1hZ2UpLAp0aGlzLmN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249dGhpcy5zZXR0aW5ncy5vdmVybGF5KTp0aGlzLnNldEJnSW1hZ2UoKSx0aGlzLmN0eC5maWxsU3R5bGU9dGhpcy5zZXR0aW5ncy5jb2xvcix0aGlzLmN0eC5iZWdpblBhdGgoKSx0aGlzLmN0eC5yZWN0KDAsMCx0aGlzLnNldHRpbmdzLndpZHRoLHRoaXMuc2V0dGluZ3MuaGVpZ2h0KSx0aGlzLmN0eC5maWxsKCkpfSxyZXNldDpmdW5jdGlvbigpe3RoaXMuY3R4Lmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbj0ic291cmNlLW92ZXIiO3RoaXMuaW5pdCgpfSxjbGVhcjpmdW5jdGlvbigpe3RoaXMuY3R4LmNsZWFyUmVjdCgwLDAsdGhpcy5zZXR0aW5ncy53aWR0aCx0aGlzLnNldHRpbmdzLmhlaWdodCl9LHNldEJnSW1hZ2U6ZnVuY3Rpb24oKXt0aGlzLnNldHRpbmdzLmltYWdlJiYodGhpcy5zcC5hZGRDbGFzcygic2NyYXRjaERpdlRleHQiKSx0aGlzLnNwLmNzcygiYmFja2dyb3VuZC1jb2xvciIsdGhpcy5zZXR0aW5ncy5iYWNrZ3JvdW5kQ29sb3IpLAp0aGlzLnNwLmFwcGVuZCgiPGRpdiBpZD0nc2NyYXRjaERpdlRleHQiK3RoaXMuc2V0dGluZ3MuaWRUb0FkZCsiJyBzdHlsZT0ndGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjMwcHg7Y29sb3I6I2ZmZjttYXJnaW4tbGVmdDowcHg7cGFkZGluZy1sZWZ0OjEwcHg7cGFkZGluZy1yaWdodDoxMHB4O3Bvc2l0aW9uOmFic29sdXRlO3RvcDoyMHB4O3otaW5kZXg6MDsnPiIrZCgiI3NjcmF0Y2hJbnB1dFRleHQiK3RoaXMuc2V0dGluZ3MuaWRUb0FkZCkudmFsKCkrIjwvZGl2PiIpKX0sZHJhd0ltYWdlOmZ1bmN0aW9uKGIsYSl7dmFyIGM9dGhpcyxmPW5ldyBJbWFnZTtmLnNyYz1iO2QoZikub24oImxvYWQiLGZ1bmN0aW9uKCl7Yy5jdHguZHJhd0ltYWdlKGYsMCwwKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEmJmF8fGMuc2V0QmdJbWFnZSgpfSl9LHNjcmF0Y2hGdW5jOmZ1bmN0aW9uKGIsYSxjKXtiLnBhZ2VYPU1hdGguZmxvb3IoYi5wYWdlWC1hLmNhbnZhc19vZmZzZXQubGVmdCk7Yi5wYWdlWT0KTWF0aC5mbG9vcihiLnBhZ2VZLWEuY2FudmFzX29mZnNldC50b3ApO2FbInNjcmF0Y2giK2NdKGIsYSk7KHRoaXMuc2V0dGluZ3MucmVhbHRpbWVQZXJjZW50fHwiVXAiPT1jKSYmYS5zZXR0aW5nc1sic2NyYXRjaCIrY10mJmEuc2V0dGluZ3NbInNjcmF0Y2giK2NdLmFwcGx5KGEsW2IsYS5zY3JhdGNoUGVyY2VudGFnZShhKV0pfSxzY3JhdGNoUGVyY2VudGFnZTpmdW5jdGlvbihiKXtmb3IodmFyIGE9MCxjPWIuY3R4LmdldEltYWdlRGF0YSgwLDAsYi5jYW52YXMud2lkdGgsYi5jYW52YXMuaGVpZ2h0KSxmPTAsZT1jLmRhdGEubGVuZ3RoO2Y8ZTtmKz00KTA9PWMuZGF0YVtmXSYmMD09Yy5kYXRhW2YrMV0mJjA9PWMuZGF0YVtmKzJdJiYwPT1jLmRhdGFbZiszXSYmYSsrO3JldHVybiBhL2IucGl4ZWxzKjEwMH0sc2NyYXRjaERvd246ZnVuY3Rpb24oYixhKXthLmN0eC5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImRlc3RpbmF0aW9uLW91dCI7YS5jdHgubGluZUpvaW49InJvdW5kIjsKYS5jdHgubGluZUNhcD0icm91bmQiO2EuY3R4LnN0cm9rZVN0eWxlPWEuc2V0dGluZ3MuY29sb3I7YS5jdHgubGluZVdpZHRoPWEuc2V0dGluZ3Muc2l6ZTthLmN0eC5iZWdpblBhdGgoKTthLmN0eC5hcmMoYi5wYWdlWCxiLnBhZ2VZLGEuc2V0dGluZ3Muc2l6ZS8yLDAsMipNYXRoLlBJLCEwKTthLmN0eC5jbG9zZVBhdGgoKTthLmN0eC5maWxsKCk7YS5jdHguYmVnaW5QYXRoKCk7YS5jdHgubW92ZVRvKGIucGFnZVgsYi5wYWdlWSl9LHNjcmF0Y2hNb3ZlOmZ1bmN0aW9uKGIsYSl7YS5jdHgubGluZVRvKGIucGFnZVgsYi5wYWdlWSk7YS5jdHguc3Ryb2tlKCl9LHNjcmF0Y2hVcDpmdW5jdGlvbihiLGEpe2EuY3R4LmNsb3NlUGF0aCgpfX19KShqUXVlcnkpOwovKiogL20vanMvc3dmc3RvcmUuanMgKiovCnZhciBfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEyOjIxIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjQtMDEtMzEgMTQ6Mzc6NTMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfc3dmc3RvcmVqc19jX29uPSIyMDIzLTAxLTEyIDExOjM1OjE4IjsidXNlIHN0cmljdCI7X19fZDJjX3N3ZnN0b3JlanNfY19vbj0iMjAyMy0wMS0xMiAxMDo0NDo1OCI7InVzZSBzdHJpY3QiO19fX2QyY19zd2ZzdG9yZWpzX2Nfb249IjIwMjEtMTItMTUgMTI6NDI6MzEiOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKCl7ZnVuY3Rpb24gZyhhKXtpZigiZnVuY3Rpb24iPT09dHlwZW9mIGEpdGhyb3ciU3dmU3RvcmUgRXJyb3I6IEZ1bmN0aW9ucyBjYW5ub3QgYmUgdXNlZCBhcyBrZXlzIG9yIHZhbHVlcy4iO312YXIgaD0wLG09L1teYS16MC05X10vZ2k7d2luZG93LlN3ZlN0b3JlPWZ1bmN0aW9uKGEpe2Z1bmN0aW9uIGUoZCl7dmFyIGI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChiKTtiLmlkPSJTd2ZTdG9yZV8iK2EubmFtZXNwYWNlKyJfIitoKys7ZHx8KGIuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixiLnN0eWxlLnRvcD0iLTIwMDBweCIsYi5zdHlsZS5sZWZ0PSItMjAwMHB4Iik7cmV0dXJuIGJ9YT1hfHx7fTt2YXIgZj17c3dmX3VybDoic3RvcmFnZS5zd2YiLG5hbWVzcGFjZToic3dmc3RvcmUiLHBhdGg6bnVsbCxkZWJ1ZzohMSx0aW1lb3V0OjEwLG9ucmVhZHk6bnVsbCxvbmVycm9yOm51bGx9O2ZvcihjIGluIGYpZi5oYXNPd25Qcm9wZXJ0eShjKSYmCihhLmhhc093blByb3BlcnR5KGMpfHwoYVtjXT1mW2NdKSk7YS5uYW1lc3BhY2U9YS5uYW1lc3BhY2UucmVwbGFjZShtLCJfIik7aWYod2luZG93LlN3ZlN0b3JlW2EubmFtZXNwYWNlXSl0aHJvdyJUaGVyZSBpcyBhbHJlYWR5IGFuIGluc3RhbmNlIG9mIFN3ZlN0b3JlIHVzaW5nIHRoZSAnIithLm5hbWVzcGFjZSsiJyBuYW1lc3BhY2UuIFVzZSB0aGF0IGluc3RhbmNlIG9yIHNwZWNpZnkgYW4gYWx0ZXJuYXRlIG5hbWVzcGFjZSBpbiB0aGUgY29uZmlnLiI7dGhpcy5jb25maWc9YTtpZihhLmRlYnVnKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBjb25zb2xlKXt2YXIgbj1lKCEwKTt3aW5kb3cuY29uc29sZT17bG9nOmZ1bmN0aW9uKGQpe3ZhciBiPWUoITApO2IuaW5uZXJIVE1MPWQ7bi5hcHBlbmRDaGlsZChiKX19fXRoaXMubG9nPWZ1bmN0aW9uKGQsYixrKXtiPSJzd2ZTdG9yZSI9PT1iPyJzd2YiOmI7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgY29uc29sZVtkXSljb25zb2xlW2RdKCJTd2ZTdG9yZSAtICIrCmEubmFtZXNwYWNlKyIgKCIrYisiKTogIitrKTtlbHNlIGNvbnNvbGUubG9nKCJTd2ZTdG9yZSAtICIrYS5uYW1lc3BhY2UrIjogIitkKyIgKCIrYisiKTogIitrKX19ZWxzZSB0aGlzLmxvZz1mdW5jdGlvbigpe307dGhpcy5sb2coImluZm8iLCJqcyIsIkluaXRpYWxpemluZy4uLiIpO1N3ZlN0b3JlW2EubmFtZXNwYWNlXT10aGlzO2Y9ZShhLmRlYnVnKTt2YXIgYz0iU3dmU3RvcmVfIithLm5hbWVzcGFjZSsiXyIraCsrLGw9ImxvZ2ZuPVN3ZlN0b3JlLiIrYS5uYW1lc3BhY2UrIi5sb2cmYW1wO29ubG9hZD1Td2ZTdG9yZS4iK2EubmFtZXNwYWNlKyIub25sb2FkJmFtcDtvbmVycm9yPVN3ZlN0b3JlLiIrYS5uYW1lc3BhY2UrIi5vbmVycm9yJmFtcDsiKyhhLnBhdGg\/IkxTT1BhdGg9IithLnBhdGgrIiZhbXA7IjoiIikrIkxTT05hbWU9IithLm5hbWVzcGFjZTtmLmlubmVySFRNTD0nPG9iamVjdCBoZWlnaHQ9IjEwMCIgd2lkdGg9IjUwMCIgY29kZWJhc2U9Imh0dHBzOi8vZG93bmxvYWQubWFjcm9tZWRpYS5jb20vcHViL3Nob2Nrd2F2ZS9jYWJzL2ZsYXNoL3N3Zmxhc2guY2FiIiBpZD0iJysKYysnIiBjbGFzc2lkPSJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiPiAgICA8cGFyYW0gdmFsdWU9IicrYS5zd2ZfdXJsKyciIG5hbWU9Im1vdmllIj4gIDxwYXJhbSB2YWx1ZT0iJytsKyciIG5hbWU9IkZsYXNoVmFycyI+ICAgPHBhcmFtIHZhbHVlPSJhbHdheXMiIG5hbWU9ImFsbG93U2NyaXB0QWNjZXNzIj4gIDxlbWJlZCBoZWlnaHQ9IjM3NSIgYWxpZ249Im1pZGRsZSIgd2lkdGg9IjUwMCIgcGx1Z2luc3BhZ2U9Imh0dHBzOi8vd3d3Lm1hY3JvbWVkaWEuY29tL2dvL2dldGZsYXNocGxheWVyIiBmbGFzaHZhcnM9IicrbCsnIiB0eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIgYWxsb3dzY3JpcHRhY2Nlc3M9ImFsd2F5cyIgcXVhbGl0eT0iaGlnaCIgbG9vcD0iZmFsc2UiIHBsYXk9InRydWUiIG5hbWU9IicrYysnIiBiZ2NvbG9yPSIjZmZmZmZmIiBzcmM9IicrYS5zd2ZfdXJsKyciPjwvb2JqZWN0Pic7dGhpcy5zd2Y9ZG9jdW1lbnRbY118fAp3aW5kb3dbY107dGhpcy5fdGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7U3dmU3RvcmVbYS5uYW1lc3BhY2VdLmxvZygiZXJyb3IiLCJqcyIsIlRpbWVvdXQgcmVhY2hlZCwgYXNzdW1pbmcgIithLnN3Zl91cmwrIiBmYWlsZWQgdG8gbG9hZCBhbmQgZmlyaW5nIHRoZSBvbmVycm9yIGNhbGxiYWNrLiIpO2lmKGEub25lcnJvcilhLm9uZXJyb3IoKX0sMUUzKmEudGltZW91dCl9O1N3ZlN0b3JlLnByb3RvdHlwZT17dmVyc2lvbjoiMS45IixyZWFkeTohMSxzZXQ6ZnVuY3Rpb24oYSxlKXt0aGlzLl9jaGVja1JlYWR5KCk7ZyhhKTtnKGUpO3RoaXMuc3dmLnNldChhLGUpfSxnZXQ6ZnVuY3Rpb24oYSl7dGhpcy5fY2hlY2tSZWFkeSgpO2coYSk7cmV0dXJuIHRoaXMuc3dmLmdldChhKX0sZ2V0QWxsOmZ1bmN0aW9uKCl7dGhpcy5fY2hlY2tSZWFkeSgpO3ZhciBhPXRoaXMuc3dmLmdldEFsbCgpO2EuX19mbGFzaEJ1Z0ZpeCYmZGVsZXRlIGEuX19mbGFzaEJ1Z0ZpeDtyZXR1cm4gYX0sCmNsZWFyOmZ1bmN0aW9uKGEpe3RoaXMuX2NoZWNrUmVhZHkoKTtnKGEpO3RoaXMuc3dmLmNsZWFyKGEpfSxfY2hlY2tSZWFkeTpmdW5jdGlvbigpe2lmKCF0aGlzLnJlYWR5KXRocm93IlN3ZlN0b3JlIGlzIG5vdCB5ZXQgZmluaXNoZWQgaW5pdGlhbGl6aW5nLiBQYXNzIGEgY29uZmlnLm9ucmVhZHkgY2FsbGJhY2sgb3Igd2FpdCB1bnRpbCB0aGlzLnJlYWR5IGlzIHRydWUgYmVmb3JlIHRyeWluZyB0byB1c2UgYSBTd2ZTdG9yZSBpbnN0YW5jZS4iO30sb25sb2FkOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcztzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KGEuX3RpbWVvdXQpO2EucmVhZHk9ITA7YS5zZXQoIl9fZmxhc2hCdWdGaXgiLCIxIik7aWYoYS5jb25maWcub25yZWFkeSlhLmNvbmZpZy5vbnJlYWR5KCl9LDApfSxvbmVycm9yOmZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXQpO2lmKHRoaXMuY29uZmlnLm9uZXJyb3IpdGhpcy5jb25maWcub25lcnJvcigpfX19KSgpOwovKiogL20vanMvanF1ZXJ5LmNvdW50ZG93bi5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDI1LTA1LTIzIDE3OjA5OjMyIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDI0LTAxLTMxIDE0OjM2OjEyIjsidXNlIHN0cmljdCI7X19fZDJjX2pxdWVyeWNvdW50ZG93bmpzX2Nfb249IjIwMjMtMDEtMTIgMTE6NDA6MjUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfanF1ZXJ5Y291bnRkb3duanNfY19vbj0iMjAyMy0wMS0xMiAxMDo1MDoxMCI7InVzZSBzdHJpY3QiO19fX2QyY19qcXVlcnljb3VudGRvd25qc19jX29uPSIyMDIxLTEyLTE1IDEyOjUwOjM1IjsidXNlIHN0cmljdCI7CmpRdWVyeS5mbi5jb3VudGRvd249ZnVuY3Rpb24oaCl7aWYoMTx0aGlzLmxlbmd0aClyZXR1cm4gJCh0aGlzKS5lYWNoKGZ1bmN0aW9uKCl7JCh0aGlzKS5jb3VudGRvd24oaCl9KSx0aGlzO2lmKHRoaXMuZGF0YSgiY291bnRpbmciKSlyZXR1cm4gdGhpczt0aGlzLmRhdGEoImNvdW50aW5nIiwhMCk7dmFyIGE9e3N0ZXBUaW1lOjYwLGZvcm1hdDoiZGQ6aGg6bW06c3MiLHN0YXJ0VGltZToiMDE6MTI6MzI6NTUiLGRpZ2l0SW1hZ2VzOjYsZGlnaXRXaWR0aDo1MyxkaWdpdEhlaWdodDo3Nyx0aW1lckVuZDpmdW5jdGlvbigpe30saW1hZ2U6ImRpZ2l0cy5wbmcifSxjPVtdLGY9ZnVuY3Rpb24oYixkKXtyZXR1cm4gdm9pZCAwIT09ZD9jW2JdLmNzcyh7bWFyZ2luVG9wOmQrInB4In0pOnBhcnNlSW50KGNbYl0uY3NzKCJtYXJnaW5Ub3AiKS5yZXBsYWNlKCJweCIsIiIpKX0saz1mdW5jdGlvbihiKXtjW2JdLl9kaWdpdEluaXRpYWw9LShjW2JdLl9fbWF4KmEuZGlnaXRIZWlnaHQqYS5kaWdpdEltYWdlcyk7CnJldHVybiBmdW5jdGlvbiBlKCl7bXRvcD1mKGIpK2EuZGlnaXRIZWlnaHQ7aWYobXRvcD09YS5kaWdpdEhlaWdodClpZihmKGIsY1tiXS5fZGlnaXRJbml0aWFsKSwwPGIpayhiLTEpKCksMDxiJiZ2b2lkIDAhPT1jW2JdLl9fY29uZG1heCYmY1tiLTFdLl9kaWdpdEluaXRpYWw9PWYoYi0xKSYmZihiLC0oY1tiXS5fX2NvbmRtYXgqYS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKSk7ZWxzZXtjbGVhckludGVydmFsKGwpO2Zvcih2YXIgZz0wO2c8Yy5sZW5ndGg7ZysrKWYoZywwKTthLnRpbWVyRW5kKCl9ZWxzZSBmKGIsbXRvcCksMCE9ZihiKS9hLmRpZ2l0SGVpZ2h0JWEuZGlnaXRJbWFnZXMmJnNldFRpbWVvdXQoZSxhLnN0ZXBUaW1lKSwwPT1tdG9wJiYoY1tiXS5fX2lzbWF4PSEwKX19OyQuZXh0ZW5kKGEsaCk7dGhpcy5jc3Moe2hlaWdodDphLmRpZ2l0SGVpZ2h0LG92ZXJmbG93OiJoaWRkZW4ifSk7KGZ1bmN0aW9uKGIpe2Zvcih2YXIgZD0wLGU9MDtlPGEuc3RhcnRUaW1lLmxlbmd0aDtlKyspe2lmKDA8PQpwYXJzZUludChhLnN0YXJ0VGltZVtlXSkpe2VsZW09JCgnPGRpdiBpZD0iY250XycrZSsnIiBjbGFzcz0iY250RGlnaXQiIC8+JykuY3NzKHtoZWlnaHQ6YS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKjEwLGZsb2F0OiJsZWZ0IixiYWNrZ3JvdW5kOiJ1cmwoJyIrYS5pbWFnZSsiJykiLHdpZHRoOmEuZGlnaXRXaWR0aH0pO2MucHVzaChlbGVtKTtmKGQsLShwYXJzZUludChhLnN0YXJ0VGltZVtlXSkqYS5kaWdpdEhlaWdodCphLmRpZ2l0SW1hZ2VzKSk7Y1tkXS5fX21heD05O3N3aXRjaChhLmZvcm1hdFtlXSl7Y2FzZSAiaCI6Y1tkXS5fX21heD0wPT1kJTI\/Mjo5OzA9PWQlMiYmKGNbZF0uX19jb25kbWF4PTQpO2JyZWFrO2Nhc2UgImQiOmNbZF0uX19tYXg9OTticmVhaztjYXNlICJtIjpjYXNlICJzIjpjW2RdLl9fbWF4PTA9PWQlMj81Ojl9KytkfWVsc2UgZWxlbT0kKCc8ZGl2IGNsYXNzPSJjbnRTZXBhcmF0b3IiLz4nKS5jc3Moe2Zsb2F0OiJsZWZ0In0pLnRleHQoYS5zdGFydFRpbWVbZV0pOwpiLmFwcGVuZChlbGVtKX19KSh0aGlzKTt2YXIgbD1zZXRJbnRlcnZhbChrKGMubGVuZ3RoLTEpLDFFMyl9OwovKiogL20vanMvZGF0ZVV0aWxzLmpzICoqLwp2YXIgX19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6NDYiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjQtMDEtMzEgMTQ6MzY6MDEiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZGF0ZVV0aWxzanNfY19vbj0iMjAyMy0wMS0xMiAxMTozNDozMyI7InVzZSBzdHJpY3QiO19fX2QyY19kYXRlVXRpbHNqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ0OjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2RhdGVVdGlsc2pzX2Nfb249IjIwMjEtMTItMTUgMTI6NDE6MjMiOyJ1c2Ugc3RyaWN0IjtEYXRlLnByb3RvdHlwZS5hbW91bnRCZXR3ZWVuPWZ1bmN0aW9uKGEsYixjLGQpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgYXx8bnVsbD09YXx8InVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1iKXJldHVybiBudWxsO2E9YS5nZXRUaW1lKCk7Yj1iLmdldFRpbWUoKTtyZXR1cm4gTWF0aC5mbG9vcigoYi1hLWQpL2MpfTsKLyoqIC9tL2pzL3BvcHVwLmpzICoqLwp2YXIgX19fZDJjX3BvcHVwanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMToyNyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfcG9wdXBqc19jX29uPSIyMDI0LTAzLTE1IDEwOjMwOjEwIjsidXNlIHN0cmljdCI7dmFyIGFjdGl2YXRlZFBvcHVwRGl2SUQ9IiIsbWFpblBvcHVwRGl2SUQ9IiIscG9wdXBPbkFmdGVyU3VibWl0Q2xvc2U9ITEsaXNQb3B1cEluaXRpYWxpemVkPSExOwpmdW5jdGlvbiBzaG93UG9wdXBXaWRnZXQoYSxiPSEwKXt2YXIgYz0hMT09PWI\/ITE6ITA7aWYoaXNTbXNUZXh0VXNGb3JtKCkmJmIpcmV0dXJuIHNob3dTbXNUZXh0VXNGb3JtKGMpLCExO2lmKCExPT09aXNQb3B1cEluaXRpYWxpemVkKXJldHVybiExO2E9YT9hOnt9O3NldHRpbmdzPXtzaG93TWFpblBvcHVwOiExLGRvTm90UmVkaXJlY3Q6ITEsZXZlbnRUeXBlOiJjbGljayIsZGVsYXk6ITF9OyQuZXh0ZW5kKHNldHRpbmdzLGEpO2E9c2V0dGluZ3MuZG9Ob3RSZWRpcmVjdDtiPXNldHRpbmdzLmV2ZW50VHlwZTtjPXNldHRpbmdzLmRlbGF5O3ZhciBkPTA8YWN0aXZhdGVkUG9wdXBEaXZJRC5sZW5ndGg\/YWN0aXZhdGVkUG9wdXBEaXZJRDohMTshMD09PXNldHRpbmdzLnNob3dNYWluUG9wdXAmJjA8bWFpblBvcHVwRGl2SUQubGVuZ3RoJiYoZD1tYWluUG9wdXBEaXZJRCk7aWYoZCYmMDxkLmxlbmd0aCkkKCIjIitkKS5wb3B1cGl6ZSgpLnNldFRyaWdnZXIoYikub3BlbihjKTtlbHNlIGlmKCJmdW5jdGlvbiI9PT0KdHlwZW9mIHNob3dQb3B1cFdpZGdldE9MRClzaG93UG9wdXBXaWRnZXRPTEQoITEpO2Vsc2UgaWYoITE9PT1hKTA8JCgiI3Byb21vU2VjdGlvbm5hYmxlZCIpLmxlbmd0aCYmIjAiIT0kKCIjcHJvbW9TZWN0aW9ubmFibGVkIikudmFsKCk\/d2luZG93LmxvY2F0aW9uLmhyZWY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/Ii9vdXItcHJvbW90aW9ucy5odG1sIjoiL3Byb21vdGlvbnMuaHRtbCI6d2luZG93LmxvY2F0aW9uLmhyZWY9Ii8iO2Vsc2UgcmV0dXJuITF9ZnVuY3Rpb24gcG9wdXBQb3N0TWVzc2FnZU9uQXV0b2F1YmFpbmUoKXtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7JC5wb3N0TWVzc2FnZSgiY2xvc2VQb3B1cCIsIioiLHBhcmVudCl9LDFFMyl9CmZ1bmN0aW9uIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplKGEsYixjLGQsZSxmLGcpe2lzUG9wdXBJbml0aWFsaXplZD0hMDtjJiYobWFpblBvcHVwRGl2SUQ9ZitkKTtyZXR1cm4gYj09YSYmY3x8InJlc2V0Ij09YiYmYz8oYWN0aXZhdGVkUG9wdXBEaXZJRD1mK2QsInVzZWRjYXJzLmh0bWwiIT1lfHxnPyJuZXdjYXJzLmh0bWwiIT1lfHxnPyEwOihjb25zb2xlLmxvZygicG9wdXAuanMgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUgLSBuZXdjYXJzIHJldHVybnMgZmFsc2UuIFBvcHVwIG1heSBiZSBjYW5jZWxsZWQuIiksITEpOih0aGlzLmNvbnNvbGUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygicG9wdXAuanMgcG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUgLSB1c2VkY2FycyAgcmV0dXJucyBmYWxzZS4gUG9wdXAgbWF5IGJlIGNhbmNlbGxlZC4iKSwhMSkpOiExfQpmdW5jdGlvbiBwb3B1cGNsb3NlUERGKGEsYil7JCgiI3BvcHVwZGl2cGRmIithKS5sZW5ndGgmJiQoIiNwb3B1cGRpdnBkZiIrYSkuY3NzKCJkaXNwbGF5Iiwibm9uZSIpOyQoIiNwb3B1cGRpZnBkZm1vZGFsIikubGVuZ3RoJiYkKCIjcG9wdXBkaWZwZGZtb2RhbCIpLnJlbW92ZSgpOyQoIiNwb3B1cGRpdnBkZmlmcmFtZSIpLmxlbmd0aCYmJCgiI3BvcHVwZGl2cGRmaWZyYW1lIikucmVtb3ZlKCk7YiYmcG9wdXBQb3N0TWVzc2FnZU9uQXV0b2F1YmFpbmUoKX1mdW5jdGlvbiBwcmludFBERklGcmFtZSgpe3dpbmRvdy5mcmFtZXMucG9wdXBkaXZwZGZpZnJhbWUucHJpbnRNZSgpfWZ1bmN0aW9uIHBvcHVwVHJpbShhKXtyZXR1cm4gYS5yZXBsYWNlKC9eXHMrfFxzKyQvZ20sIiIpfQpmdW5jdGlvbiBzaG93UG9wdXBXaWRnZXRBZGRWZWhpY2xlKGEpeyQoJ2lucHV0W25hbWU9InNlYXJjaGVkdmVoaWNsZSJdJykuZWFjaChmdW5jdGlvbigpeyQodGhpcykudmFsKGEpfSk7c2hvd1BvcHVwV2lkZ2V0KCl9ZnVuY3Rpb24gc2hvd1NwZWNpYWxTY2hlZHVsZU9ubG9hZCgpe3ZhciBhPSQoIiNzcGVjaWFsU2NoZWR1bGUiKTswPGEubGVuZ3RoJiZhLnBvcHVwaXplKHtzaG93b25sb2FkOiEwLGNvb2tpZU5hbWU6InNwU2NoZWR1bGVEaXNwbGF5ZWQiLGNvb2tpZUNyZWF0ZToib25PcGVuIixjbG9zZUJ1dHRvbjohMH0pfWZ1bmN0aW9uIHNob3dTcGVjaWFsU2NoZWR1bGUoKXskKCIjc3BlY2lhbFNjaGVkdWxlIikucG9wdXBpemUoKS5zZXRUcmlnZ2VyKCJjbGljayIpLm9wZW4oKX1mdW5jdGlvbiBzaG93VHJhZGVCb29zdFBvcHVwKCl7JCgiI1RyYWRlSW5CYXJQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKCkuc2V0VHJpZ2dlcigiY2xpY2siKS5vcGVuKCl9CmZ1bmN0aW9uIGlzU21zVGV4dFVzRm9ybSgpe2xldCBhPVsibmV3Y2FyZGV0YWlsLmh0bWwiLCJuZXdjYXJzLmh0bWwiXSxiPVsiY2FyZGV0YWlsLmh0bWwiLCJ1c2VkY2Fycy5odG1sIl07cmV0dXJuIjEiPT0kKCIjRGlzY291bnRQb3B1cE5ld1JlYmF0ZVNob3dUZXh0VXMiKS52YWwoKSYmYS5pbmNsdWRlcygkKCIjUEFHRUlEIikudmFsKCkpfHwiMSI9PSQoIiNEaXNjb3VudFBvcHVwVXNlZFJlYmF0ZVNob3dUZXh0VXMiKS52YWwoKSYmYi5pbmNsdWRlcygkKCIjUEFHRUlEIikudmFsKCkpPyEwOiExfWZ1bmN0aW9uIHNob3dTbXNUZXh0VXNGb3JtKGE9ITApeyQoIiNpc01vYmlsZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNNb2JpbGUiKS52YWwoKSYmITEhPT1hP2RlYWxlckxpbmVTbXMoKTpkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjc2xpZGVpdCAjb3Blbi1pdGVtIikuY2hlY2tlZD0hMH07Ci8qKiAvbS9qcy9tb3RvaW5zaWdodFNob3BQb3B1cC5qcyAqKi8KdmFyIF9fX2QyY19tb3RvaW5zaWdodFNob3BQb3B1cGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MTA6MzkiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX21vdG9pbnNpZ2h0U2hvcFBvcHVwanNfY19vbj0iMjAyNC0wMS0zMSAxNDozNzo1MCI7InVzZSBzdHJpY3QiO19fX2QyY19tb3RvaW5zaWdodFNob3BQb3B1cGpzX2Nfb249IjIwMjMtMDEtMTIgMTE6MzY6MjkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbW90b2luc2lnaHRTaG9wUG9wdXBqc19jX29uPSIyMDIzLTAxLTEyIDEwOjQ2OjEyIjsidXNlIHN0cmljdCI7X19fZDJjX21vdG9pbnNpZ2h0U2hvcFBvcHVwanNfY19vbj0iMjAyMS0xMi0xNSAxMjo0NDoyNyI7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG1vdG9pbnNpZ2h0U2hvcEluaXQoKXt9CmZ1bmN0aW9uIG1vdG9pbnNpZ2h0U2hvcE9wZW4oKXtpZigkKCIjbW90b2NvbW1lcmNlLXZlaGljbGUtbGluayIpLmxlbmd0aCl7dmFyIGE9IiI7c3dpdGNoKCEwKXtjYXNlICEhJCgiI21vdG9jb21tZXJjZS12ZWhpY2xlLWxpbmsiKS5hdHRyKCJocmVmIik6YT0kKCIjbW90b2NvbW1lcmNlLXZlaGljbGUtbGluayIpLmF0dHIoImhyZWYiKTticmVhaztjYXNlICEhJCgiLmpzLW1vdG9pbnNpZ2h0U2hvcFBvcHVwQ29udGFpbmVyIikuYXR0cigiZGF0YS1tb3RvaW5zaWdodHNob3BpZnJhbWV1cmwiKTphPSQoIi5qcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLmF0dHIoImRhdGEtbW90b2luc2lnaHRzaG9waWZyYW1ldXJsIik7YnJlYWs7Y2FzZSAhISQoIi5qcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciBhIikuYXR0cigiZGF0YS1tb3RvaW5zaWdodHNob3BpZnJhbWV1cmwiKTphPSQoIi5qcy1tb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciBhIikuYXR0cigiZGF0YS1tb3RvaW5zaWdodHNob3BpZnJhbWV1cmwiKTsKYnJlYWs7Y2FzZSAkKCIjbW90b2luc2lnaHRzaG9wc2NyaXB0dXJsIikmJjA8JCgiI21vdG9pbnNpZ2h0c2hvcHNjcmlwdHVybCIpLmxlbmd0aDphPSQoIiNtb3RvaW5zaWdodHNob3BzY3JpcHR1cmwiKS52YWwoKS5yZXBsYWNlKCJpbnRlZ3JhdGlvbi9pbnRlZ3JhdGlvbi5qcyIsInNlYXJjaC8\/Y29uZGl0aW9uPVVzZWQiKSwiMSI9PSgkKCIjbmV3U2VjdGlvbk92ZXJyaWRlIikudmFsKCl8fDApJiYoYT0kKCIjbW90b2luc2lnaHRzaG9wc2NyaXB0dXJsIikudmFsKCkucmVwbGFjZSgiaW50ZWdyYXRpb24vaW50ZWdyYXRpb24uanMiLCJzZWFyY2gvIikpfSQoIiNtb3RvaW5zaWdodHNob3BpZnJhbWUiKS5yZW1vdmUoKTsiIiE9YSYmMD09JCgiI21vdG9pbnNpZ2h0c2hvcGlmcmFtZSIpLmxlbmd0aCYmJCgiI21vdG9pbnNpZ2h0c2hvcGlmcmFtZWNvbnRhaW5lciIpLmFwcGVuZCgnPGlmcmFtZSBpZD0ibW90b2luc2lnaHRzaG9waWZyYW1lIiBzcmM9IicrYSsnIiBhbGxvd3RyYW5zcGFyZW5jeT0idHJ1ZSIgc3R5bGU9InRvcDowcHg7bGVmdDowcHg7d2lkdGg6MTAwJTtoZWlnaHQ6MTAwJTt6LWluZGV4OjEwMDE7Ij48L2lmcmFtZT4nKX19CmZ1bmN0aW9uIHNldEN1cnJlbnRNb3RvY29tbWVyY2VJZnJhbWVVcmwoYSl7JCgiI21vdG9jb21tZXJjZS12ZWhpY2xlLWxpbmsiKS5hdHRyKCJocmVmIixhKX07Ci8qKiAvbS9qcy9kMmNfYXNjX2dhNC5qcyAqKi8KdmFyIF9fX2QyY19kMmNhc2NnYTRqc19jX29uPSIyMDI2LTA1LTI4IDEyOjMwOjAzIjsndXNlIHN0cmljdCc7dmFyIGFzY1RvcENhckRldGFpbHM9ITEsYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQ9ITEsYXNjTGFzdEZpbHRlckNsaWNrPSExLGFzY0xhc3RDdGFDbGljaz0hMSxhc2NDb21tU3RhcnRGaXJlZD0hMTtmdW5jdGlvbiBkMmFzY1B1YmxpY2F0aW9uRGF0ZShkKXtpZigiIj09ZClyZXR1cm4iIjt2YXIgaD1uZXcgRGF0ZShkKTtkPSIiKyhoLmdldE1vbnRoKCkrMSk7dmFyIGs9IiIraC5nZXREYXRlKCk7aD1oLmdldEZ1bGxZZWFyKCk7MTA+cGFyc2VGbG9hdChkKSYmKGQ9IjAiK2QpOzEwPnBhcnNlRmxvYXQoaykmJihrPSIwIitrKTtyZXR1cm5bZCxrLGhdLmpvaW4oIi8iKX1mdW5jdGlvbiBlbnN1cmVUcnV0aHkoZCl7cmV0dXJuIGQ\/ZDoiIn0KZnVuY3Rpb24gYXNjVXBkYXRlVG9wQ2FyRGF0YShkKXtpZighMSE9PWQpe2xldCBoPWQyYXNjUHVibGljYXRpb25EYXRlKGVuc3VyZVRydXRoeShkLmRhdGVfbGlzdGluZykpLGs9ZC5tYWtlY2VydCsiIjthc2NUb3BDYXJEZXRhaWxzPXtpdGVtX2lkOmVuc3VyZVRydXRoeShkLk5JViksaXRlbV9udW1iZXI6ZW5zdXJlVHJ1dGh5KGQuaWQpLGl0ZW1fcHJpY2U6ZW5zdXJlVHJ1dGh5KGQucHJpY2UpLGl0ZW1fY29uZGl0aW9uOmVuc3VyZVRydXRoeShkLnZjYXRlZ29yeSkudG9Mb3dlckNhc2UoKSxpdGVtX3llYXI6ZW5zdXJlVHJ1dGh5KGQueWVhcikudG9Mb3dlckNhc2UoKSxpdGVtX21ha2U6ZW5zdXJlVHJ1dGh5KGQubWFrZSkudG9Mb3dlckNhc2UoKSxpdGVtX21vZGVsOmVuc3VyZVRydXRoeShkLm1vZGVsKS50b0xvd2VyQ2FzZSgpLGl0ZW1fdmFyaWFudDplbnN1cmVUcnV0aHkoZC52ZXJzaW9uKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY29sb3I6ZW5zdXJlVHJ1dGh5KGQuY29sb3IpLnRvTG93ZXJDYXNlKCksCml0ZW1fdHlwZTplbnN1cmVUcnV0aHkoZC5ib2R5VHlwZUlEKS50b0xvd2VyQ2FzZSgpLGl0ZW1fY2F0ZWdvcnk6ZW5zdXJlVHJ1dGh5KCIiKSxpdGVtX2Z1ZWxfdHlwZTplbnN1cmVUcnV0aHkoZC52Y2FyYnVyYW50KS50b0xvd2VyQ2FzZSgpLGl0ZW1faW52ZW50b3J5X2RhdGU6ZW5zdXJlVHJ1dGh5KGgpfTsiMjEiIT1rJiYiMCIhPWsmJmQyYXNjLnNldFZlaGljbGVTdGF0dXMoIkNQTyIpfWVsc2UgZD0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIiksYXNjVG9wQ2FyRGV0YWlscz17aXRlbV9jb25kaXRpb246Im5ldyIsaXRlbV95ZWFyOiQoImlucHV0W25hbWU9J3llYXInXSIsZCkudmFsKCksaXRlbV9tYWtlOiQoImlucHV0W25hbWU9J21ha2UnXSIsZCkudmFsKCksaXRlbV9tb2RlbDplbnN1cmVUcnV0aHkoJCgiaW5wdXRbbmFtZT0nbW9kZWwnXSIsZCkudmFsKCkpLnRvTG93ZXJDYXNlKCksaXRlbV90eXBlOiQoImlucHV0W25hbWU9J3ZlaGljbGVDYXRlZ29yeSddIixkKS52YWwoKX07CmNvbnNvbGUubG9nKCJHQTQgYXNjVG9wQ2FyRGV0YWlscyIsYXNjVG9wQ2FyRGV0YWlscyl9CmZ1bmN0aW9uIGQyYXNjUmVzb2x2ZVBhZ2VJZChkKXtkPWQucmVwbGFjZSgvPFwvP1tePl0rKD58JCkvZywiIik7aWYoZC5pbmNsdWRlcygic2k6dmxzIikpcmV0dXJuInNlYXJjaCBpbnZlbnRvcnkiO2lmKGQuaW5jbHVkZXMoIjpzaTp2ZWhpY2xlIGRldGFpbHMiKXx8ZC5pbmNsdWRlcygidmVoaWNsZSIpKXJldHVybiJ2ZHAiO2lmKGQuaW5jbHVkZXMoImN1c3RvbToiKSlyZXR1cm4iYmxvZyI7aWYoZC5pbmNsdWRlcygiZmluYW5jZSIpKXJldHVybiJjcmVkaXQiO2lmKGQuaW5jbHVkZXMoInNlcnZpY2U6cmVxdWVzdCBhcHBvaW50bWVudCIpKXJldHVybiJyZXF1ZXN0IGFwcG9pbnRtZW50IjtpZihkLmluY2x1ZGVzKCJzZXJ2aWNlOm9yZGVyIHBhcnRzIikpcmV0dXJuIm9yZGVyIHBhcnRzIjtpZihkLmluY2x1ZGVzKCJhYm91dCB1czpjb250YWN0IHVzIikpcmV0dXJuImNvbnRhY3QgdXMiO2lmKGQuaW5jbHVkZXMoIlVOS05PV04iKSl7aWYoL2J1aWxkLWFuZC1wcmljZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpfHwKL2NvbmZpZ3VyYXRpb24tZXQtcHJpeC8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJidWlsZCBhbmQgcHJpY2UiO2lmKC9wcmljZS1uZXcvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L3ByaXgtbmV1Zi8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJwcmljZSByZXF1ZXN0IjtpZigvYnJvY2h1cmVzLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSkpcmV0dXJuImJyb2NodXJlIjtpZigvYXV0by1qb2JzLy50ZXN0KHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSl8fC9lbXBsb2lzLWF1dG9tb2JpbGUvLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKSlyZXR1cm4iam9icyI7aWYoL291cnRlYW0vLnRlc3Qod2luZG93LmxvY2F0aW9uLnBhdGhuYW1lKXx8L2VxdWlwZS8udGVzdCh3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUpKXJldHVybiJvdXIgdGVhbSJ9cmV0dXJuIGR9CmZ1bmN0aW9uIGQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQsaCl7aD1oLnRvTG93ZXJDYXNlKCk7bGV0IGs9e307Zm9yKHZhciBsIGluIGQpa1tsLnRvTG93ZXJDYXNlKCldPWRbbF07bD0kKCJodG1sIikuYXR0cigibGFuZyIpO2Q9IiI7bD0iZW4iPT1sLnRvTG93ZXJDYXNlKCl8fCJlbmciPT1sLnRvTG93ZXJDYXNlKCk\/IkVOR0xJU0giOiJGUkVOQ0giO3ZvaWQgMCE9PWtbaF0mJnZvaWQgMCE9PWtbaF1bbF0mJihkPWtbaF1bbF0pO3JldHVybiBkfQpmdW5jdGlvbiBEMkFTQyhkKXtkLnBhZ2VJZE9yZz1kLnBhZ2VJZDtkLnBhZ2VJZD1kMmFzY1Jlc29sdmVQYWdlSWQoZC5wYWdlSWQpO2QuZGVhbGVyX25hbWU9JCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKTt2YXIgaD17c3RvcmVfbmFtZTpkLmRlYWxlcl9uYW1lLnRvTG93ZXJDYXNlKCksb2VtX2NvZGU6ZC5wYUNvZGUsb2VtX2JyYW5kOmQuY2xpZW50LGFmZmlsaWF0aW9uOiIiLGxhbmd1YWdlOmQudXNlckxhbmd1YWdlLGN1cnJlbmN5OiJjYWQiLHBhZ2VfdHlwZTpkLnBhZ2VJZCxpdGVtczpbXSxldmVudHM6W10sbWVhc3VyZW1lbnRfaWRzOlsiRy02R0VaMldXVDNMIl0scGxhdGZvcm1fY3VzdG9tOiIifSxrPXthc2NfY2xpY2tfdG9fY2FsbDpbImEucGhvbmUtbGluayIsImEucGhvbmUtYWN0aW9uIl0sYXNjX2N0YV9pbnRlcmFjdGlvbjoiLnYtY2FyZCBhOm5vdCgucGhvbmUtbGluayk7LmxlZnRfYm94IGE7I2Zvb3RlciBhOyNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZF9idG5fMTsjUHVsbG91dF9CdWlsZC1hbmQtUHJpY2U7I25ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIi5zcGxpdCgiOyIpLAphc2NfY3RhX2ludGVyYWN0aW9uOiIjcHJvbW9EaXNjb3ZlckJ1dHRvbiAuZGl2Q2FyUGF5bWVudENhbGN1bGF0b3IgI3NjcmF0Y2hhbmRzYXZlX2VtYmVkZGVkIC5sb2FuQ2FsY3VsYXRvclRyaWdnZXIgLm9mZmVyLWJ0biAuY3RQcm9tbyAudHJhZGVJbkJhcl9idG4iLnNwbGl0KCIgIiksYXNjX2N0YV9pbnRlcmFjdGlvbjpbIi5uZXdWZHBBY3Rpb25zIGEiLCIuY3RhLXRwbCBhIl0sYXNjX2NvbW1fZW5nYWdlbWVudDpbIi50ZXh0LXVzLWJ0biJdLGFzY19mb3JtX2VuZ2FnZW1lbnQ6WyJpbnB1dCIsInNlbGVjdCIsInRleHRhcmVhIl0sYXNjX21lZGlhX2ludGVyYWN0aW9uOlsiI25ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIiwiaW1nIl0sYXNjX21lbnVfaW50ZXJhY3Rpb246WyIudXBfbWVudSBhIl0sYXNjX2VsZW1lbnRfY29uZmlndXJhdGlvbjpbIi5sYW5ndWFnZUJhciBhIl19LGw9ITE7Y29uc29sZS5sb2coIkQyQVNDIExvYWRpbmcuLi4iLGQpO3ZhciBnPW5ldyBmdW5jdGlvbigpe3ZhciBlPQp0aGlzO2Uuc2V0VmVoaWNsZVN0YXR1cz1mdW5jdGlvbihiKXtsZXQgYT0kKCIjYXNjX2RpZ2l0YWxfZGF0YV9pbmZvIGlucHV0W25hbWU9dmVoaWNsZVN0YXR1c10iKTtpZigiIiE9JCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPSdtYWtlJ10iKS52YWwoKSl7bGV0IGM9d2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCk7YS52YWwoL3VzZWQvLnRlc3QoYyl8fC9vY2Nhc2lvbi8udGVzdChjKT8iVXNlZCI6Ik5ldyIpfSExIT09YiYmYS52YWwoYil9O2Uuc2V0RGlnaXRhbERhdGE9ZnVuY3Rpb24oYixhKXtsZXQgYz1lLmFkZEV2ZW50KGIsYSk7aWYoITE9PT1jKXJldHVybiExO3ZvaWQgMCE9PWMuZm9ybV9uYW1lJiYoYy5mb3JtX25hbWU9Yy5mb3JtX25hbWUucmVwbGFjZSgibWVuc3VhbGl0P3MiLCJtZW5zdWFsaXRlcyIpLGMuZm9ybV9uYW1lPWMuZm9ybV9uYW1lLnJlcGxhY2UoInY\/aGljdWxlIiwidmVoaWN1bGUiKSxjLmZvcm1fbmFtZT1jLmZvcm1fbmFtZS5yZXBsYWNlKCI\/dGFwZXMiLAoiZXRhcGVzIiksYy5mb3JtX25hbWU9IkQyQyAiK2MuZm9ybV9uYW1lKTt2b2lkIDAhPT1jLmZvcm1fbGFuZyYmKGMuZm9ybV9sYW5nPWUuc3RhbmRhcmRpemVGb3JtTGFuZyhjLmZvcm1fbGFuZykpO2guZXZlbnRzLnVuc2hpZnQoSlNPTi5zdHJpbmdpZnkoe25hbWU6YixwYXJhbXM6Y30pKTsidmRwIj09Yy5wYWdlX3R5cGUmJihjLnBhZ2VfdHlwZT0iaXRlbSIpOyJzaG93cm9vbSI9PWMucGFnZV90eXBlJiYoYy5wYWdlX3R5cGU9Iml0ZW0iKTsic2VhcmNoIGludmVudG9yeSI9PWMucGFnZV90eXBlJiYoYy5wYWdlX3R5cGU9Iml0ZW1saXN0Iik7bGV0IGY9ZS5nZXRFdmVudFR5cGUoYik7ZS5yZXBvcnQoZixiLGMsaCk7ImFzY19mb3JtX3N1Ym1pc3Npb24iPT1iJiYoZS5zZXREaWdpdGFsRGF0YSgiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyIsYSksZS5zZXREaWdpdGFsRGF0YSgiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyIsYSksZS5zZXREaWdpdGFsRGF0YSgiRDJDX0xlYWRzIiwKYSksc2V0VGltZW91dChmdW5jdGlvbigpe2FzY0xhc3RDdGFDbGljaz0hMX0sMTI1MCkpOyJhc2NfY29tbV9zdWJtaXNzaW9uIj09YiYmZS5zZXREaWdpdGFsRGF0YSgiYXNjX2NvbW1fc3VibWlzc2lvbl9zYWxlcyIsYSk7ImFzY19mb3JtX2VuZ2FnZW1lbnQiPT1iJiYhMT09PWFzY0NvbW1TdGFydEZpcmVkJiZhIGluc3RhbmNlb2YgalF1ZXJ5JiYwPGEuY2xvc2VzdCgiI1NsaWRlV2lkZ2V0Rm9ybSIpLmxlbmd0aCYmKGFzY0NvbW1TdGFydEZpcmVkPSEwLGUuc2V0RGlnaXRhbERhdGEoImFzY19jb21tX3N0YXJ0IixhKSl9O2UuZ2V0RXZlbnRUeXBlPWZ1bmN0aW9uKGIpe2xldCBhPSJlbmdhZ2VtZW50Ijtzd2l0Y2goYil7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbiI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlc19hcHB0IjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NlcnZpY2UiOmE9CiJjb252ZXJzaW9uIn1yZXR1cm4gYX07ZS5iaW5kRWxlbWVudHM9ZnVuY3Rpb24oYixhKXskLmVhY2goYSxmdW5jdGlvbihjLGYpeyQoZikuZWFjaChmdW5jdGlvbigpe2NvbnN0IG09JCh0aGlzKSxuPSJhc2NfZm9ybV9lbmdhZ2VtZW50Ij09Yj8iYmx1ciI6ImNsaWNrIjskKHRoaXMpLm9uKG4sZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKGIsbSl9KX0pfSl9O2UuYWRkRXZlbnQ9ZnVuY3Rpb24oYixhKXt2YXIgYz17ZXZlbnRfb3duZXI6ImQyYyIscGFnZV90eXBlOmQucGFnZUlkLHBhZ2VfdXJsOndpbmRvdy5sb2NhdGlvbi5ocmVmLGV2ZW50X2xhYmVsOmIsZXZlbnRfY2F0ZWdvcnk6JCgiI2FzY19kaWdpdGFsX2RhdGFfaW5mbyBpbnB1dFtuYW1lPXZlaGljbGVTdGF0dXNdIikudmFsKCl9LGY9ITEhPT1hc2NMYXN0Q3RhQ2xpY2s\/ZS5DdGFUZXh0UGFyc2VyKGFzY0xhc3RDdGFDbGljayk6IiI7c3dpdGNoKGIpe2Nhc2UgImFzY19wYWdldmlldyI6YnJlYWs7Y2FzZSAiYXNjX2NsaWNrX3RvX2NhbGwiOmY9CmEuaGFzQ2xhc3MoInBob25lLWxpbmsiKT9hLnRleHQoKTphLmF0dHIoImhyZWYiKTtmPWYucmVwbGFjZSgvW14wLTlcK10vZywiIik7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fcGhvbmVfbnVtYmVyOmYsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSksYWZmaWxpYXRpb246IiJ9KTticmVhaztjYXNlICJhc2NfY3RhX2ludGVyYWN0aW9uIjpmPWUuQ3RhVGV4dFBhcnNlcihhKTtlLmlzQ3RhQ2xpY2soYSkmJihhc2NMYXN0Q3RhQ2xpY2s9YSk7Yz1PYmplY3QuYXNzaWduKHt9LGMse2VsZW1lbnRfdGV4dDpmLGVsZW1lbnRfb3JkZXI6IiIsZWxlbWVudF9jb2xvcjoiIixlbGVtZW50X3R5cGU6ZS5nZXRFbGVtZW50VHlwZShhKSxldmVudF9hY3Rpb246IiIsZXZlbl9hY3Rpb25fcmVzdWx0OmEuYXR0cigiaHJlZiIpPyJyZWRpcmVjdCI6InBvcHVwIixsaW5rX3VybDphLmF0dHIoImhyZWYiKT9hLmF0dHIoImhyZWYiKToiIn0pO2JyZWFrO2Nhc2UgImFzY19mb3JtX2VuZ2FnZW1lbnQiOmY9CmUuZ2V0TGVhZFR5cGVGb3JtTmFtZShhKTtpZighMT09PWYpcmV0dXJuITE7bGV0IG09ZS5hc2NUZXh0UmVwbGFjZXIoYS52YWwoKSksbj1lLmdldEQyY0RlcGFydG1lbnQoYSk7Yz1PYmplY3QuYXNzaWduKHt9LGMse2VsZW1lbnRfdGV4dDptLGNvbW1fdHlwZToiZm9ybSIsY29tbV9zdGF0dXM6InN0YXJ0IixkZXBhcnRtZW50Om4sZm9ybV9uYW1lOmYsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDpufSk7YnJlYWs7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiZm9ybSIsY29tbV9vdXRjb21lOiJjbG9zZSIsc3VibWlzc2lvbl9pZDoiIixlbGVtZW50X3RleHQ6InN1Ym1pdCIsY3RhX3RleHQ6ZixjdXN0b21lcl9waG9uZTphLmNvbmZpcm1fcGhvbmVfbnVtYmVyLGN1c3RvbWVyX2VtYWlsOmEuY29uZmlybV9lbWFpbCxkZXBhcnRtZW50OmUuZ2V0RDJjRGVwYXJ0bWVudChhKSwKZm9ybV9uYW1lOmEubGVhZFR5cGUsZm9ybV90eXBlOmUuZ2V0Rm9ybVR5cGUoYSksZm9ybV9sYW5nOiQoImlucHV0W25hbWU9J2xhbmcnXSIpLnZhbCgpLGZvcm1fZGVwdDplLmdldEQyY0RlcGFydG1lbnQoYSl9KTticmVhaztjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3BhcnRzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzIjpjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzX2FwcHQiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZSI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlX2FwcHQiOmNhc2UgIkQyQ19MZWFkcyI6YS5jb25maXJtX3Bob25lX251bWJlcj12b2lkIDA9PT1hLmNvbmZpcm1fcGhvbmVfbnVtYmVyPyIiOmEuY29uZmlybV9waG9uZV9udW1iZXI7YS5jb25maXJtX2VtYWlsPXZvaWQgMD09PWEuY29uZmlybV9lbWFpbD8iIjphLmNvbmZpcm1fZW1haWw7Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fdHlwZToiZm9ybSIsCmNvbW1fb3V0Y29tZTplLmdldEZvcm1PdXRjb21lKGIpLHN1Ym1pc3Npb25faWQ6IiIsZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKCJzdWJtaXQiKSxjdGFfdGV4dDpmLGN1c3RvbWVyX3Bob25lOmEuY29uZmlybV9waG9uZV9udW1iZXIsY3VzdG9tZXJfZW1haWw6YS5jb25maXJtX2VtYWlsLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGZvcm1fbmFtZTphLmxlYWRUeXBlLGZvcm1fdHlwZTplLmdldEZvcm1UeXBlKGEpLGZvcm1fbGFuZzokKCJpbnB1dFtuYW1lPSdsYW5nJ10iKS52YWwoKSxmb3JtX2RlcHQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpfSk7YnJlYWs7Y2FzZSAiRDJDX0Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Yz17Zm9ybV9maWxsZWQ6IlllcyJ9O2JyZWFrO2Nhc2UgImFzY19lbGVtZW50X2NvbmZpZ3VyYXRpb24iOmM9dm9pZCAwIT09YS5ldmVudF9hY3Rpb24\/T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OmEuZXZlbnRfYWN0aW9uX3Jlc3VsdCwKZXZlbnRfYWN0aW9uOmEuZXZlbnRfYWN0aW9uLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3N0YXRlOmEuZmlsdGVySW5mby5zdGF0ZSxlbGVtZW50X3R5cGU6InNlYXJjaCI9PWEuZXZlbnRfYWN0aW9uPyJmaWx0ZXIiOiJzb3J0IixlbGVtZW50X3N1YnR5cGU6YS5maWx0ZXJJbmZvLnR5cGUsZWxlbWVudF90aXRsZTphLmZpbHRlckluZm8ubGFiZWwsZWxlbWVudF90ZXh0OmEuZmlsdGVySW5mby50aXRsZSxlbGVtZW50X3ZhbHVlOmEuZmlsdGVySW5mby52YWx1ZSxlbGVtZW50X2NvbG9yOiIiLGVsZW1lbnRfcG9zaXRpb246IiIsZWxlbWVudF9vcmRlcjoiIn0pOk9iamVjdC5hc3NpZ24oe30sYyx7ZXZlbnRfYWN0aW9uX3Jlc3VsdDoibGFuZ3VhZ2UiLGV2ZW50X2FjdGlvbjoiY2xpY2siLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3N0YXRlOjAsZWxlbWVudF90eXBlOiJsYW5ndWFnZSB0b2dnbGUsIixlbGVtZW50X3N1YnR5cGU6ImJ1dHRvbiIsZWxlbWVudF90aXRsZTplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksCmVsZW1lbnRfdGV4dDplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF92YWx1ZTplLmFzY1RleHRSZXBsYWNlcihhLnRleHQoKSksZWxlbWVudF9jb2xvcjoiIixlbGVtZW50X3Bvc2l0aW9uOiIiLGVsZW1lbnRfb3JkZXI6IiJ9KTticmVhaztjYXNlICJhc2NfbWVkaWFfaW50ZXJhY3Rpb24iOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtldmVudF9hY3Rpb25fcmVzdWx0OiIiLGFmZmlsaWF0aW9uOiIiLG1lZGlhX3R5cGU6IiIsbGlua191cmw6IiIsY3JlYXRpdmVfbmFtZToiIn0pO2JyZWFrO2Nhc2UgImFzY19tZW51X2ludGVyYWN0aW9uIjpjPU9iamVjdC5hc3NpZ24oe30sYyx7ZWxlbWVudF90ZXh0OmUuYXNjVGV4dFJlcGxhY2VyKGEudGV4dCgpKSxlbGVtZW50X3N1YnR5cGU6Im1lZ2FfbWVudSIsZWxlbWVudF90eXBlOmEuY2xvc2VzdCgibGkiKS5hdHRyKCJkYXRhLWlkIiksZXZlbnRfYWN0aW9uOiJjbGljayJ9KTticmVhaztjYXNlICJhc2NfcmV0YWlsX3Byb2Nlc3MiOmM9Ck9iamVjdC5hc3NpZ24oe30sYyx7Zmxvd19uYW1lOiJmaW5hbmNlIixlbGVtZW50X3RpdGxlOiIiLGZsb3dfb3V0Y29tZToicHJvY2VlZCIsaXRlbV9wYXltZW50OiJmaW5hbmNlIixmbG93X3N0YWdlOiIifSk7YnJlYWs7Y2FzZSAiYXNjX3NwZWNpYWxfb2ZmZXIiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtwcm9tb3Rpb25fbmFtZTokKCJoMjpmaXJzdC1jaGlsZCIsYSkubGVuZ3RoP2UuYXNjVGV4dFJlcGxhY2VyKCQoImgyOmZpcnN0LWNoaWxkIixhKS50ZXh0KCkpOiJEZWFsZXIgUHJvbW8iLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLHByb2R1Y3RfbmFtZToiIixlbGVtZW50X3Bvc2l0aW9uOiJmbG9hdGluZyIsZmxvd19vdXRjb21lOiJzdGFydCJ9KTticmVhaztjYXNlICJhc2NfY29tbV9lbmdhZ2VtZW50IjpjPU9iamVjdC5hc3NpZ24oe30sYyx7Y29tbV9zdGF0dXM6InN0YXJ0Iixjb21tX3R5cGU6InNtcyIscHJvZHVjdF9uYW1lOiJkMmNfdGV4dCIsZXZlbnRfb3duZXI6ImQyYyJ9KTsKYnJlYWs7Y2FzZSAiYXNjX2NvbW1fc3VibWlzc2lvbiI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fc3RhdHVzOiJjcm1fdXBkYXRlIixjb21tX3R5cGU6InNtcyIscHJvZHVjdF9uYW1lOiJkMmNfdGV4dCIsZXZlbnRfb3duZXI6ImQyYyIsZGVwYXJ0bWVudDplLmdldEQyY0RlcGFydG1lbnQoYSl9KTticmVhaztjYXNlICJhc2NfY29tbV9zdGFydCI6Yz1PYmplY3QuYXNzaWduKHt9LGMse2NvbW1fc3RhdHVzOiJlbmdhZ2UiLGNvbW1fdHlwZToic21zIixwcm9kdWN0X25hbWU6ImQyY190ZXh0IixldmVudF9vd25lcjoiZDJjIn0pO2JyZWFrO2Nhc2UgImFzY19jb21tX3N1Ym1pc3Npb25fc2FsZXMiOmM9T2JqZWN0LmFzc2lnbih7fSxjLHtjb21tX3R5cGU6ImNoYXQiLGFmZmlsaWF0aW9uOiJuYXRpdmUiLGRlcGFydG1lbnQ6ZS5nZXREMmNEZXBhcnRtZW50KGEpLGFmZmlsaWF0aW9uX2lkOiJtdWx0aS11c2VyIixjb21tX3N0YXR1czoiY3JtX3VwZGF0ZSIsZWxlbWVudF9wb3NpdGlvbjoicG9wLXVwIn0pOwpicmVhaztkZWZhdWx0OnJldHVybiBjb25zb2xlLmxvZygiRDJBU0MgRVJST1IoQ09ERTowMDEpIixiLGEpLCExfSExIT09YXNjVG9wQ2FyRGV0YWlscyYmIkQyQ19Gb3JtX3N1Ym1pc3Npb25fc2FsZXMiIT1iJiYoYz1PYmplY3QuYXNzaWduKHt9LGMsYXNjVG9wQ2FyRGV0YWlscykpO2NvbnNvbGUubG9nKCJHQTQgRmluYWwgRGlnaXRhbCBEYXRhIixjKTtyZXR1cm4gY307ZS5pc0N0YUNsaWNrPWZ1bmN0aW9uKGIpe2xldCBhPSExO2IgaW5zdGFuY2VvZiBqUXVlcnkmJigwPGIuY2xvc2VzdCgiLm5ld1ZkcEFjdGlvbnMiKS5sZW5ndGgmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmN0YS10cGwiKS5sZW5ndGgmJihhPSEwKSwicHJvbW9EaXNjb3ZlckJ1dHRvbiI9PWIuYXR0cigiaWQiKSYmKGE9ITApLGIuaGFzQ2xhc3MoImRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLmRpdkNhclBheW1lbnRDYWxjdWxhdG9yIikubGVuZ3RoJiYoYT0hMCksMDxiLmNsb3Nlc3QoIiNzY3JhdGNoYW5kc2F2ZV9lbWJlZGRlZCIpLmxlbmd0aCYmCihhPSEwKSwic2NyYXRjaGFuZHNhdmVfZW1iZWRkZWQiPT1iLmF0dHIoImlkIikmJihhPSEwKSxiLmhhc0NsYXNzKCJsb2FuQ2FsY3VsYXRvclRyaWdnZXIiKSYmKGE9ITApLDA8Yi5jbG9zZXN0KCIubG9hbkNhbGN1bGF0b3JUcmlnZ2VyIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygiY3RQcm9tbyIpJiYoYT0hMCksMDxiLmNsb3Nlc3QoIi5jdFByb21vIikubGVuZ3RoJiYoYT0hMCksYi5oYXNDbGFzcygib2ZmZXItYnRuIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLm9mZmVyLWJ0biIpLmxlbmd0aCYmKGE9ITApLGIuaGFzQ2xhc3MoInRyYWRlSW5CYXJfYnRuIikmJihhPSEwKSwwPGIuY2xvc2VzdCgiLnRyYWRlSW5CYXJfYnRuIikubGVuZ3RoJiYoYT0hMCksIlRSQURFSU4iPT1iLmF0dHIoImRhdGEtaWQiKSYmKGE9ITApKTtyZXR1cm4gYX07ZS5zdGFuZGFyZGl6ZUZvcm1MYW5nPWZ1bmN0aW9uKGIpe3ZvaWQgMD09PWImJiQoImh0bWwiKS5hdHRyKCJsYW5nIik7Yj1iLnRvTG93ZXJDYXNlKCk7CiJlbmciPT1iJiYoYj0iZW4iKTsiZW5nbGlzaCI9PWImJihiPSJlbiIpOyJmcm4iPT1iJiYoYj0iZnIiKTsiZnJlbmNoIj09YiYmKGI9ImZyIik7ImVuIiE9YiYmImZyIiE9YiYmKGI9ImVuIik7cmV0dXJuIGJ9O2UuQ3RhVGV4dFBhcnNlcj1mdW5jdGlvbihiKXtkLnBhZ2VJZC50b0xvd2VyQ2FzZSgpO2xldCBhPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS50b0xvd2VyQ2FzZSgpLGM9IiI7aWYoL25ld1wvaW52ZW50b3J5XC9zZWFyY2gvLnRlc3QoYSl8fC9uZXVmc1wvaW52ZW50YWlyZVwvcmVjaGVyY2hlLy50ZXN0KGEpKWMrPSJEMkMgQ1RBTSAtIE5ldyBJbnZlbnRvcnkgU1JQOiAiO2Vsc2UgaWYoL25ld1wvaW52ZW50b3J5Ly50ZXN0KGEpfHwvbmV1ZnNcL2ludmVudGFpcmUvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IEludmVudG9yeSBWRFA6ICI7ZWxzZSBpZigvbmV3Ly50ZXN0KGEpfHwvbmV1ZnMvLnRlc3QoYSkpYys9IkQyQyBDVEFNIC0gTmV3IFNob3dSb29tIFZEUDogIjsKZWxzZSBpZigvdXNlZC8udGVzdChhKXx8L29jY2FzaW9uLy50ZXN0KGEpKWMrPSJEMkMgQ1RBTSAtIFVzZWQgSW52ZW50b3J5IFZEUDogIjtyZXR1cm4gYytlLmFzY1RleHRSZXBsYWNlcihiLnRleHQoKSl9O2UuZ2V0TGVhZFR5cGVGb3JtTmFtZT1mdW5jdGlvbihiKXtsZXQgYT0wPGIuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aD9iLmNsb3Nlc3QoImZvcm0iKS5hdHRyKCJpZCIpOmIuYXR0cigiaWQiKSxjPSExO2QucGFnZUlkLmluY2x1ZGVzKCJvcmRlciBwYXJ0cyIpJiYoYz0iUGFydHNSZXF1ZXN0Iik7ZC5wYWdlSWQuaW5jbHVkZXMoInRlc3QgZHJpdmUiKSYmKGM9IlRlc3REcml2ZSIpO2QucGFnZUlkLmluY2x1ZGVzKCJwcmljZSByZXF1ZXN0IikmJihjPSJQcmljZVJlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygiYnJvY2h1cmUiKSYmKGM9IkJyb2NodXJlc1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygicmVxdWVzdCBhcHBvaW50bWVudCIpJiYoYz0iU2VydmljZVJlcXVlc3QiKTsKZC5wYWdlSWQuaW5jbHVkZXMoInRpcmVzIikmJihjPSJUaXJlc1JlcXVlc3QiKTtkLnBhZ2VJZC5pbmNsdWRlcygiYm9keSBzaG9wIikmJihjPSJCb2R5U2hvcCIpO2QucGFnZUlkLmluY2x1ZGVzKCJyZWNhbGwiKSYmKGM9IlJlY2FsbHMiKTtpZihiIGluc3RhbmNlb2YgalF1ZXJ5JiYoMDxiLmNsb3Nlc3QoIi5kaXZTcGFuRmlsdGVycyIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIiNiYW5uZXJfc2VhcmNoX2Jhcl9jb250YWluZXIiKS5sZW5ndGgpKXJldHVybiExO2I9ZS5mb3JtRGF0YUJ5SWQoYik7cmV0dXJuITEhPT1iP2IuZm9ybU5hbWU6ITEhPT1jP2QyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCxjKToiVU5LTk9XTjogIithfTtlLmZvcm1EYXRhQnlJZD1mdW5jdGlvbihiKXtpZihiIGluc3RhbmNlb2YgalF1ZXJ5KXtsZXQgYT0wPGIuY2xvc2VzdCgiZm9ybSIpLmxlbmd0aD9iLmNsb3Nlc3QoImZvcm0iKS5hdHRyKCJpZCIpOmIuYXR0cigiaWQiKTt2b2lkIDA9PT1hJiYoMDwKYi5jbG9zZXN0KCIjY29udGFjdHBvcHVwIikubGVuZ3RoJiYoYT0iUmVxdWVzdCBmb3IgY29udGFjdCIpLDA8Yi5jbG9zZXN0KCIuY3JlZGl0U2NvcmVJbnB1dCIpLmxlbmd0aCYmKGE9ImNyZWRpdFNjb3JlIiksMDxiLmNsb3Nlc3QoIiNzY3JhdGNoQW5kU2F2ZVBvcHVwQ29udGFpbmVyX2JucCIpLmxlbmd0aCYmKGE9IlJlYmF0ZUNvdXBvbk5ld0JOUCIpLDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGFuZHNhdmVfdGV4dCIpLmxlbmd0aCYmKGE9IlJlYmF0ZUNvdXBvbiIpKTtpZihkLnBhZ2VJZC5pbmNsdWRlcygic2hvd3Jvb206Y29tcGFyZSIpJiZ2b2lkIDAhPT1hJiZhLmluY2x1ZGVzKCJmZWF0dXJlZFByb2R1Y3RfIikpcmV0dXJue2Zvcm1UeXBlOiJyZXNlYXJjaCIsZm9ybU5hbWU6IkNvbXBhcmVGb3JtIn07aWYoMDxiLmNsb3Nlc3QoIiNtdWx0aWZvcm1fZW1iZWRkZWQiKS5sZW5ndGgmJjA8Yi5jbG9zZXN0KCIjbXVsdGlmb3JtX2VtYmVkZGVkIikuZmluZCgiLm11bHRpZm9ybV9lbWJlZGRlZF9zdGVwMSIpLmxlbmd0aClyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLApmb3JtTmFtZToiRGlzY292ZXJPZmZlciJ9O3N3aXRjaChhKXtjYXNlICJtaW5pZm9ybSI6Y2FzZSAiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QifTtjYXNlICJsb2FuLWZvcm0iOnJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJQcmljZVJlcXVlc3QifTtjYXNlICJmb3JtRGVhbGVyQXBwb2ludG1lbnQiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsZm9ybU5hbWU6IkRlYWxlckFwcG9pbnRtZW50In07Y2FzZSAiU2xpZGVXaWRnZXRGb3JtIjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJTbGlkZVdpZGdldEZvcm0ifTtjYXNlICJjcmVkaXRTY29yZSI6cmV0dXJue2Zvcm1UeXBlOiJmaW5hbmNlX2NyZWRpdCIsZm9ybU5hbWU6IkNyZWRpdFJlcXVlc3RfU2hvcnQifTtjYXNlICJSZWJhdGVDb3Vwb25OZXdCTlAiOnJldHVybntmb3JtVHlwZToicHJlLW9yZGVyIiwKZm9ybU5hbWU6IlJlYmF0ZUNvdXBvbk5ld0JOUCJ9O2Nhc2UgImJhbm5lcl9zZWFyY2hfYmFyX3NlbGVjdF9ib2R5IjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJCYW5uZXJGb3JtIn07Y2FzZSAicGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCI6Y2FzZSAicGF5bWVudENhbGN1bGF0b3JUcmltU2VsZWN0IjpjYXNlICJwYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIjpjYXNlICJwYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IjpyZXR1cm57Zm9ybVR5cGU6ImZpbmFuY2VfY3JlZGl0Iixmb3JtTmFtZToiTW9udGhseVBheW1lbnRzIn07Y2FzZSAiY29udGFjdF9mb3JtIjpjYXNlICJjb250YWN0X2Zvcm0yIjpjYXNlICJjb250YWN0X2Zvcm0zIjpjYXNlICJSZXF1ZXN0IGZvciBjb250YWN0IjpyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJDb250YWN0UmVxdWVzdCJ9O2Nhc2UgInF1aWNrRW1haWxGb3JtIjpjYXNlICJtYWlsRXhwcmVzc1JlcXVlc3QiOnJldHVybntmb3JtVHlwZToiY29uc3VtZXJfY29udGFjdCIsCmZvcm1OYW1lOiJRdWlja0VtYWlsIn07Y2FzZSAidHJhZGluTWFrZSI6Y2FzZSAidHJhZGluWWVhciI6Y2FzZSAidHJhZGluTW9kZWwiOmNhc2UgInRyYWRpblRyaW0iOmNhc2UgInRyYWRlSW5CYXJQb3B1cEZvcm0iOmNhc2UgIlNlbGxDYXJGb3JtIjpyZXR1cm57Zm9ybVR5cGU6InJlc2VhcmNoIixmb3JtTmFtZToiUHJpY2VWZWhpY2xlIn19aWYoMDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keSIpLmxlbmd0aHx8MDxiLmNsb3Nlc3QoIi5zY3JhdGNoYm9keTEiKS5sZW5ndGh8fDA8Yi5jbG9zZXN0KCIuc2NyYXRjaGJvZHkyIikubGVuZ3RofHwwPGIuY2xvc2VzdCgiLnNjcmF0Y2hib2R5MyIpLmxlbmd0aClyZXR1cm57Zm9ybVR5cGU6ImNvbnN1bWVyX2NvbnRhY3QiLGZvcm1OYW1lOiJSZWJhdGVDb3Vwb25OZXcifTtpZigwPGIuY2xvc2VzdCgiI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyIikubGVuZ3RoKXJldHVybntmb3JtVHlwZToiZmluYW5jZV9jcmVkaXQiLGZvcm1OYW1lOiJNb250aGx5UGF5bWVudHMifX1yZXR1cm4hMX07CmUuY29tbVN1YkRhdGFQYXJzZXI9ZnVuY3Rpb24oYixhKXtsZXQgYz17Zm9ybV9uYW1lOiIiLGZvcm1fdHlwZToiIixmb3JtX2RlcHQ6IiIsZm9ybV9sYW5nOiIifTsvYXNjX2NvbW1fc3VibWlzc2lvbi8udGVzdChiKSYmIlNsaWRlV2lkZ2V0Rm9ybSI9PWEuY2xvc2VzdCgiZm9ybSIpLmF0dHIoImlkIikmJihjLmZvcm1fbmFtZT0iTGVhZDogQ2hhdCBTdWJtaXNzaW9uIik7cmV0dXJuIGN9O2UuYXNjVGV4dFJlcGxhY2VyPWZ1bmN0aW9uKGIpe2I9Yi5yZXBsYWNlKC8oXHJcbnxcbnxccnxcdCkvZ20sIiIpO2I9Yi5yZXBsYWNlKC88XC8\/W14+XSsoPnwkKS9nLCIiKTtyZXR1cm4gYj1iLnRyaW0oKX07ZS5oYXNoVGV4dD1mdW5jdGlvbihiKXtiPShuZXcgVGV4dEVuY29kZXIpLmVuY29kZShiLnRyaW0oKS50b0xvd2VyQ2FzZSgpKTtyZXR1cm4gY3J5cHRvLnN1YnRsZS5kaWdlc3QoIlNIQS0yNTYiLGIpLnRoZW4oYT0+QXJyYXkuZnJvbShuZXcgVWludDhBcnJheShhKSkubWFwKGM9PgpjLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLCIwIikpLmpvaW4oIiIpKX07ZS5nZXRGb3JtT3V0Y29tZT1mdW5jdGlvbihiKXtzd2l0Y2goYil7Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9wYXJ0cyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zYWxlcyI6Y2FzZSAiYXNjX2Zvcm1fc3VibWlzc2lvbl9zZXJ2aWNlIjpjYXNlICJEMkNfTGVhZHMiOnJldHVybiJjcm1fdXBkYXRlIjtjYXNlICJhc2NfZm9ybV9zdWJtaXNzaW9uX3NhbGVzX2FwcHQiOmNhc2UgImFzY19mb3JtX3N1Ym1pc3Npb25fc2VydmljZV9hcHB0IjpyZXR1cm4iYXBwdF9ib29rZWQifX07ZS5nZXREMmNEZXBhcnRtZW50PWZ1bmN0aW9uKGIpe2xldCBhPWQucGFnZUlkLnRvTG93ZXJDYXNlKCksYz13aW5kb3cubG9jYXRpb24ucGF0aG5hbWUudG9Mb3dlckNhc2UoKSxmPSJPVEhFUiI7L25ldWZzLy50ZXN0KGMpJiYoZj0iTkVXIik7L25ldy8udGVzdChjKSYmKGY9Ik5FVyIpOy9vY2Nhc2lvbi8udGVzdChjKSYmCihmPSJVU0VEIik7L3VzZWQvLnRlc3QoYykmJihmPSJVU0VEIik7YS5pbmNsdWRlcygiZmluYW5jZSIpJiYoZj0iRklOQU5DRSIpO2EuaW5jbHVkZXMoInJlcXVlc3QgYXBwb2ludG1lbnQiKSYmKGY9IlNFUlZJQ0UiKTthLmluY2x1ZGVzKCJwYXJ0cyIpJiYoZj0iU0VSVklDRSIpO2EuaW5jbHVkZXMoInRpcmVzIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygiYm9keSBzaG9wIikmJihmPSJTRVJWSUNFIik7YS5pbmNsdWRlcygiZmluYW5jZSBkZXBhcnRtZW50IikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygiY3JlZGl0IikmJihmPSJGSU5BTkNFIik7YS5pbmNsdWRlcygiY29udGFjdCB1cyIpJiYoZj0iU0FMRVMiKTthLmluY2x1ZGVzKCJyZWNhbGwiKSYmKGY9IlNFUlZJQ0UiKTtiIGluc3RhbmNlb2YgalF1ZXJ5JiYoMDxiLmNsb3Nlc3QoIiNmaW5hbmNlTXVsdGlzdGVwUG9wdXBDb250YWluZXIiKS5sZW5ndGgmJihmPSJGSU5BTkNFIiksImZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciI9PQpiLmF0dHIoImlkIikmJihmPSJGSU5BTkNFIiksMDxiLmNsb3Nlc3QoIiNTZWxsQ2FyRm9ybSIpLmxlbmd0aCYmKGY9IkZJTkFOQ0UiKSx2b2lkIDAhPT1iLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIpJiYoZj1iLmF0dHIoImRhdGEtZGVwYXJ0bWVudCIpKSk7cmV0dXJuIGZ9O2UuZ2V0Rm9ybVR5cGU9ZnVuY3Rpb24oYil7bGV0IGE9ZC5wYWdlSWQudG9Mb3dlckNhc2UoKTtpZihhLmluY2x1ZGVzKCJyZXF1ZXN0IGFwcG9pbnRtZW50IikpcmV0dXJuInNlcnZpY2VfYXBwb2ludG1lbnQiO2lmKGEuaW5jbHVkZXMoIm9yZGVyIHBhcnRzIil8fGEuaW5jbHVkZXMoIm9yZGVyIHRpcmVzIikpcmV0dXJuInBhcnRzIjtpZihhLmluY2x1ZGVzKCJib2R5IHNob3AiKSlyZXR1cm4iYm9keV9zaG9wIjtpZihhLmluY2x1ZGVzKCJmaW5hbmNlIGRlcGFydG1lbnQiKXx8YS5pbmNsdWRlcygiY3JlZGl0IikpcmV0dXJuImNyZWRpdCI7Yj1lLmZvcm1EYXRhQnlJZChiKTtyZXR1cm4hMSE9PWI\/Yi5mb3JtVHlwZToKImNvbnN1bWVyX2NvbnRhY3QifTtlLmdldEVsZW1lbnRUeXBlPWZ1bmN0aW9uKGIpe3JldHVybiJ0b3BCYW5uZXJJbWFnZSI9PWIuYXR0cigiaWQiKXx8MDxiLmNsb3Nlc3QoIiN0b3BCYW5uZXJJbWFnZSIpLmxlbmd0aD8iYmFubmVyIjowPGIuY2xvc2VzdCgiLmhlYWRlci1pbWFnZS13cmFwcGVyIikubGVuZ3RoPyJoZWFkZXIiOjA8Yi5jbG9zZXN0KCIubGFuZ3VhZ2VCYXIiKS5sZW5ndGg\/ImFjY2Vzc2liaWxpdHlfdG9vbCI6MDxiLmhhcygiLmRlYWxlck1hcExpbmsiKS5sZW5ndGg\/Im1hcCI6MDxiLmNsb3Nlc3QoIi5zbGlkZXMiKS5sZW5ndGg\/ImdhbGxlcnkiOjA8Yi5jbG9zZXN0KCIudXNlZFZkcEFjdGlvbnMiKS5sZW5ndGg\/ImRpZ2l0YWxfcmV0YWlsaW5nX3Rvb2wiOiJQdWxsb3V0X0J1aWxkLWFuZC1QcmljZSI9PWIuYXR0cigiLnVzZWRWZHBBY3Rpb25zIik\/ImJhbm5lciI6Im5ld1ZkcEZ1bGx3aWR0aFZpZGVvSWZyYW1lIj09Yi5hdHRyKCIudXNlZFZkcEFjdGlvbnMiKT8KInZpZGVvIjoiZGlnaXRhbF9yZXRhaWxpbmcifTtlLmdldFZlaGljbGVKU09OPWZ1bmN0aW9uKGIsYSl7JC5nZXQoIi9qcy9qc29uLyIrYisiLmpzb24iKS5kb25lKGZ1bmN0aW9uKGMpe2MuaXRlbV9udW1iZXI9YjtpZigiIiE9YSYmdm9pZCAwIT09YSl3aW5kb3dbYV0oYyk7cmV0dXJuIGN9KX07ZS5yZXBvcnQ9ZnVuY3Rpb24oYixhLGMsZil7aWYodm9pZCAwPT09ZC5zdWJfZ2E0fHwiTiI9PWQuc3ViX2dhNCljPU9iamVjdC5hc3NpZ24oe30sYyx7c2VuZF90bzoiRy1aNVE4WjVDN0tGIn0pO2lmKCEwPT09bCYmImFzY19mb3JtX2VuZ2FnZW1lbnQiPT1hKXJldHVybiExO2d0YWcoImV2ZW50IixhLGMpO2w9ITA7c2V0VGltZW91dChmdW5jdGlvbigpe2w9ITF9LDFFMyl9O3JldHVybiBlfTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Zy5zZXRWZWhpY2xlU3RhdHVzKCExKTsidmRwIj09ZC5wYWdlSWQmJigwPCQoIiN0b3BjYXJpZCIpLmxlbmd0aCYmIiIhPSQoIiN0b3BjYXJpZCIpLnZhbCgpJiYKIjAiIT0kKCIjdG9wY2FyaWQiKS52YWwoKT9nLmdldFZlaGljbGVKU09OKCQoIiN0b3BjYXJpZCIpLnZhbCgpLCJhc2NVcGRhdGVUb3BDYXJEYXRhIik6YXNjVXBkYXRlVG9wQ2FyRGF0YSghMSkpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXskKGZ1bmN0aW9uKGIpe2cuc2V0RGlnaXRhbERhdGEoImFzY19wYWdldmlldyIse30pfSl9LDFFMyk7JC5lYWNoKGssZnVuY3Rpb24oYixhKXtnLmJpbmRFbGVtZW50cyhiLGEpfSwhMSk7JCgiLnJldmVhbC1tb2RhbCIpLm9uZSgicG9wdXBpemVyLm9uT3BlbiIsZnVuY3Rpb24oYil7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3NwZWNpYWxfb2ZmZXIiLCQoYi50YXJnZXQpKTtnLmJpbmRFbGVtZW50cygiYXNjX2Zvcm1fZW5nYWdlbWVudCIsWyQoYi50YXJnZXQpLmZpbmQoImZvcm0gaW5wdXQsIGZvcm0gc2VsZWN0LCBmb3JtIHRleHRhcmVhIildKX0pO3NldFRpbWVvdXQoKCk9PnskKCJhW2RhdGEtbGVhZC10cmlnZ2VyPSdEZWFsZXJBcHBvaW50bWVudCddIikub24oImNsaWNrIiwKZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKCJhc2Nfc3BlY2lhbF9vZmZlciIsJCgiI21vZGFsRGVhbGVyQXBwb2ludG1lbnQiKSl9KTskKCJhW2RhdGEtbGVhZC10cmlnZ2VyPSdQYXlwYWxQYXltZW50J10iKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX3NwZWNpYWxfb2ZmZXIiLCQoIiNtb2RhbFBheXBhbFBheW1lbnQiKSl9KX0sMUUzKTswPCQoIiNmbHRTb3J0SWQiKS5sZW5ndGgmJihhc2NMYXN0U2VhcmNoRmlsdGVyU29ydD0kKCIjZmx0U29ydElkIC5kaXZBY3Rpb25XcmFwcGVyIC5kaXZMYWJlbCIpLmh0bWwoKSk7aWYoInVuZGVmaW5lZCIhPT10eXBlb2Ygd2luZG93LkFic3RyYWN0VXNlZFNycE9iamVjdCl7dmFyIGU9bmV3IEFic3RyYWN0VXNlZFNycE9iamVjdCh7bmFtZToiZDJjX2hvbmRhX2d0bSJ9KTtlLmFkZFVzZWRTcnBFdmVudE9ic2VydmVyKCJwcm94eSIsZnVuY3Rpb24oYil7aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgYi5jbWQmJgoicmVxdWVzdCI9PT1iLmNtZCYmITEhPT1iLmRhdGEpe2xldCBhPWIuZGF0YS5maWx0ZXJTdGF0ZS5maWx0ZXJTZWFyY2g7c2V0VGltZW91dChmdW5jdGlvbigpe2EucmVzdWx0cz1iLmRhdGEuZmlsdGVyU3RhdGUuY291bnRTZWFyY2hSZXN1bHRzO2EudHlwZWRTZWFyY2g9Yi5kYXRhLmZpbHRlclN0YXRlLnR5cGVkU2VhcmNoO2EuZXZlbnRfYWN0aW9uX3Jlc3VsdD0ic2VhcmNoIjthLmV2ZW50X2FjdGlvbj0ic2VhcmNoIjthLmZpbHRlckluZm89YXNjTGFzdEZpbHRlckNsaWNrO2FzY0xhc3RGaWx0ZXJDbGljaz0hMTtPYmplY3Qua2V5cyhhKS5pbmNsdWRlcygic29ydCIpJiZhc2NMYXN0U2VhcmNoRmlsdGVyU29ydCE9YS5zb3J0WzBdJiYoYXNjTGFzdFNlYXJjaEZpbHRlclNvcnQ9YS5zb3J0WzBdLGEuZXZlbnRfYWN0aW9uPSJzb3J0Iik7Zy5zZXREaWdpdGFsRGF0YSgiYXNjX2VsZW1lbnRfY29uZmlndXJhdGlvbiIsYSl9LDEwMCl9fSk7ZS5pbml0VXNlZFNycE9ic2VydmVyKCl9JChkb2N1bWVudCkub24oInVzZWRTcnBGaWx0ZXJzLm9uQ2hhbmdlIiwKImJvZHkiLChiLGEpPT57Yj0kKCIjIithLmlkKTtiPSQoIi5mbHRUaXRsZSIsYikudGV4dCgpO2xldCBjPWEudmFsdWU7dmFyIGY9IiI7bGV0IG09InRleHRfc2VhcmNoIjthLnZhbHVlJiZhLnZhbHVlLnRvU3RyaW5nKCkuaW5jbHVkZXMoIjo6Iik\/KG09ImJ1dHRvbiIsZj1hLnZhbHVlLnNwbGl0KCI6OiIpLGEudmFsdWU9ZlswXSxmPWZbMV0pOmEudmFsdWUmJmEudmFsdWUudG9TdHJpbmcoKS5pbmNsdWRlcygiLCIpJiYobT0icmFuZ2Vfc2xpZGVyIik7YXNjTGFzdEZpbHRlckNsaWNrPXtpZDphLmlkLHRpdGxlOmEubGFiZWwsdmFsdWU6YS52YWx1ZSxvcmdfdmFsdWU6YyxzdGF0ZTpmLHR5cGU6bSxsYWJlbDpifX0pOyQoImJvZHkiKS5vbigiZW1haWxIYW5kbGVyLmVtYWlsU2VudCIsZnVuY3Rpb24oYixhKXtjb25zb2xlLmxvZygiRDJBU0MgRW1haWwgU2VudCBUcmlnZ2VyIixiLGEpO2lmKHZvaWQgMCE9PWEuZGV0YWlsLmxlYWRUeXBlKXtiPWEuZGV0YWlsLmxlYWRUeXBlO2lmKGIuaW5jbHVkZXMoIkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsdGlzdGVwKSIpfHwKYi5pbmNsdWRlcygiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQgKFBsdXMiKXx8KGEuZGV0YWlsLm1haWxJZHx8IiIpLnN0YXJ0c1dpdGgoIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiKSlyZXR1cm4hMTtiLmluY2x1ZGVzKCJMZWFkIDogRGVtYW5kZSBkZSB2YWxldXIiKSYmKGI9IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiKTtiLnRyaW0oKTthLmRldGFpbC5sZWFkVHlwZT1ifXZvaWQgMCE9PWEuZGV0YWlsLmxlYWRUeXBlJiYiIiE9YS5kZXRhaWwubGVhZFR5cGV8fHZvaWQgMD09PWEuZGV0YWlsLm1haWxJZHx8KGEuZGV0YWlsLmxlYWRUeXBlPWQyYXNjUmVzb2x2ZUxlYWRUeXBlKGQuZm9ybU1hcCxhLmRldGFpbC5tYWlsSWQpKTthLmRldGFpbC5sZWFkTmFtZUFycj1kLmZvcm1NYXA7dm9pZCAwPT09YS5kZXRhaWwuY29uZmlybV9lbWFpbCYmKGEuZGV0YWlsLmNvbmZpcm1fZW1haWw9IiIpO3ZvaWQgMD09PWEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyJiYKKGEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyPSIiKTtQcm9taXNlLmFsbChbZy5oYXNoVGV4dChhLmRldGFpbC5jb25maXJtX2VtYWlsKSxnLmhhc2hUZXh0KGEuZGV0YWlsLmNvbmZpcm1fcGhvbmVfbnVtYmVyKV0pLnRoZW4oYz0+e3ZhciBbZixtXT1jO2EuZGV0YWlsLmNvbmZpcm1fZW1haWw9ZjthLmRldGFpbC5jb25maXJtX3Bob25lX251bWJlcj1tfSk7dm9pZCAwIT09YXNjVG9wQ2FyRGV0YWlscy5tYWtlJiYiIiE9YXNjVG9wQ2FyRGV0YWlscy5tYWtlfHx2b2lkIDA9PT1hLmRldGFpbC5tYWtlfHwiIj09YS5kZXRhaWwubWFrZXx8KGEuZGV0YWlsLnZjYXRlZ29yeT1hLmRldGFpbC5jb25kaXRpb24sYS5kZXRhaWwudmVyc2lvbj1hLmRldGFpbC50cmltLGEuZGV0YWlsLmJvZHlUeXBlSUQ9YS5kZXRhaWwudHJpbSxhLmRldGFpbC5jb2xvcj0iIixhLmRldGFpbC52Y2FyYnVyYW50PSIiLGEuZGV0YWlsLmRhdGVfbGlzdGluZz0iIixhc2NVcGRhdGVUb3BDYXJEYXRhKGEuZGV0YWlsKSk7CnNldFRpbWVvdXQoZnVuY3Rpb24oKXtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uIixhLmRldGFpbCl9LDI1MCk7IlNNU0luZm9MZWFkIiE9YS5kZXRhaWwubWFpbElkJiYiU01TTGVhZCIhPWEuZGV0YWlsLm1haWxJZHx8c2V0VGltZW91dChmdW5jdGlvbigpe2cuc2V0RGlnaXRhbERhdGEoImFzY19jb21tX3N1Ym1pc3Npb24iLGEuZGV0YWlsKX0sMjUwKX0pOyQoIiNTbGlkZVdpZGdldEZvcm0gYS5idG4tZGVmYXVsdCIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtsZXQgYj1kMmFzY1Jlc29sdmVMZWFkVHlwZShkLmZvcm1NYXAsIlNsaWRlV2lkZ2V0Rm9ybSIpO2cuc2V0RGlnaXRhbERhdGEoImFzY19mb3JtX3N1Ym1pc3Npb24iLHtkZXBhcnRtZW50OiJzYWxlcyIsbGVhZFR5cGU6YixjdXJyZW50VVJMOiIifSl9KTskKGRvY3VtZW50KS5vbigiZm9ybS5zdGVwIiwiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGZ1bmN0aW9uKGIpe2cuc2V0RGlnaXRhbERhdGEoImFzY19yZXRhaWxfcHJvY2VzcyIsCmIpfSk7JChkb2N1bWVudCkub24oIm11bHRpRm9ybUZpbmFuY2VTdWJtaXQiLGRvY3VtZW50LmJvZHksZnVuY3Rpb24oYil7Yj1kMmFzY1Jlc29sdmVMZWFkVHlwZShkLmZvcm1NYXAsIkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiKTtnLnNldERpZ2l0YWxEYXRhKCJhc2NfZm9ybV9zdWJtaXNzaW9uIix7ZGVwYXJ0bWVudDoiZmluYW5jZSIsbGVhZFR5cGU6YixjdXJyZW50VVJMOiIifSl9KX0sMUUzKTt3aW5kb3cuZDJhc2M9Zzt3aW5kb3cuZDJhc2NEYXRhTWFwPWh9OwovKiogL20vanMvanF1ZXJ5LnJldmVhbC5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlyZXZlYWxqc19jX29uPSIyMDI2LTA1LTA1IDE2OjMwOjAzIjsndXNlIHN0cmljdCc7KGZ1bmN0aW9uKGIpe2IoImJvZHkiKS5vbigiY2xpY2siLCJhW2RhdGEtcmV2ZWFsLWlkXSIsZnVuY3Rpb24oYSl7YS5wcmV2ZW50RGVmYXVsdCgpO2E9Yih0aGlzKS5hdHRyKCJkYXRhLXJldmVhbC1pZCIpO2IoIiMiK2EpLnJldmVhbChiKHRoaXMpLmRhdGEoKSl9KTtiLmZuLnJldmVhbD1mdW5jdGlvbihhKXthPWIuZXh0ZW5kKHt9LHthbmltYXRpb246ImZhZGVBbmRQb3AiLGFuaW1hdGlvbnNwZWVkOjMwMCxjbG9zZW9uYmFja2dyb3VuZGNsaWNrOiEwLGRpc21pc3Ntb2RhbGNsYXNzOiJjbG9zZS1yZXZlYWwtbW9kYWwiLGNsb3Nlb25lc2NhcGU6ITB9LGEpO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtmdW5jdGlvbiBmKCl7Im9iamVjdCI9PXR5cGVvZiBwb3B1cFN1cGVydmlzb3ImJnNldFRpbWVvdXQocG9wdXBTdXBlcnZpc29yLnJlcG9zaXRpb24sMUUzKTtnPSExfXZhciBjPWIodGhpcyksaD1wYXJzZUludChjLmNzcygidG9wIikpLG09Yy5oZWlnaHQoKSsKaCxnPSExLGQ9YigiLnJldmVhbC1tb2RhbC1iZyIpOzA9PWQubGVuZ3RoJiYoZD1iKCc8ZGl2IGNsYXNzPSJyZXZlYWwtbW9kYWwtYmciIC8+JykuaW5zZXJ0QWZ0ZXIoYykpO2Mub24oInJldmVhbDpvcGVuIixmdW5jdGlvbigpe3ZhciBrPSJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93LmlubmVySGVpZ2h0P3dpbmRvdy5pbm5lckhlaWdodDpiKHdpbmRvdykuaGVpZ2h0KCksbj1iKGMpLm91dGVySGVpZ2h0KCk7YihjKS5vZmZzZXQoKTtiKGRvY3VtZW50KS5zY3JvbGxUb3AoKTt2YXIgbD0vTW9iaS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KT81OjIwLGU9KGstbikvMitsO2U9ZTxsfHxrPG4\/bDplOzA8YigiI2QyY19ib2R5Q29udGVudCIpLmxlbmd0aCYmKGUtPWIoIiNkMmNfYm9keUNvbnRlbnQiKS5vZmZzZXQoKS50b3ApOzA8YigiLnNsb3RNYWNoaW5lQ29udGFpbmVyIikubGVuZ3RoJiZiKCIuc2xvdE1hY2hpbmVDb250YWluZXIiKS5zaG93KCk7ZC5vZmYoImNsaWNrLm1vZGFsRXZlbnQiKTsKYigiLiIrYS5kaXNtaXNzbW9kYWxjbGFzcykub2ZmKCJjbGljay5tb2RhbEV2ZW50Iik7Z3x8KGc9ITAsImZhZGVBbmRQb3AiPT1hLmFuaW1hdGlvbiYmKGMuY3NzKHt0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCktbSxvcGFjaXR5OjAsdmlzaWJpbGl0eToidmlzaWJsZSJ9KSxkLmZhZGVJbihhLmFuaW1hdGlvbnNwZWVkLzIpLGMuZGVsYXkoYS5hbmltYXRpb25zcGVlZC8yKS5hbmltYXRlKHt0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCkrZSsicHgiLG9wYWNpdHk6MX0sYS5hbmltYXRpb25zcGVlZCxmKCkpKSwiZmFkZSI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe29wYWNpdHk6MCx2aXNpYmlsaXR5OiJ2aXNpYmxlIix0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCkrZX0pLGQuZmFkZUluKGEuYW5pbWF0aW9uc3BlZWQvMiksYy5kZWxheShhLmFuaW1hdGlvbnNwZWVkLzIpLmFuaW1hdGUoe29wYWNpdHk6MX0sYS5hbmltYXRpb25zcGVlZCxmKCkpKSwibm9uZSI9PWEuYW5pbWF0aW9uJiYKKGMuY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIix0b3A6Yihkb2N1bWVudCkuc2Nyb2xsVG9wKCkrZX0pLGQuY3NzKHtkaXNwbGF5OiJibG9jayJ9KSxmKCkpLCJleHRlcm5hbEFuaW1hdGlvbiI9PWEuYW5pbWF0aW9uJiYoYy5jc3Moe3Zpc2liaWxpdHk6InZpc2libGUiLHRvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKStlLGRpc3BsYXk6Im5vbmUifSkuc2hvdygpLGQuY3NzKHtkaXNwbGF5OiJibG9jayJ9KSxmKCkpKTtjLm9mZigicmV2ZWFsOm9wZW4iKX0pO2Mub24oInJldmVhbDpjbG9zZSIsZnVuY3Rpb24oKXtiKCJib2R5IikuY3NzKCJvdmVyZmxvdyIsIiIpO2IoIi5zbG90TWFjaGluZUNvbnRhaW5lciIpLmhpZGUoKTtpZighZyYmKGc9ITAsImZhZGVBbmRQb3AiPT1hLmFuaW1hdGlvbiYmKGQuZGVsYXkoYS5hbmltYXRpb25zcGVlZCkuZmFkZU91dChhLmFuaW1hdGlvbnNwZWVkKSxjLmFuaW1hdGUoe3RvcDpiKGRvY3VtZW50KS5zY3JvbGxUb3AoKS1tKyJweCIsb3BhY2l0eTowfSwKYS5hbmltYXRpb25zcGVlZC8yLGZ1bmN0aW9uKCl7Yy5jc3Moe3RvcDpoLG9wYWNpdHk6MSx2aXNpYmlsaXR5OiJoaWRkZW4ifSk7ZigpfSkpLCJmYWRlIj09YS5hbmltYXRpb24mJihkLmRlbGF5KGEuYW5pbWF0aW9uc3BlZWQpLmZhZGVPdXQoYS5hbmltYXRpb25zcGVlZCksYy5hbmltYXRlKHtvcGFjaXR5OjB9LGEuYW5pbWF0aW9uc3BlZWQsZnVuY3Rpb24oKXtjLmNzcyh7b3BhY2l0eToxLHZpc2liaWxpdHk6ImhpZGRlbiIsdG9wOmh9KTtmKCl9KSksIm5vbmUiPT1hLmFuaW1hdGlvbiYmKGMuY3NzKHt2aXNpYmlsaXR5OiJoaWRkZW4iLHRvcDpofSksZC5jc3Moe2Rpc3BsYXk6Im5vbmUifSkpLCJleHRlcm5hbEFuaW1hdGlvbiI9PWEuYW5pbWF0aW9uKSljLmhpZGUoKS5vbmUoImFuaW1hdGlvbkVuZCIsZnVuY3Rpb24oKXtiKHRoaXMpLmNzcyh7dmlzaWJpbGl0eToiaGlkZGVuIix0b3A6aCxkaXNwbGF5OiJub25lIn0pO2QuY3NzKHtkaXNwbGF5OiJub25lIn0pfSk7Yy5vZmYoInJldmVhbDpjbG9zZSIpOwoidW5kZWZpbmVkIiE9dHlwZW9mIGEuY2xvc2VkJiZhLmNsb3NlZCgpfSk7Yy50cmlnZ2VyKCJyZXZlYWw6b3BlbiIpO2IoIi4iK2EuZGlzbWlzc21vZGFsY2xhc3MpLm9uKCJjbGljay5tb2RhbEV2ZW50IHRvdWNoc3RhcnQiLGZ1bmN0aW9uKCl7Yy50cmlnZ2VyKCJyZXZlYWw6Y2xvc2UiKX0pO2EuY2xvc2VvbmJhY2tncm91bmRjbGljayYmKGQuY3NzKHtjdXJzb3I6InBvaW50ZXIifSksZC5vbigiY2xpY2subW9kYWxFdmVudCIsZnVuY3Rpb24oKXtjLnRyaWdnZXIoInJldmVhbDpjbG9zZSIpfSkpO2lmKGEuY2xvc2VvbmVzY2FwZSliKCJib2R5Iikub24oImtleXVwIixmdW5jdGlvbihrKXsyNz09PWsud2hpY2gmJmMudHJpZ2dlcigicmV2ZWFsOmNsb3NlIil9KX0pfX0pKGpRdWVyeSk7Ci8qKiAvbS9qcy9wcm9tb19keW5hbWljX2ZpbGVfZnIuanMgKiovCihmdW5jdGlvbigpe30pOwovKiogL20vanMvanF1ZXJ5LnByZXR0eVBob3RvMi5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlwcmV0dHlQaG90bzJqc19jX29uPSIyMDI1LTA1LTIzIDE3OjExOjQzIjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19qcXVlcnlwcmV0dHlQaG90bzJqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMzOjMzIjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihhKXtmdW5jdGlvbiB5KCl7dmFyIGU9bG9jYXRpb24uaHJlZjtyZXR1cm4gaGFzaHRhZz0tMSE9PWUuaW5kZXhPZigiI3ByZXR0eVBob3RvIik\/ZGVjb2RlVVJJKGUuc3Vic3RyaW5nKGUuaW5kZXhPZigiI3ByZXR0eVBob3RvIikrMSxlLmxlbmd0aCkpOiExfWZ1bmN0aW9uIGwoZSxwKXtlPWUucmVwbGFjZSgvW1xbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKTtlPShuZXcgUmVnRXhwKCJbXFw\/Jl0iK2UrIj0oW14mI10qKSIpKS5leGVjKHApO3JldHVybiBudWxsPT1lPyIiOmVbMV19YS5wcmV0dHlQaG90bz17dmVyc2lvbjoiMy4xLjUifTthLmZuLnByZXR0eVBob3RvPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHAoKXthKCIucHBfbG9hZGVySWNvbiIpLmhpZGUoKTtwcm9qZWN0ZWRUb3A9c2Nyb2xsX3Bvcy5zY3JvbGxUb3ArKGsvMi1kLmNvbnRhaW5lckhlaWdodC8yKTswPnByb2plY3RlZFRvcCYmKHByb2plY3RlZFRvcD0wKTskcHB0LmZhZGVUbyhiLmFuaW1hdGlvbl9zcGVlZCwKMSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2NvbnRlbnQiKS5hbmltYXRlKHtoZWlnaHQ6ZC5jb250ZW50SGVpZ2h0LHdpZHRoOmQuY29udGVudFdpZHRofSxiLmFuaW1hdGlvbl9zcGVlZCk7JHBwX3BpY19ob2xkZXIuYW5pbWF0ZSh7dG9wOnByb2plY3RlZFRvcCxsZWZ0OjA+aC8yLWQuY29udGFpbmVyV2lkdGgvMj8wOmgvMi1kLmNvbnRhaW5lcldpZHRoLzIsd2lkdGg6ZC5jb250YWluZXJXaWR0aH0sYi5hbmltYXRpb25fc3BlZWQsZnVuY3Rpb24oKXskcHBfcGljX2hvbGRlci5maW5kKCIucHBfaG92ZXJDb250YWluZXIsI2Z1bGxSZXNJbWFnZSIpLmhlaWdodChkLmhlaWdodCkud2lkdGgoZC53aWR0aCk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2ZhZGUiKS5mYWRlSW4oYi5hbmltYXRpb25fc3BlZWQpO2lzU2V0JiYiaW1hZ2UiPT10KHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKT8kcHBfcGljX2hvbGRlci5maW5kKCIucHBfaG92ZXJDb250YWluZXIiKS5zaG93KCk6JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2hvdmVyQ29udGFpbmVyIikuaGlkZSgpOwpiLmFsbG93X2V4cGFuZCYmKGQucmVzaXplZD9hKCJhLnBwX2V4cGFuZCxhLnBwX2NvbnRyYWN0Iikuc2hvdygpOmEoImEucHBfZXhwYW5kIikuaGlkZSgpKTshYi5hdXRvcGxheV9zbGlkZXNob3d8fHF8fHV8fGEucHJldHR5UGhvdG8uc3RhcnRTbGlkZXNob3coKTtiLmNoYW5nZXBpY3R1cmVjYWxsYmFjaygpO3U9ITB9KTtpc1NldCYmYi5vdmVybGF5X2dhbGxlcnkmJiJpbWFnZSI9PXQocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pPyhpdGVtV2lkdGg9NTcsbmF2V2lkdGg9ImZhY2Vib29rIj09Yi50aGVtZXx8InBwX2RlZmF1bHQiPT1iLnRoZW1lPzUwOjMwLGl0ZW1zUGVyUGFnZT1NYXRoLmZsb29yKChkLmNvbnRhaW5lcldpZHRoLTEwMC1uYXZXaWR0aCkvaXRlbVdpZHRoKSxpdGVtc1BlclBhZ2U9aXRlbXNQZXJQYWdlPHBwX2ltYWdlcy5sZW5ndGg\/aXRlbXNQZXJQYWdlOnBwX2ltYWdlcy5sZW5ndGgsdG90YWxQYWdlPU1hdGguY2VpbChwcF9pbWFnZXMubGVuZ3RoL2l0ZW1zUGVyUGFnZSktCjEsMD09dG90YWxQYWdlPyhuYXZXaWR0aD0wLCRwcF9nYWxsZXJ5LmZpbmQoIi5wcF9hcnJvd19uZXh0LC5wcF9hcnJvd19wcmV2aW91cyIpLmhpZGUoKSk6JHBwX2dhbGxlcnkuZmluZCgiLnBwX2Fycm93X25leHQsLnBwX2Fycm93X3ByZXZpb3VzIikuc2hvdygpLGdhbGxlcnlXaWR0aD1pdGVtc1BlclBhZ2UqaXRlbVdpZHRoLGZ1bGxHYWxsZXJ5V2lkdGg9cHBfaW1hZ2VzLmxlbmd0aCppdGVtV2lkdGgsJHBwX2dhbGxlcnkuY3NzKCJtYXJnaW4tbGVmdCIsLShnYWxsZXJ5V2lkdGgvMituYXZXaWR0aC8yKSkuZmluZCgiZGl2OmZpcnN0Iikud2lkdGgoZ2FsbGVyeVdpZHRoKzUpLmZpbmQoInVsIikud2lkdGgoZnVsbEdhbGxlcnlXaWR0aCkuZmluZCgibGkuc2VsZWN0ZWQiKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKSxnb1RvUGFnZT1NYXRoLmZsb29yKHNldF9wb3NpdGlvbi9pdGVtc1BlclBhZ2UpPHRvdGFsUGFnZT9NYXRoLmZsb29yKHNldF9wb3NpdGlvbi9pdGVtc1BlclBhZ2UpOgp0b3RhbFBhZ2UsYS5wcmV0dHlQaG90by5jaGFuZ2VHYWxsZXJ5UGFnZShnb1RvUGFnZSksJHBwX2dhbGxlcnlfbGkuZmlsdGVyKCI6ZXEoIitzZXRfcG9zaXRpb24rIikiKS5hZGRDbGFzcygic2VsZWN0ZWQiKSk6JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2NvbnRlbnQiKS5vZmYoIm1vdXNlZW50ZXIgbW91c2VsZWF2ZSIpO2UuYWpheGNhbGxiYWNrKCl9ZnVuY3Rpb24geihjKXskcHBfcGljX2hvbGRlci5maW5kKCIjcHBfZnVsbF9yZXMgb2JqZWN0LCNwcF9mdWxsX3JlcyBlbWJlZCIpLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpOyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9mYWRlIikuZmFkZU91dChiLmFuaW1hdGlvbl9zcGVlZCxmdW5jdGlvbigpe2EoIi5wcF9sb2FkZXJJY29uIikuc2hvdygpO2MoKX0pfWZ1bmN0aW9uIEcoYyl7MTxjP2EoIi5wcF9uYXYiKS5zaG93KCk6YSgiLnBwX25hdiIpLmhpZGUoKX1mdW5jdGlvbiBnKGMsZil7cmVzaXplZD0hMTtBKGMsZik7aW1hZ2VXaWR0aD0KYztpbWFnZUhlaWdodD1mO2lmKChtPmh8fG4+aykmJmRvcmVzaXplJiZiLmFsbG93X3Jlc2l6ZSYmIXIpe3Jlc2l6ZWQ9ITA7Zm9yKGZpdHRpbmc9ITE7IWZpdHRpbmc7KW0+aD8oaW1hZ2VXaWR0aD1oLTUwLGltYWdlSGVpZ2h0PWYvYyppbWFnZVdpZHRoKTpuPms\/KGltYWdlSGVpZ2h0PWstNTAsaW1hZ2VXaWR0aD1jL2YqaW1hZ2VIZWlnaHQpOmZpdHRpbmc9ITAsbj1pbWFnZUhlaWdodCxtPWltYWdlV2lkdGg7KG0+aHx8bj5rKSYmZyhtLG4pO0EoaW1hZ2VXaWR0aCxpbWFnZUhlaWdodCl9cmV0dXJue3dpZHRoOk1hdGguZmxvb3IoaW1hZ2VXaWR0aCksaGVpZ2h0Ok1hdGguZmxvb3IoaW1hZ2VIZWlnaHQpLGNvbnRhaW5lckhlaWdodDpNYXRoLmZsb29yKG4pLGNvbnRhaW5lcldpZHRoOk1hdGguZmxvb3IobSkrMipiLmhvcml6b250YWxfcGFkZGluZyxjb250ZW50SGVpZ2h0Ok1hdGguZmxvb3IodiksY29udGVudFdpZHRoOk1hdGguZmxvb3IoQikscmVzaXplZH19ZnVuY3Rpb24gQShjLApmKXtjPXBhcnNlRmxvYXQoYyk7Zj1wYXJzZUZsb2F0KGYpOyRwcF9kZXRhaWxzPSRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9kZXRhaWxzIik7JHBwX2RldGFpbHMud2lkdGgoYyk7ZGV0YWlsc0hlaWdodD1wYXJzZUZsb2F0KCRwcF9kZXRhaWxzLmNzcygibWFyZ2luVG9wIikpK3BhcnNlRmxvYXQoJHBwX2RldGFpbHMuY3NzKCJtYXJnaW5Cb3R0b20iKSk7JHBwX2RldGFpbHM9JHBwX2RldGFpbHMuY2xvbmUoKS5hZGRDbGFzcyhiLnRoZW1lKS53aWR0aChjKS5hcHBlbmRUbyhhKCJib2R5IikpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix0b3A6LTFFNH0pO2RldGFpbHNIZWlnaHQrPSRwcF9kZXRhaWxzLmhlaWdodCgpO2RldGFpbHNIZWlnaHQ9MzQ+PWRldGFpbHNIZWlnaHQ\/MzY6ZGV0YWlsc0hlaWdodDskcHBfZGV0YWlscy5yZW1vdmUoKTskcHBfdGl0bGU9JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwdCIpOyRwcF90aXRsZS53aWR0aChjKTt0aXRsZUhlaWdodD1wYXJzZUZsb2F0KCRwcF90aXRsZS5jc3MoIm1hcmdpblRvcCIpKSsKcGFyc2VGbG9hdCgkcHBfdGl0bGUuY3NzKCJtYXJnaW5Cb3R0b20iKSk7JHBwX3RpdGxlPSRwcF90aXRsZS5jbG9uZSgpLmFwcGVuZFRvKGEoImJvZHkiKSkuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUiLHRvcDotMUU0fSk7dGl0bGVIZWlnaHQrPSRwcF90aXRsZS5oZWlnaHQoKTskcHBfdGl0bGUucmVtb3ZlKCk7dj1mK2RldGFpbHNIZWlnaHQ7Qj1jO249dit0aXRsZUhlaWdodCskcHBfcGljX2hvbGRlci5maW5kKCIucHBfdG9wIikuaGVpZ2h0KCkrJHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2JvdHRvbSIpLmhlaWdodCgpO209Y31mdW5jdGlvbiB0KGMpe3JldHVybiBjLm1hdGNoKC95b3V0dWJlXC5jb21cL3dhdGNoL2kpfHxjLm1hdGNoKC95b3V0dVwuYmUvaSk\/InlvdXR1YmUiOmMubWF0Y2goL3ZpbWVvXC5jb20vaSk\/InZpbWVvIjpjLm1hdGNoKC9cLm1wNC9pKT8ibXA0IjpjLm1hdGNoKC9hdnUzZC9pKT8iYXZ1M2QiOmMubWF0Y2goL1xiLm1vdlxiL2kpPyJxdWlja3RpbWUiOgpjLm1hdGNoKC9cYi5zd2ZcYi9pKT8iZmxhc2giOmMubWF0Y2goL1xiaWZyYW1lPXRydWVcYi9pKT8iaWZyYW1lIjpjLm1hdGNoKC9cYmFqYXg9dHJ1ZVxiL2kpPyJhamF4IjpjLm1hdGNoKC9cYmN1c3RvbT10cnVlXGIvaSk\/ImN1c3RvbSI6IiMiPT1jLnN1YnN0cigwLDEpPyJpbmxpbmUiOiJpbWFnZSJ9ZnVuY3Rpb24gdygpe2RvcmVzaXplJiYidW5kZWZpbmVkIiE9dHlwZW9mICRwcF9waWNfaG9sZGVyJiYoc2Nyb2xsX3Bvcz1DKCksY29udGVudEhlaWdodD0kcHBfcGljX2hvbGRlci5oZWlnaHQoKSxjb250ZW50d2lkdGg9JHBwX3BpY19ob2xkZXIud2lkdGgoKSxwcm9qZWN0ZWRUb3A9ay8yK3Njcm9sbF9wb3Muc2Nyb2xsVG9wLWNvbnRlbnRIZWlnaHQvMiwwPnByb2plY3RlZFRvcCYmKHByb2plY3RlZFRvcD0wKSxjb250ZW50SGVpZ2h0Pmt8fCRwcF9waWNfaG9sZGVyLmNzcyh7dG9wOnByb2plY3RlZFRvcCxsZWZ0OmgvMitzY3JvbGxfcG9zLnNjcm9sbExlZnQtY29udGVudHdpZHRoLwoyfSkpfWZ1bmN0aW9uIEMoKXtpZihzZWxmLnBhZ2VZT2Zmc2V0KXJldHVybntzY3JvbGxUb3A6c2VsZi5wYWdlWU9mZnNldCxzY3JvbGxMZWZ0OnNlbGYucGFnZVhPZmZzZXR9O2lmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcClyZXR1cm57c2Nyb2xsVG9wOmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3Asc2Nyb2xsTGVmdDpkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsTGVmdH07aWYoZG9jdW1lbnQuYm9keSlyZXR1cm57c2Nyb2xsVG9wOmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wLHNjcm9sbExlZnQ6ZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0fX1mdW5jdGlvbiBEKGMpe2Iuc29jaWFsX3Rvb2xzJiYoZmFjZWJvb2tfbGlrZV9saW5rPWIuc29jaWFsX3Rvb2xzLnJlcGxhY2UoIntsb2NhdGlvbl9ocmVmfSIsZW5jb2RlVVJJQ29tcG9uZW50KGxvY2F0aW9uLmhyZWYpKSk7Yi5tYXJrdXA9Yi5tYXJrdXAucmVwbGFjZSgie3BwX3NvY2lhbH0iLAoiIik7YSgiYm9keSIpLmFwcGVuZChiLm1hcmt1cCk7JHBwX3BpY19ob2xkZXI9YSgiLnBwX3BpY19ob2xkZXIiKTskcHB0PWEoIi5wcHQiKTskcHBfb3ZlcmxheT1hKCJkaXYucHBfb3ZlcmxheSIpO2lmKGlzU2V0JiZiLm92ZXJsYXlfZ2FsbGVyeSl7Y3VycmVudEdhbGxlcnlQYWdlPTA7dG9JbmplY3Q9IiI7Zm9yKGM9MDtjPHBwX2ltYWdlcy5sZW5ndGg7YysrKXBwX2ltYWdlc1tjXS5tYXRjaCgvXGIoanBnfGpwZWd8cG5nfGdpZilcYi9naSk\/KGNsYXNzbmFtZT0iIixpbWdfc3JjPXBwX2ltYWdlc1tjXSk6KGNsYXNzbmFtZT0iZGVmYXVsdCIsaW1nX3NyYz0iIiksdG9JbmplY3QrPSI8bGkgY2xhc3M9JyIrY2xhc3NuYW1lKyInPjxhIGhyZWY9JyMnPjxpbWcgc3JjPSciK2ltZ19zcmMrIicgd2lkdGg9JzUwJyBhbHQ9JycgLz48L2E+PC9saT4iO3RvSW5qZWN0PWIuZ2FsbGVyeV9tYXJrdXAucmVwbGFjZSgve2dhbGxlcnl9L2csdG9JbmplY3QpOyRwcF9waWNfaG9sZGVyLmZpbmQoIiNwcF9mdWxsX3JlcyIpLmFmdGVyKHRvSW5qZWN0KTsKJHBwX2dhbGxlcnk9YSgiLnBwX3BpY19ob2xkZXIgLnBwX2dhbGxlcnkiKTskcHBfZ2FsbGVyeV9saT0kcHBfZ2FsbGVyeS5maW5kKCJsaSIpOyRwcF9nYWxsZXJ5LmZpbmQoIi5wcF9hcnJvd19uZXh0Iikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uY2hhbmdlR2FsbGVyeVBhZ2UoIm5leHQiKTthLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3coKTtyZXR1cm4hMX0pOyRwcF9nYWxsZXJ5LmZpbmQoIi5wcF9hcnJvd19wcmV2aW91cyIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLmNoYW5nZUdhbGxlcnlQYWdlKCJwcmV2aW91cyIpO2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2NvbnRlbnQiKS5vbigiaG92ZXIiLGZ1bmN0aW9uKCl7JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2dhbGxlcnk6bm90KC5kaXNhYmxlZCkiKS5mYWRlSW4oKX0sZnVuY3Rpb24oKXskcHBfcGljX2hvbGRlci5maW5kKCIucHBfZ2FsbGVyeTpub3QoLmRpc2FibGVkKSIpLmZhZGVPdXQoKX0pOwppdGVtV2lkdGg9NTc7JHBwX2dhbGxlcnlfbGkuZWFjaChmdW5jdGlvbihmKXthKHRoaXMpLmZpbmQoImEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKGYpO2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSl9KX1iLnNsaWRlc2hvdyYmKCRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9uYXYiKS5wcmVwZW5kKCc8YSBocmVmPSIjIiBjbGFzcz0icHBfcGxheSI+UGxheTwvYT4nKSwkcHBfcGljX2hvbGRlci5maW5kKCIucHBfbmF2IC5wcF9wbGF5Iikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uc3RhcnRTbGlkZXNob3coKTtyZXR1cm4hMX0pKTskcHBfcGljX2hvbGRlci5hdHRyKCJjbGFzcyIsInBwX3BpY19ob2xkZXIgIitiLnRoZW1lKTskcHBfb3ZlcmxheS5jc3Moe29wYWNpdHk6MCxoZWlnaHQ6YShkb2N1bWVudCkuaGVpZ2h0KCksd2lkdGg6YSh3aW5kb3cpLndpZHRoKCl9KS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5tb2RhbHx8CmEucHJldHR5UGhvdG8uY2xvc2UoKX0pO2EoImEucHBfY2xvc2UiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jbG9zZSgpO3JldHVybiExfSk7aWYoYi5hbGxvd19leHBhbmQpYSgiYS5wcF9leHBhbmQiKS5vbigiY2xpY2siLGZ1bmN0aW9uKGYpe2EodGhpcykuaGFzQ2xhc3MoInBwX2V4cGFuZCIpPyhhKHRoaXMpLnJlbW92ZUNsYXNzKCJwcF9leHBhbmQiKS5hZGRDbGFzcygicHBfY29udHJhY3QiKSxkb3Jlc2l6ZT0hMSk6KGEodGhpcykucmVtb3ZlQ2xhc3MoInBwX2NvbnRyYWN0IikuYWRkQ2xhc3MoInBwX2V4cGFuZCIpLGRvcmVzaXplPSEwKTt6KGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5vcGVuKCl9KTtyZXR1cm4hMX0pOyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9wcmV2aW91cywgLnBwX25hdiAucHBfYXJyb3dfcHJldmlvdXMiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJwcmV2aW91cyIpO2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpOwpyZXR1cm4hMX0pOyRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9uZXh0LCAucHBfbmF2IC5wcF9hcnJvd19uZXh0Iikub24oImNsaWNrIixmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uY2hhbmdlUGFnZSgibmV4dCIpO2EucHJldHR5UGhvdG8uc3RvcFNsaWRlc2hvdygpO3JldHVybiExfSk7dygpfWU9alF1ZXJ5LmV4dGVuZCh7aG9vazoicmVsIixhbmltYXRpb25fc3BlZWQ6ImZhc3QiLGFqYXhjYWxsYmFjazpmdW5jdGlvbigpe30sc2xpZGVzaG93OjVFMyxhdXRvcGxheV9zbGlkZXNob3c6ITEsb3BhY2l0eTouOCxzaG93X3RpdGxlOiEwLGFsbG93X3Jlc2l6ZTohMCxhbGxvd19leHBhbmQ6ITAsZGVmYXVsdF93aWR0aDo1MDAsZGVmYXVsdF9oZWlnaHQ6MzQ0LGNvdW50ZXJfc2VwYXJhdG9yX2xhYmVsOiIvIix0aGVtZToicHBfZGVmYXVsdCIsaG9yaXpvbnRhbF9wYWRkaW5nOjIwLGhpZGVmbGFzaDohMSx3bW9kZToib3BhcXVlIixhdXRvcGxheTohMCxtb2RhbDohMSxkZWVwbGlua2luZzohMCwKb3ZlcmxheV9nYWxsZXJ5OiEwLG92ZXJsYXlfZ2FsbGVyeV9tYXg6MzAsa2V5Ym9hcmRfc2hvcnRjdXRzOiEwLGNoYW5nZXBpY3R1cmVjYWxsYmFjazpmdW5jdGlvbigpe30sY2FsbGJhY2s6ZnVuY3Rpb24oKXt9LGllNl9mYWxsYmFjazohMCxtYXJrdXA6JzxkaXYgY2xhc3M9InBwX3BpY19ob2xkZXIiPiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcHQiPiZuYnNwOzwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF90b3AiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfbGVmdCI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9taWRkbGUiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfcmlnaHQiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfY29udGVudF9jb250YWluZXIiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfbGVmdCI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPSIjIiBjbGFzcz0icHBfZXhwYW5kIiB0aXRsZT0iRXhwYW5kIHRoZSBpbWFnZSI+RXhwYW5kPC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfcmlnaHQiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2NvbnRlbnQiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9sb2FkZXJJY29uIj48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfZmFkZSI+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0icHBfY2xvc2UiIGhyZWY9IiMiPkNsb3NlPC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfaG92ZXJDb250YWluZXIganF1ZXJ5cHAyIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0icHBfbmV4dCIgaHJlZj0iIyI+bmV4dDwvYT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBjbGFzcz0icHBfcHJldmlvdXMiIGhyZWY9IiMiPnByZXZpb3VzPC9hPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPSJwcF9mdWxsX3JlcyI+PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9kZXRhaWxzIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz0icHBfZGVzY3JpcHRpb24iPjwvcD4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJwcF9zb2NpYWwiPntwcF9zb2NpYWx9PC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfYm90dG9tIj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX2xlZnQiPjwvZGl2PiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfbWlkZGxlIj48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9InBwX3JpZ2h0Ij48L2Rpdj4gICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0icHBfb3ZlcmxheSI+PC9kaXY+JywKZ2FsbGVyeV9tYXJrdXA6JzxkaXYgY2xhc3M9InBwX2dhbGxlcnkiPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9IiMiIGNsYXNzPSJwcF9hcnJvd19wcmV2aW91cyI+UHJldmlvdXM8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHVsPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2dhbGxlcnl9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj0iIyIgY2xhc3M9InBwX2Fycm93X25leHQiPk5leHQ8L2E+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4nLGltYWdlX21hcmt1cDonPGltZyBpZD0iZnVsbFJlc0ltYWdlIiBzcmM9IntwYXRofSIgLz4nLGZsYXNoX21hcmt1cDonPG9iamVjdCBjbGFzc2lkPSJjbHNpZDpEMjdDREI2RS1BRTZELTExY2YtOTZCOC00NDQ1NTM1NDAwMDAiIHdpZHRoPSJ7d2lkdGh9IiBoZWlnaHQ9IntoZWlnaHR9Ij48cGFyYW0gbmFtZT0id21vZGUiIHZhbHVlPSJ7d21vZGV9IiAvPjxwYXJhbSBuYW1lPSJhbGxvd2Z1bGxzY3JlZW4iIHZhbHVlPSJ0cnVlIiAvPjxwYXJhbSBuYW1lPSJhbGxvd3NjcmlwdGFjY2VzcyIgdmFsdWU9ImFsd2F5cyIgLz48cGFyYW0gbmFtZT0ibW92aWUiIHZhbHVlPSJ7cGF0aH0iIC8+PGVtYmVkIHNyYz0ie3BhdGh9IiB0eXBlPSJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIgYWxsb3dmdWxsc2NyZWVuPSJ0cnVlIiBhbGxvd3NjcmlwdGFjY2Vzcz0iYWx3YXlzIiB3aWR0aD0ie3dpZHRofSIgaGVpZ2h0PSJ7aGVpZ2h0fSIgd21vZGU9Int3bW9kZX0iPjwvZW1iZWQ+PC9vYmplY3Q+JywKcXVpY2t0aW1lX21hcmt1cDonPG9iamVjdCBjbGFzc2lkPSJjbHNpZDowMkJGMjVENS04QzE3LTRCMjMtQkM4MC1EMzQ4OEFCRERDNkIiIGNvZGViYXNlPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9xdGFjdGl2ZXgvcXRwbHVnaW4uY2FiIiBoZWlnaHQ9IntoZWlnaHR9IiB3aWR0aD0ie3dpZHRofSI+PHBhcmFtIG5hbWU9InNyYyIgdmFsdWU9IntwYXRofSI+PHBhcmFtIG5hbWU9ImF1dG9wbGF5IiB2YWx1ZT0ie2F1dG9wbGF5fSI+PHBhcmFtIG5hbWU9InR5cGUiIHZhbHVlPSJ2aWRlby9xdWlja3RpbWUiPjxlbWJlZCBzcmM9IntwYXRofSIgaGVpZ2h0PSJ7aGVpZ2h0fSIgd2lkdGg9Int3aWR0aH0iIGF1dG9wbGF5PSJ7YXV0b3BsYXl9IiB0eXBlPSJ2aWRlby9xdWlja3RpbWUiIHBsdWdpbnNwYWdlPSJodHRwOi8vd3d3LmFwcGxlLmNvbS9xdWlja3RpbWUvZG93bmxvYWQvIj48L2VtYmVkPjwvb2JqZWN0PicsaWZyYW1lX21hcmt1cDonPGlmcmFtZSBzcmMgPSJ7cGF0aH0iIHdpZHRoPSJ7d2lkdGh9IiBoZWlnaHQ9IntoZWlnaHR9IiBmcmFtZWJvcmRlcj0ibm8iPjwvaWZyYW1lPicsCmlubGluZV9tYXJrdXA6JzxkaXYgY2xhc3M9InBwX2lubGluZSI+e2NvbnRlbnR9PC9kaXY+JyxtcDRfbWFya3VwOic8dmlkZW8gd2lkdGg9IjEwMCUiIGhlaWdodD0iIiBwcmVsb2FkPSJhdXRvIiBhdXRvcGxheSBjb250cm9scz0iIiBpZD0icGxheWVyIiBzdHlsZT0id2lkdGg6IDEwMCU7Ij48c291cmNlIHR5cGU9InZpZGVvL21wNCIgc3JjPSJ7cGF0aH0iPjwvc291cmNlPjwvdmlkZW8+JyxjdXN0b21fbWFya3VwOiIiLHNvY2lhbF90b29sczonPGRpdiBjbGFzcz0idHdpdHRlciI+PGEgaHJlZj0iaHR0cDovL3R3aXR0ZXIuY29tL3NoYXJlIiBjbGFzcz0idHdpdHRlci1zaGFyZS1idXR0b24iIGRhdGEtY291bnQ9Im5vbmUiPlR3ZWV0PC9hPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly9wbGF0Zm9ybS50d2l0dGVyLmNvbS93aWRnZXRzLmpzIj5ceDNjL3NjcmlwdD48L2Rpdj48ZGl2IGNsYXNzPSJmYWNlYm9vayI+PGlmcmFtZSBzcmM9Ii8vd3d3LmZhY2Vib29rLmNvbS9wbHVnaW5zL2xpa2UucGhwP2xvY2FsZT1lbl9VUyZocmVmPXtsb2NhdGlvbl9ocmVmfSZhbXA7bGF5b3V0PWJ1dHRvbl9jb3VudCZhbXA7c2hvd19mYWNlcz10cnVlJmFtcDt3aWR0aD01MDAmYW1wO2FjdGlvbj1saWtlJmFtcDtmb250JmFtcDtjb2xvcnNjaGVtZT1saWdodCZhbXA7aGVpZ2h0PTIzIiBzY3JvbGxpbmc9Im5vIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9ImJvcmRlcjpub25lOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjUwMHB4OyBoZWlnaHQ6MjNweDsiIGFsbG93VHJhbnNwYXJlbmN5PSJ0cnVlIj48L2lmcmFtZT48L2Rpdj4nfSwKZSk7dmFyIGI9e30seD10aGlzLHI9ITEsZCx1LHYsQixuLG0saz1hKHdpbmRvdykuaGVpZ2h0KCksaD1hKHdpbmRvdykud2lkdGgoKSxxO2RvcmVzaXplPSEwO3Njcm9sbF9wb3M9QygpO2Eod2luZG93KS5vZmYoInJlc2l6ZS5wcmV0dHlwaG90byIpLm9uKCJyZXNpemUucHJldHR5cGhvdG8iLGZ1bmN0aW9uKCl7dygpO2s9YSh3aW5kb3cpLmhlaWdodCgpO2g9YSh3aW5kb3cpLndpZHRoKCk7InVuZGVmaW5lZCIhPXR5cGVvZiAkcHBfb3ZlcmxheSYmJHBwX292ZXJsYXkuaGVpZ2h0KGEoZG9jdW1lbnQpLmhlaWdodCgpKS53aWR0aChoKX0pO2lmKGUua2V5Ym9hcmRfc2hvcnRjdXRzKWEoZG9jdW1lbnQpLm9mZigia2V5ZG93bi5wcmV0dHlwaG90byIpLm9uKCJrZXlkb3duLnByZXR0eXBob3RvIixmdW5jdGlvbihjKXtpZigidW5kZWZpbmVkIiE9dHlwZW9mICRwcF9waWNfaG9sZGVyJiYkcHBfcGljX2hvbGRlci5pcygiOnZpc2libGUiKSlzd2l0Y2goYy5rZXlDb2RlKXtjYXNlIDM3OmEucHJldHR5UGhvdG8uY2hhbmdlUGFnZSgicHJldmlvdXMiKTsKYy5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgMzk6YS5wcmV0dHlQaG90by5jaGFuZ2VQYWdlKCJuZXh0Iik7Yy5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgMjc6Yi5tb2RhbHx8YS5wcmV0dHlQaG90by5jbG9zZSgpLGMucHJldmVudERlZmF1bHQoKX19KTthLnByZXR0eVBob3RvLmluaXRpYWxpemU9ZnVuY3Rpb24oKXtiPWU7InBwX2RlZmF1bHQiPT1iLnRoZW1lJiYoYi5ob3Jpem9udGFsX3BhZGRpbmc9MTYpO3RoZVJlbD1hKHRoaXMpLmF0dHIoYi5ob29rKTtnYWxsZXJ5UmVnRXhwPS9cWyg\/Oi4qKVxdLztwcF9pbWFnZXM9KGlzU2V0PWdhbGxlcnlSZWdFeHAuZXhlYyh0aGVSZWwpPyEwOiExKT9qUXVlcnkubWFwKHgsZnVuY3Rpb24oYyxmKXtpZigtMSE9YShjKS5hdHRyKGIuaG9vaykuaW5kZXhPZih0aGVSZWwpKXJldHVybiBhKGMpLmF0dHIoImhyZWYiKX0pOmEubWFrZUFycmF5KGEodGhpcykuYXR0cigiaHJlZiIpKTtwcF90aXRsZXM9aXNTZXQ\/alF1ZXJ5Lm1hcCh4LApmdW5jdGlvbihjLGYpe2lmKC0xIT1hKGMpLmF0dHIoYi5ob29rKS5pbmRleE9mKHRoZVJlbCkpcmV0dXJuIGEoYykuZmluZCgiaW1nIikuYXR0cigiYWx0Iik\/YShjKS5maW5kKCJpbWciKS5hdHRyKCJhbHQiKToiIn0pOmEubWFrZUFycmF5KGEodGhpcykuZmluZCgiaW1nIikuYXR0cigiYWx0IikpO3BwX2Rlc2NyaXB0aW9ucz1pc1NldD9qUXVlcnkubWFwKHgsZnVuY3Rpb24oYyxmKXtpZigtMSE9YShjKS5hdHRyKGIuaG9vaykuaW5kZXhPZih0aGVSZWwpKXJldHVybiBhKGMpLmF0dHIoInRpdGxlIik\/YShjKS5hdHRyKCJ0aXRsZSIpOiIifSk6YS5tYWtlQXJyYXkoYSh0aGlzKS5hdHRyKCJ0aXRsZSIpKTtwcF9pbWFnZXMubGVuZ3RoPmIub3ZlcmxheV9nYWxsZXJ5X21heCYmKGIub3ZlcmxheV9nYWxsZXJ5PSExKTtzZXRfcG9zaXRpb249alF1ZXJ5LmluQXJyYXkoYSh0aGlzKS5hdHRyKCJocmVmIikscHBfaW1hZ2VzKTtyZWxfaW5kZXg9aXNTZXQ\/c2V0X3Bvc2l0aW9uOmEoImFbIisKYi5ob29rKyJePSciK3RoZVJlbCsiJ10iKS5pbmRleChhKHRoaXMpKTtEKHRoaXMpO2lmKGIuYWxsb3dfcmVzaXplKWEod2luZG93KS5vbigic2Nyb2xsLnByZXR0eXBob3RvIixmdW5jdGlvbigpe3coKX0pO2EucHJldHR5UGhvdG8ub3BlbigpO3JldHVybiExfTthLnByZXR0eVBob3RvLm9wZW49ZnVuY3Rpb24oYyxmLEUsRil7InVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj1lLHBwX2ltYWdlcz1hLm1ha2VBcnJheShjKSxwcF90aXRsZXM9Zj9hLm1ha2VBcnJheShmKTphLm1ha2VBcnJheSgiIikscHBfZGVzY3JpcHRpb25zPUU\/YS5tYWtlQXJyYXkoRSk6YS5tYWtlQXJyYXkoIiIpLGlzU2V0PTE8cHBfaW1hZ2VzLmxlbmd0aD8hMDohMSxzZXRfcG9zaXRpb249Rj9GOjAsRChjLnRhcmdldCkpO2IuaGlkZWZsYXNoJiZhKCJvYmplY3QsZW1iZWQsaWZyYW1lW3NyYyo9eW91dHViZV0saWZyYW1lW3NyYyo9dmltZW9dIikuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIik7RyhhKHBwX2ltYWdlcykubGVuZ3RoKTsKYSgiLnBwX2xvYWRlckljb24iKS5zaG93KCk7Yi5kZWVwbGlua2luZyYmInVuZGVmaW5lZCIhPXR5cGVvZiB0aGVSZWwmJihsb2NhdGlvbi5oYXNoPXRoZVJlbCsiLyIrcmVsX2luZGV4KyIvIik7Yi5zb2NpYWxfdG9vbHMmJihmYWNlYm9va19saWtlX2xpbms9Yi5zb2NpYWxfdG9vbHMucmVwbGFjZSgie2xvY2F0aW9uX2hyZWZ9IixlbmNvZGVVUklDb21wb25lbnQobG9jYXRpb24uaHJlZikpLCRwcF9waWNfaG9sZGVyLmZpbmQoIi5wcF9zb2NpYWwiKS5odG1sKGZhY2Vib29rX2xpa2VfbGluaykpOyRwcHQuaXMoIjpoaWRkZW4iKSYmJHBwdC5jc3MoIm9wYWNpdHkiLDApLnNob3coKTskcHBfb3ZlcmxheS5zaG93KCkuZmFkZVRvKGIuYW5pbWF0aW9uX3NwZWVkLGIub3BhY2l0eSk7JHBwX3BpY19ob2xkZXIuZmluZCgiLmN1cnJlbnRUZXh0SG9sZGVyIikudGV4dChzZXRfcG9zaXRpb24rMStiLmNvdW50ZXJfc2VwYXJhdG9yX2xhYmVsK2EocHBfaW1hZ2VzKS5sZW5ndGgpOyJ1bmRlZmluZWQiIT0KdHlwZW9mIHBwX2Rlc2NyaXB0aW9uc1tzZXRfcG9zaXRpb25dJiYiIiE9cHBfZGVzY3JpcHRpb25zW3NldF9wb3NpdGlvbl0\/JHBwX3BpY19ob2xkZXIuZmluZCgiLnBwX2Rlc2NyaXB0aW9uIikuc2hvdygpLmh0bWwodW5lc2NhcGUocHBfZGVzY3JpcHRpb25zW3NldF9wb3NpdGlvbl0pKTokcHBfcGljX2hvbGRlci5maW5kKCIucHBfZGVzY3JpcHRpb24iKS5oaWRlKCk7bW92aWVfd2lkdGg9cGFyc2VGbG9hdChsKCJ3aWR0aCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pKT9sKCJ3aWR0aCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pOmIuZGVmYXVsdF93aWR0aC50b1N0cmluZygpO21vdmllX2hlaWdodD1wYXJzZUZsb2F0KGwoImhlaWdodCIscHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pKT9sKCJoZWlnaHQiLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKTpiLmRlZmF1bHRfaGVpZ2h0LnRvU3RyaW5nKCk7cj0hMTstMSE9bW92aWVfaGVpZ2h0LmluZGV4T2YoIiUiKSYmKG1vdmllX2hlaWdodD0KcGFyc2VGbG9hdChhKHdpbmRvdykuaGVpZ2h0KCkqcGFyc2VGbG9hdChtb3ZpZV9oZWlnaHQpLzEwMC0xNTApLHI9ITApOy0xIT1tb3ZpZV93aWR0aC5pbmRleE9mKCIlIikmJihtb3ZpZV93aWR0aD1wYXJzZUZsb2F0KGEod2luZG93KS53aWR0aCgpKnBhcnNlRmxvYXQobW92aWVfd2lkdGgpLzEwMC0xNTApLHI9ITApOyRwcF9waWNfaG9sZGVyLmZhZGVJbihmdW5jdGlvbigpe2Iuc2hvd190aXRsZSYmIiIhPXBwX3RpdGxlc1tzZXRfcG9zaXRpb25dJiYidW5kZWZpbmVkIiE9dHlwZW9mIHBwX3RpdGxlc1tzZXRfcG9zaXRpb25dPyRwcHQuaHRtbCh1bmVzY2FwZShwcF90aXRsZXNbc2V0X3Bvc2l0aW9uXSkpOiRwcHQuaHRtbCgiJm5ic3A7Iik7aW1nUHJlbG9hZGVyPSIiO3NraXBJbmplY3Rpb249ITE7c3dpdGNoKHQocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0pKXtjYXNlICJpbWFnZSI6aW1nUHJlbG9hZGVyPW5ldyBJbWFnZTtuZXh0SW1hZ2U9bmV3IEltYWdlO2lzU2V0JiZzZXRfcG9zaXRpb248CmEocHBfaW1hZ2VzKS5sZW5ndGgtMSYmKG5leHRJbWFnZS5zcmM9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbisxXSk7cHJldkltYWdlPW5ldyBJbWFnZTtpc1NldCYmcHBfaW1hZ2VzW3NldF9wb3NpdGlvbi0xXSYmKHByZXZJbWFnZS5zcmM9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbi0xXSk7JHBwX3BpY19ob2xkZXIuZmluZCgiI3BwX2Z1bGxfcmVzIilbMF0uaW5uZXJIVE1MPWIuaW1hZ2VfbWFya3VwLnJlcGxhY2UoL3twYXRofS9nLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKTtpbWdQcmVsb2FkZXIub25sb2FkPWZ1bmN0aW9uKCl7ZD1nKGltZ1ByZWxvYWRlci53aWR0aCxpbWdQcmVsb2FkZXIuaGVpZ2h0KTtwKCl9O2ltZ1ByZWxvYWRlci5vbmVycm9yPWZ1bmN0aW9uKCl7YWxlcnQoIkltYWdlIGNhbm5vdCBiZSBsb2FkZWQuIE1ha2Ugc3VyZSB0aGUgcGF0aCBpcyBjb3JyZWN0IGFuZCBpbWFnZSBleGlzdC4iKTthLnByZXR0eVBob3RvLmNsb3NlKCl9O2ltZ1ByZWxvYWRlci5zcmM9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbl07CmJyZWFrO2Nhc2UgInlvdXR1YmUiOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO21vdmllX2lkPWwoInYiLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKTsiIj09bW92aWVfaWQmJihtb3ZpZV9pZD1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXS5zcGxpdCgieW91dHUuYmUvIiksbW92aWVfaWQ9bW92aWVfaWRbMV0sMDxtb3ZpZV9pZC5pbmRleE9mKCI\/IikmJihtb3ZpZV9pZD1tb3ZpZV9pZC5zdWJzdHIoMCxtb3ZpZV9pZC5pbmRleE9mKCI\/IikpKSwwPG1vdmllX2lkLmluZGV4T2YoIiYiKSYmKG1vdmllX2lkPW1vdmllX2lkLnN1YnN0cigwLG1vdmllX2lkLmluZGV4T2YoIiYiKSkpKTttb3ZpZT0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvIittb3ZpZV9pZDtsKCJyZWwiLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKT9tb3ZpZSs9Ij9yZWw9IitsKCJyZWwiLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKTptb3ZpZSs9Ij9yZWw9MSI7Yi5hdXRvcGxheSYmKG1vdmllKz0iJmF1dG9wbGF5PTEiKTsKdG9JbmplY3Q9Yi5pZnJhbWVfbWFya3VwLnJlcGxhY2UoL3t3aWR0aH0vZyxkLndpZHRoKS5yZXBsYWNlKC97aGVpZ2h0fS9nLGQuaGVpZ2h0KS5yZXBsYWNlKC97d21vZGV9L2csYi53bW9kZSkucmVwbGFjZSgve3BhdGh9L2csbW92aWUpO2JyZWFrO2Nhc2UgInZpbWVvIjpkPWcobW92aWVfd2lkdGgsbW92aWVfaGVpZ2h0KTttb3ZpZV9pZD1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTttb3ZpZT0iaHR0cDovL3BsYXllci52aW1lby5jb20vdmlkZW8vIittb3ZpZV9pZC5tYXRjaCgvaHR0cChzPyk6XC9cLyh3d3dcLik\/dmltZW8uY29tXC8oXGQrKS8pWzNdKyI\/dGl0bGU9MCZhbXA7YnlsaW5lPTAmYW1wO3BvcnRyYWl0PTAiO2IuYXV0b3BsYXkmJihtb3ZpZSs9IiZhdXRvcGxheT0xOyIpO3ZpbWVvX3dpZHRoPWQud2lkdGgrIi9lbWJlZC8\/bW9vZ193aWR0aD0iK2Qud2lkdGg7dG9JbmplY3Q9Yi5pZnJhbWVfbWFya3VwLnJlcGxhY2UoL3t3aWR0aH0vZyx2aW1lb193aWR0aCkucmVwbGFjZSgve2hlaWdodH0vZywKZC5oZWlnaHQpLnJlcGxhY2UoL3twYXRofS9nLG1vdmllKTticmVhaztjYXNlICJtcDQiOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO21vdmllX3VybD1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTt0b0luamVjdD1iLm1wNF9tYXJrdXAucmVwbGFjZSgve3BhdGh9L2csbW92aWVfdXJsKTticmVhaztjYXNlICJxdWlja3RpbWUiOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO2QuaGVpZ2h0Kz0xNTtkLmNvbnRlbnRIZWlnaHQrPTE1O2QuY29udGFpbmVySGVpZ2h0Kz0xNTt0b0luamVjdD1iLnF1aWNrdGltZV9tYXJrdXAucmVwbGFjZSgve3dpZHRofS9nLGQud2lkdGgpLnJlcGxhY2UoL3toZWlnaHR9L2csZC5oZWlnaHQpLnJlcGxhY2UoL3t3bW9kZX0vZyxiLndtb2RlKS5yZXBsYWNlKC97cGF0aH0vZyxwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkucmVwbGFjZSgve2F1dG9wbGF5fS9nLGIuYXV0b3BsYXkpO2JyZWFrO2Nhc2UgImZsYXNoIjpkPWcobW92aWVfd2lkdGgsCm1vdmllX2hlaWdodCk7Zmxhc2hfdmFycz1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTtmbGFzaF92YXJzPWZsYXNoX3ZhcnMuc3Vic3RyaW5nKHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dLmluZGV4T2YoImZsYXNodmFycyIpKzEwLHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dLmxlbmd0aCk7ZmlsZW5hbWU9cHBfaW1hZ2VzW3NldF9wb3NpdGlvbl07ZmlsZW5hbWU9ZmlsZW5hbWUuc3Vic3RyaW5nKDAsZmlsZW5hbWUuaW5kZXhPZigiPyIpKTt0b0luamVjdD1iLmZsYXNoX21hcmt1cC5yZXBsYWNlKC97d2lkdGh9L2csZC53aWR0aCkucmVwbGFjZSgve2hlaWdodH0vZyxkLmhlaWdodCkucmVwbGFjZSgve3dtb2RlfS9nLGIud21vZGUpLnJlcGxhY2UoL3twYXRofS9nLGZpbGVuYW1lKyI\/IitmbGFzaF92YXJzKTticmVhaztjYXNlICJpZnJhbWUiOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO2ZyYW1lX3VybD1wcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXTtmcmFtZV91cmw9ZnJhbWVfdXJsLnN1YnN0cigwLApmcmFtZV91cmwuaW5kZXhPZigiaWZyYW1lIiktMSk7dG9JbmplY3Q9Yi5pZnJhbWVfbWFya3VwLnJlcGxhY2UoL3t3aWR0aH0vZyxkLndpZHRoKS5yZXBsYWNlKC97aGVpZ2h0fS9nLGQuaGVpZ2h0KS5yZXBsYWNlKC97cGF0aH0vZyxmcmFtZV91cmwpO2JyZWFrO2Nhc2UgImFqYXgiOmRvcmVzaXplPSExO2Q9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO3NraXBJbmplY3Rpb249ZG9yZXNpemU9ITA7YS5nZXQocHBfaW1hZ2VzW3NldF9wb3NpdGlvbl0sZnVuY3Rpb24oSCl7dG9JbmplY3Q9Yi5pbmxpbmVfbWFya3VwLnJlcGxhY2UoL3tjb250ZW50fS9nLEgpOyRwcF9waWNfaG9sZGVyLmZpbmQoIiNwcF9mdWxsX3JlcyIpWzBdLmlubmVySFRNTD10b0luamVjdDtwKCl9KTticmVhaztjYXNlICJjdXN0b20iOmQ9Zyhtb3ZpZV93aWR0aCxtb3ZpZV9oZWlnaHQpO3RvSW5qZWN0PWIuY3VzdG9tX21hcmt1cDticmVhaztjYXNlICJpbmxpbmUiOm15Q2xvbmU9YShwcF9pbWFnZXNbc2V0X3Bvc2l0aW9uXSkuY2xvbmUoKS5hcHBlbmQoJzxiciBjbGVhcj0iYWxsIiAvPicpLmNzcyh7d2lkdGg6Yi5kZWZhdWx0X3dpZHRofSkud3JhcElubmVyKCc8ZGl2IGlkPSJwcF9mdWxsX3JlcyI+PGRpdiBjbGFzcz0icHBfaW5saW5lIj48L2Rpdj48L2Rpdj4nKS5hcHBlbmRUbyhhKCJib2R5IikpLnNob3coKSwKZG9yZXNpemU9ITEsZD1nKGEobXlDbG9uZSkud2lkdGgoKSxhKG15Q2xvbmUpLmhlaWdodCgpKSxkb3Jlc2l6ZT0hMCxhKG15Q2xvbmUpLnJlbW92ZSgpLHRvSW5qZWN0PWIuaW5saW5lX21hcmt1cC5yZXBsYWNlKC97Y29udGVudH0vZyxhKHBwX2ltYWdlc1tzZXRfcG9zaXRpb25dKS5odG1sKCkpfWltZ1ByZWxvYWRlcnx8c2tpcEluamVjdGlvbnx8KCRwcF9waWNfaG9sZGVyLmZpbmQoIiNwcF9mdWxsX3JlcyIpWzBdLmlubmVySFRNTD10b0luamVjdCxwKCkpfSk7cmV0dXJuITF9O2EucHJldHR5UGhvdG8uY2hhbmdlUGFnZT1mdW5jdGlvbihjKXtjdXJyZW50R2FsbGVyeVBhZ2U9MDsicHJldmlvdXMiPT1jPyhzZXRfcG9zaXRpb24tLSwwPnNldF9wb3NpdGlvbiYmKHNldF9wb3NpdGlvbj1hKHBwX2ltYWdlcykubGVuZ3RoLTEpKToibmV4dCI9PWM\/KHNldF9wb3NpdGlvbisrLHNldF9wb3NpdGlvbj5hKHBwX2ltYWdlcykubGVuZ3RoLTEmJihzZXRfcG9zaXRpb249MCkpOnNldF9wb3NpdGlvbj0KYztyZWxfaW5kZXg9c2V0X3Bvc2l0aW9uO2RvcmVzaXplfHwoZG9yZXNpemU9ITApO2IuYWxsb3dfZXhwYW5kJiZhKCIucHBfY29udHJhY3QiKS5yZW1vdmVDbGFzcygicHBfY29udHJhY3QiKS5hZGRDbGFzcygicHBfZXhwYW5kIik7eihmdW5jdGlvbigpe2EucHJldHR5UGhvdG8ub3BlbigpfSl9O2EucHJldHR5UGhvdG8uY2hhbmdlR2FsbGVyeVBhZ2U9ZnVuY3Rpb24oYyl7Im5leHQiPT1jPyhjdXJyZW50R2FsbGVyeVBhZ2UrKyxjdXJyZW50R2FsbGVyeVBhZ2U+dG90YWxQYWdlJiYoY3VycmVudEdhbGxlcnlQYWdlPTApKToicHJldmlvdXMiPT1jPyhjdXJyZW50R2FsbGVyeVBhZ2UtLSwwPmN1cnJlbnRHYWxsZXJ5UGFnZSYmKGN1cnJlbnRHYWxsZXJ5UGFnZT10b3RhbFBhZ2UpKTpjdXJyZW50R2FsbGVyeVBhZ2U9YztzbGlkZV9zcGVlZD0ibmV4dCI9PWN8fCJwcmV2aW91cyI9PWM\/Yi5hbmltYXRpb25fc3BlZWQ6MDtzbGlkZV90bz1jdXJyZW50R2FsbGVyeVBhZ2UqaXRlbXNQZXJQYWdlKgppdGVtV2lkdGg7JHBwX2dhbGxlcnkuZmluZCgidWwiKS5hbmltYXRlKHtsZWZ0Oi1zbGlkZV90b30sc2xpZGVfc3BlZWQpfTthLnByZXR0eVBob3RvLnN0YXJ0U2xpZGVzaG93PWZ1bmN0aW9uKCl7InVuZGVmaW5lZCI9PXR5cGVvZiBxPygkcHBfcGljX2hvbGRlci5maW5kKCIucHBfcGxheSIpLm9mZigiY2xpY2siKS5yZW1vdmVDbGFzcygicHBfcGxheSIpLmFkZENsYXNzKCJwcF9wYXVzZSIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXthLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3coKTtyZXR1cm4hMX0pLHE9c2V0SW50ZXJ2YWwoYS5wcmV0dHlQaG90by5zdGFydFNsaWRlc2hvdyxiLnNsaWRlc2hvdykpOmEucHJldHR5UGhvdG8uY2hhbmdlUGFnZSgibmV4dCIpfTthLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3c9ZnVuY3Rpb24oKXskcHBfcGljX2hvbGRlci5maW5kKCIucHBfcGF1c2UiKS5vZmYoImNsaWNrIikucmVtb3ZlQ2xhc3MoInBwX3BhdXNlIikuYWRkQ2xhc3MoInBwX3BsYXkiKS5vbigiY2xpY2siLApmdW5jdGlvbigpe2EucHJldHR5UGhvdG8uc3RhcnRTbGlkZXNob3coKTtyZXR1cm4hMX0pO2NsZWFySW50ZXJ2YWwocSk7cT12b2lkIDB9O2EucHJldHR5UGhvdG8uY2xvc2U9ZnVuY3Rpb24oKXskcHBfb3ZlcmxheS5pcygiOmFuaW1hdGVkIil8fChhLnByZXR0eVBob3RvLnN0b3BTbGlkZXNob3coKSwkcHBfcGljX2hvbGRlci5zdG9wKCkuZmluZCgib2JqZWN0LGVtYmVkIikuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIiksYSgiZGl2LnBwX3BpY19ob2xkZXIsZGl2LnBwdCwucHBfZmFkZSIpLmZhZGVPdXQoYi5hbmltYXRpb25fc3BlZWQsZnVuY3Rpb24oKXthKHRoaXMpLnJlbW92ZSgpfSksJHBwX292ZXJsYXkuZmFkZU91dChiLmFuaW1hdGlvbl9zcGVlZCxmdW5jdGlvbigpe2IuaGlkZWZsYXNoJiZhKCJvYmplY3QsZW1iZWQsaWZyYW1lW3NyYyo9eW91dHViZV0saWZyYW1lW3NyYyo9dmltZW9dIikuY3NzKCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpO2EodGhpcykucmVtb3ZlKCk7CmEod2luZG93KS5vZmYoInNjcm9sbC5wcmV0dHlwaG90byIpOy0xIT09bG9jYXRpb24uaHJlZi5pbmRleE9mKCIjcHJldHR5UGhvdG8iKSYmKGxvY2F0aW9uLmhhc2g9InByZXR0eVBob3RvIik7Yi5jYWxsYmFjaygpO2RvcmVzaXplPSEwO3U9ITE7ZGVsZXRlIGJ9KSl9OyFwcF9hbHJlYWR5SW5pdGlhbGl6ZWQmJnkoKSYmKHBwX2FscmVhZHlJbml0aWFsaXplZD0hMCxoYXNoUmVsPWhhc2hJbmRleD15KCksaGFzaEluZGV4PWhhc2hJbmRleC5zdWJzdHJpbmcoaGFzaEluZGV4LmluZGV4T2YoIi8iKSsxLGhhc2hJbmRleC5sZW5ndGgtMSksaGFzaFJlbD1oYXNoUmVsLnN1YnN0cmluZygwLGhhc2hSZWwuaW5kZXhPZigiLyIpKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YSgiYVsiK2UuaG9vaysiXj0nIitoYXNoUmVsKyInXTplcSgiK2hhc2hJbmRleCsiKSIpLnRyaWdnZXIoImNsaWNrIil9LDUwKSk7cmV0dXJuIHRoaXMub2ZmKCJjbGljay5wcmV0dHlwaG90byIpLm9uKCJjbGljay5wcmV0dHlwaG90byIsCmEucHJldHR5UGhvdG8uaW5pdGlhbGl6ZSl9fSkoalF1ZXJ5KTt2YXIgcHBfYWxyZWFkeUluaXRpYWxpemVkPSExOwovKiogL20vanMvanF1ZXJ5LnRyYW5zaXRpb24ubWluLmpzICoqLwovKiEKICogalF1ZXJ5IFRyYW5zaXQgLSBDU1MzIHRyYW5zaXRpb25zIGFuZCB0cmFuc2Zvcm1hdGlvbnMKICogQ29weXJpZ2h0KGMpIDIwMTEgUmljbyBTdGEuIENydXogPHJpY29Acmljb3N0YWNydXouY29tPgogKiBNSVQgTGljZW5zZWQuCiAqCiAqIGh0dHA6Ly9yaWNvc3RhY3J1ei5jb20vanF1ZXJ5LnRyYW5zaXQKICogaHR0cDovL2dpdGh1Yi5jb20vcnN0YWNydXovanF1ZXJ5LnRyYW5zaXQKICovCihmdW5jdGlvbihkKXtmdW5jdGlvbiBrKGEpe3ZhciBiPVsiTW96IiwiV2Via2l0IiwiTyIsIm1zIl0sYz1hLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK2Euc3Vic3RyKDEpO2lmKGEgaW4gaS5zdHlsZSlyZXR1cm4gYTtmb3IoYT0wO2E8Yi5sZW5ndGg7KythKXt2YXIgZD1iW2FdK2M7aWYoZCBpbiBpLnN0eWxlKXJldHVybiBkfX1mdW5jdGlvbiBqKGEpeyJzdHJpbmciPT09dHlwZW9mIGEmJnRoaXMucGFyc2UoYSk7cmV0dXJuIHRoaXN9ZnVuY3Rpb24gcChhLGIsYyl7ITA9PT1iP2EucXVldWUoYyk6Yj9hLnF1ZXVlKGIsYyk6YygpfWZ1bmN0aW9uIG0oYSl7dmFyIGI9W107ZC5lYWNoKGEsZnVuY3Rpb24oYSl7YT1kLmNhbWVsQ2FzZShhKTthPWQudHJhbnNpdC5wcm9wZXJ0eU1hcFthXXx8YTthPXIoYSk7LTE9PT1kLmluQXJyYXkoYSxiKSYmYi5wdXNoKGEpfSk7cmV0dXJuIGJ9ZnVuY3Rpb24gcShhLGIsYyxlKXthPW0oYSk7ZC5jc3NFYXNlW2NdJiYoYz1kLmNzc0Vhc2VbY10pOwp2YXIgaD0iIituKGIpKyIgIitjOzA8cGFyc2VJbnQoZSwxMCkmJihoKz0iICIrbihlKSk7dmFyIGY9W107ZC5lYWNoKGEsZnVuY3Rpb24oYSxiKXtmLnB1c2goYisiICIraCl9KTtyZXR1cm4gZi5qb2luKCIsICIpfWZ1bmN0aW9uIGYoYSxiKXtifHwoZC5jc3NOdW1iZXJbYV09ITApO2QudHJhbnNpdC5wcm9wZXJ0eU1hcFthXT1lLnRyYW5zZm9ybTtkLmNzc0hvb2tzW2FdPXtnZXQ6ZnVuY3Rpb24oYil7cmV0dXJuKGQoYikuY3NzKCJ0cmFuc2Zvcm0iKXx8bmV3IGopLmdldChhKX0sc2V0OmZ1bmN0aW9uKGIsZSl7dmFyIGg9ZChiKS5jc3MoInRyYW5zZm9ybSIpfHxuZXcgajtoLnNldEZyb21TdHJpbmcoYSxlKTtkKGIpLmNzcyh7dHJhbnNmb3JtOmh9KX19fWZ1bmN0aW9uIHIoYSl7cmV0dXJuIGEucmVwbGFjZSgvKFtBLVpdKS9nLGZ1bmN0aW9uKGEpe3JldHVybiItIithLnRvTG93ZXJDYXNlKCl9KX1mdW5jdGlvbiBnKGEsYil7cmV0dXJuInN0cmluZyI9PT10eXBlb2YgYSYmIWEubWF0Y2goL15bXC0wLTlcLl0rJC8pPwphOiIiK2ErYn1mdW5jdGlvbiBuKGEpe2QuZnguc3BlZWRzW2FdJiYoYT1kLmZ4LnNwZWVkc1thXSk7cmV0dXJuIGcoYSwibXMiKX1kLnRyYW5zaXQ9e3ZlcnNpb246IjAuMS4zIixwcm9wZXJ0eU1hcDp7bWFyZ2luTGVmdDoibWFyZ2luIixtYXJnaW5SaWdodDoibWFyZ2luIixtYXJnaW5Cb3R0b206Im1hcmdpbiIsbWFyZ2luVG9wOiJtYXJnaW4iLHBhZGRpbmdMZWZ0OiJwYWRkaW5nIixwYWRkaW5nUmlnaHQ6InBhZGRpbmciLHBhZGRpbmdCb3R0b206InBhZGRpbmciLHBhZGRpbmdUb3A6InBhZGRpbmcifSxlbmFibGVkOiEwLHVzZVRyYW5zaXRpb25FbmQ6ITF9O3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLGU9e30scz0tMTxuYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkuaW5kZXhPZigiY2hyb21lIik7ZS50cmFuc2l0aW9uPWsoInRyYW5zaXRpb24iKTtlLnRyYW5zaXRpb25EZWxheT1rKCJ0cmFuc2l0aW9uRGVsYXkiKTtlLnRyYW5zZm9ybT1rKCJ0cmFuc2Zvcm0iKTsKZS50cmFuc2Zvcm1PcmlnaW49aygidHJhbnNmb3JtT3JpZ2luIik7aS5zdHlsZVtlLnRyYW5zZm9ybV09IiI7aS5zdHlsZVtlLnRyYW5zZm9ybV09InJvdGF0ZVkoOTBkZWcpIjtlLnRyYW5zZm9ybTNkPSIiIT09aS5zdHlsZVtlLnRyYW5zZm9ybV07ZC5leHRlbmQoZC5zdXBwb3J0LGUpO3ZhciBvPWUudHJhbnNpdGlvbkVuZD17TW96VHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCIsT1RyYW5zaXRpb246Im9UcmFuc2l0aW9uRW5kIixXZWJraXRUcmFuc2l0aW9uOiJ3ZWJraXRUcmFuc2l0aW9uRW5kIixtc1RyYW5zaXRpb246Ik1TVHJhbnNpdGlvbkVuZCJ9W2UudHJhbnNpdGlvbl18fG51bGwsaT1udWxsO2QuY3NzRWFzZT17X2RlZmF1bHQ6ImVhc2UiLCJpbiI6ImVhc2UtaW4iLG91dDoiZWFzZS1vdXQiLCJpbi1vdXQiOiJlYXNlLWluLW91dCIsc25hcDoiY3ViaWMtYmV6aWVyKDAsMSwuNSwxKSJ9O2QuY3NzSG9va3MudHJhbnNmb3JtPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGQoYSkuZGF0YSgidHJhbnNmb3JtIil9LApzZXQ6ZnVuY3Rpb24oYSxiKXt2YXIgYz1iO2MgaW5zdGFuY2VvZiBqfHwoYz1uZXcgaihjKSk7YS5zdHlsZVtlLnRyYW5zZm9ybV09IldlYmtpdFRyYW5zZm9ybSI9PT1lLnRyYW5zZm9ybSYmIXM\/Yy50b1N0cmluZyghMCk6Yy50b1N0cmluZygpO2QoYSkuZGF0YSgidHJhbnNmb3JtIixjKX19O2QuY3NzSG9va3MudHJhbnNmb3JtT3JpZ2luPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3R5bGVbZS50cmFuc2Zvcm1PcmlnaW5dfSxzZXQ6ZnVuY3Rpb24oYSxiKXthLnN0eWxlW2UudHJhbnNmb3JtT3JpZ2luXT1ifX07ZC5jc3NIb29rcy50cmFuc2l0aW9uPXtnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIGEuc3R5bGVbZS50cmFuc2l0aW9uXX0sc2V0OmZ1bmN0aW9uKGEsYil7YS5zdHlsZVtlLnRyYW5zaXRpb25dPWJ9fTtmKCJzY2FsZSIpO2YoInRyYW5zbGF0ZSIpO2YoInJvdGF0ZSIpO2YoInJvdGF0ZVgiKTtmKCJyb3RhdGVZIik7Zigicm90YXRlM2QiKTtmKCJwZXJzcGVjdGl2ZSIpOwpmKCJza2V3WCIpO2YoInNrZXdZIik7ZigieCIsITApO2YoInkiLCEwKTtqLnByb3RvdHlwZT17c2V0RnJvbVN0cmluZzpmdW5jdGlvbihhLGIpe3ZhciBjPSJzdHJpbmciPT09dHlwZW9mIGI\/Yi5zcGxpdCgiLCIpOmIuY29uc3RydWN0b3I9PT1BcnJheT9iOltiXTtjLnVuc2hpZnQoYSk7ai5wcm90b3R5cGUuc2V0LmFwcGx5KHRoaXMsYyl9LHNldDpmdW5jdGlvbihhKXt2YXIgYj1BcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkoYXJndW1lbnRzLFsxXSk7dGhpcy5zZXR0ZXJbYV0\/dGhpcy5zZXR0ZXJbYV0uYXBwbHkodGhpcyxiKTp0aGlzW2FdPWIuam9pbigiLCIpfSxnZXQ6ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuZ2V0dGVyW2FdP3RoaXMuZ2V0dGVyW2FdLmFwcGx5KHRoaXMpOnRoaXNbYV18fDB9LHNldHRlcjp7cm90YXRlOmZ1bmN0aW9uKGEpe3RoaXMucm90YXRlPWcoYSwiZGVnIil9LHJvdGF0ZVg6ZnVuY3Rpb24oYSl7dGhpcy5yb3RhdGVYPWcoYSwiZGVnIil9LHJvdGF0ZVk6ZnVuY3Rpb24oYSl7dGhpcy5yb3RhdGVZPQpnKGEsImRlZyIpfSxzY2FsZTpmdW5jdGlvbihhLGIpe3ZvaWQgMD09PWImJihiPWEpO3RoaXMuc2NhbGU9YSsiLCIrYn0sc2tld1g6ZnVuY3Rpb24oYSl7dGhpcy5za2V3WD1nKGEsImRlZyIpfSxza2V3WTpmdW5jdGlvbihhKXt0aGlzLnNrZXdZPWcoYSwiZGVnIil9LHBlcnNwZWN0aXZlOmZ1bmN0aW9uKGEpe3RoaXMucGVyc3BlY3RpdmU9ZyhhLCJweCIpfSx4OmZ1bmN0aW9uKGEpe3RoaXMuc2V0KCJ0cmFuc2xhdGUiLGEsbnVsbCl9LHk6ZnVuY3Rpb24oYSl7dGhpcy5zZXQoInRyYW5zbGF0ZSIsbnVsbCxhKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKGEsYil7dm9pZCAwPT09dGhpcy5fdHJhbnNsYXRlWCYmKHRoaXMuX3RyYW5zbGF0ZVg9MCk7dm9pZCAwPT09dGhpcy5fdHJhbnNsYXRlWSYmKHRoaXMuX3RyYW5zbGF0ZVk9MCk7bnVsbCE9PWEmJih0aGlzLl90cmFuc2xhdGVYPWcoYSwicHgiKSk7bnVsbCE9PWImJih0aGlzLl90cmFuc2xhdGVZPWcoYiwicHgiKSk7dGhpcy50cmFuc2xhdGU9CnRoaXMuX3RyYW5zbGF0ZVgrIiwiK3RoaXMuX3RyYW5zbGF0ZVl9fSxnZXR0ZXI6e3g6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhbnNsYXRlWHx8MH0seTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2xhdGVZfHwwfSxzY2FsZTpmdW5jdGlvbigpe3ZhciBhPSh0aGlzLnNjYWxlfHwiMSwxIikuc3BsaXQoIiwiKTthWzBdJiYoYVswXT1wYXJzZUZsb2F0KGFbMF0pKTthWzFdJiYoYVsxXT1wYXJzZUZsb2F0KGFbMV0pKTtyZXR1cm4gYVswXT09PWFbMV0\/YVswXTphfSxyb3RhdGUzZDpmdW5jdGlvbigpe2Zvcih2YXIgYT0odGhpcy5yb3RhdGUzZHx8IjAsMCwwLDBkZWciKS5zcGxpdCgiLCIpLGI9MDszPj1iOysrYilhW2JdJiYoYVtiXT1wYXJzZUZsb2F0KGFbYl0pKTthWzNdJiYoYVszXT1nKGFbM10sImRlZyIpKTtyZXR1cm4gYX19LHBhcnNlOmZ1bmN0aW9uKGEpe3ZhciBiPXRoaXM7YS5yZXBsYWNlKC8oW2EtekEtWjAtOV0rKVwoKC4qPylcKS9nLGZ1bmN0aW9uKGEsZCwKZSl7Yi5zZXRGcm9tU3RyaW5nKGQsZSl9KX0sdG9TdHJpbmc6ZnVuY3Rpb24oYSl7dmFyIGI9W10sYztmb3IoYyBpbiB0aGlzKWlmKHRoaXMuaGFzT3duUHJvcGVydHkoYykmJihlLnRyYW5zZm9ybTNkfHwhKCJyb3RhdGVYIj09PWN8fCJyb3RhdGVZIj09PWN8fCJwZXJzcGVjdGl2ZSI9PT1jfHwidHJhbnNmb3JtT3JpZ2luIj09PWMpKSkiXyIhPT1jWzBdJiYoYSYmInNjYWxlIj09PWM\/Yi5wdXNoKGMrIjNkKCIrdGhpc1tjXSsiLDEpIik6YSYmInRyYW5zbGF0ZSI9PT1jP2IucHVzaChjKyIzZCgiK3RoaXNbY10rIiwwKSIpOmIucHVzaChjKyIoIit0aGlzW2NdKyIpIikpO3JldHVybiBiLmpvaW4oIiAiKX19O2QuZm4udHJhbnNpdGlvbj1kLmZuLnRyYW5zaXQ9ZnVuY3Rpb24oYSxiLGMsZil7dmFyIGg9dGhpcyxnPTAsaT0hMDsiZnVuY3Rpb24iPT09dHlwZW9mIGImJihmPWIsYj12b2lkIDApOyJmdW5jdGlvbiI9PT10eXBlb2YgYyYmKGY9YyxjPXZvaWQgMCk7InVuZGVmaW5lZCIhPT0KdHlwZW9mIGEuZWFzaW5nJiYoYz1hLmVhc2luZyxkZWxldGUgYS5lYXNpbmcpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZHVyYXRpb24mJihiPWEuZHVyYXRpb24sZGVsZXRlIGEuZHVyYXRpb24pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuY29tcGxldGUmJihmPWEuY29tcGxldGUsZGVsZXRlIGEuY29tcGxldGUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEucXVldWUmJihpPWEucXVldWUsZGVsZXRlIGEucXVldWUpOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZGVsYXkmJihnPWEuZGVsYXksZGVsZXRlIGEuZGVsYXkpOyJ1bmRlZmluZWQiPT09dHlwZW9mIGImJihiPWQuZnguc3BlZWRzLl9kZWZhdWx0KTsidW5kZWZpbmVkIj09PXR5cGVvZiBjJiYoYz1kLmNzc0Vhc2UuX2RlZmF1bHQpO3ZhciBiPW4oYiksaj1xKGEsYixjLGcpLGw9ZC50cmFuc2l0LmVuYWJsZWQmJmUudHJhbnNpdGlvbj9wYXJzZUludChiLDEwKStwYXJzZUludChnLDEwKTowO2lmKDA9PT1sKXJldHVybiBwKGgsaSxmdW5jdGlvbihiKXtoLmNzcyhhKTsKZiYmZi5hcHBseShoKTtiJiZiKCl9KSxoO3ZhciBrPXt9LG09ZnVuY3Rpb24oYil7dmFyIGM9ZmFsc2UsZz1mdW5jdGlvbigpe2MmJmgub2ZmKG8sZyk7bD4wJiZoLmVhY2goZnVuY3Rpb24oKXt0aGlzLnN0eWxlW2UudHJhbnNpdGlvbl09a1t0aGlzXXx8bnVsbH0pO3R5cGVvZiBmPT09ImZ1bmN0aW9uIiYmZi5hcHBseShoKTt0eXBlb2YgYj09PSJmdW5jdGlvbiImJmIoKX07aWYobD4wJiZvJiZkLnRyYW5zaXQudXNlVHJhbnNpdGlvbkVuZCl7Yz10cnVlO2gub24obyxnKX1lbHNlIHdpbmRvdy5zZXRUaW1lb3V0KGcsbCk7aC5lYWNoKGZ1bmN0aW9uKCl7bD4wJiYodGhpcy5zdHlsZVtlLnRyYW5zaXRpb25dPWopO2QodGhpcykuY3NzKGEpfSl9O3AoaCxpLGZ1bmN0aW9uKGEpe3ZhciBiPTA7ZS50cmFuc2l0aW9uPT09Ik1velRyYW5zaXRpb24iJiZiPDI1JiYoYj0yNSk7d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKXttKGEpfSxiKX0pO3JldHVybiB0aGlzfTtkLnRyYW5zaXQuZ2V0VHJhbnNpdGlvblZhbHVlPQpxfSkoalF1ZXJ5KTsvKkVPRiovOwovKiogL20vanMvanF1ZXJ5LnRvdWNoU3dpcGUubWluLmpzICoqLwooZnVuY3Rpb24oZyl7Zy5mbi5zd2lwZT1mdW5jdGlvbihtKXtpZighdGhpcylyZXR1cm4gZmFsc2U7dmFyIGI9e2ZpbmdlcnM6MSx0aHJlc2hvbGQ6NzUsc3dpcGU6bnVsbCxzd2lwZUxlZnQ6bnVsbCxzd2lwZVJpZ2h0Om51bGwsc3dpcGVVcDpudWxsLHN3aXBlRG93bjpudWxsLHN3aXBlU3RhdHVzOm51bGwsY2xpY2s6bnVsbCx0cmlnZ2VyT25Ub3VjaEVuZDp0cnVlLGFsbG93UGFnZVNjcm9sbDoiYXV0byJ9LHA9ImxlZnQiLHY9InJpZ2h0Iix3PSJ1cCIseD0iZG93biIseT0ibm9uZSIsej0iaG9yaXpvbnRhbCIsQT0idmVydGljYWwiLEc9ImF1dG8iLEg9InN0YXJ0IixCPSJtb3ZlIixxPSJlbmQiLG49ImNhbmNlbCIsZD0ib250b3VjaHN0YXJ0ImluIHdpbmRvdyxDPWQ\/InRvdWNoc3RhcnQiOiJtb3VzZWRvd24iLHI9ZD8idG91Y2htb3ZlIjoibW91c2Vtb3ZlIixzPWQ\/InRvdWNoZW5kIjoibW91c2V1cCIsYz0ic3RhcnQiO2lmKG0uYWxsb3dQYWdlU2Nyb2xsPT11bmRlZmluZWQmJg0KKG0uc3dpcGUhPXVuZGVmaW5lZHx8bS5zd2lwZVN0YXR1cyE9dW5kZWZpbmVkKSltLmFsbG93UGFnZVNjcm9sbD15O20mJmcuZXh0ZW5kKGIsbSk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2Z1bmN0aW9uIEQoYSl7dmFyIGU9ZD9hLnRvdWNoZXNbMF06YTtjPUg7aWYoZClrPWEudG91Y2hlcy5sZW5ndGg7ZGlzdGFuY2U9MDtkaXJlY3Rpb249bnVsbDtpZihrPT1iLmZpbmdlcnN8fCFkKXtoLng9Zi54PWUucGFnZVg7aC55PWYueT1lLnBhZ2VZO2Iuc3dpcGVTdGF0dXMmJm8oYSxjKX1lbHNlIGwoYSk7aWYoZCl7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihyLHQpO2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIocyx1KX1lbHNle2coZG9jdW1lbnQpLm9uKHIsdCk7Zyhkb2N1bWVudCkub24ocyx1KX19ZnVuY3Rpb24gdChhKXtpZighKGM9PXF8fGM9PW4pKXt2YXIgZT1kP2EudG91Y2hlc1swXTphO2YueD1lLnBhZ2VYO2YueT1lLnBhZ2VZO2RpcmVjdGlvbj1FKCk7aWYoZClrPQ0KYS50b3VjaGVzLmxlbmd0aDtjPUI7ZT1kaXJlY3Rpb247aWYoYi5hbGxvd1BhZ2VTY3JvbGw9PXkpYS5wcmV2ZW50RGVmYXVsdCgpO2Vsc2V7dmFyIGk9Yi5hbGxvd1BhZ2VTY3JvbGw9PUc7c3dpdGNoKGUpe2Nhc2UgcDppZihiLnN3aXBlTGVmdCYmaXx8IWkmJmIuYWxsb3dQYWdlU2Nyb2xsIT16KWEucHJldmVudERlZmF1bHQoKTticmVhaztjYXNlIHY6aWYoYi5zd2lwZVJpZ2h0JiZpfHwhaSYmYi5hbGxvd1BhZ2VTY3JvbGwhPXopYS5wcmV2ZW50RGVmYXVsdCgpO2JyZWFrO2Nhc2UgdzppZihiLnN3aXBlVXAmJml8fCFpJiZiLmFsbG93UGFnZVNjcm9sbCE9QSlhLnByZXZlbnREZWZhdWx0KCk7YnJlYWs7Y2FzZSB4OmlmKGIuc3dpcGVEb3duJiZpfHwhaSYmYi5hbGxvd1BhZ2VTY3JvbGwhPUEpYS5wcmV2ZW50RGVmYXVsdCgpfX1pZihrPT1iLmZpbmdlcnN8fCFkKXtkaXN0YW5jZT1GKCk7Yi5zd2lwZVN0YXR1cyYmbyhhLGMsZGlyZWN0aW9uLGRpc3RhbmNlKTtpZighYi50cmlnZ2VyT25Ub3VjaEVuZClpZihkaXN0YW5jZT49DQpiLnRocmVzaG9sZCl7Yz1xO28oYSxjKTtsKGEpfX1lbHNle2M9bjtvKGEsYyk7bChhKX19fWZ1bmN0aW9uIHUoYSl7YS5wcmV2ZW50RGVmYXVsdCgpO2Rpc3RhbmNlPUYoKTtkaXJlY3Rpb249RSgpO2lmKGIudHJpZ2dlck9uVG91Y2hFbmQpe2M9cTtpZigoaz09Yi5maW5nZXJzfHwhZCkmJmYueCE9MClkaXN0YW5jZT49Yi50aHJlc2hvbGR8fChjPW4pO2Vsc2UgYz1uO28oYSxjKTtsKGEpfWVsc2UgaWYoYz09Qil7Yz1uO28oYSxjKTtsKGEpfWlmKGQpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIocix0KTtkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHMsdSl9ZWxzZXtnKGRvY3VtZW50KS5vZmYocix0KTtnKGRvY3VtZW50KS5vZmYocyx1KX19ZnVuY3Rpb24gbCgpe2s9MDtoLng9MDtoLnk9MDtmLng9MDtmLnk9MH1mdW5jdGlvbiBvKGEsZSl7aWYoYi5zd2lwZVN0YXR1cyliLnN3aXBlU3RhdHVzLmNhbGwoaixhLGUsZGlyZWN0aW9ufHxudWxsLGRpc3RhbmNlfHwNCjApO2lmKGU9PW4paWYoYi5jbGljayYmKGs9PTF8fCFkKSYmKGlzTmFOKGRpc3RhbmNlKXx8ZGlzdGFuY2U9PTApKWIuY2xpY2suY2FsbChqLGEsYS50YXJnZXQpO2lmKGU9PXEpe2Iuc3dpcGUmJmIuc3dpcGUuY2FsbChqLGEsZGlyZWN0aW9uLGRpc3RhbmNlKTtzd2l0Y2goZGlyZWN0aW9uKXtjYXNlIHA6Yi5zd2lwZUxlZnQmJmIuc3dpcGVMZWZ0LmNhbGwoaixhLGRpcmVjdGlvbixkaXN0YW5jZSk7YnJlYWs7Y2FzZSB2OmIuc3dpcGVSaWdodCYmYi5zd2lwZVJpZ2h0LmNhbGwoaixhLGRpcmVjdGlvbixkaXN0YW5jZSk7YnJlYWs7Y2FzZSB3OmIuc3dpcGVVcCYmYi5zd2lwZVVwLmNhbGwoaixhLGRpcmVjdGlvbixkaXN0YW5jZSk7YnJlYWs7Y2FzZSB4OmIuc3dpcGVEb3duJiZiLnN3aXBlRG93bi5jYWxsKGosYSxkaXJlY3Rpb24sZGlzdGFuY2UpfX19ZnVuY3Rpb24gRigpe3JldHVybiBNYXRoLnJvdW5kKE1hdGguc3FydChNYXRoLnBvdyhmLngtaC54LDIpK01hdGgucG93KGYueS0NCmgueSwyKSkpfWZ1bmN0aW9uIEUoKXt2YXIgYTthPU1hdGgucm91bmQoTWF0aC5hdGFuMihmLnktaC55LGgueC1mLngpKjE4MC9NYXRoLlBJKTtpZihhPDApYT0zNjAtTWF0aC5hYnMoYSk7YT1hO3JldHVybiBhPD00NSYmYT49MD9wOmE8PTM2MCYmYT49MzE1P3A6YT49MTM1JiZhPD0yMjU\/djphPjQ1JiZhPDEzNT94Ond9dmFyIGo9Zyh0aGlzKSxrPTAsaD17eDowLHk6MH0sZj17eDowLHk6MH07aWYoZCl7dGhpcy5hZGRFdmVudExpc3RlbmVyKEMsRCk7ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hjYW5jZWwiLGwpfWVsc2V7ai5vbihDLEQpO2coZG9jdW1lbnQpLm9uKCJ0b3VjaGNhbmNlbCIsbCl9fSl9fSkoalF1ZXJ5KTsvKkVPRiovOwovKiogL20vanMvYmFzZTY0LmpzICoqLwp2YXIgX19fZDJjX2Jhc2U2NGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDY6MDgiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2Jhc2U2NGpzX2Nfb249IjIwMjQtMDctMDggMTA6MzA6MDUiOyJ1c2Ugc3RyaWN0IjsKdmFyIEJhc2U2ND17X2tleVN0cjoiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLz0iLF9iNjRUZXN0OlJlZ0V4cCgiXig\/OltBLVphLXowLTkrL117NH0pKig\/OltBLVphLXowLTkrL117Mn09PXxbQS1aYS16MC05Ky9dezN9PSk\/JCIpLGVuY29kZTpmdW5jdGlvbihhKXt2YXIgZD0iIixjPTA7Zm9yKGE9QmFzZTY0Ll91dGY4X2VuY29kZShhKTtjPGEubGVuZ3RoOyl7dmFyIGI9YS5jaGFyQ29kZUF0KGMrKyksZT1hLmNoYXJDb2RlQXQoYysrKSxmPWEuY2hhckNvZGVBdChjKyspLGc9Yj4+MjtiPShiJjMpPDw0fGU+PjQ7dmFyIGg9KGUmMTUpPDwyfGY+PjYsaz1mJjYzO2lzTmFOKGUpP2g9az02NDppc05hTihmKSYmKGs9NjQpO2Q9ZCt0aGlzLl9rZXlTdHIuY2hhckF0KGcpK3RoaXMuX2tleVN0ci5jaGFyQXQoYikrdGhpcy5fa2V5U3RyLmNoYXJBdChoKSt0aGlzLl9rZXlTdHIuY2hhckF0KGspfXJldHVybiBkfSxkZWNvZGU6ZnVuY3Rpb24oYSl7dmFyIGQ9CiIiLGM9MDtmb3IoYT1hLnJlcGxhY2UoL1teQS1aYS16MC05XCtcLz1dL2csIiIpO2M8YS5sZW5ndGg7KXt2YXIgYj10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKSxlPXRoaXMuX2tleVN0ci5pbmRleE9mKGEuY2hhckF0KGMrKykpLGY9dGhpcy5fa2V5U3RyLmluZGV4T2YoYS5jaGFyQXQoYysrKSksZz10aGlzLl9rZXlTdHIuaW5kZXhPZihhLmNoYXJBdChjKyspKTtiPWI8PDJ8ZT4+NDtlPShlJjE1KTw8NHxmPj4yO3ZhciBoPShmJjMpPDw2fGc7ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiKTs2NCE9ZiYmKGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoZSkpOzY0IT1nJiYoZCs9U3RyaW5nLmZyb21DaGFyQ29kZShoKSl9cmV0dXJuIEJhc2U2NC5fdXRmOF9kZWNvZGUoZCl9LF91dGY4X2VuY29kZTpmdW5jdGlvbihhKXt2YXIgZD0iIjthPWEucmVwbGFjZSgvXHJcbi9nLCJcbiIpO2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgYj1hLmNoYXJDb2RlQXQoYyk7MTI4PgpiP2QrPVN0cmluZy5mcm9tQ2hhckNvZGUoYik6KDEyNzxiJiYyMDQ4PmI\/ZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiPj42fDE5Mik6KGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoYj4+MTJ8MjI0KSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGI+PjYmNjN8MTI4KSksZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiJjYzfDEyOCkpfXJldHVybiBkfSxfdXRmOF9kZWNvZGU6ZnVuY3Rpb24oYSl7Zm9yKHZhciBkPSIiLGM9MCxiLGUsZjtjPGEubGVuZ3RoOyliPWEuY2hhckNvZGVBdChjKSwxMjg+Yj8oZCs9U3RyaW5nLmZyb21DaGFyQ29kZShiKSxjKyspOjE5MTxiJiYyMjQ+Yj8oZT1hLmNoYXJDb2RlQXQoYysxKSxkKz1TdHJpbmcuZnJvbUNoYXJDb2RlKChiJjMxKTw8NnxlJjYzKSxjKz0yKTooZT1hLmNoYXJDb2RlQXQoYysxKSxmPWEuY2hhckNvZGVBdChjKzIpLGQrPVN0cmluZy5mcm9tQ2hhckNvZGUoKGImMTUpPDwxMnwoZSY2Myk8PDZ8ZiY2MyksYys9Myk7cmV0dXJuIGR9LHdoaXRlTGlzdDpmdW5jdGlvbigpe3JldHVyblsidHJhaWxlcnMiXX0sCmlzQmFzZTY0OmZ1bmN0aW9uKGEpe3JldHVybiBCYXNlNjQud2hpdGVMaXN0KCkuaW5jbHVkZXMoYS50b0xvd2VyQ2FzZSgpKXx8InVuZGVmaW5lZCI9PT10eXBlb2YgYXx8IiI9PT1hfHwiIj09PWEudHJpbSgpfHw0Pj1hLmxlbmd0aD8hMTpCYXNlNjQuZW5jb2RlKEJhc2U2NC5kZWNvZGUoYSkpPT1hfX07Ci8qKiAvbS9qcy9kMmN0Y2svdXByb2ZpbGUuZmluYWwubWluLmpzICoqLwphY3RpdmVVc2VyUHJvZmlsZU1uZz17b25yZWFkeTpudWxsLG9ubm90Zm91bmQ6bnVsbCxkaXNhYmxlZDohMSx1aWQ6bnVsbCxhY3RpdmVTdGVwOjAsc3dmU3RvcmU6ITEscmVnaXN0ZXJlZFBhZ2VWaWV3czpudWxsLHJlZ2lzdGVyZWRFdmVudHM6bnVsbCxzZXNzaW9uaWQ6bnVsbCxyZWdpc3RlcmVkQ2FsbGJhY2tzOm51bGwscmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M6bnVsbCxwYWdlVmlld0NvdW50Om51bGwsX19wcm9wZXJ0aWVzOm51bGwsanF1ZXJ5QWN0aXZlOiEwLGlzRDJDU2l0ZTohMCxfX3Jlc2V0Vjo5LHJlc2V0U2Vjb25kUGFzczohMSxfX291dHB1dERpdk1zZzohMSxfX291dHB1dENvbnNvbGVNc2c6ITEsYWpheE1uZzp7YXN5bmM6ITAsX2xhc3RYOm51bGwseDpmdW5jdGlvbigpe3RyeXtpZigidW5kZWZpbmVkIiE9PXR5cGVvZiBYTUxIdHRwUmVxdWVzdClyZXR1cm4gbmV3IFhNTEh0dHBSZXF1ZXN0O2Zvcih2YXIgYT1bIk1TWE1MMi5YbWxIdHRwLjUuMCIsCgkJCSJNU1hNTDIuWG1sSHR0cC40LjAiLCJNU1hNTDIuWG1sSHR0cC4zLjAiLCJNU1hNTDIuWG1sSHR0cC4yLjAiLCJNaWNyb3NvZnQuWG1sSHR0cCJdLGIsZD0wO2Q8YS5sZW5ndGg7ZCsrKXRyeXtiPW5ldyBBY3RpdmVYT2JqZWN0KGFbZF0pO2JyZWFrfWNhdGNoKGMpe319Y2F0Y2goYyl7fXJldHVybiBifSxfc2VuZDpmdW5jdGlvbihhLGIsZCxjLGUsaCl7dHJ5e3ZhciBmPXRoaXMueCgpO3RoaXMuX2xhc3RYPWY7Zi5vcGVuKGQsYSxlKTt0cnl7Zi5hZGRFdmVudExpc3RlbmVyKCJlcnJvciIsZnVuY3Rpb24ocSl7InVuZGVmaW5lZCIhPXR5cGVvZiBoJiZudWxsIT1oJiZoKGYsZi5zdGF0dXNUZXh0LEVycm9yKGYucmVzcG9uc2VUZXh0KSl9KX1jYXRjaChxKXt9Zi5vbnJlYWR5c3RhdGVjaGFuZ2U9ZnVuY3Rpb24oKXs0PT1mLnJlYWR5U3RhdGU\/YihmLnJlc3BvbnNlVGV4dCk6InVuZGVmaW5lZCIhPXR5cGVvZiBoJiZudWxsIT1oJiZoKGYsZi5zdGF0dXNUZXh0LEVycm9yKGYucmVzcG9uc2VUZXh0KSl9OwoJCQkiUE9TVCI9PWQmJmYuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC10eXBlIiwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7Zi5zZW5kKGMpfWNhdGNoKHEpeyJ1bmRlZmluZWQiIT10eXBlb2YgaCYmbnVsbCE9aCYmaChmLCJ1bmtub3duIixxKX19LGFqYXg6ZnVuY3Rpb24oYSl7dmFyIGI9dGhpczt0cnl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhLnR5cGUmJihhLnR5cGU9IkdFVCIpLCJ1bmRlZmluZWQiPT10eXBlb2YgYS5kYXRhJiYoYS5kYXRhPXt9KSx3aW5kb3cualF1ZXJ5JiYidW5kZWZpbmVkIiE9dHlwZW9mICQuYWpheCkkLmFqYXgoYSkuZG9uZShmdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZG9uZSYmYS5kb25lKGMpfSkuZmFpbChmdW5jdGlvbihjLGUsaCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmZhaWwmJmEuZmFpbChjLGUsaCl9KS5hbHdheXMoZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuYWx3YXlzJiZhLmFsd2F5cygpfSkuZG9uZShmdW5jdGlvbihjKXsidW5kZWZpbmVkIiE9CgkJdHlwZW9mIGEuc3VjY2VzcyYmYS5zdWNjZXNzKGMpfSkuYWx3YXlzKGZ1bmN0aW9uKGMsZSl7InVuZGVmaW5lZCIhPXR5cGVvZiBhLmNvbXBsZXRlJiZhLmNvbXBsZXRlKGIuX2xhc3RYLCJ1bmRlZmluZWQiIT10eXBlb2YgYi5fbGFzdFguc3RhdHVzVGV4dD9iLl9sYXN0WC5zdGF0dXNUZXh0OiIiKX0pO2Vsc2V7dmFyIGQ9Yi5fZ2V0OyJwb3N0Ij09YS50eXBlLnRvTG93ZXJDYXNlKCkmJihkPWIuX3Bvc3QpO2QoYS51cmwsYS5kYXRhLGZ1bmN0aW9uKGMpeyJ1bmRlZmluZWQiIT10eXBlb2YgYS5kb25lJiZhLmRvbmUoYyk7InVuZGVmaW5lZCIhPXR5cGVvZiBhLnN1Y2Nlc3MmJmEuc3VjY2VzcyhjKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuY29tcGxldGUmJmEuY29tcGxldGUoKTsidW5kZWZpbmVkIiE9dHlwZW9mIGEuYWx3YXlzJiZhLmFsd2F5cygpfSxiLmFzeW5jLGZ1bmN0aW9uKGMsZSxoKXsidW5kZWZpbmVkIiE9dHlwZW9mIGEuZmFpbCYmYS5mYWlsKGMsZSxoKX0pfX1jYXRjaChjKXtjb25zb2xlJiYKCQljb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgYWNjZXNzaW5nIGFqYXhNbmcuZ2V0OiAlcyIsYy5tZXNzYWdlKX19LF9nZXQ6ZnVuY3Rpb24oYSxiLGQsYyxlKXt2YXIgaD1bXSxmO2ZvcihmIGluIGIpaC5wdXNoKGVuY29kZVVSSUNvbXBvbmVudChmKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGJbZl0pKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0hMDthY3RpdmVVc2VyUHJvZmlsZU1uZy5hamF4TW5nLl9zZW5kKGErIj8iK2guam9pbigiJiIpLGQsIkdFVCIsbnVsbCxjLGUpfSxfcG9zdDpmdW5jdGlvbihhLGIsZCxjLGUpe3ZhciBoPVtdLGY7Zm9yKGYgaW4gYiloLnB1c2goZW5jb2RlVVJJQ29tcG9uZW50KGYpKyI9IitlbmNvZGVVUklDb21wb25lbnQoYltmXSkpO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09YyljPSEwO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuX3NlbmQoYSxkLCJQT1NUIixoLmpvaW4oIiYiKSwKCQkJYyxlKX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKGEsYil7dHJ5e2lmKHdpbmRvdy5qUXVlcnkmJiJ1bmRlZmluZWQiIT10eXBlb2YgJC5nZXRTY3JpcHQpJC5nZXRTY3JpcHQoYSxiKTtlbHNle3ZhciBkPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLGM9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpWzBdO2QuYXN5bmM9MTtkLm9ubG9hZD1kLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbihlLGgpe2lmKGh8fCFkLnJlYWR5U3RhdGV8fC9sb2FkZWR8Y29tcGxldGUvLnRlc3QoZC5yZWFkeVN0YXRlKSlkLm9ubG9hZD1kLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLGQ9dm9pZCAwLCFoJiZiJiZzZXRUaW1lb3V0KGIsMCl9O2Quc3JjPWE7Yy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShkLGMpfX1jYXRjaChlKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgcmV0cmlldmluZyBqcyBzY3JpcHQuIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbjogJXMiLAoJCQllLm1lc3NhZ2UpfX19LGNvb2tpZU1uZzp7cmVhZENvb2tpZVZhbHVlOmZ1bmN0aW9uKGEpe3ZhciBiPW51bGw7dHJ5e2lmKHdpbmRvdy5qUXVlcnkmJiJ1bmRlZmluZWQiIT10eXBlb2YgJC5jb29raWUpYj0kLmNvb2tpZShhKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPW51bGwpO2Vsc2V7YSs9Ij0iO2Zvcih2YXIgZD1kb2N1bWVudC5jb29raWUuc3BsaXQoIjsiKSxjPTA7YzxkLmxlbmd0aDtjKyspe2Zvcih2YXIgZT1kW2NdOyIgIj09ZS5jaGFyQXQoMCk7KWU9ZS5zdWJzdHJpbmcoMSxlLmxlbmd0aCk7aWYoMD09ZS5pbmRleE9mKGEpKXtiPWUuc3Vic3RyaW5nKGEubGVuZ3RoLGUubGVuZ3RoKTticmVha319fX1jYXRjaChoKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgcmVhZGluZyBjb29raWU6ICVzIixoLm1lc3NhZ2UpfXJldHVybiBifSxzZXRDb29raWVWYWx1ZTpmdW5jdGlvbihhLGIsZCxjKXt0cnl7aWYoITAhPT10aGlzLmRpc2FibGVkKXtpZigidW5kZWZpbmVkIj09CgkJCXR5cGVvZiBkfHxudWxsPT1kKWQ9Ii8iO2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgY3x8bnVsbD09YyljPTA7InVuZGVmaW5lZCI9PXR5cGVvZiBiJiYoYj1udWxsKTt2YXIgZT1uZXcgRGF0ZTtlLnNldFRpbWUoZS5nZXRUaW1lKCkrODY0RTUqYyk7d2luZG93LmpRdWVyeSYmInVuZGVmaW5lZCIhPXR5cGVvZiAkLmNvb2tpZT8kLmNvb2tpZShhLGIse3BhdGg6ZCxzZWN1cmU6ITAsZXhwaXJlczowPT1jPyIiOmV9KTooZXhwaXJlcz0wIT1jPyI7IGV4cGlyZXM9IitlLnRvR01UU3RyaW5nKCk6IiIsZG9jdW1lbnQuY29va2llPWErIj0iK2IrZXhwaXJlcysiOyBzZWN1cmU7IHBhdGg9IitkLGImJmFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5sb2dDb29raWUoYSxiLGMsZCkpfX1jYXRjaChoKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3Igc2V0dGluZyBjb29raWU6ICVzIixoLm1lc3NhZ2UpfX0sZGVsZXRlQ29va2llOmZ1bmN0aW9uKGEpe3RyeXt3aW5kb3cualF1ZXJ5JiYKCQkidW5kZWZpbmVkIiE9dHlwZW9mICQuY29va2llPygkLmNvb2tpZShhLG51bGwpLCQuY29va2llKGEsbnVsbCx7cGF0aDoiLyJ9KSk6dGhpcy5zZXRDb29raWVWYWx1ZShhLG51bGwsLTEpfWNhdGNoKGIpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBkZWxldGluZyBjb29raWU6ICVzIixiLm1lc3NhZ2UpfX0sbG9nQ29va2llOmZ1bmN0aW9uKGEsYixkLGMsZSl7InVuZGVmaW5lZCI9PT10eXBlb2YgZSYmKGU9NSk7InVuZGVmaW5lZCI9PT10eXBlb2Ygd2luZG93LkNvb2tpZUxvZ2dlcj9lJiZzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmxvZ0Nvb2tpZShhLGIsZCxjLGUtMSl9LDEwMCk6d2luZG93LkNvb2tpZUxvZ2dlci5sb2coYSxiLGQsYyl9fSxfX3VzZVByb3h5OmZ1bmN0aW9uKCl7cmV0dXJuITE9PT10aGlzLmlzRDJDU2l0ZT8hMTohMH0sX2lzQm90OmZ1bmN0aW9uKCl7cmV0dXJuL2JvdHxnb29nbGVib3R8Y3Jhd2xlcnxzcGlkZXJ8cm9ib3R8Y3Jhd2xpbmcvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpPwoJCSEwOiExfSxnZXRTdGF0c1VSSTpmdW5jdGlvbigpe3ZhciBhPSIvcHJveHlfc2QyYy8iO3RyeXshMT09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmlzRDJDU2l0ZSYmKGE9Imh0dHA6Ly9zdGF0cy5kMmNtZWRpYS5jYS8iLCJodHRwczoiPT13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wmJihhPSJodHRwczovL3NzbHN0YXRzLmQyY21lZGlhLmNhLyIpKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIGdldFN0YXRzVVJJOiAlcyIsYi5tZXNzYWdlKSxhPSJodHRwczovL3NzbHN0YXRzLmQyY21lZGlhLmNhLyJ9cmV0dXJuIGF9LGdldEZQVVJJOmZ1bmN0aW9uKCl7aWYoITA9PT10aGlzLmRpc2FibGVkKXJldHVybiIiO3ZhciBhPSIvanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMiO3RyeXthPSExPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuaXNEMkNTaXRlP251bGwhPXdpbmRvdy5sb2NhdGlvbiYmInVuZGVmaW5lZCIhPQoJdHlwZW9mIHdpbmRvdy5sb2NhdGlvbi5ocmVmJiYtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiY3JtMi5kMmNtZWRpYS5jYSIpPyJodHRwczovL2NybTIuZDJjbWVkaWEuY2EvYXNzZXRzL2pzL2QyY3Rjay9mcHJpbnQudjIuanMiOiJodHRwczovL3d3dy5hdXRvYXViYWluZS5jb20vanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMiOiEwPT09dGhpcy5fX291dHB1dERpdk1zZz8iL2pzL2QyY3Rjay9mcHJpbnQudjIuanMiOiIvanMvZDJjdGNrL2ZwcmludC52Mi5taW4uanMifWNhdGNoKGIpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBjYXVnaHQgaW4gZ2V0RlBVUkk6ICVzIixiLm1lc3NhZ2UpLGE9Ii9qcy9kMmN0Y2svZnByaW50LnYyLm1pbi5qcyJ9cmV0dXJuIGF9LGdldFNlc3Npb25JRDpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZClyZXR1cm4gYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkOwoJCXZhciBhPXdpbmRvdy5hY3RpdmVTZXNzaW9uSUQ7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hfHwwPT1hKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9d2luZG93LmFjdGl2ZVNlc3Npb25JRCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ7YT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1c2lkIik7cmV0dXJuIG51bGwhPWE\/KGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD1hLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZCk6MH0scmVnaXN0ZXJDYWxsYmFjazpmdW5jdGlvbihhKXtpZighMD09PXRoaXMuZGlzYWJsZWQpe2lmKG51bGwhPWEpdHJ5e2EoKX1jYXRjaChiKXt9cmV0dXJuITF9bnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcyYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3M9W10pOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkJiYKCW51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ\/YSgpOmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3MucHVzaChhKX0scmVnaXN0ZXJTZXNzaW9uQ2FsbGJhY2s6ZnVuY3Rpb24oYSl7aWYoITA9PT10aGlzLmRpc2FibGVkKXtpZihudWxsIT1hKXRyeXthKCl9Y2F0Y2goYil7fXJldHVybiExfW51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3M9W10pOyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkJiZudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQmJjAhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZD9hKCk6YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3MucHVzaChhKX0sCglfX25vdGlmeVVVSUQ6ZnVuY3Rpb24oKXt0cnl7aWYoITA9PT10aGlzLmRpc2FibGVkKXt0cnl7YigpfWNhdGNoKGQpe31yZXR1cm4hMX1pZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkQ2FsbGJhY2tzKXtmb3IodmFyIGE9MDthPGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRDYWxsYmFja3MubGVuZ3RoO2ErKyl7dmFyIGI9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrc1thXTtiKCl9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZENhbGxiYWNrcz1udWxsfX1jYXRjaChkKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIF9fbm90aWZ5VVVJRDogJXMiLGQubWVzc2FnZSl9fSxfX25vdGlmeVNlc3Npb25JRDpmdW5jdGlvbigpe2lmKCEwPT09dGhpcy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKTsKCQlpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWF8fCIwIj09YXx8MD09YSl2YXIgYj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3RyeXtudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcz9jbGVhckludGVydmFsKGIpOjAhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTZXNzaW9uSUQoKSYmKGNsZWFySW50ZXJ2YWwoYiksYWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlTZXNzaW9uSUQoKSl9Y2F0Y2goZCl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJOb3RpZnkgc2Vzc2lvbmlkIGZhaWxlZCB3aXRoOiAlcyIsZC5tZXNzYWdlKX19LDUwMCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFNlc3Npb25DYWxsYmFja3MpdHJ5e2ZvcihhPTA7YTxhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcy5sZW5ndGg7YSsrKSgwLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRTZXNzaW9uQ2FsbGJhY2tzW2FdKSgpOwoJCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkU2Vzc2lvbkNhbGxiYWNrcz1udWxsfWNhdGNoKGQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5leHBlY3RlZCBlcnJvciBjYXVnaHQgaW4gX19ub3RpZnlTZXNzaW9uSUQ6ICVzIixkLm1lc3NhZ2UpfX0sbG9nTXNnOmZ1bmN0aW9uKGEpe3RyeXtpZighMD09PXRoaXMuZGlzYWJsZWQpcmV0dXJuITE7ITA9PT10aGlzLl9fb3V0cHV0RGl2TXNnJiYkKGRvY3VtZW50LmJvZHkpLmFwcGVuZCgiPGRpdj4iK2ErIjwvZGl2PiIpOyEwPT09dGhpcy5fX291dHB1dENvbnNvbGVNc2cmJmNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZyhhKX1jYXRjaChiKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgY2F1Z2h0IGluIG1lc3NhZ2UgbG9nZ2luZy4gSG93IGlyb25pYzogJXMiLGIubWVzc2FnZSl9fSxjaGVja1NjaGVkdWxlZFJlc2V0OmZ1bmN0aW9uKCl7dmFyIGE9CgkJITE7dHJ5e2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dmFyIGI9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZF9yc3QiKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWIpYj0wO2IhPXRoaXMuX19yZXNldFYmJihhPSEwLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZF9yc3QiLHRoaXMuX19yZXNldFYsIi8iLDRFMykpfWNhdGNoKGQpe3RoaXMubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIGluIHNjaGVkdWxlZCByZXNldCBjaGVjazogIitkLm1lc3NhZ2UpfXJldHVybiBhfSxnZXRBY3RpdmVQcm9maWxlaWQ6ZnVuY3Rpb24oKXtpZihudWxsIT10aGlzLnVpZClyZXR1cm4gbnVsbD09d2luZG93LmFjdGl2ZVByb2ZpbGVJRCYmKHdpbmRvdy5hY3RpdmVQcm9maWxlSUQ9dGhpcy51aWQpLHRoaXMudWlkO2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuIG51bGw7CgkJdmFyIGE9dGhpcy5jb29raWVNbmcucmVhZENvb2tpZVZhbHVlKCJ1dWlkIik7aWYobnVsbCE9YSYmMDxhLmxlbmd0aClyZXR1cm4gdGhpcy5hY3RpdmVQcm9maWxlSUQ9dGhpcy51aWQ9YSx0aGlzLl9fZmlyZVJlYWR5RXZlbnQoKSx0aGlzLnVpZDthPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWRfdmxkMyIpO2lmKG51bGwhPWEmJjAhPWEubGVuZ3RoKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRVc2VyRGF0YUNvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLmVuc3VyZVZhbGlkSUQoKTtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpcmV0dXJuIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZDthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2xvYWRMb2NhbFN0b3JhZ2VDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7CgkJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEdsb2JhbFN0b3JhZ2VDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkU2Vzc2lvblN0b3JhZ2VDb29raWUoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkRnJvbUxvY2FsREIoKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5lbnN1cmVWYWxpZElEKCk7aWYobnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXJldHVybiBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkRkxWQ29va2llKCl9ZWxzZSBzZXRUaW1lb3V0KCJhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgzKSIsCgkJCTUwMCk7cmV0dXJuIG51bGx9LGVuc3VyZVZhbGlkSUQ6ZnVuY3Rpb24oKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nfHwic3RyaW5nIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmMD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkLmxlbmd0aClhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9bnVsbH0sc2V0QWN0aXZlUHJvZmlsZWlkOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkfHwhMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldERCQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0UE5HQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0RVRhZ0Nvb2tpZSgpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnNldFVzZXJEYXRhQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0TG9jYWxTdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0R2xvYmFsU3RvcmFnZUNvb2tpZSgpOwoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNldFNlc3Npb25TdG9yYWdlQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0RkxWQ29va2llKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlVVUlEKCl9LF9fY29udGludWVMb2FkOmZ1bmN0aW9uKGEpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7YWN0aXZlVXNlclByb2ZpbGVNbmcuZW5zdXJlVmFsaWRJRCgpO2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZClhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2ZpcmVSZWFkeUV2ZW50KCk7ZWxzZSBzd2l0Y2goYSl7Y2FzZSAxOmFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbG9hZEVUYWdDb29raWUoKTticmVhaztjYXNlIDI6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkUE5HQ29va2llKCk7YnJlYWs7ZGVmYXVsdDphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2ZpcmVOb3RGb3VuZCgpfX0sX19maXJlUmVhZHlFdmVudDpmdW5jdGlvbigpe2lmKG51bGwhPQoJCWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ucmVhZHkpYWN0aXZlVXNlclByb2ZpbGVNbmcub25yZWFkeShhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fbm90aWZ5VVVJRCgpfSxfX2ZpcmVOb3RGb3VuZDpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLm9ubm90Zm91bmQpYWN0aXZlVXNlclByb2ZpbGVNbmcub25ub3Rmb3VuZCgpfSxzZXRGTFZDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zJiYib2JqZWN0Ij09dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2giXXx8d2luZG93LkFjdGl2ZVhPYmplY3QmJjAhPW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaCIpKXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmUmJgoJCShhY3RpdmVVc2VyUHJvZmlsZU1uZy5zd2ZTdG9yZT0hMCwidW5kZWZpbmVkIj09dHlwZW9mIFN3ZlN0b3JlKSl7YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5nZXRTY3JpcHQoIi9qcy9zd2ZzdG9yZS5qcyIsYWN0aXZlVXNlclByb2ZpbGVNbmcuc2V0RkxWQ29va2llKTtyZXR1cm59dHJ5e3ZhciBhPW5ldyBTd2ZTdG9yZSh7bmFtZXNwYWNlOiJ1cHJvZmlsZSIsc3dmX3VybDoiL2ZsYXNoL3N0b3JhZ2Uuc3dmIixvbnJlYWR5OmZ1bmN0aW9uKCl7YS5zZXQoInVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKX0sb25lcnJvcjpmdW5jdGlvbigpe319KX1jYXRjaChiKXsidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJm51bGwhPWNvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIHNldCBGTFYgQ29va2llLiBFcnJvcjogIitiLm1lc3NhZ2UpfX19Y2F0Y2goYil7InVuZGVmaW5lZCIhPXR5cGVvZiBjb25zb2xlJiZudWxsIT1jb25zb2xlJiZjb25zb2xlLmxvZyYmCgljb25zb2xlLmxvZygiTUFJTjogVW5hYmxlIHRvIHNldCBGTFYgQ29va2llLiBFcnJvcjogIitiLm1lc3NhZ2UpfX19LF9fbG9hZEZMVkNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zJiYib2JqZWN0Ij09dHlwZW9mIG5hdmlnYXRvci5wbHVnaW5zWyJTaG9ja3dhdmUgRmxhc2giXXx8d2luZG93LkFjdGl2ZVhPYmplY3QmJjAhPW5ldyBBY3RpdmVYT2JqZWN0KCJTaG9ja3dhdmVGbGFzaC5TaG9ja3dhdmVGbGFzaCIpKXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuc3dmU3RvcmUmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5zd2ZTdG9yZT0hMCwidW5kZWZpbmVkIj09dHlwZW9mIFN3ZlN0b3JlKSl7YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5nZXRTY3JpcHQoIi9qcy9zd2ZzdG9yZS5qcyIsCgkJYWN0aXZlVXNlclByb2ZpbGVNbmcuX19sb2FkRkxWQ29va2llKTtyZXR1cm59dHJ5e3ZhciBhPW5ldyBTd2ZTdG9yZSh7bmFtZXNwYWNlOiJ1cHJvZmlsZSIsc3dmX3VybDoiL2ZsYXNoL3N0b3JhZ2Uuc3dmIixvbnJlYWR5OmZ1bmN0aW9uKCl7dmFyIGI9YS5nZXQoInVpZCIpOyJ1bmRlZmluZWQiIT10eXBlb2YgYiYmbnVsbCE9YiYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1iKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgxKX0sb25lcnJvcjpmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9fY29udGludWVMb2FkKDEpfX0pfWNhdGNoKGIpe319ZWxzZSBhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgxKX19LF9fbG9hZEZyb21Mb2NhbERCOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cub3BlbkRhdGFiYXNlJiYKCWRhdGFiYXNlLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKGEpe2EuZXhlY3V0ZVNxbCgiU0VMRUNUIHZhbHVlIEZST00gdXByb2ZpbGUgV0hFUkUgbmFtZT0\/IixbInVpZCJdLGZ1bmN0aW9uKGIsZCl7MTw9ZC5yb3dzLmxlbmd0aCYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1kLnJvd3MuaXRlbSgwKS52YWx1ZSl9LGZ1bmN0aW9uKGIsZCl7fSl9KX1jYXRjaChhKXt9fX0sc2V0REJDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZih3aW5kb3cub3BlbkRhdGFiYXNlKXt2YXIgYT13aW5kb3cub3BlbkRhdGFiYXNlKCJzcWxpdGVfdXByb2ZpbGUiLCIiLCJ1cHJvZmlsZSIsMTA0ODU3Nik7InVuZGVmaW5lZCIhPXR5cGVvZiB2YWx1ZSYmYS50cmFuc2FjdGlvbihmdW5jdGlvbihiKXtiLmV4ZWN1dGVTcWwoIkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIHVwcm9maWxlKGlkIElOVEVHRVIgTk9UIE5VTEwgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCwgdWlkIFRFWFQgTk9UIE5VTEwsIHZhbHVlIFRFWFQgTk9UIE5VTEwsIFVOSVFVRSAodWlkKSkiLAoJCVtdLGZ1bmN0aW9uKGQsYyl7fSxmdW5jdGlvbihkLGMpe30pO2IuZXhlY3V0ZVNxbCgiSU5TRVJUIE9SIFJFUExBQ0UgSU5UTyB1cHJvZmlsZSh1aWQsIHZhbHVlKSBWQUxVRVMoPywgPykiLFsidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWRdLGZ1bmN0aW9uKGQsYyl7fSxmdW5jdGlvbihkLGMpe30pfSl9fWNhdGNoKGIpe319fSxfX2xvYWRQTkdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e2lmKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2Euc3R5bGUudmlzaWJpbGl0eT0iaGlkZGVuIjthLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSI7YS53aWR0aD0yMDA7YS5oZWlnaHQ9MTt2YXIgYj1hLmdldENvbnRleHQoIjJkIiksZD1uZXcgSW1hZ2U7CgkJZC5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iO2Quc3R5bGUucG9zaXRpb249ImFic29sdXRlIjtkLnNyYz0iL2ltYWdlc19hcGkvZDJjaWdjYWNoZTEucG5nIjtkLm9uZXJyb3I9ZnVuY3Rpb24oKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgzKX07ZC5vbmxvYWQ9ZnVuY3Rpb24oKXt0cnl7Yi5kcmF3SW1hZ2UoZCwwLDApO2Zvcih2YXIgYz1iLmdldEltYWdlRGF0YSgwLDAsMjAwLDEpLmRhdGEsZT0iIixoPTAsZj1jLmxlbmd0aDtoPGYmJjAhPWNbaF07aCs9NCl7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShjW2hdKTtpZigwPT1jW2grMV0pYnJlYWs7ZSs9U3RyaW5nLmZyb21DaGFyQ29kZShjW2grMV0pO2lmKDA9PWNbaCsyXSlicmVhaztlKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGNbaCsyXSl9MDxlLmxlbmd0aCYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1lKX1jYXRjaChxKXt9YWN0aXZlVXNlclByb2ZpbGVNbmcuX19jb250aW51ZUxvYWQoMyl9fX1jYXRjaChjKXt9fX0sCglzZXRQTkdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3ZhciBhPW5ldyBJbWFnZTthLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Euc3JjPSIvaW1hZ2VzX2FwaS9kMmNpZ2NhY2hlMS5wbmc\/dmFsPSIrYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkfX0sX19sb2FkRVRhZ0Nvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0aGlzLmFqYXhNbmcuYWpheCh7dXJsOiIvaW1hZ2VzX2FwaS9kMmNpZ2NhY2hlMi5wbmciLHR5cGU6IkdFVCIsc3VjY2VzczpmdW5jdGlvbihhKXthY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9YX0sCgkJY29tcGxldGU6ZnVuY3Rpb24oYSxiKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5fX2NvbnRpbnVlTG9hZCgyKX19KX19LHNldEVUYWdDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3ZhciBhPW5ldyBJbWFnZTthLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiI7YS5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiO2Euc3JjPSIvaW1hZ2VzX2FwaS9kMmNpZ2NhY2hlMi5wbmc\/dmFsPSIrYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkfX0sX19sb2FkVXNlckRhdGFDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3ZhciBhPXRoaXMuY3JlYXRlRWxlbSgiZGl2IiwidXNlcmRhdGFfZWwiLAoJCTEpO2Euc3R5bGUuYmVoYXZpb3I9InVybCgjZGVmYXVsdCN1c2VyRGF0YSkiO2EubG9hZCgidWlkIik7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWEuZ2V0QXR0cmlidXRlKCJ1aWQiKX1jYXRjaChiKXt9fX0sc2V0VXNlckRhdGFDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt2YXIgYT10aGlzLmNyZWF0ZUVsZW0oImRpdiIsInVzZXJkYXRhX2VsIiwxKTthLnN0eWxlLmJlaGF2aW9yPSJ1cmwoI2RlZmF1bHQjdXNlckRhdGEpIjthLnNldEF0dHJpYnV0ZSgidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpO2Euc2F2ZSgidWlkIil9Y2F0Y2goYil7fX19LF9fbG9hZExvY2FsU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl7aWYoITA9PT0KCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt0cnl7d2luZG93LmxvY2FsU3RvcmFnZSYmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidWlkIikpfWNhdGNoKGEpe319fSxzZXRMb2NhbFN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cubG9jYWxTdG9yYWdlJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgidWlkIixhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpfWNhdGNoKGEpe319fSxfX2xvYWRHbG9iYWxTdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXtpZih3aW5kb3cuZ2xvYmFsU3RvcmFnZSlyZXR1cm4gdGhpcy5nZXRIb3N0KCksCgkJZXZhbCgiYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkID0gZ2xvYmFsU3RvcmFnZVtob3N0XS51aWQiKX1jYXRjaChhKXt9fX0sc2V0R2xvYmFsU3RvcmFnZUNvb2tpZTpmdW5jdGlvbigpe2lmKG51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCYmIm5vbmUiIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7dHJ5e3dpbmRvdy5nbG9iYWxTdG9yYWdlJiYodGhpcy5nZXRIb3N0KCksZXZhbCgiZ2xvYmFsU3RvcmFnZVtob3N0XS51aWQgPSBhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQiKSl9Y2F0Y2goYSl7fX19LF9fbG9hZFNlc3Npb25TdG9yYWdlQ29va2llOmZ1bmN0aW9uKCl7aWYobnVsbD09YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ9CgkJd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oInVpZCIpKX1jYXRjaChhKXt9fX0sc2V0U2Vzc2lvblN0b3JhZ2VDb29raWU6ZnVuY3Rpb24oKXtpZihudWxsIT1hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQmJiJub25lIiE9YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RyeXt3aW5kb3cuc2Vzc2lvblN0b3JhZ2UmJndpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJ1aWQiLGFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZCl9Y2F0Y2goYSl7fX19LHJlZ2lzdGVyUGFnZVZpZXc6ZnVuY3Rpb24oKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiEwO251bGw9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3MmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzPVtdKTtmb3IodmFyIGE9MDthPGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRQYWdlVmlld3MubGVuZ3RoO2ErKylpZih3aW5kb3cubG9jYXRpb24uaHJlZj09CgkJYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZFBhZ2VWaWV3c1thXSlyZXR1cm4hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkUGFnZVZpZXdzLnB1c2god2luZG93LmxvY2F0aW9uLmhyZWYpO3JldHVybiEwfSxyZWdpc3RlclBhZ2VWaWV3RXZlbnQ6ZnVuY3Rpb24oYSxiLGQpe2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITA7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBkfHxudWxsPT1kKWQ9IiI7YT1hKyJ8fHwiK2IrInx8fCIrZDtudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzJiYoYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJlZEV2ZW50cz1bXSk7Zm9yKGI9MDtiPGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHMubGVuZ3RoO2IrKylpZihhPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlcmVkRXZlbnRzW2JdKXJldHVybiExO2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyZWRFdmVudHMucHVzaChhKTsKCQlyZXR1cm4hMH0sbG9nUGFnZVZpZXdFdmVudDpmdW5jdGlvbihhLGIsZCl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2lmKGFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyUGFnZVZpZXdFdmVudChhLGIpKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGR8fG51bGw9PWQpZD0iIjtpZihudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWR8fDA9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLnNlc3Npb25pZClhY3RpdmVVc2VyUHJvZmlsZU1uZy5yZWdpc3RlclNlc3Npb25DYWxsYmFjayhmdW5jdGlvbigpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQoYSxiLGQpfSk7ZWxzZXt2YXIgYz0wO2lmKCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93Lmxhc3RWaWV3SUQpe3ZhciBlPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV2aWV3Iik7CgkJbnVsbCE9ZSYmKGM9ZSl9ZWxzZSBjPXdpbmRvdy5sYXN0UGFnZVZpZXdJRDsidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWN8fDA9PWM\/Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gaWRlbnRpZnkgbGFzdCB2aWV3IGlkIik6KGU9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKSxjPXtzaWQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCksYWN0aW9uOiJldmVudCIsdmlld2lkOmMsZXZlbnQ6YSxlY2F0ZWdvcnk6YixhZGRlZEluZm86InVuZGVmaW5lZCIhPXR5cGVvZiBkP2Q6IiJ9LGFjdGl2ZVVzZXJQcm9maWxlTW5nLmFqYXhNbmcuYWpheCh7dXJsOmUrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLHR5cGU6IlBPU1QiLGRhdGE6Y30pKX19fX0sbG9nUGFnZVZpZXdFeDpmdW5jdGlvbigpe3RyeXtpZighYWN0aXZlVXNlclByb2ZpbGVNbmcuX2lzQm90KCkmJmFjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyUGFnZVZpZXcoKSl7aWYoITA9PT0KCQlhY3RpdmVVc2VyUHJvZmlsZU1uZy5kaXNhYmxlZClyZXR1cm4hMTt2YXIgYT1udWxsOyJ1bmRlZmluZWQiIT10eXBlb2YgZ2V0VXJsVmFycyYmKGE9Z2V0VXJsVmFycygpKTtnZXRDdXN0b21WUkI9ZnVuY3Rpb24oayx3KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGN1c3RvbV92YXJpYWJsZXMmJm51bGwhPWN1c3RvbV92YXJpYWJsZXMpZm9yKHZhciB1IGluIGN1c3RvbV92YXJpYWJsZXMpe2lmKHUubmFtZT09aylyZXR1cm4gdS52YWx1ZX1lbHNlIHJldHVybiB3fTtnZXRDS1ZhbHVlPWZ1bmN0aW9uKGssdyl7dmFyIHU9Z2V0Q3VzdG9tVlJCKGssbnVsbCk7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB1JiZudWxsIT11KXJldHVybiB1O3U9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZShrKTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIHV8fG51bGw9PXU\/bnVsbD09YXx8InVuZGVmaW5lZCI9PXR5cGVvZiBhW2tdPyJ1bmRlZmluZWQiPT10eXBlb2Ygdz8KCQkiIjp3OmFba106dX07Z2V0VVJMVmFsdWU9ZnVuY3Rpb24oayx3KXtrPWsucmVwbGFjZSgvW1xbXS8sIlxcWyIpLnJlcGxhY2UoL1tcXV0vLCJcXF0iKTtrPShuZXcgUmVnRXhwKCJbXFw\/Jl0iK2srIj0oW14mI10qKSIpKS5leGVjKHdpbmRvdy5sb2NhdGlvbi5ocmVmKTtrPW51bGw9PWs\/bnVsbDprWzFdO3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2Yga3x8bnVsbD09a3x8MD09ay50b1N0cmluZygpLmxlbmd0aD93Omt9O3ZhciBiPSIiLGQ9MCxjPSJGUkVOQ0giLGU9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpLGg9ZnVuY3Rpb24oayl7dmFyIHc9e21ha2U6IiIsbW9kZWw6IiIseWVhcjoiIixwcmljZTowLHNpdGVpZDowLGRlYWxlcmlkOjAsbGFuZ3VhZ2U6IkZSRU5DSCJ9O2lmKCFrKXJldHVybiB3O2s9ay5zcGxpdCgvWzsmXS8pO2Zvcih2YXIgdT0wO3U8ay5sZW5ndGg7dSsrKXt2YXIgQj1rW3VdLnNwbGl0KCI9Iik7aWYoQiYmMj09Qi5sZW5ndGgpe3ZhciBFPQoJCXVuZXNjYXBlKEJbMF0pO0I9dW5lc2NhcGUoQlsxXSk7Qj1CLnJlcGxhY2UoL1wrL2csIiAiKTt3W0VdPUJ9fXJldHVybiB3fTtpZigidW5kZWZpbmVkIiE9dHlwZW9mIGUmJm51bGwhPWUpZm9yKHZhciBmPTA7ZjxlLmxlbmd0aDtmKyspe3ZhciBxPWVbZl07aWYoLTEhPXEuc3JjLmluZGV4T2YoIi91cGxpZ2h0LmpzPyIpKXt2YXIgcD1xLnNyYy5yZXBsYWNlKC9eW15cP10rXD8\/LywiIikseT1oKHApO3ZhciBsPXkubWFrZTt2YXIgQz15Lm1vZGVsO2I9eS55ZWFyO3ZhciBBPXkuc2l0ZWlkO3ZhciB6PXkuZGVhbGVyaWQ7ZD15LnByaWNlO2M9eS5sYW5ndWFnZTticmVha319dmFyIG09YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCk7ZT0wO2lmKCJ1bmRlZmluZWQiPT1tfHwwPT1tKXttPTA7dmFyIHI9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXNpZF90bXAiKTtpZigidW5kZWZpbmVkIj09dHlwZW9mIHJ8fG51bGw9PXIpe3ZhciB4PQoJCW5ldyBEYXRlO3guc2V0VGltZSh4LmdldFRpbWUoKSs3MkU1KTt2YXIgZz0iOyBleHBpcmVzPSIreC50b0dNVFN0cmluZygpO2RvY3VtZW50LmNvb2tpZT0idXNpZF90bXA9MSIrZysiOyBwYXRoPS8ifWVsc2UgZT0hMH12YXIgbj13aW5kb3cubG9jYXRpb24uaHJlZjtpZigtMTxuLmluZGV4T2YoInN0ZXA9cmVzdW1lIikpe3ZhciB0PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInNlc3NpZCIpO24rPSImc2Vzc2lkPSIrKCJ1bmRlZmluZWQiIT10eXBlb2YgdHx8bnVsbCE9dD90OiJOVUxMIil9dmFyIHY9e3NpZDptLHV1aWQ6d2luZG93LmFjdGl2ZVByb2ZpbGVJRCxzaXRlaWQ6QSxkZWFsZXJpZDp6LHV0bVNvdXJjZTpnZXRVUkxWYWx1ZSgidXRtX3NvdXJjZSIsIiIpLHV0bUNhbXBhaWduOmdldFVSTFZhbHVlKCJ1dG1fY2FtcGFpZ24iLCJvcmdhbmljIiksdXRtS2V5d29yZDpnZXRDS1ZhbHVlKCJ1dG1fa2V5d29yZCIpLHV0bUxhbmRpbmc6Z2V0Q0tWYWx1ZSgidXRtX2xhbmRpbmciKSwKCQl1dG1Tb3VyY2VSZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fc291cmNlX3JldGFyZ2V0aW5nIiksdXRtQ2FtcGFpZ25SZXRhcmdldGluZzpnZXRDS1ZhbHVlKCJ1dG1fY2FtcGFpZ25fcmV0YXJnZXRpbmciKSxtYWtlOmwsbW9kZWw6Qyx5ZWFyOmlzTmFOKGIpPyhuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKTpiLGxhbmd1YWdlOmMscGFnZToidW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdy5hY3RpdmVQYWdlPyIiOndpbmRvdy5hY3RpdmVQYWdlLHByaWNlOmQsc2xvb2t1cDplLGhyZWY6bn0sRD1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpO3Y9SlNPTi5zdHJpbmdpZnkodik7dj12LnJlcGxhY2VBbGwoIi8iLCJcXC8iKTt0aGlzLmFqYXhNbmcuYWpheCh7dXJsOkQrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLGRhdGE6dixkb25lOmZ1bmN0aW9uKGspe3RyeXtpZigic3RyaW5nIj09dHlwZW9mIGsmJihrPUpTT04ucGFyc2UoaykpLCJ1bmRlZmluZWQiIT10eXBlb2YgayYmCgkJbnVsbCE9ayYmKGsuY29uc3RydWN0b3I9PVtdLmNvbnN0cnVjdG9yfHxrLmNvbnN0cnVjdG9yPT17fS5jb25zdHJ1Y3Rvcikpe209ay5zZXNzaW9uaWQ7bGFzdFZpZXdJRD1rLnZpZXdpZDthY3RpdmVVc2VyUHJvZmlsZU1uZy5fbG9hZFByb3BlcnRpZXMoay5wcm9wZXJ0aWVzKTt3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPW07d2luZG93Lmxhc3RQYWdlVmlld0lEPWxhc3RWaWV3SUQ7YWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPW07dmFyIHc9bmV3IERhdGU7dy5zZXRUaW1lKHcuZ2V0VGltZSgpKzcyRTUpO3ZhciB1PSI7IGV4cGlyZXM9Iit3LnRvR01UU3RyaW5nKCk7ZG9jdW1lbnQuY29va2llPSJ1c2lkPSIrbSt1KyI7IHBhdGg9LyI7ZG9jdW1lbnQuY29va2llPSJ1dmlldz0iK2xhc3RWaWV3SUQrdSsiOyBwYXRoPS8iO2FjdGl2ZVVzZXJQcm9maWxlTW5nLl9kZWxldGVDb29raWUoInVzaWRfdG1wIik7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlTZXNzaW9uSUQoKX19Y2F0Y2goQil7fXRyeXtudWxsIT0KCQlzaXRlV2Vic29ja2V0TGlzdGVuZXIuc2l0ZWlkJiZzaXRlV2Vic29ja2V0TGlzdGVuZXIuY29ubmVjdCgpfWNhdGNoKEIpe319fSl9fWNhdGNoKGspe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIHN0YXQgcGFnZSBkdWUgdG8gZXJyb3I6ICIray5tZXNzYWdlKX19LGxvZ1BhZ2VWaWV3OmZ1bmN0aW9uKCl7dHJ5e2lmKCFhY3RpdmVVc2VyUHJvZmlsZU1uZy5faXNCb3QoKSYmYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJQYWdlVmlldygpKXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO2lmKCExPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuanF1ZXJ5QWN0aXZlKXJldHVybiB0aGlzLmxvZ1BhZ2VWaWV3RXgoKTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2NyaXB0Iik7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBhJiZudWxsIT1hKWZvcih2YXIgYj0wO2I8YS5sZW5ndGg7YisrKWlmKC0xIT0KCQlhW2JdLnNyYy5pbmRleE9mKCIvdXBsaWdodC5qcz8iKSlyZXR1cm4gdGhpcy5sb2dQYWdlVmlld0V4KCk7dmFyIGQ9bnVsbDsidW5kZWZpbmVkIiE9dHlwZW9mIGdldFVybFZhcnMmJihkPWdldFVybFZhcnMoKSk7Z2V0Q3VzdG9tVlJCPWZ1bmN0aW9uKGcsbil7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBjdXN0b21fdmFyaWFibGVzJiZudWxsIT1jdXN0b21fdmFyaWFibGVzKWZvcih2YXIgdCBpbiBjdXN0b21fdmFyaWFibGVzKXtpZih0Lm5hbWU9PWcpcmV0dXJuIHQudmFsdWV9ZWxzZSByZXR1cm4gbn07Z2V0Q0tWYWx1ZT1mdW5jdGlvbihnLG4pe3ZhciB0PW51bGw7dHJ5e3ZhciB2PWdldEN1c3RvbVZSQihnLG51bGwpOyJ1bmRlZmluZWQiIT10eXBlb2YgdiYmbnVsbCE9diYmKHQ9dik7aWYobnVsbD09dCYmKHQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZShnKSxudWxsPT10KSl7aWYobnVsbD09ZHx8InVuZGVmaW5lZCI9PXR5cGVvZiBkW2ddKXJldHVybiJ1bmRlZmluZWQiPT0KCXR5cGVvZiBuPyIiOm47dD1kW2ddfX1jYXRjaChEKXtjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgcmV0cmlldmluZyBja1ZhbHVlIC0tICVzIixELm1lc3NhZ2UpfXJldHVybiB0fTtnZXRVUkxWYWx1ZT1mdW5jdGlvbihnLG4pe2c9Zy5yZXBsYWNlKC9bXFtdLywiXFxbIikucmVwbGFjZSgvW1xdXS8sIlxcXSIpO2c9KG5ldyBSZWdFeHAoIltcXD8mXSIrZysiPShbXiYjXSopIikpLmV4ZWMod2luZG93LmxvY2F0aW9uLmhyZWYpO2c9bnVsbD09Zz9udWxsOmdbMV07cmV0dXJuInVuZGVmaW5lZCI9PXR5cGVvZiBnfHxudWxsPT1nfHwwPT1nLnRvU3RyaW5nKCkubGVuZ3RoP246Z307YT1mdW5jdGlvbigpe2lmKCExPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuanF1ZXJ5QWN0aXZlKXJldHVybltdO3ZhciBnPVtdO3RyeXt2YXIgbj1bXSx0PWZ1bmN0aW9uKGssdyl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiAkKCIjIitrKS5hdHRyKCJpZCIpJiYKCShrPSQoIiMiK2spLnZhbCgpLCJzdHJpbmciPT10eXBlb2YgayYmMDxrLmxlbmd0aCYmLTE9PWsuaW5kZXhPZigiIyMiKSk\/azp3fTtuLnB1c2goInBvcHVwIik7bi5wdXNoKCJwaG9uZSIpO24ucHVzaCgibGFzdHZpZXdlZCIpO24ucHVzaCgiZXhwcmVzc2NhciIpO2Zvcih2YXIgdj0wO3Y8bi5sZW5ndGg7disrKXt2YXIgRD10KG5bdl0rIm1ha2UiLG51bGwpO2lmKG51bGwhPUQpe2cucHVzaChEKTtnLnB1c2godChuW3ZdKyJtb2RlbCIsbnVsbCkpO2cucHVzaCh0KG5bdl0rInllYXIiLG51bGwpKTticmVha319fWNhdGNoKGspe2c9W10sZy5wdXNoKCIiKSxnLnB1c2goIiIpLGcucHVzaCgiIil9MD09Zy5sZW5ndGgmJmcucHVzaCgiIik7MT09Zy5sZW5ndGgmJmcucHVzaCgiIik7Mj09Zy5sZW5ndGgmJmcucHVzaCgiIik7cmV0dXJuIGd9O3ZhciBjPWI9IiIsZT0iIjt0cnl7dmFyIGg9YSgpO2I9MDxoLmxlbmd0aD9oWzBdOmI7Yz0xPGgubGVuZ3RoP2hbMV06YztlPTI8aC5sZW5ndGg\/CgkJaFsyXTplfWNhdGNoKGcpe2U9Yz1iPSIifXRyeXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHNlYXJjaENyaXRlcmlhJiZudWxsIT1zZWFyY2hDcml0ZXJpYSl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBifHxudWxsPT1ifHwwPT1iLmxlbmd0aCliPS0xPT1zZWFyY2hDcml0ZXJpYS5tYWtlPyIiOnNlYXJjaENyaXRlcmlhLm1ha2U7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBjfHxudWxsPT1jfHwwPT1jLmxlbmd0aCljPS0xPT1zZWFyY2hDcml0ZXJpYS5tb2RlbD8iIjpzZWFyY2hDcml0ZXJpYS5tb2RlbDtpZigidW5kZWZpbmVkIj09dHlwZW9mIGV8fG51bGw9PWV8fDA9PWUubGVuZ3RoKWU9LTE9PXNlYXJjaENyaXRlcmlhLnllYXI\/IiI6c2VhcmNoQ3JpdGVyaWEueWVhcn1pZihudWxsPT1ifHwwPT1iLmxlbmd0aCkidW5kZWZpbmVkIiE9dHlwZW9mIG1ha2UmJm51bGwhPW1ha2UmJjA8bWFrZS5sZW5ndGgmJiIwIiE9bWFrZT9iPW1ha2U6KGI9JCgiI3BvcHVwbWFrZSIpLnZhbCgpLCJ1bmRlZmluZWQiPT0KCXR5cGVvZiBiJiYoYj0kKCIjYWN0aXZlTWFrZSIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGImJihiPSQoIiNjYXJNYWtlIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9JCgnaW5wdXRbbmFtZT0ibWFrZSJdJykudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgYiYmKGI9Z2V0Q0tWYWx1ZSgibWFrZSIsIiIpKSk7aWYobnVsbD09Y3x8MD09Yy5sZW5ndGgpInVuZGVmaW5lZCIhPXR5cGVvZiBtb2RlbCYmbnVsbCE9bW9kZWwmJjA8bW9kZWwubGVuZ3RoJiYiMCIhPW1vZGVsP2M9bW9kZWw6KGM9JCgiI3BvcHVwbW9kZWwiKS52YWwoKSwidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSQoIiNhY3RpdmVNb2RlbCIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSQoIiNjYXJNb2RlbCIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGMmJihjPSQoJ2lucHV0W25hbWU9Im1vZGVsIl0nKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBjJiYoYz1nZXRDS1ZhbHVlKCJtb2RlbCIsCgkJIiIpKSk7aWYobnVsbD09ZXx8MD09ZS5sZW5ndGgpInVuZGVmaW5lZCIhPXR5cGVvZiB5ZWFyJiZudWxsIT15ZWFyJiYhaXNOYU4oeWVhcikmJjA8eWVhci5sZW5ndGgmJiIwIiE9eWVhcj9lPXllYXI6KGU9JCgiI3BvcHVweWVhciIpLnZhbCgpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgiI2FjdGl2ZVllYXIiKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT0kKCIjY2FyWWVhciIpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoIiN5ZWFyIikudmFsKCkpLCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKGU9JCgnaW5wdXRbbmFtZT0ieW1heFRleHQiXScpLnZhbCgpKSwidW5kZWZpbmVkIj09dHlwZW9mIGUmJihlPSQoJ2lucHV0W25hbWU9InltaW5UZXh0Il0nKS52YWwoKSksInVuZGVmaW5lZCI9PXR5cGVvZiBlJiYoZT1nZXRDS1ZhbHVlKCJ5ZWFyIiwobmV3IERhdGUpLmdldEZ1bGxZZWFyKCkpKSl9Y2F0Y2goZyl7Y29uc29sZSYmY29uc29sZS5sb2cmJgoJY29uc29sZS5sb2coIlVuZXhwZWN0ZWQgZXJyb3IgaWRlbnRpZnlpbmcgbWFrZS1tb2RlbC15ZWFyOiAiK2cubWVzc2FnZSksbnVsbD09YiYmKGI9IiIpLG51bGw9PWMmJihjPSIiKSxudWxsPT1lJiYoZT0iIil9dmFyIGY9MDtpZighMSE9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmpxdWVyeUFjdGl2ZSl7aWYoIlVTRURDQVJTIj09d2luZG93LmFjdGl2ZVBhZ2Upe3ZhciBxPTA7JCgiZGl2LmJveDE3MCBkaXYubWFpbl9waWNib3ggZGl2LmJveDJfZGV0YWlsc19taWQgZGl2LmJveDJfZGV0YWlsc190ZXh0IHNwYW4iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGc9JCh0aGlzKS50ZXh0KCk7LTEhPWcuaW5kZXhPZigiJCIpJiYocSsrLGYrPXBhcnNlSW50KGcucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpfSk7Zj0wPHE\/Zi9xOjA7aXNOYU4oZikmJihmPTApfTAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY3VycmVudENhclByaWNlIikuYXR0cigiaWQiKXx8CgkoZj1wYXJzZUludCgkKCIjY3VycmVudENhclByaWNlIikudmFsKCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY2FycHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjY2FycHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoIiNjYXJQcmljZSIpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoIiNjYXJQcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI2V4cHJlc3NjYXJwcmljZSIpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoIiNleHByZXNzY2FycHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09Cgl0eXBlb2YgJCgiI2NhcnByb29mY2FycHJpY2UiKS5hdHRyKCJpZCIpfHwoZj1wYXJzZUludCgkKCIjY2FycHJvb2ZjYXJwcmljZSIpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgiI3NlYXJjaFJlc3VsdHNBdmdQcmljZSIpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoIiNzZWFyY2hSZXN1bHRzQXZnUHJpY2UiKS52YWwoKS5yZXBsYWNlKCIkIiwiIikucmVwbGFjZSgiLCIsIiIpKSk7MCE9ZiYmIWlzTmFOKGYpfHwidW5kZWZpbmVkIj09dHlwZW9mICQoJ2lucHV0W25hbWU9InBtaW4iXScpLmF0dHIoImlkIil8fChmPXBhcnNlSW50KCQoJ2lucHV0W25hbWU9InBtaW4iXScpLnZhbCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTswIT1mJiYhaXNOYU4oZil8fCJ1bmRlZmluZWQiPT10eXBlb2YgJCgnaW5wdXRbbmFtZT0icG1heCJdJykuYXR0cigiaWQiKXx8KGY9cGFyc2VJbnQoJCgnaW5wdXRbbmFtZT0icG1heCJdJykudmFsKCkucmVwbGFjZSgiJCIsCgkJIiIpLnJlcGxhY2UoIiwiLCIiKSkpOzAhPWYmJiFpc05hTihmKXx8InVuZGVmaW5lZCI9PXR5cGVvZiAkKCIjY2FyUHJpY2UiKS5hdHRyKCJpZCIpfHwoZj0kKCIjY2FyUHJpY2UiKS5oYXNDbGFzcygiYm94Ml9kZXRhaWxzX3RleHQyNSIpP3BhcnNlSW50KCQoIiNjYXJQcmljZSIpLmNoaWxkcmVuKCI6Zmlyc3QiKS50ZXh0KCkucmVwbGFjZSgiJCIsIiIpLnJlcGxhY2UoIiwiLCIiKSk6cGFyc2VJbnQoJCgiI2NhclByaWNlIikudGV4dCgpLnJlcGxhY2UoIiQiLCIiKS5yZXBsYWNlKCIsIiwiIikpKTtpc05hTihmKSYmKGY9MCk7dmFyIHA9MCx5PTA7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWN0aXZlU2l0ZUlEJiZudWxsIT13aW5kb3cuYWN0aXZlU2l0ZUlEJiYwIT13aW5kb3cuYWN0aXZlU2l0ZUlEP3A9d2luZG93LmFjdGl2ZVNpdGVJRDoocD0kKCIjc2l0ZUlEIikudmFsKCksInVuZGVmaW5lZCI9PXR5cGVvZiBwJiYocD0kKCIjdG9wc2l0ZWlkIikudmFsKCkpLCJ1bmRlZmluZWQiPT0KCXR5cGVvZiBwJiYocD0wKSk7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWN0aXZlRGVhbGVySUQmJih5PXdpbmRvdy5hY3RpdmVTaXRlSUQpO3ZhciBsPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpLEM9MDtpZigidW5kZWZpbmVkIj09bHx8MD09bHx8IjAiPT1sKWlmKGw9MCwidW5kZWZpbmVkIj09dHlwZW9mICQuY29va2llKCJ1c2lkX3RtcCIpKXt2YXIgQT1uZXcgRGF0ZTtBLnNldFRpbWUoQS5nZXRUaW1lKCkrNzJFNSk7dmFyIHo9IjsgZXhwaXJlcz0iK0EudG9HTVRTdHJpbmcoKTtkb2N1bWVudC5jb29raWU9InVzaWRfdG1wPTEiK3orIjsgcGF0aD0vIn1lbHNlIEM9ITA7dmFyIG09d2luZG93LmxvY2F0aW9uLmhyZWY7LTE8bS5pbmRleE9mKCJzdGVwPXJlc3VtZSIpJiYobSs9IiZzZXNzaWQ9IisoInVuZGVmaW5lZCIhPXR5cGVvZiAkLmNvb2tpZSgic2Vzc2lkIik\/JC5jb29raWUoInNlc3NpZCIpOiJOVUxMIikpfXZhciByPXtzaWQ6bCx1dWlkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldEFjdGl2ZVByb2ZpbGVpZCgpLAoJCXNpdGVpZDpwLGRlYWxlcmlkOnksdXRtU291cmNlOmdldFVSTFZhbHVlKCJ1dG1fc291cmNlIiwiIiksdXRtQ2FtcGFpZ246Z2V0VVJMVmFsdWUoInV0bV9jYW1wYWlnbiIsIm9yZ2FuaWMiKSx1dG1LZXl3b3JkOmdldENLVmFsdWUoInV0bV9rZXl3b3JkIiksdXRtTGFuZGluZzpnZXRDS1ZhbHVlKCJ1dG1fbGFuZGluZyIpLHV0bVNvdXJjZVJldGFyZ2V0aW5nOmdldENLVmFsdWUoInV0bV9zb3VyY2VfcmV0YXJnZXRpbmciKSx1dG1DYW1wYWlnblJldGFyZ2V0aW5nOmdldENLVmFsdWUoInV0bV9jYW1wYWlnbl9yZXRhcmdldGluZyIpLG1ha2U6Yixtb2RlbDpjLHllYXI6aXNOYU4oZSk\/KG5ldyBEYXRlKS5nZXRGdWxsWWVhcigpOmUsbGFuZ3VhZ2U6JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpLHBhZ2U6InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUGFnZT8iIjp3aW5kb3cuYWN0aXZlUGFnZSxwcmljZTpmLHNsb29rdXA6QyxocmVmOm19LHg9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTsKCQlyPUpTT04uc3RyaW5naWZ5KHIpO3I9ci5yZXBsYWNlQWxsKCIvIiwiXFwvIik7dGhpcy5hamF4TW5nLmFqYXgoe3R5cGU6IlBPU1QiLHVybDp4KyJzZXJ2aWNlL3Nlc3Npb25NbmcucGhwIixjb250ZW50VHlwZToiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCIsZGF0YTpyLGRvbmU6ZnVuY3Rpb24oZyl7InN0cmluZyI9PXR5cGVvZiBnJiYoZz1KU09OLnBhcnNlKGcpKTsidW5kZWZpbmVkIj09dHlwZW9mIGd8fG51bGw9PWd8fGcuY29uc3RydWN0b3IhPVtdLmNvbnN0cnVjdG9yJiZnLmNvbnN0cnVjdG9yIT17fS5jb25zdHJ1Y3Rvcnx8KGw9Zy5zZXNzaW9uaWQsbGFzdFZpZXdJRD1nLnZpZXdpZCxhY3RpdmVVc2VyUHJvZmlsZU1uZy5fbG9hZFByb3BlcnRpZXMoZy5wcm9wZXJ0aWVzKSx3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPWwsd2luZG93Lmxhc3RQYWdlVmlld0lEPWxhc3RWaWV3SUQsYWN0aXZlVXNlclByb2ZpbGVNbmcuc2Vzc2lvbmlkPWwsYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1c2lkIiwKCQkJCWwsIi8iLDIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXZpZXciLGxhc3RWaWV3SUQsIi8iLDIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVzaWRfdG1wIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlTZXNzaW9uSUQoKSl9LGZhaWw6ZnVuY3Rpb24oZyxuLHQpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiVW5hYmxlIHRvIGxvZyBwYWdlIHZpZXcuIEVycm9yOiAiK3QubWVzc2FnZSl9LGFsd2F5czpmdW5jdGlvbigpe319KX19Y2F0Y2goZyl7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJVbmFibGUgdG8gc3RhdCBwYWdlIGR1ZSB0byBlcnJvcjogIitnLm1lc3NhZ2UpfX0sX2xvYWRQcm9wZXJ0aWVzOmZ1bmN0aW9uKGEpe3RyeXsidW5kZWZpbmVkIiE9dHlwZW9mIGEmJm51bGwhPWEmJihhY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXM9YSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5wYWdlVmlld0NvdW50PQoJCWEucGFnZXZpZXdzKX1jYXRjaChiKXt9fSxnZXRQcm9wZXJ0eTpmdW5jdGlvbihhLGIpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcuX19wcm9wZXJ0aWVzfHxudWxsPT1hY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXM\/bnVsbDoidW5kZWZpbmVkIj09dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLl9fcHJvcGVydGllc1thXT8idW5kZWZpbmVkIiE9dHlwZW9mIGI\/YjoiIjphY3RpdmVVc2VyUHJvZmlsZU1uZy5fX3Byb3BlcnRpZXNbYV19LGFkZFByb3BlcnR5OmZ1bmN0aW9uKGEsYixkKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGF8fG51bGw9PWF8fDA9PWEubGVuZ3RofHwidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWJ8fCJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93LmFjdGl2ZVByb2ZpbGVJRClyZXR1cm4gbnVsbDsidW5kZWZpbmVkIj09dHlwZW9mIGQmJihkPSJVUERBVEUiKTthY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpOwoJCXRoaXMuYWpheE1uZy5hamF4KHt0eXBlOiJHRVQiLGFjdGlvbjoiYWRkcHJvcGVydHkiLHV1aWQ6YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0QWN0aXZlUHJvZmlsZWlkKCksc2lkOmFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFNlc3Npb25JRCgpLHBuYW1lOmEscHZhbHVlOmIscG1vZGU6ZH0pO3JldHVybiEwfSx0YWdCcm93c2VyOmZ1bmN0aW9uKGEsYil7dHJ5e3ZhciBkPWEsYz10aGlzO2lmKCEwPT09YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQpcmV0dXJuITE7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBhfHxudWxsPT1hKWQ9ZnVuY3Rpb24oaCl7dHJ5e3ZhciBmPW5ldyBTdHJpbmcoaCk7Zj1mLnRyaW0oKTtpZigwPGYubGVuZ3RoKXtjLmxvZ01zZygiVGFnZ2VkIHdpdGggdXVpZCA9PiAiK2YpO3ZhciBxPWMuZ2V0QWN0aXZlUHJvZmlsZWlkKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPWYudHJpbSgpO251bGwhPXEmJiJ1bmRlZmluZWQiIT10eXBlb2YgcS5sZW5ndGgmJgoJMDxxLmxlbmd0aCYmYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkIT1xJiZjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZF92MSIscSwiLyIsMTgwKTtjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZCIsYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkLCIvIiw1RTMpO2MuY29va2llTW5nLnNldENvb2tpZVZhbHVlKCJ1dWlkX3ZsZDMiLCEwLCIvIiw1RTMpO2Muc2V0QWN0aXZlUHJvZmlsZWlkKCl9fWNhdGNoKHApe2MubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIHJldHVybmVkIGZyb20gdGFnZ2luZzogIitwLm1lc3NhZ2UpfX07dGhpcy5sb2dNc2coIkdlbmVyYXRpbmcgZmluZ2VycHJpbnQiKTt2YXIgZT10aGlzLmdldEZQVVJJKCk7Yy5hamF4TW5nLmdldFNjcmlwdChlLGZ1bmN0aW9uKCl7dHJ5e3ZhciBoPWZ1bmN0aW9uKGwpe3RyeXtjLmxvZ01zZygiRmluZ2VycHJpbnRlZDogIitsKTt2YXIgQz1jLmdldEFjdGl2ZVByb2ZpbGVpZCgpLEE9ZW5jb2RlVVJJKHdpbmRvdy5sb2NhdGlvbi5vcmlnaW4pOwoJCWlmKCJ1bmRlZmluZWQiPT10eXBlb2YgbHx8bnVsbD09bClyZXR1cm4hMTt2YXIgej0hMTthY3RpdmVVc2VyUHJvZmlsZU1uZy5pc0QyQ1NpdGUmJjM9PXdpbmRvdy5hY3RpdmVTaXRlSUQmJih6PSEwKTtjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVmcCIsbCwiLyIsNUUzKTt2YXIgbT17ZDpBLGZwMTpsLnN1YnN0cmluZygwLDgpLGZwMjpsLnN1YnN0cmluZyg4LDE2KSxmcDM6bC5zdWJzdHJpbmcoMTYsMjQpLGZwNDpsLnN1YnN0cmluZygyNCwzMiksdWlkOkMsYWN0aW9uOiJ1cGdyYWRlZnAiLGRibTp6LHY6YWN0aXZlVXNlclByb2ZpbGVNbmcuX19yZXNldFZ9LHI9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U3RhdHNVUkkoKTtjLmxvZ01zZyhyKyJzZXJ2aWNlL2QyYy51cGdyYWRlLnY2LmZwLmpzIik7Yy5sb2dNc2coSlNPTi5zdHJpbmdpZnkobSkpO2MuYWpheE1uZy5hamF4KHt1cmw6cisic2VydmljZS9kMmMudXBncmFkZS52Ni5mcC5qcyIsdHlwZToiR0VUIixkYXRhOm0sCgkJCWRvbmU6ZnVuY3Rpb24oeCl7dHJ5e2MubG9nTXNnKCJVVUlEIGFmdGVyIHVwcm9maWxlIHVwZGF0ZTogIit4KSwidW5kZWZpbmVkIiE9dHlwZW9mIGQmJm51bGwhPWQ\/ZCh4KTpjLmNvb2tpZU1uZy5zZXRDb29raWVWYWx1ZSgidXVpZCIseCwiLyIsNUUzKSwidW5kZWZpbmVkIiE9dHlwZW9mIGImJm51bGwhPWImJmIoKX1jYXRjaChnKXt9fX0pfWNhdGNoKHgpe2MubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIGV4ZWN1dGluZyB0YWdNZSBzdGVwOiAiK3gubWVzc2FnZSl9fSxmPSExO3RyeXtuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIldpbiIpLG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiTWFjIiksbmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJMaW51eCIpLG5hdmlnYXRvci51c2VyQWdlbnQuaW5kZXhPZigiQW5kcm9pZCIpLC0xIT1uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoImxpa2UgTWFjIikmJihmPSEwKSxsb2NhdGlvbi5wcm90b2NvbC5pbmRleE9mKCJodHRwcyIpfWNhdGNoKGwpe312YXIgcT0KCQl7cHJlcHJvY2Vzc29yOm51bGwsYXVkaW86e3RpbWVvdXQ6MUUzLGV4Y2x1ZGVJT1MxMTpmfSxmb250czp7c3dmQ29udGFpbmVySWQ6ImRjdGtkaXZmcDIiLHN3ZlBhdGg6ImZsYXNoL2NvbXBpbGVkL0ZvbnRMaXN0LnN3ZiIsdXNlckRlZmluZWRGb250czpbXSxleHRlbmRlZEpzRm9udHM6ITF9LHNjcmVlbjp7ZGV0ZWN0U2NyZWVuT3JpZW50YXRpb246ITB9LHBsdWdpbnM6e3NvcnRQbHVnaW5zRm9yOlsvcGFsZW1vb24vaV0sZXhjbHVkZUlFOiExfSxleHRyYUNvbXBvbmVudHM6W10sTk9UX0FWQUlMQUJMRToibm90IGF2YWlsYWJsZSIsRVJST1I6ImVycm9yIixFWENMVURFRDoiZXhjbHVkZWQifSxwPSExO251bGwhPXdpbmRvdyYmbnVsbCE9d2luZG93LmxvY2F0aW9uJiYidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdy5sb2NhdGlvbi5ocmVmJiYoLTE8d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiZDJjZGVidWc9MSIpfHwtMSE9d2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZigiY3JtMi5kMmNtZWRpYS5jYSIpKSYmCgkocD0hMCk7dmFyIHk9ZnVuY3Rpb24obCl7dHJ5e3ZhciBDPWZ1bmN0aW9uKHope3o9ei5tYXAoZnVuY3Rpb24obSl7dmFyIHI9IiI7dHJ5e3N3aXRjaChwJiZjb25zb2xlLmxvZyhtLmtleS50b0xvd2VyQ2FzZSgpKSxtLmtleS50b0xvd2VyQ2FzZSgpKXtjYXNlICJjYW52YXMiOmNhc2UgIndlYmdsIjpjYXNlICJhZGJsb2NrIjpyPSIiO2JyZWFrO2Nhc2UgInVzZXJhZ2VudCI6aWYoMDxtLnZhbHVlLmxlbmd0aCYmLTEhPW0udmFsdWUuaW5kZXhPZigiICIpKWZvcih2YXIgeD1tLnZhbHVlLnNwbGl0KCIgIiksZz0wO2c8eC5sZW5ndGg7ZysrKXt2YXIgbj14W2ddO2lmKC0xIT1uLmluZGV4T2YoIi8iKSl7dmFyIHQ9bi5zcGxpdCgiLyIpO3IrPXRbMF19ZWxzZS0xPT1uLmluZGV4T2YoIi4iKSYmKHIrPW4pfXAmJmNvbnNvbGUubG9nKCJVc2VyIEFnZW50IC0tICIrcik7YnJlYWs7ZGVmYXVsdDoidW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5LmlzQXJyYXkmJkFycmF5LmlzQXJyYXkobS52YWx1ZSl8fAoJbS52YWx1ZS5jb25zdHJ1Y3Rvcj09PUFycmF5PyhtLnZhbHVlLnNvcnQoKSxyPW0udmFsdWUuam9pbigpKTpyPW0udmFsdWV9fWNhdGNoKHYpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiRlAgRmFpbGVkIC0tICVzIC0gJW8iLHYubWVzc2FnZSxtKX1pZigidW5kZWZpbmVkIj09dHlwZW9mIHJ8fG51bGw9PXIpcj0iIjtyZXR1cm4gcn0pO3ouc29ydCgpO3JldHVybiB6fShsKTtwJiZjb25zb2xlLmxvZygidG8gaGFzaDogJW8iLEMpO3ZhciBBPUZpbmdlcnByaW50Mi54NjRoYXNoMTI4KEMuam9pbigiIiksMzEpO3AmJmNvbnNvbGUubG9nKCJGUCA9PiAlcyIsQSk7aChBKTtjLmxvZ01zZygiRmluZ2VycHJpbnQ6ICIrQSl9Y2F0Y2goeil7Y29uc29sZSYmY29uc29sZS5sb2cmJmNvbnNvbGUubG9nKCJGUDIgRmFpbGVkIC0tICVzIix6Lm1lc3NhZ2UpfX07d2luZG93LnJlcXVlc3RJZGxlQ2FsbGJhY2s\/cmVxdWVzdElkbGVDYWxsYmFjayhmdW5jdGlvbigpe3RyeXtGaW5nZXJwcmludDIuZ2V0KHEsCgkJeSl9Y2F0Y2gobCl7Yy5sb2dNc2coIjEuVW5hYmxlIHRvIGluc3RhbnRpYXRlIEZQMi4gRXJyb3I6ICIrbC5tZXNzYWdlKX19KTpzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dHJ5e0ZpbmdlcnByaW50Mi5nZXQocSx5KX1jYXRjaChsKXtjLmxvZ01zZygiMi5VbmFibGUgdG8gaW5zdGFudGlhdGUgRlAyLiBFcnJvcjogIitsLm1lc3NhZ2UpfX0sNTAwKX1jYXRjaChsKXtjLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciBleGVjdXRpbmcgZmlyc3Qgc3RlcDogIitsLm1lc3NhZ2UpfX0pfWNhdGNoKGgpe2MubG9nTXNnKCJVbmV4cGVjdGVkIGVycm9yIGV4ZWN1dGluZyBmaXJzdCBzdGVwOiAiK2gubWVzc2FnZSl9fSx1cGRhdGVGUDpmdW5jdGlvbigpe3RyeXtpZighMD09PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXJldHVybiExO3RoaXMubG9nTXNnKCJTdGFydGluZyBTYWZhcmkgUnVuIik7aWYoITE9PT10aGlzLnJlc2V0U2Vjb25kUGFzcyl7dGhpcy5yZXNldFNlY29uZFBhc3M9CgkJITA7dGhpcy5sb2dNc2coIlN0YXJ0aW5nIGZpcnN0IHBhc3MiKTt2YXIgYT10aGlzLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWQiKSxiPXRoaXMuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZF9pb3NfMiIpO3RoaXMubG9nTXNnKCJVVUlELiAiK2ErIiAtLSBJT1NSRVNFVC4gIitiKTtudWxsPT1hfHxudWxsPT1iPyh0aGlzLmxvZ01zZygiRHJvcHBpbmcgcmVzZXQgY29va2llIiksdGhpcy5jb29raWVNbmcuc2V0Q29va2llVmFsdWUoInV1aWRfaW9zXzIiLDEsIi8iLDVFMyksdGhpcy50YWdCcm93c2VyKG51bGwpKToodGhpcy5sb2dNc2coIlNlY29uZCBwYXNzLCBub3RoaW5nIHRvIGRvIiksd2luZG93Ll9fX2QyY0NUS01ldGhvZCgpKX1lbHNlIHdpbmRvdy5fX19kMmNDVEtNZXRob2QoKX1jYXRjaChkKXt0aGlzLmxvZ01zZygiVW5leHBlY3RlZCBlcnJvciB1cGRhdGluZyBtb2JpbGUgY29va2llOiAiK2QubWVzc2FnZSl9fX07CndpbmRvdy5fX19kMmNDVEtNZXRob2Q9ZnVuY3Rpb24oKXt0cnl7aWYoIWFjdGl2ZVVzZXJQcm9maWxlTW5nLl9pc0JvdCgpJiYhMCE9PWFjdGl2ZVVzZXJQcm9maWxlTW5nLmRpc2FibGVkKXthY3RpdmVVc2VyUHJvZmlsZU1uZy5qcXVlcnlBY3RpdmU9d2luZG93LmpRdWVyeT8hMDohMTt2YXIgYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidG9wc2l0ZWlkIik7aWYobnVsbD09YXx8InVuZGVmaW5lZCI9PXR5cGVvZiBhLnZhbHVlfHxpc05hTihhLnZhbHVlKSlhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dNc2coIkxvYWRpbmcgZnBzeXN0ZW0gb24gbm9uIGQyYyB3ZWJzaXRlIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuaXNEMkNTaXRlPSExO2Vsc2UgdHJ5e3dpbmRvdy5hY3RpdmVTaXRlSUQ9cGFyc2VJbnQoYS52YWx1ZSl9Y2F0Y2gocCl7d2luZG93LmFjdGl2ZVNpdGVJRD12b2lkIDB9dmFyIGI9YWN0aXZlVXNlclByb2ZpbGVNbmcuY2hlY2tTY2hlZHVsZWRSZXNldCgpLGQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXNpZCIpOwoJaWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlU2Vzc2lvbklEfHxudWxsPT13aW5kb3cuYWN0aXZlU2Vzc2lvbklEKXdpbmRvdy5hY3RpdmVTZXNzaW9uSUQ9MDtudWxsPT1kfHxpc05hTihkKXx8KHdpbmRvdy5hY3RpdmVTZXNzaW9uSUQ9ZCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF92bGQiKTt2YXIgYz1hY3RpdmVVc2VyUHJvZmlsZU1uZy5nZXRTdGF0c1VSSSgpLGU9ZnVuY3Rpb24oKXt0cnl7InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuc3RhdEV4ZWN1dGVkJiYoInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmbnVsbCE9YWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXc\/KGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3KCksd2luZG93LnN0YXRFeGVjdXRlZD0hMCk6YWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5hamF4KHt1cmw6YysKCQkJInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHAiLHR5cGU6IkdFVCIsZGF0YTp7YWN0aW9uOiJ1bmtub3duIixtc2c6IjEuRWl0aGVyIGFjdGl2ZVVzZXJQcm9maWxlTW5nIGlzIG5vdCBkZWZpbmVkIG9yIGxvZ1BhZ2VWaWV3IGlzIG5vdCBkZWZpbmVkIn19KSl9Y2F0Y2gocCl7YWN0aXZlVXNlclByb2ZpbGVNbmcubG9nTXNnKHAubWVzc2FnZSksYWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5hamF4KHt1cmw6Yysic2VydmljZS9zZXNzaW9uTW5nLnBocCIsdHlwZToiR0VUIixkYXRhOnthY3Rpb246InVua25vd24iLG1zZzpwLm1lc3NhZ2V9fSl9fSxoPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5yZWFkQ29va2llVmFsdWUoInV1aWQiKSxmPW51bGw9PWh8fDA9PWgubGVuZ3RoPyExOiEwO2g9YWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLnJlYWRDb29raWVWYWx1ZSgidXVpZF92bGQzIik7dmFyIHE9bnVsbD09aHx8MD09aC5sZW5ndGg\/ITE6ITA7aWYoIWImJmYmJgoJCXEpe2FjdGl2ZVVzZXJQcm9maWxlTW5nLnJlZ2lzdGVyQ2FsbGJhY2soZSk7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEfHxudWxsPT13aW5kb3cuYWN0aXZlUHJvZmlsZUlEKXdpbmRvdy5hY3RpdmVQcm9maWxlSUQ9YWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0QWN0aXZlUHJvZmlsZWlkKCk7YWN0aXZlVXNlclByb2ZpbGVNbmcuX19ub3RpZnlVVUlEKCl9ZWxzZSBhY3RpdmVVc2VyUHJvZmlsZU1uZy5zZXNzaW9uaWQ9bnVsbCx3aW5kb3cuYWN0aXZlU2Vzc2lvbklEPW51bGwsYWN0aXZlVXNlclByb2ZpbGVNbmcudGFnQnJvd3NlcihudWxsLGZ1bmN0aW9uKCl7YWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJDYWxsYmFjayhlKX0pfX1jYXRjaChwKXtjPWFjdGl2ZVVzZXJQcm9maWxlTW5nLmdldFN0YXRzVVJJKCksYWN0aXZlVXNlclByb2ZpbGVNbmcuYWpheE1uZy5fZ2V0KGMrInNlcnZpY2Uvc2Vzc2lvbk1uZy5waHA\/YWN0aW9uPXVua25vd24mbXNnPTIuIisKCWVuY29kZVVSSUNvbXBvbmVudChwLm1lc3NhZ2UpKSxjb25zb2xlJiZjb25zb2xlLmxvZyYmY29uc29sZS5sb2coIjEuIFVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJlZCBsb2FkaW5nIHVwcm9maWxlLmZpbmFsLmpzLiBFcnJvcjogIitwLm1lc3NhZ2UpfX07CnRyeXtsZXQgYT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjZGlzYWJsZUludGVybmFsU2Vzc2lvbiIpO2lmKG51bGwhPWEmJiIxIj09YS52YWx1ZSl7YWN0aXZlVXNlclByb2ZpbGVNbmcuZGlzYWJsZWQ9ITA7YWN0aXZlVXNlclByb2ZpbGVNbmcudWlkPW51bGw7bGV0IGI9ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3RvcHNpdGVpZCIpO251bGwhPWImJihiPXBhcnNlSW50KGIudmFsdWUpKTtpc05hTihiKXx8MjM1IT1iPyhhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidWlkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF9yc3QiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXZpZXciKSwKCWFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInVzaWQiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1c2lkX3RtcCIpLGFjdGl2ZVVzZXJQcm9maWxlTW5nLmNvb2tpZU1uZy5kZWxldGVDb29raWUoInV1aWRfdjEiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWlkX3ZsZDMiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5jb29raWVNbmcuZGVsZXRlQ29va2llKCJ1dWZwIiksYWN0aXZlVXNlclByb2ZpbGVNbmcuY29va2llTW5nLmRlbGV0ZUNvb2tpZSgidXVpZF9pb3NfMiIpKTpjb25zb2xlLmxvZygiYnlwYXNzaW5nIGNvb2tpZSBwdXJnZSIpfWVsc2UibG9hZGluZyIhPWRvY3VtZW50LnJlYWR5U3RhdGU\/d2luZG93Ll9fX2QyY0NUS01ldGhvZCgpOmRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXI\/ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsd2luZG93Ll9fX2QyY0NUS01ldGhvZCk6Cglkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIixmdW5jdGlvbigpeyJjb21wbGV0ZSI9PWRvY3VtZW50LnJlYWR5U3RhdGUmJndpbmRvdy5fX19kMmNDVEtNZXRob2QoKX0pfWNhdGNoKGEpe2NvbnNvbGUmJmNvbnNvbGUubG9nJiZjb25zb2xlLmxvZygiNS4gVW5leHBlY3RlZCBlcnJvciBvY2N1cmVkIGxvYWRpbmcgdXByb2ZpbGUuZmluYWwuanMuIEVycm9yOiAiK2EubWVzc2FnZSl9OwovKiogL20vanMva2MuZmFiLmpzICoqLwp2YXIgX19fZDJjX2tjZmFianNfY19vbj0iMjAyNS0wNS0yMyAxNzowMzoxOCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfa2NmYWJqc19jX29uPSIyMDI0LTAzLTI1IDEyOjMwOjE4IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbihhKXthLmtjfHwoYS5rYz17fSk7YS5rYy5mYWI9ZnVuY3Rpb24oaCxlLGwpe3ZhciBiPXRoaXM7Yi4kZWw9YShoKTtiLmVsPWg7Yi4kZWwuZGF0YSgia2MuZmFiIixiKTt2YXIgZixrO2IuaW5pdD1mdW5jdGlvbigpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGV8fG51bGw9PT1lKWU9W3t1cmw6bnVsbCxiZ2NvbG9yOiJyZWQiLGljb246IisifSx7dXJsOiJodHRwOi8vd3d3LmV4YW1wbGUuY29tIixiZ2NvbG9yOiJvcmFuZ2UiLGljb246IisifSx7dXJsOiJodHRwOi8vd3d3LmV4YW1wbGUuY29tIixiZ2NvbG9yOiJ5ZWxsb3ciLGljb246IisifV07Yi5saW5rcz1lO2lmKDA8Yi5saW5rcy5sZW5ndGgpe21haW5fYnRuPWIubGlua3NbMF07Y29sb3Jfc3R5bGU9bWFpbl9idG4uY29sb3I\/ImNvbG9yOiIrbWFpbl9idG4uY29sb3IrIjsiOiIiO2JnX2NvbG9yX3N0eWxlPW1haW5fYnRuLmJnY29sb3I\/ImJhY2tncm91bmQtY29sb3I6IittYWluX2J0bi5iZ2NvbG9yKyI7IjoKIiI7bWFpbl9idG5fZG9tPSI8YnV0dG9uIGRhdGEtbGluay1ocmVmPSciKyhtYWluX2J0bi51cmw\/bWFpbl9idG4udXJsOiIiKSsiJyBkYXRhLWxpbmstdGFyZ2V0PSciKyhtYWluX2J0bi50YXJnZXQ\/bWFpbl9idG4udGFyZ2V0OiIiKSsiJyBjbGFzcz0na2NfZmFiX21haW5fYnRuJyBzdHlsZT0nIitiZ19jb2xvcl9zdHlsZSsiJz48c3BhbiBzdHlsZT0nIitjb2xvcl9zdHlsZSsiJz4iK21haW5fYnRuLmljb24rIjwvc3Bhbj48L2J1dHRvbj4iO3N1Yl9mYWJfYnRuc19kb209IiI7Yi5saW5rcy5zaGlmdCgpO2Zvcih2YXIgYz0wO2M8Yi5saW5rcy5sZW5ndGg7YysrKWNvbG9yX3N0eWxlPWIubGlua3NbY10uY29sb3I\/ImNvbG9yOiIrYi5saW5rc1tjXS5jb2xvcisiOyI6IiIsYmdfY29sb3Jfc3R5bGU9Yi5saW5rc1tjXS5iZ2NvbG9yPyJiYWNrZ3JvdW5kLWNvbG9yOiIrYi5saW5rc1tjXS5iZ2NvbG9yKyI7IjoiIixzdWJfZmFiX2J0bnNfZG9tKz0iPGRpdj48YnV0dG9uIGRhdGEtbGluay10aXRsZT0nIisKYi5saW5rc1tjXS50aXRsZSsiJyBkYXRhLWxpbmstaHJlZj0nIisoYi5saW5rc1tjXS51cmw\/Yi5saW5rc1tjXS51cmw6IiIpKyInIGRhdGEtbGluay10YXJnZXQ9JyIrKGIubGlua3NbY10udGFyZ2V0P2IubGlua3NbY10udGFyZ2V0OiIiKSsiJyBjbGFzcz0nc3ViX2ZhYl9idG4nIHN0eWxlPSciK2JnX2NvbG9yX3N0eWxlKyInPjxzcGFuIHN0eWxlPSciK2NvbG9yX3N0eWxlKyInPiIrYi5saW5rc1tjXS5pY29uKyI8L3NwYW4+PC9idXR0b24+PC9kaXY+IjtzdWJfZmFiX2J0bnNfZG9tPSI8ZGl2IGNsYXNzPSdzdWJfZmFiX2J0bnNfd3JhcHBlcic+IitzdWJfZmFiX2J0bnNfZG9tKyI8L2Rpdj4iO2IuJGVsLmFwcGVuZChzdWJfZmFiX2J0bnNfZG9tKS5hcHBlbmQobWFpbl9idG5fZG9tKX1lbHNlInVuZGVmaW5lZCI9PXR5cGVvZiBjb25zb2xlJiYod2luZG93LmNvbnNvbGU9e2xvZzpmdW5jdGlvbihnKXthbGVydChnKX19KSxjb25zb2xlLmxvZygiSW52YWxpZCBsaW5rcyBhcnJheSBwYXJhbSIpOwpiLm9wdGlvbnM9YS5leHRlbmQoe30sYS5rYy5mYWIuZGVmYXVsdE9wdGlvbnMsbCk7Zj1iLiRlbC5maW5kKCIua2NfZmFiX21haW5fYnRuIik7az1iLiRlbC5maW5kKCIuc3ViX2ZhYl9idG5zX3dyYXBwZXIiKTtmLm9uKCJjbGljayIsZnVuY3Rpb24oZyl7MDxhKHRoaXMpLmF0dHIoImRhdGEtbGluay1ocmVmIikubGVuZ3RoJiYoYSh0aGlzKS5hdHRyKCJkYXRhLWxpbmstdGFyZ2V0Iik\/d2luZG93Lm9wZW4oYSh0aGlzKS5hdHRyKCJkYXRhLWxpbmstaHJlZiIpLGEodGhpcykuYXR0cigiZGF0YS1saW5rLXRhcmdldCIpKTp3aW5kb3cubG9jYXRpb24uaHJlZj1hKHRoaXMpLmF0dHIoImRhdGEtbGluay1ocmVmIikpO2sudG9nZ2xlQ2xhc3MoInNob3ciKTswPGEoIi5rY19mYWJfb3ZlcmxheSIpLmxlbmd0aD8oYSgiLmtjX2ZhYl9vdmVybGF5IikucmVtb3ZlKCksZi50cmlnZ2VyKCJibHVyIikpOihmLnRyaWdnZXIoImZvY3VzIiksYSgiYm9keSIpLmFwcGVuZCgnPGRpdiBjbGFzcz0ia2NfZmFiX292ZXJsYXkiID48L2Rpdj4nKSwKYSgiYm9keSIpLm9uKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbigpe2YudHJpZ2dlcigiYmx1ciIpfSkpOzAhPT1hKHRoaXMpLmZpbmQoIi5pbmsiKS5sZW5ndGgmJmEodGhpcykuZmluZCgiLmluayIpLnJlbW92ZSgpO2EodGhpcykucHJlcGVuZCgiPHNwYW4gY2xhc3M9J2luayc+PC9zcGFuPiIpO2luaz1hKHRoaXMpLmZpbmQoIi5pbmsiKTtpbmsuaGVpZ2h0KCl8fGluay53aWR0aCgpfHwoZD1NYXRoLm1heChhKHRoaXMpLm91dGVyV2lkdGgoKSxhKHRoaXMpLm91dGVySGVpZ2h0KCkpLGluay5jc3Moe2hlaWdodDpkLHdpZHRoOmR9KSk7eD1nLnBhZ2VYLWEodGhpcykub2Zmc2V0KCkubGVmdC1pbmsud2lkdGgoKS8yO3k9Zy5wYWdlWS1hKHRoaXMpLm9mZnNldCgpLnRvcC1pbmsuaGVpZ2h0KCkvMjtpbmsuY3NzKHt0b3A6eSsicHgiLGxlZnQ6eCsicHgifSkuYWRkQ2xhc3MoImFuaW1hdGUiKX0pO2suZmluZCgiLnN1Yl9mYWJfYnRuIikub24oIm1vdXNlZG93biIsZnVuY3Rpb24oZyl7MDwKYSh0aGlzKS5hdHRyKCJkYXRhLWxpbmstaHJlZiIpLmxlbmd0aCYmKGEodGhpcykuYXR0cigiZGF0YS1saW5rLXRhcmdldCIpP3dpbmRvdy5vcGVuKGEodGhpcykuYXR0cigiZGF0YS1saW5rLWhyZWYiKSxhKHRoaXMpLmF0dHIoImRhdGEtbGluay10YXJnZXQiKSk6d2luZG93LmxvY2F0aW9uLmhyZWY9YSh0aGlzKS5hdHRyKCJkYXRhLWxpbmstaHJlZiIpKX0pO2YuZm9jdXNvdXQoZnVuY3Rpb24oKXtrLnJlbW92ZUNsYXNzKCJzaG93Iik7b3ZlcmxheT1hKCIua2NfZmFiX292ZXJsYXkiKTtvdmVybGF5LnJlbW92ZSgpO2EoImJvZHkiKS5vZmYoInRvdWNoc3RhcnQiKX0pfTtiLmluaXQoKX07YS5rYy5mYWIuZGVmYXVsdE9wdGlvbnM9e307YS5mbi5rY19mYWI9ZnVuY3Rpb24oaCxlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7bmV3IGEua2MuZmFiKHRoaXMsaCxlKX0pfX0pKGpRdWVyeSk7Ci8qKiAvbS9qcy9vcGVuaG91cnMuanMgKiovCnZhciBfX19kMmNfb3BlbmhvdXJzanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMTowMyI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfb3BlbmhvdXJzanNfY19vbj0iMjAyNS0wMy0xOCAxNDozMDowOCI7InVzZSBzdHJpY3QiOwp2YXIgT3BlbkhvdXJzPWZ1bmN0aW9uKGIpe2Z1bmN0aW9uIGMoZCl7dmFyIGU9JCh0aGlzKS5zaWJsaW5ncygiLmV4cGFuZGFibGVfY29udGVudCIpLmVxKDApLmhhc0NsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKTskKGQuY3VycmVudFRhcmdldCkuZmluZCgiLm1hcF9vcGVuX2hvdXJzX2V4cGFuZF9hcnJvdyIpLnRvZ2dsZUNsYXNzKCJleHBhbmRlZCIpOyQodGhpcykucGFyZW50cyhhLm9wdGlvbnMuY29udGFpbmVyKS5maW5kKCIub3Blbl9ob3Vyc19tYXBfYWN0aXZlIikuc2xpZGVUb2dnbGUoInNsb3ciKTskKHRoaXMpLnBhcmVudHMoYS5vcHRpb25zLmNvbnRhaW5lcikuZmluZCgiLm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpLnJlbW92ZUNsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKTtlfHwoJCh0aGlzKS5zaWJsaW5ncygiLmV4cGFuZGFibGVfY29udGVudCIpLmVxKDApLnNsaWRlVG9nZ2xlKCJzbG93IiksJCh0aGlzKS5zaWJsaW5ncygiLmV4cGFuZGFibGVfY29udGVudCIpLmVxKDApLmFkZENsYXNzKCJvcGVuX2hvdXJzX21hcF9hY3RpdmUiKSl9CnZhciBhPXRoaXM7YS5vcHRpb25zPWI7YS4kY29udGFpbmVyPSQoYS5vcHRpb25zLmNvbnRhaW5lcik7YS5pbml0PWZ1bmN0aW9uKCl7YS4kY29udGFpbmVyLmZpbmQoIi5tYXBfb3Blbl9ob3Vyc19leHBhbmQiKS5vbigiY2xpY2sgYXV0b19vcGVuIixjKTswPGEuJGNvbnRhaW5lci5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kLmRlZmF1bHRfb3BlbmVkIikubGVuZ3RoP2EuJGNvbnRhaW5lci5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kLmRlZmF1bHRfb3BlbmVkIikudHJpZ2dlcigiYXV0b19vcGVuIik6MiE9JCgiLmV4cGFuZGFibGVfY29udGVudCIpLmxlbmd0aHx8MDwkKCIuZXhwYW5kYWJsZV9jb250ZW50IikuZmluZCgiLnZpc2l0Q29udGFjdEhlYWRlciIpLmxlbmd0aD9hLm9wdGlvbnMuaGFzT3duUHJvcGVydHkoImF1dG9PcGVuIikmJiFhLm9wdGlvbnMuYXV0b09wZW58fGEuJGNvbnRhaW5lci5maW5kKCIubWFwX29wZW5faG91cnNfZXhwYW5kIikuZmlyc3QoKS50cmlnZ2VyKCJhdXRvX29wZW4iKToKJCgiLmV4cGFuZGFibGVfY29udGVudCIpLnNsaWRlVG9nZ2xlKCJzbG93IikuYWRkQ2xhc3MoIm9wZW5faG91cnNfbWFwX2FjdGl2ZSIpfTtyZXR1cm4gYX07Ci8qKiAvbS9qcy9nb29nbGVtYXBzLmpzICoqLwp2YXIgX19fZDJjX2dvb2dsZW1hcHNqc19jX29uPSIyMDI2LTAxLTEyIDEwOjE0OjU0IjsndXNlIHN0cmljdCc7Y2xhc3MgR29vZ2xlTWFwc1dyYXBwZXJ7Y29uc3RydWN0b3IoYSl7dGhpcy5wcmV2aW91c0luZm9XaW5kb3c9ITE7dGhpcy5vcHRpb25zPXtlbGVtZW50OmEmJmEuZWxlbWVudD9hLmVsZW1lbnQ6IiIsY2VudGVyOmEmJmEuY2VudGVyP2EuY2VudGVyOntsYXQ6NDUuNDY3Mjc3LGxuZzotNzMuODM0NTI2fSxjZW50ZXJPZmZzZXQ6YSYmYS5jZW50ZXJPZmZzZXQ\/YS5jZW50ZXJPZmZzZXQ6e3g6MCx5OjB9LHpvb206YSYmYS56b29tP2Euem9vbTo5LGFkZHJlc3NlczphJiZhLmFkZHJlc3Nlcz9hLmFkZHJlc3NlczpbXSxvbkJlZm9yZUluaXQ6YSYmYS5vbkJlZm9yZUluaXQ\/YS5vbkJlZm9yZUluaXQ6ZnVuY3Rpb24oKXt9LG9uQWZ0ZXJJbml0OmEmJmEub25BZnRlckluaXQ\/YS5vbkFmdGVySW5pdDpmdW5jdGlvbigpe30sb25BZnRlck1hcmtlckNyZWF0ZWQ6YSYmYS5vbkFmdGVyTWFya2VyQ3JlYXRlZD9hLm9uQWZ0ZXJNYXJrZXJDcmVhdGVkOmZ1bmN0aW9uKCl7fX19c3RhdGljIHNldEdvb2dsZU1hcCgpe3ZhciBhPQowLGU9ZnVuY3Rpb24oKXtnb29nbGUubWFwcy5NYXAucHJvdG90eXBlLnNldENlbnRlcldpdGhPZmZzZXQ9ZnVuY3Rpb24oayxnLGwpe3ZhciBjPXRoaXMsYj1uZXcgZ29vZ2xlLm1hcHMuT3ZlcmxheVZpZXc7Yi5vbkFkZD1mdW5jdGlvbigpe3ZhciBmPXRoaXMuZ2V0UHJvamVjdGlvbigpLGQ9Zi5mcm9tTGF0TG5nVG9Db250YWluZXJQaXhlbChrKTtkLngrPWc7ZC55Kz1sO2Muc2V0Q2VudGVyKGYuZnJvbUNvbnRhaW5lclBpeGVsVG9MYXRMbmcoZCkpfTtiLmRyYXc9ZnVuY3Rpb24oKXt9O2Iuc2V0TWFwKHRoaXMpfX07aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgZ29vZ2xlKWUoKTtlbHNlIHZhciBoPXNldEludGVydmFsKGZ1bmN0aW9uKCl7ND5hPyJ1bmRlZmluZWQiIT09dHlwZW9mIGdvb2dsZT8oY2xlYXJJbnRlcnZhbChoKSxlKCkpOmErKzpjbGVhckludGVydmFsKGgpfSwxRTMpfWluaXQoKXt2YXIgYT10aGlzLGU9YS5vcHRpb25zLmNlbnRlck9mZnNldC54P2Eub3B0aW9ucy5jZW50ZXJPZmZzZXQueDoKMCxoPWEub3B0aW9ucy5jZW50ZXJPZmZzZXQueT9hLm9wdGlvbnMuY2VudGVyT2Zmc2V0Lnk6MCxrPW5ldyBnb29nbGUubWFwcy5MYXRMbmdCb3VuZHM7YS5vcHRpb25zLm9uQmVmb3JlSW5pdCgpO2lmKGEub3B0aW9ucy5hZGRyZXNzZXMubGVuZ3RoKXt2YXIgZz1hLm9wdGlvbnMuY2VudGVyLGw9bmV3IGdvb2dsZS5tYXBzLkdlb2NvZGVyLGM9bmV3IGdvb2dsZS5tYXBzLk1hcChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChhLm9wdGlvbnMuZWxlbWVudCkse3pvb206YS5vcHRpb25zLnpvb20sY2VudGVyOmEub3B0aW9ucy5jZW50ZXIsbWFwVHlwZUlkOmdvb2dsZS5tYXBzLk1hcFR5cGVJZC5ST0FETUFQLGdlc3R1cmVIYW5kbGluZzoiZ3JlZWR5IixzY3JvbGx3aGVlbDohMSxtYXBUeXBlQ29udHJvbDohMX0pO2dvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyT25jZShjLCJpZGxlIixmdW5jdGlvbigpe2Eub3B0aW9ucy5hZGRyZXNzZXMubWFwKGZ1bmN0aW9uKGIsZixkKXtmPWZ1bmN0aW9uKG4sCnEpe3RyeXtpZihxPT1nb29nbGUubWFwcy5HZW9jb2RlclN0YXR1cy5PSyl7ay5leHRlbmQoblswXS5nZW9tZXRyeS5sb2NhdGlvbik7Yy5maXRCb3VuZHMoayk7Yy5zZXRab29tKGEub3B0aW9ucy56b29tKTtnPWMuZ2V0Qm91bmRzKCkuZ2V0Q2VudGVyKCk7Yy5zZXRDZW50ZXJXaXRoT2Zmc2V0KGcsZSxoKTt2YXIgcD1uZXcgZ29vZ2xlLm1hcHMuSW5mb1dpbmRvdyh7Y29udGVudDpiLmluZm93aW5kb3d9KSxtPW5ldyBnb29nbGUubWFwcy5NYXJrZXIoe21hcDpjLHBvc2l0aW9uOm5bMF0uZ2VvbWV0cnkubG9jYXRpb24sdGl0bGU6Yi50aXRsZSxpY29uOmIuaWNvbn0pO20uYWRkTGlzdGVuZXIoImNsaWNrIixmdW5jdGlvbigpe2EucHJldmlvdXNJbmZvV2luZG93JiZhLnByZXZpb3VzSW5mb1dpbmRvdy5jbG9zZSgpO2EucHJldmlvdXNJbmZvV2luZG93PXA7cC5vcGVuKGMsbSl9KTthLm9wdGlvbnMub25BZnRlck1hcmtlckNyZWF0ZWQoYixtKX19Y2F0Y2gocil7Y29uc29sZS5sb2cocil9fTsKYS5oYXNMYXQoYikmJmEuaGFzTG5nKGIpPyhkPW5ldyBnb29nbGUubWFwcy5MYXRMbmcoTnVtYmVyKGIuZ2VvbWV0cnkubG9jYXRpb24ubGF0KSxOdW1iZXIoYi5nZW9tZXRyeS5sb2NhdGlvbi5sbmcpKSxmKFt7Z2VvbWV0cnk6e2xvY2F0aW9uOmR9fV0sIk9LIikpOmwuZ2VvY29kZSh7YWRkcmVzczpiLmFkZHJlc3N9LGYpfSl9KTtnb29nbGUubWFwcy5ldmVudC5hZGREb21MaXN0ZW5lcih3aW5kb3csInJlc2l6ZSIsZnVuY3Rpb24oKXtjLnNldENlbnRlcldpdGhPZmZzZXQoZyxlLGgpfSl9YS5vcHRpb25zLm9uQWZ0ZXJJbml0KCl9X2hhc0xhdExuZ1Byb3AoYSxlKXtyZXR1cm4gYS5oYXNPd25Qcm9wZXJ0eSgiZ2VvbWV0cnkiKSYmYS5nZW9tZXRyeS5oYXNPd25Qcm9wZXJ0eSgibG9jYXRpb24iKSYmYS5nZW9tZXRyeS5sb2NhdGlvbi5oYXNPd25Qcm9wZXJ0eShlKSYmImZhbHNlIiE9YS5nZW9tZXRyeS5sb2NhdGlvbltlXT8hMDohMX1oYXNMYXQoYSl7cmV0dXJuIHRoaXMuX2hhc0xhdExuZ1Byb3AoYSwKImxhdCIpfWhhc0xuZyhhKXtyZXR1cm4gdGhpcy5faGFzTGF0TG5nUHJvcChhLCJsbmciKX19OwovKiogL20vanMvZm9vdGVyV2lkZ2V0X00uanMgKiovCnZhciBfX19kMmNfZm9vdGVyV2lkZ2V0TWpzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTM6MTYiOyd1c2Ugc3RyaWN0Jzt2YXIgdHJhY2tGb290ZXJNYXBMb2FkPWZ1bmN0aW9uKCl7dmFyIGE9JCgiI3RhcmdldFBhZ2UiKS52YWwoKTsidW5kZWZpbmVkIj09YSYmKGE9IlVOS05PV04iKTtnYVRyYWNrKCJjLl90cmFja0V2ZW50IiwiRm9vdGVyLU1hcC1Mb2FkIiwiTW9iaWxlIixhLDEpfTsKaW5WaWV3RXhlYygiI2Zvb3Rlckdvb2dsZU1hcCIsZnVuY3Rpb24oKXtpZigkKCIjZm9vdGVyR29vZ2xlTWFwIikubGVuZ3RoKXRyeXtHb29nbGVNYXBzV3JhcHBlci5zZXRHb29nbGVNYXAoKTt2YXIgYT0kKCIjZm9vdGVyR29vZ2xlTWFwWm9vbSIpLnZhbCgpLGM9MTxwYXJzZUludChhKSYmMTg+PXBhcnNlSW50KGEpP3BhcnNlSW50KGEpOjk7d2luZG93LmZvb3Rlckdvb2dsZU1hcE9iamVjdD1uZXcgR29vZ2xlTWFwc1dyYXBwZXIoe2VsZW1lbnQ6ImZvb3Rlckdvb2dsZU1hcCIsYWRkcmVzc2VzOiJ1bmRlZmluZWQiIT10eXBlb2YgZm9vdGVyTWFwQWRkcmVzc2VzP2Zvb3Rlck1hcEFkZHJlc3NlczpbXSx6b29tOmMsb25CZWZvcmVJbml0OmZ1bmN0aW9uKCl7dHJhY2tGb290ZXJNYXBMb2FkKCl9LG9uQWZ0ZXJJbml0OmZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBmb290ZXJNYXBBZGRyZXNzZXMmJjAhPWZvb3Rlck1hcEFkZHJlc3Nlcy5sZW5ndGh8fCQoIiNmb290ZXJHb29nbGVNYXAiKS5oaWRlKCl9fSk7CndpbmRvdy5mb290ZXJHb29nbGVNYXBPYmplY3QuaW5pdCgpfWNhdGNoKGIpe2NvbnNvbGUubG9nKGIpfX0pO2luVmlld0V4ZWMoIiNmb290ZXJHb29nbGVNYXBJZnJhbWUiLGZ1bmN0aW9uKCl7dHJhY2tGb290ZXJNYXBMb2FkKCl9KTsKJChmdW5jdGlvbigpe2Z1bmN0aW9uIGEoKXsidW5kZWZpbmVkIiE9PXR5cGVvZiB3aW5kb3cuZm9vdGVyR29vZ2xlTWFwT2JqZWN0P3dpbmRvdy5mb290ZXJHb29nbGVNYXBPYmplY3QuY2FsY3VsYXRlQW5kRGlzcGxheVJvdXRlKCk6KGNvbnNvbGUubG9nKCJJQ0kiKSxzZXRUaW1lb3V0KGEsNTAwKSl9aW5WaWV3RXhlYygiI21hcF9vcGVuX2hvdXJzIixmdW5jdGlvbigpeyhuZXcgT3BlbkhvdXJzKHtjb250YWluZXI6IiNtYXBfb3Blbl9ob3VycyIsYXV0b09wZW46ITB9KSkuaW5pdCgpfSk7JCgiZGl2I3Bob25lTnVtYmVyRGl2IGxpIGEiKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7InVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZyYmInVuZGVmaW5lZCIhPXR5cGVvZiBhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50JiZhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KCJwaG9uZS5jYWxsIiwkKHRoaXMpLmF0dHIoImhyZWYiKS5yZXBsYWNlKCJ0ZWw6IiwKIiIpKX0pOyQoIiNkaXJlY3Rpb25zQnV0dG9uSGVhZGVyIikub24oImNsaWNrIixmdW5jdGlvbihjKXtjLnByZXZlbnREZWZhdWx0KCk7JCgiaHRtbCwgYm9keSIpLmFuaW1hdGUoe3Njcm9sbFRvcDokKCIjZm9vdGVyR29vZ2xlTWFwSG91cnMiKS5vZmZzZXQoKS50b3B9LDJFMyk7YSgpfSl9KTsKd2luZG93Lm9ubG9hZD1mdW5jdGlvbigpeyhmdW5jdGlvbigpe3ZhciBhPXtuZXdfZ2VvbG9jOiExLHVzZXJDb29yZDohMSxyZXN1bHQ6ITEscHJldl9nZW9sb2M6Q29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpP0pTT04ucGFyc2UoQ29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpKTohMSxkZWFsZXJfdmlzaXRlZDpDb29raWVzLmdldCgiZGVhbGVyVmlzaXRlZCIpP0pTT04ucGFyc2UoQ29va2llcy5nZXQoImRlYWxlclZpc2l0ZWQiKSk6ITEsZGVhbGVyQWRkcmVzczoiIixnZXRQcmV2TG9jYXRpb246ZnVuY3Rpb24oKXtyZXR1cm4gQ29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpP0pTT04ucGFyc2UoQ29va2llcy5nZXQoImdlb2xvY1Byb2Nlc3NlZCIpKTohMX0scHJvY2Vzc1VzZXJMb2NhdGlvbjpmdW5jdGlvbihiKXthLm5ld19nZW9sb2M9Yjtzd2l0Y2goITApe2Nhc2UgMD09YS5wcmV2X2dlb2xvY3x8YS5wcmV2X2dlb2xvYy5hY2NlcHRlZCE9Yi5yZXN1bHQ6YS5uZXdfZ2VvbG9jLmxvY2F0aW9uX3N0cj0KMT09Yi5yZXN1bHQ\/Yi5nZW9jb2RlX2FkZHJlc3Nfc3RyKyIoIitiLmFjY3VyYWN5KyIpIjoiR2VvbG9jYXRpb24gcmVmdXNlZCI7YS5uZXdfZ2VvbG9jLmRlc2NyaXB0aW9uPTE9PWIucmVzdWx0PyJBQ0NFUFRFRCI6IiI7YS51c2VyQ29vcmQ9e2xhdDpiLmxhdGl0dWRlLCJsb25nIjpiLmxvbmdpdHVkZX07YS5jb21wYXJlVG9EZWFsZXJMb2NhdGlvbigpO2JyZWFrO2Nhc2UgMT09YS5wcmV2X2dlb2xvYy5hY2NlcHRlZCYmMT09Yi5yZXN1bHQ6dmFyIGQ9e2xhdDphLnByZXZfZ2VvbG9jLmxhdGl0dWRlLCJsb25nIjphLnByZXZfZ2VvbG9jLmxvbmdpdHVkZX07YS51c2VyQ29vcmQ9e2xhdDpiLmxhdGl0dWRlLCJsb25nIjpiLmxvbmdpdHVkZX07MjAwPGMuZ2V0RGlzdGFuY2UoZCxhLnVzZXJDb29yZCkmJihhLm5ld19nZW9sb2MuZGVzY3JpcHRpb249IlVQREFURUQiLGEubmV3X2dlb2xvYy5sb2NhdGlvbl9zdHI9Yi5nZW9jb2RlX2FkZHJlc3Nfc3RyKyIoIitiLmFjY3VyYWN5KyIpIiwKYS5jb21wYXJlVG9EZWFsZXJMb2NhdGlvbigpKX19LGNvbXBhcmVUb0RlYWxlckxvY2F0aW9uOmZ1bmN0aW9uKGIpeyJvYmplY3QiPT10eXBlb2YgYiYmYi5sYXQmJmIubG9uZz8yMDE+Yy5nZXREaXN0YW5jZShhLnVzZXJDb29yZCxiKT8wPT1hLmRlYWxlcl92aXNpdGVkJiYoYS5uZXdfZ2VvbG9jLmxvY2F0aW9uX3N0cj1hLmRlYWxlckFkZHJlc3MrIigiK2EubmV3X2dlb2xvYy5hY2N1cmFjeSsiKSIsYS5uZXdfZ2VvbG9jLmRlc2NyaXB0aW9uPSJERUFMRVJfTE9DQVRJT04iLGEubG9nUGFnZUV2ZW50KGEubmV3X2dlb2xvYy5sb2NhdGlvbl9zdHIpLGI9bmV3IERhdGUsYi5zZXRIb3VycygyMyw1OSw1OSwwKSxDb29raWVzLnNldCgiZGVhbGVyVmlzaXRlZCIsMSxiLCIvIikpOjA9PWEucHJldl9nZW9sb2MmJmEubG9nUGFnZUV2ZW50KGEubmV3X2dlb2xvYy5sb2NhdGlvbl9zdHIpOmEuZ2V0RGVhbGVyQ29vcmQoKX0sZ2V0RGVhbGVyQ29vcmQ6ZnVuY3Rpb24oKXthLmRlYWxlckFkZHJlc3M9CiQoJ21ldGFbbmFtZT0iZ2VvLnBsYWNlbmFtZSJdJykucHJvcCgiY29udGVudCIpO2MuZ2V0QWRkcmVzc0Nvb3JkKGEuZGVhbGVyQWRkcmVzcyxhLmNvbXBhcmVUb0RlYWxlckxvY2F0aW9uKX0sbG9nUGFnZUV2ZW50OmZ1bmN0aW9uKGIpe2ImJjA8Yi5sZW5ndGgmJjE9PWEubmV3X2dlb2xvYy5yZXN1bHQmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudCYmKGI9YS5uZXdfZ2VvbG9jLmRlc2NyaXB0aW9uKyI6ICIrYixhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KCJUUkFDS19HRU9MT0MiLGIpKTtnZXRVVUlEPWZ1bmN0aW9uKCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cuYWN0aXZlUHJvZmlsZUlEJiZudWxsIT13aW5kb3cuYWN0aXZlUHJvZmlsZUlEP3dpbmRvdy5hY3RpdmVQcm9maWxlSUQ6InVuZGVmaW5lZCIhPQp0eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJm51bGwhPWFjdGl2ZVVzZXJQcm9maWxlTW5nLnVpZD9hY3RpdmVVc2VyUHJvZmlsZU1uZy51aWQ6InVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzJiYidW5kZWZpbmVkIiE9Q29va2llcy5nZXQoInV1aWQiKSYmbnVsbCE9Q29va2llcy5nZXQoInV1aWQiKT9Db29raWVzLmdldCgidXVpZCIpOiIifTtiPSJ1bmRlZmluZWQiIT10eXBlb2YgQ29va2llcyYmInVuZGVmaW5lZCIhPXR5cGVvZiBDb29raWVzLmdldCgidXNpZCIpJiZudWxsIT1Db29raWVzLmdldCgidXNpZCIpP0Nvb2tpZXMuZ2V0KCJ1c2lkIik6MDt2YXIgZD1nZXRVVUlEKCksZT0kKCIjc2l0ZUlEIikudmFsKCk7JC5hamF4KHt0eXBlOiJQT1NUIix1cmw6Imh0dHBzOi8vcmVzdC5kMmNtZWRpYS5jYS9nZW9sb2NUcmFja2luZy9zaXRldmlzaXRvciIsZGF0YTp7dXVpZDpkLHNlc3Npb25pZDpiLHNpdGVJRDplLHN0YXR1czphLm5ld19nZW9sb2MuZ2VvbG9jX3N0YXR1cywKZGVzYzphLm5ld19nZW9sb2MuZGVzY3JpcHRpb24sbGF0aXR1ZGU6YS5uZXdfZ2VvbG9jLmxhdGl0dWRlLGxvbmdpdHVkZTphLm5ld19nZW9sb2MubG9uZ2l0dWRlLHBvc3RhbF9jb2RlOmEubmV3X2dlb2xvYy5wb3N0YWxfY29kZSxhY2N1cmFjeTphLm5ld19nZW9sb2MuYWNjdXJhY3ksYWRkcmVzczphLm5ld19nZW9sb2MuZ2VvY29kZV9hZGRyZXNzX3N0cixsb2NhdGlvbl9zdHI6YS5uZXdfZ2VvbG9jLmxvY2F0aW9uX3N0cixnZW9sb2NfZGF0ZTphLm5ld19nZW9sb2MuZ2VvbG9jX2RhdGV9LHN1Y2Nlc3M6ZnVuY3Rpb24oZil7fSxmYWlsdXJlOmZ1bmN0aW9uKGYpe319KX19O2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiI2Fza1Zpc2l0b3JHZW9sb2MiKS52YWwoKSYmMT09JCgiI2Fza1Zpc2l0b3JHZW9sb2MiKS52YWwoKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBnZW9Mb2NhdG9yKXt2YXIgYz1uZXcgZ2VvTG9jYXRvcihhLnByb2Nlc3NVc2VyTG9jYXRpb24pO2MuZm9yY2VHZW9sb2NBdHRlbXB0PQohMDtjLmdldExvY2F0aW9uKCl9fSkoKX07JChmdW5jdGlvbigpeyQoIi5jRXhwZW5kTGlzdCBCVVRUT04iKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7dmFyIGE9JCh0aGlzKS5jbG9zZXN0KCJkaXYuY0Zvb3RlckNhckxpbmtzIik7YS5sZW5ndGgmJihhLmhhc0NsYXNzKCJjTGlzdEV4cGVuZGVkIil8fGEuYWRkQ2xhc3MoImNMaXN0RXhwZW5kZWQiKS5maW5kKCIuY0V4cGVuZExpc3QiKS5oaWRlKCkpfSl9KTsKLyoqIC9tL2pzL3RvYXN0ci5qcyAqKi8KdmFyIF9fX2QyY190b2FzdHJqc19jX29uPSIyMDI1LTA1LTIzIDE3OjEyOjA5IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY190b2FzdHJqc19jX29uPSIyMDI0LTAzLTI2IDEyOjMwOjE1IjsidXNlIHN0cmljdCI7CihmdW5jdGlvbih6KXt6KFsianF1ZXJ5Il0sZnVuY3Rpb24oZCl7cmV0dXJuIGZ1bmN0aW9uKCl7ZnVuY3Rpb24gbihhLGMpe2F8fChhPWwoKSk7Zj1kKCIjIithLmNvbnRhaW5lcklkKTtpZihmLmxlbmd0aClyZXR1cm4gZjtjJiYoZj1kKCI8ZGl2Lz4iKS5hdHRyKCJpZCIsYS5jb250YWluZXJJZCkuYWRkQ2xhc3MoYS5wb3NpdGlvbkNsYXNzKS5hdHRyKCJhcmlhLWxpdmUiLCJwb2xpdGUiKS5hdHRyKCJyb2xlIiwiYWxlcnQiKS5jc3MoImNvbG9yIixhLmNvbG9yKSxmLmFwcGVuZFRvKGQoYS50YXJnZXQpKSk7cmV0dXJuIGZ9ZnVuY3Rpb24gQShhLGMsZSl7ZT1lJiZlLmZvcmNlP2UuZm9yY2U6ITE7cmV0dXJuIGEmJihlfHwwPT09ZCgiOmZvY3VzIixhKS5sZW5ndGgpPyhhW2MuaGlkZU1ldGhvZF0oe2R1cmF0aW9uOmMuaGlkZUR1cmF0aW9uLGVhc2luZzpjLmhpZGVFYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXt1KGEpfX0pLCEwKTohMX1mdW5jdGlvbiBFKCl7cmV0dXJue3RhcFRvRGlzbWlzczohMCwKdG9hc3RDbGFzczoidG9hc3QiLGNvbnRhaW5lcklkOiJ0b2FzdC1jb250YWluZXIiLGRlYnVnOiExLHNob3dNZXRob2Q6ImZhZGVJbiIsc2hvd0R1cmF0aW9uOjMwMCxzaG93RWFzaW5nOiJzd2luZyIsb25TaG93bjpmdW5jdGlvbigpe2QoIi50cmFkZUluQmFyTW9iaWxlQnV0dG9uIikuYWRkQ2xhc3MoIndpdGhUb2FzdGVyIik7ZCgiLnByb21vVG9wQnRuLmZsb2F0aW5nIikuYWRkQ2xhc3MoIndpdGhUb2FzdGVyIil9LGhpZGVNZXRob2Q6ImZhZGVPdXQiLGhpZGVEdXJhdGlvbjoxRTMsaGlkZUVhc2luZzoic3dpbmciLG9uSGlkZGVuOmZ1bmN0aW9uKCl7ZCgiLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24iKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKTtkKCIucHJvbW9Ub3BCdG4uZmxvYXRpbmciKS5yZW1vdmVDbGFzcygid2l0aFRvYXN0ZXIiKX0sb25DbG9zZTpmdW5jdGlvbigpe2QoIi50cmFkZUluQmFyTW9iaWxlQnV0dG9uIikucmVtb3ZlQ2xhc3MoIndpdGhUb2FzdGVyIik7CmQoIi5wcm9tb1RvcEJ0bi5mbG9hdGluZyIpLnJlbW92ZUNsYXNzKCJ3aXRoVG9hc3RlciIpfSxleHRlbmRlZFRpbWVPdXQ6MUUzLGljb25DbGFzc2VzOntlcnJvcjoidG9hc3QtZXJyb3IiLGluZm86InRvYXN0LWluZm8iLHN1Y2Nlc3M6InRvYXN0LXN1Y2Nlc3MiLHdhcm5pbmc6InRvYXN0LXdhcm5pbmcifSxpY29uQ2xhc3M6InRvYXN0LWluZm8iLGNvbG9yOiIjRkZGIixiZ0NvbG9yOiIiLHBvc2l0aW9uQ2xhc3M6InRvYXN0LXRvcC1yaWdodCIsdGltZU91dDo1RTMsdGl0bGVDbGFzczoidG9hc3QtdGl0bGUiLG1lc3NhZ2VDbGFzczoidG9hc3QtbWVzc2FnZSIsdGFyZ2V0OiJib2R5IixjbG9zZUh0bWw6JzxidXR0b24gdHlwZT0iYnV0dG9uIj4mdGltZXM7PC9idXR0b24+JyxuZXdlc3RPblRvcDohMCxwcmV2ZW50RHVwbGljYXRlczohMSxwcm9ncmVzc0JhcjohMX19ZnVuY3Rpb24gcihhKXtmdW5jdGlvbiBjKGspe2lmKCFkKCI6Zm9jdXMiLGcpLmxlbmd0aHx8aylyZXR1cm4gY2xlYXJUaW1lb3V0KGguaW50ZXJ2YWxJZCksCmdbYi5oaWRlTWV0aG9kXSh7ZHVyYXRpb246Yi5oaWRlRHVyYXRpb24sZWFzaW5nOmIuaGlkZUVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpe3UoZyk7aWYoYi5vbkhpZGRlbiYmImhpZGRlbiIhPT1tLnN0YXRlKWIub25IaWRkZW4oKTttLnN0YXRlPSJoaWRkZW4iO20uZW5kVGltZT1uZXcgRGF0ZTtwJiZwKG0pfX0pfWZ1bmN0aW9uIGUoKXtpZigwPGIudGltZU91dHx8MDxiLmV4dGVuZGVkVGltZU91dCl2PXNldFRpbWVvdXQoYyxiLmV4dGVuZGVkVGltZU91dCksaC5tYXhIaWRlVGltZT1wYXJzZUZsb2F0KGIuZXh0ZW5kZWRUaW1lT3V0KSxoLmhpZGVFdGE9KG5ldyBEYXRlKS5nZXRUaW1lKCkraC5tYXhIaWRlVGltZX1mdW5jdGlvbiBGKCl7Y2xlYXJUaW1lb3V0KHYpO2guaGlkZUV0YT0wO2cuc3RvcCghMCwhMClbYi5zaG93TWV0aG9kXSh7ZHVyYXRpb246Yi5zaG93RHVyYXRpb24sZWFzaW5nOmIuc2hvd0Vhc2luZ30pfWZ1bmN0aW9uIEcoKXt2YXIgaz0oaC5oaWRlRXRhLShuZXcgRGF0ZSkuZ2V0VGltZSgpKS8KaC5tYXhIaWRlVGltZSoxMDA7dy53aWR0aChrKyIlIil9dmFyIGI9bCgpLHg9YS5pY29uQ2xhc3N8fGIuaWNvbkNsYXNzOyJ1bmRlZmluZWQiIT09dHlwZW9mIGEub3B0aW9uc092ZXJyaWRlJiYoYj1kLmV4dGVuZChiLGEub3B0aW9uc092ZXJyaWRlKSx4PWEub3B0aW9uc092ZXJyaWRlLmljb25DbGFzc3x8eCk7YTp7aWYoYi5wcmV2ZW50RHVwbGljYXRlcylpZihhLm1lc3NhZ2U9PT15KXt2YXIgcT0hMDticmVhayBhfWVsc2UgeT1hLm1lc3NhZ2U7cT0hMX1pZighcSl7QisrO2Y9bihiLCEwKTt2YXIgdj1udWxsLGc9ZCgiPGRpdi8+Iik7cT1kKCI8ZGl2Lz4iKTt2YXIgQz1kKCI8ZGl2Lz4iKSx3PWQoIjxkaXYvPiIpLHQ9ZChiLmNsb3NlSHRtbCksaD17aW50ZXJ2YWxJZDpudWxsLGhpZGVFdGE6bnVsbCxtYXhIaWRlVGltZTpudWxsfSxtPXt0b2FzdElkOkIsc3RhdGU6InZpc2libGUiLHN0YXJ0VGltZTpuZXcgRGF0ZSxvcHRpb25zOmIsbWFwOmF9OzY8Yi5iZ0NvbG9yLmxlbmd0aCYmCmcuY3NzKCJiYWNrZ3JvdW5kLWNvbG9yIixiLmJnQ29sb3IpO2EuaWNvbkNsYXNzJiZnLmFkZENsYXNzKGIudG9hc3RDbGFzcykuYWRkQ2xhc3MoeCk7YS50aXRsZSYmKHEuYXBwZW5kKGEudGl0bGUpLmFkZENsYXNzKGIudGl0bGVDbGFzcyksZy5hcHBlbmQocSkpO2EubWVzc2FnZSYmKEMuYXBwZW5kKGEubWVzc2FnZSkuYWRkQ2xhc3MoYi5tZXNzYWdlQ2xhc3MpLGcuYXBwZW5kKEMpKTtiLmNsb3NlQnV0dG9uJiYodC5hZGRDbGFzcygidG9hc3QtY2xvc2UtYnV0dG9uIikuYXR0cigicm9sZSIsImJ1dHRvbiIpLGcucHJlcGVuZCh0KSk7Yi5wcm9ncmVzc0JhciYmKHcuYWRkQ2xhc3MoInRvYXN0LXByb2dyZXNzIiksZy5wcmVwZW5kKHcpKTtiLm5ld2VzdE9uVG9wP2YucHJlcGVuZChnKTpmLmFwcGVuZChnKTtnLmhpZGUoKTtnW2Iuc2hvd01ldGhvZF0oe2R1cmF0aW9uOmIuc2hvd0R1cmF0aW9uLGVhc2luZzpiLnNob3dFYXNpbmcsY29tcGxldGU6Yi5vblNob3dufSk7MDxiLnRpbWVPdXQmJgoodj1zZXRUaW1lb3V0KGMsYi50aW1lT3V0KSxoLm1heEhpZGVUaW1lPXBhcnNlRmxvYXQoYi50aW1lT3V0KSxoLmhpZGVFdGE9KG5ldyBEYXRlKS5nZXRUaW1lKCkraC5tYXhIaWRlVGltZSxiLnByb2dyZXNzQmFyJiYoaC5pbnRlcnZhbElkPXNldEludGVydmFsKEcsMTApKSk7KGZ1bmN0aW9uKCl7Zy5vbigibW91c2VlbnRlciIsRikub24oIm1vdXNlbGVhdmUiLGUpO2lmKCFiLm9uY2xpY2smJmIudGFwVG9EaXNtaXNzKWcub24oImNsaWNrIixjKTtpZihiLmNsb3NlQnV0dG9uJiZ0KXQub24oImNsaWNrIixmdW5jdGlvbihrKXtrLnN0b3BQcm9wYWdhdGlvbj9rLnN0b3BQcm9wYWdhdGlvbigpOnZvaWQgMCE9PWsuY2FuY2VsQnViYmxlJiYhMCE9PWsuY2FuY2VsQnViYmxlJiYoay5jYW5jZWxCdWJibGU9ITApO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQ2xvc2UpYi5vbkNsb3NlKCk7YyghMCl9KTtpZihiLm9uY2xpY2spZy5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Yi5vbmNsaWNrKCk7CmMoKX0pfSkoKTtwJiZwKG0pO2IuZGVidWcmJmNvbnNvbGUmJmNvbnNvbGUubG9nKG0pO3JldHVybiBnfX1mdW5jdGlvbiBsKCl7cmV0dXJuIGQuZXh0ZW5kKHt9LEUoKSxELm9wdGlvbnMpfWZ1bmN0aW9uIHUoYSl7Znx8KGY9bigpKTthLmlzKCI6dmlzaWJsZSIpfHwoYS5yZW1vdmUoKSwwPT09Zi5jaGlsZHJlbigpLmxlbmd0aCYmKGYucmVtb3ZlKCkseT12b2lkIDApKX12YXIgZixwLEI9MCxEPXtjbGVhcjpmdW5jdGlvbihhLGMpe3ZhciBlPWwoKTtmfHxuKGUpO2lmKCFBKGEsZSxjKSlmb3IoYT1mLmNoaWxkcmVuKCksYz1hLmxlbmd0aC0xOzA8PWM7Yy0tKUEoZChhW2NdKSxlKX0scmVtb3ZlOmZ1bmN0aW9uKGEpe3ZhciBjPWwoKTtmfHxuKGMpO2EmJjA9PT1kKCI6Zm9jdXMiLGEpLmxlbmd0aD91KGEpOmYuY2hpbGRyZW4oKS5sZW5ndGgmJmYucmVtb3ZlKCl9LGVycm9yOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToiZXJyb3IiLGljb25DbGFzczpsKCkuaWNvbkNsYXNzZXMuZXJyb3IsCm1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9LGdldENvbnRhaW5lcjpuLGluZm86ZnVuY3Rpb24oYSxjLGUpe3JldHVybiByKHt0eXBlOiJpbmZvIixpY29uQ2xhc3M6bCgpLmljb25DbGFzc2VzLmluZm8sbWVzc2FnZTphLG9wdGlvbnNPdmVycmlkZTplLHRpdGxlOmN9KX0sb3B0aW9uczp7fSxzdWJzY3JpYmU6ZnVuY3Rpb24oYSl7cD1hfSxzdWNjZXNzOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToic3VjY2VzcyIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy5zdWNjZXNzLG1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9LHZlcnNpb246IjIuMS4xIix3YXJuaW5nOmZ1bmN0aW9uKGEsYyxlKXtyZXR1cm4gcih7dHlwZToid2FybmluZyIsaWNvbkNsYXNzOmwoKS5pY29uQ2xhc3Nlcy53YXJuaW5nLG1lc3NhZ2U6YSxvcHRpb25zT3ZlcnJpZGU6ZSx0aXRsZTpjfSl9fSx5O3JldHVybiBEfSgpfSl9KSgiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmCmRlZmluZS5hbWQ\/ZGVmaW5lOmZ1bmN0aW9uKHosZCl7InVuZGVmaW5lZCIhPT10eXBlb2YgbW9kdWxlJiZtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1kKHJlcXVpcmUoImpxdWVyeSIpKTp3aW5kb3cudG9hc3RyPWQod2luZG93LmpRdWVyeSl9KTsKLyoqIC9tL2pzL2RlYWxlclNtc051bWJlci5qcyAqKi8KdmFyIF9fX2QyY19kZWFsZXJTbXNOdW1iZXJqc19jX29uPSIyMDI2LTAzLTEyIDE2OjMwOjAzIjsndXNlIHN0cmljdCc7d2luZG93LmRlYWxlclNtc051bWJlcj13aW5kb3cuZGVhbGVyU21zTnVtYmVyfHxuZXcgZnVuY3Rpb24oKXt0aGlzLl9uYW1lPSJkZWFsZXJTbXNOdW1iZXIiO3RoaXMuX3JpZD0wO3RoaXMuX29icz1bXTt0aGlzLl9idWlsZFF1ZXJ5PWZ1bmN0aW9uKGEsYyl7Yz0ic3RyaW5nIj09PXR5cGVvZiBjP2M6KCQoImJvZHkuRU5HTElTSCIpLmxlbmd0aD8iL2VuLyI6Ii9mci8iKSsiYWpheC9nZXREZWFsZXJTbXNOdW1iZXIiO3ZhciBiLGQ9e3dzd2lkdGg6IjAifSxnPVsiVVVJRCIsIm1lc3NhZ2VUeXBlIl07Yys9Ij8iO2ZvcihiIGluIGcpaWYoInVuZGVmaW5lZCI9PT10eXBlb2YgYVtnW2JdXXx8IiI9PWFbZ1tiXV0pcmV0dXJuIHRoaXMuX29uRXJyb3IoJ21hbmRhdG9yeSBmaWVsZCBpcyBtaXNzaW5nICInK2dbYl0rJyInKSwhMTtmb3IoYiBpbiBhKWEuaGFzT3duUHJvcGVydHkoYikmJihkW2JdPWFbYl0pO2ZvcihiIGluIGQpZC5oYXNPd25Qcm9wZXJ0eShiKSYmCihjKz0iJiIrYisiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGRbYl0pKTtyZXR1cm4gY307dGhpcy5fb25FcnJvcj1mdW5jdGlvbihhKXtjb25zb2xlLmVycm9yKHRoaXMuX25hbWUsYSl9O3RoaXMuX25vdGlmeU9ic2VydmVyPWZ1bmN0aW9uKGEsYyl7dGhpcy5fb2JzW2FdKGMpO2RlbGV0ZSB0aGlzLl9vYnNbYV19O3RoaXMuX2RvUmVxdWVzdD1mdW5jdGlvbihhLGMpe3ZhciBiPXRoaXMuX29uUmVzcG9uc2UuYmluZCh0aGlzKTskLmFqYXgoe2NiOmIscmlkOmMsdHlwZToiR0VUIixjYWNoZTohMSxhc3luYzohMCxkYXRhVHlwZToianNvbiIsdXJsOmF9KS5kb25lKGZ1bmN0aW9uKGQpe3RoaXMuY2IodGhpcy5yaWQsbnVsbD09PWQ\/ITE6ZCwhMSl9KS5mYWlsKGZ1bmN0aW9uKGQsZyl7dGhpcy5jYih0aGlzLnJpZCwhMSxnKX0pfTt0aGlzLl9vblJlc3BvbnNlPWZ1bmN0aW9uKGEsYyxiKXtpZighMSE9PWIpdGhpcy5fb25FcnJvcigicmVzcG9uc2UgZXJyb3I6ICIrYik7ZWxzZSB0cnl7ITE9PT0KYz90aGlzLl9vbkVycm9yKCIuZGF0YSBlcXVhbCBmYWxzZSIpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGMuc3VjY2VzcyYmITAhPT1jLnN1Y2Nlc3M\/KHRoaXMuX29uRXJyb3IoIi5kYXRhIGVycm9yOiAiK2MuZXJyb3JNZXNzYWdlKSxjPSExKTooYj0hMSwic3RyaW5nIiE9PXR5cGVvZiBjLmRhdGEubnVtYmVyJiYodGhpcy5fb25FcnJvcigiLmRhdGEgaW52YWxpZCBzbXMgbnVtYmVyIiksYj0hMCksInN0cmluZyIhPT10eXBlb2YgYy5kYXRhLm1lc3NhZ2UmJih0aGlzLl9vbkVycm9yKCIubWVzc2FnZSBpbnZhbGlkIHNtcyBtZXNzYWdlIiksYj0hMCksYz1iPyExOntzbXNudW1iZXI6Yy5kYXRhLm51bWJlcixzbXNtZXNzYWdlOmMuZGF0YS5tZXNzYWdlLHNtc2NvZGU6Yy5kYXRhLnNtc0NvZGV9KX1jYXRjaChkKXt0aGlzLl9vbkVycm9yKCIuZGF0YSBleGNlcHRpb246IitkKSxjPSExfXRoaXMuX25vdGlmeU9ic2VydmVyKGEsYyl9O3RoaXMuX2FkZE9ic2VydmVyPWZ1bmN0aW9uKGEpe2lmKCJmdW5jdGlvbiI9PT0KdHlwZW9mIGEpe3ZhciBjPXRoaXMuX3JpZCsrO3RoaXMuX29ic1tjXT1hO3JldHVybiBjfXRoaXMuX29uRXJyb3IoImlzIG5vdCBhIHZhbGlkIGNhbGxiYWNrIGZ1bmN0aW9uIik7cmV0dXJuITF9O3RoaXMuX2FkZENvbW1vblZhbHVlc1RvRGF0YT1mdW5jdGlvbihhLGMsYil7Im9iamVjdCIhPT10eXBlb2YgYiYmKGI9e30pO2IuVVVJRD1hO2Iuc2Vzc2lvbklkPWM7Yi50ZWNobm9sb2d5PSJIVE1MIjtiLnVybD13aW5kb3cubG9jYXRpb24uaHJlZjthPWdldENvb2tpZSgiZ2NsaWQiKT9nZXRDb29raWUoImdjbGlkIik6IiI7bnVsbCE9PWEmJiJ1bmRlZmluZWQiIT09YSYmIiIhPT1hJiYhMSE9PWEmJihiLmdvb2dsZUNsaWNrSWQ9YSk7YT1nZXRHYUNsaWVudElkKCk7bnVsbCE9PWEmJiJ1bmRlZmluZWQiIT09YSYmIiIhPT1hJiYhMSE9PWEmJihiLmdhQ2xpZW50SWQ9YSk7YT0kKCIjdGV4dFNlbmRUb0VtYWlsIikubGVuZ3RoPyQoIiN0ZXh0U2VuZFRvRW1haWwiKS52YWwoKToiIjsiIiE9PQphJiYoYi5zZW5kVG9FbWFpbD1hKTthPSQoIiN0ZXh0U2VuZFRvRW1haWxBREYiKS5sZW5ndGg\/JCgiI3RleHRTZW5kVG9FbWFpbEFERiIpLnZhbCgpOiIiOyIiIT09YSYmKGIuc2VuZFRvRW1haWxBZGY9YSk7YT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLmxlbmd0aD8kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpOiIiOyIiIT09YSYmKGIuZGVhbGVyTmFtZT1hKTtsZXQgZD1iLm1ha2UudG9Mb3dlckNhc2UoKTtpZigkKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIikubGVuZ3RoJiYiIiE9PWQmJiJjYXJkZXRhaWwuaHRtbCIhPSQoIiNQQUdFSUQiKS52YWwoKSl7YT0kKCIjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uIikuZmluZCgic2VsZWN0Iik7bGV0IGc9ZW1haWxIYW5kbGVyLmdldERlcCgpO2EuZmluZCgib3B0aW9uW2RhdGEtYnJhbmRzXSIpLmVhY2goZnVuY3Rpb24oZSxmKXtlPSQoZikuZGF0YSgiYnJhbmRzIikudG9Mb3dlckNhc2UoKTsKaWYoIiIhPWUmJmUuc3BsaXQoIiwiKS5pbmNsdWRlcyhkKSl7bGV0IGg9ZT0iIixrPWYudGV4dDtzd2l0Y2goZyl7Y2FzZSAiVVNFRCI6ZT0kKGYpLmRhdGEoImVtYWlsdXNlZCIpO2g9JChmKS5kYXRhKCJlbWFpbGFkZnVzZWQiKTticmVhaztjYXNlICJTRVJWSUNFIjplPSQoZikuZGF0YSgiZW1haWxzZXJ2aWNlIik7aD0kKGYpLmRhdGEoImVtYWlsYWRmc2VydmljZSIpO2JyZWFrO2Nhc2UgIlBBUlRTIjplPSQoZikuZGF0YSgiZW1haWxwYXJ0cyIpfHwkKGYpLmRhdGEoImVtYWlsc2VydmljZSIpO2g9JChmKS5kYXRhKCJlbWFpbGFkZnBhcnRzIil8fCQoZikuZGF0YSgiZW1haWxhZGZzZXJ2aWNlIik7YnJlYWs7Y2FzZSAiRklOQU5DRSI6ZT0kKGYpLmRhdGEoImVtYWlsZmluYW5jZSIpO2g9JChmKS5kYXRhKCJlbWFpbGFkZmZpbmFuY2UiKTticmVhaztjYXNlICJORVciOmU9JChmKS5kYXRhKCJlbWFpbCIpLGg9JChmKS5kYXRhKCJlbWFpbGFkZiIpfWlmKCIiIT09ZXx8IiIhPT1oKWIuc2VuZFRvRW1haWw9CmUsYi5zZW5kVG9FbWFpbEFkZj1oLGIuZGVhbGVyTmFtZT1rfX0pfWE9JCgiI0NBTVBBSUdOSUQiKS5sZW5ndGg\/JCgiI0NBTVBBSUdOSUQiKS52YWwoKToiIjsiIiE9PWEmJihiLmNhbXBhaWduSWQ9YSk7Y29uc29sZS5sb2codGhpcy5fbmFtZSsiLmRhdGEiLGIpO3JldHVybiBifTt0aGlzLl9pbml0PWZ1bmN0aW9uKGEsYyxiLGQsZyl7dmFyIGU7aWYoITE9PT0oYT10aGlzLl9idWlsZFF1ZXJ5KHRoaXMuX2FkZENvbW1vblZhbHVlc1RvRGF0YShhLGMsYiksZykpfHwhMT09PShlPXRoaXMuX2FkZE9ic2VydmVyKGQpKSlyZXR1cm4hMTtzZXRUaW1lb3V0KHRoaXMuX2RvUmVxdWVzdC5iaW5kKHRoaXMsYSxlKSl9O3RoaXMuZ2V0U21zTnVtYmVyPWZ1bmN0aW9uKGEsYyxiKXtpZigib2JqZWN0Ij09PXR5cGVvZiB3aW5kb3cuYWN0aXZlVXNlclByb2ZpbGVNbmcpYWN0aXZlVXNlclByb2ZpbGVNbmcucmVnaXN0ZXJDYWxsYmFjayh0aGlzLl9pbml0LmJpbmQodGhpcyx3aW5kb3cuYWN0aXZlVXNlclByb2ZpbGVNbmcudWlkLAp3aW5kb3cuYWN0aXZlVXNlclByb2ZpbGVNbmcuZ2V0U2Vzc2lvbklEKCksYSxjLGIpKTtlbHNlIHJldHVybiB0aGlzLl9vbkVycm9yKCciYWN0aXZlVXNlclByb2ZpbGVNbmciIGlzIG5vdCBhbiBvYmplY3QnKSwhMTtyZXR1cm4hMH19OwovKiogL20vanMvZ2VvTG9jYXRpb24uanMgKiovCnZhciBfX19kMmNfZ2VvTG9jYXRpb25qc19jX29uPSIyMDI1LTA1LTIzIDE3OjEwOjI0IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19nZW9Mb2NhdGlvbmpzX2Nfb249IjIwMjUtMDItMjYgMDk6MzA6MTEiOyJ1c2Ugc3RyaWN0IjsKdmFyIGdlb0xvY2F0b3I9ZnVuY3Rpb24oZil7dmFyIGE9dGhpczthLm1hcHNBUElLZXk9bnVsbDthLnVzZUhUTUw1PSEwO2EuZ2VvY29kZUxvY2F0aW9uPSEwO2EuYXR0ZW1wdFBhZ2VOdW09MDthLnRyYWNrTG9jYXRpb25HQT0hMTthLmZvcmNlR2VvbG9jQXR0ZW1wdD0hMTthLnNob3dQb2ludGVyTWVzc2FnZT0hMDthLnRpbWVvdXRzPVtdO2EuYnJvd3Nlcj0iIjthLmlzTW9iaWxlPSIxIj09JCgiI2lzbW9iaWxlIikudmFsKCk7YS5nZW9sb2NTdGF0dXNlcz17T0s6IlNVQ0NFU1MiLFJFRlVTRUQ6IlJFRlVTRUQiLENPT0tJRV9BQ0NFUFRFRDoiUFJFX0FDQ0VQVEVEIixDT09LSUVfUkVGVVNFRDoiUFJFX1JFRlVTRUQiLENBTkNFTEVEOiJDQU5DRUxFRCIsRkFJTDoiRkFJTEVEIn07YS5nZW9sb2NFcnJvcnM9e0lOVkFMSURfUkVTUE9OU0U6IklOVkFMSURfUkVTUE9OU0UiLENPTk5FQ1RJT05fRkFJTEVEOiJDT05ORUNUSU9OX0ZBSUxFRCIsR0VPTE9DX0ZBSUxFRDoiR0VPTE9DX0ZBSUxFRCIsCkdFT0xPQ19SRUZVU0VEOiJHRU9MT0NfUkVGVVNFRCIsR0VPQ09ERV9GQUlMRUQ6IkdFT0NPREVfRkFJTEVEIn07YS5nZW9sb2NSZXN1bHQ9e3Jlc3VsdDowLGdlb2xvY19kYXRlOiIiLGdlb2xvY19zdGF0dXM6YS5nZW9sb2NTdGF0dXNlcy5GQUlMLGdlb2NvZGVfc3RhdHVzOjAsbGF0aXR1ZGU6MCxsb25naXR1ZGU6MCxhY2N1cmFjeTowLHBvc3RhbF9jb2RlOiIiLGdlb2NvZGVfYWRkcmVzczoiIixnZW9jb2RlX2FkZHJlc3Nfc3RyOiIifTthLmdlb2xvY0NhbGxiYWNrPWZ1bmN0aW9uKCl7ZihhLmdlb2xvY1Jlc3VsdCk7Zj1mdW5jdGlvbigpe2NvbnNvbGUubG9nKCJHZW8gY2FsbGJhY2sgYWxyZWFkeSBmaXJlZC4iKX19O2EuX2luaXQ9ZnVuY3Rpb24oKXthLmlzTW9iaWxlJiYoYS5zaG93UG9pbnRlck1lc3NhZ2U9ITEpO2lmKDA8YS5hdHRlbXB0UGFnZU51bSl7dmFyIGI9bnVsbCE9Q29va2llcy5nZXQoImdlb2xvY1BhZ2VWaWV3cyIpP3BhcnNlSW50KENvb2tpZXMuZ2V0KCJnZW9sb2NQYWdlVmlld3MiKSkrCjE6MTtDb29raWVzLnNldCgiZ2VvbG9jUGFnZVZpZXdzIixiPGEuYXR0ZW1wdFBhZ2VOdW0\/YjowLG51bGwsIi8iKTtpZihiPGEuYXR0ZW1wdFBhZ2VOdW0pcmV0dXJuIGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wLGEuZ2VvbG9jUmVzdWx0LnN0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNBTkNFTEVELGEuZ2VvbG9jQ2FsbGJhY2soKSwhMX1pZighYS5mb3JjZUdlb2xvY0F0dGVtcHQmJkNvb2tpZXMuZ2V0KCJnZW9sb2NQcm9jZXNzZWQiKSlyZXR1cm4gYj1KU09OLnBhcnNlKENvb2tpZXMuZ2V0KCJnZW9sb2NQcm9jZXNzZWQiKSksIjEiPT1iLmFjY2VwdGVkPyhhLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MSxhLmdlb2xvY1Jlc3VsdC5nZW9sb2NfZGF0ZT1iLmdlb2xvY19kYXRlLGEuZ2VvbG9jUmVzdWx0Lmdlb2xvY19zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5DT09LSUVfQUNDRVBURUQsYS5nZW9sb2NSZXN1bHQubGF0aXR1ZGU9Yi5sYXRpdGl1ZGUsYS5nZW9sb2NSZXN1bHQubG9uZ2l0dWRlPQpiLmxvbmdpdHVkZSxhLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3M9Yi5hZGRyZXNzLGEuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzc19zdHI9Yi5hZGRyZXNzX3N0cik6KGEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0wLGEuZ2VvbG9jUmVzdWx0LnN0YXR1cz1hLmdlb2xvY1N0YXR1c2VzLkNPT0tJRV9SRUZVU0VEKSxhLmdlb2xvY0NhbGxiYWNrKCksITE7aWYoImh0dHBzOiIhPWxvY2F0aW9uLnByb3RvY29sKXJldHVybiBhLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MCxhLmdlb2xvY1Jlc3VsdC5zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5DQU5DRUxFRCxhLmdlb2xvY0NhbGxiYWNrKCksITE7aWYobHRfSUU5fHwhbmF2aWdhdG9yLmdlb2xvY2F0aW9uKWEudXNlSFRNTDU9ITE7bmF2aWdhdG9yLmJyb3dzZXI9ZnVuY3Rpb24oKXt2YXIgYz1uYXZpZ2F0b3IudXNlckFnZW50LGQ9Yy5tYXRjaCgvKG9wZXJhfGNocm9tZXxzYWZhcml8ZmlyZWZveHxtc2llfHRyaWRlbnQoPz1cLykpXC8\/XHMqKFxkKykvaSl8fApbXTtpZigvdHJpZGVudC9pLnRlc3QoZFsxXSkpe3ZhciBlPS9cYnJ2WyA6XSsoXGQrKS9nLmV4ZWMoYyl8fFtdO3JldHVybiJJRXhwbG9yZXIgIisoZVsxXXx8IiIpfWlmKCJDaHJvbWUiPT09ZFsxXSYmKGU9Yy5tYXRjaCgvXGJPUFJcLyhcZCspLyksbnVsbCE9ZSkpcmV0dXJuIk9wZXJhICIrZVsxXTtkPWRbMl0\/W2RbMV0sZFsyXV06W25hdmlnYXRvci5hcHBOYW1lLG5hdmlnYXRvci5hcHBWZXJzaW9uLCItPyJdO251bGwhPShlPWMubWF0Y2goL3ZlcnNpb25cLyhcZCspL2kpKSYmZC5zcGxpY2UoMSwxLGVbMV0pO3JldHVybiBkLmpvaW4oIiAiKX0oKTthLmJyb3dzZXI9bmF2aWdhdG9yLmJyb3dzZXI7cmV0dXJuITB9O2EuaGFuZGxlTG9jYXRpb25TdWNjZXNzPWZ1bmN0aW9uKCl7dmFyIGI9IkxhdGl0dWRlOiAiK2EuZ2VvbG9jUmVzdWx0LmxhdGl0dWRlKyI7IExvbmdpdHVkZTogIithLmdlb2xvY1Jlc3VsdC5sb25naXR1ZGU7Mzw9YS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUubGVuZ3RoJiYKKGI9YS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUpO2EudHJhY2tMb2NhdGlvbigiR2VvbG9jYXRpb24iLCJBY2NlcHRlZCIsYik7YS5nZW9sb2NSZXN1bHQuZ2VvbG9jX2RhdGU9KG5ldyBEYXRlKS5nZXRUaW1lKCk7Yj1uZXcgRGF0ZTtiLnNldEhvdXJzKDIzLDU5LDU5LDApO0Nvb2tpZXMuc2V0KCJnZW9sb2NQcm9jZXNzZWQiLEpTT04uc3RyaW5naWZ5KHthY2NlcHRlZDoxLGdlb2xvY19kYXRlOmEuZ2VvbG9jUmVzdWx0Lmdlb2xvY19kYXRlLGxhdGl0dWRlOmEuZ2VvbG9jUmVzdWx0LmxhdGl0dWRlLGxvbmdpdHVkZTphLmdlb2xvY1Jlc3VsdC5sb25naXR1ZGUscG9zdGFsX2NvZGU6YS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUsYWNjdXJhY3k6YS5nZW9sb2NSZXN1bHQuYWNjdXJhY3ksYWRkcmVzczphLmdlb2xvY1Jlc3VsdC5nZW9jb2RlX2FkZHJlc3MsYWRkcmVzc19zdHI6YS5nZW9sb2NSZXN1bHQuZ2VvY29kZV9hZGRyZXNzX3N0cn0pLGIsIi8iKTthLmdlb2xvY0NhbGxiYWNrKCl9OwphLmhhbmRsZUxvY2F0aW9uRXJyb3I9ZnVuY3Rpb24oYixjKXtpZigidW5kZWZpbmVkIj09dHlwZW9mIGN8fG51bGw9PWMpYz0iIjthLmdlb2xvY1Jlc3VsdC5yZXN1bHQ9MDthLmdlb2xvY1Jlc3VsdC5nZW9sb2NfZGF0ZT0obmV3IERhdGUpLmdldFRpbWUoKTthLmdlb2xvY1Jlc3VsdC5nZW9sb2Nfc3RhdHVzPWEuZ2VvbG9jU3RhdHVzZXMuRkFJTDtzd2l0Y2goYil7Y2FzZSBhLmdlb2xvY0Vycm9ycy5JTlZBTElEX1JFU1BPTlNFOmM9Ikdlb2xvYyBlcnJvciBtZXNhZ2U6IEludmFsaWQgcmVzcG9uc2UgZGF0YSI7YnJlYWs7Y2FzZSBhLmdlb2xvY0Vycm9ycy5DT05ORUNUSU9OX0ZBSUxFRDpjPSJHZW9sb2MgZXJyb3IgbWVzYWdlOiBDb25lY3Rpb24gZmFpbGVkIjticmVhaztjYXNlIGEuZ2VvbG9jRXJyb3JzLkdFT0xPQ19SRUZVU0VEOmEuZ2VvbG9jUmVzdWx0Lmdlb2xvY19zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5SRUZVU0VEO2JyZWFrO2Nhc2UgYS5nZW9sb2NFcnJvcnMuR0VPTE9DX0ZBSUxFRDpicmVhazsKY2FzZSBhLmdlb2xvY0Vycm9ycy5HRU9DT0RFX0ZBSUxFRDpjPSJHZW9sb2MgZXJyb3IgbWVzYWdlOiBJbnZhbGlkIHJlc3BvbnNlIGRhdGEiO2JyZWFrO2RlZmF1bHQ6Yz0iVW5rbm93biBlcnJvciBvY3VycmVkIn1hLnRyYWNrTG9jYXRpb24oIkdlb2xvY2F0aW9uIiwiRmFpbGVkIixjKTthLmdlb2xvY0NhbGxiYWNrKCl9O2EuZ2V0TG9jYXRpb249ZnVuY3Rpb24oKXthLl9pbml0KCkmJigwPT1hLnVzZUhUTUw1P2EuZ2V0R29vZ2xlU2VydmljZUxvY2F0aW9uKCk6YS5nZXRIVE1MNUxvY2F0aW9uKCkpfTthLmdldEdvb2dsZVNlcnZpY2VMb2NhdGlvbj1mdW5jdGlvbigpe2EuaGFuZGxlTG9jYXRpb25TdWNjZXNzKCk7cmV0dXJuITF9O2EuZ2V0SFRNTDVMb2NhdGlvbj1mdW5jdGlvbigpe2Euc2hvd0dlb2xvY01zZygpO25hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24oZnVuY3Rpb24oYil7YS5oaWRlR2VvbG9jTXNnKCk7YS5jbGVhclNldFRpbWVvdXRzKCk7CmEuZ2VvbG9jUmVzdWx0LnJlc3VsdD0xO2EuZ2VvbG9jUmVzdWx0Lmdlb2xvY19zdGF0dXM9YS5nZW9sb2NTdGF0dXNlcy5PSzthLmdlb2xvY1Jlc3VsdC5sYXRpdHVkZT1iLmNvb3Jkcy5sYXRpdHVkZTthLmdlb2xvY1Jlc3VsdC5sb25naXR1ZGU9Yi5jb29yZHMubG9uZ2l0dWRlO2EuZ2VvbG9jUmVzdWx0LmFjY3VyYWN5PWIuY29vcmRzLmFjY3VyYWN5O2lmKDEhPWEuZ2VvY29kZUxvY2F0aW9uKXJldHVybiBhLmhhbmRsZUxvY2F0aW9uU3VjY2VzcygpLCExO2EubGF0TG9uZ0dlb2NvZGUoYi5jb29yZHMubGF0aXR1ZGUsYi5jb29yZHMubG9uZ2l0dWRlKX0sZnVuY3Rpb24oYil7Y29uc29sZS5sb2coYik7dmFyIGM9Ikdlb2xvYyBlcnJvciBjb2RlOiAiK2IuY29kZSsiLCBnZW9sb2MgZXJyb3IgbWVzYWdlOiAiK2IubWVzc2FnZTthLmhpZGVHZW9sb2NNc2coKTthLmNsZWFyU2V0VGltZW91dHMoKTtDb29raWVzLnNldCgiZ2VvbG9jUHJvY2Vzc2VkIixKU09OLnN0cmluZ2lmeSh7YWNjZXB0ZWQ6MH0pLAoxLCIvIik7dmFyIGQ9YS5nZW9sb2NFcnJvcnMuR0VPTE9DX1JFRlVTRUQ7MSE9cGFyc2VJbnQoYi5jb2RlKSYmKGQ9YS5nZW9sb2NFcnJvcnMuR0VPTE9DX0ZBSUxFRCk7YS5oYW5kbGVMb2NhdGlvbkVycm9yKGQsYyl9LHt0aW1lb3V0OjI1RTN9KX07YS5sYXRMb25nR2VvY29kZT1mdW5jdGlvbihiLGMpe2EuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzcz1iKyJ8IitjO2EuZ2VvbG9jUmVzdWx0Lmdlb2NvZGVfYWRkcmVzc19zdHI9IkxhdGl0dWRlOiAiK2IrIjsgTG9uZ2l0dWRlOiAiK2M7YS5oYW5kbGVMb2NhdGlvblN1Y2Nlc3MoKX07YS50cmFja1Bvc3RhbD1mdW5jdGlvbigpe2lmKCRjb29raWU9Q29va2llcy5nZXQoIkhUTUw1R2VvIikpaWYoJGNvb2tpZT1KU09OLnBhcnNlKCRjb29raWUpLCRjb29raWUucG9zdGFsX2NvZGUpcmV0dXJuO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlJiYiIiE9PWEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlKXt2YXIgYj0KYS5nZW9sb2NSZXN1bHQucG9zdGFsX2NvZGUrInwiK2EuZ2VvbG9jUmVzdWx0LmFjY3VyYWN5OyJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8oInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlLCJIVE1MNUdlby5wb3N0YWwiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGIsIkhUTUw1R2VvLnBvc3RhbCIpKToidW5kZWZpbmVkIiE9PXR5cGVvZiBkZWJ1ZyYmZGVidWcoIiFVTkxPR0dFRCBFVkVOVCEiLGEuZ2VvbG9jUmVzdWx0LnBvc3RhbF9jb2RlLCJIVE1MNUdlby5wb3N0YWwiKTtiPW5ldyBEYXRlO2Iuc2V0SG91cnMoMjMsNTksNTksMCk7Q29va2llcy5zZXQoIkhUTUw1R2VvIixKU09OLnN0cmluZ2lmeSh7cG9zdGFsX2NvZGU6MX0pLGIsIi8iKX19OwphLmdldEFkZHJlc3NDb29yZD1mdW5jdGlvbihiLGMpe3JldHVybiExfTthLnRyYWNrTG9jYXRpb249ZnVuY3Rpb24oYixjLGQpe2lmKCFhLnRyYWNrTG9jYXRpb25HQSlyZXR1cm4hMX07YS5jbGVhclNldFRpbWVvdXRzPWZ1bmN0aW9uKCl7Zm9yKHZhciBiPTA7YjxhLnRpbWVvdXRzLmxlbmd0aDtiKyspY2xlYXJUaW1lb3V0KGEudGltZW91dHNbYl0pO2EudGltZW91dHM9W119O2Euc2hvd0dlb2xvY01zZz1mdW5jdGlvbigpe2lmKCFhLnNob3dQb2ludGVyTWVzc2FnZSlyZXR1cm4hMTthLmNsZWFyU2V0VGltZW91dHMoKTt2YXIgYj1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Z2VvbG9jRmFpbCgpfSwzRTQpO2EudGltZW91dHMucHVzaChiKTtpZigtMTxhLmJyb3dzZXIuaW5kZXhPZigiRmlyZWZveCIpfHwtMTxhLmJyb3dzZXIuaW5kZXhPZigiSUUiKSkkKCIuZ2VvbG9jLW1vZGFsLWJnIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCk7Y2xlYXJUaW1lb3V0KGIpfSksCiQoIiNnZW9sb2NhdGlvbk1zZyIpLm9mZigiY2xpY2siKS5vbigiY2xpY2siLGZ1bmN0aW9uKCl7Z2VvbG9jRmFpbCgpO2NsZWFyVGltZW91dChiKX0pLCQoIiNnZW9sb2NhdGlvbk1zZ0lFIikub2ZmKCJjbGljayIpLm9uKCJjbGljayIsZnVuY3Rpb24oKXtnZW9sb2NGYWlsKCk7Y2xlYXJUaW1lb3V0KGIpfSk7dmFyIGM9Imdlb2xvY2F0aW9uTXNnIixkPSEwLGU9e3RvcDoiMCIsbGVmdDoiMCJ9O3N3aXRjaCghMCl7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiSUUiKTplPXtib3R0b206IjBweCIsbGVmdDoiNDMlIn07Yz0iZ2VvbG9jYXRpb25Nc2dJRSI7YnJlYWs7Y2FzZSAtMTxhLmJyb3dzZXIuaW5kZXhPZigiRmlyZWZveCIpOmU9e3RvcDoiOTBweCIsbGVmdDoiNXB4In07JCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJsZWZ0IiwiNzVweCIpOyQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygidG9wIiwiMzVweCIpOy0xPT0kKCIjdHh0VXNlckFnZW50IikudmFsKCkuaW5kZXhPZigiV2luZG93cyIpJiYKJCgiaW1nLmJ1dHRvbl9wb2ludGVyIikuY3NzKCJsZWZ0IiwiMTc1cHgiKTticmVhaztjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJDaHJvbWUiKTplPXt0b3A6IjY1cHgiLGxlZnQ6IjBweCJ9OyQoImltZy5idXR0b25fcG9pbnRlciIpLmNzcygibGVmdCIsIjIxMHB4Iik7LTE9PSQoIiN0eHRVc2VyQWdlbnQiKS52YWwoKS5pbmRleE9mKCJXaW5kb3dzIikmJihlPXt0b3A6Ijc1cHgiLGxlZnQ6IjUwcHgifSwkKCJpbWcuYnV0dG9uX3BvaW50ZXIiKS5jc3MoImxlZnQiLCIyNDBweCIpKTticmVhaztjYXNlIC0xPGEuYnJvd3Nlci5pbmRleE9mKCJTYWZhcmkiKTplPXt0b3A6IjUxNXB4IixsZWZ0OiIzNSUifTtkPSEwO2JyZWFrO2Nhc2UgLTE8YS5icm93c2VyLmluZGV4T2YoIk9wZXJhIik6ZT17dG9wOiIwIixsZWZ0OiIwIn07ZD0hMTticmVhaztkZWZhdWx0OmU9e3RvcDoiMCIsbGVmdDoiMCJ9LGQ9ITF9ZCYmKCJ1bmRlZmluZWQiIT10eXBlb2YgJCgiLnJldmVhbC1tb2RhbC1iZyIpLnZhbCgpJiYKImJsb2NrIj09JCgiLnJldmVhbC1tb2RhbC1iZyIpLmNzcygiZGlzcGxheSIpJiYkKCIucmV2ZWFsLW1vZGFsLWJnIikuaGlkZSgpLCQoIi5nZW9sb2MtbW9kYWwtYmciKS5zaG93KCksJCgiIyIrYykuY3NzKGUpLCQoIiMiK2MpLnNob3coKSwidW5kZWZpbmVkIj09dHlwZW9mIHNpdGVTZWN0aW9uJiYoc2l0ZVNlY3Rpb249IlVOREVGSU5FRCIpLGEudHJhY2tMb2NhdGlvbigiR2VvbG9jYXRpb24iLCJTZWN0aW9uLSIrc2l0ZVNlY3Rpb24sIiIpKX07YS5oaWRlR2VvbG9jTXNnPWZ1bmN0aW9uKGIpe2lmKCFhLnNob3dQb2ludGVyTWVzc2FnZSlyZXR1cm4hMTtpZigidW5kZWZpbmVkIj09dHlwZW9mIGJ8fG51bGw9PWIpYj0hMTskKCIuZ2VvbG9jLW1vZGFsLWJnIikuaGlkZSgpO2J8fCgkKCIjZ2VvbG9jYXRpb25Nc2ciKS5oaWRlKCksJCgiI2dlb2xvY2F0aW9uTXNnSUUiKS5oaWRlKCkpfTthLmdlb2xvY0ZhaWw9ZnVuY3Rpb24oKXstMTxhLmJyb3dzZXIuaW5kZXhPZigiSUUiKSYmCmxvY2F0aW9uLnJlbG9hZCgpO292ZXJsYXlPbmx5PSEwO2lmKC0xPGEuYnJvd3Nlci5pbmRleE9mKCJGaXJlZm94Iil8fC0xPGEuYnJvd3Nlci5pbmRleE9mKCJJRSIpKW92ZXJsYXlPbmx5PSExO2EuaGlkZUdlb2xvY01zZyhvdmVybGF5T25seSk7cmV0dXJuITF9O2EuZ2V0RGlzdGFuY2U9ZnVuY3Rpb24oYixjLGQpe3JldHVybiBhLmdldERpc3RhbmNlSGF2ZXJzaW5lKGIsYyl9O2EuZ2V0RGlzdGFuY2VIYXZlcnNpbmU9ZnVuY3Rpb24oYixjKXt2YXIgZD0oYy5sYXQtYi5sYXQpKk1hdGguUEkvMTgwLGU9KGMubG9uZy1iLmxvbmcpKk1hdGguUEkvMTgwO2I9TWF0aC5zaW4oZC8yKSpNYXRoLnNpbihkLzIpK01hdGguY29zKGIubGF0Kk1hdGguUEkvMTgwKSpNYXRoLmNvcyhjLmxhdCpNYXRoLlBJLzE4MCkqTWF0aC5zaW4oZS8yKSpNYXRoLnNpbihlLzIpO3JldHVybigxMjc1NjI3NCpNYXRoLmF0YW4yKE1hdGguc3FydChiKSxNYXRoLnNxcnQoMS1iKSkpLnRvRml4ZWQoMil9O2EuZ2V0RGlzdGFuY2VHbWFwcz0KZnVuY3Rpb24oYixjKXtyZXR1cm4gYS5nZXREaXN0YW5jZUhhdmVyc2luZShiLGMpfX07Ci8qKiAvbS9qcy9wcmludFRoaXMuanMgKiovCnZhciBfX19kMmNfcHJpbnRUaGlzanNfY19vbj0iMjAyNS0wNS0yMyAxNzoxMTo0MCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfcHJpbnRUaGlzanNfY19vbj0iMjAyNC0wNy0zMCAxMDozMDowOCI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oYyl7ZnVuY3Rpb24gcihkLGUpe2UmJmQuYXBwZW5kKGUuanF1ZXJ5P2UuY2xvbmUoKTplKX1mdW5jdGlvbiB0KGQsZSxrKXt2YXIgZj1lLmNsb25lKGsuZm9ybVZhbHVlcyk7ay5mb3JtVmFsdWVzJiZ1KGUsZiwic2VsZWN0LCB0ZXh0YXJlYSIpO2sucmVtb3ZlU2NyaXB0cyYmZi5maW5kKCJzY3JpcHQiKS5yZW1vdmUoKTtrLnByaW50Q29udGFpbmVyP2YuYXBwZW5kVG8oZCk6Zi5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS5jaGlsZHJlbigpLmFwcGVuZFRvKGQpfSl9ZnVuY3Rpb24gdShkLGUsayl7dmFyIGY9ZC5maW5kKGspO2UuZmluZChrKS5lYWNoKGZ1bmN0aW9uKGcscSl7YyhxKS52YWwoZi5lcShnKS52YWwoKSl9KX12YXIgYTtjLmZuLnByaW50VGhpcz1mdW5jdGlvbihkKXthPWMuZXh0ZW5kKHt9LGMuZm4ucHJpbnRUaGlzLmRlZmF1bHRzLGQpO3ZhciBlPXRoaXMgaW5zdGFuY2VvZiBqUXVlcnk\/dGhpczpjKHRoaXMpO2Q9InByaW50VGhpcy0iKyhuZXcgRGF0ZSkuZ2V0VGltZSgpOwppZih3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUhPT1kb2N1bWVudC5kb21haW4mJm5hdmlnYXRvci51c2VyQWdlbnQubWF0Y2goL21zaWUvaSkpe3ZhciBrPSdqYXZhc2NyaXB0OmRvY3VtZW50LndyaXRlKCI8aGVhZD48c2NyaXB0PmRvY3VtZW50LmRvbWFpbj1cXCInK2RvY3VtZW50LmRvbWFpbisnXFwiO1x4M2Mvc2NyaXB0PjwvaGVhZD48Ym9keT48L2JvZHk+IiknLGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Zi5uYW1lPSJwcmludElmcmFtZSI7Zi5pZD1kO2YuY2xhc3NOYW1lPSJNU0lFIjtkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGYpO2Yuc3JjPWt9ZWxzZSBjKCI8aWZyYW1lIGlkPSciK2QrIicgbmFtZT0ncHJpbnRJZnJhbWUnIC8+IikuYXBwZW5kVG8oImJvZHkiKTt2YXIgZz1jKCIjIitkKTthLmRlYnVnfHxnLmNzcyh7cG9zaXRpb246ImFic29sdXRlIix3aWR0aDoiMHB4IixoZWlnaHQ6IjBweCIsbGVmdDoiLTYwMHB4Iix0b3A6Ii02MDBweCJ9KTsKc2V0VGltZW91dChmdW5jdGlvbigpe2Z1bmN0aW9uIHEoYixwKXtiPWIuZ2V0KDApO2I9Yi5jb250ZW50V2luZG93fHxiLmNvbnRlbnREb2N1bWVudHx8YjtiPWIuZG9jdW1lbnR8fGIuY29udGVudERvY3VtZW50fHxiO2Iub3BlbigpO2Iud3JpdGUocCk7Yi5jbG9zZSgpfWEuZG9jdHlwZVN0cmluZyYmcShnLGEuZG9jdHlwZVN0cmluZyk7dmFyIG09Zy5jb250ZW50cygpLGw9bS5maW5kKCJoZWFkIiksbj1tLmZpbmQoImJvZHkiKSxoPWMoImJhc2UiKTtoPSEwPT09YS5iYXNlJiYwPGgubGVuZ3RoP2guYXR0cigiaHJlZiIpOiJzdHJpbmciPT09dHlwZW9mIGEuYmFzZT9hLmJhc2U6ZG9jdW1lbnQubG9jYXRpb24ucHJvdG9jb2wrIi8vIitkb2N1bWVudC5sb2NhdGlvbi5ob3N0O2wuYXBwZW5kKCc8YmFzZSBocmVmPSInK2grJyI+Jyk7YS5pbXBvcnRDU1MmJmMoImxpbmtbcmVsPXN0eWxlc2hlZXRdIikuZWFjaChmdW5jdGlvbigpe3ZhciBiPWModGhpcykuYXR0cigiaHJlZiIpO2lmKGIpe3ZhciBwPQpjKHRoaXMpLmF0dHIoIm1lZGlhIil8fCJhbGwiO2wuYXBwZW5kKCI8bGluayB0eXBlPSd0ZXh0L2NzcycgcmVsPSdzdHlsZXNoZWV0JyBocmVmPSciK2IrIicgbWVkaWE9JyIrcCsiJy8+Iil9fSk7YS5pbXBvcnRTdHlsZSYmYygic3R5bGUiKS5lYWNoKGZ1bmN0aW9uKCl7bC5hcHBlbmQodGhpcy5vdXRlckhUTUwpfSk7YS5wYWdlVGl0bGUmJmwuYXBwZW5kKCI8dGl0bGU+IithLnBhZ2VUaXRsZSsiPC90aXRsZT4iKTthLmxvYWRDU1MmJihBcnJheS5pc0FycmF5KGEubG9hZENTUyk\/alF1ZXJ5LmVhY2goYS5sb2FkQ1NTLGZ1bmN0aW9uKGIscCl7bC5hcHBlbmQoIjxsaW5rIHR5cGU9J3RleHQvY3NzJyByZWw9J3N0eWxlc2hlZXQnIGhyZWY9JyIrdGhpcysiJy8+Iil9KTpsLmFwcGVuZCgiPGxpbmsgdHlwZT0ndGV4dC9jc3MnIHJlbD0nc3R5bGVzaGVldCcgaHJlZj0nIithLmxvYWRDU1MrIicvPiIpKTtpZihoPWEuY29weVRhZ0NsYXNzZXMpaD0hMD09PWg\/ImJoIjpoLC0xIT09aC5pbmRleE9mKCJiIikmJgpuLmFkZENsYXNzKGMoImJvZHkiKVswXS5jbGFzc05hbWUpLC0xIT09aC5pbmRleE9mKCJoIikmJm0uZmluZCgiaHRtbCIpLmFkZENsYXNzKGMoImh0bWwiKVswXS5jbGFzc05hbWUpO3IobixhLmhlYWRlcik7aWYoYS5jYW52YXMpe3ZhciB2PTA7ZS5maW5kKCJjYW52YXMiKS5hZGRCYWNrKCJjYW52YXMiKS5lYWNoKGZ1bmN0aW9uKCl7Yyh0aGlzKS5hdHRyKCJkYXRhLXByaW50dGhpcyIsdisrKX0pfXQobixlLGEpO2EuY2FudmFzJiZuLmZpbmQoImNhbnZhcyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1jKHRoaXMpLmRhdGEoInByaW50dGhpcyIpO2I9YygnW2RhdGEtcHJpbnR0aGlzPSInK2IrJyJdJyk7dGhpcy5nZXRDb250ZXh0KCIyZCIpLmRyYXdJbWFnZShiWzBdLDAsMCk7Yi5yZW1vdmVEYXRhKCJwcmludHRoaXMiKX0pO2EucmVtb3ZlSW5saW5lJiYoaXNGdW5jdGlvbihjLnJlbW92ZUF0dHIpP20uZmluZCgiYm9keSAqIikucmVtb3ZlQXR0cigic3R5bGUiKTptLmZpbmQoImJvZHkgKiIpLmF0dHIoInN0eWxlIiwKIiIpKTtyKG4sYS5mb290ZXIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtnLmhhc0NsYXNzKCJNU0lFIik\/KHdpbmRvdy5mcmFtZXMucHJpbnRJZnJhbWUudHJpZ2dlcigiZm9jdXMiKSxsLmFwcGVuZCgiPHNjcmlwdD4gIHdpbmRvdy5wcmludCgpOyBceDNjL3NjcmlwdD4iKSk6ZG9jdW1lbnQucXVlcnlDb21tYW5kU3VwcG9ydGVkKCJwcmludCIpP2dbMF0uY29udGVudFdpbmRvdy5kb2N1bWVudC5leGVjQ29tbWFuZCgicHJpbnQiLCExLG51bGwpOihnWzBdLmNvbnRlbnRXaW5kb3cudHJpZ2dlcigiZm9jdXMiKSxnWzBdLmNvbnRlbnRXaW5kb3cucHJpbnQoKSk7YS5kZWJ1Z3x8c2V0VGltZW91dChmdW5jdGlvbigpe2cucmVtb3ZlKCl9LDFFMyl9LGEucHJpbnREZWxheSl9LDMzMyl9O2MuZm4ucHJpbnRUaGlzLmRlZmF1bHRzPXtkZWJ1ZzohMSxpbXBvcnRDU1M6ITAsaW1wb3J0U3R5bGU6ITEscHJpbnRDb250YWluZXI6ITAsbG9hZENTUzoiIixwYWdlVGl0bGU6IiIscmVtb3ZlSW5saW5lOiExLApwcmludERlbGF5OjMzMyxoZWFkZXI6bnVsbCxmb290ZXI6bnVsbCxmb3JtVmFsdWVzOiEwLGNhbnZhczohMSxiYXNlOiExLGRvY3R5cGVTdHJpbmc6IjwhRE9DVFlQRSBodG1sPiIscmVtb3ZlU2NyaXB0czohMSxjb3B5VGFnQ2xhc3NlczohMX19KShqUXVlcnkpOwovKiogL20vanMvY29udGFjdFBvcHVwLmpzICoqLwp2YXIgX19fZDJjX2NvbnRhY3RQb3B1cGpzX2Nfb249IjIwMjYtMDEtMTIgMTA6MTM6NDYiOyd1c2Ugc3RyaWN0Jzt2YXIgY29udGFjdFBvcHVwPXtwb3B1cDokKCIjY29udGFjdHBvcHVwIiksb3B0aW9uczp7dHlwZToiIn0sc2V0Q29uZmlnOmZ1bmN0aW9uKGEpe2NvbnRhY3RQb3B1cC5vcHRpb25zPSQuZXh0ZW5kKHt9LGNvbnRhY3RQb3B1cC5vcHRpb25zLGEpO3JldHVybiBjb250YWN0UG9wdXB9LGluaXQ6ZnVuY3Rpb24oKXtjb250YWN0UG9wdXAuc2V0Q29uZmlnKHt0eXBlOnNlbGYuc2V0dGluZ3MuZm9ybS50eXBlfSk7Y29udGFjdFBvcHVwLnBvcHVwLnBvcHVwaXplKHtvbkJlZm9yZVNlbmRNYWlsOmNvbnRhY3RQb3B1cC5vbkJlZm9yZVNlbmRNYWlsfSkub3BlbigpO3JldHVybiBjb250YWN0UG9wdXB9LG9uQmVmb3JlU2VuZE1haWw6ZnVuY3Rpb24oYSl7Y29udGFjdFBvcHVwLnNldEVtYWlsSGFuZGxlckZyb21BZGRyZXNzZXMoKTtlbWFpbEhhbmRsZXIuY29uZGl0aW9uPWNvbnRhY3RQb3B1cC5nZXRDb25kaXRpb24oKTtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD1jb250YWN0UG9wdXAuZ2V0VHlwZSgpLnRvVXBwZXJDYXNlKCk7CiJCTlAiPT1lbWFpbEhhbmRsZXIuZGVwYXJ0bWVudCYmKGVtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJORVciKTtlbWFpbEhhbmRsZXIuc2tpcEdldERlcD0hMDtlbWFpbEhhbmRsZXIuYm9keT1lbWFpbEhhbmRsZXIuYm9keS5yZXBsYWNlKCJ7JE5BTUV9IixlbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSsiICIrZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSl9LGdldENvbmRpdGlvbjpmdW5jdGlvbigpe3N3aXRjaChjb250YWN0UG9wdXAuZ2V0VHlwZSgpKXtjYXNlICJibnAiOmNhc2UgIm5ldyI6Y2FzZSAibWFudWZhY3R1cmVyIjpyZXR1cm4ibmV3IjtkZWZhdWx0OnJldHVybiJ1c2VkIn19LGdldFR5cGU6ZnVuY3Rpb24oKXtyZXR1cm4gY29udGFjdFBvcHVwLm9wdGlvbnMudHlwZX0sc2V0RW1haWxIYW5kbGVyRnJvbUFkZHJlc3NlczpmdW5jdGlvbigpe3ZhciBhPWNvbnRhY3RQb3B1cC5nZXRUeXBlKCk7dHJ5e3ZhciBiPWNvbnRhY3RQb3B1cC5nZXRFbWFpbHMoYSk7IiI9PT1iLnNlbmRUbyYmCiIiPT09Yi5zZW5kVG9BREYmJihiPWNvbnRhY3RQb3B1cC5nZXRFbWFpbHMoInVzZWQiKSk7dmFyIGM9Yi5zZW5kVG8sZD1iLnNlbmRUb0FERjsiIj09PWMmJiIiPT09ZCYmY29uc29sZS5sb2coIldhcm5pbmc6IGJvdGggZW1haWwgYW5kIEFERiBhZGRyZXNzZXMgYXJlIGVtcHR5ISIpO2lmKCQoIiNjdXN0b21Gb3JtX29yaWdpbmFsc2VuZHRvIikubGVuZ3RoJiYiT3RoZXIiPT0kKCIjY3VzdG9tRm9ybV9vcmlnaW5hbHNlbmR0byIpLnZhbCgpKXt2YXIgZT0kKCIjY3VzdG9tRm9ybV9zZW5kdG8iKS52YWwoKSxmPSQoIiNjdXN0b21Gb3JtX3NlbmR0b0FERiIpLnZhbCgpO2lmKCIiIT09ZXx8IiIhPT1mKWM9ZSxkPWZ9ZW1haWxIYW5kbGVyLnNlbmRUbz1jO2VtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9ZH1jYXRjaChnKXtjb25zb2xlLmxvZyhnKX1yZXR1cm4gY29udGFjdFBvcHVwfSxnZXRFbWFpbHM6ZnVuY3Rpb24oYSl7dmFyIGI9JCgiI2hpZGRlbkNvbnRhY3Rwb3B1cCIpOwoiYm5wIj09YSYmKGE9Im5ldyIpO3ZhciBjPWIuZmluZCgiI2VtYWlsXyIrYSkudmFsKCk7YT1iLmZpbmQoIiNlbWFpbEFERl8iK2EpLnZhbCgpO3JldHVybntzZW5kVG86YyxzZW5kVG9BREY6YX19fSxpbml0Q29udGFjdHBvcHVwPWZ1bmN0aW9uKGEpe2EucHJldmVudERlZmF1bHQoKTtjb250YWN0UG9wdXAuaW5pdCgpfSxjb250YWN0UG9wdXBTdWJtaXQ9ZnVuY3Rpb24oKXskKCIjY29udGFjdHBvcHVwIikucG9wdXBpemUoKS5zdWJtaXQoKX0sY29udGFjdFBvcHVwQ2xvc2U9ZnVuY3Rpb24oKXskKCIjY29udGFjdHBvcHVwIikucG9wdXBpemUoKS5jbG9zZSgpfTsKLyoqIC9tL2pzL25lYkNhbC9uZWJEYXRlRm4uanMgKiovCnZhciBfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyNS0wNS0yMyAxNzowNDoyNCI7J3VzZSBzdHJpY3QnO3ZhciBfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyNC0wMS0zMSAxNDozMTo1NyI7InVzZSBzdHJpY3QiO19fX2QyY19uZWJEYXRlRm5qc19jX29uPSIyMDIzLTAxLTEyIDExOjMyOjIzIjsidXNlIHN0cmljdCI7X19fZDJjX25lYkRhdGVGbmpzX2Nfb249IjIwMjMtMDEtMTIgMTA6NDI6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfbmViRGF0ZUZuanNfY19vbj0iMjAyMS0xMi0xNSAxMjozODozOSI7InVzZSBzdHJpY3QiO2NvbnN0IG5lYkRhdGVGbj17fTsKJCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8kLm5lYkxhbmc9e21vbnRoTmFtZXM6IkphbnZpZXIgRiZlYWN1dGU7dnJpZXIgTWFycyBBdnJpbCBNYWkgSnVpbiBKdWlsbGV0IEFvJnVjaXJjO3QgU2VwdGVtYnJlIE9jdG9icmUgTm92ZW1icmUgRCZlYWN1dGU7Y2VtYnJlIi5zcGxpdCgiICIpLG1vbnRoTmFtZXNTaG9ydDoiSmFudi4gRiZlYWN1dGU7dnIuIE1hcnMgQXZyLiBNYWkgSnVpbiBKdWlsLiBBbyZ1Y2lyYzt0IFNlcHQuIE9jdC4gTm92LiBEJmVhY3V0ZTtjLiIuc3BsaXQoIiAiKSxkYXlOYW1lczoiRGltYW5jaGUgTHVuZGkgTWFyZGkgTWVyY3JlZGkgSmV1ZGkgVmVuZHJlZGkgU2FtZWRpIi5zcGxpdCgiICIpLGRheU5hbWVzU2hvcnQ6IkRpbSBMdW4gTWFyIE1lciBKZXUgVmVuIFNhbSIuc3BsaXQoIiAiKSxkYXlOYW1lc01pbjoiRGkgTHUgTWEgTWUgSmUgVmUgU2EiLnNwbGl0KCIgIiksd2Vla0hlYWRlcjoiU20iLGRhdGVGb3JtYXQ6InktTS1kIixmaXJzdERheToxLAppc1JUTDohMSxzaG93TW9udGhBZnRlclllYXI6ITEseWVhclN1ZmZpeDoiIixpbnZhbGlkRGF0ZUZvcm1hdDoiaW52YWxpZF9kYXRlIn06JC5uZWJMYW5nPXttb250aE5hbWVzOiJKYW51YXJ5IEZlYnJ1YXJ5IE1hcmNoIEFwcmlsIE1heSBKdW5lIEp1bHkgQXVndXN0IFNlcHRlbWJlciBPY3RvYmVyIE5vdmVtYmVyIERlY2VtYmVyIi5zcGxpdCgiICIpLG1vbnRoTmFtZXNTaG9ydDoiSmFuLiBGZWIuIE1hci4gQXByLiBNYXkgSnVuLiBKdWwuIEF1Zy4gU2VwdC4gT2N0LiBOb3YuIERlYy4iLnNwbGl0KCIgIiksZGF5TmFtZXM6IlN1bmRheSBNb25kYXkgVHVlc2RheSBXZWRuZXNkYXkgVGh1cnNkYXkgRnJpZGF5IFNhdHVyZGF5Ii5zcGxpdCgiICIpLGRheU5hbWVzU2hvcnQ6IlN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCIuc3BsaXQoIiAiKSxkYXlOYW1lc01pbjoiU3UgTW8gVHUgV2UgVGggRnIgU2EiLnNwbGl0KCIgIiksd2Vla0hlYWRlcjoiU20iLGRhdGVGb3JtYXQ6InktTS1kIiwKZmlyc3REYXk6MSxpc1JUTDohMSxzaG93TW9udGhBZnRlclllYXI6ITEseWVhclN1ZmZpeDoiIixpbnZhbGlkRGF0ZUZvcm1hdDoiaW52YWxpZF9kYXRlIn07RGF0ZS5MWj1mdW5jdGlvbihhKXtyZXR1cm4oMD5hfHw5PGE\/IiI6IjAiKSthfTtuZWJEYXRlRm4uTFo9ZnVuY3Rpb24oYSl7cmV0dXJuKDA+YXx8OTxhPyIiOiIwIikrYX07RGF0ZS5wcmVmZXJBbWVyaWNhbkZvcm1hdD0hMDtuZWJEYXRlRm4uY2xlYXJUaW1lPWZ1bmN0aW9uKGEpe2EgaW5zdGFuY2VvZiBEYXRlJiYoYS5zZXRIb3VycygwKSxhLnNldE1pbnV0ZXMoMCksYS5zZXRTZWNvbmRzKDApLGEuc2V0TWlsbGlzZWNvbmRzKDApKTtyZXR1cm4gYX07CkRhdGUucHJvdG90eXBlLnRvTXlzcWxGb3JtYXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRGdWxsWWVhcigpKyItIitEYXRlLkxaKDErdGhpcy5nZXRNb250aCgpKSsiLSIrRGF0ZS5MWih0aGlzLmdldERhdGUoKSkrIiAiK0RhdGUuTFoodGhpcy5nZXRIb3VycygpKSsiOiIrRGF0ZS5MWih0aGlzLmdldE1pbnV0ZXMoKSkrIjoiK0RhdGUuTFoodGhpcy5nZXRTZWNvbmRzKCkpfTtEYXRlLnByb3RvdHlwZS5pc0xlYXBZZWFyPWZ1bmN0aW9uKCl7cmV0dXJuIDI5PT0obmV3IERhdGUodGhpcy5nZXRGdWxsWWVhcigpLDEsMjkpKS5nZXREYXRlKCl9O0RhdGUucHJvdG90eXBlLmdldExhc3REYXlPZk1vbnRoQ2FsPWZ1bmN0aW9uKCl7cmV0dXJuKG5ldyBEYXRlKHRoaXMuZ2V0RnVsbFllYXIoKSx0aGlzLmdldE1vbnRoKCkrMSwwKSkuZ2V0RGF0ZSgpfTtEYXRlLnByb3RvdHlwZS5zZXREYXk9ZnVuY3Rpb24oYSl7dGhpcy5zZXREYXRlKGEpO3JldHVybiB0aGlzfTsKRGF0ZS5wcm90b3R5cGUuc2V0TW9uPWZ1bmN0aW9uKGEpe3RoaXMuc2V0TW9udGgoYSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLnNldFllYXI9ZnVuY3Rpb24oYSl7dGhpcy5zZXRGdWxsWWVhcihhKTtyZXR1cm4gdGhpc307RGF0ZS5wcm90b3R5cGUuYWRkRGF5PWZ1bmN0aW9uKGEpe3RoaXMuc2V0RGF0ZSh0aGlzLmdldERhdGUoKSthKTtyZXR1cm4gdGhpc307RGF0ZS5wcm90b3R5cGUuYWRkTW9uPWZ1bmN0aW9uKGEpe3RoaXMuc2V0TW9udGgodGhpcy5nZXRNb250aCgpK2EpO3JldHVybiB0aGlzfTtEYXRlLnByb3RvdHlwZS5hZGRZZWFyPWZ1bmN0aW9uKGEpe3RoaXMuc2V0RnVsbFllYXIodGhpcy5nZXRGdWxsWWVhcigpK2EpO3JldHVybiB0aGlzfTtEYXRlLnBhcnNlRGF0ZVRpbWU9ZnVuY3Rpb24oYSl7YT1hLnNwbGl0KC9bLSA6XS8pO3JldHVybiBuZXcgRGF0ZShhWzBdLGFbMV0tMSxhWzJdLGFbM10sYVs0XSxhWzVdKX07Cm5lYkRhdGVGbi5wYXJzZVN0cmluZz1mdW5jdGlvbihhLGUpe2lmKCJ1bmRlZmluZWQiPT09dHlwZW9mIGV8fG51bGw9PT1lfHwiIj09PWUpe2U9WyJNL2QveSIsIk0tZC15IiwiTS5kLnkiLCJNL2QiLCJNLWQiXTt2YXIgYz1bImQvTS95IiwiZC1NLXkiLCJkLk0ueSIsImQvTSIsImQtTSJdO2U9WyJ5LU0tZDtNTU0gZCwgeTtNTU0gZCx5O3ktTU1NLWQ7ZC1NTU0teTtNTU0gZDtNTU0tZDtkLU1NTSIuc3BsaXQoIjsiKSxEYXRlLnByZWZlckFtZXJpY2FuRm9ybWF0P2U6YyxEYXRlLnByZWZlckFtZXJpY2FuRm9ybWF0P2M6ZV07Zm9yKGM9MDtjPGUubGVuZ3RoO2MrKylmb3IodmFyIGg9ZVtjXSxrPTA7azxoLmxlbmd0aDtrKyspe3ZhciBuPW5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLGhba10pO2lmKG51bGwhPT1uKXJldHVybiBufXJldHVybiBudWxsfXRoaXMuaXNJbnRlZ2VyPWZ1bmN0aW9uKHUpe2Zvcih2YXIgcT0wO3E8dS5sZW5ndGg7cSsrKWlmKC0xPT0iMTIzNDU2Nzg5MCIuaW5kZXhPZih1LmNoYXJBdChxKSkpcmV0dXJuITE7CnJldHVybiEwfTt0aGlzLmdldEludD1mdW5jdGlvbih1LHEseSx3KXtmb3IoO3c+PXk7dy0tKXt2YXIgeD11LnN1YnN0cmluZyhxLHErdyk7aWYoeC5sZW5ndGg8eSlicmVhaztpZih0aGlzLmlzSW50ZWdlcih4KSlyZXR1cm4geH1yZXR1cm4gbnVsbH07YSs9IiI7ZSs9IiI7aD1jPTA7dmFyIG09IiIsYj0iIixsPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSxnPTEsZD0xLGY9MCxyPTAsdD0wLHY9IiI7bT1bXTtmb3IoYj0wO2g8ZS5sZW5ndGg7KXttPWUuY2hhckF0KGgpO2ZvcihiPSIiO2UuY2hhckF0KGgpPT1tJiZoPGUubGVuZ3RoOyliKz1lLmNoYXJBdChoKyspO2lmKCJ5eXl5Ij09Ynx8Inl5Ij09Ynx8InkiPT1iKXsieXl5eSI9PWImJihuPWs9NCk7Inl5Ij09YiYmKG49az0yKTsieSI9PWImJihrPTIsbj00KTtsPXRoaXMuZ2V0SW50KGEsYyxrLG4pO2lmKG51bGw9PT1sKXJldHVybiBudWxsO2MrPWwubGVuZ3RoOzI9PWwubGVuZ3RoJiYobD03MDxsPzE5MDArKGwtMCk6MkUzKwoobC0wKSl9ZWxzZSBpZigiTU1NIj09Ynx8Ik5OTiI9PWIpe2c9MDttPSJNTU0iPT1iPyQubmViTGFuZy5tb250aE5hbWVzLmNvbmNhdCgkLm5lYkxhbmcubW9udGhOYW1lc1Nob3J0KTokLm5lYkxhbmcubW9udGhOYW1lc1Nob3J0O2ZvcihiPTA7YjxtLmxlbmd0aDtiKyspe3ZhciBwPW1bYl07aWYoYS5zdWJzdHJpbmcoYyxjK3AubGVuZ3RoKS50b0xvd2VyQ2FzZSgpPT1wLnRvTG93ZXJDYXNlKCkpe2c9YiUxMisxO2MrPXAubGVuZ3RoO2JyZWFrfX1pZigxPmd8fDEyPGcpcmV0dXJuIG51bGx9ZWxzZSBpZigiRUUiPT1ifHwiRSI9PWIpZm9yKG09IkVFIj09Yj8kLm5lYkxhbmcuZGF5TmFtZXM6JC5uZWJMYW5nLmRheU5hbWVzU2hvcnQsYj0wO2I8bS5sZW5ndGg7YisrKXtpZihwPW1bYl0sYS5zdWJzdHJpbmcoYyxjK3AubGVuZ3RoKS50b0xvd2VyQ2FzZSgpPT1wLnRvTG93ZXJDYXNlKCkpe2MrPXAubGVuZ3RoO2JyZWFrfX1lbHNlIGlmKCJNTSI9PWJ8fCJNIj09Yil7Zz10aGlzLmdldEludChhLApjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1nfHwxPmd8fDEyPGcpcmV0dXJuIG51bGw7Yys9Zy5sZW5ndGh9ZWxzZSBpZigiZGQiPT1ifHwiZCI9PWIpe2Q9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1kfHwxPmR8fDMxPGQpcmV0dXJuIG51bGw7Yys9ZC5sZW5ndGh9ZWxzZSBpZigiaGgiPT1ifHwiaCI9PWIpe2Y9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1mfHwxPmZ8fDEyPGYpcmV0dXJuIG51bGw7Yys9Zi5sZW5ndGh9ZWxzZSBpZigiSEgiPT1ifHwiSCI9PWIpe2Y9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1mfHwwPmZ8fDIzPGYpcmV0dXJuIG51bGw7Yys9Zi5sZW5ndGh9ZWxzZSBpZigiS0siPT1ifHwiSyI9PWIpe2Y9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1mfHwwPmZ8fDExPGYpcmV0dXJuIG51bGw7Yys9Zi5sZW5ndGg7ZisrfWVsc2UgaWYoImtrIj09Ynx8ImsiPT1iKXtmPXRoaXMuZ2V0SW50KGEsCmMsYi5sZW5ndGgsMik7aWYobnVsbD09PWZ8fDE+Znx8MjQ8ZilyZXR1cm4gbnVsbDtjKz1mLmxlbmd0aDtmLS19ZWxzZSBpZigibW0iPT1ifHwibSI9PWIpe3I9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT1yfHwwPnJ8fDU5PHIpcmV0dXJuIG51bGw7Yys9ci5sZW5ndGh9ZWxzZSBpZigic3MiPT1ifHwicyI9PWIpe3Q9dGhpcy5nZXRJbnQoYSxjLGIubGVuZ3RoLDIpO2lmKG51bGw9PT10fHwwPnR8fDU5PHQpcmV0dXJuIG51bGw7Yys9dC5sZW5ndGh9ZWxzZSBpZigiYSI9PWIpe2lmKCJhbSI9PWEuc3Vic3RyaW5nKGMsYysyKS50b0xvd2VyQ2FzZSgpKXY9IkFNIjtlbHNlIGlmKCJwbSI9PWEuc3Vic3RyaW5nKGMsYysyKS50b0xvd2VyQ2FzZSgpKXY9IlBNIjtlbHNlIHJldHVybiBudWxsO2MrPTJ9ZWxzZXtpZihhLnN1YnN0cmluZyhjLGMrYi5sZW5ndGgpIT1iKXJldHVybiBudWxsO2MrPWIubGVuZ3RofX1pZihjIT1hLmxlbmd0aClyZXR1cm4gbnVsbDtpZigyPT0KZylpZigwPT09bCU0JiYwIT09bCUxMDB8fDA9PT1sJTQwMCl7aWYoMjk8ZClyZXR1cm4gbnVsbH1lbHNlIGlmKDI4PGQpcmV0dXJuIG51bGw7aWYoMzA8ZCYmKDQ9PWd8fDY9PWd8fDk9PWd8fDExPT1nKSlyZXR1cm4gbnVsbDsxMj5mJiYiUE0iPT12P2Y9Zi0wKzEyOjExPGYmJiJBTSI9PXYmJihmLT0xMik7cmV0dXJuIG5ldyBEYXRlKGwsZy0xLGQsZixyLHQpfTtEYXRlLmlzVmFsaWQ9ZnVuY3Rpb24oYSxlKXtyZXR1cm4gbnVsbCE9PW5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLGUpfTtEYXRlLnByb3RvdHlwZS5kaWZmPWZ1bmN0aW9uKGEpe3JldHVybiBudWxsPT09YT8hMTp0aGlzLmdldFRpbWUoKT09YS5nZXRUaW1lKCk\/MDp0aGlzLmdldFRpbWUoKT5hLmdldFRpbWUoKT8tMToxfTsKRGF0ZS5wcm90b3R5cGUuZm9ybWF0PWZ1bmN0aW9uKGEpe2ErPSIiO3ZhciBlPSIiLGM9MCxoPXRoaXMuZ2V0RnVsbFllYXIoKSsiIixrPXRoaXMuZ2V0TW9udGgoKSsxLG49dGhpcy5nZXREYXRlKCksbT10aGlzLmdldERheSgpLGI9dGhpcy5nZXRIb3VycygpLGw9dGhpcy5nZXRNaW51dGVzKCksZz10aGlzLmdldFNlY29uZHMoKSxkPXt9OzQ+aC5sZW5ndGgmJihoPSIiKygraCsxOTAwKSk7ZC55PSIiK2g7ZC55eXl5PWg7ZC55eT1oLnN1YnN0cmluZygyLDQpO2QuTT1rO2QuTU09RGF0ZS5MWihrKTtkLk1NTT0kLm5lYkxhbmcubW9udGhOYW1lc1trLTFdO2QuTk5OPSQubmViTGFuZy5tb250aE5hbWVzU2hvcnRbay0xXTtkLmQ9bjtkLmRkPURhdGUuTFoobik7ZC5FPSQubmViTGFuZy5kYXlOYW1lc1Nob3J0W21dO2QuRUU9JC5uZWJMYW5nLmRheU5hbWVzW21dO2QuSD1iO2QuSEg9RGF0ZS5MWihiKTtkLmg9MD09PWI\/MTI6MTI8Yj9iLTEyOmI7ZC5oaD1EYXRlLkxaKGQuaCk7ZC5LPQpkLmgtMTtkLms9ZC5IKzE7ZC5LSz1EYXRlLkxaKGQuSyk7ZC5raz1EYXRlLkxaKGQuayk7ZC5hPTExPGI\/IlBNIjoiQU0iO2QubT1sO2QubW09RGF0ZS5MWihsKTtkLnM9Zztmb3IoZC5zcz1EYXRlLkxaKGcpO2M8YS5sZW5ndGg7KXtoPWEuY2hhckF0KGMpO2ZvcihrPSIiO2EuY2hhckF0KGMpPT1oJiZjPGEubGVuZ3RoOylrKz1hLmNoYXJBdChjKyspO2U9InVuZGVmaW5lZCIhPXR5cGVvZiBkW2tdP2UrZFtrXTplK2t9cmV0dXJuIGV9OwpEYXRlLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24oYSxlKXtpZigidW5kZWZpbmVkIj09PXR5cGVvZiBhfHxudWxsPT09YXx8InVuZGVmaW5lZCI9PT10eXBlb2YgZXx8bnVsbD09PWUpcmV0dXJuIHRoaXM7ZT0rZTtpZigieSI9PWEpdGhpcy5zZXRGdWxsWWVhcih0aGlzLmdldEZ1bGxZZWFyKCkrZSk7ZWxzZSBpZigiTSI9PWEpdGhpcy5zZXRNb250aCh0aGlzLmdldE1vbnRoKCkrZSk7ZWxzZSBpZigiZCI9PWEpdGhpcy5zZXREYXRlKHRoaXMuZ2V0RGF0ZSgpK2UpO2Vsc2UgaWYoInciPT1hKWZvcihhPTA8ZT8xOi0xOzAhPT1lOyl7Zm9yKHRoaXMuYWRkKCJkIixhKTswPT09dGhpcy5nZXREYXkoKXx8Nj09PXRoaXMuZ2V0RGF5KCk7KXRoaXMuYWRkKCJkIixhKTtlLT1hfWVsc2UiaCI9PWE\/dGhpcy5zZXRIb3Vycyh0aGlzLmdldEhvdXJzKCkrZSk6Im0iPT1hP3RoaXMuc2V0TWludXRlcyh0aGlzLmdldE1pbnV0ZXMoKStlKToicyI9PWEmJnRoaXMuc2V0U2Vjb25kcyh0aGlzLmdldFNlY29uZHMoKSsKZSk7cmV0dXJuIHRoaXN9O0RhdGUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBEYXRlKHRoaXMuZ2V0VGltZSgpKX07Ci8qKiAvbS9qcy9uZWJDYWwvbmViQ2FsLmpzICoqLwp2YXIgX19fZDJjX25lYkNhbGpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDQ6MjIiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX25lYkNhbGpzX2Nfb249IjIwMjQtMDQtMTYgMTE6MzA6MDciOyJ1c2Ugc3RyaWN0IjsKKGZ1bmN0aW9uKGUpe2UubmViQ2FsPWZ1bmN0aW9uKGgsZyl7dmFyIGw9e3NsaWRlRHVyYXRpb246NTAwLGZhZGVEdXJhdGlvbjoyMDAsdG9nZ2xlRHVyYXRpb246MjAwLHByZWZpbGw6ITEsZGVmYXVsdERhdGU6dm9pZCAwLGxpbmtXaXRoSW5wdXQ6ITAsa2V5TmF2aWdhdGlvbjohMCx0aGVtZToiZGVmYXVsdCIsZGVmYXVsdFZpZXc6Im1vbnRoIixzdGFydE1vbmRheTohMSxhbHdheXNTaG93OiExLGluamVjdEluc2lkZVRhcmdldDohMSxmb3JtYXQ6Inl5eXktTU0tZGQiLGFsaWduWDoibWlkZGxlIixhbGlnblk6ImJvdHRvbSIsb2Zmc2V0WDoyMCxvZmZzZXRZOjAscG9ydHJhaXQ6ITAscGlja2FibGU6ITAsdG9nZ2xlcjp2b2lkIDAsZGlzYWxsb3dVc2VySW5wdXQ6ITEsbWluRGF0ZTp2b2lkIDAsbWF4RGF0ZTp2b2lkIDAsZXhjbHVkZWRXZWVrZGF5czp2b2lkIDAsZXhjbHVkZWREYXRlczp2b2lkIDAsY3JlYXRlSGlkZGVuSW5wdXQ6ITEsaGlkZGVuSW5wdXROYW1lOiJkYXRlIixoaWRkZW5JbnB1dEZvcm1hdDoiJXQiLApvblNlbGVjdDohMSxvblZpZXdDaGFuZ2U6ITF9LGE9dGhpczthLm9wdGlvbnM9e307YS50YXJnZXQ9ZShoKTthLmluaXQ9ZnVuY3Rpb24oKXthLm9wdGlvbnM9ZS5leHRlbmQoe30sbCxnKTthLnRvZGF5PW5lYkRhdGVGbi5jbGVhclRpbWUobmV3IERhdGUpO2EudHJhbnNpdGlvbmluZz0hMTt2b2lkIDAhPT1hLm9wdGlvbnMuZGVmYXVsdERhdGU\/YS5zZWxlY3RlZERhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYS5vcHRpb25zLmRlZmF1bHREYXRlKSk6YS5vcHRpb25zLmxpbmtXaXRoSW5wdXQmJnZvaWQgMCE9PWEudGFyZ2V0LnZhbCgpJiYwIT09YS50YXJnZXQudmFsKCkmJihhLnNlbGVjdGVkRGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLnRhcmdldC52YWwoKSkpKTtpZih2b2lkIDA9PT1hLnNlbGVjdGVkRGF0ZXx8bnVsbD09PWEuc2VsZWN0ZWREYXRlKWEuc2VsZWN0ZWREYXRlPWEudG9kYXkuY2xvbmUoKTsKYS5lbGVtZW50PWUoJzxkaXYgY2xhc3M9Im5lYkNhbCAnK2Eub3B0aW9ucy50aGVtZSsnIiBzdHlsZT0iZGlzcGxheTogJysoYS5vcHRpb25zLmFsd2F5c1Nob3c\/ImJsb2NrIjoibm9uZSIpKyciPjxkaXYgY2xhc3M9ImNhbC13cmFwcGVyIj48ZGl2IGNsYXNzPSJjYWwtaGVhZGVyIj48ZGl2IGNsYXNzPSJjYWwtYXJyb3ctbGVmdCI+PC9kaXY+PGRpdiBjbGFzcz0iY2FsLWFycm93LXJpZ2h0Ij48L2Rpdj48ZGl2IGNsYXNzPSJjYWwtbGFiZWwgY2FsLWNsaWNrYWJsZSI+PC9kaXY+PC9kaXY+PGRpdiBjbGFzcz0iY2FsLWJvZHkiPjxkaXYgY2xhc3M9ImNhbC1pbm5lciI+PGRpdiBjbGFzcz0iY2FsLWNvbnRhaW5lciBhIj48L2Rpdj48ZGl2IGNsYXNzPSJjYWwtY29udGFpbmVyIGIiPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9ImNhbC1mb290ZXIiPjwvZGl2PjwvZGl2PjwvZGl2PicpO2Eub3B0aW9ucy5pbmplY3RJbnNpZGVUYXJnZXQ\/KGEuZWxlbWVudC5hZGRDbGFzcygiaW5saW5lIiksCmEuZWxlbWVudC5hcHBlbmRUbyhhLnRhcmdldCkpOihhLmVsZW1lbnQuYXBwZW5kVG8oZSgiYm9keSIpKSxhLnBvc2l0aW9uKCksZSh3aW5kb3cpLm9uKCJyZXNpemUiLGEucG9zaXRpb24pKTthLmN1cnJlbnRDb250YWluZXI9YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmEiKS5jc3MoInotaW5kZXgiLDk5OSk7YS50ZW1wQ29udGFpbmVyPWEuZWxlbWVudC5maW5kKCIuY2FsLWNvbnRhaW5lci5iIikuY3NzKCJ6LWluZGV4Iiw5OTgpO2EuaGVhZGVyPWEuZWxlbWVudC5maW5kKCIuY2FsLWhlYWRlciIpO2EubGFiZWw9YS5oZWFkZXIuZmluZCgiLmNhbC1sYWJlbCIpO2EuYXJyb3dMZWZ0PWEuaGVhZGVyLmZpbmQoIi5jYWwtYXJyb3ctbGVmdCIpO2EuYXJyb3dSaWdodD1hLmhlYWRlci5maW5kKCIuY2FsLWFycm93LXJpZ2h0Iik7YS5sYWJlbC5vbigiY2xpY2siLGEubGV2ZWxVcCk7YS5hcnJvd0xlZnQub24oImNsaWNrIixhLnNsaWRlTGVmdCk7YS5hcnJvd1JpZ2h0Lm9uKCJjbGljayIsCmEuc2xpZGVSaWdodCk7dm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJihhLm9wdGlvbnMubWluRGF0ZT1uZWJEYXRlRm4uY2xlYXJUaW1lKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhhLm9wdGlvbnMubWluRGF0ZSkpKTt2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmKGEub3B0aW9ucy5tYXhEYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUobmViRGF0ZUZuLnBhcnNlU3RyaW5nKGEub3B0aW9ucy5tYXhEYXRlKSkpO2lmKHZvaWQgMCE9PWEub3B0aW9ucy5leGNsdWRlZERhdGVzKXt2YXIgYj1bXTthLm9wdGlvbnMuZXhjbHVkZWREYXRlcy5lYWNoKGZ1bmN0aW9uKGMpe2IuaW5jbHVkZShhLmZvcm1hdChuZWJEYXRlRm4uY2xlYXJUaW1lKG5lYkRhdGVGbi5wYXJzZVN0cmluZyhjKSksIiV0IikpfSk7YS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXM9Yn1hLm9wdGlvbnMuY3JlYXRlSGlkZGVuSW5wdXQmJihhLmhpZGRlbklucHV0PShuZXcgRWxlbWVudCgiaW5wdXQiLHt0eXBlOiJoaWRkZW4iLApuYW1lOmEub3B0aW9ucy5oaWRkZW5JbnB1dE5hbWV9KSkuYXBwZW5kVG8oYS50YXJnZXQpKTshYS5vcHRpb25zLmRpc2FsbG93VXNlcklucHV0JiZhLm9wdGlvbnMubGlua1dpdGhJbnB1dCYmImlucHV0Ij09YS50YXJnZXQuYXR0cigidGFnIikmJmEudGFyZ2V0LmFkZEV2ZW50KCJrZXl1cCIsZnVuY3Rpb24oKXthLnNldERhdGUoYS50YXJnZXQuYXR0cigidmFsdWUiKSwhMSl9KTt2b2lkIDAhPT1hLm9wdGlvbnMudG9nZ2xlciYmKGEub3B0aW9ucy50b2dnbGVyPWUoYS5vcHRpb25zLnRvZ2dsZXIpKTsodm9pZCAwIT09YS5vcHRpb25zLnRvZ2dsZXI\/YS5vcHRpb25zLnRvZ2dsZXI6YS50YXJnZXQpLm9uKCJmb2N1cyIsYS5zaG93KS5vbigiY2xpY2siLGEuc2hvdyk7aWYoIWEub3B0aW9ucy5hbHdheXNTaG93KWUoZG9jdW1lbnQpLm9uKCJtb3VzZWRvd24iLGEub3V0c2lkZUNsaWNrKTsiSU5QVVQiPT1hLnRhcmdldC5wcm9wKCJ0YWdOYW1lIikmJihhLnRhcmdldC50cmlnZ2VyKCJrZXlkb3duIiwKYS5vbktleURvd24pLGEudGFyZ2V0LnRyaWdnZXIoImtleXVwIixhLm9uS2V5VXApLGEub3B0aW9ucy5kaXNhbGxvd1VzZXJJbnB1dCYmYS50YXJnZXQuYWRkRXZlbnQoImNvbnRleHRtZW51IiwkbGFtYmRhKCExKSkpO2Euc2VsZWN0ZWREYXRlPWEuY29ycmVjdERhdGUoYS5zZWxlY3RlZERhdGUpO2Eub3B0aW9ucy5wcmVmaWxsJiZhLnBpY2soKTthLnZpZXdEYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUoYS5zZWxlY3RlZERhdGUuY2xvbmUoKS5zZXREYXkoMSkpO2Eudmlldz1hLm9wdGlvbnMuZGVmYXVsdFZpZXc7YS5yZW5kZXIoKX07YS5yZW5kZXI9ZnVuY3Rpb24oKXthLmN1cnJlbnRDb250YWluZXIuZW1wdHkoKTtzd2l0Y2goYS52aWV3KXtjYXNlICJkZWNhZGUiOmEucmVuZGVyRGVjYWRlKCk7YnJlYWs7Y2FzZSAieWVhciI6YS5yZW5kZXJZZWFyKCk7YnJlYWs7ZGVmYXVsdDphLnJlbmRlck1vbnRoKCl9cmV0dXJuIGF9O2EucmVuZGVyTW9udGg9ZnVuY3Rpb24oKXthLnZpZXc9CiJtb250aCI7YS5jdXJyZW50Q29udGFpbmVyLmVtcHR5KCkuYWRkQ2xhc3MoImNhbC1tb250aCIpO2Eub3B0aW9ucy5waWNrYWJsZSYmYS5jdXJyZW50Q29udGFpbmVyLmFkZENsYXNzKCJjYWwtcGlja2FibGUiKTt2YXIgYj1lLm5lYkxhbmcsYz1hLnZpZXdEYXRlLmdldERheSgpLShhLm9wdGlvbnMuc3RhcnRNb25kYXk\/MTowKTstMT09YyYmKGM9Nik7YS5sYWJlbC5odG1sKGIubW9udGhOYW1lc1thLnZpZXdEYXRlLmdldE1vbnRoKCldKyIgIithLnZpZXdEYXRlLmZvcm1hdCgieXl5eSIpKTtmb3IodmFyIGQ9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lciksZj1hLm9wdGlvbnMuc3RhcnRNb25kYXk\/MTowO2Y8KGEub3B0aW9ucy5zdGFydE1vbmRheT84OjcpO2YrKyl7dmFyIGs9ZSgiPGRpdj48L2Rpdj4iKS5odG1sKGIuZGF5TmFtZXNTaG9ydFthLm9wdGlvbnMuc3RhcnRNb25kYXkmJjc9PWY\/MDpmXSkuYXBwZW5kVG8oZCk7CmsuaHRtbChrLmh0bWwoKSl9ZD1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKTtiPWEudmlld0RhdGUuY2xvbmUoKS5hZGQoIk0iLC0xKS5nZXRMYXN0RGF5T2ZNb250aENhbCgpO2ZvcihmPTA7ZjxjO2YrKylhLmluamVjdERheShkLGEudmlld0RhdGUuY2xvbmUoKS5hZGQoIk0iLC0xKS5zZXREYXkoYi0oYy1mKSsxKSwhMCk7Zm9yKGY9MTtmPD1hLnZpZXdEYXRlLmdldExhc3REYXlPZk1vbnRoQ2FsKCk7ZisrKWEuaW5qZWN0RGF5KGQsYS52aWV3RGF0ZS5jbG9uZSgpLnNldERheShmKSksNz09ZC5jaGlsZHJlbigpLmxlbmd0aCYmKGQ9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lcikpO2I9OC1kLmNoaWxkcmVuKCkubGVuZ3RoO2M9YS52aWV3RGF0ZS5jbG9uZSgpLmFkZCgiTSIsMSkuc2V0RGF5KDEpO2ZvcihmPTE7ZjxiO2YrKylhLmluamVjdERheShkLApjLmNsb25lKCkuc2V0RGF5KGYpLCEwKTtmb3IoYj1hLmN1cnJlbnRDb250YWluZXIuZmluZCgiLmNhbC1yb3ciKS5sZW5ndGg7Nz5iO2IrKylmb3IoZD1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSxrPTA7Nz5rO2srKylhLmluamVjdERheShkLGMuY2xvbmUoKS5zZXREYXkoZiksITApLGYrKzthLnJlbmRlckFmdGVyKCl9O2EuaW5qZWN0RGF5PWZ1bmN0aW9uKGIsYyxkKXtiPWUoIjxkaXY+PC9kaXY+IikuaHRtbChjLmdldERhdGUoKSkuYXBwZW5kVG8oYik7Yi5kYXRhKCJkYXRlIixjKTtkJiZiLmFkZENsYXNzKCJjYWwtb3V0c2lkZSIpO2lmKHZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiZhLm9wdGlvbnMubWluRGF0ZT5jfHx2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmYS5vcHRpb25zLm1heERhdGU8Y3x8dm9pZCAwIT09YS5vcHRpb25zLmV4Y2x1ZGVkV2Vla2RheXMmJmEub3B0aW9ucy5leGNsdWRlZFdlZWtkYXlzLmNvbnRhaW5zKGMuZm9ybWF0KCJFIikudG9JbnQoKSl8fAp2b2lkIDAhPT1hLm9wdGlvbnMuZXhjbHVkZWREYXRlcyYmYS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXMuY29udGFpbnMoYS5mb3JtYXQoYywiJXQiKSkpYi5hZGRDbGFzcygiY2FsLW5vbi1zZWxlY3RhYmxlIik7ZWxzZSBpZihhLm9wdGlvbnMucGlja2FibGUpYi5vbigiY2xpY2siLGEucGljayk7Yy5mb3JtYXQoImQiKT09YS50b2RheS5mb3JtYXQoImQiKSYmYi5hZGRDbGFzcygiY2FsLXRvZGF5Iik7ZHx8Yy5mb3JtYXQoImQiKSE9YS5zZWxlY3RlZERhdGUuZm9ybWF0KCJkIil8fGIuYWRkQ2xhc3MoImNhbC1zZWxlY3RlZCIpfTthLnJlbmRlclllYXI9ZnVuY3Rpb24oKXthLnZpZXc9InllYXIiO2EuY3VycmVudENvbnRhaW5lci5hZGRDbGFzcygiY2FsLXllYXItZGVjYWRlICIrKGEub3B0aW9ucy5wb3J0cmFpdD8iY2FsLXBvcnRyYWl0IjoiY2FsLWxhbmRzY2FwZSIpKTt2YXIgYj1lLm5lYkxhbmcubW9udGhOYW1lc1Nob3J0O2EubGFiZWwuaHRtbChhLnZpZXdEYXRlLmZvcm1hdCgieXl5eSIpKTsKZm9yKHZhciBjPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpLGQ9MTsxMz5kO2QrKyl7dmFyIGY9ZSgiPGRpdj48L2Rpdj4iKS5odG1sKGJbZC0xXSkuYXBwZW5kVG8oYyksaz1hLnZpZXdEYXRlLmNsb25lKCkuc2V0TW9uKGQtMSk7Zi5kYXRhKCJkYXRlIixrKTtpZih2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmYS5vcHRpb25zLm1pbkRhdGUuY2xvbmUoKS5zZXREYXkoMSk+a3x8dm9pZCAwIT09YS5vcHRpb25zLm1heERhdGUmJmEub3B0aW9ucy5tYXhEYXRlLmNsb25lKCkuc2V0RGF5KDEpPGspZi5hZGRDbGFzcygiY2FsLW5vbi1zZWxlY3RhYmxlIik7ZWxzZSBmLm9uKCJjbGljayIsYS5sZXZlbERvd24pO2QtMT09YS50b2RheS5nZXRNb250aCgpJiZhLnZpZXdEYXRlLmdldEZ1bGxZZWFyKCk9PWEudG9kYXkuZ2V0RnVsbFllYXIoKSYmZi5hZGRDbGFzcygiY2FsLXRvZGF5Iik7ZC0xPT1hLnNlbGVjdGVkRGF0ZS5nZXRNb250aCgpJiYKYS52aWV3RGF0ZS5nZXRGdWxsWWVhcigpPT1hLnNlbGVjdGVkRGF0ZS5nZXRGdWxsWWVhcigpJiZmLmFkZENsYXNzKCJjYWwtc2VsZWN0ZWQiKTtkJShhLm9wdGlvbnMucG9ydHJhaXQ\/Mzo0KXx8MTI9PWR8fChjPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoImNhbC1yb3ciKS5hcHBlbmRUbyhhLmN1cnJlbnRDb250YWluZXIpKX1hLnJlbmRlckFmdGVyKCl9O2EucmVuZGVyRGVjYWRlPWZ1bmN0aW9uKCl7YS5sYWJlbC5yZW1vdmVDbGFzcygiY2FsLWNsaWNrYWJsZSIpO2Eudmlldz0iZGVjYWRlIjthLmN1cnJlbnRDb250YWluZXIuYWRkQ2xhc3MoImNhbC15ZWFyLWRlY2FkZSAiKyhhLm9wdGlvbnMucG9ydHJhaXQ\/ImNhbC1wb3J0cmFpdCI6ImNhbC1sYW5kc2NhcGUiKSk7dmFyIGI7Zm9yKGI9cGFyc2VJbnQoYS52aWV3RGF0ZS5mb3JtYXQoInl5eXkiKSk7YiUxMjspYi0tO2EubGFiZWwuaHRtbChiKyIgJiMxNTA7ICIrKGIrMTEpKTtmb3IodmFyIGM9ZSgiPGRpdj48L2Rpdj4iKS5hZGRDbGFzcygiY2FsLXJvdyIpLmFwcGVuZFRvKGEuY3VycmVudENvbnRhaW5lciksCmQ9YjtkPGIrMTI7ZCsrKXt2YXIgZj1lKCI8ZGl2PjwvZGl2PiIpLmh0bWwoZCkuYXBwZW5kVG8oYyksaz1hLnZpZXdEYXRlLmNsb25lKCkuc2V0WWVhcihkKTtmLmRhdGEoImRhdGUiLGspO2lmKHZvaWQgMCE9PWEub3B0aW9ucy5taW5EYXRlJiZhLm9wdGlvbnMubWluRGF0ZS5nZXRGdWxsWWVhcigpPmR8fHZvaWQgMCE9PWEub3B0aW9ucy5tYXhEYXRlJiZhLm9wdGlvbnMubWF4RGF0ZS5nZXRGdWxsWWVhcigpPGQpZi5hZGRDbGFzcygiY2FsLW5vbi1zZWxlY3RhYmxlIik7ZWxzZSBmLm9uKCJjbGljayIsYS5sZXZlbERvd24pO2Q9PWEudG9kYXkuZ2V0RnVsbFllYXIoKSYmZi5hZGRDbGFzcygiY2FsLXRvZGF5Iik7ZD09YS5zZWxlY3RlZERhdGUuZ2V0RnVsbFllYXIoKSYmZi5hZGRDbGFzcygiY2FsLXNlbGVjdGVkIik7KGQrMSklKGEub3B0aW9ucy5wb3J0cmFpdD8zOjQpfHxkPT1iKzExfHwoYz1lKCI8ZGl2PjwvZGl2PiIpLmFkZENsYXNzKCJjYWwtcm93IikuYXBwZW5kVG8oYS5jdXJyZW50Q29udGFpbmVyKSl9YS5yZW5kZXJBZnRlcigpfTsKYS5yZW5kZXJBZnRlcj1mdW5jdGlvbigpe2Zvcih2YXIgYj1hLmN1cnJlbnRDb250YWluZXIuZmluZCgiLmNhbC1yb3ciKSxjPTA7YzxiLmxlbmd0aDtjKyspZShiW2NdKS5hZGRDbGFzcygiY2FsLXJvdyAiKyJhYmNkZWZnIi5zcGxpdCgiIilbY10rIiAiKyhjJTI\/ImNhbC1ldmVuIjoiY2FsLW9kZCIpKTtpZigiZnVuY3Rpb24iPT10eXBlb2YgYS5vcHRpb25zLm9uVmlld0NoYW5nZSlhLm9wdGlvbnMub25WaWV3Q2hhbmdlKGEudmlldyxhLnNlbGVjdGVkRGF0ZSxhLnZpZXdEYXRlKX07YS5zbGlkZUxlZnQ9ZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmcmJihhLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5zdG9wKCksYS50ZW1wQ29udGFpbmVyLmNzcyh7bGVmdDowfSkuc3RvcCgpLGEudHJhbnNpdGlvbmluZz0hMSk7YS5zd2l0Y2hDb250YWluZXJzKCk7c3dpdGNoKGEudmlldyl7Y2FzZSAibW9udGgiOmEudmlld0RhdGUuYWRkKCJNIiwtMSk7YnJlYWs7Y2FzZSAieWVhciI6YS52aWV3RGF0ZS5hZGQoInkiLAotMSk7YnJlYWs7Y2FzZSAiZGVjYWRlIjphLnZpZXdEYXRlLnNldEZ1bGxZZWFyKGEudmlld0RhdGUuZ2V0RnVsbFllYXIoKS0xMil9YS5yZW5kZXIoKTthLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmNzcyh7bGVmdDotYS5jdXJyZW50Q29udGFpbmVyLndpZHRoKCl9KS5hbmltYXRlKHtsZWZ0OjB9LGEub3B0aW9ucy5zbGlkZUR1cmF0aW9uKTthLnRlbXBDb250YWluZXIuY3NzKHtsZWZ0OjB9KS5hbmltYXRlKHtsZWZ0OmEudGVtcENvbnRhaW5lci53aWR0aCgpfSxhLm9wdGlvbnMuc2xpZGVEdXJhdGlvbixmdW5jdGlvbigpe2UodGhpcykuY3NzKHtsZWZ0OjB9KTthLnRyYW5zaXRpb25pbmc9ITF9KX07YS5zbGlkZVJpZ2h0PWZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nJiYoYS50ZW1wQ29udGFpbmVyLmNzcyh7bGVmdDowfSkuc3RvcCgpLGEudGVtcENvbnRhaW5lci5jc3Moe2xlZnQ6MH0pLnN0b3AoKSxhLnRyYW5zaXRpb25pbmc9ITEpO2Euc3dpdGNoQ29udGFpbmVycygpOwpzd2l0Y2goYS52aWV3KXtjYXNlICJtb250aCI6YS52aWV3RGF0ZS5hZGQoIk0iLDEpO2JyZWFrO2Nhc2UgInllYXIiOmEudmlld0RhdGUuYWRkKCJ5IiwxKTticmVhaztjYXNlICJkZWNhZGUiOmEudmlld0RhdGUuc2V0RnVsbFllYXIoYS52aWV3RGF0ZS5nZXRGdWxsWWVhcigpKzEyKX1hLnJlbmRlcigpO2EudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuY3NzKHtsZWZ0OmEuY3VycmVudENvbnRhaW5lci53aWR0aCgpfSkuYW5pbWF0ZSh7bGVmdDowfSxhLm9wdGlvbnMuc2xpZGVEdXJhdGlvbik7YS50ZW1wQ29udGFpbmVyLmNzcyh7bGVmdDowfSkuYW5pbWF0ZSh7bGVmdDotYS50ZW1wQ29udGFpbmVyLndpZHRoKCl9LGEub3B0aW9ucy5zbGlkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3Moe2xlZnQ6MH0pO2EudHJhbnNpdGlvbmluZz0hMX0pfTthLmxldmVsRG93bj1mdW5jdGlvbihiKXtpZighYS50cmFuc2l0aW9uaW5nKXthLnN3aXRjaENvbnRhaW5lcnMoKTsKYS52aWV3RGF0ZT1lKGIudGFyZ2V0KS5kYXRhKCJkYXRlIik7c3dpdGNoKGEudmlldyl7Y2FzZSAieWVhciI6YS5yZW5kZXJNb250aCgpO2JyZWFrO2Nhc2UgImRlY2FkZSI6YS5yZW5kZXJZZWFyKCl9YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5mYWRlSW4oYS5vcHRpb25zLmZhZGVEdXJhdGlvbixmdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZz0hMX0pO2EudGVtcENvbnRhaW5lci5mYWRlT3V0KGEub3B0aW9ucy5mYWRlRHVyYXRpb24pfX07YS5sZXZlbFVwPWZ1bmN0aW9uKCl7aWYoImRlY2FkZSIhPWEudmlldyYmIWEudHJhbnNpdGlvbmluZyl7YS5zd2l0Y2hDb250YWluZXJzKCk7c3dpdGNoKGEudmlldyl7Y2FzZSAibW9udGgiOmEucmVuZGVyWWVhcigpO2JyZWFrO2Nhc2UgInllYXIiOmEucmVuZGVyRGVjYWRlKCl9YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5mYWRlSW4oYS5vcHRpb25zLmZhZGVEdXJhdGlvbixmdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZz0KITF9KTthLnRlbXBDb250YWluZXIuZmFkZU91dChhLm9wdGlvbnMuZmFkZUR1cmF0aW9uKX19O2EuY2hhbmdlVmlldz1mdW5jdGlvbihiKXtpZighYS50cmFuc2l0aW9uaW5nJiZiIT1hLnZpZXcpe2Euc3dpdGNoQ29udGFpbmVycygpO3N3aXRjaChiKXtjYXNlICJtb250aCI6YS5yZW5kZXJNb250aCgpO2JyZWFrO2Nhc2UgInllYXIiOmEucmVuZGVyWWVhcigpO2JyZWFrO2Nhc2UgImRlY2FkZSI6YS5yZW5kZXJEZWNhZGUoKX1hLnRyYW5zaXRpb25pbmc9ITA7YS5jdXJyZW50Q29udGFpbmVyLmZhZGVJbihhLm9wdGlvbnMuZmFkZUR1cmF0aW9uLGZ1bmN0aW9uKCl7YS50cmFuc2l0aW9uaW5nPSExfSk7YS50ZW1wQ29udGFpbmVyLmZhZGVPdXQoYS5vcHRpb25zLmZhZGVEdXJhdGlvbil9fTthLnVwZGF0ZU1pbkRhdGU9ZnVuY3Rpb24oYil7aWYoIWEudHJhbnNpdGlvbmluZyYmKGI9bmViRGF0ZUZuLnBhcnNlU3RyaW5nKGIpLG51bGwhPT1iKSl7YS5vcHRpb25zLm1pbkRhdGU9bmViRGF0ZUZuLmNsZWFyVGltZShiKTsKYS5zd2l0Y2hDb250YWluZXJzKCk7c3dpdGNoKGEudmlldyl7Y2FzZSAibW9udGgiOmEucmVuZGVyTW9udGgoKTticmVhaztjYXNlICJ5ZWFyIjphLnJlbmRlclllYXIoKTticmVhaztjYXNlICJkZWNhZGUiOmEucmVuZGVyRGVjYWRlKCl9YS50cmFuc2l0aW9uaW5nPSEwO2EuY3VycmVudENvbnRhaW5lci5mYWRlSW4oYS5vcHRpb25zLmZhZGVEdXJhdGlvbixmdW5jdGlvbigpe2EudHJhbnNpdGlvbmluZz0hMX0pO2EudGVtcENvbnRhaW5lci5mYWRlT3V0KGEub3B0aW9ucy5mYWRlRHVyYXRpb24pfX07YS51cGRhdGVNYXhEYXRlPWZ1bmN0aW9uKGIpe2lmKCFhLnRyYW5zaXRpb25pbmcmJihiPW5lYkRhdGVGbi5wYXJzZVN0cmluZyhiKSxudWxsIT09Yikpe2Eub3B0aW9ucy5tYXhEYXRlPW5lYkRhdGVGbi5jbGVhclRpbWUoYik7YS5zd2l0Y2hDb250YWluZXJzKCk7c3dpdGNoKGEudmlldyl7Y2FzZSAibW9udGgiOmEucmVuZGVyTW9udGgoKTticmVhaztjYXNlICJ5ZWFyIjphLnJlbmRlclllYXIoKTsKYnJlYWs7Y2FzZSAiZGVjYWRlIjphLnJlbmRlckRlY2FkZSgpfWEudHJhbnNpdGlvbmluZz0hMDthLmN1cnJlbnRDb250YWluZXIuZmFkZUluKGEub3B0aW9ucy5mYWRlRHVyYXRpb24sZnVuY3Rpb24oKXthLnRyYW5zaXRpb25pbmc9ITF9KTthLnRlbXBDb250YWluZXIuZmFkZU91dChhLm9wdGlvbnMuZmFkZUR1cmF0aW9uKX19O2Euc3dpdGNoQ29udGFpbmVycz1mdW5jdGlvbigpe2EuY3VycmVudENvbnRhaW5lcj1hLmN1cnJlbnRDb250YWluZXIuaGFzQ2xhc3MoImEiKT9hLmVsZW1lbnQuZmluZCgiLmNhbC1jb250YWluZXIuYiIpOmEuZWxlbWVudC5maW5kKCIuY2FsLWNvbnRhaW5lci5hIik7YS50ZW1wQ29udGFpbmVyPWEudGVtcENvbnRhaW5lci5oYXNDbGFzcygiYSIpP2EuZWxlbWVudC5maW5kKCIuY2FsLWNvbnRhaW5lci5iIik6YS5lbGVtZW50LmZpbmQoIi5jYWwtY29udGFpbmVyLmEiKTthLmN1cnJlbnRDb250YWluZXIuZW1wdHkoKS5yZW1vdmVDbGFzcygiY2FsLW1vbnRoIGNhbC15ZWFyLWRlY2FkZSAiKwooYS5vcHRpb25zLnBvcnRyYWl0PyJjYWwtcG9ydHJhaXQiOiJjYWwtbGFuZHNjYXBlIikpLmNzcyh7b3BhY2l0eToxLGRpc3BsYXk6ImJsb2NrIiwiei1pbmRleCI6OTk5fSk7YS50ZW1wQ29udGFpbmVyLmNzcygiei1pbmRleCIsOTk4KTthLmxhYmVsLmFkZENsYXNzKCJjYWwtY2xpY2thYmxlIik7YS5hcnJvd0xlZnQuY3NzKCJ2aXNpYmlsaXR5IiwidmlzaWJsZSIpO2EuYXJyb3dSaWdodC5jc3MoInZpc2liaWxpdHkiLCJ2aXNpYmxlIil9O2EucG9zaXRpb249ZnVuY3Rpb24oKXt2YXIgYj1hLnRhcmdldC5nZXRDb29yZGluYXRlcygpO3N3aXRjaChhLm9wdGlvbnMuYWxpZ25YKXtjYXNlICJsZWZ0Ijp2YXIgYz1iLmxlZnQ7YnJlYWs7Y2FzZSAibWlkZGxlIjpjPWIubGVmdCtiLndpZHRoLzItYS5lbGVtZW50LndpZHRoKCkvMjticmVhaztkZWZhdWx0OmNhc2UgInJpZ2h0IjpjPWIubGVmdCtiLndpZHRofXN3aXRjaChhLm9wdGlvbnMuYWxpZ25ZKXtjYXNlICJib3R0b20iOmI9Yi50b3ArCmIuaGVpZ2h0O2JyZWFrO2Nhc2UgInRvcCI6Yj1iLnRvcC1hLmVsZW1lbnQuZ2V0SGVpZ2h0KCk7YnJlYWs7ZGVmYXVsdDpjYXNlICJjZWlsaW5nIjpiPWIudG9wfWMrPXBhcnNlSW50KGEub3B0aW9ucy5vZmZzZXRYKTtiKz1wYXJzZUludChhLm9wdGlvbnMub2Zmc2V0WSk7YS5lbGVtZW50LmNzcyh7dG9wOmIsbGVmdDpjfSl9O2Euc2hvdz1mdW5jdGlvbigpe2EudmlzaWJsZXx8YS5vcHRpb25zLmFsd2F5c1Nob3d8fChhLnZpc2libGU9ITAsYS5lbGVtZW50LmZhZGVJbihhLm9wdGlvbnMudG9nZ2xlRHVyYXRpb24pLGEucG9zaXRpb24oKSl9O2EuaGlkZT1mdW5jdGlvbigpe2EudmlzaWJsZSYmIWEub3B0aW9ucy5hbHdheXNTaG93JiYoYS52aXNpYmxlPSExLGEuZWxlbWVudC5mYWRlT3V0KGEub3B0aW9ucy50b2dnbGVEdXJhdGlvbikpfTthLnRvZ2dsZT1mdW5jdGlvbigpe2EudmlzaWJsZT9hLmhpZGUoKTphLnNob3coKX07YS5vdXRzaWRlQ2xpY2s9ZnVuY3Rpb24oYil7aWYoYS52aXNpYmxlKXt2YXIgYz0KYS5lbGVtZW50LmdldENvb3JkaW5hdGVzKCksZD1hLnRhcmdldC5nZXRDb29yZGluYXRlcygpOyhiLnBhZ2VYPGMubGVmdHx8Yi5wYWdlWD5jLmxlZnQrYy53aWR0aHx8Yi5wYWdlWTxjLnRvcHx8Yi5wYWdlWT5jLnRvcCtjLmhlaWdodCkmJihiLnBhZ2VYPGQubGVmdHx8Yi5wYWdlWD5kLmxlZnQrZC53aWR0aHx8Yi5wYWdlWTxkLnRvcHx8Yi5wYWdlWT5kLnRvcCtkLmhlaWdodCkmJmEuaGlkZSgpfX07YS5waWNrPWZ1bmN0aW9uKGIpe3ZvaWQgMCE9PWImJihhLnNlbGVjdGVkRGF0ZT1lKGIudGFyZ2V0KS5kYXRhKCJkYXRlIiksYS5lbGVtZW50LmZpbmQoIi5jYWwtc2VsZWN0ZWQiKS5yZW1vdmVDbGFzcygiY2FsLXNlbGVjdGVkIiksZShiLnRhcmdldCkuYWRkQ2xhc3MoImNhbC1zZWxlY3RlZCIpLGUoYi50YXJnZXQpLmhhc0NsYXNzKCJjYWwtb3V0c2lkZSIpP2Eub3B0aW9ucy5hbHdheXNTaG93PzA8YS5zZWxlY3RlZERhdGUuZGlmZihhLnZpZXdEYXRlKT9hLnNsaWRlTGVmdCgpOgphLnNsaWRlUmlnaHQoKTooYS52aWV3RGF0ZT1hLnNlbGVjdGVkRGF0ZS5jbG9uZSgpLnNldERheSgxKSxzZXRUaW1lb3V0KGEucmVuZGVyLDMwMCkpOnNldFRpbWVvdXQoYS5oaWRlLDE1MCkpO2I9YS5mb3JtYXQoYS5zZWxlY3RlZERhdGUpO2I9ZSgiPHRleHRhcmVhIC8+IikuaHRtbChiKS50ZXh0KCk7aWYoIWEub3B0aW9ucy5pbmplY3RJbnNpZGVUYXJnZXQpc3dpdGNoKGEudGFyZ2V0LnByb3AoInRhZ05hbWUiKS50b0xvd2VyQ2FzZSgpKXtjYXNlICJpbnB1dCI6YS50YXJnZXQudmFsKGIpO2JyZWFrO2RlZmF1bHQ6YS50YXJnZXQuaHRtbChiKX12b2lkIDAhPT1hLmhpZGRlbklucHV0JiZhLmhpZGRlbklucHV0LnNldCgidmFsdWUiLGEuZm9ybWF0KGEuc2VsZWN0ZWREYXRlLGEub3B0aW9ucy5oaWRkZW5JbnB1dEZvcm1hdCkpO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9wdGlvbnMub25TZWxlY3QpYS5vcHRpb25zLm9uU2VsZWN0KGEuc2VsZWN0ZWREYXRlKTtyZXR1cm4gYX07CmEuZm9ybWF0PWZ1bmN0aW9uKGIsYyl7dm9pZCAwPT09YyYmKGM9dGhpcy5vcHRpb25zLmZvcm1hdCk7aWYodm9pZCAwIT09YilyZXR1cm4gYz1jLnJlcGxhY2UoLyUoW2EteiVdKS9naSxmdW5jdGlvbihkLGYpe3N3aXRjaChmKXtjYXNlICJEIjpyZXR1cm4gYi5nZXQoImRhdGUiKTtjYXNlICJuIjpyZXR1cm4gYi5nZXQoIm1vIikrMTtjYXNlICJ0IjpyZXR1cm4gcGFyc2VJbnQoYi5nZXRUaW1lKCkvMUUzKX1yZXR1cm4iJSIrZn0pLGIuZm9ybWF0KGMpfTthLm9uS2V5RG93bj1mdW5jdGlvbihiKXtpZihhLm9wdGlvbnMua2V5TmF2aWdhdGlvbil7dmFyIGM9YS5zZWxlY3RlZERhdGUuY2xvbmUoKSxkPSEwLGY9ITE7c3dpdGNoKGIud2hpY2gpe2Nhc2UgMzc6Yy5hZGQoImQiLC0xKTtmPSEwO2Q9ITE7YnJlYWs7Y2FzZSAzOTpjLmFkZCgiZCIsMSk7Zj0hMDticmVhaztjYXNlIDM4OmMuYWRkKCJNIiwtMSk7Zj0hMDtkPSExO2JyZWFrO2Nhc2UgNDA6Yy5hZGQoIk0iLDEpO2Y9ITA7YnJlYWs7CmNhc2UgOTpzZXRUaW1lb3V0KGEuaGlkZSwxNTApfWYmJihjPWEuY29ycmVjdERhdGUoYyxkKSwwIT09YS5zZWxlY3RlZERhdGUuZGlmZihjKSYmYS5zZXREYXRlKGMpKX1pZihhLm9wdGlvbnMuZGlzYWxsb3dVc2VySW5wdXQpcmV0dXJuITF9O2Eub25LZXlVcD1mdW5jdGlvbigpey9eXGR7NH0tXGR7Mn0tXGR7Mn0kLy50ZXN0KGEudGFyZ2V0LnZhbCgpKSYmKGEuc2V0RGF0ZShuZWJEYXRlRm4ucGFyc2VTdHJpbmcoYS50YXJnZXQudmFsKCkpKSxhLnRhcmdldC5yZW1vdmVDbGFzcygiaW52YWxpZElucHV0IHRvb2x0aXAiKS5yZW1vdmVBdHRyKCJ0aXRsZSIpKTsvXlxkezJ9LS8udGVzdChhLnRhcmdldC52YWwoKSl8fC9eXGR7NH0tKDFbMy05XXwoWzItOV1bMC05XSkpLy50ZXN0KGEudGFyZ2V0LnZhbCgpKT9hLnRhcmdldC5hZGRDbGFzcygiaW52YWxpZElucHV0IikuYXR0cigidGl0bGUiLGUubmViTGFuZy5pbnZhbGlkRGF0ZUZvcm1hdCkudG9vbHRpcCh7dG9vbHRpcENsYXNzOiJhbGJ1bV90b29sdGlwIiwKcG9zaXRpb246e215OiJjZW50ZXIgdG9wKzMwIixhdDoiIn0sc2hvdzp7ZWZmZWN0OiJmYWRlSW4iLGR1cmF0aW9uOjUwMH0sY2xvc2U6ZnVuY3Rpb24oKXtlKHRoaXMpLnJlbW92ZSgpfX0pOmEudGFyZ2V0LnJlbW92ZUNsYXNzKCJpbnZhbGlkSW5wdXQgdG9vbHRpcCIpLnJlbW92ZUF0dHIoInRpdGxlIil9O2EuY29ycmVjdERhdGU9ZnVuY3Rpb24oYixjKXt2b2lkIDA9PT1jJiYoYz0hMCk7dm9pZCAwIT09YS5vcHRpb25zLm1pbkRhdGUmJjA8Yi5kaWZmKGEub3B0aW9ucy5taW5EYXRlKT9iPWEub3B0aW9ucy5taW5EYXRlLmNsb25lKCk6dm9pZCAwIT09YS5vcHRpb25zLm1heERhdGUmJjA+Yi5kaWZmKGEub3B0aW9ucy5tYXhEYXRlKSYmKGI9YS5vcHRpb25zLm1heERhdGUuY2xvbmUoKSk7Zm9yKHZhciBkPTA7dm9pZCAwIT09YS5vcHRpb25zLmV4Y2x1ZGVkV2Vla2RheXMmJmEub3B0aW9ucy5leGNsdWRlZFdlZWtkYXlzLmNvbnRhaW5zKGIuZm9ybWF0KCJFIikudG9JbnQoKSl8fAp2b2lkIDAhPT1hLm9wdGlvbnMubWluRGF0ZSYmMDxiLmRpZmYoYS5vcHRpb25zLm1pbkRhdGUpfHx2b2lkIDAhPT1hLm9wdGlvbnMubWF4RGF0ZSYmMD5iLmRpZmYoYS5vcHRpb25zLm1heERhdGUpfHx2b2lkIDAhPT1hLm9wdGlvbnMuZXhjbHVkZWREYXRlcyYmYS5vcHRpb25zLmV4Y2x1ZGVkRGF0ZXMuY29udGFpbnMoYS5mb3JtYXQoYiwiJXQiKSk7KXtpZigzMT09ZCljPSFjO2Vsc2UgaWYoNjI9PWQpe2I9YS5vcHRpb25zLm1pbkRhdGUuY2xvbmUoKTticmVha31jP2IuYWRkKCJkIiwxKTpiLmFkZCgiZCIsLTEpO2QrK31yZXR1cm4gYn07YS5zZXREYXRlPWZ1bmN0aW9uKGIsYyl7dm9pZCAwPT09YyYmKGM9ITApO2I9bmViRGF0ZUZuLmNsZWFyVGltZSgiZGF0ZSI9PXR5cGVvZiBiP2I6bmViRGF0ZUZuLnBhcnNlU3RyaW5nKGIpKTtudWxsIT09YiYmKGEuc2VsZWN0ZWREYXRlPWEuY29ycmVjdERhdGUoYiksYS52aWV3RGF0ZT1hLnNlbGVjdGVkRGF0ZS5jbG9uZSgpLnNldERheSgxKSwKYS5yZW5kZXIoKSxjJiZhLnBpY2soKSk7cmV0dXJuIGF9O2EuZ2V0RGF0ZT1mdW5jdGlvbigpe3JldHVybiBhLnNlbGVjdGVkRGF0ZX07YS5pbml0KCl9O2UuZm4ubmViQ2FsPWZ1bmN0aW9uKGgsZyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2lmKHZvaWQgMD09PWUodGhpcykuZGF0YSgibmViQ2FsIikpe2lmKCJ1bmRlZmluZWQiPT10eXBlb2YgaHx8Im9iamVjdCI9PXR5cGVvZiBoKXt2YXIgbD1uZXcgZS5uZWJDYWwodGhpcyxoKTtlKHRoaXMpLmRhdGEoIm5lYkNhbCIsbCl9fWVsc2Ugc3dpdGNoKGgpe2Nhc2UgImNoYW5nZVZpZXciOmlmKCJ1bmRlZmluZWQiPT10eXBlb2YgZylicmVhaztlKHRoaXMpLmRhdGEoIm5lYkNhbCIpLmNoYW5nZVZpZXcoZyk7YnJlYWs7Y2FzZSAibWluRGF0ZSI6aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBnKWJyZWFrO2UodGhpcykuZGF0YSgibmViQ2FsIikudXBkYXRlTWluRGF0ZShnKTticmVhaztjYXNlICJtYXhEYXRlIjppZigidW5kZWZpbmVkIj09CnR5cGVvZiBnKWJyZWFrO2UodGhpcykuZGF0YSgibmViQ2FsIikudXBkYXRlTWF4RGF0ZShnKTticmVhaztjYXNlICJzZXREYXRlIjppZigidW5kZWZpbmVkIj09dHlwZW9mIGcpYnJlYWs7ZSh0aGlzKS5kYXRhKCJuZWJDYWwiKS5zZXREYXRlKGcpO2JyZWFrO2Nhc2UgInJlcG9zaXRpb24iOmUodGhpcykuZGF0YSgibmViQ2FsIikucG9zaXRpb24oKX19KX07ZS5mbi5nZXRDb29yZGluYXRlcz1mdW5jdGlvbihoKXtoPWUodGhpcykub2Zmc2V0KCk7dmFyIGc9ZSh0aGlzKS53aWR0aCgpLGw9ZSh0aGlzKS5oZWlnaHQoKSxhPWUod2luZG93KS53aWR0aCgpLWgubGVmdC1nLGI9ZSh3aW5kb3cpLmhlaWdodCgpLWgudG9wLWw7cmV0dXJue3RvcDpoLnRvcCxsZWZ0OmgubGVmdCx3aWR0aDpnLGhlaWdodDpsLHJpZ2h0OmEsYm90dG9tOmJ9fX0pKGpRdWVyeSk7Ci8qKiAvbS9qcy92dWUvdnVlLm1pbi5qcyAqKi8KLyohDQogKiBWdWUuanMgdjIuNi4xMQ0KICogKGMpIDIwMTQtMjAxOSBFdmFuIFlvdQ0KICogUmVsZWFzZWQgdW5kZXIgdGhlIE1JVCBMaWNlbnNlLg0KICovDQohZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXQoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZSh0KTooZT1lfHxzZWxmKS5WdWU9dCgpfSh0aGlzLGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPU9iamVjdC5mcmVlemUoe30pO2Z1bmN0aW9uIHQoZSl7cmV0dXJuIG51bGw9PWV9ZnVuY3Rpb24gbihlKXtyZXR1cm4gbnVsbCE9ZX1mdW5jdGlvbiByKGUpe3JldHVybiEwPT09ZX1mdW5jdGlvbiBpKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlfHwic3ltYm9sIj09dHlwZW9mIGV8fCJib29sZWFuIj09dHlwZW9mIGV9ZnVuY3Rpb24gbyhlKXtyZXR1cm4gbnVsbCE9PWUmJiJvYmplY3QiPT10eXBlb2YgZX12YXIgYT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2Z1bmN0aW9uIHMoZSl7cmV0dXJuIltvYmplY3QgT2JqZWN0XSI9PT1hLmNhbGwoZSl9ZnVuY3Rpb24gYyhlKXt2YXIgdD1wYXJzZUZsb2F0KFN0cmluZyhlKSk7cmV0dXJuIHQ+PTAmJk1hdGguZmxvb3IodCk9PT10JiZpc0Zpbml0ZShlKX1mdW5jdGlvbiB1KGUpe3JldHVybiBuKGUpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS50aGVuJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5jYXRjaH1mdW5jdGlvbiBsKGUpe3JldHVybiBudWxsPT1lPyIiOkFycmF5LmlzQXJyYXkoZSl8fHMoZSkmJmUudG9TdHJpbmc9PT1hP0pTT04uc3RyaW5naWZ5KGUsbnVsbCwyKTpTdHJpbmcoZSl9ZnVuY3Rpb24gZihlKXt2YXIgdD1wYXJzZUZsb2F0KGUpO3JldHVybiBpc05hTih0KT9lOnR9ZnVuY3Rpb24gcChlLHQpe2Zvcih2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpLHI9ZS5zcGxpdCgiLCIpLGk9MDtpPHIubGVuZ3RoO2krKyluW3JbaV1dPSEwO3JldHVybiB0P2Z1bmN0aW9uKGUpe3JldHVybiBuW2UudG9Mb3dlckNhc2UoKV19OmZ1bmN0aW9uKGUpe3JldHVybiBuW2VdfX12YXIgZD1wKCJzbG90LGNvbXBvbmVudCIsITApLHY9cCgia2V5LHJlZixzbG90LHNsb3Qtc2NvcGUsaXMiKTtmdW5jdGlvbiBoKGUsdCl7aWYoZS5sZW5ndGgpe3ZhciBuPWUuaW5kZXhPZih0KTtpZihuPi0xKXJldHVybiBlLnNwbGljZShuLDEpfX12YXIgbT1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O2Z1bmN0aW9uIHkoZSx0KXtyZXR1cm4gbS5jYWxsKGUsdCl9ZnVuY3Rpb24gZyhlKXt2YXIgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gdFtuXXx8KHRbbl09ZShuKSl9fXZhciBfPS8tKFx3KS9nLGI9ZyhmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKF8sZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD90LnRvVXBwZXJDYXNlKCk6IiJ9KX0pLCQ9ZyhmdW5jdGlvbihlKXtyZXR1cm4gZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpfSksdz0vXEIoW0EtWl0pL2csQz1nKGZ1bmN0aW9uKGUpe3JldHVybiBlLnJlcGxhY2UodywiLSQxIikudG9Mb3dlckNhc2UoKX0pO3ZhciB4PUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kP2Z1bmN0aW9uKGUsdCl7cmV0dXJuIGUuYmluZCh0KX06ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBuKG4pe3ZhciByPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIHI\/cj4xP2UuYXBwbHkodCxhcmd1bWVudHMpOmUuY2FsbCh0LG4pOmUuY2FsbCh0KX1yZXR1cm4gbi5fbGVuZ3RoPWUubGVuZ3RoLG59O2Z1bmN0aW9uIGsoZSx0KXt0PXR8fDA7Zm9yKHZhciBuPWUubGVuZ3RoLXQscj1uZXcgQXJyYXkobik7bi0tOylyW25dPWVbbit0XTtyZXR1cm4gcn1mdW5jdGlvbiBBKGUsdCl7Zm9yKHZhciBuIGluIHQpZVtuXT10W25dO3JldHVybiBlfWZ1bmN0aW9uIE8oZSl7Zm9yKHZhciB0PXt9LG49MDtuPGUubGVuZ3RoO24rKyllW25dJiZBKHQsZVtuXSk7cmV0dXJuIHR9ZnVuY3Rpb24gUyhlLHQsbil7fXZhciBUPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4hMX0sRT1mdW5jdGlvbihlKXtyZXR1cm4gZX07ZnVuY3Rpb24gTihlLHQpe2lmKGU9PT10KXJldHVybiEwO3ZhciBuPW8oZSkscj1vKHQpO2lmKCFufHwhcilyZXR1cm4hbiYmIXImJlN0cmluZyhlKT09PVN0cmluZyh0KTt0cnl7dmFyIGk9QXJyYXkuaXNBcnJheShlKSxhPUFycmF5LmlzQXJyYXkodCk7aWYoaSYmYSlyZXR1cm4gZS5sZW5ndGg9PT10Lmxlbmd0aCYmZS5ldmVyeShmdW5jdGlvbihlLG4pe3JldHVybiBOKGUsdFtuXSl9KTtpZihlIGluc3RhbmNlb2YgRGF0ZSYmdCBpbnN0YW5jZW9mIERhdGUpcmV0dXJuIGUuZ2V0VGltZSgpPT09dC5nZXRUaW1lKCk7aWYoaXx8YSlyZXR1cm4hMTt2YXIgcz1PYmplY3Qua2V5cyhlKSxjPU9iamVjdC5rZXlzKHQpO3JldHVybiBzLmxlbmd0aD09PWMubGVuZ3RoJiZzLmV2ZXJ5KGZ1bmN0aW9uKG4pe3JldHVybiBOKGVbbl0sdFtuXSl9KX1jYXRjaChlKXtyZXR1cm4hMX19ZnVuY3Rpb24gaihlLHQpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWlmKE4oZVtuXSx0KSlyZXR1cm4gbjtyZXR1cm4tMX1mdW5jdGlvbiBEKGUpe3ZhciB0PSExO3JldHVybiBmdW5jdGlvbigpe3R8fCh0PSEwLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpKX19dmFyIEw9ImRhdGEtc2VydmVyLXJlbmRlcmVkIixNPVsiY29tcG9uZW50IiwiZGlyZWN0aXZlIiwiZmlsdGVyIl0sST1bImJlZm9yZUNyZWF0ZSIsImNyZWF0ZWQiLCJiZWZvcmVNb3VudCIsIm1vdW50ZWQiLCJiZWZvcmVVcGRhdGUiLCJ1cGRhdGVkIiwiYmVmb3JlRGVzdHJveSIsImRlc3Ryb3llZCIsImFjdGl2YXRlZCIsImRlYWN0aXZhdGVkIiwiZXJyb3JDYXB0dXJlZCIsInNlcnZlclByZWZldGNoIl0sRj17b3B0aW9uTWVyZ2VTdHJhdGVnaWVzOk9iamVjdC5jcmVhdGUobnVsbCksc2lsZW50OiExLHByb2R1Y3Rpb25UaXA6ITEsZGV2dG9vbHM6ITEscGVyZm9ybWFuY2U6ITEsZXJyb3JIYW5kbGVyOm51bGwsd2FybkhhbmRsZXI6bnVsbCxpZ25vcmVkRWxlbWVudHM6W10sa2V5Q29kZXM6T2JqZWN0LmNyZWF0ZShudWxsKSxpc1Jlc2VydmVkVGFnOlQsaXNSZXNlcnZlZEF0dHI6VCxpc1Vua25vd25FbGVtZW50OlQsZ2V0VGFnTmFtZXNwYWNlOlMscGFyc2VQbGF0Zm9ybVRhZ05hbWU6RSxtdXN0VXNlUHJvcDpULGFzeW5jOiEwLF9saWZlY3ljbGVIb29rczpJfSxQPS9hLXpBLVpcdTAwQjdcdTAwQzAtXHUwMEQ2XHUwMEQ4LVx1MDBGNlx1MDBGOC1cdTAzN0RcdTAzN0YtXHUxRkZGXHUyMDBDLVx1MjAwRFx1MjAzRi1cdTIwNDBcdTIwNzAtXHUyMThGXHUyQzAwLVx1MkZFRlx1MzAwMS1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZGRC87ZnVuY3Rpb24gUihlLHQsbixyKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHt2YWx1ZTpuLGVudW1lcmFibGU6ISFyLHdyaXRhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pfXZhciBIPW5ldyBSZWdFeHAoIlteIitQLnNvdXJjZSsiLiRfXFxkXSIpO3ZhciBCLFU9Il9fcHJvdG9fXyJpbnt9LHo9InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3csVj0idW5kZWZpbmVkIiE9dHlwZW9mIFdYRW52aXJvbm1lbnQmJiEhV1hFbnZpcm9ubWVudC5wbGF0Zm9ybSxLPVYmJldYRW52aXJvbm1lbnQucGxhdGZvcm0udG9Mb3dlckNhc2UoKSxKPXomJndpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LnRvTG93ZXJDYXNlKCkscT1KJiYvbXNpZXx0cmlkZW50Ly50ZXN0KEopLFc9SiYmSi5pbmRleE9mKCJtc2llIDkuMCIpPjAsWj1KJiZKLmluZGV4T2YoImVkZ2UvIik+MCxHPShKJiZKLmluZGV4T2YoImFuZHJvaWQiKSxKJiYvaXBob25lfGlwYWR8aXBvZHxpb3MvLnRlc3QoSil8fCJpb3MiPT09SyksWD0oSiYmL2Nocm9tZVwvXGQrLy50ZXN0KEopLEomJi9waGFudG9tanMvLnRlc3QoSiksSiYmSi5tYXRjaCgvZmlyZWZveFwvKFxkKykvKSksWT17fS53YXRjaCxRPSExO2lmKHopdHJ5e3ZhciBlZT17fTtPYmplY3QuZGVmaW5lUHJvcGVydHkoZWUsInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtRPSEwfX0pLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0LXBhc3NpdmUiLG51bGwsZWUpfWNhdGNoKGUpe312YXIgdGU9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwPT09QiYmKEI9IXomJiFWJiYidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbCYmKGdsb2JhbC5wcm9jZXNzJiYic2VydmVyIj09PWdsb2JhbC5wcm9jZXNzLmVudi5WVUVfRU5WKSksQn0sbmU9eiYmd2luZG93Ll9fVlVFX0RFVlRPT0xTX0dMT0JBTF9IT09LX187ZnVuY3Rpb24gcmUoZSl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUmJi9uYXRpdmUgY29kZS8udGVzdChlLnRvU3RyaW5nKCkpfXZhciBpZSxvZT0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmcmUoU3ltYm9sKSYmInVuZGVmaW5lZCIhPXR5cGVvZiBSZWZsZWN0JiZyZShSZWZsZWN0Lm93bktleXMpO2llPSJ1bmRlZmluZWQiIT10eXBlb2YgU2V0JiZyZShTZXQpP1NldDpmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXt0aGlzLnNldD1PYmplY3QuY3JlYXRlKG51bGwpfXJldHVybiBlLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24oZSl7cmV0dXJuITA9PT10aGlzLnNldFtlXX0sZS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKGUpe3RoaXMuc2V0W2VdPSEwfSxlLnByb3RvdHlwZS5jbGVhcj1mdW5jdGlvbigpe3RoaXMuc2V0PU9iamVjdC5jcmVhdGUobnVsbCl9LGV9KCk7dmFyIGFlPVMsc2U9MCxjZT1mdW5jdGlvbigpe3RoaXMuaWQ9c2UrKyx0aGlzLnN1YnM9W119O2NlLnByb3RvdHlwZS5hZGRTdWI9ZnVuY3Rpb24oZSl7dGhpcy5zdWJzLnB1c2goZSl9LGNlLnByb3RvdHlwZS5yZW1vdmVTdWI9ZnVuY3Rpb24oZSl7aCh0aGlzLnN1YnMsZSl9LGNlLnByb3RvdHlwZS5kZXBlbmQ9ZnVuY3Rpb24oKXtjZS50YXJnZXQmJmNlLnRhcmdldC5hZGREZXAodGhpcyl9LGNlLnByb3RvdHlwZS5ub3RpZnk9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5zdWJzLnNsaWNlKCksdD0wLG49ZS5sZW5ndGg7dDxuO3QrKyllW3RdLnVwZGF0ZSgpfSxjZS50YXJnZXQ9bnVsbDt2YXIgdWU9W107ZnVuY3Rpb24gbGUoZSl7dWUucHVzaChlKSxjZS50YXJnZXQ9ZX1mdW5jdGlvbiBmZSgpe3VlLnBvcCgpLGNlLnRhcmdldD11ZVt1ZS5sZW5ndGgtMV19dmFyIHBlPWZ1bmN0aW9uKGUsdCxuLHIsaSxvLGEscyl7dGhpcy50YWc9ZSx0aGlzLmRhdGE9dCx0aGlzLmNoaWxkcmVuPW4sdGhpcy50ZXh0PXIsdGhpcy5lbG09aSx0aGlzLm5zPXZvaWQgMCx0aGlzLmNvbnRleHQ9byx0aGlzLmZuQ29udGV4dD12b2lkIDAsdGhpcy5mbk9wdGlvbnM9dm9pZCAwLHRoaXMuZm5TY29wZUlkPXZvaWQgMCx0aGlzLmtleT10JiZ0LmtleSx0aGlzLmNvbXBvbmVudE9wdGlvbnM9YSx0aGlzLmNvbXBvbmVudEluc3RhbmNlPXZvaWQgMCx0aGlzLnBhcmVudD12b2lkIDAsdGhpcy5yYXc9ITEsdGhpcy5pc1N0YXRpYz0hMSx0aGlzLmlzUm9vdEluc2VydD0hMCx0aGlzLmlzQ29tbWVudD0hMSx0aGlzLmlzQ2xvbmVkPSExLHRoaXMuaXNPbmNlPSExLHRoaXMuYXN5bmNGYWN0b3J5PXMsdGhpcy5hc3luY01ldGE9dm9pZCAwLHRoaXMuaXNBc3luY1BsYWNlaG9sZGVyPSExfSxkZT17Y2hpbGQ6e2NvbmZpZ3VyYWJsZTohMH19O2RlLmNoaWxkLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNvbXBvbmVudEluc3RhbmNlfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhwZS5wcm90b3R5cGUsZGUpO3ZhciB2ZT1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT0iIik7dmFyIHQ9bmV3IHBlO3JldHVybiB0LnRleHQ9ZSx0LmlzQ29tbWVudD0hMCx0fTtmdW5jdGlvbiBoZShlKXtyZXR1cm4gbmV3IHBlKHZvaWQgMCx2b2lkIDAsdm9pZCAwLFN0cmluZyhlKSl9ZnVuY3Rpb24gbWUoZSl7dmFyIHQ9bmV3IHBlKGUudGFnLGUuZGF0YSxlLmNoaWxkcmVuJiZlLmNoaWxkcmVuLnNsaWNlKCksZS50ZXh0LGUuZWxtLGUuY29udGV4dCxlLmNvbXBvbmVudE9wdGlvbnMsZS5hc3luY0ZhY3RvcnkpO3JldHVybiB0Lm5zPWUubnMsdC5pc1N0YXRpYz1lLmlzU3RhdGljLHQua2V5PWUua2V5LHQuaXNDb21tZW50PWUuaXNDb21tZW50LHQuZm5Db250ZXh0PWUuZm5Db250ZXh0LHQuZm5PcHRpb25zPWUuZm5PcHRpb25zLHQuZm5TY29wZUlkPWUuZm5TY29wZUlkLHQuYXN5bmNNZXRhPWUuYXN5bmNNZXRhLHQuaXNDbG9uZWQ9ITAsdH12YXIgeWU9QXJyYXkucHJvdG90eXBlLGdlPU9iamVjdC5jcmVhdGUoeWUpO1sicHVzaCIsInBvcCIsInNoaWZ0IiwidW5zaGlmdCIsInNwbGljZSIsInNvcnQiLCJyZXZlcnNlIl0uZm9yRWFjaChmdW5jdGlvbihlKXt2YXIgdD15ZVtlXTtSKGdlLGUsZnVuY3Rpb24oKXtmb3IodmFyIG49W10scj1hcmd1bWVudHMubGVuZ3RoO3ItLTspbltyXT1hcmd1bWVudHNbcl07dmFyIGksbz10LmFwcGx5KHRoaXMsbiksYT10aGlzLl9fb2JfXztzd2l0Y2goZSl7Y2FzZSJwdXNoIjpjYXNlInVuc2hpZnQiOmk9bjticmVhaztjYXNlInNwbGljZSI6aT1uLnNsaWNlKDIpfXJldHVybiBpJiZhLm9ic2VydmVBcnJheShpKSxhLmRlcC5ub3RpZnkoKSxvfSl9KTt2YXIgX2U9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZ2UpLGJlPSEwO2Z1bmN0aW9uICRlKGUpe2JlPWV9dmFyIHdlPWZ1bmN0aW9uKGUpe3ZhciB0O3RoaXMudmFsdWU9ZSx0aGlzLmRlcD1uZXcgY2UsdGhpcy52bUNvdW50PTAsUihlLCJfX29iX18iLHRoaXMpLEFycmF5LmlzQXJyYXkoZSk\/KFU\/KHQ9Z2UsZS5fX3Byb3RvX189dCk6ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj0wLGk9bi5sZW5ndGg7cjxpO3IrKyl7dmFyIG89bltyXTtSKGUsbyx0W29dKX19KGUsZ2UsX2UpLHRoaXMub2JzZXJ2ZUFycmF5KGUpKTp0aGlzLndhbGsoZSl9O2Z1bmN0aW9uIENlKGUsdCl7dmFyIG47aWYobyhlKSYmIShlIGluc3RhbmNlb2YgcGUpKXJldHVybiB5KGUsIl9fb2JfXyIpJiZlLl9fb2JfXyBpbnN0YW5jZW9mIHdlP249ZS5fX29iX186YmUmJiF0ZSgpJiYoQXJyYXkuaXNBcnJheShlKXx8cyhlKSkmJk9iamVjdC5pc0V4dGVuc2libGUoZSkmJiFlLl9pc1Z1ZSYmKG49bmV3IHdlKGUpKSx0JiZuJiZuLnZtQ291bnQrKyxufWZ1bmN0aW9uIHhlKGUsdCxuLHIsaSl7dmFyIG89bmV3IGNlLGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLHQpO2lmKCFhfHwhMSE9PWEuY29uZmlndXJhYmxlKXt2YXIgcz1hJiZhLmdldCxjPWEmJmEuc2V0O3MmJiFjfHwyIT09YXJndW1lbnRzLmxlbmd0aHx8KG49ZVt0XSk7dmFyIHU9IWkmJkNlKG4pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3ZhciB0PXM\/cy5jYWxsKGUpOm47cmV0dXJuIGNlLnRhcmdldCYmKG8uZGVwZW5kKCksdSYmKHUuZGVwLmRlcGVuZCgpLEFycmF5LmlzQXJyYXkodCkmJmZ1bmN0aW9uIGUodCl7Zm9yKHZhciBuPXZvaWQgMCxyPTAsaT10Lmxlbmd0aDtyPGk7cisrKShuPXRbcl0pJiZuLl9fb2JfXyYmbi5fX29iX18uZGVwLmRlcGVuZCgpLEFycmF5LmlzQXJyYXkobikmJmUobil9KHQpKSksdH0sc2V0OmZ1bmN0aW9uKHQpe3ZhciByPXM\/cy5jYWxsKGUpOm47dD09PXJ8fHQhPXQmJnIhPXJ8fHMmJiFjfHwoYz9jLmNhbGwoZSx0KTpuPXQsdT0haSYmQ2UodCksby5ub3RpZnkoKSl9fSl9fWZ1bmN0aW9uIGtlKGUsdCxuKXtpZihBcnJheS5pc0FycmF5KGUpJiZjKHQpKXJldHVybiBlLmxlbmd0aD1NYXRoLm1heChlLmxlbmd0aCx0KSxlLnNwbGljZSh0LDEsbiksbjtpZih0IGluIGUmJiEodCBpbiBPYmplY3QucHJvdG90eXBlKSlyZXR1cm4gZVt0XT1uLG47dmFyIHI9ZS5fX29iX187cmV0dXJuIGUuX2lzVnVlfHxyJiZyLnZtQ291bnQ\/bjpyPyh4ZShyLnZhbHVlLHQsbiksci5kZXAubm90aWZ5KCksbik6KGVbdF09bixuKX1mdW5jdGlvbiBBZShlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkmJmModCkpZS5zcGxpY2UodCwxKTtlbHNle3ZhciBuPWUuX19vYl9fO2UuX2lzVnVlfHxuJiZuLnZtQ291bnR8fHkoZSx0KSYmKGRlbGV0ZSBlW3RdLG4mJm4uZGVwLm5vdGlmeSgpKX19d2UucHJvdG90eXBlLndhbGs9ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PU9iamVjdC5rZXlzKGUpLG49MDtuPHQubGVuZ3RoO24rKyl4ZShlLHRbbl0pfSx3ZS5wcm90b3R5cGUub2JzZXJ2ZUFycmF5PWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49ZS5sZW5ndGg7dDxuO3QrKylDZShlW3RdKX07dmFyIE9lPUYub3B0aW9uTWVyZ2VTdHJhdGVnaWVzO2Z1bmN0aW9uIFNlKGUsdCl7aWYoIXQpcmV0dXJuIGU7Zm9yKHZhciBuLHIsaSxvPW9lP1JlZmxlY3Qub3duS2V5cyh0KTpPYmplY3Qua2V5cyh0KSxhPTA7YTxvLmxlbmd0aDthKyspIl9fb2JfXyIhPT0obj1vW2FdKSYmKHI9ZVtuXSxpPXRbbl0seShlLG4pP3IhPT1pJiZzKHIpJiZzKGkpJiZTZShyLGkpOmtlKGUsbixpKSk7cmV0dXJuIGV9ZnVuY3Rpb24gVGUoZSx0LG4pe3JldHVybiBuP2Z1bmN0aW9uKCl7dmFyIHI9ImZ1bmN0aW9uIj09dHlwZW9mIHQ\/dC5jYWxsKG4sbik6dCxpPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2UuY2FsbChuLG4pOmU7cmV0dXJuIHI\/U2UocixpKTppfTp0P2U\/ZnVuY3Rpb24oKXtyZXR1cm4gU2UoImZ1bmN0aW9uIj09dHlwZW9mIHQ\/dC5jYWxsKHRoaXMsdGhpcyk6dCwiZnVuY3Rpb24iPT10eXBlb2YgZT9lLmNhbGwodGhpcyx0aGlzKTplKX06dDplfWZ1bmN0aW9uIEVlKGUsdCl7dmFyIG49dD9lP2UuY29uY2F0KHQpOkFycmF5LmlzQXJyYXkodCk\/dDpbdF06ZTtyZXR1cm4gbj9mdW5jdGlvbihlKXtmb3IodmFyIHQ9W10sbj0wO248ZS5sZW5ndGg7bisrKS0xPT09dC5pbmRleE9mKGVbbl0pJiZ0LnB1c2goZVtuXSk7cmV0dXJuIHR9KG4pOm59ZnVuY3Rpb24gTmUoZSx0LG4scil7dmFyIGk9T2JqZWN0LmNyZWF0ZShlfHxudWxsKTtyZXR1cm4gdD9BKGksdCk6aX1PZS5kYXRhPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbj9UZShlLHQsbik6dCYmImZ1bmN0aW9uIiE9dHlwZW9mIHQ\/ZTpUZShlLHQpfSxJLmZvckVhY2goZnVuY3Rpb24oZSl7T2VbZV09RWV9KSxNLmZvckVhY2goZnVuY3Rpb24oZSl7T2VbZSsicyJdPU5lfSksT2Uud2F0Y2g9ZnVuY3Rpb24oZSx0LG4scil7aWYoZT09PVkmJihlPXZvaWQgMCksdD09PVkmJih0PXZvaWQgMCksIXQpcmV0dXJuIE9iamVjdC5jcmVhdGUoZXx8bnVsbCk7aWYoIWUpcmV0dXJuIHQ7dmFyIGk9e307Zm9yKHZhciBvIGluIEEoaSxlKSx0KXt2YXIgYT1pW29dLHM9dFtvXTthJiYhQXJyYXkuaXNBcnJheShhKSYmKGE9W2FdKSxpW29dPWE\/YS5jb25jYXQocyk6QXJyYXkuaXNBcnJheShzKT9zOltzXX1yZXR1cm4gaX0sT2UucHJvcHM9T2UubWV0aG9kcz1PZS5pbmplY3Q9T2UuY29tcHV0ZWQ9ZnVuY3Rpb24oZSx0LG4scil7aWYoIWUpcmV0dXJuIHQ7dmFyIGk9T2JqZWN0LmNyZWF0ZShudWxsKTtyZXR1cm4gQShpLGUpLHQmJkEoaSx0KSxpfSxPZS5wcm92aWRlPVRlO3ZhciBqZT1mdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDA9PT10P2U6dH07ZnVuY3Rpb24gRGUoZSx0LG4pe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0JiYodD10Lm9wdGlvbnMpLGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5wcm9wcztpZihuKXt2YXIgcixpLG89e307aWYoQXJyYXkuaXNBcnJheShuKSlmb3Iocj1uLmxlbmd0aDtyLS07KSJzdHJpbmciPT10eXBlb2YoaT1uW3JdKSYmKG9bYihpKV09e3R5cGU6bnVsbH0pO2Vsc2UgaWYocyhuKSlmb3IodmFyIGEgaW4gbilpPW5bYV0sb1tiKGEpXT1zKGkpP2k6e3R5cGU6aX07ZS5wcm9wcz1vfX0odCksZnVuY3Rpb24oZSx0KXt2YXIgbj1lLmluamVjdDtpZihuKXt2YXIgcj1lLmluamVjdD17fTtpZihBcnJheS5pc0FycmF5KG4pKWZvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXJbbltpXV09e2Zyb206bltpXX07ZWxzZSBpZihzKG4pKWZvcih2YXIgbyBpbiBuKXt2YXIgYT1uW29dO3Jbb109cyhhKT9BKHtmcm9tOm99LGEpOntmcm9tOmF9fX19KHQpLGZ1bmN0aW9uKGUpe3ZhciB0PWUuZGlyZWN0aXZlcztpZih0KWZvcih2YXIgbiBpbiB0KXt2YXIgcj10W25dOyJmdW5jdGlvbiI9PXR5cGVvZiByJiYodFtuXT17YmluZDpyLHVwZGF0ZTpyfSl9fSh0KSwhdC5fYmFzZSYmKHQuZXh0ZW5kcyYmKGU9RGUoZSx0LmV4dGVuZHMsbikpLHQubWl4aW5zKSlmb3IodmFyIHI9MCxpPXQubWl4aW5zLmxlbmd0aDtyPGk7cisrKWU9RGUoZSx0Lm1peGluc1tyXSxuKTt2YXIgbyxhPXt9O2ZvcihvIGluIGUpYyhvKTtmb3IobyBpbiB0KXkoZSxvKXx8YyhvKTtmdW5jdGlvbiBjKHIpe3ZhciBpPU9lW3JdfHxqZTthW3JdPWkoZVtyXSx0W3JdLG4scil9cmV0dXJuIGF9ZnVuY3Rpb24gTGUoZSx0LG4scil7aWYoInN0cmluZyI9PXR5cGVvZiBuKXt2YXIgaT1lW3RdO2lmKHkoaSxuKSlyZXR1cm4gaVtuXTt2YXIgbz1iKG4pO2lmKHkoaSxvKSlyZXR1cm4gaVtvXTt2YXIgYT0kKG8pO3JldHVybiB5KGksYSk\/aVthXTppW25dfHxpW29dfHxpW2FdfX1mdW5jdGlvbiBNZShlLHQsbixyKXt2YXIgaT10W2VdLG89IXkobixlKSxhPW5bZV0scz1QZShCb29sZWFuLGkudHlwZSk7aWYocz4tMSlpZihvJiYheShpLCJkZWZhdWx0IikpYT0hMTtlbHNlIGlmKCIiPT09YXx8YT09PUMoZSkpe3ZhciBjPVBlKFN0cmluZyxpLnR5cGUpOyhjPDB8fHM8YykmJihhPSEwKX1pZih2b2lkIDA9PT1hKXthPWZ1bmN0aW9uKGUsdCxuKXtpZigheSh0LCJkZWZhdWx0IikpcmV0dXJuO3ZhciByPXQuZGVmYXVsdDtpZihlJiZlLiRvcHRpb25zLnByb3BzRGF0YSYmdm9pZCAwPT09ZS4kb3B0aW9ucy5wcm9wc0RhdGFbbl0mJnZvaWQgMCE9PWUuX3Byb3BzW25dKXJldHVybiBlLl9wcm9wc1tuXTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgciYmIkZ1bmN0aW9uIiE9PUllKHQudHlwZSk\/ci5jYWxsKGUpOnJ9KHIsaSxlKTt2YXIgdT1iZTskZSghMCksQ2UoYSksJGUodSl9cmV0dXJuIGF9ZnVuY3Rpb24gSWUoZSl7dmFyIHQ9ZSYmZS50b1N0cmluZygpLm1hdGNoKC9eXHMqZnVuY3Rpb24gKFx3KykvKTtyZXR1cm4gdD90WzFdOiIifWZ1bmN0aW9uIEZlKGUsdCl7cmV0dXJuIEllKGUpPT09SWUodCl9ZnVuY3Rpb24gUGUoZSx0KXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gRmUodCxlKT8wOi0xO2Zvcih2YXIgbj0wLHI9dC5sZW5ndGg7bjxyO24rKylpZihGZSh0W25dLGUpKXJldHVybiBuO3JldHVybi0xfWZ1bmN0aW9uIFJlKGUsdCxuKXtsZSgpO3RyeXtpZih0KWZvcih2YXIgcj10O3I9ci4kcGFyZW50Oyl7dmFyIGk9ci4kb3B0aW9ucy5lcnJvckNhcHR1cmVkO2lmKGkpZm9yKHZhciBvPTA7bzxpLmxlbmd0aDtvKyspdHJ5e2lmKCExPT09aVtvXS5jYWxsKHIsZSx0LG4pKXJldHVybn1jYXRjaChlKXtCZShlLHIsImVycm9yQ2FwdHVyZWQgaG9vayIpfX1CZShlLHQsbil9ZmluYWxseXtmZSgpfX1mdW5jdGlvbiBIZShlLHQsbixyLGkpe3ZhciBvO3RyeXsobz1uP2UuYXBwbHkodCxuKTplLmNhbGwodCkpJiYhby5faXNWdWUmJnUobykmJiFvLl9oYW5kbGVkJiYoby5jYXRjaChmdW5jdGlvbihlKXtyZXR1cm4gUmUoZSxyLGkrIiAoUHJvbWlzZS9hc3luYykiKX0pLG8uX2hhbmRsZWQ9ITApfWNhdGNoKGUpe1JlKGUscixpKX1yZXR1cm4gb31mdW5jdGlvbiBCZShlLHQsbil7aWYoRi5lcnJvckhhbmRsZXIpdHJ5e3JldHVybiBGLmVycm9ySGFuZGxlci5jYWxsKG51bGwsZSx0LG4pfWNhdGNoKHQpe3QhPT1lJiZVZSh0LG51bGwsImNvbmZpZy5lcnJvckhhbmRsZXIiKX1VZShlLHQsbil9ZnVuY3Rpb24gVWUoZSx0LG4pe2lmKCF6JiYhVnx8InVuZGVmaW5lZCI9PXR5cGVvZiBjb25zb2xlKXRocm93IGU7Y29uc29sZS5lcnJvcihlKX12YXIgemUsVmU9ITEsS2U9W10sSmU9ITE7ZnVuY3Rpb24gcWUoKXtKZT0hMTt2YXIgZT1LZS5zbGljZSgwKTtLZS5sZW5ndGg9MDtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyllW3RdKCl9aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBQcm9taXNlJiZyZShQcm9taXNlKSl7dmFyIFdlPVByb21pc2UucmVzb2x2ZSgpO3plPWZ1bmN0aW9uKCl7V2UudGhlbihxZSksRyYmc2V0VGltZW91dChTKX0sVmU9ITB9ZWxzZSBpZihxfHwidW5kZWZpbmVkIj09dHlwZW9mIE11dGF0aW9uT2JzZXJ2ZXJ8fCFyZShNdXRhdGlvbk9ic2VydmVyKSYmIltvYmplY3QgTXV0YXRpb25PYnNlcnZlckNvbnN0cnVjdG9yXSIhPT1NdXRhdGlvbk9ic2VydmVyLnRvU3RyaW5nKCkpemU9InVuZGVmaW5lZCIhPXR5cGVvZiBzZXRJbW1lZGlhdGUmJnJlKHNldEltbWVkaWF0ZSk\/ZnVuY3Rpb24oKXtzZXRJbW1lZGlhdGUocWUpfTpmdW5jdGlvbigpe3NldFRpbWVvdXQocWUsMCl9O2Vsc2V7dmFyIFplPTEsR2U9bmV3IE11dGF0aW9uT2JzZXJ2ZXIocWUpLFhlPWRvY3VtZW50LmNyZWF0ZVRleHROb2RlKFN0cmluZyhaZSkpO0dlLm9ic2VydmUoWGUse2NoYXJhY3RlckRhdGE6ITB9KSx6ZT1mdW5jdGlvbigpe1plPShaZSsxKSUyLFhlLmRhdGE9U3RyaW5nKFplKX0sVmU9ITB9ZnVuY3Rpb24gWWUoZSx0KXt2YXIgbjtpZihLZS5wdXNoKGZ1bmN0aW9uKCl7aWYoZSl0cnl7ZS5jYWxsKHQpfWNhdGNoKGUpe1JlKGUsdCwibmV4dFRpY2siKX1lbHNlIG4mJm4odCl9KSxKZXx8KEplPSEwLHplKCkpLCFlJiYidW5kZWZpbmVkIiE9dHlwZW9mIFByb21pc2UpcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGUpe249ZX0pfXZhciBRZT1uZXcgaWU7ZnVuY3Rpb24gZXQoZSl7IWZ1bmN0aW9uIGUodCxuKXt2YXIgcixpO3ZhciBhPUFycmF5LmlzQXJyYXkodCk7aWYoIWEmJiFvKHQpfHxPYmplY3QuaXNGcm96ZW4odCl8fHQgaW5zdGFuY2VvZiBwZSlyZXR1cm47aWYodC5fX29iX18pe3ZhciBzPXQuX19vYl9fLmRlcC5pZDtpZihuLmhhcyhzKSlyZXR1cm47bi5hZGQocyl9aWYoYSlmb3Iocj10Lmxlbmd0aDtyLS07KWUodFtyXSxuKTtlbHNlIGZvcihpPU9iamVjdC5rZXlzKHQpLHI9aS5sZW5ndGg7ci0tOyllKHRbaVtyXV0sbil9KGUsUWUpLFFlLmNsZWFyKCl9dmFyIHR0PWcoZnVuY3Rpb24oZSl7dmFyIHQ9IiYiPT09ZS5jaGFyQXQoMCksbj0ifiI9PT0oZT10P2Uuc2xpY2UoMSk6ZSkuY2hhckF0KDApLHI9IiEiPT09KGU9bj9lLnNsaWNlKDEpOmUpLmNoYXJBdCgwKTtyZXR1cm57bmFtZTplPXI\/ZS5zbGljZSgxKTplLG9uY2U6bixjYXB0dXJlOnIscGFzc2l2ZTp0fX0pO2Z1bmN0aW9uIG50KGUsdCl7ZnVuY3Rpb24gbigpe3ZhciBlPWFyZ3VtZW50cyxyPW4uZm5zO2lmKCFBcnJheS5pc0FycmF5KHIpKXJldHVybiBIZShyLG51bGwsYXJndW1lbnRzLHQsInYtb24gaGFuZGxlciIpO2Zvcih2YXIgaT1yLnNsaWNlKCksbz0wO288aS5sZW5ndGg7bysrKUhlKGlbb10sbnVsbCxlLHQsInYtb24gaGFuZGxlciIpfXJldHVybiBuLmZucz1lLG59ZnVuY3Rpb24gcnQoZSxuLGksbyxhLHMpe3ZhciBjLHUsbCxmO2ZvcihjIGluIGUpdT1lW2NdLGw9bltjXSxmPXR0KGMpLHQodSl8fCh0KGwpPyh0KHUuZm5zKSYmKHU9ZVtjXT1udCh1LHMpKSxyKGYub25jZSkmJih1PWVbY109YShmLm5hbWUsdSxmLmNhcHR1cmUpKSxpKGYubmFtZSx1LGYuY2FwdHVyZSxmLnBhc3NpdmUsZi5wYXJhbXMpKTp1IT09bCYmKGwuZm5zPXUsZVtjXT1sKSk7Zm9yKGMgaW4gbil0KGVbY10pJiZvKChmPXR0KGMpKS5uYW1lLG5bY10sZi5jYXB0dXJlKX1mdW5jdGlvbiBpdChlLGksbyl7dmFyIGE7ZSBpbnN0YW5jZW9mIHBlJiYoZT1lLmRhdGEuaG9va3x8KGUuZGF0YS5ob29rPXt9KSk7dmFyIHM9ZVtpXTtmdW5jdGlvbiBjKCl7by5hcHBseSh0aGlzLGFyZ3VtZW50cyksaChhLmZucyxjKX10KHMpP2E9bnQoW2NdKTpuKHMuZm5zKSYmcihzLm1lcmdlZCk\/KGE9cykuZm5zLnB1c2goYyk6YT1udChbcyxjXSksYS5tZXJnZWQ9ITAsZVtpXT1hfWZ1bmN0aW9uIG90KGUsdCxyLGksbyl7aWYobih0KSl7aWYoeSh0LHIpKXJldHVybiBlW3JdPXRbcl0sb3x8ZGVsZXRlIHRbcl0sITA7aWYoeSh0LGkpKXJldHVybiBlW3JdPXRbaV0sb3x8ZGVsZXRlIHRbaV0sITB9cmV0dXJuITF9ZnVuY3Rpb24gYXQoZSl7cmV0dXJuIGkoZSk\/W2hlKGUpXTpBcnJheS5pc0FycmF5KGUpP2Z1bmN0aW9uIGUobyxhKXt2YXIgcz1bXTt2YXIgYyx1LGwsZjtmb3IoYz0wO2M8by5sZW5ndGg7YysrKXQodT1vW2NdKXx8ImJvb2xlYW4iPT10eXBlb2YgdXx8KGw9cy5sZW5ndGgtMSxmPXNbbF0sQXJyYXkuaXNBcnJheSh1KT91Lmxlbmd0aD4wJiYoc3QoKHU9ZSh1LChhfHwiIikrIl8iK2MpKVswXSkmJnN0KGYpJiYoc1tsXT1oZShmLnRleHQrdVswXS50ZXh0KSx1LnNoaWZ0KCkpLHMucHVzaC5hcHBseShzLHUpKTppKHUpP3N0KGYpP3NbbF09aGUoZi50ZXh0K3UpOiIiIT09dSYmcy5wdXNoKGhlKHUpKTpzdCh1KSYmc3QoZik\/c1tsXT1oZShmLnRleHQrdS50ZXh0KToocihvLl9pc1ZMaXN0KSYmbih1LnRhZykmJnQodS5rZXkpJiZuKGEpJiYodS5rZXk9Il9fdmxpc3QiK2ErIl8iK2MrIl9fIikscy5wdXNoKHUpKSk7cmV0dXJuIHN9KGUpOnZvaWQgMH1mdW5jdGlvbiBzdChlKXtyZXR1cm4gbihlKSYmbihlLnRleHQpJiYhMT09PWUuaXNDb21tZW50fWZ1bmN0aW9uIGN0KGUsdCl7aWYoZSl7Zm9yKHZhciBuPU9iamVjdC5jcmVhdGUobnVsbCkscj1vZT9SZWZsZWN0Lm93bktleXMoZSk6T2JqZWN0LmtleXMoZSksaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgbz1yW2ldO2lmKCJfX29iX18iIT09byl7Zm9yKHZhciBhPWVbb10uZnJvbSxzPXQ7czspe2lmKHMuX3Byb3ZpZGVkJiZ5KHMuX3Byb3ZpZGVkLGEpKXtuW29dPXMuX3Byb3ZpZGVkW2FdO2JyZWFrfXM9cy4kcGFyZW50fWlmKCFzJiYiZGVmYXVsdCJpbiBlW29dKXt2YXIgYz1lW29dLmRlZmF1bHQ7bltvXT0iZnVuY3Rpb24iPT10eXBlb2YgYz9jLmNhbGwodCk6Y319fXJldHVybiBufX1mdW5jdGlvbiB1dChlLHQpe2lmKCFlfHwhZS5sZW5ndGgpcmV0dXJue307Zm9yKHZhciBuPXt9LHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspe3ZhciBvPWVbcl0sYT1vLmRhdGE7aWYoYSYmYS5hdHRycyYmYS5hdHRycy5zbG90JiZkZWxldGUgYS5hdHRycy5zbG90LG8uY29udGV4dCE9PXQmJm8uZm5Db250ZXh0IT09dHx8IWF8fG51bGw9PWEuc2xvdCkobi5kZWZhdWx0fHwobi5kZWZhdWx0PVtdKSkucHVzaChvKTtlbHNle3ZhciBzPWEuc2xvdCxjPW5bc118fChuW3NdPVtdKTsidGVtcGxhdGUiPT09by50YWc\/Yy5wdXNoLmFwcGx5KGMsby5jaGlsZHJlbnx8W10pOmMucHVzaChvKX19Zm9yKHZhciB1IGluIG4pblt1XS5ldmVyeShsdCkmJmRlbGV0ZSBuW3VdO3JldHVybiBufWZ1bmN0aW9uIGx0KGUpe3JldHVybiBlLmlzQ29tbWVudCYmIWUuYXN5bmNGYWN0b3J5fHwiICI9PT1lLnRleHR9ZnVuY3Rpb24gZnQodCxuLHIpe3ZhciBpLG89T2JqZWN0LmtleXMobikubGVuZ3RoPjAsYT10PyEhdC4kc3RhYmxlOiFvLHM9dCYmdC4ka2V5O2lmKHQpe2lmKHQuX25vcm1hbGl6ZWQpcmV0dXJuIHQuX25vcm1hbGl6ZWQ7aWYoYSYmciYmciE9PWUmJnM9PT1yLiRrZXkmJiFvJiYhci4kaGFzTm9ybWFsKXJldHVybiByO2Zvcih2YXIgYyBpbiBpPXt9LHQpdFtjXSYmIiQiIT09Y1swXSYmKGlbY109cHQobixjLHRbY10pKX1lbHNlIGk9e307Zm9yKHZhciB1IGluIG4pdSBpbiBpfHwoaVt1XT1kdChuLHUpKTtyZXR1cm4gdCYmT2JqZWN0LmlzRXh0ZW5zaWJsZSh0KSYmKHQuX25vcm1hbGl6ZWQ9aSksUihpLCIkc3RhYmxlIixhKSxSKGksIiRrZXkiLHMpLFIoaSwiJGhhc05vcm1hbCIsbyksaX1mdW5jdGlvbiBwdChlLHQsbil7dmFyIHI9ZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHMubGVuZ3RoP24uYXBwbHkobnVsbCxhcmd1bWVudHMpOm4oe30pO3JldHVybihlPWUmJiJvYmplY3QiPT10eXBlb2YgZSYmIUFycmF5LmlzQXJyYXkoZSk\/W2VdOmF0KGUpKSYmKDA9PT1lLmxlbmd0aHx8MT09PWUubGVuZ3RoJiZlWzBdLmlzQ29tbWVudCk\/dm9pZCAwOmV9O3JldHVybiBuLnByb3h5JiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtnZXQ6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMH0pLHJ9ZnVuY3Rpb24gZHQoZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZVt0XX19ZnVuY3Rpb24gdnQoZSx0KXt2YXIgcixpLGEscyxjO2lmKEFycmF5LmlzQXJyYXkoZSl8fCJzdHJpbmciPT10eXBlb2YgZSlmb3Iocj1uZXcgQXJyYXkoZS5sZW5ndGgpLGk9MCxhPWUubGVuZ3RoO2k8YTtpKyspcltpXT10KGVbaV0saSk7ZWxzZSBpZigibnVtYmVyIj09dHlwZW9mIGUpZm9yKHI9bmV3IEFycmF5KGUpLGk9MDtpPGU7aSsrKXJbaV09dChpKzEsaSk7ZWxzZSBpZihvKGUpKWlmKG9lJiZlW1N5bWJvbC5pdGVyYXRvcl0pe3I9W107Zm9yKHZhciB1PWVbU3ltYm9sLml0ZXJhdG9yXSgpLGw9dS5uZXh0KCk7IWwuZG9uZTspci5wdXNoKHQobC52YWx1ZSxyLmxlbmd0aCkpLGw9dS5uZXh0KCl9ZWxzZSBmb3Iocz1PYmplY3Qua2V5cyhlKSxyPW5ldyBBcnJheShzLmxlbmd0aCksaT0wLGE9cy5sZW5ndGg7aTxhO2krKyljPXNbaV0scltpXT10KGVbY10sYyxpKTtyZXR1cm4gbihyKXx8KHI9W10pLHIuX2lzVkxpc3Q9ITAscn1mdW5jdGlvbiBodChlLHQsbixyKXt2YXIgaSxvPXRoaXMuJHNjb3BlZFNsb3RzW2VdO28\/KG49bnx8e30sciYmKG49QShBKHt9LHIpLG4pKSxpPW8obil8fHQpOmk9dGhpcy4kc2xvdHNbZV18fHQ7dmFyIGE9biYmbi5zbG90O3JldHVybiBhP3RoaXMuJGNyZWF0ZUVsZW1lbnQoInRlbXBsYXRlIix7c2xvdDphfSxpKTppfWZ1bmN0aW9uIG10KGUpe3JldHVybiBMZSh0aGlzLiRvcHRpb25zLCJmaWx0ZXJzIixlKXx8RX1mdW5jdGlvbiB5dChlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KGUpPy0xPT09ZS5pbmRleE9mKHQpOmUhPT10fWZ1bmN0aW9uIGd0KGUsdCxuLHIsaSl7dmFyIG89Ri5rZXlDb2Rlc1t0XXx8bjtyZXR1cm4gaSYmciYmIUYua2V5Q29kZXNbdF0\/eXQoaSxyKTpvP3l0KG8sZSk6cj9DKHIpIT09dDp2b2lkIDB9ZnVuY3Rpb24gX3QoZSx0LG4scixpKXtpZihuKWlmKG8obikpe3ZhciBhO0FycmF5LmlzQXJyYXkobikmJihuPU8obikpO3ZhciBzPWZ1bmN0aW9uKG8pe2lmKCJjbGFzcyI9PT1vfHwic3R5bGUiPT09b3x8dihvKSlhPWU7ZWxzZXt2YXIgcz1lLmF0dHJzJiZlLmF0dHJzLnR5cGU7YT1yfHxGLm11c3RVc2VQcm9wKHQscyxvKT9lLmRvbVByb3BzfHwoZS5kb21Qcm9wcz17fSk6ZS5hdHRyc3x8KGUuYXR0cnM9e30pfXZhciBjPWIobyksdT1DKG8pO2MgaW4gYXx8dSBpbiBhfHwoYVtvXT1uW29dLGkmJigoZS5vbnx8KGUub249e30pKVsidXBkYXRlOiIrb109ZnVuY3Rpb24oZSl7bltvXT1lfSkpfTtmb3IodmFyIGMgaW4gbilzKGMpfWVsc2U7cmV0dXJuIGV9ZnVuY3Rpb24gYnQoZSx0KXt2YXIgbj10aGlzLl9zdGF0aWNUcmVlc3x8KHRoaXMuX3N0YXRpY1RyZWVzPVtdKSxyPW5bZV07cmV0dXJuIHImJiF0P3I6KHd0KHI9bltlXT10aGlzLiRvcHRpb25zLnN0YXRpY1JlbmRlckZuc1tlXS5jYWxsKHRoaXMuX3JlbmRlclByb3h5LG51bGwsdGhpcyksIl9fc3RhdGljX18iK2UsITEpLHIpfWZ1bmN0aW9uICR0KGUsdCxuKXtyZXR1cm4gd3QoZSwiX19vbmNlX18iK3QrKG4\/Il8iK246IiIpLCEwKSxlfWZ1bmN0aW9uIHd0KGUsdCxuKXtpZihBcnJheS5pc0FycmF5KGUpKWZvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWVbcl0mJiJzdHJpbmciIT10eXBlb2YgZVtyXSYmQ3QoZVtyXSx0KyJfIityLG4pO2Vsc2UgQ3QoZSx0LG4pfWZ1bmN0aW9uIEN0KGUsdCxuKXtlLmlzU3RhdGljPSEwLGUua2V5PXQsZS5pc09uY2U9bn1mdW5jdGlvbiB4dChlLHQpe2lmKHQpaWYocyh0KSl7dmFyIG49ZS5vbj1lLm9uP0Eoe30sZS5vbik6e307Zm9yKHZhciByIGluIHQpe3ZhciBpPW5bcl0sbz10W3JdO25bcl09aT9bXS5jb25jYXQoaSxvKTpvfX1lbHNlO3JldHVybiBlfWZ1bmN0aW9uIGt0KGUsdCxuLHIpe3Q9dHx8eyRzdGFibGU6IW59O2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgbz1lW2ldO0FycmF5LmlzQXJyYXkobyk\/a3Qobyx0LG4pOm8mJihvLnByb3h5JiYoby5mbi5wcm94eT0hMCksdFtvLmtleV09by5mbil9cmV0dXJuIHImJih0LiRrZXk9ciksdH1mdW5jdGlvbiBBdChlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bis9Mil7dmFyIHI9dFtuXTsic3RyaW5nIj09dHlwZW9mIHImJnImJihlW3Rbbl1dPXRbbisxXSl9cmV0dXJuIGV9ZnVuY3Rpb24gT3QoZSx0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU\/dCtlOmV9ZnVuY3Rpb24gU3QoZSl7ZS5fbz0kdCxlLl9uPWYsZS5fcz1sLGUuX2w9dnQsZS5fdD1odCxlLl9xPU4sZS5faT1qLGUuX209YnQsZS5fZj1tdCxlLl9rPWd0LGUuX2I9X3QsZS5fdj1oZSxlLl9lPXZlLGUuX3U9a3QsZS5fZz14dCxlLl9kPUF0LGUuX3A9T3R9ZnVuY3Rpb24gVHQodCxuLGksbyxhKXt2YXIgcyxjPXRoaXMsdT1hLm9wdGlvbnM7eShvLCJfdWlkIik\/KHM9T2JqZWN0LmNyZWF0ZShvKSkuX29yaWdpbmFsPW86KHM9byxvPW8uX29yaWdpbmFsKTt2YXIgbD1yKHUuX2NvbXBpbGVkKSxmPSFsO3RoaXMuZGF0YT10LHRoaXMucHJvcHM9bix0aGlzLmNoaWxkcmVuPWksdGhpcy5wYXJlbnQ9byx0aGlzLmxpc3RlbmVycz10Lm9ufHxlLHRoaXMuaW5qZWN0aW9ucz1jdCh1LmluamVjdCxvKSx0aGlzLnNsb3RzPWZ1bmN0aW9uKCl7cmV0dXJuIGMuJHNsb3RzfHxmdCh0LnNjb3BlZFNsb3RzLGMuJHNsb3RzPXV0KGksbykpLGMuJHNsb3RzfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywic2NvcGVkU2xvdHMiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe3JldHVybiBmdCh0LnNjb3BlZFNsb3RzLHRoaXMuc2xvdHMoKSl9fSksbCYmKHRoaXMuJG9wdGlvbnM9dSx0aGlzLiRzbG90cz10aGlzLnNsb3RzKCksdGhpcy4kc2NvcGVkU2xvdHM9ZnQodC5zY29wZWRTbG90cyx0aGlzLiRzbG90cykpLHUuX3Njb3BlSWQ\/dGhpcy5fYz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaT1QdChzLGUsdCxuLHIsZik7cmV0dXJuIGkmJiFBcnJheS5pc0FycmF5KGkpJiYoaS5mblNjb3BlSWQ9dS5fc2NvcGVJZCxpLmZuQ29udGV4dD1vKSxpfTp0aGlzLl9jPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBQdChzLGUsdCxuLHIsZil9fWZ1bmN0aW9uIEV0KGUsdCxuLHIsaSl7dmFyIG89bWUoZSk7cmV0dXJuIG8uZm5Db250ZXh0PW4sby5mbk9wdGlvbnM9cix0LnNsb3QmJigoby5kYXRhfHwoby5kYXRhPXt9KSkuc2xvdD10LnNsb3QpLG99ZnVuY3Rpb24gTnQoZSx0KXtmb3IodmFyIG4gaW4gdCllW2IobildPXRbbl19U3QoVHQucHJvdG90eXBlKTt2YXIganQ9e2luaXQ6ZnVuY3Rpb24oZSx0KXtpZihlLmNvbXBvbmVudEluc3RhbmNlJiYhZS5jb21wb25lbnRJbnN0YW5jZS5faXNEZXN0cm95ZWQmJmUuZGF0YS5rZWVwQWxpdmUpe3ZhciByPWU7anQucHJlcGF0Y2gocixyKX1lbHNleyhlLmNvbXBvbmVudEluc3RhbmNlPWZ1bmN0aW9uKGUsdCl7dmFyIHI9e19pc0NvbXBvbmVudDohMCxfcGFyZW50Vm5vZGU6ZSxwYXJlbnQ6dH0saT1lLmRhdGEuaW5saW5lVGVtcGxhdGU7bihpKSYmKHIucmVuZGVyPWkucmVuZGVyLHIuc3RhdGljUmVuZGVyRm5zPWkuc3RhdGljUmVuZGVyRm5zKTtyZXR1cm4gbmV3IGUuY29tcG9uZW50T3B0aW9ucy5DdG9yKHIpfShlLFd0KSkuJG1vdW50KHQ\/ZS5lbG06dm9pZCAwLHQpfX0scHJlcGF0Y2g6ZnVuY3Rpb24odCxuKXt2YXIgcj1uLmNvbXBvbmVudE9wdGlvbnM7IWZ1bmN0aW9uKHQsbixyLGksbyl7dmFyIGE9aS5kYXRhLnNjb3BlZFNsb3RzLHM9dC4kc2NvcGVkU2xvdHMsYz0hIShhJiYhYS4kc3RhYmxlfHxzIT09ZSYmIXMuJHN0YWJsZXx8YSYmdC4kc2NvcGVkU2xvdHMuJGtleSE9PWEuJGtleSksdT0hIShvfHx0LiRvcHRpb25zLl9yZW5kZXJDaGlsZHJlbnx8Yyk7dC4kb3B0aW9ucy5fcGFyZW50Vm5vZGU9aSx0LiR2bm9kZT1pLHQuX3Zub2RlJiYodC5fdm5vZGUucGFyZW50PWkpO2lmKHQuJG9wdGlvbnMuX3JlbmRlckNoaWxkcmVuPW8sdC4kYXR0cnM9aS5kYXRhLmF0dHJzfHxlLHQuJGxpc3RlbmVycz1yfHxlLG4mJnQuJG9wdGlvbnMucHJvcHMpeyRlKCExKTtmb3IodmFyIGw9dC5fcHJvcHMsZj10LiRvcHRpb25zLl9wcm9wS2V5c3x8W10scD0wO3A8Zi5sZW5ndGg7cCsrKXt2YXIgZD1mW3BdLHY9dC4kb3B0aW9ucy5wcm9wcztsW2RdPU1lKGQsdixuLHQpfSRlKCEwKSx0LiRvcHRpb25zLnByb3BzRGF0YT1ufXI9cnx8ZTt2YXIgaD10LiRvcHRpb25zLl9wYXJlbnRMaXN0ZW5lcnM7dC4kb3B0aW9ucy5fcGFyZW50TGlzdGVuZXJzPXIscXQodCxyLGgpLHUmJih0LiRzbG90cz11dChvLGkuY29udGV4dCksdC4kZm9yY2VVcGRhdGUoKSl9KG4uY29tcG9uZW50SW5zdGFuY2U9dC5jb21wb25lbnRJbnN0YW5jZSxyLnByb3BzRGF0YSxyLmxpc3RlbmVycyxuLHIuY2hpbGRyZW4pfSxpbnNlcnQ6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLmNvbnRleHQscj1lLmNvbXBvbmVudEluc3RhbmNlO3IuX2lzTW91bnRlZHx8KHIuX2lzTW91bnRlZD0hMCxZdChyLCJtb3VudGVkIikpLGUuZGF0YS5rZWVwQWxpdmUmJihuLl9pc01vdW50ZWQ\/KCh0PXIpLl9pbmFjdGl2ZT0hMSxlbi5wdXNoKHQpKTpYdChyLCEwKSl9LGRlc3Ryb3k6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb21wb25lbnRJbnN0YW5jZTt0Ll9pc0Rlc3Ryb3llZHx8KGUuZGF0YS5rZWVwQWxpdmU\/ZnVuY3Rpb24gZSh0LG4pe2lmKG4mJih0Ll9kaXJlY3RJbmFjdGl2ZT0hMCxHdCh0KSkpcmV0dXJuO2lmKCF0Ll9pbmFjdGl2ZSl7dC5faW5hY3RpdmU9ITA7Zm9yKHZhciByPTA7cjx0LiRjaGlsZHJlbi5sZW5ndGg7cisrKWUodC4kY2hpbGRyZW5bcl0pO1l0KHQsImRlYWN0aXZhdGVkIil9fSh0LCEwKTp0LiRkZXN0cm95KCkpfX0sRHQ9T2JqZWN0LmtleXMoanQpO2Z1bmN0aW9uIEx0KGksYSxzLGMsbCl7aWYoIXQoaSkpe3ZhciBmPXMuJG9wdGlvbnMuX2Jhc2U7aWYobyhpKSYmKGk9Zi5leHRlbmQoaSkpLCJmdW5jdGlvbiI9PXR5cGVvZiBpKXt2YXIgcDtpZih0KGkuY2lkKSYmdm9pZCAwPT09KGk9ZnVuY3Rpb24oZSxpKXtpZihyKGUuZXJyb3IpJiZuKGUuZXJyb3JDb21wKSlyZXR1cm4gZS5lcnJvckNvbXA7aWYobihlLnJlc29sdmVkKSlyZXR1cm4gZS5yZXNvbHZlZDt2YXIgYT1IdDthJiZuKGUub3duZXJzKSYmLTE9PT1lLm93bmVycy5pbmRleE9mKGEpJiZlLm93bmVycy5wdXNoKGEpO2lmKHIoZS5sb2FkaW5nKSYmbihlLmxvYWRpbmdDb21wKSlyZXR1cm4gZS5sb2FkaW5nQ29tcDtpZihhJiYhbihlLm93bmVycykpe3ZhciBzPWUub3duZXJzPVthXSxjPSEwLGw9bnVsbCxmPW51bGw7YS4kb24oImhvb2s6ZGVzdHJveWVkIixmdW5jdGlvbigpe3JldHVybiBoKHMsYSl9KTt2YXIgcD1mdW5jdGlvbihlKXtmb3IodmFyIHQ9MCxuPXMubGVuZ3RoO3Q8bjt0Kyspc1t0XS4kZm9yY2VVcGRhdGUoKTtlJiYocy5sZW5ndGg9MCxudWxsIT09bCYmKGNsZWFyVGltZW91dChsKSxsPW51bGwpLG51bGwhPT1mJiYoY2xlYXJUaW1lb3V0KGYpLGY9bnVsbCkpfSxkPUQoZnVuY3Rpb24odCl7ZS5yZXNvbHZlZD1CdCh0LGkpLGM\/cy5sZW5ndGg9MDpwKCEwKX0pLHY9RChmdW5jdGlvbih0KXtuKGUuZXJyb3JDb21wKSYmKGUuZXJyb3I9ITAscCghMCkpfSksbT1lKGQsdik7cmV0dXJuIG8obSkmJih1KG0pP3QoZS5yZXNvbHZlZCkmJm0udGhlbihkLHYpOnUobS5jb21wb25lbnQpJiYobS5jb21wb25lbnQudGhlbihkLHYpLG4obS5lcnJvcikmJihlLmVycm9yQ29tcD1CdChtLmVycm9yLGkpKSxuKG0ubG9hZGluZykmJihlLmxvYWRpbmdDb21wPUJ0KG0ubG9hZGluZyxpKSwwPT09bS5kZWxheT9lLmxvYWRpbmc9ITA6bD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7bD1udWxsLHQoZS5yZXNvbHZlZCkmJnQoZS5lcnJvcikmJihlLmxvYWRpbmc9ITAscCghMSkpfSxtLmRlbGF5fHwyMDApKSxuKG0udGltZW91dCkmJihmPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtmPW51bGwsdChlLnJlc29sdmVkKSYmdihudWxsKX0sbS50aW1lb3V0KSkpKSxjPSExLGUubG9hZGluZz9lLmxvYWRpbmdDb21wOmUucmVzb2x2ZWR9fShwPWksZikpKXJldHVybiBmdW5jdGlvbihlLHQsbixyLGkpe3ZhciBvPXZlKCk7cmV0dXJuIG8uYXN5bmNGYWN0b3J5PWUsby5hc3luY01ldGE9e2RhdGE6dCxjb250ZXh0Om4sY2hpbGRyZW46cix0YWc6aX0sb30ocCxhLHMsYyxsKTthPWF8fHt9LCRuKGkpLG4oYS5tb2RlbCkmJmZ1bmN0aW9uKGUsdCl7dmFyIHI9ZS5tb2RlbCYmZS5tb2RlbC5wcm9wfHwidmFsdWUiLGk9ZS5tb2RlbCYmZS5tb2RlbC5ldmVudHx8ImlucHV0IjsodC5hdHRyc3x8KHQuYXR0cnM9e30pKVtyXT10Lm1vZGVsLnZhbHVlO3ZhciBvPXQub258fCh0Lm9uPXt9KSxhPW9baV0scz10Lm1vZGVsLmNhbGxiYWNrO24oYSk\/KEFycmF5LmlzQXJyYXkoYSk\/LTE9PT1hLmluZGV4T2Yocyk6YSE9PXMpJiYob1tpXT1bc10uY29uY2F0KGEpKTpvW2ldPXN9KGkub3B0aW9ucyxhKTt2YXIgZD1mdW5jdGlvbihlLHIsaSl7dmFyIG89ci5vcHRpb25zLnByb3BzO2lmKCF0KG8pKXt2YXIgYT17fSxzPWUuYXR0cnMsYz1lLnByb3BzO2lmKG4ocyl8fG4oYykpZm9yKHZhciB1IGluIG8pe3ZhciBsPUModSk7b3QoYSxjLHUsbCwhMCl8fG90KGEscyx1LGwsITEpfXJldHVybiBhfX0oYSxpKTtpZihyKGkub3B0aW9ucy5mdW5jdGlvbmFsKSlyZXR1cm4gZnVuY3Rpb24odCxyLGksbyxhKXt2YXIgcz10Lm9wdGlvbnMsYz17fSx1PXMucHJvcHM7aWYobih1KSlmb3IodmFyIGwgaW4gdSljW2xdPU1lKGwsdSxyfHxlKTtlbHNlIG4oaS5hdHRycykmJk50KGMsaS5hdHRycyksbihpLnByb3BzKSYmTnQoYyxpLnByb3BzKTt2YXIgZj1uZXcgVHQoaSxjLGEsbyx0KSxwPXMucmVuZGVyLmNhbGwobnVsbCxmLl9jLGYpO2lmKHAgaW5zdGFuY2VvZiBwZSlyZXR1cm4gRXQocCxpLGYucGFyZW50LHMpO2lmKEFycmF5LmlzQXJyYXkocCkpe2Zvcih2YXIgZD1hdChwKXx8W10sdj1uZXcgQXJyYXkoZC5sZW5ndGgpLGg9MDtoPGQubGVuZ3RoO2grKyl2W2hdPUV0KGRbaF0saSxmLnBhcmVudCxzKTtyZXR1cm4gdn19KGksZCxhLHMsYyk7dmFyIHY9YS5vbjtpZihhLm9uPWEubmF0aXZlT24scihpLm9wdGlvbnMuYWJzdHJhY3QpKXt2YXIgbT1hLnNsb3Q7YT17fSxtJiYoYS5zbG90PW0pfSFmdW5jdGlvbihlKXtmb3IodmFyIHQ9ZS5ob29rfHwoZS5ob29rPXt9KSxuPTA7bjxEdC5sZW5ndGg7bisrKXt2YXIgcj1EdFtuXSxpPXRbcl0sbz1qdFtyXTtpPT09b3x8aSYmaS5fbWVyZ2VkfHwodFtyXT1pP010KG8saSk6byl9fShhKTt2YXIgeT1pLm9wdGlvbnMubmFtZXx8bDtyZXR1cm4gbmV3IHBlKCJ2dWUtY29tcG9uZW50LSIraS5jaWQrKHk\/Ii0iK3k6IiIpLGEsdm9pZCAwLHZvaWQgMCx2b2lkIDAscyx7Q3RvcjppLHByb3BzRGF0YTpkLGxpc3RlbmVyczp2LHRhZzpsLGNoaWxkcmVuOmN9LHApfX19ZnVuY3Rpb24gTXQoZSx0KXt2YXIgbj1mdW5jdGlvbihuLHIpe2UobixyKSx0KG4scil9O3JldHVybiBuLl9tZXJnZWQ9ITAsbn12YXIgSXQ9MSxGdD0yO2Z1bmN0aW9uIFB0KGUsYSxzLGMsdSxsKXtyZXR1cm4oQXJyYXkuaXNBcnJheShzKXx8aShzKSkmJih1PWMsYz1zLHM9dm9pZCAwKSxyKGwpJiYodT1GdCksZnVuY3Rpb24oZSxpLGEscyxjKXtpZihuKGEpJiZuKGEuX19vYl9fKSlyZXR1cm4gdmUoKTtuKGEpJiZuKGEuaXMpJiYoaT1hLmlzKTtpZighaSlyZXR1cm4gdmUoKTtBcnJheS5pc0FycmF5KHMpJiYiZnVuY3Rpb24iPT10eXBlb2Ygc1swXSYmKChhPWF8fHt9KS5zY29wZWRTbG90cz17ZGVmYXVsdDpzWzBdfSxzLmxlbmd0aD0wKTtjPT09RnQ\/cz1hdChzKTpjPT09SXQmJihzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWlmKEFycmF5LmlzQXJyYXkoZVt0XSkpcmV0dXJuIEFycmF5LnByb3RvdHlwZS5jb25jYXQuYXBwbHkoW10sZSk7cmV0dXJuIGV9KHMpKTt2YXIgdSxsO2lmKCJzdHJpbmciPT10eXBlb2YgaSl7dmFyIGY7bD1lLiR2bm9kZSYmZS4kdm5vZGUubnN8fEYuZ2V0VGFnTmFtZXNwYWNlKGkpLHU9Ri5pc1Jlc2VydmVkVGFnKGkpP25ldyBwZShGLnBhcnNlUGxhdGZvcm1UYWdOYW1lKGkpLGEscyx2b2lkIDAsdm9pZCAwLGUpOmEmJmEucHJlfHwhbihmPUxlKGUuJG9wdGlvbnMsImNvbXBvbmVudHMiLGkpKT9uZXcgcGUoaSxhLHMsdm9pZCAwLHZvaWQgMCxlKTpMdChmLGEsZSxzLGkpfWVsc2UgdT1MdChpLGEsZSxzKTtyZXR1cm4gQXJyYXkuaXNBcnJheSh1KT91Om4odSk\/KG4obCkmJmZ1bmN0aW9uIGUoaSxvLGEpe2kubnM9bzsiZm9yZWlnbk9iamVjdCI9PT1pLnRhZyYmKG89dm9pZCAwLGE9ITApO2lmKG4oaS5jaGlsZHJlbikpZm9yKHZhciBzPTAsYz1pLmNoaWxkcmVuLmxlbmd0aDtzPGM7cysrKXt2YXIgdT1pLmNoaWxkcmVuW3NdO24odS50YWcpJiYodCh1Lm5zKXx8cihhKSYmInN2ZyIhPT11LnRhZykmJmUodSxvLGEpfX0odSxsKSxuKGEpJiZmdW5jdGlvbihlKXtvKGUuc3R5bGUpJiZldChlLnN0eWxlKTtvKGUuY2xhc3MpJiZldChlLmNsYXNzKX0oYSksdSk6dmUoKX0oZSxhLHMsYyx1KX12YXIgUnQsSHQ9bnVsbDtmdW5jdGlvbiBCdChlLHQpe3JldHVybihlLl9fZXNNb2R1bGV8fG9lJiYiTW9kdWxlIj09PWVbU3ltYm9sLnRvU3RyaW5nVGFnXSkmJihlPWUuZGVmYXVsdCksbyhlKT90LmV4dGVuZChlKTplfWZ1bmN0aW9uIFV0KGUpe3JldHVybiBlLmlzQ29tbWVudCYmZS5hc3luY0ZhY3Rvcnl9ZnVuY3Rpb24genQoZSl7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyl7dmFyIHI9ZVt0XTtpZihuKHIpJiYobihyLmNvbXBvbmVudE9wdGlvbnMpfHxVdChyKSkpcmV0dXJuIHJ9fWZ1bmN0aW9uIFZ0KGUsdCl7UnQuJG9uKGUsdCl9ZnVuY3Rpb24gS3QoZSx0KXtSdC4kb2ZmKGUsdCl9ZnVuY3Rpb24gSnQoZSx0KXt2YXIgbj1SdDtyZXR1cm4gZnVuY3Rpb24gcigpe251bGwhPT10LmFwcGx5KG51bGwsYXJndW1lbnRzKSYmbi4kb2ZmKGUscil9fWZ1bmN0aW9uIHF0KGUsdCxuKXtSdD1lLHJ0KHQsbnx8e30sVnQsS3QsSnQsZSksUnQ9dm9pZCAwfXZhciBXdD1udWxsO2Z1bmN0aW9uIFp0KGUpe3ZhciB0PVd0O3JldHVybiBXdD1lLGZ1bmN0aW9uKCl7V3Q9dH19ZnVuY3Rpb24gR3QoZSl7Zm9yKDtlJiYoZT1lLiRwYXJlbnQpOylpZihlLl9pbmFjdGl2ZSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBYdChlLHQpe2lmKHQpe2lmKGUuX2RpcmVjdEluYWN0aXZlPSExLEd0KGUpKXJldHVybn1lbHNlIGlmKGUuX2RpcmVjdEluYWN0aXZlKXJldHVybjtpZihlLl9pbmFjdGl2ZXx8bnVsbD09PWUuX2luYWN0aXZlKXtlLl9pbmFjdGl2ZT0hMTtmb3IodmFyIG49MDtuPGUuJGNoaWxkcmVuLmxlbmd0aDtuKyspWHQoZS4kY2hpbGRyZW5bbl0pO1l0KGUsImFjdGl2YXRlZCIpfX1mdW5jdGlvbiBZdChlLHQpe2xlKCk7dmFyIG49ZS4kb3B0aW9uc1t0XSxyPXQrIiBob29rIjtpZihuKWZvcih2YXIgaT0wLG89bi5sZW5ndGg7aTxvO2krKylIZShuW2ldLGUsbnVsbCxlLHIpO2UuX2hhc0hvb2tFdmVudCYmZS4kZW1pdCgiaG9vazoiK3QpLGZlKCl9dmFyIFF0PVtdLGVuPVtdLHRuPXt9LG5uPSExLHJuPSExLG9uPTA7dmFyIGFuPTAsc249RGF0ZS5ub3c7aWYoeiYmIXEpe3ZhciBjbj13aW5kb3cucGVyZm9ybWFuY2U7Y24mJiJmdW5jdGlvbiI9PXR5cGVvZiBjbi5ub3cmJnNuKCk+ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkV2ZW50IikudGltZVN0YW1wJiYoc249ZnVuY3Rpb24oKXtyZXR1cm4gY24ubm93KCl9KX1mdW5jdGlvbiB1bigpe3ZhciBlLHQ7Zm9yKGFuPXNuKCkscm49ITAsUXQuc29ydChmdW5jdGlvbihlLHQpe3JldHVybiBlLmlkLXQuaWR9KSxvbj0wO29uPFF0Lmxlbmd0aDtvbisrKShlPVF0W29uXSkuYmVmb3JlJiZlLmJlZm9yZSgpLHQ9ZS5pZCx0blt0XT1udWxsLGUucnVuKCk7dmFyIG49ZW4uc2xpY2UoKSxyPVF0LnNsaWNlKCk7b249UXQubGVuZ3RoPWVuLmxlbmd0aD0wLHRuPXt9LG5uPXJuPSExLGZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKWVbdF0uX2luYWN0aXZlPSEwLFh0KGVbdF0sITApfShuKSxmdW5jdGlvbihlKXt2YXIgdD1lLmxlbmd0aDtmb3IoO3QtLTspe3ZhciBuPWVbdF0scj1uLnZtO3IuX3dhdGNoZXI9PT1uJiZyLl9pc01vdW50ZWQmJiFyLl9pc0Rlc3Ryb3llZCYmWXQociwidXBkYXRlZCIpfX0ociksbmUmJkYuZGV2dG9vbHMmJm5lLmVtaXQoImZsdXNoIil9dmFyIGxuPTAsZm49ZnVuY3Rpb24oZSx0LG4scixpKXt0aGlzLnZtPWUsaSYmKGUuX3dhdGNoZXI9dGhpcyksZS5fd2F0Y2hlcnMucHVzaCh0aGlzKSxyPyh0aGlzLmRlZXA9ISFyLmRlZXAsdGhpcy51c2VyPSEhci51c2VyLHRoaXMubGF6eT0hIXIubGF6eSx0aGlzLnN5bmM9ISFyLnN5bmMsdGhpcy5iZWZvcmU9ci5iZWZvcmUpOnRoaXMuZGVlcD10aGlzLnVzZXI9dGhpcy5sYXp5PXRoaXMuc3luYz0hMSx0aGlzLmNiPW4sdGhpcy5pZD0rK2xuLHRoaXMuYWN0aXZlPSEwLHRoaXMuZGlydHk9dGhpcy5sYXp5LHRoaXMuZGVwcz1bXSx0aGlzLm5ld0RlcHM9W10sdGhpcy5kZXBJZHM9bmV3IGllLHRoaXMubmV3RGVwSWRzPW5ldyBpZSx0aGlzLmV4cHJlc3Npb249IiIsImZ1bmN0aW9uIj09dHlwZW9mIHQ\/dGhpcy5nZXR0ZXI9dDoodGhpcy5nZXR0ZXI9ZnVuY3Rpb24oZSl7aWYoIUgudGVzdChlKSl7dmFyIHQ9ZS5zcGxpdCgiLiIpO3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7aWYoIWUpcmV0dXJuO2U9ZVt0W25dXX1yZXR1cm4gZX19fSh0KSx0aGlzLmdldHRlcnx8KHRoaXMuZ2V0dGVyPVMpKSx0aGlzLnZhbHVlPXRoaXMubGF6eT92b2lkIDA6dGhpcy5nZXQoKX07Zm4ucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3ZhciBlO2xlKHRoaXMpO3ZhciB0PXRoaXMudm07dHJ5e2U9dGhpcy5nZXR0ZXIuY2FsbCh0LHQpfWNhdGNoKGUpe2lmKCF0aGlzLnVzZXIpdGhyb3cgZTtSZShlLHQsJ2dldHRlciBmb3Igd2F0Y2hlciAiJyt0aGlzLmV4cHJlc3Npb24rJyInKX1maW5hbGx5e3RoaXMuZGVlcCYmZXQoZSksZmUoKSx0aGlzLmNsZWFudXBEZXBzKCl9cmV0dXJuIGV9LGZuLnByb3RvdHlwZS5hZGREZXA9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5pZDt0aGlzLm5ld0RlcElkcy5oYXModCl8fCh0aGlzLm5ld0RlcElkcy5hZGQodCksdGhpcy5uZXdEZXBzLnB1c2goZSksdGhpcy5kZXBJZHMuaGFzKHQpfHxlLmFkZFN1Yih0aGlzKSl9LGZuLnByb3RvdHlwZS5jbGVhbnVwRGVwcz1mdW5jdGlvbigpe2Zvcih2YXIgZT10aGlzLmRlcHMubGVuZ3RoO2UtLTspe3ZhciB0PXRoaXMuZGVwc1tlXTt0aGlzLm5ld0RlcElkcy5oYXModC5pZCl8fHQucmVtb3ZlU3ViKHRoaXMpfXZhciBuPXRoaXMuZGVwSWRzO3RoaXMuZGVwSWRzPXRoaXMubmV3RGVwSWRzLHRoaXMubmV3RGVwSWRzPW4sdGhpcy5uZXdEZXBJZHMuY2xlYXIoKSxuPXRoaXMuZGVwcyx0aGlzLmRlcHM9dGhpcy5uZXdEZXBzLHRoaXMubmV3RGVwcz1uLHRoaXMubmV3RGVwcy5sZW5ndGg9MH0sZm4ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbigpe3RoaXMubGF6eT90aGlzLmRpcnR5PSEwOnRoaXMuc3luYz90aGlzLnJ1bigpOmZ1bmN0aW9uKGUpe3ZhciB0PWUuaWQ7aWYobnVsbD09dG5bdF0pe2lmKHRuW3RdPSEwLHJuKXtmb3IodmFyIG49UXQubGVuZ3RoLTE7bj5vbiYmUXRbbl0uaWQ+ZS5pZDspbi0tO1F0LnNwbGljZShuKzEsMCxlKX1lbHNlIFF0LnB1c2goZSk7bm58fChubj0hMCxZZSh1bikpfX0odGhpcyl9LGZuLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXtpZih0aGlzLmFjdGl2ZSl7dmFyIGU9dGhpcy5nZXQoKTtpZihlIT09dGhpcy52YWx1ZXx8byhlKXx8dGhpcy5kZWVwKXt2YXIgdD10aGlzLnZhbHVlO2lmKHRoaXMudmFsdWU9ZSx0aGlzLnVzZXIpdHJ5e3RoaXMuY2IuY2FsbCh0aGlzLnZtLGUsdCl9Y2F0Y2goZSl7UmUoZSx0aGlzLnZtLCdjYWxsYmFjayBmb3Igd2F0Y2hlciAiJyt0aGlzLmV4cHJlc3Npb24rJyInKX1lbHNlIHRoaXMuY2IuY2FsbCh0aGlzLnZtLGUsdCl9fX0sZm4ucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKCl7dGhpcy52YWx1ZT10aGlzLmdldCgpLHRoaXMuZGlydHk9ITF9LGZuLnByb3RvdHlwZS5kZXBlbmQ9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5kZXBzLmxlbmd0aDtlLS07KXRoaXMuZGVwc1tlXS5kZXBlbmQoKX0sZm4ucHJvdG90eXBlLnRlYXJkb3duPWZ1bmN0aW9uKCl7aWYodGhpcy5hY3RpdmUpe3RoaXMudm0uX2lzQmVpbmdEZXN0cm95ZWR8fGgodGhpcy52bS5fd2F0Y2hlcnMsdGhpcyk7Zm9yKHZhciBlPXRoaXMuZGVwcy5sZW5ndGg7ZS0tOyl0aGlzLmRlcHNbZV0ucmVtb3ZlU3ViKHRoaXMpO3RoaXMuYWN0aXZlPSExfX07dmFyIHBuPXtlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCxnZXQ6UyxzZXQ6U307ZnVuY3Rpb24gZG4oZSx0LG4pe3BuLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzW3RdW25dfSxwbi5zZXQ9ZnVuY3Rpb24oZSl7dGhpc1t0XVtuXT1lfSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxuLHBuKX1mdW5jdGlvbiB2bihlKXtlLl93YXRjaGVycz1bXTt2YXIgdD1lLiRvcHRpb25zO3QucHJvcHMmJmZ1bmN0aW9uKGUsdCl7dmFyIG49ZS4kb3B0aW9ucy5wcm9wc0RhdGF8fHt9LHI9ZS5fcHJvcHM9e30saT1lLiRvcHRpb25zLl9wcm9wS2V5cz1bXTtlLiRwYXJlbnQmJiRlKCExKTt2YXIgbz1mdW5jdGlvbihvKXtpLnB1c2gobyk7dmFyIGE9TWUobyx0LG4sZSk7eGUocixvLGEpLG8gaW4gZXx8ZG4oZSwiX3Byb3BzIixvKX07Zm9yKHZhciBhIGluIHQpbyhhKTskZSghMCl9KGUsdC5wcm9wcyksdC5tZXRob2RzJiZmdW5jdGlvbihlLHQpe2UuJG9wdGlvbnMucHJvcHM7Zm9yKHZhciBuIGluIHQpZVtuXT0iZnVuY3Rpb24iIT10eXBlb2YgdFtuXT9TOngodFtuXSxlKX0oZSx0Lm1ldGhvZHMpLHQuZGF0YT9mdW5jdGlvbihlKXt2YXIgdD1lLiRvcHRpb25zLmRhdGE7cyh0PWUuX2RhdGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ\/ZnVuY3Rpb24oZSx0KXtsZSgpO3RyeXtyZXR1cm4gZS5jYWxsKHQsdCl9Y2F0Y2goZSl7cmV0dXJuIFJlKGUsdCwiZGF0YSgpIikse319ZmluYWxseXtmZSgpfX0odCxlKTp0fHx7fSl8fCh0PXt9KTt2YXIgbj1PYmplY3Qua2V5cyh0KSxyPWUuJG9wdGlvbnMucHJvcHMsaT0oZS4kb3B0aW9ucy5tZXRob2RzLG4ubGVuZ3RoKTtmb3IoO2ktLTspe3ZhciBvPW5baV07ciYmeShyLG8pfHwoYT12b2lkIDAsMzYhPT0oYT0obysiIikuY2hhckNvZGVBdCgwKSkmJjk1IT09YSYmZG4oZSwiX2RhdGEiLG8pKX12YXIgYTtDZSh0LCEwKX0oZSk6Q2UoZS5fZGF0YT17fSwhMCksdC5jb21wdXRlZCYmZnVuY3Rpb24oZSx0KXt2YXIgbj1lLl9jb21wdXRlZFdhdGNoZXJzPU9iamVjdC5jcmVhdGUobnVsbCkscj10ZSgpO2Zvcih2YXIgaSBpbiB0KXt2YXIgbz10W2ldLGE9ImZ1bmN0aW9uIj09dHlwZW9mIG8\/bzpvLmdldDtyfHwobltpXT1uZXcgZm4oZSxhfHxTLFMsaG4pKSxpIGluIGV8fG1uKGUsaSxvKX19KGUsdC5jb21wdXRlZCksdC53YXRjaCYmdC53YXRjaCE9PVkmJmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuIGluIHQpe3ZhciByPXRbbl07aWYoQXJyYXkuaXNBcnJheShyKSlmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKylfbihlLG4scltpXSk7ZWxzZSBfbihlLG4scil9fShlLHQud2F0Y2gpfXZhciBobj17bGF6eTohMH07ZnVuY3Rpb24gbW4oZSx0LG4pe3ZhciByPSF0ZSgpOyJmdW5jdGlvbiI9PXR5cGVvZiBuPyhwbi5nZXQ9cj95bih0KTpnbihuKSxwbi5zZXQ9Uyk6KHBuLmdldD1uLmdldD9yJiYhMSE9PW4uY2FjaGU\/eW4odCk6Z24obi5nZXQpOlMscG4uc2V0PW4uc2V0fHxTKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHBuKX1mdW5jdGlvbiB5bihlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9jb21wdXRlZFdhdGNoZXJzJiZ0aGlzLl9jb21wdXRlZFdhdGNoZXJzW2VdO2lmKHQpcmV0dXJuIHQuZGlydHkmJnQuZXZhbHVhdGUoKSxjZS50YXJnZXQmJnQuZGVwZW5kKCksdC52YWx1ZX19ZnVuY3Rpb24gZ24oZSl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGUuY2FsbCh0aGlzLHRoaXMpfX1mdW5jdGlvbiBfbihlLHQsbixyKXtyZXR1cm4gcyhuKSYmKHI9bixuPW4uaGFuZGxlciksInN0cmluZyI9PXR5cGVvZiBuJiYobj1lW25dKSxlLiR3YXRjaCh0LG4scil9dmFyIGJuPTA7ZnVuY3Rpb24gJG4oZSl7dmFyIHQ9ZS5vcHRpb25zO2lmKGUuc3VwZXIpe3ZhciBuPSRuKGUuc3VwZXIpO2lmKG4hPT1lLnN1cGVyT3B0aW9ucyl7ZS5zdXBlck9wdGlvbnM9bjt2YXIgcj1mdW5jdGlvbihlKXt2YXIgdCxuPWUub3B0aW9ucyxyPWUuc2VhbGVkT3B0aW9ucztmb3IodmFyIGkgaW4gbiluW2ldIT09cltpXSYmKHR8fCh0PXt9KSx0W2ldPW5baV0pO3JldHVybiB0fShlKTtyJiZBKGUuZXh0ZW5kT3B0aW9ucyxyKSwodD1lLm9wdGlvbnM9RGUobixlLmV4dGVuZE9wdGlvbnMpKS5uYW1lJiYodC5jb21wb25lbnRzW3QubmFtZV09ZSl9fXJldHVybiB0fWZ1bmN0aW9uIHduKGUpe3RoaXMuX2luaXQoZSl9ZnVuY3Rpb24gQ24oZSl7ZS5jaWQ9MDt2YXIgdD0xO2UuZXh0ZW5kPWZ1bmN0aW9uKGUpe2U9ZXx8e307dmFyIG49dGhpcyxyPW4uY2lkLGk9ZS5fQ3Rvcnx8KGUuX0N0b3I9e30pO2lmKGlbcl0pcmV0dXJuIGlbcl07dmFyIG89ZS5uYW1lfHxuLm9wdGlvbnMubmFtZSxhPWZ1bmN0aW9uKGUpe3RoaXMuX2luaXQoZSl9O3JldHVybihhLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKG4ucHJvdG90eXBlKSkuY29uc3RydWN0b3I9YSxhLmNpZD10KyssYS5vcHRpb25zPURlKG4ub3B0aW9ucyxlKSxhLnN1cGVyPW4sYS5vcHRpb25zLnByb3BzJiZmdW5jdGlvbihlKXt2YXIgdD1lLm9wdGlvbnMucHJvcHM7Zm9yKHZhciBuIGluIHQpZG4oZS5wcm90b3R5cGUsIl9wcm9wcyIsbil9KGEpLGEub3B0aW9ucy5jb21wdXRlZCYmZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vcHRpb25zLmNvbXB1dGVkO2Zvcih2YXIgbiBpbiB0KW1uKGUucHJvdG90eXBlLG4sdFtuXSl9KGEpLGEuZXh0ZW5kPW4uZXh0ZW5kLGEubWl4aW49bi5taXhpbixhLnVzZT1uLnVzZSxNLmZvckVhY2goZnVuY3Rpb24oZSl7YVtlXT1uW2VdfSksbyYmKGEub3B0aW9ucy5jb21wb25lbnRzW29dPWEpLGEuc3VwZXJPcHRpb25zPW4ub3B0aW9ucyxhLmV4dGVuZE9wdGlvbnM9ZSxhLnNlYWxlZE9wdGlvbnM9QSh7fSxhLm9wdGlvbnMpLGlbcl09YSxhfX1mdW5jdGlvbiB4bihlKXtyZXR1cm4gZSYmKGUuQ3Rvci5vcHRpb25zLm5hbWV8fGUudGFnKX1mdW5jdGlvbiBrbihlLHQpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP2UuaW5kZXhPZih0KT4tMToic3RyaW5nIj09dHlwZW9mIGU\/ZS5zcGxpdCgiLCIpLmluZGV4T2YodCk+LTE6KG49ZSwiW29iamVjdCBSZWdFeHBdIj09PWEuY2FsbChuKSYmZS50ZXN0KHQpKTt2YXIgbn1mdW5jdGlvbiBBbihlLHQpe3ZhciBuPWUuY2FjaGUscj1lLmtleXMsaT1lLl92bm9kZTtmb3IodmFyIG8gaW4gbil7dmFyIGE9bltvXTtpZihhKXt2YXIgcz14bihhLmNvbXBvbmVudE9wdGlvbnMpO3MmJiF0KHMpJiZPbihuLG8scixpKX19fWZ1bmN0aW9uIE9uKGUsdCxuLHIpe3ZhciBpPWVbdF07IWl8fHImJmkudGFnPT09ci50YWd8fGkuY29tcG9uZW50SW5zdGFuY2UuJGRlc3Ryb3koKSxlW3RdPW51bGwsaChuLHQpfSFmdW5jdGlvbih0KXt0LnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0KXt2YXIgbj10aGlzO24uX3VpZD1ibisrLG4uX2lzVnVlPSEwLHQmJnQuX2lzQ29tcG9uZW50P2Z1bmN0aW9uKGUsdCl7dmFyIG49ZS4kb3B0aW9ucz1PYmplY3QuY3JlYXRlKGUuY29uc3RydWN0b3Iub3B0aW9ucykscj10Ll9wYXJlbnRWbm9kZTtuLnBhcmVudD10LnBhcmVudCxuLl9wYXJlbnRWbm9kZT1yO3ZhciBpPXIuY29tcG9uZW50T3B0aW9ucztuLnByb3BzRGF0YT1pLnByb3BzRGF0YSxuLl9wYXJlbnRMaXN0ZW5lcnM9aS5saXN0ZW5lcnMsbi5fcmVuZGVyQ2hpbGRyZW49aS5jaGlsZHJlbixuLl9jb21wb25lbnRUYWc9aS50YWcsdC5yZW5kZXImJihuLnJlbmRlcj10LnJlbmRlcixuLnN0YXRpY1JlbmRlckZucz10LnN0YXRpY1JlbmRlckZucyl9KG4sdCk6bi4kb3B0aW9ucz1EZSgkbihuLmNvbnN0cnVjdG9yKSx0fHx7fSxuKSxuLl9yZW5kZXJQcm94eT1uLG4uX3NlbGY9bixmdW5jdGlvbihlKXt2YXIgdD1lLiRvcHRpb25zLG49dC5wYXJlbnQ7aWYobiYmIXQuYWJzdHJhY3Qpe2Zvcig7bi4kb3B0aW9ucy5hYnN0cmFjdCYmbi4kcGFyZW50OyluPW4uJHBhcmVudDtuLiRjaGlsZHJlbi5wdXNoKGUpfWUuJHBhcmVudD1uLGUuJHJvb3Q9bj9uLiRyb290OmUsZS4kY2hpbGRyZW49W10sZS4kcmVmcz17fSxlLl93YXRjaGVyPW51bGwsZS5faW5hY3RpdmU9bnVsbCxlLl9kaXJlY3RJbmFjdGl2ZT0hMSxlLl9pc01vdW50ZWQ9ITEsZS5faXNEZXN0cm95ZWQ9ITEsZS5faXNCZWluZ0Rlc3Ryb3llZD0hMX0obiksZnVuY3Rpb24oZSl7ZS5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksZS5faGFzSG9va0V2ZW50PSExO3ZhciB0PWUuJG9wdGlvbnMuX3BhcmVudExpc3RlbmVyczt0JiZxdChlLHQpfShuKSxmdW5jdGlvbih0KXt0Ll92bm9kZT1udWxsLHQuX3N0YXRpY1RyZWVzPW51bGw7dmFyIG49dC4kb3B0aW9ucyxyPXQuJHZub2RlPW4uX3BhcmVudFZub2RlLGk9ciYmci5jb250ZXh0O3QuJHNsb3RzPXV0KG4uX3JlbmRlckNoaWxkcmVuLGkpLHQuJHNjb3BlZFNsb3RzPWUsdC5fYz1mdW5jdGlvbihlLG4scixpKXtyZXR1cm4gUHQodCxlLG4scixpLCExKX0sdC4kY3JlYXRlRWxlbWVudD1mdW5jdGlvbihlLG4scixpKXtyZXR1cm4gUHQodCxlLG4scixpLCEwKX07dmFyIG89ciYmci5kYXRhO3hlKHQsIiRhdHRycyIsbyYmby5hdHRyc3x8ZSxudWxsLCEwKSx4ZSh0LCIkbGlzdGVuZXJzIixuLl9wYXJlbnRMaXN0ZW5lcnN8fGUsbnVsbCwhMCl9KG4pLFl0KG4sImJlZm9yZUNyZWF0ZSIpLGZ1bmN0aW9uKGUpe3ZhciB0PWN0KGUuJG9wdGlvbnMuaW5qZWN0LGUpO3QmJigkZSghMSksT2JqZWN0LmtleXModCkuZm9yRWFjaChmdW5jdGlvbihuKXt4ZShlLG4sdFtuXSl9KSwkZSghMCkpfShuKSx2bihuKSxmdW5jdGlvbihlKXt2YXIgdD1lLiRvcHRpb25zLnByb3ZpZGU7dCYmKGUuX3Byb3ZpZGVkPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3QuY2FsbChlKTp0KX0obiksWXQobiwiY3JlYXRlZCIpLG4uJG9wdGlvbnMuZWwmJm4uJG1vdW50KG4uJG9wdGlvbnMuZWwpfX0od24pLGZ1bmN0aW9uKGUpe3ZhciB0PXtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZGF0YX19LG49e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wcm9wc319O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiJGRhdGEiLHQpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLnByb3RvdHlwZSwiJHByb3BzIixuKSxlLnByb3RvdHlwZS4kc2V0PWtlLGUucHJvdG90eXBlLiRkZWxldGU9QWUsZS5wcm90b3R5cGUuJHdhdGNoPWZ1bmN0aW9uKGUsdCxuKXtpZihzKHQpKXJldHVybiBfbih0aGlzLGUsdCxuKTsobj1ufHx7fSkudXNlcj0hMDt2YXIgcj1uZXcgZm4odGhpcyxlLHQsbik7aWYobi5pbW1lZGlhdGUpdHJ5e3QuY2FsbCh0aGlzLHIudmFsdWUpfWNhdGNoKGUpe1JlKGUsdGhpcywnY2FsbGJhY2sgZm9yIGltbWVkaWF0ZSB3YXRjaGVyICInK3IuZXhwcmVzc2lvbisnIicpfXJldHVybiBmdW5jdGlvbigpe3IudGVhcmRvd24oKX19fSh3biksZnVuY3Rpb24oZSl7dmFyIHQ9L15ob29rOi87ZS5wcm90b3R5cGUuJG9uPWZ1bmN0aW9uKGUsbil7dmFyIHI9dGhpcztpZihBcnJheS5pc0FycmF5KGUpKWZvcih2YXIgaT0wLG89ZS5sZW5ndGg7aTxvO2krKylyLiRvbihlW2ldLG4pO2Vsc2Uoci5fZXZlbnRzW2VdfHwoci5fZXZlbnRzW2VdPVtdKSkucHVzaChuKSx0LnRlc3QoZSkmJihyLl9oYXNIb29rRXZlbnQ9ITApO3JldHVybiByfSxlLnByb3RvdHlwZS4kb25jZT1mdW5jdGlvbihlLHQpe3ZhciBuPXRoaXM7ZnVuY3Rpb24gcigpe24uJG9mZihlLHIpLHQuYXBwbHkobixhcmd1bWVudHMpfXJldHVybiByLmZuPXQsbi4kb24oZSxyKSxufSxlLnByb3RvdHlwZS4kb2ZmPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcztpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbi5fZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCksbjtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHI9MCxpPWUubGVuZ3RoO3I8aTtyKyspbi4kb2ZmKGVbcl0sdCk7cmV0dXJuIG59dmFyIG8sYT1uLl9ldmVudHNbZV07aWYoIWEpcmV0dXJuIG47aWYoIXQpcmV0dXJuIG4uX2V2ZW50c1tlXT1udWxsLG47Zm9yKHZhciBzPWEubGVuZ3RoO3MtLTspaWYoKG89YVtzXSk9PT10fHxvLmZuPT09dCl7YS5zcGxpY2UocywxKTticmVha31yZXR1cm4gbn0sZS5wcm90b3R5cGUuJGVtaXQ9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5fZXZlbnRzW2VdO2lmKHQpe3Q9dC5sZW5ndGg+MT9rKHQpOnQ7Zm9yKHZhciBuPWsoYXJndW1lbnRzLDEpLHI9J2V2ZW50IGhhbmRsZXIgZm9yICInK2UrJyInLGk9MCxvPXQubGVuZ3RoO2k8bztpKyspSGUodFtpXSx0aGlzLG4sdGhpcyxyKX1yZXR1cm4gdGhpc319KHduKSxmdW5jdGlvbihlKXtlLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcyxyPW4uJGVsLGk9bi5fdm5vZGUsbz1adChuKTtuLl92bm9kZT1lLG4uJGVsPWk\/bi5fX3BhdGNoX18oaSxlKTpuLl9fcGF0Y2hfXyhuLiRlbCxlLHQsITEpLG8oKSxyJiYoci5fX3Z1ZV9fPW51bGwpLG4uJGVsJiYobi4kZWwuX192dWVfXz1uKSxuLiR2bm9kZSYmbi4kcGFyZW50JiZuLiR2bm9kZT09PW4uJHBhcmVudC5fdm5vZGUmJihuLiRwYXJlbnQuJGVsPW4uJGVsKX0sZS5wcm90b3R5cGUuJGZvcmNlVXBkYXRlPWZ1bmN0aW9uKCl7dGhpcy5fd2F0Y2hlciYmdGhpcy5fd2F0Y2hlci51cGRhdGUoKX0sZS5wcm90b3R5cGUuJGRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO2lmKCFlLl9pc0JlaW5nRGVzdHJveWVkKXtZdChlLCJiZWZvcmVEZXN0cm95IiksZS5faXNCZWluZ0Rlc3Ryb3llZD0hMDt2YXIgdD1lLiRwYXJlbnQ7IXR8fHQuX2lzQmVpbmdEZXN0cm95ZWR8fGUuJG9wdGlvbnMuYWJzdHJhY3R8fGgodC4kY2hpbGRyZW4sZSksZS5fd2F0Y2hlciYmZS5fd2F0Y2hlci50ZWFyZG93bigpO2Zvcih2YXIgbj1lLl93YXRjaGVycy5sZW5ndGg7bi0tOyllLl93YXRjaGVyc1tuXS50ZWFyZG93bigpO2UuX2RhdGEuX19vYl9fJiZlLl9kYXRhLl9fb2JfXy52bUNvdW50LS0sZS5faXNEZXN0cm95ZWQ9ITAsZS5fX3BhdGNoX18oZS5fdm5vZGUsbnVsbCksWXQoZSwiZGVzdHJveWVkIiksZS4kb2ZmKCksZS4kZWwmJihlLiRlbC5fX3Z1ZV9fPW51bGwpLGUuJHZub2RlJiYoZS4kdm5vZGUucGFyZW50PW51bGwpfX19KHduKSxmdW5jdGlvbihlKXtTdChlLnByb3RvdHlwZSksZS5wcm90b3R5cGUuJG5leHRUaWNrPWZ1bmN0aW9uKGUpe3JldHVybiBZZShlLHRoaXMpfSxlLnByb3RvdHlwZS5fcmVuZGVyPWZ1bmN0aW9uKCl7dmFyIGUsdD10aGlzLG49dC4kb3B0aW9ucyxyPW4ucmVuZGVyLGk9bi5fcGFyZW50Vm5vZGU7aSYmKHQuJHNjb3BlZFNsb3RzPWZ0KGkuZGF0YS5zY29wZWRTbG90cyx0LiRzbG90cyx0LiRzY29wZWRTbG90cykpLHQuJHZub2RlPWk7dHJ5e0h0PXQsZT1yLmNhbGwodC5fcmVuZGVyUHJveHksdC4kY3JlYXRlRWxlbWVudCl9Y2F0Y2gobil7UmUobix0LCJyZW5kZXIiKSxlPXQuX3Zub2RlfWZpbmFsbHl7SHQ9bnVsbH1yZXR1cm4gQXJyYXkuaXNBcnJheShlKSYmMT09PWUubGVuZ3RoJiYoZT1lWzBdKSxlIGluc3RhbmNlb2YgcGV8fChlPXZlKCkpLGUucGFyZW50PWksZX19KHduKTt2YXIgU249W1N0cmluZyxSZWdFeHAsQXJyYXldLFRuPXtLZWVwQWxpdmU6e25hbWU6ImtlZXAtYWxpdmUiLGFic3RyYWN0OiEwLHByb3BzOntpbmNsdWRlOlNuLGV4Y2x1ZGU6U24sbWF4OltTdHJpbmcsTnVtYmVyXX0sY3JlYXRlZDpmdW5jdGlvbigpe3RoaXMuY2FjaGU9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLmtleXM9W119LGRlc3Ryb3llZDpmdW5jdGlvbigpe2Zvcih2YXIgZSBpbiB0aGlzLmNhY2hlKU9uKHRoaXMuY2FjaGUsZSx0aGlzLmtleXMpfSxtb3VudGVkOmZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLiR3YXRjaCgiaW5jbHVkZSIsZnVuY3Rpb24odCl7QW4oZSxmdW5jdGlvbihlKXtyZXR1cm4ga24odCxlKX0pfSksdGhpcy4kd2F0Y2goImV4Y2x1ZGUiLGZ1bmN0aW9uKHQpe0FuKGUsZnVuY3Rpb24oZSl7cmV0dXJuIWtuKHQsZSl9KX0pfSxyZW5kZXI6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLiRzbG90cy5kZWZhdWx0LHQ9enQoZSksbj10JiZ0LmNvbXBvbmVudE9wdGlvbnM7aWYobil7dmFyIHI9eG4obiksaT10aGlzLmluY2x1ZGUsbz10aGlzLmV4Y2x1ZGU7aWYoaSYmKCFyfHwha24oaSxyKSl8fG8mJnImJmtuKG8scikpcmV0dXJuIHQ7dmFyIGE9dGhpcy5jYWNoZSxzPXRoaXMua2V5cyxjPW51bGw9PXQua2V5P24uQ3Rvci5jaWQrKG4udGFnPyI6OiIrbi50YWc6IiIpOnQua2V5O2FbY10\/KHQuY29tcG9uZW50SW5zdGFuY2U9YVtjXS5jb21wb25lbnRJbnN0YW5jZSxoKHMsYykscy5wdXNoKGMpKTooYVtjXT10LHMucHVzaChjKSx0aGlzLm1heCYmcy5sZW5ndGg+cGFyc2VJbnQodGhpcy5tYXgpJiZPbihhLHNbMF0scyx0aGlzLl92bm9kZSkpLHQuZGF0YS5rZWVwQWxpdmU9ITB9cmV0dXJuIHR8fGUmJmVbMF19fX07IWZ1bmN0aW9uKGUpe3ZhciB0PXtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gRn19O09iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJjb25maWciLHQpLGUudXRpbD17d2FybjphZSxleHRlbmQ6QSxtZXJnZU9wdGlvbnM6RGUsZGVmaW5lUmVhY3RpdmU6eGV9LGUuc2V0PWtlLGUuZGVsZXRlPUFlLGUubmV4dFRpY2s9WWUsZS5vYnNlcnZhYmxlPWZ1bmN0aW9uKGUpe3JldHVybiBDZShlKSxlfSxlLm9wdGlvbnM9T2JqZWN0LmNyZWF0ZShudWxsKSxNLmZvckVhY2goZnVuY3Rpb24odCl7ZS5vcHRpb25zW3QrInMiXT1PYmplY3QuY3JlYXRlKG51bGwpfSksZS5vcHRpb25zLl9iYXNlPWUsQShlLm9wdGlvbnMuY29tcG9uZW50cyxUbiksZnVuY3Rpb24oZSl7ZS51c2U9ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5faW5zdGFsbGVkUGx1Z2luc3x8KHRoaXMuX2luc3RhbGxlZFBsdWdpbnM9W10pO2lmKHQuaW5kZXhPZihlKT4tMSlyZXR1cm4gdGhpczt2YXIgbj1rKGFyZ3VtZW50cywxKTtyZXR1cm4gbi51bnNoaWZ0KHRoaXMpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLmluc3RhbGw\/ZS5pbnN0YWxsLmFwcGx5KGUsbik6ImZ1bmN0aW9uIj09dHlwZW9mIGUmJmUuYXBwbHkobnVsbCxuKSx0LnB1c2goZSksdGhpc319KGUpLGZ1bmN0aW9uKGUpe2UubWl4aW49ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMub3B0aW9ucz1EZSh0aGlzLm9wdGlvbnMsZSksdGhpc319KGUpLENuKGUpLGZ1bmN0aW9uKGUpe00uZm9yRWFjaChmdW5jdGlvbih0KXtlW3RdPWZ1bmN0aW9uKGUsbil7cmV0dXJuIG4\/KCJjb21wb25lbnQiPT09dCYmcyhuKSYmKG4ubmFtZT1uLm5hbWV8fGUsbj10aGlzLm9wdGlvbnMuX2Jhc2UuZXh0ZW5kKG4pKSwiZGlyZWN0aXZlIj09PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiBuJiYobj17YmluZDpuLHVwZGF0ZTpufSksdGhpcy5vcHRpb25zW3QrInMiXVtlXT1uLG4pOnRoaXMub3B0aW9uc1t0KyJzIl1bZV19fSl9KGUpfSh3biksT2JqZWN0LmRlZmluZVByb3BlcnR5KHduLnByb3RvdHlwZSwiJGlzU2VydmVyIix7Z2V0OnRlfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHduLnByb3RvdHlwZSwiJHNzckNvbnRleHQiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kdm5vZGUmJnRoaXMuJHZub2RlLnNzckNvbnRleHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHduLCJGdW5jdGlvbmFsUmVuZGVyQ29udGV4dCIse3ZhbHVlOlR0fSksd24udmVyc2lvbj0iMi42LjExIjt2YXIgRW49cCgic3R5bGUsY2xhc3MiKSxObj1wKCJpbnB1dCx0ZXh0YXJlYSxvcHRpb24sc2VsZWN0LHByb2dyZXNzIiksam49ZnVuY3Rpb24oZSx0LG4pe3JldHVybiJ2YWx1ZSI9PT1uJiZObihlKSYmImJ1dHRvbiIhPT10fHwic2VsZWN0ZWQiPT09biYmIm9wdGlvbiI9PT1lfHwiY2hlY2tlZCI9PT1uJiYiaW5wdXQiPT09ZXx8Im11dGVkIj09PW4mJiJ2aWRlbyI9PT1lfSxEbj1wKCJjb250ZW50ZWRpdGFibGUsZHJhZ2dhYmxlLHNwZWxsY2hlY2siKSxMbj1wKCJldmVudHMsY2FyZXQsdHlwaW5nLHBsYWludGV4dC1vbmx5IiksTW49ZnVuY3Rpb24oZSx0KXtyZXR1cm4gSG4odCl8fCJmYWxzZSI9PT10PyJmYWxzZSI6ImNvbnRlbnRlZGl0YWJsZSI9PT1lJiZMbih0KT90OiJ0cnVlIn0sSW49cCgiYWxsb3dmdWxsc2NyZWVuLGFzeW5jLGF1dG9mb2N1cyxhdXRvcGxheSxjaGVja2VkLGNvbXBhY3QsY29udHJvbHMsZGVjbGFyZSxkZWZhdWx0LGRlZmF1bHRjaGVja2VkLGRlZmF1bHRtdXRlZCxkZWZhdWx0c2VsZWN0ZWQsZGVmZXIsZGlzYWJsZWQsZW5hYmxlZCxmb3Jtbm92YWxpZGF0ZSxoaWRkZW4saW5kZXRlcm1pbmF0ZSxpbmVydCxpc21hcCxpdGVtc2NvcGUsbG9vcCxtdWx0aXBsZSxtdXRlZCxub2hyZWYsbm9yZXNpemUsbm9zaGFkZSxub3ZhbGlkYXRlLG5vd3JhcCxvcGVuLHBhdXNlb25leGl0LHJlYWRvbmx5LHJlcXVpcmVkLHJldmVyc2VkLHNjb3BlZCxzZWFtbGVzcyxzZWxlY3RlZCxzb3J0YWJsZSx0cmFuc2xhdGUsdHJ1ZXNwZWVkLHR5cGVtdXN0bWF0Y2gsdmlzaWJsZSIpLEZuPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIixQbj1mdW5jdGlvbihlKXtyZXR1cm4iOiI9PT1lLmNoYXJBdCg1KSYmInhsaW5rIj09PWUuc2xpY2UoMCw1KX0sUm49ZnVuY3Rpb24oZSl7cmV0dXJuIFBuKGUpP2Uuc2xpY2UoNixlLmxlbmd0aCk6IiJ9LEhuPWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lfHwhMT09PWV9O2Z1bmN0aW9uIEJuKGUpe2Zvcih2YXIgdD1lLmRhdGEscj1lLGk9ZTtuKGkuY29tcG9uZW50SW5zdGFuY2UpOykoaT1pLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSkmJmkuZGF0YSYmKHQ9VW4oaS5kYXRhLHQpKTtmb3IoO24ocj1yLnBhcmVudCk7KXImJnIuZGF0YSYmKHQ9VW4odCxyLmRhdGEpKTtyZXR1cm4gZnVuY3Rpb24oZSx0KXtpZihuKGUpfHxuKHQpKXJldHVybiB6bihlLFZuKHQpKTtyZXR1cm4iIn0odC5zdGF0aWNDbGFzcyx0LmNsYXNzKX1mdW5jdGlvbiBVbihlLHQpe3JldHVybntzdGF0aWNDbGFzczp6bihlLnN0YXRpY0NsYXNzLHQuc3RhdGljQ2xhc3MpLGNsYXNzOm4oZS5jbGFzcyk\/W2UuY2xhc3MsdC5jbGFzc106dC5jbGFzc319ZnVuY3Rpb24gem4oZSx0KXtyZXR1cm4gZT90P2UrIiAiK3Q6ZTp0fHwiIn1mdW5jdGlvbiBWbihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9mdW5jdGlvbihlKXtmb3IodmFyIHQscj0iIixpPTAsbz1lLmxlbmd0aDtpPG87aSsrKW4odD1WbihlW2ldKSkmJiIiIT09dCYmKHImJihyKz0iICIpLHIrPXQpO3JldHVybiByfShlKTpvKGUpP2Z1bmN0aW9uKGUpe3ZhciB0PSIiO2Zvcih2YXIgbiBpbiBlKWVbbl0mJih0JiYodCs9IiAiKSx0Kz1uKTtyZXR1cm4gdH0oZSk6InN0cmluZyI9PXR5cGVvZiBlP2U6IiJ9dmFyIEtuPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixtYXRoOiJodHRwOi8vd3d3LnczLm9yZy8xOTk4L01hdGgvTWF0aE1MIn0sSm49cCgiaHRtbCxib2R5LGJhc2UsaGVhZCxsaW5rLG1ldGEsc3R5bGUsdGl0bGUsYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGZvb3RlcixoZWFkZXIsaDEsaDIsaDMsaDQsaDUsaDYsaGdyb3VwLG5hdixzZWN0aW9uLGRpdixkZCxkbCxkdCxmaWdjYXB0aW9uLGZpZ3VyZSxwaWN0dXJlLGhyLGltZyxsaSxtYWluLG9sLHAscHJlLHVsLGEsYixhYmJyLGJkaSxiZG8sYnIsY2l0ZSxjb2RlLGRhdGEsZGZuLGVtLGksa2JkLG1hcmsscSxycCxydCxydGMscnVieSxzLHNhbXAsc21hbGwsc3BhbixzdHJvbmcsc3ViLHN1cCx0aW1lLHUsdmFyLHdicixhcmVhLGF1ZGlvLG1hcCx0cmFjayx2aWRlbyxlbWJlZCxvYmplY3QscGFyYW0sc291cmNlLGNhbnZhcyxzY3JpcHQsbm9zY3JpcHQsZGVsLGlucyxjYXB0aW9uLGNvbCxjb2xncm91cCx0YWJsZSx0aGVhZCx0Ym9keSx0ZCx0aCx0cixidXR0b24sZGF0YWxpc3QsZmllbGRzZXQsZm9ybSxpbnB1dCxsYWJlbCxsZWdlbmQsbWV0ZXIsb3B0Z3JvdXAsb3B0aW9uLG91dHB1dCxwcm9ncmVzcyxzZWxlY3QsdGV4dGFyZWEsZGV0YWlscyxkaWFsb2csbWVudSxtZW51aXRlbSxzdW1tYXJ5LGNvbnRlbnQsZWxlbWVudCxzaGFkb3csdGVtcGxhdGUsYmxvY2txdW90ZSxpZnJhbWUsdGZvb3QiKSxxbj1wKCJzdmcsYW5pbWF0ZSxjaXJjbGUsY2xpcHBhdGgsY3Vyc29yLGRlZnMsZGVzYyxlbGxpcHNlLGZpbHRlcixmb250LWZhY2UsZm9yZWlnbk9iamVjdCxnLGdseXBoLGltYWdlLGxpbmUsbWFya2VyLG1hc2ssbWlzc2luZy1nbHlwaCxwYXRoLHBhdHRlcm4scG9seWdvbixwb2x5bGluZSxyZWN0LHN3aXRjaCxzeW1ib2wsdGV4dCx0ZXh0cGF0aCx0c3Bhbix1c2UsdmlldyIsITApLFduPWZ1bmN0aW9uKGUpe3JldHVybiBKbihlKXx8cW4oZSl9O2Z1bmN0aW9uIFpuKGUpe3JldHVybiBxbihlKT8ic3ZnIjoibWF0aCI9PT1lPyJtYXRoIjp2b2lkIDB9dmFyIEduPU9iamVjdC5jcmVhdGUobnVsbCk7dmFyIFhuPXAoInRleHQsbnVtYmVyLHBhc3N3b3JkLHNlYXJjaCxlbWFpbCx0ZWwsdXJsIik7ZnVuY3Rpb24gWW4oZSl7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgdD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKGUpO3JldHVybiB0fHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKX1yZXR1cm4gZX12YXIgUW49T2JqZWN0LmZyZWV6ZSh7Y3JlYXRlRWxlbWVudDpmdW5jdGlvbihlLHQpe3ZhciBuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZSk7cmV0dXJuInNlbGVjdCIhPT1lP246KHQuZGF0YSYmdC5kYXRhLmF0dHJzJiZ2b2lkIDAhPT10LmRhdGEuYXR0cnMubXVsdGlwbGUmJm4uc2V0QXR0cmlidXRlKCJtdWx0aXBsZSIsIm11bHRpcGxlIiksbil9LGNyZWF0ZUVsZW1lbnROUzpmdW5jdGlvbihlLHQpe3JldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoS25bZV0sdCl9LGNyZWF0ZVRleHROb2RlOmZ1bmN0aW9uKGUpe3JldHVybiBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKX0sY3JlYXRlQ29tbWVudDpmdW5jdGlvbihlKXtyZXR1cm4gZG9jdW1lbnQuY3JlYXRlQ29tbWVudChlKX0saW5zZXJ0QmVmb3JlOmZ1bmN0aW9uKGUsdCxuKXtlLmluc2VydEJlZm9yZSh0LG4pfSxyZW1vdmVDaGlsZDpmdW5jdGlvbihlLHQpe2UucmVtb3ZlQ2hpbGQodCl9LGFwcGVuZENoaWxkOmZ1bmN0aW9uKGUsdCl7ZS5hcHBlbmRDaGlsZCh0KX0scGFyZW50Tm9kZTpmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnROb2RlfSxuZXh0U2libGluZzpmdW5jdGlvbihlKXtyZXR1cm4gZS5uZXh0U2libGluZ30sdGFnTmFtZTpmdW5jdGlvbihlKXtyZXR1cm4gZS50YWdOYW1lfSxzZXRUZXh0Q29udGVudDpmdW5jdGlvbihlLHQpe2UudGV4dENvbnRlbnQ9dH0sc2V0U3R5bGVTY29wZTpmdW5jdGlvbihlLHQpe2Uuc2V0QXR0cmlidXRlKHQsIiIpfX0pLGVyPXtjcmVhdGU6ZnVuY3Rpb24oZSx0KXt0cih0KX0sdXBkYXRlOmZ1bmN0aW9uKGUsdCl7ZS5kYXRhLnJlZiE9PXQuZGF0YS5yZWYmJih0cihlLCEwKSx0cih0KSl9LGRlc3Ryb3k6ZnVuY3Rpb24oZSl7dHIoZSwhMCl9fTtmdW5jdGlvbiB0cihlLHQpe3ZhciByPWUuZGF0YS5yZWY7aWYobihyKSl7dmFyIGk9ZS5jb250ZXh0LG89ZS5jb21wb25lbnRJbnN0YW5jZXx8ZS5lbG0sYT1pLiRyZWZzO3Q\/QXJyYXkuaXNBcnJheShhW3JdKT9oKGFbcl0sbyk6YVtyXT09PW8mJihhW3JdPXZvaWQgMCk6ZS5kYXRhLnJlZkluRm9yP0FycmF5LmlzQXJyYXkoYVtyXSk\/YVtyXS5pbmRleE9mKG8pPDAmJmFbcl0ucHVzaChvKTphW3JdPVtvXTphW3JdPW99fXZhciBucj1uZXcgcGUoIiIse30sW10pLHJyPVsiY3JlYXRlIiwiYWN0aXZhdGUiLCJ1cGRhdGUiLCJyZW1vdmUiLCJkZXN0cm95Il07ZnVuY3Rpb24gaXIoZSxpKXtyZXR1cm4gZS5rZXk9PT1pLmtleSYmKGUudGFnPT09aS50YWcmJmUuaXNDb21tZW50PT09aS5pc0NvbW1lbnQmJm4oZS5kYXRhKT09PW4oaS5kYXRhKSYmZnVuY3Rpb24oZSx0KXtpZigiaW5wdXQiIT09ZS50YWcpcmV0dXJuITA7dmFyIHIsaT1uKHI9ZS5kYXRhKSYmbihyPXIuYXR0cnMpJiZyLnR5cGUsbz1uKHI9dC5kYXRhKSYmbihyPXIuYXR0cnMpJiZyLnR5cGU7cmV0dXJuIGk9PT1vfHxYbihpKSYmWG4obyl9KGUsaSl8fHIoZS5pc0FzeW5jUGxhY2Vob2xkZXIpJiZlLmFzeW5jRmFjdG9yeT09PWkuYXN5bmNGYWN0b3J5JiZ0KGkuYXN5bmNGYWN0b3J5LmVycm9yKSl9ZnVuY3Rpb24gb3IoZSx0LHIpe3ZhciBpLG8sYT17fTtmb3IoaT10O2k8PXI7KytpKW4obz1lW2ldLmtleSkmJihhW29dPWkpO3JldHVybiBhfXZhciBhcj17Y3JlYXRlOnNyLHVwZGF0ZTpzcixkZXN0cm95OmZ1bmN0aW9uKGUpe3NyKGUsbnIpfX07ZnVuY3Rpb24gc3IoZSx0KXsoZS5kYXRhLmRpcmVjdGl2ZXN8fHQuZGF0YS5kaXJlY3RpdmVzKSYmZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbz1lPT09bnIsYT10PT09bnIscz11cihlLmRhdGEuZGlyZWN0aXZlcyxlLmNvbnRleHQpLGM9dXIodC5kYXRhLmRpcmVjdGl2ZXMsdC5jb250ZXh0KSx1PVtdLGw9W107Zm9yKG4gaW4gYylyPXNbbl0saT1jW25dLHI\/KGkub2xkVmFsdWU9ci52YWx1ZSxpLm9sZEFyZz1yLmFyZyxmcihpLCJ1cGRhdGUiLHQsZSksaS5kZWYmJmkuZGVmLmNvbXBvbmVudFVwZGF0ZWQmJmwucHVzaChpKSk6KGZyKGksImJpbmQiLHQsZSksaS5kZWYmJmkuZGVmLmluc2VydGVkJiZ1LnB1c2goaSkpO2lmKHUubGVuZ3RoKXt2YXIgZj1mdW5jdGlvbigpe2Zvcih2YXIgbj0wO248dS5sZW5ndGg7bisrKWZyKHVbbl0sImluc2VydGVkIix0LGUpfTtvP2l0KHQsImluc2VydCIsZik6ZigpfWwubGVuZ3RoJiZpdCh0LCJwb3N0cGF0Y2giLGZ1bmN0aW9uKCl7Zm9yKHZhciBuPTA7bjxsLmxlbmd0aDtuKyspZnIobFtuXSwiY29tcG9uZW50VXBkYXRlZCIsdCxlKX0pO2lmKCFvKWZvcihuIGluIHMpY1tuXXx8ZnIoc1tuXSwidW5iaW5kIixlLGUsYSl9KGUsdCl9dmFyIGNyPU9iamVjdC5jcmVhdGUobnVsbCk7ZnVuY3Rpb24gdXIoZSx0KXt2YXIgbixyLGk9T2JqZWN0LmNyZWF0ZShudWxsKTtpZighZSlyZXR1cm4gaTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKShyPWVbbl0pLm1vZGlmaWVyc3x8KHIubW9kaWZpZXJzPWNyKSxpW2xyKHIpXT1yLHIuZGVmPUxlKHQuJG9wdGlvbnMsImRpcmVjdGl2ZXMiLHIubmFtZSk7cmV0dXJuIGl9ZnVuY3Rpb24gbHIoZSl7cmV0dXJuIGUucmF3TmFtZXx8ZS5uYW1lKyIuIitPYmplY3Qua2V5cyhlLm1vZGlmaWVyc3x8e30pLmpvaW4oIi4iKX1mdW5jdGlvbiBmcihlLHQsbixyLGkpe3ZhciBvPWUuZGVmJiZlLmRlZlt0XTtpZihvKXRyeXtvKG4uZWxtLGUsbixyLGkpfWNhdGNoKHIpe1JlKHIsbi5jb250ZXh0LCJkaXJlY3RpdmUgIitlLm5hbWUrIiAiK3QrIiBob29rIil9fXZhciBwcj1bZXIsYXJdO2Z1bmN0aW9uIGRyKGUscil7dmFyIGk9ci5jb21wb25lbnRPcHRpb25zO2lmKCEobihpKSYmITE9PT1pLkN0b3Iub3B0aW9ucy5pbmhlcml0QXR0cnN8fHQoZS5kYXRhLmF0dHJzKSYmdChyLmRhdGEuYXR0cnMpKSl7dmFyIG8sYSxzPXIuZWxtLGM9ZS5kYXRhLmF0dHJzfHx7fSx1PXIuZGF0YS5hdHRyc3x8e307Zm9yKG8gaW4gbih1Ll9fb2JfXykmJih1PXIuZGF0YS5hdHRycz1BKHt9LHUpKSx1KWE9dVtvXSxjW29dIT09YSYmdnIocyxvLGEpO2ZvcihvIGluKHF8fFopJiZ1LnZhbHVlIT09Yy52YWx1ZSYmdnIocywidmFsdWUiLHUudmFsdWUpLGMpdCh1W29dKSYmKFBuKG8pP3MucmVtb3ZlQXR0cmlidXRlTlMoRm4sUm4obykpOkRuKG8pfHxzLnJlbW92ZUF0dHJpYnV0ZShvKSl9fWZ1bmN0aW9uIHZyKGUsdCxuKXtlLnRhZ05hbWUuaW5kZXhPZigiLSIpPi0xP2hyKGUsdCxuKTpJbih0KT9IbihuKT9lLnJlbW92ZUF0dHJpYnV0ZSh0KToobj0iYWxsb3dmdWxsc2NyZWVuIj09PXQmJiJFTUJFRCI9PT1lLnRhZ05hbWU\/InRydWUiOnQsZS5zZXRBdHRyaWJ1dGUodCxuKSk6RG4odCk\/ZS5zZXRBdHRyaWJ1dGUodCxNbih0LG4pKTpQbih0KT9IbihuKT9lLnJlbW92ZUF0dHJpYnV0ZU5TKEZuLFJuKHQpKTplLnNldEF0dHJpYnV0ZU5TKEZuLHQsbik6aHIoZSx0LG4pfWZ1bmN0aW9uIGhyKGUsdCxuKXtpZihIbihuKSllLnJlbW92ZUF0dHJpYnV0ZSh0KTtlbHNle2lmKHEmJiFXJiYiVEVYVEFSRUEiPT09ZS50YWdOYW1lJiYicGxhY2Vob2xkZXIiPT09dCYmIiIhPT1uJiYhZS5fX2llcGgpe3ZhciByPWZ1bmN0aW9uKHQpe3Quc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksZS5yZW1vdmVFdmVudExpc3RlbmVyKCJpbnB1dCIscil9O2UuYWRkRXZlbnRMaXN0ZW5lcigiaW5wdXQiLHIpLGUuX19pZXBoPSEwfWUuc2V0QXR0cmlidXRlKHQsbil9fXZhciBtcj17Y3JlYXRlOmRyLHVwZGF0ZTpkcn07ZnVuY3Rpb24geXIoZSxyKXt2YXIgaT1yLmVsbSxvPXIuZGF0YSxhPWUuZGF0YTtpZighKHQoby5zdGF0aWNDbGFzcykmJnQoby5jbGFzcykmJih0KGEpfHx0KGEuc3RhdGljQ2xhc3MpJiZ0KGEuY2xhc3MpKSkpe3ZhciBzPUJuKHIpLGM9aS5fdHJhbnNpdGlvbkNsYXNzZXM7bihjKSYmKHM9em4ocyxWbihjKSkpLHMhPT1pLl9wcmV2Q2xhc3MmJihpLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMpLGkuX3ByZXZDbGFzcz1zKX19dmFyIGdyLF9yLGJyLCRyLHdyLENyLHhyPXtjcmVhdGU6eXIsdXBkYXRlOnlyfSxrcj0vW1x3KS4rXC1fJFxdXS87ZnVuY3Rpb24gQXIoZSl7dmFyIHQsbixyLGksbyxhPSExLHM9ITEsYz0hMSx1PSExLGw9MCxmPTAscD0wLGQ9MDtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKWlmKG49dCx0PWUuY2hhckNvZGVBdChyKSxhKTM5PT09dCYmOTIhPT1uJiYoYT0hMSk7ZWxzZSBpZihzKTM0PT09dCYmOTIhPT1uJiYocz0hMSk7ZWxzZSBpZihjKTk2PT09dCYmOTIhPT1uJiYoYz0hMSk7ZWxzZSBpZih1KTQ3PT09dCYmOTIhPT1uJiYodT0hMSk7ZWxzZSBpZigxMjQhPT10fHwxMjQ9PT1lLmNoYXJDb2RlQXQocisxKXx8MTI0PT09ZS5jaGFyQ29kZUF0KHItMSl8fGx8fGZ8fHApe3N3aXRjaCh0KXtjYXNlIDM0OnM9ITA7YnJlYWs7Y2FzZSAzOTphPSEwO2JyZWFrO2Nhc2UgOTY6Yz0hMDticmVhaztjYXNlIDQwOnArKzticmVhaztjYXNlIDQxOnAtLTticmVhaztjYXNlIDkxOmYrKzticmVhaztjYXNlIDkzOmYtLTticmVhaztjYXNlIDEyMzpsKys7YnJlYWs7Y2FzZSAxMjU6bC0tfWlmKDQ3PT09dCl7Zm9yKHZhciB2PXItMSxoPXZvaWQgMDt2Pj0wJiYiICI9PT0oaD1lLmNoYXJBdCh2KSk7di0tKTtoJiZrci50ZXN0KGgpfHwodT0hMCl9fWVsc2Ugdm9pZCAwPT09aT8oZD1yKzEsaT1lLnNsaWNlKDAscikudHJpbSgpKTptKCk7ZnVuY3Rpb24gbSgpeyhvfHwobz1bXSkpLnB1c2goZS5zbGljZShkLHIpLnRyaW0oKSksZD1yKzF9aWYodm9pZCAwPT09aT9pPWUuc2xpY2UoMCxyKS50cmltKCk6MCE9PWQmJm0oKSxvKWZvcihyPTA7cjxvLmxlbmd0aDtyKyspaT1PcihpLG9bcl0pO3JldHVybiBpfWZ1bmN0aW9uIE9yKGUsdCl7dmFyIG49dC5pbmRleE9mKCIoIik7aWYobjwwKXJldHVybidfZigiJyt0KyciKSgnK2UrIikiO3ZhciByPXQuc2xpY2UoMCxuKSxpPXQuc2xpY2UobisxKTtyZXR1cm4nX2YoIicrcisnIikoJytlKygiKSIhPT1pPyIsIitpOmkpfWZ1bmN0aW9uIFNyKGUsdCl7Y29uc29sZS5lcnJvcigiW1Z1ZSBjb21waWxlcl06ICIrZSl9ZnVuY3Rpb24gVHIoZSx0KXtyZXR1cm4gZT9lLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gZVt0XX0pLmZpbHRlcihmdW5jdGlvbihlKXtyZXR1cm4gZX0pOltdfWZ1bmN0aW9uIEVyKGUsdCxuLHIsaSl7KGUucHJvcHN8fChlLnByb3BzPVtdKSkucHVzaChScih7bmFtZTp0LHZhbHVlOm4sZHluYW1pYzppfSxyKSksZS5wbGFpbj0hMX1mdW5jdGlvbiBOcihlLHQsbixyLGkpeyhpP2UuZHluYW1pY0F0dHJzfHwoZS5keW5hbWljQXR0cnM9W10pOmUuYXR0cnN8fChlLmF0dHJzPVtdKSkucHVzaChScih7bmFtZTp0LHZhbHVlOm4sZHluYW1pYzppfSxyKSksZS5wbGFpbj0hMX1mdW5jdGlvbiBqcihlLHQsbixyKXtlLmF0dHJzTWFwW3RdPW4sZS5hdHRyc0xpc3QucHVzaChScih7bmFtZTp0LHZhbHVlOm59LHIpKX1mdW5jdGlvbiBEcihlLHQsbixyLGksbyxhLHMpeyhlLmRpcmVjdGl2ZXN8fChlLmRpcmVjdGl2ZXM9W10pKS5wdXNoKFJyKHtuYW1lOnQscmF3TmFtZTpuLHZhbHVlOnIsYXJnOmksaXNEeW5hbWljQXJnOm8sbW9kaWZpZXJzOmF9LHMpKSxlLnBsYWluPSExfWZ1bmN0aW9uIExyKGUsdCxuKXtyZXR1cm4gbj8iX3AoIit0KycsIicrZSsnIiknOmUrdH1mdW5jdGlvbiBNcih0LG4scixpLG8sYSxzLGMpe3ZhciB1OyhpPWl8fGUpLnJpZ2h0P2M\/bj0iKCIrbisiKT09PSdjbGljayc\/J2NvbnRleHRtZW51JzooIituKyIpIjoiY2xpY2siPT09biYmKG49ImNvbnRleHRtZW51IixkZWxldGUgaS5yaWdodCk6aS5taWRkbGUmJihjP249IigiK24rIik9PT0nY2xpY2snPydtb3VzZXVwJzooIituKyIpIjoiY2xpY2siPT09biYmKG49Im1vdXNldXAiKSksaS5jYXB0dXJlJiYoZGVsZXRlIGkuY2FwdHVyZSxuPUxyKCIhIixuLGMpKSxpLm9uY2UmJihkZWxldGUgaS5vbmNlLG49THIoIn4iLG4sYykpLGkucGFzc2l2ZSYmKGRlbGV0ZSBpLnBhc3NpdmUsbj1McigiJiIsbixjKSksaS5uYXRpdmU\/KGRlbGV0ZSBpLm5hdGl2ZSx1PXQubmF0aXZlRXZlbnRzfHwodC5uYXRpdmVFdmVudHM9e30pKTp1PXQuZXZlbnRzfHwodC5ldmVudHM9e30pO3ZhciBsPVJyKHt2YWx1ZTpyLnRyaW0oKSxkeW5hbWljOmN9LHMpO2khPT1lJiYobC5tb2RpZmllcnM9aSk7dmFyIGY9dVtuXTtBcnJheS5pc0FycmF5KGYpP28\/Zi51bnNoaWZ0KGwpOmYucHVzaChsKTp1W25dPWY\/bz9bbCxmXTpbZixsXTpsLHQucGxhaW49ITF9ZnVuY3Rpb24gSXIoZSx0LG4pe3ZhciByPUZyKGUsIjoiK3QpfHxGcihlLCJ2LWJpbmQ6Iit0KTtpZihudWxsIT1yKXJldHVybiBBcihyKTtpZighMSE9PW4pe3ZhciBpPUZyKGUsdCk7aWYobnVsbCE9aSlyZXR1cm4gSlNPTi5zdHJpbmdpZnkoaSl9fWZ1bmN0aW9uIEZyKGUsdCxuKXt2YXIgcjtpZihudWxsIT0ocj1lLmF0dHJzTWFwW3RdKSlmb3IodmFyIGk9ZS5hdHRyc0xpc3Qsbz0wLGE9aS5sZW5ndGg7bzxhO28rKylpZihpW29dLm5hbWU9PT10KXtpLnNwbGljZShvLDEpO2JyZWFrfXJldHVybiBuJiZkZWxldGUgZS5hdHRyc01hcFt0XSxyfWZ1bmN0aW9uIFByKGUsdCl7Zm9yKHZhciBuPWUuYXR0cnNMaXN0LHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspe3ZhciBvPW5bcl07aWYodC50ZXN0KG8ubmFtZSkpcmV0dXJuIG4uc3BsaWNlKHIsMSksb319ZnVuY3Rpb24gUnIoZSx0KXtyZXR1cm4gdCYmKG51bGwhPXQuc3RhcnQmJihlLnN0YXJ0PXQuc3RhcnQpLG51bGwhPXQuZW5kJiYoZS5lbmQ9dC5lbmQpKSxlfWZ1bmN0aW9uIEhyKGUsdCxuKXt2YXIgcj1ufHx7fSxpPXIubnVtYmVyLG89IiQkdiI7ci50cmltJiYobz0iKHR5cGVvZiAkJHYgPT09ICdzdHJpbmcnPyAkJHYudHJpbSgpOiAkJHYpIiksaSYmKG89Il9uKCIrbysiKSIpO3ZhciBhPUJyKHQsbyk7ZS5tb2RlbD17dmFsdWU6IigiK3QrIikiLGV4cHJlc3Npb246SlNPTi5zdHJpbmdpZnkodCksY2FsbGJhY2s6ImZ1bmN0aW9uICgkJHYpIHsiK2ErIn0ifX1mdW5jdGlvbiBCcihlLHQpe3ZhciBuPWZ1bmN0aW9uKGUpe2lmKGU9ZS50cmltKCksZ3I9ZS5sZW5ndGgsZS5pbmRleE9mKCJbIik8MHx8ZS5sYXN0SW5kZXhPZigiXSIpPGdyLTEpcmV0dXJuKCRyPWUubGFzdEluZGV4T2YoIi4iKSk+LTE\/e2V4cDplLnNsaWNlKDAsJHIpLGtleTonIicrZS5zbGljZSgkcisxKSsnIid9OntleHA6ZSxrZXk6bnVsbH07X3I9ZSwkcj13cj1Dcj0wO2Zvcig7IXpyKCk7KVZyKGJyPVVyKCkpP0pyKGJyKTo5MT09PWJyJiZLcihicik7cmV0dXJue2V4cDplLnNsaWNlKDAsd3IpLGtleTplLnNsaWNlKHdyKzEsQ3IpfX0oZSk7cmV0dXJuIG51bGw9PT1uLmtleT9lKyI9Iit0OiIkc2V0KCIrbi5leHArIiwgIituLmtleSsiLCAiK3QrIikifWZ1bmN0aW9uIFVyKCl7cmV0dXJuIF9yLmNoYXJDb2RlQXQoKyskcil9ZnVuY3Rpb24genIoKXtyZXR1cm4gJHI+PWdyfWZ1bmN0aW9uIFZyKGUpe3JldHVybiAzND09PWV8fDM5PT09ZX1mdW5jdGlvbiBLcihlKXt2YXIgdD0xO2Zvcih3cj0kcjshenIoKTspaWYoVnIoZT1VcigpKSlKcihlKTtlbHNlIGlmKDkxPT09ZSYmdCsrLDkzPT09ZSYmdC0tLDA9PT10KXtDcj0kcjticmVha319ZnVuY3Rpb24gSnIoZSl7Zm9yKHZhciB0PWU7IXpyKCkmJihlPVVyKCkpIT09dDspO312YXIgcXIsV3I9Il9fciIsWnI9Il9fYyI7ZnVuY3Rpb24gR3IoZSx0LG4pe3ZhciByPXFyO3JldHVybiBmdW5jdGlvbiBpKCl7bnVsbCE9PXQuYXBwbHkobnVsbCxhcmd1bWVudHMpJiZRcihlLGksbixyKX19dmFyIFhyPVZlJiYhKFgmJk51bWJlcihYWzFdKTw9NTMpO2Z1bmN0aW9uIFlyKGUsdCxuLHIpe2lmKFhyKXt2YXIgaT1hbixvPXQ7dD1vLl93cmFwcGVyPWZ1bmN0aW9uKGUpe2lmKGUudGFyZ2V0PT09ZS5jdXJyZW50VGFyZ2V0fHxlLnRpbWVTdGFtcD49aXx8ZS50aW1lU3RhbXA8PTB8fGUudGFyZ2V0Lm93bmVyRG9jdW1lbnQhPT1kb2N1bWVudClyZXR1cm4gby5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fXFyLmFkZEV2ZW50TGlzdGVuZXIoZSx0LFE\/e2NhcHR1cmU6bixwYXNzaXZlOnJ9Om4pfWZ1bmN0aW9uIFFyKGUsdCxuLHIpeyhyfHxxcikucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHQuX3dyYXBwZXJ8fHQsbil9ZnVuY3Rpb24gZWkoZSxyKXtpZighdChlLmRhdGEub24pfHwhdChyLmRhdGEub24pKXt2YXIgaT1yLmRhdGEub258fHt9LG89ZS5kYXRhLm9ufHx7fTtxcj1yLmVsbSxmdW5jdGlvbihlKXtpZihuKGVbV3JdKSl7dmFyIHQ9cT8iY2hhbmdlIjoiaW5wdXQiO2VbdF09W10uY29uY2F0KGVbV3JdLGVbdF18fFtdKSxkZWxldGUgZVtXcl19bihlW1pyXSkmJihlLmNoYW5nZT1bXS5jb25jYXQoZVtacl0sZS5jaGFuZ2V8fFtdKSxkZWxldGUgZVtacl0pfShpKSxydChpLG8sWXIsUXIsR3Isci5jb250ZXh0KSxxcj12b2lkIDB9fXZhciB0aSxuaT17Y3JlYXRlOmVpLHVwZGF0ZTplaX07ZnVuY3Rpb24gcmkoZSxyKXtpZighdChlLmRhdGEuZG9tUHJvcHMpfHwhdChyLmRhdGEuZG9tUHJvcHMpKXt2YXIgaSxvLGE9ci5lbG0scz1lLmRhdGEuZG9tUHJvcHN8fHt9LGM9ci5kYXRhLmRvbVByb3BzfHx7fTtmb3IoaSBpbiBuKGMuX19vYl9fKSYmKGM9ci5kYXRhLmRvbVByb3BzPUEoe30sYykpLHMpaSBpbiBjfHwoYVtpXT0iIik7Zm9yKGkgaW4gYyl7aWYobz1jW2ldLCJ0ZXh0Q29udGVudCI9PT1pfHwiaW5uZXJIVE1MIj09PWkpe2lmKHIuY2hpbGRyZW4mJihyLmNoaWxkcmVuLmxlbmd0aD0wKSxvPT09c1tpXSljb250aW51ZTsxPT09YS5jaGlsZE5vZGVzLmxlbmd0aCYmYS5yZW1vdmVDaGlsZChhLmNoaWxkTm9kZXNbMF0pfWlmKCJ2YWx1ZSI9PT1pJiYiUFJPR1JFU1MiIT09YS50YWdOYW1lKXthLl92YWx1ZT1vO3ZhciB1PXQobyk\/IiI6U3RyaW5nKG8pO2lpKGEsdSkmJihhLnZhbHVlPXUpfWVsc2UgaWYoImlubmVySFRNTCI9PT1pJiZxbihhLnRhZ05hbWUpJiZ0KGEuaW5uZXJIVE1MKSl7KHRpPXRpfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSkuaW5uZXJIVE1MPSI8c3ZnPiIrbysiPC9zdmc+Ijtmb3IodmFyIGw9dGkuZmlyc3RDaGlsZDthLmZpcnN0Q2hpbGQ7KWEucmVtb3ZlQ2hpbGQoYS5maXJzdENoaWxkKTtmb3IoO2wuZmlyc3RDaGlsZDspYS5hcHBlbmRDaGlsZChsLmZpcnN0Q2hpbGQpfWVsc2UgaWYobyE9PXNbaV0pdHJ5e2FbaV09b31jYXRjaChlKXt9fX19ZnVuY3Rpb24gaWkoZSx0KXtyZXR1cm4hZS5jb21wb3NpbmcmJigiT1BUSU9OIj09PWUudGFnTmFtZXx8ZnVuY3Rpb24oZSx0KXt2YXIgbj0hMDt0cnl7bj1kb2N1bWVudC5hY3RpdmVFbGVtZW50IT09ZX1jYXRjaChlKXt9cmV0dXJuIG4mJmUudmFsdWUhPT10fShlLHQpfHxmdW5jdGlvbihlLHQpe3ZhciByPWUudmFsdWUsaT1lLl92TW9kaWZpZXJzO2lmKG4oaSkpe2lmKGkubnVtYmVyKXJldHVybiBmKHIpIT09Zih0KTtpZihpLnRyaW0pcmV0dXJuIHIudHJpbSgpIT09dC50cmltKCl9cmV0dXJuIHIhPT10fShlLHQpKX12YXIgb2k9e2NyZWF0ZTpyaSx1cGRhdGU6cml9LGFpPWcoZnVuY3Rpb24oZSl7dmFyIHQ9e30sbj0vOiguKykvO3JldHVybiBlLnNwbGl0KC87KD8hW14oXSpcKSkvZykuZm9yRWFjaChmdW5jdGlvbihlKXtpZihlKXt2YXIgcj1lLnNwbGl0KG4pO3IubGVuZ3RoPjEmJih0W3JbMF0udHJpbSgpXT1yWzFdLnRyaW0oKSl9fSksdH0pO2Z1bmN0aW9uIHNpKGUpe3ZhciB0PWNpKGUuc3R5bGUpO3JldHVybiBlLnN0YXRpY1N0eWxlP0EoZS5zdGF0aWNTdHlsZSx0KTp0fWZ1bmN0aW9uIGNpKGUpe3JldHVybiBBcnJheS5pc0FycmF5KGUpP08oZSk6InN0cmluZyI9PXR5cGVvZiBlP2FpKGUpOmV9dmFyIHVpLGxpPS9eLS0vLGZpPS9ccyohaW1wb3J0YW50JC8scGk9ZnVuY3Rpb24oZSx0LG4pe2lmKGxpLnRlc3QodCkpZS5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4pO2Vsc2UgaWYoZmkudGVzdChuKSllLnN0eWxlLnNldFByb3BlcnR5KEModCksbi5yZXBsYWNlKGZpLCIiKSwiaW1wb3J0YW50Iik7ZWxzZXt2YXIgcj12aSh0KTtpZihBcnJheS5pc0FycmF5KG4pKWZvcih2YXIgaT0wLG89bi5sZW5ndGg7aTxvO2krKyllLnN0eWxlW3JdPW5baV07ZWxzZSBlLnN0eWxlW3JdPW59fSxkaT1bIldlYmtpdCIsIk1veiIsIm1zIl0sdmk9ZyhmdW5jdGlvbihlKXtpZih1aT11aXx8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsImZpbHRlciIhPT0oZT1iKGUpKSYmZSBpbiB1aSlyZXR1cm4gZTtmb3IodmFyIHQ9ZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKStlLnNsaWNlKDEpLG49MDtuPGRpLmxlbmd0aDtuKyspe3ZhciByPWRpW25dK3Q7aWYociBpbiB1aSlyZXR1cm4gcn19KTtmdW5jdGlvbiBoaShlLHIpe3ZhciBpPXIuZGF0YSxvPWUuZGF0YTtpZighKHQoaS5zdGF0aWNTdHlsZSkmJnQoaS5zdHlsZSkmJnQoby5zdGF0aWNTdHlsZSkmJnQoby5zdHlsZSkpKXt2YXIgYSxzLGM9ci5lbG0sdT1vLnN0YXRpY1N0eWxlLGw9by5ub3JtYWxpemVkU3R5bGV8fG8uc3R5bGV8fHt9LGY9dXx8bCxwPWNpKHIuZGF0YS5zdHlsZSl8fHt9O3IuZGF0YS5ub3JtYWxpemVkU3R5bGU9bihwLl9fb2JfXyk\/QSh7fSxwKTpwO3ZhciBkPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj17fTtpZih0KWZvcih2YXIgaT1lO2kuY29tcG9uZW50SW5zdGFuY2U7KShpPWkuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlKSYmaS5kYXRhJiYobj1zaShpLmRhdGEpKSYmQShyLG4pOyhuPXNpKGUuZGF0YSkpJiZBKHIsbik7Zm9yKHZhciBvPWU7bz1vLnBhcmVudDspby5kYXRhJiYobj1zaShvLmRhdGEpKSYmQShyLG4pO3JldHVybiByfShyLCEwKTtmb3IocyBpbiBmKXQoZFtzXSkmJnBpKGMscywiIik7Zm9yKHMgaW4gZCkoYT1kW3NdKSE9PWZbc10mJnBpKGMscyxudWxsPT1hPyIiOmEpfX12YXIgbWk9e2NyZWF0ZTpoaSx1cGRhdGU6aGl9LHlpPS9ccysvO2Z1bmN0aW9uIGdpKGUsdCl7aWYodCYmKHQ9dC50cmltKCkpKWlmKGUuY2xhc3NMaXN0KXQuaW5kZXhPZigiICIpPi0xP3Quc3BsaXQoeWkpLmZvckVhY2goZnVuY3Rpb24odCl7cmV0dXJuIGUuY2xhc3NMaXN0LmFkZCh0KX0pOmUuY2xhc3NMaXN0LmFkZCh0KTtlbHNle3ZhciBuPSIgIisoZS5nZXRBdHRyaWJ1dGUoImNsYXNzIil8fCIiKSsiICI7bi5pbmRleE9mKCIgIit0KyIgIik8MCYmZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwobit0KS50cmltKCkpfX1mdW5jdGlvbiBfaShlLHQpe2lmKHQmJih0PXQudHJpbSgpKSlpZihlLmNsYXNzTGlzdCl0LmluZGV4T2YoIiAiKT4tMT90LnNwbGl0KHlpKS5mb3JFYWNoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmNsYXNzTGlzdC5yZW1vdmUodCl9KTplLmNsYXNzTGlzdC5yZW1vdmUodCksZS5jbGFzc0xpc3QubGVuZ3RofHxlLnJlbW92ZUF0dHJpYnV0ZSgiY2xhc3MiKTtlbHNle2Zvcih2YXIgbj0iICIrKGUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIikrIiAiLHI9IiAiK3QrIiAiO24uaW5kZXhPZihyKT49MDspbj1uLnJlcGxhY2UociwiICIpOyhuPW4udHJpbSgpKT9lLnNldEF0dHJpYnV0ZSgiY2xhc3MiLG4pOmUucmVtb3ZlQXR0cmlidXRlKCJjbGFzcyIpfX1mdW5jdGlvbiBiaShlKXtpZihlKXtpZigib2JqZWN0Ij09dHlwZW9mIGUpe3ZhciB0PXt9O3JldHVybiExIT09ZS5jc3MmJkEodCwkaShlLm5hbWV8fCJ2IikpLEEodCxlKSx0fXJldHVybiJzdHJpbmciPT10eXBlb2YgZT8kaShlKTp2b2lkIDB9fXZhciAkaT1nKGZ1bmN0aW9uKGUpe3JldHVybntlbnRlckNsYXNzOmUrIi1lbnRlciIsZW50ZXJUb0NsYXNzOmUrIi1lbnRlci10byIsZW50ZXJBY3RpdmVDbGFzczplKyItZW50ZXItYWN0aXZlIixsZWF2ZUNsYXNzOmUrIi1sZWF2ZSIsbGVhdmVUb0NsYXNzOmUrIi1sZWF2ZS10byIsbGVhdmVBY3RpdmVDbGFzczplKyItbGVhdmUtYWN0aXZlIn19KSx3aT16JiYhVyxDaT0idHJhbnNpdGlvbiIseGk9ImFuaW1hdGlvbiIsa2k9InRyYW5zaXRpb24iLEFpPSJ0cmFuc2l0aW9uZW5kIixPaT0iYW5pbWF0aW9uIixTaT0iYW5pbWF0aW9uZW5kIjt3aSYmKHZvaWQgMD09PXdpbmRvdy5vbnRyYW5zaXRpb25lbmQmJnZvaWQgMCE9PXdpbmRvdy5vbndlYmtpdHRyYW5zaXRpb25lbmQmJihraT0iV2Via2l0VHJhbnNpdGlvbiIsQWk9IndlYmtpdFRyYW5zaXRpb25FbmQiKSx2b2lkIDA9PT13aW5kb3cub25hbmltYXRpb25lbmQmJnZvaWQgMCE9PXdpbmRvdy5vbndlYmtpdGFuaW1hdGlvbmVuZCYmKE9pPSJXZWJraXRBbmltYXRpb24iLFNpPSJ3ZWJraXRBbmltYXRpb25FbmQiKSk7dmFyIFRpPXo\/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZT93aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lLmJpbmQod2luZG93KTpzZXRUaW1lb3V0OmZ1bmN0aW9uKGUpe3JldHVybiBlKCl9O2Z1bmN0aW9uIEVpKGUpe1RpKGZ1bmN0aW9uKCl7VGkoZSl9KX1mdW5jdGlvbiBOaShlLHQpe3ZhciBuPWUuX3RyYW5zaXRpb25DbGFzc2VzfHwoZS5fdHJhbnNpdGlvbkNsYXNzZXM9W10pO24uaW5kZXhPZih0KTwwJiYobi5wdXNoKHQpLGdpKGUsdCkpfWZ1bmN0aW9uIGppKGUsdCl7ZS5fdHJhbnNpdGlvbkNsYXNzZXMmJmgoZS5fdHJhbnNpdGlvbkNsYXNzZXMsdCksX2koZSx0KX1mdW5jdGlvbiBEaShlLHQsbil7dmFyIHI9TWkoZSx0KSxpPXIudHlwZSxvPXIudGltZW91dCxhPXIucHJvcENvdW50O2lmKCFpKXJldHVybiBuKCk7dmFyIHM9aT09PUNpP0FpOlNpLGM9MCx1PWZ1bmN0aW9uKCl7ZS5yZW1vdmVFdmVudExpc3RlbmVyKHMsbCksbigpfSxsPWZ1bmN0aW9uKHQpe3QudGFyZ2V0PT09ZSYmKytjPj1hJiZ1KCl9O3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjPGEmJnUoKX0sbysxKSxlLmFkZEV2ZW50TGlzdGVuZXIocyxsKX12YXIgTGk9L1xiKHRyYW5zZm9ybXxhbGwpKCx8JCkvO2Z1bmN0aW9uIE1pKGUsdCl7dmFyIG4scj13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlKSxpPShyW2tpKyJEZWxheSJdfHwiIikuc3BsaXQoIiwgIiksbz0ocltraSsiRHVyYXRpb24iXXx8IiIpLnNwbGl0KCIsICIpLGE9SWkoaSxvKSxzPShyW09pKyJEZWxheSJdfHwiIikuc3BsaXQoIiwgIiksYz0ocltPaSsiRHVyYXRpb24iXXx8IiIpLnNwbGl0KCIsICIpLHU9SWkocyxjKSxsPTAsZj0wO3JldHVybiB0PT09Q2k\/YT4wJiYobj1DaSxsPWEsZj1vLmxlbmd0aCk6dD09PXhpP3U+MCYmKG49eGksbD11LGY9Yy5sZW5ndGgpOmY9KG49KGw9TWF0aC5tYXgoYSx1KSk+MD9hPnU\/Q2k6eGk6bnVsbCk\/bj09PUNpP28ubGVuZ3RoOmMubGVuZ3RoOjAse3R5cGU6bix0aW1lb3V0OmwscHJvcENvdW50OmYsaGFzVHJhbnNmb3JtOm49PT1DaSYmTGkudGVzdChyW2tpKyJQcm9wZXJ0eSJdKX19ZnVuY3Rpb24gSWkoZSx0KXtmb3IoO2UubGVuZ3RoPHQubGVuZ3RoOyllPWUuY29uY2F0KGUpO3JldHVybiBNYXRoLm1heC5hcHBseShudWxsLHQubWFwKGZ1bmN0aW9uKHQsbil7cmV0dXJuIEZpKHQpK0ZpKGVbbl0pfSkpfWZ1bmN0aW9uIEZpKGUpe3JldHVybiAxZTMqTnVtYmVyKGUuc2xpY2UoMCwtMSkucmVwbGFjZSgiLCIsIi4iKSl9ZnVuY3Rpb24gUGkoZSxyKXt2YXIgaT1lLmVsbTtuKGkuX2xlYXZlQ2IpJiYoaS5fbGVhdmVDYi5jYW5jZWxsZWQ9ITAsaS5fbGVhdmVDYigpKTt2YXIgYT1iaShlLmRhdGEudHJhbnNpdGlvbik7aWYoIXQoYSkmJiFuKGkuX2VudGVyQ2IpJiYxPT09aS5ub2RlVHlwZSl7Zm9yKHZhciBzPWEuY3NzLGM9YS50eXBlLHU9YS5lbnRlckNsYXNzLGw9YS5lbnRlclRvQ2xhc3MscD1hLmVudGVyQWN0aXZlQ2xhc3MsZD1hLmFwcGVhckNsYXNzLHY9YS5hcHBlYXJUb0NsYXNzLGg9YS5hcHBlYXJBY3RpdmVDbGFzcyxtPWEuYmVmb3JlRW50ZXIseT1hLmVudGVyLGc9YS5hZnRlckVudGVyLF89YS5lbnRlckNhbmNlbGxlZCxiPWEuYmVmb3JlQXBwZWFyLCQ9YS5hcHBlYXIsdz1hLmFmdGVyQXBwZWFyLEM9YS5hcHBlYXJDYW5jZWxsZWQseD1hLmR1cmF0aW9uLGs9V3QsQT1XdC4kdm5vZGU7QSYmQS5wYXJlbnQ7KWs9QS5jb250ZXh0LEE9QS5wYXJlbnQ7dmFyIE89IWsuX2lzTW91bnRlZHx8IWUuaXNSb290SW5zZXJ0O2lmKCFPfHwkfHwiIj09PSQpe3ZhciBTPU8mJmQ\/ZDp1LFQ9TyYmaD9oOnAsRT1PJiZ2P3Y6bCxOPU8mJmJ8fG0saj1PJiYiZnVuY3Rpb24iPT10eXBlb2YgJD8kOnksTD1PJiZ3fHxnLE09TyYmQ3x8XyxJPWYobyh4KT94LmVudGVyOngpLEY9ITEhPT1zJiYhVyxQPUJpKGopLFI9aS5fZW50ZXJDYj1EKGZ1bmN0aW9uKCl7RiYmKGppKGksRSksamkoaSxUKSksUi5jYW5jZWxsZWQ\/KEYmJmppKGksUyksTSYmTShpKSk6TCYmTChpKSxpLl9lbnRlckNiPW51bGx9KTtlLmRhdGEuc2hvd3x8aXQoZSwiaW5zZXJ0IixmdW5jdGlvbigpe3ZhciB0PWkucGFyZW50Tm9kZSxuPXQmJnQuX3BlbmRpbmcmJnQuX3BlbmRpbmdbZS5rZXldO24mJm4udGFnPT09ZS50YWcmJm4uZWxtLl9sZWF2ZUNiJiZuLmVsbS5fbGVhdmVDYigpLGomJmooaSxSKX0pLE4mJk4oaSksRiYmKE5pKGksUyksTmkoaSxUKSxFaShmdW5jdGlvbigpe2ppKGksUyksUi5jYW5jZWxsZWR8fChOaShpLEUpLFB8fChIaShJKT9zZXRUaW1lb3V0KFIsSSk6RGkoaSxjLFIpKSl9KSksZS5kYXRhLnNob3cmJihyJiZyKCksaiYmaihpLFIpKSxGfHxQfHxSKCl9fX1mdW5jdGlvbiBSaShlLHIpe3ZhciBpPWUuZWxtO24oaS5fZW50ZXJDYikmJihpLl9lbnRlckNiLmNhbmNlbGxlZD0hMCxpLl9lbnRlckNiKCkpO3ZhciBhPWJpKGUuZGF0YS50cmFuc2l0aW9uKTtpZih0KGEpfHwxIT09aS5ub2RlVHlwZSlyZXR1cm4gcigpO2lmKCFuKGkuX2xlYXZlQ2IpKXt2YXIgcz1hLmNzcyxjPWEudHlwZSx1PWEubGVhdmVDbGFzcyxsPWEubGVhdmVUb0NsYXNzLHA9YS5sZWF2ZUFjdGl2ZUNsYXNzLGQ9YS5iZWZvcmVMZWF2ZSx2PWEubGVhdmUsaD1hLmFmdGVyTGVhdmUsbT1hLmxlYXZlQ2FuY2VsbGVkLHk9YS5kZWxheUxlYXZlLGc9YS5kdXJhdGlvbixfPSExIT09cyYmIVcsYj1CaSh2KSwkPWYobyhnKT9nLmxlYXZlOmcpLHc9aS5fbGVhdmVDYj1EKGZ1bmN0aW9uKCl7aS5wYXJlbnROb2RlJiZpLnBhcmVudE5vZGUuX3BlbmRpbmcmJihpLnBhcmVudE5vZGUuX3BlbmRpbmdbZS5rZXldPW51bGwpLF8mJihqaShpLGwpLGppKGkscCkpLHcuY2FuY2VsbGVkPyhfJiZqaShpLHUpLG0mJm0oaSkpOihyKCksaCYmaChpKSksaS5fbGVhdmVDYj1udWxsfSk7eT95KEMpOkMoKX1mdW5jdGlvbiBDKCl7dy5jYW5jZWxsZWR8fCghZS5kYXRhLnNob3cmJmkucGFyZW50Tm9kZSYmKChpLnBhcmVudE5vZGUuX3BlbmRpbmd8fChpLnBhcmVudE5vZGUuX3BlbmRpbmc9e30pKVtlLmtleV09ZSksZCYmZChpKSxfJiYoTmkoaSx1KSxOaShpLHApLEVpKGZ1bmN0aW9uKCl7amkoaSx1KSx3LmNhbmNlbGxlZHx8KE5pKGksbCksYnx8KEhpKCQpP3NldFRpbWVvdXQodywkKTpEaShpLGMsdykpKX0pKSx2JiZ2KGksdyksX3x8Ynx8dygpKX19ZnVuY3Rpb24gSGkoZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlJiYhaXNOYU4oZSl9ZnVuY3Rpb24gQmkoZSl7aWYodChlKSlyZXR1cm4hMTt2YXIgcj1lLmZucztyZXR1cm4gbihyKT9CaShBcnJheS5pc0FycmF5KHIpP3JbMF06cik6KGUuX2xlbmd0aHx8ZS5sZW5ndGgpPjF9ZnVuY3Rpb24gVWkoZSx0KXshMCE9PXQuZGF0YS5zaG93JiZQaSh0KX12YXIgemk9ZnVuY3Rpb24oZSl7dmFyIG8sYSxzPXt9LGM9ZS5tb2R1bGVzLHU9ZS5ub2RlT3BzO2ZvcihvPTA7bzxyci5sZW5ndGg7KytvKWZvcihzW3JyW29dXT1bXSxhPTA7YTxjLmxlbmd0aDsrK2EpbihjW2FdW3JyW29dXSkmJnNbcnJbb11dLnB1c2goY1thXVtycltvXV0pO2Z1bmN0aW9uIGwoZSl7dmFyIHQ9dS5wYXJlbnROb2RlKGUpO24odCkmJnUucmVtb3ZlQ2hpbGQodCxlKX1mdW5jdGlvbiBmKGUsdCxpLG8sYSxjLGwpe2lmKG4oZS5lbG0pJiZuKGMpJiYoZT1jW2xdPW1lKGUpKSxlLmlzUm9vdEluc2VydD0hYSwhZnVuY3Rpb24oZSx0LGksbyl7dmFyIGE9ZS5kYXRhO2lmKG4oYSkpe3ZhciBjPW4oZS5jb21wb25lbnRJbnN0YW5jZSkmJmEua2VlcEFsaXZlO2lmKG4oYT1hLmhvb2spJiZuKGE9YS5pbml0KSYmYShlLCExKSxuKGUuY29tcG9uZW50SW5zdGFuY2UpKXJldHVybiBkKGUsdCksdihpLGUuZWxtLG8pLHIoYykmJmZ1bmN0aW9uKGUsdCxyLGkpe2Zvcih2YXIgbyxhPWU7YS5jb21wb25lbnRJbnN0YW5jZTspaWYoYT1hLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSxuKG89YS5kYXRhKSYmbihvPW8udHJhbnNpdGlvbikpe2ZvcihvPTA7bzxzLmFjdGl2YXRlLmxlbmd0aDsrK28pcy5hY3RpdmF0ZVtvXShucixhKTt0LnB1c2goYSk7YnJlYWt9dihyLGUuZWxtLGkpfShlLHQsaSxvKSwhMH19KGUsdCxpLG8pKXt2YXIgZj1lLmRhdGEscD1lLmNoaWxkcmVuLG09ZS50YWc7bihtKT8oZS5lbG09ZS5ucz91LmNyZWF0ZUVsZW1lbnROUyhlLm5zLG0pOnUuY3JlYXRlRWxlbWVudChtLGUpLGcoZSksaChlLHAsdCksbihmKSYmeShlLHQpLHYoaSxlLmVsbSxvKSk6cihlLmlzQ29tbWVudCk\/KGUuZWxtPXUuY3JlYXRlQ29tbWVudChlLnRleHQpLHYoaSxlLmVsbSxvKSk6KGUuZWxtPXUuY3JlYXRlVGV4dE5vZGUoZS50ZXh0KSx2KGksZS5lbG0sbykpfX1mdW5jdGlvbiBkKGUsdCl7bihlLmRhdGEucGVuZGluZ0luc2VydCkmJih0LnB1c2guYXBwbHkodCxlLmRhdGEucGVuZGluZ0luc2VydCksZS5kYXRhLnBlbmRpbmdJbnNlcnQ9bnVsbCksZS5lbG09ZS5jb21wb25lbnRJbnN0YW5jZS4kZWwsbShlKT8oeShlLHQpLGcoZSkpOih0cihlKSx0LnB1c2goZSkpfWZ1bmN0aW9uIHYoZSx0LHIpe24oZSkmJihuKHIpP3UucGFyZW50Tm9kZShyKT09PWUmJnUuaW5zZXJ0QmVmb3JlKGUsdCxyKTp1LmFwcGVuZENoaWxkKGUsdCkpfWZ1bmN0aW9uIGgoZSx0LG4pe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDsrK3IpZih0W3JdLG4sZS5lbG0sbnVsbCwhMCx0LHIpO2Vsc2UgaShlLnRleHQpJiZ1LmFwcGVuZENoaWxkKGUuZWxtLHUuY3JlYXRlVGV4dE5vZGUoU3RyaW5nKGUudGV4dCkpKX1mdW5jdGlvbiBtKGUpe2Zvcig7ZS5jb21wb25lbnRJbnN0YW5jZTspZT1lLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZTtyZXR1cm4gbihlLnRhZyl9ZnVuY3Rpb24geShlLHQpe2Zvcih2YXIgcj0wO3I8cy5jcmVhdGUubGVuZ3RoOysrcilzLmNyZWF0ZVtyXShucixlKTtuKG89ZS5kYXRhLmhvb2spJiYobihvLmNyZWF0ZSkmJm8uY3JlYXRlKG5yLGUpLG4oby5pbnNlcnQpJiZ0LnB1c2goZSkpfWZ1bmN0aW9uIGcoZSl7dmFyIHQ7aWYobih0PWUuZm5TY29wZUlkKSl1LnNldFN0eWxlU2NvcGUoZS5lbG0sdCk7ZWxzZSBmb3IodmFyIHI9ZTtyOyluKHQ9ci5jb250ZXh0KSYmbih0PXQuJG9wdGlvbnMuX3Njb3BlSWQpJiZ1LnNldFN0eWxlU2NvcGUoZS5lbG0sdCkscj1yLnBhcmVudDtuKHQ9V3QpJiZ0IT09ZS5jb250ZXh0JiZ0IT09ZS5mbkNvbnRleHQmJm4odD10LiRvcHRpb25zLl9zY29wZUlkKSYmdS5zZXRTdHlsZVNjb3BlKGUuZWxtLHQpfWZ1bmN0aW9uIF8oZSx0LG4scixpLG8pe2Zvcig7cjw9aTsrK3IpZihuW3JdLG8sZSx0LCExLG4scil9ZnVuY3Rpb24gYihlKXt2YXIgdCxyLGk9ZS5kYXRhO2lmKG4oaSkpZm9yKG4odD1pLmhvb2spJiZuKHQ9dC5kZXN0cm95KSYmdChlKSx0PTA7dDxzLmRlc3Ryb3kubGVuZ3RoOysrdClzLmRlc3Ryb3lbdF0oZSk7aWYobih0PWUuY2hpbGRyZW4pKWZvcihyPTA7cjxlLmNoaWxkcmVuLmxlbmd0aDsrK3IpYihlLmNoaWxkcmVuW3JdKX1mdW5jdGlvbiAkKGUsdCxyKXtmb3IoO3Q8PXI7Kyt0KXt2YXIgaT1lW3RdO24oaSkmJihuKGkudGFnKT8odyhpKSxiKGkpKTpsKGkuZWxtKSl9fWZ1bmN0aW9uIHcoZSx0KXtpZihuKHQpfHxuKGUuZGF0YSkpe3ZhciByLGk9cy5yZW1vdmUubGVuZ3RoKzE7Zm9yKG4odCk\/dC5saXN0ZW5lcnMrPWk6dD1mdW5jdGlvbihlLHQpe2Z1bmN0aW9uIG4oKXswPT0tLW4ubGlzdGVuZXJzJiZsKGUpfXJldHVybiBuLmxpc3RlbmVycz10LG59KGUuZWxtLGkpLG4ocj1lLmNvbXBvbmVudEluc3RhbmNlKSYmbihyPXIuX3Zub2RlKSYmbihyLmRhdGEpJiZ3KHIsdCkscj0wO3I8cy5yZW1vdmUubGVuZ3RoOysrcilzLnJlbW92ZVtyXShlLHQpO24ocj1lLmRhdGEuaG9vaykmJm4ocj1yLnJlbW92ZSk\/cihlLHQpOnQoKX1lbHNlIGwoZS5lbG0pfWZ1bmN0aW9uIEMoZSx0LHIsaSl7Zm9yKHZhciBvPXI7bzxpO28rKyl7dmFyIGE9dFtvXTtpZihuKGEpJiZpcihlLGEpKXJldHVybiBvfX1mdW5jdGlvbiB4KGUsaSxvLGEsYyxsKXtpZihlIT09aSl7bihpLmVsbSkmJm4oYSkmJihpPWFbY109bWUoaSkpO3ZhciBwPWkuZWxtPWUuZWxtO2lmKHIoZS5pc0FzeW5jUGxhY2Vob2xkZXIpKW4oaS5hc3luY0ZhY3RvcnkucmVzb2x2ZWQpP08oZS5lbG0saSxvKTppLmlzQXN5bmNQbGFjZWhvbGRlcj0hMDtlbHNlIGlmKHIoaS5pc1N0YXRpYykmJnIoZS5pc1N0YXRpYykmJmkua2V5PT09ZS5rZXkmJihyKGkuaXNDbG9uZWQpfHxyKGkuaXNPbmNlKSkpaS5jb21wb25lbnRJbnN0YW5jZT1lLmNvbXBvbmVudEluc3RhbmNlO2Vsc2V7dmFyIGQsdj1pLmRhdGE7bih2KSYmbihkPXYuaG9vaykmJm4oZD1kLnByZXBhdGNoKSYmZChlLGkpO3ZhciBoPWUuY2hpbGRyZW4seT1pLmNoaWxkcmVuO2lmKG4odikmJm0oaSkpe2ZvcihkPTA7ZDxzLnVwZGF0ZS5sZW5ndGg7KytkKXMudXBkYXRlW2RdKGUsaSk7bihkPXYuaG9vaykmJm4oZD1kLnVwZGF0ZSkmJmQoZSxpKX10KGkudGV4dCk\/bihoKSYmbih5KT9oIT09eSYmZnVuY3Rpb24oZSxyLGksbyxhKXtmb3IodmFyIHMsYyxsLHA9MCxkPTAsdj1yLmxlbmd0aC0xLGg9clswXSxtPXJbdl0seT1pLmxlbmd0aC0xLGc9aVswXSxiPWlbeV0sdz0hYTtwPD12JiZkPD15Oyl0KGgpP2g9clsrK3BdOnQobSk\/bT1yWy0tdl06aXIoaCxnKT8oeChoLGcsbyxpLGQpLGg9clsrK3BdLGc9aVsrK2RdKTppcihtLGIpPyh4KG0sYixvLGkseSksbT1yWy0tdl0sYj1pWy0teV0pOmlyKGgsYik\/KHgoaCxiLG8saSx5KSx3JiZ1Lmluc2VydEJlZm9yZShlLGguZWxtLHUubmV4dFNpYmxpbmcobS5lbG0pKSxoPXJbKytwXSxiPWlbLS15XSk6aXIobSxnKT8oeChtLGcsbyxpLGQpLHcmJnUuaW5zZXJ0QmVmb3JlKGUsbS5lbG0saC5lbG0pLG09clstLXZdLGc9aVsrK2RdKToodChzKSYmKHM9b3IocixwLHYpKSx0KGM9bihnLmtleSk\/c1tnLmtleV06QyhnLHIscCx2KSk\/ZihnLG8sZSxoLmVsbSwhMSxpLGQpOmlyKGw9cltjXSxnKT8oeChsLGcsbyxpLGQpLHJbY109dm9pZCAwLHcmJnUuaW5zZXJ0QmVmb3JlKGUsbC5lbG0saC5lbG0pKTpmKGcsbyxlLGguZWxtLCExLGksZCksZz1pWysrZF0pO3A+dj9fKGUsdChpW3krMV0pP251bGw6aVt5KzFdLmVsbSxpLGQseSxvKTpkPnkmJiQocixwLHYpfShwLGgseSxvLGwpOm4oeSk\/KG4oZS50ZXh0KSYmdS5zZXRUZXh0Q29udGVudChwLCIiKSxfKHAsbnVsbCx5LDAseS5sZW5ndGgtMSxvKSk6bihoKT8kKGgsMCxoLmxlbmd0aC0xKTpuKGUudGV4dCkmJnUuc2V0VGV4dENvbnRlbnQocCwiIik6ZS50ZXh0IT09aS50ZXh0JiZ1LnNldFRleHRDb250ZW50KHAsaS50ZXh0KSxuKHYpJiZuKGQ9di5ob29rKSYmbihkPWQucG9zdHBhdGNoKSYmZChlLGkpfX19ZnVuY3Rpb24gayhlLHQsaSl7aWYocihpKSYmbihlLnBhcmVudCkpZS5wYXJlbnQuZGF0YS5wZW5kaW5nSW5zZXJ0PXQ7ZWxzZSBmb3IodmFyIG89MDtvPHQubGVuZ3RoOysrbyl0W29dLmRhdGEuaG9vay5pbnNlcnQodFtvXSl9dmFyIEE9cCgiYXR0cnMsY2xhc3Msc3RhdGljQ2xhc3Msc3RhdGljU3R5bGUsa2V5Iik7ZnVuY3Rpb24gTyhlLHQsaSxvKXt2YXIgYSxzPXQudGFnLGM9dC5kYXRhLHU9dC5jaGlsZHJlbjtpZihvPW98fGMmJmMucHJlLHQuZWxtPWUscih0LmlzQ29tbWVudCkmJm4odC5hc3luY0ZhY3RvcnkpKXJldHVybiB0LmlzQXN5bmNQbGFjZWhvbGRlcj0hMCwhMDtpZihuKGMpJiYobihhPWMuaG9vaykmJm4oYT1hLmluaXQpJiZhKHQsITApLG4oYT10LmNvbXBvbmVudEluc3RhbmNlKSkpcmV0dXJuIGQodCxpKSwhMDtpZihuKHMpKXtpZihuKHUpKWlmKGUuaGFzQ2hpbGROb2RlcygpKWlmKG4oYT1jKSYmbihhPWEuZG9tUHJvcHMpJiZuKGE9YS5pbm5lckhUTUwpKXtpZihhIT09ZS5pbm5lckhUTUwpcmV0dXJuITF9ZWxzZXtmb3IodmFyIGw9ITAsZj1lLmZpcnN0Q2hpbGQscD0wO3A8dS5sZW5ndGg7cCsrKXtpZighZnx8IU8oZix1W3BdLGksbykpe2w9ITE7YnJlYWt9Zj1mLm5leHRTaWJsaW5nfWlmKCFsfHxmKXJldHVybiExfWVsc2UgaCh0LHUsaSk7aWYobihjKSl7dmFyIHY9ITE7Zm9yKHZhciBtIGluIGMpaWYoIUEobSkpe3Y9ITAseSh0LGkpO2JyZWFrfSF2JiZjLmNsYXNzJiZldChjLmNsYXNzKX19ZWxzZSBlLmRhdGEhPT10LnRleHQmJihlLmRhdGE9dC50ZXh0KTtyZXR1cm4hMH1yZXR1cm4gZnVuY3Rpb24oZSxpLG8sYSl7aWYoIXQoaSkpe3ZhciBjLGw9ITEscD1bXTtpZih0KGUpKWw9ITAsZihpLHApO2Vsc2V7dmFyIGQ9bihlLm5vZGVUeXBlKTtpZighZCYmaXIoZSxpKSl4KGUsaSxwLG51bGwsbnVsbCxhKTtlbHNle2lmKGQpe2lmKDE9PT1lLm5vZGVUeXBlJiZlLmhhc0F0dHJpYnV0ZShMKSYmKGUucmVtb3ZlQXR0cmlidXRlKEwpLG89ITApLHIobykmJk8oZSxpLHApKXJldHVybiBrKGkscCwhMCksZTtjPWUsZT1uZXcgcGUodS50YWdOYW1lKGMpLnRvTG93ZXJDYXNlKCkse30sW10sdm9pZCAwLGMpfXZhciB2PWUuZWxtLGg9dS5wYXJlbnROb2RlKHYpO2lmKGYoaSxwLHYuX2xlYXZlQ2I\/bnVsbDpoLHUubmV4dFNpYmxpbmcodikpLG4oaS5wYXJlbnQpKWZvcih2YXIgeT1pLnBhcmVudCxnPW0oaSk7eTspe2Zvcih2YXIgXz0wO188cy5kZXN0cm95Lmxlbmd0aDsrK18pcy5kZXN0cm95W19dKHkpO2lmKHkuZWxtPWkuZWxtLGcpe2Zvcih2YXIgdz0wO3c8cy5jcmVhdGUubGVuZ3RoOysrdylzLmNyZWF0ZVt3XShucix5KTt2YXIgQz15LmRhdGEuaG9vay5pbnNlcnQ7aWYoQy5tZXJnZWQpZm9yKHZhciBBPTE7QTxDLmZucy5sZW5ndGg7QSsrKUMuZm5zW0FdKCl9ZWxzZSB0cih5KTt5PXkucGFyZW50fW4oaCk\/JChbZV0sMCwwKTpuKGUudGFnKSYmYihlKX19cmV0dXJuIGsoaSxwLGwpLGkuZWxtfW4oZSkmJmIoZSl9fSh7bm9kZU9wczpRbixtb2R1bGVzOlttcix4cixuaSxvaSxtaSx6P3tjcmVhdGU6VWksYWN0aXZhdGU6VWkscmVtb3ZlOmZ1bmN0aW9uKGUsdCl7ITAhPT1lLmRhdGEuc2hvdz9SaShlLHQpOnQoKX19Ont9XS5jb25jYXQocHIpfSk7VyYmZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIixmdW5jdGlvbigpe3ZhciBlPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7ZSYmZS52bW9kZWwmJlhpKGUsImlucHV0Iil9KTt2YXIgVmk9e2luc2VydGVkOmZ1bmN0aW9uKGUsdCxuLHIpeyJzZWxlY3QiPT09bi50YWc\/KHIuZWxtJiYhci5lbG0uX3ZPcHRpb25zP2l0KG4sInBvc3RwYXRjaCIsZnVuY3Rpb24oKXtWaS5jb21wb25lbnRVcGRhdGVkKGUsdCxuKX0pOktpKGUsdCxuLmNvbnRleHQpLGUuX3ZPcHRpb25zPVtdLm1hcC5jYWxsKGUub3B0aW9ucyxXaSkpOigidGV4dGFyZWEiPT09bi50YWd8fFhuKGUudHlwZSkpJiYoZS5fdk1vZGlmaWVycz10Lm1vZGlmaWVycyx0Lm1vZGlmaWVycy5sYXp5fHwoZS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbnN0YXJ0IixaaSksZS5hZGRFdmVudExpc3RlbmVyKCJjb21wb3NpdGlvbmVuZCIsR2kpLGUuYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIixHaSksVyYmKGUudm1vZGVsPSEwKSkpfSxjb21wb25lbnRVcGRhdGVkOmZ1bmN0aW9uKGUsdCxuKXtpZigic2VsZWN0Ij09PW4udGFnKXtLaShlLHQsbi5jb250ZXh0KTt2YXIgcj1lLl92T3B0aW9ucyxpPWUuX3ZPcHRpb25zPVtdLm1hcC5jYWxsKGUub3B0aW9ucyxXaSk7aWYoaS5zb21lKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIU4oZSxyW3RdKX0pKShlLm11bHRpcGxlP3QudmFsdWUuc29tZShmdW5jdGlvbihlKXtyZXR1cm4gcWkoZSxpKX0pOnQudmFsdWUhPT10Lm9sZFZhbHVlJiZxaSh0LnZhbHVlLGkpKSYmWGkoZSwiY2hhbmdlIil9fX07ZnVuY3Rpb24gS2koZSx0LG4pe0ppKGUsdCxuKSwocXx8WikmJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtKaShlLHQsbil9LDApfWZ1bmN0aW9uIEppKGUsdCxuKXt2YXIgcj10LnZhbHVlLGk9ZS5tdWx0aXBsZTtpZighaXx8QXJyYXkuaXNBcnJheShyKSl7Zm9yKHZhciBvLGEscz0wLGM9ZS5vcHRpb25zLmxlbmd0aDtzPGM7cysrKWlmKGE9ZS5vcHRpb25zW3NdLGkpbz1qKHIsV2koYSkpPi0xLGEuc2VsZWN0ZWQhPT1vJiYoYS5zZWxlY3RlZD1vKTtlbHNlIGlmKE4oV2koYSkscikpcmV0dXJuIHZvaWQoZS5zZWxlY3RlZEluZGV4IT09cyYmKGUuc2VsZWN0ZWRJbmRleD1zKSk7aXx8KGUuc2VsZWN0ZWRJbmRleD0tMSl9fWZ1bmN0aW9uIHFpKGUsdCl7cmV0dXJuIHQuZXZlcnkoZnVuY3Rpb24odCl7cmV0dXJuIU4odCxlKX0pfWZ1bmN0aW9uIFdpKGUpe3JldHVybiJfdmFsdWUiaW4gZT9lLl92YWx1ZTplLnZhbHVlfWZ1bmN0aW9uIFppKGUpe2UudGFyZ2V0LmNvbXBvc2luZz0hMH1mdW5jdGlvbiBHaShlKXtlLnRhcmdldC5jb21wb3NpbmcmJihlLnRhcmdldC5jb21wb3Npbmc9ITEsWGkoZS50YXJnZXQsImlucHV0IikpfWZ1bmN0aW9uIFhpKGUsdCl7dmFyIG49ZG9jdW1lbnQuY3JlYXRlRXZlbnQoIkhUTUxFdmVudHMiKTtuLmluaXRFdmVudCh0LCEwLCEwKSxlLmRpc3BhdGNoRXZlbnQobil9ZnVuY3Rpb24gWWkoZSl7cmV0dXJuIWUuY29tcG9uZW50SW5zdGFuY2V8fGUuZGF0YSYmZS5kYXRhLnRyYW5zaXRpb24\/ZTpZaShlLmNvbXBvbmVudEluc3RhbmNlLl92bm9kZSl9dmFyIFFpPXttb2RlbDpWaSxzaG93OntiaW5kOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10LnZhbHVlLGk9KG49WWkobikpLmRhdGEmJm4uZGF0YS50cmFuc2l0aW9uLG89ZS5fX3ZPcmlnaW5hbERpc3BsYXk9Im5vbmUiPT09ZS5zdHlsZS5kaXNwbGF5PyIiOmUuc3R5bGUuZGlzcGxheTtyJiZpPyhuLmRhdGEuc2hvdz0hMCxQaShuLGZ1bmN0aW9uKCl7ZS5zdHlsZS5kaXNwbGF5PW99KSk6ZS5zdHlsZS5kaXNwbGF5PXI\/bzoibm9uZSJ9LHVwZGF0ZTpmdW5jdGlvbihlLHQsbil7dmFyIHI9dC52YWx1ZTshciE9IXQub2xkVmFsdWUmJigobj1ZaShuKSkuZGF0YSYmbi5kYXRhLnRyYW5zaXRpb24\/KG4uZGF0YS5zaG93PSEwLHI\/UGkobixmdW5jdGlvbigpe2Uuc3R5bGUuZGlzcGxheT1lLl9fdk9yaWdpbmFsRGlzcGxheX0pOlJpKG4sZnVuY3Rpb24oKXtlLnN0eWxlLmRpc3BsYXk9Im5vbmUifSkpOmUuc3R5bGUuZGlzcGxheT1yP2UuX192T3JpZ2luYWxEaXNwbGF5OiJub25lIil9LHVuYmluZDpmdW5jdGlvbihlLHQsbixyLGkpe2l8fChlLnN0eWxlLmRpc3BsYXk9ZS5fX3ZPcmlnaW5hbERpc3BsYXkpfX19LGVvPXtuYW1lOlN0cmluZyxhcHBlYXI6Qm9vbGVhbixjc3M6Qm9vbGVhbixtb2RlOlN0cmluZyx0eXBlOlN0cmluZyxlbnRlckNsYXNzOlN0cmluZyxsZWF2ZUNsYXNzOlN0cmluZyxlbnRlclRvQ2xhc3M6U3RyaW5nLGxlYXZlVG9DbGFzczpTdHJpbmcsZW50ZXJBY3RpdmVDbGFzczpTdHJpbmcsbGVhdmVBY3RpdmVDbGFzczpTdHJpbmcsYXBwZWFyQ2xhc3M6U3RyaW5nLGFwcGVhckFjdGl2ZUNsYXNzOlN0cmluZyxhcHBlYXJUb0NsYXNzOlN0cmluZyxkdXJhdGlvbjpbTnVtYmVyLFN0cmluZyxPYmplY3RdfTtmdW5jdGlvbiB0byhlKXt2YXIgdD1lJiZlLmNvbXBvbmVudE9wdGlvbnM7cmV0dXJuIHQmJnQuQ3Rvci5vcHRpb25zLmFic3RyYWN0P3RvKHp0KHQuY2hpbGRyZW4pKTplfWZ1bmN0aW9uIG5vKGUpe3ZhciB0PXt9LG49ZS4kb3B0aW9ucztmb3IodmFyIHIgaW4gbi5wcm9wc0RhdGEpdFtyXT1lW3JdO3ZhciBpPW4uX3BhcmVudExpc3RlbmVycztmb3IodmFyIG8gaW4gaSl0W2IobyldPWlbb107cmV0dXJuIHR9ZnVuY3Rpb24gcm8oZSx0KXtpZigvXGQta2VlcC1hbGl2ZSQvLnRlc3QodC50YWcpKXJldHVybiBlKCJrZWVwLWFsaXZlIix7cHJvcHM6dC5jb21wb25lbnRPcHRpb25zLnByb3BzRGF0YX0pfXZhciBpbz1mdW5jdGlvbihlKXtyZXR1cm4gZS50YWd8fFV0KGUpfSxvbz1mdW5jdGlvbihlKXtyZXR1cm4ic2hvdyI9PT1lLm5hbWV9LGFvPXtuYW1lOiJ0cmFuc2l0aW9uIixwcm9wczplbyxhYnN0cmFjdDohMCxyZW5kZXI6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcyxuPXRoaXMuJHNsb3RzLmRlZmF1bHQ7aWYobiYmKG49bi5maWx0ZXIoaW8pKS5sZW5ndGgpe3ZhciByPXRoaXMubW9kZSxvPW5bMF07aWYoZnVuY3Rpb24oZSl7Zm9yKDtlPWUucGFyZW50OylpZihlLmRhdGEudHJhbnNpdGlvbilyZXR1cm4hMH0odGhpcy4kdm5vZGUpKXJldHVybiBvO3ZhciBhPXRvKG8pO2lmKCFhKXJldHVybiBvO2lmKHRoaXMuX2xlYXZpbmcpcmV0dXJuIHJvKGUsbyk7dmFyIHM9Il9fdHJhbnNpdGlvbi0iK3RoaXMuX3VpZCsiLSI7YS5rZXk9bnVsbD09YS5rZXk\/YS5pc0NvbW1lbnQ\/cysiY29tbWVudCI6cythLnRhZzppKGEua2V5KT8wPT09U3RyaW5nKGEua2V5KS5pbmRleE9mKHMpP2Eua2V5OnMrYS5rZXk6YS5rZXk7dmFyIGM9KGEuZGF0YXx8KGEuZGF0YT17fSkpLnRyYW5zaXRpb249bm8odGhpcyksdT10aGlzLl92bm9kZSxsPXRvKHUpO2lmKGEuZGF0YS5kaXJlY3RpdmVzJiZhLmRhdGEuZGlyZWN0aXZlcy5zb21lKG9vKSYmKGEuZGF0YS5zaG93PSEwKSxsJiZsLmRhdGEmJiFmdW5jdGlvbihlLHQpe3JldHVybiB0LmtleT09PWUua2V5JiZ0LnRhZz09PWUudGFnfShhLGwpJiYhVXQobCkmJighbC5jb21wb25lbnRJbnN0YW5jZXx8IWwuY29tcG9uZW50SW5zdGFuY2UuX3Zub2RlLmlzQ29tbWVudCkpe3ZhciBmPWwuZGF0YS50cmFuc2l0aW9uPUEoe30sYyk7aWYoIm91dC1pbiI9PT1yKXJldHVybiB0aGlzLl9sZWF2aW5nPSEwLGl0KGYsImFmdGVyTGVhdmUiLGZ1bmN0aW9uKCl7dC5fbGVhdmluZz0hMSx0LiRmb3JjZVVwZGF0ZSgpfSkscm8oZSxvKTtpZigiaW4tb3V0Ij09PXIpe2lmKFV0KGEpKXJldHVybiB1O3ZhciBwLGQ9ZnVuY3Rpb24oKXtwKCl9O2l0KGMsImFmdGVyRW50ZXIiLGQpLGl0KGMsImVudGVyQ2FuY2VsbGVkIixkKSxpdChmLCJkZWxheUxlYXZlIixmdW5jdGlvbihlKXtwPWV9KX19cmV0dXJuIG99fX0sc289QSh7dGFnOlN0cmluZyxtb3ZlQ2xhc3M6U3RyaW5nfSxlbyk7ZnVuY3Rpb24gY28oZSl7ZS5lbG0uX21vdmVDYiYmZS5lbG0uX21vdmVDYigpLGUuZWxtLl9lbnRlckNiJiZlLmVsbS5fZW50ZXJDYigpfWZ1bmN0aW9uIHVvKGUpe2UuZGF0YS5uZXdQb3M9ZS5lbG0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCl9ZnVuY3Rpb24gbG8oZSl7dmFyIHQ9ZS5kYXRhLnBvcyxuPWUuZGF0YS5uZXdQb3Mscj10LmxlZnQtbi5sZWZ0LGk9dC50b3Atbi50b3A7aWYocnx8aSl7ZS5kYXRhLm1vdmVkPSEwO3ZhciBvPWUuZWxtLnN0eWxlO28udHJhbnNmb3JtPW8uV2Via2l0VHJhbnNmb3JtPSJ0cmFuc2xhdGUoIityKyJweCwiK2krInB4KSIsby50cmFuc2l0aW9uRHVyYXRpb249IjBzIn19ZGVsZXRlIHNvLm1vZGU7dmFyIGZvPXtUcmFuc2l0aW9uOmFvLFRyYW5zaXRpb25Hcm91cDp7cHJvcHM6c28sYmVmb3JlTW91bnQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLHQ9dGhpcy5fdXBkYXRlO3RoaXMuX3VwZGF0ZT1mdW5jdGlvbihuLHIpe3ZhciBpPVp0KGUpO2UuX19wYXRjaF9fKGUuX3Zub2RlLGUua2VwdCwhMSwhMCksZS5fdm5vZGU9ZS5rZXB0LGkoKSx0LmNhbGwoZSxuLHIpfX0scmVuZGVyOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD10aGlzLnRhZ3x8dGhpcy4kdm5vZGUuZGF0YS50YWd8fCJzcGFuIixuPU9iamVjdC5jcmVhdGUobnVsbCkscj10aGlzLnByZXZDaGlsZHJlbj10aGlzLmNoaWxkcmVuLGk9dGhpcy4kc2xvdHMuZGVmYXVsdHx8W10sbz10aGlzLmNoaWxkcmVuPVtdLGE9bm8odGhpcykscz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgYz1pW3NdO2MudGFnJiZudWxsIT1jLmtleSYmMCE9PVN0cmluZyhjLmtleSkuaW5kZXhPZigiX192bGlzdCIpJiYoby5wdXNoKGMpLG5bYy5rZXldPWMsKGMuZGF0YXx8KGMuZGF0YT17fSkpLnRyYW5zaXRpb249YSl9aWYocil7Zm9yKHZhciB1PVtdLGw9W10sZj0wO2Y8ci5sZW5ndGg7ZisrKXt2YXIgcD1yW2ZdO3AuZGF0YS50cmFuc2l0aW9uPWEscC5kYXRhLnBvcz1wLmVsbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuW3Aua2V5XT91LnB1c2gocCk6bC5wdXNoKHApfXRoaXMua2VwdD1lKHQsbnVsbCx1KSx0aGlzLnJlbW92ZWQ9bH1yZXR1cm4gZSh0LG51bGwsbyl9LHVwZGF0ZWQ6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnByZXZDaGlsZHJlbix0PXRoaXMubW92ZUNsYXNzfHwodGhpcy5uYW1lfHwidiIpKyItbW92ZSI7ZS5sZW5ndGgmJnRoaXMuaGFzTW92ZShlWzBdLmVsbSx0KSYmKGUuZm9yRWFjaChjbyksZS5mb3JFYWNoKHVvKSxlLmZvckVhY2gobG8pLHRoaXMuX3JlZmxvdz1kb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCxlLmZvckVhY2goZnVuY3Rpb24oZSl7aWYoZS5kYXRhLm1vdmVkKXt2YXIgbj1lLmVsbSxyPW4uc3R5bGU7Tmkobix0KSxyLnRyYW5zZm9ybT1yLldlYmtpdFRyYW5zZm9ybT1yLnRyYW5zaXRpb25EdXJhdGlvbj0iIixuLmFkZEV2ZW50TGlzdGVuZXIoQWksbi5fbW92ZUNiPWZ1bmN0aW9uIGUocil7ciYmci50YXJnZXQhPT1ufHxyJiYhL3RyYW5zZm9ybSQvLnRlc3Qoci5wcm9wZXJ0eU5hbWUpfHwobi5yZW1vdmVFdmVudExpc3RlbmVyKEFpLGUpLG4uX21vdmVDYj1udWxsLGppKG4sdCkpfSl9fSkpfSxtZXRob2RzOntoYXNNb3ZlOmZ1bmN0aW9uKGUsdCl7aWYoIXdpKXJldHVybiExO2lmKHRoaXMuX2hhc01vdmUpcmV0dXJuIHRoaXMuX2hhc01vdmU7dmFyIG49ZS5jbG9uZU5vZGUoKTtlLl90cmFuc2l0aW9uQ2xhc3NlcyYmZS5fdHJhbnNpdGlvbkNsYXNzZXMuZm9yRWFjaChmdW5jdGlvbihlKXtfaShuLGUpfSksZ2kobix0KSxuLnN0eWxlLmRpc3BsYXk9Im5vbmUiLHRoaXMuJGVsLmFwcGVuZENoaWxkKG4pO3ZhciByPU1pKG4pO3JldHVybiB0aGlzLiRlbC5yZW1vdmVDaGlsZChuKSx0aGlzLl9oYXNNb3ZlPXIuaGFzVHJhbnNmb3JtfX19fTt3bi5jb25maWcubXVzdFVzZVByb3A9am4sd24uY29uZmlnLmlzUmVzZXJ2ZWRUYWc9V24sd24uY29uZmlnLmlzUmVzZXJ2ZWRBdHRyPUVuLHduLmNvbmZpZy5nZXRUYWdOYW1lc3BhY2U9Wm4sd24uY29uZmlnLmlzVW5rbm93bkVsZW1lbnQ9ZnVuY3Rpb24oZSl7aWYoIXopcmV0dXJuITA7aWYoV24oZSkpcmV0dXJuITE7aWYoZT1lLnRvTG93ZXJDYXNlKCksbnVsbCE9R25bZV0pcmV0dXJuIEduW2VdO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZSk7cmV0dXJuIGUuaW5kZXhPZigiLSIpPi0xP0duW2VdPXQuY29uc3RydWN0b3I9PT13aW5kb3cuSFRNTFVua25vd25FbGVtZW50fHx0LmNvbnN0cnVjdG9yPT09d2luZG93LkhUTUxFbGVtZW50OkduW2VdPS9IVE1MVW5rbm93bkVsZW1lbnQvLnRlc3QodC50b1N0cmluZygpKX0sQSh3bi5vcHRpb25zLmRpcmVjdGl2ZXMsUWkpLEEod24ub3B0aW9ucy5jb21wb25lbnRzLGZvKSx3bi5wcm90b3R5cGUuX19wYXRjaF9fPXo\/emk6Uyx3bi5wcm90b3R5cGUuJG1vdW50PWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtyZXR1cm4gZS4kZWw9dCxlLiRvcHRpb25zLnJlbmRlcnx8KGUuJG9wdGlvbnMucmVuZGVyPXZlKSxZdChlLCJiZWZvcmVNb3VudCIpLHI9ZnVuY3Rpb24oKXtlLl91cGRhdGUoZS5fcmVuZGVyKCksbil9LG5ldyBmbihlLHIsUyx7YmVmb3JlOmZ1bmN0aW9uKCl7ZS5faXNNb3VudGVkJiYhZS5faXNEZXN0cm95ZWQmJll0KGUsImJlZm9yZVVwZGF0ZSIpfX0sITApLG49ITEsbnVsbD09ZS4kdm5vZGUmJihlLl9pc01vdW50ZWQ9ITAsWXQoZSwibW91bnRlZCIpKSxlfSh0aGlzLGU9ZSYmej9ZbihlKTp2b2lkIDAsdCl9LHomJnNldFRpbWVvdXQoZnVuY3Rpb24oKXtGLmRldnRvb2xzJiZuZSYmbmUuZW1pdCgiaW5pdCIsd24pfSwwKTt2YXIgcG89L1x7XHsoKD86Lnxccj9cbikrPylcfVx9L2csdm89L1stLiorP14ke30oKXxbXF1cL1xcXS9nLGhvPWcoZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXS5yZXBsYWNlKHZvLCJcXCQmIiksbj1lWzFdLnJlcGxhY2Uodm8sIlxcJCYiKTtyZXR1cm4gbmV3IFJlZ0V4cCh0KyIoKD86LnxcXG4pKz8pIituLCJnIil9KTt2YXIgbW89e3N0YXRpY0tleXM6WyJzdGF0aWNDbGFzcyJdLHRyYW5zZm9ybU5vZGU6ZnVuY3Rpb24oZSx0KXt0Lndhcm47dmFyIG49RnIoZSwiY2xhc3MiKTtuJiYoZS5zdGF0aWNDbGFzcz1KU09OLnN0cmluZ2lmeShuKSk7dmFyIHI9SXIoZSwiY2xhc3MiLCExKTtyJiYoZS5jbGFzc0JpbmRpbmc9cil9LGdlbkRhdGE6ZnVuY3Rpb24oZSl7dmFyIHQ9IiI7cmV0dXJuIGUuc3RhdGljQ2xhc3MmJih0Kz0ic3RhdGljQ2xhc3M6IitlLnN0YXRpY0NsYXNzKyIsIiksZS5jbGFzc0JpbmRpbmcmJih0Kz0iY2xhc3M6IitlLmNsYXNzQmluZGluZysiLCIpLHR9fTt2YXIgeW8sZ289e3N0YXRpY0tleXM6WyJzdGF0aWNTdHlsZSJdLHRyYW5zZm9ybU5vZGU6ZnVuY3Rpb24oZSx0KXt0Lndhcm47dmFyIG49RnIoZSwic3R5bGUiKTtuJiYoZS5zdGF0aWNTdHlsZT1KU09OLnN0cmluZ2lmeShhaShuKSkpO3ZhciByPUlyKGUsInN0eWxlIiwhMSk7ciYmKGUuc3R5bGVCaW5kaW5nPXIpfSxnZW5EYXRhOmZ1bmN0aW9uKGUpe3ZhciB0PSIiO3JldHVybiBlLnN0YXRpY1N0eWxlJiYodCs9InN0YXRpY1N0eWxlOiIrZS5zdGF0aWNTdHlsZSsiLCIpLGUuc3R5bGVCaW5kaW5nJiYodCs9InN0eWxlOigiK2Uuc3R5bGVCaW5kaW5nKyIpLCIpLHR9fSxfbz1mdW5jdGlvbihlKXtyZXR1cm4oeW89eW98fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9ZSx5by50ZXh0Q29udGVudH0sYm89cCgiYXJlYSxiYXNlLGJyLGNvbCxlbWJlZCxmcmFtZSxocixpbWcsaW5wdXQsaXNpbmRleCxrZXlnZW4sbGluayxtZXRhLHBhcmFtLHNvdXJjZSx0cmFjayx3YnIiKSwkbz1wKCJjb2xncm91cCxkZCxkdCxsaSxvcHRpb25zLHAsdGQsdGZvb3QsdGgsdGhlYWQsdHIsc291cmNlIiksd289cCgiYWRkcmVzcyxhcnRpY2xlLGFzaWRlLGJhc2UsYmxvY2txdW90ZSxib2R5LGNhcHRpb24sY29sLGNvbGdyb3VwLGRkLGRldGFpbHMsZGlhbG9nLGRpdixkbCxkdCxmaWVsZHNldCxmaWdjYXB0aW9uLGZpZ3VyZSxmb290ZXIsZm9ybSxoMSxoMixoMyxoNCxoNSxoNixoZWFkLGhlYWRlcixoZ3JvdXAsaHIsaHRtbCxsZWdlbmQsbGksbWVudWl0ZW0sbWV0YSxvcHRncm91cCxvcHRpb24scGFyYW0scnAscnQsc291cmNlLHN0eWxlLHN1bW1hcnksdGJvZHksdGQsdGZvb3QsdGgsdGhlYWQsdGl0bGUsdHIsdHJhY2siKSxDbz0vXlxzKihbXlxzIic8PlwvPV0rKSg\/OlxzKig9KVxzKig\/OiIoW14iXSopIit8JyhbXiddKiknK3woW15ccyInPTw+YF0rKSkpPy8seG89L15ccyooKD86di1bXHctXSs6fEB8OnwjKVxbW149XStcXVteXHMiJzw+XC89XSopKD86XHMqKD0pXHMqKD86IihbXiJdKikiK3wnKFteJ10qKScrfChbXlxzIic9PD5gXSspKSk\/Lyxrbz0iW2EtekEtWl9dW1xcLVxcLjAtOV9hLXpBLVoiK1Auc291cmNlKyJdKiIsQW89IigoPzoiK2tvKyJcXDopPyIra28rIikiLE9vPW5ldyBSZWdFeHAoIl48IitBbyksU289L15ccyooXC8\/KT4vLFRvPW5ldyBSZWdFeHAoIl48XFwvIitBbysiW14+XSo+IiksRW89L148IURPQ1RZUEUgW14+XSs+L2ksTm89L148IVwtLS8sam89L148IVxbLyxEbz1wKCJzY3JpcHQsc3R5bGUsdGV4dGFyZWEiLCEwKSxMbz17fSxNbz17IiZsdDsiOiI8IiwiJmd0OyI6Ij4iLCImcXVvdDsiOiciJywiJmFtcDsiOiImIiwiJiMxMDsiOiJcbiIsIiYjOTsiOiJcdCIsIiYjMzk7IjoiJyJ9LElvPS8mKD86bHR8Z3R8cXVvdHxhbXB8IzM5KTsvZyxGbz0vJig\/Omx0fGd0fHF1b3R8YW1wfCMzOXwjMTB8IzkpOy9nLFBvPXAoInByZSx0ZXh0YXJlYSIsITApLFJvPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJlBvKGUpJiYiXG4iPT09dFswXX07ZnVuY3Rpb24gSG8oZSx0KXt2YXIgbj10P0ZvOklvO3JldHVybiBlLnJlcGxhY2UobixmdW5jdGlvbihlKXtyZXR1cm4gTW9bZV19KX12YXIgQm8sVW8sem8sVm8sS28sSm8scW8sV28sWm89L15AfF52LW9uOi8sR289L152LXxeQHxeOnxeIy8sWG89LyhbXHNcU10qPylccysoPzppbnxvZilccysoW1xzXFNdKikvLFlvPS8sKFteLFx9XF1dKikoPzosKFteLFx9XF1dKikpPyQvLFFvPS9eXCh8XCkkL2csZWE9L15cWy4qXF0kLyx0YT0vOiguKikkLyxuYT0vXjp8XlwufF52LWJpbmQ6LyxyYT0vXC5bXi5cXV0rKD89W15cXV0qJCkvZyxpYT0vXnYtc2xvdCg6fCQpfF4jLyxvYT0vW1xyXG5dLyxhYT0vXHMrL2csc2E9ZyhfbyksY2E9Il9lbXB0eV8iO2Z1bmN0aW9uIHVhKGUsdCxuKXtyZXR1cm57dHlwZToxLHRhZzplLGF0dHJzTGlzdDp0LGF0dHJzTWFwOm1hKHQpLHJhd0F0dHJzTWFwOnt9LHBhcmVudDpuLGNoaWxkcmVuOltdfX1mdW5jdGlvbiBsYShlLHQpe0JvPXQud2Fybnx8U3IsSm89dC5pc1ByZVRhZ3x8VCxxbz10Lm11c3RVc2VQcm9wfHxULFdvPXQuZ2V0VGFnTmFtZXNwYWNlfHxUO3QuaXNSZXNlcnZlZFRhZzt6bz1Ucih0Lm1vZHVsZXMsInRyYW5zZm9ybU5vZGUiKSxWbz1Ucih0Lm1vZHVsZXMsInByZVRyYW5zZm9ybU5vZGUiKSxLbz1Ucih0Lm1vZHVsZXMsInBvc3RUcmFuc2Zvcm1Ob2RlIiksVW89dC5kZWxpbWl0ZXJzO3ZhciBuLHIsaT1bXSxvPSExIT09dC5wcmVzZXJ2ZVdoaXRlc3BhY2UsYT10LndoaXRlc3BhY2Uscz0hMSxjPSExO2Z1bmN0aW9uIHUoZSl7aWYobChlKSxzfHxlLnByb2Nlc3NlZHx8KGU9ZmEoZSx0KSksaS5sZW5ndGh8fGU9PT1ufHxuLmlmJiYoZS5lbHNlaWZ8fGUuZWxzZSkmJmRhKG4se2V4cDplLmVsc2VpZixibG9jazplfSksciYmIWUuZm9yYmlkZGVuKWlmKGUuZWxzZWlmfHxlLmVsc2UpYT1lLCh1PWZ1bmN0aW9uKGUpe3ZhciB0PWUubGVuZ3RoO2Zvcig7dC0tOyl7aWYoMT09PWVbdF0udHlwZSlyZXR1cm4gZVt0XTtlLnBvcCgpfX0oci5jaGlsZHJlbikpJiZ1LmlmJiZkYSh1LHtleHA6YS5lbHNlaWYsYmxvY2s6YX0pO2Vsc2V7aWYoZS5zbG90U2NvcGUpe3ZhciBvPWUuc2xvdFRhcmdldHx8JyJkZWZhdWx0Iic7KHIuc2NvcGVkU2xvdHN8fChyLnNjb3BlZFNsb3RzPXt9KSlbb109ZX1yLmNoaWxkcmVuLnB1c2goZSksZS5wYXJlbnQ9cn12YXIgYSx1O2UuY2hpbGRyZW49ZS5jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oZSl7cmV0dXJuIWUuc2xvdFNjb3BlfSksbChlKSxlLnByZSYmKHM9ITEpLEpvKGUudGFnKSYmKGM9ITEpO2Zvcih2YXIgZj0wO2Y8S28ubGVuZ3RoO2YrKylLb1tmXShlLHQpfWZ1bmN0aW9uIGwoZSl7aWYoIWMpZm9yKHZhciB0Oyh0PWUuY2hpbGRyZW5bZS5jaGlsZHJlbi5sZW5ndGgtMV0pJiYzPT09dC50eXBlJiYiICI9PT10LnRleHQ7KWUuY2hpbGRyZW4ucG9wKCl9cmV0dXJuIGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuLHIsaT1bXSxvPXQuZXhwZWN0SFRNTCxhPXQuaXNVbmFyeVRhZ3x8VCxzPXQuY2FuQmVMZWZ0T3BlblRhZ3x8VCxjPTA7ZTspe2lmKG49ZSxyJiZEbyhyKSl7dmFyIHU9MCxsPXIudG9Mb3dlckNhc2UoKSxmPUxvW2xdfHwoTG9bbF09bmV3IFJlZ0V4cCgiKFtcXHNcXFNdKj8pKDwvIitsKyJbXj5dKj4pIiwiaSIpKSxwPWUucmVwbGFjZShmLGZ1bmN0aW9uKGUsbixyKXtyZXR1cm4gdT1yLmxlbmd0aCxEbyhsKXx8Im5vc2NyaXB0Ij09PWx8fChuPW4ucmVwbGFjZSgvPCFcLS0oW1xzXFNdKj8pLS0+L2csIiQxIikucmVwbGFjZSgvPCFcW0NEQVRBXFsoW1xzXFNdKj8pXV0+L2csIiQxIikpLFJvKGwsbikmJihuPW4uc2xpY2UoMSkpLHQuY2hhcnMmJnQuY2hhcnMobiksIiJ9KTtjKz1lLmxlbmd0aC1wLmxlbmd0aCxlPXAsQShsLGMtdSxjKX1lbHNle3ZhciBkPWUuaW5kZXhPZigiPCIpO2lmKDA9PT1kKXtpZihOby50ZXN0KGUpKXt2YXIgdj1lLmluZGV4T2YoIi0tXHgzZSIpO2lmKHY+PTApe3Quc2hvdWxkS2VlcENvbW1lbnQmJnQuY29tbWVudChlLnN1YnN0cmluZyg0LHYpLGMsYyt2KzMpLEModiszKTtjb250aW51ZX19aWYoam8udGVzdChlKSl7dmFyIGg9ZS5pbmRleE9mKCJdPiIpO2lmKGg+PTApe0MoaCsyKTtjb250aW51ZX19dmFyIG09ZS5tYXRjaChFbyk7aWYobSl7QyhtWzBdLmxlbmd0aCk7Y29udGludWV9dmFyIHk9ZS5tYXRjaChUbyk7aWYoeSl7dmFyIGc9YztDKHlbMF0ubGVuZ3RoKSxBKHlbMV0sZyxjKTtjb250aW51ZX12YXIgXz14KCk7aWYoXyl7ayhfKSxSbyhfLnRhZ05hbWUsZSkmJkMoMSk7Y29udGludWV9fXZhciBiPXZvaWQgMCwkPXZvaWQgMCx3PXZvaWQgMDtpZihkPj0wKXtmb3IoJD1lLnNsaWNlKGQpOyEoVG8udGVzdCgkKXx8T28udGVzdCgkKXx8Tm8udGVzdCgkKXx8am8udGVzdCgkKXx8KHc9JC5pbmRleE9mKCI8IiwxKSk8MCk7KWQrPXcsJD1lLnNsaWNlKGQpO2I9ZS5zdWJzdHJpbmcoMCxkKX1kPDAmJihiPWUpLGImJkMoYi5sZW5ndGgpLHQuY2hhcnMmJmImJnQuY2hhcnMoYixjLWIubGVuZ3RoLGMpfWlmKGU9PT1uKXt0LmNoYXJzJiZ0LmNoYXJzKGUpO2JyZWFrfX1mdW5jdGlvbiBDKHQpe2MrPXQsZT1lLnN1YnN0cmluZyh0KX1mdW5jdGlvbiB4KCl7dmFyIHQ9ZS5tYXRjaChPbyk7aWYodCl7dmFyIG4scixpPXt0YWdOYW1lOnRbMV0sYXR0cnM6W10sc3RhcnQ6Y307Zm9yKEModFswXS5sZW5ndGgpOyEobj1lLm1hdGNoKFNvKSkmJihyPWUubWF0Y2goeG8pfHxlLm1hdGNoKENvKSk7KXIuc3RhcnQ9YyxDKHJbMF0ubGVuZ3RoKSxyLmVuZD1jLGkuYXR0cnMucHVzaChyKTtpZihuKXJldHVybiBpLnVuYXJ5U2xhc2g9blsxXSxDKG5bMF0ubGVuZ3RoKSxpLmVuZD1jLGl9fWZ1bmN0aW9uIGsoZSl7dmFyIG49ZS50YWdOYW1lLGM9ZS51bmFyeVNsYXNoO28mJigicCI9PT1yJiZ3byhuKSYmQShyKSxzKG4pJiZyPT09biYmQShuKSk7Zm9yKHZhciB1PWEobil8fCEhYyxsPWUuYXR0cnMubGVuZ3RoLGY9bmV3IEFycmF5KGwpLHA9MDtwPGw7cCsrKXt2YXIgZD1lLmF0dHJzW3BdLHY9ZFszXXx8ZFs0XXx8ZFs1XXx8IiIsaD0iYSI9PT1uJiYiaHJlZiI9PT1kWzFdP3Quc2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmOnQuc2hvdWxkRGVjb2RlTmV3bGluZXM7ZltwXT17bmFtZTpkWzFdLHZhbHVlOkhvKHYsaCl9fXV8fChpLnB1c2goe3RhZzpuLGxvd2VyQ2FzZWRUYWc6bi50b0xvd2VyQ2FzZSgpLGF0dHJzOmYsc3RhcnQ6ZS5zdGFydCxlbmQ6ZS5lbmR9KSxyPW4pLHQuc3RhcnQmJnQuc3RhcnQobixmLHUsZS5zdGFydCxlLmVuZCl9ZnVuY3Rpb24gQShlLG4sbyl7dmFyIGEscztpZihudWxsPT1uJiYobj1jKSxudWxsPT1vJiYobz1jKSxlKWZvcihzPWUudG9Mb3dlckNhc2UoKSxhPWkubGVuZ3RoLTE7YT49MCYmaVthXS5sb3dlckNhc2VkVGFnIT09czthLS0pO2Vsc2UgYT0wO2lmKGE+PTApe2Zvcih2YXIgdT1pLmxlbmd0aC0xO3U+PWE7dS0tKXQuZW5kJiZ0LmVuZChpW3VdLnRhZyxuLG8pO2kubGVuZ3RoPWEscj1hJiZpW2EtMV0udGFnfWVsc2UiYnIiPT09cz90LnN0YXJ0JiZ0LnN0YXJ0KGUsW10sITAsbixvKToicCI9PT1zJiYodC5zdGFydCYmdC5zdGFydChlLFtdLCExLG4sbyksdC5lbmQmJnQuZW5kKGUsbixvKSl9QSgpfShlLHt3YXJuOkJvLGV4cGVjdEhUTUw6dC5leHBlY3RIVE1MLGlzVW5hcnlUYWc6dC5pc1VuYXJ5VGFnLGNhbkJlTGVmdE9wZW5UYWc6dC5jYW5CZUxlZnRPcGVuVGFnLHNob3VsZERlY29kZU5ld2xpbmVzOnQuc2hvdWxkRGVjb2RlTmV3bGluZXMsc2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmOnQuc2hvdWxkRGVjb2RlTmV3bGluZXNGb3JIcmVmLHNob3VsZEtlZXBDb21tZW50OnQuY29tbWVudHMsb3V0cHV0U291cmNlUmFuZ2U6dC5vdXRwdXRTb3VyY2VSYW5nZSxzdGFydDpmdW5jdGlvbihlLG8sYSxsLGYpe3ZhciBwPXImJnIubnN8fFdvKGUpO3EmJiJzdmciPT09cCYmKG89ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PVtdLG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIHI9ZVtuXTt5YS50ZXN0KHIubmFtZSl8fChyLm5hbWU9ci5uYW1lLnJlcGxhY2UoZ2EsIiIpLHQucHVzaChyKSl9cmV0dXJuIHR9KG8pKTt2YXIgZCx2PXVhKGUsbyxyKTtwJiYodi5ucz1wKSwic3R5bGUiIT09KGQ9dikudGFnJiYoInNjcmlwdCIhPT1kLnRhZ3x8ZC5hdHRyc01hcC50eXBlJiYidGV4dC9qYXZhc2NyaXB0IiE9PWQuYXR0cnNNYXAudHlwZSl8fHRlKCl8fCh2LmZvcmJpZGRlbj0hMCk7Zm9yKHZhciBoPTA7aDxWby5sZW5ndGg7aCsrKXY9Vm9baF0odix0KXx8djtzfHwoIWZ1bmN0aW9uKGUpe251bGwhPUZyKGUsInYtcHJlIikmJihlLnByZT0hMCl9KHYpLHYucHJlJiYocz0hMCkpLEpvKHYudGFnKSYmKGM9ITApLHM\/ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5hdHRyc0xpc3Qsbj10Lmxlbmd0aDtpZihuKWZvcih2YXIgcj1lLmF0dHJzPW5ldyBBcnJheShuKSxpPTA7aTxuO2krKylyW2ldPXtuYW1lOnRbaV0ubmFtZSx2YWx1ZTpKU09OLnN0cmluZ2lmeSh0W2ldLnZhbHVlKX0sbnVsbCE9dFtpXS5zdGFydCYmKHJbaV0uc3RhcnQ9dFtpXS5zdGFydCxyW2ldLmVuZD10W2ldLmVuZCk7ZWxzZSBlLnByZXx8KGUucGxhaW49ITApfSh2KTp2LnByb2Nlc3NlZHx8KHBhKHYpLGZ1bmN0aW9uKGUpe3ZhciB0PUZyKGUsInYtaWYiKTtpZih0KWUuaWY9dCxkYShlLHtleHA6dCxibG9jazplfSk7ZWxzZXtudWxsIT1GcihlLCJ2LWVsc2UiKSYmKGUuZWxzZT0hMCk7dmFyIG49RnIoZSwidi1lbHNlLWlmIik7biYmKGUuZWxzZWlmPW4pfX0odiksZnVuY3Rpb24oZSl7bnVsbCE9RnIoZSwidi1vbmNlIikmJihlLm9uY2U9ITApfSh2KSksbnx8KG49diksYT91KHYpOihyPXYsaS5wdXNoKHYpKX0sZW5kOmZ1bmN0aW9uKGUsdCxuKXt2YXIgbz1pW2kubGVuZ3RoLTFdO2kubGVuZ3RoLT0xLHI9aVtpLmxlbmd0aC0xXSx1KG8pfSxjaGFyczpmdW5jdGlvbihlLHQsbil7aWYociYmKCFxfHwidGV4dGFyZWEiIT09ci50YWd8fHIuYXR0cnNNYXAucGxhY2Vob2xkZXIhPT1lKSl7dmFyIGksdSxsLGY9ci5jaGlsZHJlbjtpZihlPWN8fGUudHJpbSgpPyJzY3JpcHQiPT09KGk9cikudGFnfHwic3R5bGUiPT09aS50YWc\/ZTpzYShlKTpmLmxlbmd0aD9hPyJjb25kZW5zZSI9PT1hJiZvYS50ZXN0KGUpPyIiOiIgIjpvPyIgIjoiIjoiIiljfHwiY29uZGVuc2UiIT09YXx8KGU9ZS5yZXBsYWNlKGFhLCIgIikpLCFzJiYiICIhPT1lJiYodT1mdW5jdGlvbihlLHQpe3ZhciBuPXQ\/aG8odCk6cG87aWYobi50ZXN0KGUpKXtmb3IodmFyIHIsaSxvLGE9W10scz1bXSxjPW4ubGFzdEluZGV4PTA7cj1uLmV4ZWMoZSk7KXsoaT1yLmluZGV4KT5jJiYocy5wdXNoKG89ZS5zbGljZShjLGkpKSxhLnB1c2goSlNPTi5zdHJpbmdpZnkobykpKTt2YXIgdT1BcihyWzFdLnRyaW0oKSk7YS5wdXNoKCJfcygiK3UrIikiKSxzLnB1c2goeyJAYmluZGluZyI6dX0pLGM9aStyWzBdLmxlbmd0aH1yZXR1cm4gYzxlLmxlbmd0aCYmKHMucHVzaChvPWUuc2xpY2UoYykpLGEucHVzaChKU09OLnN0cmluZ2lmeShvKSkpLHtleHByZXNzaW9uOmEuam9pbigiKyIpLHRva2VuczpzfX19KGUsVW8pKT9sPXt0eXBlOjIsZXhwcmVzc2lvbjp1LmV4cHJlc3Npb24sdG9rZW5zOnUudG9rZW5zLHRleHQ6ZX06IiAiPT09ZSYmZi5sZW5ndGgmJiIgIj09PWZbZi5sZW5ndGgtMV0udGV4dHx8KGw9e3R5cGU6Myx0ZXh0OmV9KSxsJiZmLnB1c2gobCl9fSxjb21tZW50OmZ1bmN0aW9uKGUsdCxuKXtpZihyKXt2YXIgaT17dHlwZTozLHRleHQ6ZSxpc0NvbW1lbnQ6ITB9O3IuY2hpbGRyZW4ucHVzaChpKX19fSksbn1mdW5jdGlvbiBmYShlLHQpe3ZhciBuLHI7KHI9SXIobj1lLCJrZXkiKSkmJihuLmtleT1yKSxlLnBsYWluPSFlLmtleSYmIWUuc2NvcGVkU2xvdHMmJiFlLmF0dHJzTGlzdC5sZW5ndGgsZnVuY3Rpb24oZSl7dmFyIHQ9SXIoZSwicmVmIik7dCYmKGUucmVmPXQsZS5yZWZJbkZvcj1mdW5jdGlvbihlKXt2YXIgdD1lO2Zvcig7dDspe2lmKHZvaWQgMCE9PXQuZm9yKXJldHVybiEwO3Q9dC5wYXJlbnR9cmV0dXJuITF9KGUpKX0oZSksZnVuY3Rpb24oZSl7dmFyIHQ7InRlbXBsYXRlIj09PWUudGFnPyh0PUZyKGUsInNjb3BlIiksZS5zbG90U2NvcGU9dHx8RnIoZSwic2xvdC1zY29wZSIpKToodD1GcihlLCJzbG90LXNjb3BlIikpJiYoZS5zbG90U2NvcGU9dCk7dmFyIG49SXIoZSwic2xvdCIpO24mJihlLnNsb3RUYXJnZXQ9JyIiJz09PW4\/JyJkZWZhdWx0Iic6bixlLnNsb3RUYXJnZXREeW5hbWljPSEoIWUuYXR0cnNNYXBbIjpzbG90Il0mJiFlLmF0dHJzTWFwWyJ2LWJpbmQ6c2xvdCJdKSwidGVtcGxhdGUiPT09ZS50YWd8fGUuc2xvdFNjb3BlfHxOcihlLCJzbG90IixuLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUucmF3QXR0cnNNYXBbIjoiK3RdfHxlLnJhd0F0dHJzTWFwWyJ2LWJpbmQ6Iit0XXx8ZS5yYXdBdHRyc01hcFt0XX0oZSwic2xvdCIpKSk7aWYoInRlbXBsYXRlIj09PWUudGFnKXt2YXIgcj1QcihlLGlhKTtpZihyKXt2YXIgaT12YShyKSxvPWkubmFtZSxhPWkuZHluYW1pYztlLnNsb3RUYXJnZXQ9byxlLnNsb3RUYXJnZXREeW5hbWljPWEsZS5zbG90U2NvcGU9ci52YWx1ZXx8Y2F9fWVsc2V7dmFyIHM9UHIoZSxpYSk7aWYocyl7dmFyIGM9ZS5zY29wZWRTbG90c3x8KGUuc2NvcGVkU2xvdHM9e30pLHU9dmEocyksbD11Lm5hbWUsZj11LmR5bmFtaWMscD1jW2xdPXVhKCJ0ZW1wbGF0ZSIsW10sZSk7cC5zbG90VGFyZ2V0PWwscC5zbG90VGFyZ2V0RHluYW1pYz1mLHAuY2hpbGRyZW49ZS5jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oZSl7aWYoIWUuc2xvdFNjb3BlKXJldHVybiBlLnBhcmVudD1wLCEwfSkscC5zbG90U2NvcGU9cy52YWx1ZXx8Y2EsZS5jaGlsZHJlbj1bXSxlLnBsYWluPSExfX19KGUpLGZ1bmN0aW9uKGUpeyJzbG90Ij09PWUudGFnJiYoZS5zbG90TmFtZT1JcihlLCJuYW1lIikpfShlKSxmdW5jdGlvbihlKXt2YXIgdDsodD1JcihlLCJpcyIpKSYmKGUuY29tcG9uZW50PXQpO251bGwhPUZyKGUsImlubGluZS10ZW1wbGF0ZSIpJiYoZS5pbmxpbmVUZW1wbGF0ZT0hMCl9KGUpO2Zvcih2YXIgaT0wO2k8em8ubGVuZ3RoO2krKyllPXpvW2ldKGUsdCl8fGU7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0LG4scixpLG8sYSxzLGMsdT1lLmF0dHJzTGlzdDtmb3IodD0wLG49dS5sZW5ndGg7dDxuO3QrKylpZihyPWk9dVt0XS5uYW1lLG89dVt0XS52YWx1ZSxHby50ZXN0KHIpKWlmKGUuaGFzQmluZGluZ3M9ITAsKGE9aGEoci5yZXBsYWNlKEdvLCIiKSkpJiYocj1yLnJlcGxhY2UocmEsIiIpKSxuYS50ZXN0KHIpKXI9ci5yZXBsYWNlKG5hLCIiKSxvPUFyKG8pLChjPWVhLnRlc3QocikpJiYocj1yLnNsaWNlKDEsLTEpKSxhJiYoYS5wcm9wJiYhYyYmImlubmVySHRtbCI9PT0ocj1iKHIpKSYmKHI9ImlubmVySFRNTCIpLGEuY2FtZWwmJiFjJiYocj1iKHIpKSxhLnN5bmMmJihzPUJyKG8sIiRldmVudCIpLGM\/TXIoZSwnInVwZGF0ZToiKygnK3IrIikiLHMsbnVsbCwhMSwwLHVbdF0sITApOihNcihlLCJ1cGRhdGU6IitiKHIpLHMsbnVsbCwhMSwwLHVbdF0pLEMocikhPT1iKHIpJiZNcihlLCJ1cGRhdGU6IitDKHIpLHMsbnVsbCwhMSwwLHVbdF0pKSkpLGEmJmEucHJvcHx8IWUuY29tcG9uZW50JiZxbyhlLnRhZyxlLmF0dHJzTWFwLnR5cGUscik\/RXIoZSxyLG8sdVt0XSxjKTpOcihlLHIsbyx1W3RdLGMpO2Vsc2UgaWYoWm8udGVzdChyKSlyPXIucmVwbGFjZShabywiIiksKGM9ZWEudGVzdChyKSkmJihyPXIuc2xpY2UoMSwtMSkpLE1yKGUscixvLGEsITEsMCx1W3RdLGMpO2Vsc2V7dmFyIGw9KHI9ci5yZXBsYWNlKEdvLCIiKSkubWF0Y2godGEpLGY9bCYmbFsxXTtjPSExLGYmJihyPXIuc2xpY2UoMCwtKGYubGVuZ3RoKzEpKSxlYS50ZXN0KGYpJiYoZj1mLnNsaWNlKDEsLTEpLGM9ITApKSxEcihlLHIsaSxvLGYsYyxhLHVbdF0pfWVsc2UgTnIoZSxyLEpTT04uc3RyaW5naWZ5KG8pLHVbdF0pLCFlLmNvbXBvbmVudCYmIm11dGVkIj09PXImJnFvKGUudGFnLGUuYXR0cnNNYXAudHlwZSxyKSYmRXIoZSxyLCJ0cnVlIix1W3RdKX0oZSksZX1mdW5jdGlvbiBwYShlKXt2YXIgdDtpZih0PUZyKGUsInYtZm9yIikpe3ZhciBuPWZ1bmN0aW9uKGUpe3ZhciB0PWUubWF0Y2goWG8pO2lmKCF0KXJldHVybjt2YXIgbj17fTtuLmZvcj10WzJdLnRyaW0oKTt2YXIgcj10WzFdLnRyaW0oKS5yZXBsYWNlKFFvLCIiKSxpPXIubWF0Y2goWW8pO2k\/KG4uYWxpYXM9ci5yZXBsYWNlKFlvLCIiKS50cmltKCksbi5pdGVyYXRvcjE9aVsxXS50cmltKCksaVsyXSYmKG4uaXRlcmF0b3IyPWlbMl0udHJpbSgpKSk6bi5hbGlhcz1yO3JldHVybiBufSh0KTtuJiZBKGUsbil9fWZ1bmN0aW9uIGRhKGUsdCl7ZS5pZkNvbmRpdGlvbnN8fChlLmlmQ29uZGl0aW9ucz1bXSksZS5pZkNvbmRpdGlvbnMucHVzaCh0KX1mdW5jdGlvbiB2YShlKXt2YXIgdD1lLm5hbWUucmVwbGFjZShpYSwiIik7cmV0dXJuIHR8fCIjIiE9PWUubmFtZVswXSYmKHQ9ImRlZmF1bHQiKSxlYS50ZXN0KHQpP3tuYW1lOnQuc2xpY2UoMSwtMSksZHluYW1pYzohMH06e25hbWU6JyInK3QrJyInLGR5bmFtaWM6ITF9fWZ1bmN0aW9uIGhhKGUpe3ZhciB0PWUubWF0Y2gocmEpO2lmKHQpe3ZhciBuPXt9O3JldHVybiB0LmZvckVhY2goZnVuY3Rpb24oZSl7bltlLnNsaWNlKDEpXT0hMH0pLG59fWZ1bmN0aW9uIG1hKGUpe2Zvcih2YXIgdD17fSxuPTAscj1lLmxlbmd0aDtuPHI7bisrKXRbZVtuXS5uYW1lXT1lW25dLnZhbHVlO3JldHVybiB0fXZhciB5YT0vXnhtbG5zOk5TXGQrLyxnYT0vXk5TXGQrOi87ZnVuY3Rpb24gX2EoZSl7cmV0dXJuIHVhKGUudGFnLGUuYXR0cnNMaXN0LnNsaWNlKCksZS5wYXJlbnQpfXZhciBiYT1bbW8sZ28se3ByZVRyYW5zZm9ybU5vZGU6ZnVuY3Rpb24oZSx0KXtpZigiaW5wdXQiPT09ZS50YWcpe3ZhciBuLHI9ZS5hdHRyc01hcDtpZighclsidi1tb2RlbCJdKXJldHVybjtpZigoclsiOnR5cGUiXXx8clsidi1iaW5kOnR5cGUiXSkmJihuPUlyKGUsInR5cGUiKSksci50eXBlfHxufHwhclsidi1iaW5kIl18fChuPSIoIityWyJ2LWJpbmQiXSsiKS50eXBlIiksbil7dmFyIGk9RnIoZSwidi1pZiIsITApLG89aT8iJiYoIitpKyIpIjoiIixhPW51bGwhPUZyKGUsInYtZWxzZSIsITApLHM9RnIoZSwidi1lbHNlLWlmIiwhMCksYz1fYShlKTtwYShjKSxqcihjLCJ0eXBlIiwiY2hlY2tib3giKSxmYShjLHQpLGMucHJvY2Vzc2VkPSEwLGMuaWY9IigiK24rIik9PT0nY2hlY2tib3gnIitvLGRhKGMse2V4cDpjLmlmLGJsb2NrOmN9KTt2YXIgdT1fYShlKTtGcih1LCJ2LWZvciIsITApLGpyKHUsInR5cGUiLCJyYWRpbyIpLGZhKHUsdCksZGEoYyx7ZXhwOiIoIituKyIpPT09J3JhZGlvJyIrbyxibG9jazp1fSk7dmFyIGw9X2EoZSk7cmV0dXJuIEZyKGwsInYtZm9yIiwhMCksanIobCwiOnR5cGUiLG4pLGZhKGwsdCksZGEoYyx7ZXhwOmksYmxvY2s6bH0pLGE\/Yy5lbHNlPSEwOnMmJihjLmVsc2VpZj1zKSxjfX19fV07dmFyICRhLHdhLENhPXtleHBlY3RIVE1MOiEwLG1vZHVsZXM6YmEsZGlyZWN0aXZlczp7bW9kZWw6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXQudmFsdWUsaT10Lm1vZGlmaWVycyxvPWUudGFnLGE9ZS5hdHRyc01hcC50eXBlO2lmKGUuY29tcG9uZW50KXJldHVybiBIcihlLHIsaSksITE7aWYoInNlbGVjdCI9PT1vKSFmdW5jdGlvbihlLHQsbil7dmFyIHI9J3ZhciAkJHNlbGVjdGVkVmFsID0gQXJyYXkucHJvdG90eXBlLmZpbHRlci5jYWxsKCRldmVudC50YXJnZXQub3B0aW9ucyxmdW5jdGlvbihvKXtyZXR1cm4gby5zZWxlY3RlZH0pLm1hcChmdW5jdGlvbihvKXt2YXIgdmFsID0gIl92YWx1ZSIgaW4gbyA\/IG8uX3ZhbHVlIDogby52YWx1ZTtyZXR1cm4gJysobiYmbi5udW1iZXI\/Il9uKHZhbCkiOiJ2YWwiKSsifSk7IjtyPXIrIiAiK0JyKHQsIiRldmVudC50YXJnZXQubXVsdGlwbGUgPyAkJHNlbGVjdGVkVmFsIDogJCRzZWxlY3RlZFZhbFswXSIpLE1yKGUsImNoYW5nZSIscixudWxsLCEwKX0oZSxyLGkpO2Vsc2UgaWYoImlucHV0Ij09PW8mJiJjaGVja2JveCI9PT1hKSFmdW5jdGlvbihlLHQsbil7dmFyIHI9biYmbi5udW1iZXIsaT1JcihlLCJ2YWx1ZSIpfHwibnVsbCIsbz1JcihlLCJ0cnVlLXZhbHVlIil8fCJ0cnVlIixhPUlyKGUsImZhbHNlLXZhbHVlIil8fCJmYWxzZSI7RXIoZSwiY2hlY2tlZCIsIkFycmF5LmlzQXJyYXkoIit0KyIpP19pKCIrdCsiLCIraSsiKT4tMSIrKCJ0cnVlIj09PW8\/IjooIit0KyIpIjoiOl9xKCIrdCsiLCIrbysiKSIpKSxNcihlLCJjaGFuZ2UiLCJ2YXIgJCRhPSIrdCsiLCQkZWw9JGV2ZW50LnRhcmdldCwkJGM9JCRlbC5jaGVja2VkPygiK28rIik6KCIrYSsiKTtpZihBcnJheS5pc0FycmF5KCQkYSkpe3ZhciAkJHY9Iisocj8iX24oIitpKyIpIjppKSsiLCQkaT1faSgkJGEsJCR2KTtpZigkJGVsLmNoZWNrZWQpeyQkaTwwJiYoIitCcih0LCIkJGEuY29uY2F0KFskJHZdKSIpKyIpfWVsc2V7JCRpPi0xJiYoIitCcih0LCIkJGEuc2xpY2UoMCwkJGkpLmNvbmNhdCgkJGEuc2xpY2UoJCRpKzEpKSIpKyIpfX1lbHNleyIrQnIodCwiJCRjIikrIn0iLG51bGwsITApfShlLHIsaSk7ZWxzZSBpZigiaW5wdXQiPT09byYmInJhZGlvIj09PWEpIWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1uJiZuLm51bWJlcixpPUlyKGUsInZhbHVlIil8fCJudWxsIjtFcihlLCJjaGVja2VkIiwiX3EoIit0KyIsIisoaT1yPyJfbigiK2krIikiOmkpKyIpIiksTXIoZSwiY2hhbmdlIixCcih0LGkpLG51bGwsITApfShlLHIsaSk7ZWxzZSBpZigiaW5wdXQiPT09b3x8InRleHRhcmVhIj09PW8pIWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1lLmF0dHJzTWFwLnR5cGUsaT1ufHx7fSxvPWkubGF6eSxhPWkubnVtYmVyLHM9aS50cmltLGM9IW8mJiJyYW5nZSIhPT1yLHU9bz8iY2hhbmdlIjoicmFuZ2UiPT09cj9XcjoiaW5wdXQiLGw9IiRldmVudC50YXJnZXQudmFsdWUiO3MmJihsPSIkZXZlbnQudGFyZ2V0LnZhbHVlLnRyaW0oKSIpLGEmJihsPSJfbigiK2wrIikiKTt2YXIgZj1Ccih0LGwpO2MmJihmPSJpZigkZXZlbnQudGFyZ2V0LmNvbXBvc2luZylyZXR1cm47IitmKSxFcihlLCJ2YWx1ZSIsIigiK3QrIikiKSxNcihlLHUsZixudWxsLCEwKSwoc3x8YSkmJk1yKGUsImJsdXIiLCIkZm9yY2VVcGRhdGUoKSIpfShlLHIsaSk7ZWxzZSBpZighRi5pc1Jlc2VydmVkVGFnKG8pKXJldHVybiBIcihlLHIsaSksITE7cmV0dXJuITB9LHRleHQ6ZnVuY3Rpb24oZSx0KXt0LnZhbHVlJiZFcihlLCJ0ZXh0Q29udGVudCIsIl9zKCIrdC52YWx1ZSsiKSIsdCl9LGh0bWw6ZnVuY3Rpb24oZSx0KXt0LnZhbHVlJiZFcihlLCJpbm5lckhUTUwiLCJfcygiK3QudmFsdWUrIikiLHQpfX0saXNQcmVUYWc6ZnVuY3Rpb24oZSl7cmV0dXJuInByZSI9PT1lfSxpc1VuYXJ5VGFnOmJvLG11c3RVc2VQcm9wOmpuLGNhbkJlTGVmdE9wZW5UYWc6JG8saXNSZXNlcnZlZFRhZzpXbixnZXRUYWdOYW1lc3BhY2U6Wm4sc3RhdGljS2V5czpmdW5jdGlvbihlKXtyZXR1cm4gZS5yZWR1Y2UoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5jb25jYXQodC5zdGF0aWNLZXlzfHxbXSl9LFtdKS5qb2luKCIsIil9KGJhKX0seGE9ZyhmdW5jdGlvbihlKXtyZXR1cm4gcCgidHlwZSx0YWcsYXR0cnNMaXN0LGF0dHJzTWFwLHBsYWluLHBhcmVudCxjaGlsZHJlbixhdHRycyxzdGFydCxlbmQscmF3QXR0cnNNYXAiKyhlPyIsIitlOiIiKSl9KTtmdW5jdGlvbiBrYShlLHQpe2UmJigkYT14YSh0LnN0YXRpY0tleXN8fCIiKSx3YT10LmlzUmVzZXJ2ZWRUYWd8fFQsZnVuY3Rpb24gZSh0KXt0LnN0YXRpYz1mdW5jdGlvbihlKXtpZigyPT09ZS50eXBlKXJldHVybiExO2lmKDM9PT1lLnR5cGUpcmV0dXJuITA7cmV0dXJuISghZS5wcmUmJihlLmhhc0JpbmRpbmdzfHxlLmlmfHxlLmZvcnx8ZChlLnRhZyl8fCF3YShlLnRhZyl8fGZ1bmN0aW9uKGUpe2Zvcig7ZS5wYXJlbnQ7KXtpZigidGVtcGxhdGUiIT09KGU9ZS5wYXJlbnQpLnRhZylyZXR1cm4hMTtpZihlLmZvcilyZXR1cm4hMH1yZXR1cm4hMX0oZSl8fCFPYmplY3Qua2V5cyhlKS5ldmVyeSgkYSkpKX0odCk7aWYoMT09PXQudHlwZSl7aWYoIXdhKHQudGFnKSYmInNsb3QiIT09dC50YWcmJm51bGw9PXQuYXR0cnNNYXBbImlubGluZS10ZW1wbGF0ZSJdKXJldHVybjtmb3IodmFyIG49MCxyPXQuY2hpbGRyZW4ubGVuZ3RoO248cjtuKyspe3ZhciBpPXQuY2hpbGRyZW5bbl07ZShpKSxpLnN0YXRpY3x8KHQuc3RhdGljPSExKX1pZih0LmlmQ29uZGl0aW9ucylmb3IodmFyIG89MSxhPXQuaWZDb25kaXRpb25zLmxlbmd0aDtvPGE7bysrKXt2YXIgcz10LmlmQ29uZGl0aW9uc1tvXS5ibG9jaztlKHMpLHMuc3RhdGljfHwodC5zdGF0aWM9ITEpfX19KGUpLGZ1bmN0aW9uIGUodCxuKXtpZigxPT09dC50eXBlKXtpZigodC5zdGF0aWN8fHQub25jZSkmJih0LnN0YXRpY0luRm9yPW4pLHQuc3RhdGljJiZ0LmNoaWxkcmVuLmxlbmd0aCYmKDEhPT10LmNoaWxkcmVuLmxlbmd0aHx8MyE9PXQuY2hpbGRyZW5bMF0udHlwZSkpcmV0dXJuIHZvaWQodC5zdGF0aWNSb290PSEwKTtpZih0LnN0YXRpY1Jvb3Q9ITEsdC5jaGlsZHJlbilmb3IodmFyIHI9MCxpPXQuY2hpbGRyZW4ubGVuZ3RoO3I8aTtyKyspZSh0LmNoaWxkcmVuW3JdLG58fCEhdC5mb3IpO2lmKHQuaWZDb25kaXRpb25zKWZvcih2YXIgbz0xLGE9dC5pZkNvbmRpdGlvbnMubGVuZ3RoO288YTtvKyspZSh0LmlmQ29uZGl0aW9uc1tvXS5ibG9jayxuKX19KGUsITEpKX12YXIgQWE9L14oW1x3JF9dK3xcKFteKV0qP1wpKVxzKj0+fF5mdW5jdGlvbig\/OlxzK1tcdyRdKyk\/XHMqXCgvLE9hPS9cKFteKV0qP1wpOyokLyxTYT0vXltBLVphLXpfJF1bXHckXSooPzpcLltBLVphLXpfJF1bXHckXSp8XFsnW14nXSo\/J118XFsiW14iXSo\/Il18XFtcZCtdfFxbW0EtWmEtel8kXVtcdyRdKl0pKiQvLFRhPXtlc2M6MjcsdGFiOjksZW50ZXI6MTMsc3BhY2U6MzIsdXA6MzgsbGVmdDozNyxyaWdodDozOSxkb3duOjQwLGRlbGV0ZTpbOCw0Nl19LEVhPXtlc2M6WyJFc2MiLCJFc2NhcGUiXSx0YWI6IlRhYiIsZW50ZXI6IkVudGVyIixzcGFjZTpbIiAiLCJTcGFjZWJhciJdLHVwOlsiVXAiLCJBcnJvd1VwIl0sbGVmdDpbIkxlZnQiLCJBcnJvd0xlZnQiXSxyaWdodDpbIlJpZ2h0IiwiQXJyb3dSaWdodCJdLGRvd246WyJEb3duIiwiQXJyb3dEb3duIl0sZGVsZXRlOlsiQmFja3NwYWNlIiwiRGVsZXRlIiwiRGVsIl19LE5hPWZ1bmN0aW9uKGUpe3JldHVybiJpZigiK2UrIilyZXR1cm4gbnVsbDsifSxqYT17c3RvcDoiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpOyIscHJldmVudDoiJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IixzZWxmOk5hKCIkZXZlbnQudGFyZ2V0ICE9PSAkZXZlbnQuY3VycmVudFRhcmdldCIpLGN0cmw6TmEoIiEkZXZlbnQuY3RybEtleSIpLHNoaWZ0Ok5hKCIhJGV2ZW50LnNoaWZ0S2V5IiksYWx0Ok5hKCIhJGV2ZW50LmFsdEtleSIpLG1ldGE6TmEoIiEkZXZlbnQubWV0YUtleSIpLGxlZnQ6TmEoIididXR0b24nIGluICRldmVudCAmJiAkZXZlbnQuYnV0dG9uICE9PSAwIiksbWlkZGxlOk5hKCInYnV0dG9uJyBpbiAkZXZlbnQgJiYgJGV2ZW50LmJ1dHRvbiAhPT0gMSIpLHJpZ2h0Ok5hKCInYnV0dG9uJyBpbiAkZXZlbnQgJiYgJGV2ZW50LmJ1dHRvbiAhPT0gMiIpfTtmdW5jdGlvbiBEYShlLHQpe3ZhciBuPXQ\/Im5hdGl2ZU9uOiI6Im9uOiIscj0iIixpPSIiO2Zvcih2YXIgbyBpbiBlKXt2YXIgYT1MYShlW29dKTtlW29dJiZlW29dLmR5bmFtaWM\/aSs9bysiLCIrYSsiLCI6cis9JyInK28rJyI6JythKyIsIn1yZXR1cm4gcj0ieyIrci5zbGljZSgwLC0xKSsifSIsaT9uKyJfZCgiK3IrIixbIitpLnNsaWNlKDAsLTEpKyJdKSI6bityfWZ1bmN0aW9uIExhKGUpe2lmKCFlKXJldHVybiJmdW5jdGlvbigpe30iO2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIlsiK2UubWFwKGZ1bmN0aW9uKGUpe3JldHVybiBMYShlKX0pLmpvaW4oIiwiKSsiXSI7dmFyIHQ9U2EudGVzdChlLnZhbHVlKSxuPUFhLnRlc3QoZS52YWx1ZSkscj1TYS50ZXN0KGUudmFsdWUucmVwbGFjZShPYSwiIikpO2lmKGUubW9kaWZpZXJzKXt2YXIgaT0iIixvPSIiLGE9W107Zm9yKHZhciBzIGluIGUubW9kaWZpZXJzKWlmKGphW3NdKW8rPWphW3NdLFRhW3NdJiZhLnB1c2gocyk7ZWxzZSBpZigiZXhhY3QiPT09cyl7dmFyIGM9ZS5tb2RpZmllcnM7bys9TmEoWyJjdHJsIiwic2hpZnQiLCJhbHQiLCJtZXRhIl0uZmlsdGVyKGZ1bmN0aW9uKGUpe3JldHVybiFjW2VdfSkubWFwKGZ1bmN0aW9uKGUpe3JldHVybiIkZXZlbnQuIitlKyJLZXkifSkuam9pbigifHwiKSl9ZWxzZSBhLnB1c2gocyk7cmV0dXJuIGEubGVuZ3RoJiYoaSs9ZnVuY3Rpb24oZSl7cmV0dXJuImlmKCEkZXZlbnQudHlwZS5pbmRleE9mKCdrZXknKSYmIitlLm1hcChNYSkuam9pbigiJiYiKSsiKXJldHVybiBudWxsOyJ9KGEpKSxvJiYoaSs9byksImZ1bmN0aW9uKCRldmVudCl7IitpKyh0PyJyZXR1cm4gIitlLnZhbHVlKyIoJGV2ZW50KSI6bj8icmV0dXJuICgiK2UudmFsdWUrIikoJGV2ZW50KSI6cj8icmV0dXJuICIrZS52YWx1ZTplLnZhbHVlKSsifSJ9cmV0dXJuIHR8fG4\/ZS52YWx1ZToiZnVuY3Rpb24oJGV2ZW50KXsiKyhyPyJyZXR1cm4gIitlLnZhbHVlOmUudmFsdWUpKyJ9In1mdW5jdGlvbiBNYShlKXt2YXIgdD1wYXJzZUludChlLDEwKTtpZih0KXJldHVybiIkZXZlbnQua2V5Q29kZSE9PSIrdDt2YXIgbj1UYVtlXSxyPUVhW2VdO3JldHVybiJfaygkZXZlbnQua2V5Q29kZSwiK0pTT04uc3RyaW5naWZ5KGUpKyIsIitKU09OLnN0cmluZ2lmeShuKSsiLCRldmVudC5rZXksIitKU09OLnN0cmluZ2lmeShyKSsiKSJ9dmFyIElhPXtvbjpmdW5jdGlvbihlLHQpe2Uud3JhcExpc3RlbmVycz1mdW5jdGlvbihlKXtyZXR1cm4iX2coIitlKyIsIit0LnZhbHVlKyIpIn19LGJpbmQ6ZnVuY3Rpb24oZSx0KXtlLndyYXBEYXRhPWZ1bmN0aW9uKG4pe3JldHVybiJfYigiK24rIiwnIitlLnRhZysiJywiK3QudmFsdWUrIiwiKyh0Lm1vZGlmaWVycyYmdC5tb2RpZmllcnMucHJvcD8idHJ1ZSI6ImZhbHNlIikrKHQubW9kaWZpZXJzJiZ0Lm1vZGlmaWVycy5zeW5jPyIsdHJ1ZSI6IiIpKyIpIn19LGNsb2FrOlN9LEZhPWZ1bmN0aW9uKGUpe3RoaXMub3B0aW9ucz1lLHRoaXMud2Fybj1lLndhcm58fFNyLHRoaXMudHJhbnNmb3Jtcz1UcihlLm1vZHVsZXMsInRyYW5zZm9ybUNvZGUiKSx0aGlzLmRhdGFHZW5GbnM9VHIoZS5tb2R1bGVzLCJnZW5EYXRhIiksdGhpcy5kaXJlY3RpdmVzPUEoQSh7fSxJYSksZS5kaXJlY3RpdmVzKTt2YXIgdD1lLmlzUmVzZXJ2ZWRUYWd8fFQ7dGhpcy5tYXliZUNvbXBvbmVudD1mdW5jdGlvbihlKXtyZXR1cm4hIWUuY29tcG9uZW50fHwhdChlLnRhZyl9LHRoaXMub25jZUlkPTAsdGhpcy5zdGF0aWNSZW5kZXJGbnM9W10sdGhpcy5wcmU9ITF9O2Z1bmN0aW9uIFBhKGUsdCl7dmFyIG49bmV3IEZhKHQpO3JldHVybntyZW5kZXI6IndpdGgodGhpcyl7cmV0dXJuICIrKGU\/UmEoZSxuKTonX2MoImRpdiIpJykrIn0iLHN0YXRpY1JlbmRlckZuczpuLnN0YXRpY1JlbmRlckZuc319ZnVuY3Rpb24gUmEoZSx0KXtpZihlLnBhcmVudCYmKGUucHJlPWUucHJlfHxlLnBhcmVudC5wcmUpLGUuc3RhdGljUm9vdCYmIWUuc3RhdGljUHJvY2Vzc2VkKXJldHVybiBIYShlLHQpO2lmKGUub25jZSYmIWUub25jZVByb2Nlc3NlZClyZXR1cm4gQmEoZSx0KTtpZihlLmZvciYmIWUuZm9yUHJvY2Vzc2VkKXJldHVybiB6YShlLHQpO2lmKGUuaWYmJiFlLmlmUHJvY2Vzc2VkKXJldHVybiBVYShlLHQpO2lmKCJ0ZW1wbGF0ZSIhPT1lLnRhZ3x8ZS5zbG90VGFyZ2V0fHx0LnByZSl7aWYoInNsb3QiPT09ZS50YWcpcmV0dXJuIGZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5zbG90TmFtZXx8JyJkZWZhdWx0Iicscj1xYShlLHQpLGk9Il90KCIrbisocj8iLCIrcjoiIiksbz1lLmF0dHJzfHxlLmR5bmFtaWNBdHRycz9HYSgoZS5hdHRyc3x8W10pLmNvbmNhdChlLmR5bmFtaWNBdHRyc3x8W10pLm1hcChmdW5jdGlvbihlKXtyZXR1cm57bmFtZTpiKGUubmFtZSksdmFsdWU6ZS52YWx1ZSxkeW5hbWljOmUuZHluYW1pY319KSk6bnVsbCxhPWUuYXR0cnNNYXBbInYtYmluZCJdOyFvJiYhYXx8cnx8KGkrPSIsbnVsbCIpO28mJihpKz0iLCIrbyk7YSYmKGkrPShvPyIiOiIsbnVsbCIpKyIsIithKTtyZXR1cm4gaSsiKSJ9KGUsdCk7dmFyIG47aWYoZS5jb21wb25lbnQpbj1mdW5jdGlvbihlLHQsbil7dmFyIHI9dC5pbmxpbmVUZW1wbGF0ZT9udWxsOnFhKHQsbiwhMCk7cmV0dXJuIl9jKCIrZSsiLCIrVmEodCxuKSsocj8iLCIrcjoiIikrIikifShlLmNvbXBvbmVudCxlLHQpO2Vsc2V7dmFyIHI7KCFlLnBsYWlufHxlLnByZSYmdC5tYXliZUNvbXBvbmVudChlKSkmJihyPVZhKGUsdCkpO3ZhciBpPWUuaW5saW5lVGVtcGxhdGU\/bnVsbDpxYShlLHQsITApO249Il9jKCciK2UudGFnKyInIisocj8iLCIrcjoiIikrKGk\/IiwiK2k6IiIpKyIpIn1mb3IodmFyIG89MDtvPHQudHJhbnNmb3Jtcy5sZW5ndGg7bysrKW49dC50cmFuc2Zvcm1zW29dKGUsbik7cmV0dXJuIG59cmV0dXJuIHFhKGUsdCl8fCJ2b2lkIDAifWZ1bmN0aW9uIEhhKGUsdCl7ZS5zdGF0aWNQcm9jZXNzZWQ9ITA7dmFyIG49dC5wcmU7cmV0dXJuIGUucHJlJiYodC5wcmU9ZS5wcmUpLHQuc3RhdGljUmVuZGVyRm5zLnB1c2goIndpdGgodGhpcyl7cmV0dXJuICIrUmEoZSx0KSsifSIpLHQucHJlPW4sIl9tKCIrKHQuc3RhdGljUmVuZGVyRm5zLmxlbmd0aC0xKSsoZS5zdGF0aWNJbkZvcj8iLHRydWUiOiIiKSsiKSJ9ZnVuY3Rpb24gQmEoZSx0KXtpZihlLm9uY2VQcm9jZXNzZWQ9ITAsZS5pZiYmIWUuaWZQcm9jZXNzZWQpcmV0dXJuIFVhKGUsdCk7aWYoZS5zdGF0aWNJbkZvcil7Zm9yKHZhciBuPSIiLHI9ZS5wYXJlbnQ7cjspe2lmKHIuZm9yKXtuPXIua2V5O2JyZWFrfXI9ci5wYXJlbnR9cmV0dXJuIG4\/Il9vKCIrUmEoZSx0KSsiLCIrdC5vbmNlSWQrKysiLCIrbisiKSI6UmEoZSx0KX1yZXR1cm4gSGEoZSx0KX1mdW5jdGlvbiBVYShlLHQsbixyKXtyZXR1cm4gZS5pZlByb2Nlc3NlZD0hMCxmdW5jdGlvbiBlKHQsbixyLGkpe2lmKCF0Lmxlbmd0aClyZXR1cm4gaXx8Il9lKCkiO3ZhciBvPXQuc2hpZnQoKTtyZXR1cm4gby5leHA\/IigiK28uZXhwKyIpPyIrYShvLmJsb2NrKSsiOiIrZSh0LG4scixpKToiIithKG8uYmxvY2spO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIHI\/cihlLG4pOmUub25jZT9CYShlLG4pOlJhKGUsbil9fShlLmlmQ29uZGl0aW9ucy5zbGljZSgpLHQsbixyKX1mdW5jdGlvbiB6YShlLHQsbixyKXt2YXIgaT1lLmZvcixvPWUuYWxpYXMsYT1lLml0ZXJhdG9yMT8iLCIrZS5pdGVyYXRvcjE6IiIscz1lLml0ZXJhdG9yMj8iLCIrZS5pdGVyYXRvcjI6IiI7cmV0dXJuIGUuZm9yUHJvY2Vzc2VkPSEwLChyfHwiX2wiKSsiKCgiK2krIiksZnVuY3Rpb24oIitvK2ErcysiKXtyZXR1cm4gIisobnx8UmEpKGUsdCkrIn0pIn1mdW5jdGlvbiBWYShlLHQpe3ZhciBuPSJ7IixyPWZ1bmN0aW9uKGUsdCl7dmFyIG49ZS5kaXJlY3RpdmVzO2lmKCFuKXJldHVybjt2YXIgcixpLG8sYSxzPSJkaXJlY3RpdmVzOlsiLGM9ITE7Zm9yKHI9MCxpPW4ubGVuZ3RoO3I8aTtyKyspe289bltyXSxhPSEwO3ZhciB1PXQuZGlyZWN0aXZlc1tvLm5hbWVdO3UmJihhPSEhdShlLG8sdC53YXJuKSksYSYmKGM9ITAscys9J3tuYW1lOiInK28ubmFtZSsnIixyYXdOYW1lOiInK28ucmF3TmFtZSsnIicrKG8udmFsdWU\/Iix2YWx1ZTooIitvLnZhbHVlKyIpLGV4cHJlc3Npb246IitKU09OLnN0cmluZ2lmeShvLnZhbHVlKToiIikrKG8uYXJnPyIsYXJnOiIrKG8uaXNEeW5hbWljQXJnP28uYXJnOiciJytvLmFyZysnIicpOiIiKSsoby5tb2RpZmllcnM\/Iixtb2RpZmllcnM6IitKU09OLnN0cmluZ2lmeShvLm1vZGlmaWVycyk6IiIpKyJ9LCIpfWlmKGMpcmV0dXJuIHMuc2xpY2UoMCwtMSkrIl0ifShlLHQpO3ImJihuKz1yKyIsIiksZS5rZXkmJihuKz0ia2V5OiIrZS5rZXkrIiwiKSxlLnJlZiYmKG4rPSJyZWY6IitlLnJlZisiLCIpLGUucmVmSW5Gb3ImJihuKz0icmVmSW5Gb3I6dHJ1ZSwiKSxlLnByZSYmKG4rPSJwcmU6dHJ1ZSwiKSxlLmNvbXBvbmVudCYmKG4rPSd0YWc6IicrZS50YWcrJyIsJyk7Zm9yKHZhciBpPTA7aTx0LmRhdGFHZW5GbnMubGVuZ3RoO2krKyluKz10LmRhdGFHZW5GbnNbaV0oZSk7aWYoZS5hdHRycyYmKG4rPSJhdHRyczoiK0dhKGUuYXR0cnMpKyIsIiksZS5wcm9wcyYmKG4rPSJkb21Qcm9wczoiK0dhKGUucHJvcHMpKyIsIiksZS5ldmVudHMmJihuKz1EYShlLmV2ZW50cywhMSkrIiwiKSxlLm5hdGl2ZUV2ZW50cyYmKG4rPURhKGUubmF0aXZlRXZlbnRzLCEwKSsiLCIpLGUuc2xvdFRhcmdldCYmIWUuc2xvdFNjb3BlJiYobis9InNsb3Q6IitlLnNsb3RUYXJnZXQrIiwiKSxlLnNjb3BlZFNsb3RzJiYobis9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUuZm9yfHxPYmplY3Qua2V5cyh0KS5zb21lKGZ1bmN0aW9uKGUpe3ZhciBuPXRbZV07cmV0dXJuIG4uc2xvdFRhcmdldER5bmFtaWN8fG4uaWZ8fG4uZm9yfHxLYShuKX0pLGk9ISFlLmlmO2lmKCFyKWZvcih2YXIgbz1lLnBhcmVudDtvOyl7aWYoby5zbG90U2NvcGUmJm8uc2xvdFNjb3BlIT09Y2F8fG8uZm9yKXtyPSEwO2JyZWFrfW8uaWYmJihpPSEwKSxvPW8ucGFyZW50fXZhciBhPU9iamVjdC5rZXlzKHQpLm1hcChmdW5jdGlvbihlKXtyZXR1cm4gSmEodFtlXSxuKX0pLmpvaW4oIiwiKTtyZXR1cm4ic2NvcGVkU2xvdHM6X3UoWyIrYSsiXSIrKHI\/IixudWxsLHRydWUiOiIiKSsoIXImJmk\/IixudWxsLGZhbHNlLCIrZnVuY3Rpb24oZSl7dmFyIHQ9NTM4MSxuPWUubGVuZ3RoO2Zvcig7bjspdD0zMyp0XmUuY2hhckNvZGVBdCgtLW4pO3JldHVybiB0Pj4+MH0oYSk6IiIpKyIpIn0oZSxlLnNjb3BlZFNsb3RzLHQpKyIsIiksZS5tb2RlbCYmKG4rPSJtb2RlbDp7dmFsdWU6IitlLm1vZGVsLnZhbHVlKyIsY2FsbGJhY2s6IitlLm1vZGVsLmNhbGxiYWNrKyIsZXhwcmVzc2lvbjoiK2UubW9kZWwuZXhwcmVzc2lvbisifSwiKSxlLmlubGluZVRlbXBsYXRlKXt2YXIgbz1mdW5jdGlvbihlLHQpe3ZhciBuPWUuY2hpbGRyZW5bMF07aWYobiYmMT09PW4udHlwZSl7dmFyIHI9UGEobix0Lm9wdGlvbnMpO3JldHVybiJpbmxpbmVUZW1wbGF0ZTp7cmVuZGVyOmZ1bmN0aW9uKCl7IityLnJlbmRlcisifSxzdGF0aWNSZW5kZXJGbnM6WyIrci5zdGF0aWNSZW5kZXJGbnMubWFwKGZ1bmN0aW9uKGUpe3JldHVybiJmdW5jdGlvbigpeyIrZSsifSJ9KS5qb2luKCIsIikrIl19In19KGUsdCk7byYmKG4rPW8rIiwiKX1yZXR1cm4gbj1uLnJlcGxhY2UoLywkLywiIikrIn0iLGUuZHluYW1pY0F0dHJzJiYobj0iX2IoIituKycsIicrZS50YWcrJyIsJytHYShlLmR5bmFtaWNBdHRycykrIikiKSxlLndyYXBEYXRhJiYobj1lLndyYXBEYXRhKG4pKSxlLndyYXBMaXN0ZW5lcnMmJihuPWUud3JhcExpc3RlbmVycyhuKSksbn1mdW5jdGlvbiBLYShlKXtyZXR1cm4gMT09PWUudHlwZSYmKCJzbG90Ij09PWUudGFnfHxlLmNoaWxkcmVuLnNvbWUoS2EpKX1mdW5jdGlvbiBKYShlLHQpe3ZhciBuPWUuYXR0cnNNYXBbInNsb3Qtc2NvcGUiXTtpZihlLmlmJiYhZS5pZlByb2Nlc3NlZCYmIW4pcmV0dXJuIFVhKGUsdCxKYSwibnVsbCIpO2lmKGUuZm9yJiYhZS5mb3JQcm9jZXNzZWQpcmV0dXJuIHphKGUsdCxKYSk7dmFyIHI9ZS5zbG90U2NvcGU9PT1jYT8iIjpTdHJpbmcoZS5zbG90U2NvcGUpLGk9ImZ1bmN0aW9uKCIrcisiKXtyZXR1cm4gIisoInRlbXBsYXRlIj09PWUudGFnP2UuaWYmJm4\/IigiK2UuaWYrIik\/IisocWEoZSx0KXx8InVuZGVmaW5lZCIpKyI6dW5kZWZpbmVkIjpxYShlLHQpfHwidW5kZWZpbmVkIjpSYShlLHQpKSsifSIsbz1yPyIiOiIscHJveHk6dHJ1ZSI7cmV0dXJuIntrZXk6IisoZS5zbG90VGFyZ2V0fHwnImRlZmF1bHQiJykrIixmbjoiK2krbysifSJ9ZnVuY3Rpb24gcWEoZSx0LG4scixpKXt2YXIgbz1lLmNoaWxkcmVuO2lmKG8ubGVuZ3RoKXt2YXIgYT1vWzBdO2lmKDE9PT1vLmxlbmd0aCYmYS5mb3ImJiJ0ZW1wbGF0ZSIhPT1hLnRhZyYmInNsb3QiIT09YS50YWcpe3ZhciBzPW4\/dC5tYXliZUNvbXBvbmVudChhKT8iLDEiOiIsMCI6IiI7cmV0dXJuIiIrKHJ8fFJhKShhLHQpK3N9dmFyIGM9bj9mdW5jdGlvbihlLHQpe2Zvcih2YXIgbj0wLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGk9ZVtyXTtpZigxPT09aS50eXBlKXtpZihXYShpKXx8aS5pZkNvbmRpdGlvbnMmJmkuaWZDb25kaXRpb25zLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIFdhKGUuYmxvY2spfSkpe249MjticmVha30odChpKXx8aS5pZkNvbmRpdGlvbnMmJmkuaWZDb25kaXRpb25zLnNvbWUoZnVuY3Rpb24oZSl7cmV0dXJuIHQoZS5ibG9jayl9KSkmJihuPTEpfX1yZXR1cm4gbn0obyx0Lm1heWJlQ29tcG9uZW50KTowLHU9aXx8WmE7cmV0dXJuIlsiK28ubWFwKGZ1bmN0aW9uKGUpe3JldHVybiB1KGUsdCl9KS5qb2luKCIsIikrIl0iKyhjPyIsIitjOiIiKX19ZnVuY3Rpb24gV2EoZSl7cmV0dXJuIHZvaWQgMCE9PWUuZm9yfHwidGVtcGxhdGUiPT09ZS50YWd8fCJzbG90Ij09PWUudGFnfWZ1bmN0aW9uIFphKGUsdCl7cmV0dXJuIDE9PT1lLnR5cGU\/UmEoZSx0KTozPT09ZS50eXBlJiZlLmlzQ29tbWVudD8ocj1lLCJfZSgiK0pTT04uc3RyaW5naWZ5KHIudGV4dCkrIikiKToiX3YoIisoMj09PShuPWUpLnR5cGU\/bi5leHByZXNzaW9uOlhhKEpTT04uc3RyaW5naWZ5KG4udGV4dCkpKSsiKSI7dmFyIG4scn1mdW5jdGlvbiBHYShlKXtmb3IodmFyIHQ9IiIsbj0iIixyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBpPWVbcl0sbz1YYShpLnZhbHVlKTtpLmR5bmFtaWM\/bis9aS5uYW1lKyIsIitvKyIsIjp0Kz0nIicraS5uYW1lKyciOicrbysiLCJ9cmV0dXJuIHQ9InsiK3Quc2xpY2UoMCwtMSkrIn0iLG4\/Il9kKCIrdCsiLFsiK24uc2xpY2UoMCwtMSkrIl0pIjp0fWZ1bmN0aW9uIFhhKGUpe3JldHVybiBlLnJlcGxhY2UoL1x1MjAyOC9nLCJcXHUyMDI4IikucmVwbGFjZSgvXHUyMDI5L2csIlxcdTIwMjkiKX1uZXcgUmVnRXhwKCJcXGIiKyJkbyxpZixmb3IsbGV0LG5ldyx0cnksdmFyLGNhc2UsZWxzZSx3aXRoLGF3YWl0LGJyZWFrLGNhdGNoLGNsYXNzLGNvbnN0LHN1cGVyLHRocm93LHdoaWxlLHlpZWxkLGRlbGV0ZSxleHBvcnQsaW1wb3J0LHJldHVybixzd2l0Y2gsZGVmYXVsdCxleHRlbmRzLGZpbmFsbHksY29udGludWUsZGVidWdnZXIsZnVuY3Rpb24sYXJndW1lbnRzIi5zcGxpdCgiLCIpLmpvaW4oIlxcYnxcXGIiKSsiXFxiIik7ZnVuY3Rpb24gWWEoZSx0KXt0cnl7cmV0dXJuIG5ldyBGdW5jdGlvbihlKX1jYXRjaChuKXtyZXR1cm4gdC5wdXNoKHtlcnI6bixjb2RlOmV9KSxTfX1mdW5jdGlvbiBRYShlKXt2YXIgdD1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBmdW5jdGlvbihuLHIsaSl7KHI9QSh7fSxyKSkud2FybjtkZWxldGUgci53YXJuO3ZhciBvPXIuZGVsaW1pdGVycz9TdHJpbmcoci5kZWxpbWl0ZXJzKStuOm47aWYodFtvXSlyZXR1cm4gdFtvXTt2YXIgYT1lKG4scikscz17fSxjPVtdO3JldHVybiBzLnJlbmRlcj1ZYShhLnJlbmRlcixjKSxzLnN0YXRpY1JlbmRlckZucz1hLnN0YXRpY1JlbmRlckZucy5tYXAoZnVuY3Rpb24oZSl7cmV0dXJuIFlhKGUsYyl9KSx0W29dPXN9fXZhciBlcyx0cyxucz0oZXM9ZnVuY3Rpb24oZSx0KXt2YXIgbj1sYShlLnRyaW0oKSx0KTshMSE9PXQub3B0aW1pemUmJmthKG4sdCk7dmFyIHI9UGEobix0KTtyZXR1cm57YXN0Om4scmVuZGVyOnIucmVuZGVyLHN0YXRpY1JlbmRlckZuczpyLnN0YXRpY1JlbmRlckZuc319LGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHQodCxuKXt2YXIgcj1PYmplY3QuY3JlYXRlKGUpLGk9W10sbz1bXTtpZihuKWZvcih2YXIgYSBpbiBuLm1vZHVsZXMmJihyLm1vZHVsZXM9KGUubW9kdWxlc3x8W10pLmNvbmNhdChuLm1vZHVsZXMpKSxuLmRpcmVjdGl2ZXMmJihyLmRpcmVjdGl2ZXM9QShPYmplY3QuY3JlYXRlKGUuZGlyZWN0aXZlc3x8bnVsbCksbi5kaXJlY3RpdmVzKSksbikibW9kdWxlcyIhPT1hJiYiZGlyZWN0aXZlcyIhPT1hJiYoclthXT1uW2FdKTtyLndhcm49ZnVuY3Rpb24oZSx0LG4peyhuP286aSkucHVzaChlKX07dmFyIHM9ZXModC50cmltKCkscik7cmV0dXJuIHMuZXJyb3JzPWkscy50aXBzPW8sc31yZXR1cm57Y29tcGlsZTp0LGNvbXBpbGVUb0Z1bmN0aW9uczpRYSh0KX19KShDYSkscnM9KG5zLmNvbXBpbGUsbnMuY29tcGlsZVRvRnVuY3Rpb25zKTtmdW5jdGlvbiBpcyhlKXtyZXR1cm4odHM9dHN8fGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5pbm5lckhUTUw9ZT8nPGEgaHJlZj0iXG4iLz4nOic8ZGl2IGE9IlxuIi8+Jyx0cy5pbm5lckhUTUwuaW5kZXhPZigiJiMxMDsiKT4wfXZhciBvcz0hIXomJmlzKCExKSxhcz0hIXomJmlzKCEwKSxzcz1nKGZ1bmN0aW9uKGUpe3ZhciB0PVluKGUpO3JldHVybiB0JiZ0LmlubmVySFRNTH0pLGNzPXduLnByb3RvdHlwZS4kbW91bnQ7cmV0dXJuIHduLnByb3RvdHlwZS4kbW91bnQ9ZnVuY3Rpb24oZSx0KXtpZigoZT1lJiZZbihlKSk9PT1kb2N1bWVudC5ib2R5fHxlPT09ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KXJldHVybiB0aGlzO3ZhciBuPXRoaXMuJG9wdGlvbnM7aWYoIW4ucmVuZGVyKXt2YXIgcj1uLnRlbXBsYXRlO2lmKHIpaWYoInN0cmluZyI9PXR5cGVvZiByKSIjIj09PXIuY2hhckF0KDApJiYocj1zcyhyKSk7ZWxzZXtpZighci5ub2RlVHlwZSlyZXR1cm4gdGhpcztyPXIuaW5uZXJIVE1MfWVsc2UgZSYmKHI9ZnVuY3Rpb24oZSl7aWYoZS5vdXRlckhUTUwpcmV0dXJuIGUub3V0ZXJIVE1MO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmFwcGVuZENoaWxkKGUuY2xvbmVOb2RlKCEwKSksdC5pbm5lckhUTUx9KGUpKTtpZihyKXt2YXIgaT1ycyhyLHtvdXRwdXRTb3VyY2VSYW5nZTohMSxzaG91bGREZWNvZGVOZXdsaW5lczpvcyxzaG91bGREZWNvZGVOZXdsaW5lc0ZvckhyZWY6YXMsZGVsaW1pdGVyczpuLmRlbGltaXRlcnMsY29tbWVudHM6bi5jb21tZW50c30sdGhpcyksbz1pLnJlbmRlcixhPWkuc3RhdGljUmVuZGVyRm5zO24ucmVuZGVyPW8sbi5zdGF0aWNSZW5kZXJGbnM9YX19cmV0dXJuIGNzLmNhbGwodGhpcyxlLHQpfSx3bi5jb21waWxlPXJzLHdufSk7Ci8qKiAvbS9qcy92dWUvdnVlLXRoZS1tYXNrLmpzICoqLwp2YXIgX19fZDJjX3Z1ZXRoZW1hc2tqc19jX29uPSIyMDI1LTA1LTIzIDE3OjA1OjM4IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY192dWV0aGVtYXNranNfY19vbj0iMjAyNC0wMS0zMSAxNDozMzoxNSI7InVzZSBzdHJpY3QiO19fX2QyY192dWV0aGVtYXNranNfY19vbj0iMjAyMy0wMS0xMiAxMTo0MDo1NSI7InVzZSBzdHJpY3QiO19fX2QyY192dWV0aGVtYXNranNfY19vbj0iMjAyMy0wMS0xMiAxMDo1MDo0MSI7InVzZSBzdHJpY3QiO19fX2QyY192dWV0aGVtYXNranNfY19vbj0iMjAyMS0xMi0xNSAxMjo1MToyNCI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oaCxjKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJvYmplY3QiPT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPWMoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbXSxjKToib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHM\/ZXhwb3J0cy5WdWVUaGVNYXNrPWMoKTpoLlZ1ZVRoZU1hc2s9YygpfSkodGhpcyxmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihoKXtmdW5jdGlvbiBjKGQpe2lmKGFbZF0pcmV0dXJuIGFbZF0uZXhwb3J0czt2YXIgZT1hW2RdPXtpOmQsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gaFtkXS5jYWxsKGUuZXhwb3J0cyxlLGUuZXhwb3J0cyxjKSxlLmw9ITAsZS5leHBvcnRzfXZhciBhPXt9O3JldHVybiBjLm09aCxjLmM9YSxjLmk9ZnVuY3Rpb24oZCl7cmV0dXJuIGR9LGMuZD1mdW5jdGlvbihkLGUsbCl7Yy5vKGQsZSl8fE9iamVjdC5kZWZpbmVQcm9wZXJ0eShkLGUse2NvbmZpZ3VyYWJsZTohMSxlbnVtZXJhYmxlOiEwLApnZXQ6bH0pfSxjLm49ZnVuY3Rpb24oZCl7dmFyIGU9ZCYmZC5fX2VzTW9kdWxlP2Z1bmN0aW9uKCl7cmV0dXJuIGQuZGVmYXVsdH06ZnVuY3Rpb24oKXtyZXR1cm4gZH07cmV0dXJuIGMuZChlLCJhIixlKSxlfSxjLm89ZnVuY3Rpb24oZCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGQsZSl9LGMucD0iLiIsYyhjLnM9MTApfShbZnVuY3Rpb24oaCxjKXtoLmV4cG9ydHM9eyIjIjp7cGF0dGVybjovXGQvfSxYOntwYXR0ZXJuOi9bMC05YS16QS1aXS99LFM6e3BhdHRlcm46L1thLXpBLVpdL30sQTp7cGF0dGVybjovW2EtekEtWl0vLHRyYW5zZm9ybTpmdW5jdGlvbihhKXtyZXR1cm4gYS50b0xvY2FsZVVwcGVyQ2FzZSgpfX0sYTp7cGF0dGVybjovW2EtekEtWl0vLHRyYW5zZm9ybTpmdW5jdGlvbihhKXtyZXR1cm4gYS50b0xvY2FsZUxvd2VyQ2FzZSgpfX0sIiEiOntlc2NhcGU6ITB9fX0sZnVuY3Rpb24oaCxjLGEpe2Z1bmN0aW9uIGQoYil7dmFyIGY9CmRvY3VtZW50LmNyZWF0ZUV2ZW50KCJFdmVudCIpO3JldHVybiBmLmluaXRFdmVudChiLCEwLCEwKSxmfXZhciBlPWEoMik7aD1hKDApO3ZhciBsPWEubihoKTtjLmE9ZnVuY3Rpb24oYixmKXt2YXIgZz1mLnZhbHVlO2lmKChBcnJheS5pc0FycmF5KGcpfHwic3RyaW5nIj09dHlwZW9mIGcpJiYoZz17bWFzazpnLHRva2VuczpsLmF9KSwiSU5QVVQiIT09Yi50YWdOYW1lLnRvTG9jYWxlVXBwZXJDYXNlKCkpe2Y9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZSgiaW5wdXQiKTtpZigxIT09Zi5sZW5ndGgpdGhyb3cgRXJyb3IoInYtbWFzayBkaXJlY3RpdmUgcmVxdWlyZXMgMSBpbnB1dCwgZm91bmQgIitmLmxlbmd0aCk7Yj1mWzBdfWIub25pbnB1dD1mdW5jdGlvbihtKXtpZihtLmlzVHJ1c3RlZCl7dmFyIGs9Yi5zZWxlY3Rpb25FbmQ7bT1iLnZhbHVlW2stMV07Zm9yKGIudmFsdWU9YS5pKGUuYSkoYi52YWx1ZSxnLm1hc2ssITAsZy50b2tlbnMpO2s8Yi52YWx1ZS5sZW5ndGgmJmIudmFsdWUuY2hhckF0KGstCjEpIT09bTspaysrO2I9PT1kb2N1bWVudC5hY3RpdmVFbGVtZW50JiYoYi5zZXRTZWxlY3Rpb25SYW5nZShrLGspLHNldFRpbWVvdXQoZnVuY3Rpb24oKXtiLnNldFNlbGVjdGlvblJhbmdlKGssayl9LDApKTtiLmRpc3BhdGNoRXZlbnQoZCgiaW5wdXQiKSl9fTtmPWEuaShlLmEpKGIudmFsdWUsZy5tYXNrLCEwLGcudG9rZW5zKTtmIT09Yi52YWx1ZSYmKGIudmFsdWU9ZixiLmRpc3BhdGNoRXZlbnQoZCgiaW5wdXQiKSkpfX0sZnVuY3Rpb24oaCxjLGEpe3ZhciBkPWEoNiksZT1hKDUpO2MuYT1mdW5jdGlvbihsLGIpe3ZhciBmPSEoMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sZz1hcmd1bWVudHNbM107cmV0dXJuIEFycmF5LmlzQXJyYXkoYik\/YS5pKGUuYSkoZC5hLGIsZykobCxiLGYsZyk6YS5pKGQuYSkobCxiLGYsZyl9fSxmdW5jdGlvbihoLGMsYSl7ZnVuY3Rpb24gZChnKXtnLmNvbXBvbmVudChiLmEubmFtZSxiLmEpOwpnLmRpcmVjdGl2ZSgibWFzayIsbC5hKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoYywiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7aD1hKDApO3ZhciBlPWEubihoKSxsPWEoMSk7aD1hKDcpO3ZhciBiPWEubihoKTthLmQoYywiVGhlTWFzayIsZnVuY3Rpb24oKXtyZXR1cm4gYi5hfSk7YS5kKGMsIm1hc2siLGZ1bmN0aW9uKCl7cmV0dXJuIGwuYX0pO2EuZChjLCJ0b2tlbnMiLGZ1bmN0aW9uKCl7cmV0dXJuIGUuYX0pO2EuZChjLCJ2ZXJzaW9uIixmdW5jdGlvbigpe3JldHVybiBmfSk7dmFyIGY9IjAuMTEuMSI7Yy5kZWZhdWx0PWQ7InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5WdWUmJndpbmRvdy5WdWUudXNlKGQpfSxmdW5jdGlvbihoLGMsYSl7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2g9YSgxKTt2YXIgZD1hKDApLGU9YS5uKGQpLGw9YSgyKTtjLmRlZmF1bHQ9e25hbWU6IlRoZU1hc2siLHByb3BzOnt2YWx1ZTpbU3RyaW5nLApOdW1iZXJdLG1hc2s6e3R5cGU6W1N0cmluZyxBcnJheV0scmVxdWlyZWQ6ITB9LG1hc2tlZDp7dHlwZTpCb29sZWFuLGRlZmF1bHQ6ITF9LHRva2Vuczp7dHlwZTpPYmplY3QsZGVmYXVsdDpmdW5jdGlvbigpe3JldHVybiBlLmF9fX0sZGlyZWN0aXZlczp7bWFzazpoLmF9LGRhdGE6ZnVuY3Rpb24oKXtyZXR1cm57bGFzdFZhbHVlOm51bGwsZGlzcGxheTp0aGlzLnZhbHVlfX0sd2F0Y2g6e3ZhbHVlOmZ1bmN0aW9uKGIpe2IhPT10aGlzLmxhc3RWYWx1ZSYmKHRoaXMuZGlzcGxheT1iKX0sbWFza2VkOmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKHRoaXMuZGlzcGxheSl9fSxjb21wdXRlZDp7Y29uZmlnOmZ1bmN0aW9uKCl7cmV0dXJue21hc2s6dGhpcy5tYXNrLHRva2Vuczp0aGlzLnRva2VucyxtYXNrZWQ6dGhpcy5tYXNrZWR9fX0sbWV0aG9kczp7b25JbnB1dDpmdW5jdGlvbihiKXtiLmlzVHJ1c3RlZHx8dGhpcy5yZWZyZXNoKGIudGFyZ2V0LnZhbHVlKX0scmVmcmVzaDpmdW5jdGlvbihiKXt0aGlzLmRpc3BsYXk9CmI7Yj1hLmkobC5hKShiLHRoaXMubWFzayx0aGlzLm1hc2tlZCx0aGlzLnRva2Vucyk7YiE9PXRoaXMubGFzdFZhbHVlJiYodGhpcy5sYXN0VmFsdWU9Yix0aGlzLiRlbWl0KCJpbnB1dCIsYikpfX19fSxmdW5jdGlvbihoLGMsYSl7Yy5hPWZ1bmN0aW9uKGQsZSxsKXtyZXR1cm4gZT1lLnNvcnQoZnVuY3Rpb24oYixmKXtyZXR1cm4gYi5sZW5ndGgtZi5sZW5ndGh9KSxmdW5jdGlvbihiLGYpe2Zvcih2YXIgZz0hKDI8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzJdKXx8YXJndW1lbnRzWzJdLG09MDttPGUubGVuZ3RoOyl7dmFyIGs9ZVttXTttKys7dmFyIG49ZVttXTtpZighKG4mJmQoYixuLCEwLGwpLmxlbmd0aD5rLmxlbmd0aCkpcmV0dXJuIGQoYixrLGcsbCl9cmV0dXJuIiJ9fX0sZnVuY3Rpb24oaCxjLGEpe2MuYT1mdW5jdGlvbihkLGUpe3ZhciBsPSEoMjxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMl0pfHxhcmd1bWVudHNbMl0sYj0KYXJndW1lbnRzWzNdO2Q9ZHx8IiI7ZT1lfHwiIjtmb3IodmFyIGY9MCxnPTAsbT0iIjtmPGUubGVuZ3RoJiZnPGQubGVuZ3RoOyl7dmFyIGs9ZVtmXSxuPWJba10scD1kW2ddO24mJiFuLmVzY2FwZT8obi5wYXR0ZXJuLnRlc3QocCkmJihtKz1uLnRyYW5zZm9ybT9uLnRyYW5zZm9ybShwKTpwLGYrKyksZysrKToobiYmbi5lc2NhcGUmJihmKyssaz1lW2ZdKSxsJiYobSs9aykscD09PWsmJmcrKyxmKyspfWZvcihnPSIiO2Y8ZS5sZW5ndGgmJmw7KXtrPWVbZl07aWYoYltrXSl7Zz0iIjticmVha31nKz1rO2YrK31yZXR1cm4gbStnfX0sZnVuY3Rpb24oaCxjLGEpe2M9YSg4KShhKDQpLGEoOSksbnVsbCxudWxsKTtoLmV4cG9ydHM9Yy5leHBvcnRzfSxmdW5jdGlvbihoLGMpe2guZXhwb3J0cz1mdW5jdGlvbihhLGQsZSxsKXt2YXIgYixmPWE9YXx8e30sZz10eXBlb2YgYS5kZWZhdWx0OyJvYmplY3QiIT09ZyYmImZ1bmN0aW9uIiE9PWd8fChiPWEsZj1hLmRlZmF1bHQpO2E9ImZ1bmN0aW9uIj09CnR5cGVvZiBmP2Yub3B0aW9uczpmO2lmKGQmJihhLnJlbmRlcj1kLnJlbmRlcixhLnN0YXRpY1JlbmRlckZucz1kLnN0YXRpY1JlbmRlckZucyksZSYmKGEuX3Njb3BlSWQ9ZSksbCl7dmFyIG09YS5jb21wdXRlZHx8KGEuY29tcHV0ZWQ9e30pO09iamVjdC5rZXlzKGwpLmZvckVhY2goZnVuY3Rpb24oayl7dmFyIG49bFtrXTttW2tdPWZ1bmN0aW9uKCl7cmV0dXJuIG59fSl9cmV0dXJue2VzTW9kdWxlOmIsZXhwb3J0czpmLG9wdGlvbnM6YX19fSxmdW5jdGlvbihoLGMpe2guZXhwb3J0cz17cmVuZGVyOmZ1bmN0aW9uKCl7dmFyIGE9dGhpcy4kY3JlYXRlRWxlbWVudDtyZXR1cm4odGhpcy5fc2VsZi5fY3x8YSkoImlucHV0Iix7ZGlyZWN0aXZlczpbe25hbWU6Im1hc2siLHJhd05hbWU6InYtbWFzayIsdmFsdWU6dGhpcy5jb25maWcsZXhwcmVzc2lvbjoiY29uZmlnIn1dLGF0dHJzOnt0eXBlOiJ0ZXh0In0sZG9tUHJvcHM6e3ZhbHVlOnRoaXMuZGlzcGxheX0sb246e2lucHV0OnRoaXMub25JbnB1dH19KX0sCnN0YXRpY1JlbmRlckZuczpbXX19LGZ1bmN0aW9uKGgsYyxhKXtoLmV4cG9ydHM9YSgzKX1dKX0pOwovKiogL20vanMvZmluYW5jZV9tdWx0aXN0ZXAuanMgKiovCnZhciBfX19kMmNfZmluYW5jZW11bHRpc3RlcGpzX2Nfb249IjIwMjYtMDYtMTkgMDk6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYixoLG0pe2lmKGI9PUFycmF5LnByb3RvdHlwZXx8Yj09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYjtiW2hdPW0udmFsdWU7cmV0dXJuIGJ9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihiKXtiPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYiwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGg9MDtoPGIubGVuZ3RoOysraCl7dmFyIG09YltoXTtpZihtJiZtLk1hdGg9PU1hdGgpcmV0dXJuIG19dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihiLGgpe3ZhciBtPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdO2lmKG51bGw9PW0pcmV0dXJuIGJbaF07bT1iW21dO3JldHVybiB2b2lkIDAhPT1tP206YltoXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihiLGgsbSxuKXtoJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYixoLG0sbik6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYixoLG0sbikpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYixoLG0sbil7bT0kanNjb21wLmdsb2JhbDtiPWIuc3BsaXQoIi4iKTtmb3Iobj0wO248Yi5sZW5ndGgtMTtuKyspe3ZhciByPWJbbl07aWYoIShyIGluIG0pKXJldHVybjttPW1bcl19Yj1iW2IubGVuZ3RoLTFdO249bVtiXTtoPWgobik7aCE9biYmbnVsbCE9aCYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShtLGIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYixoLG0sbil7dmFyIHI9Yi5zcGxpdCgiLiIpO2I9MT09PXIubGVuZ3RoO249clswXTtuPSFiJiZuIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgdj0wO3Y8ci5sZW5ndGgtMTt2Kyspe3ZhciB5PXJbdl07aWYoISh5IGluIG4pKXJldHVybjtuPW5beV19cj1yW3IubGVuZ3RoLTFdO209JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PW0\/bltyXTpudWxsO2g9aChtKTtudWxsIT1oJiYoYj8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLHIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpofSk6aCE9PW0mJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtyXSYmKG09MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW3JdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKHIpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK20rIiQiK3IpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkobiwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtyXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmh9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGI9e2E6ITB9LGg9e307dHJ5e3JldHVybiBoLl9fcHJvdG9fXz1iLGguYX1jYXRjaChtKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGIsaCl7Yi5fX3Byb3RvX189aDtpZihiLl9fcHJvdG9fXyE9PWgpdGhyb3cgbmV3IFR5cGVFcnJvcihiKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYn06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGIpe3ZhciBoPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGg8Yi5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YltoKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYil7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChiKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihiKXt2YXIgaD0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGg\/aC5jYWxsKGIpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihiKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYil7aWYoIShiIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitiKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihiKXt0aGlzLnlpZWxkUmVzdWx0PWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246Yixpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYixoKXt0aGlzLm5leHRBZGRyZXNzPWg7cmV0dXJue3ZhbHVlOmJ9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihiLGgpe2I9JGpzY29tcC5tYWtlSXRlcmF0b3IoYik7dmFyIG09Yi5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8obSk7aWYobS5kb25lKXRoaXMueWllbGRSZXN1bHQ9bS52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWg7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1iLHRoaXMueWllbGQobS52YWx1ZSxoKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihiKXt0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIsaCl7dGhpcy5jYXRjaEFkZHJlc3NfPWI7dm9pZCAwIT1oJiYodGhpcy5maW5hbGx5QWRkcmVzc189aCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihiKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGIsaCl7dGhpcy5uZXh0QWRkcmVzcz1iO3RoaXMuY2F0Y2hBZGRyZXNzXz1ofHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO2I9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGgsbSl7bT90aGlzLmZpbmFsbHlDb250ZXh0c19bbV09dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWh8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGgpe2g9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShofHwwKVswXTtpZihoPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8aCl7aWYoaC5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1oLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188aC5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9aC5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihiKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihiKXt0aGlzLm9iamVjdF89Yjt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgaCBpbiBiKXRoaXMucHJvcGVydGllc18ucHVzaChoKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGI9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihiIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYn1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89Yn07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxiLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGg9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihoKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBoP2hbInJldHVybiJdOmZ1bmN0aW9uKG0pe3JldHVybnt2YWx1ZTptLGRvbmU6ITB9fSxiLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGIsaCxtKXt0cnl7dmFyIG49Yi5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8saCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8obik7aWYoIW4uZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLG47dmFyIHI9bi52YWx1ZX1jYXRjaCh2KXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKHYpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO20uY2FsbCh0aGlzLmNvbnRleHRfLHIpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGI9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihiKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmIudmFsdWUsZG9uZTohMX19Y2F0Y2goaCl7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oaCl9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2I9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYi5pc0V4Y2VwdGlvbil0aHJvdyBiLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6Yi5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYil7dGhpcy5uZXh0PWZ1bmN0aW9uKGgpe3JldHVybiBiLm5leHRfKGgpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGgpe3JldHVybiBiLnRocm93XyhoKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oaCl7cmV0dXJuIGIucmV0dXJuXyhoKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYixoKXtoPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGgpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZiLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihoLGIucHJvdG90eXBlKTtyZXR1cm4gaH07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihiKXtmdW5jdGlvbiBoKG4pe3JldHVybiBiLm5leHQobil9ZnVuY3Rpb24gbShuKXtyZXR1cm4gYi50aHJvdyhuKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24obixyKXtmdW5jdGlvbiB2KHkpe3kuZG9uZT9uKHkudmFsdWUpOlByb21pc2UucmVzb2x2ZSh5LnZhbHVlKS50aGVuKGgsbSkudGhlbih2LHIpfXYoYi5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYigpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKSl9OwpmdW5jdGlvbiBpbml0aWFsaXplRmluYW5jZU11bHRpU3RlcChiKXtmdW5jdGlvbiBoKGMpe3N3aXRjaChjKXtjYXNlICJFbWFpbCBwcm92aWRlZCI6Y2FzZSAiUGhvbmUgcHJvdmlkZWQiOk98fCgkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikudHJpZ2dlcigicG9wdXBpemVyLnN1Ym1pdHRlZCIpLE89ITApfSJmdW5jdGlvbiI9PT10eXBlb2YgZ2FUcmFjayYmZ2FUcmFjaygiX3RyYWNrRXZlbnQiLCJVc2VkLVNSUC1GaW5hbmNlLVBvcHVwIixjLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpfWZ1bmN0aW9uIG0oYyl7JC5hamF4KHt1cmw6Ii8iK3crIi9hamF4L2dldEJhbm5lclNlYXJjaEJhck1ha2VzP3dzd2lkdGg9MCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3R5cGU6Yy50b0xvd2VyQ2FzZSgpfSxzdWNjZXNzOmZ1bmN0aW9uKGQpeyQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcE1ha2Ugb3B0aW9uOmZpcnN0IiwKYilbMF0ub3V0ZXJIVE1MKTskKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQuZWFjaChkLGZ1bmN0aW9uKGUsZil7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS5hcHBlbmQoJzxvcHRpb24gdmFsdWU9IicrZi5tYWtlKyciPicrZi50aXRsZTIrIjwvb3B0aW9uPiIpfSl9fSl9ZnVuY3Rpb24gbihjLGQpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRCYW5uZXJTZWFyY2hCYXJNb2RlbHM\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7bWFrZTpidG9hKGQpLHR5cGU6Yy50b0xvd2VyQ2FzZSgpfSxzdWNjZXNzOmZ1bmN0aW9uKGUpeyQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLApiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQuZWFjaChlLGZ1bmN0aW9uKGYsZyl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikuYXBwZW5kKCc8b3B0aW9uIGRhdGEtbW9kZWw9IicrZy5tb2RlbE5hbWUrJyIgZGF0YS15ZWFyPSInK2cueWVhcisnIiB2YWx1ZT0iJytnLnRpdGxlMisnIj4nK2cudGl0bGUyKyI8L29wdGlvbj4iKX0pfX0pfWZ1bmN0aW9uIHIoYyxkLGUpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXROZXdUcmltcz93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIixkYXRhOnttYWtlOmMsbW9kZWw6ZCx5ZWFyOmV9LHN1Y2Nlc3M6ZnVuY3Rpb24oZil7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIiwKYikuaHRtbCgkKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOmZpcnN0IixiKVswXS5vdXRlckhUTUwpOyQuZWFjaChmLGZ1bmN0aW9uKGcsbCl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5hcHBlbmQoJzxvcHRpb24gZGF0YS1wcmljZT0iJytsLnByaWNlKyciIGRhdGEtc3R5bGVpZD0iJytsLnN0eWxlaWQrJyIgdmFsdWU9IicrbC50cmltKyciPicrbC50cmltKyI8L29wdGlvbj4iKX0pfX0pfWZ1bmN0aW9uIHYoYyxkKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvZ2V0SW52ZW50b3J5VHJpbXM\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7bWFrZTpjLG1vZGVsOmR9LHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5odG1sKCQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246Zmlyc3QiLGIpWzBdLm91dGVySFRNTCk7JC5lYWNoKGUsZnVuY3Rpb24oZixnKXskKCIjZmluYW5jZU11bHRpc3RlcFRyaW0iLApiKS5hcHBlbmQoJzxvcHRpb24gZGF0YS1wcmljZT0iJytnLm9yaWdpbmFscHJpY2UrJyIgZGF0YS12ZWhpY2xlaWQ9IicrZy52ZWhpY2xlaWQrJyIgZGF0YS15ZWFyPSInK2cueWVhcisnIiBkYXRhLWlzbmV3PSInK2cuaXNuZXcrJyIgZGF0YS1pc2RlbW89IicrZy5kZW1vKyciIGRhdGEtc3RvY2tudW1iZXI9IicrZy5zdG9ja251bWJlcisnIiBkYXRhLW1pbGVhZ2U9IicrZy5taWxlYWdlKyciIGRhdGEtc3R5bGVpZD0iJytnLnN0eWxlaWQrJyIgdmFsdWU9IicrZy50cmltKyciPicrZy50aXRsZSsiPC9vcHRpb24+Iil9KX19KX1mdW5jdGlvbiB5KGMpeyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRVc2VkQ2FsY3VsYXRvckhUTUw\/d3N3aWR0aD0wIixkYXRhVHlwZToiSlNPTiIsZGF0YTp7Y2FyaWQ6Y30sc3VjY2VzczpmdW5jdGlvbihkKXtkLnZhbGlkPygkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIixiKS5odG1sKGQuaHRtbCksCiQoIiNmaW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IiLGIpLmZpbmQoIi5jYWxjLWZvcm0iKS5maW5kKCIudXNlZENhbGN1bGF0b3JEb3duUGF5bWVudCIpLmFmdGVyKCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3JUcmFkZUluIixiKS5odG1sKCkpLFgoKSwkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbChhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiKS5hdHRyKCJtYXgiLGEuZm9ybWRhdGEudHJhZGVJblZhbHVlKSwkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIixiKS5zaG93KCkpOihhLmZvcm1kYXRhLm5vUGF5bWVudD0hMCwkKCIjZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIixiKS5oaWRlKCksYS5uZXh0KCEwKSl9fSl9ZnVuY3Rpb24gWCgpeyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmRvd25wYXltZW50Iikub24oImJsdXIiLApmdW5jdGlvbigpe0QoKX0pOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLm5vT2ZNb250aHMiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBjPSQodGhpcykuZmluZCgib3B0aW9uOnNlbGVjdGVkIik7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuaW50ZXJlc3RyYXRlIikudmFsKGMuYXR0cigiZGF0YS1yYXRlIikpO0QoKX0pOyQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRGcmVxdWVuY3kiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe0QoKX0pO0QoKX1mdW5jdGlvbiBEKCl7dmFyIGM9cGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5pbnRlcmVzdHJhdGUiLGIpLnZhbCgpLnJlcGxhY2UoIiwiLCIuIikpLnRvRml4ZWQoMikvMTAwLGQ9cGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5ub09mTW9udGhzIixiKS52YWwoKSkvMTIsZT1wYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmxvYW5hbW91bnQiLApiKS52YWwoKSkudG9GaXhlZCgyKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5mZWVhbW91bnQiLGIpLmxlbmd0aCYmKGU9cGFyc2VGbG9hdChlKStwYXJzZUZsb2F0KCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmZlZWFtb3VudCIsYikudmFsKCkucmVwbGFjZSgiLCIsIiIpKSk7MT09JCgiI3VzZXRheGVzIixiKS52YWwoKSYmKGUqPXBhcnNlRmxvYXQoJCgiI3RheGVzIikudmFsKCkpLnRvRml4ZWQoMikvMTAwKzEpOzA8JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZG93bnBheW1lbnQiLGIpLnZhbCgpJiYoZS09cGFyc2VGbG9hdCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5kb3ducGF5bWVudCIsYikudmFsKCkpLnRvRml4ZWQoMikpO3ZhciBmPSIiLGc9MTI7c3dpdGNoKCQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLnBheW1lbnRGcmVxdWVuY3kiLGIpLnZhbCgpKXtjYXNlICJ3ZWVrIjpnPQo1MjtmPSQoIiN3ZWVrVGV4dCIpLnZhbCgpO2JyZWFrO2Nhc2UgIjJ3ZWVrcyI6Zz0yNjtmPSQoIiMyd2Vla3NUZXh0IikudmFsKCk7YnJlYWs7Y2FzZSAibW9udGhseSI6Zj0kKCIjbW9udGhseVRleHQiKS52YWwoKTtnPTEyO2JyZWFrO2Nhc2UgImJpbW9udGhseSI6Zj0kKCIjYmltb250aGx5VGV4dCIpLnZhbCgpLGc9MjR9ZCo9ZzswPGM\/KGMvPWcsZz1NYXRoLnBvdyhjKzEsZCksZSo9YypnLyhnLTEpKTplLz1kO2U9TWF0aC5yb3VuZCgxMDAqZSkvMTAwO2lzTmFOKGUpJiYoZT0wKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5vdXRwdXRwcmljZSIsYikudmFsKCIkIitlKTskKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5vdXRwdXRwcmljZS10eHQiLGIpLmh0bWwoIiQiK2UpO2Y9JCgiI2VzdGltZGF0ZWRQYXltZW50VGV4dCIsYikudmFsKCkucmVwbGFjZSgiIyNGUkVRVUVOQ1kjIyIsZik7JCgiLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZXN0aW1hdGVkVGV4dCIsCmIpLmh0bWwoIjxzdHJvbmc+IitmKyI8L3N0cm9uZz4iKTtmPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IkZpbmFuY2VtZW50IjoiRmluYW5jaW5nIjthLmZvcm1kYXRhLnBheW1lbnRUeXBlPWY7YS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9ImZpbmFuY2luZyI7YS5mb3JtZGF0YS5wYXltZW50VGVybT0kKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5ub09mTW9udGhzIixiKS52YWwoKTthLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT1lO2EuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PSQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmRvd25wYXltZW50IixiKS52YWwoKXx8MDthLmZvcm1kYXRhLnBheW1lbnRJbnRlcnZhbD0kKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50RnJlcXVlbmN5IixiKS52YWwoKTthLmZvcm1kYXRhLnBheW1lbnRSYXRlPSQoIi5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmludGVyZXN0cmF0ZSIsCmIpLnZhbCgpO2EuZm9ybWRhdGEudmVoaWNsZUluaXRpYWxQcmljZT1wYXJzZUludCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5sb2FuYW1vdW50IixiKS52YWwoKSk7Zj1wYXJzZUludCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5mZWVhbW91bnQiLGIpLnZhbCgpLnJlcGxhY2UoIiwiLCIiKSk7YS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT1wYXJzZUludCgkKCIuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5sb2FuYW1vdW50IixiKS52YWwoKSkrZjthLmZvcm1kYXRhLnBheW1lbnRUb3RhbEZlZT1mO2suY2hlY2tWYWxpZGl0eSgpfWZ1bmN0aW9uIFAoKXsiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc0luc3RhbnQiLGIpLnZhbCgpJiYoJChiKS5maW5kKCIuY29uZmlybWF0aW9uVGl0bGUiKS5oaWRlKCksJChiKS5maW5kKCIuY29uZmlybWF0aW9uVGV4dCIpLnNob3coKSwkKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLmh0bWwoIiIpLAokKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLmhpZGUoKSk7aWYoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9zdWJtaXRfZGF0YSIpJiYiIj09JCgiaW5wdXRbbmFtZT1maW5hbmNlVHJhZGVJbk1ha2VdIikudmFsKCkpe3ZhciBjPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9zdWJtaXRfZGF0YSIpKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTWFrZV0iKS52YWwoYy5tYWtlKTskKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluTW9kZWxdIikudmFsKGMubW9kZWwpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5ZZWFyXSIpLnZhbChjLnllYXIpOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5UcmltXSIpLnZhbChjLnRyaW0pOyQoImlucHV0W25hbWU9ZmluYW5jZVRyYWRlSW5WYWx1ZV0iKS52YWwoYy52YWx1ZSk7X2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIikmJihjPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgidHJhZGVpbl9jdXJyZW50X3ZhbHVlIikpLAokKCJpbnB1dFtuYW1lPWZpbmFuY2VUcmFkZUluVmFsdWVdIikuYXR0cigiZGF0YS1jdXJyZW50IixjLnZhbHVlKSl9YS5zaG93RXJyb3I9ITE7YS5wdXNoUGFydGlhbD0hMTtrLnNldERlcGFydG1lbnQoKTtrLnNldFRyYWRlSW4oKTtpZihrLnVzZXJJZCgpKSQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9nZXRGaW5hbmNlTXVsdGlzdGVwVXNlcklkQW5kRGF0YT93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIix0eXBlOiJQT1NUIixkYXRhOnt1c2VySWQ6ay51c2VySWQoKSxkb21haW46USxzaXRlSWQ6JCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCksbGFuZzokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksZW1haWxIYW5kbGVySnNvbk9iamVjdDpKU09OLnN0cmluZ2lmeShKKX0sc3VjY2VzczpmdW5jdGlvbihnKXtnLklEfHwoZy5JRD0tMSk7ay51c2VySWQoZy5JRCk7Zy5kYXRhJiYoYS5mb3JtZGF0YT1KU09OLnBhcnNlKGcuZGF0YSkpOwoiIiE9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmYS5mb3JtZGF0YS5maXJzdE5hbWUhPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lJiYoYS5mb3JtZGF0YS5maXJzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUpOyIiIT1lbWFpbEhhbmRsZXIudXNlckxhc3ROYW1lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmYS5mb3JtZGF0YS5sYXN0TmFtZSE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmKGEuZm9ybWRhdGEubGFzdE5hbWU9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSk7IiIhPWVtYWlsSGFuZGxlci51c2VyRW1haWwmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiZhLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyE9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCYmKGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzPWVtYWlsSGFuZGxlci51c2VyRW1haWwpOwoiIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJmEuZm9ybWRhdGEucGhvbmVOdW1iZXIhPWVtYWlsSGFuZGxlci51c2VyUGhvbmUmJihhLmZvcm1kYXRhLnBob25lTnVtYmVyPWVtYWlsSGFuZGxlci51c2VyUGhvbmUsJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWwoYS5mb3JtZGF0YS5waG9uZU51bWJlcikpO2lmKGcuZW1haWxIYW5kbGVySnNvbil7bGV0IGw9SlNPTi5wYXJzZShnLmVtYWlsSGFuZGxlckpzb24pO2VtYWlsSGFuZGxlci5zZW5kVG89bC5zZW5kVG87ZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvPWwuc2VsZWN0ZWRTZW5kVG87ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdD1sLnNlbmRUb0FERkZvcm1hdDtlbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ9bC5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdDtlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT0KbC5kZWFsZXJOYW1lO2VtYWlsSGFuZGxlci5oYXNTZWxlY3RlZE11bHRpQWRkcmVzcz0tMT09PVstMSwiLTEiLCIiXS5pbmRleE9mKGEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbyl9aWYoInVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSl7bGV0IGw7YS5mb3JtZGF0YS5maXJzdE5hbWU9bnVsbCE9KGw9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZmlyc3RuYW1lIikpP2w6YS5mb3JtZGF0YS5maXJzdE5hbWU7bGV0IHA7YS5mb3JtZGF0YS5sYXN0TmFtZT1udWxsIT0ocD1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJsYXN0bmFtZSIpKT9wOmEuZm9ybWRhdGEubGFzdE5hbWU7bGV0IHE7YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M9bnVsbCE9KHE9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgiZW1haWwiKSk\/cTphLmZvcm1kYXRhLmVtYWlsQWRkcmVzcztsZXQgdDthLmZvcm1kYXRhLnBob25lTnVtYmVyPW51bGwhPSh0PWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoInBob25lIikpPwp0OmEuZm9ybWRhdGEucGhvbmVOdW1iZXI7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWwoYS5mb3JtZGF0YS5waG9uZU51bWJlcil9MD09YS5mb3JtZGF0YS5hZGRyZXNzX3llYXJzJiYwPT1hLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzJiYoYS5mb3JtZGF0YS5hZGRyZXNzPSIiKTtnLnN0ZXAmJihhLnN0ZXA9TnVtYmVyKGcuc3RlcCksYS5uZXh0U3RlcD1hLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrZy5zdGVwXSk7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcC5zaG93Iik7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLnNob3coKTtrLnNldEN1cnJlbnRNYWtlTW9kZWxZZWFyKCk7ay5vblNob3dGdW5jdGlvblRvUnVuKCk7YS5maXJzdFN0ZXA9ITF9LGNvbXBsZXRlOmZ1bmN0aW9uKGcpe2lmKCFnLmRhdGEpcmV0dXJuIGsudXNlcklkKC0xKSxsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiKSwKUCgpfX0pO2Vsc2V7YS5wdXNoUGFydGlhbD0hMTsiIiE9ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWUmJiJ1bmRlZmluZWQiIT1lbWFpbEhhbmRsZXIudXNlckZpcnN0TmFtZSYmKGEuZm9ybWRhdGEuZmlyc3ROYW1lPWVtYWlsSGFuZGxlci51c2VyRmlyc3ROYW1lKTsiIiE9ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZSYmInVuZGVmaW5lZCIhPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUmJihhLmZvcm1kYXRhLmxhc3ROYW1lPWVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWUpOyIiIT1lbWFpbEhhbmRsZXIudXNlckVtYWlsJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJFbWFpbCYmKGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzPWVtYWlsSGFuZGxlci51c2VyRW1haWwpOyIiIT1lbWFpbEhhbmRsZXIudXNlclBob25lJiYidW5kZWZpbmVkIiE9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSYmKGEuZm9ybWRhdGEucGhvbmVOdW1iZXI9ZW1haWxIYW5kbGVyLnVzZXJQaG9uZSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsCmIpLmZpbmQoJ2lucHV0W25hbWU9InBob25lTnVtYmVyIl0nKS52YWwoYS5mb3JtZGF0YS5waG9uZU51bWJlcikpO2lmKCJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2Upe3ZhciBkO2EuZm9ybWRhdGEuZmlyc3ROYW1lPW51bGwhPShkPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImZpcnN0bmFtZSIpKT9kOmEuZm9ybWRhdGEuZmlyc3ROYW1lO3ZhciBlO2EuZm9ybWRhdGEubGFzdE5hbWU9bnVsbCE9KGU9ay5nZXRDbGllbnRTdG9yYWdlRGF0YSgibGFzdG5hbWUiKSk\/ZTphLmZvcm1kYXRhLmxhc3ROYW1lO3ZhciBmO2EuZm9ybWRhdGEuZW1haWxBZGRyZXNzPW51bGwhPShmPWsuZ2V0Q2xpZW50U3RvcmFnZURhdGEoImVtYWlsIikpP2Y6YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M7bGV0IGc7YS5mb3JtZGF0YS5waG9uZU51bWJlcj1udWxsIT0oZz1rLmdldENsaWVudFN0b3JhZ2VEYXRhKCJwaG9uZSIpKT9nOmEuZm9ybWRhdGEucGhvbmVOdW1iZXI7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLApiKS5maW5kKCdpbnB1dFtuYW1lPSJwaG9uZU51bWJlciJdJykudmFsKGEuZm9ybWRhdGEucGhvbmVOdW1iZXIpfWsuaGFzRGVhbGVyU2VsZWN0VmFsdWVzKCkmJmsuc2V0RGVhbGVyU2VsZWN0RW1haWwoKTskKCcjbWluaWZvcm0gW25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpLmxlbmd0aCYmIiIhPSQoJyNtaW5pZm9ybSBbbmFtZT0ibXVsdGlfZGVhbGVyX3NlbmRUbyJdJykudmFsKCkmJihhLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG89JCgnI21pbmlmb3JtIFtuYW1lPSJtdWx0aV9kZWFsZXJfc2VuZFRvIl0nKS52YWwoKSxhLmZvcm1kYXRhLm11bHRpRnJvbU1pbmk9ITApOyQoIiNtYXhfYnVkZ2V0IikubGVuZ3RoJiYoYS5wdXNoUGFydGlhbD0hMCxkPSIiLGU9cGFyc2VGbG9hdCgkKCIjbWF4X2J1ZGdldCIpLnZhbCgpLnJlcGxhY2UoL1teMC05Li1dKy9nLCIiKSksZD1rLmdldEN1cnJlbnRCdWRnZXQoZSksIjEiPT11JiZpc05hTihlKSYmKGQ9IiIpLGEuZm9ybWRhdGEuYnVkZ2V0PQpkKTskKCIudHJhY2stcHJvZ3Jlc3MiKS5sZW5ndGgmJihsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgidHJhZGVpbl9zdWJtaXRfZGF0YSIpJiYoYS5mb3JtZGF0YS5jdXJyZW50bHlEcml2aW5nPSJGSU5BTkNFX0ZPUk1fQUxSRUFEWV9EUklWSU5HX1RSQURFIiksZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgicmV0YWlsX3RyYWNrX2RhdGEiKSwoZD1KU09OLnBhcnNlKGQpKSYmZC52YWx1ZSYmKGQ9SlNPTi5wYXJzZShkLnZhbHVlKSkmJmQucGF5bWVudCYmZC5wYXltZW50LnBheW1lbnRWYWx1ZSYmKGU9ZC5wYXltZW50LnBheW1lbnRWYWx1ZSxkPWVbMF0sZT1lWzNdLGY9IiIsZD0ibW9udGhseSI9PWU\/cGFyc2VGbG9hdChkKToid2Vla2x5Ij09ZT81MipwYXJzZUZsb2F0KGQpLzEyOiJzZW1pbW9udGhseSI9PWU\/MjQqcGFyc2VGbG9hdChkKS8xMjoyNipwYXJzZUZsb2F0KGQpLzEyLGY9ay5nZXRDdXJyZW50QnVkZ2V0KGQpLGEuZm9ybWRhdGEuYnVkZ2V0PWYpKTtkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbbmFtZT0iYnVkZ2V0Il0rbGFiZWwnKS5mb3JFYWNoKGc9Pgp7Zy5pbm5lckhUTUw9Zy5pbm5lckhUTUwucmVwbGFjZSgvKFwkXGR7Myw0fXxcZHszLDR9XCQpL2csbD0+RDJDVXRpbHMuRm9ybWF0LnRvUHJpY2UobC5yZXBsYWNlKC9cJC9nLCIiKSkpfSk7JChkb2N1bWVudCkudHJpZ2dlcigiY3JlZGl0Lm11bHRpc3RlcC5zaG93Iik7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLnNob3coKTswPT1hLnN0ZXAmJigkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biIsYikuaGlkZSgpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5vZmYoImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYikub24oImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2EubmV4dCgpfSwxRTMpfSkpO2suc2V0Q3VycmVudE1ha2VNb2RlbFllYXIoKX19dmFyIHo9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX0NIRUNLIikudmFsKCksCks9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX1NFTEVDVCIpLnZhbCgpLEU9JCgiI0FETUlOX01BTkRBVE9SWV9DUkVESVRfQlVSRUFVX0NIRUNLIikudmFsKCksQz0kKCIjQVNLX0ZPUl9TSU5fQ0hFQ0siKS52YWwoKSxPPSExLHU9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzU2Vjb25kQ2hhbmNlIixiKS52YWwoKSx4PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9pc0luc3RhbnQiLGIpLnZhbCgpLEY9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2lzVndEUiIsYikudmFsKCksTD0xLE09WzEsMiwzLDYsNywxMywxNCwxNV0sRz1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbXBsb3ltZW50U3RhdHVzIn1dLFI9W10sUz1be2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJmaXJzdE5hbWUifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6Imxhc3ROYW1lIn0se2Z1bmM6InZhbGlkYXRlTmFtZSIsdmFsdWU6IiJ9XSxUPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsCnZhbHVlOiJhZGRyZXNzIn1dLFU9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToicmVudE9yT3duIn0se2Z1bmM6InZhbGlkYXRlSXNOdW1iZXIiLHZhbHVlOiJtb250aGx5UGF5bWVudCJ9LHtmdW5jOiJ2YWxpZGF0ZU1vbnRobHlQYXltZW50Iix2YWx1ZToibW9udGhseVBheW1lbnQifV0sVj1bXSxCPXtzdGVwMDoxLHN0ZXAxOjIsc3RlcDI6MyxzdGVwMzoiMCI9PXo\/NDoiYmVmb3JlIj09Sz8xOTo0LHN0ZXA0OiIwIj09ej81OiJiZWZvcmUiPT1LPzU6MTksc3RlcDU6NixzdGVwNjo3LHN0ZXA3Ojgsc3RlcDg6OSxzdGVwOToxMSxzdGVwMTA6MTEsc3RlcDExOjEyLHN0ZXAxMjoxMyxzdGVwMTM6MTYsc3RlcDE0OjE2LHN0ZXAxNToxNixzdGVwMTY6MTcsc3RlcDE3OiIwIj09ej8xOTowPT1FPyIwIj09Qz8iMSI9PXU\/MjM6ImRvbmUiOjIyOjIwLHN0ZXAxODoiMCI9PXo\/MD09RT8iMCI9PUM\/IjEiPT11PzIzOiJkb25lIjoyMjoyMDoiYmVmb3JlIj09Sz80OjUsc3RlcDE5OjE4LApzdGVwMjA6IjAiPT1DPyIxIj09dT8yMzoiZG9uZSI6MjIsc3RlcDIyOiIxIj09dT8yMzoiZG9uZSIsc3RlcDIzOiJkb25lIn07b3B0aW9uYWxTdGVwcz1bXTsiMSI9PXUmJihvcHRpb25hbFN0ZXBzPVsyM10sIjAiPT1DJiYob3B0aW9uYWxTdGVwcz1bMjIsMjNdKSxNPVsxLDIsMyw2LDcsMTQsMTVdLEc9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudFN0YXR1cyJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudEFkZGVkSW5mbyJ9LHtmdW5jOiJ2YWxpZGF0ZUVtcGxveWVySW5mbyIsdmFsdWU6IiJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5RW1wbG95ZXJTdGF0dXNUaW1lIix2YWx1ZToiIn1dLEI9e3N0ZXAwOjEsc3RlcDE6MixzdGVwMjozLHN0ZXAzOjE4LHN0ZXA0OjE5LHN0ZXA1OjYsc3RlcDY6NyxzdGVwNzo4LHN0ZXA4Ojksc3RlcDk6MjIsc3RlcDEwOjExLHN0ZXAxMToxMixzdGVwMTI6MTMsc3RlcDEzOjE2LHN0ZXAxNDoxNiwKc3RlcDE1OjE2LHN0ZXAxNjoyMyxzdGVwMTg6NSxzdGVwMTk6MTEsc3RlcDIwOiJkb25lIixzdGVwMjI6NCxzdGVwMjM6MD09RT8iZG9uZSI6MjB9KTsiMSI9PXgmJihvcHRpb25hbFN0ZXBzPVsyMl0sTD0yNCxNPVsxLDIsMyw2LDcsMTQsMTVdLEc9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZW1wbG95bWVudFN0YXR1cyJ9LHtmdW5jOiJ2YWxpZGF0ZUVtcGxveW1lbnRBZGRlZEluZm8iLHZhbHVlOiJlbXBsb3ltZW50QWRkZWRJbmZvIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvIix2YWx1ZToiIn0se2Z1bmM6InZhbGlkYXRlTm90RW1wdHlFbXBsb3llclN0YXR1c1RpbWUiLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVBZGRyZXNzRW1wbG95ZXIiLHZhbHVlOiJhZGRyZXNzRW1wbG95ZXIifV0sUj1be2Z1bmM6InZhbGlkYXRlRW1wbG95bWVudEFkZGVkSW5mbyIsdmFsdWU6ImVtcGxveW1lbnRBZGRlZEluZm8yIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvMiIsCnZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZTIiLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVBZGRyZXNzRW1wbG95ZXIyIix2YWx1ZToiYWRkcmVzc0VtcGxveWVyMiJ9XSxTPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImZpcnN0TmFtZSJ9LHtmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToibGFzdE5hbWUifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6InRpdGxlIn0se2Z1bmM6InZhbGlkYXRlTmFtZSIsdmFsdWU6IiJ9XSxUPVt7ZnVuYzoidmFsaWRhdGVBZGRyZXNzIix2YWx1ZToiYWRkcmVzcyJ9XSxCPXtzdGVwMDoyNCxzdGVwMjQ6MjUsc3RlcDI1OjQsc3RlcDQ6MTksc3RlcDE5OjE4LHN0ZXAxODo1LHN0ZXA1Ojgsc3RlcDg6OSxzdGVwOToxMSxzdGVwMTE6MTIsc3RlcDEyOjEzLHN0ZXAyNzoyOCxzdGVwMjg6MTMsc3RlcDEzOjE2LHN0ZXAxNDoxNixzdGVwMTU6MTYsc3RlcDE2OjE3LHN0ZXAxNzoyMiwKc3RlcDI5OjIyLHN0ZXAyMjowPT1FPzI2OjIwLHN0ZXAyMDoyNixzdGVwMjY6ImRvbmUifSwiMSI9PUYmJihHPVt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6ImVtcGxveW1lbnRTdGF0dXMifSx7ZnVuYzoidmFsaWRhdGVFbXBsb3ltZW50QWRkZWRJbmZvVlciLHZhbHVlOiJlbXBsb3ltZW50QWRkZWRJbmZvIn0se2Z1bmM6InZhbGlkYXRlRW1wbG95ZXJJbmZvVlciLHZhbHVlOiIifSx7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZVZXIix2YWx1ZToiIn0se2Z1bmM6InZhbGlkYXRlQWRkcmVzc0VtcGxveWVyVlciLHZhbHVlOiJhZGRyZXNzRW1wbG95ZXIifV0sQi5zdGVwMTY9MjIsQi5zdGVwMjI9MzAsQi5zdGVwMzA9ImRvbmUiLFU9W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToicmVudE9yT3duIn0se2Z1bmM6InZhbGlkYXRlSXNOdW1iZXIiLHZhbHVlOiJtb250aGx5UGF5bWVudCJ9LHtmdW5jOiJ2YWxpZGF0ZU1vbnRobHlQYXltZW50IiwKdmFsdWU6Im1vbnRobHlQYXltZW50In0se2Z1bmM6InZhbGlkYXRlTW9udGhseURpc2J1cnNlbWVudFZXIix2YWx1ZToibW9udGhseURpc2J1cnNlbWVudCJ9LHtmdW5jOiJ2YWxpZGF0ZU1vbnRobHlQYXltZW50Iix2YWx1ZToibW9udGhseURpc2J1cnNlbWVudCJ9XSxWPVt7ZnVuYzoiaW5pdERpc2J1cnNtZW50VlcifV0pKTt2YXIgYT1uZXcgVnVlKHtlbDokKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIsYilbMF0sZGF0YTpmdW5jdGlvbigpe3JldHVybntjb250ZXh0OmIsYWpheFByb2Nlc3M6ITEsdXNlcklkOiIiLGNvbnZlcnNpb25TdWJtaXR0ZWQ6ITEsc2hvd0ljb246ITAscHVzaFBhcnRpYWw6ITEsY3VycmVudERlcHQ6Ik5FVyIsaW5pdFZlaGljbGVTZWxlY3Rpb25GaXJzdDohMCxzdGVwOjAsbmV4dFN0ZXA6TCxmaXJzdFN0ZXA6ITAsY2FsY3VsYXRvckZ1bmN0aW9uczoiIixjcmVkaXREZWNpc2lvbkhUTUw6IiIsZm9ybWRhdGE6e3ZlaGljbGVUeXBlOiIiLGJ1ZGdldDoiIiwKY3VycmVudGx5RHJpdmluZzoiIixlbWFpbEFkZHJlc3M6IiIsY3JlZGl0UmF0aW5nOiIiLGRvd25PcHRpb25zOiIiLGJpcnRoZGF0ZVllYXI6IiIsYmlydGhkYXRlTW9udGg6IiIsYmlydGhkYXRlRGF5OiIiLGFkZHJlc3M6IiIsc3BsaXRBZGRyZXNzOltdLGFkZHJlc3NfeWVhcnM6MCxhZGRyZXNzX21vbnRoczowLGFkZHJlc3MyOiIiLHNwbGl0QWRkcmVzczI6W10sYWRkcmVzczJfeWVhcnM6MCxhZGRyZXNzMl9tb250aHM6MCxhZGRyZXNzRW1wbG95ZXI6IiIsc3BsaXRBZGRyZXNzRW1wbG95ZXI6W10scmVudE9yT3duOiIiLG1vbnRobHlQYXltZW50OjAsbW9udGhseURpc2J1cnNlbWVudDowLGVtcGxveW1lbnRTdGF0dXM6IiIsZW1wbG95bWVudEFkZGVkSW5mbzoiIixlbXBsb3llck5hbWU6IiIsZW1wbG95ZXJQaG9uZToiIixlbXBsb3ltZW50U3RhdHVzWWVhcjowLGVtcGxveW1lbnRTdGF0dXNNb250aDowLGVtcGxveW1lbnRBZGRlZEluZm8yOiIiLGVtcGxveWVyTmFtZTI6IiIsCmVtcGxveWVyUGhvbmUyOiIiLGVtcGxveW1lbnRTdGF0dXNZZWFyMjowLGVtcGxveW1lbnRTdGF0dXNNb250aDI6MCxhZGRyZXNzRW1wbG95ZXIyOiIiLHNwbGl0QWRkcmVzc0VtcGxveWVyMjpbXSx3b3JraW5nV2hpbGVJblNjaG9vbDoiIixvdGhlckVtcGxveW1lbnRTdGF0dXM6IiIsbW9udGhseUluY29tZTowLG1vbnRobHlJbmNvbWVfeWVhcnM6MCxtb250aGx5SW5jb21lX21vbnRoczowLHRpdGxlOiIiLGZpcnN0TmFtZToiIixsYXN0TmFtZToiIixwaG9uZU51bWJlcjoiIixjdXJyZW50TWFrZToiIixjdXJyZW50TW9kZWw6IiIsY3VycmVudE1vZGVsVGV4dDoiIixjdXJyZW50WWVhcjoiIixjdXJyZW50U3RvY2tOdW1iZXI6IiIsY3VycmVudE1pbGVhZ2U6MTAsY3VycmVudFRyaW06IiIsY3VycmVudFN0eWxlaWQ6IiIsY3VycmVudENhcklkOiIiLHBheW1lbnRUeXBlOiIiLHBheW1lbnRUeXBlUmVhbDoiIixwYXltZW50VGVybToiIixwYXltZW50UmF0ZVR5cGU6IiIscGF5bWVudFZhbHVlOiIiLApiYXNlcGF5bWVudDoiIixwYXltZW50VG90YWxJbmNlbnRpdmU6MCxwYXltZW50VG90YWxGZWU6MCxwYXltZW50R1NUOjAscGF5bWVudEhTVDowLHBheW1lbnRQU1Q6MCxwYXltZW50RG93blBheW1lbnQ6MCxwYXltZW50S21BbGxvd2FuY2U6MCxwYXltZW50SW50ZXJ2YWw6IiIscGF5bWVudFJhdGU6IiIscGF5bWVudFJlc2lkdWFsVmFsdWU6MCxub1BheW1lbnQ6ITEsbXVsdGlfZGVhbGVyX3NlbmRUbzoiIixjcmVkaXRCdXJlYXVDcmVkaXQ6Ik5PIixTSU46IiIsYWRkZWRJbmZvOiIiLHZlaGljbGVTYWxlc0RlcHQ6Im90aGVyIix2ZWhpY2xlUHJpY2U6IiIsdmVoaWNsZVRyYW5zbWlzc2lvbjoiIix2ZWhpY2xlVHJpbToiIix2ZWhpY2xlQ29sb3I6IiIsaW5pdGlhbFRpdGxlU2hvdzohMCxtdWx0aUZyb21NaW5pOiExLHRyYWRlSW5NYWtlOiIiLHRyYWRlSW5Nb2RlbDoiIix0cmFkZUluWWVhcjoiIix0cmFkZUluVHJpbToiIix0cmFkZUluVmFsdWU6IiIsdmVoaWNsZUluaXRpYWxQcmljZToiIiwKdmVoaWNsZUZpbmFsUHJpY2U6IiIscGF5bWVudEZlZXNMaXN0OltdLHBheW1lbnRJbmNlbnRpdmVzTGlzdDpbXSxjcmVkaXRBcHBsaWNhdGlvbklkOiIiLGNvbnNlbnRBY2NvdW50TW9uaXRvcmluZzoiIixjb25zZW50Q3JlZGl0QXNzZXNzbWVudDoiIixjb25zZW50UGlwZWRhOiIiLGNvbnNlbnRDYXNsOiIiLGNvbnNlbnRWVzoiIn0sbmV4dFN0ZXBEZWZhdWx0VmFsdWVzOkIsdmFsaWRhdGlvblJ1bGVzOntzdGVwMTpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJ2ZWhpY2xlVHlwZSJ9XSxzdGVwMjpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJidWRnZXQifV0sc3RlcDM6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiY3VycmVudGx5RHJpdmluZyJ9XSxzdGVwNDpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJlbWFpbEFkZHJlc3MifSx7ZnVuYzoidmFsaWRhdGVFbWFpbCIsdmFsdWU6ImVtYWlsQWRkcmVzcyJ9XSxzdGVwNTpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLAp2YWx1ZToibXVsdGlfZGVhbGVyX3NlbmRUbyJ9XSxzdGVwNjpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHkiLHZhbHVlOiJjcmVkaXRSYXRpbmcifV0sc3RlcDc6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToiZG93bk9wdGlvbnMifV0sc3RlcDg6W3tmdW5jOiJ2YWxpZGF0ZUJpcnRoZGF0ZSIsdmFsdWU6IiJ9XSxzdGVwOTpULHN0ZXAxMTpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHlBZGRyZXNzVGltZSIsdmFsdWU6IiJ9XSxzdGVwMTI6VSxzdGVwMTM6RyxzdGVwMTQ6W3tmdW5jOiJ2YWxpZGF0ZU5vdEVtcHR5Iix2YWx1ZToid29ya2luZ1doaWxlSW5TY2hvb2wifV0sc3RlcDE1Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eSIsdmFsdWU6Im90aGVyRW1wbG95bWVudFN0YXR1cyJ9XSxzdGVwMTY6W3tmdW5jOiJ2YWxpZGF0ZU1vcmVUaGFuWmVybyIsdmFsdWU6Im1vbnRobHlJbmNvbWUifSx7ZnVuYzoidmFsaWRhdGVNb250aGx5SW5jb21lIix2YWx1ZToibW9udGhseUluY29tZSJ9XSwKc3RlcDE3Olt7ZnVuYzoidmFsaWRhdGVOb3RFbXB0eU1vbnRobHlJbmNvbWVUaW1lIix2YWx1ZToiIn1dLHN0ZXAxODpTLHN0ZXAxOTpbe2Z1bmM6InZhbGlkYXRlUGhvbmVOdW1iZXIiLHZhbHVlOiJwaG9uZU51bWJlciJ9XSxzdGVwMjA6W3tmdW5jOiJ2YWxpZGF0ZUNoZWNrZWRDcmVkaXRCdXJlYXUiLHZhbHVlOiJjcmVkaXRCdXJlYXVDcmVkaXQifV0sc3RlcDIyOlt7ZnVuYzoidmFsaWRhdGVTSU4iLHZhbHVlOiJTSU4ifV0sc3RlcDI0Olt7ZnVuYzoidmFsaWRhdGVWZWhpY2xlIix2YWx1ZToiIn1dLHN0ZXAyNTpbe2Z1bmM6InZhbGlkYXRlUGF5bWVudCIsdmFsdWU6IiJ9XSxzdGVwMjY6W3tmdW5jOiJ2YWxpZGF0ZUNvbnNlbnQiLHZhbHVlOiIifV0sc3RlcDI3Olt7ZnVuYzoidmFsaWRhdGVBZGRyZXNzMiIsdmFsdWU6ImFkZHJlc3MyIn1dLHN0ZXAyODpbe2Z1bmM6InZhbGlkYXRlTm90RW1wdHlBZGRyZXNzMlRpbWUiLHZhbHVlOiIifV0sc3RlcDI5OlIsc3RlcDMwOlt7ZnVuYzoidmFsaWRhdGVDb25zZW50cyIsCnZhbHVlOiIifV19LG9uU2hvd0Z1bmN0aW9uOntzdGVwMjpbe2Z1bmM6InN0ZXAyVmlld2VkVHJhY2sifV0sc3RlcDQ6W3tmdW5jOiJlbWFpbFN0ZXBWaWV3ZWRUcmFjayJ9LHtmdW5jOiJpbml0RW1haWwifV0sc3RlcDY6W10sc3RlcDc6W10sc3RlcDg6W3tmdW5jOiJpbml0QmlydGhkYXRlQ2hhbmdlIn1dLHN0ZXA5Olt7ZnVuYzoiaW5pdEdvb2dsZUF1dG9jb21wbGV0ZSJ9XSxzdGVwMjc6W3tmdW5jOiJpbml0R29vZ2xlQXV0b2NvbXBsZXRlMiJ9XSxzdGVwMTM6W3tmdW5jOiJpbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIifV0sc3RlcDU6W3tmdW5jOiJpbml0U2VsZWN0TXVsdGlEZWFsZXIifV0sc3RlcDE5Olt7ZnVuYzoicGhvbmVTdGVwVmlld2VkVHJhY2sifSx7ZnVuYzoiaW5pdFBob25lIn1dLHN0ZXAyNDpbe2Z1bmM6ImluaXRWZWhpY2xlU2VsZWN0aW9uIn1dLHN0ZXAyNTpbe2Z1bmM6ImluaXRDYWxjdWxhdG9yIn1dLHN0ZXAyNjpbe2Z1bmM6ImluaXRDb25zZW50In1dLApzdGVwMjk6W3tmdW5jOiJpbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIyIn1dLHN0ZXAzMDpbe2Z1bmM6ImluaXRWV0NvbnNlbnQifV0sc3RlcDEyOlZ9LG5vQ29uZmlybUJ1dHRvblN0ZXBzOk0sc2hvd0Vycm9yOiEwLHNlY29uZENoYW5jZVN0ZXBUb1NraXA6WzEsMiwzLDYsN10sb3B0aW9uYWxTdGVwOm9wdGlvbmFsU3RlcHN9fSxtZXRob2RzOntuZXh0OmZ1bmN0aW9uKGMpe2N8fCh0aGlzLnNob3dFcnJvcj0hMCx0aGlzLmZvcm1kYXRhLmluaXRpYWxUaXRsZVNob3c9ITEsdGhpcy5wdXNoUGFydGlhbD0hMCk7aWYodGhpcy52YWxpZGF0aW9uUnVsZXMuaGFzT3duUHJvcGVydHkoInN0ZXAiK3RoaXMuc3RlcCkpZm9yKHZhciBkPTA7ZDx0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXS5sZW5ndGg7ZCsrKWlmKGtbdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bZF0uZnVuY10odGhpcy5mb3JtZGF0YVt0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrCnRoaXMuc3RlcF1bZF0udmFsdWVdKSkkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIiksJCgnW25hbWU9IicrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bZF0udmFsdWUrJyJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpO2Vsc2V7dGhpcy5zaG93RXJyb3ImJigkKCIjIit0aGlzLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrdGhpcy5zdGVwXVtkXS52YWx1ZSsiRXJyb3JNc2ciLGIpLmxlbmd0aCYmJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiIyIrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bZF0udmFsdWUrIkVycm9yTXNnIixiKS52YWwoKSksJCgnW25hbWU9IicrdGhpcy52YWxpZGF0aW9uUnVsZXNbInN0ZXAiK3RoaXMuc3RlcF1bZF0udmFsdWUrJyJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsInZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKSIpKTtyZXR1cm59Zm9yKHRoaXMuc2hvd0Vycm9yPQohMTtrLmlzTmV4dFN0ZXBGaWxsZWQoKTspO2lmKDIxIT10aGlzLnN0ZXApezQ9PXRoaXMuc3RlcCYmIiIhPWEuZm9ybWRhdGEuZW1haWxBZGRyZXNzJiZrLmVtYWlsUHJvdmlkZWRUcmFjaygpOzE5PT10aGlzLnN0ZXAmJiIiIT1hLmZvcm1kYXRhLnBob25lTnVtYmVyJiZrLnBob25lUHJvdmlkZWRUcmFjaygpO2lmKDk9PXRoaXMuc3RlcCl0cnl7dmFyIGU9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbbmFtZT0iYWRkcmVzcyJdJyxiKSxmPWUuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIiksZz0idW5kZWZpbmVkIiE9PXR5cGVvZiBmLnBvc3RhbC5sb25nX25hbWU\/Zi5wb3N0YWwubG9uZ19uYW1lOmUudmFsKCk7ZW1haWxIYW5kbGVyLnVzZXJQb3N0YWw9ZzsidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nJiYidW5kZWZpbmVkIiE9dHlwZW9mIGFjdGl2ZVVzZXJQcm9maWxlTW5nLmxvZ1BhZ2VWaWV3RXZlbnQmJiIiIT1nJiYoInVuZGVmaW5lZCIhPT0KdHlwZW9mIGRlYnVnJiZkZWJ1ZygiTG9nIEV2ZW50IixnLCJVc2VyRm9ybS5wb3N0YWwiKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGcsIlVzZXJGb3JtLnBvc3RhbCIpKX1jYXRjaChsKXtjb25zb2xlLmxvZyhsKX00PD10aGlzLnN0ZXAmJiF0aGlzLmNvbnZlcnNpb25TdWJtaXR0ZWQmJih0aGlzLmNvbnZlcnNpb25TdWJtaXR0ZWQ9ITAsZD0kKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyX2NvbmZpcm0iKSwwPT09ZC5sZW5ndGgmJihkPSQoIiNnZW5lcmljX2Zvcm1fY29uZmlybSIpKSxkLmZpbmQoJ2lucHV0W25hbWU9ImxlYWRUeXBlIl0nKS52YWwoJCh0aGlzLmNvbnRleHQpLmZpbmQoIi5lbWFpbFN1YmplY3QiKS50ZXh0KCkucmVwbGFjZSgvW1xuXHJdL2csIiAiKSksZC5maW5kKCdpbnB1dFtuYW1lPSJsZWFkX2RlcGFydG1lbnQiXScpLnZhbCgiRklOQU5DRSIpLGQuZmluZCgnaW5wdXRbbmFtZT0icGFnZUlEIl0nKS52YWwoJCgiI1BBR0VJRCIpLnZhbCgpKSwKZC5maW5kKCdpbnB1dFtuYW1lPSJjdXJyZW50VVJMIl0nKS52YWwod2luZG93LmxvY2F0aW9uLmhyZWYpLGQuZmluZCgnaW5wdXRbbmFtZT0iaXNGdWxsV2lkdGgiXScpLnZhbCgkKCIjaXNGdWxsV2lkdGhQYWdlTmV3VkRQIikudmFsKCkpLGQuZmluZCgnaW5wdXRbbmFtZT0iZGVhbGVyTmFtZSJdJykudmFsKCQoIiNuZXdWRFBEZWFsZXJOYW1lIikudmFsKCkpLGQuZmluZCgnaW5wdXRbbmFtZT0iYnV0dG9uUG9zaXRpb24iXScpLnZhbCgkKCIjbmV3VkRQQnV0dG9uUG9zaXRpb24iKS52YWwoKSksZC5maW5kKCdpbnB1dFtuYW1lPSJpc01vYmlsZU5ld1ZEUCJdJykudmFsKCQoIiNpc21vYmlsZSIpLnZhbCgpKSxkLnRyaWdnZXIoInN1Ym1pdCIpLCJmdW5jdGlvbiI9PT10eXBlb2Ygd2luZG93LnRyYWNrQ29udmVyc2lvbiYmd2luZG93LnRyYWNrQ29udmVyc2lvbigpKTswIT10aGlzLnN0ZXAmJih0aGlzLnNob3dJY29uPSExKTt0aGlzLnN0ZXA9dGhpcy5uZXh0U3RlcDtsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGFzdF9zdGVwIik7CmN8fChhLmZpcnN0U3RlcD9hLmZpcnN0U3RlcD0hMTprLnN0ZXBUcmlnZ2VyKCEwKSk7KCIiIT10aGlzLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyYmKCIwIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX0NIRUNLIikudmFsKCl8fCJhZnRlciI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9QSE9ORV9QT1NJVElPTl9TRUxFQ1QiKS52YWwoKSl8fCIiIT10aGlzLmZvcm1kYXRhLnBob25lTnVtYmVyJiYiMSI9PSQoIiNGSU5BTkNFX01VTFRJU1RFUF9QSE9ORV9QT1NJVElPTl9DSEVDSyIpLnZhbCgpJiYiYmVmb3JlIj09JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX1BIT05FX1BPU0lUSU9OX1NFTEVDVCIpLnZhbCgpKSYmay5tdWx0aURlYWxlckZvcm1TdGF0dXMoKSYmdGhpcy5wdXNoUGFydGlhbCYmKCIxIj09JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI09QRU5FREZST01JTUFHRVBPUFVQIixiKS52YWwoKT8kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjT1BFTkVERlJPTUlNQUdFUE9QVVAiLApiKS52YWwoIjAiKTprLnB1c2hEYXRhVG9TZXJ2ZXIoKSk7ay5zZXRDbGllbnRTdG9yYWdlRGF0YVZhbHVlcygpO3RoaXMubmV4dFN0ZXA9dGhpcy5uZXh0U3RlcERlZmF1bHRWYWx1ZXNbInN0ZXAiK3RoaXMuc3RlcF07MDw9dGhpcy5vcHRpb25hbFN0ZXAuaW5kZXhPZihhLnN0ZXApPyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKTokKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24iLGIpLnJlbW92ZUNsYXNzKCJpc1ZhbGlkIik7ay5vblNob3dGdW5jdGlvblRvUnVuKCk7MDw9dGhpcy5ub0NvbmZpcm1CdXR0b25TdGVwcy5pbmRleE9mKHRoaXMuc3RlcCk\/KCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIixiKS5oaWRlKCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLm9mZigiY2xpY2subm9CdXR0b24iLCJpbnB1dFt0eXBlPXJhZGlvXSIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIiwKYikub24oImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iLGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe2EubmV4dCgpfSwxRTMpfSkpOigkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biIsYikuc2hvdygpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5vZmYoImNsaWNrLm5vQnV0dG9uIiwiaW5wdXRbdHlwZT1yYWRpb10iKSk7ImRvbmUiPT10aGlzLnN0ZXAmJigiMSI9PXg\/IjEiPT1GP2suY3JlZGl0QXBwU3VtaXNzaW9uKCk6ay5yb3V0ZU9uZUNhbGwoKTprLnNlbmRFbWFpbCgpKX19LGdldExpbmVhcnN0ZXA6ZnVuY3Rpb24oYyl7dmFyIGQ9bG9jYWxTdG9yYWdlLmdldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwLmxpbmVhcl9zdGVwIik7ZD1wYXJzZUludChkP2Q6MCk7aWYoMD09ZHx8aXNOYU4oZCkpZD0xO2MmJihkKz0xLGxvY2FsU3RvcmFnZS5zZXRJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIsZCkpO3JldHVybiBkfX19KSwKdz0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT8iZW4iOiJmciIsSj1lbWFpbEhhbmRsZXIuZ2V0SnNvbk9iamVjdCgpO3o9d2luZG93LmxvY2F0aW9uO3ZhciBRPXoucHJvdG9jb2wrIi8vIit6Lmhvc3Qsaz17aXNOZXh0U3RlcEZpbGxlZDpmdW5jdGlvbigpe2lmKCIxIj09eCYmIjEiPT1GJiZbMTksNCwzMF0uaW5jbHVkZXMoYS5uZXh0U3RlcCkpcmV0dXJuITE7aWYoIjEiPT11JiYwPD1hLnNlY29uZENoYW5jZVN0ZXBUb1NraXAuaW5kZXhPZihhLm5leHRTdGVwKSlyZXR1cm4gYS5uZXh0U3RlcD1hLm5leHRTdGVwRGVmYXVsdFZhbHVlc1sic3RlcCIrYS5uZXh0U3RlcF0sITA7aWYoKCIxIj09dXx8IjEiPT14KSYmMDw9YS5vcHRpb25hbFN0ZXAuaW5kZXhPZihhLm5leHRTdGVwKSlyZXR1cm4hMTtpZihhLnZhbGlkYXRpb25SdWxlcy5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrYS5uZXh0U3RlcCkpe2Zvcih2YXIgYz0wO2M8YS52YWxpZGF0aW9uUnVsZXNbInN0ZXAiKwphLm5leHRTdGVwXS5sZW5ndGg7YysrKWlmKCFrW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLm5leHRTdGVwXVtjXS5mdW5jXShhLmZvcm1kYXRhW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLm5leHRTdGVwXVtjXS52YWx1ZV0pKXJldHVybiExO2EubmV4dFN0ZXA9YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXNbInN0ZXAiK2EubmV4dFN0ZXBdO3JldHVybiEwfX0sdmFsaWRhdGVOb3RFbXB0eTpmdW5jdGlvbihjKXtyZXR1cm4iIiE9YyYmInVuZGVmaW5lZCIhPT10eXBlb2YgY30sdmFsaWRhdGVOYW1lOmZ1bmN0aW9uKCl7dmFyIGM9L15bQS16XHUwMEJGLVx1MUZGRlx1MkMwMC1cdUQ3RkYgJy1dKyQvO2xldCBkPWMudGVzdChhLmZvcm1kYXRhLmZpcnN0TmFtZSk7Yz1jLnRlc3QoYS5mb3JtZGF0YS5sYXN0TmFtZSk7ZCYmYz8oJCgnW25hbWU9ImZpcnN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJmaXJzdE5hbWUiXScsYikuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIiIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOihkfHwoJCgnW25hbWU9ImZpcnN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZmlyc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpKSxjfHwoJCgnW25hbWU9Imxhc3ROYW1lIl0nLGIpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJsYXN0TmFtZSJdJyxiKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2ZpcnN0TmFtZUVycm9yTXNnIikudmFsKCkpKTtyZXR1cm4gZCYmY30sdmFsaWRhdGVJc051bWJlcjpmdW5jdGlvbihjKXtyZXR1cm4gMDw9CmN9LHZhbGlkYXRlTW9udGhseUluY29tZTpmdW5jdGlvbihjKXtyZXR1cm4gOTk5OTk5Pj1jfSx2YWxpZGF0ZU1vbnRobHlQYXltZW50OmZ1bmN0aW9uKGMpe3JldHVybiA5OTk5OT49Y30sdmFsaWRhdGVBZGRyZXNzOmZ1bmN0aW9uKGMpe3JldHVybiAwPGEuZm9ybWRhdGEuYWRkcmVzc195ZWFyc3x8MDxhLmZvcm1kYXRhLmFkZHJlc3NfbW9udGhzPyEwOiIiIT1jJiYoYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKSwiIiE9Yy5jaXR5JiYiIiE9Yy5zdHJlZXQpPyhhLmZvcm1kYXRhLnNwbGl0QWRkcmVzcz1jLCEwKTohMX0sdmFsaWRhdGVBZGRyZXNzMjpmdW5jdGlvbihjKXtyZXR1cm4gMDxhLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzfHwwPGEuZm9ybWRhdGEuYWRkcmVzczJfbW9udGhzPyEwOiIiIT1jJiYoYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsCmIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpLCIiIT1jLmNpdHkmJiIiIT1jLnN0cmVldCk\/KGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzMj1jLCEwKTohMX0sdmFsaWRhdGVBZGRyZXNzRW1wbG95ZXI6ZnVuY3Rpb24oYyl7aWYoIkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRCIhPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cylyZXR1cm4hMDtpZigiIiE9Yyl7aWYoInVuZGVmaW5lZCIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiZudWxsIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIm9iamVjdCI9PT10eXBlb2YgYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmImNpdHkiaW4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIiIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyLmNpdHkpcmV0dXJuITA7ay5pbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIoKTtjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsCmIpLmdvb2dsZVBsYWNlcygiZ2V0QWRkcmVzcyIpO2lmKCIiIT1jLmNpdHkmJiIiIT1jLnN0cmVldClyZXR1cm4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcj1jLCEwfXJldHVybiExfSx2YWxpZGF0ZU1vbnRobHlEaXNidXJzZW1lbnRWVzpmdW5jdGlvbihjKXtsZXQgZCxlLGY7cmV0dXJuIlFDIj09KG51bGwhPShmPW51bGw9PShkPWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzKT92b2lkIDA6bnVsbD09KGU9ZC5wcm92aW5jZSk\/dm9pZCAwOmUuc2hvcnRfbmFtZSk\/ZjokKCIjRklOQU5DRV9NVUxUSVNURVBfRGVhbGVyUHJvdmluY2UiLGIpLnZhbCgpKT8wPD1jOiEwfSx2YWxpZGF0ZUFkZHJlc3NFbXBsb3llclZXOmZ1bmN0aW9uKGMpe3ZhciBkPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cztpZigiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX0ZVTEwiIT1kJiYiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX1BBUlQiIT0KZClyZXR1cm4hMDtpZigiIiE9Yyl7aWYoInVuZGVmaW5lZCIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyJiZudWxsIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIm9iamVjdCI9PT10eXBlb2YgYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmImNpdHkiaW4gYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llciYmIiIhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyLmNpdHkpcmV0dXJuITA7ay5pbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIoKTtjPSQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIiXScsYikuZ29vZ2xlUGxhY2VzKCJnZXRBZGRyZXNzIik7aWYoIiIhPWMuY2l0eSYmIiIhPWMuc3RyZWV0KXJldHVybiBhLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyPWMsITB9cmV0dXJuITF9LHZhbGlkYXRlQWRkcmVzc0VtcGxveWVyMjpmdW5jdGlvbihjKXtpZigiIiE9CmMpe2lmKCJ1bmRlZmluZWQiIT09YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjImJm51bGwhPT1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzc0VtcGxveWVyMiYmIm9iamVjdCI9PT10eXBlb2YgYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3NFbXBsb3llcjImJiJjaXR5ImluIGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyJiYiIiE9PWEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyLmNpdHkpcmV0dXJuITA7ay5pbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXIyKCk7Yz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJyxiKS5nb29nbGVQbGFjZXMoImdldEFkZHJlc3MiKTtpZigiIiE9Yy5jaXR5JiYiIiE9Yy5zdHJlZXQpcmV0dXJuIGEuZm9ybWRhdGEuc3BsaXRBZGRyZXNzRW1wbG95ZXIyPWMsITB9cmV0dXJuITF9LHZhbGlkYXRlU3RhdHVzVGltZTpmdW5jdGlvbihjKXtpZigiIiE9CmMmJjEwPT1jLmxlbmd0aClyZXR1cm4gYz1jLnNwbGl0KCIvIiksbmV3IERhdGUoK2NbMl0sY1sxXS0xLCtjWzBdKTxuZXcgRGF0ZX0sdmFsaWRhdGVFbXBsb3ltZW50QWRkZWRJbmZvOmZ1bmN0aW9uKGMpe3ZhciBkPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cztyZXR1cm4iRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEIj09ZHx8IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19TRUxGRU1QTE9ZRUQiPT1kfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1NUVURFTlQiPT1kfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX09USEVSIj09ZD8iIiE9PWMmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGM6ITB9LHZhbGlkYXRlRW1wbG95bWVudEFkZGVkSW5mb1ZXOmZ1bmN0aW9uKGMpe3ZhciBkPWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1cztyZXR1cm4iRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX0ZVTEwiPT0KZHx8IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRF9QQVJUIj09ZHx8IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19TRUxGRU1QTE9ZRUQiPT1kPyIiIT09YyYmInVuZGVmaW5lZCIhPT10eXBlb2YgYzohMH0sdmFsaWRhdGVFbXBsb3llckluZm86ZnVuY3Rpb24oKXtyZXR1cm4iRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEIj09YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzPyIiIT09YS5mb3JtZGF0YS5lbXBsb3llck5hbWUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lJiZrLnZhbGlkYXRlUGhvbmVOdW1iZXJFbXBsb3llcihhLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUpOiEwfSx2YWxpZGF0ZUVtcGxveWVySW5mb1ZXOmZ1bmN0aW9uKCl7dmFyIGM9YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzO3JldHVybiJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfRU1QTE9ZRURfRlVMTCI9PQpjfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX0VNUExPWUVEX1BBUlQiPT1jPyIiIT09YS5mb3JtZGF0YS5lbXBsb3llck5hbWUmJiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lJiZrLnZhbGlkYXRlUGhvbmVOdW1iZXJFbXBsb3llcihhLmZvcm1kYXRhLmVtcGxveWVyUGhvbmUpOiEwfSx2YWxpZGF0ZUVtcGxveWVySW5mbzI6ZnVuY3Rpb24oKXtyZXR1cm4iIiE9PWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMiYmInVuZGVmaW5lZCIhPT10eXBlb2YgYS5mb3JtZGF0YS5lbXBsb3llck5hbWUyJiZrLnZhbGlkYXRlUGhvbmVOdW1iZXJFbXBsb3llcjIoYS5mb3JtZGF0YS5lbXBsb3llclBob25lMil9LHZhbGlkYXRlRW1haWw6ZnVuY3Rpb24oYyl7JC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToiY3NzT25seSIsc2Nyb2xsVG86ITF9KS5zdGFydCgpOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJlbWFpbEFkZHJlc3MiXScpLnZhbGlkRW1haWxBZGRyZXNzKCk7CnJldHVybiAkLnZhbGlkaXR5LmVuZCgpLnZhbGlkfSx2YWxpZGF0ZUJpcnRoZGF0ZTpmdW5jdGlvbigpe3ZhciBjPWEuZm9ybWRhdGEuYmlydGhkYXRlWWVhcixkPWEuZm9ybWRhdGEuYmlydGhkYXRlTW9udGgsZT1hLmZvcm1kYXRhLmJpcnRoZGF0ZURheTtpZigzMTxlfHwxMjxkfHwxOTAwPmN8fDA+PWV8fDA+PWR8fCIiPT1jfHwiIj09ZHx8IiI9PWV8fDQ+Yy5sZW5ndGgpcmV0dXJuITE7Yz0xODw9ay5jYWxjdWxhdGVBZ2UobmV3IERhdGUoYyxkLTEsZSksbmV3IERhdGUpO2Euc2hvd0Vycm9yJiYoYz8kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIik6JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2JpcnRoZGF0ZUVycm9yTXNnIikudmFsKCkpKTtyZXR1cm4gY30sY2FsY3VsYXRlQWdlOmZ1bmN0aW9uKGMsZCl7dmFyIGU9ZC5nZXRGdWxsWWVhcigpLGY9ZC5nZXRNb250aCgpO2Q9ZC5nZXREYXRlKCk7dmFyIGc9Yy5nZXRGdWxsWWVhcigpLApsPWMuZ2V0TW9udGgoKTtjPWMuZ2V0RGF0ZSgpO2UtPWc7Zi09bDtpZigwPmZ8fDA9PWYmJjA+ZC1jKWU9cGFyc2VJbnQoZSktMTtyZXR1cm4gZX0saGFzVXNlcjpmdW5jdGlvbigpe3JldHVybiEhbG9jYWxTdG9yYWdlLmdldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fdXNlcklkIil9LHVzZXJJZDpmdW5jdGlvbihjKXtjJiYoLTE9PWM\/KGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcF9mb3JtX3VzZXJJZCIpLGEudXNlcklkPSExKToobG9jYWxTdG9yYWdlLnNldEl0ZW0oImZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fdXNlcklkIixjKSxhLnVzZXJJZD1jKSk7YS51c2VySWR8fChhLnVzZXJJZD1sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV91c2VySWQiKSk7cmV0dXJuIGEudXNlcklkfSxwdXNoRGF0YVRvU2VydmVyOmZ1bmN0aW9uKCl7aWYoIWEuYWpheFByb2Nlc3Mpe2EuYWpheFByb2Nlc3M9ITA7ay5zZXRUcmFkZUluKCk7CnZhciBjPWEuZm9ybWRhdGEsZD1hLnN0ZXAsZT0kKGIpLmZpbmQoIi5lbWFpbFN1YmplY3QiKSxmPSQoYikuZmluZCgiLmVtYWlsQm9keSIpO2U9ZS50ZXh0KCk\/ZS50ZXh0KCk6IiI7Zj1mLmh0bWwoKT9mLmh0bWwoKToiIjt2YXIgZz0kKCIjY3VycmVudFN0YXR1cyIpLnZhbCgpO2VtYWlsSGFuZGxlci5ib2R5PWY7ZW1haWxIYW5kbGVyLnN1YmplY3Q9ZTtrLnNldEVtYWlsSGFuZGxlclNlbmQoKTtlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0IjsiMSI9PXUmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Mm5kQ2hhbmNlIik7IjEiPT14JiYoZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiKTtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iRklOQU5DRSI7ZW1haWxIYW5kbGVyLmlzbW9iaWxlc2l0ZT0xPT0kKCIjaXNtb2JpbGUiKS52YWwoKT8iWUVTIjoiTk8iO2VtYWlsSGFuZGxlci5jb25kaXRpb249CiJ1bmRlZmluZWQiPT10eXBlb2YgZz8idXNlZCI6Zy50b0xvd2VyQ2FzZSgpO2VtYWlsSGFuZGxlci5jcmVkaXREYXRhPWM7Sj1lbWFpbEhhbmRsZXIuZ2V0SnNvbk9iamVjdCgpOyQuYWpheCh7dXJsOiIvIit3KyIvYWpheC9zZXRGaW5hbmNlTXVsdGlzdGVwRGF0YT93c3dpZHRoPTAiLGRhdGFUeXBlOiJKU09OIix0eXBlOiJQT1NUIixkYXRhOnt1c2VySWQ6ay51c2VySWQoKSxmb3JtZGF0YTpjLHN0ZXA6ZCxkb21haW46USxzaXRlSWQ6JCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCksbGFuZzokKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCksZW1haWxIYW5kbGVySnNvbk9iamVjdDpKU09OLnN0cmluZ2lmeShKKX0sc3VjY2VzczpmdW5jdGlvbihsKXtsLklEJiZsLmlkQ2hhbmdlZCYmay51c2VySWQobC5JRCl9LGNvbXBsZXRlOmZ1bmN0aW9uKGwpe2EuYWpheFByb2Nlc3M9ITF9fSl9fSxvblNob3dGdW5jdGlvblRvUnVuOmZ1bmN0aW9uKCl7aWYoYS5vblNob3dGdW5jdGlvbi5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrCmEuc3RlcCkmJiJ1bmRlZmluZWQiIT10eXBlb2YgYS5vblNob3dGdW5jdGlvblsic3RlcCIrYS5zdGVwXS5sZW5ndGgpZm9yKHZhciBjPTA7YzxhLm9uU2hvd0Z1bmN0aW9uWyJzdGVwIithLnN0ZXBdLmxlbmd0aDtjKyspa1thLm9uU2hvd0Z1bmN0aW9uWyJzdGVwIithLnN0ZXBdW2NdLmZ1bmNdKCl9LGluaXRHb29nbGVBdXRvY29tcGxldGU6ZnVuY3Rpb24oKXt2YXIgYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKVswXSxkPW5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uKCl7ZC5kaXNjb25uZWN0KCk7JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3MiXScsYikuYXR0cigiYXV0b2NvbXBsZXRlIiwibmV3LXBhc3N3b3JkIil9KTtkLm9ic2VydmUoYyx7YXR0cmlidXRlczohMCwKYXR0cmlidXRlRmlsdGVyOlsiYXV0b2NvbXBsZXRlIl19KTtjPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMYXQiKS52YWwoKTt2YXIgZT0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTG9uZyIpLnZhbCgpO2M9e2xhdDpjLGxvbmc6ZSxyYWRpdXM6MkU1fTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzcyJdJyxiKS5nb29nbGVQbGFjZXMoYyl9LGluaXRHb29nbGVBdXRvY29tcGxldGUyOmZ1bmN0aW9uKCl7dmFyIGM9JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3MyIl0nLGIpWzBdLGQ9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtkLmRpc2Nvbm5lY3QoKTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsCmIpLmF0dHIoImF1dG9jb21wbGV0ZSIsIm5ldy1wYXNzd29yZCIpfSk7ZC5vYnNlcnZlKGMse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiYXV0b2NvbXBsZXRlIl19KTtjPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMYXQiKS52YWwoKTt2YXIgZT0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTG9uZyIpLnZhbCgpO2M9e2xhdDpjLGxvbmc6ZSxyYWRpdXM6MkU1fTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzczIiXScsYikuZ29vZ2xlUGxhY2VzKGMpfSxpbml0R29vZ2xlQXV0b2NvbXBsZXRlRW1wbG95ZXI6ZnVuY3Rpb24oKXt2YXIgYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyIl0nLGIpWzBdLGQ9bmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24oKXtkLmRpc2Nvbm5lY3QoKTsKJCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llciJdJyxiKS5hdHRyKCJhdXRvY29tcGxldGUiLCJuZXctcGFzc3dvcmQiKX0pO2Qub2JzZXJ2ZShjLHthdHRyaWJ1dGVzOiEwLGF0dHJpYnV0ZUZpbHRlcjpbImF1dG9jb21wbGV0ZSJdfSk7Yz0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTGF0IikudmFsKCk7dmFyIGU9JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX2RlYWxlckxvbmciKS52YWwoKTtjPXtsYXQ6Yyxsb25nOmUscmFkaXVzOjJFNX07JCgnI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbZGF0YS1nb29nbGUtcGxhY2VzLWN1c3RvbT0idHJ1ZSJdW25hbWU9ImFkZHJlc3NFbXBsb3llciJdJyxiKS5nb29nbGVQbGFjZXMoYyl9LGluaXRHb29nbGVBdXRvY29tcGxldGVFbXBsb3llcjI6ZnVuY3Rpb24oKXt2YXIgYz0kKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJywKYilbMF0sZD1uZXcgTXV0YXRpb25PYnNlcnZlcihmdW5jdGlvbigpe2QuZGlzY29ubmVjdCgpOyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W2RhdGEtZ29vZ2xlLXBsYWNlcy1jdXN0b209InRydWUiXVtuYW1lPSJhZGRyZXNzRW1wbG95ZXIyIl0nLGIpLmF0dHIoImF1dG9jb21wbGV0ZSIsIm5ldy1wYXNzd29yZCIpfSk7ZC5vYnNlcnZlKGMse2F0dHJpYnV0ZXM6ITAsYXR0cmlidXRlRmlsdGVyOlsiYXV0b2NvbXBsZXRlIl19KTtjPSQoIiNGSU5BTkNFX01VTFRJU1RFUF9kZWFsZXJMYXQiKS52YWwoKTt2YXIgZT0kKCIjRklOQU5DRV9NVUxUSVNURVBfZGVhbGVyTG9uZyIpLnZhbCgpO2M9e2xhdDpjLGxvbmc6ZSxyYWRpdXM6MkU1fTskKCcjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl1bbmFtZT0iYWRkcmVzc0VtcGxveWVyMiJdJyxiKS5nb29nbGVQbGFjZXMoYyl9LGluaXRCaXJ0aGRhdGVDaGFuZ2U6ZnVuY3Rpb24oKXskKCIuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiBpbnB1dCIpLm9uKCJrZXl1cCIsCmZ1bmN0aW9uKCl7JCh0aGlzKS52YWwoKS5sZW5ndGg9PSQodGhpcykuYXR0cigibWF4bGVuZ3RoIikmJiQodGhpcykucGFyZW50KCkubmV4dCgiLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYiKS5maW5kKCJpbnB1dCIpLnRyaWdnZXIoImZvY3VzIil9KX0sdmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZTpmdW5jdGlvbigpe2lmKDcwPGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpcmV0dXJuIGEuc2hvd0Vycm9yJiYKKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhciYmMD49YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiI1cHgiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOyIxIj09eCYmKDYwPjEyKnBhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIpKwpwYXJzZUludChhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aCk\/YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDE3PTI5OmEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzLnN0ZXAxNz0yMik7cmV0dXJuITB9LHZhbGlkYXRlTm90RW1wdHlFbXBsb3llclN0YXR1c1RpbWVWVzpmdW5jdGlvbigpe2lmKCJGSU5BTkNFX0ZPUk1fRU1QTE9ZTUVOVF9TVEFUVVNfVU5FTVBMT1lFRCI9PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c3x8IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19TVFVERU5UIj09YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzfHwiRklOQU5DRV9GT1JNX0VNUExPWU1FTlRfU1RBVFVTX1JFVElSRUQiPT1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXMpcmV0dXJuITA7aWYoNzA8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzWWVhcilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwKIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7aWYoMTI8YS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyJiYwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aClyZXR1cm4gYS5zaG93RXJyb3ImJgooJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzVGltZXNFcnJvck1zZyIpLnZhbCgpKSksITE7YS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aCJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiIiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOyIxIj09eCYmKDYwPjEyKnBhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIpK3BhcnNlSW50KGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoKT9hLm5leHRTdGVwRGVmYXVsdFZhbHVlcy5zdGVwMTc9Mjk6YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDE3PTIyKTtyZXR1cm4hMH0sdmFsaWRhdGVOb3RFbXB0eUVtcGxveWVyU3RhdHVzVGltZTI6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNZZWFyMilyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLAoiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aDIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIyJiYwPj1hLmZvcm1kYXRhLmVtcGxveW1lbnRTdGF0dXNNb250aDIpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyMiJdJykuY3NzKCJib3JkZXItY29sb3IiLAoiI2M4M2UzZSIpLCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzTW9udGgyIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c1llYXIyIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCdbbmFtZT0iZW1wbG95bWVudFN0YXR1c01vbnRoMiJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTthLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJlbXBsb3ltZW50U3RhdHVzWWVhcjIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNZZWFyMiJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9ImVtcGxveW1lbnRTdGF0dXNNb250aDIiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpO3JldHVybiEwfSx2YWxpZGF0ZU5vdEVtcHR5QWRkcmVzc1RpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLmFkZHJlc3NfeWVhcnMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3NfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDEyPGEuZm9ybWRhdGEuYWRkcmVzc19tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzc19tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsCiI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PWEuZm9ybWRhdGEuYWRkcmVzc195ZWFycyYmMD49YS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjYWRkcmVzc1RpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYKKCQoJ1tuYW1lPSJhZGRyZXNzX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIiKSwkKCdbbmFtZT0iYWRkcmVzc195ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgnW25hbWU9ImFkZHJlc3NfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpOyIxIj09eCYmKDI0PjEyKnBhcnNlSW50KGEuZm9ybWRhdGEuYWRkcmVzc195ZWFycykrcGFyc2VJbnQoYS5mb3JtZGF0YS5hZGRyZXNzX21vbnRocyk\/YS5uZXh0U3RlcERlZmF1bHRWYWx1ZXMuc3RlcDEyPTI3OmEubmV4dFN0ZXBEZWZhdWx0VmFsdWVzLnN0ZXAxMj0xMyk7cmV0dXJuITB9LHZhbGlkYXRlQ29uc2VudHM6ZnVuY3Rpb24oKXtsZXQgYyxkLGU7cmV0dXJuKCJRQyIhPShudWxsIT0oZT1udWxsPT0oYz0KYS5mb3JtZGF0YS5zcGxpdEFkZHJlc3MpP3ZvaWQgMDpudWxsPT0oZD1jLnByb3ZpbmNlKT92b2lkIDA6ZC5zaG9ydF9uYW1lKT9lOiQoIiNGSU5BTkNFX01VTFRJU1RFUF9EZWFsZXJQcm92aW5jZSIsYikudmFsKCkpfHxhLmZvcm1kYXRhLmNvbnNlbnRBY2NvdW50TW9uaXRvcmluZyYmYS5mb3JtZGF0YS5jb25zZW50Q3JlZGl0QXNzZXNzbWVudCkmJmEuZm9ybWRhdGEuY29uc2VudFZXPyEwOiExfSx2YWxpZGF0ZU5vdEVtcHR5QWRkcmVzczJUaW1lOmZ1bmN0aW9uKCl7aWYoNzA8YS5mb3JtZGF0YS5hZGRyZXNzMl95ZWFycylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwKITE7aWYoMTI8YS5mb3JtZGF0YS5hZGRyZXNzMl9tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9ImFkZHJlc3MyX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI2FkZHJlc3NUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigwPj1hLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzJiYwPj1hLmZvcm1kYXRhLmFkZHJlc3MyX21vbnRocylyZXR1cm4gYS5zaG93RXJyb3ImJigkKCdbbmFtZT0iYWRkcmVzczJfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJhZGRyZXNzMl95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwKIjVweCIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCQoIiNhZGRyZXNzMlRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2Euc2hvd0Vycm9yJiYoJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiIpLCQoJ1tuYW1lPSJhZGRyZXNzMl9tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9ImFkZHJlc3MyX3llYXJzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCdbbmFtZT0iYWRkcmVzczJfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCIiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgiIikpO3JldHVybiEwfSx2YWxpZGF0ZU5vdEVtcHR5TW9udGhseUluY29tZVRpbWU6ZnVuY3Rpb24oKXtpZig3MDxhLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfeWVhcnMpcmV0dXJuIGEuc2hvd0Vycm9yJiYKKCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsIiNjODNlM2UiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV95ZWFycyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI21vbnRobHlJbmNvbWVUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTtpZigxMjxhLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfbW9udGhzKXJldHVybiBhLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfbW9udGhzIl0nKS5jc3MoImJvcmRlci1ib3R0b20td2lkdGgiLCI1cHgiKSwkKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbCgkKCIjbW9udGhseUluY29tZVRpbWVzRXJyb3JNc2ciKS52YWwoKSkpLCExO2lmKDA+PQphLmZvcm1kYXRhLm1vbnRobHlJbmNvbWVfeWVhcnMmJjA+PWEuZm9ybWRhdGEubW9udGhseUluY29tZV9tb250aHMpcmV0dXJuIGEuc2hvd0Vycm9yJiYoJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiI2M4M2UzZSIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItY29sb3IiLCIjYzgzZTNlIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIjVweCIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiNXB4IiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoJCgiI21vbnRobHlJbmNvbWVUaW1lc0Vycm9yTXNnIikudmFsKCkpKSwhMTthLnNob3dFcnJvciYmKCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX3llYXJzIl0nKS5jc3MoImJvcmRlci1jb2xvciIsCiIiKSwkKCdbbmFtZT0ibW9udGhseUluY29tZV9tb250aHMiXScpLmNzcygiYm9yZGVyLWNvbG9yIiwiIiksJCgnW25hbWU9Im1vbnRobHlJbmNvbWVfeWVhcnMiXScpLmNzcygiYm9yZGVyLWJvdHRvbS13aWR0aCIsIiIpLCQoJ1tuYW1lPSJtb250aGx5SW5jb21lX21vbnRocyJdJykuY3NzKCJib3JkZXItYm90dG9tLXdpZHRoIiwiIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoIiIpKTtyZXR1cm4hMH0sdmFsaWRhdGVQaG9uZU51bWJlcjpmdW5jdGlvbihjKXtyZXR1cm4gYyYmKHBob25lPWMucmVwbGFjZSgiKCIsIiIpLnJlcGxhY2UoIikiLCIiKS5yZXBsYWNlKCIgIiwiIikucmVwbGFjZSgiLSIsIiIpLDEwPT1waG9uZS5sZW5ndGgpPygkLnZhbGlkaXR5LnNldHVwKHtvdXRwdXRNb2RlOiJwb3B1cCIsc2Nyb2xsVG86ITF9KS5zdGFydCgpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJwaG9uZU51bWJlciJdJykudmFsaWRhdGVQaG9uZSgpLAokLnZhbGlkaXR5LmVuZCgpLnZhbGlkKTohMX0sdmFsaWRhdGVQaG9uZU51bWJlckVtcGxveWVyOmZ1bmN0aW9uKGMpe3JldHVybiBjJiYocGhvbmU9Yy5yZXBsYWNlKCIoIiwiIikucmVwbGFjZSgiKSIsIiIpLnJlcGxhY2UoIiAiLCIiKS5yZXBsYWNlKCItIiwiIiksMTA9PXBob25lLmxlbmd0aCk\/KCQudmFsaWRpdHkuc2V0dXAoe291dHB1dE1vZGU6InBvcHVwIixzY3JvbGxUbzohMX0pLnN0YXJ0KCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoImlucHV0LmVtcGxveWVyUGhvbmUiKS52YWxpZGF0ZVBob25lKCksJC52YWxpZGl0eS5lbmQoKS52YWxpZCk6ITF9LHZhbGlkYXRlUGhvbmVOdW1iZXJFbXBsb3llcjI6ZnVuY3Rpb24oYyl7cmV0dXJuIGMmJihwaG9uZT1jLnJlcGxhY2UoIigiLCIiKS5yZXBsYWNlKCIpIiwiIikucmVwbGFjZSgiICIsIiIpLnJlcGxhY2UoIi0iLCIiKSwxMD09cGhvbmUubGVuZ3RoKT8oJC52YWxpZGl0eS5zZXR1cCh7b3V0cHV0TW9kZToicG9wdXAiLApzY3JvbGxUbzohMX0pLnN0YXJ0KCksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGIpLmZpbmQoImlucHV0LmVtcGxveWVyUGhvbmUyIikudmFsaWRhdGVQaG9uZSgpLCQudmFsaWRpdHkuZW5kKCkudmFsaWQpOiExfSx2YWxpZGF0ZVNJTjpmdW5jdGlvbihjKXtyZXR1cm4oIjEiPT11JiYiMCI9PUN8fCIxIj09eCkmJiIiPT1jJiYwPD1hLm9wdGlvbmFsU3RlcC5pbmRleE9mKDIyKXx8YyYmKHNpbj1jLnJlcGxhY2VBbGwoIiAiLCIiKSw5PT1zaW4ubGVuZ3RoKT8hMDohMX0sdmFsaWRhdGVWZWhpY2xlOmZ1bmN0aW9uKCl7dmFyIGM9ITE7c3dpdGNoKGEuY3VycmVudERlcHQpe2Nhc2UgIlVTRUQiOmM9IiIhPWEuZm9ybWRhdGEuY3VycmVudE1ha2UmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFllYXImJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFRyaW0mJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRDYXJJZDsKYnJlYWs7Y2FzZSAiTkVXSU5WIjpjPSIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXImJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRUcmltJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50Q2FySWQmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkO2JyZWFrO2Nhc2UgIk5FVyI6Yz0iIiE9YS5mb3JtZGF0YS5jdXJyZW50TWFrZSYmIiIhPWEuZm9ybWRhdGEuY3VycmVudE1vZGVsJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50WWVhciYmIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRUcmltfXJldHVybiBjfSxpbml0VmVoaWNsZVNlbGVjdGlvbjpmdW5jdGlvbigpe2EuaW5pdFZlaGljbGVTZWxlY3Rpb25GaXJzdCYmKCQoJ2lucHV0W25hbWU9ImZpbmFuY2VNdWx0aXN0ZXBEZXB0Il0nLApiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2xldCBjPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZWhpY2xlU2VsZWN0aW9uV3JhcHBlciIpO2MucmVwbGFjZVdpdGgoYy5jbG9uZU5vZGUoITApKTtrLmluaXRWZWhpY2xlU2VsZWN0aW9uKCl9KSxhLmluaXRWZWhpY2xlU2VsZWN0aW9uRmlyc3Q9ITEpOyQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikub2ZmKCJjaGFuZ2UiKTskKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS5vZmYoImNoYW5nZSIpOyQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSIsYikub2ZmKCJjaGFuZ2UiKTsiVVNFRCI9PWEuY3VycmVudERlcHR8fCJORVdJTlYiPT1hLmN1cnJlbnREZXB0PyhtKCJuZXdpbnYiKSwkKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7IiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkmJihhLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD0iIixhLmZvcm1kYXRhLmN1cnJlbnRNb2RlbFRleHQ9CiIiLGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIsYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSIiLGEuZm9ybWRhdGEudmVoaWNsZVByaWNlPSIiLGEuZm9ybWRhdGEuY3VycmVudENhcklkPSIiLGEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPSIiLGEuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTAsay5jaGVja1ZhbGlkaXR5KCksbigibmV3aW52IiwkKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpKSl9KSwkKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpeyIiIT0kKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpJiYiIiE9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCIsYikudmFsKCkmJihhLmZvcm1kYXRhLmN1cnJlbnRUcmltPSIiLGEuZm9ybWRhdGEuY3VycmVudFllYXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0iIixhLmZvcm1kYXRhLnZlaGljbGVQcmljZT0KIiIsYS5mb3JtZGF0YS5jdXJyZW50Q2FySWQ9IiIsYS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT0xMCxrLmNoZWNrVmFsaWRpdHkoKSx2KCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtbW9kZWwiKSkpfSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2EuZm9ybWRhdGEuY3VycmVudE1ha2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKTthLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1tb2RlbCIpO2EuZm9ybWRhdGEuY3VycmVudFRyaW09JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS52YWwoKTthLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLApiKS5hdHRyKCJkYXRhLXllYXIiKTthLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtc3R5bGVpZCIpO2EuZm9ybWRhdGEudmVoaWNsZVByaWNlPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtcHJpY2UiKTthLmZvcm1kYXRhLmN1cnJlbnRDYXJJZD0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLXZlaGljbGVpZCIpO2EuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtc3RvY2tudW1iZXIiKTthLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtbWlsZWFnZSIpO3ZhciBjPSQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLApiKS5hdHRyKCJkYXRhLWlzbmV3IiksZD0kKCIjZmluYW5jZU11bHRpc3RlcFRyaW0gb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLWlzZGVtbyIpJiYiMSI9PSQoJ2lucHV0W25hbWU9IkZJTkFOQ0VfREVNT0FTTkVXIl0nLGIpLnZhbCgpO2EuY3VycmVudERlcHQ9IjEiPT1jfHxkPyJORVdJTlYiOiJVU0VEIjtrLmNoZWNrVmFsaWRpdHkoKX0pKToobShhLmN1cnJlbnREZXB0KSwkKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7IiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkmJihhLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD0iIixhLmZvcm1kYXRhLmN1cnJlbnRNb2RlbFRleHQ9IiIsYS5mb3JtZGF0YS5jdXJyZW50WWVhcj0iIixhLmZvcm1kYXRhLmN1cnJlbnRUcmltPSIiLGEuZm9ybWRhdGEuY3VycmVudE1pbGVhZ2U9MTAsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0iIixhLmZvcm1kYXRhLnZlaGljbGVQcmljZT0KIiIsay5jaGVja1ZhbGlkaXR5KCksbihhLmN1cnJlbnREZXB0LCQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkpKX0pLCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwiLGIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7IiIhPSQoIiNmaW5hbmNlTXVsdGlzdGVwTWFrZSIsYikudmFsKCkmJiIiIT0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIixiKS52YWwoKSYmKGEuZm9ybWRhdGEuY3VycmVudFllYXI9IiIsYS5mb3JtZGF0YS5jdXJyZW50VHJpbT0iIixhLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPTEwLGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9IiIsYS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9IiIsay5jaGVja1ZhbGlkaXR5KCkscigkKCIjZmluYW5jZU11bHRpc3RlcE1ha2UiLGIpLnZhbCgpLCQoIiNmaW5hbmNlTXVsdGlzdGVwTW9kZWwgb3B0aW9uOnNlbGVjdGVkIixiKS5hdHRyKCJkYXRhLW1vZGVsIiksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLApiKS5hdHRyKCJkYXRhLXllYXIiKSkpfSksJCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2EuZm9ybWRhdGEuY3VycmVudE1ha2U9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNYWtlIixiKS52YWwoKTthLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD0kKCIjZmluYW5jZU11bHRpc3RlcE1vZGVsIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1tb2RlbCIpO2EuZm9ybWRhdGEuY3VycmVudFllYXI9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBNb2RlbCBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEteWVhciIpO2EuZm9ybWRhdGEuY3VycmVudFRyaW09JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIixiKS52YWwoKTthLmZvcm1kYXRhLmN1cnJlbnRNaWxlYWdlPTEwO2EuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9JCgiI2ZpbmFuY2VNdWx0aXN0ZXBUcmltIG9wdGlvbjpzZWxlY3RlZCIsYikuYXR0cigiZGF0YS1zdHlsZWlkIik7YS5mb3JtZGF0YS52ZWhpY2xlUHJpY2U9CiQoIiNmaW5hbmNlTXVsdGlzdGVwVHJpbSBvcHRpb246c2VsZWN0ZWQiLGIpLmF0dHIoImRhdGEtcHJpY2UiKTtrLmNoZWNrVmFsaWRpdHkoKX0pKX0sdmFsaWRhdGVQYXltZW50OmZ1bmN0aW9uKCl7cmV0dXJuIiIhPWEuZm9ybWRhdGEucGF5bWVudFR5cGUmJiIiIT1hLmZvcm1kYXRhLnBheW1lbnRUZXJtJiYiIiE9YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWwmJiIiIT1hLmZvcm1kYXRhLnBheW1lbnRWYWx1ZSYmIiIhPWEuZm9ybWRhdGEucGF5bWVudFJhdGV8fGEuZm9ybWRhdGEubm9QYXltZW50fSxpbml0Q2FsY3VsYXRvcjpmdW5jdGlvbigpe3ZhciBjPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IiBzdXIgY2UgIithLmZvcm1kYXRhLmN1cnJlbnRNYWtlKyIgIithLmZvcm1kYXRhLmN1cnJlbnRNb2RlbCsiICIrYS5mb3JtZGF0YS5jdXJyZW50WWVhcjoiIG9uIHRoaXMgIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyKyIgIithLmZvcm1kYXRhLmN1cnJlbnRNYWtlKyIgIisKYS5mb3JtZGF0YS5jdXJyZW50TW9kZWw7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm11bHRpc3RlcFBheW1lbnRWZWhpY2xlIixiKS50ZXh0KGMpO2lmKCJORVciPT1hLmN1cnJlbnREZXB0fHwiTkVXSU5WIj09YS5jdXJyZW50RGVwdCl7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fZXJyb3IiLGIpLmh0bWwoIiIpO2EuY2FsY3VsYXRvckZ1bmN0aW9ucz1uZXcgY2FsY3VsYXRvckZ1bmN0aW9ucygiIyIrYlswXS5pZCsiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIik7Yz0iTkVXSU5WIj09YS5jdXJyZW50RGVwdDtsZXQgZT0iZmluYW5jaW5nIixmPTAsZz0wLGw9JCgnaW5wdXRbbmFtZT0iQURNSU5fU0hPV19MT1dFU1RfUEFZTUVOVF9JTlRFUlZBTCJdJykudmFsKCk7dmFyIGQ9MkU0O0Nvb2tpZXMuZ2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIpJiYoZD1Db29raWVzLmdldCgicGF5bWVudENhbGN1bGF0b3JTZWxlY3RlZE9wdGlvbnMiKS5zcGxpdCgiLSIpLAplPSJ1bmRlZmluZWQiIT1kWzBdP2RbMF06ZSxmPWRbMV0sZz1wYXJzZUludChkWzRdKXx8MCxsPWRbMl0sZD1kWzNdKTthLmNhbGN1bGF0b3JGdW5jdGlvbnMuaW5pdChhLmZvcm1kYXRhLmN1cnJlbnRTdHlsZWlkLGUsZywwLGwsZCxjLGEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyKTskKCJib2R5Iikub2ZmKCJjaGFuZ2UiLCIjIitiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXSwgIycrYlswXS5pZCsnICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0nKTskKCJib2R5Iikub2ZmKCJub1BheW1lbnQiLCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKTskKCJib2R5Iikub2ZmKCJwYXltZW50c1JlYWR5IiwiIyIrYlswXS5pZCsKIiAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSIpOyQoImJvZHkiKS5vbigibm9QYXltZW50IiwiIyIrYlswXS5pZCsiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixmdW5jdGlvbigpe2EuZm9ybWRhdGEubm9QYXltZW50PSEwO2EubmV4dCghMCl9KTskKCJib2R5Iikub24oImNoYW5nZSIsIiMiK2JbMF0uaWQrJyAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50U2VsZWN0IGlucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjJytiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXScsZnVuY3Rpb24oKXt2YXIgcD0iZmluYW5jaW5nIj09YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnBheW1lbnRUeXBlPyQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IkZpbmFuY2VtZW50IjoiRmluYW5jaW5nIjoibGVhc2luZyI9PQphLmNhbGN1bGF0b3JGdW5jdGlvbnMucGF5bWVudFR5cGU\/JCgiYm9keSIpLmhhc0NsYXNzKCJGUkVOQ0giKT8iTG9jYXRpb24iOiJMZWFzaW5nIjoiIjthLmZvcm1kYXRhLnBheW1lbnRUeXBlPXA7YS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnBheW1lbnRUeXBlO2EuZm9ybWRhdGEucGF5bWVudFRlcm09JCh0aGlzKS52YWwoKTthLmZvcm1kYXRhLnBheW1lbnRSYXRlVHlwZT0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTtwPSQodGhpcykuY2xvc2VzdCgiLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIikuZmluZCgnLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJythLmZvcm1kYXRhLnBheW1lbnRUZXJtKyciXVtkYXRhLXJhdGV0eXBlPSInK2EuZm9ybWRhdGEucGF5bWVudFJhdGVUeXBlKyciXScpO3ZhciBxO2EuZm9ybWRhdGEucGF5bWVudFJlc2lkdWFsVmFsdWU9Cm51bGwhPShxPXAuYXR0cigiZGF0YS1yZXNpZHVhbCIpKT9xOiQodGhpcykuYXR0cigiZGF0YS1yZXNpZHVhbCIpO3ZhciB0O2EuZm9ybWRhdGEucGF5bWVudFZhbHVlPW51bGwhPSh0PXAuYXR0cigiZGF0YS1yZWFscGF5bWVudCIpKT90OiQodGhpcykuYXR0cigiZGF0YS1yZWFscGF5bWVudCIpO3ZhciBBO2EuZm9ybWRhdGEuYmFzZXBheW1lbnQ9bnVsbCE9KEE9cC5hdHRyKCJkYXRhLWJhc2VwYXltZW50IikpP0E6JCh0aGlzKS5hdHRyKCJkYXRhLWJhc2VwYXltZW50Iik7YS5mb3JtZGF0YS5wYXltZW50VG90YWxJbmNlbnRpdmU9cC5hdHRyKCJkYXRhLXRvdGFsaW5jZW50aXZlIik7YS5mb3JtZGF0YS5wYXltZW50R1NUPXAuYXR0cigiZGF0YS1nc3QiKTthLmZvcm1kYXRhLnBheW1lbnRIU1Q9cC5hdHRyKCJkYXRhLWhzdCIpO2EuZm9ybWRhdGEucGF5bWVudFBTVD1wLmF0dHIoImRhdGEtcHN0Iik7YS5mb3JtZGF0YS52ZWhpY2xlSW5pdGlhbFByaWNlPXAuYXR0cigiZGF0YS1pbml0aWFsUHJpY2UiKTsKYS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT1wLmF0dHIoImRhdGEtZmluYWxQcmljZSIpO3ZhciBIO2EuZm9ybWRhdGEucGF5bWVudEZlZXNMaXN0PW51bGwhPShIPUpTT04ucGFyc2UoYXRvYihwLmF0dHIoImRhdGEtZmVlc0xpc3QiKSkpKT9IOltdO3E9MDtmb3IodmFyIE4gb2YgYS5mb3JtZGF0YS5wYXltZW50RmVlc0xpc3QpcSs9Ti5hbW91bnR8fDA7YS5mb3JtZGF0YS5wYXltZW50VG90YWxGZWU9cTt2YXIgSTthLmZvcm1kYXRhLnBheW1lbnRJbmNlbnRpdmVzTGlzdD1udWxsIT0oST1KU09OLnBhcnNlKGF0b2IocC5hdHRyKCJkYXRhLWluY2VudGl2ZXNMaXN0IikpKSk\/STpbXTthLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudD1hLmNhbGN1bGF0b3JGdW5jdGlvbnMuZG93bnBheW1lbnR8fDA7YS5mb3JtZGF0YS5wYXltZW50S21BbGxvd2FuY2U9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLmttQWxsb3dhbmNlO2EuZm9ybWRhdGEucGF5bWVudEludGVydmFsPWEuY2FsY3VsYXRvckZ1bmN0aW9ucy5wYXltZW50RnJlcXVlbmN5OwphLmZvcm1kYXRhLnBheW1lbnRSYXRlPSQodGhpcykuYXR0cigiZGF0YS1yYXRlIik7YS5mb3JtZGF0YS50cmFkZUluVmFsdWU9YS5jYWxjdWxhdG9yRnVuY3Rpb25zLnRyYWRlSW5WYWx1ZTtxPShwYXJzZUludChhLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudCl8fDApKyhwYXJzZUludChhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSl8fDApO0Nvb2tpZXMuc2V0KCJwYXltZW50Q2FsY3VsYXRvclNlbGVjdGVkT3B0aW9ucyIsYS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWwrIi0iK2EuZm9ybWRhdGEucGF5bWVudFRlcm0rIi0iK2EuZm9ybWRhdGEucGF5bWVudEludGVydmFsKyItIithLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZSsiLSIrcSxudWxsLCIvIik7Ik5FV0NBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiVVNFRENBUlMiIT0oJCgiI3RhcmdldFBhZ2UiKS52YWwoKXx8ITEpJiYiZnVuY3Rpb24iPT10eXBlb2YgY2hhbmdlUGFnZVBheW1lbnRWYWx1ZSYmCihJPSQodGhpcykuYXR0cigiZGF0YS1yZWFscGF5bWVudCIpLE49JCh0aGlzKS5hdHRyKCJkYXRhLXRvdGFsaW50ZXJlc3QiKSxwPSQodGhpcykuYXR0cigiZGF0YS1sdXhlVGF4QW1vdW50IikscT1xLnRvRml4ZWQoMCksdD0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKSxBPSQodGhpcykuYXR0cigiZGF0YS1lZmZlY3RpdmVSYXRlIiksSD0kKHRoaXMpLmF0dHIoImRhdGEtdG90YWxDb3N0IiksY2hhbmdlUGFnZVBheW1lbnRWYWx1ZSh7Y3VycmVudFBheW1lbnQ6SSxjdXJyZW50UmF0ZTphLmZvcm1kYXRhLnBheW1lbnRSYXRlLHBheW1lbnRUZXJtOmEuZm9ybWRhdGEucGF5bWVudFRlcm0scGF5bWVudFR5cGU6YS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWwscGF5bWVudEludGVydmFsOmEuZm9ybWRhdGEucGF5bWVudEludGVydmFsLHBheW1lbnREb3duUGF5bWVudDpxLHRvdGFsSW50ZXJlc3Q6TixsdXhlVGF4QW1vdW50OnAscmF0ZVR5cGU6dCxlZmZlY3RpdmVSYXRlOkEsdG90YWxDb3N0Okh9KSwKJCgiIyIrYlswXS5pZCsiICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIikudHJpZ2dlcigicGF5bWVudENoYW5nZWQiKSk7ay5jaGVja1ZhbGlkaXR5KCl9KTskKCJib2R5Iikub24oInBheW1lbnRzUmVhZHkiLCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iLGZ1bmN0aW9uKCl7Zj1hLmZvcm1kYXRhLnBheW1lbnRUZXJtP2EuZm9ybWRhdGEucGF5bWVudFRlcm06Zj9mOjA7MCE9ZiYmMDwkKCIjIitiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJytmKyciXScpLmxlbmd0aD8kKCIjIitiWzBdLmlkKycgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXVt2YWx1ZT0iJytmKyciXScpLmF0dHIoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIik6CihhLmZvcm1kYXRhLnBheW1lbnRUeXBlPSIiLGEuZm9ybWRhdGEucGF5bWVudFR5cGVSZWFsPSIiLGEuZm9ybWRhdGEucGF5bWVudFRlcm09IiIsYS5mb3JtZGF0YS5wYXltZW50UmF0ZVR5cGU9IiIsYS5mb3JtZGF0YS5wYXltZW50UmVzaWR1YWxWYWx1ZT0iIixhLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT0iIixhLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9IiIsYS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT0iIixhLmZvcm1kYXRhLnBheW1lbnRGZWVzTGlzdD1bXSxhLmZvcm1kYXRhLnBheW1lbnRJbmNlbnRpdmVzTGlzdD1bXSxhLmZvcm1kYXRhLmJhc2VwYXltZW50PSIiLGEuZm9ybWRhdGEucGF5bWVudFRvdGFsSW5jZW50aXZlPTAsYS5mb3JtZGF0YS5wYXltZW50VG90YWxGZWU9MCxhLmZvcm1kYXRhLnBheW1lbnRHU1Q9MCxhLmZvcm1kYXRhLnBheW1lbnRIU1Q9MCxhLmZvcm1kYXRhLnBheW1lbnRQU1Q9MCxhLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudD0wLAphLmZvcm1kYXRhLnBheW1lbnRLbUFsbG93YW5jZT0wLGEuZm9ybWRhdGEucGF5bWVudEludGVydmFsPSIiLGEuZm9ybWRhdGEucGF5bWVudFJhdGU9IiIsYS5mb3JtZGF0YS50cmFkZUluVmFsdWU9IiIsay5jaGVja1ZhbGlkaXR5KCkpOyQoIi5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciIsYikuc2hvdygpfSk7c2V0VGltZW91dCgoKT0+e2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgQ3RhVHJhY2smJkN0YVRyYWNrLmdldFRyYWNrU3RlcCgiUGF5bWVudENhbGN1bGF0b3JBY3Rpb25Cb3giKSl7bGV0IHA9bmV3IEN1c3RvbUV2ZW50KCJ0cmFja3N0ZXAuY29tcGxldGUiLHtkZXRhaWw6e3N0ZXBJZDoiUGF5bWVudENhbGN1bGF0b3JBY3Rpb25Cb3giLGZvcmNlVXBkYXRlOiEwLG9uQ29tcGxldGU6cT0+e3EuZGF0YXNldC5jb21wbF90eHRfZnI9cS5kYXRhc2V0LmluaXRfY29tcGxfdHh0X2ZyLnJlcGxhY2UoInskUEFZTUVOVFJBVEV9IixjdGFQYXltZW50VGV4dEZyWzBdKS5yZXBsYWNlKCJ7JFBBWU1FTlRZUEV9IiwKY3RhUGF5bWVudFRleHRGclsxXSk7cS5kYXRhc2V0LmNvbXBsX3R4dF9lbj1xLmRhdGFzZXQuaW5pdF9jb21wbF90eHRfZW4ucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLGN0YVBheW1lbnRUZXh0RW5bMF0pLnJlcGxhY2UoInskUEFZTUVOVFlQRX0iLGN0YVBheW1lbnRUZXh0RW5bMV0pO3E9e3BheW1lbnQ6e319O19sb2NhbFN0b3JhZ2VHZXQoInJldGFpbF90cmFja19kYXRhIikmJihxPUpTT04ucGFyc2UoX2xvY2FsU3RvcmFnZUdldCgicmV0YWlsX3RyYWNrX2RhdGEiKSkpO2xldCB0PSJGUkVOQ0giPT09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpP2N0YVBheW1lbnRUZXh0RnI6Y3RhUGF5bWVudFRleHRFbjtxLnBheW1lbnQ9e2xpc3RQcmljZTp0WzJdfHwiIixwYXltZW50OnRbMF18fCIiLHJhdGU6dFsxXXx8IiIscGF5bWVudFZhbHVlOmN0YVBheW1lbnRWYWx1ZXN8fFtdfTtfbG9jYWxTdG9yYWdlU2V0KCJyZXRhaWxfdHJhY2tfZGF0YSIsSlNPTi5zdHJpbmdpZnkocSksCjMwKTtDb29raWVzLnNldCgiY3RhX2RhdGFfdmFsaWQiLDEsMSwiLyIpfX19KTskKCIjIitiWzBdLmlkKyIgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0iKS5vbigicGF5bWVudENoYW5nZWQiLGZ1bmN0aW9uKCl7ZG9jdW1lbnQuZGlzcGF0Y2hFdmVudChwKX0pfX0sMTAwKX1lbHNlICQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX2Vycm9yIixiKS5odG1sKCIiKSx5KGEuZm9ybWRhdGEuY3VycmVudENhcklkKX0saW5pdEVtYWlsOmZ1bmN0aW9uKCl7ay5jaGVja1ZhbGlkaXR5KCl9LGluaXRQaG9uZTpmdW5jdGlvbigpe2suY2hlY2tWYWxpZGl0eSgpfSxpbml0Q29uc2VudDpmdW5jdGlvbigpe2xldCBjPSIvIit3KyIvbXVsdGlzdGVwSW5zdGFudENvbnNlbnQuaHRtbCI7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2NvbnNlbnRfdGV4dF9kaXYiLGIpLmF0dHIoInNyYyIsYyk7d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLGZ1bmN0aW9uKGQpeyhkLm9yaWdpbj13aW5kb3cubG9jYXRpb24ub3JpZ2luKSYmCiJjb25zZW50SWZyYW1lQm90dG9tIj09PWQuZGF0YSYmJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b25fY29uc2VudCIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKX0sITEpfSxpbml0VldDb25zZW50OmZ1bmN0aW9uKCl7bGV0IGMsZCxlOyJRQyI9PShudWxsIT0oZT1udWxsPT0oYz1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzcyk\/dm9pZCAwOm51bGw9PShkPWMucHJvdmluY2UpP3ZvaWQgMDpkLnNob3J0X25hbWUpP2U6JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX0RlYWxlclByb3ZpbmNlIixiKS52YWwoKSk\/KCQoIi52d0NvbnNlbnREaXZzUk9DIikuaGlkZSgpLCQoIi52d0NvbnNlbnREaXZzUUMiKS5zaG93KCkpOigkKCIudndDb25zZW50RGl2c1JPQyIpLnNob3coKSwkKCIudndDb25zZW50RGl2c1FDIikuaGlkZSgpKX0saW5pdERpc2J1cnNtZW50Vlc6ZnVuY3Rpb24oKXtsZXQgYyxkLGU7IlFDIj09KG51bGwhPShlPW51bGw9PQooYz1hLmZvcm1kYXRhLnNwbGl0QWRkcmVzcyk\/dm9pZCAwOm51bGw9PShkPWMucHJvdmluY2UpP3ZvaWQgMDpkLnNob3J0X25hbWUpP2U6JCgiI0ZJTkFOQ0VfTVVMVElTVEVQX0RlYWxlclByb3ZpbmNlIixiKS52YWwoKSk\/KCQoIi5yZW50T3JPd25RdWVzdGlvblZXUUMiKS5zaG93KCksJCgiLnZ3RGlzYnVyc21lbnRRYyIpLnNob3coKSwkKCIubW9udGxoeVBheW1lbnRRdWVzdGlvbiIpLmhpZGUoKSk6KCQoIi5yZW50T3JPd25RdWVzdGlvblZXUUMiKS5oaWRlKCksJCgiLnZ3RGlzYnVyc21lbnRRYyIpLmhpZGUoKSwkKCIubW9udGxoeVBheW1lbnRRdWVzdGlvbiIpLnNob3coKSl9LHZhbGlkYXRlQ29uc2VudDpmdW5jdGlvbigpe2lmKCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uX2NvbnNlbnQiLGIpLmhhc0NsYXNzKCJpc1ZhbGlkIikpcmV0dXJuIGEuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0PSQoIiN3b3JraW5nV2hpbGVJblNjaG9vbF95ZXMiLApiKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpLCEwO2EuZm9ybWRhdGEuY3JlZGl0QnVyZWF1Q3JlZGl0PSQoIiN3b3JraW5nV2hpbGVJblNjaG9vbF9ubyIsYikuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKTtyZXR1cm4hMX0sdmFsaWRhdGVDaGVja2VkQ3JlZGl0QnVyZWF1OmZ1bmN0aW9uKGMpe2lmKCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS5maW5kKCdpbnB1dFtuYW1lPSJjcmVkaXRCdXJlYXVDb25zZW50Il0nKS5pcygiOmNoZWNrZWQiKSlyZXR1cm4gYS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9JCgiI3dvcmtpbmdXaGlsZUluU2Nob29sX3llcyIsYikuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKSwhMDthLmZvcm1kYXRhLmNyZWRpdEJ1cmVhdUNyZWRpdD0kKCIjd29ya2luZ1doaWxlSW5TY2hvb2xfbm8iLGIpLmF0dHIoImRhdGEtdHJhbnNsYXRlZFZhbHVlIik7cmV0dXJuITF9LHZhbGlkYXRlTW9yZVRoYW5aZXJvOmZ1bmN0aW9uKGMpe3JldHVybiAwPApjfSxzZW5kRW1haWw6ZnVuY3Rpb24oKXt2YXIgYz0kKGIpLmZpbmQoIi5lbWFpbFN1YmplY3QiKSxkPSQoYikuZmluZCgiLmVtYWlsQm9keSIpO2M9Yy50ZXh0KCk\/Yy50ZXh0KCk6IiI7ZD1kLmh0bWwoKT9kLmh0bWwoKToiIjtpZihjJiZkKXt2YXIgZT0kKCdbdmFsdWU9IicrYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKTsiIiE9YS5mb3JtZGF0YS5lbXBsb3ltZW50QWRkZWRJbmZvJiYoZSs9IiAoIithLmZvcm1kYXRhLmVtcGxveW1lbnRBZGRlZEluZm8rIikiKTtkPWQucmVwbGFjZSgieyRCT0RZVFlQRX0iLGEuZm9ybWRhdGEudmVoaWNsZVR5cGU\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEudmVoaWNsZVR5cGUrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JFRJVExFfSIsYS5mb3JtZGF0YS50aXRsZT9hLmZvcm1kYXRhLnRpdGxlOiJyZW1vdmVlbXB0eSIpOwpkPWQucmVwbGFjZSgieyRGSVJTVE5BTUV9IixhLmZvcm1kYXRhLmZpcnN0TmFtZSk7ZD1kLnJlcGxhY2UoInskTEFTVE5BTUV9IixhLmZvcm1kYXRhLmxhc3ROYW1lKTtkPWQucmVwbGFjZSgieyRFTUFJTH0iLGEuZm9ybWRhdGEuZW1haWxBZGRyZXNzKTtkPWQucmVwbGFjZSgieyRQSE9ORU5VTUJFUn0iLGEuZm9ybWRhdGEucGhvbmVOdW1iZXIpO2Q9ZC5yZXBsYWNlKCJ7JEJJUlRIREFZfSIsYS5mb3JtZGF0YS5iaXJ0aGRhdGVEYXkrIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlTW9udGgrIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlWWVhcik7ZD1kLnJlcGxhY2UoInskQlVER0VUfSIsYS5mb3JtZGF0YS5idWRnZXQ\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEuYnVkZ2V0KyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UTFlEUklWSU5HfSIsYS5mb3JtZGF0YS5jdXJyZW50bHlEcml2aW5nPyQoJ1t2YWx1ZT0iJysKYS5mb3JtZGF0YS5jdXJyZW50bHlEcml2aW5nKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5URVNUSU1BVEVEQ1JFRElUUkFUSU5HfSIsYS5mb3JtZGF0YS5jcmVkaXRSYXRpbmc\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEuY3JlZGl0UmF0aW5nKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRJTlRFUkVTVEVERE9XTk9QVElPTn0iLGEuZm9ybWRhdGEuZG93bk9wdGlvbnM\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEuZG93bk9wdGlvbnMrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRBRERSRVNTfSIsYS5mb3JtZGF0YS5hZGRyZXNzKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UUkVTSURFTkNFVFlQRX0iLCQoJ1t2YWx1ZT0iJythLmZvcm1kYXRhLnJlbnRPck93bisKJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UT0NDVVBBVElPTkxFTkdUSH0iLGEuZm9ybWRhdGEuYWRkcmVzc195ZWFycysiICIrJCgiI0ZJTkFOQ0VfRk9STV9BRERSRVNTX1RJTUVTX1lFQVJTIikudmFsKCkrIiAiK2EuZm9ybWRhdGEuYWRkcmVzc19tb250aHMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fQUREUkVTU19USU1FU19NT05USFMiKS52YWwoKSk7dmFyIGYsZyxsLHA9bnVsbCE9KGw9bnVsbD09KGY9YS5mb3JtZGF0YS5zcGxpdEFkZHJlc3MpP3ZvaWQgMDpudWxsPT0oZz1mLnByb3ZpbmNlKT92b2lkIDA6Zy5zaG9ydF9uYW1lKT9sOiQoIiNGSU5BTkNFX01VTFRJU1RFUF9EZWFsZXJQcm92aW5jZSIsYikudmFsKCk7ZD1GJiYiUUMiPT1wP2QucmVwbGFjZSgieyRDVVJSRU5UTU9OVEhMWVJFTlR9IiwiJCIrYS5mb3JtZGF0YS5tb250aGx5UGF5bWVudCsiIC0tIERpc2J1cnNlbWVudDogJCIrYS5mb3JtZGF0YS5tb250aGx5RGlzYnVyc2VtZW50KToKZC5yZXBsYWNlKCJ7JENVUlJFTlRNT05USExZUkVOVH0iLCIkIithLmZvcm1kYXRhLm1vbnRobHlQYXltZW50KTtkPWQucmVwbGFjZSgieyRDVVJSRU5UT0NDVVBBVElPTn0iLGUpO2Q9ZC5yZXBsYWNlKCJ7JFdPUktJTkdXSElMRUlOU0NIT09MfSIsIiIhPWEuZm9ybWRhdGEud29ya2luZ1doaWxlSW5TY2hvb2w\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEud29ya2luZ1doaWxlSW5TY2hvb2wrJyInKS5hdHRyKCJkYXRhLXRyYW5zbGF0ZWRWYWx1ZSIpOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRJTkNPTUVTT1VSQ0V9IiwiIiE9YS5mb3JtZGF0YS5vdGhlckVtcGxveW1lbnRTdGF0dXM\/JCgnW3ZhbHVlPSInK2EuZm9ybWRhdGEub3RoZXJFbXBsb3ltZW50U3RhdHVzKyciJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UTU9OVExZSU5DT01FfSIsIiQiK2EuZm9ybWRhdGEubW9udGhseUluY29tZSk7CmQ9ZC5yZXBsYWNlKCJ7JENVUlJFTlRNT05USExZSU5DT01FTEVOR1RIfSIsYS5mb3JtZGF0YS5tb250aGx5SW5jb21lX3llYXJzKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX1lFQVJTIikudmFsKCkrIiAiK2EuZm9ybWRhdGEubW9udGhseUluY29tZV9tb250aHMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfTU9OVEhTIikudmFsKCkpOyIiIT1hLmZvcm1kYXRhLmFkZHJlc3MyPyhkPWQucmVwbGFjZSgieyRQUkVWSU9VU0FERFJFU1N9IixhLmZvcm1kYXRhLmFkZHJlc3MyKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU09DQ1VQQVRJT05MRU5HVEh9IixhLmZvcm1kYXRhLmFkZHJlc3MyX3llYXJzKyIgIiskKCIjRklOQU5DRV9GT1JNX0FERFJFU1NfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5hZGRyZXNzMl9tb250aHMrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fQUREUkVTU19USU1FU19NT05USFMiKS52YWwoKSksCmQ9ZC5yZXBsYWNlKCIjI1BSRVZJT1VTQUREUkVTU0lORk9TVEFSVCMjIiwiIiksZD1kLnJlcGxhY2UoIiMjUFJFVklPVVNBRERSRVNTSU5GT0VORCMjIiwiIikpOmQ9ZC5yZXBsYWNlKC8jI1BSRVZJT1VTQUREUkVTU0lORk9TVEFSVCMjW1xzXFNdKiMjUFJFVklPVVNBRERSRVNTSU5GT0VORCMjLywiIik7ZD1kLnJlcGxhY2UoInskQ1VSUkVOVE1BS0V9IiwiIiE9YS5mb3JtZGF0YS5jdXJyZW50TWFrZT9hLmZvcm1kYXRhLmN1cnJlbnRNYWtlOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENVUlJFTlRNT0RFTH0iLCIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbD9hLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDVVJSRU5UWUVBUn0iLCIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyP2EuZm9ybWRhdGEuY3VycmVudFllYXI6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ1VSUkVOVFNUT0NLTlVNQkVSfSIsIiIhPWEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyPwphLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRjcmVkaXRCdXJlYXVDcmVkaXR9IiwiIiE9YS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ\/YS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ6Ik5PIik7ZD1kLnJlcGxhY2UoInskU0lOfSIsIiIhPWEuZm9ybWRhdGEuU0lOP2EuZm9ybWRhdGEuU0lOOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JEFEREVESU5GT30iLCIiIT1hLmZvcm1kYXRhLmFkZGVkSW5mbz9hLmZvcm1kYXRhLmFkZGVkSW5mbzoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRFTVBMT1lFUn0iLCIiIT1hLmZvcm1kYXRhLmVtcGxveWVyTmFtZT9hLmZvcm1kYXRhLmVtcGxveWVyTmFtZToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRFTVBMT1lFUlBIT05FfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZT9hLmZvcm1kYXRhLmVtcGxveWVyUGhvbmU6InJlbW92ZWVtcHR5Iik7CmQ9ZC5yZXBsYWNlKCJ7JEVNUExPWUVNRU5UU1RBVFVTVElNRX0iLGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfWUVBUlMiKS52YWwoKSsiICIrYS5mb3JtZGF0YS5lbXBsb3ltZW50U3RhdHVzTW9udGgrIiAiKyQoIiNGSU5BTkNFX0ZPUk1fTU9OVEhMWV9JTkNPTUVfVElNRVNfTU9OVEhTIikudmFsKCkpO2Q9ZC5yZXBsYWNlKCJ7JEVNUExPWUVSQUREUkVTU30iLCIiIT1hLmZvcm1kYXRhLmFkZHJlc3NFbXBsb3llcj9hLmZvcm1kYXRhLmFkZHJlc3NFbXBsb3llcjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDT05TRU5UQUNDT1VOVE1PTklUT1JJTkd9IiwiIiE9YS5mb3JtZGF0YS5jb25zZW50QWNjb3VudE1vbml0b3Jpbmc\/MT09YS5mb3JtZGF0YS5jb25zZW50QWNjb3VudE1vbml0b3Jpbmc\/IllFUyI6Ik5PIjoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRDT05TRU5UQ1JFRElUQVNTRVNTTUVOVH0iLAoiIiE9YS5mb3JtZGF0YS5jb25zZW50Q3JlZGl0QXNzZXNzbWVudD8xPT1hLmZvcm1kYXRhLmNvbnNlbnRDcmVkaXRBc3Nlc3NtZW50PyJZRVMiOiJOTyI6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ09OU0VOVFBJUEVEQX0iLCIiIT1hLmZvcm1kYXRhLmNvbnNlbnRQaXBlZGE\/MT09YS5mb3JtZGF0YS5jb25zZW50UGlwZWRhPyJZRVMiOiJOTyI6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskQ09OU0VOVENBU0x9IiwiIiE9YS5mb3JtZGF0YS5jb25zZW50Q2FzbD8xPT1hLmZvcm1kYXRhLmNvbnNlbnRDYXNsPyJZRVMiOiJOTyI6InJlbW92ZWVtcHR5Iik7IiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMj8oZj0kKCdbdmFsdWU9IkZJTkFOQ0VfRk9STV9FTVBMT1lNRU5UX1NUQVRVU19FTVBMT1lFRCJdJykuYXR0cigiZGF0YS10cmFuc2xhdGVkVmFsdWUiKSwiIiE9YS5mb3JtZGF0YS5lbXBsb3ltZW50QWRkZWRJbmZvMiYmKGYrPSIgKCIrYS5mb3JtZGF0YS5lbXBsb3ltZW50QWRkZWRJbmZvMisKIikiKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU09DQ1VQQVRJT059IixmKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVSfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJOYW1lMj9hLmZvcm1kYXRhLmVtcGxveWVyTmFtZTI6InJlbW92ZWVtcHR5IiksZD1kLnJlcGxhY2UoInskUFJFVklPVVNFTVBMT1lFUlBIT05FfSIsIiIhPWEuZm9ybWRhdGEuZW1wbG95ZXJQaG9uZTI\/YS5mb3JtZGF0YS5lbXBsb3llclBob25lMjoicmVtb3ZlZW1wdHkiKSxkPWQucmVwbGFjZSgieyRQUkVWSU9VU0VNUExPWUVNRU5UU1RBVFVTVElNRX0iLGEuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c1llYXIyKyIgIiskKCIjRklOQU5DRV9GT1JNX01PTlRITFlfSU5DT01FX1RJTUVTX1lFQVJTIikudmFsKCkrIiAiK2EuZm9ybWRhdGEuZW1wbG95bWVudFN0YXR1c01vbnRoMisiICIrJCgiI0ZJTkFOQ0VfRk9STV9NT05USExZX0lOQ09NRV9USU1FU19NT05USFMiKS52YWwoKSksZD1kLnJlcGxhY2UoInskUFJFVklPVVNFTVBMT1lFUkFERFJFU1N9IiwKIiIhPWEuZm9ybWRhdGEuYWRkcmVzc0VtcGxveWVyMj9hLmZvcm1kYXRhLmFkZHJlc3NFbXBsb3llcjI6InJlbW92ZWVtcHR5IiksZD1kLnJlcGxhY2UoIiMjUFJFVklPVVNPQ0NVUEFUSU9OU1RBUlQjIyIsIiIpLGQ9ZC5yZXBsYWNlKCIjI1BSRVZJT1VTT0NDVVBBVElPTkVORCMjIiwiIikpOmQ9ZC5yZXBsYWNlKC8jI1BSRVZJT1VTT0NDVVBBVElPTlNUQVJUIyNbXHNcU10qIyNQUkVWSU9VU09DQ1VQQVRJT05FTkQjIy8sIiIpO2Q9ZC5yZXBsYWNlKCJ7JFBBWU1FTlRUWVBFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudFR5cGU\/YS5mb3JtZGF0YS5wYXltZW50VHlwZToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRQQVlNRU5UVEVSTX0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRUZXJtP2EuZm9ybWRhdGEucGF5bWVudFRlcm06InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskUEFZTUVOVERPV05QQVlNRU5UfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudERvd25QYXltZW50PwphLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudDoicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRQQVlNRU5USU5URVJWQUx9IiwiIiE9YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw\/YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskUEFZTUVOVEtNQUxMT1dBTkNFfSIsIiIhPWEuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlP2EuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JFBBWU1FTlRWQUxVRX0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT9hLmZvcm1kYXRhLnBheW1lbnRWYWx1ZToicmVtb3ZlZW1wdHkiKTtkPWQucmVwbGFjZSgieyRQQVlNRU5UUkFURX0iLCIiIT1hLmZvcm1kYXRhLnBheW1lbnRSYXRlP2EuZm9ybWRhdGEucGF5bWVudFJhdGU6InJlbW92ZWVtcHR5Iik7ZD1kLnJlcGxhY2UoInskTk9QQVlNRU5UfSIsYS5mb3JtZGF0YS5ub1BheW1lbnQ\/CiIiOiJyZW1vdmVlbXB0eSIpO2Q9ZC5yZXBsYWNlKCJ7JENSRURJVERFQ0lTSU9OfSIsYS5jcmVkaXREZWNpc2lvbkhUTUw\/YS5jcmVkaXREZWNpc2lvbkhUTUw6InJlbW92ZWVtcHR5Iik7IiIhPWEuZm9ybWRhdGEudHJhZGVJblZhbHVlPyhkPWQucmVwbGFjZSgieyRUUkFERU1BS0V9IixhLmZvcm1kYXRhLnRyYWRlSW5NYWtlKSxkPWQucmVwbGFjZSgieyRUUkFERU1PREVMfSIsYS5mb3JtZGF0YS50cmFkZUluTW9kZWwpLGQ9ZC5yZXBsYWNlKCJ7JFRSQURFWUVBUn0iLGEuZm9ybWRhdGEudHJhZGVJblRyaW0pLGQ9ZC5yZXBsYWNlKCJ7JFRSQURFVFJJTX0iLGEuZm9ybWRhdGEudHJhZGVJblllYXIpLGQ9ZC5yZXBsYWNlKCJ7JFRSQURFVkFMVUV9IixhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSksZD1kLnJlcGxhY2UoIiMjVFJBREVJTklORk9TVEFSVCMjIiwiIiksZD1kLnJlcGxhY2UoIiMjVFJBREVJTklORk9FTkQjIyIsIiIpKTpkPWQucmVwbGFjZSgvIyNUUkFERUlOSU5GT1NUQVJUIyNbXHNcU10qIyNUUkFERUlOSU5GT0VORCMjLywKIiIpO2Q9ay5lbWFpbEJvZHlGb3JNdWx0aURlYWxlcihkKTtib2R5TG93ZXI9ZC50b0xvd2VyQ2FzZSgpO2ZvcihmPTA7LTE8Ym9keUxvd2VyLmluZGV4T2YoInJlbW92ZWVtcHR5Iik7KXtwb3M9Ym9keUxvd2VyLmluZGV4T2YoInJlbW92ZWVtcHR5Iik7aWYoLTE9PXBvcylicmVhaztycGxFbmQ9Ym9keUxvd2VyLmluZGV4T2YoIjxicj4iLHBvcyk7cnBsU3RhcnQ9Ym9keUxvd2VyLmxhc3RJbmRleE9mKCI8YnI+Iixwb3MpO2lmKC0xPT1ycGxFbmR8fC0xPT1ycGxTdGFydClicmVhaztycGxTdHJpbmc9ZC5zdWJzdHJpbmcocnBsU3RhcnQscnBsRW5kKTtkPWQucmVwbGFjZShycGxTdHJpbmcsIiIpO2JvZHlMb3dlcj1kLnRvTG93ZXJDYXNlKCk7ZisrO2lmKDUwPGYpYnJlYWt9ZW1haWxIYW5kbGVyLnN1YmplY3Q9YztlbWFpbEhhbmRsZXIuYm9keT1kO2suc2V0RW1haWxIYW5kbGVyU2VuZCgpO2VtYWlsSGFuZGxlci5tYWlsSUQ9IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiOyIxIj09CnUmJihlbWFpbEhhbmRsZXIubWFpbElEPSJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Mm5kQ2hhbmNlIik7IjEiPT14JiYoZW1haWxIYW5kbGVyLm1haWxJRD0iQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiKTtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iRklOQU5DRSI7ZW1haWxIYW5kbGVyLmlzbW9iaWxlc2l0ZT0xPT0kKCIjaXNtb2JpbGUiKT8iWUVTIjoiTk8iO2VtYWlsSGFuZGxlci51c2VyRW1haWw9YS5mb3JtZGF0YS5lbWFpbEFkZHJlc3M7ZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9YS5mb3JtZGF0YS5maXJzdE5hbWU7ZW1haWxIYW5kbGVyLnVzZXJMYXN0TmFtZT1hLmZvcm1kYXRhLmxhc3ROYW1lO2VtYWlsSGFuZGxlci51c2VyUGhvbmU9YS5mb3JtZGF0YS5waG9uZU51bWJlcjtlbWFpbEhhbmRsZXIuY29udGFjdEFkZHJlc3M9YS5mb3JtZGF0YS5hZGRyZXNzO2VtYWlsSGFuZGxlci5jb250YWN0QmlydGg9YS5mb3JtZGF0YS5iaXJ0aGRhdGVEYXkrIi8iK2EuZm9ybWRhdGEuYmlydGhkYXRlTW9udGgrCiIvIithLmZvcm1kYXRhLmJpcnRoZGF0ZVllYXI7ZW1haWxIYW5kbGVyLnNhbGVzRGVwdD1hLmZvcm1kYXRhLnZlaGljbGVTYWxlc0RlcHQ7ZW1haWxIYW5kbGVyLm1ha2U9YS5mb3JtZGF0YS5jdXJyZW50TWFrZTtlbWFpbEhhbmRsZXIubW9kZWw9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWw7ZW1haWxIYW5kbGVyLnllYXI9YS5mb3JtZGF0YS5jdXJyZW50WWVhcjtlbWFpbEhhbmRsZXIuc3RvY2tOdW1iZXI9YS5mb3JtZGF0YS5jdXJyZW50U3RvY2tOdW1iZXI7ZW1haWxIYW5kbGVyLmRlcGFydG1lbnRCeVN0b2NrPSExO2VtYWlsSGFuZGxlci5za2lwR2VvTG9jPSEwO2VtYWlsSGFuZGxlci5wYXJ0aWFsPSExO2VtYWlsSGFuZGxlci5jYWxsYmFjaz1mdW5jdGlvbihxKXtpZihxKWsuc2V0RmluYW5jZUZvcm1TdGF0dXNUb1NlbnQoKTtlbHNle3ZhciB0PWVtYWlsSGFuZGxlci5fX2xhc3RSZXR1cm58fHt9O3E9Im9iamVjdCI9PT10eXBlb2YgdCYmdC5tZXNzYWdlP3QubWVzc2FnZToiIjsKdmFyIEE9anNfZDJjX2dldF92YWwoIkVNQUlMX0ZBSUxfTUVTU0FHRSIpfHwkKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX0VSUk9SX01TR19VU0VSIixiKS52YWwoKXx8IlRoZXJlIHdhcyBhIHByb2JsZW0gc3VibWl0dGluZyB5b3VyIGFwcGxpY2F0aW9uLiBQbGVhc2UgdHJ5IGFnYWluLiI7Y29uc29sZS5lcnJvcigiZmluYW5jZV9tdWx0aXN0ZXAuc2VuZEVtYWlsIGZhaWxlZCIsdCk7dD0kKCI8ZGl2PiIpLnRleHQocSkuaHRtbCgpOyQoIi5tdWx0aXN0ZXBJbnN0YW50U3Bpbm5lciIpLmhpZGUoKTthLnN0ZXA9MzA7JCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4iLGIpLnNob3coKTskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9lcnJvciIsYikuaHRtbChxP0ErIiAiK3Q6QSl9fTtlbWFpbEhhbmRsZXIuc2VuZE1haWwoITEpfX0sc2V0RmluYW5jZUZvcm1TdGF0dXNUb1NlbnQ6ZnVuY3Rpb24oKXskLmFqYXgoe3VybDoiLyIrdysiL2FqYXgvc2V0RmluYW5jZU11bHRpc3RlcERhdGFTdGF0dXNUb1NlbnQ\/d3N3aWR0aD0wIiwKZGF0YVR5cGU6IkpTT04iLHR5cGU6IlBPU1QiLGRhdGE6e3VzZXJJZDprLnVzZXJJZCgpfSxzdWNjZXNzOmZ1bmN0aW9uKGMpe2xldCBkPW5ldyBDdXN0b21FdmVudCgidHJhY2tzdGVwLmNvbXBsZXRlIix7ZGV0YWlsOntzdGVwSWQ6IkZpbmFuY2VBY3Rpb25Cb3gifX0pO2RvY3VtZW50LmRpc3BhdGNoRXZlbnQoZCk7aWYoIlNVQ0NFU1MiPT1jfHxudWxsPT09YylhLnN0ZXA9MjEsay51c2VySWQoLTEpLGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCJmaW5hbmNlX211bHRpc3RlcC5saW5lYXJfc3RlcCIpLCQoZG9jdW1lbnQuYm9keSkudHJpZ2dlcigibXVsdGlGb3JtRmluYW5jZVN1Ym1pdCIpfX0pfSxyZXNldEZvcm06ZnVuY3Rpb24oKXthLmZvcm1kYXRhPXt2ZWhpY2xlVHlwZToiIixidWRnZXQ6IiIsY3VycmVudGx5RHJpdmluZzoiIixlbWFpbEFkZHJlc3M6IiIsY3JlZGl0UmF0aW5nOiIiLGRvd25PcHRpb25zOiIiLGJpcnRoZGF0ZVllYXI6IiIsYmlydGhkYXRlTW9udGg6IiIsCmJpcnRoZGF0ZURheToiIixhZGRyZXNzOiIiLHNwbGl0QWRkcmVzczpbXSxhZGRyZXNzX3llYXJzOjAsYWRkcmVzc19tb250aHM6MCxhZGRyZXNzMjoiIixzcGxpdEFkZHJlc3MyOltdLGFkZHJlc3MyX3llYXJzOjAsYWRkcmVzczJfbW9udGhzOjAsYWRkcmVzc0VtcGxveWVyOiIiLHNwbGl0QWRkcmVzc0VtcGxveWVyOltdLHJlbnRPck93bjoiIixtb250aGx5UGF5bWVudDowLG1vbnRobHlEaXNidXJzZW1lbnQ6MCxlbXBsb3ltZW50U3RhdHVzOiIiLGVtcGxveW1lbnRBZGRlZEluZm86IiIsZW1wbG95ZXJOYW1lOiIiLGVtcGxveWVyUGhvbmU6IiIsZW1wbG95bWVudFN0YXR1c1llYXI6MCxlbXBsb3ltZW50U3RhdHVzTW9udGg6MCxlbXBsb3ltZW50QWRkZWRJbmZvMjoiIixlbXBsb3llck5hbWUyOiIiLGVtcGxveWVyUGhvbmUyOiIiLGVtcGxveW1lbnRTdGF0dXNZZWFyMjowLGVtcGxveW1lbnRTdGF0dXNNb250aDI6MCxhZGRyZXNzRW1wbG95ZXIyOiIiLHNwbGl0QWRkcmVzc0VtcGxveWVyMjpbXSwKd29ya2luZ1doaWxlSW5TY2hvb2w6IiIsb3RoZXJFbXBsb3ltZW50U3RhdHVzOiIiLG1vbnRobHlJbmNvbWU6MCxtb250aGx5SW5jb21lX3llYXJzOjAsbW9udGhseUluY29tZV9tb250aHM6MCx0aXRsZToiIixmaXJzdE5hbWU6IiIsbGFzdE5hbWU6IiIscGhvbmVOdW1iZXI6IiIsY3VycmVudE1ha2U6IiIsY3VycmVudE1vZGVsOiIiLGN1cnJlbnRNb2RlbFRleHQ6IiIsY3VycmVudFllYXI6IiIsY3VycmVudFN0b2NrTnVtYmVyOiIiLGN1cnJlbnRNaWxlYWdlOjEwLGN1cnJlbnRUcmltOiIiLGN1cnJlbnRTdHlsZWlkOiIiLGN1cnJlbnRDYXJJZDoiIixwYXltZW50VHlwZToiIixwYXltZW50VHlwZVJlYWw6IiIscGF5bWVudFRlcm06IiIscGF5bWVudFJhdGVUeXBlOiIiLHBheW1lbnRWYWx1ZToiIixiYXNlcGF5bWVudDoiIixwYXltZW50VG90YWxJbmNlbnRpdmU6MCxwYXltZW50VG90YWxGZWU6MCxwYXltZW50R1NUOjAscGF5bWVudEhTVDowLHBheW1lbnRQU1Q6MCxwYXltZW50RG93blBheW1lbnQ6MCwKcGF5bWVudEttQWxsb3dhbmNlOjAscGF5bWVudEludGVydmFsOiIiLHBheW1lbnRSYXRlOiIiLHBheW1lbnRSZXNpZHVhbFZhbHVlOjAsbm9QYXltZW50OiExLG11bHRpX2RlYWxlcl9zZW5kVG86IiIsY3JlZGl0QnVyZWF1Q3JlZGl0OiJOTyIsU0lOOiIiLGFkZGVkSW5mbzoiIix2ZWhpY2xlU2FsZXNEZXB0OiJvdGhlciIsdmVoaWNsZVByaWNlOiIiLHZlaGljbGVUcmFuc21pc3Npb246IiIsdmVoaWNsZVRyaW06IiIsdmVoaWNsZUNvbG9yOiIiLGluaXRpYWxUaXRsZVNob3c6ITAsbXVsdGlGcm9tTWluaTohMSx0cmFkZUluTWFrZToiIix0cmFkZUluTW9kZWw6IiIsdHJhZGVJblllYXI6IiIsdHJhZGVJblRyaW06IiIsdHJhZGVJblZhbHVlOiIifX0sY3JlZGl0QXBwU3VtaXNzaW9uOmZ1bmN0aW9uKCl7dmFyIGM9YS5mb3JtZGF0YSxkPSQoIiNzaXRlSUQiKS52YWwoKXx8JCgiI3RvcHNpdGVpZCIpLnZhbCgpO2Muc2l0ZUlkPWQ7Yy5jdXJyZW50RGVwdD1hLmN1cnJlbnREZXB0OyQoIi5tdWx0aXN0ZXBJbnN0YW50U3Bpbm5lciIpLnNob3coKTsKYS5mb3JtZGF0YS5jcmVkaXRCdXJlYXVDcmVkaXQ9IllFUyI7YS5zdGVwPTIxOyQuYWpheCh7dXJsOiIvIit3K2AvYWpheC9zdWJtaXRDcmVkaXRBcHBsaWNhdGlvbj93c3dpZHRoPSR7ZW5jb2RlVVJJQ29tcG9uZW50KCIwIil9YCxkYXRhVHlwZToiSlNPTiIsdHlwZToiUE9TVCIsZGF0YTpjLHN1Y2Nlc3M6ZnVuY3Rpb24oZSl7bGV0IGYsZyxsPWUuYXBwbGljYXRpb25JZDtpZihlLmVycm9yKWY9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9WV0VSUk9SX01TR19VU0VSIixiKS52YWwoKSxnPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfRVJST1JfTVNHX0xFQUQiLGIpLnZhbCgpLGEuY3JlZGl0RGVjaXNpb25IVE1MPWc7ZWxzZSBpZihsKXtpZihmPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfQVBQUk9WQUxfTVNHIixiKS52YWwoKSsiPGJyPjxicj4iK2wsZj1mLnJlcGxhY2UoIiMjVVNFUkVNQUlMIyMiLGMuZW1haWxBZGRyZXNzKSxnPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfU1VDQ0VTU19NU0dfTEVBRCIsCmIpLnZhbCgpKyI8c3Ryb25nPiIrbCsiPC9zdHJvbmc+IixhLmNyZWRpdERlY2lzaW9uSFRNTD1nLGEuY3JlZGl0QXBwbGljYXRpb25JZD1sLGUuYXBwbGljYXRpb25TdGF0dXMmJmUuYXBwbGljYXRpb25TdGF0dXMuc3RhdHVzKXN3aXRjaChlLmFwcGxpY2F0aW9uU3RhdHVzLnN0YXR1cyl7Y2FzZSAiQXBwcm92ZWQiOiQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfQVBQUk9WQUxfTVNHIixiKS52YWwoKTticmVhaztjYXNlICJQZW5kaW5nIjokKCIjRklOQU5DRV9GT1JNX1ZXQ1JFRElUX1BFTkRJTkdfTVNHIixiKS52YWwoKTticmVhaztkZWZhdWx0OiQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfTk9BUFBST1ZBTF9NU0ciLGIpLnZhbCgpfX1lbHNlIGY9JCgiI0ZJTkFOQ0VfRk9STV9WV0NSRURJVF9WV0VSUk9SX01TR19VU0VSIixiKS52YWwoKSxnPSQoIiNGSU5BTkNFX0ZPUk1fVldDUkVESVRfRVJST1JfTVNHX0xFQUQiLGIpLnZhbCgpLGEuY3JlZGl0RGVjaXNpb25IVE1MPWc7JChiKS5maW5kKCIuY29uZmlybWF0aW9uVGl0bGUiKS5oaWRlKCk7CiQoYikuZmluZCgiLmNvbmZpcm1hdGlvblRleHQiKS5oaWRlKCk7JChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5odG1sKGYpOyQoYikuZmluZCgiLmNyZWRpdERlY2lzaW9uIikuc2hvdygpOyQoIi5tdWx0aXN0ZXBJbnN0YW50U3Bpbm5lciIpLmhpZGUoKTtrLnNlbmRFbWFpbCgpfX0pfSxyb3V0ZU9uZUNhbGw6ZnVuY3Rpb24oKXt2YXIgYz1hLmZvcm1kYXRhLGQ9JCgiI3NpdGVJRCIpLnZhbCgpfHwkKCIjdG9wc2l0ZWlkIikudmFsKCk7Yy5zaXRlSWQ9ZDtjLmN1cnJlbnREZXB0PWEuY3VycmVudERlcHQ7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuc2hvdygpO2Euc3RlcD0yMTsoZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmLGcpPT4kanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXtlPWUrIj9jYj0iKzIwMzgzNDc0OTMqTWF0aC5yYW5kb20oKTtsZXQgbD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTsKbC5zZXRBdHRyaWJ1dGUoInNyYyIsZSk7bC5zZXRBdHRyaWJ1dGUoImFzeW5jIiwiZmFsc2UiKTtsZXQgcD1kb2N1bWVudC5oZWFkO3AuaW5zZXJ0QmVmb3JlKGwscC5maXJzdEVsZW1lbnRDaGlsZCk7bC5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwoKT0+e2YoKX0sITEpfSkpfSkoIi9qcy9yb3V0ZTFIYW5kbGVyLmpzIikudGhlbigoKT0+e2xldCBlPW5ldyByb3V0ZTFFdmVudEhhbmRsZXIoITEpO2Uub24oImNvbm5lY3RlZCIsKGYsZyk9Pntjb25zb2xlLmxvZygiQ29ubmVjdGVkIil9KTtlLm9uKCJyZWFkeSIsKGYsZyk9Pntjb25zb2xlLmxvZygiUmVhZHkiKTtlLnJlcXVlc3RDcmVkaXRDaGVjayhjKX0pO2Uub24oImVycm9yIiwoZixnKT0+e2NvbnNvbGUubG9nKCJFcnJvcjogJW8iLGYpO2UuY2xvc2UoKTtrLnNldENyZWRpdERlY2lzaW9uKGYubWVzc2FnZSk7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpO2suc2VuZEVtYWlsKCl9KTtlLm9uKCJjcmVkaXRDaGVja0NvbXBsZXRlIiwKKGYsZyk9Pntjb25zb2xlLmxvZygiQ3JlZGl0IENoZWNrIENvbXBsZXRlOiAlbyIsZik7ZS5jbG9zZSgpO2suc2V0Q3JlZGl0RGVjaXNpb24oZik7JCgiLm11bHRpc3RlcEluc3RhbnRTcGlubmVyIikuaGlkZSgpO2suc2VuZEVtYWlsKCl9KTtlLm9uKCJ3YWl0aW5nT25Sb3V0ZTEiLChmLGcpPT57Y29uc29sZS5sb2coIldhaXRpbmcgb24gUm91dGUgMTogJW8iLGYpfSl9KX0sc2V0Q3JlZGl0RGVjaXNpb246ZnVuY3Rpb24oYyl7dmFyIGQsZT0iIjtpZihjLmpzb24pe3ZhciBmPSJhcHByb3ZlZCI9PWMuanNvbi5zdGF0dXM\/IkFwcHJvdmVkIjoiRGVuaWVkIjt2YXIgZz1udWxsIT0oZD1jLmpzb24uaWQpP2Q6IiI7dmFyIGw7ZD1udWxsIT0obD1jLmpzb24ubGVuZGVyKT9sOiIiO2MuanNvbi5lcnJvcm1zZyYmIk5vIHBheW1lbnQiPT1jLmpzb24uZXJyb3Jtc2cmJihmPWMuanNvbi5lcnJvcm1zZyxkPWc9IiIpO2U9Yy5qc29uLmVycm9ybXNnfWVsc2UgaWYoYy5zdGF0ZSl7Zj0iRGVuaWVkIjsKdmFyIHA7Zz1udWxsIT0ocD1jLnN0YXRlLmlkKT9wOiIiO2Q9IiI7Yy5lcnJvcm1zZyYmIk5vIHBheW1lbnQiPT1jLmVycm9ybXNnJiYoZj1jLmVycm9ybXNnLGQ9Zz0iIik7ZT1jLmVycm9ybXNnP2MuZXJyb3Jtc2c6Yy5lcnJvcn1lbHNlIGY9IkRlbmllZCIsZD1nPSIiOyJBcHByb3ZlZCIhPWY\/KGw9JCgiI0ZJTkFOQ0VfRk9STV9ST1VURU9ORV9OT0FQUFJPVkFMX01TRyIpLnZhbCgpLCJObyBwYXltZW50Ij09Zj8oZj0iRU5HTElTSCI9PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKT9mOiJQYXMgZGUgcGFpZW1lbnQiLGw9bC5yZXBsYWNlKCIkUm91dGVPbmVJRCIsIiIpLnJlcGxhY2UoIiRFcnJvckNvZGUiLGYpKTpsPWc\/bC5yZXBsYWNlKCIkUm91dGVPbmVJRCIsZykucmVwbGFjZSgiJEVycm9yQ29kZSIsZSk6bC5yZXBsYWNlKCIkUm91dGVPbmVJRCIsIiIpLnJlcGxhY2UoIiRFcnJvckNvZGUiLGUpKToobD0kKCIjRklOQU5DRV9GT1JNX1JPVVRFT05FX0FQUFJPVkFMX01TRyIpLnZhbCgpLApsPWwucmVwbGFjZSgiJE1ha2UiLGEuZm9ybWRhdGEuY3VycmVudE1ha2UpLGw9bC5yZXBsYWNlKCIkTW9kZWwiLGEuZm9ybWRhdGEuY3VycmVudE1vZGVsVGV4dCksbD1sLnJlcGxhY2UoIiRZZWFyIixhLmZvcm1kYXRhLmN1cnJlbnRZZWFyKSxsPWwucmVwbGFjZSgiJFZlcnNpb24iLGEuZm9ybWRhdGEuY3VycmVudFRyaW0pLGw9bC5yZXBsYWNlKCIkTGVuZGVyIixkKSxsPWwucmVwbGFjZSgiJFJlZmVyZW5jZUlEIixnKSxmPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykubGVuZ3RoPyQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCk6IiIscD0iIiE9JCgnaW5wdXRbZGF0YS1mb3J2YXI9IkRFQUxFUiJdJykudmFsKCkmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLmxlbmd0aD8kKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS52YWwoKToKJCgiI2hpZGRlbkRlYWxlck5hbWUiKS52YWwoKSxmPWYhPXAmJiIiIT1mP2Y6cCxsPWwucmVwbGFjZSgiJERlYWxlck5hbWUiLGYpLGw9IiIhPWEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyP2wucmVwbGFjZSgiJFN0b2NrIixhLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcik6bC5yZXBsYWNlKCIoU3RvY2sgJFN0b2NrKSIsIiIpLGY9IkVOR0xJU0giPT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCk\/IkFwcHJvdmVkIjoiQXBwcm91dsOpIik7ZCYmKGYrPSIgIitkKTtnJiYoZis9IiAoIitnKyIpIik7ZSYmKGYrPSJcbiIrZSk7Zz1bXTtjLnJvdXRlMWlkJiZnLnB1c2goYy5yb3V0ZTFpZCk7Yy5zdGF0ZSYmYy5zdGF0ZS5pZCYmZy5wdXNoKGMuc3RhdGUuaWQpO2lmKGMuaGlzdG9yeSlmb3IoZT0wO2U8Yy5oaXN0b3J5Lmxlbmd0aDtlKyspYy5oaXN0b3J5W2VdLmlkJiZnLnB1c2goYy5oaXN0b3J5W2VdLmlkKTtlbWFpbEhhbmRsZXIub25BZnRlckxlYWRDcmVhdGVkPQp7YWN0aW9uOiJST1VURU9ORSIsY29udmVyc2F0aW9uSWRzOmd9O2EuY3JlZGl0RGVjaXNpb25IVE1MPWY7JChiKS5maW5kKCIuY29uZmlybWF0aW9uVGl0bGUiKS5oaWRlKCk7JChiKS5maW5kKCIuY29uZmlybWF0aW9uVGV4dCIpLmhpZGUoKTskKGIpLmZpbmQoIi5jcmVkaXREZWNpc2lvbiIpLnRleHQobCk7JChiKS5maW5kKCIuY3JlZGl0RGVjaXNpb24iKS5zaG93KCl9LHNldEN1cnJlbnRNYWtlTW9kZWxZZWFyOmZ1bmN0aW9uKCl7aWYoIjEiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNJbnN0YW50IixiKS52YWwoKSl7YS5zdGVwPTA7YS5uZXh0U3RlcD1MO2EuZm9ybWRhdGEubm9QYXltZW50PSExO2EuY2FsY3VsYXRvckZ1bmN0aW9ucz1udWxsO2EuZm9ybWRhdGEucGF5bWVudFR5cGU9IiI7YS5mb3JtZGF0YS5wYXltZW50VHlwZVJlYWw9IiI7YS5mb3JtZGF0YS5wYXltZW50VGVybT0iIjthLmZvcm1kYXRhLnBheW1lbnRSYXRlVHlwZT0iIjthLmZvcm1kYXRhLnBheW1lbnRSZXNpZHVhbFZhbHVlPQoiIjthLmZvcm1kYXRhLnBheW1lbnRWYWx1ZT0iIjthLmZvcm1kYXRhLnZlaGljbGVJbml0aWFsUHJpY2U9IiI7YS5mb3JtZGF0YS52ZWhpY2xlRmluYWxQcmljZT0iIjthLmZvcm1kYXRhLnBheW1lbnRGZWVzTGlzdD1bXTthLmZvcm1kYXRhLnBheW1lbnRJbmNlbnRpdmVzTGlzdD1bXTthLmZvcm1kYXRhLmJhc2VwYXltZW50PSIiO2EuZm9ybWRhdGEucGF5bWVudFRvdGFsSW5jZW50aXZlPTA7YS5mb3JtZGF0YS5wYXltZW50VG90YWxGZWU9MDthLmZvcm1kYXRhLnBheW1lbnRHU1Q9MDthLmZvcm1kYXRhLnBheW1lbnRIU1Q9MDthLmZvcm1kYXRhLnBheW1lbnRQU1Q9MDthLmZvcm1kYXRhLnBheW1lbnREb3duUGF5bWVudD0wO2EuZm9ybWRhdGEudHJhZGVJblZhbHVlPSIiO2EuZm9ybWRhdGEucGF5bWVudEttQWxsb3dhbmNlPTA7YS5mb3JtZGF0YS5wYXltZW50SW50ZXJ2YWw9IiI7YS5mb3JtZGF0YS5wYXltZW50UmF0ZT0iIjt2YXIgYz1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IiKTsKYy5yZXBsYWNlV2l0aChjLmNsb25lTm9kZSghMCkpfWEuZm9ybWRhdGEuY3VycmVudE1ha2U9JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS5sZW5ndGg\/JCgiI3BvcHVwbWFrZU11bHRpc3RlcEZvcm0iKS52YWwoKTphLmZvcm1kYXRhLmN1cnJlbnRNYWtlO2EuZm9ybWRhdGEuY3VycmVudE1vZGVsPSQoIiNwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIpLmxlbmd0aD8kKCIjcG9wdXBtb2RlbE11bHRpc3RlcEZvcm0iKS52YWwoKTphLmZvcm1kYXRhLmN1cnJlbnRNb2RlbDthLmZvcm1kYXRhLmN1cnJlbnRZZWFyPSQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikubGVuZ3RoJiYwIT0kKCIjcG9wdXB5ZWFyTXVsdGlzdGVwRm9ybSIpLnZhbCgpPyQoIiNwb3B1cHllYXJNdWx0aXN0ZXBGb3JtIikudmFsKCk6YS5mb3JtZGF0YS5jdXJyZW50WWVhcjthLmZvcm1kYXRhLmN1cnJlbnRTdG9ja051bWJlcj0kKCIjcG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iKS5sZW5ndGg\/JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCk6CmEuZm9ybWRhdGEuY3VycmVudFN0b2NrTnVtYmVyO3ZhciBkPSQoIiN0b3BjYXJpZE11bHRpc3RlcEZvcm0iKS52YWwoKTswPT1wYXJzZUludChkKSYmKGQ9IiIpO2lmKCIiIT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlJiYiIiE9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwmJiIiIT1hLmZvcm1kYXRhLmN1cnJlbnRZZWFyfHwiIiE9ZClpZihkKSQuZ2V0SlNPTigiL2pzL2pzb24vIitkKyIuanNvbiIsZnVuY3Rpb24oZil7YS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJ1c2VkIjthLmN1cnJlbnREZXB0PSJVU0VEIjtpZihmLmlzbmV3fHxmLmRlbW8mJiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9ERU1PQVNORVciXScsYikudmFsKCkpYS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJuZXciLGEuY3VycmVudERlcHQ9Ik5FV0lOViIsYS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD1mLnN0eWxlSWQ7MDxmLm1ha2VjZXJ0JiYoYS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0PSJjcG8iKTsKdmFyIGc9KGYudHJhbnNtaXNzaW9uRU4rIiIpLm1hdGNoKC8oYXV0b21hdGljfG1hbnVhbCkvaSk7Zz1nP2dbMF06IiI7YS5mb3JtZGF0YS52ZWhpY2xlQ29sb3I9Zi5jb2xvckVOO2EuZm9ybWRhdGEudmVoaWNsZVByaWNlPWYub3JpZ2luYWxQcmljZTthLmZvcm1kYXRhLnZlaGljbGVUYW5zbWlzc2lvbj1nO2EuZm9ybWRhdGEudmVoaWNsZVRyaW09Zi52ZXJzaW9uO2EuZm9ybWRhdGEuY3VycmVudFRyaW09Zi52ZXJzaW9uO2EuZm9ybWRhdGEuY3VycmVudENhcklkPWQ7YS5mb3JtZGF0YS5jdXJyZW50TWlsZWFnZT1mLm1pbGVzO3N3aXRjaChmLmJvZHlUeXBlSUQpe2Nhc2UgIlNVViI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfU1VWIjticmVhaztjYXNlICJUUlVDSyI6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0iQk9EWVRZUEVfVFJVQ0siO2JyZWFrO2Nhc2UgIk1JTklWQU4iOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX01JTklWQU4iO2JyZWFrO2RlZmF1bHQ6YS5mb3JtZGF0YS52ZWhpY2xlVHlwZT0KIkJPRFlUWVBFX0NBUiJ9MD09YS5zdGVwJiZhLm5leHQoITApO2sucG9wdXBMYXVuY2hlZFRyYWNrKCl9KTtlbHNle2EuZm9ybWRhdGEudmVoaWNsZVNhbGVzRGVwdD0ibmV3IjtjPSJFTkdMSVNIIj09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyItZW4iOiItZnIiO3VybD0iL2pzb24vIithLmZvcm1kYXRhLmN1cnJlbnRNYWtlLnJlcGxhY2UoIi0iLCJfIikucmVwbGFjZSgiICIsIl8iKSsiLSIrYS5mb3JtZGF0YS5jdXJyZW50TW9kZWwucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIithLmZvcm1kYXRhLmN1cnJlbnRZZWFyK2MrIi5qc29uIjtpZigiQk1XIj09YS5mb3JtZGF0YS5jdXJyZW50TWFrZXx8Ik1lcmNlZGVzLUJlbnoiPT1hLmZvcm1kYXRhLmN1cnJlbnRNYWtlKXt2YXIgZT0kKCIjdGV4dE1vZGVsT3ZlcnJpZGUiKS5sZW5ndGgmJiQoIiN0ZXh0TW9kZWxPdmVycmlkZSIpLnZhbCgpLmxlbmd0aD8kKCIjdGV4dE1vZGVsT3ZlcnJpZGUiKS52YWwoKToKYS5mb3JtZGF0YS5jdXJyZW50TW9kZWw7dXJsPSIvanNvbi8iK2EuZm9ybWRhdGEuY3VycmVudE1ha2UucmVwbGFjZSgiLSIsIl8iKS5yZXBsYWNlKCIgIiwiXyIpKyItIitlLnJlcGxhY2UoIi0iLCJfIikucmVwbGFjZSgiICIsIl8iKSsiLSIrYS5mb3JtZGF0YS5jdXJyZW50WWVhcitjKyIuanNvbiJ9MDw9YS5mb3JtZGF0YS5jdXJyZW50TW9kZWwuaW5kZXhPZigiaHlicmlkIikmJihlPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIl0nKS5sZW5ndGgmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIl0nKS52YWwoKS5sZW5ndGg\/JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik1PREVMRk9SRU1BSUwiXScpLnZhbCgpOmEuZm9ybWRhdGEuY3VycmVudE1vZGVsLHVybD0iL2pzb24vIithLmZvcm1kYXRhLmN1cnJlbnRNYWtlLnJlcGxhY2UoIi0iLCJfIikrIi0iK2UucmVwbGFjZSgiLSIsIl8iKSsiLSIrYS5mb3JtZGF0YS5jdXJyZW50WWVhcitjKyIuanNvbiIpOwokKCIucGF5bWVudENhbGN1bGF0b3JWRFAiKS5sZW5ndGg\/YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIucGF5bWVudENhbGN1bGF0b3JWRFAiKS5hdHRyKCJkYXRhLXN0eWxlaWQiKTokKCIucGF5bWVudENhbGNCdG4iKS5sZW5ndGg\/YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZD0kKCIucGF5bWVudENhbGNCdG4iKS5hdHRyKCJkYXRhLXN0eWxlaWQiKTokKCIjYWN0aXZlU3R5bGVJRCIpLmxlbmd0aCYmKGEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQ9JCgiI2FjdGl2ZVN0eWxlSUQiKS52YWwoKSk7JC5nZXRKU09OKHVybCkuZG9uZShmdW5jdGlvbihmKXtpZihmKXtzd2l0Y2goZi5zZWN0aW9uKXtjYXNlICJzdXYiOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX1NVViI7YnJlYWs7Y2FzZSAidHJ1Y2tzIjphLmZvcm1kYXRhLnZlaGljbGVUeXBlPSJCT0RZVFlQRV9UUlVDSyI7YnJlYWs7Y2FzZSAibWluaXZhbnMiOmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX01JTklWQU4iOwpicmVhaztkZWZhdWx0OmEuZm9ybWRhdGEudmVoaWNsZVR5cGU9IkJPRFlUWVBFX0NBUiJ9IiIhPWEuZm9ybWRhdGEuY3VycmVudFN0eWxlaWQmJmYuc3R5bGVzLmZvckVhY2goZnVuY3Rpb24oZyl7Zy5pZD09YS5mb3JtZGF0YS5jdXJyZW50U3R5bGVpZCYmKGEuZm9ybWRhdGEuY3VycmVudFRyaW09IiIhPWcudHJpbT9nLnRyaW06Zy5DRlN0eWxlTmFtZSxhLmZvcm1kYXRhLnZlaGljbGVQcmljZT1nLm1zcnBBbGxJbil9KX19KS5hbHdheXMoZnVuY3Rpb24oKXswPT1hLnN0ZXAmJihhLm5leHQoITApLGsucG9wdXBMYXVuY2hlZFRyYWNrKCkpfSl9ZWxzZSIiIT1hLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyYmMjEhPWEuc3RlcCYmIjEiIT0kKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjT1BFTkVERlJPTUlNQUdFUE9QVVAiLGIpLnZhbCgpJiZhLnB1c2hQYXJ0aWFsJiZrLnB1c2hEYXRhVG9TZXJ2ZXIoKSwtMT09YS5vcHRpb25hbFN0ZXAuaW5kZXhPZihhLnN0ZXApJiZhLm5leHQoITApLAprLnBvcHVwTGF1bmNoZWRUcmFjaygpfSxnZXRDbGllbnRTdG9yYWdlRGF0YTpmdW5jdGlvbihjKXtsZXQgZD0iIjsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiYoZD1jbGllbnRTdG9yYWdlLmdldChjKSk7cmV0dXJuIGR9LHNldENsaWVudFN0b3JhZ2VEYXRhOmZ1bmN0aW9uKGMsZCl7InVuZGVmaW5lZCIhPT10eXBlb2YgY2xpZW50U3RvcmFnZSYmY2xpZW50U3RvcmFnZS5zZXQoYyxkKX0sc2V0Q2xpZW50U3RvcmFnZURhdGFWYWx1ZXM6ZnVuY3Rpb24oKXsidW5kZWZpbmVkIiE9PXR5cGVvZiBjbGllbnRTdG9yYWdlJiYoIiIhPT1hLmZvcm1kYXRhLmZpcnN0TmFtZSYmay5zZXRDbGllbnRTdG9yYWdlRGF0YSgiZmlyc3RuYW1lIixhLmZvcm1kYXRhLmZpcnN0TmFtZSksIiIhPT1hLmZvcm1kYXRhLmxhc3ROYW1lJiZrLnNldENsaWVudFN0b3JhZ2VEYXRhKCJsYXN0bmFtZSIsYS5mb3JtZGF0YS5sYXN0TmFtZSksIiIhPT1hLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyYmCmsuc2V0Q2xpZW50U3RvcmFnZURhdGEoImVtYWlsIixhLmZvcm1kYXRhLmVtYWlsQWRkcmVzcyksIiIhPT1hLmZvcm1kYXRhLnBob25lTnVtYmVyJiZrLnNldENsaWVudFN0b3JhZ2VEYXRhKCJwaG9uZSIsYS5mb3JtZGF0YS5waG9uZU51bWJlcikpfSxzZXREZXBhcnRtZW50OmZ1bmN0aW9uKCl7dmFyIGM9ZW1haWxIYW5kbGVyLmdldERlcCgpO2lmKCJORVciIT1jfHwiTkVXSU5WIiE9Y3x8IlVTRUQiIT1jKWM9Ik5FVyI7YS5jdXJyZW50RGVwdD1jOyJORVciIT1jfHwiY2FyZGV0YWlsLmh0bWwiIT0kKCIjUEFHRUlEIikudmFsKCkmJiJ1c2VkY2Fycy5odG1sIiE9JCgiI1BBR0VJRCIpLnZhbCgpfHwoYS5jdXJyZW50RGVwdD0iTkVXSU5WIil9LHNldFRyYWRlSW46ZnVuY3Rpb24oKXthLmZvcm1kYXRhLnRyYWRlSW5NYWtlPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5NYWtlIl0nKS52YWwoKTthLmZvcm1kYXRhLnRyYWRlSW5Nb2RlbD0kKGIpLmZpbmQoJ2lucHV0W25hbWU9ImZpbmFuY2VUcmFkZUluTW9kZWwiXScpLnZhbCgpOwphLmZvcm1kYXRhLnRyYWRlSW5ZZWFyPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5ZZWFyIl0nKS52YWwoKTthLmZvcm1kYXRhLnRyYWRlSW5UcmltPSQoYikuZmluZCgnaW5wdXRbbmFtZT0iZmluYW5jZVRyYWRlSW5UcmltIl0nKS52YWwoKTtsZXQgYz0kKGIpLmZpbmQoJ2lucHV0W25hbWU9ImZpbmFuY2VUcmFkZUluVmFsdWUiXScpLnZhbCgpLGQ9JChiKS5maW5kKCdpbnB1dFtuYW1lPSJmaW5hbmNlVHJhZGVJblZhbHVlIl0nKS5hdHRyKCJkYXRhLWN1cnJlbnQiKTtkJiYiIj09YS5mb3JtZGF0YS50cmFkZUluVmFsdWU\/YS5mb3JtZGF0YS50cmFkZUluVmFsdWU9ZDoiIj09YS5mb3JtZGF0YS50cmFkZUluVmFsdWUmJihhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZT1jKTsiIiE9YS5mb3JtZGF0YS50cmFkZUluVmFsdWUmJigkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiLGIpLnZhbChhLmZvcm1kYXRhLnRyYWRlSW5WYWx1ZSksJCgiLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIiwKYikuYXR0cigibWF4IixjKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluRmluYWwiLGIpLnNob3coKSwkKCIucGF5bWVudENhbGN1bGF0b3JUcmFkZUluSW5pdGlhbCIsYikuaGlkZSgpKX0sZ2V0Q3VycmVudEJ1ZGdldDpmdW5jdGlvbihjKXtyZXR1cm4iMSI9PSQoJ2lucHV0W25hbWU9IkZJTkFOQ0VfTVVMVElTVEVQX0hJR0hfQlVER0VUX0NIRUNLIl0nKS52YWwoKT81MDA+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfVU5ERVJfNTAwIjo2NzY8PWMmJjg1MD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzY3Nl9BTkRfODUwIjo4NTE8PWMmJjExMDA+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl84NTFfQU5EXzExMDAiOjEzNTA8Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9PVkVSXzEzNTEiOjUwMTw9YyYmNjc1Pj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNTAxX0FORF82NzUiOiJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMTEwMV9BTkRfMTM1MCI6CiIxIj09JCgnaW5wdXRbbmFtZT0iRklOQU5DRV9NVUxUSVNURVBfVkVSWUhJR0hfQlVER0VUX0NIRUNLIl0nKS52YWwoKT85MDA+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfVU5ERVJfOTAwIjoxMTUxPD1jJiYxNDAwPj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMTE1MV9BTkRfMTQwMCI6MTQwMTw9YyYmMTY1MD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzE0MDFfQU5EXzE2NTAiOjE5MDA8Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9PVkVSXzE5MDEiOjkwMTw9YyYmMTE1MD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzkwMV9BTkRfMTE1MCI6IkZJTkFOQ0VfRk9STV9CVURHRVRfQkVUV0VFTl8xNjUxX0FORF8xOTAwIjozNTA+PWM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfVU5ERVJfMzUwIjo2MDE8PWMmJjc1MD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzYwMV9BTkRfNzUwIjo3NTE8PWMmJjkwMD49Yz8iRklOQU5DRV9GT1JNX0JVREdFVF9CRVRXRUVOXzc1MV9BTkRfOTAwIjoKOTAwPGM\/IkZJTkFOQ0VfRk9STV9CVURHRVRfT1ZFUl85MDEiOjM1MTw9YyYmNDc1Pj1jPyJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fMzUxX0FORF80NzUiOiJGSU5BTkNFX0ZPUk1fQlVER0VUX0JFVFdFRU5fNDc2X0FORF82MDAifSxzZXREZWFsZXJTZWxlY3RFbWFpbDpmdW5jdGlvbigpe3Nlc3Npb25TdG9yYWdlLmdldEl0ZW0oImRlYWxlclNlbGVjdFZhbHVlcyIpJiYoZW1haWxIYW5kbGVyLnNldERlYWxlclNlbGVjdEVtYWlscygpLGEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0tMSl9LGhhc0RlYWxlclNlbGVjdFZhbHVlczpmdW5jdGlvbigpe3JldHVybiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCJkZWFsZXJTZWxlY3RWYWx1ZXMiKX0sc2V0RW1haWxIYW5kbGVyU2VuZDpmdW5jdGlvbigpe2lmKDA9PWEuZm9ybWRhdGEubXVsdGlGcm9tTWluaXx8ImZhbHNlIj09YS5mb3JtZGF0YS5tdWx0aUZyb21NaW5pKWVtYWlsSGFuZGxlci5zZW5kVG89JCgiI0ZJTkFOQ0VfRk9STV9TRU5EVE9fRU1BSUwiLApiKS52YWwoKSxlbWFpbEhhbmRsZXIuc2VuZFRvQURGRm9ybWF0PSQoIiNGSU5BTkNFX0ZPUk1fU0VORFRPQURGX0VNQUlMIixiKS52YWwoKSxlbWFpbEhhbmRsZXIuZGVhbGVyTmFtZT0iIiE9JCgiI0ZJTkFOQ0VfRk9STV9ERUFMRVJOQU1FIixiKS52YWwoKT8kKCIjRklOQU5DRV9GT1JNX0RFQUxFUk5BTUUiLGIpLnZhbCgpOmVtYWlsSGFuZGxlci5kZWFsZXJOYW1lO2VtYWlsSGFuZGxlci52ZWhpY2xlVHlwZT1hLmZvcm1kYXRhLnZlaGljbGVUeXBlO2VtYWlsSGFuZGxlci5jYXJpZD1hLmZvcm1kYXRhLmN1cnJlbnRDYXJJZDtpZihrLmhhc0RlYWxlclNlbGVjdFZhbHVlcygpKWsuc2V0RGVhbGVyU2VsZWN0RW1haWwoKTtlbHNlIGlmKC0xPT09Wy0xLCItMSIsIiJdLmluZGV4T2YoYS5mb3JtZGF0YS5tdWx0aV9kZWFsZXJfc2VuZFRvKSl7dmFyIGM9JCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmZpbmQoInNlbGVjdCIpO2M9Yy5sZW5ndGg\/YzokKCcjbWluaWZvcm0gW25hbWU9Im11bHRpX2RlYWxlcl9zZW5kVG8iXScpOwpjLmxlbmd0aCYmKGM9Yy5maW5kKCI6c2VsZWN0ZWQiKSxlbWFpbEhhbmRsZXIuc2VuZFRvPWMuZGF0YSgiZW1haWxmaW5hbmNlIil8fGMuZGF0YSgiZW1haWwiKSxlbWFpbEhhbmRsZXIuc2VsZWN0ZWRTZW5kVG89Yy5kYXRhKCJlbWFpbGZpbmFuY2UiKXx8Yy5kYXRhKCJlbWFpbCIpLGVtYWlsSGFuZGxlci5zZW5kVG9BREZGb3JtYXQ9Yy5kYXRhKCJlbWFpbGFkZmZpbmFuY2UiKXx8Yy5kYXRhKCJlbWFpbGFkZiIpLGVtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUb0FERkZvcm1hdD1jLmRhdGEoImVtYWlsYWRmZmluYW5jZSIpfHxjLmRhdGEoImVtYWlsYWRmIiksZW1haWxIYW5kbGVyLmRlYWxlck5hbWU9Yy50ZXh0KCksZW1haWxIYW5kbGVyLmhhc1NlbGVjdGVkTXVsdGlBZGRyZXNzPSEwLGM9e3NlbmRUbzplbWFpbEhhbmRsZXIuc2VuZFRvLHNlbGVjdGVkU2VuZFRvOmVtYWlsSGFuZGxlci5zZWxlY3RlZFNlbmRUbyxzZW5kVG9BREZGb3JtYXQ6ZW1haWxIYW5kbGVyLnNlbmRUb0FERkZvcm1hdCwKc2VsZWN0ZWRTZW5kVG9BREZGb3JtYXQ6ZW1haWxIYW5kbGVyLnNlbGVjdGVkU2VuZFRvQURGRm9ybWF0LGRlYWxlck5hbWU6Yy50ZXh0KCkudHJpbSgpLGRlYWxlcmlkOmMuZGF0YSgiZGVhbGVyaWQiKSxvcHRpb25pZDpjLnZhbCgpfSxzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJkZWFsZXJTZWxlY3RWYWx1ZXMiLEpTT04uc3RyaW5naWZ5KGMpKSl9fSxpbml0U2VsZWN0TXVsdGlEZWFsZXI6ZnVuY3Rpb24oKXtpZihrLmhhc0RlYWxlclNlbGVjdFZhbHVlcygpKWsuc2V0RGVhbGVyU2VsZWN0RW1haWwoKSxhLm5leHQoITApO2Vsc2V7dmFyIGM9JCgiI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiIpO2lmKDA9PT1jLmxlbmd0aClhLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG89LTEsYS5uZXh0KCEwKTtlbHNle3ZhciBkPSQoIiNQT1NUX0xFQURfU0VORF9UT19ERUFMRVJfVFlQRV9TRUxFQ1QiKS5sZW5ndGg\/JCgiI1BPU1RfTEVBRF9TRU5EX1RPX0RFQUxFUl9UWVBFX1NFTEVDVCIpLnZhbCgpOgoibG9jYXRpb24iOygwPCQoIiN0YXJnZXRQYWdlIikubGVuZ3RoJiYiQ0FSREVUQUlMUyI9PT0kKCIjdGFyZ2V0UGFnZSIpLnZhbCgpfHwiIiE9JCgiI3BvcHVwc3RvY2tudW1iZXJNdWx0aXN0ZXBGb3JtIikudmFsKCkmJiIxIj09JCgiI0ZJTkFOQ0VfRk9STV9BRE1JTl9TSE9XUEhZU0lDQUxBRERSRVNTX0NIRUNLIikudmFsKCkpJiYibG9jYXRpb24iPT1kPyhhLmZvcm1kYXRhLm11bHRpX2RlYWxlcl9zZW5kVG89LTEsYS5uZXh0KCEwKSk6IiI9PT0kKCIjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyIsYikudGV4dCgpLnRyaW0oKSYmKCQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIixiKS5hcHBlbmQoYy5odG1sKCkpLCIiIT09YS5mb3JtZGF0YS5jdXJyZW50TWFrZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgbXVsdGlEZWFsZXJTZWxlY3QmJihjPSQoIiNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzIixiKS5maW5kKCJzZWxlY3QiKSxtdWx0aURlYWxlclNlbGVjdC5maWx0ZXIoYykuYnlNYWtlKGEuZm9ybWRhdGEuY3VycmVudE1ha2UpKSwKJCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmZpbmQoInNlbGVjdCIpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7JCh0aGlzKS5jc3MoImJvcmRlci1jb2xvciIsIiIpO2EuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUbz0kKHRoaXMpLnZhbCgpO2suY2hlY2tWYWxpZGl0eSgpfSkpfX19LG11bHRpRGVhbGVyRm9ybVN0YXR1czpmdW5jdGlvbigpe3JldHVybiAwPT09JCgiI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbiIpLmxlbmd0aD8hMDoiIiE9PWEuZm9ybWRhdGEubXVsdGlfZGVhbGVyX3NlbmRUb30sZW1haWxCb2R5Rm9yTXVsdGlEZWFsZXI6ZnVuY3Rpb24oYyl7aWYoMD09PSQoIiNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24iKS5sZW5ndGgpcmV0dXJuIGM7dmFyIGQ9JCgiI211bHRpc3RlcC1tdWx0aWFkZHJlc3MiLGIpLmZpbmQoInNlbGVjdCA6c2VsZWN0ZWQiKSxlPSQoIiNwb3N0TGVhZExhYmVsIikudmFsKCk7InVuZGVmaW5lZCIhPT10eXBlb2YgZSYmZC5sZW5ndGg\/CihlPWUucmVwbGFjZSgieyRNVUxUSURFQUxFUk5BTUV9IixkLnRleHQoKSkucmVwbGFjZSgieyRQT1NUX0xFQURfRU1BSUxTfSIsIiIpLGM9Yy5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IixlKSk6JCgnaW5wdXRbZGF0YS1mb3J2YXI9Ik9WRVJXUklUVEVSREVBTEVSIl0nKS5sZW5ndGgmJiIiIT0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpJiYkKCdpbnB1dFtkYXRhLWZvcnZhcj0iREVBTEVSIl0nKS5sZW5ndGgmJiQoJ2lucHV0W2RhdGEtZm9ydmFyPSJPVkVSV1JJVFRFUkRFQUxFUiJdJykudmFsKCkhPSQoJ2lucHV0W2RhdGEtZm9ydmFyPSJERUFMRVIiXScpLnZhbCgpPyhkPSQoImJvZHkiKS5oYXNDbGFzcygiRlJFTkNIIik\/IkNvbmNlc3Npb24gb++\/vSBlc3Qgc2l0de+\/vSBsZSB277+9aGljdWxlOiAiOiJEZWFsZXIgd2hlcmUgdGhlIHZlaGljbGUgaXMgbG9jYXRlZDogIixkKz0kKCdpbnB1dFtkYXRhLWZvcnZhcj0iT1ZFUldSSVRURVJERUFMRVIiXScpLnZhbCgpLApjPWMucmVwbGFjZSgieyRERUFMRVJfU0VORFRPfSIsZCkpOmM9Yy5yZXBsYWNlKC88YnJccz9cLz57XCRERUFMRVJfU0VORFRPfShiclxzP1wvKT8vLCIiKS5yZXBsYWNlKCJ7JERFQUxFUl9TRU5EVE99IiwiIik7cmV0dXJuIGN9LGNoZWNrVmFsaWRpdHk6ZnVuY3Rpb24oKXtpZihhLnZhbGlkYXRpb25SdWxlcy5oYXNPd25Qcm9wZXJ0eSgic3RlcCIrYS5zdGVwKSlmb3IodmFyIGM9MDtjPGEudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLnN0ZXBdLmxlbmd0aDtjKyspaWYoa1thLnZhbGlkYXRpb25SdWxlc1sic3RlcCIrYS5zdGVwXVtjXS5mdW5jXShhLmZvcm1kYXRhW2EudmFsaWRhdGlvblJ1bGVzWyJzdGVwIithLnN0ZXBdW2NdLnZhbHVlXSkpJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b24iLGIpLmFkZENsYXNzKCJpc1ZhbGlkIiksJCgiI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4gYnV0dG9uI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idXR0b25fY29uc2VudFZXIiwKYikuYWRkQ2xhc3MoImlzVmFsaWQiKTtlbHNleyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uIixiKS5yZW1vdmVDbGFzcygiaXNWYWxpZCIpOyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uX2NvbnNlbnRWVyIsYikucmVtb3ZlQ2xhc3MoImlzVmFsaWQiKTticmVha31lbHNlICQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uIixiKS5hZGRDbGFzcygiaXNWYWxpZCIpLCQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnRuIGJ1dHRvbiNmaW5hbmNlX211bHRpc3RlcF9mb3JtX25leHRfYnV0dG9uX2NvbnNlbnRWVyIsYikuYWRkQ2xhc3MoImlzVmFsaWQiKX0scG9wdXBMYXVuY2hlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiUG9wdXAgbGF1bmNoZWQiKTsKIWsudXNlcklkKCkmJmEuZmlyc3RTdGVwJiZsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgiZmluYW5jZV9tdWx0aXN0ZXAubGluZWFyX3N0ZXAiLDEpO2suc3RlcFRyaWdnZXIoITEpfSxzdGVwMlZpZXdlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiU3RlcCAyIHZpZXdlZCIpfSxlbWFpbFN0ZXBWaWV3ZWRUcmFjazpmdW5jdGlvbigpe2goIkVtYWlsIHN0ZXAgdmlld2VkIil9LHBob25lU3RlcFZpZXdlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiUGhvbmUgc3RlcCB2aWV3ZWQiKX0sZW1haWxQcm92aWRlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiRW1haWwgcHJvdmlkZWQiKX0scGhvbmVQcm92aWRlZFRyYWNrOmZ1bmN0aW9uKCl7aCgiUGhvbmUgcHJvdmlkZWQiKX0sc3RlcFRyaWdnZXI6ZnVuY3Rpb24oYyl7Yz17c3RlcDphLmdldExpbmVhcnN0ZXAoYyksbWFrZTphLmZvcm1kYXRhLmN1cnJlbnRNYWtlLG1vZGVsOmEuZm9ybWRhdGEuY3VycmVudE1vZGVsLHllYXI6YS5mb3JtZGF0YS5jdXJyZW50WWVhcixib2R5VHlwZTphLmZvcm1kYXRhLnZlaGljbGVUeXBlLApzYWxlc0RlcHQ6YS5mb3JtZGF0YS52ZWhpY2xlU2FsZXNEZXB0LHZlaGljbGVDb2xvcjphLmZvcm1kYXRhLnZlaGljbGVDb2xvcix2ZWhpY2xlUHJpY2U6YS5mb3JtZGF0YS52ZWhpY2xlUHJpY2UsdmVoaWNsZVRhbnNtaXNzaW9uOmEuZm9ybWRhdGEudmVoaWNsZVRhbnNtaXNzaW9uLHZlaGljbGVUcmltOmEuZm9ybWRhdGEudmVoaWNsZVRyaW19OyQoIiNmaW5hbmNlX211bHRpc3RlcF9mb3JtIixiKS50cmlnZ2VyKCJmb3JtLnN0ZXAiLGMpO2EuZmlyc3RTdGVwPSExfX07d2luZG93LmFwcFRlc3Q9YTt2YXIgVzskKCIjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dCwgI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gc2VsZWN0LCAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSB0ZXh0YXJlYSIpLm9uKCJjaGFuZ2UgaW5wdXQiLGZ1bmN0aW9uKCl7Y2xlYXJUaW1lb3V0KFcpO1c9c2V0VGltZW91dChrLmNoZWNrVmFsaWRpdHksNTAwKX0pOyQoJyNmaW5hbmNlX211bHRpc3RlcF9mb3JtIGlucHV0W3R5cGU9Im51bWJlciJdJykub24oImZvY3VzIiwKZnVuY3Rpb24oKXskKHRoaXMpLnRyaWdnZXIoInNlbGVjdCIpfSk7cmV0dXJue3N0YXJ0OlAsaGFzVXNlcjprLmhhc1VzZXJ9fQokKGZ1bmN0aW9uKCl7JChkb2N1bWVudCkub24oInJldmVhbDpvcGVuIiwiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIsZnVuY3Rpb24oKXskKGRvY3VtZW50KS50cmlnZ2VyKCJjcmVkaXQubXVsdGlzdGVwcG9wdXAuc3RhcnQiKX0pOyQoZG9jdW1lbnQpLm9uKCJyZXZlYWw6b3BlbiIsIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyIixmdW5jdGlvbigpeyQoZG9jdW1lbnQpLnRyaWdnZXIoImNyZWRpdC5tdWx0aXN0ZXBwb3B1cC5zdGFydCIpfSk7JChkb2N1bWVudCkub24oImNsaWNrIiwiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciAjZHJWaWV3RGlzY2xhaW1lckxpbmsiLGZ1bmN0aW9uKCl7IjEiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNWd0RSIikudmFsKCkmJnZvaWQgMCE9ZHJEaXNjbGFpbWVySlMmJmRyRGlzY2xhaW1lckpTLmNsb3NlQWxsT3BlbkRpc2NsYWltZXJEaXZzKCk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikuc2hvdygpOwokKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyICNkckRpc2NsYWltZXJEcmF3ZXIiKS5hZGRDbGFzcygib3BlbiIpfSk7JChkb2N1bWVudCkub24oImNsaWNrIiwiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciAuY2xvc2VEUkRpc2NsYWltZXJEcmF3ZXIiLGZ1bmN0aW9uKCl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciAjZHJEaXNjbGFpbWVyRHJhd2VyIikucmVtb3ZlQ2xhc3MoIm9wZW4iKTskKCIjZmluYW5jZU11bHRpc3RlcFBvcHVwQ29udGFpbmVyICNkckRpc2NsYWltZXJEcmF3ZXIiKS5oaWRlKCl9KTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAjZHJWaWV3RGlzY2xhaW1lckxpbmsiLGZ1bmN0aW9uKCl7IjEiPT0kKCIjRklOQU5DRV9NVUxUSVNURVBfaXNWd0RSIikudmFsKCkmJnZvaWQgMCE9ZHJEaXNjbGFpbWVySlMmJmRyRGlzY2xhaW1lckpTLmNsb3NlQWxsT3BlbkRpc2NsYWltZXJEaXZzKCk7CiQoIiNmaW5hbmNlTXVsdGlzdGVwSW5zdGFudFBvcHVwQ29udGFpbmVyICNkckRpc2NsYWltZXJEcmF3ZXIiKS5zaG93KCk7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIgI2RyRGlzY2xhaW1lckRyYXdlciIpLmFkZENsYXNzKCJvcGVuIil9KTskKGRvY3VtZW50KS5vbigiY2xpY2siLCIjZmluYW5jZU11bHRpc3RlcEluc3RhbnRQb3B1cENvbnRhaW5lciAuY2xvc2VEUkRpc2NsYWltZXJEcmF3ZXIiLGZ1bmN0aW9uKCl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIgI2RyRGlzY2xhaW1lckRyYXdlciIpLnJlbW92ZUNsYXNzKCJvcGVuIik7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBJbnN0YW50UG9wdXBDb250YWluZXIgI2RyRGlzY2xhaW1lckRyYXdlciIpLmhpZGUoKX0pfSk7Ci8qKiAvbS9qcy9jYWxjdWxhdG9yRnVuY3Rpb25zLmpzICoqLwp2YXIgX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEzIDIzOjMwOjE3IjsndXNlIHN0cmljdCc7dmFyIF9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMyAyMjozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMyAyMTozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMyAyMDozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMyAxOTozMDoxOCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMyAxODozMDoxNyI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMyAxNzozMDoyMyI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMyAxNjozMDoxNyI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTMgMTU6MzA6MjIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTMgMTQ6MzA6MjAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTMgMTM6MzA6MjMiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTMgMTI6MzA6MjQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTMgMTE6MzA6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTMgMTA6MzA6MjIiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTMgMDk6MzA6MjIiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEzIDA4OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEzIDA3OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEzIDA2OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEzIDA1OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEzIDA0OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEzIDAzOjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEzIDAyOjMwOjE1IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMyAwMTozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMyAwMDozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMiAyMzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMiAyMjozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMiAyMTozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMiAyMDozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMiAxOTozMDoxNSI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTIgMTg6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTIgMTc6MzA6MjAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTIgMTY6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTIgMTU6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTIgMTQ6MzA6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTIgMTM6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTIgMTI6MzA6MjAiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEyIDExOjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEyIDEwOjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEyIDA5OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEyIDA4OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEyIDA3OjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEyIDA2OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEyIDA1OjMwOjE1IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMiAwNDozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMiAwMzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMiAwMjozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMiAwMTozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAyMDozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAxOTozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAxODozMDoxNSI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMTc6MzA6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMTY6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMTU6MzA6MTYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMTQ6MzA6MTciOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMTM6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMTI6MzA6MjAiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTEgMTE6MzA6MjAiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDEwOjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDA5OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDA4OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDA3OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDA2OjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDA1OjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTExIDA0OjMwOjE0IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAwMzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAwMjozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAwMTozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMSAwMDozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAyMzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAyMjozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAyMTozMDoxNCI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMjA6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTk6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTg6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTc6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTY6MzA6MTgiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTU6MzA6MTkiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMTAgMTQ6MzA6MTkiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDEzOjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDEyOjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDExOjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDEwOjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDA5OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDA4OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTEwIDA3OjMwOjE1IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwNjozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwNTozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwNDozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwMzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwMjozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwMTozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0xMCAwMDozMDoxNSI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMjM6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMjI6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMjE6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMjA6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMTk6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMTg6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMTc6MzA6MTgiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDE2OjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDE1OjMwOjIwIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDE0OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDEzOjMwOjE3IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDEyOjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDExOjMwOjIxIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA5IDEwOjMwOjE5IjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwOTozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwODozMDoxOSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwNzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwNjozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwNTozMDoxNCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwNDozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOSAwMzozMDoxNSI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMDI6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMDE6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDkgMDA6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMjM6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMjI6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMjE6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMjA6MzA6MTUiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE5OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE4OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE3OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE2OjMwOjE4IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE1OjMwOjIxIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDE0OjMwOjE5IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA4IDEzOjMwOjIwIjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAxMjozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAxMTozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAxMDozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwOTozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwODozMDoxOCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwNzozMDoxNSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wOCAwNjozMDoxNCI7InVzZSBzdHJpY3QiOwpfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDU6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDQ6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDM6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDI6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDE6MzA6MTQiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDggMDA6MzA6MTUiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfY2FsY3VsYXRvckZ1bmN0aW9uc2pzX2Nfb249IjIwMjYtMDctMDcgMjM6MzA6MTQiOyJ1c2Ugc3RyaWN0IjsKX19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDIyOjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDIxOjMwOjE0IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDIwOjMwOjE2IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDE5OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDE4OjMwOjE1IjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDE3OjMwOjIxIjsidXNlIHN0cmljdCI7X19fZDJjX2NhbGN1bGF0b3JGdW5jdGlvbnNqc19jX29uPSIyMDI2LTA3LTA3IDE2OjMwOjIxIjsidXNlIHN0cmljdCI7Cl9fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxNTozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxNDozMDoxOSI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxMzozMDoxOCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxMjozMDoyMCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxMTozMDoxOCI7InVzZSBzdHJpY3QiO19fX2QyY19jYWxjdWxhdG9yRnVuY3Rpb25zanNfY19vbj0iMjAyNi0wNy0wNyAxMDozMDoxNiI7InVzZSBzdHJpY3QiOwpjbGFzcyBjYWxjdWxhdG9yRnVuY3Rpb25ze2NvbnN0cnVjdG9yKGEpe3RoaXMucGFyZW50PWE7dGhpcy5wYXJlbnROYW1lPXRoaXMucGFyZW50LnJlcGxhY2UoIiMiLCIiKTt0aGlzLnNldFRyaWdnZXJzKCl9aW5pdChhLGIsZSxmLGgsZyxrLHAsbil7dmFyIHE9dGhpcy5wYXJlbnQ7dGhpcy5zdHlsZWlkPWE7dGhpcy5wYXltZW50VHlwZT1iO3RoaXMudHJhZGVJblZhbHVlPSQocSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpP3BhcnNlSW50KCQocSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpKTowO3RoaXMuZG93bnBheW1lbnQ9MD5lLXRoaXMudHJhZGVJblZhbHVlPzA6ZS10aGlzLnRyYWRlSW5WYWx1ZTt0aGlzLm9wdGlvbnNBbW91bnQ9Zjt0aGlzLnBheW1lbnRGcmVxdWVuY3k9aDt0aGlzLmttQWxsb3dhbmNlPWc7dGhpcy5pc0ludmVudG9yeT1rP2s6ITE7dGhpcy5zbj1wP3A6IiI7dGhpcy52aW49bj9uOiIiO3RoaXMubG9hZFBheW1lbnRzKCEwKX1zZXRJbml0aWFsVmlldyhhKXt2YXIgYj0KdGhpcy5wYXJlbnQsZT10aGlzOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIG9wdGlvbiIpLnJlbW92ZSgpOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50IikudmFsKHRoaXMuZG93bnBheW1lbnQpOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIikudmFsKGEuY3VycmVudFBheW1lbnRbMF0uaW50ZXJ2YWwpO2xldCBmPSJsZWFzZSI9PWEuY3VycmVudFBheW1lbnRbMF0udHlwZT8ibGVhc2luZyI6ImZpbmFuY2luZyI7JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5yZW1vdmVDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTskKGIrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaVtkYXRhLXR5cGU9JyIrZisiJ10iKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTswPT1hLmZpbmFuY2UubGVuZ3RoPyQoYisiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlRmluYW5jZSIpLmhpZGUoKTokKGIrCiIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVGaW5hbmNlIikuc2hvdygpO2lmKDA9PWEubGVhc2UubGVuZ3RoKSQoYisiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlTGVhc2UiKS5oaWRlKCk7ZWxzZXskKGIrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUxlYXNlIikuc2hvdygpO2xldCBnPVtdO2EubGVhc2UuZm9yRWFjaChmdW5jdGlvbihrKXstMT09JC5pbkFycmF5KGsua21fYWxsb3dhbmNlLGcpJiZnLnB1c2goay5rbV9hbGxvd2FuY2UpfSk7Zy5mb3JFYWNoKGZ1bmN0aW9uKGspe2xldCBwPWUucGF5bWVudENhbGN1bGF0b3JGb3JtYXROdW1iZXIoay50b0ZpeGVkKDApKTskKGIrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLmFwcGVuZChuZXcgT3B0aW9uKHArIiBrbSIsaykpfSk7dmFyIGg9MkU0O2EuY3VycmVudFBheW1lbnRbMF0mJiJ1bmRlZmluZWQiIT09dHlwZW9mIGEuY3VycmVudFBheW1lbnRbMF0ua21fYWxsb3dhbmNlJiYoaD0KMDxhLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZT9hLmN1cnJlbnRQYXltZW50WzBdLmttX2FsbG93YW5jZToyRTQpOyQoYisiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikudmFsKGgpfXRoaXMua21BbGxvd2FuY2U9JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS52YWwoKTsibGVhc2luZyI9PWY\/JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5zaG93KCk6JChiKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2VDb250YWluZXIiKS5oaWRlKCk7JCgiYm9keSIpLm9uKCJjbGljayB0YXAiLGIrIiAuZmluYW5jaW5nLW9wdGlvbi5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyICoiLGZ1bmN0aW9uKCl7JCh0aGlzKS5maW5kKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScpLnByb3AoImNoZWNrZWQiLCJjaGVja2VkIikudHJpZ2dlcigiY2hhbmdlIil9KTskKCJib2R5Iikub24oImNoYW5nZSIsCmIrJyBpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnQiXScsZnVuY3Rpb24oKXt2YXIgZz0kKHRoaXMpLnZhbCgpLGs9JCh0aGlzKS5hdHRyKCJkYXRhLXJhdGV0eXBlIik7JChiKyIgLmZpbmFuY2luZy1vcHRpb24iKS5yZW1vdmVDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJytnKyciXVtkYXRhLXJhdGV0eXBlPSInK2srJyJdJykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKTskKCdpbnB1dFtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXVt2YWx1ZT0iJytnKyciXVtkYXRhLXJhdGV0eXBlPSInK2srJyJdJykucHJvcCgiY2hlY2tlZCIsITApOyQodGhpcykuY2xvc2VzdCgiLmZpbmFuY2luZy1vcHRpb24iKS5hZGRDbGFzcygic2VsZWN0ZWQiKX0pOyQoImJvZHkiKS5vbigiY2hhbmdlIixiKycgaW5wdXRbbmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIl0nLApmdW5jdGlvbigpe3ZhciBnPSQodGhpcykudmFsKCksaz0kKHRoaXMpLmF0dHIoImRhdGEtcmF0ZXR5cGUiKTskKGIrIiAuZmluYW5jaW5nLW9wdGlvbiIpLnJlbW92ZUNsYXNzKCJzZWxlY3RlZCIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2crJyJdW2RhdGEtcmF0ZXR5cGU9IicraysnIl0nKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpOyQoJ2lucHV0W25hbWU9InNlbGVjdGVkUGF5bWVudCJdW3ZhbHVlPSInK2crJyJdW2RhdGEtcmF0ZXR5cGU9IicraysnIl0nKS5wcm9wKCJjaGVja2VkIiwhMCk7JCh0aGlzKS5jbG9zZXN0KCIuZmluYW5jaW5nLW9wdGlvbiIpLmFkZENsYXNzKCJzZWxlY3RlZCIpfSl9c2V0VHJpZ2dlcnMoKXt2YXIgYT10aGlzLnBhcmVudCxiPXRoaXM7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGkiKS5vZmYoImNsaWNrIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikub2ZmKCJjaGFuZ2UiKTsKJChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS5vZmYoImNoYW5nZSIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlIikub2ZmKCJjaGFuZ2UiKTskKGErIiAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCIpLm9mZigiYmx1ciIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLm9mZigiYmx1ciIpOyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikub24oImNsaWNrIixmdW5jdGlvbigpeyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRUeXBlIGxpIikucmVtb3ZlQ2xhc3MoImFjdGl2ZVBheW1lbnRUeXBlIik7JCh0aGlzKS5hZGRDbGFzcygiYWN0aXZlUGF5bWVudFR5cGUiKTtiLnBheW1lbnRUeXBlPSQodGhpcykuYXR0cigiZGF0YS10eXBlIik7ImxlYXNpbmciPT0kKHRoaXMpLmF0dHIoImRhdGEtdHlwZSIpPyQoYSsiIC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlQ29udGFpbmVyIikuc2hvdygpOgokKGErIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZUNvbnRhaW5lciIpLmhpZGUoKTtiLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXskKHRoaXMpLmlzKCI6Y2hlY2tlZCIpPygkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyIikuaGlkZSgpLCQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5zaG93KCkpOigkKGErIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuaGlkZSgpLCQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5zaG93KCkpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW5jbHVkZVRheENoZWNrIikudHJpZ2dlcigiY2hhbmdlIik7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2IucGF5bWVudEZyZXF1ZW5jeT0KJCh0aGlzKS52YWwoKTtiLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2Iua21BbGxvd2FuY2U9JCh0aGlzKS52YWwoKTtiLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQiKS5vbigiYmx1ciIsZnVuY3Rpb24oKXtsZXQgZT1wYXJzZUludCgkKHRoaXMpLnZhbCgpKT9wYXJzZUludCgkKHRoaXMpLnZhbCgpKTowO2IuZG93bnBheW1lbnQ9ZTtiLmxvYWRQYXltZW50cygpfSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikub24oImJsdXIiLGZ1bmN0aW9uKCl7bGV0IGU9cGFyc2VJbnQoJCh0aGlzKS5hdHRyKCJtYXgiKSl8fDAsZj1wYXJzZUludCgkKHRoaXMpLnZhbCgpKXx8MDtmPWY+ZT9lOmY7JCh0aGlzKS52YWwoZik7Yi50cmFkZUluVmFsdWU9ZjtfbG9jYWxTdG9yYWdlU2V0KCJ0cmFkZWluX2N1cnJlbnRfdmFsdWUiLApKU09OLnN0cmluZ2lmeSh7dmFsdWU6Zn0pLDEpO2IubG9hZFBheW1lbnRzKCl9KX1sb2FkUGF5bWVudHMoYSl7YT1hP2E6ITE7bGV0IGI9KCQoImJvZHkiKS5oYXNDbGFzcygiRU5HTElTSCIpPyIvZW4iOiIvZnIiKSsiL2FqYXgvZ2V0UGF5bWVudERhdGFGb3JTdHlsZUlEP3dzd2lkdGg9MCI7dmFyIGU9dGhpcztlLnRyYWRlSW5WYWx1ZT1wYXJzZUludCgkKGUucGFyZW50KyIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFsIikudmFsKCk\/JChlLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbCIpLnZhbCgpOjApOyQuYWpheCh7dXJsOmIsdHlwZToiUE9TVCIsZGF0YVR5cGU6IkpTT04iLGRhdGE6e3N0eWxlaWQ6ZS5zdHlsZWlkLHBheW1lbnRUeXBlOmUucGF5bWVudFR5cGUsZG93bnBheW1lbnQ6ZS5kb3ducGF5bWVudCtlLnRyYWRlSW5WYWx1ZSxvcHRpb25zQW1vdW50OmUub3B0aW9uc0Ftb3VudCxwYXltZW50RnJlcXVlbmN5OmUucGF5bWVudEZyZXF1ZW5jeSwKa21BbGxvd2FuY2U6ZS5rbUFsbG93YW5jZSxvcHRpb25zOmUub3B0aW9uc0Ftb3VudCxpc0ludmVudG9yeTplLmlzSW52ZW50b3J5LHNuOmUuc24sdmluOmUudmluLGZvcmNlVGF4ZXM6ITB9LHN1Y2Nlc3M6ZnVuY3Rpb24oZil7Zi5jdXJyZW50UGF5bWVudCYmZi5jdXJyZW50UGF5bWVudC5sZW5ndGg\/KGEmJmUuc2V0SW5pdGlhbFZpZXcoZiksInVuZGVmaW5lZCIhPT10eXBlb2YgY2FsY0N1clBheW1lbnQmJihjYWxjQ3VyUGF5bWVudD1mKSxlLnNob3dQYXltZW50cyhmLmN1cnJlbnRQYXltZW50LGYucGF5bWVudEZlZXMsZi5tYWtlaWQsZiksJCgiYm9keSAiK2UucGFyZW50KS50cmlnZ2VyKCJwYXltZW50c1JlYWR5IikpOiQoImJvZHkgIitlLnBhcmVudCkudHJpZ2dlcigibm9QYXltZW50Iil9fSl9c2hvd1BheW1lbnRzKGEsYixlLGYpe3ZhciBoPXRoaXM7JChoLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5odG1sKCIiKTskKGgucGFyZW50KwoiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMiKS5odG1sKCIiKTtsZXQgZz0iMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclJvdW5kUGF5bWVudCIpLnZhbCgpPzA6MjsiMSI9PSQoIiNwYXltZW50Q2FsY3VsYXRvclN0cmlrZVBheW1lbnQiKS52YWwoKSYmJCgiI3BheW1lbnRDYWxjdWxhdG9yU3RyaWtlUGF5bWVudE9wdGlvbiIpLnZhbCgpO2xldCBrPVtdLHA9JCgiI29lbUNlcnRpZmljYXRpb24iKS52YWwoKXx8MDs1PGEubGVuZ3RoP2EuZm9yRWFjaChmdW5jdGlvbihsKXsoMD09bC50ZXJtJTEyfHw2ND09bC50ZXJtfHw0MD09ZSYmNTE9PWwudGVybXx8MjA9PWUmJlsyNywzMCwzOSw0Ml0uaW5jbHVkZXMobC50ZXJtKXx8WzE2LDIxXS5pbmNsdWRlcyhlKXx8NDI9PWwudGVybSYmMTAxND09cHx8WzMwLDQyXS5pbmNsdWRlcyhsLnRlcm0pJiZbNDcxNTYyLDQ3MTU2Myw0NzE1NjRdLmluY2x1ZGVzKHBhcnNlSW50KHNldHRpbmdzLnN0eWxlaWQpKXx8ClsxNiwxXS5pbmNsdWRlcyhlKSYmWzI4LDQwXS5pbmNsdWRlcyhsLnRlcm0pfHwyNz09bC50ZXJtJiYyNz09ZXx8NTI9PWwudGVybSYmMzk9PWUpJiZrLnB1c2gobCl9KTprPWE7ImRlc2MiPT0kKCIjUEFZTUVOVF9URVJNX09SREVSIikudmFsKCkmJihrPWsucmV2ZXJzZSgpKTt2YXIgbj17fSxxPSExO2suZm9yRWFjaChmdW5jdGlvbihsLG0pe09iamVjdC5oYXNPd24obixsLnRlcm0pP3E9ITA6bltsLnRlcm1dPXt9O25bbC50ZXJtXVtsLnJhdGVfdHlwZV09bX0pO3ZhciBJPVtdO2FbMF0mJiJsZWFzZSI9PWFbMF0udHlwZSYmInVuZGVmaW5lZCIhPT10eXBlb2YgYVswXS5rbV9hbGxvd2FuY2UmJihhPTA8YVswXS5rbV9hbGxvd2FuY2U\/YVswXS5rbV9hbGxvd2FuY2U6MkU0LCQoaC5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbChhKSx0aGlzLmttQWxsb3dhbmNlPSQoaC5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSIpLnZhbCgpKTsKbGV0IEo9Zi50b3RhbEluY2VudGl2ZSxLPXE\/JCgiI0xPV0VTVFBBWU1FTlRfTEFCRUwiKS52YWwoKToiIixMPXE\/JCgiI0xPV0VTVFJBVEVfTEFCRUwiKS52YWwoKToiIixYPTAsej0iIixBPSIiOzE9PSQoIiNpc0RSU2l0ZSIpLmxlbmd0aCYmIjEiPT0kKCIjaXNEUlNpdGUiKS52YWwoKSYmKGE9aC5wYXJlbnROYW1lLnNwbGl0KCIjIiksZj1oLnBhcmVudE5hbWUsdm9pZCAwIT1hWzBdJiYoZj0kLnRyaW0oYVswXSkpLGE9YCR7Zn0tZGlzY2xhaW1lcnMtc3VwZXJzY3JpcHRzLTMtZGl2YCxmPWAke2Z9LWRpc2NsYWltZXJzLXN1cGVyc2NyaXB0cy0yLWRpdmAsIjE3NzEiPT09ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNpdGVJRCIpLnZhbHVlfHwiMjIwOSI9PT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2l0ZUlEIikudmFsdWUpJiYoej0nPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgY2FsY0Rpc2NsYWltZXJzU3VwZXJzY3JpcHRzICIgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSInKwphKyciIGRhdGEtZGlzY2xhaW1lci1pZD0iMyI+PHN1cD4zPC9zdXA+PC9hPicsQT0nPGEgaHJlZj0iamF2YXNjcmlwdDp2b2lkKDApIiBjbGFzcz0iZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHMgY2FsY0Rpc2NsYWltZXJzU3VwZXJzY3JpcHRzICIgZGF0YS1kaXNjbGFpbWVyLWRpdmlkPSInK2YrJyIgZGF0YS1kaXNjbGFpbWVyLWlkPSIyIj48c3VwPjI8L3N1cD48L2E+Jyk7JC5lYWNoKGssZnVuY3Rpb24obCxtKXtpZighSS5pbmNsdWRlcyhtLnRlcm0pKXtJLnB1c2gobS50ZXJtKTt2YXIgZD0ic3RhbmRhcmQiPT1tLnJhdGVfdHlwZXx8Mj5PYmplY3Qua2V5cyhuW20udGVybV0pLmxlbmd0aD9tOmtbblttLnRlcm1dLnN0YW5kYXJkXSxjPTI9PU9iamVjdC5rZXlzKG5bbS50ZXJtXSkubGVuZ3RoP2tbblttLnRlcm1dLnN1YnZlbnRlZF06ITEseD0yPT1PYmplY3Qua2V5cyhuW20udGVybV0pLmxlbmd0aD9uW20udGVybV0uc3VidmVudGVkOiExLHY9bS50ZXJtLHk9bS5kb3ducGF5bWVudC50b0ZpeGVkKDApLApCPWQucGF5bWVudC50b0ZpeGVkKGcpLFk9ZC5wYXltZW50LnRvRml4ZWQoZyk7Qj1CLnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKEMsdyl7cmV0dXJuJzxzdXAgY2xhc3M9InBkIj4nK3crIjwvc3VwPiJ9KTttPWQucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO3ZhciBaPWQucGF5bWVudFdpdGhUYXhlcy50b0ZpeGVkKGcpO209bS5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihDLHcpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+Jyt3KyI8L3N1cD4ifSk7dmFyIE09ZC5yYXRlLGFhPSJwYXltZW50IitsO2w9InBheW1lbnQiK2wrIndpdGhUYXhlcyI7dj0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iPHNwYW4+Iit2KyI8L3NwYW4+IG1vbnRoIjoiPHNwYW4+Iit2KyI8L3NwYW4+IG1vaXMiO3k9YDxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPiR7eX08L3NwYW4+YCsoJCgiYm9keSIpLmhhc0NsYXNzKCJFTkdMSVNIIik\/IiBkb3duIHBheW1lbnQiOiIgY29tcHRhbnQiKTsKdmFyIEQ9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/IjxkaXY+IiskKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpKyI8L2Rpdj4iOiIrdHgiOyQoIiNkZWFsZXJQcm92aW5jZUNvZGUiKS5sZW5ndGgmJiJBQiI9PSQoIiNkZWFsZXJQcm92aW5jZUNvZGUiKS52YWwoKSYmKEQ9IiIhPSQoIiNkaXNjbGFpbWVyUHJpY2VUZXh0IikudmFsKCk\/IjxkaXY+IiskKCIjZGlzY2xhaW1lclByaWNlVGV4dCIpLnZhbCgpKyI8L2Rpdj4iOiIrR1NUIik7dmFyIEU9ZC5jYWxjdWxhdGVkRWZmZWN0aXZlUmF0ZT9kLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlOjAsTj1oLmZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0Q2FsYyhFLGQucmF0ZSwiIiwnY2xhc3M9Ii1mczEwIicpLE89ZC50b3RhbE9ibGlnYXRpb25BbW91bnQ\/ZC50b3RhbE9ibGlnYXRpb25BbW91bnQ6MCxQPSdkYXRhLXRvb2x0aXA9IicrZC50b29sdGlwKyciJyxRPSdkYXRhLXRvb2x0aXA9IicrZC50b29sdGlwV2l0aFRheGVzKwonIicscixiYT1udWxsIT0ocj1kLm0yZF9maW5hbmNlKT9yOko7cj0ic2luZ2xlLWNvbHVtbiI7dmFyIEY9InNtYWxsLWJveCIsdD0iIix1PSIiO2lmKGMpe3I9ImxlZnQtc2VjdGlvbiI7Rj0iIjt0PWMucGF5bWVudC50b0ZpeGVkKGcpO2xldCBDPWMucGF5bWVudC50b0ZpeGVkKGcpO3Q9dC5yZXBsYWNlKC9cLihbMC05XSopLyxmdW5jdGlvbihjYSxHKXtyZXR1cm4nPHN1cCBjbGFzcz0icGQiPicrRysiPC9zdXA+In0pO3U9Yy5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoZyk7bGV0IHc9Yy5wYXltZW50V2l0aFRheGVzLnRvRml4ZWQoZyk7dT11LnJlcGxhY2UoL1wuKFswLTldKikvLGZ1bmN0aW9uKGNhLEcpe3JldHVybic8c3VwIGNsYXNzPSJwZCI+JytHKyI8L3N1cD4ifSk7dmFyIFI9Yy5yYXRlLnRvRml4ZWQoMiksZGE9InBheW1lbnQiK3g7eD0icGF5bWVudCIreCsid2l0aFRheGVzIjtsZXQgSD1jLmNhbGN1bGF0ZWRFZmZlY3RpdmVSYXRlP2MuY2FsY3VsYXRlZEVmZmVjdGl2ZVJhdGU6CjAsUz1oLmZvcm1hdEVmZmVjdGl2ZVJhdGVUZXh0Q2FsYyhILGMucmF0ZSwiIiwnY2xhc3M9Ii1mczEwIicpLFQ9Yy50b3RhbE9ibGlnYXRpb25BbW91bnQ\/Yy50b3RhbE9ibGlnYXRpb25BbW91bnQ6MCxVPSdkYXRhLXRvb2x0aXA9IicrYy50b29sdGlwKyciJyxWPSdkYXRhLXRvb2x0aXA9IicrYy50b29sdGlwV2l0aFRheGVzKyciJyxXPWMubTJkX2ZpbmFuY2U7dD0nXHQ8ZGl2IGlkPSInK2RhKyciIGNsYXNzPSJyaWdodC1zZWN0aW9uIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrVSsnPlx0XHQ8ZGl2IGNsYXNzPSJsb3dlc3QtcmF0ZSI+JytSKyclIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIHJpZ2h0VG9vbHRpcCIgJytVKyI+PC9pPiIrUysnPC9kaXY+XHRcdDxkaXYgY2xhc3M9ImFjdHVhbC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK3QrIjwvc3Bhbj4iK3orJzwvZGl2Plx0XHQ8ZGl2IGNsYXNzPSJkZXRhaWxzVGF4Ij4nKwpEKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0icmFkaW8tY29udGFpbmVyIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdCI+XHRcdFx0PGlucHV0XHRcdFx0XHRcdHR5cGU9InJhZGlvIlx0XHRcdFx0XHRuYW1lPSJzZWxlY3RlZFBheW1lbnQiXHRcdFx0XHRcdHZhbHVlPSInK2MudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2MucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2MucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2MucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytDKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrYy50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytjLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInKwpIKyciXHRcdFx0XHRcdGRhdGEtdG90YWxDb3N0PSInK1QrJyJcdFx0XHRcdFx0ZGF0YS1yYXRlPSInK2MucmF0ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1yZXNpZHVhbD0iJytjLnJlc2lkdWFsVmFsdWUrJyIgICAgICAgICAgICAgICAgIGRhdGEtdG90YWxpbmNlbnRpdmU9IicrVysnIiAgICAgICAgICAgICAgICAgZGF0YS1pbml0aWFsUHJpY2U9IicrYy5pbml0aWFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmluYWxQcmljZT0iJytjLmZpbmFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmVlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShjLmZlZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5jZW50aXZlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShjLmluY2VudGl2ZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1oc3Q9IjAiICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iMCJcdFx0XHRcdD5cdFx0XHQ8bGFiZWwgY2xhc3M9ImZpbmFuY2VDYWxjIj4nKwpMKyI8L2xhYmVsPlx0XHQ8L2Rpdj5cdDwvZGl2PiI7dT0nXHQ8ZGl2IGlkPSInK3grJyIgY2xhc3M9InJpZ2h0LXNlY3Rpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytWKyc+XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1yYXRlIj4nK1IrJyUgPGkgY2xhc3M9ImZhcyBmYS1pbmZvLWNpcmNsZSBpbmZvLWljb24gcGF5bWVudFRvb2x0aXAgcmlnaHRUb29sdGlwIiAnK1YrIj48L2k+IitTKyc8L2Rpdj5cdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrdSsiPC9zcGFuPiIrQSsnPC9kaXY+XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdDxpbnB1dFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0bmFtZT0ic2VsZWN0ZWRQYXltZW50V2l0aFRheGVzIlx0XHRcdFx0XHR2YWx1ZT0iJytjLnRlcm0rJyJcdFx0XHRcdFx0ZGF0YS1iYXNlcGF5bWVudD0iJysKYy5wYXltZW50KyciXHRcdFx0XHRcdGRhdGEtcmVhbHBheW1lbnQ9IicrYy5wYXltZW50V2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtcmF0ZXR5cGU9IicrYy5yYXRlX3R5cGUrJyJcdFx0XHRcdFx0ZGF0YS1kaXNwbGF5ZWRwYXltZW50PSInK3crJyJcdFx0XHRcdFx0ZGF0YS1yZXNpZHVhbD0iJytjLnJlc2lkdWFsV2l0aFRheGVzKyciXHRcdFx0XHRcdGRhdGEtdG90YWxpbnRlcmVzdD0iJytjLnRvdGFsSW50ZXJlc3RXaXRoVGF4ZXMrJyJcdFx0XHRcdFx0ZGF0YS1sdXhlVGF4QW1vdW50PSInK2MubHV4ZVRheEFtb3VudCsnIlx0XHRcdFx0XHRkYXRhLWVmZmVjdGl2ZVJhdGU9IicrSCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsQ29zdD0iJytUKyciXHRcdFx0XHRcdGRhdGEtcmF0ZT0iJytjLnJhdGUrJyIgICAgICAgICAgICAgICAgIGRhdGEtcmVzaWR1YWw9IicrYy5yZXNpZHVhbFZhbHVlV2l0aFRheGVzKyciICAgICAgICAgICAgICAgICBkYXRhLXRvdGFsaW5jZW50aXZlPSInKwpXKyciICAgICAgICAgICAgICAgICBkYXRhLWluaXRpYWxQcmljZT0iJytjLmluaXRpYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1maW5hbFByaWNlPSInK2MuZmluYWxQcmljZSsnIiAgICAgICAgICAgICAgICAgZGF0YS1mZWVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGMuZmVlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1pbmNlbnRpdmVzTGlzdD0iJytidG9hKEpTT04uc3RyaW5naWZ5KGMuaW5jZW50aXZlc0xpc3QpKSsnIiAgICAgICAgICAgICAgICAgZGF0YS1nc3Q9IicrYy5nc3QrJyIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSInK2MuaHN0KyciICAgICAgICAgICAgICAgICBkYXRhLXBzdD0iJytjLnBzdCsnIlx0XHRcdFx0Plx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrTCsiPC9sYWJlbD5cdFx0PC9kaXY+XHQ8L2Rpdj4ifWM9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnKwpGKyciPlx0PGRpdiBjbGFzcz0idGVybSI+Jyt2Kyc8L2Rpdj5cdDxkaXYgY2xhc3M9ImRvd24tcGF5bWVudCI+Jyt5Kyc8L2Rpdj5cdDxkaXYgY2xhc3M9InNlcGFyYXRvclBheSI+PC9kaXY+XHQ8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI+XHRcdDxkaXYgaWQ9IicrYWErJyIgY2xhc3M9IicrcisnIHBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiICcrUCsnPlx0XHRcdDxkaXYgY2xhc3M9Imxvd2VzdC1wYXltZW50Ij48c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4nK0IrIjwvc3Bhbj4iK3orJyA8aSBjbGFzcz0iZmFzIGZhLWluZm8tY2lyY2xlIGluZm8taWNvbiBwYXltZW50VG9vbHRpcCBsZWZ0VG9vbHRpcCIgJytQKyc+PC9pPjwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9ImRldGFpbHNUYXgiPicrRCsnPC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrTSsiJSAiK04rJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdFx0PGlucHV0IFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudCJcdFx0XHRcdFx0dmFsdWU9IicrCmQudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2QucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2QucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2QucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytZKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrZC5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrZC50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytkLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK0UrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrTysnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrZC5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2QucmVzaWR1YWxWYWx1ZSsnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJysKYmErJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5pdGlhbFByaWNlPSInK2QuaW5pdGlhbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZpbmFsUHJpY2U9IicrZC5maW5hbFByaWNlKyciICAgICAgICAgICAgICAgICBkYXRhLWZlZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoZC5mZWVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWluY2VudGl2ZXNMaXN0PSInK2J0b2EoSlNPTi5zdHJpbmdpZnkoZC5pbmNlbnRpdmVzTGlzdCkpKyciICAgICAgICAgICAgICAgICBkYXRhLWdzdD0iMCIgICAgICAgICAgICAgICAgIGRhdGEtaHN0PSIwIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IjAiXHRcdFx0XHQ+XHRcdFx0XHQ8bGFiZWwgY2xhc3M9ImZpbmFuY2VDYWxjIj4nK0srIjwvbGFiZWw+XHRcdFx0PC9kaXY+XHRcdDwvZGl2PiIrdCsiXHQ8L2Rpdj48L2Rpdj4iO2Q9JzxkaXYgY2xhc3M9ImZpbmFuY2luZy1vcHRpb24gcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAnKwpGKyciPlx0PGRpdiBjbGFzcz0idGVybSI+Jyt2Kyc8L2Rpdj5cdDxkaXYgY2xhc3M9ImRvd24tcGF5bWVudCI+Jyt5Kyc8L2Rpdj5cdDxkaXYgY2xhc3M9InNlcGFyYXRvclBheSI+PC9kaXY+XHQ8ZGl2IGNsYXNzPSJjb250ZW50LWNvbnRhaW5lciI+XHRcdDxkaXYgaWQ9IicrbCsnIiBjbGFzcz0iJytyKycgcGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlckNvbnRhaW5lciIgJytRKyc+XHRcdFx0PGRpdiBjbGFzcz0ibG93ZXN0LXBheW1lbnQiPjxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPicrbSsiPC9zcGFuPiIrQSsnIDxpIGNsYXNzPSJmYXMgZmEtaW5mby1jaXJjbGUgaW5mby1pY29uIHBheW1lbnRUb29sdGlwIGxlZnRUb29sdGlwIiAnK1ErJz48L2k+PC9kaXY+XHRcdFx0PGRpdiBjbGFzcz0iYWN0dWFsLXJhdGUiPicrTSsiJSAiK04rJzwvZGl2Plx0XHRcdDxkaXYgY2xhc3M9InJhZGlvLWNvbnRhaW5lciBwYXltZW50Q2FsY3VsYXRvclBheW1lbnRTZWxlY3QiPlx0XHRcdFx0PGlucHV0IFx0XHRcdFx0XHR0eXBlPSJyYWRpbyJcdFx0XHRcdFx0XHRcdFx0XHRcdG5hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJcdFx0XHRcdFx0dmFsdWU9IicrCmQudGVybSsnIlx0XHRcdFx0XHRkYXRhLWJhc2VwYXltZW50PSInK2QucGF5bWVudCsnIlx0XHRcdFx0XHRkYXRhLXJlYWxwYXltZW50PSInK2QucGF5bWVudFdpdGhUYXhlcysnIlx0XHRcdFx0XHRkYXRhLXJhdGV0eXBlPSInK2QucmF0ZV90eXBlKyciXHRcdFx0XHRcdGRhdGEtZGlzcGxheWVkcGF5bWVudD0iJytaKyciXHRcdFx0XHRcdGRhdGEtcmVzaWR1YWw9IicrZC5yZXNpZHVhbCsnIlx0XHRcdFx0XHRkYXRhLXRvdGFsaW50ZXJlc3Q9IicrZC50b3RhbEludGVyZXN0KyciXHRcdFx0XHRcdGRhdGEtbHV4ZVRheEFtb3VudD0iJytkLmx1eGVUYXhBbW91bnQrJyJcdFx0XHRcdFx0ZGF0YS1lZmZlY3RpdmVSYXRlPSInK0UrJyJcdFx0XHRcdFx0ZGF0YS10b3RhbENvc3Q9IicrTysnIlx0XHRcdFx0XHRkYXRhLXJhdGU9IicrZC5yYXRlKyciICAgICAgICAgICAgICAgICBkYXRhLXJlc2lkdWFsPSInK2QucmVzaWR1YWxWYWx1ZVdpdGhUYXhlcysnIiAgICAgICAgICAgICAgICAgZGF0YS10b3RhbGluY2VudGl2ZT0iJysKSisnIiAgICAgICAgICAgICAgICAgZGF0YS1pbml0aWFsUHJpY2U9IicrZC5pbml0aWFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmluYWxQcmljZT0iJytkLmZpbmFsUHJpY2UrJyIgICAgICAgICAgICAgICAgIGRhdGEtZmVlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShkLmZlZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtaW5jZW50aXZlc0xpc3Q9IicrYnRvYShKU09OLnN0cmluZ2lmeShkLmluY2VudGl2ZXNMaXN0KSkrJyIgICAgICAgICAgICAgICAgIGRhdGEtZ3N0PSInK2QuZ3N0KyciICAgICAgICAgICAgICAgICBkYXRhLWhzdD0iJytkLmhzdCsnIiAgICAgICAgICAgICAgICAgZGF0YS1wc3Q9IicrZC5wc3QrJyJcdFx0XHRcdD5cdFx0XHRcdDxsYWJlbCBjbGFzcz0iZmluYW5jZUNhbGMiPicrSysiPC9sYWJlbD5cdFx0XHQ8L2Rpdj5cdFx0PC9kaXY+Iit1KyJcdDwvZGl2PjwvZGl2PiI7JChoLnBhcmVudCsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIiKS5hcHBlbmQoYyk7CiQoaC5wYXJlbnQrIiAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIikuYXBwZW5kKGQpO1grK319KTtoLnNldFBheW1lbnRDYWxjdWxhdG9yUG9wdXBUb29sdGlwKCl9c2V0UGF5bWVudENhbGN1bGF0b3JQb3B1cFRvb2x0aXAoKXt2YXIgYT10aGlzLnBhcmVudCxiPXRoaXMucGFyZW50TmFtZTtpZigiMSI9PSQoIiNpc21vYmlsZSIpLnZhbCgpKSQoYSsiIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyQ29udGFpbmVyIC5wYXltZW50VG9vbHRpcCIpLmVhY2goZnVuY3Rpb24oZil7dHJ5e3ZhciBoPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIiksZz0kKHRoaXMpLmhhc0NsYXNzKCJsZWZ0VG9vbHRpcCIpPyJ3ZXN0IjoiZWFzdCI7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpoLGdyYXZpdHk6Zyx0aGVtZToibGlnaHQiLHRyaWdnZXI6ImNsaWNrIixhbmltYXRpb246ImZsaXBJbiJ9KX1jYXRjaChrKXt9fSk7CmVsc2V7Zm9yKHZhciBlPTA7NT5lO2UrKykkKCIjZGFya3Rvb2x0aXAtIitiKyJwYXltZW50IitlKS5sZW5ndGgmJigkKCIjZGFya3Rvb2x0aXAtIitiKyJwYXltZW50IitlKS5yZW1vdmUoKSwkKCIjZGFya3Rvb2x0aXAtIitiKyJwYXltZW50IitlKyJ3aXRoVGF4ZXMiKS5yZW1vdmUoKSk7JChhKyIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXJDb250YWluZXIiKS5lYWNoKGZ1bmN0aW9uKCl7dHJ5e3ZhciBmPSQodGhpcykuYXR0cigiZGF0YS10b29sdGlwIik7JCh0aGlzKS5kYXJrVG9vbHRpcCh7Y29udGVudDpmLGdyYXZpdHk6Im5vcnRoIix0aGVtZToibGlnaHQiLHRyaWdnZXI6ImhvdmVyIixhbmltYXRpb246Im5vbmUifSl9Y2F0Y2goaCl7fX0pfX1wYXltZW50Q2FsY3VsYXRvckZvcm1hdE51bWJlcihhKXtyZXR1cm4gYS5yZXBsYWNlKC9cQig\/PShcZHszfSkrKD8hXGQpKS9nLCIsIil9Zm9ybWF0RWZmZWN0aXZlUmF0ZVRleHRDYWxjKGEsCmIsZSxmLGgpe2Y9dm9pZCAwPT09Zj8iIjpmO2g9dm9pZCAwPT09aD8hMDpoO2I9cGFyc2VGbG9hdChhKS1wYXJzZUZsb2F0KGIpO3ZhciBnPXN0b3JlLmdldCgiZmllbGRzIikuQURNSU5fU0hPV19FRkZFQ1RJVkVfUkFURV9TRUxFQ1Q7aWYoImZhbHNlIj09PXN0b3JlLmdldCgiZmllbGRzIikuQURNSU5fU0hPV19FRkZFQ1RJVkVfUkFURXx8ImV2ZXJ5d2hlcmUiIT1nJiYwPj1iKXJldHVybiIiO2I9c3RvcmUuZ2V0KCJpMThuIikuRUZGRUNUSVZFX1JBVEVfTEFCRUw7Zz0kKCIjaXNtb2JpbGUiKS52YWwoKT8iPGJyLz4iOiIgIjtiPWIucmVwbGFjZSgieyRSQVRFfSIsYDxzcGFuICR7ZX0+JHthfSU8L3NwYW4+YCk7cmV0dXJuYCR7Z30ke2g\/YDxkaXYgJHtmfT5gOiIifSggJHtifSApJHtoPyI8L2Rpdj4iOiIifWB9fTsKLyoqIC9tL2pzL2pxdWVyeS5kYXRldGltZXBpY2tlci5qcyAqKi8KdmFyIF9fX2QyY19qcXVlcnlkYXRldGltZXBpY2tlcmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDk6MzkiOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2pxdWVyeWRhdGV0aW1lcGlja2VyanNfY19vbj0iMjAyNC0wMy0yNSAxMjozMzoxMSI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oZil7ImZ1bmN0aW9uIj09PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKFsianF1ZXJ5IiwianF1ZXJ5LW1vdXNld2hlZWwiLCJkYXRlLWZ1bmN0aW9ucyJdLGYpOiJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9ZjpmKGpRdWVyeSl9KShmdW5jdGlvbihmKXtmdW5jdGlvbiBNKHIsdixhKXt0aGlzLmRhdGU9cjt0aGlzLmRlc2M9djt0aGlzLnN0eWxlPWF9dmFyIEo9e2kxOG46e2FyOnttb250aHM6Ij8\/Pz8\/ID8\/Pz8\/Pzs\/Pz8\/Oz8\/Pz87Pz8\/Pz87Pz8\/Pzs\/Pz8\/Pz87Pz8\/Pzs\/Pzs\/Pz8\/Pzs\/Pz8\/PyA\/Pz8\/Pzs\/Pz8\/PyA\/Pz8\/Pz87Pz8\/Pz8gPz8\/Pz8iLnNwbGl0KCI7IiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/Pz8\/Pz8iLnNwbGl0KCIiKSxkYXlPZldlZWs6Ij8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/PyIuc3BsaXQoIiAiKX0scm86e21vbnRoczoiSWFudWFyaWUgRmVicnVhcmllIE1hcnRpZSBBcHJpbGllIE1haSBJdW5pZSBJdWxpZSBBdWd1c3QgU2VwdGVtYnJpZSBPY3RvbWJyaWUgTm9pZW1icmllIERlY2VtYnJpZSIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6IkR1IEx1IE1hIE1pIEpvIFZpIFPiIi5zcGxpdCgiICIpLGRheU9mV2VlazoiRHVtaW5pYz8gTHVuaSBNYXI\/aSBNaWVyY3VyaSBKb2kgVmluZXJpIFPibWI\/dD8iLnNwbGl0KCIgIil9LGlkOnttb250aHM6IkphbnVhcmkgRmVicnVhcmkgTWFyZXQgQXByaWwgTWVpIEp1bmkgSnVsaSBBZ3VzdHVzIFNlcHRlbWJlciBPa3RvYmVyIE5vdmVtYmVyIERlc2VtYmVyIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJNaW4gU2VuIFNlbCBSYWIgS2FtIEp1bSBTYWIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJNaW5nZ3UgU2VuaW4gU2VsYXNhIFJhYnUgS2FtaXMgSnVtYXQgU2FidHUiLnNwbGl0KCIgIil9LGlzOnttb250aHM6IkphbvphciBGZWJy+mFyIE1hcnMgQXBy7WwgTWHtIEr6bu0gSvps7SDBZ\/pzdCBTZXB0ZW1iZXIgT2t082JlciBO83ZlbWJlciBEZXNlbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiU3VuIE3hbiDecmnwIE1p8CBGaW0gRvZzIExhdSIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrOiJTdW5udWRhZ3VyIE3hbnVkYWd1ciDecmnwanVkYWd1ciBNafB2aWt1ZGFndXIgRmltbXR1ZGFndXIgRvZzdHVkYWd1ciBMYXVnYXJkYWd1ciIuc3BsaXQoIiAiKX0sYmc6e21vbnRoczoiPz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8gPz8\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/PyA\/PyA\/PyA\/PyA\/PyA\/PyA\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/PyIuc3BsaXQoIiAiKX0sZmE6e21vbnRoczoiPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/PyA\/Pz8gPz8\/Pz8gPz8\/Pz8\/ID8\/PyA\/Pz8\/ID8\/PyA\/PyA\/Pz8\/ID8\/Pz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/Pz8\/Pz87Pz8\/Pz8\/Oz8\/ID8\/Pz87Pz8\/Pz8\/Pz87Pz8\/Pz8\/Pzs\/Pz8\/Oz8\/Pz8iLnNwbGl0KCI7IiksCmRheU9mV2VlazoiPz8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/ID8\/Pz8gPz8\/Pz8\/PyIuc3BsaXQoIiAiKX0scnU6e21vbnRoczoiPz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/PyA\/Pz8\/Pz8gPz8\/ID8\/Pz8gPz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8gPz8gPz8gPz8gPz8gPz8gPz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpfSx1azp7bW9udGhzOiI\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8gPyc\/Pz8\/Pz8gPz8\/Pz8\/Ii5zcGxpdCgiICIpfSwKZW46e21vbnRoczoiSmFudWFyeSBGZWJydWFyeSBNYXJjaCBBcHJpbCBNYXkgSnVuZSBKdWx5IEF1Z3VzdCBTZXB0ZW1iZXIgT2N0b2JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiU3VuIE1vbiBUdWUgV2VkIFRodSBGcmkgU2F0Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiU3VuZGF5IE1vbmRheSBUdWVzZGF5IFdlZG5lc2RheSBUaHVyc2RheSBGcmlkYXkgU2F0dXJkYXkiLnNwbGl0KCIgIil9LGVsOnttb250aHM6Ij8\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpfSwKZGU6e21vbnRoczoiSmFudWFyIEZlYnJ1YXIgTeRyeiBBcHJpbCBNYWkgSnVuaSBKdWxpIEF1Z3VzdCBTZXB0ZW1iZXIgT2t0b2JlciBOb3ZlbWJlciBEZXplbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiU28gTW8gRGkgTWkgRG8gRnIgU2EiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJTb25udGFnIE1vbnRhZyBEaWVuc3RhZyBNaXR0d29jaCBEb25uZXJzdGFnIEZyZWl0YWcgU2Ftc3RhZyIuc3BsaXQoIiAiKX0sbmw6e21vbnRoczoiamFudWFyaSBmZWJydWFyaSBtYWFydCBhcHJpbCBtZWkganVuaSBqdWxpIGF1Z3VzdHVzIHNlcHRlbWJlciBva3RvYmVyIG5vdmVtYmVyIGRlY2VtYmVyIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJ6byBtYSBkaSB3byBkbyB2ciB6YSIuc3BsaXQoIiAiKSxkYXlPZldlZWs6InpvbmRhZyBtYWFuZGFnIGRpbnNkYWcgd29lbnNkYWcgZG9uZGVyZGFnIHZyaWpkYWcgemF0ZXJkYWciLnNwbGl0KCIgIil9LHRyOnttb250aHM6Ik9jYWsgP3ViYXQgTWFydCBOaXNhbiBNYXk\/cyBIYXppcmFuIFRlbW11eiBBP3VzdG9zIEV5bPxsIEVraW0gS2FzP20gQXJhbD9rIi5zcGxpdCgiICIpLApkYXlPZldlZWtTaG9ydDoiUGF6IFB0cyBTYWwgx2FyIFBlciBDdW0gQ3RzIi5zcGxpdCgiICIpLGRheU9mV2VlazoiUGF6YXIgUGF6YXJ0ZXNpIFNhbD8gx2FyP2FtYmEgUGVyP2VtYmUgQ3VtYSBDdW1hcnRlc2kiLnNwbGl0KCIgIil9LGZyOnttb250aHM6IkphbnZpZXIgRul2cmllciBNYXJzIEF2cmlsIE1haSBKdWluIEp1aWxsZXQgQW\/7dCBTZXB0ZW1icmUgT2N0b2JyZSBOb3ZlbWJyZSBE6WNlbWJyZSIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiRGltIEx1biBNYXIgTWVyIEpldSBWZW4gU2FtIi5zcGxpdCgiICIpLGRheU9mV2VlazoiZGltYW5jaGUgbHVuZGkgbWFyZGkgbWVyY3JlZGkgamV1ZGkgdmVuZHJlZGkgc2FtZWRpIi5zcGxpdCgiICIpfSxlczp7bW9udGhzOiJFbmVybyBGZWJyZXJvIE1hcnpvIEFicmlsIE1heW8gSnVuaW8gSnVsaW8gQWdvc3RvIFNlcHRpZW1icmUgT2N0dWJyZSBOb3ZpZW1icmUgRGljaWVtYnJlIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJEb20gTHVuIE1hciBNaekgSnVlIFZpZSBT4WIiLnNwbGl0KCIgIiksCmRheU9mV2VlazoiRG9taW5nbyBMdW5lcyBNYXJ0ZXMgTWnpcmNvbGVzIEp1ZXZlcyBWaWVybmVzIFPhYmFkbyIuc3BsaXQoIiAiKX0sdGg6e21vbnRoczoiPz8\/Pz8\/ID8\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8uID8uID8uID8uID8\/LiA\/LiA\/LiIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8gPz8\/Pz8gPz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/PyIuc3BsaXQoIiAiKX0scGw6e21vbnRoczoic3R5Y3plPyBsdXR5IG1hcnplYyBrd2llY2llPyBtYWogY3plcndpZWMgbGlwaWVjIHNpZXJwaWU\/IHdyemVzaWU\/IHBhP2R6aWVybmlrIGxpc3RvcGFkIGdydWR6aWU\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJuZCBwbiB3dCA\/ciBjeiBwdCBzYiIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Im5pZWR6aWVsYSBwb25pZWR6aWE\/ZWsgd3RvcmVrID9yb2RhIGN6d2FydGVrIHBpP3RlayBzb2JvdGEiLnNwbGl0KCIgIil9LApwdDp7bW9udGhzOiJKYW5laXJvIEZldmVyZWlybyBNYXLnbyBBYnJpbCBNYWlvIEp1bmhvIEp1bGhvIEFnb3N0byBTZXRlbWJybyBPdXR1YnJvIE5vdmVtYnJvIERlemVtYnJvIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJEb20gU2VnIFRlciBRdWEgUXVpIFNleCBTYWIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJEb21pbmdvIFNlZ3VuZGEgVGVy52EgUXVhcnRhIFF1aW50YSBTZXh0YSBT4WJhZG8iLnNwbGl0KCIgIil9LGNoOnttb250aHM6Ij8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/Pz8\/Pz8iLnNwbGl0KCIiKX0sc2U6e21vbnRoczoiSmFudWFyaSBGZWJydWFyaSBNYXJzIEFwcmlsIE1haiBKdW5pIEp1bGkgQXVndXN0aSBTZXB0ZW1iZXIgT2t0b2JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiU\/ZuIE3lbiBUaXMgT25zIFRvciBGcmUgTPZyIi5zcGxpdCgiICIpfSwKa3I6e21vbnRoczoiMT8gMj8gMz8gND8gNT8gNj8gNz8gOD8gOT8gMTA\/IDExPyAxMj8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/Pz8\/Pz8iLnNwbGl0KCIiKSxkYXlPZldlZWs6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKX0saXQ6e21vbnRoczoiR2VubmFpbyBGZWJicmFpbyBNYXJ6byBBcHJpbGUgTWFnZ2lvIEdpdWdubyBMdWdsaW8gQWdvc3RvIFNldHRlbWJyZSBPdHRvYnJlIE5vdmVtYnJlIERpY2VtYnJlIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJEb20gTHVuIE1hciBNZXIgR2lvIFZlbiBTYWIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJEb21lbmljYSBMdW5lZOwgTWFydGVk7CBNZXJjb2xlZOwgR2lvdmVk7CBWZW5lcmTsIFNhYmF0byIuc3BsaXQoIiAiKX0sZGE6e21vbnRoczoiSmFudWFyeSBGZWJydWFyIE1hcnRzIEFwcmlsIE1haiBKdW5pIEp1bHkgQXVndXN0IFNlcHRlbWJlciBPa3RvYmVyIE5vdmVtYmVyIERlY2VtYmVyIi5zcGxpdCgiICIpLApkYXlPZldlZWtTaG9ydDoiU\/huIE1hbiBUaXIgT25zIFRvciBGcmUgTPhyIi5zcGxpdCgiICIpLGRheU9mV2Vlazoic\/huZGFnIG1hbmRhZyB0aXJzZGFnIG9uc2RhZyB0b3JzZGFnIGZyZWRhZyBs+HJkYWciLnNwbGl0KCIgIil9LG5vOnttb250aHM6IkphbnVhciBGZWJydWFyIE1hcnMgQXByaWwgTWFpIEp1bmkgSnVsaSBBdWd1c3QgU2VwdGVtYmVyIE9rdG9iZXIgTm92ZW1iZXIgRGVzZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IlP4biBNYW4gVGlyIE9ucyBUb3IgRnJlIEz4ciIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IlP4bmRhZyBNYW5kYWcgVGlyc2RhZyBPbnNkYWcgVG9yc2RhZyBGcmVkYWcgTPhyZGFnIi5zcGxpdCgiICIpfSxqYTp7bW9udGhzOiIxPyAyPyAzPyA0PyA1PyA2PyA3PyA4PyA5PyAxMD8gMTE\/IDEyPyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8\/Pz8\/PyIuc3BsaXQoIiIpLGRheU9mV2VlazoiPz8gPz8gPz8gPz8gPz8gPz8gPz8iLnNwbGl0KCIgIil9LAp2aTp7bW9udGhzOiJUaOFuZyAxO1Ro4W5nIDI7VGjhbmcgMztUaOFuZyA0O1Ro4W5nIDU7VGjhbmcgNjtUaOFuZyA3O1Ro4W5nIDg7VGjhbmcgOTtUaOFuZyAxMDtUaOFuZyAxMTtUaOFuZyAxMiIuc3BsaXQoIjsiKSxkYXlPZldlZWtTaG9ydDoiQ04gVDIgVDMgVDQgVDUgVDYgVDciLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJDaD8gbmg\/dDtUaD8gaGFpO1RoPyBiYTtUaD8gdD87VGg\/IG4\/bTtUaD8gc+F1O1RoPyBiP3kiLnNwbGl0KCI7Iil9LHNsOnttb250aHM6IkphbnVhciBGZWJydWFyIE1hcmVjIEFwcmlsIE1haiBKdW5paiBKdWxpaiBBdmd1c3QgU2VwdGVtYmVyIE9rdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ik5lZCBQb24gVG9yIFNyZSA\/ZXQgUGV0IFNvYiIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ik5lZGVsamEgUG9uZWRlbGplayBUb3JlayBTcmVkYSA\/ZXRydGVrIFBldGVrIFNvYm90YSIuc3BsaXQoIiAiKX0sY3M6e21vbnRoczoiTGVkZW4g2m5vciBCP2V6ZW4gRHViZW4gS3Y\/dGVuID9lcnZlbiA\/ZXJ2ZW5lYyBTcnBlbiBa4T\/tID\/tamVuIExpc3RvcGFkIFByb3NpbmVjIi5zcGxpdCgiICIpLApkYXlPZldlZWtTaG9ydDoiTmUgUG8g2nQgU3QgP3QgUOEgU28iLnNwbGl0KCIgIil9LGh1Onttb250aHM6IkphbnXhciBGZWJydeFyIE3hcmNpdXMgwXByaWxpcyBN4Wp1cyBK+m5pdXMgSvpsaXVzIEF1Z3VzenR1cyBTemVwdGVtYmVyIE9rdPNiZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IlZhIEjpIEtlIFN6ZSBDcyBQ6SBTem8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJ2YXPhcm5hcCBo6XRmPyBrZWRkIHN6ZXJkYSBjc\/x09nJ09msgcOludGVrIHN6b21iYXQiLnNwbGl0KCIgIil9LGF6Onttb250aHM6IllhbnZhciBGZXZyYWwgTWFydCBBcHJlbCBNYXkgSXl1biBJeXVsIEF2cXVzdCBTZW50eWFiciBPa3R5YWJyIE5veWFiciBEZWthYnIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IkIgQmUgx2EgxyBDYSBDID8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJCYXphcjtCYXphciBlcnQ\/c2k7xz9yPz9uYj8gYXg\/YW0\/O8c\/cj8\/bmI\/O0P8bT8gYXg\/YW0\/O0P8bT87Pz9uYj8iLnNwbGl0KCI7Iil9LApiczp7bW9udGhzOiJKYW51YXIgRmVicnVhciBNYXJ0IEFwcmlsIE1haiBKdW4gSnVsIEF2Z3VzdCBTZXB0ZW1iYXIgT2t0b2JhciBOb3ZlbWJhciBEZWNlbWJhciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiTmVkIFBvbiBVdG8gU3JpID9ldCBQZXQgU3ViIi5zcGxpdCgiICIpLGRheU9mV2VlazoiTmVkamVsamEgUG9uZWRqZWxqYWsgVXRvcmFrIFNyaWplZGEgP2V0dnJ0YWsgUGV0YWsgU3Vib3RhIi5zcGxpdCgiICIpfSxjYTp7bW9udGhzOiJHZW5lciBGZWJyZXIgTWFy5yBBYnJpbCBNYWlnIEp1bnkgSnVsaW9sIEFnb3N0IFNldGVtYnJlIE9jdHVicmUgTm92ZW1icmUgRGVzZW1icmUiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IkRnIERsIER0IERjIERqIER2IERzIi5zcGxpdCgiICIpLGRheU9mV2VlazoiRGl1bWVuZ2UgRGlsbHVucyBEaW1hcnRzIERpbWVjcmVzIERpam91cyBEaXZlbmRyZXMgRGlzc2FidGUiLnNwbGl0KCIgIil9LCJlbi1HQiI6e21vbnRoczoiSmFudWFyeSBGZWJydWFyeSBNYXJjaCBBcHJpbCBNYXkgSnVuZSBKdWx5IEF1Z3VzdCBTZXB0ZW1iZXIgT2N0b2JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6IlN1biBNb24gVHVlIFdlZCBUaHUgRnJpIFNhdCIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IlN1bmRheSBNb25kYXkgVHVlc2RheSBXZWRuZXNkYXkgVGh1cnNkYXkgRnJpZGF5IFNhdHVyZGF5Ii5zcGxpdCgiICIpfSxldDp7bW9udGhzOiJKYWFudWFyIFZlZWJydWFyIE3kcnRzIEFwcmlsbCBNYWkgSnV1bmkgSnV1bGkgQXVndXN0IFNlcHRlbWJlciBPa3Rvb2JlciBOb3ZlbWJlciBEZXRzZW1iZXIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IlBFVEtOUkwiLnNwbGl0KCIiKSxkYXlPZldlZWs6IlD8aGFw5GV2IEVzbWFzcORldiBUZWlzaXDkZXYgS29sbWFw5GV2IE5lbGphcORldiBSZWVkZSBMYXVw5GV2Ii5zcGxpdCgiICIpfSxldTp7bW9udGhzOiJVcnRhcnJpbGEgT3RzYWlsYSBNYXJ0eG9hIEFwaXJpbGEgTWFpYXR6YSBFa2FpbmEgVXp0YWlsYSBBYnV6dHVhIElyYWlsYSBVcnJpYSBBemFyb2EgQWJlbmR1YSIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiSWcuIEFsLiBBci4gQXouIE9nLiBPci4gTGEuIi5zcGxpdCgiICIpLApkYXlPZldlZWs6IklnYW5kZWEgQXN0ZWxlaGVuYSBBc3RlYXJ0ZWEgQXN0ZWF6a2VuYSBPc3RlZ3VuYSBPc3RpcmFsYSBMYXJ1bmJhdGEiLnNwbGl0KCIgIil9LGZpOnttb250aHM6IlRhbW1pa3V1IEhlbG1pa3V1IE1hYWxpc2t1dSBIdWh0aWt1dSBUb3Vrb2t1dSBLZXPka3V1IEhlaW7ka3V1IEVsb2t1dSBTeXlza3V1IExva2FrdXUgTWFycmFza3V1IEpvdWx1a3V1Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJTdSBNYSBUaSBLZSBUbyBQZSBMYSIuc3BsaXQoIiAiKSxkYXlPZldlZWs6InN1bm51bnRhaSBtYWFuYW50YWkgdGlpc3RhaSBrZXNraXZpaWtrbyB0b3JzdGFpIHBlcmphbnRhaSBsYXVhbnRhaSIuc3BsaXQoIiAiKX0sZ2w6e21vbnRoczoiWGFuIEZlYiBNYXogQWJyIE1haSBYdW4gWHVsIEFnbyBTZXQgT3V0IE5vdiBEZWMiLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IkRvbSBMdW4gTWFyIE1lciBYb3YgVmVuIFNhYiIuc3BsaXQoIiAiKSxkYXlPZldlZWs6IkRvbWluZ28gTHVucyBNYXJ0ZXMgTelyY29yZXMgWG92ZXMgVmVucmVzIFPhYmFkbyIuc3BsaXQoIiAiKX0sCmhyOnttb250aHM6IlNpamU\/YW5qIFZlbGphP2EgTz91amFrIFRyYXZhbmogU3ZpYmFuaiBMaXBhbmogU3JwYW5qIEtvbG92b3ogUnVqYW4gTGlzdG9wYWQgU3R1ZGVuaSBQcm9zaW5hYyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiTmVkIFBvbiBVdG8gU3JpID9ldCBQZXQgU3ViIi5zcGxpdCgiICIpLGRheU9mV2VlazoiTmVkamVsamEgUG9uZWRqZWxqYWsgVXRvcmFrIFNyaWplZGEgP2V0dnJ0YWsgUGV0YWsgU3Vib3RhIi5zcGxpdCgiICIpfSxrbzp7bW9udGhzOiIxPyAyPyAzPyA0PyA1PyA2PyA3PyA4PyA5PyAxMD8gMTE\/IDEyPyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8\/Pz8\/PyIuc3BsaXQoIiIpLGRheU9mV2VlazoiPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpfSxsdDp7bW9udGhzOiJTYXVzaW8gVmFzYXJpbyBLb3ZvIEJhbGFuZD9pbyBHZWd1Pz9zIEJpcj9lbGlvIExpZXBvcyBSdWdwaj8\/aW8gUnVncz9qbyBTcGFsaW8gTGFwa3JpP2lvIEdydW9kP2lvIi5zcGxpdCgiICIpLApkYXlPZldlZWtTaG9ydDoiU2VrIFBpciBBbnQgVHJlIEtldCBQZW4gP2U\/Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiU2VrbWFkaWVuaXMgUGlybWFkaWVuaXMgQW50cmFkaWVuaXMgVHJlP2lhZGllbmlzIEtldHZpcnRhZGllbmlzIFBlbmt0YWRpZW5pcyA\/ZT90YWRpZW5pcyIuc3BsaXQoIiAiKX0sbHY6e21vbnRoczoiSmFudj9yaXM7RmVicnU\/cmlzO01hcnRzO0Fwcj9saXMgO01haWpzO0o\/bmlqcztKP2xpanM7QXVndXN0cztTZXB0ZW1icmlzO09rdG9icmlzO05vdmVtYnJpcztEZWNlbWJyaXMiLnNwbGl0KCI7IiksZGF5T2ZXZWVrU2hvcnQ6IlN2IFByIE90IFRyIEN0IFBrIFN0Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiU3Y\/dGRpZW5hIFBpcm1kaWVuYSBPdHJkaWVuYSBUcmU\/ZGllbmEgQ2V0dXJ0ZGllbmEgUGlla3RkaWVuYSBTZXN0ZGllbmEiLnNwbGl0KCIgIil9LG1rOnttb250aHM6Ij8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/PyA\/Pz8\/PyA\/Pz8gPz8\/PyA\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/PyIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/Ii5zcGxpdCgiICIpfSxtbjp7bW9udGhzOiIxLT8gPz8\/OzItPyA\/Pz87My0\/ID8\/Pzs0LT8gPz8\/OzUtPyA\/Pz87Ni0\/ID8\/Pzs3LT8gPz8\/OzgtPyA\/Pz87OS0\/ID8\/PzsxMC0\/ID8\/PzsxMS0\/ID8\/PzsxMi0\/ID8\/PyIuc3BsaXQoIjsiKSxkYXlPZldlZWtTaG9ydDoiPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiPz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/Pz8gPz8\/Pz8gPz8\/Ii5zcGxpdCgiICIpfSwicHQtQlIiOnttb250aHM6IkphbmVpcm8gRmV2ZXJlaXJvIE1hcudvIEFicmlsIE1haW8gSnVuaG8gSnVsaG8gQWdvc3RvIFNldGVtYnJvIE91dHVicm8gTm92ZW1icm8gRGV6ZW1icm8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6IkRvbSBTZWcgVGVyIFF1YSBRdWkgU2V4IFPhYiIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrOiJEb21pbmdvIFNlZ3VuZGEgVGVy52EgUXVhcnRhIFF1aW50YSBTZXh0YSBT4WJhZG8iLnNwbGl0KCIgIil9LHNrOnttb250aHM6IkphbnXhciBGZWJydeFyIE1hcmVjIEFwcu1sIE3haiBK+m4gSvpsIEF1Z3VzdCBTZXB0ZW1iZXIgT2t082JlciBOb3ZlbWJlciBEZWNlbWJlciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiTmUgUG8gVXQgU3QgP3QgUGkgU28iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJOZWRlP2EgUG9uZGVsb2sgVXRvcm9rIFN0cmVkYSA\/dHZydG9rIFBpYXRvayBTb2JvdGEiLnNwbGl0KCIgIil9LHNxOnttb250aHM6IkphbmFyIFNoa3VydCBNYXJzIFByaWxsIE1haiBRZXJzaG9yIEtvcnJpayBHdXNodCBTaHRhdG9yIFRldG9yIE7rbnRvciBEaGpldG9yIi5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiJEaWUgSOtuIE1hciBN63IgRW5qIFByZSBTaHR1Ii5zcGxpdCgiICIpLGRheU9mV2VlazoiRSBEaWVsO0UgSOtu6ztFIE1hcnQ\/O0UgTetya3Vy6ztFIEVuanRlO0UgUHJlbXRlO0UgU2h0dW7rIi5zcGxpdCgiOyIpfSwKInNyLVlVIjp7bW9udGhzOiJKYW51YXIgRmVicnVhciBNYXJ0IEFwcmlsIE1haiBKdW4gSnVsIEF2Z3VzdCBTZXB0ZW1iYXIgT2t0b2JhciBOb3ZlbWJhciBEZWNlbWJhciIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiTmVkIFBvbiBVdG8gU3JlID9ldCBQZXQgU3ViIi5zcGxpdCgiICIpLGRheU9mV2VlazoiTmVkZWxqYSBQb25lZGVsamFrIFV0b3JhayBTcmVkYSA\/ZXR2cnRhayBQZXRhayBTdWJvdGEiLnNwbGl0KCIgIil9LHNyOnttb250aHM6Ij8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8gPz8\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/Pz8iLnNwbGl0KCIgIil9LHN2Onttb250aHM6IkphbnVhcmkgRmVicnVhcmkgTWFycyBBcHJpbCBNYWogSnVuaSBKdWxpIEF1Z3VzdGkgU2VwdGVtYmVyIE9rdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIiksCmRheU9mV2Vla1Nob3J0OiJT9m4gTeVuIFRpcyBPbnMgVG9yIEZyZSBM9nIiLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiJT9m5kYWcgTeVuZGFnIFRpc2RhZyBPbnNkYWcgVG9yc2RhZyBGcmVkYWcgTPZyZGFnIi5zcGxpdCgiICIpfSwiemgtVFciOnttb250aHM6Ij8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/ID8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrU2hvcnQ6Ij8\/Pz8\/Pz8iLnNwbGl0KCIiKSxkYXlPZldlZWs6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKX0semg6e21vbnRoczoiPz8gPz8gPz8gPz8gPz8gPz8gPz8gPz8gPz8gPz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWtTaG9ydDoiPz8\/Pz8\/PyIuc3BsaXQoIiIpLGRheU9mV2VlazoiPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/Ii5zcGxpdCgiICIpfSxoZTp7bW9udGhzOiI\/Pz8\/PyA\/Pz8\/Pz8gPz8\/ID8\/Pz8\/ID8\/PyA\/Pz8\/ID8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/PyIuc3BsaXQoIiAiKSwKZGF5T2ZXZWVrU2hvcnQ6Ij8nID8nID8nID8nID8nID8nID8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/ID8\/PyA\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/PyA\/Pz8\/ID8\/PyA\/Pz8\/PyIuc3BsaXQoIiAiKX0saHk6e21vbnRoczoiPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8gPz8\/Pz8gPz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/Ii5zcGxpdCgiICIpLGRheU9mV2Vla1Nob3J0OiI\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/PyA\/Pz8iLnNwbGl0KCIgIiksZGF5T2ZXZWVrOiI\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/Pz8\/PyA\/Pz8\/Pz8\/Pz8gPz8\/Pz8\/ID8\/Pz8\/Ii5zcGxpdCgiICIpfSxrZzp7bW9udGhzOiI\/Pz8\/PyA\/Pz87Pz8\/Pz8\/ID8\/Pzs\/Pz8\/Pz8gPz8\/Pz87Pz8\/ID8\/Pz8\/Oz8\/Pz87Pz8\/Pz87Pz8\/Pzs\/Pz8gPz8\/Pzs\/Pz8gPz8\/Pzs\/Pz8\/Pz8\/PyA\/Pz87Pz8\/Pz8\/PyA\/Pz87Pz8\/Pz8\/ID8\/PyIuc3BsaXQoIjsiKSwKZGF5T2ZXZWVrU2hvcnQ6Ij8\/PyA\/Pz8gPz8\/ID8\/PyA\/Pz8gPz8\/ID8\/PyIuc3BsaXQoIiAiKSxkYXlPZldlZWs6Ij8\/Pz8\/Pz8gPz8\/Pz8\/PyA\/Pz8\/Pz8\/ID8\/Pz8\/Pz8gPz8\/Pz8\/Pz8gPz8\/PyA\/Pz8\/PyIuc3BsaXQoIiAiKX19LHZhbHVlOiIiLHJ0bDohMSxmb3JtYXQ6IlkvbS9kIEg6aSIsZm9ybWF0VGltZToiSDppIixmb3JtYXREYXRlOiJZL20vZCIsc3RhcnREYXRlOiExLHN0ZXA6NjAsbW9udGhDaGFuZ2VTcGlubmVyOiEwLGNsb3NlT25EYXRlU2VsZWN0OiExLGNsb3NlT25UaW1lU2VsZWN0OiEwLGNsb3NlT25XaXRob3V0Q2xpY2s6ITAsY2xvc2VPbklucHV0Q2xpY2s6ITAsdGltZXBpY2tlcjohMCxkYXRlcGlja2VyOiEwLHdlZWtzOiExLGRlZmF1bHRUaW1lOiExLGRlZmF1bHREYXRlOiExLG1pbkRhdGU6ITEsbWF4RGF0ZTohMSxtaW5UaW1lOiExLG1heFRpbWU6ITEsZGlzYWJsZWRNaW5UaW1lOiExLGRpc2FibGVkTWF4VGltZTohMSxhbGxvd1RpbWVzOltdLG9wZW5lZDohMSwKaW5pdFRpbWU6ITAsaW5saW5lOiExLHRoZW1lOiIiLG9uU2VsZWN0RGF0ZTpmdW5jdGlvbigpe30sb25TZWxlY3RUaW1lOmZ1bmN0aW9uKCl7fSxvbkNoYW5nZU1vbnRoOmZ1bmN0aW9uKCl7fSxvbkNoYW5nZVllYXI6ZnVuY3Rpb24oKXt9LG9uQ2hhbmdlRGF0ZVRpbWU6ZnVuY3Rpb24oKXt9LG9uU2hvdzpmdW5jdGlvbigpe30sb25DbG9zZTpmdW5jdGlvbigpe30sb25HZW5lcmF0ZTpmdW5jdGlvbigpe30sd2l0aG91dENvcHlyaWdodDohMCxpbnZlcnNlQnV0dG9uOiExLGhvdXJzMTI6ITEsbmV4dDoieGRzb2Z0X25leHQiLHByZXY6Inhkc29mdF9wcmV2IixkYXlPZldlZWtTdGFydDowLHBhcmVudElEOiJib2R5Iix0aW1lSGVpZ2h0SW5UaW1lUGlja2VyOjI1LHRpbWVwaWNrZXJTY3JvbGxiYXI6ITAsdG9kYXlCdXR0b246ITAscHJldkJ1dHRvbjohMCxuZXh0QnV0dG9uOiEwLGRlZmF1bHRTZWxlY3Q6ITAsc2Nyb2xsTW9udGg6ITAsc2Nyb2xsVGltZTohMCxzY3JvbGxJbnB1dDohMCwKbGF6eUluaXQ6ITEsbWFzazohMSx2YWxpZGF0ZU9uQmx1cjohMCxhbGxvd0JsYW5rOiEwLHllYXJTdGFydDoxOTUwLHllYXJFbmQ6MjA1MCxtb250aFN0YXJ0OjAsbW9udGhFbmQ6MTEsc3R5bGU6IiIsaWQ6IiIsZml4ZWQ6ITEscm91bmRUaW1lOiJyb3VuZCIsY2xhc3NOYW1lOiIiLHdlZWtlbmRzOltdLGhpZ2hsaWdodGVkRGF0ZXM6W10saGlnaGxpZ2h0ZWRQZXJpb2RzOltdLGRpc2FibGVkRGF0ZXM6W10sZGlzYWJsZWRXZWVrRGF5czpbXSx5ZWFyT2Zmc2V0OjAsYmVmb3JlU2hvd0RheTpudWxsLGVudGVyTGlrZVRhYjohMCxzaG93QXBwbHlCdXR0b246ITF9LEc9ImVuIjtmLmRhdGV0aW1lcGlja2VyPXtzZXRMb2NhbGU6ZnVuY3Rpb24ocil7Rz1KLmkxOG5bcl0\/cjoiZW4iO0RhdGUubW9udGhOYW1lcz1KLmkxOG5bR10ubW9udGhzO0RhdGUuZGF5TmFtZXM9Si5pMThuW0ddLmRheU9mV2Vla319O3dpbmRvdy5nZXRDb21wdXRlZFN0eWxlfHwod2luZG93LmdldENvbXB1dGVkU3R5bGU9CmZ1bmN0aW9uKHIsdil7dGhpcy5lbD1yO3RoaXMuZ2V0UHJvcGVydHlWYWx1ZT1mdW5jdGlvbihhKXt2YXIgRD0vKFwtKFthLXpdKXsxfSkvZzsiZmxvYXQiPT09YSYmKGE9InN0eWxlRmxvYXQiKTtELnRlc3QoYSkmJihhPWEucmVwbGFjZShELGZ1bmN0aW9uKEksZyxlKXtyZXR1cm4gZS50b1VwcGVyQ2FzZSgpfSkpO3JldHVybiByLmN1cnJlbnRTdHlsZVthXXx8bnVsbH07cmV0dXJuIHRoaXN9KTtBcnJheS5wcm90b3R5cGUuaW5kZXhPZnx8KEFycmF5LnByb3RvdHlwZS5pbmRleE9mPWZ1bmN0aW9uKHIsdil7dmFyIGE7dj12fHwwO2ZvcihhPXRoaXMubGVuZ3RoO3Y8YTt2Kz0xKWlmKHRoaXNbdl09PT1yKXJldHVybiB2O3JldHVybi0xfSk7RGF0ZS5wcm90b3R5cGUuY291bnREYXlzSW5Nb250aD1mdW5jdGlvbigpe3JldHVybihuZXcgRGF0ZSh0aGlzLmdldEZ1bGxZZWFyKCksdGhpcy5nZXRNb250aCgpKzEsMCkpLmdldERhdGUoKX07Zi5mbi54ZHNvZnRTY3JvbGxlcj1mdW5jdGlvbihyKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHY9CmYodGhpcyksYT1mdW5jdGlvbihwKXt2YXIgQj17eDowLHk6MH07aWYoInRvdWNoc3RhcnQiPT09cC50eXBlfHwidG91Y2htb3ZlIj09PXAudHlwZXx8InRvdWNoZW5kIj09PXAudHlwZXx8InRvdWNoY2FuY2VsIj09PXAudHlwZSlwPXAub3JpZ2luYWxFdmVudC50b3VjaGVzWzBdfHxwLm9yaWdpbmFsRXZlbnQuY2hhbmdlZFRvdWNoZXNbMF0sQi54PXAuY2xpZW50WCxCLnk9cC5jbGllbnRZO2Vsc2UgaWYoIm1vdXNlZG93biI9PT1wLnR5cGV8fCJtb3VzZXVwIj09PXAudHlwZXx8Im1vdXNlbW92ZSI9PT1wLnR5cGV8fCJtb3VzZW92ZXIiPT09cC50eXBlfHwibW91c2VvdXQiPT09cC50eXBlfHwibW91c2VlbnRlciI9PT1wLnR5cGV8fCJtb3VzZWxlYXZlIj09PXAudHlwZSlCLng9cC5jbGllbnRYLEIueT1wLmNsaWVudFk7cmV0dXJuIEJ9LEQ9MTAwLEk9ITEsZz0wLGU9MCxoPTAsYz0hMSx0PTAsdT1mdW5jdGlvbigpe307aWYoImhpZGUiPT09cil2LmZpbmQoIi54ZHNvZnRfc2Nyb2xsYmFyIikuaGlkZSgpOwplbHNle2lmKCFmKHRoaXMpLmhhc0NsYXNzKCJ4ZHNvZnRfc2Nyb2xsZXJfYm94Iikpe3ZhciB3PXYuY2hpbGRyZW4oKS5lcSgwKSxFPXZbMF0uY2xpZW50SGVpZ2h0LEM9d1swXS5vZmZzZXRIZWlnaHQseT1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfc2Nyb2xsYmFyIj48L2Rpdj4nKSx6PWYoJzxkaXYgY2xhc3M9Inhkc29mdF9zY3JvbGxlciI+PC9kaXY+Jyk7eS5hcHBlbmQoeik7di5hZGRDbGFzcygieGRzb2Z0X3Njcm9sbGVyX2JveCIpLmFwcGVuZCh5KTt1PWZ1bmN0aW9uKHApe3A9YShwKS55LWcrdDswPnAmJihwPTApO3ArelswXS5vZmZzZXRIZWlnaHQ+aCYmKHA9aC16WzBdLm9mZnNldEhlaWdodCk7di50cmlnZ2VyKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLFtEP3AvRDowXSl9O3oub24oInRvdWNoc3RhcnQueGRzb2Z0X3Njcm9sbGVyIG1vdXNlZG93bi54ZHNvZnRfc2Nyb2xsZXIiLGZ1bmN0aW9uKHApe0V8fHYudHJpZ2dlcigicmVzaXplX3Njcm9sbC54ZHNvZnRfc2Nyb2xsZXIiLApbcl0pO2c9YShwKS55O3Q9cGFyc2VJbnQoei5jc3MoIm1hcmdpbi10b3AiKSwxMCk7aD15WzBdLm9mZnNldEhlaWdodDsibW91c2Vkb3duIj09PXAudHlwZT8oZG9jdW1lbnQmJmYoZG9jdW1lbnQuYm9keSkuYWRkQ2xhc3MoInhkc29mdF9ub3NlbGVjdCIpLGYoW2RvY3VtZW50LmJvZHksd2luZG93XSkub24oIm1vdXNldXAueGRzb2Z0X3Njcm9sbGVyIixmdW5jdGlvbiBOKCl7ZihbZG9jdW1lbnQuYm9keSx3aW5kb3ddKS5vZmYoIm1vdXNldXAueGRzb2Z0X3Njcm9sbGVyIixOKS5vZmYoIm1vdXNlbW92ZS54ZHNvZnRfc2Nyb2xsZXIiLHUpLnJlbW92ZUNsYXNzKCJ4ZHNvZnRfbm9zZWxlY3QiKX0pLGYoZG9jdW1lbnQuYm9keSkub24oIm1vdXNlbW92ZS54ZHNvZnRfc2Nyb2xsZXIiLHUpKTooYz0hMCxwLnN0b3BQcm9wYWdhdGlvbigpLHAucHJldmVudERlZmF1bHQoKSl9KS5vbigidG91Y2htb3ZlIixmdW5jdGlvbihwKXtjJiYocC5wcmV2ZW50RGVmYXVsdCgpLHUocCkpfSkub24oInRvdWNoZW5kIHRvdWNoY2FuY2VsIiwKZnVuY3Rpb24ocCl7Yz0hMTt0PTB9KTt2Lm9uKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLGZ1bmN0aW9uKHAsQil7RXx8di50cmlnZ2VyKCJyZXNpemVfc2Nyb2xsLnhkc29mdF9zY3JvbGxlciIsW0IsITBdKTtCPTE8Qj8xOjA+Qnx8aXNOYU4oQik\/MDpCO3ouY3NzKCJtYXJnaW4tdG9wIixEKkIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt3LmNzcygibWFyZ2luVG9wIiwtcGFyc2VJbnQoKHdbMF0ub2Zmc2V0SGVpZ2h0LUUpKkIsMTApKX0sMTApfSkub24oInJlc2l6ZV9zY3JvbGwueGRzb2Z0X3Njcm9sbGVyIixmdW5jdGlvbihwLEIsTil7RT12WzBdLmNsaWVudEhlaWdodDtDPXdbMF0ub2Zmc2V0SGVpZ2h0O3A9RS9DO3ZhciBPPXAqeVswXS5vZmZzZXRIZWlnaHQ7MTxwP3ouaGlkZSgpOih6LnNob3coKSx6LmNzcygiaGVpZ2h0IixwYXJzZUludCgxMDxPP086MTAsMTApKSxEPXlbMF0ub2Zmc2V0SGVpZ2h0LXpbMF0ub2Zmc2V0SGVpZ2h0LCEwIT09TiYmdi50cmlnZ2VyKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLApbQnx8TWF0aC5hYnMocGFyc2VJbnQody5jc3MoIm1hcmdpblRvcCIpLDEwKSkvKEMtRSldKSl9KTt2Lm9uKCJtb3VzZXdoZWVsIixmdW5jdGlvbihwKXt2YXIgQj1NYXRoLmFicyhwYXJzZUludCh3LmNzcygibWFyZ2luVG9wIiksMTApKTtCLT0yMCpwLmRlbHRhWTswPkImJihCPTApO3YudHJpZ2dlcigic2Nyb2xsX2VsZW1lbnQueGRzb2Z0X3Njcm9sbGVyIixbQi8oQy1FKV0pO3Auc3RvcFByb3BhZ2F0aW9uKCk7cmV0dXJuITF9KTt2Lm9uKCJ0b3VjaHN0YXJ0IixmdW5jdGlvbihwKXtJPWEocCk7ZT1NYXRoLmFicyhwYXJzZUludCh3LmNzcygibWFyZ2luVG9wIiksMTApKX0pO3Yub24oInRvdWNobW92ZSIsZnVuY3Rpb24ocCl7SSYmKHAucHJldmVudERlZmF1bHQoKSxwPWEocCksdi50cmlnZ2VyKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLFsoZS0ocC55LUkueSkpLyhDLUUpXSkpfSk7di5vbigidG91Y2hlbmQgdG91Y2hjYW5jZWwiLGZ1bmN0aW9uKHApe0k9ITE7CmU9MH0pfXYudHJpZ2dlcigicmVzaXplX3Njcm9sbC54ZHNvZnRfc2Nyb2xsZXIiLFtyXSl9fSl9O2YuZm4uZGF0ZXRpbWVwaWNrZXI9ZnVuY3Rpb24ocil7dmFyIHY9ITEsYT1mLmlzUGxhaW5PYmplY3Qocil8fCFyP2YuZXh0ZW5kKCEwLHt9LEoscik6Zi5leHRlbmQoITAse30sSiksRD0wLEk9ZnVuY3Rpb24oZSl7ZS5vbigib3Blbi54ZHNvZnQgZm9jdXNpbi54ZHNvZnQgbW91c2Vkb3duLnhkc29mdCIsZnVuY3Rpb24gdChjKXtlLmlzKCI6ZGlzYWJsZWQiKXx8ZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiKXx8KGNsZWFyVGltZW91dChEKSxEPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmRhdGEoInhkc29mdF9kYXRldGltZXBpY2tlciIpfHxnKGUpO2Uub2ZmKCJvcGVuLnhkc29mdCBmb2N1c2luLnhkc29mdCBtb3VzZWRvd24ueGRzb2Z0Iix0KS50cmlnZ2VyKCJvcGVuLnhkc29mdCIpfSwxMDApKX0pfSxnPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIGgoKXtpZihhLnN0YXJ0RGF0ZSl2YXIgYj0KbC5zdHJUb0RhdGUoYS5zdGFydERhdGUpO2Vsc2UgaWYoYj1hLnZhbHVlfHwoZSYmZS52YWwmJmUudmFsKCk\/ZS52YWwoKToiIikpYj1sLnN0clRvRGF0ZVRpbWUoYik7ZWxzZSBpZihhLmRlZmF1bHREYXRlJiYoYj1sLnN0clRvRGF0ZVRpbWUoYS5kZWZhdWx0RGF0ZSksYS5kZWZhdWx0VGltZSkpe3ZhciBkPWwuc3RydG90aW1lKGEuZGVmYXVsdFRpbWUpO2Iuc2V0SG91cnMoZC5nZXRIb3VycygpKTtiLnNldE1pbnV0ZXMoZC5nZXRNaW51dGVzKCkpfWImJmwuaXNWYWxpZERhdGUoYik\/Yy5kYXRhKCJjaGFuZ2VkIiwhMCk6Yj0iIjtyZXR1cm4gYnx8MH12YXIgYz1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgeGRzb2Z0X25vc2VsZWN0Ij48L2Rpdj4nKSx0PWYoJzxkaXYgY2xhc3M9Inhkc29mdF9jb3B5cmlnaHQiPjxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwOi8veGRzb2Z0Lm5ldC9qcXBsdWdpbnMvZGF0ZXRpbWVwaWNrZXIvIj54ZHNvZnQubmV0PC9hPjwvZGl2PicpLAp1PWYoJzxkaXYgY2xhc3M9Inhkc29mdF9kYXRlcGlja2VyIGFjdGl2ZSI+PC9kaXY+Jyksdz1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfbW91bnRocGlja2VyIj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Inhkc29mdF9wcmV2Ij48L2J1dHRvbj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Inhkc29mdF90b2RheV9idXR0b24iPjwvYnV0dG9uPjxkaXYgY2xhc3M9Inhkc29mdF9sYWJlbCB4ZHNvZnRfbW9udGgiPjxzcGFuPjwvc3Bhbj48aT48L2k+PC9kaXY+PGRpdiBjbGFzcz0ieGRzb2Z0X2xhYmVsIHhkc29mdF95ZWFyIj48c3Bhbj48L3NwYW4+PGk+PC9pPjwvZGl2PjxidXR0b24gdHlwZT0iYnV0dG9uIiBjbGFzcz0ieGRzb2Z0X25leHQiPjwvYnV0dG9uPjwvZGl2PicpLEU9ZignPGRpdiBjbGFzcz0ieGRzb2Z0X2NhbGVuZGFyIj48L2Rpdj4nKSxDPWYoJzxkaXYgY2xhc3M9Inhkc29mdF90aW1lcGlja2VyIGFjdGl2ZSI+PGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ4ZHNvZnRfcHJldiI+PC9idXR0b24+PGRpdiBjbGFzcz0ieGRzb2Z0X3RpbWVfYm94Ij48L2Rpdj48YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9Inhkc29mdF9uZXh0Ij48L2J1dHRvbj48L2Rpdj4nKSwKeT1DLmZpbmQoIi54ZHNvZnRfdGltZV9ib3giKS5lcSgwKSx6PWYoJzxkaXYgY2xhc3M9Inhkc29mdF90aW1lX3ZhcmlhbnQiPjwvZGl2PicpLHA9ZignPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJ4ZHNvZnRfc2F2ZV9zZWxlY3RlZCBibHVlLWdyYWRpZW50LWJ1dHRvbiI+U2F2ZSBTZWxlY3RlZDwvYnV0dG9uPicpLEI9ZignPGRpdiBjbGFzcz0ieGRzb2Z0X3NlbGVjdCB4ZHNvZnRfbW9udGhzZWxlY3QiPjxkaXY+PC9kaXY+PC9kaXY+JyksTj1mKCc8ZGl2IGNsYXNzPSJ4ZHNvZnRfc2VsZWN0IHhkc29mdF95ZWFyc2VsZWN0Ij48ZGl2PjwvZGl2PjwvZGl2PicpLE89ITEsVz0wO2EuaWQmJmMuYXR0cigiaWQiLGEuaWQpO2Euc3R5bGUmJmMuYXR0cigic3R5bGUiLGEuc3R5bGUpO2Eud2Vla3MmJmMuYWRkQ2xhc3MoInhkc29mdF9zaG93d2Vla3MiKTthLnJ0bCYmYy5hZGRDbGFzcygieGRzb2Z0X3J0bCIpO2MuYWRkQ2xhc3MoInhkc29mdF8iK2EudGhlbWUpO2MuYWRkQ2xhc3MoYS5jbGFzc05hbWUpOwp3LmZpbmQoIi54ZHNvZnRfbW9udGggc3BhbiIpLmFmdGVyKEIpO3cuZmluZCgiLnhkc29mdF95ZWFyIHNwYW4iKS5hZnRlcihOKTt3LmZpbmQoIi54ZHNvZnRfbW9udGgsLnhkc29mdF95ZWFyIikub24oIm1vdXNlZG93bi54ZHNvZnQiLGZ1bmN0aW9uKGIpe3ZhciBkPWYodGhpcykuZmluZCgiLnhkc29mdF9zZWxlY3QiKS5lcSgwKSxrPTAsbj0wLG09ZC5pcygiOnZpc2libGUiKSxxO3cuZmluZCgiLnhkc29mdF9zZWxlY3QiKS5oaWRlKCk7bC5jdXJyZW50VGltZSYmKGs9bC5jdXJyZW50VGltZVtmKHRoaXMpLmhhc0NsYXNzKCJ4ZHNvZnRfbW9udGgiKT8iZ2V0TW9udGgiOiJnZXRGdWxsWWVhciJdKCkpO2RbbT8iaGlkZSI6InNob3ciXSgpO209ZC5maW5kKCJkaXYueGRzb2Z0X29wdGlvbiIpO2ZvcihxPTA7cTxtLmxlbmd0aCYmbS5lcShxKS5kYXRhKCJ2YWx1ZSIpIT09aztxKz0xKW4rPW1bMF0ub2Zmc2V0SGVpZ2h0O2QueGRzb2Z0U2Nyb2xsZXIobi8oZC5jaGlsZHJlbigpWzBdLm9mZnNldEhlaWdodC0KZFswXS5jbGllbnRIZWlnaHQpKTtiLnN0b3BQcm9wYWdhdGlvbigpO3JldHVybiExfSk7dy5maW5kKCIueGRzb2Z0X3NlbGVjdCIpLnhkc29mdFNjcm9sbGVyKCkub24oIm1vdXNlZG93bi54ZHNvZnQiLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCk7Yi5wcmV2ZW50RGVmYXVsdCgpfSkub24oIm1vdXNlZG93bi54ZHNvZnQiLCIueGRzb2Z0X29wdGlvbiIsZnVuY3Rpb24oYil7aWYodm9pZCAwPT09bC5jdXJyZW50VGltZXx8bnVsbD09PWwuY3VycmVudFRpbWUpbC5jdXJyZW50VGltZT1sLm5vdygpO2I9bC5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpO2lmKGwmJmwuY3VycmVudFRpbWUpbC5jdXJyZW50VGltZVtmKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpLmhhc0NsYXNzKCJ4ZHNvZnRfbW9udGhzZWxlY3QiKT8ic2V0TW9udGgiOiJzZXRGdWxsWWVhciJdKGYodGhpcykuZGF0YSgidmFsdWUiKSk7Zih0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5oaWRlKCk7Yy50cmlnZ2VyKCJ4Y2hhbmdlLnhkc29mdCIpOwphLm9uQ2hhbmdlTW9udGgmJmlzRnVuY3Rpb24oYS5vbkNoYW5nZU1vbnRoKSYmYS5vbkNoYW5nZU1vbnRoLmNhbGwoYyxsLmN1cnJlbnRUaW1lLGMuZGF0YSgiaW5wdXQiKSk7YiE9PWwuY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKSYmaXNGdW5jdGlvbihhLm9uQ2hhbmdlWWVhcikmJmEub25DaGFuZ2VZZWFyLmNhbGwoYyxsLmN1cnJlbnRUaW1lLGMuZGF0YSgiaW5wdXQiKSl9KTtjLnNldE9wdGlvbnM9ZnVuY3Rpb24oYil7dmFyIGQ9e30saz1mdW5jdGlvbihuLG0pe249bi5yZXBsYWNlKC8oW1xbXF1cL1x7XH1cKFwpXC1cLlwrXXsxfSkvZywiXFwkMSIpLnJlcGxhY2UoL18vZywie2RpZ2l0K30iKS5yZXBsYWNlKC8oWzAtOV17MX0pL2csIntkaWdpdCQxfSIpLnJlcGxhY2UoL1x7ZGlnaXQoWzAtOV17MX0pXH0vZywiWzAtJDFfXXsxfSIpLnJlcGxhY2UoL1x7ZGlnaXRbXCtdXH0vZywiWzAtOV9dezF9Iik7cmV0dXJuKG5ldyBSZWdFeHAobikpLnRlc3QobSl9O2E9Zi5leHRlbmQoITAsCnt9LGEsYik7Yi5hbGxvd1RpbWVzJiZBcnJheS5pc0FycmF5KGIuYWxsb3dUaW1lcykmJmIuYWxsb3dUaW1lcy5sZW5ndGgmJihhLmFsbG93VGltZXM9Zi5leHRlbmQoITAsW10sYi5hbGxvd1RpbWVzKSk7Yi53ZWVrZW5kcyYmQXJyYXkuaXNBcnJheShiLndlZWtlbmRzKSYmYi53ZWVrZW5kcy5sZW5ndGgmJihhLndlZWtlbmRzPWYuZXh0ZW5kKCEwLFtdLGIud2Vla2VuZHMpKTtiLmhpZ2hsaWdodGVkRGF0ZXMmJkFycmF5LmlzQXJyYXkoYi5oaWdobGlnaHRlZERhdGVzKSYmYi5oaWdobGlnaHRlZERhdGVzLmxlbmd0aCYmKGYuZWFjaChiLmhpZ2hsaWdodGVkRGF0ZXMsZnVuY3Rpb24obixtKXtuPWYubWFwKG0uc3BsaXQoIiwiKSxmLnRyaW0pO209bmV3IE0oRGF0ZS5wYXJzZURhdGUoblswXSxhLmZvcm1hdERhdGUpLG5bMV0sblsyXSk7dmFyIHE9bS5kYXRlLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKTt2b2lkIDAhPT1kW3FdPyhuPWRbcV0uZGVzYykmJm4ubGVuZ3RoJiZtLmRlc2MmJgptLmRlc2MubGVuZ3RoJiYoZFtxXS5kZXNjPW4rIlxuIittLmRlc2MpOmRbcV09bX0pLGEuaGlnaGxpZ2h0ZWREYXRlcz1mLmV4dGVuZCghMCxbXSxkKSk7Yi5oaWdobGlnaHRlZFBlcmlvZHMmJkFycmF5LmlzQXJyYXkoYi5oaWdobGlnaHRlZFBlcmlvZHMpJiZiLmhpZ2hsaWdodGVkUGVyaW9kcy5sZW5ndGgmJihkPWYuZXh0ZW5kKCEwLFtdLGEuaGlnaGxpZ2h0ZWREYXRlcyksZi5lYWNoKGIuaGlnaGxpZ2h0ZWRQZXJpb2RzLGZ1bmN0aW9uKG4sbSl7dmFyIHE7aWYoQXJyYXkuaXNBcnJheShtKSl7bj1tWzBdO3ZhciB4PW1bMV0sRj1tWzJdLEE9bVszXX1lbHNlIG09Zi5tYXAobS5zcGxpdCgiLCIpLGYudHJpbSksbj1EYXRlLnBhcnNlRGF0ZShtWzBdLGEuZm9ybWF0RGF0ZSkseD1EYXRlLnBhcnNlRGF0ZShtWzFdLGEuZm9ybWF0RGF0ZSksRj1tWzJdLEE9bVszXTtmb3IoO248PXg7KXttPW5ldyBNKG4sRixBKTt2YXIgSD1uLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKTtuLnNldERhdGUobi5nZXREYXRlKCkrCjEpO3ZvaWQgMCE9PWRbSF0\/KHE9ZFtIXS5kZXNjKSYmcS5sZW5ndGgmJm0uZGVzYyYmbS5kZXNjLmxlbmd0aCYmKGRbSF0uZGVzYz1xKyJcbiIrbS5kZXNjKTpkW0hdPW19fSksYS5oaWdobGlnaHRlZERhdGVzPWYuZXh0ZW5kKCEwLFtdLGQpKTtiLmRpc2FibGVkRGF0ZXMmJkFycmF5LmlzQXJyYXkoYi5kaXNhYmxlZERhdGVzKSYmYi5kaXNhYmxlZERhdGVzLmxlbmd0aCYmKGEuZGlzYWJsZWREYXRlcz1mLmV4dGVuZCghMCxbXSxiLmRpc2FibGVkRGF0ZXMpKTtiLmRpc2FibGVkV2Vla0RheXMmJkFycmF5LmlzQXJyYXkoYi5kaXNhYmxlZFdlZWtEYXlzKSYmYi5kaXNhYmxlZFdlZWtEYXlzLmxlbmd0aCYmKGEuZGlzYWJsZWRXZWVrRGF5cz1mLmV4dGVuZCghMCxbXSxiLmRpc2FibGVkV2Vla0RheXMpKTshYS5vcGVuJiYhYS5vcGVuZWR8fGEuaW5saW5lfHxlLnRyaWdnZXIoIm9wZW4ueGRzb2Z0Iik7YS5pbmxpbmUmJihPPSEwLGMuYWRkQ2xhc3MoInhkc29mdF9pbmxpbmUiKSxlLmFmdGVyKGMpLmhpZGUoKSk7CmEuaW52ZXJzZUJ1dHRvbiYmKGEubmV4dD0ieGRzb2Z0X3ByZXYiLGEucHJldj0ieGRzb2Z0X25leHQiKTthLmRhdGVwaWNrZXI\/dS5hZGRDbGFzcygiYWN0aXZlIik6dS5yZW1vdmVDbGFzcygiYWN0aXZlIik7YS50aW1lcGlja2VyP0MuYWRkQ2xhc3MoImFjdGl2ZSIpOkMucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpO2EudmFsdWUmJihsLnNldEN1cnJlbnRUaW1lKGEudmFsdWUpLGUmJmUudmFsJiZlLnZhbChsLnN0cikpO2lzTmFOKGEuZGF5T2ZXZWVrU3RhcnQpP2EuZGF5T2ZXZWVrU3RhcnQ9MDphLmRheU9mV2Vla1N0YXJ0PXBhcnNlSW50KGEuZGF5T2ZXZWVrU3RhcnQsMTApJTc7YS50aW1lcGlja2VyU2Nyb2xsYmFyfHx5Lnhkc29mdFNjcm9sbGVyKCJoaWRlIik7YS5taW5EYXRlJiYvXltcK1wtXSguKikkLy50ZXN0KGEubWluRGF0ZSkmJihhLm1pbkRhdGU9bC5zdHJUb0RhdGVUaW1lKGEubWluRGF0ZSkuZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpKTthLm1heERhdGUmJi9eW1wrXC1dKC4qKSQvLnRlc3QoYS5tYXhEYXRlKSYmCihhLm1heERhdGU9bC5zdHJUb0RhdGVUaW1lKGEubWF4RGF0ZSkuZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpKTtwLnRvZ2dsZShhLnNob3dBcHBseUJ1dHRvbik7dy5maW5kKCIueGRzb2Z0X3RvZGF5X2J1dHRvbiIpLmNzcygidmlzaWJpbGl0eSIsYS50b2RheUJ1dHRvbj8idmlzaWJsZSI6ImhpZGRlbiIpO3cuZmluZCgiLiIrYS5wcmV2KS5jc3MoInZpc2liaWxpdHkiLGEucHJldkJ1dHRvbj8idmlzaWJsZSI6ImhpZGRlbiIpO3cuZmluZCgiLiIrYS5uZXh0KS5jc3MoInZpc2liaWxpdHkiLGEubmV4dEJ1dHRvbj8idmlzaWJsZSI6ImhpZGRlbiIpO2EubWFzayYmKGUub2ZmKCJrZXlkb3duLnhkc29mdCIpLCEwPT09YS5tYXNrJiYoYS5tYXNrPWEuZm9ybWF0LnJlcGxhY2UoL1kvZywiOTk5OSIpLnJlcGxhY2UoL0YvZywiOTk5OSIpLnJlcGxhY2UoL20vZywiMTkiKS5yZXBsYWNlKC9kL2csIjM5IikucmVwbGFjZSgvSC9nLCIyOSIpLnJlcGxhY2UoL2kvZywiNTkiKS5yZXBsYWNlKC9zL2csCiI1OSIpKSwic3RyaW5nIj09PXR5cGVvZiBhLm1hc2smJihrKGEubWFzayxlLnZhbCgpKXx8ZS52YWwoYS5tYXNrLnJlcGxhY2UoL1swLTldL2csIl8iKSksZS5vbigia2V5ZG93bi54ZHNvZnQiLGZ1bmN0aW9uKG4pe3ZhciBtPXRoaXMudmFsdWUscT1uLndoaWNoO2lmKDQ4PD1xJiY1Nz49cXx8OTY8PXEmJjEwNT49cXx8OD09PXF8fDQ2PT09cSl7YTp7dHJ5e2lmKGRvY3VtZW50LnNlbGVjdGlvbiYmZG9jdW1lbnQuc2VsZWN0aW9uLmNyZWF0ZVJhbmdlKXt2YXIgeD1kb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKS5nZXRCb29rbWFyaygpLmNoYXJDb2RlQXQoMiktMjticmVhayBhfWlmKHRoaXMuc2V0U2VsZWN0aW9uUmFuZ2Upe3g9dGhpcy5zZWxlY3Rpb25TdGFydDticmVhayBhfX1jYXRjaChBKXt4PTA7YnJlYWsgYX14PXZvaWQgMH12YXIgRj04IT09cSYmNDYhPT1xP1N0cmluZy5mcm9tQ2hhckNvZGUoOTY8PXEmJjEwNT49cT9xLTQ4OnEpOiJfIjtmb3IoOCE9PXEmJgo0NiE9PXF8fCF4fHwoLS14LEY9Il8iKTsvW14wLTlfXS8udGVzdChhLm1hc2suc3Vic3RyKHgsMSkpJiZ4PGEubWFzay5sZW5ndGgmJjA8eDspeCs9OD09PXF8fDQ2PT09cT8tMToxO209bS5zdWJzdHIoMCx4KStGK20uc3Vic3RyKHgrMSk7aWYoIiI9PT10cmltKG0pKW09YS5tYXNrLnJlcGxhY2UoL1swLTldL2csIl8iKTtlbHNlIGlmKHg9PT1hLm1hc2subGVuZ3RoKXJldHVybiBuLnByZXZlbnREZWZhdWx0KCksITE7Zm9yKHgrPTg9PT1xfHw0Nj09PXE\/MDoxOy9bXjAtOV9dLy50ZXN0KGEubWFzay5zdWJzdHIoeCwxKSkmJng8YS5tYXNrLmxlbmd0aCYmMDx4Oyl4Kz04PT09cXx8NDY9PT1xPy0xOjE7ayhhLm1hc2ssbSk\/KHRoaXMudmFsdWU9bSxtPXRoaXMsKG09InN0cmluZyI9PT10eXBlb2YgbXx8bSBpbnN0YW5jZW9mIFN0cmluZz9kb2N1bWVudC5nZXRFbGVtZW50QnlJZChtKTptKSYmKG0uY3JlYXRlVGV4dFJhbmdlPyhtPW0uY3JlYXRlVGV4dFJhbmdlKCksbS5jb2xsYXBzZSghMCksCm0ubW92ZUVuZCgiY2hhcmFjdGVyIix4KSxtLm1vdmVTdGFydCgiY2hhcmFjdGVyIix4KSxtLnNlbGVjdCgpKTptLnNldFNlbGVjdGlvblJhbmdlJiZtLnNldFNlbGVjdGlvblJhbmdlKHgseCkpKToiIj09PXRyaW0obSk\/dGhpcy52YWx1ZT1hLm1hc2sucmVwbGFjZSgvWzAtOV0vZywiXyIpOmUudHJpZ2dlcigiZXJyb3JfaW5wdXQueGRzb2Z0Iil9ZWxzZSBpZigtMSE9PVs2NSw2Nyw4Niw5MCw4OV0uaW5kZXhPZihxKSYmdnx8LTEhPT1bMjcsMzgsNDAsMzcsMzksMTE2LDE3LDksMTNdLmluZGV4T2YocSkpcmV0dXJuITA7bi5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiExfSkpKTtpZihhLnZhbGlkYXRlT25CbHVyKWUub2ZmKCJibHVyLnhkc29mdCIpLm9uKCJibHVyLnhkc29mdCIsZnVuY3Rpb24oKXtpZihhLmFsbG93QmxhbmsmJiF0cmltKGYodGhpcykudmFsKCkpLmxlbmd0aClmKHRoaXMpLnZhbChudWxsKSxjLmRhdGEoInhkc29mdF9kYXRldGltZSIpLmVtcHR5KCk7ZWxzZXtpZighRGF0ZS5wYXJzZURhdGUoZih0aGlzKS52YWwoKSwKYS5mb3JtYXQpKXt2YXIgbj0rW2YodGhpcykudmFsKClbMF0sZih0aGlzKS52YWwoKVsxXV0uam9pbigiIiksbT0rW2YodGhpcykudmFsKClbMl0sZih0aGlzKS52YWwoKVszXV0uam9pbigiIik7IWEuZGF0ZXBpY2tlciYmYS50aW1lcGlja2VyJiYwPD1uJiYyND5uJiYwPD1tJiY2MD5tP2YodGhpcykudmFsKFtuLG1dLm1hcChmdW5jdGlvbihxKXtyZXR1cm4gOTxxP3E6IjAiK3F9KS5qb2luKCI6IikpOmYodGhpcykudmFsKGwubm93KCkuZGF0ZUZvcm1hdChhLmZvcm1hdCkpfWMuZGF0YSgieGRzb2Z0X2RhdGV0aW1lIikuc2V0Q3VycmVudFRpbWUoZih0aGlzKS52YWwoKSl9Yy50cmlnZ2VyKCJjaGFuZ2VkYXRldGltZS54ZHNvZnQiKX0pO2EuZGF5T2ZXZWVrU3RhcnRQcmV2PTA9PT1hLmRheU9mV2Vla1N0YXJ0PzY6YS5kYXlPZldlZWtTdGFydC0xO2MudHJpZ2dlcigieGNoYW5nZS54ZHNvZnQiKS50cmlnZ2VyKCJhZnRlck9wZW4ueGRzb2Z0Iil9O2MuZGF0YSgib3B0aW9ucyIsCmEpLm9uKCJtb3VzZWRvd24ueGRzb2Z0IixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpO2IucHJldmVudERlZmF1bHQoKTtOLmhpZGUoKTtCLmhpZGUoKTtyZXR1cm4hMX0pO3kuYXBwZW5kKHopO3kueGRzb2Z0U2Nyb2xsZXIoKTtjLm9uKCJhZnRlck9wZW4ueGRzb2Z0IixmdW5jdGlvbigpe3kueGRzb2Z0U2Nyb2xsZXIoKX0pO2MuYXBwZW5kKHUpLmFwcGVuZChDKTshMCE9PWEud2l0aG91dENvcHlyaWdodCYmYy5hcHBlbmQodCk7dS5hcHBlbmQodykuYXBwZW5kKEUpLmFwcGVuZChwKTtmKGEucGFyZW50SUQpLmFwcGVuZChjKTt2YXIgbD1uZXcgZnVuY3Rpb24oKXt2YXIgYj10aGlzO2Iubm93PWZ1bmN0aW9uKGQpe3ZhciBrPW5ldyBEYXRlO2lmKCFkJiZhLmRlZmF1bHREYXRlKXt2YXIgbj1iLnN0clRvRGF0ZVRpbWUoYS5kZWZhdWx0RGF0ZSk7ay5zZXRGdWxsWWVhcihuLmdldEZ1bGxZZWFyKCkpO2suc2V0TW9udGgobi5nZXRNb250aCgpKTtrLnNldERhdGUobi5nZXREYXRlKCkpfWEueWVhck9mZnNldCYmCmsuc2V0RnVsbFllYXIoay5nZXRGdWxsWWVhcigpK2EueWVhck9mZnNldCk7IWQmJmEuZGVmYXVsdFRpbWUmJihkPWIuc3RydG90aW1lKGEuZGVmYXVsdFRpbWUpLGsuc2V0SG91cnMoZC5nZXRIb3VycygpKSxrLnNldE1pbnV0ZXMoZC5nZXRNaW51dGVzKCkpKTtyZXR1cm4ga307Yi5pc1ZhbGlkRGF0ZT1mdW5jdGlvbihkKXtyZXR1cm4iW29iamVjdCBEYXRlXSIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZCk\/ITE6IWlzTmFOKGQuZ2V0VGltZSgpKX07Yi5zZXRDdXJyZW50VGltZT1mdW5jdGlvbihkKXtiLmN1cnJlbnRUaW1lPSJzdHJpbmciPT09dHlwZW9mIGQ\/Yi5zdHJUb0RhdGVUaW1lKGQpOmIuaXNWYWxpZERhdGUoZCk\/ZDpiLm5vdygpO2MudHJpZ2dlcigieGNoYW5nZS54ZHNvZnQiKX07Yi5lbXB0eT1mdW5jdGlvbigpe2IuY3VycmVudFRpbWU9bnVsbH07Yi5nZXRDdXJyZW50VGltZT1mdW5jdGlvbihkKXtyZXR1cm4gYi5jdXJyZW50VGltZX07Yi5uZXh0TW9udGg9CmZ1bmN0aW9uKCl7aWYodm9pZCAwPT09Yi5jdXJyZW50VGltZXx8bnVsbD09PWIuY3VycmVudFRpbWUpYi5jdXJyZW50VGltZT1iLm5vdygpO3ZhciBkPWIuY3VycmVudFRpbWUuZ2V0TW9udGgoKSsxOzEyPT09ZCYmKGIuY3VycmVudFRpbWUuc2V0RnVsbFllYXIoYi5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpKzEpLGQ9MCk7dmFyIGs9Yi5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpO2IuY3VycmVudFRpbWUuc2V0RGF0ZShNYXRoLm1pbigobmV3IERhdGUoYi5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpLGQrMSwwKSkuZ2V0RGF0ZSgpLGIuY3VycmVudFRpbWUuZ2V0RGF0ZSgpKSk7Yi5jdXJyZW50VGltZS5zZXRNb250aChkKTthLm9uQ2hhbmdlTW9udGgmJmlzRnVuY3Rpb24oYS5vbkNoYW5nZU1vbnRoKSYmYS5vbkNoYW5nZU1vbnRoLmNhbGwoYyxsLmN1cnJlbnRUaW1lLGMuZGF0YSgiaW5wdXQiKSk7ayE9PWIuY3VycmVudFRpbWUuZ2V0RnVsbFllYXIoKSYmaXNGdW5jdGlvbihhLm9uQ2hhbmdlWWVhcikmJgphLm9uQ2hhbmdlWWVhci5jYWxsKGMsbC5jdXJyZW50VGltZSxjLmRhdGEoImlucHV0IikpO2MudHJpZ2dlcigieGNoYW5nZS54ZHNvZnQiKTtyZXR1cm4gZH07Yi5wcmV2TW9udGg9ZnVuY3Rpb24oKXtpZih2b2lkIDA9PT1iLmN1cnJlbnRUaW1lfHxudWxsPT09Yi5jdXJyZW50VGltZSliLmN1cnJlbnRUaW1lPWIubm93KCk7dmFyIGQ9Yi5jdXJyZW50VGltZS5nZXRNb250aCgpLTE7LTE9PT1kJiYoYi5jdXJyZW50VGltZS5zZXRGdWxsWWVhcihiLmN1cnJlbnRUaW1lLmdldEZ1bGxZZWFyKCktMSksZD0xMSk7Yi5jdXJyZW50VGltZS5zZXREYXRlKE1hdGgubWluKChuZXcgRGF0ZShiLmN1cnJlbnRUaW1lLmdldEZ1bGxZZWFyKCksZCsxLDApKS5nZXREYXRlKCksYi5jdXJyZW50VGltZS5nZXREYXRlKCkpKTtiLmN1cnJlbnRUaW1lLnNldE1vbnRoKGQpO2Eub25DaGFuZ2VNb250aCYmaXNGdW5jdGlvbihhLm9uQ2hhbmdlTW9udGgpJiZhLm9uQ2hhbmdlTW9udGguY2FsbChjLGwuY3VycmVudFRpbWUsCmMuZGF0YSgiaW5wdXQiKSk7Yy50cmlnZ2VyKCJ4Y2hhbmdlLnhkc29mdCIpO3JldHVybiBkfTtiLmdldFdlZWtPZlllYXI9ZnVuY3Rpb24oZCl7dmFyIGs9bmV3IERhdGUoZC5nZXRGdWxsWWVhcigpLDAsMSk7cmV0dXJuIE1hdGguY2VpbCgoKGQtaykvODY0RTUray5nZXREYXkoKSsxKS83KX07Yi5zdHJUb0RhdGVUaW1lPWZ1bmN0aW9uKGQpe3ZhciBrO2lmKGQmJmQgaW5zdGFuY2VvZiBEYXRlJiZiLmlzVmFsaWREYXRlKGQpKXJldHVybiBkOyhrPS9eKFwrfFwtKSguKikkLy5leGVjKGQpKSYmKGtbMl09RGF0ZS5wYXJzZURhdGUoa1syXSxhLmZvcm1hdERhdGUpKTtrJiZrWzJdPyhkPWtbMl0uZ2V0VGltZSgpLTZFNCprWzJdLmdldFRpbWV6b25lT2Zmc2V0KCksaz1uZXcgRGF0ZShiLm5vdyghMCkuZ2V0VGltZSgpK3BhcnNlSW50KGtbMV0rIjEiLDEwKSpkKSk6az1kP0RhdGUucGFyc2VEYXRlKGQsYS5mb3JtYXQpOmIubm93KCk7Yi5pc1ZhbGlkRGF0ZShrKXx8KGs9Yi5ub3coKSk7CnJldHVybiBrfTtiLnN0clRvRGF0ZT1mdW5jdGlvbihkKXtpZihkJiZkIGluc3RhbmNlb2YgRGF0ZSYmYi5pc1ZhbGlkRGF0ZShkKSlyZXR1cm4gZDtkPWQ\/RGF0ZS5wYXJzZURhdGUoZCxhLmZvcm1hdERhdGUpOmIubm93KCEwKTtiLmlzVmFsaWREYXRlKGQpfHwoZD1iLm5vdyghMCkpO3JldHVybiBkfTtiLnN0cnRvdGltZT1mdW5jdGlvbihkKXtpZihkJiZkIGluc3RhbmNlb2YgRGF0ZSYmYi5pc1ZhbGlkRGF0ZShkKSlyZXR1cm4gZDtkPWQ\/RGF0ZS5wYXJzZURhdGUoZCxhLmZvcm1hdFRpbWUpOmIubm93KCEwKTtiLmlzVmFsaWREYXRlKGQpfHwoZD1iLm5vdyghMCkpO3JldHVybiBkfTtiLnN0cj1mdW5jdGlvbigpe3JldHVybiBiLmN1cnJlbnRUaW1lLmRhdGVGb3JtYXQoYS5mb3JtYXQpfTtiLmN1cnJlbnRUaW1lPXRoaXMubm93KCl9O3Aub24oImNsaWNrIixmdW5jdGlvbihiKXtiLnByZXZlbnREZWZhdWx0KCk7Yy5kYXRhKCJjaGFuZ2VkIiwhMCk7bC5zZXRDdXJyZW50VGltZShoKCkpOwplLnZhbChsLnN0cigpKTtjLnRyaWdnZXIoImNsb3NlLnhkc29mdCIpfSk7dy5maW5kKCIueGRzb2Z0X3RvZGF5X2J1dHRvbiIpLm9uKCJtb3VzZWRvd24ueGRzb2Z0IixmdW5jdGlvbigpe2MuZGF0YSgiY2hhbmdlZCIsITApO2wuc2V0Q3VycmVudFRpbWUoMCk7Yy50cmlnZ2VyKCJhZnRlck9wZW4ueGRzb2Z0Iil9KS5vbigiZGJsY2xpY2sueGRzb2Z0IixmdW5jdGlvbigpe3ZhciBiPWwuZ2V0Q3VycmVudFRpbWUoKTtiPW5ldyBEYXRlKGIuZ2V0RnVsbFllYXIoKSxiLmdldE1vbnRoKCksYi5nZXREYXRlKCkpO3ZhciBkPWwuc3RyVG9EYXRlKGEubWluRGF0ZSk7ZD1uZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksZC5nZXRNb250aCgpLGQuZ2V0RGF0ZSgpKTtiPGR8fChkPWwuc3RyVG9EYXRlKGEubWF4RGF0ZSksZD1uZXcgRGF0ZShkLmdldEZ1bGxZZWFyKCksZC5nZXRNb250aCgpLGQuZ2V0RGF0ZSgpKSxiPmR8fChlLnZhbChsLnN0cigpKSxlLnRyaWdnZXIoImNoYW5nZSIpLGMudHJpZ2dlcigiY2xvc2UueGRzb2Z0IikpKX0pOwp3LmZpbmQoIi54ZHNvZnRfcHJldiwueGRzb2Z0X25leHQiKS5vbigibW91c2Vkb3duLnhkc29mdCIsZnVuY3Rpb24oKXt2YXIgYj1mKHRoaXMpLGQ9MCxrPSExOyhmdW5jdGlvbiBxKG0pe2IuaGFzQ2xhc3MoYS5uZXh0KT9sLm5leHRNb250aCgpOmIuaGFzQ2xhc3MoYS5wcmV2KSYmbC5wcmV2TW9udGgoKTthLm1vbnRoQ2hhbmdlU3Bpbm5lciYmKGt8fChkPXNldFRpbWVvdXQocSxtfHwxMDApKSl9KSg1MDApO2YoW2RvY3VtZW50LmJvZHksd2luZG93XSkub24oIm1vdXNldXAueGRzb2Z0IixmdW5jdGlvbiBxKCl7Y2xlYXJUaW1lb3V0KGQpO2s9ITA7ZihbZG9jdW1lbnQuYm9keSx3aW5kb3ddKS5vZmYoIm1vdXNldXAueGRzb2Z0IixxKX0pfSk7Qy5maW5kKCIueGRzb2Z0X3ByZXYsLnhkc29mdF9uZXh0Iikub24oIm1vdXNlZG93bi54ZHNvZnQiLGZ1bmN0aW9uKCl7dmFyIGI9Zih0aGlzKSxkPTAsaz0hMSxuPTExMDsoZnVuY3Rpb24geChxKXt2YXIgRj15WzBdLmNsaWVudEhlaWdodCwKQT16WzBdLm9mZnNldEhlaWdodCxIPU1hdGguYWJzKHBhcnNlSW50KHouY3NzKCJtYXJnaW5Ub3AiKSwxMCkpO2IuaGFzQ2xhc3MoYS5uZXh0KSYmQS1GLWEudGltZUhlaWdodEluVGltZVBpY2tlcj49SD96LmNzcygibWFyZ2luVG9wIiwiLSIrKEgrYS50aW1lSGVpZ2h0SW5UaW1lUGlja2VyKSsicHgiKTpiLmhhc0NsYXNzKGEucHJldikmJjA8PUgtYS50aW1lSGVpZ2h0SW5UaW1lUGlja2VyJiZ6LmNzcygibWFyZ2luVG9wIiwiLSIrKEgtYS50aW1lSGVpZ2h0SW5UaW1lUGlja2VyKSsicHgiKTt5LnRyaWdnZXIoInNjcm9sbF9lbGVtZW50Lnhkc29mdF9zY3JvbGxlciIsW01hdGguYWJzKHBhcnNlSW50KHouY3NzKCJtYXJnaW5Ub3AiKSwxMCkvKEEtRikpXSk7bj0xMDxuPzEwOm4tMTA7a3x8KGQ9c2V0VGltZW91dCh4LHF8fG4pKX0pKDUwMCk7ZihbZG9jdW1lbnQuYm9keSx3aW5kb3ddKS5vbigibW91c2V1cC54ZHNvZnQiLGZ1bmN0aW9uIHgoKXtjbGVhclRpbWVvdXQoZCk7az0hMDsKZihbZG9jdW1lbnQuYm9keSx3aW5kb3ddKS5vZmYoIm1vdXNldXAueGRzb2Z0Iix4KX0pfSk7dmFyIGJhPTA7Yy5vbigieGNoYW5nZS54ZHNvZnQiLGZ1bmN0aW9uKGIpe2NsZWFyVGltZW91dChiYSk7YmE9c2V0VGltZW91dChmdW5jdGlvbigpe2lmKHZvaWQgMD09PWwuY3VycmVudFRpbWV8fG51bGw9PT1sLmN1cnJlbnRUaW1lKWwuY3VycmVudFRpbWU9bC5ub3coKTtmb3IodmFyIGQ9IiIsaz1uZXcgRGF0ZShsLmN1cnJlbnRUaW1lLmdldEZ1bGxZZWFyKCksbC5jdXJyZW50VGltZS5nZXRNb250aCgpLDEsMTIsMCwwKSxuPTAsbSxxPWwubm93KCkseD0hMSxGPSExLEE9W10sSD0hMCxYPSIiLFA9IiIsWTtrLmdldERheSgpIT09YS5kYXlPZldlZWtTdGFydDspay5zZXREYXRlKGsuZ2V0RGF0ZSgpLTEpO2QrPSI8dGFibGU+PHRoZWFkPjx0cj4iO2Eud2Vla3MmJihkKz0iPHRoPjwvdGg+Iik7Zm9yKG09MDs3Pm07bSs9MSlkKz0iPHRoPiIrYS5pMThuW0ddLmRheU9mV2Vla1Nob3J0WyhtKwphLmRheU9mV2Vla1N0YXJ0KSU3XSsiPC90aD4iO2QrPSI8L3RyPjwvdGhlYWQ+PHRib2R5PiI7ITEhPT1hLm1heERhdGUmJih4PWwuc3RyVG9EYXRlKGEubWF4RGF0ZSkseD1uZXcgRGF0ZSh4LmdldEZ1bGxZZWFyKCkseC5nZXRNb250aCgpLHguZ2V0RGF0ZSgpLDIzLDU5LDU5LDk5OSkpO2ZvcighMSE9PWEubWluRGF0ZSYmKEY9bC5zdHJUb0RhdGUoYS5taW5EYXRlKSxGPW5ldyBEYXRlKEYuZ2V0RnVsbFllYXIoKSxGLmdldE1vbnRoKCksRi5nZXREYXRlKCkpKTtuPGwuY3VycmVudFRpbWUuY291bnREYXlzSW5Nb250aCgpfHxrLmdldERheSgpIT09YS5kYXlPZldlZWtTdGFydHx8bC5jdXJyZW50VGltZS5nZXRNb250aCgpPT09ay5nZXRNb250aCgpOyl7QT1bXTtuKz0xO3ZhciBSPWsuZ2V0RGF5KCk7bT1rLmdldERhdGUoKTtQPWsuZ2V0RnVsbFllYXIoKTt2YXIgUT1rLmdldE1vbnRoKCksZGE9bC5nZXRXZWVrT2ZZZWFyKGspO1k9IiI7QS5wdXNoKCJ4ZHNvZnRfZGF0ZSIpO3ZhciBWPQphLmJlZm9yZVNob3dEYXkmJmlzRnVuY3Rpb24oYS5iZWZvcmVTaG93RGF5LmNhbGwpP2EuYmVmb3JlU2hvd0RheS5jYWxsKGMsayk6bnVsbDshMSE9PXgmJms+eHx8ITEhPT1GJiZrPEZ8fFYmJiExPT09VlswXT9BLnB1c2goInhkc29mdF9kaXNhYmxlZCIpOi0xIT09YS5kaXNhYmxlZERhdGVzLmluZGV4T2Yoay5kYXRlRm9ybWF0KGEuZm9ybWF0RGF0ZSkpP0EucHVzaCgieGRzb2Z0X2Rpc2FibGVkIik6LTEhPT1hLmRpc2FibGVkV2Vla0RheXMuaW5kZXhPZihSKSYmQS5wdXNoKCJ4ZHNvZnRfZGlzYWJsZWQiKTtWJiYiIiE9PVZbMV0mJkEucHVzaChWWzFdKTtsLmN1cnJlbnRUaW1lLmdldE1vbnRoKCkhPT1RJiZBLnB1c2goInhkc29mdF9vdGhlcl9tb250aCIpOyhhLmRlZmF1bHRTZWxlY3R8fGMuZGF0YSgiY2hhbmdlZCIpKSYmbC5jdXJyZW50VGltZS5kYXRlRm9ybWF0KGEuZm9ybWF0RGF0ZSk9PT1rLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKSYmQS5wdXNoKCJ4ZHNvZnRfY3VycmVudCIpOwpxLmRhdGVGb3JtYXQoYS5mb3JtYXREYXRlKT09PWsuZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpJiZBLnB1c2goInhkc29mdF90b2RheSIpOzAhPT1rLmdldERheSgpJiY2IT09ay5nZXREYXkoKSYmLTE9PT1hLndlZWtlbmRzLmluZGV4T2Yoay5kYXRlRm9ybWF0KGEuZm9ybWF0RGF0ZSkpfHxBLnB1c2goInhkc29mdF93ZWVrZW5kIik7dm9pZCAwIT09YS5oaWdobGlnaHRlZERhdGVzW2suZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpXSYmKFI9YS5oaWdobGlnaHRlZERhdGVzW2suZGF0ZUZvcm1hdChhLmZvcm1hdERhdGUpXSxBLnB1c2godm9pZCAwPT09Ui5zdHlsZT8ieGRzb2Z0X2hpZ2hsaWdodGVkX2RlZmF1bHQiOlIuc3R5bGUpLFk9dm9pZCAwPT09Ui5kZXNjPyIiOlIuZGVzYyk7YS5iZWZvcmVTaG93RGF5JiZpc0Z1bmN0aW9uKGEuYmVmb3JlU2hvd0RheSkmJkEucHVzaChhLmJlZm9yZVNob3dEYXkoaykpO0gmJihkKz0iPHRyPiIsSD0hMSxhLndlZWtzJiYoZCs9Ijx0aD4iK2RhKwoiPC90aD4iKSk7ZCs9Jzx0ZCBkYXRhLWRhdGU9IicrbSsnIiBkYXRhLW1vbnRoPSInK1ErJyIgZGF0YS15ZWFyPSInK1ArJyIgY2xhc3M9Inhkc29mdF9kYXRlIHhkc29mdF9kYXlfb2Zfd2Vlaycray5nZXREYXkoKSsiICIrQS5qb2luKCIgIikrJyIgdGl0bGU9IicrWSsnIj48ZGl2PicrbSsiPC9kaXY+PC90ZD4iO2suZ2V0RGF5KCk9PT1hLmRheU9mV2Vla1N0YXJ0UHJldiYmKGQrPSI8L3RyPiIsSD0hMCk7ay5zZXREYXRlKG0rMSl9RS5odG1sKGQrIjwvdGJvZHk+PC90YWJsZT4iKTt3LmZpbmQoIi54ZHNvZnRfbGFiZWwgc3BhbiIpLmVxKDApLnRleHQoYS5pMThuW0ddLm1vbnRoc1tsLmN1cnJlbnRUaW1lLmdldE1vbnRoKCldKTt3LmZpbmQoIi54ZHNvZnRfbGFiZWwgc3BhbiIpLmVxKDEpLnRleHQobC5jdXJyZW50VGltZS5nZXRGdWxsWWVhcigpKTtRPVA9WD0iIjtkPWZ1bmN0aW9uKFMsVCl7dmFyIEs9bC5ub3coKSxjYT1hLmFsbG93VGltZXMmJkFycmF5LmlzQXJyYXkoYS5hbGxvd1RpbWVzKSYmCmEuYWxsb3dUaW1lcy5sZW5ndGg7Sy5zZXRIb3VycyhTKTtTPXBhcnNlSW50KEsuZ2V0SG91cnMoKSwxMCk7Sy5zZXRNaW51dGVzKFQpO1Q9cGFyc2VJbnQoSy5nZXRNaW51dGVzKCksMTApO3ZhciBMPW5ldyBEYXRlKGwuY3VycmVudFRpbWUpO0wuc2V0SG91cnMoUyk7TC5zZXRNaW51dGVzKFQpO0E9W107KCExIT09YS5taW5EYXRlVGltZSYmYS5taW5EYXRlVGltZT5MfHwhMSE9PWEubWF4VGltZSYmbC5zdHJ0b3RpbWUoYS5tYXhUaW1lKS5nZXRUaW1lKCk8Sy5nZXRUaW1lKCl8fCExIT09YS5taW5UaW1lJiZsLnN0cnRvdGltZShhLm1pblRpbWUpLmdldFRpbWUoKT5LLmdldFRpbWUoKSkmJkEucHVzaCgieGRzb2Z0X2Rpc2FibGVkIik7KCExIT09YS5taW5EYXRlVGltZSYmYS5taW5EYXRlVGltZT5MfHwhMSE9PWEuZGlzYWJsZWRNaW5UaW1lJiZLLmdldFRpbWUoKT5sLnN0cnRvdGltZShhLmRpc2FibGVkTWluVGltZSkuZ2V0VGltZSgpJiYhMSE9PWEuZGlzYWJsZWRNYXhUaW1lJiYKSy5nZXRUaW1lKCk8bC5zdHJ0b3RpbWUoYS5kaXNhYmxlZE1heFRpbWUpLmdldFRpbWUoKSkmJkEucHVzaCgieGRzb2Z0X2Rpc2FibGVkIik7TD1uZXcgRGF0ZShsLmN1cnJlbnRUaW1lKTtMLnNldEhvdXJzKHBhcnNlSW50KGwuY3VycmVudFRpbWUuZ2V0SG91cnMoKSwxMCkpO2NhfHxMLnNldE1pbnV0ZXMoTWF0aFthLnJvdW5kVGltZV0obC5jdXJyZW50VGltZS5nZXRNaW51dGVzKCkvYS5zdGVwKSphLnN0ZXApOyhhLmluaXRUaW1lfHxhLmRlZmF1bHRTZWxlY3R8fGMuZGF0YSgiY2hhbmdlZCIpKSYmTC5nZXRIb3VycygpPT09cGFyc2VJbnQoUywxMCkmJighY2EmJjU5PGEuc3RlcHx8TC5nZXRNaW51dGVzKCk9PT1wYXJzZUludChULDEwKSkmJihhLmRlZmF1bHRTZWxlY3R8fGMuZGF0YSgiY2hhbmdlZCIpP0EucHVzaCgieGRzb2Z0X2N1cnJlbnQiKTphLmluaXRUaW1lJiZBLnB1c2goInhkc29mdF9pbml0X3RpbWUiKSk7cGFyc2VJbnQocS5nZXRIb3VycygpLDEwKT09PXBhcnNlSW50KFMsCjEwKSYmcGFyc2VJbnQocS5nZXRNaW51dGVzKCksMTApPT09cGFyc2VJbnQoVCwxMCkmJkEucHVzaCgieGRzb2Z0X3RvZGF5Iik7WCs9JzxkaXYgY2xhc3M9Inhkc29mdF90aW1lICcrQS5qb2luKCIgIikrJyIgZGF0YS1ob3VyPSInK1MrJyIgZGF0YS1taW51dGU9IicrVCsnIj4nK0suZGF0ZUZvcm1hdChhLmZvcm1hdFRpbWUpKyI8L2Rpdj4ifTtpZihhLmFsbG93VGltZXMmJkFycmF5LmlzQXJyYXkoYS5hbGxvd1RpbWVzKSYmYS5hbGxvd1RpbWVzLmxlbmd0aClmb3Iobj0wO248YS5hbGxvd1RpbWVzLmxlbmd0aDtuKz0xKVA9bC5zdHJ0b3RpbWUoYS5hbGxvd1RpbWVzW25dKS5nZXRIb3VycygpLFE9bC5zdHJ0b3RpbWUoYS5hbGxvd1RpbWVzW25dKS5nZXRNaW51dGVzKCksZChQLFEpO2Vsc2UgZm9yKG09bj0wO248KGEuaG91cnMxMj8xMjoyNCk7bis9MSlmb3IobT0wOzYwPm07bSs9YS5zdGVwKVA9KDEwPm4\/IjAiOiIiKStuLFE9KDEwPm0\/IjAiOiIiKSttLGQoUCxRKTt6Lmh0bWwoWCk7CnI9IiI7bj0wO2ZvcihuPXBhcnNlSW50KGEueWVhclN0YXJ0LDEwKSthLnllYXJPZmZzZXQ7bjw9cGFyc2VJbnQoYS55ZWFyRW5kLDEwKSthLnllYXJPZmZzZXQ7bis9MSlyKz0nPGRpdiBjbGFzcz0ieGRzb2Z0X29wdGlvbiAnKyhsLmN1cnJlbnRUaW1lLmdldEZ1bGxZZWFyKCk9PT1uPyJ4ZHNvZnRfY3VycmVudCI6IiIpKyciIGRhdGEtdmFsdWU9IicrbisnIj4nK24rIjwvZGl2PiI7Ti5jaGlsZHJlbigpLmVxKDApLmh0bWwocik7bj1wYXJzZUludChhLm1vbnRoU3RhcnQsMTApO2ZvcihyPSIiO248PXBhcnNlSW50KGEubW9udGhFbmQsMTApO24rPTEpcis9JzxkaXYgY2xhc3M9Inhkc29mdF9vcHRpb24gJysobC5jdXJyZW50VGltZS5nZXRNb250aCgpPT09bj8ieGRzb2Z0X2N1cnJlbnQiOiIiKSsnIiBkYXRhLXZhbHVlPSInK24rJyI+JythLmkxOG5bR10ubW9udGhzW25dKyI8L2Rpdj4iO0IuY2hpbGRyZW4oKS5lcSgwKS5odG1sKHIpO2YoYykudHJpZ2dlcigiZ2VuZXJhdGUueGRzb2Z0Iil9LAoxMCk7Yi5zdG9wUHJvcGFnYXRpb24oKX0pLm9uKCJhZnRlck9wZW4ueGRzb2Z0IixmdW5jdGlvbigpe2lmKGEudGltZXBpY2tlcil7dmFyIGI7ei5maW5kKCIueGRzb2Z0X2N1cnJlbnQiKS5sZW5ndGg\/Yj0iLnhkc29mdF9jdXJyZW50Ijp6LmZpbmQoIi54ZHNvZnRfaW5pdF90aW1lIikubGVuZ3RoJiYoYj0iLnhkc29mdF9pbml0X3RpbWUiKTtpZihiKXt2YXIgZD15WzBdLmNsaWVudEhlaWdodCxrPXpbMF0ub2Zmc2V0SGVpZ2h0O2I9ei5maW5kKGIpLmluZGV4KCkqYS50aW1lSGVpZ2h0SW5UaW1lUGlja2VyKzE7ay1kPGImJihiPWstZCk7eS50cmlnZ2VyKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLFtwYXJzZUludChiLDEwKS8oay1kKV0pfWVsc2UgeS50cmlnZ2VyKCJzY3JvbGxfZWxlbWVudC54ZHNvZnRfc2Nyb2xsZXIiLFswXSl9fSk7dmFyIFo9MDtFLm9uKCJjbGljay54ZHNvZnQiLCJ0ZCIsZnVuY3Rpb24oYil7Yi5zdG9wUHJvcGFnYXRpb24oKTtaKz0xO3ZhciBkPQpmKHRoaXMpLGs9bC5jdXJyZW50VGltZTtpZih2b2lkIDA9PT1rfHxudWxsPT09aylsLmN1cnJlbnRUaW1lPWwubm93KCksaz1sLmN1cnJlbnRUaW1lO2lmKGQuaGFzQ2xhc3MoInhkc29mdF9kaXNhYmxlZCIpKXJldHVybiExO2suc2V0RGF0ZSgxKTtrLnNldEZ1bGxZZWFyKGQuZGF0YSgieWVhciIpKTtrLnNldE1vbnRoKGQuZGF0YSgibW9udGgiKSk7ay5zZXREYXRlKGQuZGF0YSgiZGF0ZSIpKTtjLnRyaWdnZXIoInNlbGVjdC54ZHNvZnQiLFtrXSk7ZS52YWwobC5zdHIoKSk7YS5vblNlbGVjdERhdGUmJmlzRnVuY3Rpb24oYS5vblNlbGVjdERhdGUpJiZhLm9uU2VsZWN0RGF0ZS5jYWxsKGMsbC5jdXJyZW50VGltZSxjLmRhdGEoImlucHV0IiksYik7Yy5kYXRhKCJjaGFuZ2VkIiwhMCk7Yy50cmlnZ2VyKCJ4Y2hhbmdlLnhkc29mdCIpO2MudHJpZ2dlcigiY2hhbmdlZGF0ZXRpbWUueGRzb2Z0Iik7KDE8Wnx8ITA9PT1hLmNsb3NlT25EYXRlU2VsZWN0fHwhMT09PWEuY2xvc2VPbkRhdGVTZWxlY3QmJgohYS50aW1lcGlja2VyKSYmIWEuaW5saW5lJiZjLnRyaWdnZXIoImNsb3NlLnhkc29mdCIpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtaPTB9LDIwMCl9KTt6Lm9uKCJjbGljay54ZHNvZnQiLCJkaXYiLGZ1bmN0aW9uKGIpe2Iuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIGQ9Zih0aGlzKSxrPWwuY3VycmVudFRpbWU7aWYodm9pZCAwPT09a3x8bnVsbD09PWspbC5jdXJyZW50VGltZT1sLm5vdygpLGs9bC5jdXJyZW50VGltZTtpZihkLmhhc0NsYXNzKCJ4ZHNvZnRfZGlzYWJsZWQiKSlyZXR1cm4hMTtrLnNldEhvdXJzKGQuZGF0YSgiaG91ciIpKTtrLnNldE1pbnV0ZXMoZC5kYXRhKCJtaW51dGUiKSk7Yy50cmlnZ2VyKCJzZWxlY3QueGRzb2Z0Iixba10pO2MuZGF0YSgiaW5wdXQiKS52YWwobC5zdHIoKSk7YS5vblNlbGVjdFRpbWUmJmlzRnVuY3Rpb24oYS5vblNlbGVjdFRpbWUpJiZhLm9uU2VsZWN0VGltZS5jYWxsKGMsbC5jdXJyZW50VGltZSxjLmRhdGEoImlucHV0IiksYik7Yy5kYXRhKCJjaGFuZ2VkIiwKITApO2MudHJpZ2dlcigieGNoYW5nZS54ZHNvZnQiKTtjLnRyaWdnZXIoImNoYW5nZWRhdGV0aW1lLnhkc29mdCIpOyEwIT09YS5pbmxpbmUmJiEwPT09YS5jbG9zZU9uVGltZVNlbGVjdCYmYy50cmlnZ2VyKCJjbG9zZS54ZHNvZnQiKX0pO3Uub24oIm1vdXNld2hlZWwueGRzb2Z0IixmdW5jdGlvbihiKXtpZighYS5zY3JvbGxNb250aClyZXR1cm4hMDswPmIuZGVsdGFZP2wubmV4dE1vbnRoKCk6bC5wcmV2TW9udGgoKTtyZXR1cm4hMX0pO2Uub24oIm1vdXNld2hlZWwueGRzb2Z0IixmdW5jdGlvbihiKXtpZighYS5zY3JvbGxJbnB1dClyZXR1cm4hMDtpZighYS5kYXRlcGlja2VyJiZhLnRpbWVwaWNrZXIpcmV0dXJuIFU9ei5maW5kKCIueGRzb2Z0X2N1cnJlbnQiKS5sZW5ndGg\/ei5maW5kKCIueGRzb2Z0X2N1cnJlbnQiKS5lcSgwKS5pbmRleCgpOjAsMDw9VStiLmRlbHRhWSYmVStiLmRlbHRhWTx6LmNoaWxkcmVuKCkubGVuZ3RoJiYoVSs9Yi5kZWx0YVkpLHouY2hpbGRyZW4oKS5lcShVKS5sZW5ndGgmJgp6LmNoaWxkcmVuKCkuZXEoVSkudHJpZ2dlcigibW91c2Vkb3duIiksITE7aWYoYS5kYXRlcGlja2VyJiYhYS50aW1lcGlja2VyKXJldHVybiB1LnRyaWdnZXIoYixbYi5kZWx0YVksYi5kZWx0YVgsYi5kZWx0YVldKSxlLnZhbCYmZS52YWwobC5zdHIoKSksYy50cmlnZ2VyKCJjaGFuZ2VkYXRldGltZS54ZHNvZnQiKSwhMX0pO2Mub24oImNoYW5nZWRhdGV0aW1lLnhkc29mdCIsZnVuY3Rpb24oYil7aWYoYS5vbkNoYW5nZURhdGVUaW1lJiZpc0Z1bmN0aW9uKGEub25DaGFuZ2VEYXRlVGltZSkpe3ZhciBkPWMuZGF0YSgiaW5wdXQiKTthLm9uQ2hhbmdlRGF0ZVRpbWUuY2FsbChjLGwuY3VycmVudFRpbWUsZCxiKTtkZWxldGUgYS52YWx1ZTtkLnRyaWdnZXIoImNoYW5nZSIpfX0pLm9uKCJnZW5lcmF0ZS54ZHNvZnQiLGZ1bmN0aW9uKCl7YS5vbkdlbmVyYXRlJiZpc0Z1bmN0aW9uKGEub25HZW5lcmF0ZSkmJmEub25HZW5lcmF0ZS5jYWxsKGMsbC5jdXJyZW50VGltZSxjLmRhdGEoImlucHV0IikpOwpPJiYoYy50cmlnZ2VyKCJhZnRlck9wZW4ueGRzb2Z0IiksTz0hMSl9KS5vbigiY2xpY2sueGRzb2Z0IixmdW5jdGlvbihiKXtiLnN0b3BQcm9wYWdhdGlvbigpfSk7dmFyIFU9MCxhYT1mdW5jdGlvbigpe3ZhciBiPWMuZGF0YSgiaW5wdXQiKS5vZmZzZXQoKSxkPWIudG9wK2MuZGF0YSgiaW5wdXQiKVswXS5vZmZzZXRIZWlnaHQtMSxrPWIubGVmdCxuPSJhYnNvbHV0ZSI7InJ0bCI9PWMuZGF0YSgiaW5wdXQiKS5wYXJlbnQoKS5jc3MoImRpcmVjdGlvbiIpJiYoay09Yy5vdXRlcldpZHRoKCktYy5kYXRhKCJpbnB1dCIpLm91dGVyV2lkdGgoKSk7YS5maXhlZD8oZC09Zih3aW5kb3cpLnNjcm9sbFRvcCgpLGstPWYod2luZG93KS5zY3JvbGxMZWZ0KCksbj0iZml4ZWQiKTooZCtjWzBdLm9mZnNldEhlaWdodD5mKHdpbmRvdykuaGVpZ2h0KCkrZih3aW5kb3cpLnNjcm9sbFRvcCgpJiYoZD1iLnRvcC1jWzBdLm9mZnNldEhlaWdodCsxKSwwPmQmJihkPTApLGsrY1swXS5vZmZzZXRXaWR0aD4KZih3aW5kb3cpLndpZHRoKCkmJihrPWYod2luZG93KS53aWR0aCgpLWNbMF0ub2Zmc2V0V2lkdGgpKTtiPWNbMF07ZG8gaWYoYj1iLnBhcmVudE5vZGUsInJlbGF0aXZlIj09PXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGIpLmdldFByb3BlcnR5VmFsdWUoInBvc2l0aW9uIikmJmYod2luZG93KS53aWR0aCgpPj1iLm9mZnNldFdpZHRoKXtrLT0oZih3aW5kb3cpLndpZHRoKCktYi5vZmZzZXRXaWR0aCkvMjticmVha313aGlsZSgiSFRNTCIhPT1iLm5vZGVOYW1lKTtjLmNzcyh7bGVmdDprLHRvcDpkLHBvc2l0aW9uOm59KX07Yy5vbigib3Blbi54ZHNvZnQiLGZ1bmN0aW9uKGIpe3ZhciBkPSEwO2Eub25TaG93JiZpc0Z1bmN0aW9uKGEub25TaG93KSYmKGQ9YS5vblNob3cuY2FsbChjLGwuY3VycmVudFRpbWUsYy5kYXRhKCJpbnB1dCIpLGIpKTtpZighMSE9PWQmJihjLnNob3coKSxhYSgpLGYod2luZG93KS5vZmYoInJlc2l6ZS54ZHNvZnQiLGFhKS5vbigicmVzaXplLnhkc29mdCIsCmFhKSxhLmNsb3NlT25XaXRob3V0Q2xpY2spKWYoW2RvY3VtZW50LmJvZHksd2luZG93XSkub24oIm1vdXNlZG93bi54ZHNvZnQiLGZ1bmN0aW9uIG4oKXtjLnRyaWdnZXIoImNsb3NlLnhkc29mdCIpO2YoW2RvY3VtZW50LmJvZHksd2luZG93XSkub2ZmKCJtb3VzZWRvd24ueGRzb2Z0IixuKX0pfSkub24oImNsb3NlLnhkc29mdCIsZnVuY3Rpb24oYil7dmFyIGQ9ITA7dy5maW5kKCIueGRzb2Z0X21vbnRoLC54ZHNvZnRfeWVhciIpLmZpbmQoIi54ZHNvZnRfc2VsZWN0IikuaGlkZSgpO2Eub25DbG9zZSYmaXNGdW5jdGlvbihhLm9uQ2xvc2UpJiYoZD1hLm9uQ2xvc2UuY2FsbChjLGwuY3VycmVudFRpbWUsYy5kYXRhKCJpbnB1dCIpLGIpKTshMT09PWR8fGEub3BlbmVkfHxhLmlubGluZXx8Yy5oaWRlKCk7Yi5zdG9wUHJvcGFnYXRpb24oKX0pLm9uKCJ0b2dnbGUueGRzb2Z0IixmdW5jdGlvbihiKXtjLmlzKCI6dmlzaWJsZSIpP2MudHJpZ2dlcigiY2xvc2UueGRzb2Z0Iik6Yy50cmlnZ2VyKCJvcGVuLnhkc29mdCIpfSkuZGF0YSgiaW5wdXQiLAplKTtXPTA7Yy5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWUiLGwpO2Muc2V0T3B0aW9ucyhhKTtsLnNldEN1cnJlbnRUaW1lKGgoKSk7ZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiLGMpLm9uKCJvcGVuLnhkc29mdCBmb2N1c2luLnhkc29mdCBtb3VzZWRvd24ueGRzb2Z0IixmdW5jdGlvbihiKXtlLmlzKCI6ZGlzYWJsZWQiKXx8ZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiKS5pcygiOnZpc2libGUiKSYmYS5jbG9zZU9uSW5wdXRDbGlja3x8KGNsZWFyVGltZW91dChXKSxXPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtlLmlzKCI6ZGlzYWJsZWQiKXx8KE89ITAsbC5zZXRDdXJyZW50VGltZShoKCkpLGMudHJpZ2dlcigib3Blbi54ZHNvZnQiKSl9LDEwMCkpfSkub24oImtleWRvd24ueGRzb2Z0IixmdW5jdGlvbihiKXtiPWIud2hpY2g7aWYoLTEhPT1bMTNdLmluZGV4T2YoYikmJmEuZW50ZXJMaWtlVGFiKXJldHVybiBiPWYoImlucHV0OnZpc2libGUsdGV4dGFyZWE6dmlzaWJsZSIpLApjLnRyaWdnZXIoImNsb3NlLnhkc29mdCIpLGIuZXEoYi5pbmRleCh0aGlzKSsxKS5mb2N1cygpLCExO2lmKC0xIT09WzldLmluZGV4T2YoYikpcmV0dXJuIGMudHJpZ2dlcigiY2xvc2UueGRzb2Z0IiksITB9KX07Zihkb2N1bWVudCkub2ZmKCJrZXlkb3duLnhkc29mdGN0cmwga2V5dXAueGRzb2Z0Y3RybCIpLm9uKCJrZXlkb3duLnhkc29mdGN0cmwiLGZ1bmN0aW9uKGUpezE3PT09ZS5rZXlDb2RlJiYodj0hMCl9KS5vbigia2V5dXAueGRzb2Z0Y3RybCIsZnVuY3Rpb24oZSl7MTc9PT1lLmtleUNvZGUmJih2PSExKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1mKHRoaXMpLmRhdGEoInhkc29mdF9kYXRldGltZXBpY2tlciIpO2lmKGUpe2lmKCJzdHJpbmciPT09dHlwZW9mIHIpc3dpdGNoKHIpe2Nhc2UgInNob3ciOmYodGhpcykuc2VsZWN0KCkuZm9jdXMoKTtlLnRyaWdnZXIoIm9wZW4ueGRzb2Z0Iik7YnJlYWs7Y2FzZSAiaGlkZSI6ZS50cmlnZ2VyKCJjbG9zZS54ZHNvZnQiKTsKYnJlYWs7Y2FzZSAidG9nZ2xlIjplLnRyaWdnZXIoInRvZ2dsZS54ZHNvZnQiKTticmVhaztjYXNlICJkZXN0cm95IjplPWYodGhpcyk7dmFyIGg9ZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiKTtoJiYoaC5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWUiLG51bGwpLGgucmVtb3ZlKCksZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWVwaWNrZXIiLG51bGwpLm9mZigiLnhkc29mdCIpLGYod2luZG93KS5vZmYoInJlc2l6ZS54ZHNvZnQiKSxmKFt3aW5kb3csZG9jdW1lbnQuYm9keV0pLm9mZigibW91c2Vkb3duLnhkc29mdCIpLGUudW5tb3VzZXdoZWVsJiZlLnVubW91c2V3aGVlbCgpKTticmVhaztjYXNlICJyZXNldCI6KHRoaXMudmFsdWU9dGhpcy5kZWZhdWx0VmFsdWUpJiZlLmRhdGEoInhkc29mdF9kYXRldGltZSIpLmlzVmFsaWREYXRlKERhdGUucGFyc2VEYXRlKHRoaXMudmFsdWUsYS5mb3JtYXQpKXx8ZS5kYXRhKCJjaGFuZ2VkIiwhMSk7ZS5kYXRhKCJ4ZHNvZnRfZGF0ZXRpbWUiKS5zZXRDdXJyZW50VGltZSh0aGlzLnZhbHVlKTsKYnJlYWs7Y2FzZSAidmFsaWRhdGUiOmU9ZS5kYXRhKCJpbnB1dCIpLGUudHJpZ2dlcigiYmx1ci54ZHNvZnQiKX1lbHNlIGUuc2V0T3B0aW9ucyhyKTtyZXR1cm4gMH0ic3RyaW5nIiE9PXR5cGVvZiByJiYoIWEubGF6eUluaXR8fGEub3Blbnx8YS5pbmxpbmU\/ZyhmKHRoaXMpKTpJKGYodGhpcykpKX0pfTtmLmZuLmRhdGV0aW1lcGlja2VyLmRlZmF1bHRzPUp9KTsKKGZ1bmN0aW9uKGYpeyJmdW5jdGlvbiI9PT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShbImpxdWVyeSJdLGYpOiJvYmplY3QiPT09dHlwZW9mIGV4cG9ydHM\/bW9kdWxlLmV4cG9ydHM9ZjpmKGpRdWVyeSl9KShmdW5jdGlvbihmKXtmdW5jdGlvbiBNKGUpe3ZhciBoPWV8fHdpbmRvdy5ldmVudCxjPXYuY2FsbChhcmd1bWVudHMsMSksdD0wLHU9MCx3PTAsRT0wO2U9Zi5ldmVudC5maXgoaCk7ZS50eXBlPSJtb3VzZXdoZWVsIjsiZGV0YWlsImluIGgmJih1PS0xKmguZGV0YWlsKTsid2hlZWxEZWx0YSJpbiBoJiYodT1oLndoZWVsRGVsdGEpOyJ3aGVlbERlbHRhWSJpbiBoJiYodT1oLndoZWVsRGVsdGFZKTsid2hlZWxEZWx0YVgiaW4gaCYmKHQ9LTEqaC53aGVlbERlbHRhWCk7ImF4aXMiaW4gaCYmaC5heGlzPT09aC5IT1JJWk9OVEFMX0FYSVMmJih0PS0xKnUsdT0wKTt2YXIgQz0wPT09dT90OnU7ImRlbHRhWSJpbiBoJiYoQz11PS0xKmguZGVsdGFZKTsiZGVsdGFYImluCmgmJih0PWguZGVsdGFYLDA9PT11JiYoQz0tMSp0KSk7aWYoMCE9PXV8fDAhPT10KXtpZigxPT09aC5kZWx0YU1vZGUpe3ZhciB5PWYuZGF0YSh0aGlzLCJtb3VzZXdoZWVsLWxpbmUtaGVpZ2h0Iik7Qyo9eTt1Kj15O3QqPXl9ZWxzZSAyPT09aC5kZWx0YU1vZGUmJih5PWYuZGF0YSh0aGlzLCJtb3VzZXdoZWVsLXBhZ2UtaGVpZ2h0IiksQyo9eSx1Kj15LHQqPXkpO3k9TWF0aC5tYXgoTWF0aC5hYnModSksTWF0aC5hYnModCkpO2lmKCFEfHx5PEQpRD15LGcuc2V0dGluZ3MuYWRqdXN0T2xkRGVsdGFzJiYibW91c2V3aGVlbCI9PT1oLnR5cGUmJjA9PT15JTEyMCYmKEQvPTQwKTtnLnNldHRpbmdzLmFkanVzdE9sZERlbHRhcyYmIm1vdXNld2hlZWwiPT09aC50eXBlJiYwPT09eSUxMjAmJihDLz00MCx0Lz00MCx1Lz00MCk7Qz1NYXRoWzE8PUM\/ImZsb29yIjoiY2VpbCJdKEMvRCk7dD1NYXRoWzE8PXQ\/ImZsb29yIjoiY2VpbCJdKHQvRCk7dT1NYXRoWzE8PXU\/ImZsb29yIjoiY2VpbCJdKHUvCkQpO2cuc2V0dGluZ3Mubm9ybWFsaXplT2Zmc2V0JiZ0aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCYmKGg9dGhpcy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSx3PWUuY2xpZW50WC1oLmxlZnQsRT1lLmNsaWVudFktaC50b3ApO2UuZGVsdGFYPXQ7ZS5kZWx0YVk9dTtlLmRlbHRhRmFjdG9yPUQ7ZS5vZmZzZXRYPXc7ZS5vZmZzZXRZPUU7ZS5kZWx0YU1vZGU9MDtjLnVuc2hpZnQoZSxDLHQsdSk7YSYmY2xlYXJUaW1lb3V0KGEpO2E9c2V0VGltZW91dChKLDIwMCk7cmV0dXJuKGYuZXZlbnQuZGlzcGF0Y2h8fGYuZXZlbnQuaGFuZGxlKS5hcHBseSh0aGlzLGMpfX1mdW5jdGlvbiBKKCl7RD1udWxsfXZhciBHPVsid2hlZWwiLCJtb3VzZXdoZWVsIiwiRE9NTW91c2VTY3JvbGwiLCJNb3pNb3VzZVBpeGVsU2Nyb2xsIl0scj0ib253aGVlbCJpbiBkb2N1bWVudHx8OTw9ZG9jdW1lbnQuZG9jdW1lbnRNb2RlP1sid2hlZWwiXTpbIm1vdXNld2hlZWwiLCJEb21Nb3VzZVNjcm9sbCIsIk1vek1vdXNlUGl4ZWxTY3JvbGwiXSwKdj1BcnJheS5wcm90b3R5cGUuc2xpY2UsYSxEO2lmKGYuZXZlbnQuZml4SG9va3MpZm9yKHZhciBJPUcubGVuZ3RoO0k7KWYuZXZlbnQuZml4SG9va3NbR1stLUldXT1mLmV2ZW50Lm1vdXNlSG9va3M7dmFyIGc9Zi5ldmVudC5zcGVjaWFsLm1vdXNld2hlZWw9e3ZlcnNpb246IjMuMS4xMiIsc2V0dXA6ZnVuY3Rpb24oKXtpZih0aGlzLmFkZEV2ZW50TGlzdGVuZXIpZm9yKHZhciBlPXIubGVuZ3RoO2U7KXRoaXMuYWRkRXZlbnRMaXN0ZW5lcihyWy0tZV0sTSwhMSk7ZWxzZSB0aGlzLm9ubW91c2V3aGVlbD1NO2YuZGF0YSh0aGlzLCJtb3VzZXdoZWVsLWxpbmUtaGVpZ2h0IixnLmdldExpbmVIZWlnaHQodGhpcykpO2YuZGF0YSh0aGlzLCJtb3VzZXdoZWVsLXBhZ2UtaGVpZ2h0IixnLmdldFBhZ2VIZWlnaHQodGhpcykpfSx0ZWFyZG93bjpmdW5jdGlvbigpe2lmKHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcilmb3IodmFyIGU9ci5sZW5ndGg7ZTspdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKHJbLS1lXSwKTSwhMSk7ZWxzZSB0aGlzLm9ubW91c2V3aGVlbD1udWxsO2YucmVtb3ZlRGF0YSh0aGlzLCJtb3VzZXdoZWVsLWxpbmUtaGVpZ2h0Iik7Zi5yZW1vdmVEYXRhKHRoaXMsIm1vdXNld2hlZWwtcGFnZS1oZWlnaHQiKX0sZ2V0TGluZUhlaWdodDpmdW5jdGlvbihlKXtlPWYoZSk7dmFyIGg9ZVsib2Zmc2V0UGFyZW50ImluIGYuZm4\/Im9mZnNldFBhcmVudCI6InBhcmVudCJdKCk7aC5sZW5ndGh8fChoPWYoImJvZHkiKSk7cmV0dXJuIHBhcnNlSW50KGguY3NzKCJmb250U2l6ZSIpLDEwKXx8cGFyc2VJbnQoZS5jc3MoImZvbnRTaXplIiksMTApfHwxNn0sZ2V0UGFnZUhlaWdodDpmdW5jdGlvbihlKXtyZXR1cm4gZihlKS5oZWlnaHQoKX0sc2V0dGluZ3M6e2FkanVzdE9sZERlbHRhczohMCxub3JtYWxpemVPZmZzZXQ6ITB9fTtmLmZuLmV4dGVuZCh7bW91c2V3aGVlbDpmdW5jdGlvbihlKXtyZXR1cm4gZT90aGlzLm9uKCJtb3VzZXdoZWVsIixlKTp0aGlzLnRyaWdnZXIoIm1vdXNld2hlZWwiKX0sCnVubW91c2V3aGVlbDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5vZmYoIm1vdXNld2hlZWwiLGUpfX0pfSk7CiFmdW5jdGlvbihmKXsiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sZik6Im9iamVjdCI9PT10eXBlb2YgZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1mOmYoKX0oZnVuY3Rpb24oKXtmdW5jdGlvbiBmKGcpe3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIGg9W10sYz0wLHQ9Zy5sZW5ndGg7Yzx0O2MrKyloLnB1c2goInN0cmluZyI9PT10eXBlb2YgZ1tjXT9nW2NdOmdbY10oZSkpO3JldHVybiBoLmpvaW4oIiIpfX1mdW5jdGlvbiBNKGcsZSxoKXtyZXR1cm4gZnVuY3Rpb24oYyl7dmFyIHQ9bmV3IERhdGU7aWYoKGM9Yy5tYXRjaChhW2VdKSkmJjA8Yy5sZW5ndGgpe2MueT10LmdldEZ1bGxZZWFyKCk7Yy5tPXQuZ2V0TW9udGgoKTtjLmQ9dC5nZXREYXRlKCk7Yy5oPS0xO2MuaT0tMTtjLnM9LTE7dD0wO2Zvcih2YXIgdT1oLmxlbmd0aDt0PHU7dCsrKWhbdF0oYyk7aWYoMDxjLnkmJjA8PWMubSYmMDxjLmQmJjA8PWMuaCYmMDw9Yy5pJiYwPD1jLnMpcmV0dXJuIG5ldyBEYXRlKGMueSwKYy5tLGMuZCxjLmgsYy5pLGMucyk7aWYoMDxjLnkmJjA8PWMubSYmMDxjLmQmJjA8PWMuaCYmMDw9Yy5pKXJldHVybiBuZXcgRGF0ZShjLnksYy5tLGMuZCxjLmgsYy5pKTtpZigwPGMueSYmMDw9Yy5tJiYwPGMuZCYmMDw9Yy5oKXJldHVybiBuZXcgRGF0ZShjLnksYy5tLGMuZCxjLmgpO2lmKDA8Yy55JiYwPD1jLm0mJjA8Yy5kKXJldHVybiBuZXcgRGF0ZShjLnksYy5tLGMuZCk7aWYoMDxjLnkmJjA8PWMubSlyZXR1cm4gbmV3IERhdGUoYy55LGMubSk7aWYoMDxjLnkpcmV0dXJuIG5ldyBEYXRlKGMueSl9cmV0dXJuIG51bGx9fWZ1bmN0aW9uIEooZyxlKXtzd2l0Y2goZyl7Y2FzZSAiRCI6cmV0dXJue2c6MCxzOiIoPzpTdW58TW9ufFR1ZXxXZWR8VGh1fEZyaXxTYXQpIn07Y2FzZSAiaiI6Y2FzZSAiZCI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpe2guZD1wYXJzZUludChoW2VdLDEwKX0sczoiKFxcZHsxLDJ9KSJ9O2Nhc2UgImwiOnJldHVybntnOjAsczoiKD86IitEYXRlLmRheU5hbWVzLmpvaW4oInwiKSsKIikifTtjYXNlICJTIjpyZXR1cm57ZzowLHM6Iig\/OnN0fG5kfHJkfHRoKSJ9O2Nhc2UgInciOnJldHVybntnOjAsczoiXFxkIn07Y2FzZSAieiI6cmV0dXJue2c6MCxzOiIoPzpcXGR7MSwzfSkifTtjYXNlICJXIjpyZXR1cm57ZzowLHM6Iig\/OlxcZHsyfSkifTtjYXNlICJGIjpyZXR1cm57ZzoxLGE6ZnVuY3Rpb24oaCl7aC5tPXBhcnNlSW50KERhdGUubW9udGhOdW1iZXJzW2hbZV0uc3Vic3RyaW5nKDAsMyldLDEwKX0sczoiKCIrRGF0ZS5tb250aE5hbWVzLmpvaW4oInwiKSsiKSJ9O2Nhc2UgIk0iOnJldHVybntnOjEsYTpmdW5jdGlvbihoKXtoLm09cGFyc2VJbnQoRGF0ZS5tb250aE51bWJlcnNbaFtlXV0sMTApfSxzOiIoSmFufEZlYnxNYXJ8QXByfE1heXxKdW58SnVsfEF1Z3xTZXB8T2N0fE5vdnxEZWMpIn07Y2FzZSAibiI6Y2FzZSAibSI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpe2gubT1wYXJzZUludChoW2VdLDEwKS0xfSxzOiIoXFxkezEsMn0pIn07Y2FzZSAidCI6cmV0dXJue2c6MCwKczoiXFxkezEsMn0ifTtjYXNlICJMIjpyZXR1cm57ZzowLHM6Iig\/OjF8MCkifTtjYXNlICJZIjpyZXR1cm57ZzoxLGE6ZnVuY3Rpb24oaCl7aC55PXBhcnNlSW50KGhbZV0sMTApfSxzOiIoXFxkezR9KSJ9O2Nhc2UgInkiOnJldHVybntnOjEsYTpmdW5jdGlvbihoKXt2YXIgYz1wYXJzZUludChoW2VdLDEwKTtoLnk9Yz5EYXRlLnkya1llYXI\/MTkwMCtjOjJFMytjfSxzOiIoXFxkezEsMn0pIn07Y2FzZSAiYSI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpeyJhbSI9PT1oW2VdPzEyPT1oLmgmJihoLmg9MCk6MTI+aC5oJiYoaC5oKz0xMil9LHM6IihhbXxwbSkifTtjYXNlICJBIjpyZXR1cm57ZzoxLGE6ZnVuY3Rpb24oaCl7IkFNIj09PWhbZV0\/MTI9PWguaCYmKGguaD0wKToxMj5oLmgmJihoLmgrPTEyKX0sczoiKEFNfFBNKSJ9O2Nhc2UgImciOmNhc2UgIkciOmNhc2UgImgiOmNhc2UgIkgiOnJldHVybntnOjEsYTpmdW5jdGlvbihoKXtoLmg9cGFyc2VJbnQoaFtlXSwxMCl9LHM6IihcXGR7MSwyfSkifTsKY2FzZSAiaSI6cmV0dXJue2c6MSxhOmZ1bmN0aW9uKGgpe2guaT1wYXJzZUludChoW2VdLDEwKX0sczoiKFxcZHsyfSkifTtjYXNlICJzIjpyZXR1cm57ZzoxLGE6ZnVuY3Rpb24oaCl7aC5zPXBhcnNlSW50KGhbZV0sMTApfSxzOiIoXFxkezJ9KSJ9O2Nhc2UgIk8iOnJldHVybntnOjAsczoiWystXVxcZHs0fSJ9O2Nhc2UgIlQiOnJldHVybntnOjAsczoiW0EtWl17M30ifTtjYXNlICJaIjpyZXR1cm57ZzowLHM6IlsrLV1cXGR7MSw1fSJ9O2RlZmF1bHQ6cmV0dXJue2c6MCxzOkcoZyl9fX1mdW5jdGlvbiBHKGcpe3JldHVybiBnLnJlcGxhY2UoLygnfFxcKS9nLCJcXCQxIil9ZnVuY3Rpb24gcihnLGUsaCl7Zz0iIitnO2ZvcihoPSIiK2h8fCIgIjtnLmxlbmd0aDxlOylnPWgrZztyZXR1cm4gZ312YXIgdj17fSxhPVtdLEQ9e30sST17ZDpmdW5jdGlvbihnKXtyZXR1cm4gcihnLmdldERhdGUoKSwyLCIwIil9LEQ6ZnVuY3Rpb24oZyl7cmV0dXJuIERhdGUuZGF5TmFtZXNbZy5nZXREYXkoKV0uc3Vic3RyaW5nKDAsCjMpfSxqOmZ1bmN0aW9uKGcpe3JldHVybiBnLmdldERhdGUoKX0sbDpmdW5jdGlvbihnKXtyZXR1cm4gRGF0ZS5kYXlOYW1lc1tnLmdldERheSgpXX0sUzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRTdWZmaXgoKX0sdzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXREYXkoKX0sejpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXREYXlPZlllYXIoKX0sVzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRXZWVrT2ZZZWFyKCl9LEY6ZnVuY3Rpb24oZyl7cmV0dXJuIERhdGUubW9udGhOYW1lc1tnLmdldE1vbnRoKCldfSxtOmZ1bmN0aW9uKGcpe3JldHVybiByKGcuZ2V0TW9udGgoKSsxLDIsIjAiKX0sTTpmdW5jdGlvbihnKXtyZXR1cm4gRGF0ZS5tb250aE5hbWVzW2cuZ2V0TW9udGgoKV0uc3Vic3RyaW5nKDAsMyl9LG46ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0TW9udGgoKSsxfSx0OmZ1bmN0aW9uKGcpe3JldHVybiBnLmdldERheXNJbk1vbnRoKCl9LEw6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuaXNMZWFwWWVhcigpPwoxOjB9LFk6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0RnVsbFllYXIoKX0seTpmdW5jdGlvbihnKXtyZXR1cm4oIiIrZy5nZXRGdWxsWWVhcigpKS5zdWJzdHJpbmcoMiw0KX0sYTpmdW5jdGlvbihnKXtyZXR1cm4gMTI+Zy5nZXRIb3VycygpPyJhbSI6InBtIn0sQTpmdW5jdGlvbihnKXtyZXR1cm4gMTI+Zy5nZXRIb3VycygpPyJBTSI6IlBNIn0sZzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRIb3VycygpJTEyP2cuZ2V0SG91cnMoKSUxMjoxMn0sRzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRIb3VycygpfSxoOmZ1bmN0aW9uKGcpe3JldHVybiByKGcuZ2V0SG91cnMoKSUxMj9nLmdldEhvdXJzKCklMTI6MTIsMiwiMCIpfSxIOmZ1bmN0aW9uKGcpe3JldHVybiByKGcuZ2V0SG91cnMoKSwyLCIwIil9LGk6ZnVuY3Rpb24oZyl7cmV0dXJuIHIoZy5nZXRNaW51dGVzKCksMiwiMCIpfSxzOmZ1bmN0aW9uKGcpe3JldHVybiByKGcuZ2V0U2Vjb25kcygpLDIsIjAiKX0sTzpmdW5jdGlvbihnKXtyZXR1cm4gZy5nZXRHTVRPZmZzZXQoKX0sClQ6ZnVuY3Rpb24oZyl7cmV0dXJuIGcuZ2V0VGltZXpvbmUoKX0sWjpmdW5jdGlvbihnKXtyZXR1cm4tNjAqZy5nZXRUaW1lem9uZU9mZnNldCgpfX07RGF0ZS5wcm90b3R5cGUuZGF0ZUZvcm1hdD1mdW5jdGlvbihnKXtpZighRFtnXSl7Zm9yKHZhciBlPVtdLGg9ITEsYyx0PTA7dDxnLmxlbmd0aDsrK3QpYz1nLmNoYXJBdCh0KSxofHwiXFwiIT09Yz9oPyhoPSExLGUucHVzaChHKGMpKSk6ZS5wdXNoKElbY118fEcoYykpOmg9ITA7RFtnXT1mKGUpfXJldHVybiBEW2ddKHRoaXMpfTtEYXRlLnBhcnNlRGF0ZT1mdW5jdGlvbihnLGUpe2lmKCF2W2VdKXtmb3IodmFyIGg9YS5sZW5ndGgsYz0xLHQ9IiIsdT0hMSx3LEU9W10sQz0wO0M8ZS5sZW5ndGg7KytDKXc9ZS5jaGFyQXQoQyksdXx8IlxcIiE9PXc\/dT8odT0hMSx0Kz1HKHcpKToodz1KKHcsYyksYys9dy5nLHQrPXcucyx3LmcmJncuYSYmRS5wdXNoKHcuYSkpOnU9ITA7YVtoXT1uZXcgUmVnRXhwKCJeIit0KyIkIik7dltlXT1NKGUsCmgsRSl9cmV0dXJuIHZbZV0oZyl9O0RhdGUucHJvdG90eXBlLmdldFRpbWV6b25lPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoKS5yZXBsYWNlKC9eLio\/IChbQS1aXXszfSkgWzAtOV17NH0uKiQvLCIkMSIpLnJlcGxhY2UoL14uKj9cKChbQS1aXSlbYS16XSsgKFtBLVpdKVthLXpdKyAoW0EtWl0pW2Etel0rXCkkLywiJDEkMiQzIil9O0RhdGUucHJvdG90eXBlLmdldEdNVE9mZnNldD1mdW5jdGlvbigpe3JldHVybigwPHRoaXMuZ2V0VGltZXpvbmVPZmZzZXQoKT8iLSI6IisiKStyKE1hdGguZmxvb3IodGhpcy5nZXRUaW1lem9uZU9mZnNldCgpLzYwKSwyLCIwIikrcih0aGlzLmdldFRpbWV6b25lT2Zmc2V0KCklNjAsMiwiMCIpfTtEYXRlLnByb3RvdHlwZS5nZXREYXlPZlllYXI9ZnVuY3Rpb24oKXt2YXIgZz0wO0RhdGUuZGF5c0luTW9udGhbMV09dGhpcy5pc0xlYXBZZWFyKCk\/Mjk6Mjg7Zm9yKHZhciBlPTA7ZTx0aGlzLmdldE1vbnRoKCk7KytlKWcrPURhdGUuZGF5c0luTW9udGhbZV07CnJldHVybiBnK3RoaXMuZ2V0RGF0ZSgpLTF9O0RhdGUucHJvdG90eXBlLmdldFdlZWtPZlllYXI9ZnVuY3Rpb24oKXt2YXIgZz10aGlzLmdldERheU9mWWVhcigpKyg0LXRoaXMuZ2V0RGF5KCkpLGU9Ny0obmV3IERhdGUodGhpcy5nZXRGdWxsWWVhcigpLDAsMSkpLmdldERheSgpKzQ7cmV0dXJuIHIoKGctZSkvNysxLDIsIjAiKX07RGF0ZS5wcm90b3R5cGUuaXNMZWFwWWVhcj1mdW5jdGlvbigpe3ZhciBnPXRoaXMuZ2V0RnVsbFllYXIoKTtyZXR1cm4hKDAhPT0oZyYzKXx8IShnJTEwMHx8MD09PWclNDAwJiZnKSl9O0RhdGUucHJvdG90eXBlLmdldEZpcnN0RGF5T2ZNb250aD1mdW5jdGlvbigpe3ZhciBnPSh0aGlzLmdldERheSgpLSh0aGlzLmdldERhdGUoKS0xKSklNztyZXR1cm4gMD5nP2crNzpnfTtEYXRlLnByb3RvdHlwZS5nZXRMYXN0RGF5T2ZNb250aD1mdW5jdGlvbigpe3ZhciBnPSh0aGlzLmdldERheSgpKyhEYXRlLmRheXNJbk1vbnRoW3RoaXMuZ2V0TW9udGgoKV0tdGhpcy5nZXREYXRlKCkpKSUKNztyZXR1cm4gMD5nP2crNzpnfTtEYXRlLnByb3RvdHlwZS5nZXREYXlzSW5Nb250aD1mdW5jdGlvbigpe0RhdGUuZGF5c0luTW9udGhbMV09dGhpcy5pc0xlYXBZZWFyKCk\/Mjk6Mjg7cmV0dXJuIERhdGUuZGF5c0luTW9udGhbdGhpcy5nZXRNb250aCgpXX07RGF0ZS5wcm90b3R5cGUuZ2V0U3VmZml4PWZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuZ2V0RGF0ZSgpKXtjYXNlIDE6Y2FzZSAyMTpjYXNlIDMxOnJldHVybiJzdCI7Y2FzZSAyOmNhc2UgMjI6cmV0dXJuIm5kIjtjYXNlIDM6Y2FzZSAyMzpyZXR1cm4icmQiO2RlZmF1bHQ6cmV0dXJuInRoIn19O0RhdGUuZGF5c0luTW9udGg9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXTtEYXRlLm1vbnRoTmFtZXM9IkphbnVhcnkgRmVicnVhcnkgTWFyY2ggQXByaWwgTWF5IEp1bmUgSnVseSBBdWd1c3QgU2VwdGVtYmVyIE9jdG9iZXIgTm92ZW1iZXIgRGVjZW1iZXIiLnNwbGl0KCIgIik7RGF0ZS5kYXlOYW1lcz0iU3VuZGF5IE1vbmRheSBUdWVzZGF5IFdlZG5lc2RheSBUaHVyc2RheSBGcmlkYXkgU2F0dXJkYXkiLnNwbGl0KCIgIik7CkRhdGUueTJrWWVhcj01MDtEYXRlLm1vbnRoTnVtYmVycz17SmFuOjAsRmViOjEsTWFyOjIsQXByOjMsTWF5OjQsSnVuOjUsSnVsOjYsQXVnOjcsU2VwOjgsT2N0OjksTm92OjEwLERlYzoxMX07RGF0ZS5wYXR0ZXJucz17SVNPODYwMUxvbmdQYXR0ZXJuOiJZLW0tZCBIOmk6cyIsSVNPODYwMVNob3J0UGF0dGVybjoiWS1tLWQiLFNob3J0RGF0ZVBhdHRlcm46Im4vai9ZIixMb25nRGF0ZVBhdHRlcm46ImwsIEYgZCwgWSIsRnVsbERhdGVUaW1lUGF0dGVybjoibCwgRiBkLCBZIGc6aTpzIEEiLE1vbnRoRGF5UGF0dGVybjoiRiBkIixTaG9ydFRpbWVQYXR0ZXJuOiJnOmkgQSIsTG9uZ1RpbWVQYXR0ZXJuOiJnOmk6cyBBIixTb3J0YWJsZURhdGVUaW1lUGF0dGVybjoiWS1tLWRcXFRIOmk6cyIsVW5pdmVyc2FsU29ydGFibGVEYXRlVGltZVBhdHRlcm46IlktbS1kIEg6aTpzTyIsWWVhck1vbnRoUGF0dGVybjoiRiwgWSJ9fSk7Ci8qKiAvbS9qcy9tYWlsU2NoZWR1bGUuMi4wLmpzICoqLwp2YXIgX19fZDJjX21haWxTY2hlZHVsZTIwanNfY19vbj0iMjAyNi0wMS0xMiAxMDoxNDoxMCI7J3VzZSBzdHJpY3QnO2xldCBkZWFsZXJTdG9yZUhvdXJzPXt9OwpmdW5jdGlvbiBNYWlsU2NoZWR1bGUoaCl7dmFyIGM9e2ZpcnN0Q2hvaWNlOiIiLHNlY29uZENob2ljZToiIix3YWl0aW5nT25TaXRlOiIiLHRyYW5zcG9ydE9wdGlvbjoiIixzY29wZTpoLnNjb3BlLGZpcnN0Q2hvaWNlT2JqZWN0SWQ6ImZpcnN0RGF0ZSIsc2Vjb25kQ2hvaWNlT2JqZWN0SWQ6InNlY29uZERhdGUiLGZpcnN0SG91clNlbGVjdDoiZmlyc3REYXRlU2VsZWN0IixzZWNvbmRIb3VyU2VsZWN0OiJzZWNvbmREYXRlU2VsZWN0IixzZXR1cERhdGU6ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPSQoIiMiK2EpLGc9bmV3IERhdGU7Yy5pc0RhdGUoYil8fChiPW5ldyBEYXRlKTtjLmlzRGF0ZShkKXx8KGQ9bmV3IERhdGUoZy5nZXRUaW1lKCkrYy5kYXlUb01pbGxpc2Vjb25kcygzMCkpKTt2YXIgaz1uZXcgRGF0ZTtrLnNldE1pbnV0ZXMoay5nZXRNaW51dGVzKCkrMzApO2Uub24oImtleWRvd24iLGZ1bmN0aW9uKGYpe2YucHJldmVudERlZmF1bHQoKTtyZXR1cm4hMX0pO2UuZGF0YSgiZGF0ZXRpbWVwaWNrZXJPcHRpb25zIiwKe2RhdGVTZWxlY3RlZDohMSx0aW1lU2VsZWN0ZWQ6ITF9KTskKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCkmJiJFTkdMSVNIIj09PSQoIiNhY3RpdmVzaXRlbGFuZ3VhZ2UiKS52YWwoKXx8JC5kYXRldGltZXBpY2tlci5zZXRMb2NhbGUoImZyIik7ZS5kYXRldGltZXBpY2tlcigkLmV4dGVuZCh7fSxwLHtpZDphKyJfZGF0ZVRpbWVQaWNrZXIiLG1pbkRhdGU6YixtYXhEYXRlOmQsZGlzYWJsZWREYXRlczpjLmdldENsb3NlZERhdGVzQmV0d2VlbihiLGQpLG9uQ2hhbmdlRGF0ZVRpbWU6ZnVuY3Rpb24oZil7bnVsbCE9ZiYmZi50b0RhdGVTdHJpbmcoKT09PWcudG9EYXRlU3RyaW5nKCk\/dGhpcy5zZXRPcHRpb25zKHttaW5UaW1lOmsuZGF0ZUZvcm1hdCgiSDppIil9KTp0aGlzLnNldE9wdGlvbnMoe21pblRpbWU6ITF9KX0sb25TaG93OmZ1bmN0aW9uKGYpe2Y9JCh0aGlzKS5kYXRhKCkub3B0aW9ucy5kYXRlU2VsZWN0ZWQ\/JCh0aGlzKS5kYXRhKCkub3B0aW9ucy52YWx1ZTpiOwpjLnVwZGF0ZUhvdXJzKGYsYSl9fSkpfSxpbml0OmZ1bmN0aW9uKCl7dmFyIGE9Yy5nZXRQaWNrZXJEYXRlUmFuZ2UoKTtpZigxPiQoYy5zY29wZSkubGVuZ3RoKXJldHVybiBzZXRUaW1lb3V0KGMuaW5pdCwxRTQpO2lmKCEkKGMuc2NvcGUpLmlzKCI6dmlzaWJsZSIpKXJldHVybiBzZXRUaW1lb3V0KGMuaW5pdCwxRTMpO2E\/KCQoIiMiK2MuZmlyc3RDaG9pY2VPYmplY3RJZCkucHJvcCgiZGlzYWJsZWQiLCExKSwkKCIjIitjLnNlY29uZENob2ljZU9iamVjdElkKS5wcm9wKCJkaXNhYmxlZCIsITEpLGMuc2V0dXBEYXRlKGMuZmlyc3RDaG9pY2VPYmplY3RJZCxhLnN0YXJ0RGF0ZSxhLmVuZERhdGUpLGMuc2V0dXBEYXRlKGMuc2Vjb25kQ2hvaWNlT2JqZWN0SWQsYS5zdGFydERhdGUsYS5lbmREYXRlKSk6KCQoIiMiK2MuZmlyc3RDaG9pY2VPYmplY3RJZCkucHJvcCgiZGlzYWJsZWQiLCEwKSwkKCIjIitjLmZpcnN0Q2hvaWNlT2JqZWN0SWQpLmNsb3Nlc3QoIi5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciIpLmNzcyh7ImJhY2tncm91bmQtY29sb3IiOiItaW50ZXJuYWwtbGlnaHQtZGFyay1jb2xvcihyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyksIHJnYmEoNTksIDU5LCA1OSwgMC4zKSkiLAoiYm9yZGVyLWNvbG9yIjoicmdiYSgxMTgsIDExOCwgMTE4LCAwLjMpIn0pLCQoIiMiK2Muc2Vjb25kQ2hvaWNlT2JqZWN0SWQpLnByb3AoImRpc2FibGVkIiwhMCksJCgiIyIrYy5zZWNvbmRDaG9pY2VPYmplY3RJZCkuY2xvc2VzdCgiLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIikuY3NzKHsiYmFja2dyb3VuZC1jb2xvciI6Ii1pbnRlcm5hbC1saWdodC1kYXJrLWNvbG9yKHJnYmEoMjM5LCAyMzksIDIzOSwgMC4zKSwgcmdiYSg1OSwgNTksIDU5LCAwLjMpKSIsImJvcmRlci1jb2xvciI6InJnYmEoMTE4LCAxMTgsIDExOCwgMC4zKSJ9KSl9LGFzc2lnblZhbHVlczpmdW5jdGlvbigpe3ZhciBhPSQoYy5zY29wZSksYj1udWxsO3N3aXRjaChtYWlsUGFnZS5tYWlsSUQpe2Nhc2UgIlNlcnZpY2VSZXF1ZXN0Ijp2YXIgZD1hLmZpbmQoIiNmaXJzdERhdGUiKTtiPWEuZmluZCgiI3NlY29uZERhdGUiKTticmVhaztjYXNlICJzZXJ2aWNlTWVudSI6ZD1hLmZpbmQoc2VydmljZUZvcm1fbWVudVNlcnZpY2UuZGF0ZUlkKTsKYnJlYWs7Y2FzZSAiaGVhZGVyU2VydmljZSI6ZD1hLmZpbmQoc2VydmljZUZvcm1faGVhZGVyU2VydmljZS5kYXRlSWQpO2JyZWFrO2RlZmF1bHQ6ZD1hLmZpbmQoIiMiK2MuZmlyc3RDaG9pY2VPYmplY3RJZCksYj1hLmZpbmQoIiMiK2Muc2Vjb25kQ2hvaWNlT2JqZWN0SWQpfWMuZmlyc3RDaG9pY2U9Yy5nZXREYXRlQ2hvaWNlKGQpO2Muc2Vjb25kQ2hvaWNlPWMuZ2V0RGF0ZUNob2ljZShiKTtjLndhaXRpbmdPblNpdGU9YS5maW5kKCJzZWxlY3RbbmFtZT0nd2FpdGluZ29uc2l0ZSddIG9wdGlvbjpzZWxlY3RlZCIpLnZhbCgpO2MudHJhbnNwb3J0T3B0aW9uPWMuZ2V0VHJhbnNwb3J0T3B0aW9uKCl9LGdldFRyYW5zcG9ydE9wdGlvbjpmdW5jdGlvbigpe3ZhciBhPSQoYy5zY29wZSkuZmluZCgic2VsZWN0W25hbWU9J3ByZWZlcnJlZFRyYW5zcG9ydCddIG9wdGlvbjpzZWxlY3RlZCIpO3JldHVybiBhLmxlbmd0aD9hLnZhbCgpOiIifSxnZXRUcmFuc3BvcnRPcHRpb25UZXh0OmZ1bmN0aW9uKCl7dmFyIGE9CiQoYy5zY29wZSkuZmluZCgic2VsZWN0W25hbWU9J3ByZWZlcnJlZFRyYW5zcG9ydCddIG9wdGlvbjpzZWxlY3RlZCIpO3JldHVybiBhLmxlbmd0aD9hLnRleHQoKToiIn0sdXBkYXRlSG91cnM6ZnVuY3Rpb24oYSxiKXt2YXIgZD0kKCIjIitiKSxlPWMuZ2V0QWxsb3dlZFRpbWVzKGEsYik7Yy5kaXNwbGF5UGlja2VyTWVzc2FnZShiLGMuZ2V0RGF0ZVNjaGVkdWxlKGEpKTswPGUubGVuZ3RoPyhiPXt0aW1lcGlja2VyOiEwLGFsbG93VGltZXM6ZX0sIiI9PT1kLnZhbCgpP2IudmFsdWU9YS5kYXRlRm9ybWF0KCJZL20vZCIpKyIgIitlWzBdOmIudmFsdWU9YSxkLmRhdGV0aW1lcGlja2VyKGIpKTooZC52YWwoIiIpLGQuZGF0ZXRpbWVwaWNrZXIoe3RpbWVwaWNrZXI6ITF9KSl9LGNsb3NlZEFmdGVyTWlkbmlnaHQ6ZnVuY3Rpb24oYSl7YT1jLmdldERhdGVTY2hlZHVsZShhKTtyZXR1cm4idW5kZWZpbmVkIj09PWEuc3RhcnRIb3VyPyExOmEuZW5kSG91cjxhLnN0YXJ0SG91ciYmMCE9PQphLmVuZEhvdXJ9LGRpc3BsYXlQaWNrZXJNZXNzYWdlOmZ1bmN0aW9uKGEsYil7dmFyIGQ9IiI7c3dpdGNoKGIuc3RhdHVzKXtjYXNlICJjbG9zZWQiOmQ9JCgiLnRleHRDbG9zZWQiKS52YWwoKTticmVhaztjYXNlICJyZHYiOmQ9JCgiLnRleHRSZHYiKS52YWwoKTticmVhaztjYXNlICJjb250YWN0IjpkPWIubWVzc2FnZX0kKCIjIithKyJfZGF0ZVRpbWVQaWNrZXIgLmRhdGVUaW1lUGlja2VyTWVzc2FnZSIpLmh0bWwoZCl9LHJlbW92ZUNsb3NlZEhvdXJzOmZ1bmN0aW9uKGEpe3ZhciBiPSQoYy5zY29wZSkuZmluZCgiLkNsb3NlZFNjaGVkdWxlIik7aWYoIWIubGVuZ3RofHwiY2xvc2VkIj09PWIudmFsKCkpcmV0dXJuIGE7dmFyIGQ9W10sZT1wYXJzZUludChiLmF0dHIoInN0YXJ0aG91ciIpKSxnPXBhcnNlSW50KGIuYXR0cigic3RhcnRtaW4iKSksaz1wYXJzZUludChiLmF0dHIoImVuZGhvdXIiKSk7Yj1wYXJzZUludChiLmF0dHIoImVuZG1pbiIpKTt2YXIgZj1uZXcgRGF0ZTsKZi5zZXRIb3VycyhlLGcpO3ZhciBxPW5ldyBEYXRlO3Euc2V0SG91cnMoayxiKTskLmVhY2goYSxmdW5jdGlvbihtLHIpe209ci5zcGxpdCgiOiIpO3ZhciBuPW5ldyBEYXRlO24uc2V0SG91cnMocGFyc2VJbnQobVswXSkscGFyc2VJbnQobVsxXSkpOyhuPGZ8fG4+PXEpJiZkLnB1c2gocil9KTtyZXR1cm4gZH0sZ2V0QWxsb3dlZFRpbWVzOmZ1bmN0aW9uKGEsYil7JCgiIyIrYik7Yj1bXTt2YXIgZD1jLmdldERhdGVTY2hlZHVsZShhKSxlPW5ldyBEYXRlKGEpO2Uuc2V0RGF0ZShhLmdldERhdGUoKS0xKTtlPWMuZ2V0RGF5QmVmb3JlQXBwb2ludG1lbnRzKGUpO2I9Yi5jb25jYXQoZSk7aWYoImNvbmNlc3MiPT09ZC5zdGF0dXN8fCIiPT09ZC5zdGF0dXN8fCJ1bmRlZmluZWQiPT09dHlwZW9mIGQuc3RhdHVzfHwicmR2Ij09PWQuc3RhdHVzKXtlPWQuc3RhcnRIb3VyO3ZhciBnPWQuc3RhcnRNaW47ZD1jLmdldEVuZE9mRGF5KGUsZC5lbmRIb3VyLGQuZW5kTWluKTtlPWMuZ2V0QXBwb2ludG1lbnRzQmV0d2VlbihlLApnLGQuZW5kSG91cixkLmVuZE1pbik7ZT1jLnJlbW92ZUNsb3NlZEhvdXJzKGUpO2I9Yi5jb25jYXQoZSl9aWYoYS50b0RhdGVTdHJpbmcoKT09KG5ldyBEYXRlKS50b0RhdGVTdHJpbmcoKSlmb3IoYT0obmV3IERhdGUpLmdldEhvdXJzKCk7MDxiLmxlbmd0aDspaWYocGFyc2VJbnQoYlswXSk8PWEpYi5zaGlmdCgpO2Vsc2UgYnJlYWs7cmV0dXJuIGJ9LGdldEFwcG9pbnRtZW50c0JldHdlZW46ZnVuY3Rpb24oYSxiLGQsZSl7YSs9MzA9PT1iPy41OjA7ZD1kKygzMD09PWU\/LjU6MCktMTtlPVtdO2ZvcihiPSIxNSI9PSQoIi5TRVJWSUNFX0FQUE9JTlRNRU5UX0xFTkdUSCIpLnZhbCgpPy4yNTouNTthPD1kO2ErPWIpMD09PWElMT9lLnB1c2goYSsiOjAwIik6MD09PWElLjU\/ZS5wdXNoKE1hdGguZmxvb3IoYSkrIjozMCIpOjA9PT0oYS0uMjUpJTE\/ZS5wdXNoKE1hdGguZmxvb3IoYSkrIjoxNSIpOmUucHVzaChNYXRoLmZsb29yKGEpKyI6NDUiKTtyZXR1cm4gZX0sZ2V0Q2xvc2VkRGF0ZXNCZXR3ZWVuOmZ1bmN0aW9uKGEsCmIpe2I9Yy5nZXREYXlzRGlmZihhLGIpO2Zvcih2YXIgZD1bXSxlPVtdLGc9MDtnPGI7ZysrKXt2YXIgaz1uZXcgRGF0ZSgobmV3IERhdGUoYSkpLnNldERhdGUoYS5nZXREYXRlKCkrKGctMSkpKSxmPW5ldyBEYXRlKChuZXcgRGF0ZShhKSkuc2V0RGF0ZShhLmdldERhdGUoKStnKSk7ZS5oYXNPd25Qcm9wZXJ0eShmLmdldERheSgpKXx8KGVbZi5nZXREYXkoKV09Yy5nZXREYXRlU2NoZWR1bGUoZikpOyJjbG9zZWQiIT09ZVtmLmdldERheSgpXS5zdGF0dXMmJiJvbmxpbmUiIT09ZVtmLmdldERheSgpXS5zdGF0dXN8fGMuY2xvc2VkQWZ0ZXJNaWRuaWdodChrKXx8ZC5wdXNoKGYuZGF0ZUZvcm1hdCgiWS9tL2QiKSl9cmV0dXJuIGR9LGdldERhdGVDaG9pY2U6ZnVuY3Rpb24oYSl7cmV0dXJuIGEmJjA8YS5sZW5ndGgmJihhPW5ldyBEYXRlKGEudmFsKCkpLGMuaXNEYXRlKGEpKT9hLmRhdGVGb3JtYXQoIlk6bTpkIEg6aSIpOiIifSxnZXREYXRlU2NoZWR1bGU6ZnVuY3Rpb24oYSl7dmFyIGI9CmRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZXJ2aWNlRW1haWxzU2VsZWN0Iik7aWYoYiYmYi5vcHRpb25zJiYxPGIub3B0aW9ucy5sZW5ndGgmJjA8PWIuc2VsZWN0ZWRJbmRleCYmYi5vcHRpb25zLmhhc093blByb3BlcnR5KGIuc2VsZWN0ZWRJbmRleCkmJmRlYWxlclN0b3JlSG91cnMmJmRlYWxlclN0b3JlSG91cnMuaGFzT3duUHJvcGVydHkoYi5vcHRpb25zW2Iuc2VsZWN0ZWRJbmRleF0uZ2V0QXR0cmlidXRlKCJkYXRhLWRlYWxlcm5hbWUiKSkpe2I9Yi5vcHRpb25zW2Iuc2VsZWN0ZWRJbmRleF0uZ2V0QXR0cmlidXRlKCJkYXRhLWRlYWxlcm5hbWUiKTtjb25zdCBnPWEudG9Mb2NhbGVEYXRlU3RyaW5nKCJlbi1VUyIse3dlZWtkYXk6ImxvbmcifSkucmVwbGFjZSgvXHUyMDBFL2csIiIpO2E9ZGVhbGVyU3RvcmVIb3Vyc1tiXTtpZihiJiZhJiYoYT1hLmZpbmQoaz0+ay5kYXk9PT1nKSkmJmEuaG91cnMmJiJjbG9zZWQiIT09YS5ob3Vycy50b0xvd2VyQ2FzZSgpJiYoYj0oYS5ob3Vycy5tYXRjaCgvOi9nKXx8CltdKS5sZW5ndGgsYS5ob3Vycy5pbmNsdWRlcygiLSIpJiYyPT09Yikpe3ZhciBkPWEuaG91cnMuc3BsaXQoIiAtICIpO2E9cGFyc2VJbnQoZFswXS5zcGxpdCgiOiIpWzBdKTtiPXBhcnNlSW50KGRbMF0uc3BsaXQoIjoiKVsxXS5zdWJzdHJpbmcoMCwyKSk7dmFyIGU9cGFyc2VJbnQoZFsxXS5zcGxpdCgiOiIpWzBdKTtkPXBhcnNlSW50KGRbMV0uc3BsaXQoIjoiKVsxXS5zdWJzdHJpbmcoMCwyKSk7cmV0dXJue3N0YXR1czoiIixzdGFydEhvdXI6YSxzdGFydE1pbjpiLGVuZEhvdXI6ZSxlbmRNaW46ZH19cmV0dXJue3N0YXR1czoiY2xvc2VkIn19YT1hLnRvTG9jYWxlRGF0ZVN0cmluZygiZW4tVVMiLHt3ZWVrZGF5OiJsb25nIn0pLnJlcGxhY2UoL1x1MjAwRS9nLCIiKTtiPSIuIithKyJTY2hlZHVsZSI7Yj0kKGMuc2NvcGUpLmZpbmQoYik7ZT1iLnZhbCgpO3JldHVybiJjb25jZXNzIj09PWV8fCJyZHYiPT09ZT97c3RhdHVzOmUsc3RhcnRIb3VyOjcsc3RhcnRNaW46MzAsZW5kSG91cjoyMCwKZW5kTWluOjB9OiIiPT09ZXx8InVuZGVmaW5lZCI9PT10eXBlb2YgZT97c3RhdHVzOmUsc3RhcnRIb3VyOnBhcnNlSW50KGIuYXR0cigic3RhcnRob3VyIikpLHN0YXJ0TWluOnBhcnNlSW50KGIuYXR0cigic3RhcnRtaW4iKSksZW5kSG91cjpwYXJzZUludChiLmF0dHIoImVuZGhvdXIiKSksZW5kTWluOnBhcnNlSW50KGIuYXR0cigiZW5kbWluIikpfTp7c3RhdHVzOmUsbWVzc2FnZTokKGMuc2NvcGUpLmZpbmQoIi4iK2ErIlNjaGVkdWxlX21lc3NhZ2UiKS5odG1sKCl9fSxnZXREYXlCZWZvcmVBcHBvaW50bWVudHM6ZnVuY3Rpb24oYSl7dmFyIGI9Yy5nZXREYXRlU2NoZWR1bGUoYSk7cmV0dXJuIGMuY2xvc2VkQWZ0ZXJNaWRuaWdodChhKT9jLmdldEFwcG9pbnRtZW50c0JldHdlZW4oMCwwLGIuZW5kSG91cixiLmVuZE1pbik6W119LGdldERheXNEaWZmOmZ1bmN0aW9uKGEsYil7dmFyIGQ9Yy5kYXlUb01pbGxpc2Vjb25kcygxKTtyZXR1cm4gTWF0aC5yb3VuZCgoYi5nZXRUaW1lKCktCmEuZ2V0VGltZSgpKS9kKX0sZ2V0RW5kT2ZEYXk6ZnVuY3Rpb24oYSxiLGQpe3JldHVybiBhPGI\/e2VuZEhvdXI6YixlbmRNaW46ZH06YjxhJiYwPT09Yj97ZW5kSG91cjoyNCxlbmRNaW46ZH06e2VuZEhvdXI6MjQsZW5kTWluOjMwfX0sZ2V0TmV4dE9wZW5EYXRlOmZ1bmN0aW9uKGEpe2lmKCJjbG9zZWQiPT09Yy5nZXREYXRlU2NoZWR1bGUoYSkuc3RhdHVzKXthPW5ldyBEYXRlKChuZXcgRGF0ZShhKSkuc2V0RGF0ZShhLmdldERhdGUoKSsxKSk7dmFyIGI9bmV3IERhdGUoKG5ldyBEYXRlKS5zZXREYXRlKChuZXcgRGF0ZSkuZ2V0RGF0ZSgpKzcpKTtyZXR1cm4gYT5iPyExOmMuZ2V0TmV4dE9wZW5EYXRlKGEpfXJldHVybiBhfSxnZXRQaWNrZXJEYXRlUmFuZ2U6ZnVuY3Rpb24oKXt2YXIgYT0kKCIuYWxsb3dUb2RheSIpLnZhbCgpLGI9cGFyc2VJbnQoJCgiLm1pblN0YXJ0RGF5cyIpLnZhbCgpKSxkPTAsZT1uZXcgRGF0ZTthfHwoZD0xKTtiJiYoZD1iKTthPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5mb290ZXJWaXNpdENvbnRhY3RGb3JtV3JhcHBlciIpOwpudWxsIT09YT8oYj1lLmdldERheSgpLGI9MD09PWI\/NzpiLDE9PWEucXVlcnlTZWxlY3RvckFsbCgiLndlZWtEYXlTY2hlZHVsZSIpW2ItMV0uZGF0YXNldC5jbG9zZWQ\/ZT1uZXcgRGF0ZSgobmV3IERhdGUoZSkpLnNldERhdGUoZS5nZXREYXRlKCkrZCkpOihhPWUuZ2V0SG91cnMoKSxiPWUuZ2V0TWludXRlcygpKzYwLDYwPD1iJiYoYSs9TWF0aC5mbG9vcihiLzYwKSxiJT02MCxiJTMwJiYoNT49YiUzMD9iLT1iJTMwOjU8YiUzMCYmKGIrPTMwLWIlMzApKSksMjQ8PWE\/KGQ9ZD9kOjEsZT1uZXcgRGF0ZShlLnNldERhdGUoZS5nZXREYXRlKCkrZCkpKTooZT1uZXcgRGF0ZShlLnNldERhdGUoZS5nZXREYXRlKCkrZCkpLGUuc2V0SG91cnMoYSxiLDAsMCkpKSk6KGU9bmV3IERhdGUoKG5ldyBEYXRlKGUpKS5zZXREYXRlKGUuZ2V0RGF0ZSgpK2QpKSxlPWMuZ2V0TmV4dE9wZW5EYXRlKGUpKTtpZighZSlyZXR1cm4hMTtkPW5ldyBEYXRlKGUuZ2V0VGltZSgpK2MuZGF5VG9NaWxsaXNlY29uZHMoNDUwKSk7CnJldHVybntzdGFydERhdGU6ZSxlbmREYXRlOmR9fSxpc0RhdGU6ZnVuY3Rpb24oYSl7cmV0dXJuIGEgaW5zdGFuY2VvZiBEYXRlJiYiSW52YWxpZCBEYXRlIiE9PWEudG9EYXRlU3RyaW5nKCl9LGRheVRvTWlsbGlzZWNvbmRzOmZ1bmN0aW9uKGEpe3JldHVybiA4NjRFNSphfSxwaWNrZXJPbkNsb3NlOmZ1bmN0aW9uKGEsYil7YT0kKGIpLmRhdGEoImRhdGV0aW1lcGlja2VyT3B0aW9ucyIpLnRpbWVTZWxlY3RlZDt2YXIgZD0kKGIpLmRhdGEoImRhdGV0aW1lcGlja2VyT3B0aW9ucyIpLmRhdGVTZWxlY3RlZDsiIj09PWIudmFsKCkmJmwmJigkKCIjIitiLmRhdGEoImhvdXItc2VsZWN0IikpLmVtcHR5KCksJCgiIyIrYi5kYXRhKCJob3VyLXNlbGVjdCIpKS5wcm9wKCJkaXNhYmxlZCIsITApKTtpZighYSYmIWQpcmV0dXJuITA7YXx8c2V0VGltZW91dChmdW5jdGlvbigpe2IudmFsKGIudmFsKCkuc3BsaXQoIiAiKVswXS50cmltKCkpfSl9LHBpY2tlck9uR2VuZXJhdGU6ZnVuY3Rpb24oKXskKCIueGRzb2Z0X3NhdmVfc2VsZWN0ZWQiKS5yZW1vdmUoKTsKMD09PSQoIi5kYXRlVGltZVBpY2tlck1lc3NhZ2UiLHRoaXMpLmxlbmd0aCYmJCh0aGlzKS5hcHBlbmQoJzxkaXYgc3R5bGU9ImNsZWFyOiBib3RoOyBwYWRkaW5nOiAxMXB4OyAgZm9udC1zaXplOiAxMnB4O2ZvbnQtd2VpZ2h0OmJvbGQ7ICIgY2xhc3M9ImRhdGVUaW1lUGlja2VyTWVzc2FnZSI+PC9kaXY+Jyl9LHBpY2tlck9uU2VsZWN0RGF0ZTpmdW5jdGlvbihhLGIpeyQodGhpcykuZGF0YSgpLm9wdGlvbnMudmFsdWU9YTskKHRoaXMpLmRhdGEoKS5vcHRpb25zLmRhdGVTZWxlY3RlZD0hMDtiLmRhdGEoImRhdGV0aW1lcGlja2VyT3B0aW9ucyIpLmRhdGVTZWxlY3RlZD0hMDskKCIueGRzb2Z0X3NhdmVfc2VsZWN0ZWQiKS5yZW1vdmUoKTtiLmRhdGEoImhvdXItc2VsZWN0Iik\/Yy51cGRhdGVIb3VycyhhLGIuYXR0cigiaWQiKSxiLmRhdGEoImhvdXItc2VsZWN0IikpOmMudXBkYXRlSG91cnMoYSxiLmF0dHIoImlkIikpO3JldHVybiExfSxwaWNrZXJPblNlbGVjdFRpbWU6ZnVuY3Rpb24oYSwKYil7JCh0aGlzKS5kYXRhKCkub3B0aW9ucy52YWx1ZT1hOyQodGhpcykuZGF0YSgpLm9wdGlvbnMudGltZVNlbGVjdGVkPSEwO2IuZGF0YSgiZGF0ZXRpbWVwaWNrZXJPcHRpb25zIikudGltZVNlbGVjdGVkPSEwfSxzZXRTY29wZTpmdW5jdGlvbihhKXtjLnNjb3BlPWE7cmV0dXJuIGN9fSxsPWguaXNNb2JpbGU7bCYmKGMuaW5pdD1mdW5jdGlvbigpe3ZhciBhPSQoYy5zY29wZSk7YS5maW5kKCIjIitjLmZpcnN0SG91clNlbGVjdCkucHJvcCgiZGlzYWJsZWQiLCEwKTthLmZpbmQoIiMiK2Muc2Vjb25kSG91clNlbGVjdCkucHJvcCgiZGlzYWJsZWQiLCEwKTthLmZpbmQoIiMiK2MuZmlyc3RDaG9pY2VPYmplY3RJZCkuZGF0YSgiaG91ci1zZWxlY3QiLGMuZmlyc3RIb3VyU2VsZWN0KTthLmZpbmQoIiMiK2Muc2Vjb25kQ2hvaWNlT2JqZWN0SWQpLmRhdGEoImhvdXItc2VsZWN0IixjLnNlY29uZEhvdXJTZWxlY3QpO3ZhciBiPWMuZ2V0UGlja2VyRGF0ZVJhbmdlKCk7Yj8oYS5maW5kKCIjIisKYy5maXJzdEhvdXJTZWxlY3QpLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7dmFyIGQ9JCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKS52YWwoKSxlPSQodGhpcykudmFsKCk7YS5maW5kKCJpbnB1dFtuYW1lPWRhdGUxXSIpLnZhbChkKyIgIitlKX0pLGEuZmluZCgiIyIrYy5zZWNvbmRIb3VyU2VsZWN0KS5vbigiY2hhbmdlIixmdW5jdGlvbigpe3ZhciBkPSQoIiMiK2Muc2Vjb25kQ2hvaWNlT2JqZWN0SWQpLnZhbCgpLGU9JCh0aGlzKS52YWwoKTthLmZpbmQoImlucHV0W25hbWU9ZGF0ZTJdIikudmFsKGQrIiAiK2UpfSksYy5zZXR1cERhdGUoYy5maXJzdENob2ljZU9iamVjdElkLGMuZmlyc3RIb3VyU2VsZWN0LGIuc3RhcnREYXRlLGIuZW5kRGF0ZSksYy5zZXR1cERhdGUoYy5zZWNvbmRDaG9pY2VPYmplY3RJZCxjLnNlY29uZEhvdXJTZWxlY3QsYi5zdGFydERhdGUsYi5lbmREYXRlKSk6KGEuZmluZCgiIyIrYy5maXJzdENob2ljZU9iamVjdElkKS5wcm9wKCJkaXNhYmxlZCIsCiEwKSxhLmZpbmQoIiMiK2Muc2Vjb25kQ2hvaWNlT2JqZWN0SWQpLnByb3AoImRpc2FibGVkIiwhMCkpfSxjLmFzc2lnblZhbHVlcz1mdW5jdGlvbigpe3ZhciBhPSQoYy5zY29wZSksYj1hLmZpbmQoIiMiK2MuZmlyc3RIb3VyU2VsZWN0KS5maW5kKCI6c2VsZWN0ZWQiKS50ZXh0KCksZD1uZXcgRGF0ZShhLmZpbmQoIiMiK2MuZmlyc3RDaG9pY2VPYmplY3RJZCkudmFsKCkpO2Quc2V0SG91cnMoYi5zcGxpdCgiOiIpWzBdLGIuc3BsaXQoIjoiKVsxXSk7IkludmFsaWQgRGF0ZSIhPT1kLnRvRGF0ZVN0cmluZygpJiYoYy5maXJzdENob2ljZT1kLmRhdGVGb3JtYXQoIlk6bTpkIEg6aSIpKTtiPWEuZmluZCgiIyIrYy5zZWNvbmRIb3VyU2VsZWN0KS5maW5kKCI6c2VsZWN0ZWQiKS50ZXh0KCk7ZD1uZXcgRGF0ZShhLmZpbmQoIiMiK2Muc2Vjb25kQ2hvaWNlT2JqZWN0SWQpLnZhbCgpKTtkLnNldEhvdXJzKGIuc3BsaXQoIjoiKVswXSxiLnNwbGl0KCI6IilbMV0pOyJJbnZhbGlkIERhdGUiIT09CmQudG9EYXRlU3RyaW5nKCkmJihjLnNlY29uZENob2ljZT1kLmRhdGVGb3JtYXQoIlk6bTpkIEg6aSIpKTtjLndhaXRpbmdPblNpdGU9YS5maW5kKCJzZWxlY3RbbmFtZT0nd2FpdGluZ29uc2l0ZSddIG9wdGlvbjpzZWxlY3RlZCIpLnZhbCgpfSxjLnNldHVwRGF0ZT1mdW5jdGlvbihhLGIsZCxlKXt2YXIgZz0kKCIjIithKSxrPW5ldyBEYXRlO2MuaXNEYXRlKGQpfHwoZD1uZXcgRGF0ZSk7Yy5pc0RhdGUoZSl8fChlPW5ldyBEYXRlKGsuZ2V0VGltZSgpK2MuZGF5VG9NaWxsaXNlY29uZHMoMzApKSk7Zy5vbigia2V5ZG93biIsZnVuY3Rpb24oZil7Zi5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiExfSk7Zy5kYXRhKCJkYXRldGltZXBpY2tlck9wdGlvbnMiLHtkYXRlU2VsZWN0ZWQ6ITEsdGltZVNlbGVjdGVkOiExfSk7JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpJiYiRU5HTElTSCI9PT0kKCIjYWN0aXZlc2l0ZWxhbmd1YWdlIikudmFsKCl8fCQuZGF0ZXRpbWVwaWNrZXIuc2V0TG9jYWxlKCJmciIpOwpnLmRhdGV0aW1lcGlja2VyKCQuZXh0ZW5kKHt9LHAse2lkOmErIl9kYXRlVGltZVBpY2tlciIsdGltZXBpY2tlcjohMSxmb3JtYXQ6IlkvbS9kIixtaW5EYXRlOmQsbWF4RGF0ZTplLGRpc2FibGVkRGF0ZXM6Yy5nZXRDbG9zZWREYXRlc0JldHdlZW4oZCxlKSxvblNob3c6ZnVuY3Rpb24oZil7Zj0kKHRoaXMpLmRhdGEoKS5vcHRpb25zLmRhdGVTZWxlY3RlZD9mOmQ7Yy51cGRhdGVIb3VycyhmLGEsYil9fSkpfSxjLnVwZGF0ZUhvdXJzPWZ1bmN0aW9uKGEsYixkKXtkPSQoYy5zY29wZSkuZmluZCgiIyIrZCk7dmFyIGU9Yy5nZXRBbGxvd2VkVGltZXMoYSxiKTthPWMuZ2V0RGF0ZVNjaGVkdWxlKGEpO2MuZGlzcGxheVBpY2tlck1lc3NhZ2UoYixhKTtkLmVtcHR5KCk7MDxlLmxlbmd0aD9kLnByb3AoImRpc2FibGVkIiwhMSk6ZC5wcm9wKCJkaXNhYmxlZCIsITApO2Zvcih2YXIgZyBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkoZykpe2I9ZVtnXTt2YXIgaz0kKCI8b3B0aW9uPjwvb3B0aW9uPiIpLnRleHQoZVtnXSk7CmI9PT1hLnN0YXJ0SG91cisiOiIrYS5zdGFydE1pbiYmay5wcm9wKCJzZWxlY3RlZCIsInNlbGVjdGVkIik7ZC5hcHBlbmQoayl9fSk7dmFyIHA9e2xhbmc6IkVOR0xJU0giPT09JCgiI2FjdGl2ZXNpdGVsYW5ndWFnZSIpLnZhbCgpPyJlbiI6ImZyIixhbGxvd0JsYW5rOiEwLGRheU9mV2Vla1N0YXJ0OjEsc3RlcDozMCxvbkdlbmVyYXRlOmMucGlja2VyT25HZW5lcmF0ZSxvblNlbGVjdFRpbWU6Yy5waWNrZXJPblNlbGVjdFRpbWUsb25TZWxlY3REYXRlOmMucGlja2VyT25TZWxlY3REYXRlLG9uQ2xvc2U6Yy5waWNrZXJPbkNsb3NlfTtyZXR1cm4gY312YXIgbWFpbFNjaGVkdWxlPW5ldyBNYWlsU2NoZWR1bGUoe3Njb3BlOiIjbWFpbFNjaGVkdWxlRm9ybSIsaXNNb2JpbGU6MDwkKCIjaXNNb2JpbGUiKS5sZW5ndGg\/JCgiI2lzTW9iaWxlIikudmFsKCk6IiJ9KTsKZnVuY3Rpb24gZmV0Y2hBbmRJbml0RGVhbGVySG91cnMoaCl7ZGVhbGVyU3RvcmVIb3Vyc1toXXx8IiI9PT1oP21haWxTY2hlZHVsZS5pbml0KCk6ZmV0Y2goIi9hamF4L0dldFN0b3JlSG91cnM\/ZGVhbGVyX25hbWU9IitoKS50aGVuKGM9PmMuanNvbigpKS50aGVuKGM9PntjLmlzT2smJmMuaG91cnNJbmZvP2RlYWxlclN0b3JlSG91cnNbaF09Yy5ob3Vyc0luZm86Y29uc29sZS5lcnJvcigiRmFpbGVkIHRvIGZldGNoIHN0b3JlIGhvdXJzIGZvciBkZWFsZXIgbmFtZTogIitoKyIgZXJyb3I6ICIrYy5lcnJvcik7bWFpbFNjaGVkdWxlLmluaXQoKX0pLmNhdGNoKGM9PmNvbnNvbGUuZXJyb3IoIkVycm9yIGZldGNoaW5nIHN0b3JlIGhvdXJzIGZvciBkZWFsZXIgbmFtZSAiK2grIjogIixjKSl9CiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7Y29uc3QgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VydmljZUVtYWlsc1NlbGVjdCIpO2lmKGgmJmgub3B0aW9ucyYmMTxoLm9wdGlvbnMubGVuZ3RoKXtjb25zdCBjPWgub3B0aW9uc1swXS5nZXRBdHRyaWJ1dGUoImRhdGEtZGVhbGVybmFtZSIpO2ZldGNoQW5kSW5pdERlYWxlckhvdXJzKGMpO2guYWRkRXZlbnRMaXN0ZW5lcigiY2hhbmdlIiwoKT0+e2lmKDA8PWguc2VsZWN0ZWRJbmRleCl7Y29uc3QgbD1oLm9wdGlvbnNbaC5zZWxlY3RlZEluZGV4XS5nZXRBdHRyaWJ1dGUoImRhdGEtZGVhbGVybmFtZSIpO2ZldGNoQW5kSW5pdERlYWxlckhvdXJzKGwpfX0pfWVsc2UgbWFpbFNjaGVkdWxlLmluaXQoKX0pOwovKiogL20vanMvdmFuaWxsYWpzL21vZGFsLmpzICoqLwp2YXIgX19fZDJjX21vZGFsanNfY19vbj0iMjAyNi0wMi0yNyAxNTozMDowMyI7J3VzZSBzdHJpY3QnO2NvbnN0IE1vZGFscz17fSxNb2RhbD1mdW5jdGlvbihoLGIpe2xldCBjPXt9O2NvbnN0IG49e3RpdGxlOmgsY29udGVudFR5cGU6Im5vZGUiLGNvbnRlbnRTcmM6IiIsYWZ0ZXJJbml0OigpPT57fX07bGV0IGs9IiI7Y29uc3QgZT1odG1sVG9Ob2RlKCc8ZGl2IGNsYXNzPSJtb2RhbC1vdmVybGF5Ij48L2Rpdj4nKSxsPWZ1bmN0aW9uKGEpe2Eub25jbGljaz0oKT0+ZigiY2FuY2VsIil9LHA9ZnVuY3Rpb24oKXsoYy5xdWVyeVNlbGVjdG9yKCIub2theSIpfHwhMSkub25jbGljaz0oKT0+Zigib2theSIpO2NvbnN0IGE9Yy5xdWVyeVNlbGVjdG9yQWxsKCIuY2FuY2VsIil8fCExOzE8YS5sZW5ndGg\/JC5lYWNoKGEsZnVuY3Rpb24oZCxnKXtsKGcpfSk6YSYmbChhWzBdKX0sbT1mdW5jdGlvbihhKXsiRXNjYXBlIj09YS5rZXkmJihhLnByZXZlbnREZWZhdWx0KCksYS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsCm0se2NhcHR1cmU6ITB9KSxmKCkpfSxmPWE9PnthPWF8fCIiO3N3aXRjaChhKXtjYXNlICJjYW5jZWwiOiJmdW5jdGlvbiI9PXR5cGVvZiBiLm9uQmVmb3JlQ2FuY2VsJiZiLm9uQmVmb3JlQ2FuY2VsLmNhbGwoKTticmVhaztjYXNlICJva2F5IjoiZnVuY3Rpb24iPT10eXBlb2YgYi5vbkJlZm9yZVNhdmUmJmIub25CZWZvcmVTYXZlLmNhbGwoKX0iZnVuY3Rpb24iPT10eXBlb2YgYi5vbkJlZm9yZUNsb3NlJiZiLm9uQmVmb3JlQ2xvc2UuY2FsbChhKTtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93WT0iYXV0byI7Yy5jbGFzc0xpc3QudG9nZ2xlKCJpcy1hY3RpdmUiLCExKTtlLnBhcmVudE5vZGUmJihlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSksay5mb2N1cygpKX07Yj1PYmplY3QuYXNzaWduKG4sYik7KGZ1bmN0aW9uKCl7Y29uc3QgYT0rbmV3IERhdGU7dmFyIGQ9IiI7c3dpdGNoKGIuY29udGVudFR5cGUpe2Nhc2UgIm5vZGUiOmQ9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYi5jb250ZW50U3JjKTsKZC5oaWRkZW49ITE7YnJlYWs7Y2FzZSAiaWZyYW1lIjpkPWh0bWxUb05vZGUoYDxkaXYgY2xhc3M9ImlmcmFtZS13cmFwcGVyIj4KCQkJCQkJCQk8aWZyYW1lCgkJCQkJCQkJCXNyYz0iJHtiLmNvbnRlbnRTcmN9IgoJCQkJCQkJCQlmcmFtZWJvcmRlcj0iMCIKCQkJCQkJCQkJYWxsb3dmdWxsc2NyZWVuPSJ0cnVlIgoJCQkJCQkJCQl3ZWJraXRhbGxvd2Z1bGxzY3JlZW49InRydWUiCgkJCQkJCQkJCW1vemFsbG93ZnVsbHNjcmVlbj0idHJ1ZSIKCQkJCQkJCQk+PC9pZnJhbWU+CgkJCQkJCQk8L2Rpdj5gKX1sZXQgZz0iIjtiLnNob3dZZXNOb0J1dHRvbnMmJihnPWA8ZGl2IGNsYXNzPSJtb2RhbC1mb290ZXIgLXAgLS1zNSBmbGV4LWJldHdlZW4iPgoJCQkJPGRpdj4KCQkJCQk8c3BhbiBjbGFzcz0iIC1tdDIgbWFpblRleHQgLWJvbGQiPiR7Yi5idXR0b25UZXh0fHwiIn08L3NwYW4+CgkJCQk8L2Rpdj4KCQkJCTxkaXY+CgkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gY2FuY2VsIiBkYXRhLWRpc21pc3M9Im1vZGFsIj4ke2Iubm9CdXR0b258fCJObyJ9PC9idXR0b24+CgkJCQkJPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLW1haW4yIG9rYXkiIGRhdGEtZGlzbWlzcz0ibW9kYWwiPiR7Yi55ZXNCdXR0b258fCJZZXMifTwvYnV0dG9uPgoJCQkJPC9kaXY+YCk7Yz1odG1sVG9Ob2RlKGAKCQkJPGJveC1sYyBjbGFzcz0ibW9kYWwtd3JhcHBlciAtYmctd2hpdGUgLS1zMCI+CgkJCQk8c3RhY2stbGMgY2xhc3M9Ii0tczAiPgoJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLWhlYWRlciBmbGV4LWJldHdlZW4gLXAgLS1zNSI+CgkJCQkJCTxkaXYgY2xhc3M9Im1vZGFsLXRpdGxlIHR4dC11cHBlciAtZnMtbCAtYm9sZCI+CgkJCQkJCQkke2IudGl0bGV9CgkJCQkJCTwvZGl2PgoJCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1jb250cm9sIj4KCQkJCQkJCTxidXR0b24gdGl0bGU9ImNsb3NlIiBjbGFzcz0ieC1jbG9zZSBjYW5jZWwiPjwvYnV0dG9uPgoJCQkJCQk8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJtb2RhbC1ib2R5IiBpZD0icS0ke2F9Ij4KCgkJCQkJPC9kaXY+CgkJCQkJJHtnfQoJCQkJPC9zdGFjay1sYz4KCQkJPC9ib3gtbGM+CgkJYCk7Yy5pZD1gbW9kYWwke2h9YDtjLnNldEF0dHJpYnV0ZSgicm9sZSIsImRpYWxvZyIpO2Muc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsbGVkYnkiLGBxLSR7YX1gKTtjLnF1ZXJ5U2VsZWN0b3IoIi5tb2RhbC1ib2R5IikuYXBwZW5kQ2hpbGQoZCk7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjKTtkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93WT0iaGlkZGVuIjtiLmFmdGVySW5pdCgpO3AoKX0pKCk7cmV0dXJue2Rpc3BsYXk6ZnVuY3Rpb24oKXtrPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKTtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXl1cCIsbSx7Y2FwdHVyZTohMH0pO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtjLmNsYXNzTGlzdC50b2dnbGUoImlzLWFjdGl2ZSIsITApfSwxKX0sY2xvc2U6Zn19OwovKiogL20vanMvdmFuaWxsYWpzL2xlYWQuanMgKiovCnZhciBfX19kMmNfbGVhZGpzX2Nfb249IjIwMjYtMDQtMDIgMTM6MzA6MDMiOyd1c2Ugc3RyaWN0Jzt2YXIgJGpzY29tcD0kanNjb21wfHx7fTskanNjb21wLnNjb3BlPXt9OyRqc2NvbXAuQVNTVU1FX0VTNT0hMTskanNjb21wLkFTU1VNRV9OT19OQVRJVkVfTUFQPSExOyRqc2NvbXAuQVNTVU1FX05PX05BVElWRV9TRVQ9ITE7JGpzY29tcC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExOyRqc2NvbXAuSVNPTEFURV9QT0xZRklMTFM9ITE7JGpzY29tcC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFPSExOyRqc2NvbXAuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7JGpzY29tcC5kZWZpbmVQcm9wZXJ0eT0kanNjb21wLkFTU1VNRV9FUzV8fCJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuZGVmaW5lUHJvcGVydGllcz9PYmplY3QuZGVmaW5lUHJvcGVydHk6ZnVuY3Rpb24oYixhLGMpe2lmKGI9PUFycmF5LnByb3RvdHlwZXx8Yj09T2JqZWN0LnByb3RvdHlwZSlyZXR1cm4gYjtiW2FdPWMudmFsdWU7cmV0dXJuIGJ9OwokanNjb21wLmdldEdsb2JhbD1mdW5jdGlvbihiKXtiPVsib2JqZWN0Ij09dHlwZW9mIGdsb2JhbFRoaXMmJmdsb2JhbFRoaXMsYiwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93LCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZiwib2JqZWN0Ij09dHlwZW9mIGdsb2JhbCYmZ2xvYmFsXTtmb3IodmFyIGE9MDthPGIubGVuZ3RoOysrYSl7dmFyIGM9YlthXTtpZihjJiZjLk1hdGg9PU1hdGgpcmV0dXJuIGN9dGhyb3cgRXJyb3IoIkNhbm5vdCBmaW5kIGdsb2JhbCBvYmplY3QiKTt9OyRqc2NvbXAuZ2xvYmFsPSRqc2NvbXAuZ2V0R2xvYmFsKHRoaXMpOyRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT0iZnVuY3Rpb24iPT09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PT10eXBlb2YgU3ltYm9sKCJ4Iik7JGpzY29tcC5UUlVTVF9FUzZfUE9MWUZJTExTPSEkanNjb21wLklTT0xBVEVfUE9MWUZJTExTfHwkanNjb21wLklTX1NZTUJPTF9OQVRJVkU7JGpzY29tcC5wb2x5ZmlsbHM9e307CiRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sPXt9OyRqc2NvbXAuUE9MWUZJTExfUFJFRklYPSIkanNjcCQiO3ZhciAkanNjb21wJGxvb2t1cFBvbHlmaWxsZWRWYWx1ZT1mdW5jdGlvbihiLGEpe3ZhciBjPSRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2FdO2lmKG51bGw9PWMpcmV0dXJuIGJbYV07Yz1iW2NdO3JldHVybiB2b2lkIDAhPT1jP2M6YlthXX07JGpzY29tcC5wb2x5ZmlsbD1mdW5jdGlvbihiLGEsYyxlKXthJiYoJGpzY29tcC5JU09MQVRFX1BPTFlGSUxMUz8kanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQoYixhLGMsZSk6JGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQoYixhLGMsZSkpfTsKJGpzY29tcC5wb2x5ZmlsbFVuaXNvbGF0ZWQ9ZnVuY3Rpb24oYixhLGMsZSl7Yz0kanNjb21wLmdsb2JhbDtiPWIuc3BsaXQoIi4iKTtmb3IoZT0wO2U8Yi5sZW5ndGgtMTtlKyspe3ZhciBoPWJbZV07aWYoIShoIGluIGMpKXJldHVybjtjPWNbaF19Yj1iW2IubGVuZ3RoLTFdO2U9Y1tiXTthPWEoZSk7YSE9ZSYmbnVsbCE9YSYmJGpzY29tcC5kZWZpbmVQcm9wZXJ0eShjLGIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSl9OwokanNjb21wLnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24oYixhLGMsZSl7dmFyIGg9Yi5zcGxpdCgiLiIpO2I9MT09PWgubGVuZ3RoO2U9aFswXTtlPSFiJiZlIGluICRqc2NvbXAucG9seWZpbGxzPyRqc2NvbXAucG9seWZpbGxzOiRqc2NvbXAuZ2xvYmFsO2Zvcih2YXIgcT0wO3E8aC5sZW5ndGgtMTtxKyspe3ZhciByPWhbcV07aWYoIShyIGluIGUpKXJldHVybjtlPWVbcl19aD1oW2gubGVuZ3RoLTFdO2M9JGpzY29tcC5JU19TWU1CT0xfTkFUSVZFJiYiZXM2Ij09PWM\/ZVtoXTpudWxsO2E9YShjKTtudWxsIT1hJiYoYj8kanNjb21wLmRlZmluZVByb3BlcnR5KCRqc2NvbXAucG9seWZpbGxzLGgse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTphfSk6YSE9PWMmJih2b2lkIDA9PT0kanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSYmKGM9MUU5Kk1hdGgucmFuZG9tKCk+Pj4wLCRqc2NvbXAucHJvcGVydHlUb1BvbHlmaWxsU3ltYm9sW2hdPSRqc2NvbXAuSVNfU1lNQk9MX05BVElWRT8KJGpzY29tcC5nbG9iYWwuU3ltYm9sKGgpOiRqc2NvbXAuUE9MWUZJTExfUFJFRklYK2MrIiQiK2gpLCRqc2NvbXAuZGVmaW5lUHJvcGVydHkoZSwkanNjb21wLnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtoXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmF9KSkpfTskanNjb21wLnVuZGVyc2NvcmVQcm90b0NhbkJlU2V0PWZ1bmN0aW9uKCl7dmFyIGI9e2E6ITB9LGE9e307dHJ5e3JldHVybiBhLl9fcHJvdG9fXz1iLGEuYX1jYXRjaChjKXt9cmV0dXJuITF9OwokanNjb21wLnNldFByb3RvdHlwZU9mPSRqc2NvbXAuVFJVU1RfRVM2X1BPTFlGSUxMUyYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5zZXRQcm90b3R5cGVPZj9PYmplY3Quc2V0UHJvdG90eXBlT2Y6JGpzY29tcC51bmRlcnNjb3JlUHJvdG9DYW5CZVNldCgpP2Z1bmN0aW9uKGIsYSl7Yi5fX3Byb3RvX189YTtpZihiLl9fcHJvdG9fXyE9PWEpdGhyb3cgbmV3IFR5cGVFcnJvcihiKyIgaXMgbm90IGV4dGVuc2libGUiKTtyZXR1cm4gYn06bnVsbDskanNjb21wLmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKGIpe3ZhciBhPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGE8Yi5sZW5ndGg\/e2RvbmU6ITEsdmFsdWU6YlthKytdfTp7ZG9uZTohMH19fTskanNjb21wLmFycmF5SXRlcmF0b3I9ZnVuY3Rpb24oYil7cmV0dXJue25leHQ6JGpzY29tcC5hcnJheUl0ZXJhdG9ySW1wbChiKX19OwokanNjb21wLm1ha2VJdGVyYXRvcj1mdW5jdGlvbihiKXt2YXIgYT0idW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLml0ZXJhdG9yJiZiW1N5bWJvbC5pdGVyYXRvcl07cmV0dXJuIGE\/YS5jYWxsKGIpOiRqc2NvbXAuYXJyYXlJdGVyYXRvcihiKX07JGpzY29tcC5nZW5lcmF0b3I9e307JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF89ZnVuY3Rpb24oYil7aWYoIShiIGluc3RhbmNlb2YgT2JqZWN0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCJJdGVyYXRvciByZXN1bHQgIitiKyIgaXMgbm90IGFuIG9iamVjdCIpO307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQ9ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITE7dGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO3RoaXMueWllbGRSZXN1bHQ9dm9pZCAwO3RoaXMubmV4dEFkZHJlc3M9MTt0aGlzLmZpbmFsbHlBZGRyZXNzXz10aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlDb250ZXh0c189dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5zdGFydF89ZnVuY3Rpb24oKXtpZih0aGlzLmlzUnVubmluZ18pdGhyb3cgbmV3IFR5cGVFcnJvcigiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZyIpO3RoaXMuaXNSdW5uaW5nXz0hMH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc3RvcF89ZnVuY3Rpb24oKXt0aGlzLmlzUnVubmluZ189ITF9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5qdW1wVG9FcnJvckhhbmRsZXJfPWZ1bmN0aW9uKCl7dGhpcy5uZXh0QWRkcmVzcz10aGlzLmNhdGNoQWRkcmVzc198fHRoaXMuZmluYWxseUFkZHJlc3NffTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5uZXh0Xz1mdW5jdGlvbihiKXt0aGlzLnlpZWxkUmVzdWx0PWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtleGNlcHRpb246Yixpc0V4Y2VwdGlvbjohMH07dGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnJldHVybj1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtyZXR1cm46Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUaHJvdWdoRmluYWxseUJsb2Nrcz1mdW5jdGlvbihiKXt0aGlzLmFicnVwdENvbXBsZXRpb25fPXtqdW1wVG86Yn07dGhpcy5uZXh0QWRkcmVzcz10aGlzLmZpbmFsbHlBZGRyZXNzX307JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUueWllbGQ9ZnVuY3Rpb24oYixhKXt0aGlzLm5leHRBZGRyZXNzPWE7cmV0dXJue3ZhbHVlOmJ9fTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS55aWVsZEFsbD1mdW5jdGlvbihiLGEpe2I9JGpzY29tcC5tYWtlSXRlcmF0b3IoYik7dmFyIGM9Yi5uZXh0KCk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oYyk7aWYoYy5kb25lKXRoaXMueWllbGRSZXN1bHQ9Yy52YWx1ZSx0aGlzLm5leHRBZGRyZXNzPWE7ZWxzZSByZXR1cm4gdGhpcy55aWVsZEFsbEl0ZXJhdG9yXz1iLHRoaXMueWllbGQoYy52YWx1ZSxhKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihiKXt0aGlzLm5leHRBZGRyZXNzPWJ9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLmp1bXBUb0VuZD1mdW5jdGlvbigpe3RoaXMubmV4dEFkZHJlc3M9MH07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuc2V0Q2F0Y2hGaW5hbGx5QmxvY2tzPWZ1bmN0aW9uKGIsYSl7dGhpcy5jYXRjaEFkZHJlc3NfPWI7dm9pZCAwIT1hJiYodGhpcy5maW5hbGx5QWRkcmVzc189YSl9OyRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQucHJvdG90eXBlLnNldEZpbmFsbHlCbG9jaz1mdW5jdGlvbihiKXt0aGlzLmNhdGNoQWRkcmVzc189MDt0aGlzLmZpbmFsbHlBZGRyZXNzXz1ifHwwfTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZVRyeUJsb2NrPWZ1bmN0aW9uKGIsYSl7dGhpcy5uZXh0QWRkcmVzcz1iO3RoaXMuY2F0Y2hBZGRyZXNzXz1hfHwwfTsKJGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5wcm90b3R5cGUuZW50ZXJDYXRjaEJsb2NrPWZ1bmN0aW9uKGIpe3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO2I9dGhpcy5hYnJ1cHRDb21wbGV0aW9uXy5leGNlcHRpb247dGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsO3JldHVybiBifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5lbnRlckZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGEsYyl7Yz90aGlzLmZpbmFsbHlDb250ZXh0c19bY109dGhpcy5hYnJ1cHRDb21wbGV0aW9uXzp0aGlzLmZpbmFsbHlDb250ZXh0c189W3RoaXMuYWJydXB0Q29tcGxldGlvbl9dO3RoaXMuY2F0Y2hBZGRyZXNzXz1ifHwwO3RoaXMuZmluYWxseUFkZHJlc3NfPWF8fDB9OwokanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5sZWF2ZUZpbmFsbHlCbG9jaz1mdW5jdGlvbihiLGEpe2E9dGhpcy5maW5hbGx5Q29udGV4dHNfLnNwbGljZShhfHwwKVswXTtpZihhPXRoaXMuYWJydXB0Q29tcGxldGlvbl89dGhpcy5hYnJ1cHRDb21wbGV0aW9uX3x8YSl7aWYoYS5pc0V4Y2VwdGlvbilyZXR1cm4gdGhpcy5qdW1wVG9FcnJvckhhbmRsZXJfKCk7dm9pZCAwIT1hLmp1bXBUbyYmdGhpcy5maW5hbGx5QWRkcmVzc188YS5qdW1wVG8\/KHRoaXMubmV4dEFkZHJlc3M9YS5qdW1wVG8sdGhpcy5hYnJ1cHRDb21wbGV0aW9uXz1udWxsKTp0aGlzLm5leHRBZGRyZXNzPXRoaXMuZmluYWxseUFkZHJlc3NffWVsc2UgdGhpcy5uZXh0QWRkcmVzcz1ifTskanNjb21wLmdlbmVyYXRvci5Db250ZXh0LnByb3RvdHlwZS5mb3JJbj1mdW5jdGlvbihiKXtyZXR1cm4gbmV3ICRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcihiKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkNvbnRleHQuUHJvcGVydHlJdGVyYXRvcj1mdW5jdGlvbihiKXt0aGlzLm9iamVjdF89Yjt0aGlzLnByb3BlcnRpZXNfPVtdO2Zvcih2YXIgYSBpbiBiKXRoaXMucHJvcGVydGllc18ucHVzaChhKTt0aGlzLnByb3BlcnRpZXNfLnJldmVyc2UoKX07JGpzY29tcC5nZW5lcmF0b3IuQ29udGV4dC5Qcm9wZXJ0eUl0ZXJhdG9yLnByb3RvdHlwZS5nZXROZXh0PWZ1bmN0aW9uKCl7Zm9yKDswPHRoaXMucHJvcGVydGllc18ubGVuZ3RoOyl7dmFyIGI9dGhpcy5wcm9wZXJ0aWVzXy5wb3AoKTtpZihiIGluIHRoaXMub2JqZWN0XylyZXR1cm4gYn1yZXR1cm4gbnVsbH07JGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfPW5ldyAkanNjb21wLmdlbmVyYXRvci5Db250ZXh0O3RoaXMucHJvZ3JhbV89Yn07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLm5leHRfPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7aWYodGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXylyZXR1cm4gdGhpcy55aWVsZEFsbFN0ZXBfKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8ubmV4dCxiLHRoaXMuY29udGV4dF8ubmV4dF8pO3RoaXMuY29udGV4dF8ubmV4dF8oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS5yZXR1cm5fPWZ1bmN0aW9uKGIpe3RoaXMuY29udGV4dF8uc3RhcnRfKCk7dmFyIGE9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXztpZihhKXJldHVybiB0aGlzLnlpZWxkQWxsU3RlcF8oInJldHVybiJpbiBhP2FbInJldHVybiJdOmZ1bmN0aW9uKGMpe3JldHVybnt2YWx1ZTpjLGRvbmU6ITB9fSxiLHRoaXMuY29udGV4dF8ucmV0dXJuKTt0aGlzLmNvbnRleHRfLnJldHVybihiKTtyZXR1cm4gdGhpcy5uZXh0U3RlcF8oKX07CiRqc2NvbXAuZ2VuZXJhdG9yLkVuZ2luZV8ucHJvdG90eXBlLnRocm93Xz1mdW5jdGlvbihiKXt0aGlzLmNvbnRleHRfLnN0YXJ0XygpO2lmKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8pcmV0dXJuIHRoaXMueWllbGRBbGxTdGVwXyh0aGlzLmNvbnRleHRfLnlpZWxkQWxsSXRlcmF0b3JfWyJ0aHJvdyJdLGIsdGhpcy5jb250ZXh0Xy5uZXh0Xyk7dGhpcy5jb250ZXh0Xy50aHJvd18oYik7cmV0dXJuIHRoaXMubmV4dFN0ZXBfKCl9OwokanNjb21wLmdlbmVyYXRvci5FbmdpbmVfLnByb3RvdHlwZS55aWVsZEFsbFN0ZXBfPWZ1bmN0aW9uKGIsYSxjKXt0cnl7dmFyIGU9Yi5jYWxsKHRoaXMuY29udGV4dF8ueWllbGRBbGxJdGVyYXRvcl8sYSk7JGpzY29tcC5nZW5lcmF0b3IuZW5zdXJlSXRlcmF0b3JSZXN1bHRJc09iamVjdF8oZSk7aWYoIWUuZG9uZSlyZXR1cm4gdGhpcy5jb250ZXh0Xy5zdG9wXygpLGU7dmFyIGg9ZS52YWx1ZX1jYXRjaChxKXtyZXR1cm4gdGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsLHRoaXMuY29udGV4dF8udGhyb3dfKHEpLHRoaXMubmV4dFN0ZXBfKCl9dGhpcy5jb250ZXh0Xy55aWVsZEFsbEl0ZXJhdG9yXz1udWxsO2MuY2FsbCh0aGlzLmNvbnRleHRfLGgpO3JldHVybiB0aGlzLm5leHRTdGVwXygpfTsKJGpzY29tcC5nZW5lcmF0b3IuRW5naW5lXy5wcm90b3R5cGUubmV4dFN0ZXBfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmNvbnRleHRfLm5leHRBZGRyZXNzOyl0cnl7dmFyIGI9dGhpcy5wcm9ncmFtXyh0aGlzLmNvbnRleHRfKTtpZihiKXJldHVybiB0aGlzLmNvbnRleHRfLnN0b3BfKCkse3ZhbHVlOmIudmFsdWUsZG9uZTohMX19Y2F0Y2goYSl7dGhpcy5jb250ZXh0Xy55aWVsZFJlc3VsdD12b2lkIDAsdGhpcy5jb250ZXh0Xy50aHJvd18oYSl9dGhpcy5jb250ZXh0Xy5zdG9wXygpO2lmKHRoaXMuY29udGV4dF8uYWJydXB0Q29tcGxldGlvbl8pe2I9dGhpcy5jb250ZXh0Xy5hYnJ1cHRDb21wbGV0aW9uXzt0aGlzLmNvbnRleHRfLmFicnVwdENvbXBsZXRpb25fPW51bGw7aWYoYi5pc0V4Y2VwdGlvbil0aHJvdyBiLmV4Y2VwdGlvbjtyZXR1cm57dmFsdWU6Yi5yZXR1cm4sZG9uZTohMH19cmV0dXJue3ZhbHVlOnZvaWQgMCxkb25lOiEwfX07CiRqc2NvbXAuZ2VuZXJhdG9yLkdlbmVyYXRvcl89ZnVuY3Rpb24oYil7dGhpcy5uZXh0PWZ1bmN0aW9uKGEpe3JldHVybiBiLm5leHRfKGEpfTt0aGlzLnRocm93PWZ1bmN0aW9uKGEpe3JldHVybiBiLnRocm93XyhhKX07dGhpcy5yZXR1cm49ZnVuY3Rpb24oYSl7cmV0dXJuIGIucmV0dXJuXyhhKX07dGhpc1tTeW1ib2wuaXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9fTskanNjb21wLmdlbmVyYXRvci5jcmVhdGVHZW5lcmF0b3I9ZnVuY3Rpb24oYixhKXthPW5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGEpKTskanNjb21wLnNldFByb3RvdHlwZU9mJiZiLnByb3RvdHlwZSYmJGpzY29tcC5zZXRQcm90b3R5cGVPZihhLGIucHJvdG90eXBlKTtyZXR1cm4gYX07CiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvcj1mdW5jdGlvbihiKXtmdW5jdGlvbiBhKGUpe3JldHVybiBiLm5leHQoZSl9ZnVuY3Rpb24gYyhlKXtyZXR1cm4gYi50aHJvdyhlKX1yZXR1cm4gbmV3IFByb21pc2UoZnVuY3Rpb24oZSxoKXtmdW5jdGlvbiBxKHIpe3IuZG9uZT9lKHIudmFsdWUpOlByb21pc2UucmVzb2x2ZShyLnZhbHVlKS50aGVuKGEsYykudGhlbihxLGgpfXEoYi5uZXh0KCkpfSl9OyRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uPWZ1bmN0aW9uKGIpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3IoYigpKX07JGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yUHJvZ3JhbT1mdW5jdGlvbihiKXtyZXR1cm4gJGpzY29tcC5hc3luY0V4ZWN1dGVQcm9taXNlR2VuZXJhdG9yKG5ldyAkanNjb21wLmdlbmVyYXRvci5HZW5lcmF0b3JfKG5ldyAkanNjb21wLmdlbmVyYXRvci5FbmdpbmVfKGIpKSl9Owpjb25zdCBMZWFkPWZ1bmN0aW9uKGIpe2NvbnN0IGE9T2JqZWN0LmFzc2lnbih7fSxiKSxjPWEubGVhZElkfHxhLm5hbWU7Yj1hLmxlYWROb2RlO2NvbnN0IGU9ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0iK2MpO2xldCBoPSExLHE9ZS5xdWVyeVNlbGVjdG9yKCIubGVhZEVtYWlsIFtkYXRhLXN1YmplY3RdIikuaW5uZXJUZXh0LHI9ZS5xdWVyeVNlbGVjdG9yKCIubGVhZEVtYWlsIFtkYXRhLWJvZHldIikuaW5uZXJIVE1MLHo9YS50cmlnZ2VyLGs9e307Y29uc3QgQT0oKT0+e0FycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZS5lbGVtZW50cyxkPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkLmF0dHJpYnV0ZXMubmFtZSl7dmFyIGY9ZC5hdHRyaWJ1dGVzLm5hbWUudmFsdWV8fCExO3N3aXRjaCghMCl7Y2FzZSBbIm5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmNhc2UgWyJmaXJzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmNhc2UgWyJsYXN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6Y2FzZSAiZW1haWwiPT0KZi50b0xvd2VyQ2FzZSgpOmNhc2UgImRhdGEiPT1mOmJyZWFrO2Nhc2UgInBob25lIj09Zi50b0xvd2VyQ2FzZSgpOmNhc2UgInRlbCI9PWQudHlwZTpJTWFzayhkLHttYXNrOlt7bWFzazoiMDAwIDAwMC0wMDAwIn0se21hc2s6IjEgMDAwIDAwMC0wMDAwIn1dfSl9fX0pOyJ1bmRlZmluZWQiIT09dHlwZW9mIGNsaWVudFN0b3JhZ2UmJkFycmF5LnByb3RvdHlwZS5mb3JFYWNoLmNhbGwoZS5lbGVtZW50cyxkPT57aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBkLmF0dHJpYnV0ZXMubmFtZSl7dmFyIGY9ZC5hdHRyaWJ1dGVzLm5hbWUudmFsdWV8fCExO3N3aXRjaCghMCl7Y2FzZSBbIm5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOnZhciBnO2Y9bnVsbCE9KGc9Y2xpZW50U3RvcmFnZS5nZXQoImZpcnN0bmFtZSIpKT9nOiIiO3ZhciBsO2c9bnVsbCE9KGw9Y2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIikpP2w6IiI7bD1mKygiIiE9Zz8iICIrY2xpZW50U3RvcmFnZS5nZXQoImxhc3RuYW1lIik6CiIiKTtkLnZhbHVlPWw7YnJlYWs7Y2FzZSBbImZpcnN0bmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6bGV0IG07ZC52YWx1ZT1udWxsIT0obT1jbGllbnRTdG9yYWdlLmdldCgiZmlyc3RuYW1lIikpP206IiI7YnJlYWs7Y2FzZSBbImxhc3RuYW1lIl0uaW5jbHVkZXMoZi50b0xvd2VyQ2FzZSgpKTpsZXQgbjtkLnZhbHVlPW51bGwhPShuPWNsaWVudFN0b3JhZ2UuZ2V0KCJsYXN0bmFtZSIpKT9uOiIiO2JyZWFrO2Nhc2UgImVtYWlsIj09Zi50b0xvd2VyQ2FzZSgpOmxldCBwO2QudmFsdWU9bnVsbCE9KHA9Y2xpZW50U3RvcmFnZS5nZXQoImVtYWlsIikpP3A6IiI7YnJlYWs7Y2FzZSAicGhvbmUiPT1mLnRvTG93ZXJDYXNlKCk6bGV0IHU7ZC52YWx1ZT1udWxsIT0odT1jbGllbnRTdG9yYWdlLmdldCgicGhvbmUiKSk\/dToiIn19fSl9LEU9KCk9PntpZihoKXJldHVybiExO2g9ITA7QigpLnRoZW4oZD0+e2lmKCFkKXJldHVybiB2KCJwb3B1cC52YWxpZGF0aW9uRmFpbGVkIiksCmg9ITE7YS52YWxpZGF0ZWQ9ITA7QygpO0QoKX0pfSxDPSgpPT57QXJyYXkucHJvdG90eXBlLmZvckVhY2guY2FsbChlLmVsZW1lbnRzLGQ9PntpZigidW5kZWZpbmVkIiE9dHlwZW9mIGQuYXR0cmlidXRlcy5uYW1lKXt2YXIgZj1kLmF0dHJpYnV0ZXMubmFtZS52YWx1ZXx8ITE7aWYoZilzd2l0Y2goa1tmXT1kLnZhbHVlLCEwKXtjYXNlIFsibmFtZSJdLmluY2x1ZGVzKGYudG9Mb3dlckNhc2UoKSk6ZD1kLnZhbHVlLnNwbGl0KCIgIik7ay51c2VyRmlyc3ROYW1lKz1kLnNoaWZ0KCk7ay51c2VyTGFzdE5hbWUrPWQuam9pbigiICIpO2JyZWFrO2Nhc2UgWyJmaXJzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmsudXNlckZpcnN0TmFtZSs9ZC52YWx1ZTticmVhaztjYXNlIFsibGFzdG5hbWUiXS5pbmNsdWRlcyhmLnRvTG93ZXJDYXNlKCkpOmsudXNlckxhc3ROYW1lKz1kLnZhbHVlO2JyZWFrO2Nhc2UgImVtYWlsIj09Zi50b0xvd2VyQ2FzZSgpOmsudXNlckVtYWlsPQpkLnZhbHVlO2JyZWFrO2Nhc2UgInBob25lIj09Zi50b0xvd2VyQ2FzZSgpOmNhc2UgInRlbCI9PWQudHlwZTpJTWFzayhkLHttYXNrOlt7bWFzazoiMDAwIDAwMC0wMDAwIn0se21hc2s6IjEgMDAwIDAwMC0wMDAwIn1dfSk7ay51c2VyUGhvbmU9ZC52YWx1ZTticmVhaztjYXNlICJkYXRhIj09Zjpmb3IobGV0IGcgaW4gZC5kYXRhc2V0KWtbZy5yZXBsYWNlKC8tLi9nLGw9PmxbMV0udG9VcHBlckNhc2UoKSldPWQuZGF0YXNldFtnXX19fSl9LEQ9KCk9PntpZighMT09PWEub25CZWZvcmVTdWJtaXQoYSkpcmV0dXJuIGEuY2xvc2VPblN1Ym1pdCYmdCgpLCExO3ZhciBkPXgod2luZG93LmxvY2F0aW9uLmhyZWYpO2lmKENvb2tpZXMuZ2V0KGEubGVhZElkK2QpKXJldHVybiBoPSExLHkoITApLCExO0YoKTt2KCJwb3B1cC5zdWJtaXQiKTtsZXQgZjtpZigiRGlnaXRhbFJldGFpbCI9PShudWxsPT0oZj1rKT92b2lkIDA6Zi5pbnZva2VyKSl7ZD1jbGllbnRTdG9yYWdlLmdldCgiY2xpZW50U3RvcmFnZSIpfHwKe307bGV0IG4scDtrLmxlYWRJbnZva2VyU0lEPUcoKG51bGw9PWQ\/dm9pZCAwOm51bGw9PShuPWQuY29udGFjdCk\/dm9pZCAwOm4uZW1haWwpKyhudWxsPT1kP3ZvaWQgMDpudWxsPT0ocD1kLmNvbnRhY3QpP3ZvaWQgMDpwLnBob25lKSk7ZW1haWxIYW5kbGVyLmxlYWRJbnZva2VyPSJEaWdpdGFsUmV0YWlsIjtlbWFpbEhhbmRsZXIuZGlnaXRhbFJldGFpbFNJRD1rLmxlYWRJbnZva2VyU0lEfXZhciBnO3E9KG51bGw9PShnPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1zdWJqZWN0XSIpKT92b2lkIDA6Zy5pbm5lclRleHQpfHxxO2xldCBsO3I9KG51bGw9PShsPWUucXVlcnlTZWxlY3RvcigiLmxlYWRFbWFpbCBbZGF0YS1ib2R5XSIpKT92b2lkIDA6bC5pbm5lckhUTUwpfHxyO2VtYWlsSGFuZGxlci5ib2R5PUgoKTtlbWFpbEhhbmRsZXIuc3ViamVjdD1xO09iamVjdC5hc3NpZ24oZW1haWxIYW5kbGVyLGspOyJzdHJpbmciPT10eXBlb2YgZW1haWxIYW5kbGVyLnVzZXJOYW1lJiYKKGc9ZW1haWxIYW5kbGVyLnVzZXJOYW1lLnNwbGl0KCIgIiksZW1haWxIYW5kbGVyLnVzZXJGaXJzdE5hbWU9Zy5zaGlmdCgpLGVtYWlsSGFuZGxlci51c2VyTGFzdE5hbWU9Zy5qb2luKCIgIikpO2VtYWlsSGFuZGxlci5vbkJlZm9yZVNob3dDb25zZW50PWZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLm9uQmVmb3JlU2hvd0NvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkFmdGVyQ29uc2VudD1mdW5jdGlvbihuKXtlbWFpbEhhbmRsZXIub25CZWZvcmVTaG93Q29uc2VudD0hMTtlbWFpbEhhbmRsZXIub25BZnRlckNvbnNlbnQ9ITF9O2VtYWlsSGFuZGxlci5vbkR1cGxpY2F0ZVNlbmQ9ZnVuY3Rpb24oKXtlbWFpbEhhbmRsZXIucmVzZXRDYWxsYmFja3MoKX07ZW1haWxIYW5kbGVyLmNhbGxiYWNrPWZ1bmN0aW9uKG4pe3ZhciBwPSExO2Euc2hvd0VtYWlsQ29uZmlybWF0aW9uJiYocD1nZXRNYWlsU2VudEhhbmRsZXIoIl8iK2EubmFtZSkscC50aW1lb3V0Q2FsbGJhY2s9ZnVuY3Rpb24oKXtlLnJlc2V0KCl9KTsKaWYobil2KCJwb3B1cC5sZWFkX3NlbnQiKSwiZnVuY3Rpb24iPT10eXBlb2Ygb3JpZ2luYWxDYWxsYmFjayYmb3JpZ2luYWxDYWxsYmFjay5jYWxsKCksIm9uU3VibWl0Ij09YS5jb29raWVDcmVhdGUmJkNvb2tpZXMuc2V0KGEuY29va2llTmFtZSwiMSIsYS5jb29raWVEdXJhdGlvbiwiLyIpLGEuc3VibWl0RmxhZyYmQ29va2llcy5zZXQoInBvcHVwRm9ybUZpbGxlZCIsIjEiLDEsIi8iKSxhLmNsb3NlT25TdWJtaXQmJnQoIkNPTlNFTlQiKSxwP3Auc2hvd1N1Y2Nlc3MoKTowPCQoYGZvcm0jZm9ybSR7YS5uYW1lfV9jb25maXJtYCkubGVuZ3RoJiYkKGBmb3JtI2Zvcm0ke2EubmFtZX1fY29uZmlybWApLnRyaWdnZXIoInN1Ym1pdCIpO2Vsc2V7cHx8KHA9Z2V0TWFpbFNlbnRIYW5kbGVyKCkpO3RyeXtwLnNob3dGYWlsKCl9Y2F0Y2godSl7fX15KG4pO3coKTtzZXRUaW1lb3V0KGVtYWlsSGFuZGxlci5yZXNldENhbGxiYWNrcygpLDFFMyk7biYmKG49eCh3aW5kb3cubG9jYXRpb24uaHJlZiksCkNvb2tpZXMuc2V0KGEubGVhZElkK24sIjEiLDEsIi8iKSl9O2Euc3VibWl0dGVkPSEwO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBhLm9uQmVmb3JlU2VuZE1haWwmJjA9PWEub25CZWZvcmVTZW5kTWFpbC5jYWxsKCkpcmV0dXJuITE7bGV0IG09e307ImZ1bmN0aW9uIj09dHlwZW9mIGEub25BREYmJihtPWEub25BREYuY2FsbCgpKTsibWFrZSBtb2RlbCB5ZWFyIHN0b2NrTnVtYmVyIHRyaW0gdmluIHByaWNlIGNhcmlkIi5zcGxpdCgiICIpLmZvckVhY2gobj0+e2VtYWlsSGFuZGxlcltuXT1tW25dfHxlbWFpbEhhbmRsZXJbbl19KTthLnB1cmNoYXNlSW50ZW50UG9wdXB8fGVtYWlsSGFuZGxlci5zZW5kTWFpbChhLmJ5cGFzc0NvbnNlbnQpO3JldHVybiEwfSx3PSgpPT57az17dXNlckZpcnN0TmFtZToiIix1c2VyTGFzdE5hbWU6IiIsdXNlckVtYWlsOiIiLHVzZXJQaG9uZToiIn07aD0hMX0sQj1mdW5jdGlvbigpe3JldHVybiAkanNjb21wLmFzeW5jRXhlY3V0ZVByb21pc2VHZW5lcmF0b3JGdW5jdGlvbihmdW5jdGlvbiooKXtpZihhLnNraXBWYWxpZGF0aW9uKXJldHVybiEwOwpjb25zdCBkPW5ldyBQcmlzdGluZShlLHtjbGFzc1RvOiJmb3JtLWxhYmVsIixlcnJvckNsYXNzOiJpbnZhbGlkIn0sITEpO2xldCBmPWUucXVlcnlTZWxlY3RvcignW25hbWU9InBob25lbnVtIl0nKSxnPSEwLGw9ITA7aWYoZi5yZXF1aXJlZHx8Zi52YWx1ZSlnPW51bGwsZz15aWVsZCBJKGYudmFsdWUpO251bGw9PT1nPyhkLmFkZFZhbGlkYXRvcihmLGZ1bmN0aW9uKG0pe209bS5yZXBsYWNlKC9bXjAtOV0rL2dpLCIiKTsiMSI9PW1bMF0mJihtPW0uc3Vic3RyaW5nKDEpKTttPXBhcnNlSW50KG0uc3Vic3RyaW5nKDAsMykpO3JldHVybiBnPVs0MzgsNTE0LDI2Myw0NTAsNTc5LDgxOSwyNDksNzA1LDIyNiw1MTksMjg5LDM2NSw5MDUsNDE2LDQzNyw2NDcsMzQzLDYxMyw3MDksODczLDQxOCw1ODEsNTA2LDkwMl0uaW5jbHVkZXMobSl9LCJFbnRlciBhIHZhbGlkIHBob25lIG51bWJlciIsNSwhMSksbD1kLnZhbGlkYXRlKCkpOihsPWQudmFsaWRhdGUoKSYmZyxmLnBhcmVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZSgiaW52YWxpZCIsCiFnKSk7Zi5yZXF1aXJlZCYmIWcmJiJ1bmRlZmluZWQiIT10eXBlb2YgZW1haWxIYW5kbGVyJiYoZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKyssZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PSEwKTtyZXR1cm4gbH0pfSxJPWQ9PiRqc2NvbXAuYXN5bmNFeGVjdXRlUHJvbWlzZUdlbmVyYXRvckZ1bmN0aW9uKGZ1bmN0aW9uKigpe2xldCBmPW51bGw7ZD1kLnJlcGxhY2UoL1teMC05XSsvZ2ksIiIpO3lpZWxkIGF4aW9zLmdldCgiL3Byb3h5X3JkMmMvc2l0ZXMvc3ZjL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwIix7dGltZW91dDoyRTMsZGF0YVR5cGU6Impzb24iLHBhcmFtczp7cGhvbmU6ZH0scmVzcG9uc2VUeXBlOiJqc29uIn0pLnRoZW4oZnVuY3Rpb24oZyl7InVuZGVmaW5lZCIhPT10eXBlb2YgZy5kYXRhLmlzT2smJihmPWcuZGF0YS5waG9uZU51bWJlcklzVmFsaWQpfSkuY2F0Y2goZnVuY3Rpb24oZyl7fSk7cmV0dXJuIGZ9KSxGPSgpPT57Y29uc3QgZD0KZG9jdW1lbnQuZm9ybXMuZW1haWxtc2dmcm18fCExO2lmKCFkKXJldHVybiExO2QucXVlcnlTZWxlY3RvcignW25hbWU9ImxhYmVsIicpLnZhbHVlPWAke2EudHlwZX0gKCR7ay5jb25kaXRpb259KWA7ZC5xdWVyeVNlbGVjdG9yKCdbbmFtZT0ic2VjdGlvbiInKS52YWx1ZT1rLmNvbmRpdGlvbn0seD1kPT5bLi4uZF0ucmVkdWNlKChmLGcpPT5NYXRoLmltdWwoMzEsZikrZy5jaGFyQ29kZUF0KDApfDAsMCksSD1mdW5jdGlvbigpe2xldCBkPXIsZj17bmFtZTpbIk1OQU1FIl0scGhvbmVudW06WyJNUEhPTkUiLCJQSE9ORSJdLGVtYWlsOlsiTU1BSUwiXX07T2JqZWN0LmtleXMoaykuZm9yRWFjaChnPT57dmFyIGw9bmV3IFJlZ0V4cCgie1xcJCIrZy50b1VwcGVyQ2FzZSgpKyJ9IiwiZyIpO2Q9ZC5yZXBsYWNlKGwsa1tnXSk7ZltnXSYmKGw9bmV3IFJlZ0V4cCgie1xcJCgiK2ZbZ10uam9pbigifCIpKyIpfSIsImciKSxkPWQucmVwbGFjZShsLGtbZ10pKX0pO3JldHVybiBkfSx2PWZ1bmN0aW9uKGQpe3ZhciBmPQphLnR5cGU7aWYoIWQpcmV0dXJuITE7aWYoInBvcHVwLmxlYWRfc2VudCI9PWQpe3ZhciBnPSJjbGljayIucmVwbGFjZSgvKF5bYS16XXsxfSkvZyxmdW5jdGlvbihtKXtyZXR1cm4gbS50b1VwcGVyQ2FzZSgpfSksbD1kMmNtZWRpYS5wYWdlRGVwYXJ0bWVudCgpO2dhVHJhY2soImMuX3RyYWNrRXZlbnQiLCJQb3B1cC1sZWFkcyIsZyxsLDEpfSJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcmJiJ1bmRlZmluZWQiIT10eXBlb2YgYWN0aXZlVXNlclByb2ZpbGVNbmcubG9nUGFnZVZpZXdFdmVudD8oInVuZGVmaW5lZCIhPT10eXBlb2YgZGVidWcmJmRlYnVnKCJMb2cgRXZlbnQiLGQsZixzZWxmKSxhY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGQsZikpOiJ1bmRlZmluZWQiIT09dHlwZW9mIGRlYnVnJiZkZWJ1ZygiIVVOTE9HR0VEIEVWRU5UISIsZCxmKX0sdD0oKT0+e2Eub25CZWZvcmVDbG9zZShhKTt3KCk7TW9kYWxzW2NdJiZNb2RhbHNbY10uY2xvc2UoKX0sCnk9ZD0+e2Eub25BZnRlclN1Ym1pdChhLGQpO2EuY2xvc2VPblN1Ym1pdCYmZCYmdCgpO2QmJmUucmVzZXQoKX0sRz1kPT57bGV0IGY9MDtpZigwPT1kLmxlbmd0aClyZXR1cm4gZjtmb3IobGV0IGc9MCxsPWQubGVuZ3RoO2c8bDtnKyspe2xldCBtPWQuY2hhckNvZGVBdChnKTtmPShmPDw1KS1mK207Znw9MH1yZXR1cm4gTWF0aC5hYnMoZil9OygoKT0+eyQoZSkudHJpZ2dlcigicG9wdXBpemVyLm9uT3BlbiIsJChlKSk7dygpO0EoKTtlLm9uc3VibWl0PWQ9PntkLnByZXZlbnREZWZhdWx0KCk7RSgpfTthLm9uQmVmb3JlT3BlbihhKX0pKCk7cmV0dXJue2xlYWRJZDpjLGxlYWROb2RlOmIsdHJpZ2dlcjp6LGRpc3BsYXk6KCk9PnthLmRpc3BsYXk\/YS5kaXNwbGF5KGEpOihhLmNvbnRlbnRTcmM9YGxlYWQke2N9YCxNb2RhbHNbY118fChNb2RhbHNbY109bmV3IE1vZGFsKGMsYSkpLE1vZGFsc1tjXS5kaXNwbGF5KCkpfSxjbG9zZTp0fX0sTGVhZEhhbmRsZXI9ZnVuY3Rpb24oKXtjb25zdCBiPQp7b25CZWZvcmVPcGVuOigpPT57fSxvbkJlZm9yZVZhbGlkYXRpb246KCk9Pnt9LG9uQmVmb3JlU3VibWl0OigpPT57fSxvbkFmdGVyU3VibWl0OigpPT57fSxvbkJlZm9yZUNhbmNlbDooKT0+e30sb25CZWZvcmVDbG9zZTooKT0+e30sb25DbG9zZTooKT0+e30sZm9ybTp7ZW1haWxpZDpudWxsLG9mZmVydHlwZTpudWxsLG5hbWU6bnVsbCxzZW5kVG86bnVsbCxzZW5kVG9BREY6bnVsbCxPS0J1dHRvbkNsYXNzOiJzdWJtaXRCdG4iLENhbmNlbEJ1dHRvbkNsYXNzOiJjYW5jZWxCdG4iLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMSxmcm9tQUE6ITF9LGdldElkU3VmZml4OmE9Pk1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSpEYXRlLm5vdygpKSxtb2RlOiJzdGF0aWMiLHRyaWdnZXI6ImF1dG8iLGRlbGF5OiExLGRpc3BsYXk6ITEsc3VibWl0dGVkOiExLGNsb3NlT25TdWJtaXQ6ITAsc3VibWl0RmxhZzohMSxieXBhc3NDb25zZW50OiExLHNob3dFbWFpbENvbmZpcm1hdGlvbjohMCxwdXJjaGFzZUludGVudFBvcHVwOiExfTsKaW5pdD0oKT0+eyJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdy5BYnN0cmFjdFVzZWRTcnBPYmplY3QmJihuZXcgQWJzdHJhY3RVc2VkU3JwT2JqZWN0KHtuYW1lOiJWaWV3RGlzY292ZXJCdG5IYW5kbGVyIn0pKS5hZGRVc2VkU3JwRXZlbnRPYnNlcnZlcigiY29udGVudCIsYWRkTGVhZEV2ZW50cykuaW5pdFVzZWRTcnBPYnNlcnZlcigpO2FkZExlYWRFdmVudHMoKX07YWRkTGVhZEV2ZW50cz0oKT0+e2RvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIltkYXRhLWxlYWQtdHJpZ2dlcl0iKS5mb3JFYWNoKGE9Pnt0aGlzLmluaXRMZWFkVHJpZ2dlcihhKX0pfTt0aGlzLmluaXRMZWFkVHJpZ2dlcj1hPT57YS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsYz0+e2Muc3RvcFByb3BhZ2F0aW9uKCk7Yz1hLmRhdGFzZXQubGVhZFRyaWdnZXI7bGV0IGU9YS5kYXRhc2V0LmxlYWRpZHx8ITE7TGVhZENvbmZpZ3NbY10udHJpZ2dlcj1hO2M9dGhpcy5nZXRMZWFkKGMsZSk7Yy5kaXNwbGF5KCk7CmEuZGF0YXNldC5sZWFkaWQ9Yy5sZWFkSWR9KX07dGhpcy5nZXRMZWFkPShhLGMpPT57aWYoIShjPUxlYWRzW2N8fGFdKSl7e2M9YTtsZXQgZT1PYmplY3QuYXNzaWduKHt9LGIpO09iamVjdC5hc3NpZ24oZSxMZWFkQ29uZmlnc1thXSk7Y29uc3QgaD1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChgbGVhZCR7YX1gKTtoPyhhPWgsInN0YXRpYyIhPWUubW9kZSYmKGM9YCR7ZS5uYW1lfV8ke2UuZ2V0SWRTdWZmaXgoZSl9YCxhPWguY2xvbmVOb2RlKCEwKSxhLnNldEF0dHJpYnV0ZSgiaWQiLCJsZWFkIitjKSxhLnF1ZXJ5U2VsZWN0b3IoImZvcm0iKS5zZXRBdHRyaWJ1dGUoImlkIiwiZm9ybSIrYyksZG9jdW1lbnQuYm9keS5hcHBlbmQoYSkpLGUubGVhZElkPWMsZS5sZWFkTm9kZT1hLExlYWRzW2NdPW5ldyBMZWFkKGUpLGM9TGVhZHNbY10pOmM9ITF9fXJldHVybiBjfTtyZXR1cm57aW5pdCxpbml0TGVhZFRyaWdnZXIsZ2V0TGVhZH19O3ZhciBMZWFkcz1MZWFkc3x8e307ZG9jUmVhZHlBcnIucHVzaChMZWFkSGFuZGxlcigpLmluaXQpOwovKiogL20vanMvdmFuaWxsYWpzL2F4aW9zLm1pbi5qcyAqKi8KIWZ1bmN0aW9uKGUsdCl7Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzJiYib2JqZWN0Ij09dHlwZW9mIG1vZHVsZT9tb2R1bGUuZXhwb3J0cz10KCk6ImZ1bmN0aW9uIj09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoW10sdCk6Im9iamVjdCI9PXR5cGVvZiBleHBvcnRzP2V4cG9ydHMuYXhpb3M9dCgpOmUuYXhpb3M9dCgpfSh0aGlzLChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD17fTtmdW5jdGlvbiBuKHIpe2lmKHRbcl0pcmV0dXJuIHRbcl0uZXhwb3J0czt2YXIgbz10W3JdPXtpOnIsbDohMSxleHBvcnRzOnt9fTtyZXR1cm4gZVtyXS5jYWxsKG8uZXhwb3J0cyxvLG8uZXhwb3J0cyxuKSxvLmw9ITAsby5leHBvcnRzfXJldHVybiBuLm09ZSxuLmM9dCxuLmQ9ZnVuY3Rpb24oZSx0LHIpe24ubyhlLHQpfHxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSx0LHtlbnVtZXJhYmxlOiEwLGdldDpyfSl9LG4ucj1mdW5jdGlvbihlKXsidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmU3ltYm9sLnRvU3RyaW5nVGFnJiZPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxTeW1ib2wudG9TdHJpbmdUYWcse3ZhbHVlOiJNb2R1bGUifSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSxuLnQ9ZnVuY3Rpb24oZSx0KXtpZigxJnQmJihlPW4oZSkpLDgmdClyZXR1cm4gZTtpZig0JnQmJiJvYmplY3QiPT10eXBlb2YgZSYmZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciByPU9iamVjdC5jcmVhdGUobnVsbCk7aWYobi5yKHIpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJkZWZhdWx0Iix7ZW51bWVyYWJsZTohMCx2YWx1ZTplfSksMiZ0JiYic3RyaW5nIiE9dHlwZW9mIGUpZm9yKHZhciBvIGluIGUpbi5kKHIsbyxmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0uYmluZChudWxsLG8pKTtyZXR1cm4gcn0sbi5uPWZ1bmN0aW9uKGUpe3ZhciB0PWUmJmUuX19lc01vZHVsZT9mdW5jdGlvbigpe3JldHVybiBlLmRlZmF1bHR9OmZ1bmN0aW9uKCl7cmV0dXJuIGV9O3JldHVybiBuLmQodCwiYSIsdCksdH0sbi5vPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHQpfSxuLnA9IiIsbihuLnM9MTEpfShbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDMpLG89T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZztmdW5jdGlvbiBpKGUpe3JldHVybiJbb2JqZWN0IEFycmF5XSI9PT1vLmNhbGwoZSl9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gdm9pZCAwPT09ZX1mdW5jdGlvbiBhKGUpe3JldHVybiBudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlfWZ1bmN0aW9uIHUoZSl7aWYoIltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpcmV0dXJuITE7dmFyIHQ9T2JqZWN0LmdldFByb3RvdHlwZU9mKGUpO3JldHVybiBudWxsPT09dHx8dD09PU9iamVjdC5wcm90b3R5cGV9ZnVuY3Rpb24gYyhlKXtyZXR1cm4iW29iamVjdCBGdW5jdGlvbl0iPT09by5jYWxsKGUpfWZ1bmN0aW9uIGYoZSx0KXtpZihudWxsIT1lKWlmKCJvYmplY3QiIT10eXBlb2YgZSYmKGU9W2VdKSxpKGUpKWZvcih2YXIgbj0wLHI9ZS5sZW5ndGg7bjxyO24rKyl0LmNhbGwobnVsbCxlW25dLG4sZSk7ZWxzZSBmb3IodmFyIG8gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxvKSYmdC5jYWxsKG51bGwsZVtvXSxvLGUpfWUuZXhwb3J0cz17aXNBcnJheTppLGlzQXJyYXlCdWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIltvYmplY3QgQXJyYXlCdWZmZXJdIj09PW8uY2FsbChlKX0saXNCdWZmZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGwhPT1lJiYhcyhlKSYmbnVsbCE9PWUuY29uc3RydWN0b3ImJiFzKGUuY29uc3RydWN0b3IpJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlciYmZS5jb25zdHJ1Y3Rvci5pc0J1ZmZlcihlKX0saXNGb3JtRGF0YTpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEZvcm1EYXRhJiZlIGluc3RhbmNlb2YgRm9ybURhdGF9LGlzQXJyYXlCdWZmZXJWaWV3OmZ1bmN0aW9uKGUpe3JldHVybiJ1bmRlZmluZWQiIT10eXBlb2YgQXJyYXlCdWZmZXImJkFycmF5QnVmZmVyLmlzVmlldz9BcnJheUJ1ZmZlci5pc1ZpZXcoZSk6ZSYmZS5idWZmZXImJmUuYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ9LGlzU3RyaW5nOmZ1bmN0aW9uKGUpe3JldHVybiJzdHJpbmciPT10eXBlb2YgZX0saXNOdW1iZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlfSxpc09iamVjdDphLGlzUGxhaW5PYmplY3Q6dSxpc1VuZGVmaW5lZDpzLGlzRGF0ZTpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBEYXRlXSI9PT1vLmNhbGwoZSl9LGlzRmlsZTpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBGaWxlXSI9PT1vLmNhbGwoZSl9LGlzQmxvYjpmdW5jdGlvbihlKXtyZXR1cm4iW29iamVjdCBCbG9iXSI9PT1vLmNhbGwoZSl9LGlzRnVuY3Rpb246Yyxpc1N0cmVhbTpmdW5jdGlvbihlKXtyZXR1cm4gYShlKSYmYyhlLnBpcGUpfSxpc1VSTFNlYXJjaFBhcmFtczpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFVSTFNlYXJjaFBhcmFtcyYmZSBpbnN0YW5jZW9mIFVSTFNlYXJjaFBhcmFtc30saXNTdGFuZGFyZEJyb3dzZXJFbnY6ZnVuY3Rpb24oKXtyZXR1cm4oInVuZGVmaW5lZCI9PXR5cGVvZiBuYXZpZ2F0b3J8fCJSZWFjdE5hdGl2ZSIhPT1uYXZpZ2F0b3IucHJvZHVjdCYmIk5hdGl2ZVNjcmlwdCIhPT1uYXZpZ2F0b3IucHJvZHVjdCYmIk5TIiE9PW5hdmlnYXRvci5wcm9kdWN0KSYmKCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYidW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50KX0sZm9yRWFjaDpmLG1lcmdlOmZ1bmN0aW9uIGUoKXt2YXIgdD17fTtmdW5jdGlvbiBuKG4scil7dSh0W3JdKSYmdShuKT90W3JdPWUodFtyXSxuKTp1KG4pP3Rbcl09ZSh7fSxuKTppKG4pP3Rbcl09bi5zbGljZSgpOnRbcl09bn1mb3IodmFyIHI9MCxvPWFyZ3VtZW50cy5sZW5ndGg7cjxvO3IrKylmKGFyZ3VtZW50c1tyXSxuKTtyZXR1cm4gdH0sZXh0ZW5kOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gZih0LChmdW5jdGlvbih0LG8pe2Vbb109biYmImZ1bmN0aW9uIj09dHlwZW9mIHQ\/cih0LG4pOnR9KSksZX0sdHJpbTpmdW5jdGlvbihlKXtyZXR1cm4gZS50cmltP2UudHJpbSgpOmUucmVwbGFjZSgvXlxzK3xccyskL2csIiIpfSxzdHJpcEJPTTpmdW5jdGlvbihlKXtyZXR1cm4gNjUyNzk9PT1lLmNoYXJDb2RlQXQoMCkmJihlPWUuc2xpY2UoMSkpLGV9fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigxNyksaT1uKDUpLHM9eyJDb250ZW50LVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifTtmdW5jdGlvbiBhKGUsdCl7IXIuaXNVbmRlZmluZWQoZSkmJnIuaXNVbmRlZmluZWQoZVsiQ29udGVudC1UeXBlIl0pJiYoZVsiQ29udGVudC1UeXBlIl09dCl9dmFyIHUsYz17dHJhbnNpdGlvbmFsOntzaWxlbnRKU09OUGFyc2luZzohMCxmb3JjZWRKU09OUGFyc2luZzohMCxjbGFyaWZ5VGltZW91dEVycm9yOiExfSxhZGFwdGVyOigoInVuZGVmaW5lZCIhPXR5cGVvZiBYTUxIdHRwUmVxdWVzdHx8InVuZGVmaW5lZCIhPXR5cGVvZiBwcm9jZXNzJiYiW29iamVjdCBwcm9jZXNzXSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocHJvY2VzcykpJiYodT1uKDYpKSx1KSx0cmFuc2Zvcm1SZXF1ZXN0OltmdW5jdGlvbihlLHQpe3JldHVybiBvKHQsIkFjY2VwdCIpLG8odCwiQ29udGVudC1UeXBlIiksci5pc0Zvcm1EYXRhKGUpfHxyLmlzQXJyYXlCdWZmZXIoZSl8fHIuaXNCdWZmZXIoZSl8fHIuaXNTdHJlYW0oZSl8fHIuaXNGaWxlKGUpfHxyLmlzQmxvYihlKT9lOnIuaXNBcnJheUJ1ZmZlclZpZXcoZSk\/ZS5idWZmZXI6ci5pc1VSTFNlYXJjaFBhcmFtcyhlKT8oYSh0LCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7Y2hhcnNldD11dGYtOCIpLGUudG9TdHJpbmcoKSk6ci5pc09iamVjdChlKXx8dCYmImFwcGxpY2F0aW9uL2pzb24iPT09dFsiQ29udGVudC1UeXBlIl0\/KGEodCwiYXBwbGljYXRpb24vanNvbiIpLGZ1bmN0aW9uKGUsdCxuKXtpZihyLmlzU3RyaW5nKGUpKXRyeXtyZXR1cm4odHx8SlNPTi5wYXJzZSkoZSksci50cmltKGUpfWNhdGNoKGUpe2lmKCJTeW50YXhFcnJvciIhPT1lLm5hbWUpdGhyb3cgZX1yZXR1cm4obnx8SlNPTi5zdHJpbmdpZnkpKGUpfShlKSk6ZX1dLHRyYW5zZm9ybVJlc3BvbnNlOltmdW5jdGlvbihlKXt2YXIgdD10aGlzLnRyYW5zaXRpb25hbHx8Yy50cmFuc2l0aW9uYWwsbj10JiZ0LnNpbGVudEpTT05QYXJzaW5nLG89dCYmdC5mb3JjZWRKU09OUGFyc2luZyxzPSFuJiYianNvbiI9PT10aGlzLnJlc3BvbnNlVHlwZTtpZihzfHxvJiZyLmlzU3RyaW5nKGUpJiZlLmxlbmd0aCl0cnl7cmV0dXJuIEpTT04ucGFyc2UoZSl9Y2F0Y2goZSl7aWYocyl7aWYoIlN5bnRheEVycm9yIj09PWUubmFtZSl0aHJvdyBpKGUsdGhpcywiRV9KU09OX1BBUlNFIik7dGhyb3cgZX19cmV0dXJuIGV9XSx0aW1lb3V0OjAseHNyZkNvb2tpZU5hbWU6IlhTUkYtVE9LRU4iLHhzcmZIZWFkZXJOYW1lOiJYLVhTUkYtVE9LRU4iLG1heENvbnRlbnRMZW5ndGg6LTEsbWF4Qm9keUxlbmd0aDotMSx2YWxpZGF0ZVN0YXR1czpmdW5jdGlvbihlKXtyZXR1cm4gZT49MjAwJiZlPDMwMH0saGVhZGVyczp7Y29tbW9uOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sIHRleHQvcGxhaW4sICovKiJ9fX07ci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCJdLChmdW5jdGlvbihlKXtjLmhlYWRlcnNbZV09e319KSksci5mb3JFYWNoKFsicG9zdCIsInB1dCIsInBhdGNoIl0sKGZ1bmN0aW9uKGUpe2MuaGVhZGVyc1tlXT1yLm1lcmdlKHMpfSkpLGUuZXhwb3J0cz1jfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIoZSl7dGhpcy5tZXNzYWdlPWV9ci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4iQ2FuY2VsIisodGhpcy5tZXNzYWdlPyI6ICIrdGhpcy5tZXNzYWdlOiIiKX0sci5wcm90b3R5cGUuX19DQU5DRUxfXz0hMCxlLmV4cG9ydHM9cn0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIG49bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHI9MDtyPG4ubGVuZ3RoO3IrKyluW3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gZS5hcHBseSh0LG4pfX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtmdW5jdGlvbiBvKGUpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJTNBL2dpLCI6IikucmVwbGFjZSgvJTI0L2csIiQiKS5yZXBsYWNlKC8lMkMvZ2ksIiwiKS5yZXBsYWNlKC8lMjAvZywiKyIpLnJlcGxhY2UoLyU1Qi9naSwiWyIpLnJlcGxhY2UoLyU1RC9naSwiXSIpfWUuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7aWYoIXQpcmV0dXJuIGU7dmFyIGk7aWYobilpPW4odCk7ZWxzZSBpZihyLmlzVVJMU2VhcmNoUGFyYW1zKHQpKWk9dC50b1N0cmluZygpO2Vsc2V7dmFyIHM9W107ci5mb3JFYWNoKHQsKGZ1bmN0aW9uKGUsdCl7bnVsbCE9ZSYmKHIuaXNBcnJheShlKT90Kz0iW10iOmU9W2VdLHIuZm9yRWFjaChlLChmdW5jdGlvbihlKXtyLmlzRGF0ZShlKT9lPWUudG9JU09TdHJpbmcoKTpyLmlzT2JqZWN0KGUpJiYoZT1KU09OLnN0cmluZ2lmeShlKSkscy5wdXNoKG8odCkrIj0iK28oZSkpfSkpKX0pKSxpPXMuam9pbigiJiIpfWlmKGkpe3ZhciBhPWUuaW5kZXhPZigiIyIpOy0xIT09YSYmKGU9ZS5zbGljZSgwLGEpKSxlKz0oLTE9PT1lLmluZGV4T2YoIj8iKT8iPyI6IiYiKStpfXJldHVybiBlfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0LG4scixvKXtyZXR1cm4gZS5jb25maWc9dCxuJiYoZS5jb2RlPW4pLGUucmVxdWVzdD1yLGUucmVzcG9uc2U9byxlLmlzQXhpb3NFcnJvcj0hMCxlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnttZXNzYWdlOnRoaXMubWVzc2FnZSxuYW1lOnRoaXMubmFtZSxkZXNjcmlwdGlvbjp0aGlzLmRlc2NyaXB0aW9uLG51bWJlcjp0aGlzLm51bWJlcixmaWxlTmFtZTp0aGlzLmZpbGVOYW1lLGxpbmVOdW1iZXI6dGhpcy5saW5lTnVtYmVyLGNvbHVtbk51bWJlcjp0aGlzLmNvbHVtbk51bWJlcixzdGFjazp0aGlzLnN0YWNrLGNvbmZpZzp0aGlzLmNvbmZpZyxjb2RlOnRoaXMuY29kZSxzdGF0dXM6dGhpcy5yZXNwb25zZSYmdGhpcy5yZXNwb25zZS5zdGF0dXM\/dGhpcy5yZXNwb25zZS5zdGF0dXM6bnVsbH19LGV9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDE4KSxpPW4oMTkpLHM9big0KSxhPW4oMjApLHU9bigyMyksYz1uKDI0KSxmPW4oNyksbD1uKDEpLHA9bigyKTtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LG4pe3ZhciBkLGg9ZS5kYXRhLG09ZS5oZWFkZXJzLHY9ZS5yZXNwb25zZVR5cGU7ZnVuY3Rpb24geSgpe2UuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udW5zdWJzY3JpYmUoZCksZS5zaWduYWwmJmUuc2lnbmFsLnJlbW92ZUV2ZW50TGlzdGVuZXIoImFib3J0IixkKX1yLmlzRm9ybURhdGEoaCkmJmRlbGV0ZSBtWyJDb250ZW50LVR5cGUiXTt2YXIgZz1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYoZS5hdXRoKXt2YXIgYj1lLmF1dGgudXNlcm5hbWV8fCIiLHg9ZS5hdXRoLnBhc3N3b3JkP3VuZXNjYXBlKGVuY29kZVVSSUNvbXBvbmVudChlLmF1dGgucGFzc3dvcmQpKToiIjttLkF1dGhvcml6YXRpb249IkJhc2ljICIrYnRvYShiKyI6Iit4KX12YXIgdz1hKGUuYmFzZVVSTCxlLnVybCk7ZnVuY3Rpb24gRSgpe2lmKGcpe3ZhciByPSJnZXRBbGxSZXNwb25zZUhlYWRlcnMiaW4gZz91KGcuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkpOm51bGwsaT17ZGF0YTp2JiYidGV4dCIhPT12JiYianNvbiIhPT12P2cucmVzcG9uc2U6Zy5yZXNwb25zZVRleHQsc3RhdHVzOmcuc3RhdHVzLHN0YXR1c1RleHQ6Zy5zdGF0dXNUZXh0LGhlYWRlcnM6cixjb25maWc6ZSxyZXF1ZXN0Omd9O28oKGZ1bmN0aW9uKGUpe3QoZSkseSgpfSksKGZ1bmN0aW9uKGUpe24oZSkseSgpfSksaSksZz1udWxsfX1pZihnLm9wZW4oZS5tZXRob2QudG9VcHBlckNhc2UoKSxzKHcsZS5wYXJhbXMsZS5wYXJhbXNTZXJpYWxpemVyKSwhMCksZy50aW1lb3V0PWUudGltZW91dCwib25sb2FkZW5kImluIGc\/Zy5vbmxvYWRlbmQ9RTpnLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2cmJjQ9PT1nLnJlYWR5U3RhdGUmJigwIT09Zy5zdGF0dXN8fGcucmVzcG9uc2VVUkwmJjA9PT1nLnJlc3BvbnNlVVJMLmluZGV4T2YoImZpbGU6IikpJiZzZXRUaW1lb3V0KEUpfSxnLm9uYWJvcnQ9ZnVuY3Rpb24oKXtnJiYobihmKCJSZXF1ZXN0IGFib3J0ZWQiLGUsIkVDT05OQUJPUlRFRCIsZykpLGc9bnVsbCl9LGcub25lcnJvcj1mdW5jdGlvbigpe24oZigiTmV0d29yayBFcnJvciIsZSxudWxsLGcpKSxnPW51bGx9LGcub250aW1lb3V0PWZ1bmN0aW9uKCl7dmFyIHQ9ZS50aW1lb3V0PyJ0aW1lb3V0IG9mICIrZS50aW1lb3V0KyJtcyBleGNlZWRlZCI6InRpbWVvdXQgZXhjZWVkZWQiLHI9ZS50cmFuc2l0aW9uYWx8fGwudHJhbnNpdGlvbmFsO2UudGltZW91dEVycm9yTWVzc2FnZSYmKHQ9ZS50aW1lb3V0RXJyb3JNZXNzYWdlKSxuKGYodCxlLHIuY2xhcmlmeVRpbWVvdXRFcnJvcj8iRVRJTUVET1VUIjoiRUNPTk5BQk9SVEVEIixnKSksZz1udWxsfSxyLmlzU3RhbmRhcmRCcm93c2VyRW52KCkpe3ZhciBTPShlLndpdGhDcmVkZW50aWFsc3x8Yyh3KSkmJmUueHNyZkNvb2tpZU5hbWU\/aS5yZWFkKGUueHNyZkNvb2tpZU5hbWUpOnZvaWQgMDtTJiYobVtlLnhzcmZIZWFkZXJOYW1lXT1TKX0ic2V0UmVxdWVzdEhlYWRlciJpbiBnJiZyLmZvckVhY2gobSwoZnVuY3Rpb24oZSx0KXt2b2lkIDA9PT1oJiYiY29udGVudC10eXBlIj09PXQudG9Mb3dlckNhc2UoKT9kZWxldGUgbVt0XTpnLnNldFJlcXVlc3RIZWFkZXIodCxlKX0pKSxyLmlzVW5kZWZpbmVkKGUud2l0aENyZWRlbnRpYWxzKXx8KGcud2l0aENyZWRlbnRpYWxzPSEhZS53aXRoQ3JlZGVudGlhbHMpLHYmJiJqc29uIiE9PXYmJihnLnJlc3BvbnNlVHlwZT1lLnJlc3BvbnNlVHlwZSksImZ1bmN0aW9uIj09dHlwZW9mIGUub25Eb3dubG9hZFByb2dyZXNzJiZnLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixlLm9uRG93bmxvYWRQcm9ncmVzcyksImZ1bmN0aW9uIj09dHlwZW9mIGUub25VcGxvYWRQcm9ncmVzcyYmZy51cGxvYWQmJmcudXBsb2FkLmFkZEV2ZW50TGlzdGVuZXIoInByb2dyZXNzIixlLm9uVXBsb2FkUHJvZ3Jlc3MpLChlLmNhbmNlbFRva2VufHxlLnNpZ25hbCkmJihkPWZ1bmN0aW9uKGUpe2cmJihuKCFlfHxlJiZlLnR5cGU\/bmV3IHAoImNhbmNlbGVkIik6ZSksZy5hYm9ydCgpLGc9bnVsbCl9LGUuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4uc3Vic2NyaWJlKGQpLGUuc2lnbmFsJiYoZS5zaWduYWwuYWJvcnRlZD9kKCk6ZS5zaWduYWwuYWRkRXZlbnRMaXN0ZW5lcigiYWJvcnQiLGQpKSksaHx8KGg9bnVsbCksZy5zZW5kKGgpfSkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDUpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbixvLGkpe3ZhciBzPW5ldyBFcnJvcihlKTtyZXR1cm4gcihzLHQsbixvLGkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuISghZXx8IWUuX19DQU5DRUxfXyl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7dD10fHx7fTt2YXIgbj17fTtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIHIuaXNQbGFpbk9iamVjdChlKSYmci5pc1BsYWluT2JqZWN0KHQpP3IubWVyZ2UoZSx0KTpyLmlzUGxhaW5PYmplY3QodCk\/ci5tZXJnZSh7fSx0KTpyLmlzQXJyYXkodCk\/dC5zbGljZSgpOnR9ZnVuY3Rpb24gaShuKXtyZXR1cm4gci5pc1VuZGVmaW5lZCh0W25dKT9yLmlzVW5kZWZpbmVkKGVbbl0pP3ZvaWQgMDpvKHZvaWQgMCxlW25dKTpvKGVbbl0sdFtuXSl9ZnVuY3Rpb24gcyhlKXtpZighci5pc1VuZGVmaW5lZCh0W2VdKSlyZXR1cm4gbyh2b2lkIDAsdFtlXSl9ZnVuY3Rpb24gYShuKXtyZXR1cm4gci5pc1VuZGVmaW5lZCh0W25dKT9yLmlzVW5kZWZpbmVkKGVbbl0pP3ZvaWQgMDpvKHZvaWQgMCxlW25dKTpvKHZvaWQgMCx0W25dKX1mdW5jdGlvbiB1KG4pe3JldHVybiBuIGluIHQ\/byhlW25dLHRbbl0pOm4gaW4gZT9vKHZvaWQgMCxlW25dKTp2b2lkIDB9dmFyIGM9e3VybDpzLG1ldGhvZDpzLGRhdGE6cyxiYXNlVVJMOmEsdHJhbnNmb3JtUmVxdWVzdDphLHRyYW5zZm9ybVJlc3BvbnNlOmEscGFyYW1zU2VyaWFsaXplcjphLHRpbWVvdXQ6YSx0aW1lb3V0TWVzc2FnZTphLHdpdGhDcmVkZW50aWFsczphLGFkYXB0ZXI6YSxyZXNwb25zZVR5cGU6YSx4c3JmQ29va2llTmFtZTphLHhzcmZIZWFkZXJOYW1lOmEsb25VcGxvYWRQcm9ncmVzczphLG9uRG93bmxvYWRQcm9ncmVzczphLGRlY29tcHJlc3M6YSxtYXhDb250ZW50TGVuZ3RoOmEsbWF4Qm9keUxlbmd0aDphLHRyYW5zcG9ydDphLGh0dHBBZ2VudDphLGh0dHBzQWdlbnQ6YSxjYW5jZWxUb2tlbjphLHNvY2tldFBhdGg6YSxyZXNwb25zZUVuY29kaW5nOmEsdmFsaWRhdGVTdGF0dXM6dX07cmV0dXJuIHIuZm9yRWFjaChPYmplY3Qua2V5cyhlKS5jb25jYXQoT2JqZWN0LmtleXModCkpLChmdW5jdGlvbihlKXt2YXIgdD1jW2VdfHxpLG89dChlKTtyLmlzVW5kZWZpbmVkKG8pJiZ0IT09dXx8KG5bZV09byl9KSksbn19LGZ1bmN0aW9uKGUsdCl7ZS5leHBvcnRzPXt2ZXJzaW9uOiIwLjI0LjAifX0sZnVuY3Rpb24oZSx0LG4pe2UuZXhwb3J0cz1uKDEyKX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApLG89bigzKSxpPW4oMTMpLHM9big5KTt2YXIgYT1mdW5jdGlvbiBlKHQpe3ZhciBuPW5ldyBpKHQpLGE9byhpLnByb3RvdHlwZS5yZXF1ZXN0LG4pO3JldHVybiByLmV4dGVuZChhLGkucHJvdG90eXBlLG4pLHIuZXh0ZW5kKGEsbiksYS5jcmVhdGU9ZnVuY3Rpb24obil7cmV0dXJuIGUocyh0LG4pKX0sYX0obigxKSk7YS5BeGlvcz1pLGEuQ2FuY2VsPW4oMiksYS5DYW5jZWxUb2tlbj1uKDI2KSxhLmlzQ2FuY2VsPW4oOCksYS5WRVJTSU9OPW4oMTApLnZlcnNpb24sYS5hbGw9ZnVuY3Rpb24oZSl7cmV0dXJuIFByb21pc2UuYWxsKGUpfSxhLnNwcmVhZD1uKDI3KSxhLmlzQXhpb3NFcnJvcj1uKDI4KSxlLmV4cG9ydHM9YSxlLmV4cG9ydHMuZGVmYXVsdD1hfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDQpLGk9bigxNCkscz1uKDE1KSxhPW4oOSksdT1uKDI1KSxjPXUudmFsaWRhdG9ycztmdW5jdGlvbiBmKGUpe3RoaXMuZGVmYXVsdHM9ZSx0aGlzLmludGVyY2VwdG9ycz17cmVxdWVzdDpuZXcgaSxyZXNwb25zZTpuZXcgaX19Zi5wcm90b3R5cGUucmVxdWVzdD1mdW5jdGlvbihlKXsic3RyaW5nIj09dHlwZW9mIGU\/KGU9YXJndW1lbnRzWzFdfHx7fSkudXJsPWFyZ3VtZW50c1swXTplPWV8fHt9LChlPWEodGhpcy5kZWZhdWx0cyxlKSkubWV0aG9kP2UubWV0aG9kPWUubWV0aG9kLnRvTG93ZXJDYXNlKCk6dGhpcy5kZWZhdWx0cy5tZXRob2Q\/ZS5tZXRob2Q9dGhpcy5kZWZhdWx0cy5tZXRob2QudG9Mb3dlckNhc2UoKTplLm1ldGhvZD0iZ2V0Ijt2YXIgdD1lLnRyYW5zaXRpb25hbDt2b2lkIDAhPT10JiZ1LmFzc2VydE9wdGlvbnModCx7c2lsZW50SlNPTlBhcnNpbmc6Yy50cmFuc2l0aW9uYWwoYy5ib29sZWFuKSxmb3JjZWRKU09OUGFyc2luZzpjLnRyYW5zaXRpb25hbChjLmJvb2xlYW4pLGNsYXJpZnlUaW1lb3V0RXJyb3I6Yy50cmFuc2l0aW9uYWwoYy5ib29sZWFuKX0sITEpO3ZhciBuPVtdLHI9ITA7dGhpcy5pbnRlcmNlcHRvcnMucmVxdWVzdC5mb3JFYWNoKChmdW5jdGlvbih0KXsiZnVuY3Rpb24iPT10eXBlb2YgdC5ydW5XaGVuJiYhMT09PXQucnVuV2hlbihlKXx8KHI9ciYmdC5zeW5jaHJvbm91cyxuLnVuc2hpZnQodC5mdWxmaWxsZWQsdC5yZWplY3RlZCkpfSkpO3ZhciBvLGk9W107aWYodGhpcy5pbnRlcmNlcHRvcnMucmVzcG9uc2UuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aS5wdXNoKGUuZnVsZmlsbGVkLGUucmVqZWN0ZWQpfSkpLCFyKXt2YXIgZj1bcyx2b2lkIDBdO2ZvcihBcnJheS5wcm90b3R5cGUudW5zaGlmdC5hcHBseShmLG4pLGY9Zi5jb25jYXQoaSksbz1Qcm9taXNlLnJlc29sdmUoZSk7Zi5sZW5ndGg7KW89by50aGVuKGYuc2hpZnQoKSxmLnNoaWZ0KCkpO3JldHVybiBvfWZvcih2YXIgbD1lO24ubGVuZ3RoOyl7dmFyIHA9bi5zaGlmdCgpLGQ9bi5zaGlmdCgpO3RyeXtsPXAobCl9Y2F0Y2goZSl7ZChlKTticmVha319dHJ5e289cyhsKX1jYXRjaChlKXtyZXR1cm4gUHJvbWlzZS5yZWplY3QoZSl9Zm9yKDtpLmxlbmd0aDspbz1vLnRoZW4oaS5zaGlmdCgpLGkuc2hpZnQoKSk7cmV0dXJuIG99LGYucHJvdG90eXBlLmdldFVyaT1mdW5jdGlvbihlKXtyZXR1cm4gZT1hKHRoaXMuZGVmYXVsdHMsZSksbyhlLnVybCxlLnBhcmFtcyxlLnBhcmFtc1NlcmlhbGl6ZXIpLnJlcGxhY2UoL15cPy8sIiIpfSxyLmZvckVhY2goWyJkZWxldGUiLCJnZXQiLCJoZWFkIiwib3B0aW9ucyJdLChmdW5jdGlvbihlKXtmLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LG4pe3JldHVybiB0aGlzLnJlcXVlc3QoYShufHx7fSx7bWV0aG9kOmUsdXJsOnQsZGF0YToobnx8e30pLmRhdGF9KSl9fSkpLHIuZm9yRWFjaChbInBvc3QiLCJwdXQiLCJwYXRjaCJdLChmdW5jdGlvbihlKXtmLnByb3RvdHlwZVtlXT1mdW5jdGlvbih0LG4scil7cmV0dXJuIHRoaXMucmVxdWVzdChhKHJ8fHt9LHttZXRob2Q6ZSx1cmw6dCxkYXRhOm59KSl9fSkpLGUuZXhwb3J0cz1mfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCk7ZnVuY3Rpb24gbygpe3RoaXMuaGFuZGxlcnM9W119by5wcm90b3R5cGUudXNlPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5oYW5kbGVycy5wdXNoKHtmdWxmaWxsZWQ6ZSxyZWplY3RlZDp0LHN5bmNocm9ub3VzOiEhbiYmbi5zeW5jaHJvbm91cyxydW5XaGVuOm4\/bi5ydW5XaGVuOm51bGx9KSx0aGlzLmhhbmRsZXJzLmxlbmd0aC0xfSxvLnByb3RvdHlwZS5lamVjdD1mdW5jdGlvbihlKXt0aGlzLmhhbmRsZXJzW2VdJiYodGhpcy5oYW5kbGVyc1tlXT1udWxsKX0sby5wcm90b3R5cGUuZm9yRWFjaD1mdW5jdGlvbihlKXtyLmZvckVhY2godGhpcy5oYW5kbGVycywoZnVuY3Rpb24odCl7bnVsbCE9PXQmJmUodCl9KSl9LGUuZXhwb3J0cz1vfSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDE2KSxpPW4oOCkscz1uKDEpLGE9bigyKTtmdW5jdGlvbiB1KGUpe2lmKGUuY2FuY2VsVG9rZW4mJmUuY2FuY2VsVG9rZW4udGhyb3dJZlJlcXVlc3RlZCgpLGUuc2lnbmFsJiZlLnNpZ25hbC5hYm9ydGVkKXRocm93IG5ldyBhKCJjYW5jZWxlZCIpfWUuZXhwb3J0cz1mdW5jdGlvbihlKXtyZXR1cm4gdShlKSxlLmhlYWRlcnM9ZS5oZWFkZXJzfHx7fSxlLmRhdGE9by5jYWxsKGUsZS5kYXRhLGUuaGVhZGVycyxlLnRyYW5zZm9ybVJlcXVlc3QpLGUuaGVhZGVycz1yLm1lcmdlKGUuaGVhZGVycy5jb21tb258fHt9LGUuaGVhZGVyc1tlLm1ldGhvZF18fHt9LGUuaGVhZGVycyksci5mb3JFYWNoKFsiZGVsZXRlIiwiZ2V0IiwiaGVhZCIsInBvc3QiLCJwdXQiLCJwYXRjaCIsImNvbW1vbiJdLChmdW5jdGlvbih0KXtkZWxldGUgZS5oZWFkZXJzW3RdfSkpLChlLmFkYXB0ZXJ8fHMuYWRhcHRlcikoZSkudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHUoZSksdC5kYXRhPW8uY2FsbChlLHQuZGF0YSx0LmhlYWRlcnMsZS50cmFuc2Zvcm1SZXNwb25zZSksdH0pLChmdW5jdGlvbih0KXtyZXR1cm4gaSh0KXx8KHUoZSksdCYmdC5yZXNwb25zZSYmKHQucmVzcG9uc2UuZGF0YT1vLmNhbGwoZSx0LnJlc3BvbnNlLmRhdGEsdC5yZXNwb25zZS5oZWFkZXJzLGUudHJhbnNmb3JtUmVzcG9uc2UpKSksUHJvbWlzZS5yZWplY3QodCl9KSl9fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMCksbz1uKDEpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIGk9dGhpc3x8bztyZXR1cm4gci5mb3JFYWNoKG4sKGZ1bmN0aW9uKG4pe2U9bi5jYWxsKGksZSx0KX0pKSxlfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDApO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQpe3IuZm9yRWFjaChlLChmdW5jdGlvbihuLHIpe3IhPT10JiZyLnRvVXBwZXJDYXNlKCk9PT10LnRvVXBwZXJDYXNlKCkmJihlW3RdPW4sZGVsZXRlIGVbcl0pfSkpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1uKDcpO2UuZXhwb3J0cz1mdW5jdGlvbihlLHQsbil7dmFyIG89bi5jb25maWcudmFsaWRhdGVTdGF0dXM7bi5zdGF0dXMmJm8mJiFvKG4uc3RhdHVzKT90KHIoIlJlcXVlc3QgZmFpbGVkIHdpdGggc3RhdHVzIGNvZGUgIituLnN0YXR1cyxuLmNvbmZpZyxudWxsLG4ucmVxdWVzdCxuKSk6ZShuKX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtlLmV4cG9ydHM9ci5pc1N0YW5kYXJkQnJvd3NlckVudigpP3t3cml0ZTpmdW5jdGlvbihlLHQsbixvLGkscyl7dmFyIGE9W107YS5wdXNoKGUrIj0iK2VuY29kZVVSSUNvbXBvbmVudCh0KSksci5pc051bWJlcihuKSYmYS5wdXNoKCJleHBpcmVzPSIrbmV3IERhdGUobikudG9HTVRTdHJpbmcoKSksci5pc1N0cmluZyhvKSYmYS5wdXNoKCJwYXRoPSIrbyksci5pc1N0cmluZyhpKSYmYS5wdXNoKCJkb21haW49IitpKSwhMD09PXMmJmEucHVzaCgic2VjdXJlIiksZG9jdW1lbnQuY29va2llPWEuam9pbigiOyAiKX0scmVhZDpmdW5jdGlvbihlKXt2YXIgdD1kb2N1bWVudC5jb29raWUubWF0Y2gobmV3IFJlZ0V4cCgiKF58O1xccyopKCIrZSsiKT0oW147XSopIikpO3JldHVybiB0P2RlY29kZVVSSUNvbXBvbmVudCh0WzNdKTpudWxsfSxyZW1vdmU6ZnVuY3Rpb24oZSl7dGhpcy53cml0ZShlLCIiLERhdGUubm93KCktODY0ZTUpfX06e3dyaXRlOmZ1bmN0aW9uKCl7fSxyZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LHJlbW92ZTpmdW5jdGlvbigpe319fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMjEpLG89bigyMik7ZS5leHBvcnRzPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGUmJiFyKHQpP28oZSx0KTp0fX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSl7cmV0dXJuL14oW2Etel1bYS16XGRcK1wtXC5dKjopP1wvXC8vaS50ZXN0KGUpfX0sZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdD9lLnJlcGxhY2UoL1wvKyQvLCIiKSsiLyIrdC5yZXBsYWNlKC9eXC8rLywiIik6ZX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKSxvPVsiYWdlIiwiYXV0aG9yaXphdGlvbiIsImNvbnRlbnQtbGVuZ3RoIiwiY29udGVudC10eXBlIiwiZXRhZyIsImV4cGlyZXMiLCJmcm9tIiwiaG9zdCIsImlmLW1vZGlmaWVkLXNpbmNlIiwiaWYtdW5tb2RpZmllZC1zaW5jZSIsImxhc3QtbW9kaWZpZWQiLCJsb2NhdGlvbiIsIm1heC1mb3J3YXJkcyIsInByb3h5LWF1dGhvcml6YXRpb24iLCJyZWZlcmVyIiwicmV0cnktYWZ0ZXIiLCJ1c2VyLWFnZW50Il07ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3ZhciB0LG4saSxzPXt9O3JldHVybiBlPyhyLmZvckVhY2goZS5zcGxpdCgiXG4iKSwoZnVuY3Rpb24oZSl7aWYoaT1lLmluZGV4T2YoIjoiKSx0PXIudHJpbShlLnN1YnN0cigwLGkpKS50b0xvd2VyQ2FzZSgpLG49ci50cmltKGUuc3Vic3RyKGkrMSkpLHQpe2lmKHNbdF0mJm8uaW5kZXhPZih0KT49MClyZXR1cm47c1t0XT0ic2V0LWNvb2tpZSI9PT10PyhzW3RdP3NbdF06W10pLmNvbmNhdChbbl0pOnNbdF0\/c1t0XSsiLCAiK246bn19KSkscyk6c319LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigwKTtlLmV4cG9ydHM9ci5pc1N0YW5kYXJkQnJvd3NlckVudigpP2Z1bmN0aW9uKCl7dmFyIGUsdD0vKG1zaWV8dHJpZGVudCkvaS50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO2Z1bmN0aW9uIG8oZSl7dmFyIHI9ZTtyZXR1cm4gdCYmKG4uc2V0QXR0cmlidXRlKCJocmVmIixyKSxyPW4uaHJlZiksbi5zZXRBdHRyaWJ1dGUoImhyZWYiLHIpLHtocmVmOm4uaHJlZixwcm90b2NvbDpuLnByb3RvY29sP24ucHJvdG9jb2wucmVwbGFjZSgvOiQvLCIiKToiIixob3N0Om4uaG9zdCxzZWFyY2g6bi5zZWFyY2g\/bi5zZWFyY2gucmVwbGFjZSgvXlw\/LywiIik6IiIsaGFzaDpuLmhhc2g\/bi5oYXNoLnJlcGxhY2UoL14jLywiIik6IiIsaG9zdG5hbWU6bi5ob3N0bmFtZSxwb3J0Om4ucG9ydCxwYXRobmFtZToiLyI9PT1uLnBhdGhuYW1lLmNoYXJBdCgwKT9uLnBhdGhuYW1lOiIvIituLnBhdGhuYW1lfX1yZXR1cm4gZT1vKHdpbmRvdy5sb2NhdGlvbi5ocmVmKSxmdW5jdGlvbih0KXt2YXIgbj1yLmlzU3RyaW5nKHQpP28odCk6dDtyZXR1cm4gbi5wcm90b2NvbD09PWUucHJvdG9jb2wmJm4uaG9zdD09PWUuaG9zdH19KCk6ZnVuY3Rpb24oKXtyZXR1cm4hMH19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7dmFyIHI9bigxMCkudmVyc2lvbixvPXt9O1sib2JqZWN0IiwiYm9vbGVhbiIsIm51bWJlciIsImZ1bmN0aW9uIiwic3RyaW5nIiwic3ltYm9sIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSx0KXtvW2VdPWZ1bmN0aW9uKG4pe3JldHVybiB0eXBlb2Ygbj09PWV8fCJhIisodDwxPyJuICI6IiAiKStlfX0pKTt2YXIgaT17fTtvLnRyYW5zaXRpb25hbD1mdW5jdGlvbihlLHQsbil7ZnVuY3Rpb24gbyhlLHQpe3JldHVybiJbQXhpb3MgdiIrcisiXSBUcmFuc2l0aW9uYWwgb3B0aW9uICciK2UrIiciK3QrKG4\/Ii4gIituOiIiKX1yZXR1cm4gZnVuY3Rpb24obixyLHMpe2lmKCExPT09ZSl0aHJvdyBuZXcgRXJyb3IobyhyLCIgaGFzIGJlZW4gcmVtb3ZlZCIrKHQ\/IiBpbiAiK3Q6IiIpKSk7cmV0dXJuIHQmJiFpW3JdJiYoaVtyXT0hMCxjb25zb2xlLndhcm4obyhyLCIgaGFzIGJlZW4gZGVwcmVjYXRlZCBzaW5jZSB2Iit0KyIgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmVhciBmdXR1cmUiKSkpLCFlfHxlKG4scixzKX19LGUuZXhwb3J0cz17YXNzZXJ0T3B0aW9uczpmdW5jdGlvbihlLHQsbil7aWYoIm9iamVjdCIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbnMgbXVzdCBiZSBhbiBvYmplY3QiKTtmb3IodmFyIHI9T2JqZWN0LmtleXMoZSksbz1yLmxlbmd0aDtvLS0gPjA7KXt2YXIgaT1yW29dLHM9dFtpXTtpZihzKXt2YXIgYT1lW2ldLHU9dm9pZCAwPT09YXx8cyhhLGksZSk7aWYoITAhPT11KXRocm93IG5ldyBUeXBlRXJyb3IoIm9wdGlvbiAiK2krIiBtdXN0IGJlICIrdSl9ZWxzZSBpZighMCE9PW4pdGhyb3cgRXJyb3IoIlVua25vd24gb3B0aW9uICIraSl9fSx2YWxpZGF0b3JzOm99fSxmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO3ZhciByPW4oMik7ZnVuY3Rpb24gbyhlKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJleGVjdXRvciBtdXN0IGJlIGEgZnVuY3Rpb24uIik7dmFyIHQ7dGhpcy5wcm9taXNlPW5ldyBQcm9taXNlKChmdW5jdGlvbihlKXt0PWV9KSk7dmFyIG49dGhpczt0aGlzLnByb21pc2UudGhlbigoZnVuY3Rpb24oZSl7aWYobi5fbGlzdGVuZXJzKXt2YXIgdCxyPW4uX2xpc3RlbmVycy5sZW5ndGg7Zm9yKHQ9MDt0PHI7dCsrKW4uX2xpc3RlbmVyc1t0XShlKTtuLl9saXN0ZW5lcnM9bnVsbH19KSksdGhpcy5wcm9taXNlLnRoZW49ZnVuY3Rpb24oZSl7dmFyIHQscj1uZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSl7bi5zdWJzY3JpYmUoZSksdD1lfSkpLnRoZW4oZSk7cmV0dXJuIHIuY2FuY2VsPWZ1bmN0aW9uKCl7bi51bnN1YnNjcmliZSh0KX0scn0sZSgoZnVuY3Rpb24oZSl7bi5yZWFzb258fChuLnJlYXNvbj1uZXcgcihlKSx0KG4ucmVhc29uKSl9KSl9by5wcm90b3R5cGUudGhyb3dJZlJlcXVlc3RlZD1mdW5jdGlvbigpe2lmKHRoaXMucmVhc29uKXRocm93IHRoaXMucmVhc29ufSxvLnByb3RvdHlwZS5zdWJzY3JpYmU9ZnVuY3Rpb24oZSl7dGhpcy5yZWFzb24\/ZSh0aGlzLnJlYXNvbik6dGhpcy5fbGlzdGVuZXJzP3RoaXMuX2xpc3RlbmVycy5wdXNoKGUpOnRoaXMuX2xpc3RlbmVycz1bZV19LG8ucHJvdG90eXBlLnVuc3Vic2NyaWJlPWZ1bmN0aW9uKGUpe2lmKHRoaXMuX2xpc3RlbmVycyl7dmFyIHQ9dGhpcy5fbGlzdGVuZXJzLmluZGV4T2YoZSk7LTEhPT10JiZ0aGlzLl9saXN0ZW5lcnMuc3BsaWNlKHQsMSl9fSxvLnNvdXJjZT1mdW5jdGlvbigpe3ZhciBlO3JldHVybnt0b2tlbjpuZXcgbygoZnVuY3Rpb24odCl7ZT10fSkpLGNhbmNlbDplfX0sZS5leHBvcnRzPW99LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gZS5hcHBseShudWxsLHQpfX19LGZ1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKGUpe3JldHVybiJvYmplY3QiPT10eXBlb2YgZSYmITA9PT1lLmlzQXhpb3NFcnJvcn19XSl9KSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPWF4aW9zLm1pbi5tYXA7Ci8qKiAvbS9qcy92YW5pbGxhanMvcHJpc3RpbmUubWluLmpzICoqLwohZnVuY3Rpb24oZSxyKXsib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlP21vZHVsZS5leHBvcnRzPXIoKToiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kP2RlZmluZShyKTooZT0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM\/Z2xvYmFsVGhpczplfHxzZWxmKS5QcmlzdGluZT1yKCl9KHRoaXMsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPXtlbjp7cmVxdWlyZWQ6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQiLGVtYWlsOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgdmFsaWQgZS1tYWlsIGFkZHJlc3MiLG51bWJlcjoiVGhpcyBmaWVsZCByZXF1aXJlcyBhIG51bWJlciIsaW50ZWdlcjoiVGhpcyBmaWVsZCByZXF1aXJlcyBhbiBpbnRlZ2VyIHZhbHVlIix1cmw6IlRoaXMgZmllbGQgcmVxdWlyZXMgYSB2YWxpZCB3ZWJzaXRlIFVSTCIsdGVsOiJUaGlzIGZpZWxkIHJlcXVpcmVzIGEgdmFsaWQgdGVsZXBob25lIG51bWJlciIsbWF4bGVuZ3RoOiJUaGlzIGZpZWxkcyBsZW5ndGggbXVzdCBiZSA8ICR7MX0iLG1pbmxlbmd0aDoiVGhpcyBmaWVsZHMgbGVuZ3RoIG11c3QgYmUgPiAkezF9IixtaW46Ik1pbmltdW0gdmFsdWUgZm9yIHRoaXMgZmllbGQgaXMgJHsxfSIsbWF4OiJNYXhpbXVtIHZhbHVlIGZvciB0aGlzIGZpZWxkIGlzICR7MX0iLHBhdHRlcm46IlBsZWFzZSBtYXRjaCB0aGUgcmVxdWVzdGVkIGZvcm1hdCIsZXF1YWxzOiJUaGUgdHdvIGZpZWxkcyBkbyBub3QgbWF0Y2gifX07ZnVuY3Rpb24gcihlKXt2YXIgcj1hcmd1bWVudHM7cmV0dXJuIHRoaXMucmVwbGFjZSgvXCR7KFtee31dKil9L2csKGZ1bmN0aW9uKGUsdCl7cmV0dXJuIHJbdF19KSl9ZnVuY3Rpb24gdChlKXtyZXR1cm4gZS5wcmlzdGluZS5zZWxmLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgnaW5wdXRbbmFtZT0iJytlLmdldEF0dHJpYnV0ZSgibmFtZSIpKyciXTpjaGVja2VkJykubGVuZ3RofXZhciBuPXtjbGFzc1RvOiJmb3JtLWdyb3VwIixlcnJvckNsYXNzOiJoYXMtZGFuZ2VyIixzdWNjZXNzQ2xhc3M6Imhhcy1zdWNjZXNzIixlcnJvclRleHRQYXJlbnQ6ImZvcm0tZ3JvdXAiLGVycm9yVGV4dFRhZzoiZGl2IixlcnJvclRleHRDbGFzczoidGV4dC1oZWxwIn0saT1bInJlcXVpcmVkIiwibWluIiwibWF4IiwibWlubGVuZ3RoIiwibWF4bGVuZ3RoIiwicGF0dGVybiJdLHM9L14oKFtePD4oKVxbXF1cXC4sOzpcc0AiXSsoXC5bXjw+KClcW1xdXFwuLDs6XHNAIl0rKSopfCgiLisiKSlAKChcW1swLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31cLlswLTldezEsM31dKXwoKFthLXpBLVpcLTAtOV0rXC4pK1thLXpBLVpdezIsfSkpJC8sYT0vLW1lc3NhZ2UoPzotKFthLXpdezJ9KD86X1tBLVpdezJ9KT8pKT8vLG89ImVuIixsPXt9LHU9ZnVuY3Rpb24oZSxyKXtyLm5hbWU9ZSx2b2lkIDA9PT1yLnByaW9yaXR5JiYoci5wcmlvcml0eT0xKSxsW2VdPXJ9O2Z1bmN0aW9uIGYodCxzLHUpe3ZhciBmPXRoaXM7ZnVuY3Rpb24gYyhlLHIsdCxuKXt2YXIgaT1sW3RdO2lmKGkmJihlLnB1c2goaSksbikpe3ZhciBzPSJwYXR0ZXJuIj09PXQ\/W25dOm4uc3BsaXQoIiwiKTtzLnVuc2hpZnQobnVsbCksclt0XT1zfX1mdW5jdGlvbiBwKHQpe2Zvcih2YXIgbj1bXSxpPSEwLHM9MDt0LnZhbGlkYXRvcnNbc107cysrKXt2YXIgYT10LnZhbGlkYXRvcnNbc10sbD10LnBhcmFtc1thLm5hbWVdP3QucGFyYW1zW2EubmFtZV06W107aWYobFswXT10LmlucHV0LnZhbHVlLCFhLmZuLmFwcGx5KHQuaW5wdXQsbCkmJihpPSExLCJmdW5jdGlvbiI9PXR5cGVvZiBhLm1zZz9uLnB1c2goYS5tc2codC5pbnB1dC52YWx1ZSxsKSk6InN0cmluZyI9PXR5cGVvZiBhLm1zZz9uLnB1c2goci5hcHBseShhLm1zZyxsKSk6YS5tc2c9PT1PYmplY3QoYS5tc2cpJiZhLm1zZ1tvXT9uLnB1c2goci5hcHBseShhLm1zZ1tvXSxsKSk6dC5tZXNzYWdlc1tvXSYmdC5tZXNzYWdlc1tvXVthLm5hbWVdP24ucHVzaChyLmFwcGx5KHQubWVzc2FnZXNbb11bYS5uYW1lXSxsKSk6ZVtvXSYmZVtvXVthLm5hbWVdJiZuLnB1c2goci5hcHBseShlW29dW2EubmFtZV0sbCkpLCEwPT09YS5oYWx0KSlicmVha31yZXR1cm4gdC5lcnJvcnM9bixpfWZ1bmN0aW9uIG0oZSl7aWYoZS5lcnJvckVsZW1lbnRzKXJldHVybiBlLmVycm9yRWxlbWVudHM7dmFyIHI9ZnVuY3Rpb24oZSxyKXtmb3IoOyhlPWUucGFyZW50RWxlbWVudCkmJiFlLmNsYXNzTGlzdC5jb250YWlucyhyKTspO3JldHVybiBlfShlLmlucHV0LGYuY29uZmlnLmNsYXNzVG8pLHQ9bnVsbCxuPW51bGw7cmV0dXJuKHQ9Zi5jb25maWcuY2xhc3NUbz09PWYuY29uZmlnLmVycm9yVGV4dFBhcmVudD9yOnIucXVlcnlTZWxlY3RvcigiLiIrZi5jb25maWcuZXJyb3JUZXh0UGFyZW50KSkmJigobj10LnF1ZXJ5U2VsZWN0b3IoIi5wcmlzdGluZS1lcnJvciIpKXx8KChuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoZi5jb25maWcuZXJyb3JUZXh0VGFnKSkuY2xhc3NOYW1lPSJwcmlzdGluZS1lcnJvciAiK2YuY29uZmlnLmVycm9yVGV4dENsYXNzLHQuYXBwZW5kQ2hpbGQobiksbi5wcmlzdGluZURpc3BsYXk9bi5zdHlsZS5kaXNwbGF5KSksZS5lcnJvckVsZW1lbnRzPVtyLG5dfWZ1bmN0aW9uIGQoZSl7dmFyIHI9bShlKSx0PXJbMF0sbj1yWzFdO3QmJih0LmNsYXNzTGlzdC5yZW1vdmUoZi5jb25maWcuc3VjY2Vzc0NsYXNzKSx0LmNsYXNzTGlzdC5hZGQoZi5jb25maWcuZXJyb3JDbGFzcykpLG4mJihuLmlubmVySFRNTD1lLmVycm9ycy5qb2luKCI8YnIvPiIpLG4uc3R5bGUuZGlzcGxheT1uLnByaXN0aW5lRGlzcGxheXx8IiIpfWZ1bmN0aW9uIGgoZSl7dmFyIHI9ZnVuY3Rpb24oZSl7dmFyIHI9bShlKSx0PXJbMF0sbj1yWzFdO3JldHVybiB0JiYodC5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLmVycm9yQ2xhc3MpLHQuY2xhc3NMaXN0LnJlbW92ZShmLmNvbmZpZy5zdWNjZXNzQ2xhc3MpKSxuJiYobi5pbm5lckhUTUw9IiIsbi5zdHlsZS5kaXNwbGF5PSJub25lIikscn0oZSlbMF07ciYmci5jbGFzc0xpc3QuYWRkKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcyl9cmV0dXJuIGZ1bmN0aW9uKGUscix0KXtlLnNldEF0dHJpYnV0ZSgibm92YWxpZGF0ZSIsInRydWUiKSxmLmZvcm09ZSxmLmNvbmZpZz1mdW5jdGlvbihlLHIpe2Zvcih2YXIgdCBpbiByKXQgaW4gZXx8KGVbdF09clt0XSk7cmV0dXJuIGV9KHJ8fHt9LG4pLGYubGl2ZT0hKCExPT09dCksZi5maWVsZHM9QXJyYXkuZnJvbShlLnF1ZXJ5U2VsZWN0b3JBbGwoImlucHV0Om5vdChbdHlwZV49aGlkZGVuXSk6bm90KFt0eXBlXj1zdWJtaXRdKSwgc2VsZWN0LCB0ZXh0YXJlYSIpKS5tYXAoZnVuY3Rpb24oZSl7dmFyIHI9W10sdD17fSxuPXt9O3JldHVybltdLmZvckVhY2guY2FsbChlLmF0dHJpYnV0ZXMsKGZ1bmN0aW9uKGUpe2lmKC9eZGF0YS1wcmlzdGluZS0vLnRlc3QoZS5uYW1lKSl7dmFyIHM9ZS5uYW1lLnN1YnN0cigxNCksbz1zLm1hdGNoKGEpO2lmKG51bGwhPT1vKXt2YXIgbD12b2lkIDA9PT1vWzFdPyJlbiI6b1sxXTtyZXR1cm4gbi5oYXNPd25Qcm9wZXJ0eShsKXx8KG5bbF09e30pLHZvaWQobltsXVtzLnNsaWNlKDAscy5sZW5ndGgtb1swXS5sZW5ndGgpXT1lLnZhbHVlKX0idHlwZSI9PT1zJiYocz1lLnZhbHVlKSxjKHIsdCxzLGUudmFsdWUpfWVsc2V+aS5pbmRleE9mKGUubmFtZSk\/YyhyLHQsZS5uYW1lLGUudmFsdWUpOiJ0eXBlIj09PWUubmFtZSYmYyhyLHQsZS52YWx1ZSl9KSksci5zb3J0KChmdW5jdGlvbihlLHIpe3JldHVybiByLnByaW9yaXR5LWUucHJpb3JpdHl9KSksZi5saXZlJiZlLmFkZEV2ZW50TGlzdGVuZXIoflsicmFkaW8iLCJjaGVja2JveCJdLmluZGV4T2YoZS5nZXRBdHRyaWJ1dGUoInR5cGUiKSk\/ImNoYW5nZSI6ImlucHV0IixmdW5jdGlvbihlKXtmLnZhbGlkYXRlKGUudGFyZ2V0KX0uYmluZChmKSksZS5wcmlzdGluZT17aW5wdXQ6ZSx2YWxpZGF0b3JzOnIscGFyYW1zOnQsbWVzc2FnZXM6bixzZWxmOmZ9fS5iaW5kKGYpKX0odCxzLHUpLGYudmFsaWRhdGU9ZnVuY3Rpb24oZSxyKXtyPWUmJiEwPT09cnx8ITA9PT1lO3ZhciB0PWYuZmllbGRzOyEwIT09ZSYmITEhPT1lJiYoZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50P3Q9W2UucHJpc3RpbmVdOihlIGluc3RhbmNlb2YgTm9kZUxpc3R8fGUgaW5zdGFuY2VvZih3aW5kb3cuJHx8QXJyYXkpfHxlIGluc3RhbmNlb2YgQXJyYXkpJiYodD1BcnJheS5mcm9tKGUpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUucHJpc3RpbmV9KSkpKTtmb3IodmFyIG49ITAsaT0wO3RbaV07aSsrKXt2YXIgcz10W2ldO3Aocyk\/IXImJmgocyk6KG49ITEsIXImJmQocykpfXJldHVybiBufSxmLmdldEVycm9ycz1mdW5jdGlvbihlKXtpZighZSl7Zm9yKHZhciByPVtdLHQ9MDt0PGYuZmllbGRzLmxlbmd0aDt0Kyspe3ZhciBuPWYuZmllbGRzW3RdO24uZXJyb3JzLmxlbmd0aCYmci5wdXNoKHtpbnB1dDpuLmlucHV0LGVycm9yczpuLmVycm9yc30pfXJldHVybiByfXJldHVybiBlLnRhZ05hbWUmJiJzZWxlY3QiPT09ZS50YWdOYW1lLnRvTG93ZXJDYXNlKCk\/ZS5wcmlzdGluZS5lcnJvcnM6ZS5sZW5ndGg\/ZVswXS5wcmlzdGluZS5lcnJvcnM6ZS5wcmlzdGluZS5lcnJvcnN9LGYuYWRkVmFsaWRhdG9yPWZ1bmN0aW9uKGUscix0LG4saSl7ZSBpbnN0YW5jZW9mIEhUTUxFbGVtZW50PyhlLnByaXN0aW5lLnZhbGlkYXRvcnMucHVzaCh7Zm46cixtc2c6dCxwcmlvcml0eTpuLGhhbHQ6aX0pLGUucHJpc3RpbmUudmFsaWRhdG9ycy5zb3J0KChmdW5jdGlvbihlLHIpe3JldHVybiByLnByaW9yaXR5LWUucHJpb3JpdHl9KSkpOmNvbnNvbGUud2FybigiVGhlIHBhcmFtZXRlciBlbGVtIG11c3QgYmUgYSBkb20gZWxlbWVudCIpfSxmLmFkZEVycm9yPWZ1bmN0aW9uKGUscil7KGU9ZS5sZW5ndGg\/ZVswXTplKS5wcmlzdGluZS5lcnJvcnMucHVzaChyKSxkKGUucHJpc3RpbmUpfSxmLnJlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7Zi5maWVsZHNbZV07ZSsrKWYuZmllbGRzW2VdLmVycm9yRWxlbWVudHM9bnVsbDtBcnJheS5mcm9tKGYuZm9ybS5xdWVyeVNlbGVjdG9yQWxsKCIucHJpc3RpbmUtZXJyb3IiKSkubWFwKChmdW5jdGlvbihlKXtlLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZSl9KSksQXJyYXkuZnJvbShmLmZvcm0ucXVlcnlTZWxlY3RvckFsbCgiLiIrZi5jb25maWcuY2xhc3NUbykpLm1hcCgoZnVuY3Rpb24oZSl7ZS5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLnN1Y2Nlc3NDbGFzcyksZS5jbGFzc0xpc3QucmVtb3ZlKGYuY29uZmlnLmVycm9yQ2xhc3MpfSkpfSxmLmRlc3Ryb3k9ZnVuY3Rpb24oKXtmLnJlc2V0KCksZi5maWVsZHMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZGVsZXRlIGUuaW5wdXQucHJpc3RpbmV9KSksZi5maWVsZHM9W119LGYuc2V0R2xvYmFsQ29uZmlnPWZ1bmN0aW9uKGUpe249ZX0sZn1yZXR1cm4gdSgidGV4dCIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiEwfSxwcmlvcml0eTowfSksdSgicmVxdWlyZWQiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4icmFkaW8iPT09dGhpcy50eXBlfHwiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk6dm9pZCAwIT09ZSYmIiIhPT1lfSxwcmlvcml0eTo5OSxoYWx0OiEwfSksdSgiZW1haWwiLHtmbjpmdW5jdGlvbihlKXtyZXR1cm4hZXx8cy50ZXN0KGUpfX0pLHUoIm51bWJlciIse2ZuOmZ1bmN0aW9uKGUpe3JldHVybiFlfHwhaXNOYU4ocGFyc2VGbG9hdChlKSl9LHByaW9yaXR5OjJ9KSx1KCJpbnRlZ2VyIix7Zm46ZnVuY3Rpb24oZSl7cmV0dXJuIWV8fC9eXGQrJC8udGVzdChlKX19KSx1KCJtaW5sZW5ndGgiLHtmbjpmdW5jdGlvbihlLHIpe3JldHVybiFlfHxlLmxlbmd0aD49cGFyc2VJbnQocil9fSksdSgibWF4bGVuZ3RoIix7Zm46ZnVuY3Rpb24oZSxyKXtyZXR1cm4hZXx8ZS5sZW5ndGg8PXBhcnNlSW50KHIpfX0pLHUoIm1pbiIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fCgiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk+PXBhcnNlSW50KHIpOnBhcnNlRmxvYXQoZSk+PXBhcnNlRmxvYXQocikpfX0pLHUoIm1heCIse2ZuOmZ1bmN0aW9uKGUscil7cmV0dXJuIWV8fCgiY2hlY2tib3giPT09dGhpcy50eXBlP3QodGhpcyk8PXBhcnNlSW50KHIpOnBhcnNlRmxvYXQoZSk8PXBhcnNlRmxvYXQocikpfX0pLHUoInBhdHRlcm4iLHtmbjpmdW5jdGlvbihlLHIpe3ZhciB0PXIubWF0Y2gobmV3IFJlZ0V4cCgiXi8oLio\/KS8oW2dpbXldKikkIikpO3JldHVybiFlfHxuZXcgUmVnRXhwKHRbMV0sdFsyXSkudGVzdChlKX19KSx1KCJlcXVhbHMiLHtmbjpmdW5jdGlvbihlLHIpe3ZhciB0PWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iocik7cmV0dXJuIHQmJighZSYmIXQudmFsdWV8fHQudmFsdWU9PT1lKX19KSxmLmFkZFZhbGlkYXRvcj1mdW5jdGlvbihlLHIsdCxuLGkpe3UoZSx7Zm46cixtc2c6dCxwcmlvcml0eTpuLGhhbHQ6aX0pfSxmLmFkZE1lc3NhZ2VzPWZ1bmN0aW9uKHIsdCl7dmFyIG49ZS5oYXNPd25Qcm9wZXJ0eShyKT9lW3JdOmVbcl09e307T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXtuW2VdPXRbZV19KSl9LGYuc2V0TG9jYWxlPWZ1bmN0aW9uKGUpe289ZX0sZn0pKTsKCi8vRXh0ZW5zaW9uCi8vIEEgdmFsaWRhdG9yIHRvIGNoZWNrIGlmIHRoZSBpbnB1dCB2YWx1ZSBpcyB3aXRoaW4gYSBzcGVjaWZpZWQgcmFuZ2UKLy8gVGhlIGdsb2JhbCB2YWxpZGF0b3IgbXVzdCBiZSBhZGRlZCBiZWZvcmUgY3JlYXRpbmcgdGhlIHByaXN0aW5lIGluc3RhbmNlCgovLyBQcmlzdGluZS5hZGRWYWxpZGF0b3IoInBob25lIiwgZnVuY3Rpb24ocGhvbmUpIHsKCi8vIAl2YXIgVmFsaWRBcmVhQ29kZXMgPSBbCi8vIAkJNDM4LDUxNCwyNjMsNDUwLDU3OSw4MTksMjQ5LDcwNSwyMjYsCi8vIAkJNTE5LDI4OSwzNjUsOTA1LDQxNiw0MzcsNjQ3LDM0MywKLy8gCQk2MTMsNzA5LDg3Myw0MTgsNTgxLDUwNiw5MDIKLy8gCV07CgovLyAJcGhvbmUgPSBwaG9uZS5yZXBsYWNlKC9bXjAtOV0rL2dpLCAnJyk7Ci8vIAlpZih0eXBlb2YgZW1haWxIYW5kbGVyIT0ndW5kZWZpbmVkJyAmJiB0aGlzLmhhc0NsYXNzKCdyZXF1aXJlZCcpKSB7Ci8vIAkJZW1haWxIYW5kbGVyLnBob25lTWFuZGF0b3J5PXRydWU7Ci8vIAl9Ci8vIAlpZiggcGhvbmVbMF0gPT0gJzEnICl7Ci8vIAkJcGhvbmUgPSBwaG9uZS5zdWJzdHJpbmcoIDEgKTsKLy8gCX0KCi8vIAl2YXIgYXJlYUNvZGUgPSBwYXJzZUludCggcGhvbmUuc3Vic3RyaW5nKDAsMykgKTsKCi8vIAlheGlvcy5nZXQoJ2h0dHBzOi8vYXV0b2F1YmFpbmUuY29tL3NlcnZpY2VzL3ZhbGlkYXRlUGhvbmVOdW1iZXIucGhwJyx7Ci8vIAkJdGltZW91dDoyMDAwLAovLyAJCWRhdGFUeXBlOiAnanNvbicsCi8vIAkJcGFyYW1zOiB7cGhvbmU6IHBob25lfSwKLy8gCQlyZXNwb25zZVR5cGU6ICdqc29uJwovLyAJfSkKLy8gCS50aGVuKGZ1bmN0aW9uKHJlcykgewoKLy8gCQlpZiAodHlwZW9mIHJlcy5pc09rICE9PSAndW5kZWZpbmVkJyl7Ci8vIAkJCWlmIChyZXMucGhvbmVOdW1iZXJJc1ZhbGlkID09PSBmYWxzZSkgewovLyAJCQkJLy9jb25zb2xlLmxvZygncGhvbmUgJytwaG9uZSsnIGlzIGludmFsaWQnKTsKLy8gCQkJCWlmKHR5cGVvZiBlbWFpbEhhbmRsZXIhPSd1bmRlZmluZWQnICYmIGVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeSApIHsKLy8gCQkJCQllbWFpbEhhbmRsZXIucGhvbmVWYWxpZGF0aW9uQXR0ZW1wdHMrKzsKLy8gCQkJCX0KLy8gCQkJCXJldHVybiB0cnVlOwovLyAJCQl9Ci8vIAkJCX0gZWxzZSB7Ci8vIAkJCS8vdmFsaWRhdGUgYXJlYWNvZGUgYXQgbGVhc3QKLy8gCQkJaWYoIHR5cGVvZiBWYWxpZEFyZWFDb2Rlcy5pbmRleE9mICE9ICd1bmRlZmluZWQnICYmCVZhbGlkQXJlYUNvZGVzLmluZGV4T2YoIGFyZWFDb2RlICkgPT0gLTEgKXsKLy8gCQkJCXJldHVybiBmYWxzZTsKLy8gCQkJfQovLyAJCX0KCi8vIAl9KQovLyAJLmNhdGNoKGZ1bmN0aW9uKGVycm9yKSB7Ci8vIAkJLy8gdmFsaWRhdGUgYXJlYWNvZGUgYXQgbGVhc3QKLy8gCQlpZiggdHlwZW9mIFZhbGlkQXJlYUNvZGVzLmluZGV4T2YgIT0gJ3VuZGVmaW5lZCcgJiYJVmFsaWRBcmVhQ29kZXMuaW5kZXhPZiggYXJlYUNvZGUgKSA9PSAtMSApewovLyAJCWlmKHR5cGVvZiBlbWFpbEhhbmRsZXIhPSd1bmRlZmluZWQnCSYmIGVtYWlsSGFuZGxlci5waG9uZU1hbmRhdG9yeSkgZW1haWxIYW5kbGVyLnBob25lVmFsaWRhdGlvbkF0dGVtcHRzKys7Ci8vIAkJCXJldHVybiBmYWxzZTsKLy8gCQl9Ci8vIAkJLy9jb25zb2xlLmxvZygidmFsaWRpdHkgdmFsaWRhdGVQaG9uZU51bWJlciBuZXR3b3JrIGVycm9yIik7CgovLyAJCXJldHVybiBmYWxzZTsKLy8gCX0pOwoKCgovLyB9LCAiVGhlIHZhbHVlICgkezB9KSBtdXN0IGJlIGJldHdlZW4gJHsxfSBhbmQgJHsyfSIsIDUsIGZhbHNlKTsKLyoqIC9tL2pzL3ZhbmlsbGFqcy9mbGF0cGlja3IubWluLmpzICoqLwovKiBmbGF0cGlja3IgdjQuNi45LCwgQGxpY2Vuc2UgTUlUICovCiFmdW5jdGlvbihlLHQpeyJvYmplY3QiPT10eXBlb2YgZXhwb3J0cyYmInVuZGVmaW5lZCIhPXR5cGVvZiBtb2R1bGU\/bW9kdWxlLmV4cG9ydHM9dCgpOiJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ\/ZGVmaW5lKHQpOihlPSJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmV8fHNlbGYpLmZsYXRwaWNrcj10KCl9KHRoaXMsKGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBlPWZ1bmN0aW9uKCl7cmV0dXJuKGU9T2JqZWN0LmFzc2lnbnx8ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49MSxhPWFyZ3VtZW50cy5sZW5ndGg7bjxhO24rKylmb3IodmFyIGkgaW4gdD1hcmd1bWVudHNbbl0pT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsaSkmJihlW2ldPXRbaV0pO3JldHVybiBlfSkuYXBwbHkodGhpcyxhcmd1bWVudHMpfTtmdW5jdGlvbiB0KCl7Zm9yKHZhciBlPTAsdD0wLG49YXJndW1lbnRzLmxlbmd0aDt0PG47dCsrKWUrPWFyZ3VtZW50c1t0XS5sZW5ndGg7dmFyIGE9QXJyYXkoZSksaT0wO2Zvcih0PTA7dDxuO3QrKylmb3IodmFyIG89YXJndW1lbnRzW3RdLHI9MCxsPW8ubGVuZ3RoO3I8bDtyKyssaSsrKWFbaV09b1tyXTtyZXR1cm4gYX12YXIgbj1bIm9uQ2hhbmdlIiwib25DbG9zZSIsIm9uRGF5Q3JlYXRlIiwib25EZXN0cm95Iiwib25LZXlEb3duIiwib25Nb250aENoYW5nZSIsIm9uT3BlbiIsIm9uUGFyc2VDb25maWciLCJvblJlYWR5Iiwib25WYWx1ZVVwZGF0ZSIsIm9uWWVhckNoYW5nZSIsIm9uUHJlQ2FsZW5kYXJQb3NpdGlvbiJdLGE9e19kaXNhYmxlOltdLGFsbG93SW5wdXQ6ITEsYWxsb3dJbnZhbGlkUHJlbG9hZDohMSxhbHRGb3JtYXQ6IkYgaiwgWSIsYWx0SW5wdXQ6ITEsYWx0SW5wdXRDbGFzczoiZm9ybS1jb250cm9sIGlucHV0IixhbmltYXRlOiJvYmplY3QiPT10eXBlb2Ygd2luZG93JiYtMT09PXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIk1TSUUiKSxhcmlhRGF0ZUZvcm1hdDoiRiBqLCBZIixhdXRvRmlsbERlZmF1bHRUaW1lOiEwLGNsaWNrT3BlbnM6ITAsY2xvc2VPblNlbGVjdDohMCxjb25qdW5jdGlvbjoiLCAiLGRhdGVGb3JtYXQ6IlktbS1kIixkZWZhdWx0SG91cjoxMixkZWZhdWx0TWludXRlOjAsZGVmYXVsdFNlY29uZHM6MCxkaXNhYmxlOltdLGRpc2FibGVNb2JpbGU6ITEsZW5hYmxlU2Vjb25kczohMSxlbmFibGVUaW1lOiExLGVycm9ySGFuZGxlcjpmdW5jdGlvbihlKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2FybihlKX0sZ2V0V2VlazpmdW5jdGlvbihlKXt2YXIgdD1uZXcgRGF0ZShlLmdldFRpbWUoKSk7dC5zZXRIb3VycygwLDAsMCwwKSx0LnNldERhdGUodC5nZXREYXRlKCkrMy0odC5nZXREYXkoKSs2KSU3KTt2YXIgbj1uZXcgRGF0ZSh0LmdldEZ1bGxZZWFyKCksMCw0KTtyZXR1cm4gMStNYXRoLnJvdW5kKCgodC5nZXRUaW1lKCktbi5nZXRUaW1lKCkpLzg2NGU1LTMrKG4uZ2V0RGF5KCkrNiklNykvNyl9LGhvdXJJbmNyZW1lbnQ6MSxpZ25vcmVkRm9jdXNFbGVtZW50czpbXSxpbmxpbmU6ITEsbG9jYWxlOiJkZWZhdWx0IixtaW51dGVJbmNyZW1lbnQ6NSxtb2RlOiJzaW5nbGUiLG1vbnRoU2VsZWN0b3JUeXBlOiJkcm9wZG93biIsbmV4dEFycm93OiI8c3ZnIHZlcnNpb249JzEuMScgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB4bWxuczp4bGluaz0naHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluaycgdmlld0JveD0nMCAwIDE3IDE3Jz48Zz48L2c+PHBhdGggZD0nTTEzLjIwNyA4LjQ3MmwtNy44NTQgNy44NTQtMC43MDctMC43MDcgNy4xNDYtNy4xNDYtNy4xNDYtNy4xNDggMC43MDctMC43MDcgNy44NTQgNy44NTR6JyAvPjwvc3ZnPiIsbm9DYWxlbmRhcjohMSxub3c6bmV3IERhdGUsb25DaGFuZ2U6W10sb25DbG9zZTpbXSxvbkRheUNyZWF0ZTpbXSxvbkRlc3Ryb3k6W10sb25LZXlEb3duOltdLG9uTW9udGhDaGFuZ2U6W10sb25PcGVuOltdLG9uUGFyc2VDb25maWc6W10sb25SZWFkeTpbXSxvblZhbHVlVXBkYXRlOltdLG9uWWVhckNoYW5nZTpbXSxvblByZUNhbGVuZGFyUG9zaXRpb246W10scGx1Z2luczpbXSxwb3NpdGlvbjoiYXV0byIscG9zaXRpb25FbGVtZW50OnZvaWQgMCxwcmV2QXJyb3c6IjxzdmcgdmVyc2lvbj0nMS4xJyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2aWV3Qm94PScwIDAgMTcgMTcnPjxnPjwvZz48cGF0aCBkPSdNNS4yMDcgOC40NzFsNy4xNDYgNy4xNDctMC43MDcgMC43MDctNy44NTMtNy44NTQgNy44NTQtNy44NTMgMC43MDcgMC43MDctNy4xNDcgNy4xNDZ6JyAvPjwvc3ZnPiIsc2hvcnRoYW5kQ3VycmVudE1vbnRoOiExLHNob3dNb250aHM6MSxzdGF0aWM6ITEsdGltZV8yNGhyOiExLHdlZWtOdW1iZXJzOiExLHdyYXA6ITF9LGk9e3dlZWtkYXlzOntzaG9ydGhhbmQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxsb25naGFuZDpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il19LG1vbnRoczp7c2hvcnRoYW5kOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sbG9uZ2hhbmQ6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdfSxkYXlzSW5Nb250aDpbMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGZpcnN0RGF5T2ZXZWVrOjAsb3JkaW5hbDpmdW5jdGlvbihlKXt2YXIgdD1lJTEwMDtpZih0PjMmJnQ8MjEpcmV0dXJuInRoIjtzd2l0Y2godCUxMCl7Y2FzZSAxOnJldHVybiJzdCI7Y2FzZSAyOnJldHVybiJuZCI7Y2FzZSAzOnJldHVybiJyZCI7ZGVmYXVsdDpyZXR1cm4idGgifX0scmFuZ2VTZXBhcmF0b3I6IiB0byAiLHdlZWtBYmJyZXZpYXRpb246IldrIixzY3JvbGxUaXRsZToiU2Nyb2xsIHRvIGluY3JlbWVudCIsdG9nZ2xlVGl0bGU6IkNsaWNrIHRvIHRvZ2dsZSIsYW1QTTpbIkFNIiwiUE0iXSx5ZWFyQXJpYUxhYmVsOiJZZWFyIixtb250aEFyaWFMYWJlbDoiTW9udGgiLGhvdXJBcmlhTGFiZWw6IkhvdXIiLG1pbnV0ZUFyaWFMYWJlbDoiTWludXRlIix0aW1lXzI0aHI6ITF9LG89ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dCYmKHQ9MiksKCIwMDAiK2UpLnNsaWNlKC0xKnQpfSxyPWZ1bmN0aW9uKGUpe3JldHVybiEwPT09ZT8xOjB9O2Z1bmN0aW9uIGwoZSx0KXt2YXIgbjtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dChuKSxuPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuYXBwbHkoYSxhcmd1bWVudHMpfSksdCl9fXZhciBjPWZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgQXJyYXk\/ZTpbZV19O2Z1bmN0aW9uIGQoZSx0LG4pe2lmKCEwPT09bilyZXR1cm4gZS5jbGFzc0xpc3QuYWRkKHQpO2UuY2xhc3NMaXN0LnJlbW92ZSh0KX1mdW5jdGlvbiBzKGUsdCxuKXt2YXIgYT13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRWxlbWVudChlKTtyZXR1cm4gdD10fHwiIixuPW58fCIiLGEuY2xhc3NOYW1lPXQsdm9pZCAwIT09biYmKGEudGV4dENvbnRlbnQ9biksYX1mdW5jdGlvbiB1KGUpe2Zvcig7ZS5maXJzdENoaWxkOyllLnJlbW92ZUNoaWxkKGUuZmlyc3RDaGlsZCl9ZnVuY3Rpb24gZihlLHQpe3JldHVybiB0KGUpP2U6ZS5wYXJlbnROb2RlP2YoZS5wYXJlbnROb2RlLHQpOnZvaWQgMH1mdW5jdGlvbiBtKGUsdCl7dmFyIG49cygiZGl2IiwibnVtSW5wdXRXcmFwcGVyIiksYT1zKCJpbnB1dCIsIm51bUlucHV0ICIrZSksaT1zKCJzcGFuIiwiYXJyb3dVcCIpLG89cygic3BhbiIsImFycm93RG93biIpO2lmKC0xPT09bmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIDkuMCIpP2EudHlwZT0ibnVtYmVyIjooYS50eXBlPSJ0ZXh0IixhLnBhdHRlcm49IlxcZCoiKSx2b2lkIDAhPT10KWZvcih2YXIgciBpbiB0KWEuc2V0QXR0cmlidXRlKHIsdFtyXSk7cmV0dXJuIG4uYXBwZW5kQ2hpbGQoYSksbi5hcHBlbmRDaGlsZChpKSxuLmFwcGVuZENoaWxkKG8pLG59ZnVuY3Rpb24gZyhlKXt0cnl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIGUuY29tcG9zZWRQYXRoP2UuY29tcG9zZWRQYXRoKClbMF06ZS50YXJnZXR9Y2F0Y2godCl7cmV0dXJuIGUudGFyZ2V0fX12YXIgcD1mdW5jdGlvbigpe30saD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIG4ubW9udGhzW3Q\/InNob3J0aGFuZCI6ImxvbmdoYW5kIl1bZV19LHY9e0Q6cCxGOmZ1bmN0aW9uKGUsdCxuKXtlLnNldE1vbnRoKG4ubW9udGhzLmxvbmdoYW5kLmluZGV4T2YodCkpfSxHOmZ1bmN0aW9uKGUsdCl7ZS5zZXRIb3VycyhwYXJzZUZsb2F0KHQpKX0sSDpmdW5jdGlvbihlLHQpe2Uuc2V0SG91cnMocGFyc2VGbG9hdCh0KSl9LEo6ZnVuY3Rpb24oZSx0KXtlLnNldERhdGUocGFyc2VGbG9hdCh0KSl9LEs6ZnVuY3Rpb24oZSx0LG4pe2Uuc2V0SG91cnMoZS5nZXRIb3VycygpJTEyKzEyKnIobmV3IFJlZ0V4cChuLmFtUE1bMV0sImkiKS50ZXN0KHQpKSl9LE06ZnVuY3Rpb24oZSx0LG4pe2Uuc2V0TW9udGgobi5tb250aHMuc2hvcnRoYW5kLmluZGV4T2YodCkpfSxTOmZ1bmN0aW9uKGUsdCl7ZS5zZXRTZWNvbmRzKHBhcnNlRmxvYXQodCkpfSxVOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKDFlMypwYXJzZUZsb2F0KHQpKX0sVzpmdW5jdGlvbihlLHQsbil7dmFyIGE9cGFyc2VJbnQodCksaT1uZXcgRGF0ZShlLmdldEZ1bGxZZWFyKCksMCwyKzcqKGEtMSksMCwwLDAsMCk7cmV0dXJuIGkuc2V0RGF0ZShpLmdldERhdGUoKS1pLmdldERheSgpK24uZmlyc3REYXlPZldlZWspLGl9LFk6ZnVuY3Rpb24oZSx0KXtlLnNldEZ1bGxZZWFyKHBhcnNlRmxvYXQodCkpfSxaOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBEYXRlKHQpfSxkOmZ1bmN0aW9uKGUsdCl7ZS5zZXREYXRlKHBhcnNlRmxvYXQodCkpfSxoOmZ1bmN0aW9uKGUsdCl7ZS5zZXRIb3VycyhwYXJzZUZsb2F0KHQpKX0saTpmdW5jdGlvbihlLHQpe2Uuc2V0TWludXRlcyhwYXJzZUZsb2F0KHQpKX0sajpmdW5jdGlvbihlLHQpe2Uuc2V0RGF0ZShwYXJzZUZsb2F0KHQpKX0sbDpwLG06ZnVuY3Rpb24oZSx0KXtlLnNldE1vbnRoKHBhcnNlRmxvYXQodCktMSl9LG46ZnVuY3Rpb24oZSx0KXtlLnNldE1vbnRoKHBhcnNlRmxvYXQodCktMSl9LHM6ZnVuY3Rpb24oZSx0KXtlLnNldFNlY29uZHMocGFyc2VGbG9hdCh0KSl9LHU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbmV3IERhdGUocGFyc2VGbG9hdCh0KSl9LHc6cCx5OmZ1bmN0aW9uKGUsdCl7ZS5zZXRGdWxsWWVhcigyZTMrcGFyc2VGbG9hdCh0KSl9fSxEPXtEOiIoXFx3KykiLEY6IihcXHcrKSIsRzoiKFxcZFxcZHxcXGQpIixIOiIoXFxkXFxkfFxcZCkiLEo6IihcXGRcXGR8XFxkKVxcdysiLEs6IiIsTToiKFxcdyspIixTOiIoXFxkXFxkfFxcZCkiLFU6IiguKykiLFc6IihcXGRcXGR8XFxkKSIsWToiKFxcZHs0fSkiLFo6IiguKykiLGQ6IihcXGRcXGR8XFxkKSIsaDoiKFxcZFxcZHxcXGQpIixpOiIoXFxkXFxkfFxcZCkiLGo6IihcXGRcXGR8XFxkKSIsbDoiKFxcdyspIixtOiIoXFxkXFxkfFxcZCkiLG46IihcXGRcXGR8XFxkKSIsczoiKFxcZFxcZHxcXGQpIix1OiIoLispIix3OiIoXFxkXFxkfFxcZCkiLHk6IihcXGR7Mn0pIn0sdz17WjpmdW5jdGlvbihlKXtyZXR1cm4gZS50b0lTT1N0cmluZygpfSxEOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdC53ZWVrZGF5cy5zaG9ydGhhbmRbdy53KGUsdCxuKV19LEY6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoKHcubihlLHQsbiktMSwhMSx0KX0sRzpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG8ody5oKGUsdCxuKSl9LEg6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXRIb3VycygpKX0sSjpmdW5jdGlvbihlLHQpe3JldHVybiB2b2lkIDAhPT10Lm9yZGluYWw\/ZS5nZXREYXRlKCkrdC5vcmRpbmFsKGUuZ2V0RGF0ZSgpKTplLmdldERhdGUoKX0sSzpmdW5jdGlvbihlLHQpe3JldHVybiB0LmFtUE1bcihlLmdldEhvdXJzKCk+MTEpXX0sTTpmdW5jdGlvbihlLHQpe3JldHVybiBoKGUuZ2V0TW9udGgoKSwhMCx0KX0sUzpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldFNlY29uZHMoKSl9LFU6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0VGltZSgpLzFlM30sVzpmdW5jdGlvbihlLHQsbil7cmV0dXJuIG4uZ2V0V2VlayhlKX0sWTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldEZ1bGxZZWFyKCksNCl9LGQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZS5nZXREYXRlKCkpfSxoOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEhvdXJzKCklMTI\/ZS5nZXRIb3VycygpJTEyOjEyfSxpOmZ1bmN0aW9uKGUpe3JldHVybiBvKGUuZ2V0TWludXRlcygpKX0sajpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXREYXRlKCl9LGw6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdC53ZWVrZGF5cy5sb25naGFuZFtlLmdldERheSgpXX0sbTpmdW5jdGlvbihlKXtyZXR1cm4gbyhlLmdldE1vbnRoKCkrMSl9LG46ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0TW9udGgoKSsxfSxzOmZ1bmN0aW9uKGUpe3JldHVybiBlLmdldFNlY29uZHMoKX0sdTpmdW5jdGlvbihlKXtyZXR1cm4gZS5nZXRUaW1lKCl9LHc6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuZ2V0RGF5KCl9LHk6ZnVuY3Rpb24oZSl7cmV0dXJuIFN0cmluZyhlLmdldEZ1bGxZZWFyKCkpLnN1YnN0cmluZygyKX19LGI9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5jb25maWcsbj12b2lkIDA9PT10P2E6dCxvPWUubDEwbixyPXZvaWQgMD09PW8\/aTpvLGw9ZS5pc01vYmlsZSxjPXZvaWQgMCE9PWwmJmw7cmV0dXJuIGZ1bmN0aW9uKGUsdCxhKXt2YXIgaT1hfHxyO3JldHVybiB2b2lkIDA9PT1uLmZvcm1hdERhdGV8fGM\/dC5zcGxpdCgiIikubWFwKChmdW5jdGlvbih0LGEsbyl7cmV0dXJuIHdbdF0mJiJcXCIhPT1vW2EtMV0\/d1t0XShlLGksbik6IlxcIiE9PXQ\/dDoiIn0pKS5qb2luKCIiKTpuLmZvcm1hdERhdGUoZSx0LGkpfX0sQz1mdW5jdGlvbihlKXt2YXIgdD1lLmNvbmZpZyxuPXZvaWQgMD09PXQ\/YTp0LG89ZS5sMTBuLHI9dm9pZCAwPT09bz9pOm87cmV0dXJuIGZ1bmN0aW9uKGUsdCxpLG8pe2lmKDA9PT1lfHxlKXt2YXIgbCxjPW98fHIsZD1lO2lmKGUgaW5zdGFuY2VvZiBEYXRlKWw9bmV3IERhdGUoZS5nZXRUaW1lKCkpO2Vsc2UgaWYoInN0cmluZyIhPXR5cGVvZiBlJiZ2b2lkIDAhPT1lLnRvRml4ZWQpbD1uZXcgRGF0ZShlKTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSl7dmFyIHM9dHx8KG58fGEpLmRhdGVGb3JtYXQsdT1TdHJpbmcoZSkudHJpbSgpO2lmKCJ0b2RheSI9PT11KWw9bmV3IERhdGUsaT0hMDtlbHNlIGlmKC9aJC8udGVzdCh1KXx8L0dNVCQvLnRlc3QodSkpbD1uZXcgRGF0ZShlKTtlbHNlIGlmKG4mJm4ucGFyc2VEYXRlKWw9bi5wYXJzZURhdGUoZSxzKTtlbHNle2w9biYmbi5ub0NhbGVuZGFyP25ldyBEYXRlKChuZXcgRGF0ZSkuc2V0SG91cnMoMCwwLDAsMCkpOm5ldyBEYXRlKChuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKSwwLDEsMCwwLDAsMCk7Zm9yKHZhciBmPXZvaWQgMCxtPVtdLGc9MCxwPTAsaD0iIjtnPHMubGVuZ3RoO2crKyl7dmFyIHc9c1tnXSxiPSJcXCI9PT13LEM9IlxcIj09PXNbZy0xXXx8YjtpZihEW3ddJiYhQyl7aCs9RFt3XTt2YXIgTT1uZXcgUmVnRXhwKGgpLmV4ZWMoZSk7TSYmKGY9ITApJiZtWyJZIiE9PXc\/InB1c2giOiJ1bnNoaWZ0Il0oe2ZuOnZbd10sdmFsOk1bKytwXX0pfWVsc2UgYnx8KGgrPSIuIik7bS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgdD1lLmZuLG49ZS52YWw7cmV0dXJuIGw9dChsLG4sYyl8fGx9KSl9bD1mP2w6dm9pZCAwfX1pZihsIGluc3RhbmNlb2YgRGF0ZSYmIWlzTmFOKGwuZ2V0VGltZSgpKSlyZXR1cm4hMD09PWkmJmwuc2V0SG91cnMoMCwwLDAsMCksbDtuLmVycm9ySGFuZGxlcihuZXcgRXJyb3IoIkludmFsaWQgZGF0ZSBwcm92aWRlZDogIitkKSl9fX07ZnVuY3Rpb24gTShlLHQsbil7cmV0dXJuIHZvaWQgMD09PW4mJihuPSEwKSwhMSE9PW4\/bmV3IERhdGUoZS5nZXRUaW1lKCkpLnNldEhvdXJzKDAsMCwwLDApLW5ldyBEYXRlKHQuZ2V0VGltZSgpKS5zZXRIb3VycygwLDAsMCwwKTplLmdldFRpbWUoKS10LmdldFRpbWUoKX12YXIgeT04NjRlNTtmdW5jdGlvbiB4KGUpe3ZhciB0PWUuZGVmYXVsdEhvdXIsbj1lLmRlZmF1bHRNaW51dGUsYT1lLmRlZmF1bHRTZWNvbmRzO2lmKHZvaWQgMCE9PWUubWluRGF0ZSl7dmFyIGk9ZS5taW5EYXRlLmdldEhvdXJzKCksbz1lLm1pbkRhdGUuZ2V0TWludXRlcygpLHI9ZS5taW5EYXRlLmdldFNlY29uZHMoKTt0PGkmJih0PWkpLHQ9PT1pJiZuPG8mJihuPW8pLHQ9PT1pJiZuPT09byYmYTxyJiYoYT1lLm1pbkRhdGUuZ2V0U2Vjb25kcygpKX1pZih2b2lkIDAhPT1lLm1heERhdGUpe3ZhciBsPWUubWF4RGF0ZS5nZXRIb3VycygpLGM9ZS5tYXhEYXRlLmdldE1pbnV0ZXMoKTsodD1NYXRoLm1pbih0LGwpKT09PWwmJihuPU1hdGgubWluKGMsbikpLHQ9PT1sJiZuPT09YyYmKGE9ZS5tYXhEYXRlLmdldFNlY29uZHMoKSl9cmV0dXJue2hvdXJzOnQsbWludXRlczpuLHNlY29uZHM6YX19ImZ1bmN0aW9uIiE9dHlwZW9mIE9iamVjdC5hc3NpZ24mJihPYmplY3QuYXNzaWduPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1bXSxuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl0W24tMV09YXJndW1lbnRzW25dO2lmKCFlKXRocm93IFR5cGVFcnJvcigiQ2Fubm90IGNvbnZlcnQgdW5kZWZpbmVkIG9yIG51bGwgdG8gb2JqZWN0Iik7Zm9yKHZhciBhPWZ1bmN0aW9uKHQpe3QmJk9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3JldHVybiBlW25dPXRbbl19KSl9LGk9MCxvPXQ7aTxvLmxlbmd0aDtpKyspe3ZhciByPW9baV07YShyKX1yZXR1cm4gZX0pO2Z1bmN0aW9uIEUocCx2KXt2YXIgdz17Y29uZmlnOmUoZSh7fSxhKSxULmRlZmF1bHRDb25maWcpLGwxMG46aX07ZnVuY3Rpb24gRShlKXtyZXR1cm4gZS5iaW5kKHcpfWZ1bmN0aW9uIGsoKXt2YXIgZT13LmNvbmZpZzshMT09PWUud2Vla051bWJlcnMmJjE9PT1lLnNob3dNb250aHN8fCEwIT09ZS5ub0NhbGVuZGFyJiZ3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe2lmKHZvaWQgMCE9PXcuY2FsZW5kYXJDb250YWluZXImJih3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnZpc2liaWxpdHk9ImhpZGRlbiIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSJibG9jayIpLHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lcil7dmFyIHQ9KHcuZGF5cy5vZmZzZXRXaWR0aCsxKSplLnNob3dNb250aHM7dy5kYXlzQ29udGFpbmVyLnN0eWxlLndpZHRoPXQrInB4Iix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLndpZHRoPXQrKHZvaWQgMCE9PXcud2Vla1dyYXBwZXI\/dy53ZWVrV3JhcHBlci5vZmZzZXRXaWR0aDowKSsicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmVtb3ZlUHJvcGVydHkoInZpc2liaWxpdHkiKSx3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCJkaXNwbGF5Iil9fSkpfWZ1bmN0aW9uIEkoZSl7aWYoMD09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgpe3ZhciB0PXZvaWQgMD09PXcuY29uZmlnLm1pbkRhdGV8fE0obmV3IERhdGUsdy5jb25maWcubWluRGF0ZSk+PTA\/bmV3IERhdGU6bmV3IERhdGUody5jb25maWcubWluRGF0ZS5nZXRUaW1lKCkpLG49eCh3LmNvbmZpZyk7dC5zZXRIb3VycyhuLmhvdXJzLG4ubWludXRlcyxuLnNlY29uZHMsdC5nZXRNaWxsaXNlY29uZHMoKSksdy5zZWxlY3RlZERhdGVzPVt0XSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj10fXZvaWQgMCE9PWUmJiJibHVyIiE9PWUudHlwZSYmZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpO3ZhciB0PSJrZXlkb3duIj09PWUudHlwZSxuPWcoZSksYT1uO3ZvaWQgMCE9PXcuYW1QTSYmbj09PXcuYW1QTSYmKHcuYW1QTS50ZXh0Q29udGVudD13LmwxMG4uYW1QTVtyKHcuYW1QTS50ZXh0Q29udGVudD09PXcubDEwbi5hbVBNWzBdKV0pO3ZhciBpPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoIm1pbiIpKSxsPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoIm1heCIpKSxjPXBhcnNlRmxvYXQoYS5nZXRBdHRyaWJ1dGUoInN0ZXAiKSksZD1wYXJzZUludChhLnZhbHVlLDEwKSxzPWUuZGVsdGF8fCh0PzM4PT09ZS53aGljaD8xOi0xOjApLHU9ZCtjKnM7aWYodm9pZCAwIT09YS52YWx1ZSYmMj09PWEudmFsdWUubGVuZ3RoKXt2YXIgZj1hPT09dy5ob3VyRWxlbWVudCxtPWE9PT13Lm1pbnV0ZUVsZW1lbnQ7dTxpPyh1PWwrdStyKCFmKSsocihmKSYmcighdy5hbVBNKSksbSYmaih2b2lkIDAsLTEsdy5ob3VyRWxlbWVudCkpOnU+bCYmKHU9YT09PXcuaG91ckVsZW1lbnQ\/dS1sLXIoIXcuYW1QTSk6aSxtJiZqKHZvaWQgMCwxLHcuaG91ckVsZW1lbnQpKSx3LmFtUE0mJmYmJigxPT09Yz91K2Q9PT0yMzpNYXRoLmFicyh1LWQpPmMpJiYody5hbVBNLnRleHRDb250ZW50PXcubDEwbi5hbVBNW3Iody5hbVBNLnRleHRDb250ZW50PT09dy5sMTBuLmFtUE1bMF0pXSksYS52YWx1ZT1vKHUpfX0oZSk7dmFyIGE9dy5faW5wdXQudmFsdWU7UygpLGJlKCksdy5faW5wdXQudmFsdWUhPT1hJiZ3Ll9kZWJvdW5jZWRDaGFuZ2UoKX1mdW5jdGlvbiBTKCl7aWYodm9pZCAwIT09dy5ob3VyRWxlbWVudCYmdm9pZCAwIT09dy5taW51dGVFbGVtZW50KXt2YXIgZSx0LG49KHBhcnNlSW50KHcuaG91ckVsZW1lbnQudmFsdWUuc2xpY2UoLTIpLDEwKXx8MCklMjQsYT0ocGFyc2VJbnQody5taW51dGVFbGVtZW50LnZhbHVlLDEwKXx8MCklNjAsaT12b2lkIDAhPT13LnNlY29uZEVsZW1lbnQ\/KHBhcnNlSW50KHcuc2Vjb25kRWxlbWVudC52YWx1ZSwxMCl8fDApJTYwOjA7dm9pZCAwIT09dy5hbVBNJiYoZT1uLHQ9dy5hbVBNLnRleHRDb250ZW50LG49ZSUxMisxMipyKHQ9PT13LmwxMG4uYW1QTVsxXSkpO3ZhciBvPXZvaWQgMCE9PXcuY29uZmlnLm1pblRpbWV8fHcuY29uZmlnLm1pbkRhdGUmJncubWluRGF0ZUhhc1RpbWUmJncubGF0ZXN0U2VsZWN0ZWREYXRlT2JqJiYwPT09TSh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaix3LmNvbmZpZy5taW5EYXRlLCEwKTtpZih2b2lkIDAhPT13LmNvbmZpZy5tYXhUaW1lfHx3LmNvbmZpZy5tYXhEYXRlJiZ3Lm1heERhdGVIYXNUaW1lJiZ3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaiYmMD09PU0ody5sYXRlc3RTZWxlY3RlZERhdGVPYmosdy5jb25maWcubWF4RGF0ZSwhMCkpe3ZhciBsPXZvaWQgMCE9PXcuY29uZmlnLm1heFRpbWU\/dy5jb25maWcubWF4VGltZTp3LmNvbmZpZy5tYXhEYXRlOyhuPU1hdGgubWluKG4sbC5nZXRIb3VycygpKSk9PT1sLmdldEhvdXJzKCkmJihhPU1hdGgubWluKGEsbC5nZXRNaW51dGVzKCkpKSxhPT09bC5nZXRNaW51dGVzKCkmJihpPU1hdGgubWluKGksbC5nZXRTZWNvbmRzKCkpKX1pZihvKXt2YXIgYz12b2lkIDAhPT13LmNvbmZpZy5taW5UaW1lP3cuY29uZmlnLm1pblRpbWU6dy5jb25maWcubWluRGF0ZTsobj1NYXRoLm1heChuLGMuZ2V0SG91cnMoKSkpPT09Yy5nZXRIb3VycygpJiZhPGMuZ2V0TWludXRlcygpJiYoYT1jLmdldE1pbnV0ZXMoKSksYT09PWMuZ2V0TWludXRlcygpJiYoaT1NYXRoLm1heChpLGMuZ2V0U2Vjb25kcygpKSl9TyhuLGEsaSl9fWZ1bmN0aW9uIF8oZSl7dmFyIHQ9ZXx8dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo7dCYmTyh0LmdldEhvdXJzKCksdC5nZXRNaW51dGVzKCksdC5nZXRTZWNvbmRzKCkpfWZ1bmN0aW9uIE8oZSx0LG4pe3ZvaWQgMCE9PXcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqJiZ3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5zZXRIb3VycyhlJTI0LHQsbnx8MCwwKSx3LmhvdXJFbGVtZW50JiZ3Lm1pbnV0ZUVsZW1lbnQmJiF3LmlzTW9iaWxlJiYody5ob3VyRWxlbWVudC52YWx1ZT1vKHcuY29uZmlnLnRpbWVfMjRocj9lOigxMitlKSUxMisxMipyKGUlMTI9PTApKSx3Lm1pbnV0ZUVsZW1lbnQudmFsdWU9byh0KSx2b2lkIDAhPT13LmFtUE0mJih3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bcihlPj0xMildKSx2b2lkIDAhPT13LnNlY29uZEVsZW1lbnQmJih3LnNlY29uZEVsZW1lbnQudmFsdWU9byhuKSkpfWZ1bmN0aW9uIEYoZSl7dmFyIHQ9ZyhlKSxuPXBhcnNlSW50KHQudmFsdWUpKyhlLmRlbHRhfHwwKTsobi8xZTM+MXx8IkVudGVyIj09PWUua2V5JiYhL1teXGRdLy50ZXN0KG4udG9TdHJpbmcoKSkpJiZRKG4pfWZ1bmN0aW9uIEEoZSx0LG4sYSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBBcnJheT90LmZvckVhY2goKGZ1bmN0aW9uKHQpe3JldHVybiBBKGUsdCxuLGEpfSkpOmUgaW5zdGFuY2VvZiBBcnJheT9lLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBBKGUsdCxuLGEpfSkpOihlLmFkZEV2ZW50TGlzdGVuZXIodCxuLGEpLHZvaWQgdy5faGFuZGxlcnMucHVzaCh7cmVtb3ZlOmZ1bmN0aW9uKCl7cmV0dXJuIGUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4pfX0pKX1mdW5jdGlvbiBOKCl7cGUoIm9uQ2hhbmdlIil9ZnVuY3Rpb24gUChlLHQpe3ZhciBuPXZvaWQgMCE9PWU\/dy5wYXJzZURhdGUoZSk6dy5sYXRlc3RTZWxlY3RlZERhdGVPYmp8fCh3LmNvbmZpZy5taW5EYXRlJiZ3LmNvbmZpZy5taW5EYXRlPncubm93P3cuY29uZmlnLm1pbkRhdGU6dy5jb25maWcubWF4RGF0ZSYmdy5jb25maWcubWF4RGF0ZTx3Lm5vdz93LmNvbmZpZy5tYXhEYXRlOncubm93KSxhPXcuY3VycmVudFllYXIsaT13LmN1cnJlbnRNb250aDt0cnl7dm9pZCAwIT09biYmKHcuY3VycmVudFllYXI9bi5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPW4uZ2V0TW9udGgoKSl9Y2F0Y2goZSl7ZS5tZXNzYWdlPSJJbnZhbGlkIGRhdGUgc3VwcGxpZWQ6ICIrbix3LmNvbmZpZy5lcnJvckhhbmRsZXIoZSl9dCYmdy5jdXJyZW50WWVhciE9PWEmJihwZSgib25ZZWFyQ2hhbmdlIiksSygpKSwhdHx8dy5jdXJyZW50WWVhcj09PWEmJncuY3VycmVudE1vbnRoPT09aXx8cGUoIm9uTW9udGhDaGFuZ2UiKSx3LnJlZHJhdygpfWZ1bmN0aW9uIFkoZSl7dmFyIHQ9ZyhlKTt+dC5jbGFzc05hbWUuaW5kZXhPZigiYXJyb3ciKSYmaihlLHQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcnJvd1VwIik\/MTotMSl9ZnVuY3Rpb24gaihlLHQsbil7dmFyIGE9ZSYmZyhlKSxpPW58fGEmJmEucGFyZW50Tm9kZSYmYS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsbz1oZSgiaW5jcmVtZW50Iik7by5kZWx0YT10LGkmJmkuZGlzcGF0Y2hFdmVudChvKX1mdW5jdGlvbiBIKGUsdCxuLGEpe3ZhciBpPVgodCwhMCksbz1zKCJzcGFuIiwiZmxhdHBpY2tyLWRheSAiK2UsdC5nZXREYXRlKCkudG9TdHJpbmcoKSk7cmV0dXJuIG8uZGF0ZU9iaj10LG8uJGk9YSxvLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdy5mb3JtYXREYXRlKHQsdy5jb25maWcuYXJpYURhdGVGb3JtYXQpKSwtMT09PWUuaW5kZXhPZigiaGlkZGVuIikmJjA9PT1NKHQsdy5ub3cpJiYody50b2RheURhdGVFbGVtPW8sby5jbGFzc0xpc3QuYWRkKCJ0b2RheSIpLG8uc2V0QXR0cmlidXRlKCJhcmlhLWN1cnJlbnQiLCJkYXRlIikpLGk\/KG8udGFiSW5kZXg9LTEsdmUodCkmJihvLmNsYXNzTGlzdC5hZGQoInNlbGVjdGVkIiksdy5zZWxlY3RlZERhdGVFbGVtPW8sInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJihkKG8sInN0YXJ0UmFuZ2UiLHcuc2VsZWN0ZWREYXRlc1swXSYmMD09PU0odCx3LnNlbGVjdGVkRGF0ZXNbMF0sITApKSxkKG8sImVuZFJhbmdlIix3LnNlbGVjdGVkRGF0ZXNbMV0mJjA9PT1NKHQsdy5zZWxlY3RlZERhdGVzWzFdLCEwKSksIm5leHRNb250aERheSI9PT1lJiZvLmNsYXNzTGlzdC5hZGQoImluUmFuZ2UiKSkpKTpvLmNsYXNzTGlzdC5hZGQoImZsYXRwaWNrci1kaXNhYmxlZCIpLCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiZmdW5jdGlvbihlKXtyZXR1cm4hKCJyYW5nZSIhPT13LmNvbmZpZy5tb2RlfHx3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPDIpJiYoTShlLHcuc2VsZWN0ZWREYXRlc1swXSk+PTAmJk0oZSx3LnNlbGVjdGVkRGF0ZXNbMV0pPD0wKX0odCkmJiF2ZSh0KSYmby5jbGFzc0xpc3QuYWRkKCJpblJhbmdlIiksdy53ZWVrTnVtYmVycyYmMT09PXcuY29uZmlnLnNob3dNb250aHMmJiJwcmV2TW9udGhEYXkiIT09ZSYmbiU3PT0xJiZ3LndlZWtOdW1iZXJzLmluc2VydEFkamFjZW50SFRNTCgiYmVmb3JlZW5kIiwiPHNwYW4gY2xhc3M9J2ZsYXRwaWNrci1kYXknPiIrdy5jb25maWcuZ2V0V2Vlayh0KSsiPC9zcGFuPiIpLHBlKCJvbkRheUNyZWF0ZSIsbyksb31mdW5jdGlvbiBMKGUpe2UuZm9jdXMoKSwicmFuZ2UiPT09dy5jb25maWcubW9kZSYmYWUoZSl9ZnVuY3Rpb24gVyhlKXtmb3IodmFyIHQ9ZT4wPzA6dy5jb25maWcuc2hvd01vbnRocy0xLG49ZT4wP3cuY29uZmlnLnNob3dNb250aHM6LTEsYT10O2EhPW47YSs9ZSlmb3IodmFyIGk9dy5kYXlzQ29udGFpbmVyLmNoaWxkcmVuW2FdLG89ZT4wPzA6aS5jaGlsZHJlbi5sZW5ndGgtMSxyPWU+MD9pLmNoaWxkcmVuLmxlbmd0aDotMSxsPW87bCE9cjtsKz1lKXt2YXIgYz1pLmNoaWxkcmVuW2xdO2lmKC0xPT09Yy5jbGFzc05hbWUuaW5kZXhPZigiaGlkZGVuIikmJlgoYy5kYXRlT2JqKSlyZXR1cm4gY319ZnVuY3Rpb24gUihlLHQpe3ZhciBuPWVlKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnR8fGRvY3VtZW50LmJvZHkpLGE9dm9pZCAwIT09ZT9lOm4\/ZG9jdW1lbnQuYWN0aXZlRWxlbWVudDp2b2lkIDAhPT13LnNlbGVjdGVkRGF0ZUVsZW0mJmVlKHcuc2VsZWN0ZWREYXRlRWxlbSk\/dy5zZWxlY3RlZERhdGVFbGVtOnZvaWQgMCE9PXcudG9kYXlEYXRlRWxlbSYmZWUody50b2RheURhdGVFbGVtKT93LnRvZGF5RGF0ZUVsZW06Vyh0PjA\/MTotMSk7dm9pZCAwPT09YT93Ll9pbnB1dC5mb2N1cygpOm4\/ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49LTE9PT1lLmNsYXNzTmFtZS5pbmRleE9mKCJNb250aCIpP2UuZGF0ZU9iai5nZXRNb250aCgpOncuY3VycmVudE1vbnRoLGE9dD4wP3cuY29uZmlnLnNob3dNb250aHM6LTEsaT10PjA\/MTotMSxvPW4tdy5jdXJyZW50TW9udGg7byE9YTtvKz1pKWZvcih2YXIgcj13LmRheXNDb250YWluZXIuY2hpbGRyZW5bb10sbD1uLXcuY3VycmVudE1vbnRoPT09bz9lLiRpK3Q6dDwwP3IuY2hpbGRyZW4ubGVuZ3RoLTE6MCxjPXIuY2hpbGRyZW4ubGVuZ3RoLGQ9bDtkPj0wJiZkPGMmJmQhPSh0PjA\/YzotMSk7ZCs9aSl7dmFyIHM9ci5jaGlsZHJlbltkXTtpZigtMT09PXMuY2xhc3NOYW1lLmluZGV4T2YoImhpZGRlbiIpJiZYKHMuZGF0ZU9iaikmJk1hdGguYWJzKGUuJGktZCk+PU1hdGguYWJzKHQpKXJldHVybiBMKHMpfXcuY2hhbmdlTW9udGgoaSksUihXKGkpLDApfShhLHQpOkwoYSl9ZnVuY3Rpb24gQihlLHQpe2Zvcih2YXIgbj0obmV3IERhdGUoZSx0LDEpLmdldERheSgpLXcubDEwbi5maXJzdERheU9mV2Vlays3KSU3LGE9dy51dGlscy5nZXREYXlzSW5Nb250aCgodC0xKzEyKSUxMixlKSxpPXcudXRpbHMuZ2V0RGF5c0luTW9udGgodCxlKSxvPXdpbmRvdy5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCkscj13LmNvbmZpZy5zaG93TW9udGhzPjEsbD1yPyJwcmV2TW9udGhEYXkgaGlkZGVuIjoicHJldk1vbnRoRGF5IixjPXI\/Im5leHRNb250aERheSBoaWRkZW4iOiJuZXh0TW9udGhEYXkiLGQ9YSsxLW4sdT0wO2Q8PWE7ZCsrLHUrKylvLmFwcGVuZENoaWxkKEgobCxuZXcgRGF0ZShlLHQtMSxkKSxkLHUpKTtmb3IoZD0xO2Q8PWk7ZCsrLHUrKylvLmFwcGVuZENoaWxkKEgoIiIsbmV3IERhdGUoZSx0LGQpLGQsdSkpO2Zvcih2YXIgZj1pKzE7Zjw9NDItbiYmKDE9PT13LmNvbmZpZy5zaG93TW9udGhzfHx1JTchPTApO2YrKyx1Kyspby5hcHBlbmRDaGlsZChIKGMsbmV3IERhdGUoZSx0KzEsZiVpKSxmLHUpKTt2YXIgbT1zKCJkaXYiLCJkYXlDb250YWluZXIiKTtyZXR1cm4gbS5hcHBlbmRDaGlsZChvKSxtfWZ1bmN0aW9uIEooKXtpZih2b2lkIDAhPT13LmRheXNDb250YWluZXIpe3Uody5kYXlzQ29udGFpbmVyKSx3LndlZWtOdW1iZXJzJiZ1KHcud2Vla051bWJlcnMpO2Zvcih2YXIgZT1kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksdD0wO3Q8dy5jb25maWcuc2hvd01vbnRoczt0Kyspe3ZhciBuPW5ldyBEYXRlKHcuY3VycmVudFllYXIsdy5jdXJyZW50TW9udGgsMSk7bi5zZXRNb250aCh3LmN1cnJlbnRNb250aCt0KSxlLmFwcGVuZENoaWxkKEIobi5nZXRGdWxsWWVhcigpLG4uZ2V0TW9udGgoKSkpfXcuZGF5c0NvbnRhaW5lci5hcHBlbmRDaGlsZChlKSx3LmRheXM9dy5kYXlzQ29udGFpbmVyLmZpcnN0Q2hpbGQsInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJjE9PT13LnNlbGVjdGVkRGF0ZXMubGVuZ3RoJiZhZSgpfX1mdW5jdGlvbiBLKCl7aWYoISh3LmNvbmZpZy5zaG93TW9udGhzPjF8fCJkcm9wZG93biIhPT13LmNvbmZpZy5tb250aFNlbGVjdG9yVHlwZSkpe3ZhciBlPWZ1bmN0aW9uKGUpe3JldHVybiEodm9pZCAwIT09dy5jb25maWcubWluRGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKSYmZTx3LmNvbmZpZy5taW5EYXRlLmdldE1vbnRoKCkpJiYhKHZvaWQgMCE9PXcuY29uZmlnLm1heERhdGUmJncuY3VycmVudFllYXI9PT13LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkmJmU+dy5jb25maWcubWF4RGF0ZS5nZXRNb250aCgpKX07dy5tb250aHNEcm9wZG93bkNvbnRhaW5lci50YWJJbmRleD0tMSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLmlubmVySFRNTD0iIjtmb3IodmFyIHQ9MDt0PDEyO3QrKylpZihlKHQpKXt2YXIgbj1zKCJvcHRpb24iLCJmbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aCIpO24udmFsdWU9bmV3IERhdGUody5jdXJyZW50WWVhcix0KS5nZXRNb250aCgpLnRvU3RyaW5nKCksbi50ZXh0Q29udGVudD1oKHQsdy5jb25maWcuc2hvcnRoYW5kQ3VycmVudE1vbnRoLHcubDEwbiksbi50YWJJbmRleD0tMSx3LmN1cnJlbnRNb250aD09PXQmJihuLnNlbGVjdGVkPSEwKSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLmFwcGVuZENoaWxkKG4pfX19ZnVuY3Rpb24gVSgpe3ZhciBlLHQ9cygiZGl2IiwiZmxhdHBpY2tyLW1vbnRoIiksbj13aW5kb3cuZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpO3cuY29uZmlnLnNob3dNb250aHM+MXx8InN0YXRpYyI9PT13LmNvbmZpZy5tb250aFNlbGVjdG9yVHlwZT9lPXMoInNwYW4iLCJjdXItbW9udGgiKToody5tb250aHNEcm9wZG93bkNvbnRhaW5lcj1zKCJzZWxlY3QiLCJmbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHMiKSx3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdy5sMTBuLm1vbnRoQXJpYUxhYmVsKSxBKHcubW9udGhzRHJvcGRvd25Db250YWluZXIsImNoYW5nZSIsKGZ1bmN0aW9uKGUpe3ZhciB0PWcoZSksbj1wYXJzZUludCh0LnZhbHVlLDEwKTt3LmNoYW5nZU1vbnRoKG4tdy5jdXJyZW50TW9udGgpLHBlKCJvbk1vbnRoQ2hhbmdlIil9KSksSygpLGU9dy5tb250aHNEcm9wZG93bkNvbnRhaW5lcik7dmFyIGE9bSgiY3VyLXllYXIiLHt0YWJpbmRleDoiLTEifSksaT1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdO2kuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix3LmwxMG4ueWVhckFyaWFMYWJlbCksdy5jb25maWcubWluRGF0ZSYmaS5zZXRBdHRyaWJ1dGUoIm1pbiIsdy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCkpLHcuY29uZmlnLm1heERhdGUmJihpLnNldEF0dHJpYnV0ZSgibWF4Iix3LmNvbmZpZy5tYXhEYXRlLmdldEZ1bGxZZWFyKCkudG9TdHJpbmcoKSksaS5kaXNhYmxlZD0hIXcuY29uZmlnLm1pbkRhdGUmJncuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKT09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSk7dmFyIG89cygiZGl2IiwiZmxhdHBpY2tyLWN1cnJlbnQtbW9udGgiKTtyZXR1cm4gby5hcHBlbmRDaGlsZChlKSxvLmFwcGVuZENoaWxkKGEpLG4uYXBwZW5kQ2hpbGQobyksdC5hcHBlbmRDaGlsZChuKSx7Y29udGFpbmVyOnQseWVhckVsZW1lbnQ6aSxtb250aEVsZW1lbnQ6ZX19ZnVuY3Rpb24gcSgpe3Uody5tb250aE5hdiksdy5tb250aE5hdi5hcHBlbmRDaGlsZCh3LnByZXZNb250aE5hdiksdy5jb25maWcuc2hvd01vbnRocyYmKHcueWVhckVsZW1lbnRzPVtdLHcubW9udGhFbGVtZW50cz1bXSk7Zm9yKHZhciBlPXcuY29uZmlnLnNob3dNb250aHM7ZS0tOyl7dmFyIHQ9VSgpO3cueWVhckVsZW1lbnRzLnB1c2godC55ZWFyRWxlbWVudCksdy5tb250aEVsZW1lbnRzLnB1c2godC5tb250aEVsZW1lbnQpLHcubW9udGhOYXYuYXBwZW5kQ2hpbGQodC5jb250YWluZXIpfXcubW9udGhOYXYuYXBwZW5kQ2hpbGQody5uZXh0TW9udGhOYXYpfWZ1bmN0aW9uICQoKXt3LndlZWtkYXlDb250YWluZXI\/dSh3LndlZWtkYXlDb250YWluZXIpOncud2Vla2RheUNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla2RheXMiKTtmb3IodmFyIGU9dy5jb25maWcuc2hvd01vbnRocztlLS07KXt2YXIgdD1zKCJkaXYiLCJmbGF0cGlja3Itd2Vla2RheWNvbnRhaW5lciIpO3cud2Vla2RheUNvbnRhaW5lci5hcHBlbmRDaGlsZCh0KX1yZXR1cm4geigpLHcud2Vla2RheUNvbnRhaW5lcn1mdW5jdGlvbiB6KCl7aWYody53ZWVrZGF5Q29udGFpbmVyKXt2YXIgZT13LmwxMG4uZmlyc3REYXlPZldlZWssbj10KHcubDEwbi53ZWVrZGF5cy5zaG9ydGhhbmQpO2U+MCYmZTxuLmxlbmd0aCYmKG49dChuLnNwbGljZShlLG4ubGVuZ3RoKSxuLnNwbGljZSgwLGUpKSk7Zm9yKHZhciBhPXcuY29uZmlnLnNob3dNb250aHM7YS0tOyl3LndlZWtkYXlDb250YWluZXIuY2hpbGRyZW5bYV0uaW5uZXJIVE1MPSJcbiAgICAgIDxzcGFuIGNsYXNzPSdmbGF0cGlja3Itd2Vla2RheSc+XG4gICAgICAgICIrbi5qb2luKCI8L3NwYW4+PHNwYW4gY2xhc3M9J2ZsYXRwaWNrci13ZWVrZGF5Jz4iKSsiXG4gICAgICA8L3NwYW4+XG4gICAgICAifX1mdW5jdGlvbiBHKGUsdCl7dm9pZCAwPT09dCYmKHQ9ITApO3ZhciBuPXQ\/ZTplLXcuY3VycmVudE1vbnRoO248MCYmITA9PT13Ll9oaWRlUHJldk1vbnRoQXJyb3d8fG4+MCYmITA9PT13Ll9oaWRlTmV4dE1vbnRoQXJyb3d8fCh3LmN1cnJlbnRNb250aCs9biwody5jdXJyZW50TW9udGg8MHx8dy5jdXJyZW50TW9udGg+MTEpJiYody5jdXJyZW50WWVhcis9dy5jdXJyZW50TW9udGg+MTE\/MTotMSx3LmN1cnJlbnRNb250aD0ody5jdXJyZW50TW9udGgrMTIpJTEyLHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpLEooKSxwZSgib25Nb250aENoYW5nZSIpLERlKCkpfWZ1bmN0aW9uIFYoZSl7cmV0dXJuISghdy5jb25maWcuYXBwZW5kVG98fCF3LmNvbmZpZy5hcHBlbmRUby5jb250YWlucyhlKSl8fHcuY2FsZW5kYXJDb250YWluZXIuY29udGFpbnMoZSl9ZnVuY3Rpb24gWihlKXtpZih3LmlzT3BlbiYmIXcuY29uZmlnLmlubGluZSl7dmFyIHQ9ZyhlKSxuPVYodCksYT10PT09dy5pbnB1dHx8dD09PXcuYWx0SW5wdXR8fHcuZWxlbWVudC5jb250YWlucyh0KXx8ZS5wYXRoJiZlLnBhdGguaW5kZXhPZiYmKH5lLnBhdGguaW5kZXhPZih3LmlucHV0KXx8fmUucGF0aC5pbmRleE9mKHcuYWx0SW5wdXQpKSxpPSJibHVyIj09PWUudHlwZT9hJiZlLnJlbGF0ZWRUYXJnZXQmJiFWKGUucmVsYXRlZFRhcmdldCk6IWEmJiFuJiYhVihlLnJlbGF0ZWRUYXJnZXQpLG89IXcuY29uZmlnLmlnbm9yZWRGb2N1c0VsZW1lbnRzLnNvbWUoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNvbnRhaW5zKHQpfSkpO2kmJm8mJih2b2lkIDAhPT13LnRpbWVDb250YWluZXImJnZvaWQgMCE9PXcubWludXRlRWxlbWVudCYmdm9pZCAwIT09dy5ob3VyRWxlbWVudCYmIiIhPT13LmlucHV0LnZhbHVlJiZ2b2lkIDAhPT13LmlucHV0LnZhbHVlJiZJKCksdy5jbG9zZSgpLHcuY29uZmlnJiYicmFuZ2UiPT09dy5jb25maWcubW9kZSYmMT09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJih3LmNsZWFyKCExKSx3LnJlZHJhdygpKSl9fWZ1bmN0aW9uIFEoZSl7aWYoISghZXx8dy5jb25maWcubWluRGF0ZSYmZTx3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCl8fHcuY29uZmlnLm1heERhdGUmJmU+dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpKSl7dmFyIHQ9ZSxuPXcuY3VycmVudFllYXIhPT10O3cuY3VycmVudFllYXI9dHx8dy5jdXJyZW50WWVhcix3LmNvbmZpZy5tYXhEYXRlJiZ3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWF4RGF0ZS5nZXRGdWxsWWVhcigpP3cuY3VycmVudE1vbnRoPU1hdGgubWluKHcuY29uZmlnLm1heERhdGUuZ2V0TW9udGgoKSx3LmN1cnJlbnRNb250aCk6dy5jb25maWcubWluRGF0ZSYmdy5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1pbkRhdGUuZ2V0RnVsbFllYXIoKSYmKHcuY3VycmVudE1vbnRoPU1hdGgubWF4KHcuY29uZmlnLm1pbkRhdGUuZ2V0TW9udGgoKSx3LmN1cnJlbnRNb250aCkpLG4mJih3LnJlZHJhdygpLHBlKCJvblllYXJDaGFuZ2UiKSxLKCkpfX1mdW5jdGlvbiBYKGUsdCl7dmFyIG47dm9pZCAwPT09dCYmKHQ9ITApO3ZhciBhPXcucGFyc2VEYXRlKGUsdm9pZCAwLHQpO2lmKHcuY29uZmlnLm1pbkRhdGUmJmEmJk0oYSx3LmNvbmZpZy5taW5EYXRlLHZvaWQgMCE9PXQ\/dDohdy5taW5EYXRlSGFzVGltZSk8MHx8dy5jb25maWcubWF4RGF0ZSYmYSYmTShhLHcuY29uZmlnLm1heERhdGUsdm9pZCAwIT09dD90OiF3Lm1heERhdGVIYXNUaW1lKT4wKXJldHVybiExO2lmKCF3LmNvbmZpZy5lbmFibGUmJjA9PT13LmNvbmZpZy5kaXNhYmxlLmxlbmd0aClyZXR1cm4hMDtpZih2b2lkIDA9PT1hKXJldHVybiExO2Zvcih2YXIgaT0hIXcuY29uZmlnLmVuYWJsZSxvPW51bGwhPT0obj13LmNvbmZpZy5lbmFibGUpJiZ2b2lkIDAhPT1uP246dy5jb25maWcuZGlzYWJsZSxyPTAsbD12b2lkIDA7cjxvLmxlbmd0aDtyKyspe2lmKCJmdW5jdGlvbiI9PXR5cGVvZihsPW9bcl0pJiZsKGEpKXJldHVybiBpO2lmKGwgaW5zdGFuY2VvZiBEYXRlJiZ2b2lkIDAhPT1hJiZsLmdldFRpbWUoKT09PWEuZ2V0VGltZSgpKXJldHVybiBpO2lmKCJzdHJpbmciPT10eXBlb2YgbCl7dmFyIGM9dy5wYXJzZURhdGUobCx2b2lkIDAsITApO3JldHVybiBjJiZjLmdldFRpbWUoKT09PWEuZ2V0VGltZSgpP2k6IWl9aWYoIm9iamVjdCI9PXR5cGVvZiBsJiZ2b2lkIDAhPT1hJiZsLmZyb20mJmwudG8mJmEuZ2V0VGltZSgpPj1sLmZyb20uZ2V0VGltZSgpJiZhLmdldFRpbWUoKTw9bC50by5nZXRUaW1lKCkpcmV0dXJuIGl9cmV0dXJuIWl9ZnVuY3Rpb24gZWUoZSl7cmV0dXJuIHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lciYmKC0xPT09ZS5jbGFzc05hbWUuaW5kZXhPZigiaGlkZGVuIikmJi0xPT09ZS5jbGFzc05hbWUuaW5kZXhPZigiZmxhdHBpY2tyLWRpc2FibGVkIikmJncuZGF5c0NvbnRhaW5lci5jb250YWlucyhlKSl9ZnVuY3Rpb24gdGUoZSl7IShlLnRhcmdldD09PXcuX2lucHV0KXx8ISh3LnNlbGVjdGVkRGF0ZXMubGVuZ3RoPjB8fHcuX2lucHV0LnZhbHVlLmxlbmd0aD4wKXx8ZS5yZWxhdGVkVGFyZ2V0JiZWKGUucmVsYXRlZFRhcmdldCl8fHcuc2V0RGF0ZSh3Ll9pbnB1dC52YWx1ZSwhMCxlLnRhcmdldD09PXcuYWx0SW5wdXQ\/dy5jb25maWcuYWx0Rm9ybWF0OncuY29uZmlnLmRhdGVGb3JtYXQpfWZ1bmN0aW9uIG5lKGUpe3ZhciB0PWcoZSksbj13LmNvbmZpZy53cmFwP3AuY29udGFpbnModCk6dD09PXcuX2lucHV0LGE9dy5jb25maWcuYWxsb3dJbnB1dCxpPXcuaXNPcGVuJiYoIWF8fCFuKSxvPXcuY29uZmlnLmlubGluZSYmbiYmIWE7aWYoMTM9PT1lLmtleUNvZGUmJm4pe2lmKGEpcmV0dXJuIHcuc2V0RGF0ZSh3Ll9pbnB1dC52YWx1ZSwhMCx0PT09dy5hbHRJbnB1dD93LmNvbmZpZy5hbHRGb3JtYXQ6dy5jb25maWcuZGF0ZUZvcm1hdCksdC5ibHVyKCk7dy5vcGVuKCl9ZWxzZSBpZihWKHQpfHxpfHxvKXt2YXIgcj0hIXcudGltZUNvbnRhaW5lciYmdy50aW1lQ29udGFpbmVyLmNvbnRhaW5zKHQpO3N3aXRjaChlLmtleUNvZGUpe2Nhc2UgMTM6cj8oZS5wcmV2ZW50RGVmYXVsdCgpLEkoKSxzZSgpKTp1ZShlKTticmVhaztjYXNlIDI3OmUucHJldmVudERlZmF1bHQoKSxzZSgpO2JyZWFrO2Nhc2UgODpjYXNlIDQ2Om4mJiF3LmNvbmZpZy5hbGxvd0lucHV0JiYoZS5wcmV2ZW50RGVmYXVsdCgpLHcuY2xlYXIoKSk7YnJlYWs7Y2FzZSAzNzpjYXNlIDM5OmlmKHJ8fG4pdy5ob3VyRWxlbWVudCYmdy5ob3VyRWxlbWVudC5mb2N1cygpO2Vsc2UgaWYoZS5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgMCE9PXcuZGF5c0NvbnRhaW5lciYmKCExPT09YXx8ZG9jdW1lbnQuYWN0aXZlRWxlbWVudCYmZWUoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCkpKXt2YXIgbD0zOT09PWUua2V5Q29kZT8xOi0xO2UuY3RybEtleT8oZS5zdG9wUHJvcGFnYXRpb24oKSxHKGwpLFIoVygxKSwwKSk6Uih2b2lkIDAsbCl9YnJlYWs7Y2FzZSAzODpjYXNlIDQwOmUucHJldmVudERlZmF1bHQoKTt2YXIgYz00MD09PWUua2V5Q29kZT8xOi0xO3cuZGF5c0NvbnRhaW5lciYmdm9pZCAwIT09dC4kaXx8dD09PXcuaW5wdXR8fHQ9PT13LmFsdElucHV0P2UuY3RybEtleT8oZS5zdG9wUHJvcGFnYXRpb24oKSxRKHcuY3VycmVudFllYXItYyksUihXKDEpLDApKTpyfHxSKHZvaWQgMCw3KmMpOnQ9PT13LmN1cnJlbnRZZWFyRWxlbWVudD9RKHcuY3VycmVudFllYXItYyk6dy5jb25maWcuZW5hYmxlVGltZSYmKCFyJiZ3LmhvdXJFbGVtZW50JiZ3LmhvdXJFbGVtZW50LmZvY3VzKCksSShlKSx3Ll9kZWJvdW5jZWRDaGFuZ2UoKSk7YnJlYWs7Y2FzZSA5OmlmKHIpe3ZhciBkPVt3LmhvdXJFbGVtZW50LHcubWludXRlRWxlbWVudCx3LnNlY29uZEVsZW1lbnQsdy5hbVBNXS5jb25jYXQody5wbHVnaW5FbGVtZW50cykuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKSxzPWQuaW5kZXhPZih0KTtpZigtMSE9PXMpe3ZhciB1PWRbcysoZS5zaGlmdEtleT8tMToxKV07ZS5wcmV2ZW50RGVmYXVsdCgpLCh1fHx3Ll9pbnB1dCkuZm9jdXMoKX19ZWxzZSF3LmNvbmZpZy5ub0NhbGVuZGFyJiZ3LmRheXNDb250YWluZXImJncuZGF5c0NvbnRhaW5lci5jb250YWlucyh0KSYmZS5zaGlmdEtleSYmKGUucHJldmVudERlZmF1bHQoKSx3Ll9pbnB1dC5mb2N1cygpKX19aWYodm9pZCAwIT09dy5hbVBNJiZ0PT09dy5hbVBNKXN3aXRjaChlLmtleSl7Y2FzZSB3LmwxMG4uYW1QTVswXS5jaGFyQXQoMCk6Y2FzZSB3LmwxMG4uYW1QTVswXS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTp3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bMF0sUygpLGJlKCk7YnJlYWs7Y2FzZSB3LmwxMG4uYW1QTVsxXS5jaGFyQXQoMCk6Y2FzZSB3LmwxMG4uYW1QTVsxXS5jaGFyQXQoMCkudG9Mb3dlckNhc2UoKTp3LmFtUE0udGV4dENvbnRlbnQ9dy5sMTBuLmFtUE1bMV0sUygpLGJlKCl9KG58fFYodCkpJiZwZSgib25LZXlEb3duIixlKX1mdW5jdGlvbiBhZShlKXtpZigxPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmKCFlfHxlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRheSIpJiYhZS5jbGFzc0xpc3QuY29udGFpbnMoImZsYXRwaWNrci1kaXNhYmxlZCIpKSl7Zm9yKHZhciB0PWU\/ZS5kYXRlT2JqLmdldFRpbWUoKTp3LmRheXMuZmlyc3RFbGVtZW50Q2hpbGQuZGF0ZU9iai5nZXRUaW1lKCksbj13LnBhcnNlRGF0ZSh3LnNlbGVjdGVkRGF0ZXNbMF0sdm9pZCAwLCEwKS5nZXRUaW1lKCksYT1NYXRoLm1pbih0LHcuc2VsZWN0ZWREYXRlc1swXS5nZXRUaW1lKCkpLGk9TWF0aC5tYXgodCx3LnNlbGVjdGVkRGF0ZXNbMF0uZ2V0VGltZSgpKSxvPSExLHI9MCxsPTAsYz1hO2M8aTtjKz15KVgobmV3IERhdGUoYyksITApfHwobz1vfHxjPmEmJmM8aSxjPG4mJighcnx8Yz5yKT9yPWM6Yz5uJiYoIWx8fGM8bCkmJihsPWMpKTtmb3IodmFyIGQ9MDtkPHcuY29uZmlnLnNob3dNb250aHM7ZCsrKWZvcih2YXIgcz13LmRheXNDb250YWluZXIuY2hpbGRyZW5bZF0sdT1mdW5jdGlvbihhLGkpe3ZhciBjLGQsdSxmPXMuY2hpbGRyZW5bYV0sbT1mLmRhdGVPYmouZ2V0VGltZSgpLGc9cj4wJiZtPHJ8fGw+MCYmbT5sO3JldHVybiBnPyhmLmNsYXNzTGlzdC5hZGQoIm5vdEFsbG93ZWQiKSxbImluUmFuZ2UiLCJzdGFydFJhbmdlIiwiZW5kUmFuZ2UiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtmLmNsYXNzTGlzdC5yZW1vdmUoZSl9KSksImNvbnRpbnVlIik6byYmIWc\/ImNvbnRpbnVlIjooWyJzdGFydFJhbmdlIiwiaW5SYW5nZSIsImVuZFJhbmdlIiwibm90QWxsb3dlZCJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2YuY2xhc3NMaXN0LnJlbW92ZShlKX0pKSx2b2lkKHZvaWQgMCE9PWUmJihlLmNsYXNzTGlzdC5hZGQodDw9dy5zZWxlY3RlZERhdGVzWzBdLmdldFRpbWUoKT8ic3RhcnRSYW5nZSI6ImVuZFJhbmdlIiksbjx0JiZtPT09bj9mLmNsYXNzTGlzdC5hZGQoInN0YXJ0UmFuZ2UiKTpuPnQmJm09PT1uJiZmLmNsYXNzTGlzdC5hZGQoImVuZFJhbmdlIiksbT49ciYmKDA9PT1sfHxtPD1sKSYmKGQ9bix1PXQsKGM9bSk+TWF0aC5taW4oZCx1KSYmYzxNYXRoLm1heChkLHUpKSYmZi5jbGFzc0xpc3QuYWRkKCJpblJhbmdlIikpKSl9LGY9MCxtPXMuY2hpbGRyZW4ubGVuZ3RoO2Y8bTtmKyspdShmKX19ZnVuY3Rpb24gaWUoKXshdy5pc09wZW58fHcuY29uZmlnLnN0YXRpY3x8dy5jb25maWcuaW5saW5lfHxjZSgpfWZ1bmN0aW9uIG9lKGUpe3JldHVybiBmdW5jdGlvbih0KXt2YXIgbj13LmNvbmZpZ1siXyIrZSsiRGF0ZSJdPXcucGFyc2VEYXRlKHQsdy5jb25maWcuZGF0ZUZvcm1hdCksYT13LmNvbmZpZ1siXyIrKCJtaW4iPT09ZT8ibWF4IjoibWluIikrIkRhdGUiXTt2b2lkIDAhPT1uJiYod1sibWluIj09PWU\/Im1pbkRhdGVIYXNUaW1lIjoibWF4RGF0ZUhhc1RpbWUiXT1uLmdldEhvdXJzKCk+MHx8bi5nZXRNaW51dGVzKCk+MHx8bi5nZXRTZWNvbmRzKCk+MCksdy5zZWxlY3RlZERhdGVzJiYody5zZWxlY3RlZERhdGVzPXcuc2VsZWN0ZWREYXRlcy5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBYKGUpfSkpLHcuc2VsZWN0ZWREYXRlcy5sZW5ndGh8fCJtaW4iIT09ZXx8XyhuKSxiZSgpKSx3LmRheXNDb250YWluZXImJihkZSgpLHZvaWQgMCE9PW4\/dy5jdXJyZW50WWVhckVsZW1lbnRbZV09bi5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCk6dy5jdXJyZW50WWVhckVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGUpLHcuY3VycmVudFllYXJFbGVtZW50LmRpc2FibGVkPSEhYSYmdm9pZCAwIT09biYmYS5nZXRGdWxsWWVhcigpPT09bi5nZXRGdWxsWWVhcigpKX19ZnVuY3Rpb24gcmUoKXtyZXR1cm4gdy5jb25maWcud3JhcD9wLnF1ZXJ5U2VsZWN0b3IoIltkYXRhLWlucHV0XSIpOnB9ZnVuY3Rpb24gbGUoKXsib2JqZWN0IiE9dHlwZW9mIHcuY29uZmlnLmxvY2FsZSYmdm9pZCAwPT09VC5sMTBuc1t3LmNvbmZpZy5sb2NhbGVdJiZ3LmNvbmZpZy5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJmbGF0cGlja3I6IGludmFsaWQgbG9jYWxlICIrdy5jb25maWcubG9jYWxlKSksdy5sMTBuPWUoZSh7fSxULmwxMG5zLmRlZmF1bHQpLCJvYmplY3QiPT10eXBlb2Ygdy5jb25maWcubG9jYWxlP3cuY29uZmlnLmxvY2FsZToiZGVmYXVsdCIhPT13LmNvbmZpZy5sb2NhbGU\/VC5sMTBuc1t3LmNvbmZpZy5sb2NhbGVdOnZvaWQgMCksRC5LPSIoIit3LmwxMG4uYW1QTVswXSsifCIrdy5sMTBuLmFtUE1bMV0rInwiK3cubDEwbi5hbVBNWzBdLnRvTG93ZXJDYXNlKCkrInwiK3cubDEwbi5hbVBNWzFdLnRvTG93ZXJDYXNlKCkrIikiLHZvaWQgMD09PWUoZSh7fSx2KSxKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHAuZGF0YXNldHx8e30pKSkudGltZV8yNGhyJiZ2b2lkIDA9PT1ULmRlZmF1bHRDb25maWcudGltZV8yNGhyJiYody5jb25maWcudGltZV8yNGhyPXcubDEwbi50aW1lXzI0aHIpLHcuZm9ybWF0RGF0ZT1iKHcpLHcucGFyc2VEYXRlPUMoe2NvbmZpZzp3LmNvbmZpZyxsMTBuOncubDEwbn0pfWZ1bmN0aW9uIGNlKGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB3LmNvbmZpZy5wb3NpdGlvbil7aWYodm9pZCAwIT09dy5jYWxlbmRhckNvbnRhaW5lcil7cGUoIm9uUHJlQ2FsZW5kYXJQb3NpdGlvbiIpO3ZhciB0PWV8fHcuX3Bvc2l0aW9uRWxlbWVudCxuPUFycmF5LnByb3RvdHlwZS5yZWR1Y2UuY2FsbCh3LmNhbGVuZGFyQ29udGFpbmVyLmNoaWxkcmVuLChmdW5jdGlvbihlLHQpe3JldHVybiBlK3Qub2Zmc2V0SGVpZ2h0fSksMCksYT13LmNhbGVuZGFyQ29udGFpbmVyLm9mZnNldFdpZHRoLGk9dy5jb25maWcucG9zaXRpb24uc3BsaXQoIiAiKSxvPWlbMF0scj1pLmxlbmd0aD4xP2lbMV06bnVsbCxsPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksYz13aW5kb3cuaW5uZXJIZWlnaHQtbC5ib3R0b20scz0iYWJvdmUiPT09b3x8ImJlbG93IiE9PW8mJmM8biYmbC50b3A+bix1PXdpbmRvdy5wYWdlWU9mZnNldCtsLnRvcCsocz8tbi0yOnQub2Zmc2V0SGVpZ2h0KzIpO2lmKGQody5jYWxlbmRhckNvbnRhaW5lciwiYXJyb3dUb3AiLCFzKSxkKHcuY2FsZW5kYXJDb250YWluZXIsImFycm93Qm90dG9tIixzKSwhdy5jb25maWcuaW5saW5lKXt2YXIgZj13aW5kb3cucGFnZVhPZmZzZXQrbC5sZWZ0LG09ITEsZz0hMTsiY2VudGVyIj09PXI\/KGYtPShhLWwud2lkdGgpLzIsbT0hMCk6InJpZ2h0Ij09PXImJihmLT1hLWwud2lkdGgsZz0hMCksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd0xlZnQiLCFtJiYhZyksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd0NlbnRlciIsbSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhcnJvd1JpZ2h0IixnKTt2YXIgcD13aW5kb3cuZG9jdW1lbnQuYm9keS5vZmZzZXRXaWR0aC0od2luZG93LnBhZ2VYT2Zmc2V0K2wucmlnaHQpLGg9ZithPndpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoLHY9cCthPndpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoO2lmKGQody5jYWxlbmRhckNvbnRhaW5lciwicmlnaHRNb3N0IixoKSwhdy5jb25maWcuc3RhdGljKWlmKHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUudG9wPXUrInB4IixoKWlmKHYpe3ZhciBEPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPW51bGwsdD0wO3Q8ZG9jdW1lbnQuc3R5bGVTaGVldHMubGVuZ3RoO3QrKyl7dmFyIG49ZG9jdW1lbnQuc3R5bGVTaGVldHNbdF07dHJ5e24uY3NzUnVsZXN9Y2F0Y2goZSl7Y29udGludWV9ZT1uO2JyZWFrfXJldHVybiBudWxsIT1lP2U6KGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpLGEuc2hlZXQpO3ZhciBhfSgpO2lmKHZvaWQgMD09PUQpcmV0dXJuO3ZhciBiPXdpbmRvdy5kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoLEM9TWF0aC5tYXgoMCxiLzItYS8yKSxNPUQuY3NzUnVsZXMubGVuZ3RoLHk9IntsZWZ0OiIrbC5sZWZ0KyJweDtyaWdodDphdXRvO30iO2Qody5jYWxlbmRhckNvbnRhaW5lciwicmlnaHRNb3N0IiwhMSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJjZW50ZXJNb3N0IiwhMCksRC5pbnNlcnRSdWxlKCIuZmxhdHBpY2tyLWNhbGVuZGFyLmNlbnRlck1vc3Q6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIuY2VudGVyTW9zdDphZnRlciIreSxNKSx3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLmxlZnQ9QysicHgiLHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUucmlnaHQ9ImF1dG8ifWVsc2Ugdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5sZWZ0PSJhdXRvIix3LmNhbGVuZGFyQ29udGFpbmVyLnN0eWxlLnJpZ2h0PXArInB4IjtlbHNlIHcuY2FsZW5kYXJDb250YWluZXIuc3R5bGUubGVmdD1mKyJweCIsdy5jYWxlbmRhckNvbnRhaW5lci5zdHlsZS5yaWdodD0iYXV0byJ9fX1lbHNlIHcuY29uZmlnLnBvc2l0aW9uKHcsZSl9ZnVuY3Rpb24gZGUoKXt3LmNvbmZpZy5ub0NhbGVuZGFyfHx3LmlzTW9iaWxlfHwoSygpLERlKCksSigpKX1mdW5jdGlvbiBzZSgpe3cuX2lucHV0LmZvY3VzKCksLTEhPT13aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5pbmRleE9mKCJNU0lFIil8fHZvaWQgMCE9PW5hdmlnYXRvci5tc01heFRvdWNoUG9pbnRzP3NldFRpbWVvdXQody5jbG9zZSwwKTp3LmNsb3NlKCl9ZnVuY3Rpb24gdWUoZSl7ZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHQ9ZihnKGUpLChmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc0xpc3QmJmUuY2xhc3NMaXN0LmNvbnRhaW5zKCJmbGF0cGlja3ItZGF5IikmJiFlLmNsYXNzTGlzdC5jb250YWlucygiZmxhdHBpY2tyLWRpc2FibGVkIikmJiFlLmNsYXNzTGlzdC5jb250YWlucygibm90QWxsb3dlZCIpfSkpO2lmKHZvaWQgMCE9PXQpe3ZhciBuPXQsYT13LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj1uZXcgRGF0ZShuLmRhdGVPYmouZ2V0VGltZSgpKSxpPShhLmdldE1vbnRoKCk8dy5jdXJyZW50TW9udGh8fGEuZ2V0TW9udGgoKT53LmN1cnJlbnRNb250aCt3LmNvbmZpZy5zaG93TW9udGhzLTEpJiYicmFuZ2UiIT09dy5jb25maWcubW9kZTtpZih3LnNlbGVjdGVkRGF0ZUVsZW09biwic2luZ2xlIj09PXcuY29uZmlnLm1vZGUpdy5zZWxlY3RlZERhdGVzPVthXTtlbHNlIGlmKCJtdWx0aXBsZSI9PT13LmNvbmZpZy5tb2RlKXt2YXIgbz12ZShhKTtvP3cuc2VsZWN0ZWREYXRlcy5zcGxpY2UocGFyc2VJbnQobyksMSk6dy5zZWxlY3RlZERhdGVzLnB1c2goYSl9ZWxzZSJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYoMj09PXcuc2VsZWN0ZWREYXRlcy5sZW5ndGgmJncuY2xlYXIoITEsITEpLHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPWEsdy5zZWxlY3RlZERhdGVzLnB1c2goYSksMCE9PU0oYSx3LnNlbGVjdGVkRGF0ZXNbMF0sITApJiZ3LnNlbGVjdGVkRGF0ZXMuc29ydCgoZnVuY3Rpb24oZSx0KXtyZXR1cm4gZS5nZXRUaW1lKCktdC5nZXRUaW1lKCl9KSkpO2lmKFMoKSxpKXt2YXIgcj13LmN1cnJlbnRZZWFyIT09YS5nZXRGdWxsWWVhcigpO3cuY3VycmVudFllYXI9YS5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPWEuZ2V0TW9udGgoKSxyJiYocGUoIm9uWWVhckNoYW5nZSIpLEsoKSkscGUoIm9uTW9udGhDaGFuZ2UiKX1pZihEZSgpLEooKSxiZSgpLGl8fCJyYW5nZSI9PT13LmNvbmZpZy5tb2RlfHwxIT09dy5jb25maWcuc2hvd01vbnRocz92b2lkIDAhPT13LnNlbGVjdGVkRGF0ZUVsZW0mJnZvaWQgMD09PXcuaG91ckVsZW1lbnQmJncuc2VsZWN0ZWREYXRlRWxlbSYmdy5zZWxlY3RlZERhdGVFbGVtLmZvY3VzKCk6TChuKSx2b2lkIDAhPT13LmhvdXJFbGVtZW50JiZ2b2lkIDAhPT13LmhvdXJFbGVtZW50JiZ3LmhvdXJFbGVtZW50LmZvY3VzKCksdy5jb25maWcuY2xvc2VPblNlbGVjdCl7dmFyIGw9InNpbmdsZSI9PT13LmNvbmZpZy5tb2RlJiYhdy5jb25maWcuZW5hYmxlVGltZSxjPSJyYW5nZSI9PT13LmNvbmZpZy5tb2RlJiYyPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmIXcuY29uZmlnLmVuYWJsZVRpbWU7KGx8fGMpJiZzZSgpfU4oKX19dy5wYXJzZURhdGU9Qyh7Y29uZmlnOncuY29uZmlnLGwxMG46dy5sMTBufSksdy5faGFuZGxlcnM9W10sdy5wbHVnaW5FbGVtZW50cz1bXSx3LmxvYWRlZFBsdWdpbnM9W10sdy5fYmluZD1BLHcuX3NldEhvdXJzRnJvbURhdGU9Xyx3Ll9wb3NpdGlvbkNhbGVuZGFyPWNlLHcuY2hhbmdlTW9udGg9Ryx3LmNoYW5nZVllYXI9USx3LmNsZWFyPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09ZSYmKGU9ITApO3ZvaWQgMD09PXQmJih0PSEwKTt3LmlucHV0LnZhbHVlPSIiLHZvaWQgMCE9PXcuYWx0SW5wdXQmJih3LmFsdElucHV0LnZhbHVlPSIiKTt2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiYody5tb2JpbGVJbnB1dC52YWx1ZT0iIik7dy5zZWxlY3RlZERhdGVzPVtdLHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqPXZvaWQgMCwhMD09PXQmJih3LmN1cnJlbnRZZWFyPXcuX2luaXRpYWxEYXRlLmdldEZ1bGxZZWFyKCksdy5jdXJyZW50TW9udGg9dy5faW5pdGlhbERhdGUuZ2V0TW9udGgoKSk7aWYoITA9PT13LmNvbmZpZy5lbmFibGVUaW1lKXt2YXIgbj14KHcuY29uZmlnKSxhPW4uaG91cnMsaT1uLm1pbnV0ZXMsbz1uLnNlY29uZHM7TyhhLGksbyl9dy5yZWRyYXcoKSxlJiZwZSgib25DaGFuZ2UiKX0sdy5jbG9zZT1mdW5jdGlvbigpe3cuaXNPcGVuPSExLHcuaXNNb2JpbGV8fCh2b2lkIDAhPT13LmNhbGVuZGFyQ29udGFpbmVyJiZ3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm9wZW4iKSx2b2lkIDAhPT13Ll9pbnB1dCYmdy5faW5wdXQuY2xhc3NMaXN0LnJlbW92ZSgiYWN0aXZlIikpO3BlKCJvbkNsb3NlIil9LHcuX2NyZWF0ZUVsZW1lbnQ9cyx3LmRlc3Ryb3k9ZnVuY3Rpb24oKXt2b2lkIDAhPT13LmNvbmZpZyYmcGUoIm9uRGVzdHJveSIpO2Zvcih2YXIgZT13Ll9oYW5kbGVycy5sZW5ndGg7ZS0tOyl3Ll9oYW5kbGVyc1tlXS5yZW1vdmUoKTtpZih3Ll9oYW5kbGVycz1bXSx3Lm1vYmlsZUlucHV0KXcubW9iaWxlSW5wdXQucGFyZW50Tm9kZSYmdy5tb2JpbGVJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHcubW9iaWxlSW5wdXQpLHcubW9iaWxlSW5wdXQ9dm9pZCAwO2Vsc2UgaWYody5jYWxlbmRhckNvbnRhaW5lciYmdy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlKWlmKHcuY29uZmlnLnN0YXRpYyYmdy5jYWxlbmRhckNvbnRhaW5lci5wYXJlbnROb2RlKXt2YXIgdD13LmNhbGVuZGFyQ29udGFpbmVyLnBhcmVudE5vZGU7aWYodC5sYXN0Q2hpbGQmJnQucmVtb3ZlQ2hpbGQodC5sYXN0Q2hpbGQpLHQucGFyZW50Tm9kZSl7Zm9yKDt0LmZpcnN0Q2hpbGQ7KXQucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodC5maXJzdENoaWxkLHQpO3QucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX19ZWxzZSB3LmNhbGVuZGFyQ29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcik7dy5hbHRJbnB1dCYmKHcuaW5wdXQudHlwZT0idGV4dCIsdy5hbHRJbnB1dC5wYXJlbnROb2RlJiZ3LmFsdElucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQody5hbHRJbnB1dCksZGVsZXRlIHcuYWx0SW5wdXQpO3cuaW5wdXQmJih3LmlucHV0LnR5cGU9dy5pbnB1dC5fdHlwZSx3LmlucHV0LmNsYXNzTGlzdC5yZW1vdmUoImZsYXRwaWNrci1pbnB1dCIpLHcuaW5wdXQucmVtb3ZlQXR0cmlidXRlKCJyZWFkb25seSIpKTtbIl9zaG93VGltZUlucHV0IiwibGF0ZXN0U2VsZWN0ZWREYXRlT2JqIiwiX2hpZGVOZXh0TW9udGhBcnJvdyIsIl9oaWRlUHJldk1vbnRoQXJyb3ciLCJfX2hpZGVOZXh0TW9udGhBcnJvdyIsIl9faGlkZVByZXZNb250aEFycm93IiwiaXNNb2JpbGUiLCJpc09wZW4iLCJzZWxlY3RlZERhdGVFbGVtIiwibWluRGF0ZUhhc1RpbWUiLCJtYXhEYXRlSGFzVGltZSIsImRheXMiLCJkYXlzQ29udGFpbmVyIiwiX2lucHV0IiwiX3Bvc2l0aW9uRWxlbWVudCIsImlubmVyQ29udGFpbmVyIiwickNvbnRhaW5lciIsIm1vbnRoTmF2IiwidG9kYXlEYXRlRWxlbSIsImNhbGVuZGFyQ29udGFpbmVyIiwid2Vla2RheUNvbnRhaW5lciIsInByZXZNb250aE5hdiIsIm5leHRNb250aE5hdiIsIm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyIiwiY3VycmVudE1vbnRoRWxlbWVudCIsImN1cnJlbnRZZWFyRWxlbWVudCIsIm5hdmlnYXRpb25DdXJyZW50TW9udGgiLCJzZWxlY3RlZERhdGVFbGVtIiwiY29uZmlnIl0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dHJ5e2RlbGV0ZSB3W2VdfWNhdGNoKGUpe319KSl9LHcuaXNFbmFibGVkPVgsdy5qdW1wVG9EYXRlPVAsdy5vcGVuPWZ1bmN0aW9uKGUsdCl7dm9pZCAwPT09dCYmKHQ9dy5fcG9zaXRpb25FbGVtZW50KTtpZighMD09PXcuaXNNb2JpbGUpe2lmKGUpe2UucHJldmVudERlZmF1bHQoKTt2YXIgbj1nKGUpO24mJm4uYmx1cigpfXJldHVybiB2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiYody5tb2JpbGVJbnB1dC5mb2N1cygpLHcubW9iaWxlSW5wdXQuY2xpY2soKSksdm9pZCBwZSgib25PcGVuIil9aWYody5faW5wdXQuZGlzYWJsZWR8fHcuY29uZmlnLmlubGluZSlyZXR1cm47dmFyIGE9dy5pc09wZW47dy5pc09wZW49ITAsYXx8KHcuY2FsZW5kYXJDb250YWluZXIuY2xhc3NMaXN0LmFkZCgib3BlbiIpLHcuX2lucHV0LmNsYXNzTGlzdC5hZGQoImFjdGl2ZSIpLHBlKCJvbk9wZW4iKSxjZSh0KSk7ITA9PT13LmNvbmZpZy5lbmFibGVUaW1lJiYhMD09PXcuY29uZmlnLm5vQ2FsZW5kYXImJighMSE9PXcuY29uZmlnLmFsbG93SW5wdXR8fHZvaWQgMCE9PWUmJncudGltZUNvbnRhaW5lci5jb250YWlucyhlLnJlbGF0ZWRUYXJnZXQpfHxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiB3LmhvdXJFbGVtZW50LnNlbGVjdCgpfSksNTApKX0sdy5yZWRyYXc9ZGUsdy5zZXQ9ZnVuY3Rpb24oZSx0KXtpZihudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlKWZvcih2YXIgYSBpbiBPYmplY3QuYXNzaWduKHcuY29uZmlnLGUpLGUpdm9pZCAwIT09ZmVbYV0mJmZlW2FdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSk7ZWxzZSB3LmNvbmZpZ1tlXT10LHZvaWQgMCE9PWZlW2VdP2ZlW2VdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3JldHVybiBlKCl9KSk6bi5pbmRleE9mKGUpPi0xJiYody5jb25maWdbZV09Yyh0KSk7dy5yZWRyYXcoKSxiZSghMCl9LHcuc2V0RGF0ZT1mdW5jdGlvbihlLHQsbil7dm9pZCAwPT09dCYmKHQ9ITEpO3ZvaWQgMD09PW4mJihuPXcuY29uZmlnLmRhdGVGb3JtYXQpO2lmKDAhPT1lJiYhZXx8ZSBpbnN0YW5jZW9mIEFycmF5JiYwPT09ZS5sZW5ndGgpcmV0dXJuIHcuY2xlYXIodCk7bWUoZSxuKSx3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj13LnNlbGVjdGVkRGF0ZXNbdy5zZWxlY3RlZERhdGVzLmxlbmd0aC0xXSx3LnJlZHJhdygpLFAodm9pZCAwLHQpLF8oKSwwPT09dy5zZWxlY3RlZERhdGVzLmxlbmd0aCYmdy5jbGVhcighMSk7YmUodCksdCYmcGUoIm9uQ2hhbmdlIil9LHcudG9nZ2xlPWZ1bmN0aW9uKGUpe2lmKCEwPT09dy5pc09wZW4pcmV0dXJuIHcuY2xvc2UoKTt3Lm9wZW4oZSl9O3ZhciBmZT17bG9jYWxlOltsZSx6XSxzaG93TW9udGhzOltxLGssJF0sbWluRGF0ZTpbUF0sbWF4RGF0ZTpbUF0sY2xpY2tPcGVuczpbZnVuY3Rpb24oKXshMD09PXcuY29uZmlnLmNsaWNrT3BlbnM\/KEEody5faW5wdXQsImZvY3VzIix3Lm9wZW4pLEEody5faW5wdXQsImNsaWNrIix3Lm9wZW4pKToody5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiZm9jdXMiLHcub3Blbiksdy5faW5wdXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY2xpY2siLHcub3BlbikpfV19O2Z1bmN0aW9uIG1lKGUsdCl7dmFyIG49W107aWYoZSBpbnN0YW5jZW9mIEFycmF5KW49ZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3LnBhcnNlRGF0ZShlLHQpfSkpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIERhdGV8fCJudW1iZXIiPT10eXBlb2YgZSluPVt3LnBhcnNlRGF0ZShlLHQpXTtlbHNlIGlmKCJzdHJpbmciPT10eXBlb2YgZSlzd2l0Y2gody5jb25maWcubW9kZSl7Y2FzZSJzaW5nbGUiOmNhc2UidGltZSI6bj1bdy5wYXJzZURhdGUoZSx0KV07YnJlYWs7Y2FzZSJtdWx0aXBsZSI6bj1lLnNwbGl0KHcuY29uZmlnLmNvbmp1bmN0aW9uKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiB3LnBhcnNlRGF0ZShlLHQpfSkpO2JyZWFrO2Nhc2UicmFuZ2UiOm49ZS5zcGxpdCh3LmwxMG4ucmFuZ2VTZXBhcmF0b3IpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHcucGFyc2VEYXRlKGUsdCl9KSl9ZWxzZSB3LmNvbmZpZy5lcnJvckhhbmRsZXIobmV3IEVycm9yKCJJbnZhbGlkIGRhdGUgc3VwcGxpZWQ6ICIrSlNPTi5zdHJpbmdpZnkoZSkpKTt3LnNlbGVjdGVkRGF0ZXM9dy5jb25maWcuYWxsb3dJbnZhbGlkUHJlbG9hZD9uOm4uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIERhdGUmJlgoZSwhMSl9KSksInJhbmdlIj09PXcuY29uZmlnLm1vZGUmJncuc2VsZWN0ZWREYXRlcy5zb3J0KChmdW5jdGlvbihlLHQpe3JldHVybiBlLmdldFRpbWUoKS10LmdldFRpbWUoKX0pKX1mdW5jdGlvbiBnZShlKXtyZXR1cm4gZS5zbGljZSgpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlfHwibnVtYmVyIj09dHlwZW9mIGV8fGUgaW5zdGFuY2VvZiBEYXRlP3cucGFyc2VEYXRlKGUsdm9pZCAwLCEwKTplJiYib2JqZWN0Ij09dHlwZW9mIGUmJmUuZnJvbSYmZS50bz97ZnJvbTp3LnBhcnNlRGF0ZShlLmZyb20sdm9pZCAwKSx0bzp3LnBhcnNlRGF0ZShlLnRvLHZvaWQgMCl9OmV9KSkuZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gZX0pKX1mdW5jdGlvbiBwZShlLHQpe2lmKHZvaWQgMCE9PXcuY29uZmlnKXt2YXIgbj13LmNvbmZpZ1tlXTtpZih2b2lkIDAhPT1uJiZuLmxlbmd0aD4wKWZvcih2YXIgYT0wO25bYV0mJmE8bi5sZW5ndGg7YSsrKW5bYV0ody5zZWxlY3RlZERhdGVzLHcuaW5wdXQudmFsdWUsdyx0KTsib25DaGFuZ2UiPT09ZSYmKHcuaW5wdXQuZGlzcGF0Y2hFdmVudChoZSgiY2hhbmdlIikpLHcuaW5wdXQuZGlzcGF0Y2hFdmVudChoZSgiaW5wdXQiKSkpfX1mdW5jdGlvbiBoZShlKXt2YXIgdD1kb2N1bWVudC5jcmVhdGVFdmVudCgiRXZlbnQiKTtyZXR1cm4gdC5pbml0RXZlbnQoZSwhMCwhMCksdH1mdW5jdGlvbiB2ZShlKXtmb3IodmFyIHQ9MDt0PHcuc2VsZWN0ZWREYXRlcy5sZW5ndGg7dCsrKWlmKDA9PT1NKHcuc2VsZWN0ZWREYXRlc1t0XSxlKSlyZXR1cm4iIit0O3JldHVybiExfWZ1bmN0aW9uIERlKCl7dy5jb25maWcubm9DYWxlbmRhcnx8dy5pc01vYmlsZXx8IXcubW9udGhOYXZ8fCh3LnllYXJFbGVtZW50cy5mb3JFYWNoKChmdW5jdGlvbihlLHQpe3ZhciBuPW5ldyBEYXRlKHcuY3VycmVudFllYXIsdy5jdXJyZW50TW9udGgsMSk7bi5zZXRNb250aCh3LmN1cnJlbnRNb250aCt0KSx3LmNvbmZpZy5zaG93TW9udGhzPjF8fCJzdGF0aWMiPT09dy5jb25maWcubW9udGhTZWxlY3RvclR5cGU\/dy5tb250aEVsZW1lbnRzW3RdLnRleHRDb250ZW50PWgobi5nZXRNb250aCgpLHcuY29uZmlnLnNob3J0aGFuZEN1cnJlbnRNb250aCx3LmwxMG4pKyIgIjp3Lm1vbnRoc0Ryb3Bkb3duQ29udGFpbmVyLnZhbHVlPW4uZ2V0TW9udGgoKS50b1N0cmluZygpLGUudmFsdWU9bi5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKCl9KSksdy5faGlkZVByZXZNb250aEFycm93PXZvaWQgMCE9PXcuY29uZmlnLm1pbkRhdGUmJih3LmN1cnJlbnRZZWFyPT09dy5jb25maWcubWluRGF0ZS5nZXRGdWxsWWVhcigpP3cuY3VycmVudE1vbnRoPD13LmNvbmZpZy5taW5EYXRlLmdldE1vbnRoKCk6dy5jdXJyZW50WWVhcjx3LmNvbmZpZy5taW5EYXRlLmdldEZ1bGxZZWFyKCkpLHcuX2hpZGVOZXh0TW9udGhBcnJvdz12b2lkIDAhPT13LmNvbmZpZy5tYXhEYXRlJiYody5jdXJyZW50WWVhcj09PXcuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKT93LmN1cnJlbnRNb250aCsxPncuY29uZmlnLm1heERhdGUuZ2V0TW9udGgoKTp3LmN1cnJlbnRZZWFyPncuY29uZmlnLm1heERhdGUuZ2V0RnVsbFllYXIoKSkpfWZ1bmN0aW9uIHdlKGUpe3JldHVybiB3LnNlbGVjdGVkRGF0ZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdy5mb3JtYXREYXRlKHQsZSl9KSkuZmlsdGVyKChmdW5jdGlvbihlLHQsbil7cmV0dXJuInJhbmdlIiE9PXcuY29uZmlnLm1vZGV8fHcuY29uZmlnLmVuYWJsZVRpbWV8fG4uaW5kZXhPZihlKT09PXR9KSkuam9pbigicmFuZ2UiIT09dy5jb25maWcubW9kZT93LmNvbmZpZy5jb25qdW5jdGlvbjp3LmwxMG4ucmFuZ2VTZXBhcmF0b3IpfWZ1bmN0aW9uIGJlKGUpe3ZvaWQgMD09PWUmJihlPSEwKSx2b2lkIDAhPT13Lm1vYmlsZUlucHV0JiZ3Lm1vYmlsZUZvcm1hdFN0ciYmKHcubW9iaWxlSW5wdXQudmFsdWU9dm9pZCAwIT09dy5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5mb3JtYXREYXRlKHcubGF0ZXN0U2VsZWN0ZWREYXRlT2JqLHcubW9iaWxlRm9ybWF0U3RyKToiIiksdy5pbnB1dC52YWx1ZT13ZSh3LmNvbmZpZy5kYXRlRm9ybWF0KSx2b2lkIDAhPT13LmFsdElucHV0JiYody5hbHRJbnB1dC52YWx1ZT13ZSh3LmNvbmZpZy5hbHRGb3JtYXQpKSwhMSE9PWUmJnBlKCJvblZhbHVlVXBkYXRlIil9ZnVuY3Rpb24gQ2UoZSl7dmFyIHQ9ZyhlKSxuPXcucHJldk1vbnRoTmF2LmNvbnRhaW5zKHQpLGE9dy5uZXh0TW9udGhOYXYuY29udGFpbnModCk7bnx8YT9HKG4\/LTE6MSk6dy55ZWFyRWxlbWVudHMuaW5kZXhPZih0KT49MD90LnNlbGVjdCgpOnQuY2xhc3NMaXN0LmNvbnRhaW5zKCJhcnJvd1VwIik\/dy5jaGFuZ2VZZWFyKHcuY3VycmVudFllYXIrMSk6dC5jbGFzc0xpc3QuY29udGFpbnMoImFycm93RG93biIpJiZ3LmNoYW5nZVllYXIody5jdXJyZW50WWVhci0xKX1yZXR1cm4gZnVuY3Rpb24oKXt3LmVsZW1lbnQ9dy5pbnB1dD1wLHcuaXNPcGVuPSExLGZ1bmN0aW9uKCl7dmFyIHQ9WyJ3cmFwIiwid2Vla051bWJlcnMiLCJhbGxvd0lucHV0IiwiYWxsb3dJbnZhbGlkUHJlbG9hZCIsImNsaWNrT3BlbnMiLCJ0aW1lXzI0aHIiLCJlbmFibGVUaW1lIiwibm9DYWxlbmRhciIsImFsdElucHV0Iiwic2hvcnRoYW5kQ3VycmVudE1vbnRoIiwiaW5saW5lIiwic3RhdGljIiwiZW5hYmxlU2Vjb25kcyIsImRpc2FibGVNb2JpbGUiXSxpPWUoZSh7fSxKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHAuZGF0YXNldHx8e30pKSksdiksbz17fTt3LmNvbmZpZy5wYXJzZURhdGU9aS5wYXJzZURhdGUsdy5jb25maWcuZm9ybWF0RGF0ZT1pLmZvcm1hdERhdGUsT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJlbmFibGUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX2VuYWJsZX0sc2V0OmZ1bmN0aW9uKGUpe3cuY29uZmlnLl9lbmFibGU9Z2UoZSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJkaXNhYmxlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9kaXNhYmxlfSxzZXQ6ZnVuY3Rpb24oZSl7dy5jb25maWcuX2Rpc2FibGU9Z2UoZSl9fSk7dmFyIHI9InRpbWUiPT09aS5tb2RlO2lmKCFpLmRhdGVGb3JtYXQmJihpLmVuYWJsZVRpbWV8fHIpKXt2YXIgbD1ULmRlZmF1bHRDb25maWcuZGF0ZUZvcm1hdHx8YS5kYXRlRm9ybWF0O28uZGF0ZUZvcm1hdD1pLm5vQ2FsZW5kYXJ8fHI\/Ikg6aSIrKGkuZW5hYmxlU2Vjb25kcz8iOlMiOiIiKTpsKyIgSDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyI6IiIpfWlmKGkuYWx0SW5wdXQmJihpLmVuYWJsZVRpbWV8fHIpJiYhaS5hbHRGb3JtYXQpe3ZhciBkPVQuZGVmYXVsdENvbmZpZy5hbHRGb3JtYXR8fGEuYWx0Rm9ybWF0O28uYWx0Rm9ybWF0PWkubm9DYWxlbmRhcnx8cj8iaDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyBLIjoiIEsiKTpkKyIgaDppIisoaS5lbmFibGVTZWNvbmRzPyI6UyI6IiIpKyIgSyJ9T2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtaW5EYXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9taW5EYXRlfSxzZXQ6b2UoIm1pbiIpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcuY29uZmlnLCJtYXhEYXRlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHcuY29uZmlnLl9tYXhEYXRlfSxzZXQ6b2UoIm1heCIpfSk7dmFyIHM9ZnVuY3Rpb24oZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe3cuY29uZmlnWyJtaW4iPT09ZT8iX21pblRpbWUiOiJfbWF4VGltZSJdPXcucGFyc2VEYXRlKHQsIkg6aTpTIil9fTtPYmplY3QuZGVmaW5lUHJvcGVydHkody5jb25maWcsIm1pblRpbWUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5jb25maWcuX21pblRpbWV9LHNldDpzKCJtaW4iKX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3LmNvbmZpZywibWF4VGltZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB3LmNvbmZpZy5fbWF4VGltZX0sc2V0OnMoIm1heCIpfSksInRpbWUiPT09aS5tb2RlJiYody5jb25maWcubm9DYWxlbmRhcj0hMCx3LmNvbmZpZy5lbmFibGVUaW1lPSEwKTtPYmplY3QuYXNzaWduKHcuY29uZmlnLG8saSk7Zm9yKHZhciB1PTA7dTx0Lmxlbmd0aDt1Kyspdy5jb25maWdbdFt1XV09ITA9PT13LmNvbmZpZ1t0W3VdXXx8InRydWUiPT09dy5jb25maWdbdFt1XV07bi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT13LmNvbmZpZ1tlXX0pKS5mb3JFYWNoKChmdW5jdGlvbihlKXt3LmNvbmZpZ1tlXT1jKHcuY29uZmlnW2VdfHxbXSkubWFwKEUpfSkpLHcuaXNNb2JpbGU9IXcuY29uZmlnLmRpc2FibGVNb2JpbGUmJiF3LmNvbmZpZy5pbmxpbmUmJiJzaW5nbGUiPT09dy5jb25maWcubW9kZSYmIXcuY29uZmlnLmRpc2FibGUubGVuZ3RoJiYhdy5jb25maWcuZW5hYmxlJiYhdy5jb25maWcud2Vla051bWJlcnMmJi9BbmRyb2lkfHdlYk9TfGlQaG9uZXxpUGFkfGlQb2R8QmxhY2tCZXJyeXxJRU1vYmlsZXxPcGVyYSBNaW5pL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTtmb3IodT0wO3U8dy5jb25maWcucGx1Z2lucy5sZW5ndGg7dSsrKXt2YXIgZj13LmNvbmZpZy5wbHVnaW5zW3VdKHcpfHx7fTtmb3IodmFyIG0gaW4gZiluLmluZGV4T2YobSk+LTE\/dy5jb25maWdbbV09YyhmW21dKS5tYXAoRSkuY29uY2F0KHcuY29uZmlnW21dKTp2b2lkIDA9PT1pW21dJiYody5jb25maWdbbV09ZlttXSl9aS5hbHRJbnB1dENsYXNzfHwody5jb25maWcuYWx0SW5wdXRDbGFzcz1yZSgpLmNsYXNzTmFtZSsiICIrdy5jb25maWcuYWx0SW5wdXRDbGFzcyk7cGUoIm9uUGFyc2VDb25maWciKX0oKSxsZSgpLGZ1bmN0aW9uKCl7aWYody5pbnB1dD1yZSgpLCF3LmlucHV0KXJldHVybiB2b2lkIHcuY29uZmlnLmVycm9ySGFuZGxlcihuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQgZWxlbWVudCBzcGVjaWZpZWQiKSk7dy5pbnB1dC5fdHlwZT13LmlucHV0LnR5cGUsdy5pbnB1dC50eXBlPSJ0ZXh0Iix3LmlucHV0LmNsYXNzTGlzdC5hZGQoImZsYXRwaWNrci1pbnB1dCIpLHcuX2lucHV0PXcuaW5wdXQsdy5jb25maWcuYWx0SW5wdXQmJih3LmFsdElucHV0PXMody5pbnB1dC5ub2RlTmFtZSx3LmNvbmZpZy5hbHRJbnB1dENsYXNzKSx3Ll9pbnB1dD13LmFsdElucHV0LHcuYWx0SW5wdXQucGxhY2Vob2xkZXI9dy5pbnB1dC5wbGFjZWhvbGRlcix3LmFsdElucHV0LmRpc2FibGVkPXcuaW5wdXQuZGlzYWJsZWQsdy5hbHRJbnB1dC5yZXF1aXJlZD13LmlucHV0LnJlcXVpcmVkLHcuYWx0SW5wdXQudGFiSW5kZXg9dy5pbnB1dC50YWJJbmRleCx3LmFsdElucHV0LnR5cGU9InRleHQiLHcuaW5wdXQuc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksIXcuY29uZmlnLnN0YXRpYyYmdy5pbnB1dC5wYXJlbnROb2RlJiZ3LmlucHV0LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHcuYWx0SW5wdXQsdy5pbnB1dC5uZXh0U2libGluZykpO3cuY29uZmlnLmFsbG93SW5wdXR8fHcuX2lucHV0LnNldEF0dHJpYnV0ZSgicmVhZG9ubHkiLCJyZWFkb25seSIpO3cuX3Bvc2l0aW9uRWxlbWVudD13LmNvbmZpZy5wb3NpdGlvbkVsZW1lbnR8fHcuX2lucHV0fSgpLGZ1bmN0aW9uKCl7dy5zZWxlY3RlZERhdGVzPVtdLHcubm93PXcucGFyc2VEYXRlKHcuY29uZmlnLm5vdyl8fG5ldyBEYXRlO3ZhciBlPXcuY29uZmlnLmRlZmF1bHREYXRlfHwoIklOUFVUIiE9PXcuaW5wdXQubm9kZU5hbWUmJiJURVhUQVJFQSIhPT13LmlucHV0Lm5vZGVOYW1lfHwhdy5pbnB1dC5wbGFjZWhvbGRlcnx8dy5pbnB1dC52YWx1ZSE9PXcuaW5wdXQucGxhY2Vob2xkZXI\/dy5pbnB1dC52YWx1ZTpudWxsKTtlJiZtZShlLHcuY29uZmlnLmRhdGVGb3JtYXQpO3cuX2luaXRpYWxEYXRlPXcuc2VsZWN0ZWREYXRlcy5sZW5ndGg+MD93LnNlbGVjdGVkRGF0ZXNbMF06dy5jb25maWcubWluRGF0ZSYmdy5jb25maWcubWluRGF0ZS5nZXRUaW1lKCk+dy5ub3cuZ2V0VGltZSgpP3cuY29uZmlnLm1pbkRhdGU6dy5jb25maWcubWF4RGF0ZSYmdy5jb25maWcubWF4RGF0ZS5nZXRUaW1lKCk8dy5ub3cuZ2V0VGltZSgpP3cuY29uZmlnLm1heERhdGU6dy5ub3csdy5jdXJyZW50WWVhcj13Ll9pbml0aWFsRGF0ZS5nZXRGdWxsWWVhcigpLHcuY3VycmVudE1vbnRoPXcuX2luaXRpYWxEYXRlLmdldE1vbnRoKCksdy5zZWxlY3RlZERhdGVzLmxlbmd0aD4wJiYody5sYXRlc3RTZWxlY3RlZERhdGVPYmo9dy5zZWxlY3RlZERhdGVzWzBdKTt2b2lkIDAhPT13LmNvbmZpZy5taW5UaW1lJiYody5jb25maWcubWluVGltZT13LnBhcnNlRGF0ZSh3LmNvbmZpZy5taW5UaW1lLCJIOmkiKSk7dm9pZCAwIT09dy5jb25maWcubWF4VGltZSYmKHcuY29uZmlnLm1heFRpbWU9dy5wYXJzZURhdGUody5jb25maWcubWF4VGltZSwiSDppIikpO3cubWluRGF0ZUhhc1RpbWU9ISF3LmNvbmZpZy5taW5EYXRlJiYody5jb25maWcubWluRGF0ZS5nZXRIb3VycygpPjB8fHcuY29uZmlnLm1pbkRhdGUuZ2V0TWludXRlcygpPjB8fHcuY29uZmlnLm1pbkRhdGUuZ2V0U2Vjb25kcygpPjApLHcubWF4RGF0ZUhhc1RpbWU9ISF3LmNvbmZpZy5tYXhEYXRlJiYody5jb25maWcubWF4RGF0ZS5nZXRIb3VycygpPjB8fHcuY29uZmlnLm1heERhdGUuZ2V0TWludXRlcygpPjB8fHcuY29uZmlnLm1heERhdGUuZ2V0U2Vjb25kcygpPjApfSgpLHcudXRpbHM9e2dldERheXNJbk1vbnRoOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHZvaWQgMD09PWUmJihlPXcuY3VycmVudE1vbnRoKSx2b2lkIDA9PT10JiYodD13LmN1cnJlbnRZZWFyKSwxPT09ZSYmKHQlND09MCYmdCUxMDAhPTB8fHQlNDAwPT0wKT8yOTp3LmwxMG4uZGF5c0luTW9udGhbZV19fSx3LmlzTW9iaWxlfHxmdW5jdGlvbigpe3ZhciBlPXdpbmRvdy5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7aWYody5jYWxlbmRhckNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItY2FsZW5kYXIiKSx3LmNhbGVuZGFyQ29udGFpbmVyLnRhYkluZGV4PS0xLCF3LmNvbmZpZy5ub0NhbGVuZGFyKXtpZihlLmFwcGVuZENoaWxkKCh3Lm1vbnRoTmF2PXMoImRpdiIsImZsYXRwaWNrci1tb250aHMiKSx3LnllYXJFbGVtZW50cz1bXSx3Lm1vbnRoRWxlbWVudHM9W10sdy5wcmV2TW9udGhOYXY9cygic3BhbiIsImZsYXRwaWNrci1wcmV2LW1vbnRoIiksdy5wcmV2TW9udGhOYXYuaW5uZXJIVE1MPXcuY29uZmlnLnByZXZBcnJvdyx3Lm5leHRNb250aE5hdj1zKCJzcGFuIiwiZmxhdHBpY2tyLW5leHQtbW9udGgiKSx3Lm5leHRNb250aE5hdi5pbm5lckhUTUw9dy5jb25maWcubmV4dEFycm93LHEoKSxPYmplY3QuZGVmaW5lUHJvcGVydHkodywiX2hpZGVQcmV2TW9udGhBcnJvdyIse2dldDpmdW5jdGlvbigpe3JldHVybiB3Ll9faGlkZVByZXZNb250aEFycm93fSxzZXQ6ZnVuY3Rpb24oZSl7dy5fX2hpZGVQcmV2TW9udGhBcnJvdyE9PWUmJihkKHcucHJldk1vbnRoTmF2LCJmbGF0cGlja3ItZGlzYWJsZWQiLGUpLHcuX19oaWRlUHJldk1vbnRoQXJyb3c9ZSl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHcsIl9oaWRlTmV4dE1vbnRoQXJyb3ciLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdy5fX2hpZGVOZXh0TW9udGhBcnJvd30sc2V0OmZ1bmN0aW9uKGUpe3cuX19oaWRlTmV4dE1vbnRoQXJyb3chPT1lJiYoZCh3Lm5leHRNb250aE5hdiwiZmxhdHBpY2tyLWRpc2FibGVkIixlKSx3Ll9faGlkZU5leHRNb250aEFycm93PWUpfX0pLHcuY3VycmVudFllYXJFbGVtZW50PXcueWVhckVsZW1lbnRzWzBdLERlKCksdy5tb250aE5hdikpLHcuaW5uZXJDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLWlubmVyQ29udGFpbmVyIiksdy5jb25maWcud2Vla051bWJlcnMpe3ZhciB0PWZ1bmN0aW9uKCl7dy5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJoYXNXZWVrcyIpO3ZhciBlPXMoImRpdiIsImZsYXRwaWNrci13ZWVrd3JhcHBlciIpO2UuYXBwZW5kQ2hpbGQocygic3BhbiIsImZsYXRwaWNrci13ZWVrZGF5Iix3LmwxMG4ud2Vla0FiYnJldmlhdGlvbikpO3ZhciB0PXMoImRpdiIsImZsYXRwaWNrci13ZWVrcyIpO3JldHVybiBlLmFwcGVuZENoaWxkKHQpLHt3ZWVrV3JhcHBlcjplLHdlZWtOdW1iZXJzOnR9fSgpLG49dC53ZWVrV3JhcHBlcixhPXQud2Vla051bWJlcnM7dy5pbm5lckNvbnRhaW5lci5hcHBlbmRDaGlsZChuKSx3LndlZWtOdW1iZXJzPWEsdy53ZWVrV3JhcHBlcj1ufXcuckNvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItckNvbnRhaW5lciIpLHcuckNvbnRhaW5lci5hcHBlbmRDaGlsZCgkKCkpLHcuZGF5c0NvbnRhaW5lcnx8KHcuZGF5c0NvbnRhaW5lcj1zKCJkaXYiLCJmbGF0cGlja3ItZGF5cyIpLHcuZGF5c0NvbnRhaW5lci50YWJJbmRleD0tMSksSigpLHcuckNvbnRhaW5lci5hcHBlbmRDaGlsZCh3LmRheXNDb250YWluZXIpLHcuaW5uZXJDb250YWluZXIuYXBwZW5kQ2hpbGQody5yQ29udGFpbmVyKSxlLmFwcGVuZENoaWxkKHcuaW5uZXJDb250YWluZXIpfXcuY29uZmlnLmVuYWJsZVRpbWUmJmUuYXBwZW5kQ2hpbGQoZnVuY3Rpb24oKXt3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhc1RpbWUiKSx3LmNvbmZpZy5ub0NhbGVuZGFyJiZ3LmNhbGVuZGFyQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm5vQ2FsZW5kYXIiKTt2YXIgZT14KHcuY29uZmlnKTt3LnRpbWVDb250YWluZXI9cygiZGl2IiwiZmxhdHBpY2tyLXRpbWUiKSx3LnRpbWVDb250YWluZXIudGFiSW5kZXg9LTE7dmFyIHQ9cygic3BhbiIsImZsYXRwaWNrci10aW1lLXNlcGFyYXRvciIsIjoiKSxuPW0oImZsYXRwaWNrci1ob3VyIix7ImFyaWEtbGFiZWwiOncubDEwbi5ob3VyQXJpYUxhYmVsfSk7dy5ob3VyRWxlbWVudD1uLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdO3ZhciBhPW0oImZsYXRwaWNrci1taW51dGUiLHsiYXJpYS1sYWJlbCI6dy5sMTBuLm1pbnV0ZUFyaWFMYWJlbH0pO3cubWludXRlRWxlbWVudD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJpbnB1dCIpWzBdLHcuaG91ckVsZW1lbnQudGFiSW5kZXg9dy5taW51dGVFbGVtZW50LnRhYkluZGV4PS0xLHcuaG91ckVsZW1lbnQudmFsdWU9byh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5nZXRIb3VycygpOncuY29uZmlnLnRpbWVfMjRocj9lLmhvdXJzOmZ1bmN0aW9uKGUpe3N3aXRjaChlJTI0KXtjYXNlIDA6Y2FzZSAxMjpyZXR1cm4gMTI7ZGVmYXVsdDpyZXR1cm4gZSUxMn19KGUuaG91cnMpKSx3Lm1pbnV0ZUVsZW1lbnQudmFsdWU9byh3LmxhdGVzdFNlbGVjdGVkRGF0ZU9iaj93LmxhdGVzdFNlbGVjdGVkRGF0ZU9iai5nZXRNaW51dGVzKCk6ZS5taW51dGVzKSx3LmhvdXJFbGVtZW50LnNldEF0dHJpYnV0ZSgic3RlcCIsdy5jb25maWcuaG91ckluY3JlbWVudC50b1N0cmluZygpKSx3Lm1pbnV0ZUVsZW1lbnQuc2V0QXR0cmlidXRlKCJzdGVwIix3LmNvbmZpZy5taW51dGVJbmNyZW1lbnQudG9TdHJpbmcoKSksdy5ob3VyRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1pbiIsdy5jb25maWcudGltZV8yNGhyPyIwIjoiMSIpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXgiLHcuY29uZmlnLnRpbWVfMjRocj8iMjMiOiIxMiIpLHcuaG91ckVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCIyIiksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWluIiwiMCIpLHcubWludXRlRWxlbWVudC5zZXRBdHRyaWJ1dGUoIm1heCIsIjU5Iiksdy5taW51dGVFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4bGVuZ3RoIiwiMiIpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChuKSx3LnRpbWVDb250YWluZXIuYXBwZW5kQ2hpbGQodCksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKGEpLHcuY29uZmlnLnRpbWVfMjRociYmdy50aW1lQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoInRpbWUyNGhyIik7aWYody5jb25maWcuZW5hYmxlU2Vjb25kcyl7dy50aW1lQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoImhhc1NlY29uZHMiKTt2YXIgaT1tKCJmbGF0cGlja3Itc2Vjb25kIik7dy5zZWNvbmRFbGVtZW50PWkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImlucHV0IilbMF0sdy5zZWNvbmRFbGVtZW50LnZhbHVlPW8ody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5sYXRlc3RTZWxlY3RlZERhdGVPYmouZ2V0U2Vjb25kcygpOmUuc2Vjb25kcyksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgic3RlcCIsdy5taW51dGVFbGVtZW50LmdldEF0dHJpYnV0ZSgic3RlcCIpKSx3LnNlY29uZEVsZW1lbnQuc2V0QXR0cmlidXRlKCJtaW4iLCIwIiksdy5zZWNvbmRFbGVtZW50LnNldEF0dHJpYnV0ZSgibWF4IiwiNTkiKSx3LnNlY29uZEVsZW1lbnQuc2V0QXR0cmlidXRlKCJtYXhsZW5ndGgiLCIyIiksdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKHMoInNwYW4iLCJmbGF0cGlja3ItdGltZS1zZXBhcmF0b3IiLCI6IikpLHcudGltZUNvbnRhaW5lci5hcHBlbmRDaGlsZChpKX13LmNvbmZpZy50aW1lXzI0aHJ8fCh3LmFtUE09cygic3BhbiIsImZsYXRwaWNrci1hbS1wbSIsdy5sMTBuLmFtUE1bcigody5sYXRlc3RTZWxlY3RlZERhdGVPYmo\/dy5ob3VyRWxlbWVudC52YWx1ZTp3LmNvbmZpZy5kZWZhdWx0SG91cik+MTEpXSksdy5hbVBNLnRpdGxlPXcubDEwbi50b2dnbGVUaXRsZSx3LmFtUE0udGFiSW5kZXg9LTEsdy50aW1lQ29udGFpbmVyLmFwcGVuZENoaWxkKHcuYW1QTSkpO3JldHVybiB3LnRpbWVDb250YWluZXJ9KCkpO2Qody5jYWxlbmRhckNvbnRhaW5lciwicmFuZ2VNb2RlIiwicmFuZ2UiPT09dy5jb25maWcubW9kZSksZCh3LmNhbGVuZGFyQ29udGFpbmVyLCJhbmltYXRlIiwhMD09PXcuY29uZmlnLmFuaW1hdGUpLGQody5jYWxlbmRhckNvbnRhaW5lciwibXVsdGlNb250aCIsdy5jb25maWcuc2hvd01vbnRocz4xKSx3LmNhbGVuZGFyQ29udGFpbmVyLmFwcGVuZENoaWxkKGUpO3ZhciBpPXZvaWQgMCE9PXcuY29uZmlnLmFwcGVuZFRvJiZ2b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUby5ub2RlVHlwZTtpZigody5jb25maWcuaW5saW5lfHx3LmNvbmZpZy5zdGF0aWMpJiYody5jYWxlbmRhckNvbnRhaW5lci5jbGFzc0xpc3QuYWRkKHcuY29uZmlnLmlubGluZT8iaW5saW5lIjoic3RhdGljIiksdy5jb25maWcuaW5saW5lJiYoIWkmJncuZWxlbWVudC5wYXJlbnROb2RlP3cuZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3LmNhbGVuZGFyQ29udGFpbmVyLHcuX2lucHV0Lm5leHRTaWJsaW5nKTp2b2lkIDAhPT13LmNvbmZpZy5hcHBlbmRUbyYmdy5jb25maWcuYXBwZW5kVG8uYXBwZW5kQ2hpbGQody5jYWxlbmRhckNvbnRhaW5lcikpLHcuY29uZmlnLnN0YXRpYykpe3ZhciBsPXMoImRpdiIsImZsYXRwaWNrci13cmFwcGVyIik7dy5lbGVtZW50LnBhcmVudE5vZGUmJncuZWxlbWVudC5wYXJlbnROb2RlLmluc2VydEJlZm9yZShsLHcuZWxlbWVudCksbC5hcHBlbmRDaGlsZCh3LmVsZW1lbnQpLHcuYWx0SW5wdXQmJmwuYXBwZW5kQ2hpbGQody5hbHRJbnB1dCksbC5hcHBlbmRDaGlsZCh3LmNhbGVuZGFyQ29udGFpbmVyKX13LmNvbmZpZy5zdGF0aWN8fHcuY29uZmlnLmlubGluZXx8KHZvaWQgMCE9PXcuY29uZmlnLmFwcGVuZFRvP3cuY29uZmlnLmFwcGVuZFRvOndpbmRvdy5kb2N1bWVudC5ib2R5KS5hcHBlbmRDaGlsZCh3LmNhbGVuZGFyQ29udGFpbmVyKX0oKSxmdW5jdGlvbigpe3cuY29uZmlnLndyYXAmJlsib3BlbiIsImNsb3NlIiwidG9nZ2xlIiwiY2xlYXIiXS5mb3JFYWNoKChmdW5jdGlvbihlKXtBcnJheS5wcm90b3R5cGUuZm9yRWFjaC5jYWxsKHcuZWxlbWVudC5xdWVyeVNlbGVjdG9yQWxsKCJbZGF0YS0iK2UrIl0iKSwoZnVuY3Rpb24odCl7cmV0dXJuIEEodCwiY2xpY2siLHdbZV0pfSkpfSkpO2lmKHcuaXNNb2JpbGUpcmV0dXJuIHZvaWQgZnVuY3Rpb24oKXt2YXIgZT13LmNvbmZpZy5lbmFibGVUaW1lP3cuY29uZmlnLm5vQ2FsZW5kYXI\/InRpbWUiOiJkYXRldGltZS1sb2NhbCI6ImRhdGUiO3cubW9iaWxlSW5wdXQ9cygiaW5wdXQiLHcuaW5wdXQuY2xhc3NOYW1lKyIgZmxhdHBpY2tyLW1vYmlsZSIpLHcubW9iaWxlSW5wdXQudGFiSW5kZXg9MSx3Lm1vYmlsZUlucHV0LnR5cGU9ZSx3Lm1vYmlsZUlucHV0LmRpc2FibGVkPXcuaW5wdXQuZGlzYWJsZWQsdy5tb2JpbGVJbnB1dC5yZXF1aXJlZD13LmlucHV0LnJlcXVpcmVkLHcubW9iaWxlSW5wdXQucGxhY2Vob2xkZXI9dy5pbnB1dC5wbGFjZWhvbGRlcix3Lm1vYmlsZUZvcm1hdFN0cj0iZGF0ZXRpbWUtbG9jYWwiPT09ZT8iWS1tLWRcXFRIOmk6UyI6ImRhdGUiPT09ZT8iWS1tLWQiOiJIOmk6UyIsdy5zZWxlY3RlZERhdGVzLmxlbmd0aD4wJiYody5tb2JpbGVJbnB1dC5kZWZhdWx0VmFsdWU9dy5tb2JpbGVJbnB1dC52YWx1ZT13LmZvcm1hdERhdGUody5zZWxlY3RlZERhdGVzWzBdLHcubW9iaWxlRm9ybWF0U3RyKSk7dy5jb25maWcubWluRGF0ZSYmKHcubW9iaWxlSW5wdXQubWluPXcuZm9ybWF0RGF0ZSh3LmNvbmZpZy5taW5EYXRlLCJZLW0tZCIpKTt3LmNvbmZpZy5tYXhEYXRlJiYody5tb2JpbGVJbnB1dC5tYXg9dy5mb3JtYXREYXRlKHcuY29uZmlnLm1heERhdGUsIlktbS1kIikpO3cuaW5wdXQuZ2V0QXR0cmlidXRlKCJzdGVwIikmJih3Lm1vYmlsZUlucHV0LnN0ZXA9U3RyaW5nKHcuaW5wdXQuZ2V0QXR0cmlidXRlKCJzdGVwIikpKTt3LmlucHV0LnR5cGU9ImhpZGRlbiIsdm9pZCAwIT09dy5hbHRJbnB1dCYmKHcuYWx0SW5wdXQudHlwZT0iaGlkZGVuIik7dHJ5e3cuaW5wdXQucGFyZW50Tm9kZSYmdy5pbnB1dC5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh3Lm1vYmlsZUlucHV0LHcuaW5wdXQubmV4dFNpYmxpbmcpfWNhdGNoKGUpe31BKHcubW9iaWxlSW5wdXQsImNoYW5nZSIsKGZ1bmN0aW9uKGUpe3cuc2V0RGF0ZShnKGUpLnZhbHVlLCExLHcubW9iaWxlRm9ybWF0U3RyKSxwZSgib25DaGFuZ2UiKSxwZSgib25DbG9zZSIpfSkpfSgpO3ZhciBlPWwoaWUsNTApO3cuX2RlYm91bmNlZENoYW5nZT1sKE4sMzAwKSx3LmRheXNDb250YWluZXImJiEvaVBob25lfGlQYWR8aVBvZC9pLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkmJkEody5kYXlzQ29udGFpbmVyLCJtb3VzZW92ZXIiLChmdW5jdGlvbihlKXsicmFuZ2UiPT09dy5jb25maWcubW9kZSYmYWUoZyhlKSl9KSk7QSh3aW5kb3cuZG9jdW1lbnQuYm9keSwia2V5ZG93biIsbmUpLHcuY29uZmlnLmlubGluZXx8dy5jb25maWcuc3RhdGljfHxBKHdpbmRvdywicmVzaXplIixlKTt2b2lkIDAhPT13aW5kb3cub250b3VjaHN0YXJ0P0Eod2luZG93LmRvY3VtZW50LCJ0b3VjaHN0YXJ0IixaKTpBKHdpbmRvdy5kb2N1bWVudCwibW91c2Vkb3duIixaKTtBKHdpbmRvdy5kb2N1bWVudCwiZm9jdXMiLFose2NhcHR1cmU6ITB9KSwhMD09PXcuY29uZmlnLmNsaWNrT3BlbnMmJihBKHcuX2lucHV0LCJmb2N1cyIsdy5vcGVuKSxBKHcuX2lucHV0LCJjbGljayIsdy5vcGVuKSk7dm9pZCAwIT09dy5kYXlzQ29udGFpbmVyJiYoQSh3Lm1vbnRoTmF2LCJjbGljayIsQ2UpLEEody5tb250aE5hdixbImtleXVwIiwiaW5jcmVtZW50Il0sRiksQSh3LmRheXNDb250YWluZXIsImNsaWNrIix1ZSkpO2lmKHZvaWQgMCE9PXcudGltZUNvbnRhaW5lciYmdm9pZCAwIT09dy5taW51dGVFbGVtZW50JiZ2b2lkIDAhPT13LmhvdXJFbGVtZW50KXt2YXIgdD1mdW5jdGlvbihlKXtyZXR1cm4gZyhlKS5zZWxlY3QoKX07QSh3LnRpbWVDb250YWluZXIsWyJpbmNyZW1lbnQiXSxJKSxBKHcudGltZUNvbnRhaW5lciwiYmx1ciIsSSx7Y2FwdHVyZTohMH0pLEEody50aW1lQ29udGFpbmVyLCJjbGljayIsWSksQShbdy5ob3VyRWxlbWVudCx3Lm1pbnV0ZUVsZW1lbnRdLFsiZm9jdXMiLCJjbGljayJdLHQpLHZvaWQgMCE9PXcuc2Vjb25kRWxlbWVudCYmQSh3LnNlY29uZEVsZW1lbnQsImZvY3VzIiwoZnVuY3Rpb24oKXtyZXR1cm4gdy5zZWNvbmRFbGVtZW50JiZ3LnNlY29uZEVsZW1lbnQuc2VsZWN0KCl9KSksdm9pZCAwIT09dy5hbVBNJiZBKHcuYW1QTSwiY2xpY2siLChmdW5jdGlvbihlKXtJKGUpLE4oKX0pKX13LmNvbmZpZy5hbGxvd0lucHV0JiZBKHcuX2lucHV0LCJibHVyIix0ZSl9KCksKHcuc2VsZWN0ZWREYXRlcy5sZW5ndGh8fHcuY29uZmlnLm5vQ2FsZW5kYXIpJiYody5jb25maWcuZW5hYmxlVGltZSYmXyh3LmNvbmZpZy5ub0NhbGVuZGFyP3cubGF0ZXN0U2VsZWN0ZWREYXRlT2JqOnZvaWQgMCksYmUoITEpKSxrKCk7dmFyIHQ9L14oKD8hY2hyb21lfGFuZHJvaWQpLikqc2FmYXJpL2kudGVzdChuYXZpZ2F0b3IudXNlckFnZW50KTshdy5pc01vYmlsZSYmdCYmY2UoKSxwZSgib25SZWFkeSIpfSgpLHd9ZnVuY3Rpb24gayhlLHQpe2Zvcih2YXIgbj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChlKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnR9KSksYT1bXSxpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBvPW5baV07dHJ5e2lmKG51bGwhPT1vLmdldEF0dHJpYnV0ZSgiZGF0YS1mcC1vbWl0IikpY29udGludWU7dm9pZCAwIT09by5fZmxhdHBpY2tyJiYoby5fZmxhdHBpY2tyLmRlc3Ryb3koKSxvLl9mbGF0cGlja3I9dm9pZCAwKSxvLl9mbGF0cGlja3I9RShvLHR8fHt9KSxhLnB1c2goby5fZmxhdHBpY2tyKX1jYXRjaChlKXtjb25zb2xlLmVycm9yKGUpfX1yZXR1cm4gMT09PWEubGVuZ3RoP2FbMF06YX0idW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxFbGVtZW50JiYidW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxDb2xsZWN0aW9uJiYidW5kZWZpbmVkIiE9dHlwZW9mIE5vZGVMaXN0JiYoSFRNTENvbGxlY3Rpb24ucHJvdG90eXBlLmZsYXRwaWNrcj1Ob2RlTGlzdC5wcm90b3R5cGUuZmxhdHBpY2tyPWZ1bmN0aW9uKGUpe3JldHVybiBrKHRoaXMsZSl9LEhUTUxFbGVtZW50LnByb3RvdHlwZS5mbGF0cGlja3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGsoW3RoaXNdLGUpfSk7dmFyIFQ9ZnVuY3Rpb24oZSx0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGU\/ayh3aW5kb3cuZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChlKSx0KTplIGluc3RhbmNlb2YgTm9kZT9rKFtlXSx0KTprKGUsdCl9O3JldHVybiBULmRlZmF1bHRDb25maWc9e30sVC5sMTBucz17ZW46ZSh7fSxpKSxkZWZhdWx0OmUoe30saSl9LFQubG9jYWxpemU9ZnVuY3Rpb24odCl7VC5sMTBucy5kZWZhdWx0PWUoZSh7fSxULmwxMG5zLmRlZmF1bHQpLHQpfSxULnNldERlZmF1bHRzPWZ1bmN0aW9uKHQpe1QuZGVmYXVsdENvbmZpZz1lKGUoe30sVC5kZWZhdWx0Q29uZmlnKSx0KX0sVC5wYXJzZURhdGU9Qyh7fSksVC5mb3JtYXREYXRlPWIoe30pLFQuY29tcGFyZURhdGVzPU0sInVuZGVmaW5lZCIhPXR5cGVvZiBqUXVlcnkmJnZvaWQgMCE9PWpRdWVyeS5mbiYmKGpRdWVyeS5mbi5mbGF0cGlja3I9ZnVuY3Rpb24oZSl7cmV0dXJuIGsodGhpcyxlKX0pLERhdGUucHJvdG90eXBlLmZwX2luY3I9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyBEYXRlKHRoaXMuZ2V0RnVsbFllYXIoKSx0aGlzLmdldE1vbnRoKCksdGhpcy5nZXREYXRlKCkrKCJzdHJpbmciPT10eXBlb2YgZT9wYXJzZUludChlLDEwKTplKSl9LCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93LmZsYXRwaWNrcj1UKSxUfSkpOwovKiogL20vanMvdmFuaWxsYWpzL2ZsYXRwaWNrci5mci5qcyAqKi8KdmFyIF9fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjUtMDUtMjMgMTc6MDU6MTciOyd1c2Ugc3RyaWN0Jzt2YXIgX19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyNC0wMS0zMSAxNDozMjo0NiI7InVzZSBzdHJpY3QiO19fX2QyY19mbGF0cGlja3JmcmpzX2Nfb249IjIwMjMtMDEtMTIgMTE6NDE6NDYiOyJ1c2Ugc3RyaWN0IjtfX19kMmNfZmxhdHBpY2tyZnJqc19jX29uPSIyMDIzLTAxLTEyIDEwOjUxOjMwIjsidXNlIHN0cmljdCI7X19fZDJjX2ZsYXRwaWNrcmZyanNfY19vbj0iMjAyMS0xMi0yMSAxMzozMDo1MiI7InVzZSBzdHJpY3QiOwooZnVuY3Rpb24oYixhKXsib2JqZWN0Ij09PXR5cGVvZiBleHBvcnRzJiYidW5kZWZpbmVkIiE9PXR5cGVvZiBtb2R1bGU\/YShleHBvcnRzKToiZnVuY3Rpb24iPT09dHlwZW9mIGRlZmluZSYmZGVmaW5lLmFtZD9kZWZpbmUoWyJleHBvcnRzIl0sYSk6KGI9InVuZGVmaW5lZCIhPT10eXBlb2YgZ2xvYmFsVGhpcz9nbG9iYWxUaGlzOmJ8fHNlbGYsYShiLmZyPXt9KSl9KSh0aGlzLGZ1bmN0aW9uKGIpe3ZhciBhPSJ1bmRlZmluZWQiIT09dHlwZW9mIHdpbmRvdyYmdm9pZCAwIT09d2luZG93LmZsYXRwaWNrcj93aW5kb3cuZmxhdHBpY2tyOntsMTBuczp7fX0sYz17Zmlyc3REYXlPZldlZWs6MSx3ZWVrZGF5czp7c2hvcnRoYW5kOiJkaW0gbHVuIG1hciBtZXIgamV1IHZlbiBzYW0iLnNwbGl0KCIgIiksbG9uZ2hhbmQ6ImRpbWFuY2hlIGx1bmRpIG1hcmRpIG1lcmNyZWRpIGpldWRpIHZlbmRyZWRpIHNhbWVkaSIuc3BsaXQoIiAiKX0sbW9udGhzOntzaG9ydGhhbmQ6ImphbnYgZsOpdnIgbWFycyBhdnIgbWFpIGp1aW4ganVpbCBhb8O7dCBzZXB0IG9jdCBub3YgZMOpYyIuc3BsaXQoIiAiKSwKbG9uZ2hhbmQ6ImphbnZpZXIgZsOpdnJpZXIgbWFycyBhdnJpbCBtYWkganVpbiBqdWlsbGV0IGFvw7t0IHNlcHRlbWJyZSBvY3RvYnJlIG5vdmVtYnJlIGTDqWNlbWJyZSIuc3BsaXQoIiAiKX0sb3JkaW5hbDpmdW5jdGlvbihkKXtyZXR1cm4gMTxkPyIiOiJlciJ9LHJhbmdlU2VwYXJhdG9yOiIgYXUgIix3ZWVrQWJicmV2aWF0aW9uOiJTZW0iLHNjcm9sbFRpdGxlOiJEw6lmaWxlciBwb3VyIGF1Z21lbnRlciBsYSB2YWxldXIiLHRvZ2dsZVRpdGxlOiJDbGlxdWVyIHBvdXIgYmFzY3VsZXIiLHRpbWVfMjRocjohMH07YS5sMTBucy5mcj1jO2E9YS5sMTBucztiLkZyZW5jaD1jO2IuZGVmYXVsdD1hO09iamVjdC5kZWZpbmVQcm9wZXJ0eShiLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pOwovKiogL20vanMvZnIubmV3Y2Fycy5pbmxpbmUuanMgKiovCnZhciBqc19kMmNfZ2V0X3ZhbD0oanNfZDJjX2dldF92YWx8fGZ1bmN0aW9uKGlkKXt0cnl7cmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKS52YWx1ZTt9Y2F0Y2goZXgpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKWNvbnNvbGUubG9nKCJTeXN0ZW0gZmFpbGVkIHdoaWxlIHJldHJpZXZpbmcgcmVwbGFjZW1lbnQgdmFsdWU6ICIraWQsZXgpO3JldHVybicnO319KTt2YXIgaWRlbnRfNDg5NjQwNDljNTNjYjQyYzE2ZmVkMWU4ZGUwZDMzNjY7dHJ5e2Z1bmN0aW9uIE9wdGFub25XcmFwcGVyKCl7fX1jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfYzM1MjExMGM3ZWI5ZTkyNGU4ODE1N2Y0MDBlYzM2ODE7dHJ5e0QyQVNDKHsidXNlckxhbmd1YWdlIjoiZnJlIiwicGFDb2RlIjoiMzUwMTYiLCJjbGllbnQiOiJoeXVuZGFpIiwicGFnZUlkIjoic2hvd3Jvb20iLCJvZW1JbmZvIjp7Im9lbURlYWxlckNvZGUiOiIzNTAxNiIsIjAiOiIzNTAxNiIsIm9lbSI6Ikh5dW5kYWkiLCIxIjoiSHl1bmRhaSJ9LCJkZWFsZXJfbmFtZSI6IiIsImZvcm1NYXAiOnsiQURGQnVybGluZ3Rvbl9DZW50cmVfLV9FVl9Ub3VyXy1fRHJpdmVmZSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIEJ1cmxpbmd0b24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIEJ1cmxpbmd0b24gQ2VudHJlIC0gRVYgVG91ciAtIERyaXZlZmVzdCArIEtpYSBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGY2FtcGJlbGxyaXZlcmNhcnMuY2FfKEQyQ19NZWRpYSlfLV9MZSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhbXBiZWxscml2ZXJjYXJzLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIFVzZWQgICBMb2NfcGh5c2ljYWw9OTAwMTYxM10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhbXBiZWxscml2ZXJjYXJzLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIFVzZWQgICBMb2NfcGh5c2ljYWw9OTAwMTYxM10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X0FwcCI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBBcHBvaW50bWVudCByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IEFwcG9pbnRtZW50IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9DYXIiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9PZmYiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogT2ZmZXIgb24gYSB2ZWhpY2xlIFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IE9mZmVyIG9uIGEgdmVoaWNsZSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1BERiI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBQREYgcmVxdWVzdCAtIFZlaGljbGUgaW4gaW52ZW50b3J5IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFBERiByZXF1ZXN0IC0gVmVoaWNsZSBpbiBpbnZlbnRvcnkgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9SZXEiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIChNdWx0aXN0ZXApIFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsdGlzdGVwKSBbR29vZ2xlIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1NlciI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QgW0ZhY2Vib29rIC0gT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBTZXJ2aWNlIGFwcG9pbnRtZW50IHJlcXVlc3QgW0ZhY2Vib29rIC0gT3JnYW5pY10ifSwiQURGY2FybWF0Y2hlci5jYV8oRDJDX01lZGlhKV8tX0xlYWQ6X1RyYSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGNhcm1hdGNoZXIuY2EgKEQyQyBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhKSAtIExlYWQ6IFRyYWRlLWluIHJlcXVlc3QgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYSlfLV9MZWFkOl9WZWgiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEpIC0gTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERmNhcm1hdGNoZXIuY2FfKEQyQ19NZWRpYV8tX09yZ2FuaWMpXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBjYXJtYXRjaGVyLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5IFtPcmdhbmljXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gY2FybWF0Y2hlci5jYSAoRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBMZWFkOiBWZWhpY2xlIEF2YWlsYWJpbGl0eSBbT3JnYW5pY10ifSwiQURGZGFuaWVscGFyZWRvZGdlLmNvbV8ocGFyX0QyQ19NZWRpYSlfLSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGRhbmllbHBhcmVkb2RnZS5jb20gKHBhciBEMkMgTWVkaWEpIC0gRDJDIE1lZGlhIC0gTGVhZCA6IFZvaXIgbCdvZmZyZSBjb3Vwb24gU1JQIFtHb29nbGUgLSBOZXVmLXZsYV0iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIGRhbmllbHBhcmVkb2RnZS5jb20gKHBhciBEMkMgTWVkaWEpIC0gRDJDIE1lZGlhIC0gTGVhZCA6IFZvaXIgbCdvZmZyZSBjb3Vwb24gU1JQIFtHb29nbGUgLSBOZXVmLXZsYV0ifSwiQURGZGVtb2NybS5kMmNtZWRpYS5jYV8oRDJDX01lZGlhXy1fT3JnYSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIGRlbW9jcm0uZDJjbWVkaWEuY2EgKEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChpbnZlbnRvcnkgdmVoaWNsZSkgW09yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBkZW1vY3JtLmQyY21lZGlhLmNhIChEMkMgTWVkaWEgLSBPcmdhbmljKSAtIExlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5IHZlaGljbGUpIFtPcmdhbmljXSJ9LCJBREZNb25fc2l0ZV8tX0QyQ19NZWRpYV8tX0xlYWRfOl9EZW1hbmRlIjp7IkZSRU5DSCI6IkxlYWQgRnJvbSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UgKFNNUykgW0dvb2dsZSAtIE9yZ2FuaWNdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBNb24gc2l0ZSAtIEQyQyBNZWRpYSAtIExlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UgKFNNUykgW0dvb2dsZSAtIE9yZ2FuaWNdIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fKEQyQ19NZWRpYSlfLV8iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIFVzZWQtdmxhICAgTG9jX3BoeXNpY2FsPTkwMDExNDFdIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpIC0gTGVhZDogQ2FyRmF4IHJlcXVlc3QgW0dvb2dsZSAtIFVzZWQtdmxhICAgTG9jX3BoeXNpY2FsPTkwMDExNDFdIn0sIkFERnBhbGxhZGlub2F1dG9ncm91cC5jb21fKEQyQ19NZWRpYSlfXy0iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpICAtIExlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgW0ZhY2Vib29rIC0gVXNlZCBbIEtleXdvcmQ6IFVzZWQrVHJ1Y2tdICBMb2NfIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBwYWxsYWRpbm9hdXRvZ3JvdXAuY29tIChEMkMgTWVkaWEpICAtIExlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgW0ZhY2Vib29rIC0gVXNlZCBbIEtleXdvcmQ6IFVzZWQrVHJ1Y2tdICBMb2NfcCJ9LCJBREZwYWxsYWRpbm9hdXRvZ3JvdXAuY29tXyhEMkNfX01lZGlhKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDICBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTE4XSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAoRDJDICBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTE4XSJ9LCJBREZwYWxsYWRpbm9hdXRvZ3JvdXAuY29tX18oRDJDX01lZGlhKV8tIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAgKEQyQyBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTMzXSIsIkVOR0xJU0giOiJMZWFkIEZyb20gcGFsbGFkaW5vYXV0b2dyb3VwLmNvbSAgKEQyQyBNZWRpYSkgLSBMZWFkOiBUcmFkZS1pbiByZXF1ZXN0IFtHb29nbGUgLSBUcmFkZSAgIExvY19waHlzaWNhbD05MDAxMTMzXSJ9LCJBREZwYWxsYWRpbm9zdWJhcnUuY2FfKHBhcl9EMkNfTWVkaWFfLV9PIjp7IkZSRU5DSCI6IkRlbWFuZGUgZGUgcGFsbGFkaW5vc3ViYXJ1LmNhIChwYXIgRDJDIE1lZGlhIC0gT3JnYW5pYykgLSBEMkMgTWVkaWEgLSBMZWFkOiBQREYgYnJvY2h1cmUgcmVxdWVzdCBbT3JnYW5pY10iLCJFTkdMSVNIIjoiTGVhZCBGcm9tIHBhbGxhZGlub3N1YmFydS5jYSAocGFyIEQyQyBNZWRpYSAtIE9yZ2FuaWMpIC0gRDJDIE1lZGlhIC0gTGVhZDogUERGIGJyb2NodXJlIHJlcXVlc3QgW09yZ2FuaWNdIn0sIkFERlNjYXJib3JvdWdoX1Rvd25fQ2VudHJlXy1fRVZfVG91cl8tX0QiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBTY2FyYm9yb3VnaCBUb3duIENlbnRyZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIiwiRU5HTElTSCI6IkxlYWQgRnJvbSBTY2FyYm9yb3VnaCBUb3duIENlbnRyZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERlNoZXJ3YXlfR2FyZGVuc18tX0VWX1RvdXJfLV9Ecml2ZWZlc3QiOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBTaGVyd2F5IEdhcmRlbnMgLSBFViBUb3VyIC0gRHJpdmVmZXN0IFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gU2hlcndheSBHYXJkZW5zIC0gRVYgVG91ciAtIERyaXZlZmVzdCBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGU3F1YXJlX09uZV8tX0VWX1RvdXJfLV9Ecml2ZWZlc3RfK19LaSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFNxdWFyZSBPbmUgLSBFViBUb3VyIC0gRHJpdmVmZXN0ICsgS2lhIFNpZ24gVXAgV2FybSBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBEcml2ZWZlc3QgKyBLaWEgU2lnbiBVcCBXYXJtIExlYWQ6IENvbnRhY3QgRGVhbGVyIn0sIkFERlNxdWFyZV9PbmVfLV9FVl9Ub3VyXy1fS2lhX1NpZ25fVXBfSG8iOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBTcXVhcmUgT25lIC0gRVYgVG91ciAtIEtpYSBTaWduIFVwIEhvdCBMZWFkOiBDb250YWN0IERlYWxlciIsIkVOR0xJU0giOiJMZWFkIEZyb20gU3F1YXJlIE9uZSAtIEVWIFRvdXIgLSBLaWEgU2lnbiBVcCBIb3QgTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQURGVXBwZXJfQ2FuYWRhX01hbGxfLV9FVl9Ub3VyXy1fRHJpdmVmZSI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIFVwcGVyIENhbmFkYSBNYWxsIC0gRVYgVG91ciAtIERyaXZlZmVzdCBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIiLCJFTkdMSVNIIjoiTGVhZCBGcm9tIFVwcGVyIENhbmFkYSBNYWxsIC0gRVYgVG91ciAtIERyaXZlZmVzdCBTaWduIFVwIFdhcm0gTGVhZDogQ29udGFjdCBEZWFsZXIifSwiQUlDaGF0Ym90TGVhZCI6eyJGUkVOQ0giOiJMZWFkIDogQ2hhdEJvdCBJQSIsIkVOR0xJU0giOiJMZWFkOiBDaGF0Qm90IEFJIn0sIkF2YWlsYWJpbGl0eVVzZWQiOnsiRlJFTkNIIjoiTGVhZDogRGlzcG9uaWJpbGl0ZSBkJ3VuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQ6IFZlaGljbGUgQXZhaWxhYmlsaXR5In0sIkJhbm5lckZvcm0iOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBmb3JtIGJhbm5lciIsIkVOR0xJU0giOiJMZWFkOiBCYW5uZXIgRm9ybSBSZXF1ZXN0In0sIkJlc3RQcmljZVJlcXVlc3ROZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgIG1laWxsZXVyIHByaXggKHZlaGljdWxlIG5ldWYpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgYmVzdCBwcmljZSAobmV3IHZlaGljbGUpIn0sIkJvZHlTaG9wIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGVuIGNhcm9zc2VyaWUiLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBib2R5IHNob3AgYXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJCcm9jaHVyZXMiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgYnJvY2h1cmUiLCJFTkdMSVNIIjoiTGVhZCA6IEJyb2NodXJlIHJlcXVlc3QifSwiQnJvY2h1cmVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBicm9jaHVyZSIsIkVOR0xJU0giOiJMZWFkIDogQnJvY2h1cmUgcmVxdWVzdCJ9LCJCdWlsZEFuZFByaWNlX1NhdmUiOnsiRlJFTkNIIjoiTGVhZDogQ29uZmlndXJhdGlvbiBkJ3VuIHZlaGljdWxlIG5ldWYiLCJFTkdMSVNIIjoiTGVhZDogTmV3IFZlaGljbGUgQ29uZmlndXJhdGlvbiAoQnVpbGQgJiBQcmljZSkifSwiQnVpbGRBbmRQcmljZV9TdG9jayI6eyJGUkVOQ0giOiJMZWFkOiBEaXNwb25pYmlsaXRlIGQndW4gdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBBdmFpbGFiaWxpdHkifSwiQ2FycHJvb2ZNYWlsIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIENhckZheCIsIkVOR0xJU0giOiJMZWFkOiBDYXJGYXggcmVxdWVzdCJ9LCJDb250YWN0UmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QifSwiQ29udGFjdFVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QifSwiQ29udGFjdFZpc2l0UmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IFZlbnRlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU2FsZXMifSwiQ29udGFjdFZpc2l0UmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb250YWN0IFZlbnRlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU2FsZXMifSwiQ3JlZGl0Qm9vc3RNdWx0aSI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIHByZXF1YWxpZmljYXRpb24gZGUgY3JlZGl0IiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIENyZWRpdCBQcmUtUXVhbGlmaWNhdGlvbiJ9LCJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGZpbmFuY2VtZW50IChQbHVzaWV1cnMgZXRhcGVzKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcgKE11bHRpc3RlcCkifSwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdDJuZENoYW5jZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAoUGx1c2lldXJzIGV0YXBlcyAyZSBjaGFuY2UpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyAoTXVsaXN0ZXAgMm5kIGNoYW5jZSkifSwiQ3JlZGl0TXVsdGlzdGVwUmVxdWVzdEluc3RhbnQiOnsiRlJFTkNIIjoiTGVhZDogQXBwcm9iYXRpb24gZGUgY3JlZGl0IGluc3RhbnRhbmVlIiwiRU5HTElTSCI6IkxlYWQ6IEluc3RhbnQgQ3JlZGl0IEFwcHJvdmFsIn0sIkNyZWRpdFJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIn0sIkNyZWRpdFJlcXVlc3RNb2JpbGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgZmluYW5jZW1lbnQiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgZmluYW5jaW5nIn0sIkNyZWRpdFJlcXVlc3RNb2JpbGVGdWxsIjp7IkZSRU5DSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGZpbmFuY2luZyIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBmaW5hbmNpbmcifSwiQ3JlZGl0UmVxdWVzdF9TaG9ydCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBmaW5hbmNlbWVudCAodmVyc2lvbiBjb3VydGUpIiwiRU5HTElTSCI6IkxlYWQgOiBDcmVkaXQgYXBwbGljYXRpb24gKHNob3J0IHZlcnNpb24pIn0sIkRlYWxlckFwcG9pbnRtZW50Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIiwiRU5HTElTSCI6IkxlYWQ6IEFwcG9pbnRtZW50IHJlcXVlc3QifSwiRGlzY292ZXJPZmZlciI6eyJGUkVOQ0giOiJMZWFkIDogVm9pciBsJ29mZnJlIGNvdXBvbiBTUlAiLCJFTkdMSVNIIjoiTGVhZDogU2VlIE9mZmVyIENvdXBvbiBpbiBTUlAifSwiRXN0aGV0aWNSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYSBsJ2VzdGhldHF1ZSBldCBsYXZlLWF1dG8iLCJFTkdMSVNIIjoiTGVhZDogVmVoaWNsZSBlc3RoZXRpYyBhbmQgY2FyIHdhc2ggYXBwb2ludG1lbnQgcmVxdWVzdCJ9LCJmYWNlYm9va0Nvbm5lY3QiOnsiRlJFTkNIIjoiTGVhZDogUmFiYWlzIEZhY2Vib29rIiwiRU5HTElTSCI6IkxlYWQ6IEZhY2Vib29rIFJlYmF0ZSJ9LCJGaW5kVmVoaWNsZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZWNoZXJjaGUgZGUgdmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCB0byBmaW5kIGEgcHJlLW93bmVkIHZlaGljbGUifSwiaGVhZGVyU2VydmljZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91cyBhdSBzZXJ2aWNlIEV4cHJlc3MiLCJFTkdMSVNIIjoiTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0IEV4cHJlc3MifSwiTWFrZU9mZmVyIjp7IkZSRU5DSCI6IkxlYWQgOiBPZmZyZSBkJ2FjaGF0IHN1ciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUifSwiTWFrZU9mZmVyTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBPZmZyZSBkJ2FjaGF0IHN1ciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkOiBPZmZlciBvbiBhIHZlaGljbGUifSwibWVudVNlcnZpY2UiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcmVuZGV6LXZvdXMgYXUgc2VydmljZSBFeHByZXNzIiwiRU5HTElTSCI6IkxlYWQ6IFNlcnZpY2UgYXBwb2ludG1lbnQgcmVxdWVzdCBFeHByZXNzIn0sIk1vbnRobHlQYXltZW50cyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMifSwiTW9udGhseVBheW1lbnRzX05FVyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMifSwiTW9udGhseVBheW1lbnRzX1NNUyI6eyJGUkVOQ0giOiJEZW1hbmRlIGRlIG1lbnN1YWxpdGVzIC0gU01TIiwiRU5HTElTSCI6IlJlcXVlc3QgZm9yIG1vbnRobHkgcGF5bWVudHMgLSBTTVMifSwiTW9udGhseVBheW1lbnRzX1NNU19ORVciOnsiRlJFTkNIIjoiRGVtYW5kZSBkZSBtZW5zdWFsaXRlcyAtIFNNUyIsIkVOR0xJU0giOiJSZXF1ZXN0IGZvciBtb250aGx5IHBheW1lbnRzIC0gU01TIn0sIlBhcnRzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb21tYW5kZSBwaSZlZ3JhdmU7Y2UiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgdmVoaWNsZSBwYXJ0cyJ9LCJQaG90b1JlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBwaG90b3MiLCJFTkdMSVNIIjoiTGVhZDogUGhvdG8gcmVxdWVzdCJ9LCJQb3BVcEluc3RhbnRSZWJhdGUiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBSYWJhaXMgSW5zdGFudGFuZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IFJlYmF0ZSByZXF1ZXN0In0sIlBvcFVwSW5zdGFudFJlYmF0ZTMiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBkZSBSYWJhaXMgSW5zdGFudGFuZSIsIkVOR0xJU0giOiJMZWFkOiBJbnN0YW50IFJlYmF0ZSByZXF1ZXN0In0sIlBvcFVwSW5zdGFudFJlYmF0ZUFBIjp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgUmFiYWlzIEluc3RhbnRhbmUiLCJFTkdMSVNIIjoiTGVhZDogSW5zdGFudCBSZWJhdGUgcmVxdWVzdCJ9LCJQcmljZVJlcXVlc3QiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgcHJpeCIsIkVOR0xJU0giOiJMZWFkOiBQcmljZSByZXF1ZXN0In0sIlByaWNlUmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBwcml4IiwiRU5HTElTSCI6IkxlYWQ6IFByaWNlIHJlcXVlc3QifSwiUHJpY2VWZWhpY2xlIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHZhbGV1ciBkJ2VjaGFuZ2UiLCJFTkdMSVNIIjoiTGVhZDogVHJhZGUtaW4gcmVxdWVzdCJ9LCJQcmljZVZlaGljbGVBY2N1dHJhZGUiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIsIkVOR0xJU0giOiJMZWFkIDogVHJhZGUtaW4gcmVxdWVzdCJ9LCJQcmljZVZlaGljbGVOZXciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgdmFsZXVyIGQnZWNoYW5nZSIsIkVOR0xJU0giOiJMZWFkOiBUcmFkZS1pbiByZXF1ZXN0In0sIlF1aWNrRW1haWwiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgRXhwcmVzcyIsIkVOR0xJU0giOiJMZWFkOiBFeHByZXNzIHJlcXVlc3QifSwiUXVpY2tFbWFpbE5ld0ludmVudG9yeSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBFeHByZXNzIChpbnZlbnRhaXJlIG5ldWYpIiwiRU5HTElTSCI6IkxlYWQ6IEV4cHJlc3MgcmVxdWVzdCAobmV3IGludmVudG9yeSkifSwiUmViYXRlQ291cG9uIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKHZlaGljdWxlIGVuIGludmVudGFpcmUpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5IHZlaGljbGUpIn0sIlJlYmF0ZUNvdXBvbkludmVudG9yeSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChpbnZlbnRhaXJlKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGludmVudG9yeSkifSwiUmViYXRlQ291cG9uTmV3Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIn0sIlJlYmF0ZUNvdXBvbk5ld0JOUCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjb25maWd1cmF0ZXVyKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKGNvbmZpZ3VyYXRvcikifSwiUmViYXRlQ291cG9uTmV3SW52ZW50b3J5Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGludmVudGFpcmUpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoaW52ZW50b3J5KSJ9LCJSZWJhdGVDb3Vwb25OZXdTbGlkZXIiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY291cG9uIHJhYmFpcyAoY2Fyb3VzZWwpIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGEgcmViYXRlIGNvdXBvbiAoc2xpZGVyKSJ9LCJSZWJhdGVDb3Vwb25Qcm9tbyI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGJvdXRvbiAnUHJvbW90aW9ucycpIiwiRU5HTElTSCI6IkxlYWQ6IFJlYmF0ZSBDb3Vwb24gcmVxdWVzdCAoJ1Byb21vdGlvbnMnIGJ1dHRvbikifSwiUmViYXRlQ291cG9uU2xpZGVyIjp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIGNvdXBvbiByYWJhaXMgKGNhcm91c2VsKSIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciBhIHJlYmF0ZSBjb3Vwb24gKHNsaWRlcikifSwiUmViYXRlQ291cG9uVXNlZFNsaWRlciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBjb3Vwb24gcmFiYWlzIChjYXJvdXNlbCkiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSByZWJhdGUgY291cG9uIChzbGlkZXIpIn0sIlJlY2FsbHMiOnsiRlJFTkNIIjoiRGVtYW5kZSBkJ2luZm9ybWF0aW9uIHN1ciBsZXMgcmFwcGVscyIsIkVOR0xJU0giOiJSZWNhbGwgaW5mb3JtYXRpb24gcmVxdWVzdCJ9LCJSZXNlcnZlSXROb3ciOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgcG91ciByZXNlcnZlciB1biB2ZWhpY3VsZSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBwcmUtb3JkZXIgYSB2ZWhpY2xlIn0sIlJlc2VydmVJdE5vd05ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBwb3VyIHJlc2VydmVyIHVuIHZlaGljdWxlIiwiRU5HTElTSCI6IkxlYWQgOiBSZXF1ZXN0IHRvIHByZS1vcmRlciBhIHZlaGljbGUifSwiU2VsbENhciI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBWZW5kZXogVmVoaWN1bGUiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgdG8gYnV5IHlvdXIgY2FyIn0sIlNlbGxDYXJfU2hvcnQiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgVmVuZGV6LW5vdXMgdm90cmUgdmVoaWN1bGUgKHZlcnNpb24gY291cnRlKSIsIkVOR0xJU0giOiJMZWFkIDogUmVxdWVzdCB0byBidXkgeW91ciBjYXIgKFNob3J0IHZlcnNpb24pIn0sIlNlcnZpY2VSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQgOiBEZW1hbmRlIGRlIHJlbmRlei12b3VzIGF1IHNlcnZpY2UiLCJFTkdMSVNIIjoiTGVhZDogU2VydmljZSBhcHBvaW50bWVudCByZXF1ZXN0In0sIlNNU0xlYWQiOnsiRlJFTkNIIjoiTGVhZDogRGVtYW5kZSBTTVMgKFRleHRvKSIsIkVOR0xJU0giOiJMZWFkOiBTTVMgcmVxdWVzdCJ9LCJTTVNMZWFkX29sZCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBTTVMgKFRleHRvKSIsIkVOR0xJU0giOiJMZWFkIDogU01TIHJlcXVlc3QifSwiU3BlY3NSZXF1ZXN0Ijp7IkZSRU5DSCI6IkxlYWQ6IERlbWFuZGUgZGUgZmljaGUgUERGIC0gVmVoaWN1bGUgZW4gaW52ZW50YWlyZSIsIkVOR0xJU0giOiJMZWFkOiBQREYgcmVxdWVzdCAtIFZlaGljbGUgaW4gaW52ZW50b3J5In0sIlNwZWNzUmVxdWVzdE5ldyI6eyJGUkVOQ0giOiJMZWFkOiBEZW1hbmRlIGRlIGJyb2NodXJlIFBERiIsIkVOR0xJU0giOiJMZWFkOiBQREYgYnJvY2h1cmUgcmVxdWVzdCJ9LCJTUlBDb250YWN0VXMiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZGUgY29udGFjdCBTUlAiLCJFTkdMSVNIIjoiTGVhZCA6IFJlcXVlc3QgZm9yIGNvbnRhY3QgU1JQIn0sIlRlc3REcml2ZSI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkJ2Vzc2FpIHJvdXRpZXIiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSB0ZXN0IGRyaXZlIn0sIlRlc3REcml2ZU5ldyI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkJ2Vzc2FpIHJvdXRpZXIiLCJFTkdMSVNIIjoiTGVhZDogUmVxdWVzdCBmb3IgYSB0ZXN0IGRyaXZlIn0sIlRpcmVzUmVxdWVzdCI6eyJGUkVOQ0giOiJMZWFkIDogRGVtYW5kZSBkZSBwbmV1cyIsIkVOR0xJU0giOiJMZWFkOiBSZXF1ZXN0IGZvciB0aXJlcyJ9LCJQcm9tb01haWwiOnsiRlJFTkNIIjoiTGVhZCA6IERlbWFuZGUgZCdpbnZpdGF0aW9uIGEgbGEgdmVudGUgcHJpdmVlIiwiRU5HTElTSCI6IkxlYWQ6IFJlcXVlc3QgZm9yIGludml0YXRpb24gdG8gcHJpdmF0ZSBzYWxlIn0sIlNsaWRlV2lkZ2V0Rm9ybSI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn0sIkNvbXBhcmVGb3JtIjp7IkZSRU5DSCI6IlVJVEVYVCIsIkVOR0xJU0giOiJVSVRFWFQifSwiU2VhcmNoRmlsdGVycyI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn0sImhlYWRlckdsb2JhbFNlYXJjaCI6eyJGUkVOQ0giOiJVSVRFWFQiLCJFTkdMSVNIIjoiVUlURVhUIn19LCJzdWJfZ2E0IjoiWSJ9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Y3M2ZhNmFiYmZiNGJhYjNmNDlkYWFmYjM4OTFlMjdmO3RyeXsoZnVuY3Rpb24odyxkLHQscix1KXt2YXIgZixuLGk7d1t1XT13W3VdfHxbXSxmPWZ1bmN0aW9uKCl7dmFyIG89e3RpOiI1MDc5MzkxIixlbmFibGVBdXRvU3BhVHJhY2tpbmc6dHJ1ZX07by5xPXdbdV0sd1t1XT1uZXcgVUVUKG8pLHdbdV0ucHVzaCgicGFnZUxvYWQiKX0sbj1kLmNyZWF0ZUVsZW1lbnQodCksbi5zcmM9cixuLmFzeW5jPTEsbi5zZXRBdHRyaWJ1dGUoImRhdGEtb3QtaWdub3JlIix0cnVlKSxuLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpLG4ub25sb2FkPW4ub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7dmFyIHM9dGhpcy5yZWFkeVN0YXRlO3MmJnMhPT0ibG9hZGVkIiYmcyE9PSJjb21wbGV0ZSJ8fChmKCksbi5vbmxvYWQ9bi5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbCl9LGk9ZC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0KVswXSxpLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKG4saSl9KSh3aW5kb3csZG9jdW1lbnQsInNjcmlwdCIsIi8vYmF0LmJpbmcuY29tL2JhdC5qcyIsInVldHEiKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzE1ZGJlMWVjNGJiODE5ZjNiZTlhZjBiYjkxNzMxZDlmO3RyeXt2YXIgZGVwbG95bWVudFR5cGU9JycranNfZDJjX2dldF92YWwoIjJlamhiYzB5eW9nMHd3dyIpKycnO2lmKGRlcGxveW1lbnRUeXBlPT0nbGl2ZScpe2dhVHJhY2soJ190cmFja0V2ZW50JywnUGFnZXMgdnVlcycsJ1NlY3Rpb24tTmV1Zi1Nb2JpbGUnLCcnLDEpO2dhVHJhY2soJ2MuX3RyYWNrRXZlbnQnLCdNb2JpbGUgcGFnZXZpZXdzJywnU3RhbmRhcmQgTW9iaWxlJyx3aW5kb3cubG9jYXRpb24uaHJlZiwnMScpO31lbHNlIGlmKGRlcGxveW1lbnRUeXBlPT0nc3RhZ2luZycpe2dhVHJhY2soJ2IuX3RyYWNrRXZlbnQnLCdNb2JpbGUgcGFnZXZpZXdzJywnU3RhbmRhcmQgTW9iaWxlJyx3aW5kb3cubG9jYXRpb24uaHJlZiwnMScpO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzZiZTg4YzgwMmZiNjc1ZTA1NmM2MGJjMzFlY2M2ODRiO3RyeXtmdW5jdGlvbiBzaG93UGhvbmVQb3B1cCgpe2dhVHJhY2soJ190cmFja0V2ZW50JywnVGVsZXBob25lcycsJ1NpdGUtTW9iaWxlJywnJywxKTt2YXIgaHRtbD1QaG9uZXNUb1JlcGxhY2UucmVwbGFjZShhdG9iKCJQR1JwZGlCamJHRnpjejBuYldWdWRTYytQSFZzSUdOc1lYTnpQU0p6ZEdGamF5MXNZeUkrUEd4cFBnb0pQR0VnSUdoeVpXWTlJblJsYkRwN0pGVnpaV1JRU0U5T1JVWlBVazFCVkZSRlJIMGlJSFJoY21kbGREMGlYM05sYkdZaUlITjBlV3hsUFNKbWIyNTBMWE5wZW1VNklESXljSGc3SWlCa1lYUmhMV1JsY0dGeWRHMWxiblE5SWxOaGJHVnpJajRLQ1FrOGFTQmpiR0Z6Y3owaVptRWdabUV0Y0dodmJtVWlJSE4wZVd4bFBTSnRZWEpuYVc0NklETndlQ0F4TUhCNElEQWdNVFZ3ZURzaVBqd3ZhVDRLQ1FsSDZXN3BjbUZzQ2drOEwyRStDZ2tLUEM5c2FUNDhMM1ZzUGp3dlpHbDJQZz09IikpO2lmKCQoaHRtbCkuZmluZCgnYScpLmxlbmd0aD09MSl7JCgnI3Bob25lTnVtYmVyRGl2JykuaHRtbChodG1sKS5maW5kKCdhJylbMF0uY2xpY2soKTtyZXR1cm47fQokKCcjcGhvbmVOdW1iZXJEaXYnKS5odG1sKGh0bWwpLnJldmVhbCh7YW5pbWF0aW9uOidmYWRlQW5kUG9wJyxhbmltYXRpb25zcGVlZDozMDAsY2xvc2VvbmJhY2tncm91bmRjbGljazp0cnVlLGRpc21pc3Ntb2RhbGNsYXNzOidjbG9zZS1yZXZlYWwtbW9kYWwnfSk7fQpmdW5jdGlvbiBjaGVja0F1dGgoKXtnYXBpLmF1dGguYXV0aG9yaXplKHtjbGllbnRfaWQ6Z2FwaWNsaWVudElkLHNjb3BlOmdhcGlzY29wZXMsaW1tZWRpYXRlOmZhbHNlfSxoYW5kbGVBdXRoUmVzdWx0KTt9CmZ1bmN0aW9uIGhhbmRsZUF1dGhSZXN1bHQoYXV0aFJlc3VsdCl7aWYoYXV0aFJlc3VsdCYmIWF1dGhSZXN1bHQuZXJyb3Ipe29wZW5Hb29nbGVNYXAodHJ1ZSk7fWVsc2V7b3Blbkdvb2dsZU1hcChmYWxzZSk7fX0KZnVuY3Rpb24gb3Blbkdvb2dsZU1hcCgpe3ZhciBtYXBUb1VzZT0iIitqc19kMmNfZ2V0X3ZhbCgiMTQwNHJhMDRid3JrbzR3ZyIpKyIiO3ZhciB1cmw9Imh0dHA6Ly9tYXBzLiIrbWFwVG9Vc2UrIi5jb20vP3E9MTk0MCUyQyszaWVtZStBdmVudWUlMkMrVmFsLWQlMjdPciUyQytRdWViZWMlMkMrSjlQKzdCMiZ6PTEzIjt3aW5kb3cub3Blbih1cmwpO319Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzRkMjViYTA2NDE3MTM4Nzg1YWNmYTUwMDY1YmJiYWE5O3RyeXt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50Xzg0ZjY0NDZiZWRjYWQyZTBlY2MxMmYxYzEyNDY1ODU3O3RyeXt2YXIgZXNmRGVsYXk9MTA7ZnVuY3Rpb24gZXNjYXBlRnJhbWUoKXtpZigoZG9jdW1lbnQubG9jYXRpb24rJycpLmluZGV4T2YoJ25mcj0xJyk9PS0xKXJldHVybjskKCdhJykubm90KCdbdGFyZ2V0XScpLmVhY2goZnVuY3Rpb24oKXt2YXIgZWw9JCh0aGlzKTt2YXIgdGFyZ2V0PWVsLmF0dHIoJ3RhcmdldCcpO3ZhciBocmVmPWVsLmF0dHIoJ2hyZWYnKTtpZih0YXJnZXQmJnRhcmdldC5sZW5ndGg+MCl7cmV0dXJuO30KaWYoIWhyZWYpcmV0dXJuO3ZhciBwcm90b2NvbD1ocmVmLm1hdGNoKC9eKFthLXowLTldKyk6Lyk7aWYocHJvdG9jb2whPW51bGwmJiFwcm90b2NvbFsxXS5tYXRjaCgvXmh0dHAvKSl7cmV0dXJuO30KaWYoaHJlZlswXT09PScjJyl7cmV0dXJuO30KZWwuYXR0cigndGFyZ2V0JywnX3RvcCcpO30pO3NldFRpbWVvdXQoZXNjYXBlRnJhbWUsMTAwKmVzZkRlbGF5KyspO30KalF1ZXJ5KGVzY2FwZUZyYW1lKTtmdW5jdGlvbiB0b2dnbGVTdWJtZW51cyhvYmopeyQob2JqKS5jbG9zZXN0KCdsaScpLmZpbmQoJy5zdWJtZW51SXRlbUNvbnRhaW5lciwgLnN1Ym1lbnVJdGVtQ2hpbGRDb250YWluZXInKS5maXJzdCgpLnNsaWRlVG9nZ2xlKCdzbG93Jyk7aWYoJChvYmopLmhhc0NsYXNzKCdtZW51Q29sbHBhc2UnKSl7JChvYmopLnJlbW92ZUNsYXNzKCdtZW51Q29sbHBhc2UnKTt9ZWxzZXskKG9iaikuYWRkQ2xhc3MoJ21lbnVDb2xscGFzZScpO30KcmV0dXJuIGZhbHNlO30KZnVuY3Rpb24gZ2V0UGFyYW1ldGVyQnlOYW1lKG5hbWUpe25hbWU9bmFtZS5yZXBsYWNlKC9bXFtdLywiXFsiKS5yZXBsYWNlKC9bXF1dLywiXF0iKTt2YXIgcmVnZXg9bmV3IFJlZ0V4cCgiW1w\/Jl0iK25hbWUrIj0oW14mI10qKSIpLHJlc3VsdHM9cmVnZXguZXhlYyhsb2NhdGlvbi5zZWFyY2gpO3JldHVybiByZXN1bHRzPT1udWxsPyIiOmRlY29kZVVSSUNvbXBvbmVudChyZXN1bHRzWzFdLnJlcGxhY2UoL1wrL2csIiAiKSk7fQp2YXIgdXRtX3NvdXJjZT1nZXRQYXJhbWV0ZXJCeU5hbWUoJ3V0bV9zb3VyY2UnKTtqUXVlcnkoZnVuY3Rpb24oJCl7JCgnLm5vdENsaWNrYWJsZScpLm9uKCdjbGljaycsZnVuY3Rpb24oZXZlbnQpe2V2ZW50LnByZXZlbnREZWZhdWx0KCk7dG9nZ2xlU3VibWVudXMoJCgnLm1lbnVFeHBhbmQnLHRoaXMpKTtyZXR1cm4gZmFsc2U7fSk7JCgnLm1lbnVFeHBhbmQnKS5vbignY2xpY2snLGZ1bmN0aW9uKGV2ZW50KXtldmVudC5wcmV2ZW50RGVmYXVsdCgpO3RvZ2dsZVN1Ym1lbnVzKCQoJy5tZW51RXhwYW5kJyx0aGlzLmNsb3Nlc3QoJy5tZW51LWl0ZW0nKSkpO3JldHVybiBmYWxzZTt9KTtpZigkKCcudXNlZHBob25lZm9ybWF0ZWQnKS5sZW5ndGg+MCYmJCgnI2FnZW50cGhvbmUnKS5sZW5ndGg+MCYmJCgnI2FnZW50cGhvbmUnKS52YWwoKS5sZW5ndGg+NSl7JCgnLnVzZWRwaG9uZWZvcm1hdGVkJykuYXR0cignaHJlZicsJ3RlbDonKyQoJyNhZ2VudHBob25lJykudmFsKCkpO30Kc2V0VGltZW91dChmdW5jdGlvbigpeyQod2luZG93KS5vbignb3JpZW50YXRpb25jaGFuZ2UnLGZ1bmN0aW9uKGV2ZW50KXtpZih3aW5kb3cub3JpZW50YXRpb249PTkwfHx3aW5kb3cub3JpZW50YXRpb249PS05MHx8d2luZG93Lm9yaWVudGF0aW9uPT0yNzApeyQoJ21ldGFbbmFtZT0idmlld3BvcnQiXScpLmF0dHIoJ2NvbnRlbnQnLCdoZWlnaHQ9ZGV2aWNlLXdpZHRoLHdpZHRoPWRldmljZS1oZWlnaHQsaW5pdGlhbC1zY2FsZT0xLG1heGltdW0tc2NhbGU9MycpOyQod2luZG93KS50cmlnZ2VyKCdyZXNpemUnKTt9ZWxzZXskKCdtZXRhW25hbWU9InZpZXdwb3J0Il0nKS5hdHRyKCdjb250ZW50JywnaGVpZ2h0PWRldmljZS1oZWlnaHQsd2lkdGg9ZGV2aWNlLXdpZHRoLGluaXRpYWwtc2NhbGU9MSxtYXhpbXVtLXNjYWxlPTMnKTskKHdpbmRvdykudHJpZ2dlcigncmVzaXplJyk7fX0pLnRyaWdnZXIoJ29yaWVudGF0aW9uY2hhbmdlJyk7aWYodXRtX3NvdXJjZSE9IiIpe0Nvb2tpZXMuc2V0KCd1dG1fbGFuZGluZ19mb290ZXInLG51bGwsbnVsbCwiLyIpO30KaWYoQ29va2llcy5nZXQoInV0bV9sYW5kaW5nX2Zvb3RlciIpPT1udWxsfHxDb29raWVzLmdldCgidXRtX2xhbmRpbmdfZm9vdGVyIik9PT0nbnVsbCcpe0Nvb2tpZXMuc2V0KCd1dG1fbGFuZGluZ19mb290ZXInLHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZSwxODAsIi8iKTt9fSk7fSwxMDAwMCk7ZnVuY3Rpb24gc2hvd05vcm1hbFNpdGUoKXt2YXIgZG9tYWluPSIiK2pzX2QyY19nZXRfdmFsKCJ1NnRocnc5b2xjZzh3OHciKSsiIjtDb29raWVzLnNldCgnVXNlRnVsbFNpdGUnLCcxJyxudWxsLCIvIixkb21haW4pO3dpbmRvdy5sb2NhdGlvbi5ocmVmPScnK2pzX2QyY19nZXRfdmFsKCJjb3U5aG00MjkxYzBrb2MiKSsnJzt9fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF85NjQ4YTM3NTY3YmQyYWRlMGVjNGMyMzIxYzcxZTM0Yzt0cnl7d2luZG93LkQyQ0ZiQ29uc2VudD13aW5kb3cuRDJDRmJDb25zZW50fHx7X3N0YXRlOm51bGwsX3F1ZXVlOltdLF9mbHVzaDpmdW5jdGlvbigpe3ZhciBxPXRoaXMuX3F1ZXVlO3RoaXMuX3F1ZXVlPVtdO3EuZm9yRWFjaChmdW5jdGlvbihjYil7dHJ5e2NiKCk7fWNhdGNoKGUpe319KTt9LGdyYW50OmZ1bmN0aW9uKCl7dGhpcy5fc3RhdGU9J2dyYW50JztpZih0eXBlb2YgZmJxIT09J3VuZGVmaW5lZCcpe2ZicSgnY29uc2VudCcsJ2dyYW50Jyk7dGhpcy5fZmx1c2goKTt9fSxyZXZva2U6ZnVuY3Rpb24oKXt0aGlzLl9zdGF0ZT0ncmV2b2tlJztpZih0eXBlb2YgZmJxIT09J3VuZGVmaW5lZCcpe2ZicSgnY29uc2VudCcsJ3Jldm9rZScpO319LG9uR3JhbnRlZDpmdW5jdGlvbihjYil7aWYodHlwZW9mIGNiIT09J2Z1bmN0aW9uJyl7cmV0dXJuO31pZih0aGlzLl9zdGF0ZT09PSdncmFudCcmJnR5cGVvZiBmYnEhPT0ndW5kZWZpbmVkJyl7dHJ5e2NiKCk7fWNhdGNoKGUpe319ZWxzZXt0aGlzLl9xdWV1ZS5wdXNoKGNiKTt9fSxzeW5jVG9GYnE6ZnVuY3Rpb24oKXtpZih0aGlzLl9zdGF0ZSYmdHlwZW9mIGZicSE9PSd1bmRlZmluZWQnKXtmYnEoJ2NvbnNlbnQnLHRoaXMuX3N0YXRlKTtpZih0aGlzLl9zdGF0ZT09PSdncmFudCcpe3RoaXMuX2ZsdXNoKCk7fX19fTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aWYod2luZG93LkQyQ0ZiQ29uc2VudC5fc3RhdGU9PT1udWxsJiZ0eXBlb2Ygd2luZG93LkNvb2tpZUNvbnNlbnQ9PT0ndW5kZWZpbmVkJyl7d2luZG93LkQyQ0ZiQ29uc2VudC5ncmFudCgpO319LDE1MDApOyFmdW5jdGlvbihmLGIsZSx2LG4sdCxzKXtpZihmLmZicSlyZXR1cm47bj1mLmZicT1mdW5jdGlvbigpe24uY2FsbE1ldGhvZD9uLmNhbGxNZXRob2QuYXBwbHkobixhcmd1bWVudHMpOm4ucXVldWUucHVzaChhcmd1bWVudHMpfTtpZighZi5fZmJxKWYuX2ZicT1uO24ucHVzaD1uO24ubG9hZGVkPSEwO24udmVyc2lvbj0nMi4wJztuLnF1ZXVlPVtdO3Q9Yi5jcmVhdGVFbGVtZW50KGUpO3QuYXN5bmM9ITA7dC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywnb3B0YW5vbi1jYXRlZ29yeS1DMDAwMi1DMDAwMy1DMDAwNC1DMDAwNScpO3Quc2V0QXR0cmlidXRlKCd0eXBlJywndGV4dC9wbGFpbicpO3Quc3JjPXY7dC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywnb3B0YW5vbi1jYXRlZ29yeS1DMDAwMi1DMDAwMy1DMDAwNC1DMDAwNScpO3Quc2V0QXR0cmlidXRlKCd0eXBlJywndGV4dC9wbGFpbicpO3M9Yi5nZXRFbGVtZW50c0J5VGFnTmFtZShlKVswXTtzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHQscyl9KHdpbmRvdyxkb2N1bWVudCwnc2NyaXB0JywnaHR0cHM6Ly9jb25uZWN0LmZhY2Vib29rLm5ldC9lbl9VUy9mYmV2ZW50cy5qcycpO2ZicSgnaW5pdCcsJzQxNjkzNzIwMjU3MjY0MicpO3dpbmRvdy5EMkNGYkNvbnNlbnQuc3luY1RvRmJxKCk7d2luZG93LkQyQ0ZiQ29uc2VudC5vbkdyYW50ZWQoZnVuY3Rpb24oKXtmYnEoJ3RyYWNrJywiUGFnZVZpZXciKTt9KTt3aW5kb3cuRDJDRmJDb25zZW50Lm9uR3JhbnRlZChmdW5jdGlvbigpe2ZicSgndHJhY2snLCdWaWV3Q29udGVudCcpO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMzE0Y2FhNWJmNTkwOTJjNmY3Y2Y2YTJmYzcyZTk1MTM7dHJ5e2lmKHR5cGVvZiBwYWdlIT09J3VuZGVmaW5lZCcmJnBhZ2U9PSJORVdDQVJERVRBSUxTIil7JChkb2N1bWVudCkub24oJ2NsaWNrJywnYScsZnVuY3Rpb24oKXt2YXIgb2JqPSQodGhpcyk7dmFyIGhyZWY9b2JqLmF0dHIoJ2hyZWYnKTt2YXIgdGV4dD1vYmoudGV4dCgpO2lmKHRleHQubGVuZ3RoPjAmJm9iai5maW5kKCdpbWcnKS5sZW5ndGg9PTAmJnR5cGVvZiBocmVmIT0ndW5kZWZpbmVkJyl7dmFyIHRpdGxlPSQoJy5icmFuZGVtYWlsW25hbWU9ImJyYW5kIl0nKS52YWwoKSsnLScrJCgnLm1vZGVsZW1haWxbbmFtZT0ibW9kZWwiXScpLnZhbCgpKyctJyskKCcueWVhcmVtYWlsJykudmFsKCk7aWYoaHJlZiE9IiMiJiZocmVmIT0iIiYmaHJlZi5pbmRleE9mKCJqYXZhc2NyaXB0Iik8MCYmaHJlZi5pbmRleE9mKCd7Jyk8MCl7dGl0bGU9aHJlZjt9CmdhVHJhY2soJ190cmFja0V2ZW50JywnTmV3LVZEUC1PdXRib3VuZC1jbGlja3MnLG9iai50ZXh0KCksdGl0bGUpO319KX19Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2EzNmJmYzc1OTMzY2Q4ODJkYzIwYWYxNTc1NWU4NDljO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2QyY0Zvb3RlckNvb2tpZURlbGV0ZSIpLnBvcHVwaXplKHsiY29va2llRHVyYXRpb24iOjMwLCJjb29raWVOYW1lIjpudWxsLCJjb29raWVDcmVhdGUiOm51bGwsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjpudWxsLCJvZmZlcnR5cGUiOm51bGwsIm5hbWUiOm51bGwsInNlbmRUbyI6bnVsbCwic2VuZFRvQURGIjpudWxsLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjpmYWxzZSwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzg0NjA2NDAwLCJjb25maXJtRm9ybSI6W3sibmFtZSI6ImxhYmVsIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsZW1haWwifSx7Im5hbWUiOiJzZWN0aW9uIiwidmFsdWUiOiIiLCJjbGFzcyI6ImxhYmVsc2VjdGlvbiJ9LHsibmFtZSI6ImJyYW5kIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiIsImNsYXNzIjoiYnJhbmRlbWFpbCJ9LHsibmFtZSI6Im1vZGVsIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIiwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiIsImNsYXNzIjoieWVhcmVtYWlsIn0seyJuYW1lIjoiZ29vZ2xlaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6Imdvb2dsZWlkZDJjbWVkaWEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdjb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2FjdGlvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nZG9tYWluaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbEFkdiIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsUGl4IiwidmFsdWUiOiIifSx7Im5hbWUiOiJmYWNlYm9va0NvbklkIiwidmFsdWUiOiI0MTY5MzcyMDI1NzI2NDIifSx7Im5hbWUiOiJkb21haW4iLCJ2YWx1ZSI6InBvaXJpZXJoeXVuZGFpLmNhIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIifSx7Im5hbWUiOiJpc2V4cHJlc3MiLCJ2YWx1ZSI6IjAiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJpc2hvbWVwYWdlIiwidmFsdWUiOiIwIn0seyJuYW1lIjoidGV4dENhclNlY3Rpb25UeXBlIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsiIn0seyJuYW1lIjoiZnJvbUFBIiwidmFsdWUiOiIifSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifV19KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50XzI5OTlmMzIxYzQyZjM5ZmI0MzcwYjY1NzAxYTUzNWYzO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7dmFyIGlzVkRQUGFnZT0kKCcjcGFnZScpLnZhbCgpPT0nZGV0YWlsc05ldycmJiQoJyNoYXNQREYnKS52YWwoKT09JzEnO2Z1bmN0aW9uIGxvZ1BhZ2VWaWV3RXZlbnQoZXZlbnQsZXZlbnRDYXRlZ29yeSxhZGRlZEluZm8pe3RyeXthY3RpdmVVc2VyUHJvZmlsZU1uZy5sb2dQYWdlVmlld0V2ZW50KGV2ZW50LGV2ZW50Q2F0ZWdvcnksYWRkZWRJbmZvKTt9Y2F0Y2goZSl7Y29uc29sZS5sb2coZSk7fX0KdmFyIG1ha2VUZXh0PSQoJ1tuYW1lPSJicmFuZCJdJykubGVuZ3RoPjA\/JCgnW25hbWU9ImJyYW5kIl0nKS52YWwoKTonJzt2YXIgbW9kZWxUZXh0PSQoJ1tuYW1lPSJtb2RlbCJdJykubGVuZ3RoPjA\/JCgnW25hbWU9Im1vZGVsIl0nKS52YWwoKTonJzt2YXIgeWVhclRleHQ9JCgnW25hbWU9InllYXIiXScpLmxlbmd0aD4wPyQoJ1tuYW1lPSJ5ZWFyIl0nKS52YWwoKTonJzttYWtlVGV4dD1tYWtlVGV4dD9tYWtlVGV4dDooJCgnI3BvcHVwbWFrZScpLmxlbmd0aD4wPyQoJyNwb3B1cG1ha2UnKS52YWwoKTonICcpO21vZGVsVGV4dD1tb2RlbFRleHQ\/bW9kZWxUZXh0OigkKCcjcG9wdXBtb2RlbCcpLmxlbmd0aD4wPyQoJyNwb3B1cG1vZGVsJykudmFsKCk6JyAnKTt5ZWFyVGV4dD15ZWFyVGV4dD95ZWFyVGV4dDooJCgnI3BvcHVweWVhcicpLmxlbmd0aD4wPyQoJyNwb3B1cHllYXInKS52YWwoKTonICcpO3ZhciB2ZHBUb2FzdGVyUERGVGV4dD0iZGUgY2UgIitqc19kMmNfZ2V0X3ZhbCgiY2trbjZldDkwM3dvc2siKSsiICIranNfZDJjX2dldF92YWwoIjQyY2xzaHlxc3h3a3NrbyIpKyIgIitqc19kMmNfZ2V0X3ZhbCgiMXA5NnBxMjJ0Mjc0Y2NjIikrIiBtYWludGVuYW50ISI7dmRwVG9hc3RlclBERlRleHQ9dmRwVG9hc3RlclBERlRleHQucmVwbGFjZSgnIyNNQUtFIyMnLG1ha2VUZXh0KTt2ZHBUb2FzdGVyUERGVGV4dD12ZHBUb2FzdGVyUERGVGV4dC5yZXBsYWNlKCcjI01PREVMIyMnLG1vZGVsVGV4dCk7dmRwVG9hc3RlclBERlRleHQ9dmRwVG9hc3RlclBERlRleHQucmVwbGFjZSgnIyNZRUFSIyMnLHllYXJUZXh0KTt2YXIgb3B0aW9uc1RvYXN0ZXIyPXsib25DbG9zZSI6ZnVuY3Rpb24oKXtyZXR1cm4gZmFsc2U7fSwiY2xvc2VCdXR0b24iOnRydWUsImRlYnVnIjpmYWxzZSwibmV3ZXN0T25Ub3AiOmZhbHNlLCJwcm9ncmVzc0JhciI6ZmFsc2UsInBvc2l0aW9uQ2xhc3MiOiJ0b2FzdC1ib3R0b20tZnVsbC13aWR0aCIsInByZXZlbnREdXBsaWNhdGVzIjpmYWxzZSwib25jbGljayI6ZnVuY3Rpb24oKXtnYVRyYWNrKCdfdHJhY2tFdmVudCcsJ01vYmlsZS1Ub2FzdGVycycsJ05ldWYtVmlkZW8nLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpO3RvU21zUERGKCd2aWRlb0xpbmsnKTtsb2dQYWdlVmlld0V2ZW50KCdNb2JpbGUtVG9hc3RlcicsJ1RPQVNURVJfTV9FVkVOVF9ORVdfVklERU8nKTtyZXR1cm4gZmFsc2U7fSwic2hvd0R1cmF0aW9uIjoiMzAwIiwiaGlkZUR1cmF0aW9uIjoiMTAwMCIsInRpbWVPdXQiOiIwIiwiZXh0ZW5kZWRUaW1lT3V0IjoiMTAwMCIsInNob3dFYXNpbmciOiJzd2luZyIsImhpZGVFYXNpbmciOiJsaW5lYXIiLCJzaG93TWV0aG9kIjoic2xpZGVEb3duIiwiaGlkZU1ldGhvZCI6ImZhZGVPdXQiLCJjb2xvciI6IiNmZmZmZmYiLCJiZ0NvbG9yIjoiIzAwMDAwMCJ9O2lmKGlzVkRQUGFnZSYmJzEnPT10cnVlKXt2YXIgdGV4dEJyb2NodXJlPSdPdWkhIFRleHRlei1tb2kgbGEgYnJvY2h1cmUnO3ZhciB0ZXh0VG9Vc2U9dGV4dEJyb2NodXJlO3ZhciB2ZHBUb2FzdGVyTW9kZWxZZWFyPXZkcFRvYXN0ZXJQREZUZXh0O3RvYXN0ci5vcHRpb25zPXsib25DbG9zZSI6ZnVuY3Rpb24oKXtkZWxheWVkVmlkZW9Ub2FzdGVyKHZkcFRvYXN0ZXJQREZUZXh0LG9wdGlvbnNUb2FzdGVyMik7fSwiY2xvc2VCdXR0b24iOnRydWUsImRlYnVnIjpmYWxzZSwibmV3ZXN0T25Ub3AiOmZhbHNlLCJwcm9ncmVzc0JhciI6ZmFsc2UsInBvc2l0aW9uQ2xhc3MiOiJ0b2FzdC1ib3R0b20tZnVsbC13aWR0aCIsInByZXZlbnREdXBsaWNhdGVzIjpmYWxzZSwib25jbGljayI6ZnVuY3Rpb24oKXtnYVRyYWNrKCdfdHJhY2tFdmVudCcsJ01vYmlsZS1Ub2FzdGVycycsJ05ldWYtQnJvY2h1cmUnLHdpbmRvdy5sb2NhdGlvbi5ocmVmLDEpO3RvU21zUERGKCdicm9jaHVyZVJlcXVlc3QnKTtkZWxheWVkVmlkZW9Ub2FzdGVyKHZkcFRvYXN0ZXJQREZUZXh0LG9wdGlvbnNUb2FzdGVyMik7bG9nUGFnZVZpZXdFdmVudCgnTW9iaWxlLVRvYXN0ZXInLCdUT0FTVEVSX01fRVZFTlRfTkVXX0JST0NIVVJFJyk7cmV0dXJuIGZhbHNlO30sInNob3dEdXJhdGlvbiI6IjMwMCIsImhpZGVEdXJhdGlvbiI6IjEwMDAiLCJ0aW1lT3V0IjoiMCIsImV4dGVuZGVkVGltZU91dCI6IjEwMDAiLCJzaG93RWFzaW5nIjoic3dpbmciLCJoaWRlRWFzaW5nIjoibGluZWFyIiwic2hvd01ldGhvZCI6InNsaWRlRG93biIsImhpZGVNZXRob2QiOiJmYWRlT3V0IiwiY29sb3IiOiIjZmZmZmZmIiwiYmdDb2xvciI6IiMwMDdmYTUifTtzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7dG9hc3RyLnN1Y2Nlc3ModmRwVG9hc3Rlck1vZGVsWWVhcisiPGJyLz4gQ2xpcXVleiBpY2kuIix0ZXh0VG9Vc2UpOyQoJyN0b2FzdC1jb250YWluZXInKS5jc3MoJ3otaW5kZXgnLCcyMTQ3NDgzNjQxJyk7JCgnI3RvYXN0LWNvbnRhaW5lciA+IGRpdicpLmNzcygnb3BhY2l0eScsJzAuOTUnKTt9LDApO31lbHNlIGlmKCQoJyNwYWdlJykudmFsKCk9PSdkZXRhaWxzTmV3JyYmJyc9PXRydWUpe3ZhciB0ZXh0QmVzdFByaWNlPSdPdWkhIFRleHRlei1tb2kgdm90cmUgbWVpbGxldXIgcHJpeCc7dmFyIHRleHRUb1VzZT10ZXh0QmVzdFByaWNlO3ZhciB2ZHBUb2FzdGVyTW9kZWxZZWFyPSJzdXIgY2UgIitqc19kMmNfZ2V0X3ZhbCgiNDJjbHNoeXFzeHdrc2tvIikrIiAiK2pzX2QyY19nZXRfdmFsKCIxcDk2cHEyMnQyNzRjY2MiKSsiIE1BSU5URU5BTlQhIjt2ZHBUb2FzdGVyTW9kZWxZZWFyPXZkcFRvYXN0ZXJNb2RlbFllYXIucmVwbGFjZSgnJytqc19kMmNfZ2V0X3ZhbCgiNDJjbHNoeXFzeHdrc2tvIikrJycsbW9kZWxUZXh0KTt2ZHBUb2FzdGVyTW9kZWxZZWFyPXZkcFRvYXN0ZXJNb2RlbFllYXIucmVwbGFjZSgnJytqc19kMmNfZ2V0X3ZhbCgiMXA5NnBxMjJ0Mjc0Y2NjIikrJycseWVhclRleHQpO3RvYXN0ci5vcHRpb25zPXsib25DbG9zZSI6ZnVuY3Rpb24oKXtkZWxheWVkVmlkZW9Ub2FzdGVyKHZkcFRvYXN0ZXJQREZUZXh0LG9wdGlvbnNUb2FzdGVyMik7fSwiY2xvc2VCdXR0b24iOnRydWUsImRlYnVnIjpmYWxzZSwibmV3ZXN0T25Ub3AiOmZhbHNlLCJwcm9ncmVzc0JhciI6ZmFsc2UsInBvc2l0aW9uQ2xhc3MiOiJ0b2FzdC1ib3R0b20tZnVsbC13aWR0aCIsInByZXZlbnREdXBsaWNhdGVzIjpmYWxzZSwib25jbGljayI6ZnVuY3Rpb24oKXtnYVRyYWNrKCdfdHJhY2tFdmVudCcsJ01vYmlsZS1Ub2FzdGVycycsJ05ldWYtQmVzdC1QcmljZScsd2luZG93LmxvY2F0aW9uLmhyZWYsMSk7dG9TbXNQREYoJ2Jlc3RQcmljZU5ldycpO2RlbGF5ZWRWaWRlb1RvYXN0ZXIodmRwVG9hc3RlclBERlRleHQsb3B0aW9uc1RvYXN0ZXIyKTtsb2dQYWdlVmlld0V2ZW50KCdNb2JpbGUtVG9hc3RlcicsJ1RPQVNURVJfTV9FVkVOVF9ORVdfQkVTVF9QUklDRScpO3JldHVybiBmYWxzZTt9LCJzaG93RHVyYXRpb24iOiIzMDAiLCJoaWRlRHVyYXRpb24iOiIxMDAwIiwidGltZU91dCI6IjAiLCJleHRlbmRlZFRpbWVPdXQiOiIxMDAwIiwic2hvd0Vhc2luZyI6InN3aW5nIiwiaGlkZUVhc2luZyI6ImxpbmVhciIsInNob3dNZXRob2QiOiJzbGlkZURvd24iLCJoaWRlTWV0aG9kIjoiZmFkZU91dCIsImNvbG9yIjoiI2ZmZmZmZiIsImJnQ29sb3IiOiIjMDA3ZmE1In07c2V0VGltZW91dChmdW5jdGlvbigpe3RvYXN0ci5zdWNjZXNzKHZkcFRvYXN0ZXJNb2RlbFllYXIrIjxici8+IENsaXF1ZXogaWNpLiIsdGV4dFRvVXNlKTskKCcjdG9hc3QtY29udGFpbmVyJykuY3NzKCd6LWluZGV4JywnMjE0NzQ4MzY0MScpOyQoJyN0b2FzdC1jb250YWluZXIgPiBkaXYnKS5jc3MoJ29wYWNpdHknLCcwLjk1Jyk7fSwwKTt9fSk7ZnVuY3Rpb24gZGVsYXllZFZpZGVvVG9hc3Rlcih0eHQsb3B0KXtpZigkKCcjaGFzVklERU8nKS52YWwoKT09JzEnJiYnJz09dHJ1ZSl7c2V0VGltZW91dChmdW5jdGlvbigpe3RvYXN0ci5zdWNjZXNzKHR4dCsiIENsaXF1ZXogaWNpLiIsIk91aSEgVGV4dGV6LW1vaSBsZSBsaWVuIGR1IHZpZGVvIixvcHQpOyQoJyN0b2FzdC1jb250YWluZXInKS5jc3MoJ3otaW5kZXgnLCcyMTQ3NDgzNjQxJyk7JCgnI3RvYXN0LWNvbnRhaW5lciA+IGRpdicpLmNzcygnb3BhY2l0eScsJzAuOTUnKTt9LDEwMDAwKTt9fQpmdW5jdGlvbiB0b1Ntc1BERihtZXNzYWdlVHlwZSl7aWYodHlwZW9mIGRlYWxlclNtc051bWJlcj09PSdvYmplY3QnKXt2YXIgZGF0YT17ZGVwdDooJCgnI25ld1NlY3Rpb25PdmVycmlkZScpLmxlbmd0aCYmJCgnI25ld1NlY3Rpb25PdmVycmlkZScpLnZhbCgpPT0nMScpPydORVcnOih0eXBlb2YgZW1haWxIYW5kbGVyPT09J29iamVjdCc\/ZW1haWxIYW5kbGVyLmdldERlcCgpLnRvVXBwZXJDYXNlKCk6J05FVycpLG1lc3NhZ2VUeXBlOm1lc3NhZ2VUeXBlfTt2YXIgeWVhcj0kKCdbbmFtZT0ieWVhciJdJykubGVuZ3RoPjA\/JCgnW25hbWU9InllYXIiXScpLnZhbCgpOicnLG1ha2U9JCgnW25hbWU9ImJyYW5kIl0nKS5sZW5ndGg+MD8kKCdbbmFtZT0iYnJhbmQiXScpLnZhbCgpOicnLG1vZGVsPSQoJ1tuYW1lPSJtb2RlbCJdJykubGVuZ3RoPjA\/JCgnW25hbWU9Im1vZGVsIl0nKS52YWwoKTonJztpZih5ZWFyPT0nJyl7eWVhcj0kKCcjcG9wdXB5ZWFyJykubGVuZ3RoPyQoJyNwb3B1cHllYXInKS52YWwoKTonJzt9CmlmKG1ha2U9PScnKXttYWtlPSQoJyNwb3B1cG1ha2UnKS5sZW5ndGg\/JCgnI3BvcHVwbWFrZScpLnZhbCgpOicnO30KaWYobW9kZWw9PScnKXttb2RlbD0kKCcjcG9wdXBtb2RlbCcpLmxlbmd0aD8kKCcjcG9wdXBtb2RlbCcpLnZhbCgpOicnO30KaWYobWFrZSE9PScnKXtkYXRhLm1ha2U9bWFrZTt9CmlmKG1vZGVsIT09Jycpe2RhdGEubW9kZWw9bW9kZWw7fQppZih5ZWFyIT09Jycpe2RhdGEueWVhcj15ZWFyO30KZGF0YS52ZWhpY2xlSWQ9Jyc7ZGF0YS5WSU49Jyc7ZGF0YS5wcmljZT0nJztkYXRhLm1vZGVsSWQ9Jyc7aWYoc2l0ZVBhZ2UubmFtZT0nQ0FSREVUQUlMUycmJnR5cGVvZiBzZWFyY2hEZXRhaWxzPT09J29iamVjdCcmJnR5cGVvZiBzZWFyY2hEZXRhaWxzLnZlaGljbGU9PT0nb2JqZWN0Jyl7ZGF0YS52ZWhpY2xlSWQ9c2VhcmNoRGV0YWlscy52ZWhpY2xlSUQ7ZGF0YS5WSU49c2VhcmNoRGV0YWlscy52ZWhpY2xlLk5JVjtkYXRhLnByaWNlPXNlYXJjaERldGFpbHMudmVoaWNsZS5wcmljZTt9CmlmKHNpdGVQYWdlLm5hbWU9J05FV0NBUkRFVEFJTFMnJiZ0eXBlb2YgbmV3Y2FyRGV0YWlscz09PSdvYmplY3QnJiZ0eXBlb2YgbmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbD09PSdvYmplY3QnKXtkYXRhLm1vZGVsSWQ9bmV3Y2FyRGV0YWlscy5hY3RpdmVNb2RlbC5pZHx8Jyc7fQpkZWFsZXJTbXNOdW1iZXIuZ2V0U21zTnVtYmVyKGRhdGEsZnVuY3Rpb24ocnNwKXtpZihyc3AhPT1mYWxzZSl7dmFyIHNlcD0oL1dpbmRvd3Ncc1Bob25lL2kpLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCk\/Jz8nOic\/Jic7dmFyIGxuaz0nc21zOicrcnNwLnNtc251bWJlcitzZXArJ2JvZHk9JytlbmNvZGVVUklDb21wb25lbnQocnNwLnNtc21lc3NhZ2UpO2NvbnNvbGUubG9nKGxuayk7d2luZG93LmxvY2F0aW9uLmhyZWY9bG5rO319KTt9fX1jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfODc2NDk4OWJlZmM1ZDQyYmVmMzIzOGU3OGY1ZGNjMDY7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXtpZigkKCcjZ2VuZXJpY19mb3JtX2NvbmZpcm0nKS5sZW5ndGg8MSl7dmFyIEZvcm09JCgnPGZvcm0gaWQ9ImdlbmVyaWNfZm9ybV9jb25maXJtIiB0YXJnZXQ9ImlmcmFtZWd0cmFjayIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+PC9mb3JtPicpO3ZhciBtYWtlVmFsPSIiK2pzX2QyY19nZXRfdmFsKCIxZXJpdjkwMHBkYTg4d3c4IikrIiI7dmFyIG1vZGVsVmFsPSIiK2pzX2QyY19nZXRfdmFsKCIxMHBhN3YzcWVsZGNvc2siKSsiIjt2YXIgeWVhclZhbD0iIitqc19kMmNfZ2V0X3ZhbCgicjgyemZreGEyZHdzczAwIikrIiI7dmFyIHJlZmVyYWxWYWw9IiIranNfZDJjX2dldF92YWwoImkzZ3NheGdzNWprOHdjayIpKyIiO3ZhciBzZWN0aW9uVmFsPScnK2pzX2QyY19nZXRfdmFsKCJzbzd5dXFhajRkd2NjOHMiKSsnJzt2YXIgZnJvbUF1dG9hdWJhaW5lPSQoJyNhdXRvYXViYWluZV9wb3B1cCcpLmxlbmd0aD4wJiYoJCgnI2F1dG9hdWJhaW5lX3BvcHVwJykudmFsKCkhPSdmYWxzZScpO3ZhciBpbnB1dHM9KFt7Im5hbWUiOiJsYWJlbCIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbGVtYWlsIn0seyJuYW1lIjoic2VjdGlvbiIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbHNlY3Rpb24ifSx7Im5hbWUiOiJicmFuZCIsInZhbHVlIjptYWtlVmFsLCJjbGFzcyI6ImJyYW5kZW1haWwifSx7Im5hbWUiOiJtb2RlbCIsInZhbHVlIjptb2RlbFZhbCwiY2xhc3MiOiJtb2RlbGVtYWlsIn0seyJuYW1lIjoieWVhciIsInZhbHVlIjp5ZWFyVmFsLCJjbGFzcyI6InllYXJlbWFpbCJ9LHsibmFtZSI6Imdvb2dsZWlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJnb29nbGVpZGQyY21lZGlhIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nY29uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdhY3Rpb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2RvbWFpbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJndGFnX2NvbnZlcnNpb24iLCJ2YWx1ZSI6Imd0YWcifSx7Im5hbWUiOiJhZHJvbGxBZHYiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbFBpeCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZmFjZWJvb2tDb25JZCIsInZhbHVlIjoiNDE2OTM3MjAyNTcyNjQyIn0seyJuYW1lIjoibGVhZF9kZXBhcnRtZW50IiwidmFsdWUiOiIifSx7Im5hbWUiOiJsZWFkVHlwZSIsInZhbHVlIjoiIn0seyJuYW1lIjoicGFnZUlEIiwidmFsdWUiOiIifSx7Im5hbWUiOiJjdXJyZW50VVJMIiwidmFsdWUiOiIifSx7Im5hbWUiOiJkb21haW4iLCJ2YWx1ZSI6InBvaXJpZXJoeXVuZGFpLmNhIn0seyJuYW1lIjoicmVmZXJyZXIiLCJ2YWx1ZSI6cmVmZXJhbFZhbH0seyJuYW1lIjoiaXNleHByZXNzIiwidmFsdWUiOiIiLCJjbGFzcyI6ImlzZXhwcmVzcyJ9LHsibmFtZSI6ImlzcHJvbW8iLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6InRlc3Rtb2RlIiwidmFsdWUiOiIwIiwiY2xhc3MiOiJ0ZXN0bW9kZSJ9LHsibmFtZSI6InRleHRDYXJTZWN0aW9uVHlwZSIsInZhbHVlIjpzZWN0aW9uVmFsfSx7Im5hbWUiOiJsYW5nIiwidmFsdWUiOiJGUkVOQ0gifSx7Im5hbWUiOiJidXR0b25Qb3NpdGlvbiIsInZhbHVlIjoiIn0seyJuYW1lIjoiZGVhbGVyTmFtZSIsInZhbHVlIjoiIn0seyJuYW1lIjoiaXNGdWxsV2lkdGgiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImlzTW9iaWxlTmV3VkRQIiwidmFsdWUiOiIifSx7Im5hbWUiOiJmcm9tQXV0b0F1YmFpbmUiLCJ2YWx1ZSI6MH1dKTtmb3IodmFyIGk9MDtpPGlucHV0cy5sZW5ndGg7aSsrKXskKCc8aW5wdXQgdHlwZT0iaGlkZGVuIiAvPicpLmF0dHIoaW5wdXRzW2ldKS5hcHBlbmRUbyhGb3JtKTt9CkZvcm0uYXBwZW5kVG8oJ2JvZHknKTtGb3JtLm9uKCdzdWJtaXQnLG9uQ29uZmlybVN1Ym1pdCk7fQppZigkKCcjZ3RyYWNrRnJhbWUnKS5sZW5ndGg8MSl7JCgnPGlmcmFtZT48L2lmcmFtZT4nKS5hdHRyKHt3aWR0aDoxLGhlaWdodDoxLGZyYW1lQm9yZGVyOjAsaWQ6J2d0cmFja0ZyYW1lJyxuYW1lOidpZnJhbWVndHJhY2snLHN0eWxlOid3aWR0aDoxcHg7aGVpZ2h0OjFweDsnLHRpdGxlOidmcmFtZSd9KS5hcHBlbmRUbygnI2NvbmZpcm1fZm9ybXMnKTt9fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9iNTE5NDA5OTg1M2VlMGI3YWQyMDFjYzNmMjM4NWQxZjt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNjb250YWN0cG9wdXAiKS5wb3B1cGl6ZSh7Im9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXtjb250YWN0UG9wdXAuc2V0Q29uZmlnKHt0eXBlOnNlbGYuc2V0dGluZ3MuZm9ybS50eXBlfSk7aWYodHlwZW9mIHBvcHVwRGVmYXVsdE9uQWZ0ZXJJbml0aWFsaXplIT0idW5kZWZpbmVkIil7dmFyIHRtcD1wb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSgibmV3IiwiIitqc19kMmNfZ2V0X3ZhbCgiNmp5cDQ2NjR2Z3dzODB3IikrIiIsdHJ1ZSwiIiwiIitqc19kMmNfZ2V0X3ZhbCgiMTZkN3Z3dDY2cG1vd28wayIpKyIiLCJjb250YWN0cG9wdXAiLGZhbHNlKTtpZihmYWxzZSYmdG1wKXNlbGYuc2V0dGluZ3Muc2hvd29ubG9hZD0xNTtyZXR1cm4gdG1wO319LCJvbkJlZm9yZVNlbmRNYWlsIjpmdW5jdGlvbihzZWxmKXtjb250YWN0UG9wdXAub25CZWZvcmVTZW5kTWFpbCgpO30sImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNvbnRhY3RVc1JlcXVlc3QiLCJzZW5kVG8iOm51bGwsInNlbmRUb0FERiI6bnVsbCwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjp0cnVlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOiJWb3RyZSBtZXNzYWdlIGEgYmllbiAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7ISIsImJvZHkiOiJNZXJjaSEgVW4gbWVtYnJlIGRlIG5vdHJlICZlYWN1dGU7cXVpcGUgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LiJ9LCJ0eXBlIjoibmV3In0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6Ijc1Iiwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOnRydWUsImNvdW50ZG93biI6MTc4NDYwNjQwMCwiY29uZmlybUZvcm0iOltdfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF8zZDc4NTQyNzQxMjVlYTY5YjAyNDU3NTY0NmE2OThkYzt0cnl7bWFpbFNlbnRIYW5kbGVyPWdldE1haWxTZW50SGFuZGxlcignX2NvbnRhY3Rwb3B1cCcpO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfYjMxMDY4YjNlN2JiMDFhN2NjNzc3YzJjZjk3MWFkZGY7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25BZnRlcnN1Ym1pdCI6ZnVuY3Rpb24oc2VsZil7c2V0Q29va2llKCdjcmVkaXRTY29yZUVtYmVkZGVkRmlsbGVkJywxLDMwKTtpZih0eXBlb2YgZ1VzZWRTcnBBcHB6IT09J3VuZGVmaW5lZCcpe2dVc2VkU3JwQXBwei5maWx0ZXJJbnRlcmZhY2UuY2xlYXJQcm94eUNhY2hlQW5kUmVGZXRjaCgpO319LCJvbkFmdGVySW5pdGlhbGl6ZSI6ZnVuY3Rpb24oc2VsZil7KG5ldyBGb3JtKCkpLm1hc2tQaG9uZSgiI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgI2NyZWRpdFNjb3JlUGhvbmUiKTt2YXIgbGFuZz0kKCJib2R5IikuaGFzQ2xhc3MoIkVOR0xJU0giKT8iZW4iOiJmciI7dmFyIHN0YXJ0RGF0ZT1uZXcgRGF0ZSgpO3N0YXJ0RGF0ZS5zZXRGdWxsWWVhcihzdGFydERhdGUuZ2V0RnVsbFllYXIoKS0zMCk7dmFyIG1heERhdGU9bmV3IERhdGUoKTttYXhEYXRlLnNldEZ1bGxZZWFyKG1heERhdGUuZ2V0RnVsbFllYXIoKS0xOCk7dmFyIG1pbkRhdGU9bmV3IERhdGUoKTttaW5EYXRlLnNldEZ1bGxZZWFyKG1pbkRhdGUuZ2V0RnVsbFllYXIoKS0xMjApOyQoIi5jcmVkaXRTY29yZUJpcnRoZGF0ZSIpLm5lYkNhbCh7bWF4RGF0ZTptYXhEYXRlLmZvcm1hdCgieXl5eS1NTS1kZCIpLG1pbkRhdGU6bWluRGF0ZS5mb3JtYXQoInl5eXktTU0tZGQiKSxkZWZhdWx0RGF0ZTpzdGFydERhdGUuZm9ybWF0KCJ5eXl5LU1NLWRkIiksZm9ybWF0OiJkZCBNTU0geXl5eSIsZGVmYXVsdFZpZXc6ImRlY2FkZSJ9KTskKCcjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBpbnB1dFtkYXRhLWdvb2dsZS1wbGFjZXMtY3VzdG9tPSJ0cnVlIl0nKS5nb29nbGVQbGFjZXMoKTt2YXIgcG9wdXBUeXBlPSJuZXciO2lmKHR5cGVvZiBwb3B1cERlZmF1bHRPbkFmdGVySW5pdGlhbGl6ZSE9InVuZGVmaW5lZCIpe3ZhciB0bXA9cG9wdXBEZWZhdWx0T25BZnRlckluaXRpYWxpemUoIm5ldyIsIiIranNfZDJjX2dldF92YWwoIjZqeXA0NjY0dmd3czgwdyIpKyIiLGZhbHNlLCIiLCIiK2pzX2QyY19nZXRfdmFsKCIxNmQ3dnd0NjZwbW93bzBrIikrIiIsImNyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiLGZhbHNlKTtpZigwJiZ0bXApe3NlbGYuc2V0dGluZ3Muc2hvd29ubG9hZD0xMDt9CmVsc2V7c2VsZi5zZXR0aW5ncy5zaG93b25sb2FkPWZhbHNlO30KcmV0dXJuIHRtcDt9fSwiY29va2llRHVyYXRpb24iOjYwLCJjb29raWVOYW1lIjoiY3JlZGl0U2NvcmVTaG93biIsImNvb2tpZUNyZWF0ZSI6Im9uT3BlbiIsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiQ3JlZGl0U2NvcmUiLCJvZmZlcnR5cGUiOiJDcmVkaXRTY29yZSIsIm5hbWUiOm51bGwsInNlbmRUbyI6IiIranNfZDJjX2dldF92YWwoIjEzZHF0c25jZDgxd2s4NDQiKSsiIiwic2VuZFRvQURGIjoiIitqc19kMmNfZ2V0X3ZhbCgiNWNjeWdrOTI1bWd3ZzAiKSsiIiwiT0tCdXR0b25DbGFzcyI6ImNyZWRpdFNjb3JlX2J0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjp0cnVlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOiJWb3RyZSBkZW1hbmRlIGEgYmllbiAmZWFjdXRlO3QmZWFjdXRlOyBlbnZveSZlYWN1dGU7ZSEiLCJib2R5IjoiTWVyY2khIFVuIGNvbnNlaWxsZXIgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBwb3VyIHZvdXMgZG9ubmVyIGxlcyBkJmVhY3V0ZTt0YWlscyBzdXIgdm90cmUgcG90ZW50aWVsIGRlIGNyJmVhY3V0ZTtkaXQuIiwibm9vdmVyd3JpdGUiOnRydWV9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjowLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3ODQ2MDY0MDAsImNvbmZpcm1Gb3JtIjpbXX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfZDY2ZjVkOTQ4NTk3NDJjNmE1MWY4YmFkOWMwZGZhZTA7dHJ5e21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoJ19jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyJyk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF9hMjgyZmEyODM0MTA1MGVkZTUzYmViZmQ4NjQ1NDAyOTt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiN2aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyTmV3IikucG9wdXBpemUoeyJvbkJlZm9yZXN1Ym1pdCI6ZnVuY3Rpb24oKXtlbWFpbEhhbmRsZXIuc2tpcEdldERlcD10cnVlO2VtYWlsSGFuZGxlci5kZXBhcnRtZW50PSJORVciO30sIm9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXsobmV3IEZvcm0oKSkubWFza1Bob25lKCIudmlzaXRDb250YWN0UGhvbmUiKTtzY2hlZHVsZT1uZXcgTWFpbFNjaGVkdWxlKHtzY29wZTpzZWxmLnRhcmdldC5maW5kKCIudmlzaXRDb250YWN0Rm9ybSIpfSk7c2NoZWR1bGUuZmlyc3RDaG9pY2VPYmplY3RJZD1zZWxmLnRhcmdldC5maW5kKCIudmlzaXRDb250YWN0RGF0ZSIpLmF0dHIoImlkIik7c2NoZWR1bGUuaW5pdCgpO3NlbGYudGFyZ2V0LmZpbmQoIi52aXNpdENvbnRhY3REYXRlIikub24oImNoYW5nZSIsZnVuY3Rpb24oKXtpZigkKHRoaXMpLnZhbCgpLmxlbmd0aD09PTApeyQodGhpcykucGFyZW50KCkucGFyZW50KCkuZmluZCgiLnZpc2l0Q29udGFjdENvbW1lbnQiKS5yZW1vdmVDbGFzcygic2hvd0NvbW1lbnQiKTt9ZWxzZXskKHRoaXMpLnBhcmVudCgpLnBhcmVudCgpLmZpbmQoIi52aXNpdENvbnRhY3RDb21tZW50IikuYWRkQ2xhc3MoInNob3dDb21tZW50Iik7fX0pO30sImNvb2tpZUR1cmF0aW9uIjo2MCwiY29va2llTmFtZSI6InZpc2l0Q29udGFjdEZvcm1GaWxsZWQiLCJjb29raWVDcmVhdGUiOiJvblN1Ym1pdCIsImdvb2dsZVRyYWNraW5nIjp7ImlkU3VmZml4IjoiIiwibGFiZWwiOiIiLCJsYWJlbHNlY3Rpb24iOiIiLCJpc2V4cHJlc3MiOjAsImlzcHJvbW8iOjAsImlzaG9tZXBhZ2UiOjAsImlzbW9iaWxlIjowfSwiZm9ybSI6eyJlbWFpbGlkIjoiQ29udGFjdFZpc2l0UmVxdWVzdCIsIm9mZmVydHlwZSI6bnVsbCwibmFtZSI6bnVsbCwic2VuZFRvIjoiNmJjYmQ0NDNiNTcxNWExNDQyNmVmYjA0MzQyNDUxMzd8MjM2NzYzNTE5MyIsInNlbmRUb0FERiI6IjhlNTYwMDI5ODZmNGIxNmI1YTYxNzY5ZDdkZGFkYjRifDIzNjc2MzUxOTMiLCJPS0J1dHRvbkNsYXNzIjoidmlzaXRDb250YWN0Rm9ybVN1Ym1pdCIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjp0cnVlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjowLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3ODQ2MDY0MDAsImNvbmZpcm1Gb3JtIjpbXX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfNmVmOTBjNjU5MTEwM2MwZDE5ZmYwNDMzZWMzZmRlNmY7dHJ5e21haWxTZW50SGFuZGxlcj1nZXRNYWlsU2VudEhhbmRsZXIoJ192aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyTmV3Jyk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF8xOWUzODkxN2U1ZWViNjUxZDU0NmJhNWEwZWExOGNlZDt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiN2aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyVXNlZCIpLnBvcHVwaXplKHsib25CZWZvcmVzdWJtaXQiOmZ1bmN0aW9uKCl7ZW1haWxIYW5kbGVyLnNraXBHZXREZXA9dHJ1ZTtlbWFpbEhhbmRsZXIuZGVwYXJ0bWVudD0iVVNFRCI7fSwib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpeyhuZXcgRm9ybSgpKS5tYXNrUGhvbmUoIi52aXNpdENvbnRhY3RQaG9uZSIpO3NjaGVkdWxlPW5ldyBNYWlsU2NoZWR1bGUoe3Njb3BlOnNlbGYudGFyZ2V0LmZpbmQoIi52aXNpdENvbnRhY3RGb3JtIil9KTtzY2hlZHVsZS5maXJzdENob2ljZU9iamVjdElkPXNlbGYudGFyZ2V0LmZpbmQoIi52aXNpdENvbnRhY3REYXRlIikuYXR0cigiaWQiKTtzY2hlZHVsZS5pbml0KCk7c2VsZi50YXJnZXQuZmluZCgiLnZpc2l0Q29udGFjdERhdGUiKS5vbigiY2hhbmdlIixmdW5jdGlvbigpe2lmKCQodGhpcykudmFsKCkubGVuZ3RoPT09MCl7JCh0aGlzKS5wYXJlbnQoKS5wYXJlbnQoKS5maW5kKCIudmlzaXRDb250YWN0Q29tbWVudCIpLnJlbW92ZUNsYXNzKCJzaG93Q29tbWVudCIpO31lbHNleyQodGhpcykucGFyZW50KCkucGFyZW50KCkuZmluZCgiLnZpc2l0Q29udGFjdENvbW1lbnQiKS5hZGRDbGFzcygic2hvd0NvbW1lbnQiKTt9fSk7fSwiY29va2llRHVyYXRpb24iOjYwLCJjb29raWVOYW1lIjoidmlzaXRDb250YWN0Rm9ybUZpbGxlZCIsImNvb2tpZUNyZWF0ZSI6Im9uU3VibWl0IiwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOiJDb250YWN0VmlzaXRSZXF1ZXN0Iiwib2ZmZXJ0eXBlIjpudWxsLCJuYW1lIjpudWxsLCJzZW5kVG8iOiIiK2pzX2QyY19nZXRfdmFsKCIzcG02dHZncXFlZ3c0dyIpKyIiLCJzZW5kVG9BREYiOiIiK2pzX2QyY19nZXRfdmFsKCJyZDVwOHM0aDZyNHMwY2siKSsiIiwiT0tCdXR0b25DbGFzcyI6InZpc2l0Q29udGFjdEZvcm1TdWJtaXQiLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6dHJ1ZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6MCwic2Nyb2xsdXAiOmZhbHNlLCJtYWlucG9wdXAiOmZhbHNlLCJzaG93b25sb2FkIjpmYWxzZSwiY291bnRkb3duIjoxNzg0NjA2NDAwLCJjb25maXJtRm9ybSI6W119KTt9KTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2E5NmRiZDE1MGRlOGZhOTYzNGQ0MTMzOTE4NTIwMjQ1O3RyeXttYWlsU2VudEhhbmRsZXI9Z2V0TWFpbFNlbnRIYW5kbGVyKCdfdmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lclVzZWQnKTt9Y2F0Y2goZXp6MSl7aWYoY29uc29sZSYmY29uc29sZS5sb2cpCmNvbnNvbGUubG9nKGV6ejEpO30KdmFyIGlkZW50X2Q5Njc1MTNjMmJhYmJlMTI5ZDMyMjRiNWNiYWQ1YTVjO3RyeXtqUXVlcnkoZnVuY3Rpb24oJCl7JCgiI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe3ZhciBtdWx0aXN0ZXA9aW5pdGlhbGl6ZUZpbmFuY2VNdWx0aVN0ZXAoc2VsZi50YXJnZXQpOyQoZG9jdW1lbnQpLm9uKCdjcmVkaXQubXVsdGlzdGVwcG9wdXAuc3RhcnQnLGZ1bmN0aW9uKGUpe211bHRpc3RlcC5zdGFydCgpO30pO30sImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6IkNyZWRpdE11bHRpc3RlcFJlcXVlc3QiLCJvZmZlcnR5cGUiOiJDcmVkaXRNdWx0aXN0ZXBSZXF1ZXN0IiwibmFtZSI6bnVsbCwic2VuZFRvIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTNkcXRzbmNkODF3azg0NCIpKyIiLCJzZW5kVG9BREYiOiIiK2pzX2QyY19nZXRfdmFsKCI1Y2N5Z2s5MjVtZ3dnMCIpKyIiLCJPS0J1dHRvbkNsYXNzIjoic3VibWl0QnRuIiwiQ2FuY2VsQnV0dG9uQ2xhc3MiOiJjYW5jZWxCdG4iLCJzaG93RW1haWxDb25maXJtYXRpb24iOmZhbHNlLCJmcm9tQUEiOmZhbHNlLCJjb25maXJtYXRpb24iOnsidGl0bGUiOm51bGwsImJvZHkiOm51bGx9fSwic3RhdGUiOltdLCJ2ZWhpY2xlU3RhdGUiOiJ1c2VkIiwiY2xvc2VPblN1Ym1pdCI6dHJ1ZSwiZmlsbGZsYWciOmZhbHNlLCJub3RyYW5zZm9ybSI6dHJ1ZSwibmFtZSI6ZmFsc2UsImFuaW1hdGlvbiI6ImZhZGVBbmRQb3AiLCJhbmltYXRpb25TcGVlZCI6MzAwLCJjbG9zZU9uQmFja2dyb3VuZENsaWNrIjpmYWxzZSwiZGlzbWlzc01vZGFsQ2xhc3MiOiJjbG9zZS1yZXZlYWwtbW9kYWwiLCJjbG9zZUJ1dHRvbiI6dHJ1ZSwiYnlwYXNzQ29uc2VudCI6ZmFsc2UsInRocmVzaG9sZCI6ZmFsc2UsInRocmVzaG9sZFZhbHVlIjowLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3ODQ2MDY0MDAsImNvbmZpcm1Gb3JtIjpbeyJuYW1lIjoibGFiZWwiLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxlbWFpbCJ9LHsibmFtZSI6InNlY3Rpb24iLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxzZWN0aW9uIn0seyJuYW1lIjoiYnJhbmQiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjFlcml2OTAwcGRhODh3dzgiKSsiIiwiY2xhc3MiOiJicmFuZGVtYWlsIn0seyJuYW1lIjoibW9kZWwiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjEwcGE3djNxZWxkY29zayIpKyIiLCJjbGFzcyI6Im1vZGVsZW1haWwifSx7Im5hbWUiOiJ5ZWFyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJyODJ6Zmt4YTJkd3NzMDAiKSsiIiwiY2xhc3MiOiJ5ZWFyZW1haWwifSx7Im5hbWUiOiJnb29nbGVpZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZ29vZ2xlaWRkMmNtZWRpYSIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2NvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nYWN0aW9uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdkb21haW5pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsQWR2IiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxQaXgiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImZhY2Vib29rQ29uSWQiLCJ2YWx1ZSI6IjQxNjkzNzIwMjU3MjY0MiJ9LHsibmFtZSI6ImRvbWFpbiIsInZhbHVlIjoicG9pcmllcmh5dW5kYWkuY2EifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fQp2YXIgaWRlbnRfMWVjMzI1MmI2MGQ0Mjk1ZTcwYWI0ZTg0MjFmM2FkNTI7dHJ5e2pRdWVyeShmdW5jdGlvbigkKXskKCIjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25CZWZvcmVPcGVuIjpmdW5jdGlvbihzZWxmKXtpZihzZWxmLnNldHRpbmdzLmFscmVhZHlJbml0KXtzZWxmLnNldHRpbmdzLmFscmVhZHlJbml0PWZhbHNlO2lmKENvb2tpZXMuZ2V0KCdwb3B1cEZvcm1GaWxsZWQnKT09IjEiKXskKCIjcGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIiKS5oaWRlKCk7fQpyZXR1cm4gdHJ1ZTt9CmlmKCFzZWxmLnNldHRpbmdzLnN0eWxlaWQpcmV0dXJuIGZhbHNlO3NlbGYuc2V0dGluZ3MuaW5pdGlhbFN0eWxlaWQ9c2VsZi5zZXR0aW5ncy5zdHlsZWlkO2lmKCQoIi5ibnBfcGF5bWVudF9jb250YWluZXIiKS5sZW5ndGgpe3NlbGYuc2V0dGluZ3MucGF5bWVudE9wdGlvbnM9cGFyc2VJbnQoJCgiI29wdGlvblByaWNlVG90YWwiKS5odG1sKCkucmVwbGFjZSgiLCIsIiIpKTt9CmdhVHJhY2soJ2MuX3RyYWNrRXZlbnQnLCdDbGlxdWVzIENhbGN1bGF0cmljZScsJ05ldWYnLCdPcGVuJywxKTtwYXltZW50Q2FsY3VsYXRvclBvcHVwSW5pdCgpO30sIm9uQ2xvc2UiOmZ1bmN0aW9uKHNlbGYpe2lmKCFzZWxmLnNldHRpbmdzLmFscmVhZHlJbml0KXtnYVRyYWNrKCdjLl90cmFja0V2ZW50JywnQ2xpcXVlcyBDYWxjdWxhdHJpY2UnLCdOZXVmJywnQ2xvc2UnLDEpO30KaWYoKCgkKCcjdGFyZ2V0UGFnZScpLnZhbCgpfHxmYWxzZSk9PSdORVdDQVJTJ3x8KCQoJyN0YXJnZXRQYWdlJykudmFsKCl8fGZhbHNlKT09J1VTRURDQVJTJykmJndpbmRvdy5wYXltZW50U2VsZWN0Q2hhbmdlZD09dHJ1ZSl7bG9jYXRpb24ucmVsb2FkKCk7fX0sIm9uQWZ0ZXJJbml0aWFsaXplIjpmdW5jdGlvbihzZWxmKXtwb3B1cENhbGN1bGF0b3JJbml0aWFsaXplZCgpO30sImNvb2tpZUR1cmF0aW9uIjozMCwiY29va2llTmFtZSI6bnVsbCwiY29va2llQ3JlYXRlIjpudWxsLCJnb29nbGVUcmFja2luZyI6eyJpZFN1ZmZpeCI6IiIsImxhYmVsIjoiIiwibGFiZWxzZWN0aW9uIjoiIiwiaXNleHByZXNzIjowLCJpc3Byb21vIjowLCJpc2hvbWVwYWdlIjowLCJpc21vYmlsZSI6MH0sImZvcm0iOnsiZW1haWxpZCI6bnVsbCwib2ZmZXJ0eXBlIjpudWxsLCJuYW1lIjpudWxsLCJzZW5kVG8iOm51bGwsInNlbmRUb0FERiI6bnVsbCwiT0tCdXR0b25DbGFzcyI6InN1Ym1pdEJ0biIsIkNhbmNlbEJ1dHRvbkNsYXNzIjoiY2FuY2VsQnRuIiwic2hvd0VtYWlsQ29uZmlybWF0aW9uIjpmYWxzZSwiZnJvbUFBIjpmYWxzZSwiY29uZmlybWF0aW9uIjp7InRpdGxlIjpudWxsLCJib2R5IjpudWxsfX0sInN0YXRlIjpbXSwidmVoaWNsZVN0YXRlIjoidXNlZCIsImNsb3NlT25TdWJtaXQiOnRydWUsImZpbGxmbGFnIjpmYWxzZSwibm90cmFuc2Zvcm0iOnRydWUsIm5hbWUiOmZhbHNlLCJhbmltYXRpb24iOiJmYWRlQW5kUG9wIiwiYW5pbWF0aW9uU3BlZWQiOjMwMCwiY2xvc2VPbkJhY2tncm91bmRDbGljayI6ZmFsc2UsImRpc21pc3NNb2RhbENsYXNzIjoiY2xvc2UtcmV2ZWFsLW1vZGFsIiwiY2xvc2VCdXR0b24iOnRydWUsImJ5cGFzc0NvbnNlbnQiOmZhbHNlLCJ0aHJlc2hvbGQiOmZhbHNlLCJ0aHJlc2hvbGRWYWx1ZSI6ZmFsc2UsInNjcm9sbHVwIjpmYWxzZSwibWFpbnBvcHVwIjpmYWxzZSwic2hvd29ubG9hZCI6ZmFsc2UsImNvdW50ZG93biI6MTc4NDYwNjQwMCwiY29uZmlybUZvcm0iOlt7Im5hbWUiOiJsYWJlbCIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbGVtYWlsIn0seyJuYW1lIjoic2VjdGlvbiIsInZhbHVlIjoiIiwiY2xhc3MiOiJsYWJlbHNlY3Rpb24ifSx7Im5hbWUiOiJicmFuZCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMWVyaXY5MDBwZGE4OHd3OCIpKyIiLCJjbGFzcyI6ImJyYW5kZW1haWwifSx7Im5hbWUiOiJtb2RlbCIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiMTBwYTd2M3FlbGRjb3NrIikrIiIsImNsYXNzIjoibW9kZWxlbWFpbCJ9LHsibmFtZSI6InllYXIiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInI4Mnpma3hhMmR3c3MwMCIpKyIiLCJjbGFzcyI6InllYXJlbWFpbCJ9LHsibmFtZSI6Imdvb2dsZWlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJnb29nbGVpZGQyY21lZGlhIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nY29uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdhY3Rpb25pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2RvbWFpbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxBZHYiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImFkcm9sbFBpeCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZmFjZWJvb2tDb25JZCIsInZhbHVlIjoiNDE2OTM3MjAyNTcyNjQyIn0seyJuYW1lIjoiZG9tYWluIiwidmFsdWUiOiJwb2lyaWVyaHl1bmRhaS5jYSJ9LHsibmFtZSI6InJlZmVycmVyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJpM2dzYXhnczVqazh3Y2siKSsiIn0seyJuYW1lIjoiaXNleHByZXNzIiwidmFsdWUiOiIwIiwiY2xhc3MiOiJpc2V4cHJlc3MifSx7Im5hbWUiOiJpc3Byb21vIiwidmFsdWUiOiIwIn0seyJuYW1lIjoiaXNob21lcGFnZSIsInZhbHVlIjoiMCJ9LHsibmFtZSI6InRleHRDYXJTZWN0aW9uVHlwZSIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgic283eXVxYWo0ZHdjYzhzIikrIiJ9LHsibmFtZSI6ImZyb21BQSIsInZhbHVlIjoiIn0seyJuYW1lIjoibGFuZyIsInZhbHVlIjoiRlJFTkNIIn1dfSk7fSk7fWNhdGNoKGV6ejEpe2lmKGNvbnNvbGUmJmNvbnNvbGUubG9nKQpjb25zb2xlLmxvZyhlenoxKTt9CnZhciBpZGVudF82ZTUyYWMxNmI3ZDg0YzIxMGY1MWE5ZjY1OTYxODczOTt0cnl7alF1ZXJ5KGZ1bmN0aW9uKCQpeyQoIiNtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIpLnBvcHVwaXplKHsib25CZWZvcmVPcGVuIjpmdW5jdGlvbihzZWxmKXttb3RvaW5zaWdodFNob3BPcGVuKCk7fSwib25BZnRlckluaXRpYWxpemUiOmZ1bmN0aW9uKHNlbGYpe21vdG9pbnNpZ2h0U2hvcEluaXQoKTt9LCJjb29raWVEdXJhdGlvbiI6MzAsImNvb2tpZU5hbWUiOm51bGwsImNvb2tpZUNyZWF0ZSI6bnVsbCwiZ29vZ2xlVHJhY2tpbmciOnsiaWRTdWZmaXgiOiIiLCJsYWJlbCI6IiIsImxhYmVsc2VjdGlvbiI6IiIsImlzZXhwcmVzcyI6MCwiaXNwcm9tbyI6MCwiaXNob21lcGFnZSI6MCwiaXNtb2JpbGUiOjB9LCJmb3JtIjp7ImVtYWlsaWQiOm51bGwsIm9mZmVydHlwZSI6bnVsbCwibmFtZSI6bnVsbCwic2VuZFRvIjpudWxsLCJzZW5kVG9BREYiOm51bGwsIk9LQnV0dG9uQ2xhc3MiOiJzdWJtaXRCdG4iLCJDYW5jZWxCdXR0b25DbGFzcyI6ImNhbmNlbEJ0biIsInNob3dFbWFpbENvbmZpcm1hdGlvbiI6ZmFsc2UsImZyb21BQSI6ZmFsc2UsImNvbmZpcm1hdGlvbiI6eyJ0aXRsZSI6bnVsbCwiYm9keSI6bnVsbH19LCJzdGF0ZSI6W10sInZlaGljbGVTdGF0ZSI6InVzZWQiLCJjbG9zZU9uU3VibWl0Ijp0cnVlLCJmaWxsZmxhZyI6ZmFsc2UsIm5vdHJhbnNmb3JtIjp0cnVlLCJuYW1lIjpmYWxzZSwiYW5pbWF0aW9uIjoiZmFkZUFuZFBvcCIsImFuaW1hdGlvblNwZWVkIjozMDAsImNsb3NlT25CYWNrZ3JvdW5kQ2xpY2siOmZhbHNlLCJkaXNtaXNzTW9kYWxDbGFzcyI6ImNsb3NlLXJldmVhbC1tb2RhbCIsImNsb3NlQnV0dG9uIjp0cnVlLCJieXBhc3NDb25zZW50IjpmYWxzZSwidGhyZXNob2xkIjpmYWxzZSwidGhyZXNob2xkVmFsdWUiOmZhbHNlLCJzY3JvbGx1cCI6ZmFsc2UsIm1haW5wb3B1cCI6ZmFsc2UsInNob3dvbmxvYWQiOmZhbHNlLCJjb3VudGRvd24iOjE3ODQ2MDY0MDAsImNvbmZpcm1Gb3JtIjpbeyJuYW1lIjoibGFiZWwiLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxlbWFpbCJ9LHsibmFtZSI6InNlY3Rpb24iLCJ2YWx1ZSI6IiIsImNsYXNzIjoibGFiZWxzZWN0aW9uIn0seyJuYW1lIjoiYnJhbmQiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjFlcml2OTAwcGRhODh3dzgiKSsiIiwiY2xhc3MiOiJicmFuZGVtYWlsIn0seyJuYW1lIjoibW9kZWwiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoIjEwcGE3djNxZWxkY29zayIpKyIiLCJjbGFzcyI6Im1vZGVsZW1haWwifSx7Im5hbWUiOiJ5ZWFyIiwidmFsdWUiOiIiK2pzX2QyY19nZXRfdmFsKCJyODJ6Zmt4YTJkd3NzMDAiKSsiIiwiY2xhc3MiOiJ5ZWFyZW1haWwifSx7Im5hbWUiOiJnb29nbGVpZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiZ29vZ2xlaWRkMmNtZWRpYSIsInZhbHVlIjoiIn0seyJuYW1lIjoiYmluZ2NvbmlkIiwidmFsdWUiOiIifSx7Im5hbWUiOiJiaW5nYWN0aW9uaWQiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImJpbmdkb21haW5pZCIsInZhbHVlIjoiIn0seyJuYW1lIjoiYWRyb2xsQWR2IiwidmFsdWUiOiIifSx7Im5hbWUiOiJhZHJvbGxQaXgiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImZhY2Vib29rQ29uSWQiLCJ2YWx1ZSI6IjQxNjkzNzIwMjU3MjY0MiJ9LHsibmFtZSI6ImRvbWFpbiIsInZhbHVlIjoicG9pcmllcmh5dW5kYWkuY2EifSx7Im5hbWUiOiJyZWZlcnJlciIsInZhbHVlIjoiIitqc19kMmNfZ2V0X3ZhbCgiaTNnc2F4Z3M1ams4d2NrIikrIiJ9LHsibmFtZSI6ImlzZXhwcmVzcyIsInZhbHVlIjoiMCIsImNsYXNzIjoiaXNleHByZXNzIn0seyJuYW1lIjoiaXNwcm9tbyIsInZhbHVlIjoiMCJ9LHsibmFtZSI6ImlzaG9tZXBhZ2UiLCJ2YWx1ZSI6IjAifSx7Im5hbWUiOiJ0ZXh0Q2FyU2VjdGlvblR5cGUiLCJ2YWx1ZSI6IiIranNfZDJjX2dldF92YWwoInNvN3l1cWFqNGR3Y2M4cyIpKyIifSx7Im5hbWUiOiJmcm9tQUEiLCJ2YWx1ZSI6IiJ9LHsibmFtZSI6ImxhbmciLCJ2YWx1ZSI6IkZSRU5DSCJ9XX0pO30pO31jYXRjaChlenoxKXtpZihjb25zb2xlJiZjb25zb2xlLmxvZykKY29uc29sZS5sb2coZXp6MSk7fTsKLyoqIC9tL2pzL3NrZWxldG9uLmNvbnRyb2xsZXIuanMgKiovCnZhciBfX19kMmNfc2tlbGV0b25jb250cm9sbGVyanNfY19vbj0iMjAyNi0wNC0wMSAxMTozMDowMiI7J3VzZSBzdHJpY3QnO3RyeXtqUXVlcnkoZnVuY3Rpb24oYyl7bGV0IGg7Y29uc29sZS5sb2coIkdTUEVFRC1BRlRFUi1KUVVFUlk6IisoRGF0ZS5ub3coKS0obnVsbCE9KGg9d2luZG93LmdUZXN0U3BlZWRDb25uKT9oOjApKS8xRTMpO3dpbmRvdy5nUmVzb3VyY2VMb2FkZXJBbmRKcXVlcnlJc1JlYWR5PSEwO3NldFRpbWVvdXQoKCk9Pnt2YXIgYj1jKCIjZW1iZWQtY29udGFpbmVyLXlvdXR1YmUtaG9tZXBhZ2UtYnlpZCIpO2NvbnNvbGUubG9nKCJTS0VMRVRPTnwjZW1iZWQtY29udGFpbmVyLXlvdXR1YmUtaG9tZXBhZ2UtYnlpZCIpO2lmKGIubGVuZ3RoKXt2YXIgYT1iLmF0dHIoImRhdGEtaWZyYW1lLWF0dHJpYnV0ZXMiKTsidW5kZWZpbmVkIiE9PWEmJnZvaWQgMCE9PWEmJihhPUpTT04ucGFyc2UoYXRvYihhKSksYygiPGlmcmFtZS8+IixhKS5hcHBlbmRUbyhiKSl9fSw3RTMpO3NldFRpbWVvdXQoKCk9Pnt2YXIgYj1jKCIjZW1iZWQtY29udGFpbmVyLW1hcHMtaG9tZXBhZ2UtYnlpZCIpOwpjb25zb2xlLmxvZygiU0tFTEVUT058I2VtYmVkLWNvbnRhaW5lci1tYXBzLWhvbWVwYWdlLWJ5aWQiKTtpZihiLmxlbmd0aCl7dmFyIGE9Yi5hdHRyKCJkYXRhLWlmcmFtZS1hdHRyaWJ1dGVzIik7InVuZGVmaW5lZCIhPT1hJiZ2b2lkIDAhPT1hJiYoYT1KU09OLnBhcnNlKGF0b2IoYSkpLGluamVjdEdvb2dsZU1hcHNLZXkoZnVuY3Rpb24oZil7YS5zcmM9YS5zcmMucmVwbGFjZSgiX19LRVlfXyIsZik7YygiPGlmcmFtZS8+IixhKS5hcHBlbmRUbyhiKX0pKX19LDdFMyk7d2luZG93LmRlbGF5ZWRDc3M9ZnVuY3Rpb24oYil7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTthLnR5cGU9InRleHQvY3NzIjthLnN0eWxlU2hlZXQ\/YS5zdHlsZVNoZWV0LmNzc1RleHQ9YjphLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGIpKTtjb25zb2xlLmxvZygiU0tFTEVUT058REVMQVlFRExPQURDU1N8IitiKTtkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGEpfTsKd2luZG93LmRlbGF5ZWRDc3MoIi5oaWRlT25QcmVMb2Fke3Zpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50O30iKTtzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlNLRUxFVE9OfHNldHRpbmcgbWVudSBtdXRhdGlvbiBvYnNlcnZlciIpO3RyeXtjb25zdCBhPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiIpO2lmKG51bGwhPT1hKXtjb25zdCBmPW5ldyBNdXRhdGlvbk9ic2VydmVyKChkLGspPT57Zm9yKGNvbnN0IGUgb2YgZCkiYXR0cmlidXRlcyI9PT1lLnR5cGUmJiJjbGFzcyI9PT1lLmF0dHJpYnV0ZU5hbWUmJmUudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygidXBfbWVudSIpJiYoZD1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIiKSxlLnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoImZpeGVkIik\/ZC5jbGFzc0xpc3QuY29udGFpbnMoImZpeGVkIil8fApkLmNsYXNzTGlzdC5hZGQoImZpeGVkIik6ZC5jbGFzc0xpc3QuY29udGFpbnMoImZpeGVkIikmJmQuY2xhc3NMaXN0LnJlbW92ZSgiZml4ZWQiKSl9KSxnPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiA+IC51cF9tZW51Iik7ZyYmKGYub2JzZXJ2ZShnLHthdHRyaWJ1dGVzOiEwLGNoaWxkTGlzdDohMCxzdWJ0cmVlOiEwfSksZy5jbGFzc0xpc3QuY29udGFpbnMoImZpeGVkIikmJmEuY2xhc3NMaXN0LmFkZCgiZml4ZWQiKSl9fWNhdGNoKGEpe2NvbnNvbGUuZXJyb3IoIlNLRUxFVE9OfC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMiIsYSl9Y29uc29sZS5sb2coIlNLRUxFVE9OfGlzLWxvYWRlZC1ub3ciKTtjb25zdCBiPWMoIi5za2VsZXRvbiIpO2IuYWRkQ2xhc3MoImlzLWxvYWRlZC1ub3ciKTtzZXRUaW1lb3V0KCgpPT57Y29uc29sZS5sb2coIlNLRUxFVE9OfHJlbW92aW5nIHNrZWxldG9ucyBmaXJzdCBpbWcgYmFja2dyb3VuZCIpOwpiLmZpbmQoImltZy5pcy1za2VsZXRvbi1iZy1pbWciKS5yZW1vdmUoKX0sMzx3aW5kb3cuZ1NwZWVkQ29ubj8xRTQ6NkUzKX0sMjAwKX0pfWNhdGNoKGMpe307","menu_new":"","html":"Cgk8c3R5bGU+CgkJaHRtbCB7Zm9udC1zaXplOjEwMCU7fQoJCW1haW4gKiB7bWFyZ2luOmluaXRpYWw7fQoJCWZvb3RlciB7Y2xlYXI6IGJvdGg7fQoJPC9zdHlsZT4KCgk8ZGl2IGlkPSJkMmNfYm9keUNvbnRlbnQiIGNsYXNzPSJkMmMtZW1iZWRkZWQtY29udGVudC1tb2JpbGUiPgoKCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iYWN0aXZlc2l0ZWxhbmd1YWdlIiB2YWx1ZT0iRlJFTkNIIi8+CgoJCTxpbnB1dAoJCQl0eXBlPSJoaWRkZW4iCgkJCWlkPSJkMmNEYXRhU3RvcmUiCgkJCWRhdGEtYmFzZXVybD0iaHR0cHM6Ly9wb2lyaWVyaHl1bmRhaS5jYSIKCQkJZGF0YS1ib2R5Y2xhc3M9IiBoZWFkaW5nQ2Fwc09uIEZSRU5DSCBOZXdTcnAyIE5ld1NycDJNb2JpbGUiCgkJCWRhdGEtaXNtb2JpbGU9IjEiCgkJPgoKCQk8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgeyJAY29udGV4dCI6Imh0dHBzOlwvXC9zY2hlbWEub3JnIiwiQHR5cGUiOiJXZWJTaXRlIiwibmFtZSI6IlBvaXJpZXIgSHl1bmRhaSIsInVybCI6Imh0dHBzOlwvXC93d3cucG9pcmllcmh5dW5kYWkuY2FcLyIsInBvdGVudGlhbEFjdGlvbiI6eyJAdHlwZSI6IlNlYXJjaEFjdGlvbiIsInRhcmdldCI6Imh0dHBzOlwvXC93d3cucG9pcmllcmh5dW5kYWkuY2FcL29jY2FzaW9uXC9yZWNoZXJjaGUuaHRtbD9xPXtzZWFyY2hfdGVybV9zdHJpbmd9IiwicXVlcnktaW5wdXQiOiJyZXF1aXJlZCBuYW1lPXNlYXJjaF90ZXJtX3N0cmluZyJ9fQo8L3NjcmlwdD48c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2xkK2pzb24iPgogICAgeyJAY29udGV4dCI6Imh0dHBzOlwvXC9zY2hlbWEub3JnIiwiQHR5cGUiOlsiQXV0b0RlYWxlciIsIkF1dG9tb3RpdmVCdXNpbmVzcyJdLCJ1cmwiOiJodHRwczpcL1wvd3d3LnBvaXJpZXJoeXVuZGFpLmNhIiwibmFtZSI6IlBvaXJpZXIgSHl1bmRhaSIsImltYWdlIjoiaHR0cHM6XC9cL3d3dy5wb2lyaWVyaHl1bmRhaS5jYVwvaW1hZ2VzXC9Mb2dvTW9iaWxlXC9oeXVuZGFpLW1vYmlsZS1sb2dvLXJnYi1mci5wbmciLCJsb2dvIjoiaHR0cHM6XC9cL3d3dy5wb2lyaWVyaHl1bmRhaS5jYVwvaW1hZ2VzXC9Mb2dvTW9iaWxlXC9oeXVuZGFpLW1vYmlsZS1sb2dvLXJnYi1mci5wbmciLCJzYW1lQXMiOlsiaHR0cHM6XC9cL3d3dy5mYWNlYm9vay5jb21cL1BvaXJpZXJIeXVuZGFpIiwiaHR0cHM6XC9cL3d3dy5pbnN0YWdyYW0uY29tXC9ncm91cGVwb2lyaWVydmRcLyJdLCJnZW8iOnsiQHR5cGUiOiJHZW9Db29yZGluYXRlcyIsImxhdGl0dWRlIjoiNDguMDk3ODI0IiwibG9uZ2l0dWRlIjoiLTc3Ljg1NjI5OCJ9LCJhZGRyZXNzIjp7IkB0eXBlIjoiUG9zdGFsQWRkcmVzcyIsInN0cmVldEFkZHJlc3MiOiIxOTQwLCAzaVx1MDBlOG1lIEF2ZW51ZSIsImFkZHJlc3NMb2NhbGl0eSI6IlZhbC1kJ09yIiwiYWRkcmVzc1JlZ2lvbiI6IlF1ZWJlYyIsInBvc3RhbENvZGUiOiJKOVAgN0IyIiwiYWRkcmVzc0NvdW50cnkiOiJDQSJ9LCJ0ZWxlcGhvbmUiOiI4MTktODc0LTI4ODYiLCJwcmljZVJhbmdlIjoiJDI0LDI0OC0kODEsMTQ4Iiwib3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiI6W3siQHR5cGUiOiJPcGVuaW5nSG91cnNTcGVjaWZpY2F0aW9uIiwiZGF5T2ZXZWVrIjoiTW9uZGF5Iiwib3BlbnMiOiIwOTowMCIsImNsb3NlcyI6IjE4OjAwIn0seyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJUdWVzZGF5Iiwib3BlbnMiOiIwOTowMCIsImNsb3NlcyI6IjE4OjAwIn0seyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJXZWRuZXNkYXkiLCJvcGVucyI6IjA5OjAwIiwiY2xvc2VzIjoiMTg6MDAifSx7IkB0eXBlIjoiT3BlbmluZ0hvdXJzU3BlY2lmaWNhdGlvbiIsImRheU9mV2VlayI6IlRodXJzZGF5Iiwib3BlbnMiOiIwOTowMCIsImNsb3NlcyI6IjE4OjAwIn0seyJAdHlwZSI6Ik9wZW5pbmdIb3Vyc1NwZWNpZmljYXRpb24iLCJkYXlPZldlZWsiOiJGcmlkYXkiLCJvcGVucyI6IjA5OjAwIiwiY2xvc2VzIjoiMTg6MDAifV19Cjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi50YWxrc29vbi5jb20vc2NyaXB0cy90c3dfbG9hZGVyLm1pbi5qcyIgZGVmZXI+PC9zY3JpcHQ+PGxpbmsgcmVsPSJpY29uIiBocmVmPSJodHRwczovL3BvaXJpZXJoeXVuZGFpLmNhL2ltYWdlcy9GYXZpY29uL2h5dW5kYWlfZmF2aWNvbi5zdmciPjxsaW5rIHJlbD0icHJlbG9hZCIgYXM9ImltYWdlIiBocmVmPSJodHRwczovL3BvaXJpZXJoeXVuZGFpLmNhL2ltYWdlcy9Mb2dvTW9iaWxlL2h5dW5kYWktbW9iaWxlLWxvZ28tcmdiLWZyLnBuZyI+PGxpbmsgcmVsPSJwcmVsb2FkIiBocmVmPSIvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAud29mZjIiIGFzPSJmb250IiB0eXBlPSJmb250L1dPRkYyIiBjcm9zc29yaWdpbj48bGluayByZWw9InByZWxvYWQiIGhyZWY9Ii8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0icHJlbG9hZCIgaHJlZj0iLy9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtUmVndWxhci53b2ZmMiIgYXM9ImZvbnQiIHR5cGU9ImZvbnQvV09GRjIiIGNyb3Nzb3JpZ2luPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9wb2lyaWVyaHl1bmRhaS5jYS9jc3Nfci9yZXNvdXJjZS5sb2FkZXIuZnIuY3NzP3Y9MyZhbXA7Y3NzcnBsPSZhbXA7d3N3aWR0aD0wJmFtcDtkZXZpY2U9bW9iaWxlJmFtcDt1YT1RME5DYjNRdk1pNHdJQ2hvZEhSd2N6b3ZMMk52YlcxdmJtTnlZWGRzTG05eVp5OW1ZWEV2S1E9PSI+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYSIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ltYWdlc2Nkbi5kMmNtZWRpYS5jYSIgY3Jvc3NvcmlnaW4+PGxpbmsgcmVsPSJwcmVjb25uZWN0IiBocmVmPSJodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhIiBjcm9zc29yaWdpbj48bGluayByZWw9ImNhbm9uaWNhbCIgaHJlZj0iaHR0cHM6Ly93d3cucG9pcmllcmh5dW5kYWkuY2EvZW1iZWRlci9wcm9jZXNzL2ZyL20iIGRhdGEtY2Fub25pY2FsLWhlYWRlci13aWRnZXQ9IjEiPjxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5jb29raWVsYXcub3JnL3NjcmlwdHRlbXBsYXRlcy9vdFNES1N0dWIuanMiIGRhdGEtZG9jdW1lbnQtbGFuZ3VhZ2U9InRydWUiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0iVVRGLTgiIGRhdGEtZG9tYWluLXNjcmlwdD0iNDA2YmM5NDQtNTQyZS00ODMxLThhYTktYjhkNWI1NGUwODJhIj48L3NjcmlwdD48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJodHRwczovL2Nkbi5jb29raWVsYXcub3JnL2NvbnNlbnQvNDA2YmM5NDQtNTQyZS00ODMxLThhYTktYjhkNWI1NGUwODJhL090QXV0b0Jsb2NrLmpzIj48L3NjcmlwdD48ZGl2IGlkPSJhc2NfZGlnaXRhbF9kYXRhX2luZm8iIGRhdGEtYW5hbHl0aWNzPSJnb29nbGVfYW5hbHl0aWNzXzQiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2ZWhpY2xlQ2F0ZWdvcnkiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtYWtlIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idmluIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idHJpbSIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InByaWNlIiB2YWx1ZT0iIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZXh0Y29sb3IiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkYXRlX2xpc3RpbmciIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkMmFzY19pc0NlcnRpZmllZCIgdmFsdWU9IiI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InZlaGljbGVTdGF0dXMiIHZhbHVlPSIiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJDb2RlIiB2YWx1ZT0iMzUwMTYiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlVHlwZSIgdmFsdWU9IlNob3dyb29tIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX25hbWUiIHZhbHVlPSJQb2lyaWVyIEh5dW5kYWkiPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJfYWRkcmVzcyIgdmFsdWU9IjE5NDAsIDNpw6htZSBBdmVudWUsIFZhbC1kJ09yLCBBYml0aWJpLVTDqW1pc2NhbWluZ3VlIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyX3Bvc3RhbCIgdmFsdWU9Iko5UCA3QjIiPgoJCTwvZGl2PgoJCTwhLS0gT086OmMzNTIxMTBjN2ViOWU5MjRlODgxNTdmNDAwZWMzNjgxIC0tPgo8IS0tRU5EX1JFTU9WQUJMRV9DT0RFX0JMT0NLX0NPTU1FTlRfMDAwMi0tPgoKPCEtLUVORF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPCEtLSBHbG9iYWwgc2l0ZSB0YWcgKGd0YWcuanMpIC0gR29vZ2xlIEFuYWx5dGljcyAtLT4KCjwhLS1TVEFSVF9SRU1PVkFCTEVfQ09ERV9CTE9DS19DT01NRU5UXzAwMDEtLT4KPHNjcmlwdCBhc3luYyBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZXRhZ21hbmFnZXIuY29tL2d0YWcvanM\/aWQ9Ry01OThUTDlORVZOIiB0eXBlPSJ0ZXh0L3BsYWluIiBjbGFzcz0ib3B0YW5vbi1jYXRlZ29yeS1DMDAwMSI+PC9zY3JpcHQ+CjwhLS1FTkRfUkVNT1ZBQkxFX0NPREVfQkxPQ0tfQ09NTUVOVF8wMDAxLS0+Cgo8IS0tICMjVk1KUzIjIyAtLT48IS0tIEdPIElEIC0tPgo8IS0tIEJJTkcgU0NSSVBUIC0tPgo8IS0tIE9POjpmNzNmYTZhYmJmYjRiYWIzZjQ5ZGFhZmIzODkxZTI3ZiAtLT4KICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiIGRhdGEtcmw9IjEiPgovKiogL2Nzcy9yb290LmNzcyAqKi8KOnJvb3R7IC0tcmF0aW86MS4xNTsgLS1zMDowOyAtLXMtOTpjYWxjKHZhcigtLXMtOCkgLyB2YXIoLS1yYXRpbykpOyAtLXMtODpjYWxjKHZhcigtLXMtNykgLyB2YXIoLS1yYXRpbykpOyAtLXMtNzpjYWxjKHZhcigtLXMtNikgLyB2YXIoLS1yYXRpbykpOyAtLXMtNjpjYWxjKHZhcigtLXMtNSkgLyB2YXIoLS1yYXRpbykpOyAtLXMtNTpjYWxjKHZhcigtLXMtNCkgLyB2YXIoLS1yYXRpbykpOyAtLXMtNDpjYWxjKHZhcigtLXMtMykgLyB2YXIoLS1yYXRpbykpOyAtLXMtMzpjYWxjKHZhcigtLXMtMikgLyB2YXIoLS1yYXRpbykpOyAtLXMtMjpjYWxjKHZhcigtLXMtMSkgLyB2YXIoLS1yYXRpbykpOyAtLXMtMTpjYWxjKHZhcigtLXMpIC8gdmFyKC0tcmF0aW8pKTsgLS1zOjAuNXJlbTsgLS1zMTpjYWxjKHZhcigtLXMpICogdmFyKC0tcmF0aW8pKTsgLS1zMjpjYWxjKHZhcigtLXMxKSAqIHZhcigtLXJhdGlvKSk7IC0tczM6Y2FsYyh2YXIoLS1zMikgKiB2YXIoLS1yYXRpbykpOyAtLXM0OmNhbGModmFyKC0tczMpICogdmFyKC0tcmF0aW8pKTsgLS1zNTpjYWxjKHZhcigtLXM0KSAqIHZhcigtLXJhdGlvKSk7IC0tczY6Y2FsYyh2YXIoLS1zNSkgKiB2YXIoLS1yYXRpbykpOyAtLXM3OmNhbGModmFyKC0tczYpICogdmFyKC0tcmF0aW8pKTsgLS1zODpjYWxjKHZhcigtLXM3KSAqIHZhcigtLXJhdGlvKSk7IC0tczk6Y2FsYyh2YXIoLS1zOCkgKiB2YXIoLS1yYXRpbykpOyAtLWZzLWJhc2U6MC44NzVyZW07IC0tZnM6dmFyKC0tZnMtYmFzZSk7IC0tZnMtOTpjYWxjKHZhcigtLWZzLTgpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy04IDpjYWxjKHZhcigtLWZzLTcpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy03IDpjYWxjKHZhcigtLWZzLTYpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy02IDpjYWxjKHZhcigtLWZzLTUpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy01IDpjYWxjKHZhcigtLWZzLTQpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy00IDpjYWxjKHZhcigtLWZzLTMpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy0zIDpjYWxjKHZhcigtLWZzLTIpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy0yIDpjYWxjKHZhcigtLWZzLTEpIC8gdmFyKC0tcmF0aW8pKTsgLS1mcy0xIDpjYWxjKHZhcigtLWZzMCkgLyB2YXIoLS1yYXRpbykpOyAtLWZzMCA6dmFyKC0tZnMtYmFzZSwgMC44NzVyZW0pOyAtLWZzMSA6Y2FsYyh2YXIoLS1mczApICogdmFyKC0tcmF0aW8pKTsgLS1mczIgOmNhbGModmFyKC0tZnMxKSAqIHZhcigtLXJhdGlvKSk7IC0tZnMzIDpjYWxjKHZhcigtLWZzMikgKiB2YXIoLS1yYXRpbykpOyAtLWZzNCA6Y2FsYyh2YXIoLS1mczMpICogdmFyKC0tcmF0aW8pKTsgLS1mczUgOmNhbGModmFyKC0tZnM0KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM2IDpjYWxjKHZhcigtLWZzNSkgKiB2YXIoLS1yYXRpbykpOyAtLWZzNyA6Y2FsYyh2YXIoLS1mczYpICogdmFyKC0tcmF0aW8pKTsgLS1mczggOmNhbGModmFyKC0tZnM3KSAqIHZhcigtLXJhdGlvKSk7IC0tZnM5IDpjYWxjKHZhcigtLWZzOCkgKiB2YXIoLS1yYXRpbykpOyAtLWRlZmF1bHQtYmxhY2s6IzAwMDAwMDsgLS10YWItY29sb3Itc3BlY2lhbGNhc2U6I2U0ZGNkMzsgLS10YWItY29sb3I6I2U0ZGNkMzsgLS10YWItdGV4dC1jb2xvcjojMDAwMDAwOyAtLXRhYi1jb2xvci1tb2I6IzAwMmM1ZjsgLS10YWItdGV4dC1jb2xvci1tb2I6I2ZmZmZmZjsgLS10YWItY29sb3ItbW9iLWV4OiNmZmZmZmY7IC0tdGFiLXRleHQtY29sb3ItbW9iLWV4OiMwMDAwMDA7IC0tbWVudS1jb2xvci1ib3JkZXI6OyAtLW1lbnUtY29sb3ItbW9iOiNmZmZmZmY7IC0tbWVudS10ZXh0LWNvbG9yLW1vYjojMDAyYzVmOyAtLW1lbnUtY29sb3ItbW9iLWV4OiNmZmZmZmY7IC0tbWVudS10ZXh0LWNvbG9yLW1vYi1leDojMDAwMDAwOyAtLXByb21vLWNvbG9yOiMwMDJjNWY7IC0tcHJvbW8tdGV4dC1jb2xvcjojZmZmZmZmOyAtLW5ld3NycC1tb2RlbC1jb2xvcjojMDAyYzVmOyAtLWZvb3Rlci1saW5rLXRpdGxlLWNvbDojMDAwMDAwOyAtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yOiMwMDAwMDA7IC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3I6IzAwMDAwMDsgLS1mb290ZXItYmctY29sb3I6I2U0ZGNkMzsgLS1nZW5lcmFsLWJnLWNvbG9yOiNmZmZmZmY7IC0tdG9wLXByb21vLWJ0bi10eHQ6I2ZmZmZmZjsgLS10b3AtcHJvbW8tYnRuLWJnOiMwMDJjNWY7IC0tcHJvbW8tYnRuLWNvbG9yOiMwMDJjNWY7IC0tcHJvbW8tYnRuLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1wcm9tby1idG4taG92ZXItYmctY29sb3I6IzAwN2ZhNTsgLS1wcm9tby1idG4taG92ZXItdGV4dC1jb2xvcjojZmZmZmZmOyAtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzOnB4OyAtLWhvbWUtYmctY29sb3I6I2ZmZmZmZjsgLS1mb3JtLXRpdGxlLWNvbG9yOiMyNDI0MjQ7IC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3I6IzAwMDAwMDsgLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yOiNmZmZmZmY7IC0tYnVzaW5lc3MtZGVzYy10eHQtY29sb3JfbW9iOiMwMDAwMDA7IC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcl9tb2I6I2ZmZmZmZjsgLS11c2VkLXNsaWRlci1iZzojZmZmZmZmOyAtLXVzZWQtc2xpZGVyLXR4dDojMDAwMDAwOyAtLXVzZWQtc2xpZGVyLXByaWNlOiMwMDJjNWY7IC0tbmV3LXNsaWRlci1iZzojZmZmZmZmOyAtLW5ldy12ZHAtYmVzdHByaWNlLWJ0bi1iZy1jb2xvcjojMDAyYzVmOyAtLW5ldy12ZHAtYmVzdHByaWNlLWJ0bi10ZXh0LWNvbG9yOiNmZmZmZmY7IC0tZGVhbGVyLW5hbWUtY29sb3I6IzAwMmM1ZjsgLS1uZXdzLWJnLWNvbG9yOiNmZmZmZmY7IC0tbmV3cy10ZXh0LWNvbG9yOiMwMDAwMDA7IC0tZXhpdC1wb3B1cC1iZ2NvbDo7IC0tdXNlZC1vZmZlci1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLXVzZWQtb2ZmZXItYnRuLWJnLWNvbG9yOiMwMDJjNWY7IC0tZmluYW5jZS1idG4tdGV4dC1jb2xvcjojZmZmZmZmOyAtLWZpbmFuY2UtYnRuLWJnLWNvbG9yOiMwMDJjNWY7IC0tZmluYW5jZS1idG4tdGV4dC1jb2xvci1uZXdpbnY6I2ZmZmZmZjsgLS1maW5hbmNlLWJ0bi1iZy1jb2xvci1uZXdpbnY6IzAwMmM1ZjsgLS1tZW51LWhvdmVyLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1tZW51LWhvdmVyLWJnLWNvbG9yOiMwMDdmYTU7IC0tbWVudS1iZy1jb2xvcjpyZ2IoMjI4LDIyMCwyMTEpOyAtLW1haW4tbWVudS1iZy1jb2xvcjpyZ2IoMjI4LDIyMCwyMTEpOyAtLWRlYWxlci1hZGRyZXNzLWNvbG9yOiMwMDJjNWY7IC0tZGVhbGVyLWFkZHJlc3MtZm9udC1zaXplOjE1OyAtLXdoaXRlOiNmZmY7IC0tbGlnaHQ6I2Y2ZjZmNjsgLS1saWdodC1ncmF5OiNlZmVmZWY7IC0tbWlkLWdyYXk6I2RkZDsgLS1ncmF5OiM5OTk7IC0tY250ci1ncmF5OiM3Njc2NzY7IC0tZGFyay1ncmF5OiM2NjY7IC0tYmxhY2stZ3JheTojMzMzOyAtLWJsYWNrOiMwMDA7IC0tcmVkOiNmZjAwMDA7IC0tYm9yZGVyLXRoaW46MXB4OyAtLWJvcmRlci10aGljazoycHg7IC0tdHh0LXVwcGVyOm5vbmU7IC0tZm9udC1tZW51Okh5dW5kYWlTYW5zSGVhZDsgLS1mb250LW1lbnUtbW9iOkh5dW5kYWlTYW5zSGVhZDsgLS1mb250LW1lbnUtd2VpZ2h0OjQwMDsgLS1mb250LWgxOkh5dW5kYWlTYW5zSGVhZDsgLS1mb250LWgxLW1vYjpIeXVuZGFpU2Fuc0hlYWQ7IC0tZm9udC1oMS13ZWlnaHQ6NDAwOyAtLWZvbnQtaDI6SHl1bmRhaVNhbnNIZWFkOyAtLWZvbnQtaDItbW9iOkh5dW5kYWlTYW5zSGVhZDsgLS1mb250LWgyLXdlaWdodDo0MDA7IC0tZm9udC10ZXh0Okh5dW5kYWlTYW5zSGVhZDsgLS1mb250LXRleHQtbW9iOkh5dW5kYWlTYW5zSGVhZDsgLS1mb250LXRleHQtd2VpZ2h0OjQwMDsgLS1mb250LWJ1dHRvbnM6SHl1bmRhaVNhbnNIZWFkOyAtLWZvbnQtYnV0dG9ucy1tb2I6SHl1bmRhaVNhbnNIZWFkOyAtLWZvbnQtYnV0dG9ucy13ZWlnaHQ6NDAwOyAtLWNvcm5lci1yaWJib24tYmctY29sb3I6IzAwN2ZhNTsgLS1jb3JuZXItcmliYm9uLXRleHQtY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1tZW51LWl0ZW0tY29sb3I6I2ZmZmZmZjsgLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcjojZmZmZmZmOyAtLWhvbWVwYWdlLWJhbm5lci1zZWFyY2gtYmFyLXZpZGVvLW9wYWNpdHk6MzA7IC0taG9tZXBhZ2Utc29jaWFsLWJnLWNvbG9yOiNmZmZmZmY7IC0taG9tZXBhZ2Utc29jaWFsLXRleHQtY29sb3I6IzAwMDAwMDsgLS1ob21lcGFnZS1zb2NpYWwtbG9nby1jb2xvcjojMTg3N0YyOyAtLXByb21vdGlvbi1iYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7IC0tcHJvbW90aW9uLXRleHQtY29sb3I6IzAwMDAwMDsgLS11bmRlcmJhbm5lcl9zZWFyY2hfYmFyX2JnOiNmNmYzZjI7IC0tdW5kZXJiYW5uZXJfc2VhcmNoX2Jhcl9jb2xvcjojMDAyYzVmOyAtLXVuZGVyYmFubmVyX3NlYXJjaF9iYXJfYnRuX2JnOiMwMDJjNWY7IC0tdW5kZXJiYW5uZXJfc2VhcmNoX2Jhcl9idG5fY29sb3I6I2ZmZmZmZjsgLS1uZXd2ZHAtYmVzdHByaWNlLXRleHQtY29sb3ItcHJpY2U6IzAwMmM1ZjsgLS1hZG1pbi1zb2NpYWwtY3VzdG9tLWNvbG9yLXBpY2tlci10ZXh0OiM5MjkyOTI7IC0tYWRtaW4tZ2VuZXJhbC1oZWFkZXItYmctY29sb3I6I2ZmZmZmZjsgLS1hZG1pbi1nZW5lcmFsLXRleHQtdXMtZGVhbGVyLWxpbmUtdGV4dC1jb2xvcjojZmZmZmZmOyAtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS1iZy1jb2xvcjojMDA3ZmE1OyAtLXRyYWRlaW5iYXItYnRuLWJnOiMwMDJjNWY7IC0tdHJhZGVpbmJhci1idG4tY29sb3I6I2ZmZmZmZjsgLS1kZWZhdWx0LWJsYWNrLXRleHQ6IzAwMDAwMDsgLS1wcm9tby1idG4tYmctY29sb3I6IzAwMmM1ZjsgLS10cmFkZWluYmFyLWJnOiNmNmYzZjI7IC0tdHJhZGVpbmJhci1jb2xvcjojMDAyYzVmOyAtLWxhbmd1YWdlLWJ0bi1hY3RpdmUtYmctY29sb3I6IzAwN2ZhNTsgLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yLWJnOiMwMDJjNWY7IC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvcjojZmZmZmZmOyAtLWFkbWluLWdlbmVyYWwtYWxlcnQtYmFyLXRleHQtY29sb3I6I2ZmZmZmZjsgLS10b3AtcHJvbW8tYnRuLXR4dC1jb2xvcjpyZ2IoMCwwLDApOyAtLXRvcC1wcm9tby1idG4tYmctY29sb3I6cmdiKDIyOCwyMjAsMjExKTsgLS1uZXctdmVoaWNsZS1jYXJvdXNlbC10eHQtY29sb3I6IzAwMDAwMDsgLS1kaWdpdGFsLXJldGFpbGluZy1kcmF3ZXItd2lkdGg6JTsgfSAqIHsgYm9yZGVyLWNvbG9yOmluaGVyaXQ7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLXdpZHRoOjA7IGZvbnQtZmFtaWx5OmluaGVyaXQ7IGxpbmUtaGVpZ2h0OjEuMmVtOyB9IG9sLCB1bCwgbWVudSB7IGxpc3Qtc3R5bGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfSBhIHsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOmluaGVyaXQ7IH0gaDEsaDIsaDMsaDQsaDUsaDYsIHAgeyBtYXJnaW46MDsgfSBoMSxoMixoMyxoNCxoNSxoNnsgZm9udC1zaXplOmluaGVyaXQ7IGZvbnQtd2VpZ2h0OmluaGVyaXQ7IH0gaW1nIHsgbWF4LXdpZHRoOjEwMCU7IH0gdGFibGUgeyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IH0gdGV4dGFyZWEgeyB3aGl0ZS1zcGFjZTpyZXZlcnQ7IH0gOndoZXJlKFtoaWRkZW5dKXsgZGlzcGxheTpub25lICFpbXBvcnRhbnQ7IH0gOndoZXJlKFtjb250ZW50ZWRpdGFibGVdKXsgLW1vei11c2VyLW1vZGlmeTpyZWFkLXdyaXRlOyAtd2Via2l0LXVzZXItbW9kaWZ5OnJlYWQtd3JpdGU7IG92ZXJmbG93LXdyYXA6YnJlYWstd29yZDsgbGluZS1icmVhazphZnRlci13aGl0ZS1zcGFjZTsgLXdlYmtpdC1saW5lLWJyZWFrOmFmdGVyLXdoaXRlLXNwYWNlOyB9IDp3aGVyZShbZHJhZ2dhYmxlPSJ0cnVlIl0pIHsgLXdlYmtpdC11c2VyLWRyYWc6ZWxlbWVudDsgfSAjQWZ0ZXJDYXJvdXNlbCA+IC5jb250YWluZXIsICNob21lcGFnZS1jb250ZW50ID4gLmNvbnRhaW5lciwgI2hvbWVfQWZ0ZXJBY3Rpb25Cb3ggPiAuY29udGFpbmVyLCAjaG9tZV9BZnRlckRpc3BsYXlWZWhpY2xlID4gLmNvbnRhaW5lciB7IG1heC13aWR0aDoxMjAwcHg7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyB9ICNBZnRlckNhcm91c2VsID4gLmNvbnRhaW5lcjpoYXMoLkFmdGVyQ2Fyb3VzZWxGdyksICNob21lX0FmdGVyQWN0aW9uQm94ID4gLmNvbnRhaW5lcjpoYXMoLkFmdGVyQ2Fyb3VzZWxGdyksICNob21lX0FmdGVyRGlzcGxheVZlaGljbGUgPiAuY29udGFpbmVyOmhhcyguQWZ0ZXJDYXJvdXNlbEZ3KSwgI2hvbWVfQWZ0ZXJEaXNwbGF5VmVoaWNsZSA+IC5jb250YWluZXI6aGFzKC5lbWJlZC1jb250YWluZXIteW91dHViZSkgeyBtYXgtd2lkdGg6bm9uZTsgcGFkZGluZy1sZWZ0OjA7IHBhZGRpbmctcmlnaHQ6MDsgfSBib2R5Lmhhcy1kMmNib3QgI0FmdGVyQ2Fyb3VzZWwgLmNvbnRhaW5lciwgYm9keS5oYXMtZDJjYm90ICNob21lcGFnZS1jb250ZW50IC5jb250YWluZXIsIGJvZHkuaGFzLWQyY2JvdCAjaG9tZV9BZnRlckFjdGlvbkJveCAuY29udGFpbmVyLCBib2R5Lmhhcy1kMmNib3QgI2hvbWVfQWZ0ZXJEaXNwbGF5VmVoaWNsZSAuY29udGFpbmVyIHsgbWF4LXdpZHRoOm5vbmUgIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OjAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDowICFpbXBvcnRhbnQ7IH0gLnJlc3BvbnNpdmUtZWRpdG9yIC5jb250YWluZXItZmx1aWR7IG92ZXJmbG93LXg6aGlkZGVuOyB9IC5yZXNwb25zaXZlLWVkaXRvciAuY29udGFpbmVyLWZsdWlkICogeyBsaW5lLWhlaWdodDppbml0aWFsOyB9IC5ja2VkaXRvcldyYXBwZXJ7IG92ZXJmbG93LXg6aGlkZGVuOyBzY3JvbGxiYXItd2lkdGg6bm9uZTsgfSAqIHsgZm9udC12YXJpYW50LW51bWVyaWM6bGluaW5nLW51bXM7IH0KLyoqIC9jc3MvdjIvbmF2LmNzcyAqKi8KaGVhZGVyLm1vYmlsZS1oZWFkZXJ7IC0tdHh0LWNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IHBvc2l0aW9uOnN0aWNreTsgdG9wOjA7IHdpZHRoOjEwMHZ3OyBoZWlnaHQ6My4ycmVtOyBib3gtc2hhZG93OnJnYmEoMCwgMCwgMCwgMC41KSAwIDAgNXB4IDNweDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXR4dC1jb2xvcik7IHotaW5kZXg6MTAwMDsgfSBkaXYubW9iaWxlLWhlYWRlci1zcGFjZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aWR0aDoxMDB2dzsgaGVpZ2h0OjMuMnJlbTsgZGlzcGxheTpibG9jazsgfSBoZWFkZXIubW9iaWxlLWhlYWRlciA+ICogKyAqIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGhlaWdodDoxMDAlOyB9IGhlYWRlci5tb2JpbGUtaGVhZGVyLnRhbGwgPiAqICsgKnsgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkICNkZGQ7IGZsZXg6MSAxIGF1dG87IH0gaGVhZGVyIC5sb2dvLWFjdGlvbiB+ICogeyBtaW4td2lkdGg6Mi41cmVtOyB9IC5oZWFkZXItZGVhbGVyLW5hbWUgeyBjb2xvcjppbmhlcml0OyBmb250LXNpemU6dmFyKC0tZnMtMSk7IC0tZnM6dmFyKC0tZnMtMSk7IH0gaGVhZGVyIGFzaWRleyAtLXR4dC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iLCB2YXIoLS10YWItdGV4dC1jb2xvcikpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjIuOTVyZW07IGxlZnQ6LTE5cmVtOyB3aWR0aDptaW4oODB2dywgMTlyZW0pOyBtaW4taGVpZ2h0OjEwMHZoOyBmb250LXNpemU6dmFyKC0tZnMpOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAzMDBtcyBlYXNlLWluOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtY29sb3ItbW9iLCB2YXIoLS10YWItY29sb3IpKTsgY29sb3I6dmFyKC0tbWVudS10ZXh0LWNvbG9yKTsgbWF4LWhlaWdodDoxMDB2aDsgb3ZlcmZsb3c6YXV0bzsgei1pbmRleDoxMDA7IH0gbmF2eyAtLWZzOnZhcigtLWZzMSk7IGZvbnQtc2l6ZTp2YXIoLS1mcyk7IH0gbmF2IC5tZW51LWl0ZW0sIG5hdiAuc3VibWVudS1pdGVtIHsgcGFkZGluZzp2YXIoLS1zKTsgfSBuYXYgLm1lbnUtaXRlbXsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IG5hdiAubWVudS1pdGVtLmludmVyc2UtY29sb3J7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IH0gbmF2IC5zdWJtZW51LWl0ZW17IGJvcmRlci1jb2xvcjp2YXIoLS1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LWNvbG9yLW1vYi1leCwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLW1lbnUtdGV4dC1jb2xvci1tb2ItZXgpOyB9IG5hdiAuc3VibWVudS1pdGVtIHN2Zy5pY29uIHsgZmlsbDp2YXIoLS10YWItdGV4dC1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gbmF2IC5tZW51LWdyb3VwIHsgYm9yZGVyLXRvcC13aWR0aDp2YXIoLS1ib3JkZXItdGhpbik7IH0gbmF2IC5tZW51LWdyb3VwIH4gLm1lbnUtZ3JvdXAgeyBib3JkZXItdG9wLXdpZHRoOjA7IH0gbmF2IC5tZW51Q29sbHBhc2Ugc3ZneyB0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7IH0gI2hvbWVuYXYgbmF2eyAtLXR4dC1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW17IGJhY2tncm91bmQ6dmFyKC0tdGFiLWNvbG9yLW1vYiwgdmFyKC0tdGFiLWNvbG9yKSk7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yLW1vYiwgdmFyKC0tdGFiLXRleHQtY29sb3IpKTsgfSAjaG9tZW5hdiBuYXYgLm1lbnUtaXRlbS5pbnZlcnNlLWNvbG9yeyBjb2xvcjp2YXIoLS1tZW51LWhvdmVyLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyB9ICNob21lbmF2IG5hdiAuc3VibWVudS1pdGVteyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi1jb2xvcikpOyBjb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvci1tb2ItZXgsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gI2hvbWVuYXYgbmF2IGxpeyBwYWRkaW5nLXRvcDp2YXIoLS1zLTgpOyB9ICNob21lbmF2IG5hdiAubWVudS1pdGVteyBib3JkZXItcmFkaXVzOjAuMjVyZW07IH0gI2hvbWVuYXYgbmF2IC5tZW51LWl0ZW0uTEFOR1VBR0V7IGRpc3BsYXk6bm9uZTsgfSAuYnVyZ2VyLW1lbnUtY29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuYnVyZ2VyX3RvcCB7IHRyYW5zZm9ybS1vcmlnaW46MCA1MCU7IH0gLmJ1cmdlcl9ib3R0b20geyB0cmFuc2Zvcm0tb3JpZ2luOjAgNTAlOyB9IC5idXJnZXItbWVudS1idXR0b24gPiBzcGFuIHsgd2lkdGg6MS42cmVtOyBoZWlnaHQ6MC4yNXJlbTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1tZW51LXRleHQtY29sb3ItbW9iKTsgYm9yZGVyLXJhZGl1czowLjI1cmVtOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjRzIGVhc2U7IHotaW5kZXg6MTAxOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl90b3AsICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfdG9weyBvcGFjaXR5OjE7IHRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgwLjFyZW0sIDApOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9taWRkbGUsICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfbWlkZGxleyBvcGFjaXR5OjA7IHRyYW5zZm9ybTpyb3RhdGUoMGRlZykgc2NhbGUoMC4yLCAwLjIpOyB9ICNibV90b2dnbGU6Y2hlY2tlZCB+IC5idXJnZXItbWVudS1idXR0b24gLmJ1cmdlcl9ib3R0b20sICNibV9ib3R0b21fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIC5idXJnZXJfYm90dG9teyBvcGFjaXR5OjE7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSB0cmFuc2xhdGUoMC4xcmVtLCAwKTsgfSAjYm1fdG9nZ2xlOmNoZWNrZWQgfiAuYnVyZ2VyLW1lbnUtYnV0dG9uIH4gYXNpZGV7IHRyYW5zZm9ybTp0cmFuc2xhdGUoMTlyZW0pOyB9IGxhYmVsW2Zvcj0iYm1fdG9nZ2xlIl17IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDI7IH0gLnRoaW5MZWZ0IC5oZWFkZXItZGVhbGVyLW5hbWUgeyBmb250LXNpemU6dmFyKC0tZnMwKTsgbWFyZ2luLWxlZnQ6OHB4OyB9IC50aGluTGVmdCAubG9nby1hY3Rpb24gYSB7IGZsZXgtYmFzaXM6MTUlIH0gaGVhZGVyLnRoaW5MZWZ0IGFzaWRlIHsgbGVmdDp1bnNldDsgcmlnaHQ6MDsgdHJhbnNmb3JtOnNjYWxlWCgwKSB0cmFuc2xhdGVYKDE5cmVtKTsgdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDUwJTsgfSAudGhpbkxlZnQgI2JtX3RvZ2dsZTpjaGVja2VkIH4gLmJ1cmdlci1tZW51LWJ1dHRvbiB+IGFzaWRleyB0cmFuc2Zvcm06dW5zZXQ7IH0KLyoqIC9jc3Mvc2tlbGV0b24uY3NzICoqLwouaGlkZU9uUHJlTG9hZCB7IHZpc2liaWxpdHk6aGlkZGVuOyB9IC5yZXZlYWwtbW9kYWwgeyB2aXNpYmlsaXR5OmhpZGRlbjsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDotMTAwMHB4OyB9IC5za2VsZXRvbiB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MDsgcGFkZGluZzowOyBiYWNrZ3JvdW5kOiNlZWU7IH0gLnNrZWxldG9uOjpiZWZvcmUgeyBkaXNwbGF5OmZsZXg7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo0OyBjb250ZW50OiIiOyBmb250LXNpemU6MC43NXJlbTsgbGluZS1oZWlnaHQ6MC43NXJlbTsgY29sb3I6Izg4ODsgYW5pbWF0aW9uOnNrZWxldG9uLWFuaW0gMnMgbGluZWFyIGluZmluaXRlOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBsZXR0ZXItc3BhY2luZzowLjI1cmVtOyBhbGlnbi1pdGVtczpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gQGtleWZyYW1lcyBza2VsZXRvbi1hbmltIHsgMCUgeyBjb250ZW50OiIiOyB9IDI1JSB7IGNvbnRlbnQ6InwiOyB9IDUwJSB7IGNvbnRlbnQ6Inx8IjsgfSA3NSUgeyBjb250ZW50OiJ8fHwiOyB9IH0gLnNrZWxldG9uIGRpdjpmaXJzdC1jaGlsZCwgLnNrZWxldG9uIHNwYW46Zmlyc3QtY2hpbGQgeyBvcGFjaXR5OjA7IHRyYW5zaXRpb246b3BhY2l0eSAuMzAwczsgfSAuc2tlbGV0b24uc2tlbGV0b24tZGVza3RvcC5za2VsZXRvbi1jb25kLTIgeyBiYWNrZ3JvdW5kOm5vbmU7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkIHsgd2lkdGg6aW5oZXJpdCAhaW1wb3J0YW50OyB9IC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IHsgYmFja2dyb3VuZDp1bnNldDsgfSAuc2tlbGV0b24uaXMtbG9hZGVkLW5vdyBkaXY6Zmlyc3QtY2hpbGQsIC5za2VsZXRvbi5pcy1sb2FkZWQtbm93IHNwYW46Zmlyc3QtY2hpbGQgeyBvcGFjaXR5OjE7IH0gLnNrZWxldG9uLmlzLWxvYWRlZC1ub3c6OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6bm9uZTsgYW5pbWF0aW9uOnVuc2V0OyB9IC5za2VsZXRvbi5za2VsZXRvbi1kZXNrdG9wLnNrZWxldG9uLWNvbmQtMi5maXhlZC5pcy1sb2FkZWQtbm93ID4gZGl2OmZpcnN0LWNoaWxkIHsgb3BhY2l0eTouNzU7IH0gLnNrZWxldG9uLnNrZWxldG9uLWRlc2t0b3Auc2tlbGV0b24tY29uZC0yLmZpeGVkLmlzLWxvYWRlZC1ub3cgPiBkaXY6Zmlyc3QtY2hpbGQ6aG92ZXIgeyBvcGFjaXR5OjE7IH0KLyoqIC9jc3MvY3NzLmNzcyAqKi8KaHRtbCwgYm9keSwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgZm9udCwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhciwgYiwgdSwgaSwgY2VudGVyLCBkbCwgZHQsIGRkLCBvbCwgdWwsIGxpLCBmaWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCwgdGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQgeyBtYXJnaW46MDsgcGFkZGluZzowOyB9IGh0bWx7IGZvbnQtc2l6ZToxcmVtIDsgfSBib2R5IHsgcGFkZGluZzowOyBtYXJnaW4tbGVmdDowcHg7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OjBweDsgbWFyZ2luLWJvdHRvbTowcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dCk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyBiYWNrZ3JvdW5kOiB0b3AgY2VudGVyIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2VuZXJhbC1iZy1jb2xvcik7IH0gaW5wdXQsIHRleHRhcmVhLCBzZWxlY3QsIGJ1dHRvbiB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dCk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IC5uYXYgbGkgYS50b3BfbGluaywgLnVwX21lbnUgdWwubmF2IHVsLnN1YiBsaSBhLnN1YnRpdGxlLCAuaW1nX21lbnUudXBfbWVudSB1bC5uYXYgI01haW5NZW51X05FVz51bC5zdWIgbGk+dWwuc3ViPmxpLmhhc1N1YiBsaSBhLCBib2R5IC53cmFwcGVyIC51cF9tZW51IC5uYXZ7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtbWVudSk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtbWVudS13ZWlnaHQpOyB9IGgxeyBmb250LWZhbWlseTp2YXIoLS1mb250LWgxKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMS13ZWlnaHQpOyBjbGVhcjpib3RoOyB9IC5mbi5vcmd7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDEpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWgxLXdlaWdodCk7IH0gaW5wdXRbdHlwZT1idXR0b25dLCBidXR0b24uanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuLCAuYnV0dG9uXzEgYSwgLmJ1dHRvbl8yIGEsIC5idXR0b25fMyBhLCAuYnV0dG9uX3VuZGVyIGEsIC5idXR0b25fY21wX2xlZnQgYSwgLmJ1dHRvbl9jbXBfcmlnaHQgYSwgLmJ1dHRvbl9jbXBfYWN0IGEsIC5wdWxsb3V0cyBhLCAuaWROYXYxIGxpIGEudG9wX2xpbmsxLCAuY3RhX3ByaWNlLmFsdCwgLmN0YV9jcmVkaXQuYWx0LCAuY3RhX3Rlc3REcml2ZSwgLmN0YV9ldmFsLmFsdCwgLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9wYXJ0cy5hbHQsIC5jdGFfdGlyZXMuYWx0LCAuY3RhX3N2Y3Byb21vLmFsdCwgLmJveDE1IGgyIGEsIC5ib3gxOSBoMiBhLCAuYm94MjcgYSwgLnZpb3IsIC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwgLmJ0bi1sZyB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYnV0dG9ucyk7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtYnV0dG9ucy13ZWlnaHQpOyB9IGgyLGgzLGg0LGg1LGg2eyBmb250LWZhbWlseTp2YXIoLS1mb250LWgyKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMi13ZWlnaHQpOyB9IHN0cm9uZ3sgZm9udC13ZWlnaHQ6OTAwICFpbXBvcnRhbnQ7IH0gI21haW5EaXYud3JhcHBlciAudG9wX2JneyBtYXgtaGVpZ2h0OjI1MHB4OyBtaW4taGVpZ2h0OjExNXB4OyB9IC5oZWFkZXItaW1hZ2Utd3JhcHBlciBpbWcuaW1hZ2UtcGFkZGluZyB7IHBhZGRpbmctYm90dG9tOjVweDsgfSAuY2tlZGl0b3JXcmFwcGVyIGgyIHsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1yaWdodDowcHggIWltcG9ydGFudDsgbWFyZ2luLXRvcDoxNXB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTVweCAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgYSB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxMDAlICFpbXBvcnRhbnQ7IH0gLmNrZWRpdG9yV3JhcHBlciBwIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyB9IC5ja2VkaXRvcldyYXBwZXIgcDplbXB0eSB7IG1hcmdpbi1ib3R0b206MXJlbTsgfSAucmVzcG9uc2l2ZS1lZGl0b3IgLmNvbGxhcHNlLnNob3csIC5yZXNwb25zaXZlLWVkaXRvciAuY29sbGFwc2Uuc2hvdyAuY2FyZC1ib2R5IHsgdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7IH0gYS5kZXNjcmlwdGlvbi1hdXRvLWxpbmsgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lICFpbXBvcnRhbnQ7IGNvbG9yOmluaGVyaXQ7IH0gLmNscnsgY2xlYXI6Ym90aDt9IC5mbGVmdHsgZmxvYXQ6bGVmdDsgfSBpbnB1dDppbnZhbGlke2JveC1zaGFkb3c6bm9uZTsgLW1vei1ib3gtc2hhZG93Om5vbmU7fSAuY29uZGl0aW9ucy0tY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpyb3c7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBtYXJnaW4tYm90dG9tOjhweDsgfSAuY29uZGl0aW9ucy0tY29udGFpbmVyIC5jb25kaXRpb25zIHsgZmxleC1ncm93OjI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE4cHg7IGNvbG9yOiMwMDAwMDA7IH0gLmNvbmRpdGlvbnNGb290ZXJ7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tdG9wOjI1cHg7IGNvbG9yOiMwMDAwMDA7IH0gLmNvbmRpdGlvbnMtLWNvbnRhaW5lciBhLCAuY29uZGl0aW9uc0Zvb3RlciBhIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuZXh0ZW5kZWRQaG9uZVRyaWdnZXIgYXsgY29sb3I6aW5oZXJpdDsgfSAubWFpbkRpdi13cmFwcGVyID4gLmxhbmd1YWdlQmFyLXplcm8geyBtYXJnaW46MDsgaGVpZ2h0OmluaGVyaXQ7IHdpZHRoOjEwMCU7IH0gLmhlYWRlci1zZWN0aW9uIC5sYW5ndWFnZUJhciB7IG1hcmdpbjowIGF1dG8gMi43NXJlbTsgd2lkdGg6aW5oZXJpdDsgfSAuaGVhZGVyLXNlY3Rpb24gLmxhbmd1YWdlQmFyICsgLnBob25lIHsgbWFyZ2luLWJvdHRvbTowLjVyZW07IH0gLmxhbmd1YWdlQmFyIHVsIGE6aG92ZXJ7Zm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzY2NjY2NjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IC5sYW5ndWFnZUJhciB1bCBhOnZpc2l0ZWR7cGFkZGluZy1yaWdodDozNXB4OyB3aWR0aDphdXRvOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNjY2NjY2OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB0ZXh0LWFsaWduOnJpZ2h0O30gLmxhbmd1YWdlQmFyLmxhbmd1YWdlQmFyLXplcm8geyBoZWlnaHQ6MDsgcGFkZGluZzowOyBtYXJnaW46MDsgfSAjbWFpbkRpdi53cmFwcGVyLm5vLWljb25zIHsgcGFkZGluZy10b3A6MC4wMXJlbTsgfSAudG9wX3JvdXsgd2lkdGg6OTYwcHg7IGhlaWdodDo0cHg7IGZsb2F0OmxlZnQ7IH0gLmxvZ297IH0gLmxvZ29Ob1BhZGRpbmcgaW1neyB3aWR0aDoxMDAlO30gLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbiwgLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbnsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBmb250LXNpemU6MC43NXJlbSA7IHdpZHRoOjI4cHg7IGhlaWdodDoyNnB4OyBwYWRkaW5nOjA7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdmVydGljYWwtYWxpZ246dG9wOyBib3JkZXI6MXB4IHNvbGlkICNCNkI3Qjk7IGNvbG9yOiNCNkI3Qjk7IGNvbG9yOiMwMDdmYTU7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uLmFjdGl2ZSwgLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbjpob3ZlcnsgY29sb3I6I2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojQjZCN0I5OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDdmYTU7IH0gLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbjpudGgtY2hpbGQoZXZlbiksIC5sYW5ndWFnZUJhciBhLmRlc2t0b3BfbGFuZ19idXR0b246bnRoLWNoaWxkKGV2ZW4peyBtYXJnaW4tbGVmdDoycHg7IH0gLmxhbmd1YWdlQmFyIGEuZGVza3RvcF9sYW5nX2J1dHRvbiBzcGFuLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dCwgLmxhbmd1YWdlQmFyIHNwYW4uZGVza3RvcF9sYW5nX2J1dHRvbiBzcGFuLmRlc2t0b3BfbGFuZ19idXR0b25fdGV4dHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MCU7IHRyYW5zZm9ybTp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IH0gLmxvZ29Ob1BhZGRpbmd7IG1heC13aWR0aDo1MCU7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6LTRweDt9IC52LWNhcmQudG9wX2JnIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IH0gLnYtY2FyZC50b3BfYmcuLW10MCAuaGVhZGVyLXNlY3Rpb246bnRoLWNoaWxkKDIpIHsgbWFyZ2luLXRvcDo3NHB4OyB9IC5oZWFkZXItc2VjdGlvbiB7IGRpc3BsYXk6ZmxleDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5oZWFkZXItaW1hZ2Utd3JhcHBlciB7IG1pbi1oZWlnaHQ6OTdweDsgfSAuaGVhZGVyLXNlY3Rpb24uaW1hZ2UgeyB3aWR0aDoyNSU7IH0gLmhlYWRlci1zZWN0aW9uLmltYWdlID4gLmhlYWRlci1pbWFnZS13cmFwcGVyIGltZyB7IG1heC1oZWlnaHQ6MjUwcHg7IH0gLmhlYWRlci1zZWN0aW9uID4gZGl2IHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLmhlYWRlci1zZWN0aW9uIC5waG9uZSB7IHdpZHRoOmF1dG87IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246cmlnaHQ7IHBhZGRpbmc6MC41cmVtIDA7IH0gLmhlYWRlci1zZWN0aW9uOm50aC1jaGlsZCgyKS5pbWFnZSB7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmhlYWRlci1zZWN0aW9uIC5waG9uZS5waG9uZV9yaWdodHsgdGV4dC1hbGlnbjpyaWdodDsgfSAuaGVhZGVyLXNlY3Rpb24gLnBob25lLnBob25lX2xlZnQgeyB0ZXh0LWFsaWduOmxlZnQ7IH0gLmhlYWRlci1zZWN0aW9uID4gLnYtY2FyZCB7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZXsgZGlzcGxheTpmbGV4OyB9IC5tdWx0aS1hZGRyZXNzLXdyYXBwZXIuZXhjZXB0aW9uU3R5bGUgLm11bHRpLWFkZHJlc3MtLXBob25leyB3aWR0aDphdXRvOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLm11bHRpLWFkZHJlc3Mtd3JhcHBlci5leGNlcHRpb25TdHlsZSAubXVsdGktYWRkcmVzcy0tcGhvbmUgaXsgZm9udC1zaXplOjAuNjI1cmVtIDsgfSAubXVsdGktYWRkcmVzcy13cmFwcGVyLmV4Y2VwdGlvblN0eWxlIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5tdWx0aS1hZGRyZXNzIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1lbmQ7IH0gLm11bHRpLWFkZHJlc3MtLXBob25lIHsgd2lkdGg6MTMzcHg7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IH0gLm11bHRpLWFkZHJlc3MgaSB7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgfSAudG9wX2JnIHRhYmxlIHRib2R5IHRkOm50aC1jaGlsZCgyKSAuaGVhZGVyLXNlY3Rpb24geyB3aWR0aDoxMDAlOyB9IC50b3BfYmcuZGl2VGFibGUgLmhlYWRlci1zZWN0aW9uOm50aC1jaGlsZCgyKSB7IHRleHQtYWxpZ246cmlnaHQ7IH0gLnRvcF9iZyB0YWJsZSB0ZCAuaGVhZGVyLXNlY3Rpb24geyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAucGhvbmUgaDJ7IGZvbnQtc2l6ZToxLjVyZW0gOyBjb2xvcjojNTI1MjUyOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5waG9uZSBoMXsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzUyNTI1MjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGhvbmUgZGl2Lm9yZ3sgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzUyNTI1MjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGhvbmVfdGV4dCB7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctbGVmdDoycHg7IHBhZGRpbmctdG9wOjJweDt9IC5waG9uZV90ZXh0IGF7IGNvbG9yOnZhcigtLWRlYWxlci1hZGRyZXNzLWNvbG9yKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWxsLWNoYW5nZTp0cmFuc2Zvcm07IHRyYW5zZm9ybS1vcmlnaW46cmlnaHQgY2VudGVyOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGVhc2U7IH0gLnBob25lX3RleHQgYTpob3ZlcnsgdHJhbnNmb3JtOnNjYWxlKDAuOTMpOyBjb2xvcjojMDA1NzljOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBhLnBob25lLWxpbmsgeyBkaXNwbGF5IDppbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgcGFkZGluZyA6MCAhaW1wb3J0YW50OyBjb2xvciA6aW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uIDpub25lOyB9IGEucGhvbmUtbGluazpob3ZlciB7IGNvbG9yOmluaGVyaXQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9ICNzbGlkZXJ7IHdpZHRoOjk2MHB4OyBtYXJnaW4tbGVmdDowcHg7IGJveC1zaGFkb3c6bm9uZTsgfSAuY2VudGVyZWQge3Bvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjUwJTsgdG9wOjUwJTt9IC51cF9tZW51eyB3aWR0aDo5NjBweDsgaGVpZ2h0OjMxcHg7IHotaW5kZXg6MTExMTsgZmxvYXQ6cmlnaHQ7d2hpdGUtc3BhY2U6bm93cmFwOyB9IC5iYW5uZXJ7IHdpZHRoOjk2MHB4OyBoZWlnaHQ6MzAxcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjJweDsgbWFyZ2luLWJvdHRvbTo2cHg7IH0gLm1lX3RvcHsgd2lkdGg6OTY3cHg7IGhlaWdodDo4cHg7IGZsb2F0OmxlZnQ7fSAubWVfYmd7IHdpZHRoOjk2N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZV9iZ19yb3UucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5tZV9kZXNje21hcmdpbjowcHg7aGVpZ2h0OmF1dG87Zm9udC1zaXplOjAuODc1cmVtIDsgb3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6NXB4IDE1cHh9IC5tZV9ib3V7IHdpZHRoOjk2N3B4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm9uZXsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjhweDt9IC50d297IHdpZHRoOjIyNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTRweDsgbWFyZ2luLXRvcDo4cHg7fSAudGhyZWV7IHdpZHRoOjIyNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTRweDsgbWFyZ2luLXRvcDo4cHg7fSAuZm91cnsgd2lkdGg6MjI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDo0cHg7IG1hcmdpbi10b3A6NHB4O30gLlZvdXN7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IGNvbG9yOiMwMDAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbToycHg7fSAuY2xhc3N7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWJvdHRvbTowcHg7IHBhZGRpbmctdG9wOjZweDt9IC5jbGFzczF7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IHRleHQtZGVjb3JhdGlvbjpub25lOyBoZWlnaHQ6MTU3cHg7IG1hcmdpbi10b3A6NnB4O30gLmJvcmRlcntib3JkZXI6MXB4IHNvbGlkICNkM2QzZDM7IHdpZHRoOjIxOHB4O30gLmJveHsgd2lkdGg6NzVweDsgaGVpZ2h0OjczcHg7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLXRvcDoxMHB4OyBtYXJnaW46MCBhdXRvO30gLmNhe2hlaWdodDoxNDNweDt9IC5ib3gyMjV7IHdpZHRoOjIyNXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206M3B4O30gLmJveDIyNHsgd2lkdGg6MjI1cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctYm90dG9tOjZweDt9IC5ib3gyMjN7IHdpZHRoOjIyNXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXRvcDozcHg7fSAubm9zeyB3aWR0aDo3MTBweDsgaGVpZ2h0OjEwMCU7IG1hcmdpbi10b3A6NXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4O30gLm5vc190b3B7IHdpZHRoOjcxNnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm5vc19iZ3sgd2lkdGg6NzE2cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL25vc19iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC15O30gLm5vc19ib3V7IHdpZHRoOjcxNnB4OyBoZWlnaHQ6OXB4OyBmbG9hdDpsZWZ0O30gLm5vc190ZXh0e2hlaWdodDozMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojNTc1NzU3OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuYXJvd3sgd2lkdGg6Njk1cHg7IGhlaWdodDoxNjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NHB4O30gLmNvbnsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzNjM2MzYzt9IC5kZXNjIHttYXgtd2lkdGg6MTAwJTt9IC5kZXNjX2JnIHt3aWR0aDoxMDAlOyBoZWlnaHQ6MjQ4cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL25vc19iZy5wbmciKSByZXBlYXQteSBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7fSAuYWRkcnttYXJnaW4tdG9wOjI1cHg7fSAuYWRkcl9taWR7YmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZV9iZ19yb3UucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5oaWRkZW57ZGlzcGxheTpub25lICFpbXBvcnRhbnQ7fSAuaG91cnNfcmVtIHsgdGV4dC1hbGlnbjpyaWdodDtsaW5lLWhlaWdodDoxOHB4OyBmbG9hdDpyaWdodDtwYWRkaW5nLXJpZ2h0OjE1cHg7IH0gLmhvdXJzX3JlbSBheyBmb250LXNpemU6MC42ODhyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAjbHt3aWR0aDo2MHB4OyBmbG9hdDpsZWZ0O30gLmRlcnt3aWR0aDo0NjBweDsgaGVpZ2h0OjI1NXB4OyBtYXJnaW4tdG9wOjFweDsgZmxvYXQ6bGVmdDt9IC5kZXJfdG9weyB3aWR0aDo0NjRweDsgaGVpZ2h0OjhweDsgZmxvYXQ6bGVmdDt9IC5kZXJfYmd7IHdpZHRoOjQ0NHB4OyBoZWlnaHQ6MjI2cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGVyX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6NnB4IDEwcHggMTBweCAxMHB4O30gLmRlcl9ib3V7IHdpZHRoOjQ2NHB4OyBoZWlnaHQ6OHB4OyBmbG9hdDpsZWZ0O30gLmRlbXt3aWR0aDo0OTVweDsgaGVpZ2h0OjI1NXB4OyBtYXJnaW4tdG9wOjNweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6NXB4O21hcmdpbi1ib3R0b206NnB4O30gLnNib3gxeyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuc2JveDJ7IHdpZHRoOjI0MHB4OyBoZWlnaHQ6MTIzcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCA1cHggMTBweCA1cHh9IC5zYm94M3sgd2lkdGg6MjQwcHg7IGhlaWdodDoxMjNweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowIDVweCAxMHB4IDVweH0gLnNib3g0eyB3aWR0aDoyNDBweDsgaGVpZ2h0OjEyM3B4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgNXB4IDEwcHggNXB4fSAuYm90dG9tNGJveGVze2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJTtwYWRkaW5nOjA7ZGlzcGxheTpmbGV4O2p1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuO30gLmJvdHRvbTRib3hlcyAqIHtib3gtc2l6aW5nOmJvcmRlci1ib3g7fSAuYm90dG9tNGJveGVzID4gLmJveDI0NXtmbG9hdDpsZWZ0O3dpZHRoOjI1JTttYXgtd2lkdGg6MjQ1cHg7fSAuYm90dG9tNGJveGVzID4gLmJveDI0MXtmbG9hdDpsZWZ0O21hcmdpbjoxMHB4IDZweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxOmZpcnN0LWNoaWxke21hcmdpbi1sZWZ0OjBweDt9IC5ib3R0b200Ym94ZXMgPiAuYm94MjQxOmxhc3QtY2hpbGR7bWFyZ2luLXJpZ2h0OjBweDt9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLmJvdHRvbTRib3hlcyB0YWJsZSB7IHBhZGRpbmc6MCAxMHB4OyB9IH0gLnNib3hVc2VkeyBmbG9hdDpsZWZ0OyB9IC5zYm94X3RvcHsgd2lkdGg6MjQ3cHg7IGhlaWdodDo1cHg7IGZsb2F0OmxlZnQ7fSAuc2JveF9iZ3sgd2lkdGg6MjQ3cHg7IGhlaWdodDoxMDdweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9zYm94X2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyO30gLnNib3hfYm91eyB3aWR0aDoyNDdweDsgaGVpZ2h0OjVweDsgZmxvYXQ6bGVmdDt9IC5kYXsgbWFyZ2luLXRvcDoxMnB4O30gLmRhMXsgbWFyZ2luLXRvcDoxMHB4OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5kYTEgaDF7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMxOTE5MTk7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpub3JtYWw7fSAuYWRkbGluZXsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IG92ZXJmbG93OmhpZGRlbjsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI3JldHVyblBvcHVwTmV4dE1vZGVseyBoZWlnaHQ6NDBweCFpbXBvcnRhbnQ7IH0gLmFkZGxpbmU6OmJlZm9yZSwgLmFkZGxpbmU6OmFmdGVyIHsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyBjb250ZW50OiIiOyBkaXNwbGF5OmlubGluZS1ibG9jazsgaGVpZ2h0OjFweDsgcG9zaXRpb246cmVsYXRpdmU7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgd2lkdGg6NTAlOyB9IC5hZGRsaW5lOmJlZm9yZSB7IHJpZ2h0OjAuNWVtOyBtYXJnaW4tbGVmdDotNTAlOyB9IC5hZGRsaW5lOmFmdGVyIHsgbGVmdDowLjVlbTsgbWFyZ2luLXJpZ2h0Oi01MCU7IH0gLnNib3gxIGEuY0xpbmssIC5zYm94MiBhLmNMaW5rLCAuc2JveDMgYS5jTGluaywgLnNib3g0IGEuY0xpbmt7IGRpc3BsYXk6YmxvY2s7IGhlaWdodDoxMDAlOyB3aWR0aDoxMDAlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuc2JveDEgYS5jTGluazpob3ZlciwgLnNib3gyIGEuY0xpbms6aG92ZXIsIC5zYm94MyBhLmNMaW5rOmhvdmVyLCAuc2JveDQgYS5jTGluazpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiwgLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1jZXJ0LCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uIC5ib3JkZXJfYm94IHsgYmFja2dyb3VuZC1jb2xvcjojZTRkY2QzOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGNvbG9yOiMwMDAwMDA7IGNvbG9yOiMwMDAwMDA7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiBhLCAuaG9tZXBhZ2UtLWJ1c2luZXNzLWRlc2NyaXB0aW9uLWNlcnQgYSB7IGNvbG9yOiMwMDAwMDA7IGNvbG9yOiMwMDAwMDA7IH0gLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbiAuYm9yZGVyX2JveCwgLmhvbWVwYWdlLS1idXNpbmVzcy1kZXNjcmlwdGlvbi1jZXJ0IC5ib3JkZXJfYm94IHsgYmFja2dyb3VuZC1jb2xvcjppbmhlcml0OyBjb2xvcjppbmhlcml0OyB9IC5ibGFja190ZXh0eyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzE5MTkxOTsgbWFyZ2luLWJvdHRvbTo0cHg7fSAuZ3JheV90ZXh0eyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMTkxOTE5O30gLmJ1dHsgZmxvYXQ6cmlnaHQ7IG1hcmdpbjowcHggMHB4IDBweCAwcHg7fSAubGluZXsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2QyZDJkMjsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1ib3R0b206NXB4O30gLnZpdnsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiNmZmY7IGNvbG9yOiMwMDAwMDA7IHRleHQtYWxpZ246anVzdGlmeTt9IC50d3sgd2lkdGg6MjYwcHg7IGhlaWdodDo0MHB4OyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDo1cHg7IHRleHQtYWxpZ246cmlnaHQ7fSAuRU5HTElTSCAudml2e3RleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7fSAuTWFpbkJveExheWVyIC52aXYgeyBtYXJnaW4tbGVmdDowOyB9IC5zb2NpYWwtc2hhcmluZ3sgd2lkdGg6MTAwJTsgY2xlYXI6Ym90aDsgZmxvYXQ6cmlnaHQ7IG1hcmdpbi10b3A6NXB4OyB9IC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWx7IGZsb2F0OnJpZ2h0OyBwYWRkaW5nLWxlZnQ6NXB4OyB9IC5zb2NpYWwtc2hhcmluZyA+IGRpdi5zb2NpYWw6bGFzdC1jaGlsZHsgcGFkZGluZy1sZWZ0OjA7IH0gLnNvY2lhbC1zaGFyaW5nID4gZGl2LnNvY2lhbDpmaXJzdC1jaGlsZHsgcGFkZGluZy1yaWdodDo1cHg7IH0gLk1haW5Cb3hMYXllciAuc29jaWFsLXNoYXJpbmcgPiBkaXYuc29jaWFsOmZpcnN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjA7IH0gI2Zvb3RlckRpdiAuYWRkLCAjZm9vdGVyRGl2IC5hZGQgYSB7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgfSAjZm9vdGVyRGl2IC5hZGQgLm9yZ3sgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgfSAucG91cnsgd2lkdGg6NzI1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLnBhZ2Vub3t3aWR0aDoyMzZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1sZWZ0OjVweDsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi10b3A6MTBweDsgfSAucGFnZW5vIHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjAgMCAxNXB4IDA7IHBhZGRpbmc6MDsgd2lkdGg6MjM2cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAucGFnZW5vIHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7ZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgd2lkdGg6MjM2cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDt9IC5wYWdlbm8gdWwgbGkgYXsgd2lkdGg6MjM3cHg7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjp2YXIoLS1mb290ZXItaXRlbXMtbGluay1jb2xvcik7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAucGFnZW5vIHVsIGxpIHNwYW4sIC5wYWdlbm8gdWwgbGkgYS5mdGl0bGV7IHdpZHRoOjIzNnB4OyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZmxvYXQ6bm9uZTsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I2ZmZjsgY29sb3I6dmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1ib3R0b206MTBweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0gLnBhZ2VubyB1bCBsaSBhLmZ0aXRsZTpob3ZlcnsgbWFyZ2luLWJvdHRvbToxMHB4O30gLnBhZ2VubyB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGNvbG9yOnZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCk7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDoxOHB4O30gLnBhZ2VubyBsaSBhLmFjdGl2ZXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBjb2xvcjojOTE5MTkxOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTpibG9jazsgbGluZS1oZWlnaHQ6MThweDt9IC5FTkdMSVNIIC5wYWdlbm8gdWwgbGkgYXt0ZXh0LXRyYW5zZm9ybTpjYXBpdGFsaXplO30gLmFkZHsgd2lkdGg6MjMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojOTE5MTkxOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOnJpZ2h0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBtYXJnaW4tdG9wOjEwcHg7bWFyZ2luLWJvdHRvbToxMHB4O30gLmNvcHl7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM5MTkxOTE7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tdG9wOjI1cHg7fSAuY29weSBheyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO2N1cnNvcjpwb2ludGVyOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojOTE5MTkxOyBmb250LXdlaWdodDpub3JtYWx9IC5jb3B5IGE6aG92ZXJ7IGNvbG9yOiNkNGQ0ZDQ7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuZm9vdGVyLWxpc3RzIGxpID4gc3BhbiB7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IH0gI2Zvb3RlcldyYXBwZXIgLnYtY2FyZC5hZGQgeyBsaW5lLWhlaWdodDppbml0aWFsOyB9ICNmb290ZXIgLmZvb3Rlci10aXRsZSB7IGZvbnQtc2l6ZTp2YXIoLS1mczQpOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wsIHZhcigtLXdoaXRlKSk7IH0gLkVOR0xJU0ggI2Zvb3RlciAuZm9vdGVyLXRpdGxlIHsgdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsgfSAjZm9vdGVyID4gLmZsZXgtYm94ID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1yaWdodDp2YXIoLS1zNSk7IH0gI2Zvb3RlciA+IC5mbGV4LWJveCA+IC5mb290ZXItbG9nb19fY29udGFpbmVyIGltZyB7IG1heC13aWR0aDoxMDAlOyBtYXgtaGVpZ2h0OjE1MHB4OyB9IC5zb2NpYWwtbWVkaWEtaWNvbnMgeyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsganVzdGlmeS1jb250ZW50OmZsZXgtZW5kOyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5kZWFsZXItYWxpZ24tbGVmdCAuc29jaWFsLW1lZGlhLWljb25zIHsgdGV4dC1hbGlnbjpsZWZ0OyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsgfSAuc29jaWFsLW1lZGlhLWljb25zIC5zb2NpYWwtaWNvbnMgeyB3aWR0aCA6YXV0bzsgaGVpZ2h0OmF1dG87IG1hcmdpbjowIDRweDsgfSAjZm9vdGVyIGEuc29jaWFsLWxpbmsgPiBzdmcgeyBoZWlnaHQ6MjJweDsgbWFyZ2luLWxlZnQ6M3B4OyB9IGhlYWRlciAuaGVhZGVyLXNvY2lhbCAjc29jaWFsX21lZGlhX2ljb25zX2RpdiA+IGEgPiBzdmcgeyBoZWlnaHQ6MjFweDsgbWFyZ2luLXRvcDo0cHg7IH0gLnNvY2lhbC1tZWRpYS1pY29ucyAuc29jaWFsLWljb25zIC5mYWIgeyBtYXJnaW4tdG9wOjA7IGZvbnQtc2l6ZSA6MS45ZW07IGNvbG9yIDp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5kaXZTcGFuLmRpdlNwYW4zID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgeyBtYXJnaW4tdG9wOjFyZW07IHRleHQtYWxpZ246cmlnaHQ7IH0gLmRlYWxlci1hbGlnbi1sZWZ0IC5mb290ZXItbG9nb19fY29udGFpbmVyIHsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5kaXZTcGFuLmRpdlNwYW4zID4gLmZvb3Rlci1sb2dvX19jb250YWluZXIgaW1nIHsgbWF4LXdpZHRoOjE4MHB4OyBtYXgtaGVpZ2h0OjEwMHB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLmhlYWRlci1zZWN0aW9uIC5waG9uZS5waG9uZV9sZWZ0IHsgcGFkZGluZy1sZWZ0OjEwcHg7IH0gI2Zvb3RlciB7IHBhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IH0gfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6OTk5cHgpIHsgI01haW5NZW51X1NFQVJDSF9CQVIgeyBkaXNwbGF5Om5vbmU7IH0gLnVwX21lbnUgdWwubmF2ID4gbGkuZmlyc3RNZW51IHsgcGFkZGluZy1sZWZ0OjEwcHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGk6bnRoLW9mLXR5cGUoMikgeyBwYWRkaW5nLXJpZ2h0OjEwcHg7IH0gLnVwX21lbnUgdWwubmF2ID4gbGk6bnRoLW9mLXR5cGUoMikgPiB1bC5zdWIgeyByaWdodDoxMHB4OyB9IC5sYW5ndWFnZUJhciBkaXY6Zmlyc3Qtb2YtdHlwZSB7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5tZW51NyAuZmluYW5jZS1tZW51LWZyZWVjcmVkaXQuY2VudGVyIHsgcmlnaHQ6LTE2MHB4ICFpbXBvcnRhbnQ7IGxlZnQ6YXV0bzsgfSAubWVudTggLmZpbmFuY2UtbWVudS1mcmVlY3JlZGl0LmNlbnRlciB7IHJpZ2h0Oi0xNjBweCAhaW1wb3J0YW50OyBsZWZ0OmF1dG87IH0gLm1lbnU1IC5maW5hbmNlLW1lbnUtZnJlZWNyZWRpdC5jZW50ZXIgeyByaWdodDotMzAwcHggIWltcG9ydGFudDsgbGVmdDphdXRvOyB9IH0gLmRpdlNwYW4ucGFnZW5vIHsgbWFyZ2luLWxlZnQ6MDsgfSAuZGl2U3Bhbi5wYWdlbm8gdWwgbGkgc3BhbiwgLmRpdlNwYW4ucGFnZW5vIHVsIGxpIGEuZnRpdGxlIHsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWF4LXdpZHRoOjIyNXB4OyB9IC5kaXZTcGFuLnBhZ2VubyB1bCBsaSBhIHsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAuYWRyIHsgbGluZS1oZWlnaHQ6MS4ycmVtOyBtYXJnaW46MC41cmVtIDA7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZm9vdGVyLXRpdGxlX19jb250YWluZXIgeyBtYXJnaW4tYm90dG9tOjJyZW07IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuZGl2U3BhbjMgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjE1cHg7IHBhZGRpbmctcmlnaHQ6MzBweDsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLWxlZnQgLmRpdlNwYW45IHsgZmxvYXQ6cmlnaHQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tbGVmdCAuc29jaWFsLXNoYXJpbmcgeyBmbG9hdDp1bnNldDsgY2xlYXI6dW5zZXQ7IG1hcmdpbjowOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLWxlZnQgLnNvY2lhbCB7IGZsb2F0OmxlZnQ7IH0gI2Zvb3Rlci5kZWFsZXItcG9zaXRpb24tcmlnaHQuZGVhbGVyLWFsaWduLWxlZnQgLnNvY2lhbC1zaGFyaW5nIHsgd2lkdGg6MjUlOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6NzUlOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLXJpZ2h0LmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWwgeyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDoxcmVtOyB9ICNmb290ZXIuZGVhbGVyLXBvc2l0aW9uLXJpZ2h0LmRlYWxlci1hbGlnbi1sZWZ0IC5zb2NpYWw6Zmlyc3QtY2hpbGQgeyBtYXJnaW46MDsgcGFkZGluZzowOyB9ICNmb290ZXIgLmljb24tdGV4dHsgbWFyZ2luLWJvdHRvbTouNHJlbTsgfSAjZm9vdGVyIC5pY29uLXRleHQgc3Bhbnsgd2lkdGg6MjBweDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gI2Zvb3RlciAuZm4ub3JnIHsgbGluZS1oZWlnaHQ6Mi4wNjI1cmVtOyB9IC5zbWFsbHBpY19ib3h7d2lkdGg6MzI5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MDt9IC5zbWFsbHBpYzQze3dpZHRoOjQzcHg7IGhlaWdodDozMXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MCA1cHggMCAwOyBib3JkZXI6MnB4IHNvbGlkICNGRkZGRkY7fSAuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgZGlzcGxheTpibG9jazsgfSBhLmRldGFpbHN7d2lkdGg6ODFweDsgaGVpZ2h0OjMwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZGV0YWlscy5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IGE6aG92ZXIuZGV0YWlsc3t3aWR0aDo4MXB4OyBoZWlnaHQ6MzBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kZXRhaWxzLnBuZykgbGVmdCAtMzJweCBuby1yZXBlYXQ7fSAuYmlnX3BpY2JveHttaW4taGVpZ2h0OjExMHB4O3dpZHRoOjE0NnB4O30gLmJpZ19waWNib3ggaW1neyBkaXNwbGF5OmJsb2NrOyB9IC5waWNib3hfdmlkZW9idG5fZW4sIC5waWNib3hfdmlkZW9idG5fZnIge2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjQ1cHg7fSAucGljYm94X3ZpZGVvYnRuX2VuIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZW4ucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2ZyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZnIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2VuOmhvdmVyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZW5faG92ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAucGljYm94X3ZpZGVvYnRuX2ZyOmhvdmVyIHtiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy92aWRlby1idG4tdGh1bWJfZnJfaG92ZXIucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDAgLyAxMDAlIGF1dG8gdHJhbnNwYXJlbnQ7fSAuYmlnX3BpY2JveF93cmFwcGVyIHsgd2lkdGg6MTQ2cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDEwcHggMHB4IDIxcHg7IH0gLnRleHRfdGl0bGUgYXsgZGlzcGxheTpibG9jazt0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6MzI5cHg7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZy1ib3R0b206NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxOyBmb250LXdlaWdodDpib2xkO30gLnRleHRfdGl0bGUye3dpZHRoOjMyOXB4OyBoZWlnaHQ6MzJweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDE0MTQxO30gLnNvbGRfY2FyX25vdGV7YmFja2dyb3VuZC1jb2xvcjojMUUxRTFFOyBib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgY29sb3I6I0ZGRjsgd2lkdGg6MTAwJTsgcGFkZGluZzoxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjE1cHg7fSAuc29sZF9jYXJfbm90ZSBhIHtjb2xvcjojRkZGO30gLnNvbGRfY2FyX25vdGUgYTpob3ZlciB7Y29sb3I6I0JCQjt9IC50ZXh0X3RpdGxlM3t3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDsgcGFkZGluZy1ib3R0b206N3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNDg0ODQ4O30gLnRleHRfYm94Mnt3aWR0aDozMjlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDBweCAwcHggMHB4OyB9IC5tYWluX3BpY2JveHt3aWR0aDo2NzFweDsgbWluLWhlaWdodDoxNzBweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lLnBuZykgbGVmdCBib3R0b20gcmVwZWF0LXg7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjA7IG1hcmdpbjowIDt9IC5ib3gyX2RldGFpbHNfZm9vdGVyMnt3aWR0aDo2ODFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X2Zvb3Rlci5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDt9IC5ib3gyX2RldGFpbHNfbWlkRXh7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGJhY2tncm91bmQ6bm9uZTsgcGFkZGluZzowIDBweDtoZWlnaHQ6ODVweDt9IC5ib3gyX2RldGFpbHNfdGV4dCBzcGFueyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gyX2RldGFpbHNfZm9vdGVyMjJ7d2lkdGg6OTcxcHg7IGhlaWdodDoxNXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveF9mb290ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7YmFja2dyb3VuZC1zaXplOjk3MXB4IGF1dG87fSAuYm94MTcwe3Bvc2l0aW9uOnJlbGF0aXZlO3dpZHRoOjY3MXB4OyBtaW4taGVpZ2h0OjE3MHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUucG5nKSBsZWZ0IGJvdHRvbSBuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246Ym90dG9tOyBwYWRkaW5nOjA7IG1hcmdpbjowIDBweCAxMHB4IDA7fSAuY3VzdG9tQm94QmFzaWN7IHdpZHRoOjI0MXB4OyBoZWlnaHQ6MTE2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDAgMCAwOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgdG9wOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZToyNDFweCAxMjFweDsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6IzE5MTkxOTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY3Vyc29yOnBvaW50ZXI7IH0gLmN1c3RvbUJveEJhc2ljOmhvdmVyeyBjb2xvcjojZmZmOyB9IC5jdXN0b201IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMl9ob3Zlci5wbmcpOyB9IC5jdXN0b201NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjIucG5nKTsgfSAuY3VzdG9tNjY1IHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3gyM19ob3Zlci5wbmcpOyB9IC5jdXN0b202NjU1IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ib3gyMy5wbmcpOyB9IC5jdXN0b202NzUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDI3LnBuZyk7IH0gLmN1c3RvbTY3NTUgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2JveDI3X2hvdmVyLnBuZyk7IH0gLmN1c3RvbTY4NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjgucG5nKTsgfSAuY3VzdG9tNjg1NSB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYm94MjhfaG92ZXIucG5nKTsgfSAuaW1hZ2VfcmliYm9uIHsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6LTVweDsgdG9wOi00cHg7IHotaW5kZXg6MTsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxMTJweDsgaGVpZ2h0OjExMnB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5pbWFnZV9yaWJib24gc3BhbiB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNmZmZmZmY7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyOHB4OyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyB3aWR0aDoxNDhweDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojMDAyYzVmOyBib3gtc2hhZG93OjAgM3B4IDEwcHggLTVweCByZ2JhKDAsIDAsIDAsIDEpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjMwcHg7IGxlZnQ6LTMwcHg7IH0gLmltYWdlX3JpYmJvbiBzcGFuOjpiZWZvcmUgeyBjb250ZW50OiIiOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowcHg7IHRvcDoxMDAlOyB6LWluZGV4Oi0xOyBib3JkZXItbGVmdDozcHggc29saWQgIzAwMmM1ZjsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICMwMDJjNWY7IH0gLmltYWdlX3JpYmJvbiBzcGFuOjphZnRlciB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowcHg7IHRvcDoxMDAlOyB6LWluZGV4Oi0xOyBib3JkZXItbGVmdDozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDozcHggc29saWQgIzAwMmM1ZjsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICMwMDJjNWY7IH0gLmltYWdlX3JpYmJvbl92ZHAgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDotNXB4OyB0b3A6LTZweDsgb3ZlcmZsb3c6aGlkZGVuOyB3aWR0aDoxOTRweDsgaGVpZ2h0OjE5NHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB6LWluZGV4OjQwOyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW4geyBmb250LXNpemU6MS4wNjNyZW0gOyBjb2xvcjojZmZmZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzZweDsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgd2lkdGg6MjczcHg7IGRpc3BsYXk6YmxvY2s7IGJhY2tncm91bmQ6IzAwMmM1ZjsgYm94LXNoYWRvdzowIDNweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAxKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo2N3B4OyBsZWZ0Oi01MXB4OyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjZTRkY2QzOzsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICNlNGRjZDM7OyB9IC5pbWFnZV9yaWJib25fdmRwIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjZTRkY2QzOzsgYm9yZGVyLWJvdHRvbTozcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6M3B4IHNvbGlkICNlNGRjZDM7OyB9IC5yaWJib24tY29udGFpbmVyIHsgd2lkdGggOjMwMHB4OyBoZWlnaHQgOjMwMHB4OyBvdmVyZmxvdyA6aGlkZGVuOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbGVmdCA6MDsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbiB7IHotaW5kZXggOjU1NTsgbWFyZ2luIDowOyBwYWRkaW5nIDowLjVyZW0gMCAhaW1wb3J0YW50OyBib3gtc2hhZG93IDowIDNweCAxMHB4IC01cHggcmdiYSgwLCAwLCAwLCAxKTsgZm9udC1zaXplIDoxN3B4OyBsaW5lLWhlaWdodCA6MjNweDsgdGV4dC1hbGlnbiA6Y2VudGVyOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbGVmdCA6MDsgdHJhbnNmb3JtIDp0cmFuc2xhdGVYKC0zMCUpIHRyYW5zbGF0ZVkoMCUpIHJvdGF0ZSgtNDVkZWcpOyB0cmFuc2Zvcm0tb3JpZ2luIDp0b3AgcmlnaHQ7IGJhY2tncm91bmQgOiMwMDdmYTU7IGNvbG9yIDojZmZmZmZmOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSwgLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YWZ0ZXIgeyBjb250ZW50IDoiIjsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IG1hcmdpbiA6MCAtMXB4OyB3aWR0aCA6MTAwJTsgaGVpZ2h0IDoxMDAlOyBiYWNrZ3JvdW5kIDojMDA3ZmE1OyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSB7IGxlZnQ6MTAwJTsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IHJpZ2h0OjEwMCU7IH0gLnNlYXJjaHJpZ2h0IHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmb250LXNpemU6MS4xODhyZW0gOyBjb2xvcjojMTkxOTE5OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6bm9ybWFsO2N1cnNvcjpwb2ludGVyOyB9IC5zZWFyY2hyaWdodGhvdmVyIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0LXNlYXJjaC1ib3gtaG92ZXIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgZm9udC1zaXplOjEuMTg4cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY3Vyc29yOnBvaW50ZXI7IH0gLnNlYXJjaHJpZ2h0WFhYIHsgd2lkdGg6MjgwcHg7IGhlaWdodDoxMTZweDsgcGFkZGluZzo1cHggMCAwIDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHQtc2VhcmNoLWJveC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdCAjMTc2MWZhOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDtjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSAuc2VhcmNocmlnaHRob3ZlclhYWCB7IHdpZHRoOjI4MHB4OyBoZWlnaHQ6MTE2cHg7IHBhZGRpbmc6NXB4IDAgMCAwOyBtYXJnaW46MCAwIDAgMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodC1zZWFyY2gtYm94LWhvdmVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0ICMxNzYxZmE7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXJhZGl1czo4cHg7IC1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSAuc2VhcmNocmlnaHQtdGV4dHsgbWFyZ2luLWxlZnQ6MTAwcHg7IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6NjAlOyB9IC5zZWFyY2hyaWdodC10ZXh0IHB7IG1hcmdpbjoxNXB4IDAgMDsgfSAucGFnZW5vMntoZWlnaHQ6MjRweDsgfSAucGFnZW5vMiB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLnBhZ2VubzIgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTppbmxpbmU7fSAucGFnZW5vMiB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojYjNiNGI1OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLnBhZ2VubzIgdWwgbGkgYTpob3ZlcnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6IzI4MjgyODsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjRweDt9IC5wYWdlbm8yIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojMjgyODI4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLm1haW5fYm94e3dpZHRoOjk2MHB4OyBtYXJnaW46MCBhdXRvO30gLm1haW5fbGVmdF9ib3h7d2lkdGg6NjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O3BhZGRpbmctcmlnaHQ6MTBweDt9IC5tYWluX2xlZnRfYm94IHVse3BhZGRpbmc6MHB4O30gLmJveF9taWRfcm91bmQgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyNTUsMjU1LDI1NSk7IC1tcy1maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhKE9wYWNpdHk9MTAwKTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzpub25lOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLXRvcDoxMHB4OyB9IC5ib3hfdG9wX3JvdW5kIHsgZGlzcGxheTpub25lOyB9IC5ib3gyX2RldGFpbHNfZm9vdGVyMiB7IGRpc3BsYXk6bm9uZTsgfSAuZGV0YWlsc19ib3ggaW1nLnZpcHsgbWFyZ2luLXRvcDotNDhweDsgd2lkdGg6MTQwcHg7IGJvcmRlcjoxcHg7IGJvcmRlci1yYWRpdXM6NHB4OyB9IC5ib3hfdG9wX3JvdW5kMnt3aWR0aDo5NzFweDsgaGVpZ2h0OjE1cHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94X3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzsgbWFyZ2luLXRvcDo1cHg7fSAuYm94X21pZF9yb3VuZDJ7d2lkdGg6OTcxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JveF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTtiYWNrZ3JvdW5kLXNpemU6OTcxcHggYXV0bzsgcGFkZGluZzowIDVweDt9IC5wYWdlX25hbWV7d2lkdGg6NjUwcHg7IGhlaWdodDozMHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAwcHggMjFweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5wYWdlX25hbWUgYXsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzQxNDE0MTsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucGFnZV9uYW1lIGE6aG92ZXJ7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWM7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fSB0YWJsZS52ZWhpY2xlTGlzdFRhYmxlIGF7ZGlzcGxheTp0YWJsZS1jZWxsOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7bGluZS1oZWlnaHQ6MS4yO30gdGFibGUudmVoaWNsZUxpc3RUYWJsZSBhOmhvdmVye2Rpc3BsYXk6dGFibGUtY2VsbDsgdmVydGljYWwtYWxpZ246bWlkZGxlO2xpbmUtaGVpZ2h0OjEuMjt9IC5Qb3JzY2hlMnt3aWR0aDoxMDAlO2hlaWdodDozMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDIwcHggMjFweDsgbWFyZ2luOjE1cHggMCAyNXB4IDA7IGxpbmUtaGVpZ2h0OjMxcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7ZGlzcGxheTppbmxpbmV9IC5Qb3JzY2hlMiBoMXtmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAuVHJpZXJwYXJ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzVCNjk5QzsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo1cHg7fSAuc2VsZWN0ZWRfYm94Mnt3aWR0aDoxNzVweDsgaGVpZ2h0OjMxcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbWFyZ2luOjE1cHggMDsgbGluZS1oZWlnaHQ6MzFweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTt9IC5zZWxlY3RlZF9vcmRlcmJ5e3dpZHRoOjEzNXB4OyBmbG9hdDpyaWdodDsgcGFkZGluZzowIDBweCAwcHggMHB4OyBtYXJnaW46MTBweCAxMHB4IDBweCAwcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiM0MTQxNDE7fSAucHJpeHt3aWR0aDo3OXB4OyBoZWlnaHQ6NzhweDsgZmxvYXQ6bGVmdDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTE7IG1hcmdpbi10b3A6LTRweDsgbWFyZ2luLWxlZnQ6LTRweDsgdG9wOjBweDt9IC5wYWdlbm81e3dpZHRoOjEwMCU7IGhlaWdodDoyNHB4OyBtYXJnaW46MzBweCAwIDIwcHggMHB4OyBwYWRkaW5nOjA7IGZsb2F0OmxlZnQgfSAucGFnZW5vNnt3aWR0aDoyNTRweDsgaGVpZ2h0OjI0cHg7IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246cmlnaHQ7fSAuc3VpdmFudHt3aWR0aDoyODBweDsgaGVpZ2h0OjE5cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjVweDt9IC5tYWluX3JpZ2h0X2JveHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7fSAuYm94N3t3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5ib3g3TGlua3t3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5ib3g3X21pZHt3aWR0aDoyODBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MCAycHg7fSAuYm94N19taWRfZnVsbHt3aWR0aDo5NTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6bm9uZSBsZWZ0IHRvcCBuby1yZXBlYXQgMCAwIHRyYW5zcGFyZW50OyBwYWRkaW5nOjAgMnB4IDE1cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNCQkI7fSAuc2ltdWxhcl92X2JveHsgd2lkdGg6MjY1cHg7IHBhZGRpbmc6MHB4IDBweCA1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJveFNlYXJjaE5ld3N7bWFyZ2luLXRvcDotM3B4O21hcmdpbi1sZWZ0Oi01cHg7d2lkdGg6Mjg1cHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X3RvcF8yODAucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94U2VhcmNoTmV3c19taWR7bWFyZ2luLWxlZnQ6LTVweDtwYWRkaW5nOjBweDt3aWR0aDoyODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfbWlkXzI4MC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyB9IC5ib3hTZWFyY2hOZXdzX2Zvb3RlcjE1e21hcmdpbi1sZWZ0Oi01cHg7d2lkdGg6Mjg1cHg7IGhlaWdodDoxMnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xlZnRfYm94X2Zvb3Rlcl8yODAucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuYm94N0hfbWlke3dpZHRoOjI4MHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWJvdHRvbTo2cHg7fSAuUmVjaGVyY2hlMjJ7aGVpZ2h0OjIwcHg7IHBhZGRpbmc6MTBweCA3cHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwMDAwMDA7fSAuc2ltVGl0bGV7aGVpZ2h0OmF1dG87IHBhZGRpbmc6MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmJveDh7d2lkdGg6MjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDEwcHg7fSAuYm94OXt3aWR0aDoyMHB4OyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmJveDExe3dpZHRoOjEwMHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDoxOHB4O30gLmJveDEye3dpZHRoOjEzMHB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzo3cHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDoxOHB4O30gLnNlbGVjdF9ib3gxNHtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMTBweCAwcHggMHB4OyBtYXJnaW4tYm90dG9tOjNweDt9IC5zZWxlY3RfYm94MTZ7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206M3B4O30gLnNlbGVjdF9ib3gxNXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDEwcHggMHB4IDEwcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5zZWxlY3RfYm94MTE1e3dpZHRoOjExNXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDBweCAxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fSAuc2VsZWN0X2JveDgwe3dpZHRoOjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAwcHggMHB4IDBweDsgbWFyZ2luLWJvdHRvbToxMHB4O30gLmFfdGV4dHt3aWR0aDoyMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojNTc1NzU3OyBsaW5lLWhlaWdodDozMXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzowIDVweDt9IC5ham91dGVye3dpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgYmFja2dyb3VuZC1jb2xvcjojMWYxZjFmO21hcmdpbjo1cHggMCAxMHB4IDBweDt9IC5ham91dGVyX2F7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvc2VhcmNoLWRvd24tYXJyb3cucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IDNweCB0cmFuc3BhcmVudDsgcGFkZGluZy1sZWZ0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ham91dGVyX2FfZnVsbHtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9zZWFyY2gtcmlnaHQtYXJyb3cucG5nIikgbm8tcmVwZWF0IHNjcm9sbCByaWdodCAtMXB4IHRyYW5zcGFyZW50OyBwYWRkaW5nLXJpZ2h0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5ib3gxM3t3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMHB4IDEwcHg7fSAuaW5wdXRfYm94Mnt3aWR0aDoyMHB4OyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMHB4IDE0cHggMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMGYxYTFlO30gLmlucHV0X3RleHR7IHdpZHRoOjE5NXB4OyBoZWlnaHQ6MTFweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzozcHggMHB4IDdweCA1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiM1NzU3NTc7IGxpbmUtaGVpZ2h0OjE4cHg7IH0gLmJ1dHRvbl9ib3gye3dpZHRoOjI2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSAuYnV0dG9uX2JveFMyeyB3aWR0aDoyNDZweDsgaGVpZ2h0OjI5cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAzcHggMTNweCAzcHg7IH0gLmJveC1mb290ZXIxNXt3aWR0aDoyOTBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGVmdF9ib3hfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmRpc3sgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgd2lkdGg6MjQwcHg7fSAuZGlzX2N1c3RvbXsgd2lkdGg6MjQwcHg7d2lkdGg6MjQwcHg7fSAuZGlzX3RvcHsgd2lkdGg6MjQ2cHg7IGhlaWdodDo5cHg7IGZsb2F0OmxlZnQ7fSAuZGlzX3RvcF9jdXN0b217IHdpZHRoOjIzOHB4OyBoZWlnaHQ6NDBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDojY2JjYmNiO30gLmRpc19iZ3sgd2lkdGg6MjQ2cHg7IGhlaWdodDoxNTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteTt9IC5fZGlzX2JneyB3aWR0aDoyNDBweDsgaGVpZ2h0OjIwMHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMjgyODI4O30gLmRpc19iZ19jdXN0b217IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5fZGlzX2JnX2N1c3RvbXsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmRpc19ib3V7IHdpZHRoOjI0NnB4OyBoZWlnaHQ6NTBweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYm91LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLl9kaXNfYm91eyB3aWR0aDoyNDBweDsgaGVpZ2h0OjM4cHg7IGZsb2F0OmxlZnQ7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IG1hcmdpbi10b3A6MTRweDsgY29sb3I6IzJkMmQyZDs7IH0gLmRpc19ib3VfY3VzdG9teyB3aWR0aDoyMzhweDsgaGVpZ2h0OjUwcHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmctdG9wOjVweDsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojZmZmZmZmO30gLl9kaXNfYm91X2N1c3RvbXsgd2lkdGg6MjQwcHg7IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMDAwMDAwOyBib3JkZXItcmFkaXVzOjAgMCA2cHggNnB4OyBtYXJnaW4tdG9wOjEycHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAuZGlzX2JvdV8yeyB3aWR0aDoyNDZweDsgaGVpZ2h0OjlweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzJkMmQyZDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kaXNfYm91XzIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7fSAuZGlzX3RleHR7IGZvbnQtc2l6ZToxLjQzOHJlbSA7IHBhZGRpbmc6NHB4IDBweCAwcHggMTVweDt9IC5sdW5kaV90ZXh0eyBmb250LXNpemU6MC44MTNyZW0gOyBwYWRkaW5nOjJweCAwcHggMHB4IDIwcHg7IGxpbmUtaGVpZ2h0OjE0cHg7fSAubHVuZGlfdGV4dF9ob21lcGFnZV9oMjQ4e2ZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjE4cHg7IHBhZGRpbmc6MTBweCAwIDAgMjBweDsgfSAubHVuZGlfdGV4dCB0aHt0ZXh0LWFsaWduOmxlZnQ7Zm9udC13ZWlnaHQ6bm9ybWFsO3dpZHRoOjYwcHg7fSAubHVuZGlfdGV4dCB0ZHt0ZXh0LWFsaWduOmxlZnQ7fSAucHsgaGVpZ2h0OjE2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6N3B4IDVweCAwcHggMTBweDsgZm9udC1zaXplOjAuODEzcmVtIDt9IC5leyBoZWlnaHQ6MTZweDsgZmxvYXQ6cmlnaHQ7IHBhZGRpbmc6N3B4IDBweCAwcHggMHB4OyBmb250LXNpemU6MC44NzVyZW0gO30gLmJveDI4OCwgLmJveDI4OF9jdXN0b217d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB9IC5fYm94Mjg4LCAuX2JveDI4OF9jdXN0b217d2lkdGg6MjgwcHg7IGZsb2F0OmxlZnQ7IH0gLmJveDI4OFVzZWR7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tbGVmdDowcHg7fSAuYm94Mjg4TmV3e3dpZHRoOjI4MHB4OyBmbG9hdDpsZWZ0OyB9IC5ib3gyODhOZXdfY3VzdG9te2Zsb2F0OmxlZnQ7fSAuYm94Mjg4TmV3UU0sIC5ib3gyODhOZXdRTV9tb2JpbGUgeyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyAtbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5BbHBoYShPcGFjaXR5PTEwMCk7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYm94LXNoYWRvdzpub25lOyBjbGVhcjpib3RoOyBmbG9hdDpsZWZ0OyB3aWR0aDoyODBweDsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gLmJveDI4OE5ld1FNX21vYmlsZSB7IHdpZHRoOjEwMCU7IH0gLmJveDI4OE5ld1FNX21vYmlsZSAuUmVjaGVyY2hlMjIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIHRhYmxlIHsgd2lkdGg6MTAwJTsgfSAuYm94Mjg4TmV3UU1fbW9iaWxlIC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IC5ib3gyODhOZXdRTV9tb2JpbGUgLmpxVHJhbnNmb3JtSW5wdXRXcmFwcGVyIGlucHV0IHsgd2lkdGg6OTUlIWltcG9ydGFudDsgfSAuYm94Mjg4UU17IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjVweDsgZm9udC1zaXplOjAuODc1cmVtIDtmb250LXdlaWdodDpub3JtYWw7fSAuYm94Mjg4UU1fY3VzdG9te3dpZHRoOjI3OHB4O21hcmdpbjo1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBvdmVyZmxvdzpoaWRkZW47Ym9yZGVyLXJhZGl1czo2cHg7Ym94LXNoYWRvdzowIDAgNHB4ICMzMzM7fSAudGV4dEFyZWFRTXsgZm9udC1zaXplOjAuODEzcmVtIDtsaW5lLWhlaWdodDoxNXB4O30gLmJveDI4OF90b3B7d2lkdGg6Mjg4cHg7IGhlaWdodDoxNHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfdG9wLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBtYXJnaW4tdG9wOjBweDt9IC5ib3gyODhfdG9wX2N1c3RvbXt3aWR0aDoyNzhweDsgaGVpZ2h0OjQwcHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQ6I2NiY2JjYjt9IC5fYm94Mjg4UU17IHdpZHRoOjI4MHB4OyB9IC5fYm94Mjg4X3RvcHt9IC5fYm94Mjg4X3RvcF9jdXN0b217IGhlaWdodDo0MHB4OyBmbG9hdDpsZWZ0OyBXaWR0aDoxMDAlOyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGJvcmRlci1yYWRpdXM6NnB4IDZweCAwIDA7IH0gLl9ib3gyODgwX21pZHt9IC5fYm94Mjg4MF9taWRfY3VzdG9te2JhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTt9IC5ib3gyODhfbWlkeyBib3gtc2hhZG93OjAgMCA1cHggIzMzMzMzMzsgYm9yZGVyLXJhZGl1czo1cHg7IG1hcmdpbi10b3A6NXB4OyBtYXJnaW4tbGVmdDo1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMyODI4Mjg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgfSAuYm94Mjg4X21pZF9jdXN0b217IGJveC1zaGFkb3c6MCAwIDVweCAjMzMzMzMzOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLXRvcDo1cHg7IG1hcmdpbi1sZWZ0OjVweDsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpO30gLmJveDI4ODBfbWlke3dpZHRoOjI1OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgY29sb3I6IzI4MjgyODsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgMTVweCAwcHggMTVweDt9IC5ib3gyODgwX21pZF9jdXN0b217d2lkdGg6MjI4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjVweCAyNXB4OyBjb2xvcjojMjgyODI4OyBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMSk7fSAuYm94MjY5X21pZHt3aWR0aDoyNThweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcmlnaHRfYm94NF9taWQucG5nKSBsZWZ0IHRvcCByZXBlYXQteTsgcGFkZGluZzowIDE1cHggMHB4IDE1cHg7fSAuem9vbTIye3dpZHRoOjI1OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuc2VhcmNoX3JpZ2h0IHtiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3NlYXJjaC5wbmcpIDAgMCBuby1yZXBlYXQ7IHdpZHRoOjI3OHB4OyBoZWlnaHQ6MTExcHg7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjo1cHggNXB4IDVweCA1cHh9IC5EZW1hbmRlMjJ7d2lkdGg6Mjc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgbGluZS1oZWlnaHQ6MjZweDsgbWFyZ2luLXRvcDo2N3B4O30gLkRlbWFuZGUyMiBheyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgbGluZS1oZWlnaHQ6MjBweCA7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLkRlbWFuZGUyMiBhOmhvdmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzlhMDEwMTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9IC5EZW1hbmRlMjIgc3BhbiBheyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI5MjkyOTsgbGluZS1oZWlnaHQ6MjBweCA7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLkRlbWFuZGUyMiBzcGFuIGE6aG92ZXJ7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjkyOTI5OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO30gLmJveDI4OF9mb290ZXJ7d2lkdGg6Mjg4cHg7IGhlaWdodDoxNHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXJfcXN7d2lkdGg6Mjg4cHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXJfcXN7d2lkdGg6Mjg4cHg7IGhlaWdodDoxMXB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0O30gLmJveDI4OF9mb290ZXI1NXsgd2lkdGg6MjgwcHg7IGhlaWdodDo1MHB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMmQyZDJkOyBiYWNrZ3JvdW5kLWNvbG9yOiNDQkNCQ0I7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IH0gLmJveDI4OF9mb290ZXI1NV9jdXN0b217IHdpZHRoOjI4MHB4OyBoZWlnaHQ6MzVweDsgcGFkZGluZy10b3A6NXB4OyBmbG9hdDpsZWZ0OyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGJvcmRlci1yYWRpdXM6MCAwIDZweCA2cHg7IH0gLnAgYXt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5nYXAxMHt3aWR0aDoyMzBweDsgaGVpZ2h0OjEwcHg7IGZsb2F0OmxlZnQ7fSAucGFnZV9uYW1lMnt3aWR0aDo2NTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwIDIwcHggMDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNjI1cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWx9IC5wYWdlX25hbWUzeyB3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDEwcHggMTBweCAxMHB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI0MjQyNDt9IC5wYWdlX25hbWUzIGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMjQyNDI0O2ZvbnQtd2VpZ2h0Om5vcm1hbH0gLnBhZ2VfbmFtZTR7d2lkdGg6NjUwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAxMHB4IDIxcHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMwMTRGODA7fSAucGFnZV9uYW1lNCBoMnsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOnJnYigyMjgsMjIwLDIxMSk7Zm9udC13ZWlnaHQ6bm9ybWFsfSAucGFnZV9uYW1lNXt3aWR0aDoxMDAlO2hlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Noby5wbmcpIGNlbnRlciBib3R0b20gbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgcGFkZGluZzowIDBweCAxMHB4IDA7IG1hcmdpbi1ib3R0b206MTVweDsgbGluZS1oZWlnaHQ6MzBweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyNDI0MjQ7Zm9udC13ZWlnaHQ6bm9ybWFsIH0gI3NlYXJjaENvbnRhaW5lclBhcmVudCAucGFnZV9uYW1lNTpub3QoOmZpcnN0LWNoaWxkKSB7IG1hcmdpbi10b3A6MzBweDsgfSAuYm94Ml90ZXh0e2hlaWdodDphdXRvOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5ib3gyX3RleHQgcHsgbGluZS1oZWlnaHQ6MThweDsgZm9udC1zaXplOjAuODc1cmVtIDtjb2xvcjojMDAwMDAwOyBtYXJnaW4tYm90dG9tOjIwcHg7fSAucG9zaXRpdmVSYXRpbmdUeHQgcHtmb250LXNpemU6MXJlbSA7fSAucG9zaXRpdmVSYXRpbmdUeHQgaDMsIC5wb3NpdGl2ZVJhdGluZ1R4dCBoNHtmb250LXdlaWdodDpub3JtYWw7fSAucG9zaXRpdmVSYXRpbmdUeHQgLmJ0bi1kZWZhdWx0e3RleHQtdHJhbnNmb3JtOm5vbmU7fSAucG9zaXRpdmVSYXRpbmdUeHQgLmJ0bi1kZWZhdWx0e2ZvbnQtc2l6ZToxLjI1cmVtIDt9IC5ldGFwZXt3aWR0aDphdXRvOyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjIwcHg7fSAudGV4dDF7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDt9IC50ZXh0MSBhe3dpZHRoOmF1dG87IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDBweCAwcHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQzNDM0MzsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICNmM2YzZjM7IH0gLnRleHQxIGE6aG92ZXJ7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAudGV4dDEgYS5hY3RpdmV7d2lkdGg6YXV0bzsgaGVpZ2h0OjQ2cHg7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMHB4IDBweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojNDM0MzQzOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggI2YzZjNmMzsgfSAub25lMXt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6cmlnaHQ7IG1hcmdpbi1sZWZ0OjEwcHg7fSAub25lMSBhe3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfcm91bmQucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I0ZGRkZGRjsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLm9uZTEgYTpob3Zlcnt3aWR0aDo0NnB4OyBoZWlnaHQ6NDZweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy8xX2hvdmVyLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6Mi4yNXJlbSA7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjQ2cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5vbmUxIGEuYWN0aXZle3dpZHRoOjQ2cHg7IGhlaWdodDo0NnB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzLzFfaG92ZXIucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgY29sb3I6IzAwMDAwMDsgbGluZS1oZWlnaHQ6NDZweDsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLnNlbGVjdGlvbm5lent3aWR0aDphdXRvOyBoZWlnaHQ6YXV0byA7IGZsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLWxlZnQ6M3B4OyBwYWRkaW5nLXRvcDo0cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMxYTFhMWE7IGxpbmUtaGVpZ2h0OjIycHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuZm9ybXNfYm94MjJ7Ym94LXNpemluZzpib3JkZXItYm94OyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMCAxMHB4IDA7IH0gLndpdGhfYm9yZGVyIHsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7IHBhZGRpbmc6MCAxNnB4OyB9IC5QcmVub217d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzo4cHggMCAxMHB4IDA7fSAuUHJlbm9tIHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuUHJlbm9tMnt3aWR0aDozMjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDEwcHggMDt9IC5QcmVub20yIHNwYW57IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGNvbG9yOiNmZjAxMDE7fSAuUHJlbm9tM3t3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDEwcHggMDt9IC5QcmVub200e3dpZHRoOjMyMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTV7d2lkdGg6Mjc5cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzpweCAwIDEwcHggMDt9IC5QcmVub202e3dpZHRoOjIxNHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwO30gLlByZW5vbTd7d2lkdGg6MTA3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxMHB4IDA7fSAuUHJlbm9tOHt3aWR0aDoyNzlweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6cHggMCAxMHB4IDA7IGRpc3BsYXk6YmxvY2t9IC5QcmVub205e3dpZHRoOjIxNHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMCAxMHB4IDA7ZGlzcGxheTpibG9ja30gLlByZW5vbTEwe3dpZHRoOjEwN3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHggMCAxMHB4IDA7ZGlzcGxheTpibG9ja30gLnRleHQxNXt3aWR0aDoyODVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxNnt3aWR0aDoxNzJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxN3t3aWR0aDoxMTJweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxOHt3aWR0aDoyODVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjhweCAwIDNweCAwO30gLnRleHQxNSBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyBjb2xvcjojZmYwMTAxO30gLmJ1dHRvbjV7d2lkdGg6Mjg1cHg7IG1hcmdpbi1ib3R0b206MzBweDsgbWFyZ2luLXRvcDo3MHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5ib3hfZGF0ZXt3aWR0aDoxNjdweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nLXRvcDoxcHg7IG1hcmdpbi1yaWdodDo1cHg7fSAuYm94X2RhdGUye3dpZHRoOjEwN3B4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3hfZGF0ZTN7d2lkdGg6ODBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NXB4O30gc3Bhbi5hc3RreyBjb2xvcjojRkYwMTAxO2ZvbnQtc2l6ZTowLjY4OHJlbSA7ZmxvYXQ6bGVmdDtwYWRkaW5nLXJpZ2h0OjNweDsgfSAuYm94NjF7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6YmxvY2s7IGNsZWFyOmJvdGg7IH0gLmJveDYxNjZ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjEwcHg7IH0gLlBvbGl0aXF1ZXt3aWR0aDphdXRvOyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHBhZGRpbmc6MCAycHggMHB4IDJweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkNTlhZjsgbGluZS1oZWlnaHQ6MjJweDsgfSAuUG9saXRpcXVlIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZDU5YWY7IGxpbmUtaGVpZ2h0OjI0cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjNmI5MWJkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lMy5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTt9IC5Qb2xpdGlxdWUgYTpob3ZlcnsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgbGluZS1oZWlnaHQ6MjRweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saW5lNC5wbmcpIGJvdHRvbSBsZWZ0IHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMyNDI0MjQ7fSAudGV4dDE1NXt3aWR0aDoyODVweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAwIDNweCAwO30gLnRleHQxNTVjaGt7aGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgOyBwYWRkaW5nOjBweCAxMHB4IDEwcHggMTVweDt0ZXh0LWFsaWduOmxlZnQ7fSAuVmV1aWxsZXp7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE3cHggMDsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWx9IC5WZXVpbGxleiBzcGFue3RleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzI0MjQyNDsgbGluZS1oZWlnaHQ6MjJweDt9IC5WZXVpbGxleiBzcGFuIGF7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OnJpZ2h0OyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWJvdHRvbToycHggc29saWQgIzI0MjQyNDsgZGlzcGxheTpibG9ja30gLlZldWlsbGV6IHNwYW4gYTpob3ZlcnsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNDQ2ZjsgZmxvYXQ6cmlnaHQ7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjMDA0NDZmOyBkaXNwbGF5OmJsb2NrO30gLkh5cG90aGVxdWV7d2lkdGg6MTk1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowOyBsaW5lLWhlaWdodDo1MHB4O30gLkh5cG90aGVxdWUyMnt3aWR0aDoyMjRweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLkh5cG90aGVxdWUzM3t3aWR0aDo1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTBweCAwOyBsaW5lLWhlaWdodDozNXB4O30gLmNpdmlxdWV7d2lkdGg6MTMwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5SdWV7d2lkdGg6MjkwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5BcHB7d2lkdGg6MTgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAzcHggMDt9IC5mb3JtczEwMHt3aWR0aDoxMzBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmbG9hdDpsZWZ0O30gLmZvcm1zMTAxe3dpZHRoOjI5MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnQ7fSAuZm9ybXMxMDJ7d2lkdGg6MTgwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgZmxvYXQ6bGVmdDt9IC5WaWxsZXsgd2lkdGg6MjcwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0IDsgcGFkZGluZzowcHggMCAxM3B4IDA7fSAuUHJvdmluY2V7IHdpZHRoOjE1MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTNweCAwO30gLkNvZGV7IHdpZHRoOjE2MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgMTNweCAwO30gLmZvcm1zMTAzeyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOjBweDsgfSAuZm9ybXMxMDR7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyB9IC5mb3JtczEwNXsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDowcHg7IH0gLmZvcm1zMTA2eyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjEwcHg7IGZsb2F0OmxlZnR9IC5UeXBle3dpZHRoOjIwMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7IHBhZGRpbmc6MHB4IDAgM3B4IDA7fSAuYm94NjAwe3dpZHRoOjYwMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgcGFkZGluZy1ib3R0b206MjBweDsgbWFyZ2luLXJpZ2h0OjBweDt9IC5EZW1hbmRlNTV7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjQwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTY2e21hcmdpbjoxNXB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY2FsMi5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgcGFkZGluZzowIDAgMCA2MnB4OyBsaW5lLWhlaWdodDoyMHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojMTkxOTE5OyBmb250LXdlaWdodDpib2xkO30gLkRlbWFuZGU3N3ttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL20ucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6NDBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5EZW1hbmRlODh7bWFyZ2luOjE1cHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9mLnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBwYWRkaW5nOjAgMCAwIDYycHg7IGxpbmUtaGVpZ2h0OjIwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMxOTE5MTk7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuRGVtYW5kZTg4N3ttYXJnaW46MTVweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2YucG5nKSAxMHB4IHRvcCBuby1yZXBlYXQ7IHBhZGRpbmc6MCAwIDAgNjJweDsgbGluZS1oZWlnaHQ6MjBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzE5MTkxOTsgZm9udC13ZWlnaHQ6Ym9sZDt9IC5ib3gyX3RleHQye3dpZHRoOjY0OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxMHB4IDBweCAxNXB4IDIzcHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7fSAuYm94X2JyYW5ke3dpZHRoOjY0OHB4OyBmbG9hdDpsZWZ0O3BhZGRpbmc6MjBweCAwcHggMTVweCAwcHg7IGxpbmUtaGVpZ2h0OjE4cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dDN7d2lkdGg6NjYxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMHB4IDEwcHggMTBweDsgbWFyZ2luLXRvcDoxNXB4OyBsaW5lLWhlaWdodDoxOHB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5jYXJfYm94e3dpZHRoOjIwOHB4OyBoZWlnaHQ6MTMwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDhweCAwIDA7IHBhZGRpbmc6MDsgYm9yZGVyOjA7fSAuY2FyX2ltYWdlc3t3aWR0aDoyMDhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJvcmRlcjowOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5jYXJfdGV4dHt3aWR0aDoyMDhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjEwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiMwMDAwMDA7IHRleHQtYWxpZ246Y2VudGVyfSAuY2FyX3RleHQgYSB7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjEuMTt9IC5jYXJfdGV4dCBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6IzAwMDAwMH0gLmNhcl9ib3gyeyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjAgMTBweCAxMHB4IDA7IG92ZXJmbG93OmhpZGRlbjsgYm9yZGVyLXJhZGl1czo1cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6I0ZGRjsgLW1vei1ib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyBib3gtc2hhZG93OjAgMCAxMHB4IDFweCByZ2JhKDAsMCwwLDAuMik7IH0gLmNhcl9ib3gyX3RheHR7aGVpZ2h0OmF1dG87IHBhZGRpbmctYm90dG9tOjVweDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWFsaWduOmxlZnQ7IGxpbmUtaGVpZ2h0OjIxcHg7fSAucGljX2JveDJ7IGJvcmRlcjoxcHggc29saWQgI0FBQTsgYmFja2dyb3VuZDojRkZGRkZGOyBib3JkZXItcmFkaXVzOjNweDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgfSAucGljX2JveDIgaW1nIHt3aWR0aDoxMDAlO30gLnByaW50e3dpZHRoOjE5MnB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmctdG9wOjdweDt9IC5wcmludCBheyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3ByaW50LnBuZykgMTBweCB0b3Agbm8tcmVwZWF0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyBwYWRkaW5nLWxlZnQ6MzVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAucHJpbnQgYTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9wcmludF9ob3Zlci5wbmcpIDEwcHggdG9wIG5vLXJlcGVhdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNGE3ODsgcGFkZGluZy1sZWZ0OjM1cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5wYWdlX25hbWVfY29ue3dpZHRoOjg0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzoyMHB4IDIxcHggMTBweCAyMHB4OyB9IC5ob21lMnt3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IG1hcmdpbi1sZWZ0OjIwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzM3MzczNzsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmhvbWUze3dpZHRoOjUxMHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MTBweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjFyZW0gOyBjb2xvcjojMzczNzM3OyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDIwe3dpZHRoOjMxMHB4OyBoZWlnaHQ6MzJweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjEwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgbGluZS1oZWlnaHQ6MzJweDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGQwZDBkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDIwIHNwYW57IGNvbG9yOiNGRjAwMDA7fSAuaW5wdXQyNXt3aWR0aDozMTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAudmV1eHt3aWR0aDo2MDBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbToxMHB4OyBwYWRkaW5nLXRvcDo1cHg7IGxpbmUtaGVpZ2h0OjE3cHg7IHRleHQtYWxpZ246bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBkMGQwZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1ib3R0b206MTBweDt9IC5Ob3N7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiMwMDAwMDA7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6MTVweCAwIDE1cHggMTVweDsgbWFyZ2luOjVweCAwOyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6I0ZGRkZGRjt9IC5idXR0b25fam9ib2ZmZXIgeyBkaXNwbGF5OmJsb2NrOyBsaW5lLWhlaWdodDo1MHB4OyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9pY29uX2VtcGxveS5wbmcnKSBuby1yZXBlYXQgc2Nyb2xsIDBweCAwcHggcmdiKDIzMSwgMjMyLCAyMzIpOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmctbGVmdDo0MHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSAuYnV0dG9uXzEsIC5idXR0b25fMiwgLmJ1dHRvbl8zIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSwgLmJ1dHRvbl8zIGEgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoyNDlweDsgaGVpZ2h0OjM4cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IH0gLmJ1dHRvbl8xIGEsIC5idXR0b25fMiBhIHsgYmFja2dyb3VuZDojZTRkY2QzOyBjb2xvcjojMDAwMDAwOyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IH0gLmJ1dHRvbl8xIGE6aG92ZXIsIC5idXR0b25fMiBhOmhvdmVyeyBiYWNrZ3JvdW5kOiMwMDdmYTU7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgfSAuYnV0dG9uXzMgYTpub3QoLmRpc2NsYWltZXJzU3VwZXJzY3JpcHRzKXsgYmFja2dyb3VuZDojMDAwOyBjb2xvcjojRkZGOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IH0gLmJ1dHRvbl8zIGE6bm90KC5kaXNjbGFpbWVyc1N1cGVyc2NyaXB0cyk6aG92ZXJ7IGJhY2tncm91bmQ6I0ZGRjsgY29sb3I6IzAwMDsgfSAuZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHNbZGF0YS1kaXNjbGFpbWVyLWlkPSIxIl0gc3VwLCAuZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHNbZGF0YS1kaXNjbGFpbWVyLWlkPSIzIl0gc3VwIHsgZm9udC1zaXplOjAuNWVtOyB9IGEuZGlzY2xhaW1lcnNTdXBlcnNjcmlwdHNbZGF0YS1kaXNjbGFpbWVyLWlkPSIzIl0gc3VwIHsgY29sb3I6dmFyKC0tZGFyay1ncmF5LCByZ2IoMTAyLCAxMDIsIDEwMikpOyB9IC5mYkNvbm5lY3RCdG4geyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojMzA1ODk4OyBjb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjNweDsgbGluZS1oZWlnaHQ6MzhweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY2hhdC13aWRnZXQtY29udGFpbmVyLCAjbGl2ZV9jaGF0X3N0YXR1cywgI0NoYXREaXYsICNwb2RpdW0tYnViYmxlLCAjamNvbnQsIGpkaXYsICN0c3dfd3JhcHBlciwgLmZiX2RpYWxvZywgLmZiX2lmcmFtZV93aWRnZXQsIC5mYi1jdXN0b21lcmNoYXQsIC5lay1jaGF0LCAubWF0YWRvci1saXZlY2hhdC0xMjM3ODktbWFpbi13cmFwcGVyLCAjbWF0YWRvci1jb25uZWN0LXRleHQtbGFiZWwsICNtYXRhZG9yLWNvbm5lY3QtdGV4dC1sYWJlbC1iYWRnZXsgei1pbmRleDoxMDAwMCAhaW1wb3J0YW50OyB9IHN2Zy5jaGF0LWJ1YmJsZXsgd2lkdGg6cmV2ZXJ0OyBoZWlnaHQ6cmV2ZXJ0OyB9IC5mYkNvbm5lY3RCdG4gLmZhLWZhY2Vib29reyBjb2xvcjojMzA1ODk4OyB9IGEuZmFjZWJvb2tDb25uZWN0QnRuIHsgY29sb3I6I2ZmZjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LWZhbWlseTppbmhlcml0OyB9IC5idXR0b25fdmlkZW9zX2ZyIGEsIC5idXR0b25fdmlkZW9zX2VuIGF7IHdpZHRoOjI0OXB4OyBoZWlnaHQ6MzhweDsgZGlzcGxheTpibG9jazsgfSAuYnV0dG9uX3ZpZGVvc19mciBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19mciBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b25fZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvc19lbiBhOmhvdmVye2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvcy1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGEsIC5idXR0b25fdmlkZW9fZW4gYXsgd2lkdGg6MTkzcHg7IGhlaWdodDo1MXB4OyBkaXNwbGF5OmJsb2NrOyB9IC5idXR0b25fdmlkZW9fZnIgYXtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b25fZnIucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3ZpZGVvX2ZyIGE6aG92ZXJ7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvdmlkZW8tYnV0dG9uLWhvdmVyX2ZyLnBuZyIpIG5vLXJlcGVhdCAwcHggMHB4IHRyYW5zcGFyZW50O30gLmJ1dHRvbl92aWRlb19lbiBhe2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL3ZpZGVvLWJ1dHRvbl9lbi5wbmciKSBuby1yZXBlYXQgMHB4IDBweCB0cmFuc3BhcmVudDt9IC5idXR0b25fdmlkZW9fZW4gYTpob3ZlcntiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy92aWRlby1idXR0b24taG92ZXJfZW4ucG5nIikgbm8tcmVwZWF0IDBweCAwcHggdHJhbnNwYXJlbnQ7fSAuYnV0dG9uX3VuZGVye3dpZHRoOjI0OXB4OyBwYWRkaW5nOjBweDsgbWFyZ2luOjEwcHggMHB4O30gLmJ1dHRvbl91bmRlciBheyB3aWR0aDoxMDAlO21pbi1oZWlnaHQ6MzhweDsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6bm9uZTsgZGlzcGxheTpibG9jayB9IC5idXR0b25fdW5kZXIgYTpob3ZlcnsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgbGluZS1oZWlnaHQ6MzhweDsgdGV4dC1zaGFkb3c6MXB4IDFweCAxcHggIzAwMWUzMTsgfSAuYnV0dG9uX3VuZGVyLnByb21vIGF7YmFja2dyb3VuZC1jb2xvcjojZTgwZDBkOyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGNvbG9yOiNGRkY7IHdpZHRoOjIzN3B4OyBtYXJnaW4tbGVmdDo1cHg7fSAuYnV0dG9uX3VuZGVyLnByb21vMyBhe2JhY2tncm91bmQtY29sb3I6I2ZmMDAwMDsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBjb2xvcjojRkZGOyB3aWR0aDoyMzdweDsgbWFyZ2luLWxlZnQ6NXB4O30gLmJ1dHRvbl91bmRlci5wcm9tbyBhOmhvdmVyLC5idXR0b25fdW5kZXIucHJvbW8yIGE6aG92ZXIsLmJ1dHRvbl91bmRlci5wcm9tbzMgYTpob3ZlcntiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2J1dHRvbl8xaG92ZXIucG5nKX0gLmJ1dHRvbl80e3dpZHRoOjI0OXB4OyBoZWlnaHQ6NTdweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzowcHg7IG1hcmdpbi1ib3R0b206MTBweDt9IC5idXR0b25fNCBheyB3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IHBhZGRpbmctdG9wOjdweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b25fNC5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDtmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjIycHg7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICMwMDFlMzE7IGRpc3BsYXk6YmxvY2sgfSAuYnV0dG9uXzQgYTpob3Zlcnt3aWR0aDoyNDlweDsgaGVpZ2h0OjUwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uXzRob3Zlci5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBsaW5lLWhlaWdodDoyMnB4OyB0ZXh0LXNoYWRvdzoxcHggMXB4IDFweCAjMDAxZTMxOyB9IC5jaGVja2JveDE1Mnt3aWR0aDphdXRvOyBoZWlnaHQ6MThweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjA7IHBhZGRpbmc6MCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgfSAuQmFzZTIye3dpZHRoOmF1dG87IGhlaWdodDoxOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NnB4OyBwYWRkaW5nOjZweCA2cHggMCAwOyBtYXJnaW4tdG9wOjA7IGJvcmRlcjowOyB0b3A6MDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuYm94OTQwX2xpbmV7d2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpbmUyNS5wbmcpIGxlZnQgYm90dG9tIHJlcGVhdC14OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmJvdHRvbTsgYm90dG9tOjA7fSAud2hpdGVfYm94e3dpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDojRkZGRkZGOyBvdmVyZmxvdzpoaWRkZW47IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowO30gLmJveDEwMHt3aWR0aDoyMjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmc6MTNweCAwIDE1cHggMTBweDt9IC5ib3gxMDF7d2lkdGg6MTc3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7YmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvbGluZTI1LnBuZyIpIHJlcGVhdC14IHNjcm9sbCBjZW50ZXIgYm90dG9tICNEOUQ5RDk7fSAuYm94MTAye3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjEzcHggMCAxNXB4O30gLmJveDEwM3t3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDAgMTVweDtiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9saW5lMjUucG5nIikgcmVwZWF0LXggc2Nyb2xsIGNlbnRlciBib3R0b20gI0Q5RDlEOTt9IC5ib3gxMDR7d2lkdGg6MTc4cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTNweCAwIDE1cHg7fSAuYm94RXZlbnt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O30gLmJveE9kZHt3aWR0aDoxNzdweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzoxM3B4IDBweCAwcHggMHB4O2JhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2xpbmUyNS5wbmciKSByZXBlYXQteCBzY3JvbGwgY2VudGVyIGJvdHRvbSAjRDlEOUQ5O30gLmZpbGVpbnB1dC1idXR0b24sIC5maWxlaW5wdXQtYnV0dG9uOmhvdmVyIHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjMxcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5maWxlaW5wdXQtYnV0dG9uIGlucHV0IHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowOyByaWdodDowOyBtYXJnaW46MDsgb3BhY2l0eTowOyAtbXMtZmlsdGVyOidhbHBoYShvcGFjaXR5PTApJzsgY3Vyc29yOnBvaW50ZXI7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9IC5ib3g5NDBfbWFpbnt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4IDAgMTVweCAwcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94MjAwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0OyAtbW96LWJvcmRlci1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXItcmFkaXVzOjZweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NnB4O30gLndoaXRlX2JveF90ZXh0Mnt3aWR0aDoyMzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dDN7YmFja2dyb3VuZC1jb2xvcjojRjZGNkY2O2JvcmRlci1sZWZ0OjFweCBzb2xpZCAjQzlDOUM5O2JvcmRlci1yaWdodDoxcHggc29saWQgI0M5QzlDOTtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0NXtiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLndoaXRlX2JveF90ZXh0NntwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF9ibGFua3t3aWR0aDoxNzhweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwZjFhMWU7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC53aGl0ZV9ib3hfdGV4dE9kZHtwYWRkaW5nOjEwcHggMHB4O3dpZHRoOjE3N3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyO30gLndoaXRlX2JveF90ZXh0RXZlbntiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNDOUM5Qzk7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjQzlDOUM5O3BhZGRpbmc6MTBweCAwcHg7d2lkdGg6MTc1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMGYxYTFlOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuYm94X3RpdGxle3dpZHRoOjkzMHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzozMHB4IDBweCA1cHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6IzBmMWExZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOm5vbmU7fSAuY3VzdG9tXzIyIHt3aWR0aDoyNDFweDsgaGVpZ2h0OjEyMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjAgOHB4IDhweCAwOyBiYWNrZ3JvdW5kOiNlYmViZWI7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDtjdXJzb3I6cG9pbnRlcjt9IC5jdXN0b21fMjIyIHt3aWR0aDoyNDFweDsgaGVpZ2h0OjEyMXB4OyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjAgOHB4IDhweCAwOyBiYWNrZ3JvdW5kOiNmZmZmZmY7LW1vei1ib3JkZXItcmFkaXVzOjhweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjhweDsgYm9yZGVyLXJhZGl1czo4cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjhweDtjdXJzb3I6cG9pbnRlcjt9IC50b3lvdGFfY2Ftcnl7d2lkdGg6NDMwcHg7IGhlaWdodDoyMjJweDsgZmxvYXQ6bGVmdDsgcGFkZGluZzoyMHB4IDBweCAwcHggMTBweDsgbWFyZ2luLXJpZ2h0OjhweDsgYmFja2dyb3VuZDojZWJlYmViOy1tb3otYm9yZGVyLXJhZGl1czo4cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo4cHg7IGJvcmRlci1yYWRpdXM6OHB4OyAta2h0bWwtYm9yZGVyLXJhZGl1czo4cHg7fSAudG95b3RhX2NhbXJ5IGgxeyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206NXB4O30gLnRveW90YV9jYW1yeSBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206OHB4O30gLmJveDJfZGV0YWlsc190ZXh0MjV7d2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjoxNXB4IGF1dG87IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LXNoYWRvdzoxcHggMXB4IDRweCAjODI4MjgyO30gLmJveDJfZGV0YWlsc190ZXh0MjUgc3BhbnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNmZmY7IGZvbnQtd2VpZ2h0OmJvbGQ7fSAuYm94MTV7Y3Vyc29yOnBvaW50ZXI7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDJweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE1IGgye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTUgaDIgYXtjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo0MHB4OyBwYWRkaW5nLXJpZ2h0OjBweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxNSBoMiBhOmhvdmVye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTZ7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4IDRweCA0cHggOHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTYgaDJ7ZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctdG9wOjBweDt9IC5ib3gxNiBoMiBhe2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24zLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7cGFkZGluZy1sZWZ0OjIwcHg7IHBhZGRpbmctcmlnaHQ6MHB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE2IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6cmdiKDAsMCwwKTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjMucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxN3t3aWR0aDphdXRvOyBoZWlnaHQ6MjBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9tZW51MTBfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzo0cHggNHB4IDRweCA4cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBtYXJnaW4tcmlnaHQ6MXB4OyB9IC5ib3gxNyBoMntmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDE3IGgyIGF7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjQucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDtwYWRkaW5nLWxlZnQ6MjVweDsgcGFkZGluZy1yaWdodDowcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTcgaDIgYTpob3ZlcntmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMDA1ODlkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE4e3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL21lbnUxMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBwYWRkaW5nOjRweCA0cHggNHB4IDhweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE4IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTggaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNS5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBwYWRkaW5nLXJpZ2h0OjVweDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxOCBoMiBhOmhvdmVye2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb241LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTl7d2lkdGg6YXV0bzsgaGVpZ2h0OjIwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbWVudTEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4OyBwYWRkaW5nLXJpZ2h0OjNweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IG1hcmdpbi1yaWdodDoxcHg7IH0gLmJveDE5IGgye2Zsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6NXB4OyBwYWRkaW5nLXRvcDowcHg7fSAuYm94MTkgaDIgYXtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uNi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDoyNXB4OyBsaW5lLWhlaWdodDoyMHB4O30gLmJveDE5IGgyIGE6aG92ZXJ7ZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwNTg5ZDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvaWNvbjYucG5nKSBsZWZ0IHRvcCBuby1yZXBlYXQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MjBweDt9IC5ib3gxMTE0e2N1cnNvcjpwb2ludGVyO3dpZHRoOmF1dG87IGhlaWdodDoyMHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbl8xLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6NHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbWFyZ2luLXJpZ2h0OjFweDsgfSAuYm94MTExNCBoMntjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy10b3A6MHB4O30gLmJveDExMTQgaDIgYXtjdXJzb3I6cG9pbnRlcjtmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uMi5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgZm9udC13ZWlnaHQ6bm9ybWFsO3BhZGRpbmctbGVmdDo0MHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuYm94MTExNCBoMiBhOmhvdmVye2N1cnNvcjpwb2ludGVyO2Zsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMwMDU4OWQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24yLnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjIwcHg7fSAuU3BlY2lmaWNhdGlvbnN7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjEwcHggMDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyNTI1MjU7IHRleHQtZGVjb3JhdGlvbjpub25lO2ZvbnQtd2VpZ2h0Om5vcm1hbDttYXJnaW4tdG9wOjVweDt9IC5Nb3JiaTJ7d2lkdGg6NjMxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHg7IG1hcmdpbjowcHg7IGJhY2tncm91bmQ6I0VGRUZFRjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDtmb250LXdlaWdodDpub3JtYWw7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM1YTVhNWE7IHRleHQtZGVjb3JhdGlvbjpub25lO30gLk1vcmJpMiBweyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojNWE1YTVhOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZy1ib3R0b206OHB4O30gLmJveDI4ODlfbWlke3dpZHRoOjI3OHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcpIGxlZnQgdG9wIHJlcGVhdC15OyBwYWRkaW5nOjAgNXB4IDIwcHggNXB4O30gLk1vcmJpMjJ7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweDsgbWFyZ2luOjBweDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzVhNWE1YTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7fSAuYm94Mjg4OV9taWQgaDF7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjEwcHggMTBweCAyMHB4IDEwcHg7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOiMyODI4Mjg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjRweH0gLl9ib3gyODg5X21pZCBoMXsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweCAxMHB4IDIwcHggMTBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzI4MjgyODsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyBsaW5lLWhlaWdodDoyNHB4fSAuYm94Mjg4OV9taWQgaDJ7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjRweCAxMHB4IDIwcHggMTVweDsgZm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMyODI4Mjg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjNweH0gI3NpbWlsYXJUaXRsZXsgcGFkZGluZzo0cHggMTBweCA5cHggMTVweDsgZm9udC1zaXplOjEuNDM4cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC50YWJlNXt3aWR0aDo2MzFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IH0gLnRhYmU1IHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAudGFiZTUgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC50YWJlNSB1bCBsaSBzcGFue2N1cnNvcjpwb2ludGVyOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjdweCAxNXB4IDdweCAxNXB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3RhYl9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDt9IC50YWJlNSB1bCBsaSBzcGFuOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzdiMDAwMDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6N3B4IDE1cHggN3B4IDE1cHg7IG1hcmdpbi1yaWdodDoycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6ICNlYmViZWI7IGZsb2F0OmxlZnQ7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6MDsgLXdlYmtpdC1ib3JkZXItdG9wLWxlZnQtcmFkaXVzOjZweDsgLXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjZweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czowOyB9IC50YWJlNSB1bCBsaSBzcGFuLmFjdGl2ZXtjdXJzb3I6ZGVmYXVsdDsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjdweCAxNXB4IDdweCAxNXB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjE4cHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBiYWNrZ3JvdW5kOiAjZWJlYmViOyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDo2cHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6NnB4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo2cHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6MDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MDsgfSAudGFiX2RldGFpbHMye3dpZHRoOjYzMXB4OyBwYWRkaW5nOjEwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOiNFRkVGRUY7IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbXJpZ2h0OjZweDsgLW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6NnB4OyAtd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4OyAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4OyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7IGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7fSAuYm94MjV7d2lkdGg6NDg3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOiNFRkVGRUY7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7IG1hcmdpbjowIDEzcHggMCAwOyBwYWRkaW5nOjIwcHggMCAyMHB4IDIwcHg7fSAuYm94MjZ7d2lkdGg6MjQzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0O30gLmJveDI2IHVseyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuYm94MjYgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazt9IC5ib3gyNiB1bCBsaSBzcGFueyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAwcHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0O30gLmJveDI2IHVsIGxpIGF7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5ib3gyNiB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHBhZGRpbmc6MCA3cHggN3B4IDIycHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5ib3gyNiB1bCBsaSBhLmFjdGl2ZXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojN2IwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMjJweDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDI3e3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmJveDMze3dpZHRoOjYzMXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDt9IC5ib3gzMyB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDMzIHVsIGxpeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7fSAuYm94MzMgdWwgbGkgYXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7fSAuYm94MzMgdWwgbGkgc3BhbnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMzIzMjMyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweCA3cHggMHB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7fSAuYm94MzMgcHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzMyMzIzMjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHBhZGRpbmc6MCAwcHggN3B4IDBweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MThweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5ib3gzMyB1bCBsaSBhOmhvdmVyeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4IDdweCAyMnB4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYXJyb3c4LnBuZykgbGVmdCB0b3Agbm8tcmVwZWF0OyB9IC5Nb3RldXJ7d2lkdGg6MjgwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjVweDt9IC5Nb3RldXIgaDJ7d2hpdGUtc3BhY2U6bm9ybWFsOyB3aWR0aDoxMzVweDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuNzVyZW0gOyBjb2xvcjojMjAyMDIwO30gLk1vdGV1ciBoM3t3aGl0ZS1zcGFjZTpub3JtYWw7IHdpZHRoOjE0MHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM1YTVhNWE7fSAuYm94MjYgdWwgbGkgc3BhbjpiZWZvcmUsLmJveDMzIHVsIGxpIHNwYW46YmVmb3JlLC5Nb3RldXIgaDI6YmVmb3JlIHsgY29udGVudDoiXGYxMzgiOyBmb250LWZhbWlseTonRm9udCBBd2Vzb21lIDUgUHJvJzsgZm9udC13ZWlnaHQ6OTAwOyBtYXJnaW4tcmlnaHQ6NXB4OyB9IC5ib3gyNyBhe3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgdG9wIHJlcGVhdC14IDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowOyBsaW5lLWhlaWdodDoyOHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTt9IC5ib3gyNyBhOmhvdmVye3dpZHRoOjEzMXB4OyBoZWlnaHQ6MjhweDsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b24xMF9iZy5wbmcpIGxlZnQgLTMycHggcmVwZWF0LXggOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MjhweDsgfSAuYm94Mjh7d2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOiM2ZjZmNmYgdXJsKC9pbWFnZXMvbGl0ZXJfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgcGFkZGluZzoxMHB4IDJweCAxMHB4IDJweDsgbWFyZ2luOjAgMHB4IDAgMDt9IC50ZXh0NDR7d2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpdGVyX2xpbmUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbTo1cHg7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjB7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IH0gLnRleHRfYm94NjAgaDJ7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNjI2MjY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHh9IC50ZXh0X2JveDYwIGgze3dpZHRoOjEzM3B4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiM3YjAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246bGVmdDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweH0gLnRleHRfYm94NjAgcHt3aWR0aDoxMzNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNjI2MjY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGxpbmUtaGVpZ2h0OjE4cHh9IC52aW9ye3dpZHRoOmF1dG87IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjBweCAxMHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL3Zpb3IucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgdGV4dC1hbGlnbjpsZWZ0OyB0ZXh0LXRyYW5zZm9ybTpub25lOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyB9IC5ib3gxMzN7d2lkdGg6MTMzcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjA7IG1hcmdpbjowO30gLmJveDI1OHt3aWR0aDoyNThweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2I5YjliOTsgcGFkZGluZzowIDEwcHggNXB4IDEwcHg7IG1hcmdpbi1ib3R0b206NXB4OyBmbG9hdDpsZWZ0O30gLmJveDExNnt3aWR0aDoxMTZweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGJvcmRlcjoycHggc29saWQgI0ZGRkZGRjsgcGFkZGluZzowOyBtYXJnaW4tcmlnaHQ6NXB4O30gLmJveDExNiBpbWd7d2lkdGg6MTIwcHg7IH0gLmJveDJ7d2lkdGg6MjYwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW4tcmlnaHQ6NDdweDsgbWFyZ2luLWxlZnQ6MjBweDsgcGFkZGluZzowIDAgMTBweCA1cHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGNvbG9yOiMyNDI0MjQgO30gLmJveDIgc3Bhbntmb250OmJvbGQgMTJweCBWZXJkYW5hLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmOyBjb2xvcjojRkYwMDAwfSAuYm94M3t3aWR0aDoyNjBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDoyMHB4OyBwYWRkaW5nOjAgMCAxMHB4IDVweDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNCA7fSAuYm94MyBzcGFue2ZvbnQ6Ym9sZCAxMnB4IFZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IGNvbG9yOiNGRjAwMDB9IC5ib3g0e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCA0NXB4IDEwcHggMjBweDsgfSAuYm94NDR7d2lkdGg6MjY1cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDQ3cHggMTBweCAyMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTt9IC5ib3g1e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCAyMHB4IDEwcHggMDt9IC5ib3g2e3dpZHRoOjI4MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjEwcHggMHB4IDBweCAwO30gLmJveDU1e3dpZHRoOjI2NXB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweCAyMHB4IDEwcHggMDtwb3NpdGlvbjpyZWxhdGl2ZTt9IC5saW4ye3dpZHRoOjYxN3B4OyBoZWlnaHQ6MnB4OyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4IDAgMTBweCAwOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvbGluZTIucG5nKSBsZWZ0IHRvcCByZXBlYXQteDt9IC5ib3gxNHtwYWRkaW5nOjBweCAwOyBoZWlnaHQ6MTVweDsgZmxvYXQ6bGVmdH0gLmJveDIwe3BhZGRpbmc6MCAxMHB4OyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDoyN3B4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojMjQyNDI0IDsgZm9udC13ZWlnaHQ6Ym9sZDt9IC50ZXh0MzB7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE3cHggMDsgZm9udC1zaXplOjEuMzc1cmVtIDsgY29sb3I6IzI0MjQyNH0gLnRleHQzMCBzcGFue3BhZGRpbmctcmlnaHQ6MTBweDsgZmxvYXQ6cmlnaHQ7IHRleHQtYWxpZ246cmlnaHQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzI0MjQyNDt9IC50ZXh0MzAgc3BhbiBzdHJvbmd7Zm9udDpib2xkIDIwcHggVmVyZGFuYSwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsgY29sb3I6I0ZGMDAwMCB9IC50ZXh0MzAuZm9ybUhlYWRpbmcsIC50ZXh0MzAuZm9ybUhlYWRpbmcgc3Bhbntjb2xvcjp2YXIoLS1mb3JtLXRpdGxlLWNvbG9yLCAjMjQyNDI0KTt9IC5ib3g2MTd7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBwYWRkaW5nLWJvdHRvbToyMHB4OyBtYXJnaW4tcmlnaHQ6MHB4O30gLm1haW42MTd7d2lkdGg6NjE3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW4tdG9wOjE1cHg7fSAuYm94MjBBe3BhZGRpbmc6MCA1cHg7IGZsb2F0OmxlZnQ7IGxpbmUtaGVpZ2h0OjI1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMyNDI0MjQgOyBmb250LXdlaWdodDpib2xkO30gLm9uU2l0ZSArIC5wcmVmZXJyZWQsIC5wcmVmZXJyZWQ6aGFzKCsub25TaXRlKSB7IGFsaWduLXNlbGY6ZW5kOyB9ICNzZXJ2aWNlUGFja2FnZXMgdGFibGUge2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTsgd2lkdGg6MTAwJTsgbGluZS1oZWlnaHQ6MzBweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBmb250LXNpemU6OTAlO30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0Ym9keSB0cjpudGgtY2hpbGQob2RkKSB7YmFja2dyb3VuZDojZjNmM2YzO30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0ZHtwYWRkaW5nLXRvcDowLjVyZW07IHZlcnRpY2FsLWFsaWduOnRvcDsgbGluZS1oZWlnaHQ6MS41O30gI3NlcnZpY2VQYWNrYWdlcyB0YWJsZSB0ZDpudGgtY2hpbGQoMikge3BhZGRpbmc6MC41cmVtO30gLmRldGFpbENhclRpdGxlLCAuZGV0YWlsQ2FyVGl0bGVXaWRlLCAuZGV0YWlsQ2FyVGl0bGVGdWxsIHt3b3JkLXdyYXA6YnJlYWstd29yZDtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgbWFyZ2luOjBweDsgZm9udC1zaXplOjEuODc1cmVtIDsgY29sb3I6IzQxNDE0MTtmb250LXdlaWdodDpub3JtYWw7fSAuZGV0YWlsQ2FyVGl0bGUge3dpZHRoOjQ5MHB4O30gLmRldGFpbENhclRpdGxlV2lkZSB7d2lkdGg6Nzc1cHg7fSAuZGV0YWlsQ2FyVGl0bGVGdWxsIHt3aWR0aDoxMDAlO30gLm1haW5ib3hfdGV4dGFyZTYxN3toZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjIwcHggMDsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlLCAwJSk7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjUwJTt9IC50ZXh0Ym94MjJ7d2lkdGg6MzgxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBwYWRkaW5nLWxlZnQ6MHB4OyBtYXJnaW46MHB4IDBweCAwIDA7fSAuYnV0dG9uNTF7IHdpZHRoOmF1dG87IGhlaWdodDozNnB4OyBmbG9hdDpsZWZ0OyB9IC5idXR0b241MSBheyB3aWR0aDphdXRvOyBoZWlnaHQ6MzZweDsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjVweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDsgYm9yZGVyLXJhZGl1czo1cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9idXR0b241LnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiNGRkZGRkYgOyBwYWRkaW5nOjAgMTBweDsgbGluZS1oZWlnaHQ6MzZweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJ1dHRvbjUxIGE6aG92ZXJ7IHdpZHRoOmF1dG87IGhlaWdodDozNnB4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NXB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjUucG5nKSBsZWZ0IC00NHB4IHJlcGVhdC14OyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojRkZGRkZGIDsgcGFkZGluZzowIDEwcHg7IGxpbmUtaGVpZ2h0OjM2cHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTpub25lO30gLnRleHQ1NXt3aWR0aDozODFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbjowcHggMHB4IDIwcHggMDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjaykgOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAudGV4dDU1IHB7IHBhZGRpbmctbGVmdDowcHggNXB4IDAgMDsgbWFyZ2luOjBweCAwcHggMHB4IDA7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAucGljYm94XzIyMXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgcGFkZGluZy1sZWZ0OjBweDsgbWFyZ2luOjBweCAxNXB4IDAgMDt9IC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjMzMnB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAuaXNGdWxsV2lkdGhQYWdlIC5waWNib3hfMjIxIGltZyB7IHdpZHRoOjQ0MnB4OyB9IC5waWNib3g2NTF7d2lkdGg6NjUxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46NXB4IDEwcHggMHB4O30gLnBpY2JveDkzMHt3aWR0aDo5MzBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjo1cHggNXB4IDBweDt9IC5waWNib3g2NTEgaW1nIHsgd2lkdGg6NjUxcHg7IH0gLnBpY2JveDkzMCBpbWcgeyB3aWR0aDo5MzBweDsgfSAucGljYm94NjUxIGltZywgLnBpY2JveDkzMCBpbWcgeyBmbG9hdDpsZWZ0OyBjdXJzb3I6cG9pbnRlcjsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudG9wUHJvbW9JbWFnZSBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBtYXJnaW4tdG9wOjVweDsgd2lkdGg6OTMwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC50b3BQcm9tb0ltYWdlVXNlZCBpbWcgeyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyB3aWR0aDo2NTBweDsgY3Vyc29yOnBvaW50ZXI7IH0gLnRlYW1fdGl0bGVfZGVhbGVye21hcmdpbi1ib3R0b206MTVweDsgdGV4dC1hbGlnbjpjZW50ZXI7fSAuZm9ybXNfYm94NjYxe3dpZHRoOjk2MHB4OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjEwcHggYXV0bzsgfSAucGljYm94OTB7d2lkdGg6OTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo4cHg7IGJvcmRlcjoxcHggc29saWQgI2FjYWNhYzsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAucGljYm94OTAgaW1nIHt3aWR0aDo5MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjNweDsgfSAudGV4dGJveDE5MXt3aWR0aDo1MiU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44MTNyZW0gOyBsaW5lLWhlaWdodDoxLjI7IGNvbG9yOiMyNDI0MjQ7IH0gLnRleHRib3gxOTEgaDR7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGNvbG9yOiMyNDI0MjQ7IHBhZGRpbmctYm90dG9tOjVweDsgfSAubWFpbmJveDI5MXt3aWR0aDoyOTFweDsgbWluLWhlaWdodDoxMjNweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowIDVweCAxMHB4IDA7IGJhY2tncm91bmQ6I2U2ZTZlNjsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjE1cHggMTBweDt9IC5sYXp5e2JvcmRlcjowO2Rpc3BsYXk6bm9uZX0gLnRlY2hTcGVjc3t3aWR0aDo2MjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MjVweCAxNXB4OyBiYWNrZ3JvdW5kOiNlYmViZWI7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC5lbWFpbF9saW5re3RleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjojODg4O30gLmVtYWlsX2xpbms6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMzMzM7fSAucGFnZV9uYW1lNTU1IHsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW46MDsgfSAucGFnZV9uYW1lNTU1IGF7IGNvbG9yOiMyNDI0MjQ7IH0gLnBhZ2VfbmFtZTU1NSBhOmhvdmVyeyBjb2xvcjojMjQyNDI0OyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wYWdlX25hbWU1NTUgYTp2aXNpdGVkeyBjb2xvcjojMjQyNDI0OyB9IC5wYWdlX25hbWVORVc1NTUgeyBjb2xvcjojMjQyNDI0OyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDphdXRvOyBmb250LXNpemU6MC44NzVyZW0gOyB9IC5wYWdlX25hbWVORVc1NTUgYXsgY29sb3I6IzI0MjQyNDsgfSAucGFnZV9uYW1lTkVXNTU1IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnBhZ2VfbmFtZU5FVzU1NSBhOnZpc2l0ZWR7IGNvbG9yOiMyNDI0MjQ7IH0gLmJveDJfdGV4dDQ0IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjFyZW07IGhlaWdodDphdXRvOyBsaW5lLWhlaWdodDoxOHB4OyBwYWRkaW5nOjEwcHggMCAwIDA7IHdpZHRoOmF1dG87IH0gLnRleHRfYm94MTEgeyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MCAyMHB4IDEwcHggMDsgd2lkdGg6YXV0bzsgbGluZS1oZWlnaHQ6MjFweDsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IH0gLnRleHRfYm94MTEgaDQgeyBjb2xvcjojMjQyNDI0OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MC44NzVyZW0gOyBoZWlnaHQ6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MTBweCAwOyB9IC50ZXh0X2JveDExIGEgeyBjb2xvcjojMjQyNDI0OyBmb250LXNpemU6MC43NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjEwcHggMDsgZmxvYXQ6bGVmdDsgfSAudGV4dF9ib3gxMSBhOmhvdmVyIHsgY29sb3I6IzI0MjQyNDsgfSAudGV4dF9ib3gxMSBhOnZpc2l0ZWQgeyBjb2xvcjojMjQyNDI0OyB9IC50ZXh0X2JveDExIHVsLCAudGV4dF9ib3gxMSBwIHsgfSAudGV4dF9ib3gxMSB1bCwgLnRleHRfYm94MTEgcCB7IGNvbG9yOiMyNDI0MjQ7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGhlaWdodDphdXRvOyBtYXJnaW46MDsgcGFkZGluZzowIDAgNXB4OyB9IC50ZXh0X2JveDExIHVsIHsgbGlzdC1zdHlsZS1wb3NpdGlvbjppbnNpZGU7IH0gLnRleHRfYm94MTEgcCBhIHsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgZmxvYXQ6bm9uZTsgfSAucGljYm94MzM2IHsgYm9yZGVyOjFweCBzb2xpZCAjN0Q3RDdEOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLXJpZ2h0OjY4cHg7IH0gLmZvbnRfc2l6ZTIxIHsgZm9udC1zaXplOjEuMzEzcmVtICFpbXBvcnRhbnQ7IH0gLnBhZ2VfbmFtZTE4IHsgY29sb3I6IzI0MjQyNDsgZm9udC1zaXplOjEuMTI1cmVtIDsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAwIDEwcHggMDsgd2lkdGg6MTAwJTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucGFnZV9uYW1lMTggYXsgY29sb3I6IzI0MjQyNDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnBhZ2VfbmFtZTE4IGE6aG92ZXJ7IGNvbG9yOiMyNDI0MjQ7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLnZpZGVvNSB7IGZsb2F0OmxlZnQ7IGhlaWdodDo0MXB4OyBtYXJnaW4tdG9wOjcwcHg7IG1hcmdpbi1sZWZ0OjcwcHg7IH0gLmZsb2F0TG9nb3sgd2lkdGg6NjIxcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBwYWRkaW5nOjI1cHggMTVweDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9MT0dPX0dBX1RSQU5TUEFSRU5ULnBuZykgcmlnaHQgYm90dG9tIG5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCBib3R0b207IC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OjBweDstbW96LWJvcmRlci1yYWRpdXMtdG9wcmlnaHQ6MHB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDo2cHg7LW1vei1ib3JkZXItcmFkaXVzLWJvdHRvbWxlZnQ6NnB4Oy13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czo2cHg7LXdlYmtpdC1ib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjZweDtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjBweDtib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowcHg7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uIHsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgYm9yZGVyOm1lZGl1bSBub25lOyBjb2xvcjojRkZGRkZGOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luOjA7IG92ZXJmbG93OnZpc2libGU7IHBhZGRpbmc6MDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2J0bl9yaWdodDIucG5nIikgbm8tcmVwZWF0IHNjcm9sbCByaWdodCB0b3AgdHJhbnNwYXJlbnQ7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDozNXB4OyBtYXJnaW46MDsgcGFkZGluZzowIDZweCAwIDA7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b24gc3BhbiBzcGFuIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYnRuX2xlZnQyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IGNvbG9yOiNGRkZGRkY7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI2cHg7IGxpbmUtaGVpZ2h0OjEzcHg7IHBhZGRpbmc6MTJweCAxM3B4IDAgMTVweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJ1dHRvbjIuanFUcmFuc2Zvcm1CdXR0b25faG92ZXIgc3BhbiBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0zOHB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2hvdmVyIHNwYW4geyBiYWNrZ3JvdW5kLXBvc2l0aW9uOnJpZ2h0IC0zOHB4OyB9IC5idXR0b24yLmpxVHJhbnNmb3JtQnV0dG9uX2NsaWNrIHNwYW4gc3BhbiB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNjZweDsgfSAuYnV0dG9uMi5qcVRyYW5zZm9ybUJ1dHRvbl9jbGljayBzcGFuIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpyaWdodCAtNjZweDsgfSAudmVoaWNsZUxpc3RUYWJsZSB7IG1hcmdpbjoxMHB4OyBmb250LXNpemU6MC43NXJlbSA7IGNvbG9yOiM0MTQxNDE7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgeyBib3JkZXItYm90dG9tOjFweCBkb3R0ZWQgIzY2NjY2NjsgaGVpZ2h0OjMwcHg7IH0gLnZlaGljbGVMaXN0VGFibGUgdHIgdGQgYXsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC52ZWhpY2xlTGlzdFRhYmxlIHRyIHRkIGE6aG92ZXJ7IGNvbG9yOiM0MTQxNDE7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAudmVoaWNsZUxpc3RUYWJsZSB0ciB0ZCBhOnZpc2l0ZWR7IGNvbG9yOiM0MTQxNDE7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAuZXhwYW5kUm93eyBiYWNrZ3JvdW5kLWNvbG9yOiMxZjFmMWY7IHRleHQtYWxpZ246cmlnaHQ7IGNvbG9yOiM0MTQxNDE7IG1hcmdpbi1sZWZ0OjRweDsgbWFyZ2luLXJpZ2h0OjJweDsgfSBkaXYuZXJyb3JNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmRkZGQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2Vycm9yLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQ7IGNvbG9yOiNkMTAwMGM7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgei1pbmRleDo5OTk5OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I2VmZmZlZjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMDk3NzAwOyBjb2xvcjojMDk3NzAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSBkaXYudG95b3RJbWFnZSB7IGNvbG9yOiM2NjY2NjY7IGZvbnQtc2l6ZTozLjQzOHJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDoyNTBweDsgbGVmdDowOyBvcGFjaXR5OjAuODsgb3ZlcmZsb3c6aGlkZGVuOyBwYWRkaW5nOjVweCAxMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHdpZHRoOjM4MHB4OyB6LWluZGV4Ojg7IH0gZGl2LnRveW90SW1hZ2UgcCB7IHBhZGRpbmc6NXB4OyBtYXJnaW46MDsgZm9udC1zaXplOjAuOTM4cmVtIDsgY29sb3I6I0E2QTZBNjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gZGl2Lm5ld0Nhck1haW5Cb3ggeyB3aWR0aDo5NjBweDsgbWFyZ2luOjAgYXV0bzsgfSBkaXYubmV3Q2FyTWFpbkJveDIgeyBtYXJnaW4tdG9wOjVweDsgfSBkaXYubmV3Q2FyTWFpbkJveDMgeyB3aWR0aDo5NjBweDsgaGVpZ2h0OjEycHg7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYm94OTcwX3RvcC5wbmcpIGxlZnQgdG9wIG5vLXJlcGVhdDsgfSAuc3RvY2tJbWdTdHlsZXsgd2lkdGg6MTAwJTsgaGVpZ2h0OjUwJTsgZm9udC1zaXplOjIuMjVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy10b3A6MzBweDsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbjowcHg7IGNvbG9yOiMzMDMwMzA7IH0gI2ZpcnN0U2xpZGVySW1nIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxNTsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IG9wYWNpdHk6MTsgcGFkZGluZzowOyBtYXJnaW46MDsgfSAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyeyBib3JkZXI6MXB4IHNvbGlkICNGRkY7IHdpZHRoOjY0MHB4OyBoZWlnaHQ6NDgwcHg7IH0gI2ZpcnN0U2xpZGVySW1nIC5wbGFjZWhvbGRlciAuaW5uZXItcGxhY2Vob2xkZXJ7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgb3ZlcmZsb3c6aGlkZGVuOyBkaXNwbGF5OmZsZXg7IHRvcDowOyBib3R0b206MDsgbGVmdDowOyByaWdodDowOyB9ICNmaXJzdFNsaWRlckltZyBJTUd7IGhlaWdodDphdXRvOyBtYXgtd2lkdGg6NjQwcHg7IG1heC1oZWlnaHQ6NDgwcHg7IHdpZHRoOmF1dG87IG1hcmdpbjphdXRvOyB9ICNmaXJzdFNsaWRlckltZy5mYWRlLW91dHsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgLXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgLW1vei10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDAuMjVzLCBvcGFjaXR5IDAuMjVzIGxpbmVhcjsgLW8tdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAwLjI1cywgb3BhY2l0eSAwLjI1cyBsaW5lYXI7IHRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMC4yNXMsIG9wYWNpdHkgMC4yNXMgbGluZWFyOyB9ICNzb2NpYWxUaW1lbGluZXsgd2lkdGg6OTYwcHg7IGhlaWdodDphdXRvOyB9IGRpdi5uZXdDYXJNYWluQm94NCB7IHdpZHRoOjk0MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9ib3g5NzBfbWlkLnBuZykgbGVmdCB0b3AgcmVwZWF0LXk7IHBhZGRpbmc6MTBweCAxNXB4OyB9IGRpdi5uZXdDYXJUaXRsZUJveCBoMXsgd2lkdGg6OTQwcHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMzAzMDMwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuZ3JheWJveCB7IGJhY2tncm91bmQtY29sb3I6I0VGRUZFRjsgYm9yZGVyOjFweCBzb2xpZCAjRkZGRkZGOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6IzAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6bm9ybWFsOyBwYWRkaW5nOjEwcHggMCAxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LXNoYWRvdzowIDFweCAwICNGRkZGRkY7IH0gLmdyYXlib3ggPiBzcGFuIHsgY29sb3I6IzAwMDsgZm9udC1zaXplOjAuODEzcmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmdyYXlib3ggLnNtYWxsdGV4dCB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNDQ0NDQ0M7IGJvcmRlci10b3A6MXB4IHNvbGlkICNDQ0NDQ0M7IGNvbG9yOiMzMzMzMzM7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IG1hcmdpbi10b3A6MTBweDsgcGFkZGluZzoxMHB4OyB9IC5ncmF5Ym94IGgyIHsgY29sb3I6IzAwMDsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbjo1cHggYXV0bzsgfSAuZXh0ZW5kZWRQaG9uZXsgcG9zaXRpb246Zml4ZWQ7IGJhY2tncm91bmQtY29sb3I6IzY3Njc2NzsgY29sb3I6I2RkZDsgcGFkZGluZzowLjZlbTsgYm9yZGVyLXJhZGl1czo1cHg7IHotaW5kZXg6OTk5OTsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC1hbGlnbjpsZWZ0OyB9IC5leHRlbmRlZFBob25lIGxhYmVseyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuZXh0ZW5kZWRQaG9uZSBzcGFueyBjb2xvcjojZmZmOyB9IC5waG9uZU5vdGV7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IHBhZGRpbmctdG9wOjdweDsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdkV4IHsgY29sb3I6IzQxNDE0MTsgZm9udC1zaXplOjFyZW0gOyB0ZXh0LWFsaWduOmxlZnQ7IHBhZGRpbmctbGVmdDoyMHB4OyBwYWRkaW5nLXRvcDozMHB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IGRpdnsgcGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctdG9wOjEwcHg7IHdpZHRoOjIwMHB4OyBmbG9hdDpsZWZ0OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVseyBtYXJnaW4tYm90dG9tOjIwcHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IG1hcmdpbi10b3A6NXB4OyB9IC5hZGRlZFNlYXJjaExpbmtzRGl2IHVsIGxpeyBsaXN0LXN0eWxlOm5vbmUgb3V0c2lkZSBub25lOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tbGVmdDo0MHB4OyB0ZXh0LWluZGVudDotMTBweDsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBheyBjb2xvcjojMzMzOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkZGVkU2VhcmNoTGlua3NEaXYgdWwgbGkgYXsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYXJyb3dfcmVkLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgMCAxMHB4IHRyYW5zcGFyZW50OyBjb2xvcjojMzMzMzMzOyBtYXJnaW4tcmlnaHQ6MnB4OyBwYWRkaW5nOjZweCAxMHB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYWRkZWRTZWFyY2hMaW5rc0RpdiB1bCBsaSBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuY29tcGFyZUxpbmtzIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5jb21wYXJlTGlua3MgYTpob3ZlcnsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuZW1haWxCb2R5LCAuZW1haWxTdWJqZWN0eyBkaXNwbGF5Om5vbmU7IH0gI2NvbnRhY3R1cyBkaXYuZXJyb3JNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmRkZGQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2Vycm9yLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQ7IGNvbG9yOiNkMTAwMGM7IGRpc3BsYXk6bm9uZTsgZmxvYXQ6bGVmdDsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB9ICNjb250YWN0dXMgZGl2LmVtYWlsU2VudE1zZyB7IGJhY2tncm91bmQtY29sb3I6I2VmZmZlZjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoIi9pbWFnZXMvYWNjZXB0ZWQucG5nIik7IGJhY2tncm91bmQtcG9zaXRpb246MTBweCBjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYm9yZGVyOjFweCBzb2xpZCAjMDk3NzAwOyBjb2xvcjojMDk3NzAwOyBkaXNwbGF5Om5vbmU7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTVweCAxMHB4IDE1cHggNTBweDsgfSAjUGFnZUZpbmFuY2UgLnN0ZXBBY3RpdmUgeyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy8xX2hvdmVyLnBuZyIpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IGNvbG9yOiMwMDAwMDA7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToyLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgaGVpZ2h0OjQ2cHg7IGxpbmUtaGVpZ2h0OjQ2cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgd2lkdGg6NDZweDsgbWFyZ2luLWxlZnQ6MTBweDsgfSAjUGFnZUZpbmFuY2UgLnN0ZXBVbmFjdGl2ZSB7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzLzFfcm91bmQucG5nIikgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcCB0cmFuc3BhcmVudDsgY29sb3I6I0ZGRkZGRjsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDZweDsgbGluZS1oZWlnaHQ6NDZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyB3aWR0aDo0NnB4OyBtYXJnaW4tbGVmdDoxMHB4OyB9ICNQYWdlRmluYW5jZSAudGV4dDEgc3BhbiB7IGNvbG9yOiM0MzQzNDM7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IGhlaWdodDo0NnB4OyBsaW5lLWhlaWdodDo0NnB4OyBwYWRkaW5nOjA7IHRleHQtYWxpZ246bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtc2hhZG93OjFweCAxcHggMXB4ICNGM0YzRjM7IHdpZHRoOmF1dG87IH0gI1BhZ2VGaW5hbmNlIGRpdi5lbWFpbFNlbnRNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNCOEZGQjg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2FjY2VwdGVkLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQgIzBCOTYwMDsgY29sb3I6IzBCOTYwMDsgZGlzcGxheTpub25lOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDUwcHg7IH0gLm90aGVyX2xpbmtzIGF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IC5vdGhlcl9saW5rcyBhOmhvdmVyeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5wcm9tb3Rpb25TaWRlQnRuQSB7IGJhY2tncm91bmQ6IzAwMmM1ZjsgY29sb3I6I2ZmZmZmZjsgZGlzcGxheTpibG9jaztmb250LXNpemU6MS4yNXJlbSA7d2lkdGg6Zml0LWNvbnRlbnQ7aGVpZ2h0OjUzcHg7cGFkZGluZzoycHggMTVweCAwcHggMTVweDtjdXJzb3I6cG9pbnRlcjtsaW5lLWhlaWdodDo1M3B4O3RleHQtZGVjb3JhdGlvbjpub25lO2JhY2tncm91bmQtc2l6ZToxMDAlOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDozcHg7IC1tb3otYm9yZGVyLXJhZGl1cy10b3ByaWdodDozcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDowcHg7IC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjA7IC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7IC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowOyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czozcHg7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6M3B4OyBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czpweDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowcHg7IHRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgLW1zLXRyYW5zZm9ybTpyb3RhdGUoLTkwZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC05MGRlZyk7IH0gLmZvb3Rlck11bHRpQWRkcmVzczMgeyBib3JkZXItcmlnaHQ6MXB4ICM5MTkxOTEgc29saWQ7IHBhZGRpbmctcmlnaHQ6NzBweDsgbWFyZ2luLWxlZnQ6MTRweDsgY29sb3I6IzU3NTc1NzsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMiB7IGJvcmRlci1yaWdodDoxcHggIzkxOTE5MSBzb2xpZDsgcGFkZGluZy1yaWdodDoxNTBweDsgbWFyZ2luLWxlZnQ6OTNweDsgY29sb3I6IzU3NTc1NzsgfSAuZm9vdGVyTXVsdGlBZGRyZXNzMSB7IG1hcmdpbi1sZWZ0OjM0NXB4OyBjb2xvcjojNTc1NzU3OyB9IC5zbWFsbEFjdGlvbldlYnNpdGVDb2xvciB7IGJhY2tncm91bmQgOnVybCgiL2ltYWdlcy9ibF9iZzIucG5nIikgbGVmdCB0b3AgcmVwZWF0LXg7IGNvbG9yOnJnYigwLDAsMCk7IH0gLnNtYWxsQWN0aW9uV2Vic2l0ZUNvbG9yOmhvdmVyeyBiYWNrZ3JvdW5kIDp1cmwoIi9pbWFnZXMvbWVudTEwX2JnLnBuZyIpIGxlZnQgdG9wIHJlcGVhdC14OyBjb2xvcjojRkZGOyB9IC5uYXYgbGkgYS50b3BfbGluay5pc0JvbGQsIC5uYXYgbGkgYS5pc0JvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI21haW5IZWFkZXIgZGl2LmJveDE1UGFkZGluZ3sgcGFkZGluZy10b3A6MTVweDsgfSAubmF2IC5ub3RDbGlja2FibGV7IGN1cnNvcjpkZWZhdWx0ICFpbXBvcnRhbnQ7IH0gLlMxMDBQZXJjZW50V2lkdGh7IHdpZHRoOjEwMCU7IH0gI2ZpbHRlck1haW5Cb3ggeyBjb2xvcjojMDAwOyB9ICNmaWx0ZXJNYWluQm94IC5maWx0ZXJTcGFuLCAjZmlsdGVyTWFpbkJveCAuZmlsdGVyQ2hlY2ssICNmaWx0ZXJNYWluQm94IC5yYWRpb1NvcnQgeyBjdXJzb3I6cG9pbnRlcjsgfSAuYkNvZGVTdHlsZSB7IGZsb2F0OmxlZnQ7IHdpZHRoOjI1JTsgZm9udC1zaXplOjAuOGVtOyBwYWRkaW5nLXRvcDoxNXB4OyBwYWRkaW5nLWJvdHRvbToxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOjsgfSAuYkNvZGVTb3J0IHsgZmxvYXQ6bGVmdDsgd2lkdGg6MTYlOyBiYWNrZ3JvdW5kLWNvbG9yOjsgZm9udC1zaXplOjAuOGVtOyBwYWRkaW5nLXRvcDoxNXB4OyBwYWRkaW5nLWJvdHRvbToxNXB4OyB9IC5iQ29kZVNvcnQgLmJDb2RlSGVhZGluZywgLmJDb2RlU3R5bGUgLmJDb2RlSGVhZGluZyB7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWxlZnQ6MnB4OyB9IC5wYWdlX25hbWU0Mnt3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MCAwcHggMTBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDt9IC5wYWdlX25hbWU0MiBoMiB7Zm9udC1zaXplOjEuNXJlbSA7IGNvbG9yOiMwMDAwMDA7Zm9udC13ZWlnaHQ6bm9ybWFsO2JvcmRlcjpub25lO30gLnBhZ2VfbmFtZTQyIGgyLm5vdGZpcnN0IHtmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDtmb250LXdlaWdodDpub3JtYWw7bWFyZ2luLXRvcDowcHg7cGFkZGluZy10b3A6NDBweDtib3JkZXItdG9wOjFweCAjY2NjY2NjIHNvbGlkO3dpZHRoOjkyMHB4O30gI2ZpbHRlck1haW5Cb3gubmV3Y2Fyc3N0eWxlMnsgLW1vei1ib3JkZXItcmFkaXVzOjBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjBweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6MHB4OyBib3JkZXItcmFkaXVzOjBweDsgYm9yZGVyOm5vbmU7IGJvcmRlci10b3A6MXB4IHNvbGlkICNiZWJlYmU7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNiZWJlYmU7IHdpZHRoOjk1NXB4OyBsZWZ0OjNweDsgfSBkaXYuaW1kZXYgbGFiZWx7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmctdG9wOjEwcHg7IH0gZGl2LmltZGV2IGRpdnsgYmFja2dyb3VuZDpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiNEOUQ5RDk7IHBhZGRpbmc6MTBweCAwcHggMTBweCAwcHg7IHdpZHRoOjEwMCU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IH0gZGl2LmltZGV2X2lubmVyIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBtYXJnaW4tbGVmdDozMHB4OyB3aWR0aDo5MCUgIWltcG9ydGFudDsgfSB1bC5xdWl6IHtwYWRkaW5nOjEwcHggMCAxMHB4IDIwcHg7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBoZWlnaHQ6MTc1cHg7fSB1bC5xdWl6IGxpIHtwYWRkaW5nOjEwcHg7fSB1bC5xdWl6IGxpIGlucHV0IHttYXJnaW4tcmlnaHQ6MTBweDt9IC5uZXdzLWJvZHkge3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpyaWdodDtmb250LXNpemU6MC44MTNyZW0gO2NvbG9yOiMxOTE5MTk7cGFkZGluZy1yaWdodDoxNXB4O21hcmdpbi10b3A6LTIwcHg7cGFkZGluZy1ib3R0b206MTBweDt9IC5uZXdzLWFsbC10ZXh0IHtjb2xvcjojMTkxOTE5O30gI25ld3NDb250YWluZXIgLnRleHRfYm94MTEgaW1nIHsgbWF4LXdpZHRoOjY0MHB4OyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46NXB4IGF1dG87IH0gI25ld3NDb250YWluZXIgLnVzZWR7IGNsZWFyOmJvdGg7IH0gLmhvbWVfYWN0aW9uX2FkaiB7IHdpZHRoOjk2MXB4OyB9IC5ob21lX2FjdGlvbl9hZGoyIHsgd2lkdGg6NzMwcHghaW1wb3J0YW50OyBoZWlnaHQ6NjAwcHghaW1wb3J0YW50OyB9IC5ob21lX2VtYWlseyB3aWR0aDoyMzJweDsgbWFyZ2luLWxlZnQ6NXB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAud2lkZ2V0X21lbnVfYWRqMXsgZm9udC1zaXplOjAuOGVtOyB9IC53aWRnZXRfbWVudV9hZGoyeyBmbG9hdDpyaWdodDtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTJweDsgfSAud2lkZ2V0X21lbnVfZXh0ZW5kZWRQaG9uZXsgZm9udC1zaXplOjAuOGVtOyBtYXJnaW4tbGVmdDoxMDRweDsgdG9wOjEzMnB4OyB9IC53aWRnZXRfbWVudV9hZGozeyBmb250LXNpemU6MC44ZW07Y29sb3I6IzU3NTc1Nztwb3NpdGlvbjpyZWxhdGl2ZTtsZWZ0Oi04cHg7IH0gLndpZGdldF9tZW51X2FkajR7IHBvc2l0aW9uOnJlbGF0aXZlOyBmb250LXNpemU6MC44ZW07IGRpc3BsYXk6dGFibGU7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLnBob25lX3RleHQucmlnaHQgeyBmbG9hdDpub25lOyBoZWlnaHQ6aW5pdGlhbDsgbWFyZ2luLWxlZnQ6YXV0bzsgd2lkdGg6aW5oZXJpdDsgfSAucGhvbmVfdGV4dCAudGVsIHsgbWFyZ2luLWxlZnQ6MTBweDsgfSAucGhvbmVfdGV4dCBsYWJlbCB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IG1hcmdpbi1ib3R0b206NHB4OyB9IC53aWRnZXRfbWVudV9hZGo0LnJpZ2h0IHsgcGFkZGluZy1sZWZ0OjEwcHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLndpZGdldF9tZW51X2FkajQubGVmdCB7IHBhZGRpbmctcmlnaHQ6MTBweDsgd2lkdGg6aW5oZXJpdDsgfSAud2lkZ2V0X21lbnVfYWRqNnsgZm9udC1zaXplOjAuOGVtO3Bvc2l0aW9uOnJlbGF0aXZlO2xlZnQ6LTNweDtjb2xvcjojNTc1NzU3O2N1cnNvcjpwb2ludGVyOyB9IC53aWRnZXRfZXhwcmVzc19tYWlsX3Bob25lX3RpdGxleyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjYWFhO3RleHQtYWxpZ246IGNlbnRlcjtmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1ib3R0b206OHB4OyBwYWRkaW5nLXRvcDo4cHg7IGNvbG9yOiMwMDAwMDA7IH0gLndpZGdldF9leHByZXNzX21haWxfYWRqMXsgcGFkZGluZzoxNXB4IDEwcHg7IGxpbmUtaGVpZ2h0OjYwcHg7IGZvbnQtc2l6ZToyZW07IHBhZGRpbmc6MTVweCAxMHB4O3RleHQtYWxpZ246Y2VudGVyOyB9IC5iYW5uZXJQb3B1cENsb3NleyBsZWZ0OjcxMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTVweDsgdG9wOjIwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC5wcmljZU5vdGUgeyBjb2xvcjojNzU3NTc1OyBmb250LXN0eWxlOml0YWxpYzsgdGV4dC1hbGlnbjpqdXN0aWZ5OyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZvbnQtc2l6ZTowLjc1cmVtICFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MTRweDsgfSAuc3RhY2tlZERpc2NsYWltZXJ7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi10b3A6MTBweDsgfSBzcGFuLnN0YWNrZWREaXNjbGFpbWVyOmJlZm9yZXsgY29udGVudDoiKioiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjFyZW07IH0gLnRvcHJpbnR7IGRpc3BsYXk6bm9uZTsgfSAucmVmZmVyZW5jZUNvbnRlbnREZW1vLCAucmVmZmVyZW5jZUNvbnRlbnRDbGVhcmFuY2V7IHBhZGRpbmc6MzBweCAyMHB4OyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjY2NjOyBtYXJnaW4tYm90dG9tOjIwcHg7IH0gLmJveDJfZGV0YWlsc190ZXh0MiAuY29tcGFyZUJ1dHRvbiwgLmJveDJfZGV0YWlsc190ZXh0MjIgLmNvbXBhcmVCdXR0b257IHBvc2l0aW9uOmFic29sdXRlOyBtYXJnaW4tdG9wOi0yMHB4OyB6LWluZGV4OjE7IGxlZnQ6LTMwcHg7IH0gLnZkcHsgY2xlYXI6Ym90aDsgd2lkdGg6MTYwcHg7IH0gLmNvbXBhcmVCdXR0b257IHRyYW5zaXRpb246Ym94LXNoYWRvdyAwLjI1cyBlYXNlLW91dCAwczsgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC4yNXMgZWFzZS1vdXQgMHM7IGRpc3BsYXk6bm9uZTsgfSBkaXYjc2xpZGVyLXByby0xMiB7IGJvcmRlcjoxcHggc29saWQgI0VCRUJFQjsgYm9yZGVyLXJhZGl1czozcHg7IGJhY2tncm91bmQ6I2ZmZjsgfSAjc2xpZGVyUHJvbW9BbGVydHsgYm9yZGVyLXJhZGl1czozcHggM3B4IDAgMDsgfSAuc2xpZGUtd3JhcHBlcnsgYm9yZGVyLXJhZGl1czozcHg7IH0gI3NsaWRlaXQgbGFiZWwub3BlbnsgYm9yZGVyLXJhZGl1czozcHggMCAwIDNweDsgfSBpbWcuaW1hZ2UgeyBib3JkZXItcmFkaXVzOjNweDsgfSAubmV3VmRwVmlld2VyIC5jb21wYXJlQnV0dG9ueyBwb3NpdGlvbjphYnNvbHV0ZTsgYm90dG9tOjJweDsgcmlnaHQ6MHB4OyB6LWluZGV4OjExMTE7IH0gLmxpdmVBbGVydF9saW5reyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAubGl2ZUFsZXJ0X2xpbms6aG92ZXIgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyB9IC5idXR0b24tdG9hc3RyeyBiYWNrZ3JvdW5kOiNGRkY7cGFkZGluZzo0cHggMjBweDtib3JkZXItcmFkaXVzOjVweDsgY29sb3I6I0JEMzYyRiFpbXBvcnRhbnQ7IH0gLmJ1dHRvbi10b2FzdHI6aG92ZXJ7IGJhY2tncm91bmQ6IzAwMDsgY29sb3I6I0ZGRjsgfSAucmV0dXJuUG9wdXBfc3VibWl0IHNwYW4geyBwb3NpdGlvbjphYnNvbHV0ZSFpbXBvcnRhbnQ7IHRvcDo1MCUhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXIhaW1wb3J0YW50OyBsZWZ0OjAhaW1wb3J0YW50OyByaWdodDowIWltcG9ydGFudDsgcGFkZGluZzowIDhweCAwIDhweCFpbXBvcnRhbnQ7IGN1cnNvcjpwb2ludGVyIWltcG9ydGFudDsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IG1hcmdpbjowIWltcG9ydGFudDsgY29sb3I6I0ZGRiFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6LTlweCFpbXBvcnRhbnQ7IH0gcmV0dXJuUG9wdXBfc3VibWl0OmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojMGJiMWUwOyBjb2xvcjojZmZmOyB9IC5yZXR1cm5Qb3B1cF9zdWJtaXQgeyBkaXNwbGF5OmJsb2NrOyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci1yYWRpdXM6NXB4OyBsZWZ0OjIyOHB4OyB6LWluZGV4OjU7IHdpZHRoOjIyNXB4OyBoZWlnaHQ6NDBweDsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6IzAwNDA4MDsgdGV4dC1zaGFkb3c6MXB4IDFweCAjMDAyYjQ2OyBjb2xvcjojZmZmOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItY29sb3I6IzMzMzMzMzsgZm9udC1zaXplOjFyZW0gOyBsaW5lLWhlaWdodDoxOXB4OyBmb250LXdlaWdodDpub3JtYWw7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IH0gI3JldHVyblBvcHVwRm9ybV93cmFwcGVyIHsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDpyZ2JhKDY2LDY2LDY2LDEpOyBib3JkZXItc3R5bGU6bm9uZTsgYm9yZGVyLXJhZGl1czoxMXB4OyBsZWZ0OjI4MHB4OyB0b3A6MTU1cHg7IHotaW5kZXg6Mjsgd2lkdGg6NTMxcHg7IGhlaWdodDozODRweDsgcG9zaXRpb246YWJzb2x1dGU7IH0gI3JldHVyblBvcHVwVGlsdGV7IHdpZHRoOjMzNXB4OyBmbG9hdDpyaWdodDsgbWFyZ2luOjIwcHg7IGNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gI3JldHVyblBvcHVwVGlsdGUgLnJwX21jeyBmb250LXNpemU6MS4xMjVyZW0gIWltcG9ydGFudDsgfSAjcmV0dXJuUG9wdXBUaWx0ZTJ7IGNvbG9yOiNGRkY7IG1hcmdpbjoyMHB4IDEwcHggMjBweCAyMHB4OyBwYWRkaW5nOjA7IH0gLnJldHVyblBvcHVwRm9ybV9sYWJlbCB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MTRweDsgY29sb3I6I2JmYmZiZjsgbWFyZ2luLWxlZnQ6MjBweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnJldHVyblBvcHVwRm9ybV90YWJsZSB0ciB0ZHsgcGFkZGluZy1ib3R0b206MTBweDsgfSAucnBfbWMgeyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgY29sb3I6IzAwNDA4MCFpbXBvcnRhbnQ7IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IG1hcmdpbjowIWltcG9ydGFudDsgfSAjZXhpdFBvcHVwQ29udGFpbmVyeyBwYWRkaW5nOjA7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgfSAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfZm9ybXsgaGVpZ2h0OjM0cmVtOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy90cmFkZWluLWV4aXRwb3B1cC1mci5wbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWV4aXQtcG9wdXAtYmdjb2wsICNlZWUpOyB9IGJvZHkuRU5HTElTSCAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfZm9ybXsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9wb3B1cHMvdHJhZGVpbi1leGl0cG9wdXAtZW4ucG5nKTsgfSAuZXhpdF9wb3B1cF9idXR0b25zIGJ1dHRvbiB7IHdpZHRoOjExcmVtOyBmb250LXdlaWdodDpib2xkOyB9IC5leGl0X3BvcHVwX3RleHRfbGluZV8yeyBtYXJnaW4tdG9wOjI3cHg7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5leGl0X3BvcHVwX3RleHRfbGluZV8zeyBmb250LXNpemU6MS42MjVyZW0gOyBtYXJnaW4tYm90dG9tOjNweDsgZm9udC13ZWlnaHQ6Ym9sZGVyOyB9IC5leGl0X3BvcHVwX3RleHRfbGluZV81IHsgbWFyZ2luLWJvdHRvbToyMHB4OyBmb250LXNpemU6MS42MjVyZW0gOyBmb250LXdlaWdodDpib2xkZXI7IG1hcmdpbi10b3A6NjNweDsgfSAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfdGl0bGV7IGhlaWdodDo5NXB4OyB3aWR0aDo1NzBweDsgbWFyZ2luLXRvcDoyMHB4OyB9ICNleGl0X3BvcHVwX2FjY3V0cmFkZV90aXRsZS5fRlJFTkNIeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL3BvcHVwcy9hY2N1LXRyYWRlLWV4aXQtdGl0bGVfZnIucG5nKTsgfSAjZXhpdF9wb3B1cF9hY2N1dHJhZGVfdGl0bGUuX0VOR0xJU0h7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcG9wdXBzL2FjY3UtdHJhZGUtZXhpdC10aXRsZV9lbi5wbmcpOyB9ICNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lcnsgd2lkdGg6NDgwcHg7IGhlaWdodDo1MTBweDsgfSAjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXIgLnBvcHVwX2JneyB3aWR0aDo0ODBweDsgaGVpZ2h0OjUxNXB4OyB9ICNiZXN0UHJpY2VWZHBOZXdQb3B1cENvbnRhaW5lciAucG9wdXBfYmd7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCcvaW1hZ2VzL3BvcHVwcy9mci9iZXN0UHJpY2VOZXdWZHAucG5nJyk7IH0gLnBvcHVwX2JneyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IGJhY2tncm91bmQtc2l6ZTo0ODBweCA1MTVweDsgfSAucG9wdXBGb3JtIC5hc3Rlcmlza3sgY29sb3I6I2QwMDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowOyBmb250LXNpemU6aW5oZXJpdDsgbWFyZ2luOjA7IH0gLnBvcHVwRm9ybXsgei1pbmRleDo1MDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoyNDhweDsgaGVpZ2h0OjI0OXB4OyBsZWZ0OjgwcHg7IGJhY2tncm91bmQ6dXJsKCIvaW1hZ2VzL2NvdXBvbi1mb3JtLWJnLTIucG5nIikgbm8tcmVwZWF0OyB3aWR0aDozMzVweDsgcGFkZGluZzozMHB4OyB9IC5wb3B1cEZvcm1UaXRsZXsgaGVpZ2h0OjQwcHg7IG1hcmdpbjo4cHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLnBvcHVwRm9ybUlucHV0cyB0ZCB7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHRleHQtYWxpZ246cmlnaHQ7IHBhZGRpbmctcmlnaHQ6MTBweDsgcGFkZGluZy1ib3R0b206M3B4OyB9IC5wb3B1cEZvcm0gaW5wdXR7IHdpZHRoOjIxMHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50eyB3aWR0aDo2MDBweDsgcGFkZGluZzozMHB4IDMwcHg7IGhlaWdodDphdXRvOyBjb2xvcjojMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IHotaW5kZXg6MTAwMDAyMTsgfSAjcHJvbW9EaXNjb3ZlckJ1dHRvbnsgfSAubmV3VmRwVmlld2VyIHsgd2lkdGg6NjQwcHg7IGhlaWdodDo0ODBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MjBweDsgfSAubG9jYXRpb24tbmFtZXMgeyBwb3NpdGlvbjpzdGF0aWM7IH0gI01haW5NZW51X0RFQUxFUlNISVBTID4gdWwuc3ViID4gbGkgPiB1bCB7IHBvc2l0aW9uOnN0YXRpYzsgfSAuaW1nX21lbnUudXBfbWVudSB1bC5uYXYgdWwuc3ViIGxpIC5sb2NhdGlvbi1uYW1lcyB7IG1pbi13aWR0aDoyMDBweDsgfSAjTWFpbk1lbnVfREVBTEVSU0hJUFMgbGkubG9jYXRpb24tbmFtZXMgeyBtaW4td2lkdGg6MjAwcHg7IH0gLmxvY2F0aW9uLW5hbWVzLCAubG9jYXRpb24tbmFtZXMgbGkgeyBsaXN0LXN0eWxlOm5vbmU7IH0gLkwxMDAgeyBsZWZ0OjEwMCU7IH0gLlIxMDAgeyByaWdodDoxMDAlOyB9IC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscyB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcGFkZGluZzoxNHB4OyBib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTsgZGlzcGxheTpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBtaW4td2lkdGg6MjkwcHg7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzID4gLnRpdGxlIHsgbWFyZ2luLWJvdHRvbToxZW07IGZvbnQtc2l6ZTppbml0aWFsOyBjb2xvcjojMDAwMDAwOyB9IC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscyA+IC5sb2NhdGlvbi1kZXRhaWxzLWxvZ28gPiBpbWcgeyBtYXgtd2lkdGg6MTAwJTsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gbGkubG9jYXRpb24tbmFtZXM6aG92ZXIgLmxvY2F0aW9uLWRldGFpbHMgeyBkaXNwbGF5OmJsb2NrOyB9IGxpLmxvY2F0aW9uLW5hbWVzOmhvdmVyIC5tYWlubWVudS1zdWJtZW51IHsgb3BhY2l0eToxOyB2aXNpYmlsaXR5OnZpc2libGU7IH0gLmxvY2F0aW9uLW5hbWVzIC5sb2NhdGlvbi1kZXRhaWxzIC5sb2NhdGlvbi1kZXRhaWxzLWxvZ28geyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZTVlNWU1OyBtYXJnaW4tYm90dG9tOjhweDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI01haW5NZW51X0RFQUxFUlNISVBTIC5sb2NhdGlvbi1uYW1lcyAubWFpbm1lbnUtc3VibWVudSAubG9jYXRpb24tZGV0YWlscyB7IG1heC1oZWlnaHQ6NjB2aDsgcG9zaXRpb246c3RhdGljOyB9IC51cF9tZW51IHVsLm5hdiAubG9jYXRpb24tZGV0YWlscy1pbmZvIGEgeyBjb2xvcjojMDAwMDAwOyBwYWRkaW5nOjA7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyAubG9jYXRpb24tc3BhY2luZy1tbC0xMyB7IG1hcmdpbi1sZWZ0OjEzLjQ5cHg7IH0gLnVwX21lbnUgdWwubmF2IGxpLmRldGFpbHMtaW5mby1saW5rIGEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAudXBfbWVudSB1bC5uYXYgLmRldGFpbHMtaW5mby1saW5rOmhvdmVyIGEgeyBjb2xvcjojZmZmZmZmOyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyA+IHVsLnN1YiA+IGxpID4gdWwgeyBtYXgtaGVpZ2h0OjYwdmg7IG92ZXJmbG93LXk6YXV0bzsgb3ZlcmZsb3cteDpoaWRkZW47IH0gYm9keSAud3JhcHBlciAudXBfbWVudSAubmF2ID4gbGk6aG92ZXIgdWwuc3ViIGxpOmhvdmVyIC5kZXRhaWxzLWluZm8tbGluayBsaTpob3ZlciBhIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojMDA3ZmE1OyB9IGxpLmRldGFpbHMtaW5mby1saW5rOmhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojMDA3ZmE1OyBjb2xvcjojZmZmZmZmOyB9IC5sb2NhdGlvbi1kZXRhaWxzLWluZm8gdWwgbGkgeyBwYWRkaW5nLXRvcDo0cHg7IHBhZGRpbmctYm90dG9tOjRweDsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXNpemU6MC44NzVyZW0gOyBtYXJnaW4tYm90dG9tOjVweDsgfSAubG9jYXRpb24tZGV0YWlscy1pbmZvID4gdWwgPiBsaTpiZWZvcmUgeyBjb250ZW50OiIgIjsgYm9yZGVyOnNvbGlkOyBib3JkZXItd2lkdGg6MCAycHggMnB4IDA7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwYWRkaW5nOjJweDsgYm9yZGVyLXJhZGl1czoycHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IG1hcmdpbi1yaWdodDo3cHg7IG1hcmdpbi1ib3R0b206MXB4OyB9ICNNYWluTWVudV9ERUFMRVJTSElQUyB1bCB7IHBhZGRpbmc6MDsgfSBAbWVkaWEgcHJpbnR7IC50b3ByaW50eyBkaXNwbGF5OmJsb2NrO30gfSAubXItMTUgeyBtYXJnaW4tcmlnaHQ6MTVweDsgfSAubWwtMTUgeyBtYXJnaW4tbGVmdDoxNXB4OyB9IC5tbC03IHsgbWFyZ2luLWxlZnQ6N3B4OyB9IHNwYW4uYXJyb3cgeyBib3JkZXI6c29saWQ7IGJvcmRlci13aWR0aDowIDJweCAycHggMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MnB4OyBib3JkZXItcmFkaXVzOjFweDsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDotMnB4OyB9IHNwYW4uYXJyb3cuYXJyb3ctbGFyZ2UgeyBib3JkZXItd2lkdGg6MCAzcHggM3B4IDA7IHBhZGRpbmc6NHB4OyBib3JkZXItcmFkaXVzOjNweDsgfSBzcGFuLmFycm93LmFycm93LXJpZ2h0IHsgdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgfSBzcGFuLmFycm93LmFycm93LWxlZnQgeyB0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpOyB9IHNwYW4uYXJyb3cuYXJyb3ctdXAgeyB0cmFuc2Zvcm06cm90YXRlKC0xMzVkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTEzNWRlZyk7IH0gc3Bhbi5hcnJvdy5hcnJvdy1kb3duIHsgdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7IH0gLnRvcGJhcjNidG5XcmFweyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmOyBib3JkZXI6MnB4IHNvbGlkICNmZmZmZmY7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgaGVpZ2h0OjQycHg7IHBhZGRpbmc6MCAyMHB4OyBjb2xvcjojZmZmZmZmOyB9IC50b3BiYXIzYnRueyBmb250LXdlaWdodDpib2xkOyB0cmFuc2l0aW9uOi4yczsgZm9udC1zaXplOjAuODc1cmVtIDsgdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsgYm9yZGVyLWNvbG9yOndoaXRlOyB0ZXh0LWFsaWduOmNlbnRlcjsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6YmxvY2s7IHRleHQtZGVjb3JhdGlvbjpub25lOyBjb2xvcjppbmhlcml0OyB9IC50cmFkZUluQmFyX2J0bnsgZm9udC13ZWlnaHQ6Ym9sZDsgYm9yZGVyLXJhZGl1czo1cHg7IHRleHQtdHJhbnNmb3JtOnZhcigtLWNlcnQtdHh0LXRyYW5zZm9ybSwgdmFyKC0tdHh0LXVwcGVyKSk7IHRyYW5zaXRpb246LjJzOyBib3JkZXI6MnB4IHNvbGlkIHRyYW5zcGFyZW50OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjp3aGl0ZTsgYm9yZGVyLWNvbG9yOndoaXRlOyB0ZXh0LWFsaWduOmNlbnRlcjsgY3Vyc29yOnBvaW50ZXI7IGhlaWdodDo1MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWY7IGNvbG9yOiAjZmZmZmZmOyBib3JkZXI6MnB4IHNvbGlkICNmZmZmZmY7IG1pbi13aWR0aDoyMDBweDsgbWF4LXdpZHRoOjIwMHB4OyB9IC50cmFkZUluQmFyX2J0bjpob3ZlciwudG9wYmFyM2J0bldyYXA6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAwMmM1ZiFpbXBvcnRhbnQ7IH0gI2dSYXRpbmdMYXJnZXsgYmFja2dyb3VuZDojMDAzNTdjOyBjb2xvcjojZmZmZmZmOyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6NXB4IDBweDsgbWFyZ2luLXRvcDo1cHg7IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjNweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjE1MHB4OyBtYXJnaW4tbGVmdDozMHB4OyB9ICNnUmF0aW5neyBjdXJzb3I6cG9pbnRlcjsgfSAudHJhZGVJblZpbklucHV0eyBoZWlnaHQ6NTBweDsgYm9yZGVyLXJhZGl1czo1cHg7IHRleHQtYWxpZ246Y2VudGVyOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IGZvbnQtc2l6ZToxcmVtIDsgY29sb3I6IzNjMzgzNjsgYm9yZGVyOjJweCBzb2xpZCAjZmZmZmZmOyB9IC50cmFkZUluVmluSW5wdXQ6OnBsYWNlaG9sZGVyeyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiMzYzM4MzY7IH0gLnRyYWRlSW5PckxhYmVseyBtYXgtd2lkdGg6MjVweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXJ7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MTJweDsgbWFyZ2luLXRvcDoxMHB4OyBmb250LXNpemU6MXJlbSA7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3R7IGRpc3BsYXk6bm9uZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC5uaXZNYWtlTW9kZWxTZWxlY3RDb250YWluZXIgLm5pdk1ha2VNb2RlbFNlbGVjdExhYmVseyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luOjAgMTJweDsgY3Vyc29yOnBvaW50ZXI7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3Q6Y2hlY2tlZCtsYWJlbHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgYmxhY2s7IH0gLnRyYWRpblNlbGVjdFd7IG1pbi13aWR0aDoyMDBweDsgbWF4LXdpZHRoOjIwMHB4OyB9IC50cmFkaW5TZWxlY3RXLndpdGhWSU5NYWtleyBtaW4td2lkdGg6MTQwcHg7IG1heC13aWR0aDoxNDBweDsgfSAudHJhZGluU2VsZWN0Vy53aXRoVklOWWVhcnsgbWluLXdpZHRoOjgwcHg7IG1heC13aWR0aDo4MHB4OyB9IC50cmFkaW5JbnB1dFd7IG1pbi13aWR0aDoyMDBweDsgbWF4LXdpZHRoOjIwMHB4OyB9IC50cmFkaW5TZWxlY3RBeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAudHJhZGluU2VsZWN0QTphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyBwb2ludGVyLWV2ZW50czpub25lOyB9IC50cmFkaW5TZWxlY3R7IGNvbG9yOiMzYzM4MzY7IGJvcmRlcjoycHggc29saWQgI2ZmZmZmZjsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6MTBweCAxMHB4OyBmb250LXNpemU6MXJlbSA7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyB3aWR0aDoxMDAlOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IHBhZGRpbmctcmlnaHQ6MjdweDsgaGVpZ2h0OjUwcHg7IH0gLnRyYWRpblNlbGVjdDphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyB9IC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIHNwYW57IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluQmFyTXVsdGlzZWxlY3R7IHdpZHRoOjU2OHB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItd2lkdGg6MXB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItY29sb3I6I2E5YTlhOSFpbXBvcnRhbnQ7IH0gLnVpLW11bHRpc2VsZWN0LW1lbnUudHJhZGVJbkJhck11bHRpc2VsZWN0eyBtaW4td2lkdGg6MjcycHg7IHotaW5kZXg6MTAwMDAyMDsgbWF4LWhlaWdodDoxMjBweDsgb3ZlcmZsb3c6c2Nyb2xsOyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcHsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjVweDsgfSAudHJhZGVJbkJhckRlYWxlclN0ZXAgLnRyYWRlSW5CYXJEZWFsZXJTdGVwTWFrZU1vZGVsWWVhcnsgZm9udC13ZWlnaHQ6NzAwOyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcCBzcGFueyBtYXJnaW46MCFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjcwMCFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAwMDAhaW1wb3J0YW50OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMDI0cHgpIHsgLnRyYWRpblNlbGVjdFcgeyBtaW4td2lkdGg6Y2FsYygoMjAwcHggLSB2YXIoLS1zKSkgLSB2YXIoLS1zLCAwLjVyZW0pKTsgbWF4LXdpZHRoOmNhbGMoKDIwMHB4IC0gdmFyKC0tcykpIC0gdmFyKC0tcywgMC41cmVtKSk7IH0gfSAjZ29vZ2xlUmV2aWV3c0Zvb3RlcnsgbWFyZ2luOjAgYXV0bzsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjVweDsgbWF4LXdpZHRoOjk0MHB4OyBoZWlnaHQ6Mjc1cHg7IH0gLnJldmlldy1pdGVtIHsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjE4NXB4OyB3aWR0aDoxMDAlOyBtYXgtd2lkdGg6NDYwcHg7IG1hcmdpbi1yaWdodDoxMHB4OyBib3JkZXItdG9wOjRweCBzb2xpZCAjRUJFQkVCOyBwYWRkaW5nLXRvcDoxMHB4OyB9IC5maXJzdGNoYXJ1cDo6Zmlyc3QtbGV0dGVyeyB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7IH0gSS5pY29uLWNvbXBhcmUtMSwgc3Bhbi5pY29uLWNvbXBhcmUtMXsgY29sb3I6IzAwMmM1ZjsgfSBJLmljb24tY29tcGFyZS0xOmhvdmVyLCBzcGFuLmljb24tY29tcGFyZS0xOmhvdmVyeyBjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IHRleHQtc2hhZG93OiMwMDJjNWYgMXB4IDFweCwgIzAwMmM1ZiAtMXB4IDFweCwgIzAwMmM1ZiAtMXB4IC0xcHgsICMwMDJjNWYgMXB4IC0xcHg7IGJvcmRlci1yYWRpdXM6MjBweDsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmOyB9IC5nUmF0aW5nLWljb24gaSB7IGZvbnQtc2l6ZToxLjA2M3JlbSA7IH0gLmdSYXRpbmctaWNvbiNnUmF0aW5nIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHdpZHRoOjkwcHg7IGhlaWdodDoyOHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDdmYTU7IGNvbG9yOndoaXRlOyBjb2xvcjojZmZmZmZmOyBjb2xvcjojZmZmZmZmOyBnYXA6N3B4OyB9IC5nUmF0aW5nLWltZyNnUmF0aW5nIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9ncmF0aW5nLnBuZyk7IGNvbG9yOiMzNTZDRjI7IHdpZHRoOjk1cHg7IGhlaWdodDoyOHB4OyBwYWRkaW5nOjRweCAzMXB4IDEwcHggMTBweDsgbWFyZ2luLXRvcDoxcHg7IH0gI2dSYXRpbmd7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjEuMDYzcmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpibG9jazsgfSBJTlBVVFt0eXBlPSJ0ZXh0Il0udmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IElOUFVUW3R5cGU9InRlbCJdLnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSBJTlBVVFt0eXBlPSJlbWFpbCJdLnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSBJTlBVVFt0eXBlPSJwYXNzd29yZCJdLnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGMgIWltcG9ydGFudDsgfSBIMS5kZWZhdWx0eyBmb250LXNpemU6MS44NzVyZW0gOyBjb2xvcjojMDAwMDAwOyBmb250LXdlaWdodDpub3JtYWw7IGNsZWFyOmJvdGg7IHBhZGRpbmc6MCAwIDI1cHggMDsgfSBIMS5kZWZhdWx0IEF7IHRleHQtZGVjb3JhdGlvbjpub25lOyB9IEgxLmRlZmF1bHQgSS5pY29uLCBIMS5kZWZhdWx0IHNwYW4uaWNvbiB7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjNweDsgaGVpZ2h0OjI5cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjEwcHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IG1hcmdpbi1yaWdodDoxMHB4OyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2U0ZGNkMzsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSBIMS5kZWZhdWx0IEkuaWNvbi5tdWx0aUxpbmVIMSwgSDEuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDF7IG1hcmdpbi10b3A6MTBweDsgfSBIMS5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDEsIEgxLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMXsgbWFyZ2luLXRvcDoycHg7IH0gSDEuZGVmYXVsdCA+IERJVnsgZGlzcGxheTp0YWJsZS1yb3c7IH0gSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MS4xMjVyZW0gOyB9IEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgzKXsgZm9udC1zaXplOjAuOHJlbTsgZm9udC1zaXplOjAuOHJlbTsgY29sb3I6I2JiYjsgcGFkZGluZy10b3A6NXB4OyB9IGgxLmNrZWRpdG9yLWRlZmF1bHQgeyBmb250LXdlaWdodDpib2xkOyBmb250LXNpemU6Mi4xMjVyZW0gOyBwYWRkaW5nOjAgMCAxNXB4IDA7IGNvbG9yOiMwMDAwMDA7IH0gaDEuY2tlZGl0b3ItZGVmYXVsdDo6YmVmb3JlIHsgY29udGVudDoiXGYwNTQiOyBmb250LWZhbWlseTpGb250QXdlc29tZTsgd2lkdGg6MjhweDsgaGVpZ2h0OjM1cHg7IG1hcmdpbi1yaWdodDoxMHB4OyBwYWRkaW5nOjRweCAwIDAgMTFweDsgYm9yZGVyLXJhZGl1czo0MXB4OyBmb250LXNpemU6MS45MzhyZW0gOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2U0ZGNkMzsgfSBIMi5kZWZhdWx0eyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjbGVhcjpib3RoOyBwYWRkaW5nOjEwcHggMDsgbWFyZ2luLXRvcDoxMHB4OyB9IEgyLmRlZmF1bHQgSS5pY29uLCBIMi5kZWZhdWx0IHNwYW4uaWNvbnsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjVweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS4zNzVyZW0gOyBtYXJnaW4tcmlnaHQ6MTBweDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwMDAwOyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IH0gSDIuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDIsIEgyLmRlZmF1bHQgc3Bhbi5pY29uLm11bHRpTGluZUgyeyBtYXJnaW4tdG9wOjdweDsgfSBIMi5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDIsIEgyLmRlZmF1bHQgc3Bhbi5pY29uLnNpbmdsZUxpbmVIMnsgbWFyZ2luLXRvcDowcHg7IH0gSDIuZGVmYXVsdCA+IERJVnsgZGlzcGxheTp0YWJsZS1yb3c7IH0gSDIuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IEgyLmRlZmF1bHQuY3JlZHNpaVVzZWRNaW5IZWlnaHQgLlRpdGxlVGV4dCB7IHdpZHRoOjgwJTsgfSBIMi5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6MTMwMXB4KSB7IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgI2ZpcnN0U2xpZGVySW1nIC5wbGFjZWhvbGRlcnsgd2lkdGg6ODAwcHg7IGhlaWdodDo2MDBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkICNmaXJzdFNsaWRlckltZyBJTUd7IG1heC13aWR0aDo4MDBweDsgbWF4LWhlaWdodDo2MDBweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgeyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXNpemU6MS40MzhyZW0gOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBJLmljb24sIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBzcGFuLmljb24geyB3aWR0aDoyOHB4OyBoZWlnaHQ6MzVweDsgZm9udC1zaXplOjEuOTM4cmVtIDsgcGFkZGluZy1sZWZ0OjExcHg7IGJvcmRlci1yYWRpdXM6NDFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgxLCBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgxLmRlZmF1bHQgc3Bhbi5pY29uLm11bHRpTGluZUgxeyBtYXJnaW4tdG9wOjExcHg7IH0gQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMS5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDEsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDEuZGVmYXVsdCBzcGFuLmljb24uc2luZ2xlTGluZUgxeyBtYXJnaW4tdG9wOjFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgeyBmb250LXNpemU6MS44NzVyZW0gOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXNpemU6MS4xODhyZW0gOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdC5jcmVkc2lpVXNlZE1pbkhlaWdodCAuVGl0bGVUZXh0IHsgd2lkdGg6OTAlOyB9IEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDIsIEJPRFkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgSDIuZGVmYXVsdCBzcGFuLmljb24ubXVsdGlMaW5lSDJ7IG1hcmdpbi10b3A6MTFweDsgfSBCT0RZLmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIEgyLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMiwgQk9EWS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBIMi5kZWZhdWx0IHNwYW4uaWNvbi5zaW5nbGVMaW5lSDJ7IG1hcmdpbi10b3A6NHB4OyB9IH0gI2NpdHlUaXRsZSB7Y29sb3I6IzAwMDAwMDt9IC5tYWluX2xlZnRfYm94IHsgY29sb3I6IzAwMDAwMDsgfSAuZGl2VGFibGUgeyBkaXNwbGF5OnRhYmxlOyB9IC5kaXZUYWJsZS5hbGlnbi1jZW50ZXIgeyBtYXJnaW46MCBhdXRvOyB9IC5kaXZUYWJsZSAuZm9ybXNfYm94MjIsIC5kaXZUYWJsZSBmb3JtW25hbWU9InNlbmRFbWFpbEZvcm0iXSB7IHdpZHRoOjk0MHB4OyB9IC5kaXZUYWJsZSAudGV4dDMwIHsgd2lkdGg6MTAwJTsgfSAuc2VydmljZS10aXRsZSB7IG1hcmdpbi10b3A6MjBweDsgfSAuZnVsbFdpZHRoRm9ybSAuZm9ybXNfYm94MjIgeyB3aWR0aDoxMDAlOyBtYXJnaW4tbGVmdDowOyBtYXJnaW4tcmlnaHQ6MDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5mdWxsV2lkdGhGb3JtIC50ZXh0MzAgeyB3aWR0aDoxMDAlOyB9IC5mb3JtLWdyb3VwIHsgbWFyZ2luLWJvdHRvbToxNXB4OyB9IC5pbmxpbmUtZm9ybS1ncm91cCB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5mb3JtLWdyb3VwIGxhYmVsIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1heC13aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6NzAwOyB9IC5kaXZTZWFyY2hNc2cgeyBmb250LXNpemU6MC45cmVtOyBtYXJnaW46MjBweCAwIDAgMDsgcGFkZGluZzoxNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmN2Y3Zjc7IGJvcmRlci1yYWRpdXM6NXB4OyBjbGVhcjpib3RoOyB9IC5jcmVkc2lpTmV3IHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjQ3MHB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IGhlaWdodDphdXRvOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IH0gLmNyZWRzaWlOZXdWRFAgeyBkaXNwbGF5OmJsb2NrOyBtYXgtd2lkdGg6MzUwcHg7IG1pbi13aWR0aDozMDBweDsgd2lkdGg6MTAwJTsgY3Vyc29yOnBvaW50ZXI7IG92ZXJmbG93OmhpZGRlbjsgaGVpZ2h0OmF1dG87IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MDsgcmlnaHQ6MDsgfSAuY3JlZHNpaVVzZWRNaW5IZWlnaHQgeyBtaW4taGVpZ2h0OjEzMHB4OyB9IC5jcmVkc2lpRmluYW5jZSB7IGRpc3BsYXk6YmxvY2s7IG1heC13aWR0aDo5NjBweDsgbWluLXdpZHRoOjMwMHB4OyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgb3ZlcmZsb3c6aGlkZGVuOyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OjEyNXB4OyBtYXJnaW4tdG9wOjE1cHg7IH0gLmNyZWRzaWlGaW5hbmNlIC5jcmVkc2lpLXdpZGdldC1jb250YWluZXJ7IG1heC13aWR0aDoxMDAlIWltcG9ydGFudDsgfSAuY3JlZHNpaUZpbmFuY2VNZW51IHsgZGlzcGxheTpibG9jazsgbWF4LXdpZHRoOjM0NXB4OyBtaW4td2lkdGg6MzAwcHg7IHdpZHRoOjEwMCU7IGN1cnNvcjpwb2ludGVyOyBvdmVyZmxvdzpoaWRkZW47IGhlaWdodDphdXRvOyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjA7IHJpZ2h0OjA7IH0gLmNyZWRzaWlEaXYgLmNyZWRzaWlGaW5hbmNlTWVudSB7IG1heC13aWR0aDozNzVweDsgfSAuY3JlZHNpaUZpbmFuY2VNZW51IC5jcmVkc2lpLXdpZGdldHsgYm9yZGVyOjA7IH0gLnByb21vLWNhcmQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgaGVpZ2h0OmF1dG87IG1hcmdpbi1ib3R0b206MTBweDsgYmFja2dyb3VuZC1jb2xvcjojZjFmMWYxOyBwYWRkaW5nOjIwcHg7IG92ZXJmbG93OmhpZGRlbjsgfSAucHJvbW8tYm9keSAucGljX2JveDIgeyBtaW4taGVpZ2h0OjEzMHB4OyB9IC5wcm9tby1ob3ZlciB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHRvcDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgLXdlYmtpdC10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbW96LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tcy10cmFuc2l0aW9uOmFsbCAwLjNzOyAtby10cmFuc2l0aW9uOmFsbCAwLjNzOyB0cmFuc2l0aW9uOmFsbCAwLjNzOyBvcGFjaXR5OjA7IH0gLnByb21vLWJvZHk6aG92ZXIgLnByb21vLWhvdmVyIHsgb3BhY2l0eToxOyB9IC5wcm9tby1ib2R5OmhvdmVyIC5wcm9tby1pbmZvIHsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMSwxKTsgfSAucHJvbW8tbWFzayB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuNSk7IH0gLnByb21vLWluZm8geyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyByaWdodDowOyB0b3A6NTAlOyB3aWR0aDozNSU7IG1hcmdpbjphdXRvOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MjVweDsgLW1vei1ib3JkZXItcmFkaXVzOjI1cHg7IGJvcmRlci1yYWRpdXM6MjVweDsgLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgLW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0xNTAlKSBzY2FsZSgwLDApOyAtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMTUwJSkgc2NhbGUoMCwwKTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTE1MCUpIHNjYWxlKDAsMCk7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCA1cHggcmJnYSgwLDAsMCwwLjIpOyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggNXB4IHJiZ2EoMCwwLDAsMC4yKTsgYm94LXNoYWRvdzowIDAgMTBweCA1cHggcmJnYSgwLDAsMCwwLjIpOyAtd2Via2l0LXRyYW5zaXRpb246YWxsIDAuM3M7IC1tb3otdHJhbnNpdGlvbjphbGwgMC4zczsgLW1zLXRyYW5zaXRpb246YWxsIDAuM3M7IC1vLXRyYW5zaXRpb246YWxsIDAuM3M7IHRyYW5zaXRpb246YWxsIDAuM3M7IH0gLmZvcm0tZW5kIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gLmZvcm0tZW5kIC5idG4td3JhcHBlciB7IG1hcmdpbjowIGF1dG87IH0gLmZvcm0tZW5kIC5lbXB0eS1zcGFjZSB7IG1hcmdpbjphdXRvOyB9IC5mb3JtLWVuZCAucHJvbW8tYnRuIHsgcG9zaXRpb246aW5pdGlhbDsgfSAuZm9ybS1lbmQgLnByaW50IHsgbWFyZ2luLWxlZnQ6YXV0bzsgd2lkdGg6aW5pdGlhbDsgfSAucHJvbW8tYnRuIHsgcGFkZGluZzoxMHB4IDEwcHggMTBweCAxMHB4OyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXI6MXB4IHNvbGlkOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyBmb250LXdlaWdodDpub3JtYWw7IHBvc2l0aW9uOmFic29sdXRlOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJvcmRlci1jb2xvcjp2YXIoLS1wcm9tby1idG4tdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1idG4tY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLXByb21vLWJ0bi1ib3JkZXItcmFkaXVzKTsgdHJhbnNpdGlvbjowLjI1czsgfSAucHJvbW9zIHsgYmFja2dyb3VuZDojZjFmMWYxOyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyBwb3NpdGlvbjpyZWxhdGl2ZTsgY3Vyc29yOmRlZmF1bHQ7IG1hcmdpbjoxMnB4IDEwcHg7IGRpc3BsYXk6IGdyaWQ7IGdyaWQtcm93OnNwYW4gODsgZ3JpZC1jb2x1bW46c3BhbiAxOyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6c3ViZ3JpZDsgZ3JpZC10ZW1wbGF0ZS1yb3dzOnN1YmdyaWQ7IH0gLnByb21vcyAuaGVhZGVyIHsgZ3JpZC1hcmVhOmhlYWRlcjsgfSAjc2VydmljZSAucHJvbW9zIC5wcm9tby1jb250ZW50eyBkaXNwbGF5OmJsb2NrOyBncmlkLXJvdzphdXRvOyB9IC5wcm9tb3MgLnByb21vLWNvbnRlbnQgeyBncmlkLWFyZWE6Y29udGVudDsgZGlzcGxheTpncmlkOyBncmlkLXRlbXBsYXRlLXJvd3M6c3ViZ3JpZDsgZ3JpZC1yb3c6MiAvIDc7IH0gLnByb21vcyAucHJvbW8tZm9vdGVyIHsgZ3JpZC1hcmVhOmZvb3RlcjsgcGFkZGluZzowIDE1cHggMTVweCAxNXB4OyB9IC5wcm9tb3M6aG92ZXIgLnByb21vLWJ0biwgLnByb21vLWJ0bjpob3ZlciB7IGNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1idG4taG92ZXItYmctY29sb3IpOyBib3JkZXItY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyB9IC5wcm9tb3MgLnByb21vLWJ0biB7IHdpZHRoOmluaGVyaXQ7IHBvc2l0aW9uOmluaXRpYWw7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmc6MTVweCA0NXB4OyB9IC5wcm9tb3MucHJvbW8tc21hbGwgLnByb21vLWJ0biB7IHBhZGRpbmc6MTBweCAyNXB4OyB9IC5wcm9tby1icmVhayB7IGJvcmRlci10b3A6MXB4IHNvbGlkICNhYmFiYWI7IHBhZGRpbmctdG9wOjEwcHg7IG1hcmdpbjoxNXB4IDA7IH0gLnByb21vLWltYWdlLCAucHJvbW8tZGV0YWlscy1pbWFnZSB7IG92ZXJmbG93OmhpZGRlbjsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IGJvcmRlci1yYWRpdXM6NXB4IDVweCAwIDA7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y29udGFpbjsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYXNwZWN0LXJhdGlvOnZhcigtLXByb21vLWltZy1yYXRpbywgbm9uZSk7IH0gLnByb21vLWRldGFpbHMtaW1hZ2V7IHdpZHRoOjEwMCU7IH0gLnByb21vczpob3ZlciAucHJvbW8taW1hZ2UgaW1nIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4xKTsgLW1vei10cmFuc2Zvcm06c2NhbGUoMS4xKTsgLW1zLXRyYW5zZm9ybTpzY2FsZSgxLjEpOyAtby10cmFuc2Zvcm06c2NhbGUoMS4xKTsgdHJhbnNmb3JtOnNjYWxlKDEuMSk7IH0gLnByb21vLWltYWdlIGltZyB7IG1heC13aWR0aDoxMDAlOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAxczsgZGlzcGxheTp0YWJsZS1jZWxsOyBtYXJnaW46MCBhdXRvOyB9IC5wcm9tby1ib2R5IHsgcGFkZGluZzoxNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAucHJvbW8tYm9keS5ncmlkIHsgZGlzcGxheTpncmlkOyBoZWlnaHQ6MTAwJTsgZ3JpZC10ZW1wbGF0ZS1yb3dzOjFmciAzZnI7IH0gLnByb21vLWJvZHkuZ3JpZCAucHJvbW8tY2FwdGlvbi5oZWFkZXIgeyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czoxZnIgYXV0bzsgfSAucHJvbW8tY29udGVudC5wYWRkZWQgeyBwYWRkaW5nOjE1cHg7IH0gLnByb21vLWRlc2MgeyBkaXNwbGF5Om5vbmU7IH0gLnByb21vLXRpdGxlIHsgZm9udC1zaXplOjEuNXJlbSA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtd2VpZ2h0OjYwMDsgY29sb3I6IzMzMzMzMzsgbWluLWhlaWdodDo3OHB4OyB9IC5wcm9tby1tZWRpdW0gLnByb21vLXRpdGxlIHsgbWluLWhlaWdodDo4N3B4OyB9IC5wcm9tby1zbWFsbCAucHJvbW8tdGl0bGUgeyBmb250LXNpemU6MS4yNXJlbSA7IH0gLnByb21vLWNhcHRpb24geyBjb2xvcjojMzMzMzMzOyB9IC5wcm9tby1jYXB0aW9uOm5vdCg6bGFzdC1jaGlsZCkgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnByb21vLW9mZmVyIC5wcm9tby10aXRsZSB7IG1pbi1oZWlnaHQ6MDsgfSAucHJvbW8tc3ViY2FwdGlvbiB7IG1hcmdpbi10b3A6NXB4OyBmb250LXNpemU6MC44NzVyZW07IH0gLnByb21vLXN1YmNhcHRpb24uc3ViaGVhZGluZy4tbWggeyBtaW4taGVpZ2h0OjMxcHg7IH0gLnByb21vLXN1YmNhcHRpb24uZGVzY3JpcHRpb24uLW1oIHsgbWluLWhlaWdodDo0OHB4OyB9IC5wcm9tby1kaXNsY2FpbWVyIHsgZm9udC1zaXplOjAuNzVyZW07IH0gLnByb21vLWxpbmtzIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5wcm9tby1saW5rLWl0ZW0gLnByaW50IHsgd2lkdGg6YXV0bzsgdGV4dC1hbGlnbjpyaWdodDsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkIHsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6Z3JpZDsgfSAucHJvbW9zLWNvbnRhaW5lciAuZmEtYXJyb3ctZG93bi10by1saW5lIHsgZm9udC1zaXplOjJyZW07IGNvbG9yOiMwMDAwMDA7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjUwJTsgdG9wOjUwJTsgYmFja2dyb3VuZDojZmZmZmZmOyBwYWRkaW5nOjZweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJveC1zaGFkb3c6MCAwIDEwcHggMXB4IHJnYmEoMCwgMCwgMCwgMC4yKTsgdHJhbnNpdGlvbjphbGwgMC4yNXMgZWFzZS1vdXQ7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5wcm9tby1tZWRpdW0geyBncmlkLXRlbXBsYXRlLWNvbHVtbnM6cmVwZWF0KDIsIDFmcik7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5wcm9tby1zbWFsbCB7IGdyaWQtdGVtcGxhdGUtY29sdW1uczpyZXBlYXQoMywgMWZyKTsgfSAucHJvbW9zLWNvbnRhaW5lci5ncmlkLmNvbGxhcHNlIHsgaGVpZ2h0OjE0MnB4OyBvdmVyZmxvdzpoaWRkZW47IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5jb2xsYXBzZTo6YmVmb3JlIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyBsZWZ0OjEwcHg7IHJpZ2h0OjEwcHg7IHRvcDoxMHB4OyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCgwZGVnLCByZ2IoMCAwIDAgLyAzMCUpIDAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApIDEwMCUpIH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5jb2xsYXBzZTpob3Zlcjo6YmVmb3JlIHsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoMGRlZywgcmdiKDEzOCAxMzggMTM4IC8gMzAlKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAxMDAlKTsgY3Vyc29yOnBvaW50ZXI7IH0gLnByb21vcy1jb250YWluZXIuZ3JpZC5jb2xsYXBzZTpob3ZlciAuZmEtYXJyb3ctZG93bi10by1saW5lIHsgdG9wOjU1JTsgY29sb3I6IzgzODM4MzsgfSAuYmFubmVyLWZvcm0geyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTp0YWJsZTsgbWFyZ2luOjAgYXV0bzsgfSAuYmFubmVyLWZvcm0gLk1haW5Cb3hMYXllciB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwOyBsZWZ0OjA7IHJpZ2h0OjA7IHRvcDowOyBkaXNwbGF5OnRhYmxlLWNlbGw7IGhlaWdodDoxMDAlOyB9IC5iYW5uZXItZm9ybS1ib3ggeyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IG1heC13aWR0aDozNTBweDsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDozNXB4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgLk1haW5Cb3hMYXllciAuYmFubmVyLWZvcm0tYm94IHsgdG9wOjUwJTsgLXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgLW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgLW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC01MCUpOyAtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSk7IG1hcmdpbi10b3A6MDsgfSB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDoxMzAxcHgpIHsgLmJhbm5lci1mb3JtIC5iYW5uZXItZm9ybS1ib3ggeyBwYWRkaW5nOjE1cHg7IG1heC13aWR0aDoyNzBweDsgZm9udC1zaXplOjAuODEzcmVtIDsgfSAuYmFubmVyLWZvcm0gI2Jhbm5lckZvcm0gLmZvcm0tY29udHJvbCB7IHBhZGRpbmc6NHB4IDhweDsgaGVpZ2h0OjMwcHg7IG1hcmdpbi1ib3R0b206MTJweDsgfSAuYmFubmVyLWZvcm0gLmJhbm5lci1mb3JtLXRpdGxlIHsgZm9udC1zaXplOjE1cHQ7IH0gLmJhbm5lci1mb3JtIC5iYW5uZXItZm9ybS1zdWJ0aXRsZSB7IGZvbnQtc2l6ZToxMXB0OyB9IC5iYW5uZXItZm9ybSAuYnRuLmJhbm5lci1idG4geyBwYWRkaW5nOjRweCAxMnB4OyB9IH0gLm90aGVyTG9nb01lbnVDb250YWluZXJ7IGZsb2F0OmxlZnQ7IH0gLm90aGVyTG9nb01lbnVDb250YWluZXJSaWdodHsgZmxvYXQ6cmlnaHQ7IH0gLm90aGVyTG9nb01lbnVJbWFnZXsgbWF4LXdpZHRoOjI1MHB4OyBtYXgtaGVpZ2h0OjEwMHB4OyB9IC5jdGFib3gtLXdyYXBwZXIgeyBjbGVhcjpib3RoOyBwYWRkaW5nOjAuNzVyZW0gMDsgYmFja2dyb3VuZDojZmZmZmZmOyB9IC5jdGFib3gtLXRhYmxlIHsgd2lkdGg6ODUlIWltcG9ydGFudDsgbWF4LXdpZHRoOjEyMDBweDsgbWFyZ2luOmF1dG87IGJvcmRlci1zcGFjaW5nOjFyZW07IGJvcmRlci1jb2xsYXBzZTp1bnNldDsgfSAuY3RhYm94LS1jZWxsIHsgd2lkdGg6MjUlOyB0cmFuc2l0aW9uOmFsbCAwLjJzIGxpbmVhcjsgfSAuY3RhYm94LS1jZWxsOm5vdChbb25jbGljaz0nJ10pOmhvdmVyIHsgY3Vyc29yOnBvaW50ZXI7IH0gLmN0YWJveC0tY2VsbC5jdGFib3gtLWNlbGxfXzEgeyB3aWR0aDoxMDAlOyB9IC5jdGFib3gtLWNlbGwuY3RhYm94LS1jZWxsX18yIHsgd2lkdGg6NDgwcHg7IH0gLmN0YWJveC0tY2VsbC5jdGFib3gtLWNlbGxfXzMgeyB3aWR0aDozMyU7IH0gLmN0YWJveC0tY29udGFpbmVyIHsgcGFkZGluZzoxcmVtOyB9IC5jdGFib3gtLWNvbnRhaW5lciAuY3RhYm94LS1pY29uIHsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0taWNvbi5jdGFib3gtLWljb25fX3RvcCB7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWljb24uY3RhYm94LS1pY29uX19sZWZ0IHsgZmxvYXQ6bGVmdDsgfSAuY3RhYm94LS1pY29uX19sZWZ0IH4gLmN0YWJveC0tdGl0bGUsIC5jdGFib3gtLWljb25fX2xlZnQgfiAuY3RhYm94LS1kZXNjcmlwdGlvbiwgLmN0YWJveC0taWNvbl9fbGVmdCB+IC5jdGFib3gtLWJ1dHRvbiB7IG1hcmdpbi1sZWZ0OjM1cHg7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLXRpdGxlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAuY3RhYm94LS1jb250YWluZXIgLmN0YWJveC0tZGVzY3JpcHRpb24geyBtYXJnaW4tdG9wOjEwcHg7IH0gLmN0YWJveC0tY29udGFpbmVyIC5jdGFib3gtLWJ1dHRvbiB7IG1hcmdpbi10b3A6MjBweDsgfSAucGFyYWxsYXgtc2VjdGlvbiB7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXNpemU6Y292ZXI7IGJhY2tncm91bmQtYXR0YWNobWVudDpsb2NhbDsgcGFkZGluZzoyNXB4IDA7IC13ZWJraXQtdHJhbnNpdGlvbjphbGwgMC4zczsgLW1vei10cmFuc2l0aW9uOmFsbCAwLjNzOyAtbXMtdHJhbnNpdGlvbjphbGwgMC4zczsgLW8tdHJhbnNpdGlvbjphbGwgMC4zczsgdHJhbnNpdGlvbjphbGwgMC4zczsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyB9IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIgeyB3aWR0aDo2MCU7IHBhZGRpbmctcmlnaHQ6MTVweDsgcGFkZGluZy1sZWZ0OjE1cHg7IG1hcmdpbi1yaWdodDphdXRvOyBtYXJnaW4tbGVmdDphdXRvOyB9IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIubGFyZ2UgeyB3aWR0aDo4MCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAucGFyYWxsYXgtY29udGVudCB7IHdpZHRoOjQ1JTsgcGFkZGluZzo0MHB4IDQwcHg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgwLDAsMCwwLjcpOyBjb2xvcjojZmZmOyB9IC5wYXJhbGxheC1jb250ZW50IC5wYXJhbGxheC1jb250ZW50LWJ1c2luZXNzLXRpdGxlIHsgZm9udC1zaXplOjEuNDM4cmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBtYXJnaW4tYm90dG9tOjIwcHg7IGNvbG9yOmluaGVyaXQ7IH0gLnBhcmFsbGF4LWNvbnRlbnQgLnBhcmFsbGF4LWNvbnRlbnQtYnVzaW5lc3MtZGVzYyB7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmxlZnQ7IGNvbG9yOmluaGVyaXQ7IH0gLnBhcmFsbGF4LWNvbnRlbnQgLnBhcmFsbGF4LWNvbnRlbnQtYnVzaW5lc3MtZGVzYyBheyBjb2xvcjppbmhlcml0OyB9IEBtZWRpYSAobWF4LXdpZHRoOjEzMzBweCkgeyAucGFyYWxsYXgtc2VjdGlvbiAuY29udGFpbmVyIHsgd2lkdGg6ODAlOyB9IC5wYXJhbGxheC1zZWN0aW9uIC5jb250YWluZXIubGFyZ2UgeyB3aWR0aDoxMDAlOyB9IH0gLnNyLW9ubHkgeyBwb3NpdGlvbjphYnNvbHV0ZSAhaW1wb3J0YW50OyB3aWR0aDoxcHggIWltcG9ydGFudDsgaGVpZ2h0OjFweCAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOi0xcHggIWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7IGNsaXA6cmVjdCgwLCAwLCAwLCAwKSAhaW1wb3J0YW50OyBib3JkZXI6MCAhaW1wb3J0YW50OyB9IC5ibnBfcHVsbG91dF9pbWd7IG1heC13aWR0aDoxMHJlbTsgbWFyZ2luOmF1dG87IH0gLmJucF9wdWxsb3V0X2NvbF9zZXBhcmF0b3J7IHdpZHRoOjFweDsgYmFja2dyb3VuZC1jb2xvcjojRUJFQkVCOyBoZWlnaHQ6OThweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoyMHB4OyB9IC5ibnBfcHVsbG91dF9taWRfY29seyB3aWR0aDo3MCU7IGRpc3BsYXk6dGFibGUtY2VsbDsgfSAuYm5wX3B1bGxvdXRfbWlkX2NvbF9yaWdodHsgYm9yZGVyLWxlZnQtd2lkdGg6MXB4OyB9IC5ibnBfcHVsbG91dF9taWRfY29sX3NlcGFyYXRvcnsgd2lkdGg6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNFQkVCRUI7IGhlaWdodDo0MHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjc4cHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfcHJpY2Vfd2l0aF90aXRsZXsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDo0NSU7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfcHJpY2V7IGZvbnQtc2l6ZToycmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBAbWVkaWEgKG1heC13aWR0aDoxMzMwcHgpIHsgLmJucF9wdWxsb3V0X21pZF9jb2wgeyB3aWR0aDo1MCU7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfcHJpY2Vfd2l0aF90aXRsZSB7IHdpZHRoOjEwMCU7IH0gLmJucF9wdWxsb3V0X2NvbF9zZXBhcmF0b3IgeyBoZWlnaHQ6MTY0cHg7IH0gLmJucF9wdWxsb3V0X21pZF9jb2xfc2VwYXJhdG9yIHsgaGVpZ2h0OjEwNnB4OyB9IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0SW1neyBoZWlnaHQ6MTEwcHg7IGJhY2tncm91bmQtY29sb3I6IzAwN2ZhNTsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRCdXR0b257IGJhY2tncm91bmQ6IzQxN0YxQSAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6I2ZmZmZmZjsgcGFkZGluZzo3cHggMjBweCA3cHg7IGZvbnQtc2l6ZToxcmVtIDsgZm9udC13ZWlnaHQ6NzAwOyB0ZXh0LXNoYWRvdzowLjRweCAwOyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dENvbnRlbnR7IGNvbG9yOiMwMDAwMDA7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IGZvbnQtd2VpZ2h0OjcwMDsgbWFyZ2luLWJvdHRvbTotMTVweDsgfSAucHVsbG91dC1jb250ZW50IC5jcmVkaXRTY29yZVB1bGxvdXRDb250ZW50U2NvcmV7IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjEuODc1cmVtIDsgdGV4dC1zaGFkb3c6MnB4IDA7IH0gLnB1bGxvdXQtY29udGVudCAuY3JlZGl0U2NvcmVQdWxsb3V0Q29udGVudEZyZWV7IGNvbG9yOiM0MTdGMUE7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjIuODEzcmVtIDsgdGV4dC1zaGFkb3c6MnB4IDA7IH0gLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQuaXNGdWxsV2lkdGhQYWdlIC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dE1heFdpZHRoeyBtYXgtd2lkdGg6MTIwMHB4OyB9IC5wdWxsb3V0LWNvbnRlbnQgLmNyZWRpdFNjb3JlUHVsbG91dE1heFdpZHRoeyBtYXgtd2lkdGg6OTYwcHg7IH0gLnNsaWRlci1tYWluIGltZ3sgdHJhbnNpdGlvbjp0cmFuc2Zvcm0gMC41cyBlYXNlLW91dCB9IC5jb21tdW5pY2F0aW9uUHJlZnsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IHdpZHRoOjUwJSAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIHsgLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2w6IioiOyAtLWxhYmVsLXJlcXVpcmVkLWNvbG9yOiNGRjAwMDA7IC0taW5wdXQtcGFkZGluZzp2YXIoLS1zLTEpIHZhcigtLXMxKTsgLS1pbnB1dC1iZy1jb2xvcjp2YXIoLS13aGl0ZSk7IC0taW5wdXQtYm9yZGVyLWNvbG9yOnZhcigtLW1pZC1ncmF5KTsgLS1pbnB1dC1yYWRpdXM6dmFyKC0tcy02KTsgLS1pbnB1dC1mb250LXNpemU6dmFyKC0tZnMwKTsgLS1pbnB1dC1saW5lLWhlaWdodDp2YXIoLS1mczIpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC51cF9tZW51IC5TMTAwUGVyY2VudFdpZHRoIHsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgfSAudXBfbWVudS5maXhlZCAuUzEwMFBlcmNlbnRXaWR0aHsgYmFja2dyb3VuZC1jb2xvcjpyZ2IoMjI4LDIyMCwyMTEpIH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLm9yZywgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLnN0cmVldC1hZGRyZXNzLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAubG9jYWxpdHksIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5yZWdpb24sIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5wb3N0YWwtY29kZSwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmFkZHJlc3Mtc2VwLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAucGhvbmUtdHlwZS1sYWJlbCwgLm1haW5EaXZBZGp1c3RIZWFkZXIgLnYtY2FyZCAuYWRkcmVzcy1taWRkbGUgLmV4dGVuZGVkUGhvbmVUcmlnZ2VyLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkIC5hZGRyZXNzLW1pZGRsZSAucGhvbmUtbGluayB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKSAhaW1wb3J0YW50OyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5kZWFsZXJNYXBMaW5rIHN2ZyB7IGZpbGw6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5mYS1jYXJldC1kb3duOjpiZWZvcmUsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC52LWNhcmQgLmFkZHJlc3MtbWlkZGxlIC5mYS1waG9uZTo6YmVmb3JlIHsgY29sb3I6dmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC51cF9tZW51IC5TMTAwUGVyY2VudFdpZHRoID4gdWwgPiBsaSA+IGEudG9wX2xpbmsgeyBjb2xvcjp2YXIoLS1ob21lcGFnZS1tZW51LWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZ1JhdGluZy1pY29uI2dSYXRpbmcsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbi5hY3RpdmUsIC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciBhLmRlc2t0b3BfbGFuZ19idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBjb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0taG9tZXBhZ2UtaGVhZGVyLWl0ZW0tY29sb3IpOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIC5sYW5ndWFnZUJhciAuZGVza3RvcF9sYW5nX2J1dHRvbiB7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQ6cmdiYSgyNTUsIDI1NSwgMjU1LCAwLjE1KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyIGRpdi5kMmMtZmF2cy1uYXYtd3JhcHBlciBpLmZhciB7IGNvbG9yOnZhcigtLWhvbWVwYWdlLWhlYWRlci1pdGVtLWNvbG9yKTsgfSAubWFpbkRpdkFkanVzdEhlYWRlciAubGFuZ3VhZ2VCYXIgLnNlcnZpY2UtaGVhZGVyLWZvcm0gLmJ0biB7IGJvcmRlci1jb2xvcjp2YXIoLS1ob21lcGFnZS1oZWFkZXItaXRlbS1jb2xvcik7IH0gLmxhbmd1YWdlQmFyIC5nUmF0aW5nLWljb24jZ1JhdGluZywgLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYSwgLmxhbmd1YWdlQmFyIC5kZXNrdG9wX2xhbmdfYnV0dG9uIHsgYm9yZGVyLXJhZGl1czp2YXIoLS1wcm9tby1idG4tYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDsgfSAuZ1JhdGluZy1pY29uI2dSYXRpbmcgLnJhdGluZyB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBsaW5lLWhlaWdodDoxOyB9IC5tYXJnaW4tYm90dG9tLS00cHggeyBtYXJnaW4tYm90dG9tOi00cHg7IH0gLm1haW5EaXZBZGp1c3RIZWFkZXIgLmxhbmd1YWdlQmFyLCAubWFpbkRpdkFkanVzdEhlYWRlciAudi1jYXJkLCAubWFpbkRpdkFkanVzdEhlYWRlciAuYmFubmVyLXNlYXJjaC1ib3gtd3JhcHBlciB7IHotaW5kZXg6MjsgcG9zaXRpb246cmVsYXRpdmUgfQovKiogL2Nzcy9wcm9fZHJvcGRvd25fNC5jc3MgKiovCi5pZE5hdjEgeyBwYWRkaW5nOjA7IGxpc3Qtc3R5bGU6bm9uZTsgaGVpZ2h0OjI4cHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGNvbG9yOiNGOUY5Rjk7IH0gLmlkTmF2MSBsaS50b3Age2Rpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBwYWRkaW5nOjA7fSAuaWROYXYxIGxpLnRvcDEge2Rpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGhlaWdodDoyOHB4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2hvdmVyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IHBhZGRpbmc6MDsgcGFkZGluZy1yaWdodDoycHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MSBsaSBhLnRvcF9saW5rIHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MHB4IDEycHggMHB4IDEycHg7IGN1cnNvcjpwb2ludGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4OyBiYWNrZ3JvdW5kOiNlNGRjZDM7IGNvbG9yOiMwMDAwMDA7IH0gLmlkTmF2MSBsaSBhLnRvcF9saW5rOmhvdmVyIHsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgYm9yZGVyLXJhZGl1czozcHg7IGZpbHRlcjpicmlnaHRuZXNzKDk1JSk7IH0gLmlkTmF2MSBsaSBhLnRvcF9saW5rMSB7ZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IGNvbG9yOiNmZWZlZmU7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MC44MTNyZW0gOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmc6MHB4IDEycHggMHB4IDEycHg7IGN1cnNvcjpwb2ludGVyOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JsX2hvdmVyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7fSAuaWROYXYyIHsgcGFkZGluZzowOyBsaXN0LXN0eWxlOm5vbmU7IGhlaWdodDoyOHB4OyBmb250LXNpemU6MC43NXJlbSA7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LXRyYW5zZm9ybTpub25lOyBjb2xvcjojRjlGOUY5OyB9IC5pZE5hdjIgbGkudG9wIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgcGFkZGluZzowOyBwYWRkaW5nLXJpZ2h0OjJweDt9IC5pZE5hdjIgbGkudG9wMSB7ZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IHBhZGRpbmc6MDsgcGFkZGluZy1yaWdodDoycHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyBib3JkZXItcmFkaXVzOjNweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6M3B4O30gLmlkTmF2MiBsaSBhLnRvcF9saW5rIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgbGluZS1oZWlnaHQ6MzBweDsgY29sb3I6I2ZlZmVmZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowcHggMTJweCAwcHggMTJweDsgY3Vyc29yOnBvaW50ZXI7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfYmcyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7fSAuaWROYXYyIGxpIGEudG9wX2xpbms6aG92ZXIge2NvbG9yOiNmZmY7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7fSAuaWROYXYyIGxpIGEudG9wX2xpbmsxIHtkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBoZWlnaHQ6MjhweDsgbGluZS1oZWlnaHQ6MzBweDsgY29sb3I6I2ZlZmVmZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowcHggMTJweCAwcHggMTJweDsgY3Vyc29yOnBvaW50ZXI7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxfaG92ZXIyLnBuZykgbGVmdCB0b3AgcmVwZWF0LXg7IC1tb3otYm9yZGVyLXJhZGl1czozcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlci1yYWRpdXM6M3B4OyAta2h0bWwtYm9yZGVyLXJhZGl1czozcHg7fQovKiogL2Nzcy9qcXVlcnktdWktZmFjdG9yeS8xLjEzLjIvanF1ZXJ5LXVpLm1pbi5jc3MgKiovCi51aS1oZWxwZXItaGlkZGVue2Rpc3BsYXk6bm9uZX0udWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxle2JvcmRlcjowO2NsaXA6cmVjdCgwIDAgMCAwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS51aS1oZWxwZXItcmVzZXR7bWFyZ2luOjA7cGFkZGluZzowO2JvcmRlcjowO291dGxpbmU6MDtsaW5lLWhlaWdodDoxLjM7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Zm9udC1zaXplOjEwMCU7bGlzdC1zdHlsZTpub25lfS51aS1oZWxwZXItY2xlYXJmaXg6YmVmb3JlLC51aS1oZWxwZXItY2xlYXJmaXg6YWZ0ZXJ7Y29udGVudDoiIjtkaXNwbGF5OnRhYmxlO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZX0udWktaGVscGVyLWNsZWFyZml4OmFmdGVye2NsZWFyOmJvdGh9LnVpLWhlbHBlci16Zml4e3dpZHRoOjEwMCU7aGVpZ2h0OjEwMCU7dG9wOjA7bGVmdDowO3Bvc2l0aW9uOmFic29sdXRlO29wYWNpdHk6MDstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTApIn0udWktZnJvbnR7ei1pbmRleDoxMDB9LnVpLXN0YXRlLWRpc2FibGVke2N1cnNvcjpkZWZhdWx0IWltcG9ydGFudDtwb2ludGVyLWV2ZW50czpub25lfS51aS1pY29ue2Rpc3BsYXk6aW5saW5lLWJsb2NrO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTttYXJnaW4tdG9wOi0uMjVlbTtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWluZGVudDotOTk5OTlweDtvdmVyZmxvdzpoaWRkZW47YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0fS51aS13aWRnZXQtaWNvbi1ibG9ja3tsZWZ0OjUwJTttYXJnaW4tbGVmdDotOHB4O2Rpc3BsYXk6YmxvY2t9LnVpLXdpZGdldC1vdmVybGF5e3Bvc2l0aW9uOmZpeGVkO3RvcDowO2xlZnQ6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlfS51aS1hY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXJ7ZGlzcGxheTpibG9jaztjdXJzb3I6cG9pbnRlcjtwb3NpdGlvbjpyZWxhdGl2ZTttYXJnaW46MnB4IDAgMCAwO3BhZGRpbmc6LjVlbSAuNWVtIC41ZW0gLjdlbTtmb250LXNpemU6MTAwJX0udWktYWNjb3JkaW9uIC51aS1hY2NvcmRpb24tY29udGVudHtwYWRkaW5nOjFlbSAyLjJlbTtib3JkZXItdG9wOjA7b3ZlcmZsb3c6YXV0b30udWktc2xpZGVye3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246bGVmdH0udWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxle3Bvc2l0aW9uOmFic29sdXRlO3otaW5kZXg6Mjt3aWR0aDoxLjJlbTtoZWlnaHQ6MS4yZW07Y3Vyc29yOnBvaW50ZXI7LW1zLXRvdWNoLWFjdGlvbjpub25lO3RvdWNoLWFjdGlvbjpub25lfS51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZXtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjE7Zm9udC1zaXplOi43ZW07ZGlzcGxheTpibG9jaztib3JkZXI6MDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH0udWktc2xpZGVyLnVpLXN0YXRlLWRpc2FibGVkIC51aS1zbGlkZXItaGFuZGxlLC51aS1zbGlkZXIudWktc3RhdGUtZGlzYWJsZWQgLnVpLXNsaWRlci1yYW5nZXtmaWx0ZXI6aW5oZXJpdH0udWktc2xpZGVyLWhvcml6b250YWx7aGVpZ2h0Oi44ZW19LnVpLXNsaWRlci1ob3Jpem9udGFsIC51aS1zbGlkZXItaGFuZGxle3RvcDotLjNlbTttYXJnaW4tbGVmdDotLjZlbX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZXt0b3A6MDtoZWlnaHQ6MTAwJX0udWktc2xpZGVyLWhvcml6b250YWwgLnVpLXNsaWRlci1yYW5nZS1taW57bGVmdDowfS51aS1zbGlkZXItaG9yaXpvbnRhbCAudWktc2xpZGVyLXJhbmdlLW1heHtyaWdodDowfS51aS1zbGlkZXItdmVydGljYWx7d2lkdGg6LjhlbTtoZWlnaHQ6MTAwcHh9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLWhhbmRsZXtsZWZ0Oi0uM2VtO21hcmdpbi1sZWZ0OjA7bWFyZ2luLWJvdHRvbTotLjZlbX0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2V7bGVmdDowO3dpZHRoOjEwMCV9LnVpLXNsaWRlci12ZXJ0aWNhbCAudWktc2xpZGVyLXJhbmdlLW1pbntib3R0b206MH0udWktc2xpZGVyLXZlcnRpY2FsIC51aS1zbGlkZXItcmFuZ2UtbWF4e3RvcDowfS51aS13aWRnZXR7Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0IC51aS13aWRnZXR7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0IGlucHV0LC51aS13aWRnZXQgc2VsZWN0LC51aS13aWRnZXQgdGV4dGFyZWEsLnVpLXdpZGdldCBidXR0b257Zm9udC1mYW1pbHk6QXJpYWwsSGVsdmV0aWNhLHNhbnMtc2VyaWY7Zm9udC1zaXplOjFlbX0udWktd2lkZ2V0LnVpLXdpZGdldC1jb250ZW50e2JvcmRlcjoxcHggc29saWQgI2M1YzVjNX0udWktd2lkZ2V0LWNvbnRlbnR7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2ZmZjtjb2xvcjojMzMzfS51aS13aWRnZXQtY29udGVudCBhe2NvbG9yOiMzMzN9LnVpLXdpZGdldC1oZWFkZXJ7Ym9yZGVyOjFweCBzb2xpZCAjZGRkO2JhY2tncm91bmQ6I2U5ZTllOTtjb2xvcjojMzMzO2ZvbnQtd2VpZ2h0OmJvbGR9LnVpLXdpZGdldC1oZWFkZXIgYXtjb2xvcjojMzMzfS51aS1zdGF0ZS1kZWZhdWx0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZGVmYXVsdCwudWktYnV0dG9uLGh0bWwgLnVpLWJ1dHRvbi51aS1zdGF0ZS1kaXNhYmxlZDpob3ZlcixodG1sIC51aS1idXR0b24udWktc3RhdGUtZGlzYWJsZWQ6YWN0aXZle2JvcmRlcjoxcHggc29saWQgI2M1YzVjNTtiYWNrZ3JvdW5kOiNmNmY2ZjY7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiM0NTQ1NDV9LnVpLXN0YXRlLWRlZmF1bHQgYSwudWktc3RhdGUtZGVmYXVsdCBhOmxpbmssLnVpLXN0YXRlLWRlZmF1bHQgYTp2aXNpdGVkLGEudWktYnV0dG9uLGE6bGluay51aS1idXR0b24sYTp2aXNpdGVkLnVpLWJ1dHRvbiwudWktYnV0dG9ue2NvbG9yOiM0NTQ1NDU7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXN0YXRlLWhvdmVyLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtaG92ZXIsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLC51aS1zdGF0ZS1mb2N1cywudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWZvY3VzLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cywudWktYnV0dG9uOmhvdmVyLC51aS1idXR0b246Zm9jdXN7Ym9yZGVyOjFweCBzb2xpZCAjY2NjO2JhY2tncm91bmQ6I2VkZWRlZDtmb250LXdlaWdodDpub3JtYWw7Y29sb3I6IzJiMmIyYn0udWktc3RhdGUtaG92ZXIgYSwudWktc3RhdGUtaG92ZXIgYTpob3ZlciwudWktc3RhdGUtaG92ZXIgYTpsaW5rLC51aS1zdGF0ZS1ob3ZlciBhOnZpc2l0ZWQsLnVpLXN0YXRlLWZvY3VzIGEsLnVpLXN0YXRlLWZvY3VzIGE6aG92ZXIsLnVpLXN0YXRlLWZvY3VzIGE6bGluaywudWktc3RhdGUtZm9jdXMgYTp2aXNpdGVkLGEudWktYnV0dG9uOmhvdmVyLGEudWktYnV0dG9uOmZvY3Vze2NvbG9yOiMyYjJiMmI7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnVpLXZpc3VhbC1mb2N1c3tib3gtc2hhZG93OjAgMCAzcHggMXB4IHJnYig5NCwxNTgsMjE0KX0udWktc3RhdGUtYWN0aXZlLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtYWN0aXZlLC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1hY3RpdmUsYS51aS1idXR0b246YWN0aXZlLC51aS1idXR0b246YWN0aXZlLC51aS1idXR0b24udWktc3RhdGUtYWN0aXZlOmhvdmVye2JvcmRlcjoxcHggc29saWQgIzAwM2VmZjtiYWNrZ3JvdW5kOiMwMDdmZmY7Zm9udC13ZWlnaHQ6bm9ybWFsO2NvbG9yOiNmZmZ9LnVpLWljb24tYmFja2dyb3VuZCwudWktc3RhdGUtYWN0aXZlIC51aS1pY29uLWJhY2tncm91bmR7Ym9yZGVyOiMwMDNlZmY7YmFja2dyb3VuZC1jb2xvcjojZmZmfS51aS1zdGF0ZS1hY3RpdmUgYSwudWktc3RhdGUtYWN0aXZlIGE6bGluaywudWktc3RhdGUtYWN0aXZlIGE6dmlzaXRlZHtjb2xvcjojZmZmO3RleHQtZGVjb3JhdGlvbjpub25lfS51aS1zdGF0ZS1oaWdobGlnaHQsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhpZ2hsaWdodHtib3JkZXI6MXB4IHNvbGlkICNkYWQ1NWU7YmFja2dyb3VuZDojZmZmYTkwO2NvbG9yOiM3Nzc2MjB9LnVpLXN0YXRlLWNoZWNrZWR7Ym9yZGVyOjFweCBzb2xpZCAjZGFkNTVlO2JhY2tncm91bmQ6I2ZmZmE5MH0udWktc3RhdGUtaGlnaGxpZ2h0IGEsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1oaWdobGlnaHQgYSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtaGlnaGxpZ2h0IGF7Y29sb3I6Izc3NzYyMH0udWktc3RhdGUtZXJyb3IsLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1lcnJvciwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3J7Ym9yZGVyOjFweCBzb2xpZCAjZjFhODk5O2JhY2tncm91bmQ6I2ZkZGZkZjtjb2xvcjojNWYzZjNmfS51aS1zdGF0ZS1lcnJvciBhLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3IgYSwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3IgYXtjb2xvcjojNWYzZjNmfS51aS1zdGF0ZS1lcnJvci10ZXh0LC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZXJyb3ItdGV4dCwudWktd2lkZ2V0LWhlYWRlciAudWktc3RhdGUtZXJyb3ItdGV4dHtjb2xvcjojNWYzZjNmfS51aS1wcmlvcml0eS1wcmltYXJ5LC51aS13aWRnZXQtY29udGVudCAudWktcHJpb3JpdHktcHJpbWFyeSwudWktd2lkZ2V0LWhlYWRlciAudWktcHJpb3JpdHktcHJpbWFyeXtmb250LXdlaWdodDpib2xkfS51aS1wcmlvcml0eS1zZWNvbmRhcnksLnVpLXdpZGdldC1jb250ZW50IC51aS1wcmlvcml0eS1zZWNvbmRhcnksLnVpLXdpZGdldC1oZWFkZXIgLnVpLXByaW9yaXR5LXNlY29uZGFyeXtvcGFjaXR5Oi43Oy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9NzApIjtmb250LXdlaWdodDpub3JtYWx9LnVpLXN0YXRlLWRpc2FibGVkLC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGlzYWJsZWQsLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRpc2FibGVke29wYWNpdHk6LjM1Oy1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MzUpIjtiYWNrZ3JvdW5kLWltYWdlOm5vbmV9LnVpLXN0YXRlLWRpc2FibGVkIC51aS1pY29uey1tcy1maWx0ZXI6ImFscGhhKG9wYWNpdHk9MzUpIn0udWktaWNvbnt3aWR0aDoxNnB4O2hlaWdodDoxNnB4fS51aS1pY29uLC51aS13aWRnZXQtY29udGVudCAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzQ0NDQ0NF8yNTZ4MjQwLnBuZyIpfS51aS13aWRnZXQtaGVhZGVyIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfNDQ0NDQ0XzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWhvdmVyIC51aS1pY29uLC51aS1zdGF0ZS1mb2N1cyAudWktaWNvbiwudWktYnV0dG9uOmhvdmVyIC51aS1pY29uLC51aS1idXR0b246Zm9jdXMgLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc181NTU1NTVfMjU2eDI0MC5wbmciKX0udWktc3RhdGUtYWN0aXZlIC51aS1pY29uLC51aS1idXR0b246YWN0aXZlIC51aS1pY29ue2JhY2tncm91bmQtaW1hZ2U6dXJsKCJpbWFnZXMvdWktaWNvbnNfZmZmZmZmXzI1NngyNDAucG5nIil9LnVpLXN0YXRlLWhpZ2hsaWdodCAudWktaWNvbiwudWktYnV0dG9uIC51aS1zdGF0ZS1oaWdobGlnaHQudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zXzc3NzYyMF8yNTZ4MjQwLnBuZyIpfS51aS1zdGF0ZS1lcnJvciAudWktaWNvbiwudWktc3RhdGUtZXJyb3ItdGV4dCAudWktaWNvbntiYWNrZ3JvdW5kLWltYWdlOnVybCgiaW1hZ2VzL3VpLWljb25zX2NjMDAwMF8yNTZ4MjQwLnBuZyIpfS51aS1idXR0b24gLnVpLWljb257YmFja2dyb3VuZC1pbWFnZTp1cmwoImltYWdlcy91aS1pY29uc183Nzc3NzdfMjU2eDI0MC5wbmciKX0udWktaWNvbi1ibGFuay51aS1pY29uLWJsYW5rLnVpLWljb24tYmxhbmt7YmFja2dyb3VuZC1pbWFnZTpub25lfS51aS1pY29uLWNhcmV0LTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMH0udWktaWNvbi1jYXJldC0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggMH0udWktaWNvbi1jYXJldC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAwfS51aS1pY29uLWNhcmV0LTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAwfS51aS1pY29uLWNhcmV0LTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NXB4IDB9LnVpLWljb24tY2FyZXQtMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IDB9LnVpLWljb24tY2FyZXQtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggMH0udWktaWNvbi1jYXJldC0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IDB9LnVpLWljb24tY2FyZXQtMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggMH0udWktaWNvbi1jYXJldC0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAwfS51aS1pY29uLXRyaWFuZ2xlLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1uZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0xNnB4fS51aS1pY29uLXRyaWFuZ2xlLTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjVweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0xLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE2cHh9LnVpLWljb24tdHJpYW5nbGUtMS1ud3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0yLW4tc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTZweH0udWktaWNvbi10cmlhbmdsZS0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTZweH0udWktaWNvbi1hcnJvdy0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjowIC0zMnB4fS51aS1pY29uLWFycm93LTEtbmV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMzJweH0udWktaWNvbi1hcnJvdy0xLXNle2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTY1cHggLTMycHh9LnVpLWljb24tYXJyb3ctMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0zMnB4fS51aS1pY29uLWFycm93LTEtbnd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTMycHh9LnVpLWljb24tYXJyb3ctMi1uZS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLWUtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMzJweH0udWktaWNvbi1hcnJvdy0yLXNlLW53e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTMycHh9LnVpLWljb24tYXJyb3dzdG9wLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMDhweCAtMzJweH0udWktaWNvbi1hcnJvd3N0b3AtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0zMnB4fS51aS1pY29uLWFycm93c3RvcC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTMycHh9LnVpLWljb24tYXJyb3d0aGljay0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjoxcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLW5le2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrLTEtc3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS1zd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0xLW53e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1uLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLW5lLXN3e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2stMi1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGljay0yLXNlLW53e2JhY2tncm91bmQtcG9zaXRpb246LTE3NnB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtNDhweH0udWktaWNvbi1hcnJvd3RoaWNrc3RvcC0xLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTQ4cHh9LnVpLWljb24tYXJyb3d0aGlja3N0b3AtMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC00OHB4fS51aS1pY29uLWFycm93dGhpY2tzdG9wLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yNDBweCAtNDhweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm50aGljay0xLW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtNjRweH0udWktaWNvbi1hcnJvd3JldHVybnRoaWNrLTEtZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC02NHB4fS51aS1pY29uLWFycm93cmV0dXJudGhpY2stMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS13e2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1ue2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1le2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZXR1cm4tMS1ze2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTI4cHggLTY0cHh9LnVpLWljb24tYXJyb3dyZWZyZXNoLTEtbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtNjRweH0udWktaWNvbi1hcnJvd3JlZnJlc2gtMS1le2JhY2tncm91bmQtcG9zaXRpb246LTE2MHB4IC02NHB4fS51aS1pY29uLWFycm93cmVmcmVzaC0xLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTY0cHh9LnVpLWljb24tYXJyb3ctNHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTgwcHh9LnVpLWljb24tYXJyb3ctNC1kaWFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTgwcHh9LnVpLWljb24tZXh0bGlua3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC04MHB4fS51aS1pY29uLW5ld3dpbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC04MHB4fS51aS1pY29uLXJlZnJlc2h7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtODBweH0udWktaWNvbi1zaHVmZmxle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTgwcHh9LnVpLWljb24tdHJhbnNmZXItZS13e2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTgwcHh9LnVpLWljb24tdHJhbnNmZXJ0aGljay1lLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTgwcHh9LnVpLWljb24tZm9sZGVyLWNvbGxhcHNlZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTk2cHh9LnVpLWljb24tZm9sZGVyLW9wZW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtOTZweH0udWktaWNvbi1kb2N1bWVudHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC05NnB4fS51aS1pY29uLWRvY3VtZW50LWJ7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtOTZweH0udWktaWNvbi1ub3Rle2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTk2cHh9LnVpLWljb24tbWFpbC1jbG9zZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtOTZweH0udWktaWNvbi1tYWlsLW9wZW57YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtOTZweH0udWktaWNvbi1zdWl0Y2FzZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtOTZweH0udWktaWNvbi1jb21tZW50e2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC05NnB4fS51aS1pY29uLXBlcnNvbntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtOTZweH0udWktaWNvbi1wcmludHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtOTZweH0udWktaWNvbi10cmFzaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtOTZweH0udWktaWNvbi1sb2NrZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotMTkycHggLTk2cHh9LnVpLWljb24tdW5sb2NrZWR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTk2cHh9LnVpLWljb24tYm9va21hcmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTk2cHh9LnVpLWljb24tdGFne2JhY2tncm91bmQtcG9zaXRpb246LTI0MHB4IC05NnB4fS51aS1pY29uLWhvbWV7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xMTJweH0udWktaWNvbi1mbGFne2JhY2tncm91bmQtcG9zaXRpb246LTE2cHggLTExMnB4fS51aS1pY29uLWNhbGVuZGFye2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTExMnB4fS51aS1pY29uLWNhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTEycHh9LnVpLWljb24tcGVuY2lse2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTExMnB4fS51aS1pY29uLWNsb2Nre2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTExMnB4fS51aS1pY29uLWRpc2t7YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTEycHh9LnVpLWljb24tY2FsY3VsYXRvcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMTJweCAtMTEycHh9LnVpLWljb24tem9vbWlue2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xMTJweH0udWktaWNvbi16b29tb3V0e2JhY2tncm91bmQtcG9zaXRpb246LTE0NHB4IC0xMTJweH0udWktaWNvbi1zZWFyY2h7YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTExMnB4fS51aS1pY29uLXdyZW5jaHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTEycHh9LnVpLWljb24tZ2VhcntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTEycHh9LnVpLWljb24taGVhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTExMnB4fS51aS1pY29uLXN0YXJ7YmFja2dyb3VuZC1wb3NpdGlvbjotMjI0cHggLTExMnB4fS51aS1pY29uLWxpbmt7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTExMnB4fS51aS1pY29uLWNhbmNlbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTEyOHB4fS51aS1pY29uLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTI4cHh9LnVpLWljb24tcGx1c3RoaWNre2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTEyOHB4fS51aS1pY29uLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTEyOHB4fS51aS1pY29uLW1pbnVzdGhpY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTI4cHh9LnVpLWljb24tY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTI4cHh9LnVpLWljb24tY2xvc2V0aGlja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xMjhweH0udWktaWNvbi1rZXl7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTEyOHB4fS51aS1pY29uLWxpZ2h0YnVsYntiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTI4cHh9LnVpLWljb24tc2Npc3NvcnN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTEyOHB4fS51aS1pY29uLWNsaXBib2FyZHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNjBweCAtMTI4cHh9LnVpLWljb24tY29weXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNzZweCAtMTI4cHh9LnVpLWljb24tY29udGFjdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTJweCAtMTI4cHh9LnVpLWljb24taW1hZ2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTEyOHB4fS51aS1pY29uLXZpZGVve2JhY2tncm91bmQtcG9zaXRpb246LTIyNHB4IC0xMjhweH0udWktaWNvbi1zY3JpcHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMjQwcHggLTEyOHB4fS51aS1pY29uLWFsZXJ0e2JhY2tncm91bmQtcG9zaXRpb246MCAtMTQ0cHh9LnVpLWljb24taW5mb3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNDRweH0udWktaWNvbi1ub3RpY2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTQ0cHh9LnVpLWljb24taGVscHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNDRweH0udWktaWNvbi1jaGVja3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi02NHB4IC0xNDRweH0udWktaWNvbi1idWxsZXR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTQ0cHh9LnVpLWljb24tcmFkaW8tb257YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTQ0cHh9LnVpLWljb24tcmFkaW8tb2Zme2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNDRweH0udWktaWNvbi1waW4td3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xMjhweCAtMTQ0cHh9LnVpLWljb24tcGluLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE0NHB4fS51aS1pY29uLXBsYXl7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0xNjBweH0udWktaWNvbi1wYXVzZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xNjBweH0udWktaWNvbi1zZWVrLW5leHR7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTYwcHh9LnVpLWljb24tc2Vlay1wcmV2e2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTE2MHB4fS51aS1pY29uLXNlZWstZW5ke2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTE2MHB4fS51aS1pY29uLXNlZWstc3RhcnR7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTYwcHh9LnVpLWljb24tc2Vlay1maXJzdHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0xNjBweH0udWktaWNvbi1zdG9we2JhY2tncm91bmQtcG9zaXRpb246LTk2cHggLTE2MHB4fS51aS1pY29uLWVqZWN0e2JhY2tncm91bmQtcG9zaXRpb246LTExMnB4IC0xNjBweH0udWktaWNvbi12b2x1bWUtb2Zme2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xNjBweH0udWktaWNvbi12b2x1bWUtb257YmFja2dyb3VuZC1wb3NpdGlvbjotMTQ0cHggLTE2MHB4fS51aS1pY29uLXBvd2Vye2JhY2tncm91bmQtcG9zaXRpb246MCAtMTc2cHh9LnVpLWljb24tc2lnbmFsLWRpYWd7YmFja2dyb3VuZC1wb3NpdGlvbjotMTZweCAtMTc2cHh9LnVpLWljb24tc2lnbmFse2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktMHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0xNzZweH0udWktaWNvbi1iYXR0ZXJ5LTF7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTc2cHh9LnVpLWljb24tYmF0dGVyeS0ye2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTE3NnB4fS51aS1pY29uLWJhdHRlcnktM3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi05NnB4IC0xNzZweH0udWktaWNvbi1jaXJjbGUtcGx1c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgLTE5MnB4fS51aS1pY29uLWNpcmNsZS1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtY2xvc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotMzJweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLWV7YmFja2dyb3VuZC1wb3NpdGlvbjotNDhweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXN7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLXd7YmFja2dyb3VuZC1wb3NpdGlvbjotODBweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLXRyaWFuZ2xlLW57YmFja2dyb3VuZC1wb3NpdGlvbjotOTZweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LWV7YmFja2dyb3VuZC1wb3NpdGlvbjotMTEycHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS1hcnJvdy1ze2JhY2tncm91bmQtcG9zaXRpb246LTEyOHB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtYXJyb3ctd3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNDRweCAtMTkycHh9LnVpLWljb24tY2lyY2xlLWFycm93LW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTYwcHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS16b29taW57YmFja2dyb3VuZC1wb3NpdGlvbjotMTc2cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZS16b29tb3V0e2JhY2tncm91bmQtcG9zaXRpb246LTE5MnB4IC0xOTJweH0udWktaWNvbi1jaXJjbGUtY2hlY2t7YmFja2dyb3VuZC1wb3NpdGlvbjotMjA4cHggLTE5MnB4fS51aS1pY29uLWNpcmNsZXNtYWxsLXBsdXN7YmFja2dyb3VuZC1wb3NpdGlvbjowIC0yMDhweH0udWktaWNvbi1jaXJjbGVzbWFsbC1taW51c3tiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0yMDhweH0udWktaWNvbi1jaXJjbGVzbWFsbC1jbG9zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMnB4IC0yMDhweH0udWktaWNvbi1zcXVhcmVzbWFsbC1wbHVze2JhY2tncm91bmQtcG9zaXRpb246LTQ4cHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLW1pbnVze2JhY2tncm91bmQtcG9zaXRpb246LTY0cHggLTIwOHB4fS51aS1pY29uLXNxdWFyZXNtYWxsLWNsb3Nle2JhY2tncm91bmQtcG9zaXRpb246LTgwcHggLTIwOHB4fS51aS1pY29uLWdyaXAtZG90dGVkLXZlcnRpY2Fse2JhY2tncm91bmQtcG9zaXRpb246MCAtMjI0cHh9LnVpLWljb24tZ3JpcC1kb3R0ZWQtaG9yaXpvbnRhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xNnB4IC0yMjRweH0udWktaWNvbi1ncmlwLXNvbGlkLXZlcnRpY2Fse2JhY2tncm91bmQtcG9zaXRpb246LTMycHggLTIyNHB4fS51aS1pY29uLWdyaXAtc29saWQtaG9yaXpvbnRhbHtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00OHB4IC0yMjRweH0udWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2V7YmFja2dyb3VuZC1wb3NpdGlvbjotNjRweCAtMjI0cHh9LnVpLWljb24tZ3JpcC1kaWFnb25hbC1zZXtiYWNrZ3JvdW5kLXBvc2l0aW9uOi04MHB4IC0yMjRweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLXRvcCwudWktY29ybmVyLWxlZnQsLnVpLWNvcm5lci10bHtib3JkZXItdG9wLWxlZnQtcmFkaXVzOjNweH0udWktY29ybmVyLWFsbCwudWktY29ybmVyLXRvcCwudWktY29ybmVyLXJpZ2h0LC51aS1jb3JuZXItdHJ7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItYm90dG9tLC51aS1jb3JuZXItbGVmdCwudWktY29ybmVyLWJse2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6M3B4fS51aS1jb3JuZXItYWxsLC51aS1jb3JuZXItYm90dG9tLC51aS1jb3JuZXItcmlnaHQsLnVpLWNvcm5lci1icntib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czozcHh9LnVpLXdpZGdldC1vdmVybGF5e2JhY2tncm91bmQ6I2FhYTtvcGFjaXR5Oi4zOy1tcy1maWx0ZXI6QWxwaGEoT3BhY2l0eT0zMCl9LnVpLXdpZGdldC1zaGFkb3d7LXdlYmtpdC1ib3gtc2hhZG93OjAgMCA1cHggIzY2Njtib3gtc2hhZG93OjAgMCA1cHggIzY2Nn0KLyoqIC9jc3Mvc3R5bGUuY3NzICoqLwpodG1sLCBib2R5LCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLCBoMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBibG9ja3F1b3RlLCBwcmUsIGFiYnIsIGFjcm9ueW0sIGFkZHJlc3MsIGJpZywgY2l0ZSwgY29kZSwgZGVsLCBkZm4sIGVtLCBmb250LCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLCBzbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLCBiLCB1LCBpLCBjZW50ZXIsIGRsLCBkdCwgZGQsIG9sLCB1bCwgbGksIGZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLCB0YWJsZSwgY2FwdGlvbiwgdGJvZHksIHRmb290LCB0aGVhZCwgdHIsIHRoLCB0ZCB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gaHRtbCB7IC1tcy10ZXh0LXNpemUtYWRqdXN0OjEwMCU7IC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDoxMDAlOyB9IGJvZHkgeyBwYWRkaW5nOjA7IG1hcmdpbjowIDAgMCAwOyBiYWNrZ3JvdW5kOiNGRkZGRkY7IGNvbG9yOiMzMzMzMzM7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dC1tb2IpOyBmb250LXdlaWdodDp2YXIoLS1mb250LXRleHQtd2VpZ2h0KTsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCwgYnV0dG9uIHsgZm9udC1mYW1pbHk6dmFyKC0tZm9udC10ZXh0LW1vYik7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtdGV4dC13ZWlnaHQpOyB9IC5mdWxsV2lkdGhCdXR0b24gYSwgLnRvcG5hdiB0ciB0ZCBhLCBhI21vYmlsZVByb21vdGlvbkJ0biBzcGFueyBmb250LWZhbWlseTp2YXIoLS1mb250LWJ1dHRvbnMtbW9iKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1idXR0b25zLXdlaWdodCk7IH0gLmRlYWxlci1jb2xvciB7IGNvbG9yOiNlNGRjZDM7IH0gLmgyZm9ybXsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgYmFja2dyb3VuZDojOTk5OyBjb2xvcjp3aGl0ZTsgcGFkZGluZzo1cHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luLXRvcDoxNXB4OyB9IC4tc2VsZWN0IHsgcGFkZGluZzowOyBtYXJnaW46MDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBib3JkZXItcmFkaXVzOjNweDsgb3ZlcmZsb3c6aGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJhY2tncm91bmQ6I2ZmZjsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnVzZWRfZGV0YWlsc19vcHRpb25zX3RpdGxlLCAubmV3X2RldGFpbHNfb3B0aW9uc190aXRsZXsgYmFja2dyb3VuZC1jb2xvcjojY2NjOyBjb2xvcjojMDAwOyBwYWRkaW5nOjEwcHg7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IG1hcmdpbi1sZWZ0Oi0xMHB4OyBtYXJnaW4tcmlnaHQ6LTEwcHg7IH0gLi1zZWxlY3Q6YWZ0ZXIgeyB0b3A6NTAlOyByaWdodDo1cHg7IGJvcmRlcjpzb2xpZCB0cmFuc3BhcmVudDsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBwb3NpdGlvbjphYnNvbHV0ZTsgcG9pbnRlci1ldmVudHM6bm9uZTsgYm9yZGVyLWNvbG9yOnJnYmEoMCwgMCwgMCwgMCk7IGJvcmRlci10b3AtY29sb3I6IzAwMDAwMDsgYm9yZGVyLXdpZHRoOjVweDsgbWFyZ2luLXRvcDotMnB4OyB6LWluZGV4OjEwMDsgfSAuLXNlbGVjdCBzZWxlY3QgeyBwYWRkaW5nOjVweCA4cHg7IHdpZHRoOjEwMCU7IGJvcmRlcjpub25lOyBib3gtc2hhZG93Om5vbmU7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtaW1hZ2U6bm9uZTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBhcHBlYXJhbmNlOm5vbmU7IH0gLi1zZWxlY3Qgc2VsZWN0OmZvY3VzIHsgb3V0bGluZTpub25lOyB9IGEsIGE6aG92ZXIgeyBvdXRsaW5lOm5vbmU7IH0gLm5hdiA+IHVsID4gbGl7IG1hcmdpbi1ib3R0b206M3B4OyB9IGgxeyBmb250LXNpemU6MS40ZW07IHBhZGRpbmctdG9wOjEwcHg7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtaDEtbW9iKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC1oMS13ZWlnaHQpOyB9IHNwYW4uaDItYWx0LHNwYW4uaDMtYWx0eyBtYXJnaW46MDsgcGFkZGluZzowOyB9IGgyLGgzLGg0LGg1LGg2LHNwYW4uaDItYWx0LHNwYW4uaDMtYWx0eyBmb250LWZhbWlseTp2YXIoLS1mb250LWgyLW1vYik7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDItd2VpZ2h0KTsgfSBpbnB1dFt0eXBlPWJ1dHRvbl0sIC5kZXRhaWxzIGEsIC5oLWJ1dHRvbnMgdWwgbGkgYSwgLnByaWNlLCAuZGV0YWlscywgLmRldGFpbHMgYSwgLmJ1dHRvbi1wcm9tbzMsIC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwgLmJ0bi1sZyB7IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtYnV0dG9ucy1tb2IpOyBmb250LXdlaWdodDp2YXIoLS1mb250LWJ1dHRvbnMtd2VpZ2h0KTsgfSAuY2xlYXJ7IGNsZWFyOmJvdGg7fSBhLCBhOmhvdmVyIHt0ZXh0LWRlY29yYXRpb246bm9uZTt9IC5jb250YWluZXIgeyB3aWR0aDoxMDAlOyBtYXJnaW46MCAwIDAgMDsgfSAudG9wIHsgYmFja2dyb3VuZDojMjIyMjIyOyBiYWNrZ3JvdW5kOiNmZmZmZmY7IGhlaWdodDo1MHB4OyB9IC50b3BuYXYgLmJ1cmdlci1idG4tY29udGFpbmVyLm1lbnUtdGFsbHsgd2lkdGg6NDBweCAhaW1wb3J0YW50OyB9IC50b3BuYXYgYSB7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXNpemU6MWVtOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojZmZmZmZmOyBjb2xvcjojMDAyYzVmOyB9IC5idXJnZXItbWVudXsgaGVpZ2h0OjIwMCUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDAuNSkgIWltcG9ydGFudDsgfSAucmlnaHRib3JkZXIgeyBib3JkZXItcmlnaHQ6MXB4IHNvbGlkOyBib3JkZXItY29sb3I6I2ZmZmZmZjsgYm9yZGVyLWNvbG9yOiMwMDJjNWY7IH0gLmxlZnRib3JkZXIgeyBib3JkZXItbGVmdDoxcHggc29saWQ7IGJvcmRlci1jb2xvcjojZmZmZmZmOyBib3JkZXItY29sb3I6IzAwMmM1ZjsgfSAudGVsZXBob25lLCAubWFwIHtkaXNwbGF5OmJsb2NrOyBoZWlnaHQ6NjRweDsgcGFkZGluZzoyNXB4IDAgMCAwO30gLnRlbGVwaG9uZSB7YmFja2dyb3VuZDp1cmwoL2ltYWdlcy9pY29uLXBob25lLnBuZykgbm8tcmVwZWF0IDIwcHggMTVweDsgfSAubWFwIHtiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ljb24tbWFwLnBuZykgbm8tcmVwZWF0IDUwcHggMTBweDt9IC5oZWFkZXJiYXIgeyBiYWNrZ3JvdW5kOiMzMzM7IGNvbG9yOndoaXRlOyBib3gtc2hhZG93OnJnYmEoMCwgMCwgMCwgMC41KSAwIDAgNXB4IDNweDsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojMDAyYzVmIH0gLmhlYWRlcmJhci50YWxsIHsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IHdpZHRoIDoxMDAlOyB9IC5oZWFkZXJiYXIgLnRvcG5hdiB7IHdpZHRoIDoxMDAlOyBoZWlnaHQgOjEwMCU7IGRpc3BsYXkgOmZsZXg7IGp1c3RpZnktY29udGVudCA6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXMgOmNlbnRlcjsgfSAuaGVhZGVyYmFyLnRhbGwgLnRvcG5hdiB7IGp1c3RpZnktY29udGVudDpzdHJldGNoOyB9IC5oZWFkZXJiYXIgLnRvcG5hdiA+IGRpdiB7IGhlaWdodCA6NTBweDsgZGlzcGxheSA6ZmxleDsgYWxpZ24taXRlbXMgOmNlbnRlcjsgfSAuaGVhZGVyYmFyIC50b3BuYXYgPiAubG9nby1hY3Rpb24geyBmbGV4LWRpcmVjdGlvbiA6Y29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQgOnNwYWNlLWV2ZW5seTsgfSAuaGVhZGVyYmFyLnRhbGwgLnRvcG5hdiA+IGRpdjpub3QoLmJ1cmdlci1idG4tY29udGFpbmVyKSB7IGZsZXgtZ3JvdzoxOyB9IC5oZWFkZXJiYXIudGFsbCAudG9wbmF2ID4gZGl2Om5vdCg6bGFzdC1vZi10eXBlKSB7IGJvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDsgfSAuaGVhZGVyYmFyIC5tZW51LmJ1cmdlci1idG4tY29udGFpbmVyIHsgbWF4LXdpZHRoIDo0MHB4OyBoZWlnaHQgOjUwcHg7IH0gLmhlYWRlcmJhciAuYnVyZ2VyLW1lbnUtYnV0dG9uLCAuaGVhZGVyYmFyLnRhbGwgLnRvcG5hdiA+IGRpdiB7IGRpc3BsYXkgOmZsZXg7IGp1c3RpZnktY29udGVudCA6Y2VudGVyOyBhbGlnbi1pdGVtcyA6Y2VudGVyOyB0ZXh0LWNlbnRlciA6Y2VudGVyOyB9IC5oZWFkZXJiYXIgLmJ1cmdlci1tZW51LWJ1dHRvbiBpIHsgZm9udC1zaXplOjEuMjVyZW07IGNvbG9yOiMwMDJjNWY7IH0gLmhlYWRlcmJhciAubG9nby1hY3Rpb24gaW1nIHsgcGFkZGluZyA6MDsgaGVpZ2h0IDoxMDAlOyBtYXgtaGVpZ2h0IDo1MHB4OyB9IC5oZWFkZXJiYXIgLmhlYWRlci1kZWFsZXItbmFtZSB7IGRpc3BsYXkgOmJsb2NrOyB0ZXh0LWFsaWduIDpjZW50ZXI7IGxpbmUtaGVpZ2h0IDoxLjNlbTsgZm9udC1zaXplIDowLjhyZW07IGNvbG9yIDojODg4ODg4OyBmb250LWZhbWlseSA6dmFyKC0tZm9udC1oMS1tb2IpOyBmb250LXdlaWdodCA6dmFyKC0tZm9udC13ZWlnaHQtaDEtbW9iKTsgfSAuaGVhZGVyYmFyIC50b3BuYXYgPiBkaXY6bm90KC5sb2dvLWFjdGlvbikgPiBhIHsgdGV4dC1hbGlnbiA6Y2VudGVyOyB3aWR0aCA6MTAwJTsgcGFkZGluZyA6MC43NXJlbTsgfSBkaXYjcGhvbmVOdW1iZXJEaXYgbGkgeyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luLWJvdHRvbToxNXB4OyB9ICNuZXdzQ29udGFpbmVyIGF7IGNvbG9yOiMzMzM7IH0gI25ld3NDb250YWluZXIgYS50b3BfbGluayB7IGNvbG9yOiNmZmY7IH0gLm5ld3NfYXJ0aWNsZSBoMnsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MS4xMjVyZW0gOyB9IC5uZXdzX2FydGljbGUgaDEsaDIsaDMsaDQsaDUsaDZ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuYWRkcmVzcyB7IGxldHRlci1zcGFjaW5nOi0xcHg7IGNvbG9yOiMzMzM7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgbGluZS1oZWlnaHQ6bm9ybWFsOyB3aWR0aDo1MCU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5hZGRyZXNzLCAubG9nbyB7IHZlcnRpY2FsLWFsaWduOnRvcDsgfSAuY29udGVudHMgeyBiYWNrZ3JvdW5kOiNmYmZiZmI7IHBhZGRpbmc6MTBweDsgfSAuY29udGVudHMgaDIge2ZvbnQtc2l6ZToxLjVyZW07IGxpbmUtaGVpZ2h0OjIuMjVyZW07fSAuY29udGVudHMgcCB7Zm9udC1zaXplOjFlbTsgbGluZS1oZWlnaHQ6MS4xZW07IHRleHQtYWxpZ246anVzdGlmeTsgbGV0dGVyLXNwYWNpbmc6MDt9IC5tb2JpbGVfYnVzaW5lc3NEZXNjIHsgYmFja2dyb3VuZDojZmZmZmZmIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IH0gLm1lbnUgeyB3aWR0aDoxMDAlOyBjbGVhcjpib3RoOyB9ICNuZXdzQ29udGFpbmVyIC5uZXdzX2FydGljbGUgaW1nW3NyYyo9Jy9ja2ZpbmRlciddeyBoZWlnaHQ6YXV0byAhaW1wb3J0YW50OyBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50OyB9ICNuZXdzQ29udGFpbmVyIC5uZXdzX2FydGljbGUgaW1neyBtYXgtd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IH0gI25ld3NDb250YWluZXIgLmNsZWFyZml4IHsgaGVpZ2h0OjBweDsgfSAubWVudSB1bCBsaSBhIHNwYW4ge3BhZGRpbmctbGVmdDo3cHg7fSAubWVudSB1bCBsaSBhIHNwYW4udGV4dHZhbCB7bGluZS1oZWlnaHQ6MzJweDsgIyNNT0JJTEVfTUVOVV9DU1MjI30gLm1lbnUgdWwgbGkgYSBzcGFuIGltZyB7cGFkZGluZy1sZWZ0OjEwcHg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTt9IC5ib3R0b20gLmxpbmtzIGEgeyBjb2xvcjojMDAwMDAwOyB9IC5FTkdMSVNIIC5ib3R0b20gLmxpbmtzIHVsIGxpIGF7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7IH0gLmJvdHRvbSAubGlua3MgZGl2IHsgbWFyZ2luOjE1cHggMDsgZGlzcGxheTpibG9jazsgfSAuYm90dG9tIHsgcGFkZGluZzoxMHB4OyBkaXNwbGF5OmJsb2NrOyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyAtbW96LWJveC1zaGFkb3c6IGluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgYm94LXNoYWRvdzogaW5zZXQgMHB4IDEwcHggMTFweCAtMTFweCByZ2JhKDUwLCA1MCwgNTAsIDAuNzUpOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IGNvbG9yOiMwMDAwMDA7IC0tdHh0LWNvbG9yOiMwMDAwMDA7IH0gLmJvdHRvbSAubGlua3MgeyBmb250LXNpemU6MC45MzhyZW0gOyBsaW5lLWhlaWdodDoyMXB4OyBjbGVhcjpib3RoOyBwYWRkaW5nLXRvcDo1cHg7IH0gLmJvdHRvbSAuZm9vdGVyX2FkZHJlc3Mgc3BhbnsgY29sb3I6aW5oZXJpdCAhaW1wb3J0YW50OyB9IC5ib3R0b20gLmxpbmtzIGRpdi5mb290ZXJfbG9nbyB7IG1hcmdpbjoxLjI1cmVtIDAgMS43NXJlbSAwOyB9IC5ib3R0b20gLmxpbmtzIGRpdi5mb290ZXJfbG9nbyBpbWcgeyBtYXgtd2lkdGg6MTgwcHg7IG1heC1oZWlnaHQ6MTAwcHg7IH0gYS5idXR0b24tcHJvbW8geyBjb2xvcjojZmZmZmZmIWltcG9ydGFudDsgfSAuYnJlYWRjcnVtYnMgeyBmb250LXNpemUgOjAuOXJlbTsgY29sb3IgOiMyMjIyMjI7IGZvbnQtd2VpZ2h0IDpib2xkOyBwYWRkaW5nIDoxNXB4OyB9IC5icmVhZGNydW1icyBhIHtjb2xvcjojNjY2OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYm90dG9tIC5saW5rcyBkaXYuZm9vdGVyLWNhcmxpc3RpbmcgeyBwYWRkaW5nLWJvdHRvbTo1cHg7IH0gLmNGb290ZXJDYXJMaW5rc3sgcGFkZGluZzowIDAgNXB4IDA7IH0gLnNlYXJjaGJveCB7IGJhY2tncm91bmQ6I0U1RTVFNTsgfSAuc2VhcmNoYm94IGgzIC51aS1hY2NvcmRpb24taGVhZGVyLWljb24ge3BhZGRpbmc6MHB4IDRweCA2cHggMHB4OyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9kb3duYXJyb3cucG5nKSBuby1yZXBlYXQgOTglIGNlbnRlcjsgdG9wOjE4cHghaW1wb3J0YW50O30gLmZvcm1hcmVhIHsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDAgMXB4IDNweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7IC1tb3otYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpOyBib3gtc2hhZG93Omluc2V0IDAgMXB4IDNweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7IH0gLmZvcm1hcmVhIHRhYmxlIHRyIHRkIHsgcGFkZGluZzo1cHg7IH0gaW5wdXQsIGlucHV0W3R5cGU9dGV4dF0sIGlucHV0W3R5cGU9dGVsXSwgaW5wdXRbdHlwZT1lbWFpbF0sIHNlbGVjdCwgdGV4dGFyZWF7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6NXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmNoZWNrYm94IHsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6YmxvY2s7IH0gLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0geyB3aWR0aDphdXRvOyBvcGFjaXR5OjAuMDAwMDAwMDE7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IG1hcmdpbi1sZWZ0Oi0ycHg7IH0gLmNoZWNrYm94X2hlbHBlciB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6LTRweDsgbGVmdDotNHB4OyBjdXJzb3I6cG9pbnRlcjsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjFyZW0gOyB1c2VyLXNlbGVjdDpub25lOyBjb2xvcjojZTdlN2U3OyB9IC5jaGVja2JveF9oZWxwZXI6YmVmb3JlIHsgY29udGVudDonJzsgcG9zaXRpb246YWJzb2x1dGU7IGxlZnQ6MDsgdG9wOjA7IG1hcmdpbjo0cHg7IHdpZHRoOjE1cHg7IGhlaWdodDoxNXB4OyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjI4cyBlYXNlOyBib3JkZXItcmFkaXVzOjJweDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyBiYWNrZ3JvdW5kOndoaXRlOyB9IC5jaGVja2JveF9oZWxwZXI6YWZ0ZXIgeyBjb250ZW50OicnOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDo4cHg7IGhlaWdodDo1cHg7IGJvcmRlci1ib3R0b206MnB4IHNvbGlkICMzMzM7IGJvcmRlci1sZWZ0OjJweCBzb2xpZCAjMzMzOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTsgLW1vei10cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMCk7IC1tcy10cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMCk7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKSBzY2FsZSgwKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo3cHg7IGxlZnQ6OHB4OyB9IC5jaGVja2JveCBpbnB1dFt0eXBlPSJjaGVja2JveCJdY2hlY2tlZCB+IC5jaGVja2JveF9oZWxwZXI6OmJlZm9yZSB7IGNvbG9yOiMzMzM7IH0gLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZCB+IC5jaGVja2JveF9oZWxwZXI6OmFmdGVyIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMSk7IC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpOyAtbXMtdHJhbnNmb3JtOnJvdGF0ZSgtNDVkZWcpIHNjYWxlKDEpOyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZykgc2NhbGUoMSk7IH0gLmNoZWNrYm94IGxhYmVsIHsgbWluLWhlaWdodDoyNHB4OyBwYWRkaW5nLWxlZnQ6MjRweDsgbWFyZ2luLWJvdHRvbTowOyBmb250LXdlaWdodDpub3JtYWw7IGN1cnNvcjpwb2ludGVyOyB2ZXJ0aWNhbC1hbGlnbjpzdWI7IH0gLmNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il06Zm9jdXMgKyBsYWJlbDo6YmVmb3JlIHsgb3V0bGluZTpyZ2IoNTksIDE1MywgMjUyKSBhdXRvIDVweDsgfSBzZWxlY3R7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gLmRyb3Bkb3duIHt3aWR0aDo5NSU7IG1hcmdpbjphdXRvIDVweDt9IC5idXR0b24ge2JhY2tncm91bmQ6IzMzMzsgY29sb3I6I2ZmZjsgZm9udC1zaXplOjEuMWVtOyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MzAwcHg7IHBhZGRpbmc6MTVweDsgY3Vyc29yOnBvaW50ZXJ9IC5pbWFnZV9ib3ggeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luOjdweDsgfSAuaW1hZ2VfYm94IGltZ3sgYm9yZGVyOjFweCBzb2xpZCAjZWVlOyB9ICNjb250YWluZXJGbEIgeyB6LWluZGV4Ojk5OTk5OTk7IH0gLmltYWdlX3JpYmJvbiB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjNweDsgdG9wOi00cHg7IHotaW5kZXg6ODUwOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjExMnB4OyBoZWlnaHQ6MTEycHg7IHRleHQtYWxpZ246cmlnaHQ7IH0gLmltYWdlX3JpYmJvbiBzcGFuIHsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6IzAwMDAwMDsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjI4cHg7IHRyYW5zZm9ybTpyb3RhdGUoLTQ1ZGVnKTsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IHdpZHRoOjE0OHB4OyBkaXNwbGF5OmJsb2NrOyBiYWNrZ3JvdW5kOiNlNGRjZDM7IGJveC1zaGFkb3c6MCAzcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMSk7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MzBweDsgbGVmdDotMzBweDsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmJlZm9yZSB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCAjZTRkY2QzOyBib3JkZXItcmlnaHQ6M3B4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2U0ZGNkMzsgfSAuaW1hZ2VfcmliYm9uIHNwYW46OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjBweDsgdG9wOjEwMCU7IHotaW5kZXg6LTE7IGJvcmRlci1sZWZ0OjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjNweCBzb2xpZCAjZTRkY2QzOyBib3JkZXItYm90dG9tOjNweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDozcHggc29saWQgI2U0ZGNkMzsgfSAucmliYm9uLWNvbnRhaW5lciB7IHdpZHRoIDoyMDBweDsgaGVpZ2h0IDoyMDBweDsgb3ZlcmZsb3cgOmhpZGRlbjsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IGxlZnQgOjA7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib24geyB6LWluZGV4IDo1NTU7IG1hcmdpbiA6MDsgcGFkZGluZyA6MC41cmVtIDAgIWltcG9ydGFudDsgYm94LXNoYWRvdyA6MCAzcHggMTBweCAtNXB4IHJnYmEoMCwgMCwgMCwgMSk7IGZvbnQtc2l6ZSA6MXJlbTsgbGluZS1oZWlnaHQgOjEycHg7IHRleHQtYWxpZ24gOmNlbnRlcjsgcG9zaXRpb24gOmFic29sdXRlOyB0b3AgOjA7IGxlZnQgOjA7IHRyYW5zZm9ybSA6dHJhbnNsYXRlWCgtMzUlKSB0cmFuc2xhdGVZKDAlKSByb3RhdGUoLTQ1ZGVnKTsgdHJhbnNmb3JtLW9yaWdpbiA6dG9wIHJpZ2h0OyBiYWNrZ3JvdW5kIDp2YXIoLS1jb3JuZXItcmliYm9uLWJnLWNvbG9yKTsgY29sb3IgOnZhcigtLWNvcm5lci1yaWJib24tdGV4dC1jb2xvcik7IH0gLnJpYmJvbi1jb250YWluZXIgLmNvcm5lci1yaWJib246YmVmb3JlLCAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IGNvbnRlbnQgOiIiOyBwb3NpdGlvbiA6YWJzb2x1dGU7IHRvcCA6MDsgbWFyZ2luIDowIC0xcHg7IHdpZHRoIDoxMDAlOyBoZWlnaHQgOjEwMCU7IGJhY2tncm91bmQgOnZhcigtLWNvcm5lci1yaWJib24tYmctY29sb3IpOyB9IC5yaWJib24tY29udGFpbmVyIC5jb3JuZXItcmliYm9uOmJlZm9yZSB7IGxlZnQ6MTAwJTsgfSAucmliYm9uLWNvbnRhaW5lciAuY29ybmVyLXJpYmJvbjphZnRlciB7IHJpZ2h0OjEwMCU7IH0gLmhlYWRpbmcgeyBtaW4taGVpZ2h0OjM1cHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICM4MDgwODA7IGJhY2tncm91bmQ6I2NjY2NjYzsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MTBweCA1cHggNXB4IDVweDsgfSAuaGVhZGluZyB0YWJsZXsgd2lkdGg6MjI1cHg7IG1hcmdpbjowIGF1dG87IH0gI3NlYXJjaENvbnRhaW5lciAuaXRlbSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTsgYm9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjQpOyBwYWRkaW5nOjEwcHggaW5oZXJpdDsgbWFyZ2luOjAgMCAwIDA7IGRpc3BsYXk6YmxvY2s7IGNsZWFyOmJvdGg7IG1pbi1oZWlnaHQ6ODBweDsgZm9udC1zaXplOjAuODc1cmVtIDsgfSAjc2VhcmNoQ29udGFpbmVyIC5pdGVtIGltZyB7ZmxvYXQ6bGVmdDsgd2lkdGg6OTBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlcjozcHggc29saWQgI2ZmZjsgbWFyZ2luOi4zZW0gMTBweDsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNCk7IC1tb3otYm94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyBib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuNCk7IH0gI3NlYXJjaENvbnRhaW5lciAuaXRlbSBoMyB7IG1hcmdpbjowIDAgMCAwOyBwYWRkaW5nOjAgMCAwIDA7IGZvbnQtc2l6ZToxcmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojMTExOyBsaW5lLWhlaWdodDoxOHB4OyBtYXJnaW4tdG9wOjVweDsgfSAucHJpY2UsIC5kZXRhaWxzIHsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjZweDsgLW1vei1ib3JkZXItcmFkaXVzOjZweDsgYm9yZGVyLXJhZGl1czo2cHg7IC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyAtbW96LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC40KTsgYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nOjdweDsgZmxvYXQ6bGVmdDsgZGlzcGxheTpibG9jazsgfSAucHJpY2VfdXNlZF9sZWZ0LC5wcmljZV91c2VkX3JpZ2h0eyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgYmFja2dyb3VuZC1jb2xvcjojRjJGMkYyOyBoZWlnaHQ6NjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6MDsgd2lkdGg6NTAlOyB9IC5zcGVjc191c2VkX2xlZnQgeyBwYWRkaW5nOjhweCAxMHB4OyBjb2xvcjojYWFhYWFhOyB9IC5zcGVjc191c2VkX3JvdzIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGMkYyRjI7IH0gLnNwZWNzX3VzZWRfYWZ0ZXJ7IGJhY2tncm91bmQtY29sb3I6I0YyRjJGMjsgcGFkZGluZy1ib3R0b206MTBweDsgYm9yZGVyLXRvcDoxcHggc29saWQgI2NjY2NjYzsgfSAudXNlZF9kZXRhaWxzX2J0bnsgZGlzcGxheTpibG9jazsgd2lkdGg6MjQwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGJhY2tncm91bmQ6IzAwMDsgbWFyZ2luOjAgYXV0bzsgcGFkZGluZzoxMHB4IDA7IH0gLnVzZWRfZGV0YWlsc19idG4gYXsgY29sb3I6I0ZGRjsgfSAucHJpY2VfdXNlZF9sZWZ0IHNwYW57IGNvbG9yOiNEM0QzRDM7IH0gLnVzZWRfc2VhcmNoX3JlYmF0ZXsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjEuMTg4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAucmViYXRlX3ByaWNleyBjb2xvcjpyZWQ7IH0gLnVzZWRfc2VhcmNoX3JlYmF0ZV90ZHsgcGFkZGluZzoxMHB4IDA7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kOiNlNmU2ZTY7IH0gLnByaWNlIHsgYmFja2dyb3VuZC1jb2xvcjojY2RjZGNkOyBjb2xvcjojMTExOyBmb250LXNpemU6MC43NXJlbSA7IHBhZGRpbmctdG9wOjhweDsgd2lkdGg6MzYlOyBwYWRkaW5nLWJvdHRvbTo1cHg7IH0gcHJpY2Vfc2VhcmNoX3VzZWR7IGJhY2tncm91bmQ6I0YyRjJGMjsgaGVpZ2h0OjQwcHg7IHRleHQtYWxpZ246Y2VudGVyOyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLnVzZWRfb2xkX3ByaWNleyBmb250LXNpemU6MS4xMjVyZW0gOyBjb2xvcjojYWFhYWFhOyBsaW5lLWhlaWdodDoxMHB4OyB9IC5kZXRhaWxzIHsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAuMDUsIzAwMDAwMCksY29sb3Itc3RvcCgxLCMzMzMzMzMpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMCcsZW5kQ29sb3JzdHI9JyMzMzMzMzMnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzOyBtYXJnaW4tcmlnaHQ6MTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luLWxlZnQ6NXB4OyBwYWRkaW5nOjhweCAyMHB4OyBtYXJnaW4tcmlnaHQ6MHB4OyB9IC52aWRlb3NfcGljdHVyZXNfYnV0dG9uc19jb250YWluZXIgeyBtYXJnaW4tYm90dG9tOjBweCFpbXBvcnRhbnQ7IH0gLmktY2FtZXJhOmJlZm9yZXsgY29udGVudDoiXGYwM2QiOyBmb250LWZhbWlseToiRm9udCBBd2Vzb21lIDUgUHJvIjsgcGFkZGluZy1yaWdodDo1cHg7IGZvbnQtd2VpZ2h0OjkwMDsgd2lkdGg6MTVweDsgfSAuaS1waG90bzpiZWZvcmUgeyBjb250ZW50OiJcZjAzMCI7IGZvbnQtZmFtaWx5OiJGb250IEF3ZXNvbWUgNSBQcm8iOyBwYWRkaW5nLXJpZ2h0OjVweDsgZm9udC13ZWlnaHQ6OTAwOyB3aWR0aDoxNXB4OyB9IC5mdWxsV2lkdGhCdXR0b257IHdpZHRoOjkwJTsgcGFkZGluZzp2YXIoLS1zKTsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbi1sZWZ0OjUlOyBtYXJnaW4tcmlnaHQ6NSU7IGJvcmRlci1yYWRpdXM6M3B4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZnVsbFdpZHRoQnV0dG9uIGEgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuZmIuZnVsbFdpZHRoQnV0dG9ueyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojM2E1ODk4OyBjb2xvcjojZmZmOyB9IC5mYi5mdWxsV2lkdGhCdXR0b24gYSB7IGNvbG9yOiNmZmY7IG1hcmdpbi1sZWZ0OjUwcHg7IH0gLmZiIHNwYW4uZmEtc3RhY2t7IGNvbG9yOiMzYTU4OTg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgfSAudGV4dF9zbGlkZSBhIHsgaGVpZ2h0OjE0cHghaW1wb3J0YW50OyB9ICN2ZHBfcHJpY2VfYmxvY2ssI3ZkcF9wcmljZV9ibG9ja191c2VkeyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0KTsgYm9yZGVyLWNvbG9yOiNiYmI7IH0gI3ZkcF9wcmljZV9ibG9ja3sgbWluLWhlaWdodDozMHB4OyB9IGRpdiNjb21wbF90YWJsZSBhIHsgY29sb3I6IzMzMzsgfSAuY2hldnJvbi1yaWdodDphZnRlciB7IGNvbnRlbnQ6IlxmMDU0IjsgZm9udC1mYW1pbHk6IkZvbnQgQXdlc29tZSA1IFBybyI7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXdlaWdodDo5MDA7IHRleHQtZGVjb3JhdGlvbjppbmhlcml0OyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MiU7IH0gZnVsbFdpZHRoQnV0dG9uOmJlZm9yZSB7IGZvbnQtZmFtaWx5OiJGb250IEF3ZXNvbWUgNSBQcm8iOyBmb250LXN0eWxlOm5vcm1hbDsgZm9udC13ZWlnaHQ6OTAwOyB0ZXh0LWRlY29yYXRpb246aW5oZXJpdDsgcGFkZGluZy1yaWdodDo1cHg7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowOyBwYWRkaW5nLXRvcDoycHg7IH0gI3NvY2lhbF9tZWRpYV9pY29uc19kaXZ7IG1hcmdpbi10b3A6MTVweDsgfSAjc29jaWFsX21lZGlhX2ljb25zX2RpdiAqICsgKnsgbWFyZ2luLWxlZnQ6MXJlbTsgfSAjc29jaWFsX21lZGlhX2ljb25zX2RpdiAuZmFieyBmb250LXNpemU6MS41cmVtOyB9ICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IGF7IGNvbG9yOiM4MDgwODA7IH0gLnNvY2lhbCB7IHRleHQtYWxpZ246Y2VudGVyOyB3aWR0aDoxOXB4OyBoZWlnaHQ6MTlweDsgZmxvYXQ6cmlnaHQ7IGJhY2tncm91bmQ6cmdiKDI1NSwyNTUsMjU1KTsgYm9yZGVyOjFweCBzb2xpZCByZ2IoMjA0LDIwNCwyMDQpOyBib3gtc2hhZG93OjAgMnB4IDRweCByZ2JhKDAsMCwwLDAuMTUpLCBpbnNldCAwIDAgNTBweCByZ2JhKDAsMCwwLDAuMSk7IGJvcmRlci1yYWRpdXM6MTAwcHg7IG1hcmdpbjowIDEwcHggMHB4IDA7IHBhZGRpbmc6OXB4OyB9IC5zb2NpYWwtc2hhcmUgeyB3aWR0aDoxOXB4OyBoZWlnaHQ6MTlweDsgYmFja2dyb3VuZDpyZ2IoMjU1LDI1NSwyNTUpOyBib3JkZXItcmFkaXVzOjEwMHB4OyBtYXJnaW46MCAxMHB4IDBweCAwOyB9ICNzb2NpYWxfbWVkaWFfaWNvbnNfZGl2IGEuc29jaWFsIC5mYWJ7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IH0gLnNvY2lhbCBpeyBmb250LXNpemU6MS4yNXJlbSA7IH0gLmdvb2dsZS1wbHVzOmhvdmVye2JhY2tncm91bmQ6I0RENEIzOTtjb2xvcjojRkZGIWltcG9ydGFudDt9IC5mYWNlYm9vazpob3ZlcntiYWNrZ3JvdW5kOiMzYjU5OTg7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAudHdpdHRlcjpob3ZlcntiYWNrZ3JvdW5kOiMwMGFjZWU7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAucGludGVyZXN0OmhvdmVye2JhY2tncm91bmQ6I2M4MjMyYztjb2xvcjojRkZGIWltcG9ydGFudDt9IC5saW5rZWRpbjpob3ZlcntiYWNrZ3JvdW5kOiMwZTc2YTg7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAuc2t5cGU6aG92ZXJ7YmFja2dyb3VuZDojMDBhZmYwO2NvbG9yOiNGRkYhaW1wb3J0YW50O30gLnlvdXR1YmU6aG92ZXJ7YmFja2dyb3VuZDojYzQzMDJiO2NvbG9yOiNGRkYhaW1wb3J0YW50O30gLnR1bWJscjpob3ZlcntiYWNrZ3JvdW5kOiMzNDUyNmY7Y29sb3I6I0ZGRiFpbXBvcnRhbnQ7fSAuZGV0YWlscyBhIHsgY29sb3I6I2ZmZjsgZGlzcGxheTpibG9jazsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnBhZ2luYXRpb24ge2NsZWFyOmJvdGg7IHBhZGRpbmc6NXB4OyBwYWRkaW5nLWxlZnQ6MTAwcHg7fSAucGFnaW5hdGlvbiBhLCAucGFnaW5hdGlvbiBhLnNlbGVjdGVkIHsgZGlzcGxheTpibG9jazsgcGFkZGluZzo1cHggN3B4OyBwYWRkaW5nLXRvcDo4cHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiNmZmY7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyBmbG9hdDpsZWZ0OyB3aWR0aDoxM3B4OyBtYXJnaW46NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4OyAtbW96LWJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXItcmFkaXVzOjZweDsgfSAucGFnaW5hdGlvbiBhIHtiYWNrZ3JvdW5kOiM2NjYgO30gLnBhZ2luYXRpb24gYS5zZWxlY3RlZCB7YmFja2dyb3VuZDojMjIyIDt9IC5wYWdlbm81e3dpZHRoOjEwMCU7bWFyZ2luOjMwcHggMCAyMHB4IDBweDsgcGFkZGluZzowOyBmbG9hdDpsZWZ0fSAucGFnZV9uYW1lMTggYXsgY29sb3I6IzMzMzsgfSAucGFnZW5vMntoZWlnaHQ6MjRweDsgfSAucGFnZW5vMiB1bHsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBwYWRkaW5nOjA7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLnBhZ2VubzIgdWwgbGl7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBtYXJnaW46MDsgZGlzcGxheTppbmxpbmU7fSAucGFnZW5vMiB1bCBsaSBheyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiMzMjMyMzI7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojYjNiNGI1OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gLnBhZ2VubzIgdWwgbGkgYTpob3ZlcnsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IG1hcmdpbjowOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcGFkZGluZzowIDdweDsgbWFyZ2luLXJpZ2h0OjJweDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGluZS1oZWlnaHQ6MjRweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQ6IzI4MjgyODsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjRweDt9IC5wYWdlbm8yIGxpIGEuYWN0aXZleyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjA7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiNGRkZGRkY7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOjAgN3B4OyBtYXJnaW4tcmlnaHQ6MnB4OyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoyNHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYmFja2dyb3VuZDojMjgyODI4OyBmbG9hdDpsZWZ0OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6NHB4O30gI3BhZ2VEaXYgYSB7IGNvbG9yOiNmZmY7IH0gI3NlYXJjaF91c2VkX2ZpbHRlci1ib3gsLmZpbHRlci1hZGp7IGJhY2tncm91bmQ6IzgwODA4MDsgY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNzZWFyY2hfdXNlZF9maWx0ZXItYm94eyBwYWRkaW5nOjE1cHggNXB4OyB9IC5maWx0ZXItYWRqeyBwYWRkaW5nOjVweCA1cHg7IH0gI3NlYXJjaF91c2VkX2ZpbHRlci1ib3ggLmZhLCAuZmlsdGVyLWFkaiAuZmF7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbnsgbWFyZ2luLXRvcDotMTFweCFpbXBvcnRhbnQ7IH0gLnVpLWFjY29yZGlvbi1jb250ZW50eyBib3JkZXItcmFkaXVzOjAhaW1wb3J0YW50OyBib3JkZXI6bm9uZSFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IH0gI2NpdHlUaXRsZXsgY29sb3I6IzY2NjY2NjsgZm9udC1zaXplOjAuOTM4cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBkaXNwbGF5OmJsb2NrOyB9IC50aXRsZUluZm97IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDpub3JtYWwhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrIWltcG9ydGFudDsgfSAudGl0bGVDYXJ7IGZvbnQtc2l6ZToxLjM3NXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDpub3JtYWwhaW1wb3J0YW50OyBmb250LXdlaWdodDpib2xkIWltcG9ydGFudDsgfSAuc2VhcmNocmVzdWx0IGgyLCAjU2VhcmNoVGl0bGUgeyBjb2xvcjojMzMzOyBmb250LXNpemU6MS41NjNyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbjowIDAgMCAwOyBwYWRkaW5nOjI1cHggMCAxMHB4IDE1cHg7IGNsZWFyOmJvdGg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgfSAubmV3LWl0ZW0geyBib3JkZXItYm90dG9tOjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMSk7IHBhZGRpbmc6MCA7IG1hcmdpbjowIDAgMCAwOyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyBmb250LXNpemU6MC44NzVyZW0gOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IH0gLm5ldy1pdGVtOmxhc3Qtb2YtdHlwZXsgYm9yZGVyLWJvdHRvbTpub25lOyB9IC5uZXdfcHJpY2VfYmxvY2t7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZmxvYXQ6bGVmdDsgY2xlYXI6Ym90aDsgbWFyZ2luLXRvcDotNXB4OyB9IC5uZXdfbWFrZV9uYW1leyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LXdlaWdodDpub3JtYWw7IG1hcmdpbi1ib3R0b206LTNweDsgfSAubmV3LWl0ZW0gLnRodW1iIHsgZmxvYXQ6cmlnaHQ7IHdpZHRoOjQwJTsgbWFyZ2luOi4zZW0gMHB4OyB0ZXh0LWFsaWduOnJpZ2h0OyB9IC5uZXdjYXJfYmxvY2tfZGVzYyBheyBjb2xvcjojMzMzMzMzOyB9IC5uZXdfbW9kZWxfbmFtZXsgZm9udC1zaXplOjEuMTI1cmVtIDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjVweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAubmV3X3llYXJ7IGZsb2F0OmxlZnQ7IH0gLm5ldy1pdGVtIC50aHVtYiBpbWd7IG1heC13aWR0aDoxMDAlOyBib3JkZXI6MDsgfSAubmV3Y2FyX2Jsb2NrX2Rlc2MgeyBtYXJnaW4tdG9wOjEwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjIwcHg7IHdpZHRoOjUwJTsgcGFkZGluZy1sZWZ0OjI1cHg7IGZsb2F0OmxlZnQ7IGNvbG9yOiMzMzM7IH0gbmV3Y2FyX2Jsb2NrIGgzeyB9IC5uZXctaXRlbSBoMyB7IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MTBweDsgZm9udC1zaXplOjEuMTI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgd2lkdGg6OTUlOyB9IC5uZXctaXRlbSAuYXJyb3cgeyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigyMjgsMjIwLDIxMSk7IGJvcmRlci1yYWRpdXM6MTRweDsgd2lkdGg6MTVweDsgbWFyZ2luOjMwcHggNXB4IDEwcHggMTBweDsgfSAubmV3LWRldGFpbHMgaDEsIC5uZXctZGV0YWlscyBoMiAsLnVzZWRfc2VhcmNoX2l0ZW0gaDIsIC51c2VkLWRldGFpbHMgaDEsIC5uZXctZGV0YWlscyBzcGFuLmgyLWFsdCB7IGNvbG9yOiMxMTE7IGNsZWFyOmJvdGg7IHBvc2l0aW9uOnJlbGF0aXZlOyBwYWRkaW5nLWxlZnQ6MjBweDsgbGluZS1oZWlnaHQ6MjFweDsgbWFyZ2luLWxlZnQ6MTVweDsgbWFyZ2luLXJpZ2h0OjE1cHg7IG1hcmdpbi1ib3R0b206MTBweDsgfSAubmV3LWRldGFpbHMgLnRib3JkZXIgeyBwYWRkaW5nLXRvcDoxMHB4OyBib3JkZXItdG9wOjFweCBzb2xpZCAjZTdlN2U3OyB9IC5uZXctZGV0YWlscyBoMSAubWFrZU1vZGVsWWVhciwgLnVzZWRfc2VhcmNoX2l0ZW0gaDIgLm1ha2VNb2RlbFllYXIsIC51c2VkLWRldGFpbHMgaDEgLm1ha2VNb2RlbFllYXJ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLm5ldy1kZXRhaWxzIGgxIC52ZXJzaW9uRnVsbCwgLnVzZWRfc2VhcmNoX2l0ZW0gaDIgLnZlcnNpb25GdWxsLCAudXNlZC1kZXRhaWxzIGgxIC52ZXJzaW9uRnVsbHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MXJlbSA7IG92ZXJmbG93LXdyYXA6YW55d2hlcmU7IH0gLm5ldy1kZXRhaWxzIGgxIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUsIC51c2VkX3NlYXJjaF9pdGVtIGgyIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUsIC51c2VkLWRldGFpbHMgaDEgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjAuOTM4cmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgfSAuZnVsbFdpZHRoQnV0dG9uIGl7IHBhZGRpbmctcmlnaHQ6NXB4OyBtaW4td2lkdGg6MThweDsgfSAudXNlZC1kZXRhaWxzIGgxIHNwYW4uZmEtY2hldnJvbi1yaWdodHsgbWluLXdpZHRoOjEuNXJlbTsgbWluLWhlaWdodDoxLjVyZW07IGZvbnQtc2l6ZToxcmVtOyBwYWRkaW5nOjA7IGJvcmRlci1yYWRpdXM6MXJlbTsgbWFyZ2luOjAgNXB4IDAgMDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLm5ldy1kZXRhaWxzICNjYXJUaXRsZSAuZmEtY2hldnJvbi1yaWdodCwgLnVzZWRfc2VhcmNoX2l0ZW0gI2NhclRpdGxlIC5mYS1jaGV2cm9uLXJpZ2h0LCAudXNlZC1kZXRhaWxzIGgxIC5mYS1jaGV2cm9uLXJpZ2h0eyBib3JkZXItcmFkaXVzOjEzcHg7IHdpZHRoOjE0cHg7IGhlaWdodDoxN3B4OyBwYWRkaW5nLXRvcDozcHg7IHBhZGRpbmctbGVmdDo2cHg7IG1hcmdpbi1sZWZ0Oi0yOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjE0cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IGJvcmRlcjoxcHggc29saWQgIzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZTRkY2QzOyBjb2xvcjojMDAwMDAwOyB9ICNTZWFyY2hUaXRsZSAuZmEtY2hldnJvbi1yaWdodHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyM3B4ICFpbXBvcnRhbnQ7IGhlaWdodDoyOXB4ICFpbXBvcnRhbnQ7IHBhZGRpbmctdG9wOjNweCAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6MTFweCAhaW1wb3J0YW50OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjEuNXJlbSAhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2U0ZGNkMzsgY29sb3I6IzAwMDAwMCA7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5mb290ZXJfZGlzY2xhbWVyIGF7IGNvbG9yOiMwMDAwMDAgfSAubmV3Y2FyX2Jsb2NrX2Rlc2MgLmZhLWNoZXZyb24tcmlnaHR7IGJvcmRlci1yYWRpdXM6MTBweDsgd2lkdGg6MTJweDsgaGVpZ2h0OjE0cHg7IHBhZGRpbmctdG9wOjJweDsgcGFkZGluZy1sZWZ0OjRweDsgbWFyZ2luLWxlZnQ6LTI4cHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTRweDsgZm9udC1zaXplOjAuODEzcmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IGNvbG9yOiMwMDAwMDAgOyB9IC5uZXctZGV0YWlscyAjbWFpbkNvbXBhcmVWaWV3IGgyLCAubmV3LWRldGFpbHMgI21haW5Db21wYXJlVmlldyBzcGFuLmgyLWFsdCwgLm5ldy1kZXRhaWxzIC5icm9jaHVyZS1pbWctYnRuIHNwYW4uaDItYWx0LCBoMi5icm9jaHVyZS1pbWctdGl0bGUgeyBjb2xvcjojZmZmOyBmb250LXNpemU6MC45MzhyZW0gOyBmb250LXdlaWdodDpib2xkOyBtYXJnaW46MCAwIDAgMDsgcGFkZGluZzo3cHggMCA3cHggMTBweDsgY2xlYXI6Ym90aDsgfSAubmV3LWRldGFpbHMgI21haW5Db21wYXJlVmlldyBzcGFuLmgyLWFsdCwgLm5ldy1kZXRhaWxzIC5icm9jaHVyZS1pbWctYnRuIHNwYW4uaDItYWx0IHsgZGlzcGxheTpibG9jazsgfSAubmV3LWRldGFpbHMgPiBwIHtwYWRkaW5nOjdweCAxMHB4O30gLm90aGVyTGlua3MgeyBtYXJnaW46MzBweCAwIDE1cHg7IHBhZGRpbmc6MCAxNXB4OyB9IC5vdGhlckxpbmtzIGEgeyBkaXNwbGF5Omxpc3QtaXRlbTsgZm9udC1zaXplOjEuMWVtOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTsgfSAub3RoZXJMaW5rcyBhICsgYSB7IG1hcmdpbi10b3A6MTBweDsgfSAucmFpdGluZy1kZXRhaWxzIGgxeyBjb2xvcjojMTExOyBmb250LXNpemU6MS4zZW07IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnJhaXRpbmctZGV0YWlscyAuYm94Ml90ZXh0eyB0ZXh0LWFsaWduOmp1c3RpZnk7IHBhZGRpbmc6MCA1cHg7IH0gLnBvc2l0aXZlUmF0aW5nVHh0e3BhZGRpbmc6MTBweDt9IC5wb3NpdGl2ZVJhdGluZ1R4dCAuYnRuLWRlZmF1bHR7dGV4dC10cmFuc2Zvcm06bm9uZTt9IC5wb3NpdGl2ZVJhdGluZ1R4dCBwIHtmb250LXNpemU6MS4wNjNyZW0gOyB0ZXh0LWFsaWduOmp1c3RpZnk7fSAucGFnZV9uYW1lMnt0ZXh0LWFsaWduOmNlbnRlcjt9IC5vdXJ0ZWFtIGEgeyBjb2xvcjojMzMzMzMzOyB9ICNzZWFyY2hfdXNlZF9maWx0ZXJ7IGJvcmRlcjowOyBib3JkZXItcmFkaXVzOnVuc2V0OyBmb250LXdlaWdodDpib2xkOyB9ICN1c2VkT3B0aW9ucyAubGlzdGl0ZW06YWZ0ZXJ7IGNvbnRlbnQ6IlxmMDBjIjsgZm9udC1mYW1pbHk6IkZvbnQgQXdlc29tZSA1IFBybyI7IGZvbnQtd2VpZ2h0OjkwMDsgcGFkZGluZy1yaWdodDo1cHg7IHdpZHRoOjE1cHg7IGZsb2F0OnJpZ2h0OyB9IC5saXN0aXRlbSB7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4xKTsgcGFkZGluZzo1cHggMDsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSAubGlzdGl0ZW0gaW1nIHt3aWR0aDoxMDAlICFpbXBvcnRhbnQ7aGVpZ2h0OmF1dG8gIWltcG9ydGFudDt9IC5saXN0aXRlbSBzcGFuIHtkaXNwbGF5OmlubGluZS1ibG9jazt9IC5saXN0aXRlbSAubGlzdGRlc2Mge2Zsb2F0OmxlZnQ7IHdpZHRoOjUwJTsgbWFyZ2luLWxlZnQ6NXB4O30gLmxpc3RpdGVtIC5saXN0dmFsIHtmbG9hdDpyaWdodDt3aWR0aDo0NSU7IHRleHQtYWxpZ246cmlnaHQ7bWFyZ2luLXJpZ2h0OjVweDt9IC5iaWcge3dpZHRoOjk1JTsgY2xlYXI6Ym90aDsgbWFyZ2luOjEwcHggYXV0bzsgZGlzcGxheTpibG9jazsgaGVpZ2h0OjQwcHg7fSAucHJpY2V0ZXh0IHtjb2xvcjojMTExOyBmb250LXNpemU6MXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbjoxMHB4IDAgMCAwOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0fSAucHJpbnQsIC5saWtlIHtmbG9hdDpyaWdodDsgd2lkdGg6NjBweDtmb250LXNpemU6MC43NXJlbSA7IHRleHQtYWxpZ246cmlnaHQ7IG1hcmdpbi10b3A6MTBweDt9IC5vbGQtZGV0YWlscyB0YWJsZXsgYm9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlOyB9ICNzcGVjVGl0bGV7IGJvcmRlci10b3A6MXB4IHNvbGlkICNhYWFhYWE7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNhYWFhYWE7IHBhZGRpbmctdG9wOjEwcHg7IHBhZGRpbmctYm90dG9tOjEwcHg7IHBhZGRpbmctbGVmdDoxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IG1hcmdpbi10b3A6MjVweDsgfSAub2xkLWRldGFpbHMgdGFibGUgdHIgdGR7IHBhZGRpbmc6NXB4IDBweCA1cHggMTBweDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2U2ZTZlNjsgfSAub2xkLWRldGFpbHMgdWx7IGxpc3Qtc3R5bGU6bm9uZTsgfSAub2xkLWRldGFpbHMgdGQgaS5mYS1jaGV2cm9uLXJpZ2h0eyBib3JkZXItcmFkaXVzOjEzcHg7IHdpZHRoOjEycHg7IGhlaWdodDoxNHB4OyBwYWRkaW5nLXRvcDozcHg7IHBhZGRpbmctbGVmdDo1cHg7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgbWFyZ2luOjBweDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IGNvbG9yOiMwMDAwMDAgOyB9IC5vbGQtZGV0YWlscyB0cjpudGgtY2hpbGQoZXZlbikgeyBiYWNrZ3JvdW5kOiNlZWU7IH0gLm90aGVyQkd7IGJhY2tncm91bmQ6I2ZmZmZmZiAhaW1wb3J0YW50OyB9IC5iZ05vbmV7IGJhY2tncm91bmQ6bm9uZSAhaW1wb3J0YW50OyB9IC50ZXh0Q29sb3J7IGNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgfSAudGV4dENvbG9yVXNlZFNSUE1vYmlsZXsgY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyB9IC50ZXh0X3NsaWRlIGEgPiBieyBmbG9hdDpsZWZ0IWltcG9ydGFudDsgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7IHBvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDsgbWFyZ2luOjBweCFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB0b3A6LTNweCFpbXBvcnRhbnQ7IHdpZHRoOjIwMHB4IWltcG9ydGFudDsgbGVmdDoycHg7IH0gLmdyYXliZyB7IG1hcmdpbjoxMHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgY2xlYXI6Ym90aDsgZGlzcGxheTpibG9jazsgYmFja2dyb3VuZDojY2ZjZmNmIHVybCgvaW1hZ2VzL2dyYXliZy5wbmcpIHJlcGVhdC14IDAgMDsgcGFkZGluZzowIDEwcHg7IGhlaWdodDo1MHB4OyB9IC50ZXh0MSwgdGV4dDIsIHBpYyB7bWFyZ2luOjAgMCAwIDA7IGhlaWdodDo1MHB4OyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOjAgMTBweCAwIDEwcHg7IGxpbmUtaGVpZ2h0OjUwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7fSAudGV4dDEge2JvcmRlci1yaWdodDoxcHggc29saWQgcmdiYSgyNTUsMjU1LDI1NSwwLjYpO30gLnBpYyB7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMC4zKTsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCByZ2JhKDI1NSwyNTUsMjU1LDAuNik7fSAudGV4dDIge2JvcmRlci1sZWZ0OjFweCBzb2xpZCByZ2JhKDAsMCwwLDAuMyk7fSAucHJvbW9pbWFnZSB7ZmxvYXQ6bGVmdDsgd2lkdGg6MTEwcHg7IG1hcmdpbi10b3A6N3B4O30gLnByb21vZGV0YWlsIHtmbG9hdDpsZWZ0OyB3aWR0aDoxNzBweDt9IC5wcm9tb2RldGFpbCBoMiB7Zm9udC1zaXplOjEuNXJlbSA7IG1hcmdpbjotMTBweCAwIDAgMDsgcGFkZGluZzowIDAgMCAwfSAucHJvbW8tY2FyZCB7IG1hcmdpbjowIDE1cHggMTBweDsgbWFyZ2luLWJvdHRvbTo4cHg7IGRpc3BsYXk6YmxvY2s7IGJvcmRlcjoxcHggc29saWQgI2M4YzhjODsgcGFkZGluZzozcHg7IGJvcmRlci1yYWRpdXM6NXB4OyBib3gtc2hhZG93OjBweCAwcHggMTBweCAycHggI2M4YzhjODsgfSAucHJvbW8tY2FyZCAucHJvbW8taW1hZ2UgeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucHJvbW8tY2FyZCAucHJvbW8tdGl0bGUgeyBmb250LXNpemU6MS4zMTNyZW0gOyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDo2MDA7IGNvbG9yOiMzMzM7IG1hcmdpbi10b3A6OHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucHJvbW8taW1hZ2UgaW1nIHsgd2lkdGg6MTAwJTsgfSAucHJvbW8tY2FyZCAucHJvbW8tZGV0YWlscy13cmFwcGVyIHsgfSAucHJvbW8tY2FwdGlvbiB7IGNvbG9yOiMzMzMzMzM7IH0gLnByb21vLWNhcHRpb246bm90KDpsYXN0LWNoaWxkKSB7IG1hcmdpbi1ib3R0b206MTVweDsgfSAucHJvbW8tY2FwdGlvbiAucHJvbW8tdGl0bGUgeyB0ZXh0LWFsaWduOmxlZnQ7IH0gLnByb21vLW9mZmVyIC5wcm9tby1ib2R5IC5wcm9tby10aXRsZSB7IG1pbi1oZWlnaHQ6MDsgfSAucHJvbW8tc3ViY2FwdGlvbiB7IG1hcmdpbi10b3A6NXB4OyBmb250LXNpemU6MC44NzVyZW07IH0gLnByb21vLWRldGFpbHMtYnRuIHsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAuMDUsIzAwMDAwMCksY29sb3Itc3RvcCgxLCMzMzMzMzMpKTsgYmFja2dyb3VuZDotbW96LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGJhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsIzAwMDAwMDUlLCMzMzMzMzMxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCMwMDAwMDA1JSwjMzMzMzMzMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nIzAwMDAwMCcsZW5kQ29sb3JzdHI9JyMzMzMzMzMnLEdyYWRpZW50VHlwZT0wKTsgYmFja2dyb3VuZC1jb2xvcjojMzMzMzMzOyBmb250LXNpemU6MC45MzhyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgYm9yZGVyLXJhZGl1czo2cHg7IHBhZGRpbmc6N3B4OyB9IC5wcm9tby1jYXJkIC5wcm9tby1kZXRhaWxzLWJ0biBhIHsgY29sb3I6d2hpdGU7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5zZXJ2aWNlLXNlY3Rpb24ge2NsZWFyOmJvdGg7IG1hcmdpbjoxMHB4OyBkaXNwbGF5OmJsb2NrOyBtaW4taGVpZ2h0OjgwcHg7fSAuc2VydmljZS1zZWN0aW9uIGltZyB7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206N3B4OyB9IC5zZXJ2aWNlLXNlY3Rpb24gLmRldGFpbHMgeyBiYWNrZ3JvdW5kOnJnYig2OCw2OCw2OCk7IHdpZHRoOjE2NXB4OyBmbG9hdDpub25lOyBmb250LXNpemU6MC43NXJlbSA7IG1hcmdpbi10b3A6NXB4OyBtYXJnaW4tbGVmdDowcHg7IH0gLnNlcnZpY2VfZGVzY3sgfSAuc2VydmljZV9tYWluX2Rlc2MgeyBtYXJnaW46MTBweDsgfSAuc2VydmljZV9tYWluX2Rlc2MgYXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuc3RlcHMge30gLnN0ZXBzIHVsIHt9IC5zdGVwcyB1bCBsaXsgbGlzdC1zdHlsZTpub25lOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgZm9udC1zaXplOjAuOTM4cmVtIDsgbWFyZ2luOjAgMTBweCAwIDEwcHg7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjcwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgY3Vyc29yOmRlZmF1bHR9IC5zdGVwcyB1bCBsaSAuYWN0aXZlLCAuc3RlcHMgdWwgbGkgLmluYWN0aXZlIHsgLXdlYmtpdC1ib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7IC1tb3otYm94LXNoYWRvdzowIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjMpOyBib3gtc2hhZG93OjAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMyk7IC13ZWJraXQtYm9yZGVyLXJhZGl1czoyNXB4OyAtbW96LWJvcmRlci1yYWRpdXM6MjVweDsgYm9yZGVyLXJhZGl1czoyNXB4OyB3aWR0aDoyNXB4OyBoZWlnaHQ6MjVweDsgZGlzcGxheTpibG9jazsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtYWxpZ246Y2VudGVyOyBmbG9hdDpyaWdodDsgbWFyZ2luLXRvcDotMnB4OyBwYWRkaW5nLXJpZ2h0OjFweDsgbGluZS1oZWlnaHQ6MjVweDsgfSAuc3RlcHMgdWwgbGkgLmFjdGl2ZSB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvd2hpdGUucG5nKSByZXBlYXQteDsgY29sb3I6IzAwMDAwMDt9IC5zdGVwcyB1bCBsaSAuaW5hY3RpdmUge2JhY2tncm91bmQ6dXJsKC9pbWFnZXMvYmxhY2sucG5nKSByZXBlYXQteDsgY29sb3I6I2ZmZjsgfSAuZm9ybSB7bWFyZ2luOjEwcHg7fSAuZm9ybXNfYm94MjIgeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MCAwIDEwcHggMDsgfSAudm9pIHsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IH0gI2NyZWRpdF92aV9hZHZhbmNlZCBsYWJlbCBpbnB1dCB7IG1hcmdpbi10b3A6MTBweDsgfSBzcGFuLmFzdGsgeyBjb2xvcjojRkYwMTAxOyBmb250LXNpemU6MC42ODhyZW07IGZsb2F0OmxlZnQ7IHBhZGRpbmctcmlnaHQ6M3B4OyB9IC5jcmVkaXQtY29uc2VudF9fY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBwYWRkaW5nOjAgMC43cmVtOyBmb250LXNpemU6MC44cmVtOyBjb2xvcjojMjQyNDI0OyB9IC5jcmVkaXQtY29uc2VudF9fY29udGFpbmVyIGRpdjpub3QoOmZpcnN0LW9mLXR5cGUpIHsgbWFyZ2luLWxlZnQ6MC43cmVtOyB9IC5maWVsZCB7IHdpZHRoOjEwMCU7IGJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAubGFiZWwge3BhZGRpbmc6MTBweCAwIDAgMDt9IC5kZWFsZXJhZGRyZXNzLCAuZGVhbGVycGhvbmUsIC5kZWFsZXJlbWFpbCB7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjMwcHg7IGJhY2tncm91bmQtcG9zaXRpb246NXB4IDEzcHg7IGJhY2tncm91bmQtY29sb3I6I2RiZGJkYjsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7IG1hcmdpbjoxMHB4OyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyBwYWRkaW5nOjE1cHggMTBweCAxNXB4IDQwcHg7IGZvbnQtd2VpZ2h0Om5vcm1hbCB9IC5kZWFsZXJhZGRyZXNzLCAuZGVhbGVycGhvbmUsIC5kZWFsZXJlbWFpbCB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLmRlYWxlcmFkZHJlc3M6YmVmb3JlIHsgY29udGVudDoiXGYwMTUiOyB9IC5kZWFsZXJwaG9uZTpiZWZvcmUgeyBjb250ZW50OiJcZjA5NSI7IG1hcmdpbi10b3A6OHB4OyB9IC5kZWFsZXJlbWFpbDpiZWZvcmUgeyBjb250ZW50OiJcZjBlMCI7IH0gLmRlYWxlcmFkZHJlc3M6YmVmb3JlLCAuZGVhbGVycGhvbmU6YmVmb3JlLCAuZGVhbGVyZW1haWw6YmVmb3JleyBmb250LWZhbWlseToiRm9udCBBd2Vzb21lIDUgUHJvIjsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtd2VpZ2h0OjkwMDsgdGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7IGNvbG9yOiMzMzM7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjIxcHg7IH0gLmRlYWxlcnBob25lICNhY2NvcmRpb24gLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiwgLm9wZW5faG91cnNfY29udGFpbmVyIC51aS1hY2NvcmRpb24taGVhZGVyLWljb24geyBkaXNwbGF5Om5vbmU7IH0gLm9wZW5faG91cnNfY29udGFpbmVyIC5tYXBfb3Blbl9ob3Vyc19leHBhbmQgeyBjb2xvcjojMDAwMDAwOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUgLnZpc2l0Q29udGFjdEJ1dHRvbiwgLm9wZW5faG91cnNfY29udGFpbmVyIC52aXNpdENvbnRhY3RCdXR0b257IHdpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjExcHggNXB4IDlweDsgZm9udC1zaXplOjAuODEzcmVtIDsgbWFyZ2luLXRvcDoxMHB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJhY2tncm91bmQtY29sb3I6IzAwMmM1ZjsgY29sb3I6I2ZmZmZmZjsgfSAuZGVhbGVycGhvbmUgLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWljb25zeyBwYWRkaW5nLWxlZnQ6MDsgfSAuZGVhbGVycGhvbmUgLmZhLWNhbGVuZGFyeyBtYXJnaW4tbGVmdDoxM3B4OyBtYXJnaW4tcmlnaHQ6NXB4OyB9IC5kZWFsZXJwaG9uZSAudWktYWNjb3JkaW9uLWNvbnRlbnQgeyBiYWNrZ3JvdW5kLWNvbG9yOiNmM2YzZjMhaW1wb3J0YW50OyBib3JkZXI6bm9uZSFpbXBvcnRhbnQ7IH0gLmRlYWxlcnBob25lLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWhlYWRlcnsgcGFkZGluZzo4cHg7IH0gLmgzLm1vYmlsZUJ1dHRvbnsgZm9udC1zaXplOjAuOTM4cmVtIDsgfSAubW9iaWxlQnV0dG9uQ29udGFjdHsgYm9yZGVyLXJhZGl1czo0cHg7IGRpc3BsYXk6YmxvY2s7IGN1cnNvcjpwb2ludGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLXRvcDoycHg7IHBhZGRpbmc6LjVlbSAuNWVtIC41ZW0gLjdlbTsgem9vbToxOyBwYWRkaW5nLWxlZnQ6Mi4yZW07IG91dGxpbmU6MDsgbGluZS1oZWlnaHQ6MS4zOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgbGlzdC1zdHlsZTpub25lOyB9IC5tb2JpbGVCdXR0b25Db250YWN0IGl7IG1hcmdpbi1sZWZ0Oi0yMHB4OyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuYmlnZmIge3BhZGRpbmc6MzBweCAwOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2JpZ2ZiLnBuZykgcmVwZWF0LXggMCAwfSAuYnV0dG9uX2pvYm9mZmVyIHsgZGlzcGxheTpibG9jazsgbGluZS1oZWlnaHQ6NTBweDsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvaWNvbl9lbXBsb3kucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwcHggMHB4IHJnYigyMzEsIDIzMiwgMjMyKTsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nLWxlZnQ6NDBweDsgfSBkaXYuZXJyb3JNc2cgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGRkJBQkE7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCIvaW1hZ2VzL2Vycm9yLnBuZyIpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwcHggY2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJvcmRlcjoxcHggc29saWQ7IGNvbG9yOiNEODAwMEM7IGRpc3BsYXk6bm9uZTsgcGFkZGluZzoxNXB4IDEwcHggMTVweCA1MHB4OyB6LWluZGV4Ojk5OTk7IH0gLmVtYWlsQm9keSwgLmVtYWlsU3ViamVjdHsgZGlzcGxheTpub25lOyB9IC5maWxlaW5wdXQtYnV0dG9uIHsgYmFja2dyb3VuZDp1cmwoIi9pbWFnZXMvYmxfYmcucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wIHJnYmEoMCwgMCwgMCwgMCk7IH0gLmZpbGVpbnB1dC1idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kOnVybCgiL2ltYWdlcy9idXR0b25fMi5wbmciKSByZXBlYXQteCBzY3JvbGwgbGVmdCB0b3AgcmdiYSgwLCAwLCAwLCAwKTsgfSAuZmlsZWlucHV0LWJ1dHRvbiwgLmZpbGVpbnB1dC1idXR0b246aG92ZXIgeyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MzFweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmZpbGVpbnB1dC1idXR0b24gaW5wdXQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHJpZ2h0OjA7IG1hcmdpbjowOyBvcGFjaXR5OjA7IC1tcy1maWx0ZXI6J2FscGhhKG9wYWNpdHk9MCknOyBjdXJzb3I6cG9pbnRlcjsgfSAucGFnZV9uYW1lNXtoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJSAhaW1wb3J0YW50O3BhZGRpbmc6MCAwcHggMTBweCAyMXB4OyBsaW5lLWhlaWdodDozMHB4OyBmb250LXNpemU6MS41cmVtIDsgY29sb3I6IzI0MjQyNDtmb250LXdlaWdodDpub3JtYWwgfSAucGljYm94OTB7d2lkdGg6OTBweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo4cHg7IGJvcmRlcjoxcHggc29saWQgI2FjYWNhYzsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjdweDsgYm9yZGVyLXJhZGl1czo3cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjdweDsgfSAucGljYm94OTAgaW1nIHt3aWR0aDo5MHB4OyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgLW1vei1ib3JkZXItcmFkaXVzOjdweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjdweDsgYm9yZGVyLXJhZGl1czo3cHg7IC1raHRtbC1ib3JkZXItcmFkaXVzOjdweDsgfSAudGV4dGJveDE5MXt3aWR0aDoxOTFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGxpbmUtaGVpZ2h0OjEuMjsgY29sb3I6IzI0MjQyNDsgfSAudGV4dGJveDE5MSBoNHsgZm9udC1zaXplOjEuMTI1cmVtIDsgY29sb3I6IzI0MjQyNDsgcGFkZGluZy1ib3R0b206NXB4OyB9IC5tYWluYm94Mjkxe3dpZHRoOjkzJTtoZWlnaHQ6MTEycHg7IGZsb2F0OmxlZnQ7IGNsZWFyOmJvdGg7IG1hcmdpbjowIDVweCAxMHB4IDA7IGJhY2tncm91bmQ6I2U2ZTZlNjsgYm9yZGVyOjFweCBzb2xpZCAjZDRkNGQ0OyAtbW96LWJvcmRlci1yYWRpdXM6OHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItcmFkaXVzOjhweDsgLWtodG1sLWJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjE1cHggMTBweDt9IC5sYXp5e2JvcmRlcjowO2Rpc3BsYXk6bm9uZX0gLnRlY2hTcGVjc3t3aWR0aDo2MjFweDsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IG1hcmdpbjowcHg7IHBhZGRpbmc6MjVweCAxNXB4OyBiYWNrZ3JvdW5kOiNlNmU3ZTc7IGJhY2tncm91bmQtcG9zaXRpb246cmlnaHQgYm90dG9tOyAtbW96LWJvcmRlci1yYWRpdXMtdG9wbGVmdDowcHg7LW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OjBweDstbW96LWJvcmRlci1yYWRpdXMtYm90dG9tcmlnaHQ6NnB4Oy1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OjZweDstd2Via2l0LWJvcmRlci10b3AtbGVmdC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6NnB4Oy13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czo2cHg7Ym9yZGVyLXRvcC1sZWZ0LXJhZGl1czowcHg7Ym9yZGVyLXRvcC1yaWdodC1yYWRpdXM6MHB4O2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6NnB4O2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjZweDt9IC50ZXh0X2JveDExIGEgeyBjb2xvcjojMjQyNDI0OyBmbG9hdDpsZWZ0OyBoZWlnaHQ6YXV0bzsgbWFyZ2luLWxlZnQ6MTVweDsgcGFkZGluZzoxMHB4IDA7IH0gLnRleHRfYm94MTEgYSB7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyBtYXJnaW4tbGVmdDoxNXB4OyBwYWRkaW5nOjEwcHggMDsgfSAudGV4dF9ib3gxMSB1bCwgLnRleHRfYm94MTEgcCB7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyB3aWR0aDoxMDAlOyB0ZXh0LWFsaWduOmp1c3RpZnk7IH0gLnRleHRfYm94MTEgcCBpbWd7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luOjAhaW1wb3J0YW50OyBwYWRkaW5nOjEwcHggMCFpbXBvcnRhbnQ7IH0gLnByaWNlTm90ZSB7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjg1ZW07IGZvbnQtc3R5bGU6aXRhbGljOyB0ZXh0LWFsaWduOmp1c3RpZnk7IGRpc3BsYXk6YmxvY2s7IHBhZGRpbmctcmlnaHQ6MTBweDsgbGluZS1oZWlnaHQ6MS4xZW07IG1hcmdpbjoxMHB4IDA7IH0gLnN0YWNrZWREaXNjbGFpbWVyeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOjEwcHg7IH0gc3Bhbi5zdGFja2VkRGlzY2xhaW1lcjpiZWZvcmV7IGNvbnRlbnQ6IioqIjsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZToxcmVtOyB9ICNtYWluQ29tcGFyZVZpZXd7IG1hcmdpbjowOyB9ICNjb21wbF90YWJsZXsgbWFyZ2luLWJvdHRvbToyMHB4OyB9IC5pZE5hdjEgeyBjb2xvcjojZjlmOWY5OyBmb250LXNpemU6MC43NXJlbSA7IGZvbnQtc3R5bGU6bm9ybWFsOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6MjhweDsgbGlzdC1zdHlsZTpvdXRzaWRlIG5vbmUgbm9uZTsgcGFkZGluZzowOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9IC5pZE5hdjEgbGkudG9wIHsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6MCAycHggMCAwOyB9IC5pZE5hdjEgbGkudG9wMSB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYmxfaG92ZXIucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6I2ZmZjsgZGlzcGxheTpibG9jazsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOjAuODEzcmVtIDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6MCAycHggMCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbmsgeyBiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMCkgdXJsKCIvaW1hZ2VzL2JsX2JnLnBuZyIpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcDsgYm9yZGVyLXJhZGl1czozcHg7IGNvbG9yOnJnYigyNTUsIDI1NSwgMjU1KTsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAxMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAuaWROYXYxIGxpIGEudG9wX2xpbms6aG92ZXIgeyBiYWNrZ3JvdW5kOnJnYmEoMCwgMCwgMCwgMCkgdXJsKCIvaW1hZ2VzL2JsX2hvdmVyLnBuZyIpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcDsgYm9yZGVyLXJhZGl1czozcHg7IGNvbG9yOiNmZmY7IH0gLmlkTmF2MSBsaSBhLnRvcF9saW5rMSB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYmxfaG92ZXIucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wOyBib3JkZXItcmFkaXVzOjNweDsgY29sb3I6I2ZlZmVmZTsgY3Vyc29yOnBvaW50ZXI7IGRpc3BsYXk6YmxvY2s7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgaGVpZ2h0OjI4cHg7IGxpbmUtaGVpZ2h0OjMwcHg7IHBhZGRpbmc6MCAxMnB4OyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgfSAjZnJtUmViYXRlIC5pZE5hdjEgbGkgYS50b3BfbGluayB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYnV0dG9uX3BvcHVwLnBuZyIpIHJlcGVhdC14IHNjcm9sbCBsZWZ0IHRvcDsgY29sb3I6I2ZmZjsgfSAjZnJtUmViYXRlIC5pZE5hdjEgbGkgYS50b3BfbGluazpob3ZlciB7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwKSB1cmwoIi9pbWFnZXMvYmxfaG92ZXIucG5nIikgcmVwZWF0LXggc2Nyb2xsIGxlZnQgdG9wOyBjb2xvcjojZmZmOyB9IC50ZXh0MjAgeyBmb250LXNpemU6MC44MTNyZW0gOyBoZWlnaHQ6MjNweDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gLnByb21vY29kZWJveHsgLW1vei1ib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggI2U4MGQwZDsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggI2U4MGQwZDsgYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICNlODBkMGQ7IGJhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLjA1LCAjZmYzMzMzKSwgY29sb3Itc3RvcCgxLCAjREIwMDAwKSk7IGJhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjZmYzMzMzIDUlLCAjREIwMDAwIDEwMCUpOyBiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgI2ZmMzMzMyA1JSwgI0RCMDAwMCAxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCAjZmYzMzMzIDUlLCAjREIwMDAwIDEwMCUpOyBiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjZmYzMzMzIDUlLCAjREIwMDAwIDEwMCUpOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICNmZjMzMzMgNSUsICNEQjAwMDAgMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMzMzMycsIGVuZENvbG9yc3RyPScjREIwMDAwJyxHcmFkaWVudFR5cGU9MCk7IGJhY2tncm91bmQtY29sb3I6I2ZmMzMzMzsgYm9yZGVyOjFweCBzb2xpZCAjZjUxYTFhOyBjb2xvcjojRkZGRkZGIWltcG9ydGFudDsgZm9udC1zaXplOjAuOTM4cmVtIDsgcGFkZGluZzoxMHB4IDEwcHggMDsgbWFyZ2luOjA7IG1hcmdpbi10b3A6MTBweDsgbWFyZ2luLWxlZnQ6MzhweDsgbWluLXdpZHRoOjEwMHB4OyBib3JkZXItcmFkaXVzOjZweDsgYm94LXNoYWRvdzppbnNldCAwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjQpOyBmb250LXdlaWdodDpib2xkOyBmbG9hdDpsZWZ0OyBkaXNwbGF5OmJsb2NrOyBib3JkZXI6MDsgd2lkdGg6MTAwcHg7IH0gLmRldGFpbFByaWNlV2l0aEJ1dHRvbiB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLWxlZnQ6NXB4OyB2ZXJ0aWNhbC1hbGlnbjp0b3A7IG1hcmdpbi1ib3R0b206MTBweDsgbWFyZ2luLXJpZ2h0OjVweDsgd2lkdGg6NDklOyBtYXgtd2lkdGg6MTk1cHg7IG1pbi13aWR0aDoxMjBweDsgfSAuZGV0YWlsUHJpY2VXaXRoQnV0dG9uID4gLmRldGFpbFByaWNlQmxvY2sgeyBtYXJnaW4tbGVmdDowOyBtYXJnaW4tYm90dG9tOjlweDsgfSAuZGV0YWlsUHJpY2VXaXRoQnV0dG9uID4gLnByb21vY29kZWJveCB7IG1hcmdpbjowcHg7IHdpZHRoOjEwMCU7IHBhZGRpbmc6NnB4IDBweCAzcHggMHB4OyBtYXJnaW4tdG9wOjlweDsgfSAuZGV0YWlsLXByaWNlLXByb21vIGgyIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9idXR0b25fcHJvbW90aW9uLnBuZyk7IGNvbG9yOiNGRkY7IGJvcmRlci1yYWRpdXM6OHB4OyBwYWRkaW5nOjVweCAwOyB9IC5kZXRhaWwtcHJpY2UtcHJvbW8gYSB7IGNvbG9yOiNGRkY7IH0gLmRldGFpbFByaWNlQmxvY2t7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW4tbGVmdDo1cHg7IHBhZGRpbmc6MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOmxpZ2h0Z3JleTsgdmVydGljYWwtYWxpZ246dG9wOyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLWJvdHRvbTowcHg7IHdpZHRoOjEwMCU7IG1heC13aWR0aDoxOTVweDsgfSAubmV3LWRldGFpbHMgLmRldGFpbFByaWNlV2l0aEJ1dHRvbiA+IC5kZXRhaWxQcmljZUJsb2NrIHsgbWFyZ2luLWJvdHRvbTowcHg7IH0gQG1lZGlhKG1heC13aWR0aDozMDdweCkgeyAuZGV0YWlsUHJpY2VCbG9jayB7IG1heC13aWR0aDoxNzVweDsgfSB9IC5kZXRhaWxQcmljZUJsb2NrICNyZWJhdGV7IG1hcmdpbjowOyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjp3aGl0ZTsgYm9yZGVyLXJhZGl1czowIDAgNXB4IDVweDsgcGFkZGluZzo0cHggMCAwIDA7IH0gLmRldGFpbFByaWNlQmxvY2sgI2NhclByaWNleyBiYWNrZ3JvdW5kOm5vbmU7IGZvbnQtc2l6ZToxLjI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowcHg7IGNvbG9yOiMxMTExMTE7IGhlaWdodDoyNXB4OyB9IC5zY3JhdGNoRGV0YWlsUHJpY2V7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6M3B4OyBsZWZ0Oi0xcHg7IH0gLnByb21vQlROOmhvdmVyLCAucHJvbW9CVE4gYTpob3ZlciwgLmJyb2NodXJlQnRuOmhvdmVyIHsgYmFja2dyb3VuZDojMDAyYzVmIWltcG9ydGFudDsgY29sb3I6I2ZmZmZmZiFpbXBvcnRhbnQ7IGJvcmRlcjpub25lIWltcG9ydGFudDsgfSBkaXYjbGVhc2VDb21tZW50cyB7IHBhZGRpbmctYm90dG9tOjEwcHg7IH0gLmRldGFpbFByaWNlQmxvY2sgI2NhclByaWNlRGlzY3sgYmFja2dyb3VuZDpub25lOyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MHB4OyBjb2xvcjojRDQwMDAwOyBoZWlnaHQ6MjBweDsgfSAuZGV0YWlsUHJpY2VCbG9jayAjY2FyUHJpY2VQcm9tb3sgYmFja2dyb3VuZDpub25lOyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzUElUaXRsZSB7IGZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgbGkgbGFiZWx7IG1hcmdpbi1sZWZ0OjBweCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnZpT3B0aW9uc3sgcGFkZGluZzowcHghaW1wb3J0YW50OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnMgbGl7IGhlaWdodDoyMHB4IWltcG9ydGFudDsgd2lkdGg6MjYwcHghaW1wb3J0YW50OyBwYWRkaW5nOjAhaW1wb3J0YW50OyBtYXJnaW46MnB4IWltcG9ydGFudDsgfSAjYXNQdXJjaGFzZUludGVudCAuc3RlcHMgPiBsaXsgcGFkZGluZzoxMHB4IWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbTo1cHghaW1wb3J0YW50OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5zdGVwc3sgdGV4dC1pbmRlbnQ6MCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzeWVzIHsgcGFkZGluZy1sZWZ0OjY1cHghaW1wb3J0YW50OyBtYXJnaW4tdG9wOjhweCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmFzeWVzbm97IHdpZHRoOjYwcHghaW1wb3J0YW50OyBtYXJnaW4tdG9wOjBweCFpbXBvcnRhbnQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgaW5wdXR7IHBhZGRpbmcgOjBweCFpbXBvcnRhbnQ7IH0gI215Y2Fyb3VzZWxkaXZ7IG1hcmdpbi10b3A6MTBweDsgfSAjbXljYXJvdXNlbGRpdi5ibHVycnlmaXJzdGltYWdleyBtaW4taGVpZ2h0OnZhcigtLW1vYi1jYXJvdXNlbC1taW4taGVpZ2h0KTsgfSAjbXljYXJvdXNlbGRpdi5ibHVycnlmaXJzdGltYWdlIC5vd2wtY2Fyb3VzZWwgLm93bC1pdGVtIGltZ3sgYm9yZGVyOjA7IH0gI215Y2Fyb3VzZWxkaXYuYmx1cnJ5Zmlyc3RpbWFnZSAubG9hZGVyX293bHsgdmlzaWJpbGl0eTp2aXNpYmxlOyBvcGFjaXR5OjE7IHotaW5kZXg6MjsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDoxMDAlOyB3aWR0aDoxMDAlOyBvdmVyZmxvdzpoaWRkZW47IH0gI215Y2Fyb3VzZWxkaXYuYmx1cnJ5Zmlyc3RpbWFnZSAubG9hZGVyX293bCAucGxhY2Vob2xkZXJ7IGhlaWdodDoxMDAlOyB3aWR0aDpjYWxjKDEwMHZ3IC0gMjBweCk7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtc2l6ZTpjb250YWluOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7IG1hcmdpbjowIDEwcHg7IH0gI215Y2Fyb3VzZWxkaXYuYmx1cnJ5Zmlyc3RpbWFnZSAubG9hZGVyX293bC5mYWRlLW91dHsgdmlzaWJpbGl0eTpoaWRkZW47IG9wYWNpdHk6MDsgLXdlYmtpdC10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDFzLCBvcGFjaXR5IDFzIGxpbmVhcjsgLW1vei10cmFuc2l0aW9uOnZpc2liaWxpdHkgMW1zIDFzLCBvcGFjaXR5IDFzIGxpbmVhcjsgLW8tdHJhbnNpdGlvbjp2aXNpYmlsaXR5IDFtcyAxcywgb3BhY2l0eSAxcyBsaW5lYXI7IHRyYW5zaXRpb246dmlzaWJpbGl0eSAxbXMgMXMsIG9wYWNpdHkgMXMgbGluZWFyOyB9IGlucHV0W3R5cGU9cmFkaW9deyAtd2Via2l0LWJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IC1tb3otYm94LXNoYWRvdzogbm9uZSFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6IG5vbmUhaW1wb3J0YW50OyB9IC5sYW5ndWFnZUJhcnsgbWF4LXdpZHRoOjIwMHB4OyB9IC51aS13aWRnZXQtY29udGVudCwgLnVpLXdpZGdldC1oZWFkZXJ7IGJhY2tncm91bmQ6I0YyRjJGMiFpbXBvcnRhbnQ7IH0gLnVpLWFjY29yZGlvbiAudWktYWNjb3JkaW9uLWNvbnRlbnQgeyBwYWRkaW5nOjEwcHghaW1wb3J0YW50OyB9IC51aS13aWRnZXQtY29udGVudCB7IGJhY2tncm91bmQ6I2U2ZTZlNiFpbXBvcnRhbnQ7IH0gLnVpLXRhYnMgLnVpLXRhYnMtbmF2IGxpeyBwYWRkaW5nOjFweCAzcHghaW1wb3J0YW50OyB9ICNtYWluRGl2X05ld01vYmlsZUxhbmRpbmdQYWdleyBiYWNrZ3JvdW5kOiNmZmYgdXJsKC9pbWFnZXMvZmluYW5jZS9oZWFkZXItYmctbW9iaWxlLmpwZykgdG9wIGNlbnRlciBuby1yZXBlYXQgfSAuY3JlZGl0X21faGVhZGVyIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmNyZWRpdF9tX2hlYWRlciBpbWcgeyBtYXJnaW46MCBhdXRvOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyB9IC5jcmVkaXRfbV90ZXh0LXdyYXBwZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgaGVpZ2h0OjEwMCU7IHdpZHRoOjEwMCU7IGxlZnQ6NTAlOyB0b3A6MDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSk7IH0gLmNyZWRpdF9tX3RpbWUgeyBjb2xvcjojOEYwRDIwOyBmb250LXdlaWdodDo1MDA7IH0gLmNyZWRpdF9tX2JveCB7IGNvbG9yOiNmZmZmZmY7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbi1sZWZ0OjQwJTsgbWFyZ2luLXRvcDo5JTsgbGluZS1oZWlnaHQ6MTV2dzsgfSAuY3JlZGl0X21fYm94MiB7IG1hcmdpbi1sZWZ0OjQ3JTsgbWFyZ2luLXRvcDo1JTsgZm9udC1zaXplOjUuNXZ3OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6NDUlOyB9IC5jcmVkaXRfbV9ib3ggLmNyZWRpdF9tXzk5IHsgZm9udC1zaXplOjE5dnc7IH0gLmNyZWRpdF9tX2JveCAuY3JlZGl0X21fYXBwcm92ZWQgeyBmb250LXNpemU6OHZ3OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9IC5jcmVkaXRfbV9sb2dveyBwb3NpdGlvbjpyZWxhdGl2ZTtmbG9hdDpyaWdodDtoZWlnaHQ6ODVweDttYXJnaW4tcmlnaHQ6MzBweDtjbGVhcjpib3RoOyB9IC5jcmVkaXRfbV9waG90b3sgaGVpZ2h0OjM2M3B4OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ZpbmFuY2UvbW9iaWxlLWZpbmFuY2luZy1pbWcucG5nKSAwIDAgbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6MTAwJTsgfSAuY3JlZGl0X21fYXBwcm92YWxfZnJ7IGZsb2F0OnJpZ2h0OyBjbGVhcjpyaWdodDsgd2lkdGg6MTYzcHg7IGhlaWdodDoxMzdweDsgbWFyZ2luOjI1cHggMjBweCAxMHB4IDA7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvZmluYW5jZS9sb2dvLWFwcHJvdmVkLW1vYmlsZV9yZWRfZnIucG5nKSAwIDAgbm8tcmVwZWF0OyB9IC5jcmVkaXRfbV9hcHByb3ZhbF9lbnsgZmxvYXQ6cmlnaHQ7IGNsZWFyOnJpZ2h0OyB3aWR0aDoxNjNweDsgaGVpZ2h0OjEzN3B4OyBtYXJnaW46MjVweCAyMHB4IDEwcHggMDsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9maW5hbmNlL2xvZ28tYXBwcm92ZWQtbW9iaWxlX3JlZF9lbi5wbmcpIDAgMCBuby1yZXBlYXQ7IH0gLmNyZWRpdF9tX3N0YXJ0aW5nYXRfd3JhcHBlcnsgZm9udC1zaXplOjEuNXJlbSA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXIgIWltcG9ydGFudDtsaW5lLWhlaWdodDoyNHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMwMjQwNmY7Y2xlYXI6Ym90aDttYXJnaW4tYm90dG9tOjMwcHg7IH0gLmNyZWRpdF9tX3N0YXJ0aW5nYXQgeyBtYXJnaW4tdG9wOjI2MHB4O2ZvbnQtc2l6ZToxLjQzOHJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQgIWltcG9ydGFudDtsaW5lLWhlaWdodDoyNnB4O2Rpc3BsYXk6YmxvY2s7IH0gLmNyZWRpdF9tX2RlbGl2ZXJ5eyBmb250LXNpemU6MS41cmVtIDsgZm9udC13ZWlnaHQ6bGlnaHRlciAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyNHB4O3RleHQtYWxpZ246Y2VudGVyO2NvbG9yOiMwMjQwNmY7IH0gLmNyZWRpdF9tX2NhbGx1c193cmFwcGVyeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMjYyYWM7IGJhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQoIzAyNjJhYywjMDEzNzYwKTsgYmFja2dyb3VuZC1pbWFnZTotd2Via2l0LWxpbmVhci1ncmFkaWVudCgjMDI2MmFjLCMwMTM3NjApOyBiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCgjMDI2MmFjLCMwMTM3NjApOyB3aWR0aDoxMDAlOyBtYXJnaW46MCAwIDIwcHggMDsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5jcmVkaXRfbV9jYWxsdXMsIC5jcmVkaXRfbV9jYWxsdXMgYXsgZGlzcGxheTpibG9jaztoZWlnaHQ6NTVweDt3aWR0aDoxMDAlO2NvbG9yOiNmZmY7IH0gLmNyZWRpdF9jYWxsX3VzXzEgeyBmb250LXNpemU6MC43NXJlbSA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXIgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MTJweDsgbGluZS1oZWlnaHQ6NTVweDsgbWFyZ2luLWxlZnQ6MTBweDsgcG9zaXRpb246IHJlbGF0aXZlOyBib3R0b206NnB4OyB9IC5jcmVkaXRfY2FsbF91c18yIHsgY29udGVudDp1cmwoL2ltYWdlcy9maW5hbmNlL2ljb24tcGhvbmUtd2hpdGUucG5nKTttYXJnaW46MCAxMHB4OyB9IC5jcmVkaXRfY2FsbF91c18zIHsgZm9udC1zaXplOjEuMzc1cmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjIycHg7IGxpbmUtaGVpZ2h0OjU1cHg7IG1hcmdpbi1yaWdodDoxMHB4OyB9IC5jcmVkaXRfbV9pbm5lciB7IHBhZGRpbmc6MTVweCAxMHB4OyB9IC5jcmVkaXRfbV9zZWVuX2FsbHsgcG9zaXRpb246cmVsYXRpdmU7d2lkdGg6MTAwJTsgaGVpZ2h0OjQwMHB4OyBtYXJnaW46MCBhdXRvOyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2ZpbmFuY2UvaGVhZGVyLWNvbmRpdGlvbnMtYmctbV9yZWQucG5nKSB0b3AgY2VudGVyIG5vLXJlcGVhdDsgei1pbmRleDo1OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGNvbG9yOiNmZmY7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5jcmVkaXRfbV9zZWVuX2FsbCB1bHsgcGFkZGluZy10b3A6MjBweDtmb250LXNpemU6MS4xMjVyZW0gOyB9IC5jcmVkaXRfbV9zZWVuX2FsbCB1bCBsaXsgZm9udC1zaXplOjEuMTI1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxOHB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBwYWRkaW5nOjVweDsgYm9yZGVyLXRvcDoxcHggcmdiYSgyNTUsMjU1LDI1NSwwLjIpIHNvbGlkOyB9IC5jcmVkaXRfbV9zZWVuX2FsbCB1bCBsaTpmaXJzdC1jaGlsZCB7IHBhZGRpbmctdG9wOjA7IGJvcmRlci10b3A6bm9uZTsgfSAuY3JlZGl0X21fc2Vlbl9hbGwgcHsgZm9udC1zaXplOjEuOTM4cmVtIDsgbGluZS1oZWlnaHQ6MzFweDsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgbWFyZ2luOjIwcHggMCAwIDA7IH0gLmNyZWRpdF9tX2Zvcm1fd3JhcHBlcnsgdGV4dC1hbGlnbjpjZW50ZXI7IGJvcmRlci1yaWdodDpub25lOyBjb2xvcjojMDI0MDZmOyBmb250LXdlaWdodDpub3JtYWwgIWltcG9ydGFudDsgYm94LXNpemluZzpib3JkZXItYm94OyB6LWluZGV4OjcwOyBwYWRkaW5nOjIwcHggMTBweCA4MHB4IDVweDsgcG9zaXRpb246cmVsYXRpdmU7IGJvcmRlcjo1cHggc29saWQgIzAyNDA2ZjsgYm9yZGVyLXJhZGl1czoxMHB4OyBiYWNrZ3JvdW5kOiNGRkY7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MjBweDsgfSAuY3JlZGl0X21fYmVmb3JlX2Zvcm17IGZvbnQtc2l6ZToyLjEyNXJlbSA7IGxpbmUtaGVpZ2h0OjM0cHg7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IH0gLmNyZWRpdF9tX2JlZm9yZV9mb3JtIHB7IGZvbnQtc2l6ZToxLjE4OHJlbSA7IGxpbmUtaGVpZ2h0OjE5cHg7IG1hcmdpbi10b3A6MTVweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAuY3JlZGl0X21fZm9ybV9ib3R0b217IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206LTJweDsgbGVmdDotMnB4OyB3aWR0aDoxMDAlOyBwYWRkaW5nOjEycHggMnB4IDhweCAycHg7IGJhY2tncm91bmQ6IzAyNDA2ZjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxcmVtIDsgZm9udC13ZWlnaHQ6bm9ybWFsICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjE2cHg7IH0gLmNyZWRpdF9tX2FmdGVyX2Zvcm17IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgY29sb3I6I2ZmZjsgcGFkZGluZzozNXB4IDA7IGJhY2tncm91bmQ6I2ZmZiB1cmwoL2ltYWdlcy9maW5hbmNlL2ZlYXQtYmdfcmVkLnBuZyk7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBzcGFueyB9IC5jcmVkaXRfbV9mb3JtX2JvdHRvbSBweyBwYWRkaW5nOjA7IGxpbmUtaGVpZ2h0OjEuMzsgfSAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMnsgZm9udC1zaXplOjEuMzEzcmVtIDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyNXB4OyBtYXJnaW46NXB4IDAgMCAwOyBwYWRkaW5nOjA7IH0gQG1lZGlhKG1heC13aWR0aDo0NTBweCkgeyAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMntwYWRkaW5nOjAgMjAlO30gLmNyZWRpdF9tX2Zvcm1fYm90dG9tIHB7cGFkZGluZzowIDIwJTt9IH0gQG1lZGlhKG1heC13aWR0aDo0MDBweCkgeyAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMntwYWRkaW5nOjAgMTUlO30gLmNyZWRpdF9tX2Zvcm1fYm90dG9tIHB7cGFkZGluZzowIDE1JTt9IH0gQG1lZGlhKG1heC13aWR0aDozNDBweCkgeyAuY3JlZGl0X21fYWZ0ZXJfZm9ybSBoMntwYWRkaW5nOjAgMTAlO30gLmNyZWRpdF9tX2Zvcm1fYm90dG9tIHB7cGFkZGluZzowIDEwJTt9IH0gLmNyZWRpdF9tXzNzdGVwc3sgbWFyZ2luLWxlZnQ6YXV0bzsgbWFyZ2luLXJpZ2h0OmF1dG87IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcG9zaXRpb246cmVsYXRpdmU7IHRleHQtYWxpZ246bGVmdDsgbWFyZ2luOjAgYXV0bzsgcGFkZGluZy1yaWdodDoxMHB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgbWF4LXdpZHRoOjk2MHB4OyB9IC5jcmVkaXRfbV8zc3RlcHMgaDJ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyNXB4OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBtYXJnaW4tdG9wOjA7IHBhZGRpbmctdG9wOjA7IGJvcmRlci10b3A6bm9uZTsgY29sb3I6IzAyNDA2ZjsgfSAuY3JlZGl0X21fM3N0ZXBzIHVseyBsaXN0LXN0eWxlOm5vbmU7IH0gLmNyZWRpdF9tXzNzdGVwcyBsaXsgcGFkZGluZzoyMHB4IDIwcHggMjBweCAxMTNweDsgYm9yZGVyLXJhZGl1czoxMHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBtYXJnaW4tdG9wOjEwcHg7IH0gLmNyZWRpdF9tXzNzdGVwc193cmFwcGVyeyBwYWRkaW5nOjQwcHggMDsgYmFja2dyb3VuZDojZTFlMWUxIHVybCgvaW1hZ2VzL2ZpbmFuY2Uvc3RlcHMtYmcuanBnKSB0b3AgY2VudGVyIG5vLXJlcGVhdDsgfSAuY3JlZGl0X21fM3N0ZXBzIHVsIGxpIGgzeyBmb250LXNpemU6MS4zNzVyZW0gOyBmb250LXdlaWdodDpub3JtYWwgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MjJweDsgY29sb3I6IzAyNDA2ZjsgfSAuY3JlZGl0X21fM3N0ZXBzIHVsIGxpIHB7IGxpbmUtaGVpZ2h0OjIwcHg7IG1hcmdpbjowIDAgMTVweCAwOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IGZvbnQtd2VpZ2h0Om5vcm1hbCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxOHB4OyB9IC5jcmVkaXRfbV8zc3RlcHMgdWwgbGk6YWZ0ZXJ7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgYm90dG9tOjA7IGxlZnQ6MjBweDsgbWFyZ2luOmF1dG8gMDsgY29udGVudDonICc7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjczcHg7IGhlaWdodDo2NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9maW5hbmNlL3N0ZXBzLW1vYmlsZV9yZWQucG5nJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAuY3JlZGl0X21fM3N0ZXBzIHVsID4gbGk6Zmlyc3QtY2hpbGQ6YWZ0ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0xOTFweCAwOyB9IC5jcmVkaXRfbV8zc3RlcHMgdWwgPiBsaTpudGgtY2hpbGQoMik6YWZ0ZXJ7IGJhY2tncm91bmQtcG9zaXRpb246MCAxcHg7IH0gLmNyZWRpdF9tXzNzdGVwcyB1bCA+IGxpOm50aC1jaGlsZCgzKTphZnRlcnsgYmFja2dyb3VuZC1wb3NpdGlvbjotOTBweCA5cHg7IH0gLmNyZWRpdF9tX2Zvb3Rlcl93cmFwcGVyeyBwYWRkaW5nOjEwcHggMDsgfSAuY3JlZGl0X21fZm9vdGVyeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbjowIGF1dG87IHBhZGRpbmctcmlnaHQ6MTBweDsgcGFkZGluZy1sZWZ0OjEwcHg7IG1heC13aWR0aDo5NjBweDsgfSAuY3JlZGl0X21fZm9vdGVyIGgyIHsgbWFyZ2luOnZhcigtLXM5KSAwIHZhcigtLXMzKSAwOyBsaW5lLWhlaWdodDoxLjc1cmVtOyB9IC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9dGV4dF0sIC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9ZGF0ZV0sIC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9bnVtYmVyXSwgLmNyZWRpdF9tX2Zvcm0gaW5wdXRbdHlwZT1lbWFpbF0sIC5jcmVkaXRfbV9mb3JtIGlucHV0W3R5cGU9dGVsXSwgLmNyZWRpdF9tX2Zvcm0gc2VsZWN0eyBoZWlnaHQ6NTBweDsgZm9udC1zaXplOjEuMzc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoyMnB4OyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjBweDsgYm9yZGVyLXJhZGl1czoxMHB4OyBtYXJnaW46MDsgcGFkZGluZzozcHggNXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNEQURBREE7IGJvcmRlcjoxcHggI0MyQjNCMyBzb2xpZDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5jcmVkaXRfbV9mb3JtIHRhYmxleyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAgMTBweDsgfSAuY3JlZGl0X21fZm9ybSAuY3JlZGl0X3JlcXVlc3Rfc3VibWl0eyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS44NzVyZW0gOyBwYWRkaW5nOjVweDsgZm9udC13ZWlnaHQ6Ym9sZCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDo2MHB4OyBtYXJnaW46MzBweCAwIDMwcHggMDsgYm94LXNoYWRvdzpub25lOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYmFja2dyb3VuZDpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiNjZjE3MWY7IGNvbG9yOiNmZmY7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7IGJvcmRlci1yYWRpdXM6MTBweDsgfSAuY3JlZGl0X21fZm9ybSAubGFiZWx7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7ICFpbXBvcnRhbnQ7IGNvbG9yOiMyNDI0MjQ7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IHRleHQtYWxpZ246bGVmdDsgfSAuY3JlZGl0X21fcmVxdWlyZWR7IGNvbG9yOiNjMDA7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyeyB3aWR0aDoyODBweDsgaGVpZ2h0OjQ5MHB4OyBwYWRkaW5nOjI2cHggMTBweCAxMHB4IDEwcHg7IH0gI2Jlc3RQcmljZVZkcE5ld1BvcHVwQ29udGFpbmVyIC5wb3B1cF9iZ3sgd2lkdGg6MjgwcHg7IGhlaWdodDo0OTBweDsgfSAjYmVzdFByaWNlVmRwTmV3UG9wdXBDb250YWluZXIgLnBvcHVwX2JneyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnL2ltYWdlcy9wb3B1cHMvbS9mci9iZXN0UHJpY2VOZXdWZHAucG5nJyk7IH0gLnBvcHVwX2JneyBiYWNrZ3JvdW5kLWNvbG9yOiM0NDQ0NDQ7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSAucG9wdXBGb3JtIC5hc3Rlcmlza3sgY29sb3I6I2QwMDsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowOyBmb250LXNpemU6aW5oZXJpdDsgbWFyZ2luOjA7IH0gLnBvcHVwRm9ybXsgei1pbmRleDo1MDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoyNzdweDsgaGVpZ2h0OjI0OXB4OyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IHdpZHRoOjI3MHB4OyBwYWRkaW5nOjNweDsgfSAucG9wdXBGb3JtIHRhYmxleyBtYXJnaW4tYm90dG9tOjEwcHg7IH0gLnBvcHVwRm9ybVRpdGxleyBoZWlnaHQ6MjVweDsgbWFyZ2luOjhweDsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDpib2xkOyB9IC5wb3B1cEZvcm1JbnB1dHMgdGQgeyBmb250LXNpemU6MC44NzVyZW0gOyB0ZXh0LWFsaWduOnJpZ2h0OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IHBhZGRpbmctYm90dG9tOjNweDsgbGluZS1oZWlnaHQ6MTNweDsgbWluLXdpZHRoOjYwcHg7IH0gLnBvcHVwRm9ybSBpbnB1dHsgd2lkdGg6MTgwcHg7IH0gI2FzUHVyY2hhc2VJbnRlbnR7IHdpZHRoOjg1JTsgbWF4LXdpZHRoOjYwMHB4OyBwYWRkaW5nOjEwcHggMTBweDsgei1pbmRleDoxMDAwMDIxOyB9IC5zdHJpa2V7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5zdHJpa2U6OmFmdGVyeyBjb250ZW50OicnOyBib3JkZXItYm90dG9tOjJweCBzb2xpZCAjQ0UwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MjUlOyB3aWR0aDoxMDAlOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpzY3JvbGw7IC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOnRvdWNoOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lci0xNng5IHsgcGFkZGluZy1ib3R0b206NTYuMjUlOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lci00eDMgeyBwYWRkaW5nLWJvdHRvbTo3NSU7IH0gLnJlc3BvbnNpdmUtY29udGFpbmVyLTEwMCB7IHBhZGRpbmctYm90dG9tOjEwMCU7IHdpZHRoOjEwMCU7IH0gLnJlc3BvbnNpdmUtY29udGFpbmVyLTEwIHsgcGFkZGluZy1ib3R0b206MTAlOyB3aWR0aDoxMDAlOyB9IC5yZXNwb25zaXZlLWNvbnRhaW5lciBpZnJhbWUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gLnJlc3BvbnNpdmUtY29udGFpbmVyIFtjbGFzcyo9ImNyZWRzaWkiXSBpZnJhbWUgeyBwb3NpdGlvbjppbmhlcml0OyB9IC5yZXNwb25zaXZlLWVkaXRvciBpZnJhbWV7IHBvc2l0aW9uOmluaXRpYWw7IH0gLnN1Ym1lbnVJdGVtQ29udGFpbmVyIC5sb2NhdGlvbi1uYW1lcyBhLCAuc3VibWVudUl0ZW1Db250YWluZXIgLmxvY2F0aW9uLW5hbWVzIC50aXRsZSwgLnN1Ym1lbnVJdGVtQ29udGFpbmVyIC5sb2NhdGlvbi1uYW1lcyAubG9jYXRpb24tZGV0YWlscy1pbmZvIGxpIHsgcGFkZGluZy1sZWZ0OjlweDsgfSAuc3VibWVudUl0ZW1Db250YWluZXIgLnN1Ym1lbnVJdGVtQ2hpbGRDb250YWluZXIgeyBkaXNwbGF5Om5vbmU7IH0gLnN1Ym1lbnVJdGVtQ2hpbGRDb250YWluZXIgLnN1Ym1lbnVJdGVtQ2hpbGRDb250YWluZXIgeyBkaXNwbGF5OmJsb2NrOyB9IC5zdWJtZW51SXRlbUNvbnRhaW5lciAuc3VibWVudUl0ZW1DaGlsZENvbnRhaW5lciAuc3VibWVudUl0ZW1DaGlsZENvbnRhaW5lciB7IGRpc3BsYXk6bm9uZTsgfSAuc3VibWVudUl0ZW1Db250YWluZXIgLmxvY2F0aW9uLW5hbWVzID4gYSB7IGJhY2tncm91bmQtY29sb3I6IzAwN2ZhNTsgfSBsaS5sb2NhdGlvbi1uYW1lcyB7IHRleHQtYWxpZ246bGVmdDsgfSBsaS5sb2NhdGlvbi1uYW1lcy5tb2JpbGUgeyBtYXJnaW4tYm90dG9tOjA7IH0gbGkubG9jYXRpb24tbmFtZXMubW9iaWxlID4gYSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYm9yZGVyLXJhZGl1czowOyBib3JkZXI6MXB4IHNvbGlkICNCQkI7IGJvcmRlci1ib3R0b206bm9uZTsgfSAubG9jYXRpb24tZGV0YWlscyB7IGZvbnQtc2l6ZToxcmVtIDsgfSAubG9jYXRpb24tZGV0YWlscy1sb2dvIC50aXRsZSB7IG1hcmdpbi10b3A6OHB4OyB9IC5sb2NhdGlvbi1kZXRhaWxzLWxvZ28gaW1nIHsgbWFyZ2luLWJvdHRvbTo4cHg7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyB1bCBsaTpub3QoLmRldGFpbHMtaW5mby1saW5rKSB7IGJvcmRlci1sZWZ0Om5vbmU7IGJvcmRlci1yaWdodDpub25lOyBib3JkZXItYm90dG9tOm5vbmU7IH0gLmxvY2F0aW9uLWRldGFpbHMtaW5mbyB1bCBsaTpub3QoOmZpcnN0LWNoaWxkKSB7IGJvcmRlcjpub25lOyB9ICNkZWZhdWx0VG9wQmFubmVyVGV4dCB7IH0gQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDozMjBweCkgeyAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBmb250LXNpemU6MS4zNzVyZW0gIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtc2l6ZToxLjE4OHJlbSAhaW1wb3J0YW50OyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBmb250LXNpemU6MS4zNzVyZW0gIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUZXh0eyBmb250LXNpemU6MS4xODhyZW0gIWltcG9ydGFudDsgfSB9IEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6MzIwcHgpIHsgI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSwjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZSB7IGZvbnQtc2l6ZToxLjE4OHJlbSAhaW1wb3J0YW50OyB9ICN0b3BCYW5uZXJJbWFnZS5ORVdDQVJTICNkZWZhdWx0VG9wQmFubmVyVGV4dCwjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJUZXh0IHsgZm9udC1zaXplOjEuMDYzcmVtICFpbXBvcnRhbnQ7IH0gfSAjdG9wQmFubmVySW1hZ2UuVVNFRENBUlMgI2RlZmF1bHRUb3BCYW5uZXJXcmFweyBoZWlnaHQ6MTY1cHggIWltcG9ydGFudDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoxNjVweCAhaW1wb3J0YW50OyB9ICNkZWZhdWx0VG9wQmFubmVyeyBtaW4taGVpZ2h0OmluaXRpYWw7IGhlaWdodDphdXRvOyB9ICNkZWZhdWx0VG9wQmFubmVyV3JhcCBkaXYuZGVmYXVsdFRvcEJhbm5lckJ0bldyYXBwZXJ7IG1hcmdpbjoxMHB4IDAgIWltcG9ydGFudDsgfSAjZGVmYXVsdFRvcEJhbm5lcldyYXAgeyB0b3A6MCFpbXBvcnRhbnQ7IHBhZGRpbmc6MTVweCA0cHggIWltcG9ydGFudDsgfSAjZGVmYXVsdFRvcEJhbm5lclRpdGxlIHsgbGluZS1oZWlnaHQ6bm9ybWFsIWltcG9ydGFudDsgfSAjZGVmYXVsdFRvcEJhbm5lclRleHQgeyB9ICNkZWZhdWx0VG9wQmFubmVyQnRuIHsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXdlaWdodDpub3JtYWwhaW1wb3J0YW50OyBwYWRkaW5nOjRweCAyMHB4IWltcG9ydGFudDsgfSAucHJvbW9CVE4gYXsgYm9yZGVyOm5vbmUhaW1wb3J0YW50OyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9IC5wcm9tb0JUTi5pcy1zdGlja3l7IHBvc2l0aW9uOnN0aWNreTsgdG9wOjNyZW07IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGFsaWduLWl0ZW1zOmNlbnRlcjsgfSAuc3BlY2lhbC1zY2hlZHVsZSB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyBjb2xvcjpyZ2IoMjU1LDI1NSwyNTUpOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6N3B4IDhweCA3cHggMHB4OyBiYWNrZ3JvdW5kOnJnYig3MiwgNzIsIDczKTsgbWFyZ2luOjEycHggMTBweCAzcHggMTBweDsgfSAjZGVmYXVsdFRvcEJhbm5lciB7IGhlaWdodDphdXRvOyB9IElOUFVUW3R5cGU9InRleHQiXS52YWxpZGl0eS1lcnJvbmVvdXMsIElOUFVUW3R5cGU9ImRhdGUiXS52YWxpZGl0eS1lcnJvbmVvdXMsIElOUFVUW3R5cGU9ImVtYWlsIl0udmFsaWRpdHktZXJyb25lb3VzLCBJTlBVVFt0eXBlPSJ0ZWwiXS52YWxpZGl0eS1lcnJvbmVvdXMsIElOUFVUW3R5cGU9InBhc3N3b3JkIl0udmFsaWRpdHktZXJyb25lb3VzIHsgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gU0VMRUNULnZhbGlkaXR5LWVycm9uZW91c3sgYm9yZGVyOjFweCBzb2xpZCAjZGMzNTQ1OyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gVEVYVEFSRUEudmFsaWRpdHktZXJyb25lb3VzeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYzsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkaW5TZWxlY3RQb3B1cHsgY29sb3I6IzNjMzgzNjsgZm9udC1zaXplOjFyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjo1cHggMCAwOyBwYWRkaW5nOjAuM3JlbSFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6OnBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgb3BhY2l0eToxOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gLnJldmVhbC1tb2RhbCA6OnBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgb3BhY2l0eToxOyB9IC5yZXZlYWwtbW9kYWwgOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gLnJldmVhbC1tb2RhbCA6Oi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gI2FzUHVyY2hhc2VJbnRlbnQgKnsgYm94LXNpemluZzpjb250ZW50LWJveCFpbXBvcnRhbnQ7IH0gI3RyYWRlSW5CYXJQb3B1cF90aXRsZXsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpjZW50ZXI7IGNvbG9yOiMwMDAwMDA7IH0gI3RyYWRlSW5CYXJQb3B1cFNlbGVjdGVkVmVoaWNsZXsgbWFyZ2luLWJvdHRvbToxMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgY29sb3I6IzAwMDAwMDsgfSAudHJhZGluU2VsZWN0V3sgZmxvYXQ6bGVmdDsgbWFyZ2luLWxlZnQ6MTBweDsgfSAudHJhZGluU2VsZWN0QXsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnRyYWRpblNlbGVjdEE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAudHJhZGluTml2eyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgfSAudHJhZGluU2VsZWN0eyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICMjVFJBREVJTkpTRUxFQ1RCT1JERVJDT0xPUiMjOyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxMHB4IDEwcHg7IGZvbnQtc2l6ZToxcmVtIDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyB3aWR0aDoyMDBweDsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IH0gLnRyYWRpblNlbGVjdDphZnRlciB7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MDsgd2lkdGg6MDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjMDAwMDAwOyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTRweDsgdG9wOjE3cHg7IHRyYW5zaXRpb246YWxsIDAuM3MgbGluZWFyOyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uIHsgcG9zaXRpb246Zml4ZWQ7IGJvdHRvbToxMHB4OyBsZWZ0OjEwcHg7IHotaW5kZXg6NDsgd2lkdGg6MTQwcHggIWltcG9ydGFudDsgYm9yZGVyLXdpZHRoOjFweDsgdGV4dC1hbGlnbjpsZWZ0OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWYgIWltcG9ydGFudDsgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItd2lkdGg6MXB4IDNweCA0cHggMXB4OyBib3JkZXItY29sb3I6IzMzMzMzMzsgcGFkZGluZy10b3A6MTBweDsgfSBCT0RZLlVzZWRTcnAyTW9iaWxlIC50cmFkZUluQmFyTW9iaWxlQnV0dG9ueyBib3R0b206NnJlbTsgfSAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiBpeyBkaXNwbGF5OmlubGluZS1mbGV4OyBib3JkZXItcmFkaXVzOjEwMCU7IHdpZHRoOjJlbTsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBib3JkZXI6MnB4IHNvbGlkICNmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgaGVpZ2h0OjEuNWVtOyBjb2xvcjojMDAwOyBmbG9hdDpsZWZ0OyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uLndpdGhUb2FzdGVyIHsgYm90dG9tOjgwcHg7IH0gLnRyYWRlSW5CYXJNb2JpbGVCdXR0b24gYSB7IGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7IH0gLnRyYWRlSW5CYXJTdGVwMnsgbWFyZ2luOjYwcHggMDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLnRyYWRlSW5CYXJTdGVwMiAudHJhZGVJbkJhclN0ZXAyUXVlc3Rpb257IG1hcmdpbjoyMHB4IDA7IH0gLnRyYWRlSW5CYXJTdGVwMyAudHJhZGVJbkJhclN0ZXAzUXVlc3Rpb257IG1hcmdpbjoyMHB4IDA7IH0gLnRyYWRlSW5CYXJTdGVwMiAucmFkaW9fZGl2IGxhYmVseyB3aWR0aDo1MHB4OyBwYWRkaW5nOjA7IG1hcmdpbjo1cHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrIH0gLnRyYWRlSW5CYXJTdGVwMiAucmFkaW9fZGl2IGlucHV0eyB3aWR0aDphdXRvICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46NXB4ICFpbXBvcnRhbnQ7IGJvcmRlcjpub25lICFpbXBvcnRhbnQ7IGhlaWdodDphdXRvICFpbXBvcnRhbnQ7IH0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnN7IG1hcmdpbi10b3A6NXB4OyB9IC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIHNwYW57IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluQmFyTXVsdGlzZWxlY3R7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci13aWR0aDoxcHghaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjAuM3JlbSFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojYTlhOWE5IWltcG9ydGFudDsgcGFkZGluZzowLjNyZW0haW1wb3J0YW50OyB9IC51aS1tdWx0aXNlbGVjdC1tZW51LnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgei1pbmRleDoxMDAwMDIwOyBtYXgtaGVpZ2h0OjExMHB4OyBvdmVyZmxvdzpzY3JvbGw7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVweyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyB9IC50cmFkZUluQmFyRGVhbGVyU3RlcCAudHJhZGVJbkJhckRlYWxlclN0ZXBNYWtlTW9kZWxZZWFyeyBmb250LXdlaWdodDo3MDA7IH0gLnRyYWRlSW5CYXJEZWFsZXJTdGVwIHNwYW57IG1hcmdpbjowIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgY29sb3I6IzAwMDAwMCFpbXBvcnRhbnQ7IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxLjMxM3JlbSAhaW1wb3J0YW50OyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3R7IG1pbi1oZWlnaHQ6NDJweDsgbWFyZ2luOjE1cHggMDsgfSAubW9kZWxub3llYXJCdXR0b25MaXN0IHVseyBmbG9hdDpsZWZ0OyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgcGFkZGluZzowOyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3QgbGl7IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tcmlnaHQ6M3B4OyBsaW5lLWhlaWdodDo0MHB4OyBwYWRkaW5nOjBweCAxNXB4OyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZC1jb2xvcjojZjBmMGYwOyBjb2xvcjojMDAwMDAwOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGJvcmRlci1yYWRpdXM6M3B4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6M3B4OyAtbW96LWJvcmRlci1yYWRpdXM6M3B4OyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3QgbGk6aG92ZXJ7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzAwN2ZhNTsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3Qgc3BhbnsgbWFyZ2luLWxlZnQ6MTBweDsgYm9yZGVyLXJhZGl1czoyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGNvbG9yOiNmMGYwZjA7IHBhZGRpbmc6MnB4IDEwcHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGZvbnQtd2VpZ2h0OjcwMDsgfSAubW9kZWxub3llYXJCdXR0b25MaXN0IGxpOmhvdmVyIHNwYW57IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgY29sb3I6IzAwN2ZhNTsgfSAubW9kZWxub3llYXJCdXR0b25MaXN0IGxpLm1vZGVsbm95ZWFyQnV0dG9uU2VsZWN0ZWR7IGJhY2tncm91bmQtY29sb3I6cmdiKDEzNywxMzIsMTI3KTsgY29sb3I6cmdiKDAsMCwwKTsgYm9yZGVyOjFweCBzb2xpZCByZ2IoMCwwLDApOyB9IC5tb2RlbG5veWVhckJ1dHRvbkxpc3QgbGkubW9kZWxub3llYXJCdXR0b25TZWxlY3RlZCBzcGFueyBiYWNrZ3JvdW5kLWNvbG9yOnJnYigwLDAsMCk7IGNvbG9yOnJnYigxMzcsMTMyLDEyNyk7IH0gLm11bHRpZm9ybV9mb290ZXIgLm11bHRpZm9ybV9zdGVwMnsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm11bHRpZm9ybV9ib2R5eyBwYWRkaW5nOjMwcHggMTBweDsgfSAubXVsdGlmb3JtX3RleHR7IHBhZGRpbmctYm90dG9tOjE1cHghaW1wb3J0YW50OyB9IC5tdWx0aWZvcm1fYnRuXzJ7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5yZWJhdGVUYWd7IG1hcmdpbjowIGF1dG87IHBhZGRpbmc6NHB4IDdweCA0cHggN3B4OyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6Zml0LWNvbnRlbnQ7IGxpbmUtaGVpZ2h0OjE1cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBiYWNrZ3JvdW5kOiMwMDJjNWYhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmIWltcG9ydGFudDsgdGV4dC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZVRleHR7IGRpc3BsYXk6YmxvY2s7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmViYXRlVGFnIHNwYW4ucmViYXRlQW1vdW50eyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDo3MDA7IGZvbnQtc2l6ZToxcmVtIDsgfSAuZ3JheWJveCAuY2FyLXByaWNlLWRvd24tYXJyb3d7IG1hcmdpbi10b3A6LTI1cHg7IG1hcmdpbi1ib3R0b206MHB4OyBtYXJnaW4tbGVmdDoyMHB4OyBmbG9hdDpsZWZ0OyBwb3NpdGlvbjpyZWxhdGl2ZTsgei1pbmRleDo1OyB9IC5ncmF5Ym94IC5jYXItcHJpY2UtZG93bi1hcnJvdy51c2VkeyBtYXJnaW4tbGVmdDo1MHB4OyB9IC5wcm9tb0luZm9XcmFwcGVyeyB3aWR0aDoxMDAlOyBoZWlnaHQ6NjBweDsgYm90dG9tOjA7IGZsb2F0OmxlZnQ7IGJhY2tncm91bmQtY29sb3I6I2VmZWZlZjsgZGlzcGxheTppbmxpbmUtdGFibGU7IG1hcmdpbi10b3A6LTIwcHg7IH0gLmRpdkNhclBheW1lbnRDb250YWluZXJ7IHRleHQtYWxpZ246Y2VudGVyOyBjb2xvcjpibGFjazsgfSAucmVzcG9uc2l2ZS1jb250YWluZXIgLmNvbnRlbnQtd3JhcHBlciB7IG1hcmdpbjowIDE1cHg7IH0gLmNhcmZheCB7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5jYXJmYXggaW1nIHsgd2lkdGg6MjAwcHg7IHBhZGRpbmctdG9wOjE1cHg7IH0gLmNhcmZheCAuY2FycHJvb2YtYmFkZ2UgPiBESVZ7IG1heC13aWR0aDpub25lICFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmNhcmZheCAuY2FycHJvb2YtYmFkZ2UgPiBESVYgSU1HIHsgbWF4LXdpZHRoOm5vbmU7IGhlaWdodDo0MHB4OyB3aWR0aDoxMDAlOyBtYXJnaW46MTBweCAwIDIwcHg7IH0gLmRpdlNlYXJjaE1zZyB7IGZvbnQtc2l6ZTowLjlyZW07IHBhZGRpbmc6MTVweDsgYmFja2dyb3VuZC1jb2xvcjojZjdmN2Y3OyBib3JkZXItcmFkaXVzOjVweDsgfSAuYnV0dG9uXzEsIC5idXR0b25fMiwgLmJ1dHRvbl8zIHsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSwgLmJ1dHRvbl8zIGEgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoyNDlweDsgaGVpZ2h0OjM4cHg7IGJvcmRlci1yYWRpdXM6M3B4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC1hbGlnbjpjZW50ZXI7IGxpbmUtaGVpZ2h0OjM4cHg7IH0gLmJ1dHRvbl8zLmpzLUNUQS1udW1iZXIgYSA+ICo6Zmlyc3QtY2hpbGR7IG1hcmdpbi1yaWdodDowLjVyZW07IH0gLmJ1dHRvbl8zIGF7IGJhY2tncm91bmQ6IzAwMDsgY29sb3I6I0ZGRjsgfSAuYnV0dG9uXzMgYTpob3ZlciwgLmJ1dHRvbl8zIGE6Zm9jdXN7IGJhY2tncm91bmQ6IzY2NjY2NjsgfSAjcHJvbW9EZXNjIC5ja2VkaXRvcldyYXBwZXIgaWZyYW1lIHsgbWF4LXdpZHRoOjEwMCU7IH0gQk9EWS5Vc2VkU3JwMk1vYmlsZSBIMS5kZWZhdWx0eyBmb250LXNpemU6MS4ycmVtOyBsaW5lLWhlaWdodDoxLjJyZW07IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzowIDAgMTVweCAwOyBkaXNwbGF5OmlubGluZS1mbGV4OyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgSDEuZGVmYXVsdHsgcGFkZGluZzoxMHB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IG1hcmdpbjowOyBkaXNwbGF5OmlubGluZS1mbGV4OyB9IEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uLCBCT0RZLlVzZWRTcnAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uIHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoxNnB4OyBoZWlnaHQ6MjBweDsgcGFkZGluZy10b3A6NXB4OyBwYWRkaW5nLWxlZnQ6OHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MXJlbSA7IG1hcmdpbi1yaWdodDo1cHg7IGJvcmRlcjoxcHggc29saWQgIzAwMDAwMDsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZTRkY2QzOyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDEsIEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDF7IG1hcmdpbi10b3A6MHB4OyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgSDEuZGVmYXVsdCBJLmljb24uc2luZ2xlTGluZUgxLCBCT0RZLlVzZWRTcnAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMXsgbWFyZ2luLXRvcDowcHg7IH0gQk9EWS5Vc2VkVmRwMk1vYmlsZSBIMS5kZWZhdWx0ID4gRElWLCBCT0RZLlVzZWRTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVZ7IGRpc3BsYXk6dGFibGUtcm93OyB9IEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IEJPRFkuVXNlZFNycDJNb2JpbGUgSDEuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDIpeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM3NTc1NzU7IGZvbnQtc2l6ZTowLjlyZW07IH0gQk9EWS5Vc2VkU3JwMk1vYmlsZSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMyl7IGZvbnQtc2l6ZTowLjhyZW07IGNvbG9yOiNiYmI7IHBhZGRpbmctdG9wOjVweDsgfSAuY2FyZmF4Lm1vYmlsZSBkaXZ7IGhlaWdodDphdXRvIWltcG9ydGFudDsgfSAuY2FyZmF4Lm1vYmlsZSBkaXYgYXsgZGlzcGxheTpibG9jayFpbXBvcnRhbnQ7IH0gLmNyZWRzaWlNb2JpbGV7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5jcmVkc2lpTW9iaWxlIC5jcmVkc2lpLXdpZGdldC1jb250YWluZXJ7IG1heC13aWR0aDoxMDAlIWltcG9ydGFudDsgfSAuYmFubmVyLWZvcm0gLk1haW5Cb3hMYXllciB7IHdpZHRoOmluaXRpYWw7IH0gQk9EWS5Vc2VkVmRwMk1vYmlsZSAuc3BlY3MtaW1hZ2VzLWdyb3VweyBwb3NpdGlvbjpyZWxhdGl2ZTsgZGlzcGxheTpmbGV4OyBmbGV4LWZsb3c6cm93IHdyYXA7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZ3JpZC1nYXA6MzBweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBtYXJnaW46MzBweCAxNXB4OyB9IEJPRFkuVXNlZFZkcDJNb2JpbGUgLnNwZWNzLWltYWdlcy1ncm91cCA+IGRpdnsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsZXg6MSAxIDQ1JTsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIC5zcGVjcy1pbWFnZXMtZ3JvdXAgPiBkaXYgPiBpbWcgeyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgcGFkZGluZzo1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIC5zcGVjcy1pbWFnZXMtZ3JvdXAgLmNlcnQtdGl0bGUgeyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IH0gQk9EWS5Vc2VkVmRwMk1vYmlsZSAuc3BlY3MtaW1hZ2VzLWdyb3VwIC5jZXJ0LXN1YnRpdGxlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjojNzc3OyBmb250LXNpemU6MC45NWVtOyBtYXJnaW4tdG9wOjVweDsgfSBCT0RZLlVzZWRWZHAyTW9iaWxlIC5zcGVjcy1pbWFnZXMtZ3JvdXAgLmNlcnQtaGlnaGxpZ2h0ZWQtdmFsdWUgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDA7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgY29sb3I6I0ZGRjsgcGFkZGluZzoxMXB4IDIwcHggOXB4IDIwcHg7IGJvcmRlci1yYWRpdXM6M3B4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuY29tcGFyZVRhYmxlSW1nIHsgaGVpZ2h0OjkwcHg7IG1hcmdpbjowIGF1dG87IGRpc3BsYXk6YmxvY2s7IH0gLmRlYWxlci1pbnNpZGUtY2FsbCBidXR0b257IGRpc3BsYXk6bm9uZSFpbXBvcnRhbnQ7IH0gLmJyb2NodXJlUG9zdGVyIHsgd2lkdGg6MTc1cHg7IG1hcmdpbjowIGF1dG87IGJvcmRlcjoxcHggc29saWQgI2FhYTsgYm9yZGVyLXJhZGl1czo0cHg7IG92ZXJmbG93OmhpZGRlbjsgfSAuYnJvY2h1cmVQb3N0ZXIgaW1neyB3aWR0aDoxMDAlOyBjdXJzb3I6cG9pbnRlcjsgfSAucGh5c2ljYWxBZGRyZXNzQm94eyBiYWNrZ3JvdW5kLWNvbG9yOiNGN0Y2Rjg7IHRleHQtYWxpZ246Y2VudGVyOyB9IC51dmRwLWxvY2F0ZWQtYXQtbXNneyBmb250LXNpemU6MXJlbSA7IGNvbG9yOiM3MDcwNzA7IGZvbnQtd2VpZ2h0OmxpZ2h0ZXI7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi10b3A6NXB4OyB9IC51dmRwLWxvY2F0ZWQtZGVhbGVyLW5hbWV7IGZvbnQtc2l6ZToxLjMxM3JlbSA7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi10b3A6NXB4OyBmb250LXdlaWdodDpib2xkOyB9IC51dmRwLWxvY2F0ZWQtYWRkcmVzc3sgZm9udC1zaXplOjAuNzVyZW0gOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46NXB4IDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAudXZkcC1sb2NhdGVkLXdlYnNpdGUgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOjVweDsgZm9udC1zaXplOnZhcigtLWZzLTEpOyBmb250LXdlaWdodDpib2xkOyB9IC5kcm9wZG93bi1jb250ZW50eyBkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmFic29sdXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiNmOWY5Zjk7IHdpZHRoOjEwMCU7IGJveC1zaGFkb3c6MHB4IDhweCAxNnB4IDBweCByZ2JhKDAsMCwwLDAuMik7IHotaW5kZXg6MTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW46MTBweCAtMTBweDsgfSAuZHJvcGRvd24tY29udGVudCBheyBiYWNrZ3JvdW5kOnRyYW5zcGFyZW50OyBjb2xvcjojMDAwICFpbXBvcnRhbnQ7IGJvcmRlcjpub25lOyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgd2lkdGg6MTAwJTsgcGFkZGluZzo4cHg7IHRleHQtYWxpZ246bGVmdDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGxpbmUtaGVpZ2h0OjEuNXJlbTsgcGFkZGluZy1sZWZ0OjMwcHg7IH0gLnRlc3Rkcml2ZUljb257IGZvbnQtc2l6ZToxLjM3NXJlbSA7IG1hcmdpbi1yaWdodDoyMHB4OyB9IC5wcmljZURpdnsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBwYWRkaW5nOjAgMjBweCAwIDEwcHg7IGZsZXgtZmxvdzp3cmFwOyB9IC5wcmljZU1zZ0RpdnsgZm9udC1zaXplOjAuNzVyZW0gIWltcG9ydGFudDsgZGlzcGxheTpibG9jazsgd2lkdGg6NTAlOyB0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudDsgY29sb3I6IzZkNmQ2ZCAhaW1wb3J0YW50OyB9IC5wcmljZURpdlByaWNlLm11bHRpZmVlc3sgZm9udC1zaXplOjFyZW07IGNvbG9yOiM3MDcwNzA7IH0gLnByaWNlRGl2UHJpY2V7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGNvbG9yOmJsYWNrOyB9IC5oYXNBdmcgLnByaWNlRGl2UHJpY2V7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLnByaWNlRGlzY2xhaW1lckRpdnsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDplbmQ7IHdpZHRoOjEwMCU7IH0gI3ZkcF9wcmljZV9ibG9jayAucHJpY2VEaXNjbGFpbWVyRGl2eyBwYWRkaW5nOjAgMjBweCAwIDEwcHg7IHdpZHRoOnVuc2V0OyB9IC5wcmljZURpc2NsYWltZXJTcGFueyBmb250LXNpemU6MC43NXJlbSAhaW1wb3J0YW50OyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOnJpZ2h0IWltcG9ydGFudDsgY29sb3I6IzZkNmQ2ZCAhaW1wb3J0YW50OyB9IC5wcmljZUJhcnsgYm9yZGVyLXRvcDoxcHggc29saWQgI2I4YjhiODsgbWFyZ2luOjAgMTBweCAwIDU1JTsgfSAuY2FySW5mb3NEaXZ7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjVweCAxJSAwcHggMSU7IH0gLmNhckluZm9QcmljZURpdnsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjAuNzVyZW0gOyBkaXNwbGF5OmlubGluZS1ibG9jazsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5jYXJJbmZvUHJpY2VEaXYgaXsgbWFyZ2luLXJpZ2h0OjJweCB9IC5jYXJJbmZvS017IHRleHQtYWxpZ246bGVmdDsgd2lkdGg6MjglOyB9IC5jYXJJbmZvTWlkZGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgd2lkdGg6MjclOyB9IC5jYXJJbmZvQ29sb3J7IHRleHQtYWxpZ246cmlnaHQ7IHdpZHRoOjQwJTsgfSAjdmRwdmlkZW97IG1heC13aWR0aDoxMDB2dzsgfSAjdmRwdmlkZW8gPiAqeyBtYXgtd2lkdGg6MTAwJTsgfSAuYmRjdHsgcGFkZGluZzowIDEwcHg7IG1hcmdpbjoyMHB4IDA7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjAuODVyZW07IGNvbG9yOiM2NjY7IH0gLmJkY3QgSDN7IHBhZGRpbmc6MDsgbWFyZ2luOjAgMCA1cHggMDsgZm9udC1zaXplOjFyZW07IH0gLmJkY3QgPiBkaXZ7IHBhZGRpbmc6MTVweDsgYmFja2dyb3VuZC1jb2xvcjojZWVlOyBib3JkZXItcmFkaXVzOjdweDsgfSAucHJvbW8tYnRuIHsgcGFkZGluZzoxNXB4IDIwcHg7IG1hcmdpbjphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXI6MXB4IHNvbGlkOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlcikpOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgYm9yZGVyLWNvbG9yOiMwMDAwMDA7IGNvbG9yOiMwMDAwMDA7IGJhY2tncm91bmQtY29sb3I6I2U0ZGNkMzsgYm9yZGVyLXJhZGl1czoyNXB4OyBmb250LXNpemU6MC45cmVtOyB9IC4tdGV4dC11cHBlcmNhc2UsIC4tdXBwZXJjYXNlLCAudGV4dC11cHBlcmNhc2UgeyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyB9ICNkYXJrdG9vbHRpcC1jYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbnsgd2lkdGg6MjAwcHg7IH0KLyoqIC9jc3MvbmV3Y2Fycy5jc3MgKiovCi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyeyBtYXJnaW4tYm90dG9tOjQwcHg7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXI6bGFzdC1jaGlsZHsgbWFyZ2luLWJvdHRvbTowOyB9IEgxLmRlZmF1bHQuaXNTaW5nbGVUaXRsZS5pc0JvdHRvbUJvcmRlcmVkLCAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciBIMnsgYm9yZGVyOjA7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhcnNCb3hXcmFwcGVyIHsgZGlzcGxheTpmbGV4OyBmbGV4LWZsb3c6cm93IHdyYXA7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94eyBwb3NpdGlvbjpyZWxhdGl2ZTsgZmxvYXQ6bGVmdDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3JkZXItcmFkaXVzOjdweDsgbWFyZ2luOjAgMCAyMHB4IDA7IHBhZGRpbmc6MTBweDsgYm9yZGVyOjFweCAjYWFhIHNvbGlkOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHdpZHRoOjEwMCU7IG92ZXJmbG93OmhpZGRlbjsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3guZGl2TWFrZUxvZ29Pbmx5eyBoZWlnaHQ6MTU2cHg7IHdpZHRoOmF1dG87IG1hcmdpbi10b3A6MjBweDsgcGFkZGluZzoyMHB4OyBib3JkZXItY29sb3I6I2VlZTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94LmRpdk1ha2VMb2dvT25seSBJTUcgeyBoZWlnaHQ6MTAwJTsgd2lkdGg6YXV0bzsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3g6YWN0aXZlIHsgYm9yZGVyLWNvbG9yOiM2NjY7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBmbG9hdDpsZWZ0OyBvcGFjaXR5OjE7IG92ZXJmbG93OmhpZGRlbjsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXJ7IGNsZWFyOmJvdGg7IHdpZHRoOjc1JTsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJUaXRsZUNvbnRhaW5lciBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZGlzcGxheTpibG9jazsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJUaXRsZUNvbnRhaW5lciBzcGFuLnNwYW5DYXJNYWtleyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZToxLjByZW07IGxpbmUtaGVpZ2h0OjEuMnJlbTsgd2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGNvbG9yOiMwMDAwMDA7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXIgc3Bhbi5zcGFuTW9kZWxOYW1leyBmb250LXdlaWdodDpib2xkOyBsaW5lLWhlaWdodDoxLjRyZW07IGZvbnQtc2l6ZToxLjRyZW07IHdpZHRoOmF1dG87IGhlaWdodDphdXRvOyBjb2xvcjojMDAyYzVmOyB9IC5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggLmRpdkNhclRpdGxlQ29udGFpbmVyIC5kaXZOZXdDYXJTdGFydFByaWNlLCAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJUaXRsZUNvbnRhaW5lciAuZGl2TmV3Q2FyUHJvbW9QcmljZXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MXJlbTsgd2lkdGg6YXV0bzsgaGVpZ2h0OmF1dG87IGxpbmUtaGVpZ2h0Om5vcm1hbDsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJJbWFnZUNvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjEwMCU7IG1hcmdpbi10b3A6MHB4OyBtYXJnaW4tYm90dG9tOi0xMHB4OyBtaW4taGVpZ2h0OjI1MHB4OyB9IC5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggLmRpdkNhckltYWdlQ29udGFpbmVyIEF7IGZsb2F0OmxlZnQ7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FySW1hZ2VDb250YWluZXIgSU1HeyB3aWR0aDoxMDAlOyBoZWlnaHQ6YXV0bzsgfSBkaXYuZGl2Q2FyRm9vdGVyQ29udGFpbmVyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgYm90dG9tOjBweDsgbGVmdDowOyByaWdodDowOyB3aWR0aDoxMDAlOyB9IGRpdi5jYXJQYXltZW50V3JhcHBlcnsgaGVpZ2h0OjZyZW07IH0gLnJlYmF0ZVRhZ3sgcGFkZGluZzo1cHg7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjEwcHg7IHJpZ2h0OjEwcHg7IGJhY2tncm91bmQ6IzAwMmM1ZiFpbXBvcnRhbnQ7IGNvbG9yOiNmZmZmZmYhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzpub25lIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czo1cHg7IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZVRleHR7IGZvbnQtc2l6ZTowLjhyZW07IGxpbmUtaGVpZ2h0OjFyZW07IH0gLnJlYmF0ZVRhZyBzcGFuLnJlYmF0ZUFtb3VudHsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6NzAwOyBmb250LXNpemU6MXJlbTsgbGluZS1oZWlnaHQ6MS4ycmVtOyB9IC5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZC1jb2xvcjojZjNmM2YzOyB3aWR0aDoxMDAlOyBib3JkZXItcmFkaXVzOjAgMCA3cHggN3B4OyBwYWRkaW5nOjEwcHggNXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lciBheyB0ZXh0LWRlY29yYXRpb246bm9uZTsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUyeyBmb250LXNpemU6MS4zcmVtOyBjb2xvcjpibGFjazsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTIgc3BhbnsgY29sb3I6IzAwMmM1ZjsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgLmRpdkNhdGVnb3J5Qm94V3JhcHBlciAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclNpbmdsZUlubmVyQm94IC5kaXZDYXJQYXltZW50Q29udGFpbmVyIC5wYXltZW50TGluZTN7IGZvbnQtc2l6ZTowLjlyZW07IGxpbmUtaGVpZ2h0OjFyZW07IGNvbG9yOmdyZXk7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyUGF5bWVudENvbnRhaW5lciAucGF5bWVudExpbmUxeyBmb250LXNpemU6MC45cmVtOyBsaW5lLWhlaWdodDoxcmVtOyBjb2xvcjpncmV5OyB9IGRpdi5kaXZDYXRlZ29yaWVzQm94V3JhcHBlciBkaXYuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIGRpdi5kaXZDYXJTaW5nbGVPdXRlckJveCBkaXYuZGl2Q2FyU2luZ2xlSW5uZXJCb3ggZGl2LmRpdkNhckNvbnRhY3RDVEFDb250YWluZXJ7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgfSBkaXYuZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIgZGl2LmRpdkNhdGVnb3J5Qm94V3JhcHBlciBkaXYuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggZGl2LmRpdkNhclNpbmdsZUlubmVyQm94IGRpdi5kaXZDYXJQYXltZW50Q29udGFpbmVyV2l0aENUQXsgfSAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLmRpdkNhclBheW1lbnRDb250YWluZXJUb29sdGlweyBkaXNwbGF5OmlubGluZS10YWJsZTsgcGFkZGluZzowIDEwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJQYXltZW50Q2FsY3VsYXRvciB7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjEwJTsgfSAuZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIC5kaXZDYXJTaW5nbGVPdXRlckJveCAucGF5bWVudEluZm9CdWJibGUgeyBwb3NpdGlvbjphYnNvbHV0ZTsgcmlnaHQ6MTAlOyBkaXNwbGF5OmlubGluZS1ibG9jazsgZm9udC1zaXplOjEuNTYzcmVtIDsgdG9wOjMwJTsgY29sb3I6IzAwMDsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0eyBmb250LXNpemU6MS43cmVtOyBsaW5lLWhlaWdodDoxLjdyZW07IGNvbG9yOiMwMDAwMDA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY2xlYXI6Ym90aDsgcGFkZGluZzowIDAgMTBweCAwOyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7IH0gLk5ld1NycDJNb2JpbGUgSDEuZGVmYXVsdCBBeyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0IEkuaWNvbiB7IGJvcmRlci1yYWRpdXM6MzJweDsgd2lkdGg6MzJweDsgaGVpZ2h0OjMycHg7IHBhZGRpbmctdG9wOjA7IHBhZGRpbmctbGVmdDoxMHB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS4xMjVyZW0gOyBtYXJnaW4tcmlnaHQ6NXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGxpbmUtaGVpZ2h0OjMwcHg7IGJvcmRlcjoxcHggc29saWQgIzAwMDAwMDsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZTRkY2QzOyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgSS5pY29uLm11bHRpTGluZUgxeyBtYXJnaW4tdG9wOjBweDsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0IEkuaWNvbi5zaW5nbGVMaW5lSDF7IG1hcmdpbi10b3A6MHB4OyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVZ7IGRpc3BsYXk6dGFibGUtcm93OyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgxKXsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuTmV3U3JwMk1vYmlsZSBIMS5kZWZhdWx0ID4gRElWIERJVjpudGgtY2hpbGQoMil7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6Izc1NzU3NTsgZm9udC1zaXplOjEuMXJlbTsgbGluZS1oZWlnaHQ6MS4ycmVtOyB9IC5OZXdTcnAyTW9iaWxlIEgxLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgzKXsgZm9udC1zaXplOjAuOHJlbTsgY29sb3I6I2JiYjsgcGFkZGluZy10b3A6NXB4OyB9IC5OZXdTcnAyTW9iaWxlIEgyLmRlZmF1bHR7IGZvbnQtc2l6ZToxLjRyZW07IGxpbmUtaGVpZ2h0OjEuNHJlbTsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjbGVhcjpib3RoOyBwYWRkaW5nOjIwcHggMDsgbWFyZ2luOjA7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCBJLmljb24geyBib3JkZXItcmFkaXVzOjI4cHg7IHdpZHRoOjI4cHg7IGhlaWdodDoyOHB4OyBwYWRkaW5nLXRvcDowOyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MXJlbSA7IGxpbmUtaGVpZ2h0OjI2cHg7IG1hcmdpbi1yaWdodDo1cHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwMDAwOyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCBJLmljb24ubXVsdGlMaW5lSDJ7IG1hcmdpbi10b3A6MHB4OyB9IC5OZXdTcnAyTW9iaWxlIEgyLmRlZmF1bHQgSS5pY29uLnNpbmdsZUxpbmVIMnsgbWFyZ2luLXRvcDowcHg7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCA+IERJVnsgZGlzcGxheTp0YWJsZS1yb3c7IH0gLk5ld1NycDJNb2JpbGUgSDIuZGVmYXVsdCA+IERJViBESVY6bnRoLWNoaWxkKDEpeyBmb250LXdlaWdodDpib2xkOyB9IC5OZXdTcnAyTW9iaWxlIEgyLmRlZmF1bHQgPiBESVYgRElWOm50aC1jaGlsZCgyKXsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MXJlbTsgbGluZS1oZWlnaHQ6MXJlbTsgfSAuTmV3U3JwMi5OZXdTcnAyTW9iaWxlIGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIgeyBwYWRkaW5nOjEwcHg7IGZsb2F0OmxlZnQ7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuY2FyX3RleHQgYSB7dGV4dC1kZWNvcmF0aW9uOm5vbmU7IGNvbG9yOiMwMDAwMDA7IGxpbmUtaGVpZ2h0OjEuMTt9IC5jYXJfdGV4dCBhOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgY29sb3I6IzAwMDAwMH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXIgLmRpdkNhckluU3RvY2tMaW5reyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IHBhZGRpbmc6M3B4IDhweDsgYm9yZGVyLXJhZGl1czozcHg7IHdpZHRoOmZpdC1jb250ZW50OyBjb2xvcjojMDAwOyBtYXJnaW4tdG9wOjEwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjM7IH0gLmRpdkNhdGVnb3JpZXNCb3hXcmFwcGVyIC5kaXZDYXRlZ29yeUJveFdyYXBwZXIgLmRpdkNhclNpbmdsZU91dGVyQm94IC5kaXZDYXJTaW5nbGVJbm5lckJveCAuZGl2Q2FyVGl0bGVDb250YWluZXIgLmRpdkNhckluU3RvY2tMaW5rIGF7IGNvbG9yOiMwMDA7IH0gLmRpdkRpc2NsYWltZXJCbG9ja3sgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyBib3JkZXItcmFkaXVzOjNweDsgfSAuZGl2RGlzY2xhaW1lckJsb2NrQ29udGVudHsgcGFkZGluZzoxNXB4IDA7IH0gLmRpdkRpc2NsYWltZXJCbG9ja1RpdGxleyBoZWlnaHQ6YXV0bzsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowIDQwcHggMTBweDsgYmFja2dyb3VuZDpub25lOyBtYXJnaW46MDsgfSAuZGl2RGlzY2xhaW1lckJsb2NrVGV4dHsgcGFkZGluZzowIDQwcHg7IGJhY2tncm91bmQ6bm9uZTsgbWFyZ2luOjA7IH0gLmRpdkZpbHRlck91dGVyQm94IC5kaXZGaWx0ZXJUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZy1ib3R0b206MTBweDsgcGFkZGluZy10b3A6MjBweDsgZm9udC1zaXplOjFyZW0gOyB9IC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAuZmlsdGVyQ2hlY2ssIC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAucmFkaW9Tb3J0eyBwb3NpdGlvbjphYnNvbHV0ZTsgb3BhY2l0eTowOyB3aWR0aDoxcHg7IGhlaWdodDoxcHg7IG92ZXJmbG93OmhpZGRlbjsgY2xpcDpyZWN0KDAgMCAwIDApOyB9IC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAuZmlsdGVyQ2hlY2srLmZpbHRlclNwYW4sIC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAucmFkaW9Tb3J0Ky5maWx0ZXJTcGFueyBiYWNrZ3JvdW5kLWNvbG9yOiNGNkY2RjY7IGNvbG9yOiMzMzMzMzM7IH0gLmRpdkZpbHRlck91dGVyQm94IHVsIGxpIC5maWx0ZXJDaGVjazpjaGVja2VkKy5maWx0ZXJTcGFuLCAuZGl2RmlsdGVyT3V0ZXJCb3ggdWwgbGkgLnJhZGlvU29ydDpjaGVja2VkKy5maWx0ZXJTcGFueyBiYWNrZ3JvdW5kLWNvbG9yOiM2NjY2NjY7IGNvbG9yOiNGRkY7IH0gLmRpdkZpbHRlck91dGVyQm94IHVsIHsgZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgY29sdW1uLWdhcDoxMHB4OyByb3ctZ2FwOjVweDsgcGFkZGluZzowOyBtYXJnaW46MDsgYWxpZ24taXRlbXM6c3RyZXRjaDsgfSAuZGl2RmlsdGVyT3V0ZXJCb3ggdWwgbGl7IGZsZXg6MCAwIGNhbGMoNTAlIC0gNXB4KTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kaXZGaWx0ZXJPdXRlckJveCB1bCBsaSAuZmlsdGVyU3BhbnsgZGlzcGxheTpmbGV4OyBwYWRkaW5nOjdweCAyMHB4OyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czo1cHg7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgbWFyZ2luLXRvcDo1cHg7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLk1haW5Cb3hMYXllciAuZmlsdGVyVG9nZ2xlV3JhcHBlciAuZmlsdGVyVG9nZ2xlQnRuIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MTBweCAyMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWY7IGNvbG9yOiNmZmZmZmY7IGJvcmRlcjpub25lOyBib3JkZXItcmFkaXVzOjVweDsgY3Vyc29yOnBvaW50ZXI7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MXJlbSA7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2U7IHdpZHRoOjEwMCU7IHRleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDsgfSAuTWFpbkJveExheWVyIC5zZWxlY3RUb2dnbGVXcmFwcGVyeyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBjb2x1bW4tZ2FwOjEwcHg7IHJvdy1nYXA6NXB4OyBwYWRkaW5nOjA7IG1hcmdpbjowOyBhbGlnbi1pdGVtczpzdHJldGNoOyB9IC5NYWluQm94TGF5ZXIgLnNlbGVjdFRvZ2dsZVdyYXBwZXIgLnNlbGVjdEFsbFRvZ2dsZUJ0biwgLk1haW5Cb3hMYXllciAuc2VsZWN0VG9nZ2xlV3JhcHBlciAudW5zZWxlY3RBbGxUb2dnbGVCdG4geyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoxMHB4IDNweDsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmOyBjb2xvcjojZmZmZmZmOyBib3JkZXI6bm9uZTsgYm9yZGVyLXJhZGl1czo1cHg7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjFyZW0gOyB0cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlOyB0ZXh0LWRlY29yYXRpb246bm9uZSFpbXBvcnRhbnQ7IGZsZXg6MCAwIGNhbGMoNTAlIC0gNXB4KTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC5kaXZGaWx0ZXJPdXRlckJveCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciB7IG1hcmdpbjowcHggMCA0MHB4IDAhaW1wb3J0YW50OyB9IC5kaXZQcmljZVJhbmdlU2xpZGVyID4gLmRpdlNwYW4uZGl2U3BhbjEyOm5vdCguZGl2RmlsdGVyVGl0bGUpIHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmRpdlByaWNlUmFuZ2VTbGlkZXIgLnJhbmdlLXNsaWRlci1sZWZ0LCAuZGl2UHJpY2VSYW5nZVNsaWRlciAucmFuZ2Utc2xpZGVyLXJpZ2h0IHsgd2lkdGg6YXV0bzsgbWluLXdpZHRoOjQwcHg7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5kaXZQcmljZVJhbmdlU2xpZGVyIC5yYW5nZS1zbGlkZXIudWktc2xpZGVyIHsgZmxleDoxIDEgYXV0bzsgbWF4LXdpZHRoOjUwMHB4OyB9IC5NYWluQm94TGF5ZXIgLnNpZGVTaWRlYmFyIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHdpZHRoOjMwMHB4OyBoZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBib3gtc2hhZG93Oi0ycHggMCA4cHggcmdiYSgwLDAsMCwwLjMpOyBwYWRkaW5nOjAgMjBweCAyMHB4IDIwcHg7IHotaW5kZXg6MTAwMDsgb3ZlcmZsb3cteTphdXRvOyBvdmVyZmxvdy14OmhpZGRlbjsgbWF4LXdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAwLjNzIGVhc2U7IH0gLk1haW5Cb3hMYXllciAuc2lkZVNpZGViYXIub3BlbiB7IHRyYW5zZm9ybTp0cmFuc2xhdGVYKDApOyBkaXNwbGF5OmJsb2NrOyB9IC5NYWluQm94TGF5ZXIgLmNsb3NlQnRuIHsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoxMHB4OyByaWdodDotMTBweDsgZm9udC1zaXplOjEuNXJlbSA7IGJhY2tncm91bmQ6bm9uZTsgYm9yZGVyOm5vbmU7IGN1cnNvcjpwb2ludGVyOyB6LWluZGV4OjExOyB9IC5NYWluQm94TGF5ZXIgLnNpZGVTaWRlYmFyIC5kaXZGaWx0ZXJCb3hUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuMTI1cmVtIDsgcG9zaXRpb246c3RpY2t5OyB0b3A6MDsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyB6LWluZGV4OjEwOyBwYWRkaW5nOjEwcHggMCAwIDA7IH0gLk1haW5Cb3hMYXllciAuc2lkZVNpZGViYXIgLnNpZGViYXJIZWFkZXIgeyBwb3NpdGlvbjpzdGlja3k7IHRvcDowOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHotaW5kZXg6MTAwOyBwYWRkaW5nOjEwcHggMCAwIDA7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgfQovKiogL2Nzcy9yZWQuY3NzICoqLwoubWVudSB1bCBsaSBhLCAubWVudSB1bCBsaSBhOmhvdmVyeyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgY29sb3I6I2ZmZmZmZjsgZmlsbDojZmZmZmZmOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6NXB4IDAgNXB4IDdweDsgYmFja2dyb3VuZDojMDAyYzVmOyB9IC50b3BuYXYgLm1lbnUgdWwgbGkgYXsgYmFja2dyb3VuZDojZmZmZmZmOyBjb2xvcjojMDAyYzVmOyBmaWxsOiMwMDJjNWY7IH0gLm1lbnUgdWwgbGkgYTpob3ZlcnsgYm9yZGVyLXJhZGl1czozcHggM3B4IDBweCAwcHg7IH0gLm1lbnUgLnByb21vIHsgbWFyZ2luOmluaXRpYWw7IG1pbi1oZWlnaHQ6YXV0bzsgfSAubWVudS5idXJnZXItYnRuLWNvbnRhaW5lciB1bCBsaSBhLCAubWVudS5idXJnZXItYnRuLWNvbnRhaW5lciB1bCBsaSBhOmhvdmVyeyBib3JkZXItcmFkaXVzOjA7IH0gLm1vYmlsZUJ1dHRvbnsgY29sb3I6cmdiKDAsMCwwKSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOnJnYigyMjgsMjIwLDIxMSkhaW1wb3J0YW50OyB9IC5tZW51IHVsIGxpIGEuYmxhY2sge2JhY2tncm91bmQ6IzIyMjt9IC5oLWJ1dHRvbnMgdWwgbGkgYS5ibGFjayB7YmFja2dyb3VuZDojMDAwO2NvbG9yOiNGRkZGRkZ9IC5oLWJ1dHRvbnMge30gLmgtYnV0dG9ucyB1bCBsaSB7ZmxvYXQ6bGVmdDsgbGlzdC1zdHlsZTpub25lOyBsaXN0LXN0eWxlLXR5cGU6bm9uZTsgbWFyZ2luOjAgMCAxMHB4IDBweDtkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOmNlbnRlcjt9IC5oLWJ1dHRvbnMgdWwgbGkgYSB7IGJhY2tncm91bmQtY29sb3I6cmdiKDIyOCwyMjAsMjExKTsgY29sb3I6I2ZmZjsgZm9udC13ZWlnaHQ6Ym9sZDsgZGlzcGxheTpibG9jazsgcGFkZGluZzo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo2cHg7IC1tb3otYm9yZGVyLXJhZGl1czo2cHg7IGJvcmRlci1yYWRpdXM6NnB4OyBtaW4td2lkdGg6OTVweDsgfSAuZGVhbGVycGhvbmUgdWwgbGkgYSB7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmxlZnQ7IHRleHQtZGVjb3JhdGlvbjpub25lOyBkaXNwbGF5OmJsb2NrOyBmb250LXNpemU6MS4xZW07IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MTBweDsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6MjVweDsgYmFja2dyb3VuZC1wb3NpdGlvbjo5OCUgNnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNkMDA7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYXJyb3cucG5nKTsgfSAubWVudSBsaS5pbnZlcnNlLWNvbG9yID4gYSB7IGNvbG9yOiNmZmZmZmY7IGJhY2tncm91bmQtY29sb3I6IzAwN2ZhNTsgYm9yZGVyOjFweCBzb2xpZDsgfSAjY2hhdC13aWRnZXQtY29udGFpbmVyLCAjbGl2ZV9jaGF0X3N0YXR1cywgI0NoYXREaXYsICNwb2RpdW0tYnViYmxlLCAjamNvbnQsIGpkaXYsICN0c3dfd3JhcHBlciwgLmZiX2RpYWxvZywgLmZiX2lmcmFtZV93aWRnZXQsIC5mYi1jdXN0b21lcmNoYXQsIC5lay1jaGF0LCAubWF0YWRvci1saXZlY2hhdC0xMjM3ODktbWFpbi13cmFwcGVyLCAjbWF0YWRvci1jb25uZWN0LXRleHQtbGFiZWwsICNtYXRhZG9yLWNvbm5lY3QtdGV4dC1sYWJlbC1iYWRnZXsgei1pbmRleDoxMDAwMCAhaW1wb3J0YW50OyB9IHN2Zy5jaGF0LWJ1YmJsZXsgd2lkdGg6cmV2ZXJ0OyBoZWlnaHQ6cmV2ZXJ0OyB9IC5Vc2VkU3JwMk1vYmlsZSBpZnJhbWUjcG9kaXVtLWJ1YmJsZXsgYm90dG9tOjNyZW0gIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkZUluQmFyTXVsdGlzZWxlY3R7IG1pbi13aWR0aDoyMjVweDsgbWF4LXdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IC51aS1tdWx0aXNlbGVjdC1tZW51LnRyYWRlSW5CYXJNdWx0aXNlbGVjdHsgei1pbmRleDoxMDAwMDIwOyBtYXgtaGVpZ2h0OjExMHB4OyBvdmVyZmxvdzpzY3JvbGw7IH0gLm11bHRpc2VsZWN0VmVoaWNsZU9wdGlvbnN7IG1hcmdpbi10b3A6NXB4OyB9IC5tdWx0aXNlbGVjdFZlaGljbGVPcHRpb25zIHNwYW57IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyBwYWRkaW5nOjAgIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgfSAudHJhZGluTml2eyB3aWR0aDoxMDAlOyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkaW5OaXZ7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MC41cmVtOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lcnsgd2lkdGg6MTAwJTsgZm9udC1zaXplOjAuNzVyZW0gOyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLm5pdk1ha2VNb2RlbFNlbGVjdENvbnRhaW5lciAubml2TWFrZU1vZGVsU2VsZWN0eyBkaXNwbGF5Om5vbmU7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3RMYWJlbHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbjowIDVweDsgY3Vyc29yOnBvaW50ZXI7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAubml2TWFrZU1vZGVsU2VsZWN0Q29udGFpbmVyIC5uaXZNYWtlTW9kZWxTZWxlY3Q6Y2hlY2tlZCtsYWJlbHsgYm9yZGVyLWJvdHRvbToycHggc29saWQgYmxhY2s7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyAudHJhZGVJbkJhck11bHRpc2VsZWN0eyB3aWR0aDoxMDAlIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItd2lkdGg6MXB4IWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowLjNyZW0haW1wb3J0YW50OyBib3JkZXItY29sb3I6I2E5YTlhOSFpbXBvcnRhbnQ7IHBhZGRpbmc6MC4zcmVtIWltcG9ydGFudDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIC50cmFkaW5TZWxlY3RQb3B1cHsgY29sb3I6IzNjMzgzNjsgZm9udC1zaXplOjFyZW07IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwxKTsgYmFja2dyb3VuZC1wb3NpdGlvbjo5NSUgNTAlOyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgLW1vei1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjo1cHggMCAwOyBwYWRkaW5nOjAuM3JlbSFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvZGl2X3Jhbmdlc2xpZGVyLmNzcyAqKi8KZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXJ7IG1hcmdpbjowIDAgMTBweCAwOyBwYWRkaW5nOjA7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci10aXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgcGFkZGluZzowIDAgMTBweCAwOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcHJpY2VzeyBwYWRkaW5nOjAgMCAxNXB4IDA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1wcmljZXMgc3Bhbi5wcmljZS1taW57fSBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyLXByaWNlcyBzcGFuLnByaWNlLW1heHt9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXJ7IGJvcmRlci1yYWRpdXM6NXB4ICFpbXBvcnRhbnQ7IGhlaWdodDoxMHB4OyBtYXJnaW46NHB4IDZweCAwIC0zcHg7IHBhZGRpbmc6MDsgYm9yZGVyOjFweCBzb2xpZCAjY2NjOyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItbGVmdCwgZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlci1yaWdodHsgZm9udC1zaXplOjAuNzVyZW0gOyBsaW5lLWhlaWdodDoyMHB4OyBjb2xvcjojNzU3NTc1OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItbGVmdHsgdGV4dC1hbGlnbjpsZWZ0OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXItcmlnaHR7IHRleHQtYWxpZ246cmlnaHQ7IH0gZGl2LmRpdlByaWNlUmFuZ2VTbGlkZXIgZGl2LnJhbmdlLXNsaWRlciBkaXYudWktc2xpZGVyLXJhbmdleyBiYWNrZ3JvdW5kOiNlNGRjZDMhaW1wb3J0YW50OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZXsgbWFyZ2luOi04cHggMCAwIC0xMXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjUwcHggIWltcG9ydGFudDsgYmFja2dyb3VuZDojZmZmICFpbXBvcnRhbnQ7IHRvcDowOyBoZWlnaHQ6MjVweDsgd2lkdGg6MjVweDsgY3Vyc29yOnBvaW50ZXI7IG91dGxpbmU6bm9uZSAhaW1wb3J0YW50OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWhvdmVyLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIEEudWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmUsIGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgc3Bhbi51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWhvdmVyLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1hY3RpdmV7IGJvcmRlci1jb2xvcjojNjY2OyB9IGRpdi5kaXZQcmljZVJhbmdlU2xpZGVyIGRpdi5yYW5nZS1zbGlkZXIgQS51aS1zbGlkZXItaGFuZGxlLnVpLXN0YXRlLWZvY3VzLCBkaXYuZGl2UHJpY2VSYW5nZVNsaWRlciBkaXYucmFuZ2Utc2xpZGVyIHNwYW4udWktc2xpZGVyLWhhbmRsZS51aS1zdGF0ZS1mb2N1c3sgb3V0bGluZTpub25lICFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvcGF5bWVudENhbGN1bGF0b3IuY3NzICoqLwo6aXMoI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyLCNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvcikuY2FsYy1tb2JpbGUgeyAtLXdyYXAtcGF5bWVudHM6d3JhcDsgLS1tb2JpbGUtZGlzcGxheTpub25lOyAtLW1vYi1mdWxsLXdpZHRoOjEwMCU7IC0tcGF5bWVudC1taW4td2lkdGg6Ni4zcmVtOyAtLWhlYWRlci1mb250LXNpemU6dmFyKC0tZnMyKTsgLS1oZWFkZXItaWNvbi1zaXplOnZhcigtLWZzNSk7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyeyBtaW4taGVpZ2h0OjQ1MHB4OyBjb2xvcjpibGFjazsgfSAjcGF5bWVudENhbGN1bGF0b3JQb3B1cENvbnRhaW5lcnsgYm9yZGVyOjRweCBzb2xpZCAjZTRkY2QzOyB9ICNwYXltZW50Q2FsY3VsYXRvclBvcHVwQ29udGFpbmVyOmhhcyguY2FsYy1tb2JpbGUpeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyLmNhbGMtbW9iaWxlIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyeyBvdmVyZmxvdy14OnZpc2libGU7IG92ZXJmbG93LXk6c2Nyb2xsOyBoZWlnaHQ6MzcwcHg7IGZsZXgtd3JhcDp3cmFwOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMgeyBvdmVyZmxvdy14OnNjcm9sbDsgZGlzcGxheTpmbGV4OyBnYXA6MTBweDsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lciwgLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJXaXRoVGF4ZXMgeyB3aWR0aDoxMDAlOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0eyB3aWR0aDo2NCU7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0LCAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudENvbnRhaW5lcldpdGhUYXhlcy5ib3hlczR7IHdpZHRoOjgwJTsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIgc3BhbiwgLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzIHNwYW57IHBhZGRpbmc6MCFpbXBvcnRhbnQ7IG1hcmdpbi1ib3R0b206MCFpbXBvcnRhbnQ7IGNvbG9yOmluaGVyaXQ7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyeyBtYXJnaW4tYm90dG9tOnZhcigtLXMpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lci5jYWxjLW1vYmlsZSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgbWFyZ2luLWJvdHRvbTowOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXIuYm94ZXM0IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyLCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50Q29udGFpbmVyV2l0aFRheGVzLmJveGVzNCAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlcnsgd2lkdGg6MjQlOyB9IC5wYXltZW50Q2FsY3VsYXRvckxpbmV7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkIGdyZXk7IG1hcmdpbjoxMHB4IDA7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUxeyBmb250LXNpemU6MC42ODhyZW0gOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUxIHNwYW57IGZvbnQtc2l6ZToxLjc1cmVtIDsgY29sb3I6IzAwMmM1ZjsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTJ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgfSAucmV2ZWFsLW1vZGFsIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lMiBzcGFueyBmb250LXNpemU6MS4zNzVyZW0gOyB9IC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRMaW5lM3sgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5yZXZlYWwtbW9kYWwgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFdyYXBwZXIgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudExpbmUzIHNwYW57IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50V3JhcHBlciAucGF5bWVudENhbGN1bGF0b3JQYXltZW50TGluZTR7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6Z3JleTsgd2hpdGUtc3BhY2U6bm9ybWFsOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbWFnZURpdnsgbWF4LXdpZHRoOjMzJTsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjA7IHRvcDotNTAlOyBkaXNwbGF5OnZhcigtLW1vYmlsZS1kaXNwbGF5LCBpbml0aWFsKTsgfSAucGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXJ7IHdpZHRoOm1heCh2YXIoLS1tb2ItZnVsbC13aWR0aCwgNjYlKSwgMjByZW0pOyB9IC5jYWxjLXBheW1lbnRzeyBtYXgtd2lkdGg6dmFyKC0tbW9iLWZ1bGwtd2lkdGgsIDY2JSk7IH0gLmNhbGMtcGF5bWVudHMgOmlzKC5wcmljZS1mciwgLnByaWNlLWVuKXsgdGV4dC1hbGlnbjpyZXZlcnQ7IG1pbi13aWR0aDp1bnNldDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZUNvbnRhaW5lcnsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjY2NjYzsgfSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGVDb250YWluZXJ7IG1hcmdpbi1ib3R0b206MTBweDsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZXsgbGlzdC1zdHlsZTpub25lOyBwYWRkaW5nOjAgMDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGl7IHBhZGRpbmc6MTBweDsgZmxvYXQ6bGVmdDsgbWluLXdpZHRoOjVyZW07IGN1cnNvcjpwb2ludGVyOyBib3JkZXItcmFkaXVzOjVweCA1cHggMCAwOyBib3JkZXItYm90dG9tOjBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFR5cGUgbGk6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6I2Q5ZDlkOTsgfSAucGF5bWVudENhbGN1bGF0b3JQYXltZW50VHlwZSBsaS5hY3RpdmVQYXltZW50VHlwZXsgYmFja2dyb3VuZC1jb2xvcjojOTg5ODk4OyBjb2xvcjp3aGl0ZTsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lcnsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5wYXltZW50Q2FsY3VsYXRvcklucHV0Q29udGFpbmVyID4gKiB7IHBhZGRpbmctYm90dG9tOjAuNXJlbTsgfSAucGF5bWVudENhbGN1bGF0b3JJbnB1dENvbnRhaW5lciBsYWJlbHsgY29sb3I6Z3JleTsgZm9udC1zaXplOjAuODc1cmVtIDsgbWFyZ2luLWxlZnQ6M3B4OyBtYXJnaW4tYm90dG9tOjA7IH0gLnBheW1lbnRDYWxjdWxhdG9yVHJpbVNlbGVjdHsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyBtaW4td2lkdGg6MTByZW07IG1heC13aWR0aDoyMHJlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBaDBsRVFWUTRUOTNUTVFyQ1VBekc4Vjl4OFF6aWlZU3VYZHpGQzdoNEFjRUxPUFFBZFhZb3ZaQ0hFQVRsZ1FWNUdGVGUxb3pKbHova1MxSXBqS3F3M3dRQlZ5eSsrSkkweTFHVGU3RENCYk1BY2tlTklRS2svQmFuQUxCQisxNkx0bkRFTG9NY3NNL0JFU0RsejJoZURSM1dlUHdLU0xvNWVveHozejZOTmNGRCt2dTNpajE0QXF6L0R4R2JLQjdDQUFBQUFFbEZUa1N1UW1DQycpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIGNlbnRlcjsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IGNvbG9yOmluaGVyaXQ7IGJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IH0gLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsIC5kMmNmb3JtIC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsIHsgYm9yZGVyLXJhZGl1czo1cHg7IHBhZGRpbmc6NXB4IDVweDsgZm9udC1zaXplOjFyZW0gOyBtaW4td2lkdGg6N3JlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBwYWRkaW5nLXJpZ2h0OjI3cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBaDBsRVFWUTRUOTNUTVFyQ1VBekc4Vjl4OFF6aWlZU3VYZHpGQzdoNEFjRUxPUFFBZFhZb3ZaQ0hFQVRsZ1FWNUdGVGUxb3pKbHova1MxSXBqS3F3M3dRQlZ5eSsrSkkweTFHVGU3RENCYk1BY2tlTklRS2svQmFuQUxCQisxNkx0bkRFTG9NY3NNL0JFU0RsejJoZURSM1dlUHdLU0xvNWVveHozejZOTmNGRCt2dTNpajE0QXF6L0R4R2JLQjdDQUFBQUFFbEZUa1N1UW1DQycpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246OTUlIGNlbnRlcjsgYm9yZGVyLWNvbG9yOiNhOWE5YTk7IGNvbG9yOmluaGVyaXQ7IGJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IH0gLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2V7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgd2lkdGg6MTEwcHg7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCQUFBQUFRQ0FZQUFBQWY4LzloQUFBQWgwbEVRVlE0VDkzVE1RckNVQXpHOFY5eDhRemlpWVN1WGR6RkM3aDRBY0VMT1BRQWRYWW92WkNIRUFUbGdRVjVHRlRlMW96Smx6L2tTMUlwaktxdzN3UUJWeXkrK0pJMHkxR1RlN0RDQmJNQWNrZU5JUUtrL0JhbkFMQkIrMTZMdG5ERUxvTWNzTS9CRVNEbHoyaGVEUjNXZVB3S1NMbzVlb3h6M3o2Tk5jRkQrdnUzaWoxNEFxei9EeEdiS0I3Q0FBQUFBRWxGVGtTdVFtQ0MnKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSBjZW50ZXI7IGJvcmRlci1jb2xvcjojYTlhOWE5OyBjb2xvcjppbmhlcml0OyBib3gtc2hhZG93Om5vbmU7IC13ZWJraXQtYm94LXNoYWRvdzpub25lOyB9IC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50eyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjVweCA1cHg7IGZvbnQtc2l6ZToxcmVtIDsgd2lkdGg6NXJlbTsgcGFkZGluZy1sZWZ0OjIwcHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgdmVyc2lvbj0nMS4xJyBoZWlnaHQ9JzI4cHgnIHdpZHRoPSc4NXB4Jz48dGV4dCB4PSc2JyB5PScyMScgZmlsbD0nJyBmb250LXNpemU9JzE2JyBmb250LWZhbWlseT0nYXJpYWwnPiQiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6NjAlOyBiYWNrZ3JvdW5kLXBvc2l0aW9uLXk6NDAlOyAtbW96LWFwcGVhcmFuY2U6dGV4dGZpZWxkOyB9IC5wYXltZW50Q2FsY3VsYXRvckRvd25QYXltZW50Ojotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uLCAucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IG1hcmdpbjowOyB9IC5wYXltZW50Q2FsY3VsYXRvck5vdGljZUNvbnRhaW5lcnsgbWluLXdpZHRoOjE4cmVtOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojODY4Njg2OyBwYWRkaW5nOjA7IG1hcmdpbjowOyBkaXNwbGF5OnZhcigtLW1vYmlsZS1kaXNwbGF5LCBpbml0aWFsKTsgfSAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIuYm94ZXM0eyB3aWR0aDozMCU7IH0gLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIgcCwgLnJldmVhbC1tb2RhbCAucGF5bWVudENhbGN1bGF0b3JOb3RpY2VDb250YWluZXIgc3BhbnsgY29sb3I6aW5oZXJpdDsgcGFkZGluZzowOyBmb250LXNpemU6MXJlbTsgfSAucGF5bWVudENhbGN1bGF0b3JFcnJvck1lc3NhZ2V7IHdpZHRoOjUwJTsgbWFyZ2luLXRvcDozMHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZveyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaWNvbnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2ZmZmZmZjsgY29sb3I6I2ZmZmZmZjsgbWFyZ2luOjA7IHBhZGRpbmc6MC40cmVtOyAtLXR4dC1jb2xvcjojZmZmZmZmOyAtLWZzOnZhcigtLWhlYWRlci1pY29uLXNpemUsIHZhcigtLWZzNykpOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWY7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gaDIgc3BhbjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyBoMiBzcGFueyBmb250LXNpemU6dmFyKC0taGVhZGVyLWZvbnQtc2l6ZSwgdmFyKC0tZnMzKSk7IG1hcmdpbjowOyBsaW5lLWhlaWdodDpub3JtYWw7IGZvbnQtd2VpZ2h0OjcwMDsgcGFkZGluZzowOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIGgzeyBmb250LXNpemU6MS4xODhyZW0gOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIHNwYW4uaDItYWx0eyBtYXJnaW46MDsgcGFkZGluZzowOyBtYXJnaW4tbGVmdDp2YXIoLS1zKTsgZm9udC1zaXplOmluaGVyaXQ7IGZvbnQtd2VpZ2h0OnZhcigtLWZvbnQtaDItd2VpZ2h0KTsgbGluZS1oZWlnaHQ6MS4yZW07IGNvbG9yOnZhcigtLWRlZmF1bHQtYmxhY2spOyB9ICNwYXltZW50Q2FsY3VsYXRvclZlaGljbGVJbmZvIC5oMi1hbHQgc3BhbjpmaXJzdC1jaGlsZHsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAjcGF5bWVudENhbGN1bGF0b3JWZWhpY2xlSW5mbyAuaDItYWx0IHNwYW57IGZvbnQtc2l6ZTp2YXIoLS1oZWFkZXItZm9udC1zaXplLCB2YXIoLS1mczMpKTsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0Om5vcm1hbDsgZm9udC13ZWlnaHQ6NzAwOyBwYWRkaW5nOjA7IH0gI3BheW1lbnRDYWxjdWxhdG9yVmVoaWNsZUluZm8gLmgzLWFsdHsgZm9udC1zaXplOjEuMTg4cmVtIDsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXJ7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5wYXltZW50Q2FsY3VsYXRvckNhbGxUb0FjdGlvbkNvbnRhaW5lci5ib3hlczR7IHdpZHRoOjY0JTsgfSAucGF5bWVudENhbGN1bGF0b3JDYWxsVG9BY3Rpb25Db250YWluZXIgYXsgd2lkdGg6bWluKDY0JSwxOHJlbSk7IH0gLnBheW1lbnRDYWxjdWxhdG9yUGF5bWVudFNlbGVjdHsgfSAuZmEuZmEtY2FsY3VsYXRvcnsgY29sb3I6IzAwMDAwMDsgfSAuLWJnLWJsYWNrIC5mYS5mYS1jYWxjdWxhdG9yeyBjb2xvcjojRkZGRkZGOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBzZWxlY3Q6Oi1tcy1leHBhbmQgeyBkaXNwbGF5Om5vbmU7IH0gLmNhbGMtcGF5bWVudC1jYXNoIHsgd2lkdGg6bWluKDE3cmVtLDkwJSk7IHBhZGRpbmc6MCAxLjVyZW07IH0gLmNhbGMtcGF5bWVudC1jYXNoIHNwYW57IG1hcmdpbi1ib3R0b206MDsgZm9udC1zaXplOnJldmVydDsgfSAuY2FsYy1wYXltZW50LWNhc2ggLnByaWNlRmluYWwgeyBwYWRkaW5nLXRvcDp2YXIoLS1zKTsgYm9yZGVyLXRvcDoxcHggc29saWQgI2JiYjsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAuY2FsYy1wYXltZW50LWNhc2ggLnByaWNlUm93IHsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBsaW5lLWhlaWdodDpub3JtYWw7IH0gLmNhbGMtcGF5bWVudC1jYXNoIC5wcmljZU5hbWV7IHBhZGRpbmc6MDsgdGV4dC1hbGlnbjpsZWZ0OyBmb250LXNpemU6dmFyKC0tZnMwKTsgfSAjcGF5bWVudENhbGN1bGF0b3JPcHRpb25Db250YWluZXIgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkJ1dHRvbnsgZm9udC1zaXplOjAuNjI1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6MTA1cHg7IHRleHQtYWxpZ246Y2VudGVyOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBwYWRkaW5nOjJweDsgY3Vyc29yOnBvaW50ZXI7IH0gI3BheW1lbnRDYWxjdWxhdG9yT3B0aW9uQ29udGFpbmVyIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5WYWx1ZXsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzo1cHggNXB4OyBmb250LXNpemU6MXJlbSA7IHdpZHRoOjEwMHB4OyBwYWRkaW5nLWxlZnQ6MTVweDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB2ZXJzaW9uPScxLjEnIGhlaWdodD0nMjhweCcgd2lkdGg9Jzg1cHgnPjx0ZXh0IHg9JzYnIHk9JzIxJyBmaWxsPScnIGZvbnQtc2l6ZT0nMTYnIGZvbnQtZmFtaWx5PSdhcmlhbCc+JCIpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmZpbmFuY2luZy1vcHRpb24geyBib3JkZXI6MS41cHggc29saWQgI2FhYTsgYm9yZGVyLXJhZGl1czo2cHg7IHBhZGRpbmc6OHB4OyB3aWR0aDoxOTBweDsgYmFja2dyb3VuZDp3aGl0ZTsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsZXgtc2hyaW5rOjA7IG1pbi13aWR0aDoxODdweDsgYm94LXNpemluZzpjb250ZW50LWJveCFpbXBvcnRhbnQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5maW5hbmNpbmctb3B0aW9uLnNlbGVjdGVkLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmZpbmFuY2luZy1vcHRpb24uc2VsZWN0ZWQgeyBib3JkZXItY29sb3I6IzAwN0JGRjsgYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsIDEyMywgMjU1LCAwLjUpOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAudGVybSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC50ZXJtIHsgZm9udC1zaXplOjAuODc1cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzMzMzsgbWFyZ2luLWJvdHRvbToycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5kb3duLXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuZG93bi1wYXltZW50IHsgZm9udC1zaXplOjAuNjI1cmVtIDsgY29sb3I6Izk5OTsgbWFyZ2luLWJvdHRvbTo1cHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5zZXBhcmF0b3JQYXksICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuc2VwYXJhdG9yUGF5IHsgd2lkdGg6OTAlOyBoZWlnaHQ6MXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNjY2M7IG1hcmdpbi1ib3R0b206NnB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuY29udGVudC1jb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuY29udGVudC1jb250YWluZXIgeyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtY29sdW1uczoxZnIgMWZyOyBhbGlnbi1pdGVtczpzdGFydDsgd2lkdGg6MTAwJTsgcGFkZGluZy1ib3R0b206OHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubGVmdC1zZWN0aW9uLCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgLnJpZ2h0LXNlY3Rpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubGVmdC1zZWN0aW9uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnJpZ2h0LXNlY3Rpb24geyBkaXNwbGF5OmdyaWQ7IGdyaWQtdGVtcGxhdGUtcm93czpzdWJncmlkOyBncmlkLXJvdzpzcGFuIDQ7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjZweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sZWZ0LXNlY3Rpb24sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubGVmdC1zZWN0aW9uIHsgYm9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubG93ZXN0LXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubG93ZXN0LXBheW1lbnQsICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXBheW1lbnQsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXBheW1lbnQgeyBmb250LXNpemU6MS4yNXJlbSA7IGNvbG9yOiNkMzJmMmY7IHBvc2l0aW9uOnJlbGF0aXZlOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuaW5mby1pY29uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLmluZm8taWNvbiB7IGZvbnQtc2l6ZTowLjc1cmVtIDsgY29sb3I6IzY2NjsgY3Vyc29yOnBvaW50ZXI7IG1hcmdpbi1sZWZ0OjRweDsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDoycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5hY3R1YWwtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5hY3R1YWwtcmF0ZSwgI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5sb3dlc3QtcmF0ZSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5sb3dlc3QtcmF0ZSB7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IG1hcmdpbi10b3A6NXB4OyBmb250LXdlaWdodDpib2xkOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuYWN0dWFsLXJhdGUsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAuYWN0dWFsLXJhdGUsICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAubG93ZXN0LXJhdGUsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAubG93ZXN0LXJhdGUgeyBjb2xvcjojMzMzOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuZGV0YWlsc1RheCwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5kZXRhaWxzVGF4IHsgZm9udC1zaXplOjAuNjg4cmVtIDsgY29sb3I6IzMzMzsgbWFyZ2luLXRvcDoycHg7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5yYWRpby1jb250YWluZXIsICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucmFkaW8tY29udGFpbmVyIHsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBhbGlnbi1pdGVtczpjZW50ZXI7IGdhcDowcHg7IG1hcmdpbi10b3A6OHB4OyBmb250LXNpemU6MC42ODhyZW0gOyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudCJdLCAjcGF5bWVudENhbGN1bGF0b3JDb250YWluZXIgaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJzZWxlY3RlZFBheW1lbnRXaXRoVGF4ZXMiXSwgI2ZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIGlucHV0W3R5cGU9InJhZGlvIl1bbmFtZT0ic2VsZWN0ZWRQYXltZW50Il0sICNmaW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciBpbnB1dFt0eXBlPSJyYWRpbyJdW25hbWU9InNlbGVjdGVkUGF5bWVudFdpdGhUYXhlcyJdIHsgbWFyZ2luLXJpZ2h0OjRweDsgb3BhY2l0eTp1bnNldDsgd2lkdGg6dW5zZXQ7IGhlaWdodDp1bnNldDsgcG9zaXRpb246dW5zZXQ7IH0gI3BheW1lbnRDYWxjdWxhdG9yQ29udGFpbmVyIC5zaW5nbGUtY29sdW1uLCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNpbmdsZS1jb2x1bW4geyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBncmlkLWNvbHVtbjoxIC8gLTE7IHBhZGRpbmc6OHB4OyB9ICNwYXltZW50Q2FsY3VsYXRvckNvbnRhaW5lciAuc21hbGwtYm94LCAjZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnNtYWxsLWJveCB7IHdpZHRoOjEwMHB4OyBwYWRkaW5nOjhweDsgbWluLXdpZHRoOjEwMHB4OyBtYXgtd2lkdGg6MTAwcHg7IH0KLyoqIC9jc3MvZGFya3Rvb2x0aXAuY3NzICoqLwouZGFyay10b29sdGlweyBkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjEwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyBmb250LXdlaWdodDpub3JtYWw7IGhlaWdodDphdXRvOyB0b3A6MDsgbGVmdDowO30gLmRhcmstdG9vbHRpcCAuZXZhcExpbmt7IGNvbG9yOiMwMDY2Y2M7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLmRhcmstdG9vbHRpcC5zbWFsbHsgcGFkZGluZzo0cHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgbWF4LXdpZHRoOjE1MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MnB4OyAtbW96LWJvcmRlci1yYWRpdXM6MnB4OyBib3JkZXItcmFkaXVzOjJweDsgfSAuZGFyay10b29sdGlwLm1lZGl1bXsgcGFkZGluZzo2cHg7IGZvbnQtc2l6ZTowLjY4OHJlbSA7IG1heC13aWR0aDoyMDBweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweDsgLW1vei1ib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXJhZGl1czo0cHg7fSAuZGFyay10b29sdGlwLmxhcmdleyBwYWRkaW5nOjE2cHg7IGZvbnQtc2l6ZToxcmVtIDsgbWF4LXdpZHRoOjI1MHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NnB4OyAtbW96LWJvcmRlci1yYWRpdXM6NnB4OyBib3JkZXItcmFkaXVzOjZweDsgfSAuZGFyay10b29sdGlwIC50aXB7IHRyYW5zZm9ybTpzY2FsZSgxLjAxKTsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4wMSk7IHRyYW5zZm9ybTpzY2FsZSgxLjAxKTsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjA7IGhlaWdodDowOyBib3JkZXItc3R5bGU6c29saWQ7IGxpbmUtaGVpZ2h0OjBweDsgfSAuZGFyay10b29sdGlwLnNvdXRoIC50aXB7IGxlZnQ6NTAlOyB0b3A6MTAwJTt9IC5kYXJrLXRvb2x0aXAud2VzdCAudGlweyBsZWZ0OjA7IHRvcDo1MCU7fSAuZGFyay10b29sdGlwLm5vcnRoIC50aXB7IGxlZnQ6NTAlOyB0b3A6MDsgfSAuZGFyay10b29sdGlwLmVhc3QgLnRpcHsgbGVmdDoxMDAlOyB0b3A6NTAlO30gLmRhcmstdG9vbHRpcC5zb3V0aC5zbWFsbCAudGlweyBib3JkZXItd2lkdGg6MHB4IDVweCAwIDVweDsgbWFyZ2luLWxlZnQ6LTVweDt9IC5kYXJrLXRvb2x0aXAuc291dGgubWVkaXVtIC50aXB7IGJvcmRlci13aWR0aDowcHggNnB4IDAgNnB4OyBtYXJnaW4tbGVmdDotNnB4O30gLmRhcmstdG9vbHRpcC5zb3V0aC5sYXJnZSAudGlweyBib3JkZXItd2lkdGg6MHB4IDEycHggMCAxMnB4OyBtYXJnaW4tbGVmdDotMTJweDt9IC5kYXJrLXRvb2x0aXAud2VzdC5zbWFsbCAudGlweyBib3JkZXItd2lkdGg6NXB4IDdweCA1cHggMDsgbWFyZ2luLWxlZnQ6LTdweDsgbWFyZ2luLXRvcDotNXB4O30gLmRhcmstdG9vbHRpcC53ZXN0Lm1lZGl1bSAudGlweyBib3JkZXItd2lkdGg6NnB4IDhweCA2cHggMDsgbWFyZ2luLWxlZnQ6LThweDsgbWFyZ2luLXRvcDotNnB4O30gLmRhcmstdG9vbHRpcC53ZXN0LmxhcmdlIC50aXB7IGJvcmRlci13aWR0aDoxMnB4IDE0cHggMTJweCAwOyBtYXJnaW4tbGVmdDotMTRweDsgbWFyZ2luLXRvcDotMTJweDt9IC5kYXJrLXRvb2x0aXAubm9ydGguc21hbGwgLnRpcHsgYm9yZGVyLXdpZHRoOjAgNXB4IDdweCA1cHg7IG1hcmdpbi1sZWZ0Oi01cHg7IG1hcmdpbi10b3A6LTdweDt9IC5kYXJrLXRvb2x0aXAubm9ydGgubWVkaXVtIC50aXB7IGJvcmRlci13aWR0aDowIDZweCA4cHggNnB4OyBtYXJnaW4tbGVmdDotNnB4OyBtYXJnaW4tdG9wOi04cHg7fSAuZGFyay10b29sdGlwLm5vcnRoLmxhcmdlIC50aXB7IGJvcmRlci13aWR0aDowIDEycHggMTRweCAxMnB4OyBtYXJnaW4tbGVmdDotMTJweDsgbWFyZ2luLXRvcDotMTRweDt9IC5kYXJrLXRvb2x0aXAuZWFzdC5zbWFsbCAudGlweyBib3JkZXItd2lkdGg6NXB4IDAgNXB4IDBweDsgbWFyZ2luLXRvcDotNXB4O30gLmRhcmstdG9vbHRpcC5lYXN0Lm1lZGl1bSAudGlweyBib3JkZXItd2lkdGg6NnB4IDBweCA2cHggMHB4OyBtYXJnaW4tdG9wOi02cHg7fSAuZGFyay10b29sdGlwLmVhc3QubGFyZ2UgLnRpcHsgYm9yZGVyLXdpZHRoOjEycHggMCAxMnB4IDBweDsgbWFyZ2luLXRvcDotMTJweDt9IC5kYXJrLXRvb2x0aXAgdWwuY29uZmlybXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7bWFyZ2luLXRvcDo1cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjAgYXV0bzsgfSAuZGFyay10b29sdGlwIHVsLmNvbmZpcm0gbGl7IHBhZGRpbmc6MTBweDtmbG9hdDpsZWZ0O21hcmdpbjo1cHg7bWluLXdpZHRoOjI1cHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDstbW96LWJvcmRlci1yYWRpdXM6M3B4Oy1vLWJvcmRlci1yYWRpdXM6M3B4O2JvcmRlci1yYWRpdXM6M3B4O30gLmRhcmstdG9vbHRpcC5kYXJreyBiYWNrZ3JvdW5kLWNvbG9yOiNEQUQ5REI7IGNvbG9yOiMwMDA7fSAuZGFyay10b29sdGlwLmxpZ2h0eyBiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7IGNvbG9yOiM1ZTVlNWU7IGJvcmRlcjoxcHggc29saWQgIzVlNWU1ZTsgei1pbmRleDoxMDAwMDMwO30gLmRhcmstdG9vbHRpcC5kYXJrLnNvdXRoIC50aXB7IGJvcmRlci1jb2xvcjojREFEOURCIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyBfYm9yZGVyLWNvbG9yOiNEQUQ5REIgIzAwMDAwMCAjMDAwMDAwICMwMDAwMDA7IF9maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpOyB9IC5kYXJrLXRvb2x0aXAuZGFyay53ZXN0IC50aXB7IGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudCAjREFEOURCIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50OyBfYm9yZGVyLWNvbG9yOiMwMDAwMDAgI0RBRDlEQiAjMDAwMDAwICMwMDAwMDA7IF9maWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkNocm9tYShjb2xvcj0nIzAwMDAwMCcpOyB9IC5kYXJrLXRvb2x0aXAuZGFyay5ub3J0aCAudGlweyBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI0RBRDlEQiB0cmFuc3BhcmVudDsgX2JvcmRlci1jb2xvcjojMDAwMDAwICMwMDAwMDAgI0RBRDlEQiAjMDAwMDAwOyBfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKTsgfSAuZGFyay10b29sdGlwLmRhcmsuZWFzdCAudGlweyBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI0RBRDlEQjsgX2JvcmRlci1jb2xvcjojMDAwMDAwICMwMDAwMDAgIzAwMDAwMCAjREFEOURCOyBfZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5DaHJvbWEoY29sb3I9JyMwMDAwMDAnKTsgfSAuZGFyay10b29sdGlwLmxpZ2h0LnNvdXRoIC50aXB7IGJvcmRlci1jb2xvcjp0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2Nzcy90aXBzLnBuZyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgd2lkdGg6MTJweDsgaGVpZ2h0OjhweDsgfSAuZGFyay10b29sdGlwLmxpZ2h0Lndlc3QgLnRpcHsgYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcHcucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB3aWR0aDo4cHg7IGhlaWdodDoxMnB4OyB9IC5kYXJrLXRvb2x0aXAubGlnaHQubm9ydGggLnRpcHsgYm9yZGVyLWNvbG9yOnRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvY3NzL3RpcG4ucG5nKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB3aWR0aDoxMnB4OyBoZWlnaHQ6OHB4OyB9IC5kYXJrLXRvb2x0aXAubGlnaHQuZWFzdCAudGlweyBib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9jc3MvdGlwZS5wbmcpOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCBjZW50ZXI7IHdpZHRoOjhweDsgaGVpZ2h0OjEycHg7fSAuZGFyay10b29sdGlwLmRhcmsgdWwuY29uZmlybSBsaXsgYmFja2dyb3VuZC1jb2xvcjojNDE2RTg1O30gLmRhcmstdG9vbHRpcC5kYXJrIHVsLmNvbmZpcm0gbGk6aG92ZXJ7IGJhY2tncm91bmQtY29sb3I6IzQxN0U4NTt9IC5kYXJrLXRvb2x0aXAubGlnaHQgdWwuY29uZmlybSBsaXsgYmFja2dyb3VuZC1jb2xvcjojQzFEQkRCO30gLmRhcmstdG9vbHRpcC5saWdodCB1bC5jb25maXJtIGxpOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNEQ0U4RTg7fSAuYW5pbWF0ZWR7IC13ZWJraXQtYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1tb3otYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoOy1tcy1hbmltYXRpb24tZmlsbC1tb2RlOmJvdGg7LW8tYW5pbWF0aW9uLWZpbGwtbW9kZTpib3RoO2FuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246LjVzOy1tb3otYW5pbWF0aW9uLWR1cmF0aW9uOi41czstbXMtYW5pbWF0aW9uLWR1cmF0aW9uOi41czstby1hbmltYXRpb24tZHVyYXRpb246LjVzO2FuaW1hdGlvbi1kdXJhdGlvbjouNXM7IH0gQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblVwIHsgMC4wMDAxJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKC05MGRlZyk7IG9wYWNpdHk6MDt9IDQwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpO30gNzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpO30gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpOyBvcGFjaXR5OjE7fSB9IEAtbW96LWtleWZyYW1lcyBmbGlwSW5VcCB7IDAuMDAwMSUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpO30gNzAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpO30gMTAwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO29wYWNpdHk6MTt9IH0gQC1vLWtleWZyYW1lcyBmbGlwSW5VcCB7IDAuMDAwMSUgey1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpO30gNzAlIHstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpO30gMTAwJSB7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO29wYWNpdHk6MTt9IH0gQGtleWZyYW1lcyBmbGlwSW5VcCB7IDAuMDAwMSUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWCgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDVkZWcpO30gNzAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVgoLTVkZWcpO30gMTAwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVYKDBkZWcpO29wYWNpdHk6MTt9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGZsaXBJblJpZ2h0IHsgMC4wMDAxJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKC05MGRlZyk7IG9wYWNpdHk6MDt9IDQwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpO30gNzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpO30gMTAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDBkZWcpOyBvcGFjaXR5OjE7fSB9IEAtbW96LWtleWZyYW1lcyBmbGlwSW5SaWdodCB7IDAuMDAwMSUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpO30gNzAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpO30gMTAwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDBkZWcpO29wYWNpdHk6MTt9IH0gQC1vLWtleWZyYW1lcyBmbGlwSW5SaWdodCB7IDAuMDAwMSUgey1vLXRyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpO30gNzAlIHstby10cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpO30gMTAwJSB7LW8tdHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDBkZWcpO29wYWNpdHk6MTt9IH0gQGtleWZyYW1lcyBmbGlwSW5SaWdodCB7IDAuMDAwMSUge3RyYW5zZm9ybTpwZXJzcGVjdGl2ZSg0MDBweCkgcm90YXRlWSgtOTBkZWcpO29wYWNpdHk6MDt9IDQwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDVkZWcpO30gNzAlIHt0cmFuc2Zvcm06cGVyc3BlY3RpdmUoNDAwcHgpIHJvdGF0ZVkoLTVkZWcpO30gMTAwJSB7dHJhbnNmb3JtOnBlcnNwZWN0aXZlKDQwMHB4KSByb3RhdGVZKDBkZWcpO29wYWNpdHk6MTt9IH0gLmZsaXBJbiB7IC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7IC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7IC1vLWJhY2tmYWNlLXZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50OyBiYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudH0gLmZsaXBJbi5zb3V0aCwgLmZsaXBJbi5ub3J0aCB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcEluVXA7IC1tb3otYW5pbWF0aW9uLW5hbWU6ZmxpcEluVXA7IC1vLWFuaW1hdGlvbi1uYW1lOmZsaXBJblVwOyBhbmltYXRpb24tbmFtZTpmbGlwSW5VcDsgfSAuZmxpcEluLndlc3QsIC5mbGlwSW4uZWFzdCB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHQ7IC1tb3otYW5pbWF0aW9uLW5hbWU6ZmxpcEluUmlnaHQ7IC1vLWFuaW1hdGlvbi1uYW1lOmZsaXBJblJpZ2h0OyBhbmltYXRpb24tbmFtZTpmbGlwSW5SaWdodDsgfSBALXdlYmtpdC1rZXlmcmFtZXMgZmFkZUluIHsgMCUge29wYWNpdHk6MDt9IDEwMCUge29wYWNpdHk6MTt9fSBALW1vei1rZXlmcmFtZXMgZmFkZUluIHsgMCUge29wYWNpdHk6MDt9IDEwMCUge29wYWNpdHk6MTt9fSBALW8ta2V5ZnJhbWVzIGZhZGVJbiB7MCUge29wYWNpdHk6MDt9MTAwJSB7b3BhY2l0eToxO319IEBrZXlmcmFtZXMgZmFkZUluIHswJSB7b3BhY2l0eTowO30xMDAlIHtvcGFjaXR5OjE7fX0gLmZhZGVJbnstd2Via2l0LWFuaW1hdGlvbi1uYW1lOmZhZGVJbjsgLW1vei1hbmltYXRpb24tbmFtZTpmYWRlSW47IC1vLWFuaW1hdGlvbi1uYW1lOmZhZGVJbjsgYW5pbWF0aW9uLW5hbWU6ZmFkZUluO30KLyoqIC9jc3MvcmV2ZWFsLmNzcyAqKi8KLnJldmVhbC1tb2RhbC1iZyB7IHBvc2l0aW9uOmZpeGVkOyBoZWlnaHQ6MTAwJTsgd2lkdGg6MTAwJTsgYmFja2dyb3VuZDojMDAwOyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsLjgpOyB6LWluZGV4OjEwMDAwMDk7IGRpc3BsYXk6bm9uZTsgdG9wOjA7IGxlZnQ6MDsgfSAucmV2ZWFsLW1vZGFsIHsgdmlzaWJpbGl0eTpoaWRkZW47IHRvcDotMTAwMHB4OyB3aWR0aDptaW4oNTIwcHgsIDkwdncpOyBiYWNrZ3JvdW5kOiNlZWUgdXJsKC9pbWFnZXMvbW9kYWwtZ2xvc3MucG5nKSBuby1yZXBlYXQgLTIwMHB4IC04MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IHJpZ2h0OjA7IG1hcmdpbjphdXRvOyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MzBweCA0MHB4IDM0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo1cHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo1cHg7IGJvcmRlci1yYWRpdXM6NXB4OyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNCk7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCByZ2JhKDAsMCwwLC40KTsgLWJveC1zaGFkb3c6MCAwIDEwcHggcmdiYSgwLDAsMCwuNCk7IH0gLnJldmVhbC1tb2RlbC1kby1ub3Qtc2hvdyB7IHZpc2liaWxpdHk6aGlkZGVuOyB0b3A6MTAwcHg7IHdpZHRoOjUyMHB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDoxMDAwMDIwOyBwYWRkaW5nOjMwcHggNDBweCAzNHB4OyBiYWNrZ3JvdW5kOm5vbmU7IC1tb3otYm9yZGVyLXJhZGl1czowcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czowcHg7IGJvcmRlci1yYWRpdXM6MHB4OyAtbW96LWJveC1zaGFkb3c6bm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7IC1ib3gtc2hhZG93Om5vbmU7IH0gLi0taXMtcG9wdXAtZml4ZWQtY29udGFpbmVyIHsgcG9zaXRpb246Zml4ZWQ7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IHotaW5kZXg6MTAwMDAwMDAwOyB9IC5yZXZlYWwtbW9kYWwuc21hbGwgeyB3aWR0aDoyMDBweDt9IC5yZXZlYWwtbW9kYWwubWVkaXVtIHsgd2lkdGg6NDAwcHg7fSAucmV2ZWFsLW1vZGFsLmxhcmdlIHsgd2lkdGg6NjAwcHg7fSAucmV2ZWFsLW1vZGFsLnhsYXJnZSB7IHdpZHRoOjgwMHB4O30gLnJldmVhbC1tb2RhbCAuY2xvc2UtcmV2ZWFsLW1vZGFsIHsgZm9udC1zaXplOjEuMzc1cmVtIDsgbGluZS1oZWlnaHQ6LjU7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6OXB4OyByaWdodDoxMHB4OyBjb2xvcjojNDQ0OyB0ZXh0LXNoYWRvdzowIC0xcHggMXB4IHJiZ2EoMCwwLDAsLjYpOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgfSAuY2xvc2UtcmV2ZWFsLW1vZGFsLm1vZGFsLWNsb3NlLWhpZGUgeyBkaXNwbGF5Om5vbmU7IH0gLnJldmVhbC1tb2RhbCBzcGFuIHsgcGFkZGluZzowcHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBtYXJnaW4tYm90dG9tOjEwcHg7IGNvbG9yOiM0MTQxNDE7IH0gLnJldmVhbC1tb2RhbCBzcGFuLnN1Y2Nlc3MgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2NpcmNsZS1ncmVlbi0yNC1ucy5wbmcpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCBjZW50ZXIgdHJhbnNwYXJlbnQ7IH0gLnJldmVhbC1tb2RhbCBzcGFuLmZhaWwgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2NpcmNsZS1yZWQtMjQtbnMucG5nKSBuby1yZXBlYXQgc2Nyb2xsIGxlZnQgY2VudGVyIHRyYW5zcGFyZW50OyBwYWRkaW5nLWxlZnQ6MzBweDsgfSAucmV2ZWFsLW1vZGFsIHAgeyBtYXJnaW46MCA7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiM0MTQxNDE7IH0gLnBvcHVwLWRvbS1ub3dyYXBwZXIgeyBiYWNrZ3JvdW5kOm5vbmUgIWltcG9ydGFudDsgYm94LXNoYWRvdzpub25lOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC1kZXZpY2Utd2lkdGg6NDgwcHgpIHsgLnJldmVhbC1tb2RhbCwgLnJldmVhbC1tb2RlbC1kby1ub3Qtc2hvdyB7IHRvcDoxMHB4OyB6LWluZGV4OjEwMDAwMjA7IHBhZGRpbmc6MC41cmVtOyBwYWRkaW5nLXRvcDoycmVtOyB9IC5yZXZlYWwtbW9kYWwgLmNsb3NlLXJldmVhbC1tb2RhbCB7IGZvbnQtc2l6ZToxLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjAuNjsgcmlnaHQ6MC41cmVtOyB0b3A6MC41cmVtOyB6LWluZGV4OjE7IH0gfSAuZW1haWwtY29uc2VudC1ib3ggOmlzKC50aXRsZS10eHQsIHApeyBtYXJnaW4tbGVmdDowOyBwYWRkaW5nOjA7IGNvbG9yOiM0MTQxNDE7IH0gLmVtYWlsLWNvbnNlbnQtYm94eyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IGNvbG9yOiM0MTQxNDE7IH0gLmVtYWlsLWNvbnNlbnQtYm94IC5pY29uLXRpdGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuZW1haWwtY29uc2VudC1ib3gtLWNvbXBhY3Qgc3Bhbi5mYWlseyBkaXNwbGF5OmlubGluZS1ibG9jazsgbGluZS1oZWlnaHQ6MS4yOyB9IC5lbWFpbC1jb25zZW50LWJveC0tY29tcGFjdCBweyBtYXJnaW4tdG9wOjEycHg7IGxpbmUtaGVpZ2h0OjEuNDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtZGV2aWNlLXdpZHRoOjQ4MHB4KSB7IFtpZF49ImVtYWlsRmFpbE1lc3NhZ2UiXXsgd2lkdGg6bWluKDkydncsIDQyMHB4KSAhaW1wb3J0YW50OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gfQovKiogL2Nzcy9tYWluLmNzcyAqKi8KLi1sZWZ0IHtmbG9hdDpsZWZ0IWltcG9ydGFudDt9IC4tcmlnaHQge2Zsb2F0OnJpZ2h0fSAuLXNtYWxsIHtmb250LXNpemU6LjhlbTttYXJnaW4tYm90dG9tOjEuODc1ZW07bGluZS1oZWlnaHQ6MS44NzVlbSFpbXBvcnRhbnQ7fSAuLWxhcmdlIHtmb250LXNpemU6MS4yZW07bGluZS1oZWlnaHQ6Mi41ZW07bWFyZ2luLWJvdHRvbToxLjI1ZW0haW1wb3J0YW50O30gLi1oaWRlIHtkaXNwbGF5Om5vbmUhaW1wb3J0YW50O30gLi1xdWlldCB7Y29sb3I6IzY2NiFpbXBvcnRhbnQ7fSAuLWxvdWQge2NvbG9yOiMwMDAwMDAhaW1wb3J0YW50O30gLi1oaWdobGlnaHQge2JhY2tncm91bmQ6I2ZmMCFpbXBvcnRhbnQ7fSAuLWFkZGVkIHtiYWNrZ3JvdW5kOiMwNjA7Y29sb3I6I2ZmZiFpbXBvcnRhbnQ7fSAuLXJlbW92ZWQge2JhY2tncm91bmQ6IzkwMDtjb2xvcjojZmZmIWltcG9ydGFudDt9IC4tcHVzaC1maXJzdCB7bWFyZ2luLWxlZnQ6MDtwYWRkaW5nLWxlZnQ6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtbGFzdCB7bWFyZ2luLXJpZ2h0OjA7cGFkZGluZy1yaWdodDowIWltcG9ydGFudDt9IC4tcHVzaC1sZWZ0IHttYXJnaW4tdG9wOjA7cGFkZGluZy10b3A6MCFpbXBvcnRhbnQ7fSAuLXB1c2gtYm90dG9tIHttYXJnaW4tYm90dG9tOjA7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLW5vYm9yZGVyIHtib3JkZXI6MCFpbXBvcnRhbnQ7fSAuLW5vZGVjb3JhdGlvbiwgLi1uby10ZXh0LWRlY29yYXRpb24sIC4tbm90ZXh0LWRlY29yYXRpb24ge3RleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDt9IC4tdGV4dC11cHBlcmNhc2UsIC4tdXBwZXJjYXNlLCAudGV4dC11cHBlcmNhc2Uge3RleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlcik7fSAuLXRleHQtbG93ZXJjYXNlLCAuLWxvd2VyY2FzZSB7dGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlIWltcG9ydGFudDt9IC4taGlkZGVuIHsgZGlzcGxheTpub25lOyB9IC4tdGV4dC1ib2xkLC5ib2xke2ZvbnQtd2VpZ2h0OmJvbGQhaW1wb3J0YW50O30gLi10ZXh0LW5vcm1hbCwubm9ybWFse2ZvbnQtd2VpZ2h0Om5vcm1hbCFpbXBvcnRhbnQ7fSAuLWFsaWduLXRvcCB7dmVydGljYWwtYWxpZ246dG9wIWltcG9ydGFudDt9IC4tYWxpZ24tbWlkZGxlIHt2ZXJ0aWNhbC1hbGlnbjptaWRkbGUhaW1wb3J0YW50O30gLi1saW5lLWgxeyBsaW5lLWhlaWdodDoxZW07IH0gLi1saW5lLWgyeyBsaW5lLWhlaWdodDoyZW07IH0gLi1ib3R0b20weyBib3R0b206MDsgfSAuLWJvdHRvbTAtaW1wb3J0YW50eyBib3R0b206MCFpbXBvcnRhbnQ7IH0gLlBvcnNjaGUyeyBjbGVhcjpib3RoOyB9IC5ibGFjay10ZXh0IHsgY29sb3I6IzAwMDAwMDsgfSA6OnBsYWNlaG9sZGVyIHsgcGFkZGluZy10b3A6MXB4OyBjb2xvcjojYTlhOWE5OyBvcGFjaXR5OjE7IH0gOi1tcy1pbnB1dC1wbGFjZWhvbGRlciB7IGNvbG9yOiNhOWE5YTk7IH0gOjotbXMtaW5wdXQtcGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyB9ICNjYXJUaXRsZSAuZmEtY2hldnJvbi1yaWdodCwgLlNwZWNpZmljYXRpb25zIC5mYS1jaGV2cm9uLXJpZ2h0IHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDoyMHB4OyBoZWlnaHQ6MjVweDsgcGFkZGluZy10b3A6NHB4OyBwYWRkaW5nLWxlZnQ6OXB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOjhweDsgZm9udC1zaXplOjEuMzc1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IGNvbG9yOiMwMDAwMDAgOyBtYXJnaW4tcmlnaHQ6MTBweDsgfSAuU3BlY2lmaWNhdGlvbnMgLmZhLWNoZXZyb24tcmlnaHR7IG1hcmdpbi10b3A6MXB4OyB9ICNjYXJUaXRsZSAubWFrZU1vZGVsWWVhcnsgZm9udC1zaXplOjEuNTYzcmVtIDsgfSAjY2FyVGl0bGUgLmRlYWxlckxjYXRpb25DYXJUaXRsZSB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgY29sb3I6IzljOWM5YzsgZm9udC1zaXplOjEuMTI1cmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgfSAuY2FyVGl0bGUgLmZhLWNoZXZyb24tcmlnaHR7IGJvcmRlci1yYWRpdXM6MzBweDsgd2lkdGg6MjBweDsgaGVpZ2h0OjI1cHg7IHBhZGRpbmctdG9wOjRweDsgcGFkZGluZy1sZWZ0OjlweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToxLjM3NXJlbSA7IGJvcmRlcjoxcHggc29saWQgIzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZTRkY2QzOyBjb2xvcjojMDAwMDAwIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLmNhclRpdGxlIC5tYWtlTW9kZWxZZWFyeyBmb250LXNpemU6MS40MzhyZW0gOyB9IC5jYXJUaXRsZSAuZGVhbGVyTGNhdGlvbkNhclRpdGxlIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBjb2xvcjojOWM5YzljOyBmb250LXNpemU6MC45MzhyZW0gOyBsZXR0ZXItc3BhY2luZzotMXB4OyB9ICNTZWFyY2hUaXRsZSAuZmEtY2hldnJvbi1yaWdodHsgYm9yZGVyLXJhZGl1czozMHB4OyB3aWR0aDozMXB4OyBoZWlnaHQ6NDFweDsgcGFkZGluZy10b3A6NXB4OyBwYWRkaW5nLWxlZnQ6MTRweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDo4cHg7IGZvbnQtc2l6ZToyLjE4OHJlbSA7IGJvcmRlcjoxcHggc29saWQgIzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZTRkY2QzOyBjb2xvcjojMDAwMDAwIDsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gI1NlYXJjaFRpdGxlIC5kZWFsZXJMY2F0aW9uQ2FyVGl0bGUgeyBmb250LXdlaWdodDpub3JtYWw7IGNvbG9yOiM5YzljOWM7IGZvbnQtc2l6ZToxcmVtIDsgbGV0dGVyLXNwYWNpbmc6LTFweDsgbWFyZ2luLWxlZnQ6NDVweDsgZGlzcGxheTpibG9jazsgfSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsYWJlbCBpbnB1dCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MXB4OyBtYXJnaW4tcmlnaHQ6OHB4OyBoZWlnaHQ6MTNweDsgfSAudWktd2lkZ2V0LC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1jb250ZW50IC51aS1zdGF0ZS1ob3ZlciwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWhvdmVyLCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZm9jdXMsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1mb2N1cywgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtY29udGVudCAudWktc3RhdGUtZGVmYXVsdCwgLnVpLXdpZGdldC1oZWFkZXIgLnVpLXN0YXRlLWRlZmF1bHR7IGJhY2tncm91bmQ6I2ZmZiFpbXBvcnRhbnQ7IGNvbG9yOiM1NTU7IGZvbnQtc2l6ZTowLjkzOHJlbSAhaW1wb3J0YW50OyB9IC51aS1zdGF0ZS1kZWZhdWx0LCAudWktd2lkZ2V0LWNvbnRlbnQgLnVpLXN0YXRlLWRlZmF1bHQsIC51aS13aWRnZXQtaGVhZGVyIC51aS1zdGF0ZS1kZWZhdWx0eyBwYWRkaW5nOjhweCAxMHB4IWltcG9ydGFudDsgfSAudWktbXVsdGlzZWxlY3QtY2hlY2tib3hlcyBsaXsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IH0gLnVpLWNvcm5lci1hbGx7IGJvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDsgfSAuLWNvbGxhcHNleyBib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7IH0gLi1saXsgbGlzdC1zdHlsZS10eXBlOm5vbmU7IH0gLi1uby1zaGFkb3csIC4tc2hhZG93MCwgLi1ub3NoYWRvd3sgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAuLXVuZGVybGluZXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSFpbXBvcnRhbnQ7IH0gLi10b3AweyB0b3A6MDsgfSAuLXRleHQtbGVmdHt0ZXh0LWFsaWduOmxlZnQhaW1wb3J0YW50O30gLi10ZXh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQhaW1wb3J0YW50O30gLi10ZXh0LWNlbnRlcnt0ZXh0LWFsaWduOmNlbnRlciFpbXBvcnRhbnQ7fSAuLXRleHQtcmVkLCAuLXJlZC10ZXh0e2NvbG9yOnJlZCFpbXBvcnRhbnQ7fSAuLWJsb2Nre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O30gLi1pbmxpbmUtYmxvY2t7ZGlzcGxheTppbmxpbmUtYmxvY2shaW1wb3J0YW50O30gLi1ub25lLCAuLWhpZGRlbiwgLi1oaWRkZSB7ZGlzcGxheTpub25lIWltcG9ydGFudDt9IC4taW5saW5lIHtkaXNwbGF5OmlubGluZSFpbXBvcnRhbnQ7fSAuLWNvbG9yMSB7IGNvbG9yOiM1NzU3NTchaW1wb3J0YW50O30gLi10aXRsZTEgeyBmb250LXNpemU6MS40MzhyZW0gIWltcG9ydGFudDsgZm9udC1jb2xvcjojMDAwMDAwICFpbXBvcnRhbnQ7IHRleHQtZGVjb3JhdGlvbjpub25lIWltcG9ydGFudDsgfSAuLWlucHV0IHsgZm9udC1zaXplOjAuODEzcmVtIDsgbGluZS1oZWlnaHQ6MTVweDsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBoZWlnaHQ6MzJweDsgY29sb3I6IzQwNDA0MDsgcGFkZGluZzowcHggNnB4IWltcG9ydGFudDsgbWFyZ2luOjBweDsgb3V0bGluZTpub25lOyBtaW4taGVpZ2h0OjIwcHg7IGJvcmRlcjoxcHggc29saWQgI2NlZDRkYTsgYm9yZGVyLXJhZGl1czouMjVyZW07IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC4taW5wdXQ6Zm9jdXMsIC4taW5wdXQ6aG92ZXJ7IGJvcmRlci1jb2xvcjojODBiZGZmICFpbXBvcnRhbnQ7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYmEoMCwxMjMsMjU1LC4yNSk7IH0gLi1wb3NpdGlvbi1zdGF0aWMsIC4tcG9zLXN0YXRpYywgLi1wb3Mtc3RhdCB7cG9zaXRpb246c3RhdGljIWltcG9ydGFudDt9IC4tcG9zaXRpb24tYWJzb2x1dGUsIC4tcG9zLWFic29sdXRlLCAuLXBvcy1hYnMge3Bvc2l0aW9uOmFic29sdXRlIWltcG9ydGFudDt9IC4tcG9zaXRpb24tZml4ZWQsIC4tcG9zLWZpeGVkLCAuLXBvcy1maXgge3Bvc2l0aW9uOmZpeGVkIWltcG9ydGFudDt9IC4tcG9zaXRpb24tcmVsYXRpdmUsIC4tcG9zLXJlbGF0aXZlLCAuLXBvcy1yZWwge3Bvc2l0aW9uOnJlbGF0aXZlIWltcG9ydGFudDt9IC4tcG9zaXRpb24taW5oZXJpdCwgLi1wb3MtaW5oZXJpdCwgLi1wb3MtaW5oIHtwb3NpdGlvbjppbmhlcml0IWltcG9ydGFudDt9IC1saC0xLTMsIC1saW5lLWhlaWdodC0xLTN7IGxpbmUtaGVpZ2h0OjEuMzsgfSAtbGgtMjB7IGxpbmUtaGVpZ2h0OjIwcHg7IH0gLi1lcnJvciwgLi1hbGVydCwgLi1ub3RpY2UsIC4tc3VjY2VzcywgLi1pbmZvIHtwYWRkaW5nOjAuOGVtO21hcmdpbi1ib3R0b206MWVtO2JvcmRlcjoycHggc29saWQgI2RkZCFpbXBvcnRhbnQ7fSAuLWVycm9yLCAuLWFsZXJ0IHtiYWNrZ3JvdW5kOiNmYmUzZTQ7Y29sb3I6IzhhMWYxMTtib3JkZXItY29sb3I6I2ZiYzJjNCFpbXBvcnRhbnQ7fSAuLW5vdGljZSB7YmFja2dyb3VuZDojZmZmNmJmO2NvbG9yOiM1MTQ3MjE7Ym9yZGVyLWNvbG9yOiNmZmQzMjQhaW1wb3J0YW50O30gLi1zdWNjZXNzIHtiYWNrZ3JvdW5kOiNlNmVmYzI7Y29sb3I6IzI2NDQwOTtib3JkZXItY29sb3I6I2M2ZDg4MCFpbXBvcnRhbnQ7fSAuLWluZm8ge2JhY2tncm91bmQ6I2Q1ZWRmODtjb2xvcjojMjA1NzkxO2JvcmRlci1jb2xvcjojOTJjYWU0IWltcG9ydGFudDt9IC4tZXJyb3IgYSwgLmFsZXJ0IGEge2NvbG9yOiM4YTFmMTEhaW1wb3J0YW50O30gLi1ub3RpY2UgYSB7Y29sb3I6IzUxNDcyMSFpbXBvcnRhbnQ7fSAuLXN1Y2Nlc3MgYSB7Y29sb3I6IzI2NDQwOSFpbXBvcnRhbnQ7fSAuLWluZm8gYSB7Y29sb3I6IzIwNTc5MSFpbXBvcnRhbnQ7fSAuLWJveCB7cGFkZGluZzoxLjVlbTttYXJnaW4tYm90dG9tOjEuNWVtO2JhY2tncm91bmQ6I2U1ZUNmOSFpbXBvcnRhbnQ7fSAtaHIge2JhY2tncm91bmQ6I2RkZGRkZDtjb2xvcjojZGRkZGRkO2NsZWFyOmJvdGg7ZmxvYXQ6bm9uZTt3aWR0aDoxMDAlO2hlaWdodDoxcHg7bWFyZ2luOjAgMCAxN3B4O2JvcmRlcjpub25lIWltcG9ydGFudDt9IC1zcGFjZSB7YmFja2dyb3VuZDojZmZmO2NvbG9yOiNmZmY7dmlzaWJpbGl0eTpoaWRkZW47Y2xlYXI6Ym90aDtmbG9hdDpub25lO3dpZHRoOjEwMCU7aGVpZ2h0OjFweDttYXJnaW46MCAwIDE3cHg7Ym9yZGVyOm5vbmUhaW1wb3J0YW50O30gLi1jbGVhcmZpeDphZnRlciB7Y29udGVudDoiXDAwMjAiO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7Y2xlYXI6Ym90aDt2aXNpYmlsaXR5OmhpZGRlbjtvdmVyZmxvdzpoaWRkZW4haW1wb3J0YW50O30gLi1jbGVhcmZpeHtkaXNwbGF5OmJsb2NrIWltcG9ydGFudDt9IC4tY2xlYXIge2NsZWFyOmJvdGghaW1wb3J0YW50O30gLmludmlzaWJsZSB7dmlzaWJpbGl0eTpoaWRkZW47fSAuY2xlYXJmaXg6YWZ0ZXIge2NvbnRlbnQ6IiI7IGRpc3BsYXk6dGFibGU7IGNsZWFyOmJvdGg7fSAuLW92ZXJmbG93LWhpZGRlbiB7b3ZlcmZsb3c6aGlkZGVuIWltcG9ydGFudDt9IC4tdzUge3dpZHRoOjVweCFpbXBvcnRhbnQ7fSAuLXcxMCB7d2lkdGg6MTBweCFpbXBvcnRhbnQ7fSAuLXcxNSB7d2lkdGg6MTVweCFpbXBvcnRhbnQ7fSAuLXcxOCB7d2lkdGg6MThweCFpbXBvcnRhbnQ7fSAuLXcyMCB7d2lkdGg6MjBweCFpbXBvcnRhbnQ7fSAuLXcyNSB7d2lkdGg6MjVweCFpbXBvcnRhbnQ7fSAuLXczMCB7d2lkdGg6MzBweCFpbXBvcnRhbnQ7fSAuLXczNSB7d2lkdGg6MzVweCFpbXBvcnRhbnQ7fSAuLXc0MCB7d2lkdGg6NDBweCFpbXBvcnRhbnQ7fSAuLXc0NSB7d2lkdGg6NDVweCFpbXBvcnRhbnQ7fSAuLXc1MCB7d2lkdGg6NTBweCFpbXBvcnRhbnQ7fSAuLXc1NSB7d2lkdGg6NTVweCFpbXBvcnRhbnQ7fSAuLXc2MCB7d2lkdGg6NjBweCFpbXBvcnRhbnQ7fSAuLXc2NSB7d2lkdGg6NjVweCFpbXBvcnRhbnQ7fSAuLXc3MCB7d2lkdGg6NzBweCFpbXBvcnRhbnQ7fSAuLXc3MyB7d2lkdGg6NzNweCFpbXBvcnRhbnQ7fSAuLXc3NSB7d2lkdGg6NzVweCFpbXBvcnRhbnQ7fSAuLXc4MCB7d2lkdGg6ODBweCFpbXBvcnRhbnQ7fSAuLXc4NSB7d2lkdGg6ODVweCFpbXBvcnRhbnQ7fSAuLXc4OCB7d2lkdGg6ODhweCFpbXBvcnRhbnQ7fSAuLXc5MCB7d2lkdGg6OTBweCFpbXBvcnRhbnQ7fSAuLXc5NSB7d2lkdGg6OTVweCFpbXBvcnRhbnQ7fSAuLXcxMDAge3dpZHRoOjEwMHB4IWltcG9ydGFudDt9IC4tdzExMCB7d2lkdGg6MTEwcHghaW1wb3J0YW50O30gLi13MTIwIHt3aWR0aDoxMjBweCFpbXBvcnRhbnQ7fSAuLXcxMjUge3dpZHRoOjEyNXB4IWltcG9ydGFudDt9IC4tdzEzMCB7d2lkdGg6MTMwcHghaW1wb3J0YW50O30gLi13MTM1IHt3aWR0aDoxMzVweCFpbXBvcnRhbnQ7fSAuLXcxNDAge3dpZHRoOjE0MHB4IWltcG9ydGFudDt9IC4tdzE0MyB7d2lkdGg6MTQzcHghaW1wb3J0YW50O30gLi13MTQ1IHt3aWR0aDoxNDVweCFpbXBvcnRhbnQ7fSAuLXcxNTAge3dpZHRoOjE1MHB4IWltcG9ydGFudDt9IC4tdzE3MCB7d2lkdGg6MTgwcHghaW1wb3J0YW50O30gLi13MTgwIHt3aWR0aDoxODBweCFpbXBvcnRhbnQ7fSAuLXcxODUge3dpZHRoOjE4NXB4IWltcG9ydGFudDt9IC4tdzE5MCB7d2lkdGg6MTkwcHghaW1wb3J0YW50O30gLi13MjAwIHt3aWR0aDoyMDBweCFpbXBvcnRhbnQ7fSAuLXcyMTAge3dpZHRoOjIxMHB4IWltcG9ydGFudDt9IC4tdzIxNSB7d2lkdGg6MjE1cHghaW1wb3J0YW50O30gLi13MjIwIHt3aWR0aDoyMjBweCFpbXBvcnRhbnQ7fSAuLXcyMzAge3dpZHRoOjIzMHB4IWltcG9ydGFudDt9IC4tdzI0MCB7d2lkdGg6MjQwcHghaW1wb3J0YW50O30gLi13MjUwIHt3aWR0aDoyNTBweCFpbXBvcnRhbnQ7fSAuLXcyNTUge3dpZHRoOjI1NXB4IWltcG9ydGFudDt9IC4tdzI2MCB7d2lkdGg6MjYwcHghaW1wb3J0YW50O30gLi13MjcwIHt3aWR0aDoyNzBweCFpbXBvcnRhbnQ7fSAuLXcyNzUge3dpZHRoOjI3NXB4IWltcG9ydGFudDt9IC4tdzI4MCB7d2lkdGg6MjgwcHghaW1wb3J0YW50O30gLi13MjkwIHt3aWR0aDoyOTBweCFpbXBvcnRhbnQ7fSAuLXczMDAge3dpZHRoOjMwMHB4IWltcG9ydGFudDt9IC4tdzMxNSB7d2lkdGg6MzE1cHghaW1wb3J0YW50O30gLi13MzIwIHt3aWR0aDozMjBweCFpbXBvcnRhbnQ7fSAuLXczMjUge3dpZHRoOjMyNXB4IWltcG9ydGFudDt9IC4tdzM1MCB7d2lkdGg6MzUwcHghaW1wb3J0YW50O30gLi13NDAwIHt3aWR0aDo0MDBweCFpbXBvcnRhbnQ7fSAuLXc0NTAge3dpZHRoOjQ1MHB4IWltcG9ydGFudDt9IC4tdzQ2MCB7d2lkdGg6NDUwcHghaW1wb3J0YW50O30gLi13NTAwIHt3aWR0aDo1MDBweCFpbXBvcnRhbnQ7fSAuLXc2MzAge3dpZHRoOjYzMHB4IWltcG9ydGFudDt9IC4tdzYyMCB7d2lkdGg6NjIwcHghaW1wb3J0YW50O30gLi13NjI1IHt3aWR0aDo2MjVweCFpbXBvcnRhbnQ7fSAuLXc2NzUge3dpZHRoOjY3NXB4IWltcG9ydGFudDt9IC4tdzY4MCB7d2lkdGg6NjgwcHghaW1wb3J0YW50O30gLi13NjcwIHt3aWR0aDo2NzBweCFpbXBvcnRhbnQ7fSAuLXc3MDAge3dpZHRoOjcwMHB4IWltcG9ydGFudDt9IC4tdzcyMCB7d2lkdGg6NzIwcHghaW1wb3J0YW50O30gLi13NzI1IHt3aWR0aDo3MjVweCFpbXBvcnRhbnQ7fSAuLXc3MzAge3dpZHRoOjczMHB4IWltcG9ydGFudDt9IC4tdzc1MCB7d2lkdGg6NzUwcHghaW1wb3J0YW50O30gLi13ODAwIHt3aWR0aDo4MDBweCFpbXBvcnRhbnQ7fSAuLXc5MDAge3dpZHRoOjkwMHB4IWltcG9ydGFudDt9IC4tdzkzNyB7d2lkdGg6OTM3cHghaW1wb3J0YW50O30gLi13OTQwIHt3aWR0aDo5NDBweCFpbXBvcnRhbnQ7fSAuLXc5NjAge3dpZHRoOjk2MHB4IWltcG9ydGFudDt9IC4tdzk3MCB7d2lkdGg6OTcwcHghaW1wb3J0YW50O30gLi13MTAwMCB7d2lkdGg6MTAwMHB4IWltcG9ydGFudDt9IC4tdzVwIHt3aWR0aDo1JSFpbXBvcnRhbnQ7fSAuLXcxMHAge3dpZHRoOjEwJSFpbXBvcnRhbnQ7fSAuLXcxNXAge3dpZHRoOjIwJSFpbXBvcnRhbnQ7fSAuLXcyMHAge3dpZHRoOjIwJSFpbXBvcnRhbnQ7fSAuLXdxLCAuLXcyNXAge3dpZHRoOjI1JSFpbXBvcnRhbnQ7fSAuLXczMHAge3dpZHRoOjMwJSFpbXBvcnRhbnQ7fSAuLXczNXAge3dpZHRoOjM1JSFpbXBvcnRhbnQ7fSAuLXc0MHAge3dpZHRoOjQwJSFpbXBvcnRhbnQ7fSAuLXc0NXAge3dpZHRoOjQ1JSFpbXBvcnRhbnQ7fSAuLXdoLC4tdzUwcCB7d2lkdGg6NTAlIWltcG9ydGFudDt9IC4tdzU1cCB7d2lkdGg6NTUlIWltcG9ydGFudDt9IC4tdzYwcCB7d2lkdGg6NjAlIWltcG9ydGFudDt9IC4tdzY1cCB7d2lkdGg6NjUlIWltcG9ydGFudDt9IC4tdzcwcCB7d2lkdGg6NzAlIWltcG9ydGFudDt9IC4tdzc1cCB7d2lkdGg6NzUlIWltcG9ydGFudDt9IC4tdzgwcCB7d2lkdGg6ODAlIWltcG9ydGFudDt9IC4tdzg1cCB7d2lkdGg6ODUlIWltcG9ydGFudDt9IC4tdzkwcCB7d2lkdGg6OTAlIWltcG9ydGFudDt9IC4tdzk1cCB7d2lkdGg6OTUlIWltcG9ydGFudDt9IC4td2YsLi13MTAwcCB7d2lkdGg6MTAwJSFpbXBvcnRhbnQ7fSAuLW1heC13LW5vbmUge21heC13aWR0aDpub25lIWltcG9ydGFudDt9IC4taDUge2hlaWdodDo1cHghaW1wb3J0YW50O30gLi1oNiB7aGVpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLWg3IHtoZWlnaHQ6N3B4IWltcG9ydGFudDt9IC4taDgge2hlaWdodDo4cHghaW1wb3J0YW50O30gLi1oOSB7aGVpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLWgxMCB7aGVpZ2h0OjEwcHghaW1wb3J0YW50O30gLi1oMTEge2hlaWdodDoxMXB4IWltcG9ydGFudDt9IC4taDEyIHtoZWlnaHQ6MTJweCFpbXBvcnRhbnQ7fSAuLWgxMyB7aGVpZ2h0OjEzcHghaW1wb3J0YW50O30gLi1oMTQge2hlaWdodDoxNHB4IWltcG9ydGFudDt9IC4taDE1IHtoZWlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLWgyMCB7aGVpZ2h0OjIwcHghaW1wb3J0YW50O30gLi1oMjUge2hlaWdodDoyNXB4IWltcG9ydGFudDt9IC4taDMwIHtoZWlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLWgzMiB7aGVpZ2h0OjMycHghaW1wb3J0YW50O30gLi1oMzUge2hlaWdodDozNXB4IWltcG9ydGFudDt9IC4taDQwIHtoZWlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLWg0NSB7aGVpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1oNTAge2hlaWdodDo1MHB4IWltcG9ydGFudDt9IC4taDU1IHtoZWlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLWg2MCB7aGVpZ2h0OjYwcHghaW1wb3J0YW50O30gLi1oNjUge2hlaWdodDo2NXB4IWltcG9ydGFudDt9IC4taDcwIHtoZWlnaHQ6NzBweCFpbXBvcnRhbnQ7fSAuLWg3NSB7aGVpZ2h0Ojc1cHghaW1wb3J0YW50O30gLi1oODAge2hlaWdodDo4MHB4IWltcG9ydGFudDt9IC4taDg1IHtoZWlnaHQ6ODVweCFpbXBvcnRhbnQ7fSAuLWg5MCB7aGVpZ2h0OjkwcHghaW1wb3J0YW50O30gLi1oOTUge2hlaWdodDo5NXB4IWltcG9ydGFudDt9IC4taDEwMCB7aGVpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4taDExMCB7aGVpZ2h0OjExMHB4IWltcG9ydGFudDt9IC4taDEyMCB7aGVpZ2h0OjEyMHB4IWltcG9ydGFudDt9IC4taDEzMCB7aGVpZ2h0OjEzMHB4IWltcG9ydGFudDt9IC4taDE0MCB7aGVpZ2h0OjE0MHB4IWltcG9ydGFudDt9IC4taDE1MCB7aGVpZ2h0OjE1MHB4IWltcG9ydGFudDt9IC4taDE2MCB7aGVpZ2h0OjE2MHB4IWltcG9ydGFudDt9IC4taDE3MCB7aGVpZ2h0OjE3MHB4IWltcG9ydGFudDt9IC4taDE4MCB7aGVpZ2h0OjE4MHB4IWltcG9ydGFudDt9IC4taDE5MCB7aGVpZ2h0OjE5MHB4IWltcG9ydGFudDt9IC4taDIwMCB7aGVpZ2h0OjIwMHB4IWltcG9ydGFudDt9IC4taDIyMCB7aGVpZ2h0OjIyMHB4IWltcG9ydGFudDt9IC4taDIzMCB7aGVpZ2h0OjIzMHB4IWltcG9ydGFudDt9IC4taDI0MCB7aGVpZ2h0OjI0MHB4IWltcG9ydGFudDt9IC4taDI0NSB7aGVpZ2h0OjI0NXB4IWltcG9ydGFudDt9IC4taDI0OCB7aGVpZ2h0OjI0OHB4IWltcG9ydGFudDt9IC4taDI1MCB7aGVpZ2h0OjI1MHB4IWltcG9ydGFudDt9IC4taDI1NSB7aGVpZ2h0OjI1NXB4IWltcG9ydGFudDt9IC4taDI2MCB7aGVpZ2h0OjI2MHB4IWltcG9ydGFudDt9IC4taDMwMCB7aGVpZ2h0OjMwMHB4IWltcG9ydGFudDt9IC4taDM1MCB7aGVpZ2h0OjM1MHB4IWltcG9ydGFudDt9IC4taDQwMCB7aGVpZ2h0OjQwMHB4IWltcG9ydGFudDt9IC4taDQ1MCB7aGVpZ2h0OjQ1MHB4IWltcG9ydGFudDt9IC4taDUwMCB7aGVpZ2h0OjUwMHB4IWltcG9ydGFudDt9IC4taDU1MCB7aGVpZ2h0OjU1MHB4IWltcG9ydGFudDt9IC4taDYwMCB7aGVpZ2h0OjYwMHB4IWltcG9ydGFudDt9IC4taDY1MCB7aGVpZ2h0OjY1MHB4IWltcG9ydGFudDt9IC4taDcwMCB7aGVpZ2h0OjcwMHB4IWltcG9ydGFudDt9IC4taDc1MCB7aGVpZ2h0Ojc1MHB4IWltcG9ydGFudDt9IC4taDgwMCB7aGVpZ2h0OjgwMHB4IWltcG9ydGFudDt9IC4taDkwMCB7aGVpZ2h0OjkwMHB4IWltcG9ydGFudDt9IC4taDEwMDAge2hlaWdodDoxMDAwcHghaW1wb3J0YW50O30gLi1oNXAge2hlaWdodDo1JSFpbXBvcnRhbnQ7fSAuLWgxMHAge2hlaWdodDoxMCUhaW1wb3J0YW50O30gLi1oMTVwIHtoZWlnaHQ6MTUlIWltcG9ydGFudDt9IC4taDIwcCB7aGVpZ2h0OjIwJSFpbXBvcnRhbnQ7fSAuLWhxLCAuLWgyNXAge2hlaWdodDoyNSUhaW1wb3J0YW50O30gLi1oaCwuLWg1MHAge2hlaWdodDo1MCUhaW1wb3J0YW50O30gLi1oZiwuLWgxMDBwIHtoZWlnaHQ6MTAwJSFpbXBvcnRhbnQ7fSAuLWJveC1zLWJ7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC4tYm94LWNvbnRlbnR7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gLi1mbGV4e2Rpc3BsYXk6ZmxleDt9IC4tZmxleC1jb2x1bW57ZGlzcGxheTpmbGV4O2ZsZXgtZGlyZWN0aW9uOmNvbHVtbjt9IC4tYWktY2VudGVye2FsaWduLWl0ZW1zOmNlbnRlcjt9IC4tcDAsLi1ub3BhZGRpbmcsLi1ub3BhZGRpbmdzIHtwYWRkaW5nOjA7fSAuLXAxIHtwYWRkaW5nOjFweCFpbXBvcnRhbnQ7fSAuLXAyIHtwYWRkaW5nOjJweCFpbXBvcnRhbnQ7fSAuLXAzIHtwYWRkaW5nOjNweCFpbXBvcnRhbnQ7fSAuLXA0IHtwYWRkaW5nOjRweCFpbXBvcnRhbnQ7fSAuLXA1IHtwYWRkaW5nOjVweCFpbXBvcnRhbnQ7fSAuLXA2IHtwYWRkaW5nOjZweCFpbXBvcnRhbnQ7fSAuLXA3IHtwYWRkaW5nOjdweCFpbXBvcnRhbnQ7fSAuLXA4IHtwYWRkaW5nOjhweCFpbXBvcnRhbnQ7fSAuLXA5IHtwYWRkaW5nOjlweCFpbXBvcnRhbnQ7fSAuLXAxMCB7cGFkZGluZzoxMHB4IWltcG9ydGFudDt9IC4tcDE1IHtwYWRkaW5nOjE1cHghaW1wb3J0YW50O30gLi1wMjAge3BhZGRpbmc6MjBweCFpbXBvcnRhbnQ7fSAuLXAyNSB7cGFkZGluZzoyNXB4IWltcG9ydGFudDt9IC4tcDMwIHtwYWRkaW5nOjMwcHghaW1wb3J0YW50O30gLi1wMzUge3BhZGRpbmc6MzVweCFpbXBvcnRhbnQ7fSAuLXA0MCB7cGFkZGluZzo0MHB4IWltcG9ydGFudDt9IC4tcDQ1IHtwYWRkaW5nOjQ1cHghaW1wb3J0YW50O30gLi1wNTAge3BhZGRpbmc6NTBweCFpbXBvcnRhbnQ7fSAuLXBsMCB7cGFkZGluZy1sZWZ0OjAhaW1wb3J0YW50O30gLi1wbDEge3BhZGRpbmctbGVmdDoxcHghaW1wb3J0YW50O30gLi1wbDIge3BhZGRpbmctbGVmdDoycHghaW1wb3J0YW50O30gLi1wbDMge3BhZGRpbmctbGVmdDozcHghaW1wb3J0YW50O30gLi1wbDQge3BhZGRpbmctbGVmdDo0cHghaW1wb3J0YW50O30gLi1wbDUge3BhZGRpbmctbGVmdDo1cHghaW1wb3J0YW50O30gLi1wbDYge3BhZGRpbmctbGVmdDo2cHghaW1wb3J0YW50O30gLi1wbDcge3BhZGRpbmctbGVmdDo3cHghaW1wb3J0YW50O30gLi1wbDgge3BhZGRpbmctbGVmdDo4cHghaW1wb3J0YW50O30gLi1wbDkge3BhZGRpbmctbGVmdDo5cHghaW1wb3J0YW50O30gLi1wbDEwIHtwYWRkaW5nLWxlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLXBsMTUge3BhZGRpbmctbGVmdDoxNXB4IWltcG9ydGFudDt9IC4tcGwxNiB7cGFkZGluZy1sZWZ0OjE2cHghaW1wb3J0YW50O30gLi1wbDE3IHtwYWRkaW5nLWxlZnQ6MTdweCFpbXBvcnRhbnQ7fSAuLXBsMjAge3BhZGRpbmctbGVmdDoyMHB4IWltcG9ydGFudDt9IC4tcGwyNSB7cGFkZGluZy1sZWZ0OjI1cHghaW1wb3J0YW50O30gLi1wbDMwIHtwYWRkaW5nLWxlZnQ6MzBweCFpbXBvcnRhbnQ7fSAuLXBsMzUge3BhZGRpbmctbGVmdDozNXB4IWltcG9ydGFudDt9IC4tcGw0MCB7cGFkZGluZy1sZWZ0OjQwcHghaW1wb3J0YW50O30gLi1wbDQ1IHtwYWRkaW5nLWxlZnQ6NDVweCFpbXBvcnRhbnQ7fSAuLXBsNTAge3BhZGRpbmctbGVmdDo1MHB4IWltcG9ydGFudDt9IC4tcGw1NSB7cGFkZGluZy1sZWZ0OjU1cHghaW1wb3J0YW50O30gLi1wcjAge3BhZGRpbmctcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLXByMSB7cGFkZGluZy1yaWdodDoxcHghaW1wb3J0YW50O30gLi1wcjIge3BhZGRpbmctcmlnaHQ6MnB4IWltcG9ydGFudDt9IC4tcHIzIHtwYWRkaW5nLXJpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLXByNCB7cGFkZGluZy1yaWdodDo0cHghaW1wb3J0YW50O30gLi1wcjUge3BhZGRpbmctcmlnaHQ6NXB4IWltcG9ydGFudDt9IC4tcHI2IHtwYWRkaW5nLXJpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLXByNyB7cGFkZGluZy1yaWdodDo3cHghaW1wb3J0YW50O30gLi1wcjgge3BhZGRpbmctcmlnaHQ6OHB4IWltcG9ydGFudDt9IC4tcHI5IHtwYWRkaW5nLXJpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLXByMTAge3BhZGRpbmctcmlnaHQ6MTBweCFpbXBvcnRhbnQ7fSAuLXByMTUge3BhZGRpbmctcmlnaHQ6MTVweCFpbXBvcnRhbnQ7fSAuLXByMjAge3BhZGRpbmctcmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLXByMjUge3BhZGRpbmctcmlnaHQ6MjVweCFpbXBvcnRhbnQ7fSAuLXByMzAge3BhZGRpbmctcmlnaHQ6MzBweCFpbXBvcnRhbnQ7fSAuLXByMzUge3BhZGRpbmctcmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLXByNDAge3BhZGRpbmctcmlnaHQ6NDBweCFpbXBvcnRhbnQ7fSAuLXByNDUge3BhZGRpbmctcmlnaHQ6NDVweCFpbXBvcnRhbnQ7fSAuLXByNTAge3BhZGRpbmctcmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLXByNTUge3BhZGRpbmctcmlnaHQ6NTVweCFpbXBvcnRhbnQ7fSAuLXB0MHtwYWRkaW5nLXRvcDowIWltcG9ydGFudDt9IC4tcHQxIHtwYWRkaW5nLXRvcDoxcHghaW1wb3J0YW50O30gLi1wdDIge3BhZGRpbmctdG9wOjJweCFpbXBvcnRhbnQ7fSAuLXB0MyB7cGFkZGluZy10b3A6M3B4IWltcG9ydGFudDt9IC4tcHQ0IHtwYWRkaW5nLXRvcDo0cHghaW1wb3J0YW50O30gLi1wdDUge3BhZGRpbmctdG9wOjVweCFpbXBvcnRhbnQ7fSAuLXB0NiB7cGFkZGluZy10b3A6NnB4IWltcG9ydGFudDt9IC4tcHQ3IHtwYWRkaW5nLXRvcDo3cHghaW1wb3J0YW50O30gLi1wdDgge3BhZGRpbmctdG9wOjhweCFpbXBvcnRhbnQ7fSAuLXB0OSB7cGFkZGluZy10b3A6OXB4IWltcG9ydGFudDt9IC4tcHQxMCB7cGFkZGluZy10b3A6MTBweCFpbXBvcnRhbnQ7fSAuLXB0MTUge3BhZGRpbmctdG9wOjE1cHghaW1wb3J0YW50O30gLi1wdDIwIHtwYWRkaW5nLXRvcDoyMHB4IWltcG9ydGFudDt9IC4tcHQyNSB7cGFkZGluZy10b3A6MjVweCFpbXBvcnRhbnQ7fSAuLXB0MzAge3BhZGRpbmctdG9wOjMwcHghaW1wb3J0YW50O30gLi1wdDM1IHtwYWRkaW5nLXRvcDozNXB4IWltcG9ydGFudDt9IC4tcHQ0MCB7cGFkZGluZy10b3A6NDBweCFpbXBvcnRhbnQ7fSAuLXB0NDUge3BhZGRpbmctdG9wOjQ1cHghaW1wb3J0YW50O30gLi1wdDUwIHtwYWRkaW5nLXRvcDo1MHB4IWltcG9ydGFudDt9IC4tcHQ1NSB7cGFkZGluZy10b3A6NTVweCFpbXBvcnRhbnQ7fSAuLXB0MjAwIHtwYWRkaW5nLXRvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLXBiMCB7cGFkZGluZy1ib3R0b206MCFpbXBvcnRhbnQ7fSAuLXBiMSB7cGFkZGluZy1ib3R0b206MXB4IWltcG9ydGFudDt9IC4tcGIyIHtwYWRkaW5nLWJvdHRvbToycHghaW1wb3J0YW50O30gLi1wYjMge3BhZGRpbmctYm90dG9tOjNweCFpbXBvcnRhbnQ7fSAuLXBiNCB7cGFkZGluZy1ib3R0b206NHB4IWltcG9ydGFudDt9IC4tcGI1IHtwYWRkaW5nLWJvdHRvbTo1cHghaW1wb3J0YW50O30gLi1wYjYge3BhZGRpbmctYm90dG9tOjZweCFpbXBvcnRhbnQ7fSAuLXBiNyB7cGFkZGluZy1ib3R0b206N3B4IWltcG9ydGFudDt9IC4tcGI4IHtwYWRkaW5nLWJvdHRvbTo4cHghaW1wb3J0YW50O30gLi1wYjkge3BhZGRpbmctYm90dG9tOjlweCFpbXBvcnRhbnQ7fSAuLXBiMTAge3BhZGRpbmctYm90dG9tOjEwcHghaW1wb3J0YW50O30gLi1wYjE1IHtwYWRkaW5nLWJvdHRvbToxNXB4IWltcG9ydGFudDt9IC4tcGIyMCB7cGFkZGluZy1ib3R0b206MjBweCFpbXBvcnRhbnQ7fSAuLXBiMjUge3BhZGRpbmctYm90dG9tOjI1cHghaW1wb3J0YW50O30gLi1wYjMwIHtwYWRkaW5nLWJvdHRvbTozMHB4IWltcG9ydGFudDt9IC4tcGI0MCB7cGFkZGluZy1ib3R0b206NDBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czAsLXJhZGl1czAsLXJhZDAge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMSwtcmFkaXVzMSwtcmFkMSB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXMyLC1yYWRpdXMyLC1yYWQyIHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czMsLXJhZGl1czMsLXJhZDMge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNCwtcmFkaXVzNCwtcmFkNCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM1LC1yYWRpdXM1LC1yYWQ1IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czYsLXJhZGl1czYsLXJhZDYge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzNywtcmFkaXVzNywtcmFkNyB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLWJvcmRlci1yYWRpdXM4LC1yYWRpdXM4LC1yYWQ4IHtib3JkZXItcmFkaXVzOjBweCFpbXBvcnRhbnQ7fSAtYm9yZGVyLXJhZGl1czksLXJhZGl1czksLXJhZDkge2JvcmRlci1yYWRpdXM6MHB4IWltcG9ydGFudDt9IC1ib3JkZXItcmFkaXVzMTAsLXJhZGl1czEwLC1yYWQxMCB7Ym9yZGVyLXJhZGl1czowcHghaW1wb3J0YW50O30gLi1tYXV0byB7bWFyZ2luOmF1dG8haW1wb3J0YW50O30gLi1tMCAuLW5vbWFyZ2lucywuLW5vbWFyZ2lue21hcmdpbjowIWltcG9ydGFudDt9IC4tbTEge21hcmdpbjoxcHghaW1wb3J0YW50O30gLi1tMiB7bWFyZ2luOjJweCFpbXBvcnRhbnQ7fSAuLW0zIHttYXJnaW46M3B4IWltcG9ydGFudDt9IC4tbTQge21hcmdpbjo0cHghaW1wb3J0YW50O30gLi1tNSB7bWFyZ2luOjVweCFpbXBvcnRhbnQ7fSAuLW02IHttYXJnaW46NnB4IWltcG9ydGFudDt9IC4tbTcge21hcmdpbjo3cHghaW1wb3J0YW50O30gLi1tOCB7bWFyZ2luOjhweCFpbXBvcnRhbnQ7fSAuLW05IHttYXJnaW46OXB4IWltcG9ydGFudDt9IC4tbTEwIHttYXJnaW46MTBweCFpbXBvcnRhbnQ7fSAuLW0xNSB7bWFyZ2luOjE1cHghaW1wb3J0YW50O30gLi1tMjAge21hcmdpbjoyMHB4IWltcG9ydGFudDt9IC4tbTIyIHttYXJnaW46MjJweCFpbXBvcnRhbnQ7fSAuLW0yNSB7bWFyZ2luOjI1cHghaW1wb3J0YW50O30gLi1tNXAge21hcmdpbjo1JSFpbXBvcnRhbnQ7fSAuLW0xMHAge21hcmdpbjoxMCUhaW1wb3J0YW50O30gLi1tMTVwIHttYXJnaW46MTUlIWltcG9ydGFudDt9IC4tbTIwcCB7bWFyZ2luOjIwJSFpbXBvcnRhbnQ7fSAuLW0yNXAge21hcmdpbjoyNSUhaW1wb3J0YW50O30gLi1tbGF1dG8ge21hcmdpbi1sZWZ0OmF1dG8haW1wb3J0YW50O30gLi1tbDAge21hcmdpbi1sZWZ0OjAhaW1wb3J0YW50O30gLi1tbDEge21hcmdpbi1sZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLW1sMiB7bWFyZ2luLWxlZnQ6MnB4IWltcG9ydGFudDt9IC4tbWwzIHttYXJnaW4tbGVmdDozcHghaW1wb3J0YW50O30gLi1tbDQge21hcmdpbi1sZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLW1sNSB7bWFyZ2luLWxlZnQ6NXB4IWltcG9ydGFudDt9IC4tbWw2IHttYXJnaW4tbGVmdDo2cHghaW1wb3J0YW50O30gLi1tbDcge21hcmdpbi1sZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLW1sOCB7bWFyZ2luLWxlZnQ6OHB4IWltcG9ydGFudDt9IC4tbWw5IHttYXJnaW4tbGVmdDo5cHghaW1wb3J0YW50O30gLi1tbDEwIHttYXJnaW4tbGVmdDoxMHB4IWltcG9ydGFudDt9IC4tbWwxNSB7bWFyZ2luLWxlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLW1sMjAge21hcmdpbi1sZWZ0OjIwcHghaW1wb3J0YW50O30gLi1tbDI1IHttYXJnaW4tbGVmdDoyNXB4IWltcG9ydGFudDt9IC4tbWwyNyB7bWFyZ2luLWxlZnQ6MjdweCFpbXBvcnRhbnQ7fSAuLW1sMzAge21hcmdpbi1sZWZ0OjMwcHghaW1wb3J0YW50O30gLi1tbDUwIHttYXJnaW4tbGVmdDo1MHB4IWltcG9ydGFudDt9IC4tbWw4MCB7bWFyZ2luLWxlZnQ6ODBweCFpbXBvcnRhbnQ7fSAuLW1sMTAwIHttYXJnaW4tbGVmdDoxMDBweCFpbXBvcnRhbnQ7fSAuLW1sMTMwIHttYXJnaW4tbGVmdDoxMzBweCFpbXBvcnRhbnQ7fSAuLW1sMTUwIHttYXJnaW4tbGVmdDoxNTBweCFpbXBvcnRhbnQ7fSAuLW1sMnAge21hcmdpbi1sZWZ0OjIlIWltcG9ydGFudDt9IC4tbWwzcCB7bWFyZ2luLWxlZnQ6MyUhaW1wb3J0YW50O30gLi1tbDVwIHttYXJnaW4tbGVmdDo1JSFpbXBvcnRhbnQ7fSAuLW1sMTBwIHttYXJnaW4tbGVmdDoxMCUhaW1wb3J0YW50O30gLi1tbDE1cCB7bWFyZ2luLWxlZnQ6MTUlIWltcG9ydGFudDt9IC4tbWwyMHAge21hcmdpbi1sZWZ0OjIwJSFpbXBvcnRhbnQ7fSAuLW1sMjVwIHttYXJnaW4tbGVmdDoyNSUhaW1wb3J0YW50O30gLi1tcmF1dG8ge21hcmdpbi1yaWdodDphdXRvIWltcG9ydGFudDt9IC4tbXIwIHttYXJnaW4tcmlnaHQ6MCFpbXBvcnRhbnQ7fSAuLW1yMSB7bWFyZ2luLXJpZ2h0OjFweCFpbXBvcnRhbnQ7fSAuLW1yMiB7bWFyZ2luLXJpZ2h0OjJweCFpbXBvcnRhbnQ7fSAuLW1yMyB7bWFyZ2luLXJpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLW1yNCB7bWFyZ2luLXJpZ2h0OjRweCFpbXBvcnRhbnQ7fSAuLW1yNSB7bWFyZ2luLXJpZ2h0OjVweCFpbXBvcnRhbnQ7fSAuLW1yNiB7bWFyZ2luLXJpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLW1yNyB7bWFyZ2luLXJpZ2h0OjdweCFpbXBvcnRhbnQ7fSAuLW1yOCB7bWFyZ2luLXJpZ2h0OjhweCFpbXBvcnRhbnQ7fSAuLW1yOSB7bWFyZ2luLXJpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLW1yMTAge21hcmdpbi1yaWdodDoxMHB4IWltcG9ydGFudDt9IC4tbXIxNSB7bWFyZ2luLXJpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1tcjIwIHttYXJnaW4tcmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLW1yMjUge21hcmdpbi1yaWdodDoyNXB4IWltcG9ydGFudDt9IC4tbXIzMCB7bWFyZ2luLXJpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1tcjM1IHttYXJnaW4tcmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLW1yNDAge21hcmdpbi1yaWdodDo0MHB4IWltcG9ydGFudDt9IC4tbXI0NSB7bWFyZ2luLXJpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1tcjUwIHttYXJnaW4tcmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLW1yMTAwIHttYXJnaW4tcmlnaHQ6MTAwcHghaW1wb3J0YW50O30gLi1tcjJwIHttYXJnaW4tcmlnaHQ6MiUhaW1wb3J0YW50O30gLi1tcjNwIHttYXJnaW4tcmlnaHQ6MyUhaW1wb3J0YW50O30gLi1tcjVwIHttYXJnaW4tcmlnaHQ6NSUhaW1wb3J0YW50O30gLi1tcjEwcCB7bWFyZ2luLXJpZ2h0OjEwJSFpbXBvcnRhbnQ7fSAuLW1yMTVwIHttYXJnaW4tcmlnaHQ6MTUlIWltcG9ydGFudDt9IC4tbXIyMHAge21hcmdpbi1yaWdodDoyMCUhaW1wb3J0YW50O30gLi1tcjI1cCB7bWFyZ2luLXJpZ2h0OjI1JSFpbXBvcnRhbnQ7fSAuLW10YXV0byB7bWFyZ2luLXRvcDphdXRvIWltcG9ydGFudDt9IC4tbXQtN3ttYXJnaW4tdG9wOi03cHghaW1wb3J0YW50O30gLi1tdDB7bWFyZ2luLXRvcDowIWltcG9ydGFudDt9IC4tbXQxIHttYXJnaW4tdG9wOjFweCFpbXBvcnRhbnQ7fSAuLW10MiB7bWFyZ2luLXRvcDoycHghaW1wb3J0YW50O30gLi1tdDMge21hcmdpbi10b3A6M3B4IWltcG9ydGFudDt9IC4tbXQ0IHttYXJnaW4tdG9wOjRweCFpbXBvcnRhbnQ7fSAuLW10NSB7bWFyZ2luLXRvcDo1cHghaW1wb3J0YW50O30gLi1tdDYge21hcmdpbi10b3A6NnB4IWltcG9ydGFudDt9IC4tbXQ3IHttYXJnaW4tdG9wOjdweCFpbXBvcnRhbnQ7fSAuLW10OCB7bWFyZ2luLXRvcDo4cHghaW1wb3J0YW50O30gLi1tdDkge21hcmdpbi10b3A6OXB4IWltcG9ydGFudDt9IC4tbXQxMCB7bWFyZ2luLXRvcDoxMHB4IWltcG9ydGFudDt9IC4tbXQxMSB7bWFyZ2luLXRvcDoxMXB4IWltcG9ydGFudDt9IC4tbXQxMiB7bWFyZ2luLXRvcDoxMnB4IWltcG9ydGFudDt9IC4tbXQxMyB7bWFyZ2luLXRvcDoxM3B4IWltcG9ydGFudDt9IC4tbXQxNCB7bWFyZ2luLXRvcDoxNHB4IWltcG9ydGFudDt9IC4tbXQxNSB7bWFyZ2luLXRvcDoxNXB4IWltcG9ydGFudDt9IC4tbXQyMCB7bWFyZ2luLXRvcDoyMHB4IWltcG9ydGFudDt9IC4tbXQyNSB7bWFyZ2luLXRvcDoyNXB4IWltcG9ydGFudDt9IC4tbXQyNyB7bWFyZ2luLXRvcDoyN3B4IWltcG9ydGFudDt9IC4tbXQzMCB7bWFyZ2luLXRvcDozMHB4IWltcG9ydGFudDt9IC4tbXQzNSB7bWFyZ2luLXRvcDozNXB4IWltcG9ydGFudDt9IC4tbXQ0MCB7bWFyZ2luLXRvcDo0MHB4IWltcG9ydGFudDt9IC4tbXQ1MCB7bWFyZ2luLXRvcDo1MHB4IWltcG9ydGFudDt9IC4tbXQxMTUge21hcmdpbi10b3A6MTE1cHghaW1wb3J0YW50O30gLi1tdDIwMCB7bWFyZ2luLXRvcDoyMDBweCFpbXBvcnRhbnQ7fSAuLW1iYXV0byB7bWFyZ2luLWJvdHRvbTphdXRvIWltcG9ydGFudDt9IC4tbWIwIHttYXJnaW4tYm90dG9tOjAhaW1wb3J0YW50O30gLi1tYjEge21hcmdpbi1ib3R0b206MXB4IWltcG9ydGFudDt9IC4tbWIyIHttYXJnaW4tYm90dG9tOjJweCFpbXBvcnRhbnQ7fSAuLW1iMyB7bWFyZ2luLWJvdHRvbTozcHghaW1wb3J0YW50O30gLi1tYjQge21hcmdpbi1ib3R0b206NHB4IWltcG9ydGFudDt9IC4tbWI1IHttYXJnaW4tYm90dG9tOjVweCFpbXBvcnRhbnQ7fSAuLW1iNiB7bWFyZ2luLWJvdHRvbTo2cHghaW1wb3J0YW50O30gLi1tYjcge21hcmdpbi1ib3R0b206N3B4IWltcG9ydGFudDt9IC4tbWI4IHttYXJnaW4tYm90dG9tOjhweCFpbXBvcnRhbnQ7fSAuLW1iOSB7bWFyZ2luLWJvdHRvbTo5cHghaW1wb3J0YW50O30gLi1tYjEwIHttYXJnaW4tYm90dG9tOjEwcHghaW1wb3J0YW50O30gLi1tYjE1IHttYXJnaW4tYm90dG9tOjE1cHghaW1wb3J0YW50O30gLi1tYjIwIHttYXJnaW4tYm90dG9tOjIwcHghaW1wb3J0YW50O30gLi1tYjI1IHttYXJnaW4tYm90dG9tOjI1cHghaW1wb3J0YW50O30gLi1tYjMwIHttYXJnaW4tYm90dG9tOjMwcHghaW1wb3J0YW50O30gLi1tYjUwIHttYXJnaW4tYm90dG9tOjUwcHghaW1wb3J0YW50O30gLi10b3AtMTAsIC4tdC0xMCB7dG9wOi0xMHB4IWltcG9ydGFudDt9IC4tdG9wMCwgLi10MCB7dG9wOjBweCFpbXBvcnRhbnQ7fSAuLXRvcDEsIC4tdDEge3RvcDoxcHghaW1wb3J0YW50O30gLi10b3AyLCAuLXQyIHt0b3A6MnB4IWltcG9ydGFudDt9IC4tdG9wMywgLi10MyB7dG9wOjNweCFpbXBvcnRhbnQ7fSAuLXRvcDQsIC4tdDQge3RvcDo0cHghaW1wb3J0YW50O30gLi10b3A1LCAuLXQ1IHt0b3A6NXB4IWltcG9ydGFudDt9IC4tdG9wNiwgLi10NiB7dG9wOjZweCFpbXBvcnRhbnQ7fSAuLXRvcDcsIC4tdDcge3RvcDo3cHghaW1wb3J0YW50O30gLi10b3A4LCAuLXQ4IHt0b3A6OHB4IWltcG9ydGFudDt9IC4tdG9wOSwgLi10OSB7dG9wOjlweCFpbXBvcnRhbnQ7fSAuLXRvcDEwLCAuLXQxMCB7dG9wOjEwcHghaW1wb3J0YW50O30gLi10b3AxNSwgLi10MTUge3RvcDoxNXB4IWltcG9ydGFudDt9IC4tdG9wMjAsIC4tdDIwIHt0b3A6MjBweCFpbXBvcnRhbnQ7fSAuLXRvcDI1LCAuLXQyNXt0b3A6MjVweCFpbXBvcnRhbnQ7fSAuLXRvcDMwLCAuLXQzMCB7dG9wOjMwcHghaW1wb3J0YW50O30gLi10b3AzNSwgLi10MzUge3RvcDozNXB4IWltcG9ydGFudDt9IC4tdG9wNDAsIC4tdDQwIHt0b3A6NDBweCFpbXBvcnRhbnQ7fSAuLXRvcDQ1LCAuLXQ0NSB7dG9wOjQ1cHghaW1wb3J0YW50O30gLi10b3A1MCwgLi10NTAge3RvcDo1MHB4IWltcG9ydGFudDt9IC4tdG9wMTAwLCAuLXQxMDAge3RvcDoxMDBweCFpbXBvcnRhbnQ7fSAuLXRvcDIwMCwgLi10MjAwIHt0b3A6MjAwcHghaW1wb3J0YW50O30gLi10b3A1cCwgLi10NXAge3RvcDo1JSFpbXBvcnRhbnQ7fSAuLXRvcDEwcCwgLi10MTBwIHt0b3A6MTAlIWltcG9ydGFudDt9IC4tdG9wMTVwLCAuLXQxNXAge3RvcDoxNSUhaW1wb3J0YW50O30gLi10b3AyMHAsIC4tdDIwcCB7dG9wOjIwJSFpbXBvcnRhbnQ7fSAuLXRvcDI1cCwgLi10MjVwIHt0b3A6MjUlIWltcG9ydGFudDt9IC4tdG9wNTBwLCAuLXQ1MHAge3RvcDo1MCUhaW1wb3J0YW50O30gLi10b3AxMDBwLCAuLXQxMDBwIHt0b3A6MTAwJSFpbXBvcnRhbnQ7fSAuLWxlZnQwLCAuLWwwIHtsZWZ0OjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxLCAuLWwxIHtsZWZ0OjFweCFpbXBvcnRhbnQ7fSAuLWxlZnQyLCAuLWwyIHtsZWZ0OjJweCFpbXBvcnRhbnQ7fSAuLWxlZnQzLCAuLWwzIHtsZWZ0OjNweCFpbXBvcnRhbnQ7fSAuLWxlZnQ0LCAuLWw0IHtsZWZ0OjRweCFpbXBvcnRhbnQ7fSAuLWxlZnQ1LCAuLWw1IHtsZWZ0OjVweCFpbXBvcnRhbnQ7fSAuLWxlZnQ2LCAuLWw2IHtsZWZ0OjZweCFpbXBvcnRhbnQ7fSAuLWxlZnQ3LCAuLWw3IHtsZWZ0OjdweCFpbXBvcnRhbnQ7fSAuLWxlZnQ4LCAuLWw4IHtsZWZ0OjhweCFpbXBvcnRhbnQ7fSAuLWxlZnQ5LCAuLWw5IHtsZWZ0OjlweCFpbXBvcnRhbnQ7fSAuLWxlZnQxMCwgLi1sMTAge2xlZnQ6MTBweCFpbXBvcnRhbnQ7fSAuLWxlZnQxNSwgLi1sMTUge2xlZnQ6MTVweCFpbXBvcnRhbnQ7fSAuLWxlZnQyMCwgLi1sMjAge2xlZnQ6MjBweCFpbXBvcnRhbnQ7fSAuLWxlZnQyNSwgLi1sMjV7bGVmdDoyNXB4IWltcG9ydGFudDt9IC4tbGVmdDMwLCAuLWwzMCB7bGVmdDozMHB4IWltcG9ydGFudDt9IC4tbGVmdDM1LCAuLWwzNSB7bGVmdDozNXB4IWltcG9ydGFudDt9IC4tbGVmdDQwLCAuLWw0MCB7bGVmdDo0MHB4IWltcG9ydGFudDt9IC4tbGVmdDQ1LCAuLWw0NSB7bGVmdDo0NXB4IWltcG9ydGFudDt9IC4tbGVmdDUwLCAuLWw1MCB7bGVmdDo1MHB4IWltcG9ydGFudDt9IC4tbGVmdDU1LCAuLWw1NSB7bGVmdDo1NXB4IWltcG9ydGFudDt9IC4tbGVmdDYwLCAuLWw2MCB7bGVmdDo2MHB4IWltcG9ydGFudDt9IC4tbGVmdDY1LCAuLWw2NSB7bGVmdDo2NXB4IWltcG9ydGFudDt9IC4tbGVmdDcwLCAuLWw3MCB7bGVmdDo3MHB4IWltcG9ydGFudDt9IC4tbGVmdDc1LCAuLWw3NSB7bGVmdDo3NXB4IWltcG9ydGFudDt9IC4tbGVmdDgwLCAuLWw4MCB7bGVmdDo4MHB4IWltcG9ydGFudDt9IC4tbGVmdDg1LCAuLWw4NSB7bGVmdDo4NXB4IWltcG9ydGFudDt9IC4tbGVmdDkwLCAuLWw5MCB7bGVmdDo5MHB4IWltcG9ydGFudDt9IC4tbGVmdDk1LCAuLWw5NSB7bGVmdDo5NXB4IWltcG9ydGFudDt9IC4tbGVmdDEwMCwgLi1sMTAwIHtsZWZ0OjEwMHB4IWltcG9ydGFudDt9IC4tbGVmdDE1MCwgLi1sMTUwIHtsZWZ0OjE1MHB4IWltcG9ydGFudDt9IC4tbGVmdDIwMCwgLi1sMjAwIHtsZWZ0OjIwMHB4IWltcG9ydGFudDt9IC4tbGVmdDI1MCwgLi1sMjUwIHtsZWZ0OjI1MHB4IWltcG9ydGFudDt9IC4tbGVmdDMwMCwgLi1sMzAwIHtsZWZ0OjMwMHB4IWltcG9ydGFudDt9IC4tbGVmdDVwLCAuLWw1cCB7bGVmdDo1JSFpbXBvcnRhbnQ7fSAuLWxlZnQxMHAsIC4tbDEwcCB7bGVmdDoxMCUhaW1wb3J0YW50O30gLi1sZWZ0MTVwLCAuLWwxNXAge2xlZnQ6MTUlIWltcG9ydGFudDt9IC4tbGVmdDIwcCwgLi1sMjBwIHtsZWZ0OjIwJSFpbXBvcnRhbnQ7fSAuLWxlZnQyNXAsIC4tbDI1cCB7bGVmdDoyNSUhaW1wb3J0YW50O30gLi1sZWZ0NDBwLCAuLWw0MHAge2xlZnQ6NDAlIWltcG9ydGFudDt9IC4tbGVmdDUwcCwgLi1sNTBwIHtsZWZ0OjUwJSFpbXBvcnRhbnQ7fSAuLWxlZnQxMDBwLCAuLWwxMDBwIHtsZWZ0OjEwMCUhaW1wb3J0YW50O30gLi1yaWdodDAsIC4tcjAge3JpZ2h0OjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MSwgLi1yMSB7cmlnaHQ6MXB4IWltcG9ydGFudDt9IC4tcmlnaHQyLCAuLXIyIHtyaWdodDoycHghaW1wb3J0YW50O30gLi1yaWdodDMsIC4tcjMge3JpZ2h0OjNweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NCwgLi1yNCB7cmlnaHQ6NHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1LCAuLXI1IHtyaWdodDo1cHghaW1wb3J0YW50O30gLi1yaWdodDYsIC4tcjYge3JpZ2h0OjZweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NywgLi1yNyB7cmlnaHQ6N3B4IWltcG9ydGFudDt9IC4tcmlnaHQ4LCAuLXI4IHtyaWdodDo4cHghaW1wb3J0YW50O30gLi1yaWdodDksIC4tcjkge3JpZ2h0OjlweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAsIC4tcjEwIHtyaWdodDoxMHB4IWltcG9ydGFudDt9IC4tcmlnaHQxNSwgLi1yMTUge3JpZ2h0OjE1cHghaW1wb3J0YW50O30gLi1yaWdodDIwLCAuLXIyMCB7cmlnaHQ6MjBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjUsIC4tcjI1IHtyaWdodDoyNXB4IWltcG9ydGFudDt9IC4tcmlnaHQzMCwgLi1yMzAge3JpZ2h0OjMwcHghaW1wb3J0YW50O30gLi1yaWdodDM1LCAuLXIzNSB7cmlnaHQ6MzVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NDAsIC4tcjQwIHtyaWdodDo0MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ0NSwgLi1yNDUge3JpZ2h0OjQ1cHghaW1wb3J0YW50O30gLi1yaWdodDUwLCAuLXI1MCB7cmlnaHQ6NTBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NTUsIC4tcjU1IHtyaWdodDo1NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ2MCwgLi1yNjAge3JpZ2h0OjYwcHghaW1wb3J0YW50O30gLi1yaWdodDY1LCAuLXI2NSB7cmlnaHQ6NjVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0NzAsIC4tcjcwIHtyaWdodDo3MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ3NSwgLi1yNzUge3JpZ2h0Ojc1cHghaW1wb3J0YW50O30gLi1yaWdodDgwLCAuLXI4MCB7cmlnaHQ6ODBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0ODUsIC4tcjg1IHtyaWdodDo4NXB4IWltcG9ydGFudDt9IC4tcmlnaHQ5MCwgLi1yOTAge3JpZ2h0OjkwcHghaW1wb3J0YW50O30gLi1yaWdodDk1LCAuLXI5NSB7cmlnaHQ6OTVweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MTAwLCAuLXIxMDAge3JpZ2h0OjEwMHB4IWltcG9ydGFudDt9IC4tcmlnaHQxNTAsIC4tcjE1MCB7cmlnaHQ6MTUwcHghaW1wb3J0YW50O30gLi1yaWdodDIwMCwgLi1yMjAwIHtyaWdodDoyMDBweCFpbXBvcnRhbnQ7fSAuLXJpZ2h0MjUwLCAuLXIyNTAge3JpZ2h0OjI1MHB4IWltcG9ydGFudDt9IC4tcmlnaHQ1cCwgLi1yNXAge3JpZ2h0OjUlIWltcG9ydGFudDt9IC4tcmlnaHQxMHAsIC4tcjEwcCB7cmlnaHQ6MTAlIWltcG9ydGFudDt9IC4tcmlnaHQxNXAsIC4tcjE1cCB7cmlnaHQ6MTUlIWltcG9ydGFudDt9IC4tcmlnaHQyMHAsIC4tcjIwcCB7cmlnaHQ6MjAlIWltcG9ydGFudDt9IC4tcmlnaHQyNXAsIC4tcjI1cCB7cmlnaHQ6MjUlIWltcG9ydGFudDt9IC4tcmlnaHQ1MHAsIC4tcjUwcCB7cmlnaHQ6NTAlIWltcG9ydGFudDt9IC4tcmlnaHQxMDBwLCAuLXIxMDBwIHtyaWdodDoxMDAlIWltcG9ydGFudDt9IC4tei1pbmRleDk5e3otaW5kZXg6OTkhaW1wb3J0YW50O30gLi16LWluZGV4MTAwe3otaW5kZXg6MTAwIWltcG9ydGFudDt9IC4tei1pbmRleDEwMXt6LWluZGV4OjEwMSFpbXBvcnRhbnQ7fSAuLXotaW5kZXgxMDAxLCAuemluZGV4MTAwMXsgei1pbmRleDoxMDAxIWltcG9ydGFudDsgfSAuLXotaW5kZXgzNjAwMSwgLnppbmRleDM2MDAxeyB6LWluZGV4OjM2MDAxIWltcG9ydGFudDsgfSAuLW5vLWJvcmRlci1zcGFjaW5neyBib3JkZXItc3BhY2luZzowIWltcG9ydGFudDsgfSAuLXRhYmxleyBjZWxscGFkZGluZzowIWltcG9ydGFudDsgY2VsbHNwYWNpbmc6MCFpbXBvcnRhbnQ7IGJvcmRlcjowIWltcG9ydGFudDsgfSB0YWJsZS4tdGFibGUgdGhlYWQgdGggeyBiYWNrZ3JvdW5kOiNjM2Q5ZmYhaW1wb3J0YW50OyB9IHRhYmxlLi10YWJsZSB0ciB0aCwgdGFibGUuLXRhYmxlIHRyIHRkIHsgcGFkZGluZzo0cHggMTBweCA0cHggNXB4IWltcG9ydGFudDsgfSB0ci4tYm9yZGVyLWJvdHRvbSB0ZCwgdHIuLWJvcmRlci1ib3R0b20gdGggeyBib3JkZXItYm90dG9tOjFwdCBzb2xpZCBibGFjayFpbXBvcnRhbnQ7IH0gLXdoaXRlLXNwYWNlLW5vd3JhcCB7d2hpdGUtc3BhY2U6bm93cmFwIWltcG9ydGFudDt9IC4tY3Vyc29yLWF1dG8geyBjdXJzb3I6YXV0bzsgfSAuLWN1cnNvci1kZWZhdWx0IHsgY3Vyc29yOmRlZmF1bHQ7IH0gLi1jdXJzb3Itbm9uZSB7IGN1cnNvcjpub25lOyB9IC4tY3Vyc29yLWNvbnRleHQtbWVudSB7IGN1cnNvcjpjb250ZXh0LW1lbnU7IH0gLi1jdXJzb3ItaGVscCB7IGN1cnNvcjpoZWxwOyB9IC4tY3Vyc29yLXBvaW50ZXIgeyBjdXJzb3I6cG9pbnRlcjsgfSAuLWN1cnNvci1wcm9ncmVzcyB7IGN1cnNvcjpwcm9ncmVzczsgfSAuLWN1cnNvci13YWl0IHsgY3Vyc29yOndhaXQ7IH0gLi1jdXJzb3ItY2VsbCB7IGN1cnNvcjpjZWxsOyB9IC4tY3Vyc29yLWNyb3NzaGFpciB7IGN1cnNvcjpjcm9zc2hhaXI7IH0gLi1jdXJzb3ItdGV4dCB7IGN1cnNvcjp0ZXh0OyB9IC4tY3Vyc29yLXZlcnRpY2FsLXRleHQgeyBjdXJzb3I6dmVydGljYWwtdGV4dDsgfSAuLWN1cnNvci1hbGlhcyB7IGN1cnNvcjphbGlhczsgfSAuLWN1cnNvci1jb3B5IHsgY3Vyc29yOmNvcHk7IH0gLi1jdXJzb3ItbW92ZSB7IGN1cnNvcjptb3ZlOyB9IC4tY3Vyc29yLW5vLWRyb3AgeyBjdXJzb3I6bm8tZHJvcDsgfSAuLWN1cnNvci1ub3QtYWxsb3dlZCB7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuLWN1cnNvci1hbGwtc2Nyb2xsIHsgY3Vyc29yOmFsbC1zY3JvbGw7IH0gLi1jdXJzb3ItY29sLXJlc2l6ZSB7IGN1cnNvcjpjb2wtcmVzaXplOyB9IC4tY3Vyc29yLXJvdy1yZXNpemUgeyBjdXJzb3I6cm93LXJlc2l6ZTsgfSAuLWN1cnNvci1uLXJlc2l6ZSB7IGN1cnNvcjpuLXJlc2l6ZTsgfSAuLWN1cnNvci1lLXJlc2l6ZSB7IGN1cnNvcjplLXJlc2l6ZTsgfSAuLWN1cnNvci1zLXJlc2l6ZSB7IGN1cnNvcjpzLXJlc2l6ZTsgfSAuLWN1cnNvci13LXJlc2l6ZSB7IGN1cnNvcjp3LXJlc2l6ZTsgfSAuLWN1cnNvci1ucy1yZXNpemUgeyBjdXJzb3I6bnMtcmVzaXplOyB9IC4tY3Vyc29yLWV3LXJlc2l6ZSB7IGN1cnNvcjpldy1yZXNpemU7IH0gLi1jdXJzb3ItbmUtcmVzaXplIHsgY3Vyc29yOm5lLXJlc2l6ZTsgfSAuLWN1cnNvci1udy1yZXNpemUgeyBjdXJzb3I6bnctcmVzaXplOyB9IC4tY3Vyc29yLXNlLXJlc2l6ZSB7IGN1cnNvcjpzZS1yZXNpemU7IH0gLi1jdXJzb3Itc3ctcmVzaXplIHsgY3Vyc29yOnN3LXJlc2l6ZTsgfSAuLWN1cnNvci1uZXN3LXJlc2l6ZSB7IGN1cnNvcjpuZXN3LXJlc2l6ZTsgfSAuLWN1cnNvci1ud3NlLXJlc2l6ZSB7IGN1cnNvcjpud3NlLXJlc2l6ZTsgfSAuLWZvbnQtc2l6ZTAsIC4tZnMweyBmb250LXNpemU6MCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEsIC4tZnMxeyBmb250LXNpemU6MXB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplMiwgLi1mczJ7IGZvbnQtc2l6ZToycHghaW1wb3J0YW50O30gLi1mb250LXNpemUzLCAuLWZzM3sgZm9udC1zaXplOjNweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTQsIC4tZnM0eyBmb250LXNpemU6NHB4IWltcG9ydGFudDt9IC4tZm9udC1zaXplNSwgLi1mczV7IGZvbnQtc2l6ZTo1cHghaW1wb3J0YW50O30gLi1mb250LXNpemU2LCAuLWZzNnsgZm9udC1zaXplOjZweCFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTcsIC4tZnM3eyBmb250LXNpemU6N3B4IWltcG9ydGFudDt9IC4tZm9udC1zaXplOCwgLi1mczh7IGZvbnQtc2l6ZTowLjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplOSwgLi1mczl7IGZvbnQtc2l6ZTowLjU2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxMCwgLi1mczEweyBmb250LXNpemU6MC42MjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTEsIC4tZnMxMXsgZm9udC1zaXplOjAuNjg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEyLCAuLWZzMTJ7IGZvbnQtc2l6ZTowLjc1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTEzLCAuLWZzMTN7IGZvbnQtc2l6ZTowLjgxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxNCwgLi1mczE0eyBmb250LXNpemU6MC44NzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTUsIC4tZnMxNXsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE2LCAuLWZzMTZ7IGZvbnQtc2l6ZToxcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTE3LCAuLWZzMTd7IGZvbnQtc2l6ZToxLjA2M3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUxOCwgLi1mczE4eyBmb250LXNpemU6MS4xMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMTksIC4tZnMxOXsgZm9udC1zaXplOjEuMTg4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIwLCAuLWZzMjB7IGZvbnQtc2l6ZToxLjI1cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTIxLCAuLWZzMjF7IGZvbnQtc2l6ZToxLjMxM3JlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyMiwgLi1mczIyeyBmb250LXNpemU6MS4zNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjMsIC4tZnMyM3sgZm9udC1zaXplOjEuNDM4cmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI0LCAuLWZzMjR7IGZvbnQtc2l6ZToxLjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjUsIC4tZnMyNXsgZm9udC1zaXplOjEuNTYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTI2LCAuLWZzMjZ7IGZvbnQtc2l6ZToxLjYyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUyNywgLi1mczI3eyBmb250LXNpemU6MS42ODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjgsIC4tZnMyOHsgZm9udC1zaXplOjEuNzVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMjksIC4tZnMyOXsgZm9udC1zaXplOjEuODEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTMwLCAuLWZzMzB7IGZvbnQtc2l6ZToxLjg3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzMSwgLi1mczMxeyBmb250LXNpemU6MS45MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzIsIC4tZnMzMnsgZm9udC1zaXplOjJyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzMsIC4tZnMzM3sgZm9udC1zaXplOjIuMDYzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM0LCAuLWZzMzR7IGZvbnQtc2l6ZToyLjEyNXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzNSwgLi1mczM1eyBmb250LXNpemU6Mi4xODhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzYsIC4tZnMzNnsgZm9udC1zaXplOjIuMjVyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplMzcsIC4tZnMzN3sgZm9udC1zaXplOjIuMzEzcmVtICFpbXBvcnRhbnQ7fSAuLWZvbnQtc2l6ZTM4LCAuLWZzMzh7IGZvbnQtc2l6ZToyLjM3NXJlbSAhaW1wb3J0YW50O30gLi1mb250LXNpemUzOSwgLi1mczM5eyBmb250LXNpemU6Mi40MzhyZW0gIWltcG9ydGFudDt9IC4tZm9udC1zaXplNDAsIC4tZnM0MHsgZm9udC1zaXplOjIuNXJlbSAhaW1wb3J0YW50O30gLi1yZWQtbGluZS1oMzV7IGhlaWdodDozNXB4OyBtYXJnaW4tYm90dG9tOi0zNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0yNXB4OyB9ICNicmVhZGNydW1ic3sgZm9udC1zaXplOjFyZW0gOyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjhweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBjb2xvcjojNzU3NTc1OyB9IC5Vc2VkVmRwMk1vYmlsZSAjYnJlYWRjcnVtYnN7IGZvbnQtc2l6ZTowLjlyZW07IGNvbG9yOiMyMjIyMjI7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6MTBweDsgbWFyZ2luOjA7IGxpbmUtaGVpZ2h0OjEuMjVyZW07IH0gI2JyZWFkY3J1bWJzIGF7IGNvbG9yOiM3NTc1NzU7IH0gI2NhcnByb29mX21haW4uY2FycHJvb2ZfbWFpbnsgd2lkdGg6MzQwcHg7IGhlaWdodDphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IHBhZGRpbmc6MjBweDsgZGlzcGxheTpub25lOyB6LWluZGV4Ojk5OTk7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm9yZGVyLXJhZGl1czo1cHg7IHBvc2l0aW9uOmZpeGVkOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNTAlKSB0cmFuc2xhdGVYKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTUwJSkgdHJhbnNsYXRlWCgtNTAlKTsgbGVmdDo1MCU7IHRvcDo1MCU7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mQ2xvc2VCdXR0b257IGZsb2F0OnJpZ2h0OyB0b3A6MDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZNYWluRGl2IHsgd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG87IHBhZGRpbmc6MDsgYmFja2dyb3VuZDojZmZmOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1haW5EaXYgVUx7IHdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mTWFpbkRpdiBVTCBMSSB7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBwYWRkaW5nOjAgMCA1cHggMDsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfZmllbGR7IG1hcmdpbi1ib3R0b206N3B4OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZk1lc3NhZ2V7IGZvbnQtc2l6ZToxcmVtOyBjb2xvcjojMDAwOyBmb250LXdlaWdodDpub3JtYWw7IHBhZGRpbmctYm90dG9tOjE1cHg7IHBvc2l0aW9uOnJlbGF0aXZlOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2lubmVyUGFnZURpdnsgZGlzcGxheTp0YWJsZTsgfSAjY2FycHJvb2ZfbWFpbiAuY2FycHJvb2ZfbGFiZWx7IGZvbnQtc2l6ZToxcmVtOyBjb2xvcjojNjY2NjY2OyBmb250LXdlaWdodDpib2xkOyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBtYXJnaW46MDsgdGV4dC1hbGlnbjpsZWZ0OyB3aWR0aDoxMDAlOyBsaW5lLWhlaWdodDoyNXB4OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2lucHV0eyBmb250LXNpemU6MXJlbTsgcGFkZGluZzo1cHg7IGJvcmRlcjoxcHggc29saWQgI2I5YmRjMTsgd2lkdGg6MTAwJTsgY29sb3I6Izc5Nzk3OTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlci1yYWRpdXM6NXB4OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9pbnB1dDpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6I0Y0RjRGNDsgY29sb3I6IzAwMDAwMCAhaW1wb3J0YW50OyB9ICNjYXJwcm9vZl9tYWluIC5waG9uZUlucHV0eyBmb250LXNpemU6MXJlbTsgcGFkZGluZzo1cHg7IGJvcmRlcjoxcHggc29saWQgI2I5YmRjMTsgd2lkdGg6NDdweDsgbWFyZ2luLXJpZ2h0OjVweDsgY29sb3I6Izc5Nzk3OTsgYm9yZGVyLXJhZGl1czo1cHg7IH0gI2NhcnByb29mX21haW4gLnBob25lSW5wdXQ6Zm9jdXMgeyBiYWNrZ3JvdW5kLWNvbG9yOiNGNEY0RjQ7IGNvbG9yOiMwMDAwMDA7IH0gI2NhcnByb29mX21haW4gLmNhcnByb29mX2J1dHRvbklFIHsgYm9yZGVyOjFweCBzb2xpZCAjQzgzRjQxOyBtYXJnaW46MTBweCAxMHB4IDEwcHggMDsgcGFkZGluZzozcHggMTBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZsb2F0OnJpZ2h0OyB3aWR0aDo2MHB4OyBjb2xvcjojZmZmOyBjdXJzb3I6cG9pbnRlcjsgYm9yZGVyLXRvcC1jb2xvcjojQzgzRjQxOyBib3JkZXItcmlnaHQtY29sb3I6I0M4M0Y0MTsgYm9yZGVyLWJvdHRvbS1jb2xvcjojQzgzRjQxOyBib3JkZXItbGVmdC1jb2xvcjojQzgzRjQxOyBib3JkZXItdG9wLXdpZHRoOjFweDsgYm9yZGVyLXJpZ2h0LXdpZHRoOjFweDsgYm9yZGVyLWJvdHRvbS13aWR0aDoxcHg7IGJvcmRlci1sZWZ0LXdpZHRoOjFweDsgYm9yZGVyLXRvcC1zdHlsZTpzb2xpZDsgYm9yZGVyLXJpZ2h0LXN0eWxlOnNvbGlkOyBib3JkZXItYm90dG9tLXN0eWxlOnNvbGlkOyBib3JkZXItbGVmdC1zdHlsZTpzb2xpZDsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjhweDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6OHB4OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjhweDsgYm94LXNoYWRvdzowcHggMnB4IDNweCAjNjY2OyBiYWNrZ3JvdW5kLWltYWdlOm5vbmU7IGJhY2tncm91bmQtYXR0YWNobWVudDpzY3JvbGw7IGJhY2tncm91bmQtcmVwZWF0OnJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjowIDA7IGJhY2tncm91bmQtc2l6ZTphdXRvOyBiYWNrZ3JvdW5kLW9yaWdpbjpwYWRkaW5nLWJveDsgYmFja2dyb3VuZC1jbGlwOmJvcmRlci1ib3g7IGJhY2tncm91bmQtY29sb3I6cmdiKDIwMCwgNjMsIDY1KTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b25JRUhvdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojQzgzRjQxOyBmb250LXdlaWdodDpib2xkOyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b24geyBmb250LXNpemU6MS4ycmVtOyBmbG9hdDpyaWdodDsgbWFyZ2luOjI1cHggMCAwOyBmb250LXdlaWdodDpub3JtYWw7IGxpbmUtaGVpZ2h0OjFyZW07IHBhZGRpbmc6MTBweCAxNXB4OyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtc2hhZG93OjAgLTFweCAxcHggIzY0Nzk5ZTsgYmFja2dyb3VuZDojYmIwMDAzOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgI0M4M0Y0MSAwJSwgI2JiMDAwMyAxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhciwgMCUgMCUsIDAlIDEwMCUsIGZyb20oI0M4M0Y0MSksIHRvKCNiYjAwMDMpKTsgYm9yZGVyOjFweCBzb2xpZCAjNWM2ZjkxOyAtbW96LWJvcmRlci1yYWRpdXM6NXB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NXB4OyBib3JkZXItcmFkaXVzOjVweDsgd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9ICNjYXJwcm9vZl9tYWluIC5jYXJwcm9vZl9idXR0b246aG92ZXIgeyBiYWNrZ3JvdW5kOiNDODNGNDE7IGN1cnNvcjpwb2ludGVyOyB9ICNjYXJwcm9vZl9kaWFsb2ctb3ZlcmxheSB7IGJhY2tncm91bmQ6cmdiYSgwLDAsMCwuOCk7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyByaWdodDowOyBib3R0b206MDsgei1pbmRleDo5OTk4OyBkaXNwbGF5Om5vbmU7IH0gLmNhcnByb29mLWJhZGdlLmRlc2t0b3AgeyBtYXJnaW4tbGVmdDotMTVweDsgaGVpZ2h0OjU2cHg7IG92ZXJmbG93OmhpZGRlbjsgbWFyZ2luLXRvcDotMTBweDsgZmxvYXQ6bGVmdDsgfSAucHJlUHJvY2Vzc29ySHRtbENhclBvb2ZBUElyZXBvcnQuY2FycHJvb2YtYmFkZ2UuZGVza3RvcCwgLnByZVByb2Nlc3NvckNhclBvb2ZBUElyZXBvcnRWNS5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wLCAucHJlUHJvY2Vzc29ySHRtbENhclByb29mRGVmYXVsdC5jYXJwcm9vZi1iYWRnZS5kZXNrdG9wIHsgd2lkdGg6MTA2cHg7IG1hcmdpbjoycHggNXB4IDAgMDsgZmxvYXQ6bGVmdDsgfSAjY2FycHJvb2ZfbWFpbiBpbWcgeyB3aWR0aDo1MCU7IGZsb2F0OmxlZnQ7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MCAwIDE1cHggMDsgfSAjYXNQb3BVcHsgYmFja2dyb3VuZDojZmZmZmZmOyB3aWR0aDo2MDBweDsgcGFkZGluZzozMHB4OyBjb2xvcjojMDAwMDAwOyB6LWluZGV4OjEwMDAwMjE7IH0gI2FzUG9wVXAgLnBvcHVwLXBvbGljeSB7IG1pbi1oZWlnaHQ6MTAwcHg7IG1heC1oZWlnaHQ6MTUwcHg7IG92ZXJmbG93LXk6YXV0bzsgfSAucG9wdXAtcG9saWN5IGEgeyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lOyBjb2xvcjpibHVlOyB9ICNhc1BvcFVwIC5hc1RpdGxleyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjIuMjVyZW0gOyBmb250LXdlaWdodDo7IG1hcmdpbi1ib3R0b206MjBweDsgfSAjYXNQb3BVcCAuYnRuRXhwbGljaXR7IGZsb2F0OmxlZnQ7IHBhZGRpbmctbGVmdDo3MHB4OyB3aWR0aDoxMDBweDsgfSAjYXNQb3BVcCAuYnRuSW1wbGljaXR7IGZsb2F0OnJpZ2h0OyB3aWR0aDoxMDBweDsgcGFkZGluZy1yaWdodDo3MHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50LnJldmVhbC1tb2RhbCBzcGFuLmpxVHJhbnNmb3JtUmFkaW9XcmFwcGVyeyBwYWRkaW5nOjA7IG1hcmdpbjo2cHggNHB4IDA7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLnBvcHVwLXBvbGljeSB7IG1heC1oZWlnaHQ6MTcwcHg7IG92ZXJmbG93LXk6YXV0bzsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjYXNQdXJjaGFzZUludGVudCAuYXNQSVRpdGxleyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IG1hcmdpbi1ib3R0b206MDsgcGFkZGluZy1ib3R0b206MTBweDsgZGlzcGxheTpibG9jazsgfSAjYXNQdXJjaGFzZUludGVudCAudmlUZXh0eyBjbGVhcjpib3RoOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWJvdHRvbToxMHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnN7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzo1cHg7IG1hcmdpbi1ib3R0b206M3B4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC52aU9wdGlvbnMgbGkgeyBwYWRkaW5nOjJweDsgfSAjYXNQdXJjaGFzZUludGVudCAudmlPcHRpb25zIGxpeyBjbGVhcjpib3RoOyBmb250LXNpemU6MTBwdDsgfSAjYXNQdXJjaGFzZUludGVudCBsaSBsYWJlbHsgZm9udC1zaXplOjEwcHQ7IH0gI2FzUHVyY2hhc2VJbnRlbnQgLmJ1dHRvbkRlZmF1bHRDb2xvciB7IG1hcmdpbjowIGF1dG8gNXB4OyBkaXNwbGF5OmJsb2NrOyBjbGVhcjpib3RoOyB9ICNhc1B1cmNoYXNlSW50ZW50IC5zdGVwcyB7IGxpc3Qtc3R5bGU6aW5zaWRlIG5vbmUgbm9uZTsgfSAjYXNQdXJjaGFzZUludGVudCAuc3RlcHMgPiBsaXsgYmFja2dyb3VuZDojZmZmOyBib3JkZXI6MXB4IHNvbGlkICNiYmJiYmI7IGJvcmRlci13aWR0aDowIDFweCAxcHggMDsgcGFkZGluZzoxNXB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IGZvbnQtc2l6ZToxMHB0OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc3llc25vIHsgZmxvYXQ6bGVmdDsgcGFkZGluZy1yaWdodDoxMHB4OyB3aWR0aDo5MHB4OyB9ICNhc1B1cmNoYXNlSW50ZW50IC5hc3llc3sgcGFkZGluZy1sZWZ0OjkwcHg7IHdpZHRoOjcwcHg7IH0gLmNvbnNlbnQuZGlzY2xhaW1lciB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGNvbG9yOmJsdWU7IGFsaWduLXNlbGY6Y2VudGVyOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IGN1cnNvcjpoZWxwOyB9IC5jdXN0b201X2xlZnQsIC5jdXN0b20yNV9sZWZ0LCAuY3VzdG9tMzVfbGVmdCwgLmN1c3RvbTQ1X2xlZnQsIC5jdGFfcHJpY2UsLmN0YV9jcmVkaXQsLmN0YV90ZXN0RHJpdmUsLmN0YV9ldmFsLC5jdGFfc3ZjcHJvbW8sLmN0YV9zZXJ2aWNlLC5jdGFfcGFydHMsLmN0YV90aXJlcyB7IHdpZHRoOjI4MHB4OyBoZWlnaHQ6NjFweDsgcGFkZGluZzowIDE1cHggMCA2MHB4OyBkaXNwbGF5OnRhYmxlLWNlbGw7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgZm9udC1zaXplOjFyZW0gOyBmb250LXdlaWdodDpib2xkOyBjdXJzb3I6cG9pbnRlcjsgY29sb3I6IzE5MTkxOTsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYm94MjUucG5nJykgbm8tcmVwZWF0IHNjcm9sbCBsZWZ0IHRvcDsgYmFja2dyb3VuZC1zaXplOjU4OXB4IDU1MHB4OyB9IC5jdGFfcHJpY2UuYWx0OmhvdmVyLCAuY3RhX2NyZWRpdC5hbHQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlLmFsdDpob3ZlciwgLmN0YV9ldmFsLmFsdDpob3ZlciwgLmN0YV9zZXJ2aWNlLmFsdDpob3ZlciwgLmN0YV9wYXJ0cy5hbHQ6aG92ZXIsIC5jdGFfdGlyZXMuYWx0OmhvdmVyLCAuY3RhX3N2Y3Byb21vLmFsdDpob3ZlciB7IGNvbG9yOiMxOTE5MTk7IH0gLmN1c3RvbTU1X2xlZnQsIC5jdXN0b20yNTVfbGVmdCwgLmN1c3RvbTM1NV9sZWZ0LCAuY3VzdG9tNDU1X2xlZnQsIC5jdGFfcHJpY2UuYWx0LC5jdGFfcHJpY2U6aG92ZXIsIC5jdGFfY3JlZGl0LmFsdCwgLmN0YV9jcmVkaXQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlLmFsdCwgLmN0YV90ZXN0RHJpdmU6aG92ZXIsIC5jdGFfZXZhbC5hbHQsIC5jdGFfZXZhbDpob3ZlciwgLmN0YV9zZXJ2aWNlLmFsdCwgLmN0YV9zZXJ2aWNlOmhvdmVyLCAuY3RhX3BhcnRzLmFsdCwgLmN0YV9wYXJ0czpob3ZlciwgLmN0YV90aXJlcy5hbHQsIC5jdGFfdGlyZXM6aG92ZXIsIC5jdGFfc3ZjcHJvbW8uYWx0LCAuY3RhX3N2Y3Byb21vOmhvdmVyIHsgY29sb3I6I0ZGRkZGRjsgfSAuY3RhX3ByaWNlLCAuY3RhX3ByaWNlLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246MCAwOyB9IC5jdGFfcHJpY2UuYWx0LCAuY3RhX3ByaWNlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggMDsgfSAuY3RhX2NyZWRpdCwgLmN0YV9jcmVkaXQuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC02N3B4OyB9IC5jdGFfY3JlZGl0LmFsdCwgLmN0YV9jcmVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNjdweDsgfSAuY3RhX3Rlc3REcml2ZSwgLmN0YV90ZXN0RHJpdmUuYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0xMzVweDsgfSAuY3RhX3Rlc3REcml2ZS5hbHQsIC5jdGFfdGVzdERyaXZlOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTEzNXB4OyB9IC5jdGFfZXZhbCwgLmN0YV9ldmFsLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtMjA0cHg7IH0gLmN0YV9ldmFsLmFsdCwgLmN0YV9ldmFsOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTIwNHB4OyB9IC5jdGFfc3ZjcHJvbW8sIC5jdGFfc3ZjcHJvbW8uYWx0OmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjpsZWZ0IC0yNzNweDsgfSAuY3RhX3N2Y3Byb21vLmFsdCwgLmN0YV9zdmNwcm9tbzpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0yNzNweDsgfSAuY3RhX3NlcnZpY2UsIC5jdGFfc2VydmljZS5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTM0MXB4OyB9IC5jdGFfc2VydmljZS5hbHQsIC5jdGFfc2VydmljZTpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246LTMwOXB4IC0zNDFweDsgfSAuY3RhX3BhcnRzLCAuY3RhX3BhcnRzLmFsdDpob3ZlciB7IGJhY2tncm91bmQtcG9zaXRpb246bGVmdCAtNDEwcHg7IH0gLmN0YV9wYXJ0cy5hbHQsIC5jdGFfcGFydHM6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0zMDlweCAtNDEwcHg7IH0gLmN0YV90aXJlcywgLmN0YV90aXJlcy5hbHQ6aG92ZXIgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmxlZnQgLTQ4MnB4OyB9IC5jdGFfdGlyZXMuYWx0LCAuY3RhX3RpcmVzOmhvdmVyIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMzA5cHggLTQ4MnB4OyB9IC5jdGFfc2VydmljZS5oaWRlX3RleHQsIC5jdGFfcGFydHMuaGlkZV90ZXh0LCAuY3RhX3RpcmVzLmhpZGVfdGV4dCwgLmN0YV9wcmljZS5oaWRlX3RleHQsIC5jdGFfY3JlZGl0LmhpZGVfdGV4dCwgLmN0YV90ZXN0RHJpdmUuaGlkZV90ZXh0LCAuY3RhX2V2YWwuaGlkZV90ZXh0LCAuY3RhX3N2Y3Byb21vLmhpZGVfdGV4dCB7IHRleHQtaW5kZW50Oi0yMDAwZW07IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmN1c3RvbSwgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5jdXN0b20sIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uY3VzdG9tLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5jdXN0b206aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2JsYW5rLmdpZicpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuY3VzdG9tOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9ibGFuay5naWYnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuY3VzdG9tLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5jdXN0b20sIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmN1c3RvbTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYmxhbmsuZ2lmJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmxhY2tfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuYmxhY2ssIGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsYWNrLCBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsYWNrX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibGFjaywgYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibGFja19mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsYWNrX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuYmxhY2ssIGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLmJsYWNrOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmxhY2tfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ibGFjaywgYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMuYmxhY2s6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmJsYWNrLCBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5ibGFjazpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibGFja19lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfYmx1ZV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfY3JlZGl0LmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibHVlLCBib2R5LkZSRU5DSCAuY3RhX3Rlc3REcml2ZS5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2V2YWwuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3NlcnZpY2UuYmx1ZSwgYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfcGFydHMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX2JsdWVfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmJsdWUsIGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8uYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibHVlX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfcHJpY2UuYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9jcmVkaXQuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90ZXN0RHJpdmUuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX2JsdWVfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibHVlLCBib2R5LkVOR0xJU0ggLmN0YV9wYXJ0cy5ibHVlOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfYmx1ZV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsdWUsIGJvZHkuRU5HTElTSCAuY3RhX3RpcmVzLmJsdWU6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmx1ZSwgYm9keS5FTkdMSVNIIC5jdGFfc3ZjcHJvbW8uYmx1ZTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9ibHVlX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wcmljZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcHJpY2VfcmVkX2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9jcmVkaXQucmVkLCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGVzdERyaXZlLnJlZCwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90cmFkZWluX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5yZWQsIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfcGFydHMucmVkLCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfdGlyZXMucmVkLCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RpcmVzX3JlZF9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRlJFTkNIIC5jdGFfc3ZjcHJvbW8ucmVkLCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9yZWRfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9wcmljZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9maW5hbmNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90ZXN0ZHJpdmVfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfZXZhbC5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zZXJ2aWNlLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9zZXJ2aWNlX3JlZF9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3BhcnRzLnJlZCwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMucmVkOmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfcGFydHNfcmVkX2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGlyZXMucmVkLCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9zdmNwcm9tby5yZWQsIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLnJlZDpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Byb21vc2VydmljZV9yZWRfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX3ByaWNlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfcHJpY2UuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3ByaWNlX2dyZXlfZnIucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX2NyZWRpdC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuZ3JleSwgYm9keS5GUkVOQ0ggLmN0YV90ZXN0RHJpdmUuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3Rlc3Rkcml2ZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9ldmFsLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfZXZhbC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdHJhZGVpbl9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zZXJ2aWNlLmdyZXksIGJvZHkuRlJFTkNIIC5jdGFfc2VydmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9wYXJ0cy5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3BhcnRzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wYXJ0c19ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV90aXJlcy5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3RpcmVzLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV90aXJlc19ncmV5X2ZyLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5GUkVOQ0ggLmN0YV9zdmNwcm9tby5ncmV5LCBib2R5LkZSRU5DSCAuY3RhX3N2Y3Byb21vLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfZ3JleV9mci5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3ByaWNlLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfY3JlZGl0LmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX2NyZWRpdC5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfZmluYW5jZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfdGVzdERyaXZlLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3Rlc3REcml2ZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGVzdGRyaXZlX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV9ldmFsLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX2V2YWwuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3RyYWRlaW5fZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3NlcnZpY2UuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfc2VydmljZS5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfc2VydmljZV9ncmV5X2VuLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MjgwcHg7IH0gYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuZ3JleSwgYm9keS5FTkdMSVNIIC5jdGFfcGFydHMuZ3JleTpob3ZlcnsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvYWN0aW9uX2J1dHRvbnMvQ1RBX3BhcnRzX2dyZXlfZW4ucG5nJyk7IGJhY2tncm91bmQtc2l6ZToyODBweDsgfSBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ncmV5LCBib2R5LkVOR0xJU0ggLmN0YV90aXJlcy5ncmV5OmhvdmVyeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hY3Rpb25fYnV0dG9ucy9DVEFfdGlyZXNfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmdyZXksIGJvZHkuRU5HTElTSCAuY3RhX3N2Y3Byb21vLmdyZXk6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL2FjdGlvbl9idXR0b25zL0NUQV9wcm9tb3NlcnZpY2VfZ3JleV9lbi5wbmcnKTsgYmFja2dyb3VuZC1zaXplOjI4MHB4OyB9IGJvZHkuaGVhZGluZ0NhcHNPbiBoMSwgYm9keS5oZWFkaW5nQ2Fwc09uIGgyLCBib2R5LmhlYWRpbmdDYXBzT24gaDMsIGJvZHkuaGVhZGluZ0NhcHNPbiBzcGFuLmgyLWFsdCwgYm9keS5oZWFkaW5nQ2Fwc09uIHNwYW4uaDMtYWx0LCBib2R5LmhlYWRpbmdDYXBzT24uVXNlZFNycDIgLmNhckJhc2ljcyAuY2FyVGl0bGUgLmRpdkNpdHksIGJvZHkuaGVhZGluZ0NhcHNPbiAudi1jYXJkIC5oZWFkZXItc2VjdGlvbiAub3JnLCBib2R5LmhlYWRpbmdDYXBzT24gI2Zvb3RlciAub3JnLCBib2R5LmhlYWRpbmdDYXBzT24gLmxvZ29hcmVhIC5hZGRyZXNzIC5hZHIgc3BhbjpmaXJzdC1jaGlsZCwgYm9keS5oZWFkaW5nQ2Fwc09uICNmb290ZXIgLnZpdiwgYm9keS5oZWFkaW5nQ2Fwc09uIC5zZWFyY2gtbGlua3Mtd3JhcHBlciAuc2VhcmNoLWxpbmstdGl0bGUsIGJvZHkuaGVhZGluZ0NhcHNPbiAucG9wdXBpemVyQm9keSAjdHJhZGVJbkJhclBvcHVwX2xpbmUxLCBib2R5LmhlYWRpbmdDYXBzT24gLmNhcm91c3NlbCAuY2Fyb3VzZWxUYWJzIC50YWItbGFiZWwsIGJvZHkuaGVhZGluZ0NhcHNPbiAuZm9ybUhlYWRpbmcsIGJvZHkuaGVhZGluZ0NhcHNPbiAuY29tcGFyZS12ZWhpY2xlcy1mb3JtLXRhYmxlIC50cmltLXByZXZpZXcgLmNvbXBhcmUtdGl0bGUgeyB0ZXh0LXRyYW5zZm9ybTpub25lICFpbXBvcnRhbnQ7IH0gYm9keS5oZWFkaW5nQ2Fwc09uIC5jYXJvdXNzZWwgLmNhcm91c2VsVGFicyAudGFiLWxhYmVsIHsgZm9udC1zaXplOjEuMjVyZW07IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOjEzMDFweCkgeyBib2R5LmhlYWRpbmdDYXBzT24gLmRpdkNlcnRpZmljYXRpb25CbG9jayBoMi5kZWZhdWx0IHsgZm9udC1zaXplOjEuNHJlbSAhaW1wb3J0YW50OyB9IH0gLmRpdkNlcnRpZmljYXRpb25CbG9jayBoMiBzcGFuLmljb24sIC5kaXZDZXJ0aWZpY2F0aW9uQmxvY2sgc3Bhbi5oMi1hbHQgc3Bhbi5pY29uIHsgbWluLXdpZHRoOjIwcHg7IH0gLmRpdkNlcnRpZmljYXRpb25CbG9jayAuY2VydC10aXRsZSB7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbi1sZWZ0OjIwcHg7IGZvbnQtc2l6ZToxLjNlbTsgfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIC5jZXJ0LXN1YnRpdGxlIHsgZGlzcGxheTpibG9jazsgbWFyZ2luLWxlZnQ6MjBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBjb2xvcjojNzc3OyBmb250LXNpemU6MWVtOyBtYXJnaW4tdG9wOjVweDsgfSAuZGl2Q2VydGlmaWNhdGlvbkJsb2NrIC5jZXJ0LWhpZ2hsaWdodGVkLXZhbHVlIHsgYmFja2dyb3VuZC1jb2xvcjojMDAwOyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGNvbG9yOiNGRkY7IHBhZGRpbmc6MTFweCAyMHB4IDlweCAyMHB4OyBib3JkZXItcmFkaXVzOjNweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IH0gLklubmVyQm94TGF5ZXIuZGl2Q2VydGlmaWNhdGlvbkJsb2NrLmlzT25lUm93IGltZyB7IG1heC13aWR0aDphdXRvICFpbXBvcnRhbnQ7IH0gLnVzZWRWZHBBY3Rpb25zIC5hY3Rpb24tYm94IGEuYnRuLWRlZmF1bHQgeyB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7IGRpc3BsYXk6YmxvY2sgIWltcG9ydGFudDsgbWFyZ2luLWJvdHRvbToxMHB4ICFpbXBvcnRhbnQ7IH0gLmN0YV9wcmljZTpob3ZlciwgLmN0YV9jcmVkaXQ6aG92ZXIsIC5jdGFfdGVzdERyaXZlOmhvdmVyLCAuY3RhX2V2YWw6aG92ZXIsIC5jdGFfc2VydmljZTpob3ZlciwgLmN0YV9wYXJ0czpob3ZlciwgLmN0YV90aXJlczpob3ZlciwgLmN0YV9zdmNwcm9tbzpob3Zlcnsgb3BhY2l0eTowLjc1OyB9IC5zZWFyY2hfY2VydF9nZW5lcmljeyBoZWlnaHQ6NDRweDsgbWFyZ2luOjJweCA1cHggMCAwOyBmbG9hdDpsZWZ0OyBtYXJnaW4tdG9wOi0wcHg7IH0gI25ld0NhckluVXNlZFBhZ2V7IG1hcmdpbi10b3A6LTJweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGRpc3BsYXk6bm9uZTsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IH0gI25ld0NhckluVXNlZFBhZ2UgLmJveDI4OF90b3B7IGJhY2tncm91bmQ6dXJsKCcvaW1hZ2VzL3JpZ2h0X2JveDRfdG9wLnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQ7IH0gI25ld0NhckluVXNlZFBhZ2UgLmJveDI4ODBfbWlkeyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9yaWdodF9ib3g0X21pZC5wbmcnKSByZXBlYXQteSBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQgfSAjbmV3Q2FySW5Vc2VkUGFnZSAuYm94Mjg4X2Zvb3Rlcl9xc3sgYmFja2dyb3VuZCA6dXJsKCcvaW1hZ2VzL3JpZ2h0X2JveDRfZm9vdGVyLnBuZycpIG5vLXJlcGVhdCBzY3JvbGwgbGVmdCB0b3AgdHJhbnNwYXJlbnQgfSAjbmV3Q2FySW5Vc2VkUGFnZV9zY3JhdGNoUHJpY2V7IHdpZHRoOjExMHB4OyBoZWlnaHQ6MzVweDsgZmxvYXQ6cmlnaHQ7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0Oi04M3B4OyBkaXNwbGF5Om5vbmU7IH0gI25ld0NhckluVXNlZFBhZ2VfdGl0bGV7IGRpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7Zm9udC1zaXplOjAuOTM4cmVtIDtmb250LXdlaWdodDpib2xkO3RleHQtZGVjb3JhdGlvbjpub25lOyB9IHVsI2NyZWRpdF9kcml2ZXRyYWluLCB1bCNjcmVkaXRfZnVlbHR5cGUsIHVsI2NyZWRpdF9ib2R5VHlwZXMgeyBsaXN0LXN0eWxlOm5vbmU7IGZsb2F0OmxlZnQ7IHdpZHRoOjMzJTsgcGFkZGluZy1ib3R0b206MTBweDsgfSB1bCNjcmVkaXRfZHJpdmV0cmFpbiBsaSA+IGxhYmVsLCB1bCNjcmVkaXRfZnVlbHR5cGUgbGkgPiBsYWJlbCwgdWwjY3JlZGl0X2JvZHlUeXBlcyBsaSA+IGxhYmVseyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzI0MjQyNDsgZmxvYXQ6bm9uZTsgfSB1bCNjcmVkaXRfZHJpdmV0cmFpbiBsaSA+IGRpdiwgdWwjY3JlZGl0X2Z1ZWx0eXBlIGxpID4gZGl2LCB1bCNjcmVkaXRfYm9keVR5cGVzIGxpID4gZGl2eyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nLWJvdHRvbTo1cHg7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgZm9udC1zaXplOjAuODEzcmVtIDsgY29sb3I6IzAwMDAwMDsgZmxvYXQ6bm9uZTsgfSB1bCNjcmVkaXRfZHJpdmV0cmFpbiBsaSA+IGxhYmVsID4gc3BhbiwgdWwjY3JlZGl0X2Z1ZWx0eXBlIGxpID4gbGFiZWwgPiBzcGFuLCB1bCNjcmVkaXRfYm9keVR5cGVzIGxpID4gbGFiZWwgPiBzcGFueyBtYXJnaW4tcmlnaHQ6OHB4OyBtYXJnaW4tdG9wOjBweDsgfSAjY3JlZGl0X3ZpX2FkdmFuY2VkIGxhYmVseyBmbG9hdDpsZWZ0OyB9ICNjcmVkaXRfdmlfYWR2YW5jZWQgbGFiZWwgZGl2LmxhYmVseyBmbG9hdDpsZWZ0OyBsaW5lLWhlaWdodDozMnB4OyBtYXJnaW4tcmlnaHQ6NnB4OyB3aWR0aDoyMDBweDsgdGV4dC1hbGlnbjpyaWdodDsgZm9udC13ZWlnaHQ6bm9ybWFsOyBmb250LXNpemU6MC44MTNyZW0gOyBjb2xvcjojMjQyNDI0OyB9IC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZCAuYm94Ml9kZXRhaWxzX3RleHQsIC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZCAuYm94Ml9kZXRhaWxzX3RleHQyNSBzcGFuLCAuZGV0YWlsc19ib3ggLmJveDJfZGV0YWlsc19taWQgLmJveDJfZGV0YWlsc190ZXh0IHNwYW57IGNvbG9yOiMwMDJjNWY7IH0gLnVzcC1jb2xvciB7IGNvbG9yOiMwMDJjNWY7IH0gLm15Y2Fyb3VzZWxfdGR7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjU2MHB4OyBvdmVyZmxvdzpoaWRkZW47IG1hcmdpbi1sZWZ0OjMwcHg7IG1hcmdpbi10b3A6MTBweDsgfSAudmVoaWNsZUNhcm91c2VseyB3aWR0aDoxOTBweDsgfSAuZGV0YWlsc19ib3gsIC5kZXRhaWxzX2JveCAuYm94Ml9kZXRhaWxzX21pZEV4IHsgYmFja2dyb3VuZDojYjViNWI0OyB9ICNleHRDb2xvclNlbGVjdC5maXhlZFdpZHRoICwgI2ludENvbG9yU2VsZWN0LmZpeGVkV2lkdGggeyB3aWR0aDoyMzBweDsgfSAuY29sb3JDaG9pY2V7IGhlaWdodDozMXB4OyB3aWR0aDozMXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1pbmRlbnQ6LTIwMDBlbTsgbGluZS1oZWlnaHQ6MzFweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgZm9udC13ZWlnaHQ6Ym9sZDsgZmxvYXQ6bGVmdDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyBtYXJnaW46MnB4OyBjb2xvcjojZmZmOyB9IC5jb2xvckNob2ljZS5jaG9zZW4geyB0ZXh0LWluZGVudDowOyB9IC5jb2xvckNob2ljZS50YW4geyBiYWNrZ3JvdW5kLWNvbG9yOiNkMmI0OGM7IH0gLmNvbG9yQ2hvaWNlLmJsYWNrIHsgYmFja2dyb3VuZC1jb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS5nb2xkIHsgYmFja2dyb3VuZC1jb2xvcjojYjI5NjAwOyB9IC5jb2xvckNob2ljZS5icm93biB7IGJhY2tncm91bmQtY29sb3I6IzY2MzMwZTsgfSAuY29sb3JDaG9pY2UuZ3JlZW4geyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDk5MDA7IH0gLmNvbG9yQ2hvaWNlLmdyYXkgeyBiYWNrZ3JvdW5kLWNvbG9yOiM5Nzk3OTc7IH0gLmNvbG9yQ2hvaWNlLmdyZXkgeyBiYWNrZ3JvdW5kLWNvbG9yOiM5Nzk3OTc7IH0gLmNvbG9yQ2hvaWNlLm9yYW5nZSB7IGJhY2tncm91bmQtY29sb3I6I2U2OTQwMDsgfSAuY29sb3JDaG9pY2Uuc2lsdmVyIHsgYmFja2dyb3VuZC1jb2xvcjojYzBjMGMwOyBjb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS5tYXV2ZSB7IGJhY2tncm91bmQtY29sb3I6I2Q0NzNkNDsgfSAuY29sb3JDaG9pY2UucmVkIHsgYmFja2dyb3VuZC1jb2xvcjojY2MwMDAwOyB9IC5jb2xvckNob2ljZS53aGl0ZSB7IGJhY2tncm91bmQtY29sb3I6I0ZGRkZGRjsgY29sb3I6IzAwMDAwMDsgfSAuY29sb3JDaG9pY2UueWVsbG93IHsgYmFja2dyb3VuZC1jb2xvcjojZjBjMDAwOyBjb2xvcjojMDAwMDAwOyB9IC5jb2xvckNob2ljZS5ibHVlIHsgYmFja2dyb3VuZC1jb2xvcjojMTkxOWM0OyB9IC5jb2xvckNob2ljZS5jb3BwZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiNBRjQ3NDQ7IH0gLmNvbG9yQ2hvaWNlLnB1cnBsZSB7IGJhY2tncm91bmQtY29sb3I6IzUzMTVCMjsgfSAubGlnaHQtZ3JheSB7IGJhY2tncm91bmQtY29sb3I6IzRiNGM0YzsgY29sb3I6IzAwMDAwMDt9IGEuY29sb3JDaG9pY2UgeyBjb2xvcjojZmZmOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSB0ci5ib3JkZXJfYm90dG9tX2xpbmUgdGQsIHRyLmJvcmRlcl9ib3R0b21fbGluZSB0aCB7IGJvcmRlci1ib3R0b206MXB0IHNvbGlkIGJsYWNrOyB9IC5ib3JkZXJfYm94eyBib3JkZXItcmFkaXVzOjVweDsgbWFyZ2luLWJvdHRvbTo1cHg7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgLW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IGJveC1zaGFkb3c6bm9uZTsgY2xlYXI6Ym90aDsgfSAuaG9tZXBhZ2UgLmJvcmRlcl9ib3h7IGJveC1zaGFkb3c6bm9uZSFpbXBvcnRhbnQ7IH0gI2hvbWVfc29jaWFsVGltZWxpbmV7IGJhY2tncm91bmQtY29sb3I6dmFyKC0taG9tZXBhZ2Utc29jaWFsLWJnLWNvbG9yKTsgfSAjZm9vdGVyV3JhcHBlcnsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDowcHg7IGNsZWFyOmJvdGg7IHBhZGRpbmctdG9wOjE1cHg7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZC1jb2xvcjojZTRkY2QzOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IH0gI2Zvb3RlcldyYXBwZXIgc3ZnIHsgZmlsbDp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5jdXN0b21mb3JtX3N1Ym1pdHsgbWFyZ2luLXRvcDoyMHB4OyBtYXJnaW4tYm90dG9tOjIwcHg7IH0gLnNlZU9wdGlvbnN7IGRpc3BsYXk6bm9uZTsgfSAuc3RyaWtlLXByaWNlLCAuc3RyaWtlLXByaWNlLWJsYWNrLCAuc3RyaWtlLXByaWNlLXdoaXRlIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5zdHJpa2UtcHJpY2U6OmJlZm9yZSwgLnN0cmlrZS1wcmljZS1ibGFjazo6YmVmb3JlLCAuc3RyaWtlLXByaWNlLXdoaXRlOjpiZWZvcmUgeyBjb250ZW50OiIiOyBoZWlnaHQ6MnB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjQwJTsgLW1vei10cmFuc2Zvcm06cm90YXRlKDdkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IHRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IHRyYW5zZm9ybS1vcmlnaW46NTAlIDUwJSAwOyB3aWR0aDoxMDAlOyB9IC5zdHJpa2UtcHJpY2UuLXRoaW46OmJlZm9yZXsgaGVpZ2h0OjFweDsgfSAuc3RyaWtlLXByaWNlOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgIzAwMDsgfSAuc3RyaWtlLXByaWNlLWJsYWNrOjpiZWZvcmUgeyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgYmxhY2s7IH0gLnN0cmlrZS1wcmljZS13aGl0ZTo6YmVmb3JlIHsgYmFja2dyb3VuZDpub25lIHJlcGVhdCBzY3JvbGwgMCAwIHdoaXRlOyB9IC5ibHVyLXByaWNlIHsgLXdlYmtpdC1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtbW96LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tcy1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtby1maWx0ZXI6Ymx1cigwLjE1ZW0pOyBmaWx0ZXI6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIGhlaWdodD0nMCcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz48ZmlsdGVyIGlkPSdzdmdCbHVyJyB4PSctNSUnIHk9Jy01JScgd2lkdGg9JzExMCUnIGhlaWdodD0nMTEwJSc+PGZlR2F1c3NpYW5CbHVyIGluPSdTb3VyY2VHcmFwaGljJyBzdGREZXZpYXRpb249JzUnLz4jc3ZnQmx1ciIpOyBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJsdXIoUGl4ZWxSYWRpdXM9JzUnKTsgZmlsdGVyOmJsdXIoMC4xNWVtKTsgfSAubGVmdF9ib3h7IGJhY2tncm91bmQtY29sb3I6cmdiKDI1NSwyNTUsMjU1KTsgLW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQWxwaGEoT3BhY2l0eT0xMDApOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsMSk7IG1hcmdpbi10b3A6MTBweCA7IHBhZGRpbmc6MTBweCAwIDEwcHg7IGZsb2F0OmxlZnQ7IGhlaWdodDphdXRvOyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzpub25lOyB9IC5idG4tZGVmYXVsdCwgLmJ0bi1zbSwgLmJ0bi1sZywuY3VzdG9tZm9ybV9zdWJtaXQsLnN1Ym1pdHsgLW1vei1ib3JkZXItcmFkaXVzOjNweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweDsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tY2VydC10eHQtdHJhbnNmb3JtLCB2YXIoLS10eHQtdXBwZXIpKTsgfSAuYnRuLWRlZmF1bHR7IGJhY2tncm91bmQtY29sb3I6I2U0ZGNkMzsgfSAuYnRuLWRlZmF1bHQsIC5zdWJtaXQsIC5jdXN0b21mb3JtX3N1Ym1pdCwgaW5wdXRbdHlwZT1idXR0b25dLmJ0bi1kZWZhdWx0LCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLWRlZmF1bHQgeyBwYWRkaW5nOjExcHggMjBweCA5cHggMjBweDsgYm9yZGVyLXJhZGl1czozcHg7IH0gLmJ0bi1zbSwgaW5wdXRbdHlwZT1idXR0b25dLmJ0bi1zbSwgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1zbSB7IGZvbnQtc2l6ZTppbmhlcml0IWltcG9ydGFudDsgcGFkZGluZzo0cHggMTBweCFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6M3B4IWltcG9ydGFudDsgfSAuYnRuLWxnLCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWxnLCBpbnB1dFt0eXBlPXN1Ym1pdF0uYnRuLWxnIHsgZm9udC1zaXplOjEuMDYzcmVtIDsgcGFkZGluZzoxMnB4IDUwcHg7IGJvcmRlci1yYWRpdXM6NnB4OyBmb250LXdlaWdodDpib2xkOyB9IC5idG4tZGVmYXVsdDpmb2N1cywgLmN1c3RvbWZvcm1fc3VibWl0OmZvY3VzLCAuYnRuLXNtOmZvY3VzLCAuYnRuLWxnOmZvY3VzLCAjZXhpdF9wb3B1cF95ZXM6Zm9jdXMsICNleGl0X3BvcHVwX25vOmZvY3VzIHsgb3V0bGluZTpub25lOyB9IC5idG4tZGVmYXVsdC5hcHBseS1jcmVkaXQgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgdmVydGljYWwtYWxpZ246dG9wOyB3b3JkLXdyYXA6bm9ybWFsOyB3aWR0aDoxMDBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmc6M3B4IDVweDsgZm9udC1zaXplOjAuNzVyZW0gOyB9IC5idG4tZGVmYXVsdCwgLmN1c3RvbWZvcm1fc3VibWl0LCBpbnB1dFt0eXBlPWJ1dHRvbl0uYnRuLWRlZmF1bHQsIGlucHV0W3R5cGU9c3VibWl0XS5idG4tZGVmYXVsdHsgZm9udC1zaXplOjAuOHJlbTsgfSAuYnRuLWRlZmF1bHQsIC5idG4tc20sLmJ0bi1sZywgLnN1Ym1pdCwgI3NsaWRlaXQgaW5wdXQuc2VuZCwgLmN1c3RvbWZvcm1fc3VibWl0IHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgdGV4dC1zaGFkb3c6bm9uZTsgfSAuYnRuLWRlZmF1bHQuYnRuLWJnLXNhbWUgeyBib3JkZXItY29sb3I6I2U0ZGNkMzsgfSAuYnRuLWRlZmF1bHQuYnRuLWJnLXNhbWU6aG92ZXIgeyBib3JkZXItY29sb3I6IzAwN2ZhNTsgfSAuYnRuLWRlZmF1bHQ6aG92ZXIsIC5jdXN0b21mb3JtX3N1Ym1pdDpob3ZlciwgLmJ0bi1zbTpob3ZlciwgLmJ0bi1sZzpob3ZlciwgLnN1Ym1pdDpob3ZlciwgI3NsaWRlaXQgaW5wdXQuc2VuZDpob3ZlciB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbWVudS1ob3Zlci1iZy1jb2xvcik7IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1zdHlsZTpzb2xpZDsgYm9yZGVyLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IH0gLmJ0bi1kZWZhdWx0LnByb21vY29sb3IsIC5idG4tc20ucHJvbW9jb2xvciwgLmJ0bi1sZy5wcm9tb2NvbG9yIHsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmOyBib3JkZXI6MXB4IHNvbGlkICMwMDJjNWY7IGNvbG9yOiNmZmZmZmY7IH0gLmJ0bi1kZWZhdWx0LnByb21vY29sb3I6aG92ZXIsIC5idG4tc20ucHJvbW9jb2xvcjpob3ZlciwgLmJ0bi1sZy5wcm9tb2NvbG9yOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGNvbG9yOiMwMDJjNWY7IH0gLmJ0bi1kZWZhdWx0LmJsYWNrLCAuYnRuLXNtLmJsYWNrLCAuYnRuLWxnLmJsYWNrIHsgYmFja2dyb3VuZC1jb2xvciA6IzAwMDAwMDsgYm9yZGVyIDoxcHggc29saWQgIzAwMDAwMDsgY29sb3IgOiNmZmZmZmY7IH0gLmJ0bi1kZWZhdWx0LmJsYWNrLndpdGhib3JkZXIsIC5idG4tc20uYmxhY2sud2l0aGJvcmRlciwgLmJ0bi1sZy5ibGFjay53aXRoYm9yZGVyIHsgYm9yZGVyIDoxcHggc29saWQgI2ZmZmZmZjsgfSAuYnRuLWRlZmF1bHQuYmxhY2s6aG92ZXIsIC5idG4tc20uYmxhY2s6aG92ZXIsIC5idG4tbGcuYmxhY2s6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yIDojZmZmZmZmOyBjb2xvcjojMDAwMDAwOyB9IC5idG4tZGVmYXVsdC5ubywgLmJ0bi1zbS5ubywgLmJ0bi1sZy5ubyB7IGJhY2tncm91bmQtY29sb3I6I0ZGRjsgYm9yZGVyOjFweCBzb2xpZCAjNTU1OyBjb2xvcjojMDAwOyB9IC5idG4tZGVmYXVsdC5ubzpob3ZlciwgLmJ0bi1zbS5ubzpob3ZlciwgLmJ0bi1sZy5ubzpob3ZlcnsgYmFja2dyb3VuZC1jb2xvcjojNjY2NjY2OyBib3JkZXI6MXB4IHNvbGlkICM2NjY2NjY7IGNvbG9yOiNGRkZGRkY7IH0gLmJ0bi1kZWZhdWx0LmludmVydCwgLmJ0bi1zbS5pbnZlcnQsIC5idG4tbGcuaW52ZXJ0LCAuYnRuLWRlZmF1bHQuaW52ZXJ0LmZsYXQsIC5idG4tc20uaW52ZXJ0LmZsYXQsIC5idG4tbGcuaW52ZXJ0LmZsYXQgeyBiYWNrZ3JvdW5kOiB2YXIoLS10YWItdGV4dC1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tdGFiLXRleHQtY29sb3IpOyBjb2xvcjp2YXIoLS10YWItY29sb3IpOyBib3gtc2hhZG93Om5vbmU7IH0gLmJ0bi1kZWZhdWx0LmludmVydDpob3ZlciwgLmJ0bi1zbS5pbnZlcnQ6aG92ZXIsIC5idG4tbGcuaW52ZXJ0OmhvdmVyLCAuYnRuLWRlZmF1bHQuaW52ZXJ0LmZsYXQ6aG92ZXIsIC5idG4tc20uaW52ZXJ0LmZsYXQ6aG92ZXIsIC5idG4tbGcuaW52ZXJ0LmZsYXQ6aG92ZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi1jb2xvcik7IGJvcmRlci1jb2xvcjp2YXIoLS10YWItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgfSAuYnRuLWRlZmF1bHQucmVkLCAuYnRuLXNtLnJlZCwgLmJ0bi1sZy5yZWQgeyBiYWNrZ3JvdW5kOiNmZjMzMzMhaW1wb3J0YW50OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZjMzMzMhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICNmNTFhMWEhaW1wb3J0YW50OyBjb2xvcjojRkZGRkZGIWltcG9ydGFudDsgfSAuYnRuLWRlZmF1bHQucmVkOmhvdmVyLCAuYnRuLXNtLnJlZDpob3ZlciwgLmJ0bi1sZy5yZWQ6aG92ZXJ7IGJhY2tncm91bmQ6IzMzMzMzMyFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6IzMzMzMzMyFpbXBvcnRhbnQ7IGJvcmRlcjoxcHggc29saWQgIzMzMzMzMyFpbXBvcnRhbnQ7IGNvbG9yOiNGRkZGRkYhaW1wb3J0YW50OyB9IC5idG4tZGVmYXVsdC53aGl0ZSwgLmJ0bi1zbS53aGl0ZSwgLmJ0bi1sZy53aGl0ZSB7IGJhY2tncm91bmQ6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCAjMDAwOyBjb2xvcjojMDAwMDAwOyBib3gtc2hhZG93Om5vbmU7IH0gLmRlYWxlci1zZWxlY3Qtd3JhcHBlciB7IGRpc3BsYXk6Z3JpZDsgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOjFmciAxZnI7IGNvbHVtbi1nYXA6MS41cmVtOyByb3ctZ2FwOjAuNXJlbTsgZ3JpZC1hdXRvLWNvbHVtbnM6MC41ZnI7IG1hcmdpbi1ib3R0b206MTBweDsgbWFyZ2luLXRvcDoxNXB4OyB9ICNtaW5pZm9ybSAuZGVhbGVyLXNlbGVjdC13cmFwcGVyeyBtYXJnaW4tbGVmdDoyMHB4OyBtYXJnaW4tcmlnaHQ6MjBweDsgfSAuZGVhbGVyLXNlbGVjdC13cmFwcGVyIC5idG4geyB0ZXh0LXdyYXA6YXV0bzsgdGV4dC1hbGlnbjpsZWZ0OyBwYWRkaW5nLWxlZnQ6MTBweDsgdHJhbnNpdGlvbjowLjJzIGVhc2UtaW4tb3V0OyBmb250LXdlaWdodDpub3JtYWw7IH0gLmRlYWxlci1zZWxlY3Qtd3JhcHBlciAuYnRuLmZvY3VzZWQsIC5kZWFsZXItc2VsZWN0LXdyYXBwZXIgLmJ0bjpmb2N1cyB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItc3R5bGU6c29saWQ7IGJvcmRlci1jb2xvcjp2YXIoLS10YWItY29sb3IpOyBjb2xvcjp2YXIoLS10YWItY29sb3IpOyBib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLDAsMCwuMTc1KTsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMnB4KTsgfSAuYXBwbHktY3JlZGl0IHsgLW1vei1ib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggIzBkMzk2YzsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDBweCAtM3B4IDdweCAwcHggIzBkMzk2YzsgYm94LXNoYWRvdzppbnNldCAwcHggLTNweCA3cHggMHB4ICMwZDM5NmM7IGJhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsIGxlZnQgdG9wLCBsZWZ0IGJvdHRvbSwgY29sb3Itc3RvcCgwLjA1LCAjMzM1ZjkyKSwgY29sb3Itc3RvcCgxLCAjMDAyYzVmKSk7IGJhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCAjMzM1ZjkyIDUlLCAjMDAyYzVmIDEwMCUpOyBiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwgIzMzNWY5MiA1JSwgIzAwMmM1ZiAxMDAlKTsgYmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCAjMzM1ZjkyIDUlLCAjMDAyYzVmIDEwMCUpOyBiYWNrZ3JvdW5kOi1tcy1saW5lYXItZ3JhZGllbnQodG9wLCAjMzM1ZjkyIDUlLCAjMDAyYzVmIDEwMCUpOyBiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sICMzMzVmOTIgNSUsICMwMDJjNWYgMTAwJSk7IGZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmMzMzMycsIGVuZENvbG9yc3RyPScjREIwMDAwJyxHcmFkaWVudFR5cGU9MCk7IGJhY2tncm91bmQtY29sb3I6IzMzNWY5MjsgYm9yZGVyOjFweCBzb2xpZCAjMWE0Njc5OyB9IC5hcHBseS1jcmVkaXQ6aG92ZXIgeyBiYWNrZ3JvdW5kOi13ZWJraXQtZ3JhZGllbnQobGluZWFyLCBsZWZ0IHRvcCwgbGVmdCBib3R0b20sIGNvbG9yLXN0b3AoMC4wNSwgIzMzNWY5MiksIGNvbG9yLXN0b3AoMSwgIzAwMmM1ZikpOyBiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwgIzAwMmM1ZiA1JSwgIzMzNWY5MiAxMDAlKTsgYmFja2dyb3VuZDotd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsICMwMDJjNWYgNSUsICMzMzVmOTIgMTAwJSk7IGJhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwgIzAwMmM1ZiA1JSwgIzMzNWY5MiAxMDAlKTsgYmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwgIzAwMmM1ZiA1JSwgIzMzNWY5MiAxMDAlKTsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjMDAyYzVmIDUlLCAjMzM1ZjkyIDEwMCUpOyBmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmZjMzMzMnLCBlbmRDb2xvcnN0cj0nI0RCMDAwMCcsR3JhZGllbnRUeXBlPTApOyBiYWNrZ3JvdW5kLWNvbG9yOiMzMzVmOTI7IH0gLm9mZmVyLWJ0bnsgY29sb3I6dmFyKC0tYnRuLXR4dC1jb2wsIHZhcigtLXVzZWQtb2ZmZXItYnRuLXRleHQtY29sb3IsICNmZmYpKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idG4tYmctY29sLCB2YXIoLS11c2VkLW9mZmVyLWJ0bi1iZy1jb2xvciwgdmFyKC0tcHJvbW8tY29sb3IpKSk7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpICp7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSA6aXMoLm5ld1ZkcEFjdGlvbnMsIC51c2VkVmRwQWN0aW9ucykgLnByb21vQlROeyB0ZXh0LWFsaWduOmxlZnQ7IH0gOmlzKC5uZXdWZHBBY3Rpb25zLCAudXNlZFZkcEFjdGlvbnMpIC5wcm9tb0JUTjo6YWZ0ZXJ7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nLCBzZXJpZjsgZm9udC13ZWlnaHQ6OTAwOyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zLCAudXNlZC1kZXRhaWxzLCAubmV3LWRldGFpbHMpIC5wcm9tb0JUTiA+IHNwYW4uZmF7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MS41ZW07IGhlaWdodDoxLjVlbTsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBjb2xvcjppbmhlcml0OyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAuY29tcGxldGVkLnByb21vQlROOjphZnRlcnsgY29udGVudDoiXGYwMGMiOyBjb2xvcjppbmhlcml0OyB9IDppcygubmV3VmRwQWN0aW9ucywgLnVzZWRWZHBBY3Rpb25zKSAuY29tcGxldGVkLnByb21vQlROIHNwYW4uZmF7IGNvbG9yOiMwMDA7IH0gLmdyYXlib3ggLnByb21vQlROLCAudXNlZFZkcEFjdGlvbnMgLnByb21vQlROeyBib3JkZXItcmFkaXVzOjNweCFpbXBvcnRhbnQ7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IHRleHQtYWxpZ246dW5zZXQ7IGxpbmUtaGVpZ2h0OjEuNXJlbTsgfSAuZ3JheWJveCAuYnV0dG9uX3VuZGVyIC5wcm9tb0JUTiBzdGFjay1sYywgLm5ld1ZkcEFjdGlvbnMgLmJ1dHRvbl91bmRlciAucHJvbW9CVE4gc3RhY2stbGMgeyBmbGV4LWdyb3c6MSAhaW1wb3J0YW50OyB0ZXh0LWFsaWduOmNlbnRlciAhaW1wb3J0YW50OyB9IC5tdWx0aWZvcm1fZW1iZWRkZWRfZm9vdGVyIC4tZm9yY2VkLS1hLWNmYTo6YWZ0ZXIgeyBmbGV4OjAgMTsgfSAuZ3JheWJveCAucHJvbW9CVE4uYnRuLWljb25lZHsganVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW46YXV0bzsgd2lkdGg6OTUlOyB9IC5ncmF5Ym94IC5wcm9tb0JUTi5idG4tZGVmYXVsdCBzcGFuLmZheyBkaXNwbGF5Om5vbmU7IH0gLmdyYXlib3ggLnByb21vQlROLmJ0bi1pY29uZWQgc3Bhbi5mYXsgZGlzcGxheTpmbGV4OyB9IC5ncmF5Ym94IC5wcm9tb0JUTiBzcGFuLCAudXNlZFZkcEFjdGlvbnMgLnByb21vQlROIHNwYW57IG1hcmdpbi1sZWZ0OnVuc2V0OyBsaW5lLWhlaWdodDoxLjVlbTsgfSAucHJvbW9CVE4uY2hldnJvbi1yaWdodCAuY3RhLWxhYmVsIHsgcGFkZGluZy1yaWdodDoxLjVyZW07IH0gLnByb21vQlROLCAucHJvbW9CVE4gYSwgLmJyb2NodXJlQnRueyBiYWNrZ3JvdW5kOiMwMDJjNWY7IGNvbG9yOiNmZmZmZmY7IHRleHQtc2hhZG93Om5vbmU7IGFuaW1hdGlvbjphbGwgM3M7IGJvcmRlci1jb2xvcjojMDAyYzVmOyB9IC5wcm9tb0JUTjpob3ZlciwgLnByb21vQlROIGE6aG92ZXJ7IGJhY2tncm91bmQ6IzAwN2ZhNTsgY29sb3I6I2ZmZmZmZjsgYm9yZGVyOjFweCBzb2xpZCAjMDA3ZmE1OyB9IC5wcm9tb0JUTjpob3ZlciA+ICogPiAuZmEsIC5wcm9tb0JUTiBhOmhvdmVyID4gKiA+IC5mYSB7IGJhY2tncm91bmQ6I2ZmZmZmZjsgY29sb3I6IzAwN2ZhNTsgfSAucHJvbW9CVE4uZ3Jvdzpob3ZlciB7IHRyYW5zZm9ybTpzY2FsZSgxLjEpOyB9IC5wcm9tb0JUTi5ncm93OmhvdmVyLCAucHJvbW9CVE4uZ3Jvdzpob3ZlciA+ICogPiAuZmEsIC5wcm9tb0JUTi5ncm93IGE6aG92ZXIgPiAqID4gLmZhIHsgdHJhbnNpdGlvbjphbGwgMC4zcyBsaW5lYXI7IH0gOm5vdCguY3RhLXRyYWNrLXRwbCkgLnByb21vQlROLnJpcHBsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB6LWluZGV4OjE7IG92ZXJmbG93OmhpZGRlbjsgdHJhbnNpdGlvbjoxcyBhbGwgZWFzZTsgfSA6bm90KC5jdGEtdHJhY2stdHBsKSAucHJvbW9CVE4ucmlwcGxlOmJlZm9yZSB7IGNvbnRlbnQgOiIgIjsgcG9zaXRpb24gOmFic29sdXRlOyB6LWluZGV4IDotMTsgYm9yZGVyLXJhZGl1cyA6MTAwcHg7IHdpZHRoIDowJTsgaGVpZ2h0IDoxMjAlOyB0b3AgOjUwJTsgYm90dG9tIDo1MCU7IGxlZnQgOjUwJTsgcmlnaHQgOjUwJTsgdHJhbnNmb3JtIDp0cmFuc2xhdGUoLTUwJSwgLTUwJSk7IHRyYW5zaXRpb24gOmFsbCAwLjZzIGVhc2U7IGJvcmRlcjp1bnNldDsgYmFja2dyb3VuZDojMDA3ZmE1OyB9IDpub3QoLmN0YS10cmFjay10cGwpIC5wcm9tb0JUTi5yaXBwbGU6aG92ZXIgeyBiYWNrZ3JvdW5kOiMwMDJjNWY7IGNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLXByb21vLWJ0bi1ob3Zlci10ZXh0LWNvbG9yKTs7IH0gOm5vdCguY3RhLXRyYWNrLXRwbCkgLnByb21vQlROLnJpcHBsZTpob3ZlcjpiZWZvcmUgeyB3aWR0aDoxMjAlOyB9IC5wcm9tb0JUTi5yaXBwbGU6aG92ZXIgc3Bhbi5mYXsgY29sb3I6dmFyKC0tcHJvbW8tYnRuLWhvdmVyLXRleHQtY29sb3IpOyB9IC5wcm9tb0Fycm93LC5wcm9tb0NvbG9yeyBjb2xvcjojMDAyYzVmIWltcG9ydGFudDsgfSAuYnJvY2h1cmVCdG57IGJvcmRlcjpub25lOyBkaXNwbGF5OmJsb2NrOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1cHg7IH0gLnZkcC1idG4geyBib3JkZXItcmFkaXVzOjNweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB0ZXh0LXRyYW5zZm9ybTpub25lOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuMDYzcmVtIDsgcGFkZGluZzo4cHggNXB4OyB3aWR0aDoyMzdweDsgfSBAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6NDAwcHgpIHsgLmJ0bi1kZWZhdWx0LCAuY3VzdG9tZm9ybV9zdWJtaXQsIGlucHV0W3R5cGU9YnV0dG9uXS5idG4tZGVmYXVsdCwgaW5wdXRbdHlwZT1zdWJtaXRdLmJ0bi1kZWZhdWx0eyBmb250LXNpemU6aW5oZXJpdDsgfSAuYXBwbHktY3JlZGl0IHsgYmFja2dyb3VuZDojMzM1ZjkyOyBib3JkZXI6MXB4IHNvbGlkICMxYTQ2Nzk7IH0gLmFwcGx5LWNyZWRpdDpob3ZlciB7IGJhY2tncm91bmQ6eyRBUFBMWV9DUkVESVRfQlROX0NPTE9SX0VOREhPVkVSQ09MT1J9OyB9IH0gLmJnX2JsdWV7IGJhY2tncm91bmQtY29sb3I6IzA2ODhmYSFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX3JlZHsgYmFja2dyb3VuZC1jb2xvcjojZmYwMDAwIWltcG9ydGFudDsgY29sb3I6I2ZmZjsgfSAuYmdfZ3JlZW57IGJhY2tncm91bmQtY29sb3I6IzY4YTU0YiFpbXBvcnRhbnQ7IGNvbG9yOiNmZmY7IH0gLmJnX2JsYWNreyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAwMDAhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOiM3OTc5NzkhaW1wb3J0YW50OyBjb2xvcjojZmZmOyB9IC5iZ19ibHVlIGEsLmJnX3JlZCBhLC5iZ19ncmVlbiBhLC5iZ19ibGFjayBhLC5iZ19ncmF5IGEgeyBjb2xvcjojZmZmOyB9IC5iZ19kZWZhdWx0eyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDMhaW1wb3J0YW50OyB9IC5ib3gyN3sgd2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOjhweDsgfSAuYm94MjcgYXsgd2lkdGg6MTMxcHg7IGhlaWdodDoyOHB4OyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2J1dHRvbjEwX2JnLnBuZykgbGVmdCB0b3AgcmVwZWF0LXggOyBib3JkZXItcmFkaXVzOjNweDsgZm9udC1zaXplOjAuODc1cmVtIDsgY29sb3I6I0ZGRkZGRjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgcGFkZGluZzowOyBsaW5lLWhlaWdodDoyOHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmJveDI3IGE6aG92ZXJ7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvYnV0dG9uMTBfYmcucG5nKSBsZWZ0IC0zMnB4IHJlcGVhdC14OyBjb2xvcjojRkZGRkZGOyB9IC5ib3gyOHsgd2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBtYXJnaW46MHB4OyBiYWNrZ3JvdW5kOiM2ZjZmNmYgdXJsKC9pbWFnZXMvbGl0ZXJfYmcucG5nKSBsZWZ0IHRvcCByZXBlYXQteDsgYm9yZGVyLXJhZGl1czozcHg7IHBhZGRpbmc6MTBweCAycHggMTBweCAycHg7IG1hcmdpbjowIDBweCAwIDA7IH0gLnRleHQ0NHsgd2lkdGg6MTI3cHg7IGhlaWdodDphdXRvOyBmbG9hdDpsZWZ0OyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2xpdGVyX2xpbmUucG5nKSBsZWZ0IGJvdHRvbSByZXBlYXQteDsgYmFja2dyb3VuZC1wb3NpdGlvbjpib3R0b207IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbTo1cHg7IG1hcmdpbi1ib3R0b206NXB4OyBmb250LXNpemU6MC44NzVyZW0gOyBjb2xvcjojRkZGRkZGOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgZm9udC13ZWlnaHQ6bm9ybWFsOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC10cmFuc2Zvcm06bm9uZTsgbGluZS1oZWlnaHQ6MThweDsgfSAuY29uc3VtcHRpb24tbm90LWF2YWlsYWJsZSA+IC50ZXh0NDQgPiBzcGFuID4gI2NpdHlGdWVsIHsgZGlzcGxheTpub25lOyB9IC5jb25zdW1wdGlvbi1ub3QtYXZhaWxhYmxlID4gLnRleHQ0NCA+IHNwYW4gPiAjaGlnaHdheUZ1ZWwgeyBkaXNwbGF5Om5vbmU7IH0gLnRleHRfc2xpZGUgYSB7IGhlaWdodDozOHB4OyBtYXJnaW4tcmlnaHQ6MC4zZW07IHBhZGRpbmctdG9wOjFweCAhaW1wb3J0YW50OyB9IC50ZXh0X3NsaWRlIGEgPiBiIHsgZGlzcGxheTpibG9jazsgb3ZlcmZsb3c6aGlkZGVuICFpbXBvcnRhbnQ7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6MjVweDsgd2lkdGg6MTAwJTsgfSAudGV4dF9zbGlkZSBhID4gYiA+IG0xIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBvc2l0aW9uOnJlbGF0aXZlOyB3aGl0ZS1zcGFjZTpub3dyYXA7IGxpbmUtaGVpZ2h0OjM4cHggIWltcG9ydGFudDsgdG9wOi04cHg7IGxlZnQ6MDsgfSAudGV4dF9zbGlkZS50ZXh0X3NsaWRlXzQgYSA+IGIgPiBtMSB7IGFuaW1hdGlvbjp0ZXh0X3NsaWRlXzQgNHMgZWFzZSA1czsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgfSAudGV4dF9zbGlkZS50ZXh0X3NsaWRlXzMgYSA+IGIgPiBtMSB7IGFuaW1hdGlvbjp0ZXh0X3NsaWRlXzMgM3MgZWFzZSA0czsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgfSAudGV4dF9zbGlkZS50ZXh0X3NsaWRlXzIgYSA+IGIgPiBtMSB7IGFuaW1hdGlvbjp0ZXh0X3NsaWRlXzIgMnMgZWFzZSAyczsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgfSAudGV4dF9zbGlkZS5wcm9tb2NvZGVib3ggeyBwYWRkaW5nOjBweCAwcHg7IG1hcmdpbi1sZWZ0OjBweDsgd2lkdGg6MTAwJTsgbWFyZ2luLXRvcDo5cHg7IH0gQGtleWZyYW1lcyB0ZXh0X3NsaWRlXzQgeyAwJSB7IHRvcDotOHB4OyB9IDI1JSB7IHRvcDotNDZweDsgfSA1MCUgeyB0b3A6LTg0cHg7IH0gNzUlIHsgdG9wOi0xMjJweDsgfSAxMDAlIHsgdG9wOi0xNjBweDsgfSB9IEBrZXlmcmFtZXMgdGV4dF9zbGlkZV8zIHsgMCUgeyB0b3A6LThweDsgfSAzMyUgeyB0b3A6LTQ2cHg7IH0gNjYlIHsgdG9wOi04NHB4OyB9IDEwMCUgeyB0b3A6LTEyMnB4OyB9IH0gQGtleWZyYW1lcyB0ZXh0X3NsaWRlXzIgeyAwJSB7IHRvcDotOHB4OyB9IDUwJSB7IHRvcDotNDZweDsgfSAxMDAlIHsgdG9wOi04NHB4OyB9IH0gLm1hcCB7IHdpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVyOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubWFwIC53cmFwcGVyeyBwb3NpdGlvbjpzdGF0aWMgIWltcG9ydGFudDsgfSAubWFwX2RlYWxlcl9saXN0IHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYm94LXNpemluZzpib3JkZXItYm94OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IHBhZGRpbmc6MCAzMHB4OyB3aWR0aDozMTVweDsgaGVpZ2h0OjEwMCU7IHRleHQtYWxpZ246bGVmdDsgb3ZlcmZsb3cteTphdXRvOyB9IC5tYXBfZGVhbGVyX2xpc3RfaXRlbSB7IGN1cnNvcjpwb2ludGVyOyBwYWRkaW5nOjEzcHggMDsgZm9udC1zaXplOjAuODEzcmVtIDsgfSAubWFwX2RlYWxlcl9saXN0X2l0ZW1fbmFtZSB7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5tYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lOmhvdmVyIHsgZm9udC13ZWlnaHQ6NzAwOyB9IC5tYXBfZGVhbGVyX2xpc3RfaXRlbV9uYW1lX2FjdGl2ZSB7IGZvbnQtd2VpZ2h0OjcwMDsgfSAubWFya2VyU3BhbiB7IGhlaWdodDoxOHB4OyB3aWR0aDoyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgcG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IC5tYXJrZXJTcGFuOmJlZm9yZSB7IGNvbnRlbnQ6Jyc7IGhlaWdodDo0cHg7IHdpZHRoOjRweDsgYm9yZGVyOjJweCBzb2xpZCAjMzMzOyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjJweDsgbGVmdDowcHg7IHotaW5kZXg6MTsgYmFja2dyb3VuZDojZmZmOyBsaW5lLWhlaWdodDoyNnB4OyBib3JkZXItcmFkaXVzOjQwcHg7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0MHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NDBweDsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gLm1hcmtlclNwYW46YWZ0ZXIgeyBjb250ZW50OicnOyBoZWlnaHQ6MHB4OyB3aWR0aDowcHg7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyBib3R0b206MnB4OyBsZWZ0OjJweDsgYm9yZGVyOjEwcHggdHJhbnNwYXJlbnQgc29saWQ7IGJvcmRlci10b3AtY29sb3I6IzMzMzsgYm9yZGVyLXdpZHRoOjdweCAycHggMHB4IDJweDsgfSAubWFwX29wZW5faG91cnMgeyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgd2lkdGg6NDAwcHg7IGhlaWdodDoxMDAlOyB0ZXh0LWFsaWduOmxlZnQ7IH0gLm9wZW5faG91cnNfY29udGFpbmVyIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgYm94LXNpemluZzpib3JkZXItYm94OyB0ZXh0LWFsaWduOmxlZnQ7IH0gLm1hcF9vcGVuX2hvdXJzIC5tYXBfb3Blbl9ob3Vycy0tdGl0bGUsIC5vcGVuX2hvdXJzX2NvbnRhaW5lciBoMiwgLm9wZW5faG91cnNfY29udGFpbmVyIHNwYW4uaDItYWx0IHsgZm9udC1zaXplOjEuNWVtOyBmb250LXdlaWdodDpib2xkOyBwYWRkaW5nLWxlZnQ6MTVweDsgbWFyZ2luLXRvcDoyMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGNvbG9yOmluaGVyaXQ7IH0gLm1hcF9vcGVuX2hvdXJzIHVsLCAub3Blbl9ob3Vyc19jb250YWluZXIgdWwgeyBwYWRkaW5nOjAgMDsgfSAubWFwX29wZW5faG91cnMgdWwgbGksIC5vcGVuX2hvdXJzX2NvbnRhaW5lciB1bCBsaSB7IGxpc3Qtc3R5bGU6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IGN1cnNvcjpoYW5kOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZjNmM2YzOyB9IC5tYXBfb3Blbl9ob3Vyc19leHBhbmR7IHBhZGRpbmc6NnB4IDMwcHggOHB4IDE1cHg7IGRpc3BsYXk6YmxvY2s7IH0gLmV4cGFuZGFibGVfY29udGVudHsgcGFkZGluZzowcHggMTZweCA1cHggMTZweDsgZm9udC1zaXplOjAuODc1cmVtIDsgbGluZS1oZWlnaHQ6MS40Mjg1NzE0MzsgfSAuZXhwYW5kYWJsZV9jb250ZW50IGRpdiwgLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIGRpdiB7IGRpc3BsYXkgOmZsZXg7IGZsZXgtZGlyZWN0aW9uIDpyb3c7IH0gLmV4cGFuZGFibGVfY29udGVudCA+IGRpdiA+IHNwYW46Zmlyc3Qtb2YtdHlwZSwgLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9uIGRpdiBzcGFuOmZpcnN0LW9mLXR5cGUgeyB3aWR0aDo0MCU7IH0gLmV4cGFuZGFibGVfY29udGVudF9tdWx0aWxvY2F0aW9ueyBmb250LXNpemU6MC44NzVyZW0gOyBsaW5lLWhlaWdodDoxLjQyODU3MTQzOyBtYXJnaW4tdG9wOjE1cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoIDo3NTlweCkgeyAuZXhwYW5kYWJsZV9jb250ZW50LCAuZXhwYW5kYWJsZV9jb250ZW50X211bHRpbG9jYXRpb24geyBmb250LXNpemU6aW5oZXJpdDsgfSB9IC5leHBhbmRhYmxlX2NvbnRlbnRfbXVsdGlsb2NhdGlvbiB0YWJsZXsgbWFyZ2luLXRvcDoxNXB4OyB9IC5tYXBfb3Blbl9ob3Vyc19leHBhbmRfYXJyb3d7IGZsb2F0OnJpZ2h0OyBtYXJnaW4tdG9wOjNweDsgfSAubWFwX29wZW5faG91cnNfZXhwYW5kX2Fycm93LmV4cGFuZGVkeyB0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7IH0gLm1hcF9vcGVuX2hvdXJzX21vYmlsZXsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LC45KTsgfSAubWFwX29wZW5faG91cnNfbW9iaWxlIC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUtLXRpdGxlIHsgZm9udC1zaXplOnZhcigtLWZzNCk7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUgdWx7IHBhZGRpbmc6MCAwOyB9IC5tYXBfb3Blbl9ob3Vyc19tb2JpbGUgdWwgbGl7IGxpc3Qtc3R5bGU6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNmM2YzZjM7IH0gLm1haW5fbGVmdF9ib3ggI2Zvb3Rlckdvb2dsZU1hcEhvdXJzQ29udGFpbmVyeyB3aWR0aDo5NjBweDsgfSAudmlkZW9CdG5TbGlkZXIsIC5waG90b0J0blNsaWRlcnsgYm9yZGVyLXJhZGl1czo1MCU7IGJvcmRlcjoxcHggc29saWQgI2IzYjNiMzsgY29sb3I6I2IzYjNiMzsgd2lkdGg6NzVweDsgaGVpZ2h0Ojc1cHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZjsgb3BhY2l0eTowLjU7IH0gLnZpZGVvQnRuU2xpZGVyOmhvdmVyLCAucGhvdG9CdG5TbGlkZXI6aG92ZXJ7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkICNmZmZmZmY7IHdpZHRoOjc1cHg7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNiM2IzYjM7IG9wYWNpdHk6MC41OyB9IC5waG90b0J0blNsaWRlciAuZmEsIC52aWRlb0J0blNsaWRlciAuZmF7IGNvbG9yOiNiM2IzYjM7IH0gLnBob3RvQnRuU2xpZGVyOmhvdmVyIC5mYSwgLnZpZGVvQnRuU2xpZGVyOmhvdmVyIC5mYXsgY29sb3I6I2ZmZmZmZjsgfSAudmlkZW9CdG5TbGlkZXJVc2VkLCAucGhvdG9CdG5TbGlkZXJVc2VkeyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjYjNiM2IzOyBjb2xvcjojYjNiM2IzOyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBvcGFjaXR5OjAuOTsgfSAudmlkZW9CdG5TbGlkZXJVc2VkOmhvdmVyLCAucGhvdG9CdG5TbGlkZXJVc2VkOmhvdmVyeyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyOjFweCBzb2xpZCAjZmZmZmZmOyB3aWR0aDo3NXB4OyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojYjNiM2IzOyBvcGFjaXR5OjAuNTsgfSAucGhvdG9CdG5TbGlkZXJVc2VkIC5mYSwgLnZpZGVvQnRuU2xpZGVyVXNlZCAuZmF7IGNvbG9yOiNiM2IzYjM7IH0gLnBob3RvQnRuU2xpZGVyVXNlZDpob3ZlciAuZmEsIC52aWRlb0J0blNsaWRlclVzZWQ6aG92ZXIgLmZheyBjb2xvcjojZmZmZmZmOyB9IC52aWRlb3NfcGljdHVyZXNfYnV0dG9uc19jb250YWluZXJ7IGxlZnQ6NXB4OyBib3R0b206ODJweDsgcG9zaXRpb246cmVsYXRpdmU7IHotaW5kZXg6OTk5OyBmbG9hdDpsZWZ0OyBtYXJnaW4tYm90dG9tOi04MHB4OyB9IC4tZGlzcGxheS1ub25leyBkaXNwbGF5Om5vbmU7IH0gI2RlZmF1bHRUb3BCYW5uZXJXcmFweyB0ZXh0LWFsaWduOmNlbnRlcjsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBwYWRkaW5nOjQwcHggMTVweDsgfSAjZGVmYXVsdFRvcEJhbm5lcnsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjEwMCU7IGJvcmRlci1yYWRpdXM6NnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjZGVmYXVsdFRvcEJhbm5lclRpdGxlLCAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2RlZmF1bHRUb3BCYW5uZXJXcmFwIGRpdi5kZWZhdWx0VG9wQmFubmVyQnRuV3JhcHBlcnsgbWFyZ2luOjMwcHggMCAyMHB4IDA7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IH0gI2RlZmF1bHRUb3BCYW5uZXJCdG57IHBhZGRpbmc6MTBweCAzMHB4OyBiYWNrZ3JvdW5kOmJsYWNrOyBib3JkZXI6MnB4IHdoaXRlIHNvbGlkOyBib3JkZXItcmFkaXVzOjNweDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6I2ZmZmZmZjsgYm94LXNoYWRvdzowcHggMnB4IDEzcHggMHB4ICMxYjFiMWI7IH0gI3RvcEJhbm5lckltYWdlLk5FV0NBUlMgI2RlZmF1bHRUb3BCYW5uZXJUaXRsZXsgZm9udC1zaXplOjMuMTI1cmVtIDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lclRleHR7IGZvbnQtc2l6ZToyLjgxM3JlbSA7IH0gI3RvcEJhbm5lckltYWdlLlVTRURDQVJTICNkZWZhdWx0VG9wQmFubmVyVGl0bGV7IGZvbnQtc2l6ZTozLjEyNXJlbSA7IH0gI3RvcEJhbm5lckltYWdlLlVTRURDQVJTICNkZWZhdWx0VG9wQmFubmVyVGV4dHsgZm9udC1zaXplOjIuODEzcmVtIDsgfSAjdG9wQmFubmVySW1hZ2U6ZW1wdHl7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHBhZGRpbmc6MCAhaW1wb3J0YW50OyB9ICN0b3BCYW5uZXJJbWFnZS5VU0VEQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoyNjVweDsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjQwcHggMTVweDsgfSAjdG9wQmFubmVySW1hZ2UuTkVXQ0FSUyAjZGVmYXVsdFRvcEJhbm5lcldyYXB7IGhlaWdodDoyNjVweDsgYm94LXNpemluZzpib3JkZXItYm94OyBwYWRkaW5nOjQwcHggMTVweDsgfSAjZ29vZ2xlX3Jldmlld3N7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGNvbG9yOiM2NjY7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGxpc3Qtc3R5bGU6bm9uZTsgcGFkZGluZzowOyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCBsaSB7IGZsb2F0OmxlZnQ7IG1hcmdpbi1yaWdodDo1cHg7IHdpZHRoOmluaXRpYWwgIWltcG9ydGFudDsgcGFkZGluZzppbml0aWFsOyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFycyB1bCBsaSBpIHsgY29sb3I6I0U0QjI0ODsgZm9udC1zdHlsZTpub3JtYWw7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IH0gI2dvb2dsZV9yZXZpZXdzIC5yZXZpZXctaXRlbSAucmV2aWV3LXN0YXJzIHVsIGxpIGkuaW5hY3RpdmUgeyBjb2xvcjojYzZjNmM2OyB9ICNnb29nbGVfcmV2aWV3cyAucmV2aWV3LWl0ZW0gLnJldmlldy1zdGFyOmFmdGVyIHsgY29udGVudDoiXDI2MDUiOyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXR7IGZvbnQtd2VpZ2h0OmJvbGQ7IHBhZGRpbmc6NXB4IDhweDsgaGVpZ2h0OjI3cHg7IGxpbmUtaGVpZ2h0OjI3cHg7IH0gLnJldmlldy1hdXRob3J7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7IH0gI2Vhc3ktZ3BsYWNlcy1yZXZpZXdzLWJ1dC5kZWZhdWx0eyBjb2xvcjojNDQ0OyBiYWNrZ3JvdW5kLWNvbG9yOiNmNWY1ZjU7IGJhY2tncm91bmQtaW1hZ2U6LW1vei1saW5lYXItZ3JhZGllbnQoY2VudGVyIHRvcCAsICNmNWY1ZjUsICNmMWYxZjEpOyBib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4xKTsgfSAjZWFzeS1ncGxhY2VzLXJldmlld3MtYnV0LnJlZHsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojZjVmNWY1OyBiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjREQ0QjM5LCAjRDE0ODM2KTsgYm9yZGVyOjFweCBzb2xpZCAjRDE0ODM2OyB9ICNlYXN5LWdwbGFjZXMtcmV2aWV3cy1idXQuYmx1ZXsgY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1jb2xvcjojNEQ5MEZFOyBiYWNrZ3JvdW5kLWltYWdlOi1tb3otbGluZWFyLWdyYWRpZW50KGNlbnRlciB0b3AgLCAjNEQ5MEZFLCAjNDc4N0VEKTsgYm9yZGVyOjFweCBzb2xpZCAjMzA3OUVEOyB9IC5lbWJlZC1jb250YWluZXIteW91dHViZSBpZnJhbWUsIC5lbWJlZC1jb250YWluZXIteW91dHViZSBvYmplY3QsIC5lbWJlZC1jb250YWluZXIteW91dHViZSBlbWJlZCB7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyeyBwb3NpdGlvbjpyZWxhdGl2ZTsgcGFkZGluZy1ib3R0b206NTYuMjUlOyBoZWlnaHQ6MDsgb3ZlcmZsb3c6aGlkZGVuOyBtYXgtd2lkdGg6MTAwJTsgfSAuZW1iZWQtY29udGFpbmVyLXlvdXR1YmUyIGlmcmFtZSwgLmVtYmVkLWNvbnRhaW5lci15b3V0dWJlMiBvYmplY3QsIC5lbWJlZC1jb250YWluZXIteW91dHViZTIgZW1iZWQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjA7IGxlZnQ6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IH0gI3NlYXJjaENyaXRlcmlhVzo6YWZ0ZXIsICNhY3Rpb25Cb3hCdG46OmFmdGVyLCAjbGlua0NvbnRhaW5lcjo6YWZ0ZXJ7IGNvbnRlbnQ6Jyc7IGhlaWdodDoxcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW4tYm90dG9tOicxNXB4JzsgfSAjc2VhcmNoQ3JpdGVyaWFXOjphZnRlciwgI2FjdGlvbkJveEJ0bjo6YWZ0ZXIsICNsaW5rQ29udGFpbmVyOjphZnRlcnsgYmFja2dyb3VuZDpub25lOyB3aWR0aDoyODBweDsgfSAuYmFubmVyUG9wdXBDbG9zZXsgY29sb3I6I2FhYTsgfSAuc2VlVmlkZW9CdG4xeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDAgIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmYgIWltcG9ydGFudDsgfSAuc2VlVmlkZW9CdG4xOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmYgIWltcG9ydGFudDsgYm9yZGVyOjFweCBzb2xpZCAjMDAwICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAwMDAgIWltcG9ydGFudDsgfSAjYm90dG9tTGVmdEJhbm5lckltYWdleyBtYXJnaW46MTBweCAwcHggMHB4OyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lcnsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjEwMCU7IGJvcmRlci1yYWRpdXM6NnB4OyBjdXJzb3I6cG9pbnRlcjsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJXcmFweyB0ZXh0LWFsaWduOmNlbnRlcjsgdmVydGljYWwtYWxpZ246bWlkZGxlOyBwYWRkaW5nOjE1cHg7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyVGl0bGV7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToyLjE4OHJlbSA7IH0gI2RlZmF1bHRCb3R0b21MZWZ0QmFubmVyVGV4dHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udC1zaXplOjEuOTM4cmVtIDsgfSAjZGVmYXVsdEJvdHRvbUxlZnRCYW5uZXJXcmFwIGRpdi5kZWZhdWx0Qm90dG9tTGVmdEJhbm5lckJ0bldyYXBwZXJ7IG1hcmdpbjoyMHB4IDAgMTBweCAwOyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyB9ICNkZWZhdWx0Qm90dG9tTGVmdEJhbm5lckJ0bnsgcGFkZGluZzo3cHggMjFweDsgYmFja2dyb3VuZDpibGFjazsgYm9yZGVyOjJweCB3aGl0ZSBzb2xpZDsgYm9yZGVyLXJhZGl1czozcHg7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9yOiNmZmZmZmY7IGJveC1zaGFkb3c6MHB4IDJweCAxM3B4IDBweCAjMWIxYjFiOyBmb250LXNpemU6NzAlOyB9IC5tYWluRGl2LXdyYXBwZXIgeyBwYWRkaW5nLXRvcDowLjAxcmVtOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYSB7IHBhZGRpbmc6MCAxMnB4OyBoZWlnaHQ6MjZweDsgbGluZS1oZWlnaHQ6MjdweDsgYm9yZGVyLXJhZGl1czowOyB9ICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYSB7IHRleHQtZGVjb3JhdGlvbjpub25lOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDdmYTU7IGJhY2tncm91bmQtY29sb3I6IzAwMmM1ZjsgY29sb3I6d2hpdGU7IGNvbG9yOiNmZmZmZmY7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhLmJ0biB7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiAuYnRuLWRlZmF1bHQ6aG92ZXIgeyBib3JkZXItY29sb3I6IzAwN2ZhNTsgYm9yZGVyLWNvbG9yOiMwMDJjNWY7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6bm9uZTsgYm94LXNoYWRvdzowIDZweCAxMnB4IHJnYmEoMCwgMCwgMCwgLjE3NSk7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDozNTBweDsgcmlnaHQ6MDsgcGFkZGluZzoxNXB4OyB6LWluZGV4Ojk5OTk7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGhlaWdodDphdXRvOyB0b3A6MjNweDsgfSAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgZGl2Om5vdChbY2xhc3NdKSB7IGZsb2F0OmluaXRpYWw7IHdpZHRoOjEwMCU7IG1hcmdpbi1yaWdodDowOyB0ZXh0LWFsaWduOmluaXRpYWw7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXI6aG92ZXIgLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6YmxvY2s7IH0gI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjc2VydmljZV9hcHBvaW50X2hlYWRlci5pc09wZW4gLnNob3J0LXNlcnZpY2UtZm9ybSB7IGRpc3BsYXk6YmxvY2s7IH0gLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5tYWlsd2lkZ2V0LS1mb3JtLXJvdywgLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyIC5tYWlsd2lkZ2V0LS1mb3JtLXJvdyBkaXYgeyBtYXJnaW4tcmlnaHQ6aW5oZXJpdDsgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyBmbG9hdDpub25lOyB9IC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciAubWFpbHdpZGdldC0tZm9ybS1yb3cgdGFibGUgdGV4dGFyZWEgeyB3aWR0aDpjYWxjKDEwMCUgKyAycHgpICFpbXBvcnRhbnQ7IH0gI3VzZWRfNDA0X21lc3NhZ2UgeyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzozMHB4OyBib3JkZXI6MXB4IHNvbGlkICNmMDA7IG1hcmdpbjowIDAgMjBweCAwOyB9IC5hdWRpLXRpdGxlIGgyIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5hdWRpLWNvbG9yIHsgY29sb3I6I2JiMGEzMDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSBkaXYjc29jaWFsX21lZGlhX2ljb25zX2RpdiB7IGZvbnQtc2l6ZTppbmhlcml0OyB9IGEuc29jaWFsLWxpbmsgeyAtLWZzOnZhcigtLWZzNik7IC0tdHh0LWNvbG9yOiMwMDdmYTU7IH0gI3NvY2lhbF9tZWRpYV9pY29uc19kaXYgLnNvY2lhbC1saW5rW2RhdGEtdG9vbHRpcD0nWW91dHViZSddIC5zb2NpYWwtaWNvbnMgeyBtYXJnaW4tcmlnaHQ6M3B4OyB9IC5wYXlwYWxfYnV0dG9uX2h0bWwgdGFibGV7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOmJsYWNrOyBjb2xvcjp3aGl0ZTsgd2lkdGg6MTAwJTsgcGFkZGluZzowIDAgMTBweCAwOyBib3JkZXItcmFkaXVzOjNweCAzcHggMCAwOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAucGF5cGFsX2J1dHRvbl9odG1sIHRhYmxlIHRyOmZpcnN0LWNoaWxkeyBmb250LXNpemU6MS4xMjVyZW0gOyBoZWlnaHQ6NDBweDsgfSAucGF5cGFsX2J1dHRvbl9odG1sIHRhYmxlIHNlbGVjdHsgYm9yZGVyLXJhZGl1czo1cHg7IHdpZHRoOjIwMHB4OyBoZWlnaHQ6MzVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgfSAucGF5cGFsX2J1dHRvbl9odG1sIGlucHV0W3R5cGU9ImltYWdlIl1bbmFtZT0ic3VibWl0Il17IHdpZHRoOjEwMCU7IGJvcmRlcjpub25lOyBwYWRkaW5nOjA7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQwMHB4KSB7IC5wYXlwYWxfYnV0dG9uX2h0bWx7IHdpZHRoOjkwJTsgbWFyZ2luOjAgYXV0bzsgfSB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24geyB6LWluZGV4OjEwMDAwMDAwMDIxOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24uZGVza3RvcCB7IHRleHQtYWxpZ246Y2VudGVyOyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24uZGVza3RvcCBzZWxlY3QgeyBtYXgtd2lkdGg6MzAwcHg7IG1hcmdpbjowIGF1dG87IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5zbWFsbCB7IHBhZGRpbmc6MjBweCAxMHB4OyB9ICNtdWx0aS1hZGRyZXNzLXN1Ym1pc3Npb24gbGFiZWwgeyBkaXNwbGF5OmJsb2NrOyBtYXJnaW4tYm90dG9tOjVweDsgZm9udC13ZWlnaHQ6Ym9sZDsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uICNtdXRsaUFkZHJlc3NTdWJtaXQgeyBtYXJnaW46MCBhdXRvOyBtYXJnaW4tdG9wOjhweDsgZGlzcGxheTp0YWJsZTsgfSAjbXVsdGktYWRkcmVzcy1zdWJtaXNzaW9uICNtdWx0aS1kZWFsZXItbWFwIHsgaGVpZ2h0OjUyMHB4OyBtYXJnaW4tYm90dG9tOjEycHg7IH0gI211bHRpLWFkZHJlc3Mtc3VibWlzc2lvbi5yZXZlYWwtbW9kYWwgc3BhbiB7IGZvbnQtc2l6ZTppbmhlcml0OyB9IC52YWxpZGl0eS1lcnJvbmVvdXMgeyBib3JkZXI6MXB4IHNvbGlkICNkYzM1NDU7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyFpbXBvcnRhbnQ7IH0gLmJveDQudmFsaWRpdHktZXJyb25lb3VzLCAuYm94NS52YWxpZGl0eS1lcnJvbmVvdXMgeyB3aWR0aDoyNjNweDsgfSAuZm9ybS1jb250cm9sIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgaGVpZ2h0OjM0cHg7IHBhZGRpbmc6NnB4IDEycHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IGNvbG9yOiM1NTU7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYmFja2dyb3VuZC1pbWFnZTpub25lOyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IGJvcmRlci1yYWRpdXM6NHB4OyAtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7IGJveC1zaGFkb3c6aW5zZXQgMCAxcHggMXB4IHJnYmEoMCwwLDAsLjA3NSk7IC13ZWJraXQtdHJhbnNpdGlvbjpib3JkZXItY29sb3IgZWFzZS1pbi1vdXQgLjE1cyxib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IC1vLXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyAtd2Via2l0LXRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsLXdlYmtpdC1ib3gtc2hhZG93IGVhc2UtaW4tb3V0IC4xNXM7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIGVhc2UtaW4tb3V0IC4xNXMsYm94LXNoYWRvdyBlYXNlLWluLW91dCAuMTVzOyB0cmFuc2l0aW9uOmJvcmRlci1jb2xvciBlYXNlLWluLW91dCAuMTVzLGJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1cywtd2Via2l0LWJveC1zaGFkb3cgZWFzZS1pbi1vdXQgLjE1czsgfSAuYmFubmVyLWZvcm0tYm94IHsgcGFkZGluZzozMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmNmYzZjI7IGNvbG9yOiMwMDAwMDA7IH0gLmJhbm5lci1mb3JtLXRpdGxlIHsgZm9udC13ZWlnaHQ6NjAwOyBmb250LXNpemU6MThwdDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtdHJhbnNmb3JtOm5vbmU7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5iYW5uZXItZm9ybS1zdWJ0aXRsZSB7IGZvbnQtc2l6ZToxMS41cHQ7IG1hcmdpbi1ib3R0b206NXB4OyB9IC5iYW5uZXItZm9ybS1ib2R5IHsgbWFyZ2luLWJvdHRvbToyNXB4OyB9IC5iYW5uZXItZm9ybS1ib2R5IC5mb3JtLWNvbnRyb2wgeyBoZWlnaHQ6NDFweDsgbWFyZ2luLWJvdHRvbToxNXB4OyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuYmFubmVyLWZvcm0tYm94LWZvb3RlciB7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjI1cHg7IH0gLmJhbm5lci1mb3JtLWJveC1oZWFkZXIgeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWJvdHRvbToxNXB4OyB9IC5idG4uYmFubmVyLWJ0biB7IHBhZGRpbmc6NnB4IDI0cHg7IGZvbnQtd2VpZ2h0OmJvbGQ7IHRleHQtdHJhbnNmb3JtOm5vbmU7IGJhY2tncm91bmQtY29sb3I6YmxhY2s7IGNvbG9yOndoaXRlOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWY7IGNvbG9yOiNmZmZmZmY7IH0gLmJ0bi5iYW5uZXItYnRuOmhvdmVyIHsgYm94LXNoYWRvdzppbnNldCAwIDAgMTAwcHggMTAwcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjEpOyB9IC5idG4geyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzo2cHggMTJweDsgbWFyZ2luLWJvdHRvbTowOyBmb250LXNpemU6MC44NzVyZW0gOyBmb250LXdlaWdodDo0MDA7IGxpbmUtaGVpZ2h0OjEuNDI4NTcxNDM7IHRleHQtYWxpZ246Y2VudGVyOyB3aGl0ZS1zcGFjZTpub3dyYXA7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgLW1zLXRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247IHRvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247IGN1cnNvcjpwb2ludGVyOyAtd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7IC1tb3otdXNlci1zZWxlY3Q6bm9uZTsgLW1zLXVzZXItc2VsZWN0Om5vbmU7IHVzZXItc2VsZWN0Om5vbmU7IGJvcmRlci1yYWRpdXM6NHB4OyB9IC5sYXp5bG9hZHsgdmlzaWJpbGl0eTpoaWRkZW47IH0gLmdib3ggeyBib3JkZXItcmFkaXVzOjVweDsgYm94LXNoYWRvdzowIDAgMTBweCAxcHggcmdiYSgwLDAsMCwwLjIpOyB9IC5wZCB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IGZvbnQtc2l6ZTowLjVlbTsgdmVydGljYWwtYWxpZ246c3VwZXI7IH0gLnVpLWxvYWRlci1iYWNrZ3JvdW5keyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgdG9wOjA7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IGJhY2tncm91bmQ6cmdiYSgwLCAwLCAwLCAwLjMpOyBkaXNwbGF5Om5vbmU7IHBvc2l0aW9uOmZpeGVkOyB6LWluZGV4OjEwMDAwMDAwMDsgfSAudWktbG9hZGVyLWJhY2tncm91bmQtZ2lmeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjUwJTsgbGVmdDo1MCU7IH0gLmQyY0Zvb3RlckNvb2tpZURlbGV0ZVRpdGxlIHsgZm9udC1zaXplOjEuM2VtOyB9IC5kMmNGb290ZXJDb29raWVEZWxldGVUZXh0IHsgbWFyZ2luLXRvcDozMHB4OyB9IC5tb250aGx5UGF5bWVudHNQb3B1cENvbnRhaW5lcl9idG57IGJhY2tncm91bmQ6IzAwMmM1ZjsgY29sb3I6I2ZmZmZmZjsgcGFkZGluZzoxMHB4IDIwcHggMTBweCAyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAubW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfYnRuIHNwYW57IGJhY2tncm91bmQ6IzAwMmM1ZjsgY29sb3I6I2ZmZmZmZjsgfSAjbW9udGhseVBheW1lbnRzUG9wdXBDb250YWluZXJfc21zeyBiYWNrZ3JvdW5kOiMwMDJjNWY7IGNvbG9yOiNmZmZmZmY7IH0gI21vbnRobHlQYXltZW50c1BvcHVwQ29udGFpbmVyX3NtcyBzcGFueyBiYWNrZ3JvdW5kOiMwMDJjNWY7IGNvbG9yOiNmZmZmZmY7IH0gLmJsYWNrQ29sb3JCb2xkeyBjb2xvcjojMDAwIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwIWltcG9ydGFudDsgZm9udC1zaXplOjFyZW0gIWltcG9ydGFudDsgfSAucHJpY2VNc2dEaXY6aGFzKD4gLmV2YXBEaXNjbGFpbWVySWNvbiksIC5jYXNoUmViYXRlUG9zdFRheFRleHQ6aGFzKD4gLmV2YXBEaXNjbGFpbWVySWNvbiksIC5wcmljZVNwYW46aGFzKD4gLmV2YXBEaXNjbGFpbWVySWNvbil7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBnYXA6M3B4OyB9IC5mbGV4LWNlbnRlciAucmVzcG9uc2l2ZS1lZGl0b3IgeyBmbGV4LWdyb3c6MTsgfSAucmV2ZWFsLW1vZGFseyBib3gtc2l6aW5nOmNvbnRlbnQtYm94OyB9IC5nbS1zdHlsZS1pdy1kIHsgcGFkZGluZy10b3A6MTJweDsgbWFyZ2luLXJpZ2h0Oi0yNHB4OyB9IC5nbS1zdHlsZSAuZ20tc3R5bGUtaXctYyB7IGZsZXgtZGlyZWN0aW9uOnJvdy1yZXZlcnNlOyB9IC5ncmVjYXB0Y2hhLWJhZGdlIHsgdmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudDsgfSAucmVjYXB0Y2hhLWRpc2NsYWltZXIgeyBmb250LXNpemU6MC42ODhyZW0gOyBjb2xvcjojNzc3OyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjhweCAwOyBsaW5lLWhlaWdodDoxLjM7IH0gI3RyYWRlSW5CYXIudHJhZGVJbkJvdHRvbXsgdGV4dC1hbGlnbjpjZW50ZXI7IHBvc2l0aW9uOmZpeGVkOyB3aWR0aDoxMDAlOyB6LWluZGV4OjEwMDsgYm90dG9tOi0ycHg7IH0KLyoqIC9jc3MvZm9udHMuSHl1bmRhaVNhbnNIZWFkLmNzcyAqKi8KQGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonSHl1bmRhaVNhbnNIZWFkJztzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1SZWd1bGFyLndvZmYyJylmb3JtYXQoJ3dvZmYyJyksdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1SZWd1bGFyLndvZmYnKWZvcm1hdCgnd29mZicpLHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtUmVndWxhci5lb3Q\/I2llZml4Jylmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1SZWd1bGFyLnR0ZicpZm9ybWF0KCd0cnVldHlwZScpO2ZvbnQtd2VpZ2h0Om5vcm1hbDtmb250LXN0eWxlOm5vcm1hbDt9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonSHl1bmRhaVNhbnNIZWFkJztzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1NZWRpdW0ud29mZjInKWZvcm1hdCgnd29mZjInKSx1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS53b2ZmJylmb3JtYXQoJ3dvZmYnKSx1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLU1lZGl1bS5lb3Q\/I2llZml4Jylmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1NZWRpdW0udHRmJylmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC13ZWlnaHQ6NTAwO2ZvbnQtc3R5bGU6bm9ybWFsO31AZm9udC1mYWNle2ZvbnQtZGlzcGxheTpzd2FwO2ZvbnQtZmFtaWx5OidIeXVuZGFpU2Fuc0hlYWQnO3NyYzp1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUJvbGQud29mZjInKWZvcm1hdCgnd29mZjInKSx1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUJvbGQud29mZicpZm9ybWF0KCd3b2ZmJyksdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1Cb2xkLmVvdD8jaWVmaXgnKWZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSx1cmwoJ2h0dHBzOi8vZm9udHMuZDJjbWVkaWEuY2EvSHl1bmRhaVNhbnNIZWFkLUJvbGQudHRmJylmb3JtYXQoJ3RydWV0eXBlJyk7Zm9udC13ZWlnaHQ6Ym9sZDtmb250LXN0eWxlOm5vcm1hbDt9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonSHl1bmRhaVNhbnNIZWFkJztzcmM6dXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1MaWdodC53b2ZmMicpZm9ybWF0KCd3b2ZmMicpLHVybCgnaHR0cHM6Ly9mb250cy5kMmNtZWRpYS5jYS9IeXVuZGFpU2Fuc0hlYWQtTGlnaHQud29mZicpZm9ybWF0KCd3b2ZmJyksdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1MaWdodC5lb3Q\/I2llZml4Jylmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksdXJsKCdodHRwczovL2ZvbnRzLmQyY21lZGlhLmNhL0h5dW5kYWlTYW5zSGVhZC1MaWdodC50dGYnKWZvcm1hdCgndHJ1ZXR5cGUnKTtmb250LXdlaWdodDpsaWdodGVyO2ZvbnQtc3R5bGU6bm9ybWFsO30KLyoqIC9jc3MvYmFzZS5jc3MgKiovCnN0YWNrLWxjLCAuc3RhY2stbGMgeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBqdXN0aWZ5LWNvbnRlbnQ6ZmxleC1zdGFydDsgfSBzdGFjay1sYyA+ICosIC5zdGFjay1sYyA+ICogeyBtYXJnaW4tdG9wOjA7IG1hcmdpbi1ib3R0b206MDsgfSBzdGFjay1sYyA+ICogKyAqLCAuc3RhY2stbGMgPiAqICsgKiB7IG1hcmdpbi10b3A6dmFyKC0tc3BhY2UpOyB9IHN0YWNrLWxjLi0tczAgPiAqICsgKiwgLnN0YWNrLWxjLi0tczAgPiAqICsgKiB7IGJvcmRlci13aWR0aDowOyBib3JkZXItdG9wLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgYm9yZGVyLWNvbG9yOmluaGVyaXQ7IH0gLmJveC1sYywgYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmJsb2NrOyBwYWRkaW5nOnZhcigtLXNwYWNlKTsgb3V0bGluZTp2YXIoLS1ib3JkZXItdGhpbikgdHJhbnNwYXJlbnQ7IG91dGxpbmUtb2Zmc2V0OmNhbGModmFyKC0tYm9yZGVyLXRoaW4pICogLTEpOyB9IC5ib3gtbGMsIGJveC1sYyAqIHsgY29sb3I6aW5oZXJpdDsgfSAuYmctYm94eyBjb2xvcjp2YXIoLS1ibGFjayk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0td2hpdGUpOyBib3JkZXItd2lkdGg6dmFyKC0tYm9yZGVyLXRoaW4pOyB9IC5nbGFzcy1ib3h7IGJvcmRlcjpub25lOyBiYWNrZ3JvdW5kOm5vbmU7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IGNvbG9yOmluaGVyaXQ7IH0gLmN0ci1ib3gsIC5mbGV4LWJveCwgLmZsZXgtY29sdW1uLCAuZmxleC1hcm91bmQsIC5mbGV4LWJldHdlZW4sIC5mbGV4LWV2ZW5seSwgLmZsZXgtY2VudGVyLCAuZmxleC1zdGFydCwgLmZsZXgtZW5kLCAuZmxleC1hdXRvLCAuZmxleC1lcXVhbHsgZGlzcGxheTpmbGV4OyB9IC5pbmxpbmUtYm94eyBkaXNwbGF5OmlubGluZS1ibG9jazsgfSAuc2hhZG93LWJveHsgYm94LXNoYWRvdzowIDAgMTBweCAycHggdmFyKC0tbWlkLWdyYXkpOyBib3JkZXItY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IH0gLmZsZXgtYm94Om5vdCg6aXMoLmZsZXgtYmV0d2VlbiwuZmxleC1ldmVubHksLmZsZXgtYXJvdW5kKSkgPiAqICsgKnsgbWFyZ2luLWxlZnQ6dmFyKC0tcyk7IH0gLmdyb3VwLWxjLCBncm91cC1sYyB7IC0tc3BhY2U6dmFyKC0tcywgMC41cmVtKTsgfSAuZ3JvdXAtbGMgPiAqLCBncm91cC1sYyA+ICogeyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbjsgYWxpZ24taXRlbXM6Y2VudGVyOyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyICogLTEpOyB9IC5ncm91cC1sYyA+ICogPiAqLCBncm91cC1sYyA+ICogPiAqIHsgbWFyZ2luOmNhbGModmFyKC0tc3BhY2UpIC8gMik7IH0gOmlzKC5zaWRlYmFyLWxjLHNpZGViYXItbGMpIHsgb3ZlcmZsb3c6aGlkZGVuOyB9IDppcyguc2lkZWJhci1sYyxzaWRlYmFyLWxjKSA+ICogeyAtLXNwYWNlOnZhcigtLXMsIDAuNXJlbSk7IGRpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIgKiAtMSk7IH0gOmlzKC5zaWRlYmFyLWxjLHNpZGViYXItbGMpID4gKiA+ICogeyBtYXJnaW46Y2FsYyh2YXIoLS1zcGFjZSkgLyAyKTsgZmxleC1ncm93OjE7IH0gOmlzKC5zaWRlYmFyLWxjLHNpZGViYXItbGMpID4gKiA+IDpmaXJzdC1jaGlsZCB7IGZsZXgtYmFzaXM6MDsgZmxleC1ncm93Ojk5OTsgbWluLXdpZHRoOmNhbGModmFyKC0tc2lkZWJhci1icCwgNTAlKSAtIHZhcigtLXNwYWNlKSk7IH0gOmlzKC5zd2l0Y2hlci1sYyxzd2l0Y2hlci1sYykgPiAqIHsgLS1zcGFjZTp2YXIoLS1zLCAwLjVyZW0pOyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBtYXJnaW46Y2FsYygodmFyKC0tc3BhY2UpIC8gMikgKiAtMSk7IH0gOmlzKC5zd2l0Y2hlci1sYyxzd2l0Y2hlci1sYykgPiAqID4gKiB7IGZsZXgtZ3JvdzoxOyBmbGV4LWJhc2lzOmNhbGMoKHZhcigtLXN3aXRjaC1icCwgMzByZW0pIC0gKDEwMCUgLSB2YXIoLS1zcGFjZSkpKSAqIDk5OSk7IG1hcmdpbjpjYWxjKHZhcigtLXNwYWNlKSAvIDIpOyB9IDppcyguc3dpdGNoZXItbGMsc3dpdGNoZXItbGMpID4gKiA+IDpudGgtbGFzdC1jaGlsZChuKzUpLCA6aXMoLnN3aXRjaGVyLWxjLHN3aXRjaGVyLWxjKSA+ICogPiA6bnRoLWxhc3QtY2hpbGQobis1KSB+ICogeyBmbGV4LWJhc2lzOjEwMCU7IH0gLi0tczB7LS1zcGFjZTp2YXIoLS1zMCk7fSAuLS1zLTl7LS1zcGFjZTp2YXIoLS1zLTkpO30gLi0tcy04ey0tc3BhY2U6dmFyKC0tcy04KTt9IC4tLXMtN3stLXNwYWNlOnZhcigtLXMtNyk7fSAuLS1zLTZ7LS1zcGFjZTp2YXIoLS1zLTYpO30gLi0tcy01ey0tc3BhY2U6dmFyKC0tcy01KTt9IC4tLXMtNHstLXNwYWNlOnZhcigtLXMtNCk7fSAuLS1zLTN7LS1zcGFjZTp2YXIoLS1zLTMpO30gLi0tcy0yey0tc3BhY2U6dmFyKC0tcy0yKTt9IC4tLXMtMXstLXNwYWNlOnZhcigtLXMtMSk7fSAuLS1zey0tc3BhY2U6dmFyKC0tcyk7fSAuLS1zMXstLXNwYWNlOnZhcigtLXMxKTt9IC4tLXMyey0tc3BhY2U6dmFyKC0tczIpO30gLi0tczN7LS1zcGFjZTp2YXIoLS1zMyk7fSAuLS1zNHstLXNwYWNlOnZhcigtLXM0KTt9IC4tLXM1ey0tc3BhY2U6dmFyKC0tczUpO30gLi0tczZ7LS1zcGFjZTp2YXIoLS1zNik7fSAuLS1zN3stLXNwYWNlOnZhcigtLXM3KTt9IC4tLXM4ey0tc3BhY2U6dmFyKC0tczgpO30gLi0tczl7LS1zcGFjZTp2YXIoLS1zOSk7fSAuLS1mcy05e2ZvbnQtc2l6ZTp2YXIoLS1mcy05KTstLWZzOnZhcigtLWZzLTkpO30gLi0tZnMtOHtmb250LXNpemU6dmFyKC0tZnMtOCk7LS1mczp2YXIoLS1mcy04KTt9IC4tLWZzLTd7Zm9udC1zaXplOnZhcigtLWZzLTcpOy0tZnM6dmFyKC0tZnMtNyk7fSAuLS1mcy02e2ZvbnQtc2l6ZTp2YXIoLS1mcy02KTstLWZzOnZhcigtLWZzLTYpO30gLi0tZnMtNXtmb250LXNpemU6dmFyKC0tZnMtNSk7LS1mczp2YXIoLS1mcy01KTt9IC4tLWZzLTR7Zm9udC1zaXplOnZhcigtLWZzLTQpOy0tZnM6dmFyKC0tZnMtNCk7fSAuLS1mcy0ze2ZvbnQtc2l6ZTp2YXIoLS1mcy0zKTstLWZzOnZhcigtLWZzLTMpO30gLi0tZnMtMntmb250LXNpemU6dmFyKC0tZnMtMik7LS1mczp2YXIoLS1mcy0yKTt9IC4tLWZzLTF7Zm9udC1zaXplOnZhcigtLWZzLTEpOy0tZnM6dmFyKC0tZnMtMSk7fSAuLS1mczB7Zm9udC1zaXplOnZhcigtLWZzMCk7LS1mczp2YXIoLS1mczApO30gLi0tZnMxe2ZvbnQtc2l6ZTp2YXIoLS1mczEpOy0tZnM6dmFyKC0tZnMxKTt9IC4tLWZzMntmb250LXNpemU6dmFyKC0tZnMyKTstLWZzOnZhcigtLWZzMik7fSAuLS1mczN7Zm9udC1zaXplOnZhcigtLWZzMyk7LS1mczp2YXIoLS1mczMpO30gLi0tZnM0e2ZvbnQtc2l6ZTp2YXIoLS1mczQpOy0tZnM6dmFyKC0tZnM0KTt9IC4tLWZzNXtmb250LXNpemU6dmFyKC0tZnM1KTstLWZzOnZhcigtLWZzNSk7fSAuLS1mczZ7Zm9udC1zaXplOnZhcigtLWZzNik7LS1mczp2YXIoLS1mczYpO30gLi0tZnM3e2ZvbnQtc2l6ZTp2YXIoLS1mczcpOy0tZnM6dmFyKC0tZnM3KTt9IC4tLWZzOHtmb250LXNpemU6dmFyKC0tZnM4KTstLWZzOnZhcigtLWZzOCk7fSAuLS1mczl7Zm9udC1zaXplOnZhcigtLWZzOSk7LS1mczp2YXIoLS1mczkpO30gLnNocmluay1ncm93e2ZsZXg6MSAxO30gLmZsZXgtd3JhcCB7ZmxleC13cmFwOndyYXA7fSAuZmxleC1yZXZlcnNlIHtmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTt9IC5mbGV4LWF1dG8gPiAqe2ZsZXg6MSAxIGF1dG87fSAuZmxleC1lcXVhbCA+ICp7ZmxleDoxIDE7fSAuYWxpZ24tY2VudGVyIHthbGlnbi1pdGVtczpjZW50ZXI7fSAuYWxpZ24tc3RhcnR7YWxpZ24taXRlbXM6ZmxleC1zdGFydDt9IC5hbGlnbi1lbmR7YWxpZ24taXRlbXM6ZmxleC1lbmQ7fSAuYWxpZ24tYmFzZWxpbmV7YWxpZ24taXRlbXM6YmFzZWxpbmU7fSAuZmxleC1jb2x1bW4ge2ZsZXgtZmxvdzpjb2x1bW47fSAuZmxleC1yb3cge2ZsZXgtZmxvdzpyb3c7fSAuZmxleC1hcm91bmR7anVzdGlmeS1jb250ZW50OnNwYWNlLWFyb3VuZDt9IC5mbGV4LWJldHdlZW57anVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47fSAuZmxleC1ldmVubHl7anVzdGlmeS1jb250ZW50OnNwYWNlLWV2ZW5seTt9IC5mbGV4LWNlbnRlcntqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO30gLmZsZXgtc3RhcnR7anVzdGlmeS1jb250ZW50OmZsZXgtc3RhcnQ7fSAuZmxleC1lbmR7anVzdGlmeS1jb250ZW50OmZsZXgtZW5kO30gLi1wMCB7cGFkZGluZzowO30gLi1wdDAge3BhZGRpbmctdG9wOjA7fSAuLXBiMCB7cGFkZGluZy1ib3R0b206MDt9IC4tcHYwIHtwYWRkaW5nLXRvcDowO3BhZGRpbmctYm90dG9tOjB9IC4tcGgwIHtwYWRkaW5nLWxlZnQ6MDtwYWRkaW5nLXJpZ2h0OjB9IC4tcCB7cGFkZGluZzp2YXIoLS1zcGFjZSk7fSAuLXB2e3BhZGRpbmctdG9wOnZhcigtLXNwYWNlKTsgcGFkZGluZy1ib3R0b206dmFyKC0tc3BhY2UpO30gLi1waHtwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2UpOyBwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNlKTt9IC4tcHR7cGFkZGluZy10b3A6dmFyKC0tc3BhY2UpO30gLi1wYntwYWRkaW5nLWJvdHRvbTp2YXIoLS1zcGFjZSk7fSAuLW0wIHttYXJnaW46MDt9IC4tbXQwIHttYXJnaW4tdG9wOjA7fSAuLW1iMCB7bWFyZ2luLWJvdHRvbTowO30gLi1tdjAge21hcmdpbi10b3A6MDttYXJnaW4tYm90dG9tOjB9IC4tbWgwIHttYXJnaW4tbGVmdDowO21hcmdpbi1yaWdodDowfSAuLW0ge21hcmdpbjp2YXIoLS1zcGFjZSk7fSAuLW12e21hcmdpbi10b3A6dmFyKC0tc3BhY2UpOyBtYXJnaW4tYm90dG9tOnZhcigtLXNwYWNlKTt9IC4tbWh7bWFyZ2luLWxlZnQ6dmFyKC0tc3BhY2UpOyBtYXJnaW4tcmlnaHQ6dmFyKC0tc3BhY2UpO30gLi1tdHttYXJnaW4tdG9wOnZhcigtLXNwYWNlKTt9IC4tbWJ7bWFyZ2luLWJvdHRvbTp2YXIoLS1zcGFjZSk7fSAuLWIwIHtib3JkZXI6bm9uZTt9IC4tYjIge2JvcmRlci13aWR0aDoycHg7fSAuLWJ7Ym9yZGVyLXdpZHRoOjFweDt9IC4tYnR7Ym9yZGVyLXRvcC13aWR0aDoxcHg7fSAuLWJie2JvcmRlci1ib3R0b20td2lkdGg6MXB4O30gLi1idntib3JkZXItdG9wLXdpZHRoOjFweDtib3JkZXItYm90dG9tLXdpZHRoOjFweDt9IC4tYmh7Ym9yZGVyLWxlZnQtd2lkdGg6MXB4O2JvcmRlci1yaWdodC13aWR0aDoxcHg7fSAuLXctZnVsbCB7d2lkdGg6MTAwdnc7fSAuLXctMTAwIHt3aWR0aDoxMDAlO30gLi13LTUwIHt3aWR0aDo1MCU7fSAuLXctMzMge3dpZHRoOjMzLjMzJTt9IC4tdy0yNSB7d2lkdGg6MjUlO30gLi13LTUwdyB7d2lkdGg6NTB2dzt9IC4tZnMteHhze2ZvbnQtc2l6ZTowLjE1cmVtOyAtLWZzOjAuMTVyZW07fSAuLWZzLXhze2ZvbnQtc2l6ZTowLjVyZW07IC0tZnM6MC41cmVtO30gLi1mcy1ze2ZvbnQtc2l6ZTowLjc1cmVtOyAtLWZzOjAuNzVyZW07fSAuLWZzLXNye2ZvbnQtc2l6ZTowLjlyZW07IC0tZnM6MC45cmVtO30gLi1mcy1scntmb250LXNpemU6MS4xcmVtOyAtLWZzOjEuMXJlbTt9IC4tZnMtbHtmb250LXNpemU6MS4yNXJlbTsgLS1mczoxLjI1cmVtO30gLi1mcy14bHtmb250LXNpemU6MS41cmVtOyAtLWZzOjEuNXJlbTt9IC4tZnMteHhse2ZvbnQtc2l6ZToycmVtOyAtLWZzOjJyZW07fSAuLWZzLXh4eGx7Zm9udC1zaXplOjIuMjVyZW07IC0tZnM6Mi4yNXJlbTt9IC4tZncxIHtmb250LXdlaWdodDoxMDA7fSAuLWZ3MiB7Zm9udC13ZWlnaHQ6MjAwO30gLi1mdzMge2ZvbnQtd2VpZ2h0OjMwMDt9IC4tZnc0IHtmb250LXdlaWdodDo0MDA7fSAuLWZ3NSB7Zm9udC13ZWlnaHQ6NTAwO30gLi1mdzYge2ZvbnQtd2VpZ2h0OjYwMDt9IC4tZnc3IHtmb250LXdlaWdodDo3MDA7fSAuLWZ3OCB7Zm9udC13ZWlnaHQ6ODAwO30gLi1mdzkge2ZvbnQtd2VpZ2h0OjkwMDt9IC4tYm9sZCB7Zm9udC13ZWlnaHQ6Ym9sZDt9IC50eHQtcmVkIHtjb2xvcjojY2MwMDAwO30gLnR4dC1jZW50ZXJ7dGV4dC1hbGlnbjpjZW50ZXI7fSAudHh0LXJpZ2h0e3RleHQtYWxpZ246cmlnaHQ7fSAudHh0LWxlZnR7dGV4dC1hbGlnbjpsZWZ0O30gLnR4dC11cHBlcnt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIHZhcigtLXR4dC11cHBlciwgdXBwZXJjYXNlKSk7fSAudHh0LW5vdGV7Zm9udC1zdHlsZTppdGFsaWM7fSAudHh0LXBheW1lbnQge2NvbG9yOnZhcigtLW5ld3ZkcC1iZXN0cHJpY2UtdGV4dC1jb2xvci1wcmljZSkgIWltcG9ydGFudDt9IC4tcG9zcmVse3Bvc2l0aW9uOnJlbGF0aXZlO30gLmNlcnQtdHh0LXRyYW5zZm9ybXt0ZXh0LXRyYW5zZm9ybTp2YXIoLS1jZXJ0LXR4dC10cmFuc2Zvcm0sIG5vbmUpO30gW2hpZGRlbl0sIC5oaWRkZW4geyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsgfSAuc2tlbGV0b24tc2xpZGVyID4gKnsgZGlzcGxheTpub25lOyB9IC5za2VsZXRvbi10eHR7IHRleHQtaW5kZW50OjEwMCU7IHdoaXRlLXNwYWNlOm5vd3JhcDsgb3ZlcmZsb3c6aGlkZGVuOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjIxLCAyMjEsIDIyMSwgMC44KTsgYm9yZGVyLXJhZGl1czowLjVyZW07IH0gLnNrZWxldG9uLWJ0bnsgd2lkdGg6bWluKDIwcmVtLDEwMCUpOyBoZWlnaHQ6Mi41cmVtOyBib3JkZXItcmFkaXVzOjAuNXJlbTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIyMSwgMjIxLCAyMjEsIDAuOCk7IG1hcmdpbjphdXRvOyB9IC5za2VsZXRvbi1ibG9ja3sgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMjEsIDIyMSwgMjIxLCAwLjgpOyB9IC5za2VsZXRvbi1zbGlkZXIsIC5za2VsZXRvbi10eHQsIC5za2VsZXRvbi1idG4sIC5za2VsZXRvbi1ibG9jayB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6YmxvY2s7IH0gLnNrZWxldG9uLXNsaWRlcjo6YWZ0ZXIsIC5za2VsZXRvbi10eHQ6OmFmdGVyLCAuc2tlbGV0b24tYnRuOjphZnRlciwgLnNrZWxldG9uLWJsb2NrOjphZnRlciB7IGNvbnRlbnQ6IiI7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MDsgcmlnaHQ6MDsgYm90dG9tOjA7IGxlZnQ6MDsgdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTEwMCUpOyBiYWNrZ3JvdW5kLWltYWdlOmxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMikgMjAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSkgNjAlLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDApKTsgYW5pbWF0aW9uOnNoaW1tZXIgMnMgaW5maW5pdGU7IH0gLnNrZWxldG9uLXNsaWRlciB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgdmlld0JveD0nMCAwIDUxMiA1MTInJTNFJTNDcGF0aCBkPSdNNDY0IDQ0OEg0OGMtMjYuNTEgMC00OC0yMS40OS00OC00OFYxMTJjMC0yNi41MSAyMS40OS00OCA0OC00OGg0MTZjMjYuNTEgMCA0OCAyMS40OSA0OCA0OHYyODhjMCAyNi41MS0yMS40OSA0OC00OCA0OHpNMTEyIDEyMGMtMzAuOTI4IDAtNTYgMjUuMDcyLTU2IDU2czI1LjA3MiA1NiA1NiA1NiA1Ni0yNS4wNzIgNTYtNTYtMjUuMDcyLTU2LTU2LTU2ek02NCAzODRoMzg0VjI3MmwtODcuNTE1LTg3LjUxNWMtNC42ODYtNC42ODYtMTIuMjg0LTQuNjg2LTE2Ljk3MSAwTDIwOCAzMjBsLTU1LjUxNS01NS41MTVjLTQuNjg2LTQuNjg2LTEyLjI4NC00LjY4Ni0xNi45NzEgMEw2NCAzMzZ2NDh6JyBmaWxsPSclMjNlZWUnLyUzRSUzQy9zdmclM0UiKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1jb2xvcjojY2NjOyBvcGFjaXR5OjAuOTsgfSBAa2V5ZnJhbWVzIHNoaW1tZXIgeyAxMDAlIHt0cmFuc2Zvcm06dHJhbnNsYXRlWCgxMDAlKTt9IH0gQHN1cHBvcnRzICgtd2Via2l0LXRvdWNoLWNhbGxvdXQ6bm9uZSkgeyAuc2tlbGV0b24tc2xpZGVyOjphZnRlciwgLnNrZWxldG9uLXR4dDo6YWZ0ZXJ7IGFuaW1hdGlvbjpub25lOyB9IH0gLmNvbnRlbnQtc2tlbGV0b24geyBiYWNrZ3JvdW5kOiNlZWU7IGJvcmRlci1yYWRpdXM6MC41cmVtOyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyBtYXgtd2lkdGg6NDAwcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5jb250ZW50LXNrZWxldG9uLnJlY3RhbmdsZSB7IGFzcGVjdC1yYXRpbzp2YXIoLS1yYXRpbywgMTYvOSk7IH0gLmNvbnRlbnQtc2tlbGV0b24udGV4dCB7IGhlaWdodDphdXRvOyBwYWRkaW5nOjFyZW07IH0gLmNvbnRlbnQtc2tlbGV0b24udGV4dDo6YmVmb3JlLCAuY29udGVudC1za2VsZXRvbi50ZXh0OjphZnRlciB7IGNvbnRlbnQ6IiI7IGRpc3BsYXk6YmxvY2s7IGhlaWdodDoxcmVtOyBiYWNrZ3JvdW5kOiNkZGQ7IG1hcmdpbi1ib3R0b206MC41cmVtOyBib3JkZXItcmFkaXVzOjAuMjVyZW07IH0gLmNvbnRlbnQtc2tlbGV0b24udGV4dDo6YWZ0ZXIgeyB3aWR0aDo3MCU7IH0gLmNvbnRlbnQtc2tlbGV0b24uYWN0aXZlIHsgYmFja2dyb3VuZDpsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNmOWY5ZjkgMjUlLCAjZGVkZWRlIDUwJSwgI2Y5ZjlmOSA3NSUpOyBiYWNrZ3JvdW5kLXNpemU6MjAwJSAxMDAlOyBhbmltYXRpb246c2hpbW1lciAycyBpbmZpbml0ZSBsaW5lYXI7IH0gQGtleWZyYW1lcyBzaGltbWVyIHsgMCUgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjIwMCUgMDsgfSAxMDAlIHsgYmFja2dyb3VuZC1wb3NpdGlvbjotMjAwJSAwOyB9IH0gLmNvbnRlbnQtc2tlbGV0b24uZGVidWc6OmFmdGVyIHsgY29udGVudDphdHRyKGRhdGEtYmxvY2spICIgfCAiIGF0dHIoZGF0YS1zb3VyY2UpICIgfCAiIGF0dHIoZGF0YS1nZW5lcmF0ZWQtYXQpOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjRweDsgbGVmdDo0cHg7IHJpZ2h0OjRweDsgZm9udC1zaXplOjAuN3JlbTsgZm9udC1mYW1pbHk6bW9ub3NwYWNlLCBzYW5zLXNlcmlmOyBjb2xvcjojZmZmOyBiYWNrZ3JvdW5kOnJnYmEoMCwwLDAsMC42KTsgcGFkZGluZzoycHggNHB4OyBib3JkZXItcmFkaXVzOjRweDsgei1pbmRleDoxMDsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSBib2R5IHsgd2lkdGg6YXV0bzsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgZm9udC1zaXplOjFyZW07IGZvbnQtZmFtaWx5OnZhcigtLWZvbnQtdGV4dC1tb2IpOyBjb2xvcjp2YXIoLS1kZWZhdWx0LWJsYWNrKTsgZm9udC13ZWlnaHQ6dmFyKC0tZm9udC10ZXh0LXdlaWdodCk7IH0gdWwgeyBsaXN0LXN0eWxlOm5vbmU7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBsaXN0LXN0eWxlLXBvc2l0aW9uOmluaXRpYWw7IGxpc3Qtc3R5bGUtaW1hZ2U6aW5pdGlhbDsgfSAucmVzcG9uc2l2ZS1lZGl0b3IgdWwgeyBsaXN0LXN0eWxlOmluaGVyaXQ7IGxpc3Qtc3R5bGUtdHlwZTppbmhlcml0OyBsaXN0LXN0eWxlLXBvc2l0aW9uOmluaGVyaXQ7IGxpc3Qtc3R5bGUtaW1hZ2U6aW5oZXJpdDsgfSBzdmcsIHN2Zy5pY29ueyAtLWljb24tc2l6ZTpjYWxjKHZhcigtLWZzLCB2YXIoLS1mczApKSAvIHZhcigtLXJhdGlvKSk7IGZpbGw6dmFyKC0tdHh0LWNvbG9yLCB2YXIoLS1ibGFjaykpOyB3aWR0aDp2YXIoLS1pY29uLXNpemUpOyBoZWlnaHQ6dmFyKC0taWNvbi1zaXplKTsgfSBzdmcuYXV0aG9yaXplZC1ibGFja3tmaWxsOiMyODI4MjghaW1wb3J0YW50O30gc3ZnLmF1dGhvcml6ZWQtYmxhY2sta2lhe2ZpbGw6IzA1MTQxRiFpbXBvcnRhbnQ7fSBzdmcuYXV0aG9yaXplZC1yZWR7ZmlsbDojRkYwMDAwIWltcG9ydGFudDt9IHN2Zy5hdXRob3JpemVkLXdoaXRle2ZpbGw6I0ZGRkZGRiFpbXBvcnRhbnQ7fSAuYXV0aG9yaXplZC1yZWQtd2hpdGUtcGxheS1idG57YmFja2dyb3VuZDpyYWRpYWwtZ3JhZGllbnQoI0ZGRkZGRiA1MCUsdHJhbnNwYXJlbnQgNTAlKTt9IHN2Zy5vZ2NvbG9yLWZhY2Vib29re2ZpbGw6IzQyNjdCMiFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci10d2l0dGVye2ZpbGw6IzFEQTFGMiFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci14LXR3aXR0ZXJ7ZmlsbDojMTQxNzFBIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXgtdHdpdHRlci13aGl0ZXtmaWxsOiNGRkZGRkYhaW1wb3J0YW50O30gc3ZnLm9nY29sb3ItbGlua2VkaW57ZmlsbDojMDA3N0I1IWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLWJsb2dnZXJ7ZmlsbDojRkY1NzIyIWltcG9ydGFudDt9IHN2Zy5vZ2NvbG9yLXBpbnRlcmVzdHtmaWxsOiNFNjAwMjMhaW1wb3J0YW50O30gc3ZnLm9nY29sb3IteW91dHViZXtmaWxsOiNGRjAwMDAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOnJhZGlhbC1ncmFkaWVudCgjRkZGRkZGIDUwJSx0cmFuc3BhcmVudCA1MCUpO30gc3ZnLm9nY29sb3ItaW5zdGFncmFte2ZpbGw6IzgzM0FCNCFpbXBvcnRhbnQ7fSBzdmcub2djb2xvci10aWt0b2t7ZmlsbDojZmYwMDUwIWltcG9ydGFudDt9IC5mYWNlYm9vay1vZ2ljb24tdHdlYWtze2hlaWdodDoyNHB4IWltcG9ydGFudDttYXJnaW4tdG9wOjJweCFpbXBvcnRhbnQ7fSAjZm9vdGVyIC5mYWNlYm9vay1vZ2ljb24tdHdlYWtze2hlaWdodDoyM3B4IWltcG9ydGFudDttYXJnaW4tdG9wOjBweCFpbXBvcnRhbnQ7fSAuaW5zdGFncmFtLW9naWNvbi10d2Vha3N7aGVpZ2h0OjI4cHghaW1wb3J0YW50O21hcmdpbi10b3A6MHB4IWltcG9ydGFudDt9ICNmb290ZXIgLmluc3RhZ3JhbS1vZ2ljb24tdHdlYWtze2hlaWdodDoyOXB4IWltcG9ydGFudDttYXJnaW4tdG9wOi00cHghaW1wb3J0YW50O30gc3ZnLmN1c3RvbW1lZGlhLWNvbG9ycGlja2Vye2ZpbGw6dmFyKC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dCkhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1hdXRob3JpemVkLWJsYWNre2JhY2tncm91bmQtY29sb3I6IzI4MjgyOCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLWF1dGhvcml6ZWQtYmxhY2sta2lhe2JhY2tncm91bmQtY29sb3I6IzA1MTQxRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLWF1dGhvcml6ZWQtcmVke2JhY2tncm91bmQtY29sb3I6I0ZGMDAwMCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLWF1dGhvcml6ZWQtd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojRkZGRkZGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1mYWNlYm9va3tiYWNrZ3JvdW5kLWNvbG9yOiMzYTU5OTghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLXR3aXR0ZXJ7YmFja2dyb3VuZC1jb2xvcjojMDBhY2VkIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci14LXR3aXR0ZXJ7YmFja2dyb3VuZC1jb2xvcjojMTQxNzFBIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci14LXR3aXR0ZXItd2hpdGV7YmFja2dyb3VuZC1jb2xvcjojRkZGRkZGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1saW5rZWRpbntiYWNrZ3JvdW5kLWNvbG9yOiMwMDc3QjUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5iZy1vZ2NvbG9yLWJsb2dnZXJ7YmFja2dyb3VuZC1jb2xvcjojRkY1NzIyIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci1waW50ZXJlc3R7YmFja2dyb3VuZC1jb2xvcjojRTYwMDIzIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYmctb2djb2xvci15b3V0dWJle2JhY2tncm91bmQtY29sb3I6I0ZGMDAwMCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItaW5zdGFncmFte2JhY2tncm91bmQtY29sb3I6I2YyMzk5NSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLW9nY29sb3ItdGlrdG9re2JhY2tncm91bmQtY29sb3I6I2ZmMDA1MCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmJnLWN1c3RvbW1lZGlhLWNvbG9ycGlja2Vye2JhY2tncm91bmQtY29sb3I6dmFyKC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dCkhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLWF1dGhvcml6ZWQtYmxhY2t7Y29sb3I6IzI4MjgyOCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtYXV0aG9yaXplZC1ibGFjay1raWF7Y29sb3I6IzA1MTQxRiFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtYXV0aG9yaXplZC1yZWR7Y29sb3I6I0ZGMDAwMCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtYXV0aG9yaXplZC13aGl0ZXtjb2xvcjojRkZGRkZGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLWZhY2Vib29re2NvbG9yOiMzYTU5OTghaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItdHdpdHRlcntjb2xvcjojMDBhY2VkIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXgtdHdpdHRlcntjb2xvcjojMTQxNzFBIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXgtdHdpdHRlci13aGl0ZXtjb2xvcjojRkZGRkZGIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLWxpbmtlZGlue2NvbG9yOiMwMDc3QjUhaW1wb3J0YW50O30gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5jLW9nY29sb3ItYmxvZ2dlcntjb2xvcjojRkY1NzIyIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXBpbnRlcmVzdHtjb2xvcjojRTYwMDIzIWltcG9ydGFudDt9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuYy1vZ2NvbG9yLXlvdXR1YmV7Y29sb3I6I0ZGMDAwMCFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6cmFkaWFsLWdyYWRpZW50KCNGRkZGRkYgNTAlLHRyYW5zcGFyZW50IDUwJSk7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci1pbnN0YWdyYW17Y29sb3I6I2YyMzk5NSFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtb2djb2xvci10aWt0b2t7Y29sb3I6I2ZmMDA1MCFpbXBvcnRhbnQ7fSAuc29jaWFsLW1lZGlhX19jb250YWluZXIgLmMtY3VzdG9tbWVkaWEtY29sb3JwaWNrZXJ7Y29sb3I6dmFyKC0tYWRtaW4tc29jaWFsLWN1c3RvbS1jb2xvci1waWNrZXItdGV4dCkhaW1wb3J0YW50O30gLm5vdGUtYm94eyBkaXNwbGF5OmJsb2NrOyBib3JkZXItcmFkaXVzOjAuMjVyZW07IH0gLm5vdGUtc3VjY2Vzc3sgY29sb3I6IzE1NTcyNDsgYmFja2dyb3VuZC1jb2xvcjojZDRlZGRhOyBib3JkZXItY29sb3I6IzE1NTcyNDsgYm9yZGVyLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgfSAubm90ZS1lcnJvcnsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZC1jb2xvcjojZmYwMDAwOyBib3JkZXItY29sb3I6I2ZmMDAwMDsgYm9yZGVyLXdpZHRoOnZhcigtLWJvcmRlci10aGluKTsgfSB1bC5jaGVja2xpc3QgbGk6YmVmb3JleyBjb250ZW50OiIiOyBib3JkZXItbGVmdDowLjJyZW0gc29saWQ7IGJvcmRlci1ib3R0b206MC4ycmVtIHNvbGlkOyB3aWR0aDowLjdyZW07IGhlaWdodDowLjRyZW07IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7IG1hcmdpbi1yaWdodDoxcmVtOyB9IHVsLmNoZWNrbGlzdCBsaXsgbWFyZ2luLXRvcDp2YXIoLS1zcGFjZSk7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5pbnZhbGlkID4gOmlzKGlucHV0LHNlbGVjdCx0ZXh0YXJlYSl7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYzsgfSAuLWJnLXdoaXRleyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWdyYXl7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ3JheSk7IGNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWRhcmstZ3JheXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1kYXJrLWdyYXkpOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1ibGFjay1ncmF5eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrLWdyYXkpOyBjb2xvcjp2YXIoLS13aGl0ZSk7IH0gLi1iZy1ibGFja3sgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1ibGFjayk7IGNvbG9yOnZhcigtLXdoaXRlKTsgfSAuLWJnLWxpZ2h0eyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWxpZ2h0KTsgY29sb3I6dmFyKC0tYmxhY2spOyB9IC4tYmctbGlnaHQtZ3JheXsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgY29sb3I6dmFyKC0tYmxhY2spOyB9IC4tYmctbm9uZXtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O30gLi1yb3VuZHsgYm9yZGVyLXJhZGl1czowLjNyZW07IH0gLnB1c2gtZG93bnsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTowcHg7IH0gLnByaWNlLW1haW57IGNvbG9yOiNmZjAwMDA7IH0gLnByaWNlLXN0cmlrZXsgY29sb3I6Izk5OTsgdGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaDsgfSAuZm9ybWF0LXByaWNleyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWF4LXdpZHRoOmZpdC1jb250ZW50OyBtYXJnaW4tcmlnaHQ6MC43cmVtOyBsaW5lLWhlaWdodDoxZW07IHdoaXRlLXNwYWNlOm5vd3JhcDsgfSA6aXMoLkVOR0xJU0gsW2RhdGEtbGFuZz0iZW4iXSkgLmZvcm1hdC1wcmljZXsgbWFyZ2luLWxlZnQ6MC42cmVtOyBtYXJnaW4tcmlnaHQ6dW5zZXQ7IH0gLmZvcm1hdC1wcmljZTphZnRlcnsgY29udGVudDoiJCI7IGZvbnQtc2l6ZTptYXgoMC41cmVtLDAuNmVtKTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDp2YXIoLS1mb3JtYXQtcGljZS1zaWduLXBvc2l0aW9uLDApOyByaWdodDotMC42ZW07IGxpbmUtaGVpZ2h0OmluaGVyaXQ7IH0gLmZpbmFsLXByaWNlIC5mb3JtYXQtcHJpY2U6YWZ0ZXJ7IG1hcmdpbi10b3A6LTVweDsgfSAuZmluYWwtcHJpY2UgLmZvcm1hdC1wcmljZXsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmctcmlnaHQ6MnB4OyB9IDppcyguRU5HTElTSCxbZGF0YS1sYW5nPSJlbiJdKSAuZm9ybWF0LXByaWNlOmFmdGVyeyBsZWZ0Oi0wLjdlbTsgcmlnaHQ6dW5zZXQ7IH0gLnByaWNlLWVuOmJlZm9yZXsgY29udGVudDoiJCI7IH0gOmlzKC5wcmljZS1lbik6YmVmb3JleyBmb250LXNpemU6MC42ZW07IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTAuNWVtOyB9IC5wcmljZS1mcjphZnRlcnsgY29udGVudDoiICQiOyB9IDppcygucHJpY2UtZnIpOmFmdGVyeyBmb250LXNpemU6MC42ZW07IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6LTAuNWVtOyB9IC5zY3JhdGNoLW92ZXIsIC5zY3JhdGNoLWxlYXNleyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuc2NyYXRjaC1vdmVyOmJlZm9yZSwgLnNjcmF0Y2gtbGVhc2U6YmVmb3JleyBiYWNrZ3JvdW5kOm5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgYmxhY2s7IGNvbnRlbnQ6IiAiOyBoZWlnaHQ6MnB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjQ1JTsgLW1vei10cmFuc2Zvcm06cm90YXRlKDdkZWcpOyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IHRyYW5zZm9ybTpyb3RhdGUoN2RlZyk7IHdpZHRoOjkwJTsgfSAuRU5HTElTSCA6aXMoLnNjcmF0Y2gtbGVhc2UsLnNjcmF0Y2gtb3Zlcik6aGFzKC5mb3JtYXQtcHJpY2UpOmJlZm9yZXsgbWFyZ2luLWxlZnQ6MC41cmVtOyB9IC5ibHVyLW92ZXIsIC5ibHVyLWxlYXNlIHsgLXdlYmtpdC1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtbW96LWZpbHRlcjpibHVyKDAuMTVlbSk7IC1tcy1maWx0ZXI6Ymx1cigwLjE1ZW0pOyAtby1maWx0ZXI6Ymx1cigwLjE1ZW0pOyBmaWx0ZXI6Ymx1cigwLjE1ZW0pOyB9IC5vdXQtdmlld3sgcG9zaXRpb246Zml4ZWQ7IHRvcDotMjBweDsgY29sb3I6cmdiYSgyNTUsMjU1LDI1NSwwKTsgei1pbmRleDowOyB9IC50b3AtZml4ZWQgeyBwb3NpdGlvbjpmaXhlZDsgdG9wOjMuMnJlbTsgbGVmdDowOyB6LWluZGV4OjEwMDsgYWxpZ24taXRlbXM6Y2VudGVyOyB9IC5maXhlZC13cmFwcGVyLnRvcC1maXhlZCB7IHdpZHRoOjEwMCU7IHBhZGRpbmc6dmFyKC0tcyk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IGJvcmRlci1ib3R0b20td2lkdGg6MXB4OyBib3JkZXItYm90dG9tLWNvbG9yOiMwMDA7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZGlzcGxheTpmbGV4OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5maXhlZC13cmFwcGVyLnRvcC1maXhlZCA+IC5wcm9tb0JUTiB7IG1hcmdpbjowOyB3aWR0aDo5MHZ3OyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5maXhlZC13cmFwcGVyLnRvcC1maXhlZCAuY3RhLWxhYmVseyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubWFpbi1jb2xvcnN7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgY29sb3I6dmFyKC0tdGFiLXRleHQtY29sb3IpOyB9IC5wcm9tby1jb2xvcnN7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1jb2xvcik7IGNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgY29sb3I6dmFyKC0tcHJvbW8tdGV4dC1jb2xvcik7IH0gLmJ0bnsgLS1idG4tYmctY29sOnZhcigtLXRhYi1jb2xvcik7IC0tYnRuLXR4dC1jb2w6dmFyKC0tdGFiLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJ0bi1iZy1jb2wpOyBjb2xvcjp2YXIoLS1idG4tdHh0LWNvbCk7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tYnRuLWJyZC1jb2wsIHZhcigtLWJ0bi10eHQtY29sKSk7IHBhZGRpbmc6MC41cmVtOyBmb250LXdlaWdodDpib2xkOyB9IC5idG4tZGFyay1ncmV5LCAuY2JEYXJrR3JleXsgLS1idG4tYmctY29sOiMzMzM7IC0tYnRuLXR4dC1jb2w6I2ZmZjsgfSBbcm9sZT0iYnV0dG9uIl17IGN1cnNvcjpwb2ludGVyOyB9IC5idG4tcHJvbW97IC0tdHh0LWNvbG9yOnZhcigtLXByb21vLXRleHQtY29sb3IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IGNvbG9yOnZhcigtLXR4dC1jb2xvcik7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm9tby1jb2xvcik7IGJvcmRlcjoxcHggc29saWQgdmFyKC0tcHJvbW8tdGV4dC1jb2xvcik7IHBvc2l0aW9uOnJlbGF0aXZlOyBhbGlnbi1pdGVtczpjZW50ZXI7IGJvcmRlcjpub25lOyB9IC5idG4tY3RhOmFmdGVyeyBjb250ZW50OiJcZjA1NCI7IGZvbnQtc3R5bGU6bm9ybWFsOyB0ZXh0LWRlY29yYXRpb246aW5oZXJpdDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjFyZW07IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBmb250LXdlaWdodDo5MDA7IH0gLmJ0bi1tYWlueyAtLWJ0bi1iZy1jb2w6dmFyKC0tdGFiLWNvbG9yKTsgLS1idG4tdHh0LWNvbDp2YXIoLS10YWItdGV4dC1jb2xvcik7IC0tYnRuLWJyZC1jb2w6dmFyKC0tdGFiLXRleHQtY29sb3IsIHZhcigtLXRhYi10ZXh0LWNvbG9yKSk7IH0gLmJ0bi1tYWluMiwgLmJ0bi1tYWluOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLW1lbnUtaG92ZXItYmctY29sb3IpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IGNvbG9yOnZhcigtLW1lbnUtaG92ZXItdGV4dC1jb2xvcik7IH0gLmJ0bi1ibGFja3sgYmFja2dyb3VuZC1jb2xvcjojMDAwOyBjb2xvcjojZmZmOyAtLXR4dC1jb2xvcjojZmZmOyB9IC5idG4tbGlnaHR7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyOjFweCBzb2xpZCAjYWFhOyBjb2xvcjojODg4OyB9IC5idG4tc3VjY2Vzc3sgLS1idG4tYmctY29sOiM0Y2FmNTA7IC0tYnRuLXR4dC1jb2w6I2ZmZjsgfSAuYnRuLXdhcm5pbmd7IC0tYnRuLWJnLWNvbDojZmY5ODAwOyAtLWJ0bi10eHQtY29sOiNmZmY7IH0gLmJudC1kaXNhYmxlZCwgLmJ0bltkaXNhYmxlZF0geyBjb2xvcjp2YXIoLS1ncmF5KTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1ncmF5KTsgfSAuYnRuLWVtYWlsLW1lLCAuYnRuLXRleHQtbWV7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5idG4tZW1haWwtbWU6YmVmb3JleyBjb250ZW50OiJcZjBlMCI7IGZvbnQtd2VpZ2h0OjkwMDsgfSAuYnRuLXRleHQtbWU6YmVmb3JleyBjb250ZW50OiJcZjNjZCI7IGZvbnQtc2l6ZTp4LWxhcmdlOyBmb250LXdlaWdodDo5MDA7IH0gLmJ0bi1lbWFpbC1tZTpiZWZvcmUsIC5idG4tdGV4dC1tZTpiZWZvcmV7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBtYXJnaW4tcmlnaHQ6NXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOi0xcHg7IH0gYnV0dG9uLnJvdW5kLWJ1dHRvbnsgYWxsOmluaGVyaXQ7IGJvcmRlci1yYWRpdXM6NTAlOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRhYi10ZXh0LWNvbG9yKTsgZmlsbDp2YXIoLS10YWItY29sb3IpOyBwYWRkaW5nOjAuM3JlbTsgY3Vyc29yOnBvaW50ZXI7IH0gYnV0dG9uLmljb24tYnV0dG9ueyBjb2xvcjp2YXIoLS1wcm9tby1idG4tY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmY7IGJvcmRlcjpub25lOyBwYWRkaW5nOjAuNXJlbTsgd2lkdGg6YXV0bzsgfSAueC1jbG9zZXsgYmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyBhcmlhLWhpZGRlbj0ndHJ1ZScgZm9jdXNhYmxlPSdmYWxzZScgdmlld0JveD0nMCAwIDEwIDEwJyUzRSUzQ3N0eWxlJTNFLnZlcnQlN0JmaWxsOiUyMzAwMDslN0QlM0Mvc3R5bGUlM0UlM0NyZWN0IGNsYXNzPSd2ZXJ0JyBoZWlnaHQ9JzgnIHdpZHRoPScyJyB5PScxJyB4PSc0JyUzRSUzQy9yZWN0JTNFJTNDcmVjdCBoZWlnaHQ9JzInIHdpZHRoPSc4JyB5PSc0JyB4PScxJyUzRSUzQy9yZWN0JTNFJTNDL3N2ZyUzRSIpOyBiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50OyBib3JkZXI6bm9uZTsgd2lkdGg6MS41cmVtOyBoZWlnaHQ6MS41cmVtOyB0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTsgY3Vyc29yOnBvaW50ZXI7IH0gOm5vdCguY29tcGxldGVkKS5yaXBwbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyB0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7IH0gOm5vdCguY29tcGxldGVkKS5yaXBwbGU6YWZ0ZXIgeyBjb250ZW50OiIiOyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHRvcDowOyBsZWZ0OjA7IHBvaW50ZXItZXZlbnRzOm5vbmU7IGJhY2tncm91bmQtaW1hZ2U6cmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgcmdiKDAsIDAsIDApIDEwJSwgdHJhbnNwYXJlbnQgMTAuMDElKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjUwJTsgdHJhbnNmb3JtOnNjYWxlKDEwLDEwKTsgb3BhY2l0eTowOyB0cmFuc2l0aW9uOnRyYW5zZm9ybSAuNXMsIG9wYWNpdHkgMXM7IH0gOm5vdCguY29tcGxldGVkKS5yaXBwbGU6YWN0aXZlOmFmdGVyIHsgdHJhbnNmb3JtOnNjYWxlKDAsMCk7IG9wYWNpdHk6LjI7IHRyYW5zaXRpb246MHM7IH0gLmxvZ29hcmVhIHsgbWluLWhlaWdodDo3cmVtOyBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZWVlOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtaGVhZGVyLWJnLWNvbG9yKTsgfSBhID4gOndoZXJlKDppcyhzdmcsIC5mYSwgLmZhcyk6Zmlyc3QtY2hpbGQ6bm90KDpvbmx5LWNoaWxkKSl7IG1hcmdpbi1yaWdodDowLjZyZW07IH0gLnByb21vVG9wQnRuIDppcyhhLGJ1dHRvbikgeyAtLWZzOnZhcigtLWZzMSk7IC0tdHh0LWNvbG9yOnZhcigtLXRvcC1wcm9tby1idG4tdHh0LCB2YXIoLS10b3AtcHJvbW8tYnRuLXR4dC1jb2xvcikpOyBib3JkZXItcmFkaXVzOjRweDsgYm9yZGVyLXRvcC13aWR0aDoxcHg7IGJvcmRlci1ib3R0b20td2lkdGg6MXB4OyBib3JkZXItY29sb3I6I2YzZjNmMzsgaGVpZ2h0OjMuMnJlbTsgZm9udC1zaXplOnZhcigtLWZzMSk7IGZvbnQtd2VpZ2h0OmJvbGQ7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OmNlbnRlcjsgYWxpZ24taXRlbXM6Y2VudGVyOyBiYWNrZ3JvdW5kOnZhcigtLXRvcC1wcm9tby1idG4tYmcsIHZhcigtLXRvcC1wcm9tby1idG4tYmctY29sb3IpKTsgY29sb3I6dmFyKC0tdG9wLXByb21vLWJ0bi10eHQsIHZhcigtLXRvcC1wcm9tby1idG4tdHh0LWNvbG9yKSk7IH0gLnByb21vVG9wQnRuLmRlYWxlckxpbmVCdXR0b24gOmlzKGEsYnV0dG9uKXsgLS10eHQtY29sb3I6dmFyKC0tYWRtaW4tZ2VuZXJhbC10ZXh0LXVzLWRlYWxlci1saW5lLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kOnZhcigtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS1iZy1jb2xvcik7IGNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS10ZXh0LWNvbG9yKTsgYm9yZGVyLWNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtdGV4dC11cy1kZWFsZXItbGluZS10ZXh0LWNvbG9yKTsgd2lkdGg6MTAwJTsgfSA6aXMoLnByb21vVG9wQnRuLGxhYmVsKS5mbG9hdGluZ3sgcG9zaXRpb246Zml4ZWQ7IGJvdHRvbToxLjVyZW07IHJpZ2h0OjEuNXJlbTsgei1pbmRleDoxMDsgfSAucHJvbW9Ub3BCdG4uZmxvYXRpbmcud2l0aFRvYXN0ZXIge2JvdHRvbTo2cmVtO30gLnByb21vVG9wQnRuLmZsb2F0aW5nIDppcyhhLGJ1dHRvbil7IC0tZnM6dmFyKC0tZnM1KTsgcGFkZGluZzoxcmVtOyBib3JkZXItcmFkaXVzOjUwJTsgYm9yZGVyLXdpZHRoOjFweDsgaGVpZ2h0OnVuc2V0OyB9IC5wcm9tb1RvcEJ0bi5mbG9hdGluZyA6aXMoYSxidXR0b24pIHNwYW4ge2Rpc3BsYXk6bm9uZTt9IC5pY29uLWhlYWRpbmcgc3Bhbi5mYXsgZm9udC1zaXplOmluaGVyaXQ7IHdpZHRoOjFlbTsgcGFkZGluZzowLjJlbTsgaGVpZ2h0OjFlbTsgdGV4dC1hbGlnbjpjZW50ZXI7IGJvcmRlci1yYWRpdXM6NTAlOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWJsYWNrKTsgY29sb3I6dmFyKC0td2hpdGUpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJsYWNrKTsgYm94LXNpemluZzpjb250ZW50LWJveDsgfSAuaWNvbi1oZWFkaW5nIC5zZWNvbmRhcnlUZXh0eyBjb2xvcjojNzU3NTc1OyBmb250LXNpemU6MC43NWVtOyB9IC5ncm91cFRhYnMgPiAqeyBjdXJzb3I6cG9pbnRlcjsgZm9udC1zaXplOmNhbGMoMS4ycmVtICsgKDIwIC0gMTgpICogKCgxMDB2dyAtIDMyMHB4KSAvICgxMTAwIC0gMzAwKSkpOyB9IC5ncm91cFRhYnMgPiAqOmhvdmVyeyBiYWNrZ3JvdW5kLWNvbG9yOiNlZmVmZWY7IH0gLmdyb3VwVGFicyAudGFiLWxhYmVsLCAubmV3Q2FyU2xpZGVyIC5jYXJvdXNlbFRpdGxleyBjb2xvcjp2YXIoLS1uZXctdmVoaWNsZS1jYXJvdXNlbC10eHQtY29sb3IsIHZhcigtLWRlZmF1bHQtYmxhY2spKTsgfSAuZ3JvdXBUYWJzIC5hY3RpdmVUYWIgLnRhYi1sYWJlbHsgY29sb3I6dmFyKC0tbmV3LXZlaGljbGUtY2Fyb3VzZWwtdHh0LWNvbG9yLCB2YXIoLS1kZWZhdWx0LWJsYWNrKSk7IGJvcmRlci1ib3R0b206M3B4IHNvbGlkOyBib3JkZXItYm90dG9tLWNvbG9yOiMwMDA7IGJvcmRlci1ib3R0b20tY29sb3I6dmFyKC0tdGFiLWNvbG9yKTsgfSAuY2FyU2xpZGVyeyBkaXNwbGF5OmZsZXg7IGp1c3RpZnktY29udGVudDpjZW50ZXI7IH0gLmNhclNsaWRlciA+ICp7IHdpZHRoOm1pbig5MHJlbSwxMDAlKTsgfSAuY2FyU2xpZGVyLi1iZy1saWdodC1ncmF5ID4gKnsgbWF4LXdpZHRoOm1pbig3NXJlbSwxMDAlKTsgfSAubmV3Q2FyQ2FyZHsgaGVpZ2h0OjEwMCU7IG1pbi1oZWlnaHQ6MjdyZW07IGJvcmRlcjoxcHggc29saWQgI2JiYjsgYm94LXNpemluZzpib3JkZXItYm94OyBwb3NpdGlvbjpyZWxhdGl2ZTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS13aGl0ZSk7IH0gLm5ld0NhckNhcmQgaW1neyB3aWR0aDoxMDAlOyBtYXJnaW4tdG9wOi0xcmVtOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuY2FyUGF5bWVudFdyYXBwZXJ7IHdpZHRoOm1pbigxMDAlLDI1cmVtKTsgbWluLWhlaWdodDo3cmVtOyB9IC5jYXJQYXltZW50V3JhcHBlciAucGF5bWVudEJsb2NreyBoZWlnaHQ6MTAwJTsgfSAucGF5bWVudHNEaXNhYmxlZCAubmV3Q2FyQ2FyZHsgbWluLWhlaWdodDoyMnJlbTsgfSAudmVoaWNsZUNhcm91c2VsIC5uZXdDYXJDYXJkeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXdoaXRlKTsgd2lkdGg6MjMuN3JlbTsgYm9yZGVyOjFweCBzb2xpZCAjYmJiOyBtYXJnaW46MCAwLjRyZW07IGhlaWdodDoxMDAlIH0gLm5ld0NhckNhcmQgLnByb21vLWJhZGdleyBoZWlnaHQ6Zml0LWNvbnRlbnQ7IG1pbi13aWR0aDo2cmVtOyB9IC5uZXdDYXJDYXJkOmhvdmVyeyBib3gtc2hhZG93OjAgMCAxMHB4IDJweCB2YXIoLS1taWQtZ3JheSk7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tbGlnaHQtZ3JheSk7IH0gLm5ld0NhckNhcmQ6aG92ZXIgLmluU3RvY2tMaW5rIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyB9IC5uZXdDYXJDYXJkIC5jYXJkLWJvZHl7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBoZWlnaHQ6MTJyZW07IG92ZXJmbG93OmhpZGRlbjsgfSAubmV3Q2FyQ2FyZCA+IC5ib3gtbGN7IG1hcmdpbi10b3A6MDsgcGFkZGluZy10b3A6MDsgcGFkZGluZy1ib3R0b206MDsgfSAubmV3Q2FyQ2FyZCA+IC5ib3gtbGM6Zmlyc3QtY2hpbGR7IHBhZGRpbmctdG9wOjAuNXJlbTsgbWF4LWhlaWdodDoxMHJlbTsgfSAubmV3Q2FyQ2FyZCAuZGVza3RvcFBheW1lbnR7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5uZXdDYXJDYXJkIHNwYW4ucGF5bWVudENhbGNCdG4uZGVza3RvcHsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjclOyBmb250LXNpemU6MS43ZW07IGN1cnNvcjpwb2ludGVyOyB9IC51c2VkQ2FyU2xpZGV7IGRpc3BsYXk6YmxvY2s7IGJvcmRlcjoxcHggc29saWQgI2JiYjsgYmFja2dyb3VuZC1jb2xvcjojZmZmOyBoZWlnaHQ6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC51c2VkQ2FyU2xpZGUgKnsgYm94LXNpemluZzpib3JkZXItYm94OyB9IC51c2VkQ2FyU2xpZGUgLnNsaWRlQ29udGVudHsgaGVpZ2h0OjEwMCUgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLXJpZ2h0OjEwcHg7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gLmZhOjphZnRlciB7IGNvbnRlbnQ6IlxmMDcxIjsgfSAuYW5pbWF0ZWQtdHJpYW5nbGUgaXsgcG9zaXRpb246cmVsYXRpdmU7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gc3ZnLCAuYW5pbWF0ZWQtdHJpYW5nbGUgPiAuZmE6OmFmdGVyIHsgYW5pbWF0aW9uOnJpcHBsZS0xIDFzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb24tZGVsYXk6MC41czsgYW5pbWF0aW9uOnJpcHBsZS0yIDFzIGluZmluaXRlIGVhc2UtaW4tb3V0OyBhbmltYXRpb24tZGVsYXk6MC43NXM7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hbmltYXRlZC10cmlhbmdsZSA+IC5mYTo6YWZ0ZXJ7IHRvcDowOyBsZWZ0OjA7IH0gLmFuaW1hdGVkLXRyaWFuZ2xlID4gc3ZneyB0b3A6MXB4OyBsZWZ0Oi0xcmVtOyB9IEBrZXlmcmFtZXMgcmlwcGxlLTEgeyAwJSB7IHRyYW5zZm9ybTpzY2FsZSgxKTsgb3BhY2l0eToxOyB9IDEwMCUgeyB0cmFuc2Zvcm06c2NhbGUoMS43KTsgb3BhY2l0eTowOyB9IH0gQGtleWZyYW1lcyByaXBwbGUtMiB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKDEpOyBvcGFjaXR5OjE7IH0gMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSgyKTsgb3BhY2l0eTowOyB9IH0gc3Bhbi5hc3Rlcml4OmFmdGVyeyBjb250ZW50OiIqIjsgcG9zaXRpb246cmVsYXRpdmU7IGZvbnQtc2l6ZToycmVtOyB9IGRpdi5wcmljZU5vdGUuYXN0ZXJpeDpiZWZvcmV7IGNvbnRlbnQ6IioiOyBwb3NpdGlvbjpyZWxhdGl2ZTsgZm9udC1zaXplOjFyZW07IH0gZm9vdGVyIHsgLXdlYmtpdC1ib3gtc2hhZG93Omluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgLW1vei1ib3gtc2hhZG93OiBpbnNldCAwcHggMTBweCAxMXB4IC0xMXB4IHJnYmEoNTAsIDUwLCA1MCwgMC43NSk7IGJveC1zaGFkb3c6IGluc2V0IDBweCAxMHB4IDExcHggLTExcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc1KTsgLS10eHQtY29sb3I6dmFyKC0tZm9vdGVyLWl0ZW1zLWxpbmstY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWZvb3Rlci1iZy1jb2xvcik7IGNvbG9yOnZhcigtLWZvb3Rlci1pdGVtcy1saW5rLWNvbG9yKTsgfSBhLnZpc2l0Q29udGFjdEJ1dHRvbnsgLS10eHQtY29sb3I6dmFyKC0tcHJvbW8tYnRuLXRleHQtY29sb3IpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1iZy1jb2xvcik7IGNvbG9yOnZhcigtLXByb21vLWJ0bi10ZXh0LWNvbG9yKTsgfSAuY0Zvb3RlckNhckxpbmtzIGxpLmNJdGVtRXhwZW5keyBkaXNwbGF5Om5vbmU7IH0gLmNGb290ZXJDYXJMaW5rcyBoMywgLmZvb3Rlcl9hZGRyZXNzIC5hZHIgPiBzcGFueyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5jRm9vdGVyQ2FyTGlua3Mgc3Bhbi5oMy1hbHQgeyBkaXNwbGF5OmJsb2NrOyBjb2xvcjp2YXIoLS1mb290ZXItbGluay10aXRsZS1jb2wpOyB9IC5jRm9vdGVyQ2FyTGlua3MuY0xpc3RFeHBlbmRlZCBsaS5jSXRlbUV4cGVuZHsgZGlzcGxheTpibG9jazsgfSAuY0V4cGVuZExpc3QgYnV0dG9ueyBwYWRkaW5nOnZhcigtLXMpIDA7IGJhY2tncm91bmQ6bm9uZTsgfSAuY29uZGl0aW9uc0Zvb3RlciB7IGNvbG9yOnZhcigtLWZvb3Rlci1jb25kaXRpb25zLWNvbG9yLCAjOTE5MTkxKTsgLS10eHQtY29sb3I6dmFyKC0tZm9vdGVyLWNvbmRpdGlvbnMtY29sb3IpOyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uIHsgcG9zaXRpb246Zml4ZWQ7IGJvdHRvbToxMHB4OyBtYXJnaW46NXB4IDVweCAxNXB4IDE1cHg7IHotaW5kZXg6NDsgd2lkdGg6MTQwcHggIWltcG9ydGFudDsgYm9yZGVyLXdpZHRoOjFweDsgYmFja2dyb3VuZC1jb2xvcjojZWEwMDI5OyB0ZXh0LWFsaWduOmxlZnQ7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tdHJhZGVpbmJhci1idG4tYmcpOyBjb2xvcjogdmFyKC0tdHJhZGVpbmJhci1idG4tY29sb3IpOyBhbGlnbi1pdGVtczpjZW50ZXI7IGJvcmRlci1yYWRpdXM6OHB4OyBib3JkZXItd2lkdGg6MXB4IDNweCA0cHggMXB4OyBib3JkZXItY29sb3I6IzMzMzMzMzsgcGFkZGluZy10b3A6MTBweDsgfSAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiBpeyBkaXNwbGF5OmlubGluZS1mbGV4OyBib3JkZXItcmFkaXVzOjEwMCU7IHdpZHRoOjJlbTsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyBib3JkZXI6MnB4IHNvbGlkICNmZmY7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgaGVpZ2h0OjEuNWVtOyBjb2xvcjojMDAwOyBmbG9hdDpsZWZ0OyB9IC50cmFkZUluQmFyTW9iaWxlQnV0dG9uLndpdGhUb2FzdGVyIHsgYm90dG9tOjVyZW07IH0gI3RyYWRlSW5CYXJQb3B1cF9saW5lMXsgYmFja2dyb3VuZC1jb2xvcjojZjFmMWYxOyBib3JkZXI6MXB4IHNvbGlkIGdyZXk7IHBhZGRpbmc6MjBweCA0MHB4OyBmb250LXNpemU6MS4xMjVyZW0gOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAuYnRuLnRyYWRlSW5CYXJQb3B1cFN1Ym1pdHsgcGFkZGluZzowLjc1cmVtIDAuMzc1cmVtOyBib3JkZXItd2lkdGg6MXB4OyBib3JkZXItY29sb3I6IzAwMDsgZm9udC13ZWlnaHQ6Ym9sZDsgYm9yZGVyLXJhZGl1czozcHg7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIGlucHV0eyBtYXJnaW46NXB4IDAgMDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XeyBoZWlnaHQ6NTgwcHg7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjay10ZXh0KTsgcGFkZGluZzoxNXB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIGlucHV0eyBwYWRkaW5nOjExcHggMTBweDsgZm9udC1zaXplOjAuOTM4cmVtIDsgd2lkdGg6MjUwcHg7IG1hcmdpbjo1cHggMCAwOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTkhaW1wb3J0YW50OyB9ICN0cmFkZUluQmFyUG9wdXBfZm9ybVcgLnRyYWRpblNlbGVjdFBvcHVweyBjb2xvcjojM2MzODM2OyBmb250LXNpemU6MXJlbTsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwyNTUsMjU1LDEpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSA1MCU7IGFwcGVhcmFuY2U6bm9uZTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyBtYXJnaW46NXB4IDAgMDsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIDo6cGxhY2Vob2xkZXIgeyBjb2xvcjojYTlhOWE5OyBvcGFjaXR5OjE7IH0gI3RyYWRlSW5CYXJQb3B1cF9mb3JtVyA6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgfSAjdHJhZGVJbkJhclBvcHVwX2Zvcm1XIDo6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHsgY29sb3I6I2E5YTlhOTsgfSAudHJhZGluU2VsZWN0LCAudHJhZGluU2VsZWN0UG9wdXAgeyBjb2xvcjojM2MzODM2OyBmb250LXNpemU6MXJlbTsgbWFyZ2luOjVweCAwIDA7IGFwcGVhcmFuY2U6bm9uZTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IC1tb3otYXBwZWFyYW5jZTpub25lOyB9IC50cmFkaW5TZWxlY3RBIHsgcG9zaXRpb246cmVsYXRpdmU7IH0gLnRyYWRpblNlbGVjdEE6YWZ0ZXIgeyBjb250ZW50OiIgIjsgaGVpZ2h0OjA7IHdpZHRoOjA7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgIzAwMDAwMDsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjE0cHg7IHRvcDoxN3B4OyB0cmFuc2l0aW9uOmFsbCAwLjNzIGxpbmVhcjsgcG9pbnRlci1ldmVudHM6bm9uZTsgfSAuZW1haWxCb2R5LCAuZW1haWxTdWJqZWN0eyBkaXNwbGF5Om5vbmU7IH0gLnJldmVhbC1tb2RhbDpub3QoI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIpICo6bm90KC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciA6aXMoaW5wdXQsIHNlbGVjdCkpeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLnJldmVhbC1tb2RhbDpub3QoI3BheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIpIDppcyhpbnB1dFt0eXBlPSJ0ZXh0Il06bm90KC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBpbnB1dCksaW5wdXRbdHlwZT0iZW1haWwiXSxpbnB1dFt0eXBlPSJ0ZWwiXSxzZWxlY3Q6bm90KC5wYXltZW50Q2FsY3VsYXRvckludGVydmFsLC5wYXltZW50Q2FsY3VsYXRvckttQWxsb3dhbmNlLC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3QsIHNlbGVjdC5zdGVwMjRzZWxlY3QpKXsgcGFkZGluZzowLjRyZW07IGJvcmRlci13aWR0aDoxcHg7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB3aWR0aDoxMDAlOyBib3JkZXItY29sb3I6I2E5YTlhOTsgfSBbZGF0YS1wYWdlPSJIT01FUEFHRSJdeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWhvbWUtYmctY29sb3IsICNGRkZGRkYpOyB9IC55dC1iZy1jb250YWluZXJ7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzpoaWRkZW47IH0gLmJhbm5lci1iZy1jb250YWluZXJ7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyOyBiYWNrZ3JvdW5kLWJsZW5kLW1vZGU6Y29sb3I7IH0gI3lvdXR1YmVfX2NvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjEwMCU7IGhlaWdodDowOyBvdmVyZmxvdzpoaWRkZW47IHBhZGRpbmctYm90dG9tOm1pbihjYWxjKDEwMHZoIC0gdmFyKC0taGVhZGVyLWhlaWdodCwxMHJlbSkpLDY3dncpOyBiYWNrZ3JvdW5kLWNvbG9yOiM4ODg7IH0gI2hvbWVwYWdlX3lvdXR1YmVfcGxheWVyeyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOi00NSU7IGxlZnQ6LTEwJTsgaGVpZ2h0OjE5MCU7IHdpZHRoOjEyMCU7IHBvaW50ZXItZXZlbnRzOm5vbmU7IH0gI3lvdXR1YmVfX2NvbnRhaW5lcjppcyguZnVsbEhlaWdodCwudmlzaWJsZUhlaWdodCl7IHBhZGRpbmctYm90dG9tOmNhbGMoMTAwdmggLSB2YXIoLS1oZWFkZXItaGVpZ2h0LDEwcmVtKSk7IH0gOmlzKC5mdWxsSGVpZ2h0LC52aXNpYmxlSGVpZ2h0KSAjaG9tZXBhZ2VfeW91dHViZV9wbGF5ZXJ7IGhlaWdodDoxMDAlOyB0b3A6MDsgfSAjeW91dHViZV9fY29udGFpbmVyLmZ1bGxXaWR0aHsgcGFkZGluZy1ib3R0b206NTYuMjUlOyB9ICNtb2JpbGVTbGlkZXIgI3lvdXR1YmVfX2NvbnRhaW5lcnsgcGFkZGluZy1ib3R0b206bWF4KDY3dncsMjRyZW0pOyB9ICNtb2JpbGVTbGlkZXIgI3lvdXR1YmVfX2NvbnRhaW5lciAjYmFubmVyX3NlYXJjaF9iYXJfY29udGFpbmVyeyBoZWlnaHQ6bWF4KDY3dncsMjRyZW0pOyBtaW4taGVpZ2h0OjE4cmVtOyB6LWluZGV4OjE7IH0gLmZ1bGxXaWR0aCAjaG9tZXBhZ2VfeW91dHViZV9wbGF5ZXJ7IGhlaWdodDoxMjAlOyB0b3A6LTEwJTsgfSAueXQtdmlkZW97IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXI7IGJhY2tncm91bmQtc2l6ZTpjb3ZlcjsgfSAueXQtcGxheXsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgNTc2IDUxMiI+PCEtLSBGb250IEF3ZXNvbWUgRnJlZSA1LjE1LjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSAoSWNvbnM6Q0MgQlkgNC4wLCBGb250czpTSUwgT0ZMIDEuMSwgQ29kZTpNSVQgTGljZW5zZSkgLS0+PHBhdGggZD0iTTU0OS42NTUgMTI0LjA4M2MtNi4yODEtMjMuNjUtMjQuNzg3LTQyLjI3Ni00OC4yODQtNDguNTk3QzQ1OC43ODEgNjQgMjg4IDY0IDI4OCA2NFMxMTcuMjIgNjQgNzQuNjI5IDc1LjQ4NmMtMjMuNDk3IDYuMzIyLTQyLjAwMyAyNC45NDctNDguMjg0IDQ4LjU5Ny0xMS40MTIgNDIuODY3LTExLjQxMiAxMzIuMzA1LTExLjQxMiAxMzIuMzA1czAgODkuNDM4IDExLjQxMiAxMzIuMzA1YzYuMjgxIDIzLjY1IDI0Ljc4NyA0MS41IDQ4LjI4NCA0Ny44MjFDMTE3LjIyIDQ0OCAyODggNDQ4IDI4OCA0NDhzMTcwLjc4IDAgMjEzLjM3MS0xMS40ODZjMjMuNDk3LTYuMzIxIDQyLjAwMy0yNC4xNzEgNDguMjg0LTQ3LjgyMSAxMS40MTItNDIuODY3IDExLjQxMi0xMzIuMzA1IDExLjQxMi0xMzIuMzA1czAtODkuNDM4LTExLjQxMi0xMzIuMzA1em0tMzE3LjUxIDIxMy41MDhWMTc1LjE4NWwxNDIuNzM5IDgxLjIwNS0xNDIuNzM5IDgxLjIwMXoiIGZpbGw9IiUyM2MzM2MyZCIgLyUzRSUzQy9zdmclM0UnKTsgd2lkdGg6NXJlbTsgaGVpZ2h0OjVyZW07IGJhY2tncm91bmQtc2l6ZTpjb250YWluOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IG9wYWNpdHk6MC43OyB9IC5lbWJlZC1jb250YWluZXIteW91dHViZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBoZWlnaHQ6Y2FsYygxMDB2dyAvICgxNiAvIDkpKTsgb3ZlcmZsb3c6aGlkZGVuOyBtYXgtd2lkdGg6MTAwJTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgYmFja2dyb3VuZC1zaXplOmNvdmVyOyB9IC5tb2JpbGVfYnVzaW5lc3NEZXNjIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLWJnLWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLWJ1c2luZXNzLWRlc2MtdHh0LWNvbG9yX21vYiwgdmFyKC0tZm9vdGVyLWxpbmstdGl0bGUtY29sKSk7IH0gLmJ1c2luZXNzRGVzYyB7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tYnVzaW5lc3MtZGVzYy1iZy1jb2xvcl9tb2IsIHZhcigtLWZvb3Rlci1iZy1jb2xvcikpOyBjb2xvcjp2YXIoLS1idXNpbmVzcy1kZXNjLXR4dC1jb2xvcl9tb2IsIHZhcigtLWZvb3Rlci1saW5rLXRpdGxlLWNvbCkpOyB9IC5idXNpbmVzc0Rlc2MgKiB7IGxpbmUtaGVpZ2h0OjEuNXJlbTsgfSAud3JhcHBlciB7IG1hcmdpbjowIGF1dG87IHdpZHRoOjk2MHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubGFuZ3VhZ2VCYXIgeyBtYXJnaW46MXJlbSBhdXRvIDVweDsgaGVpZ2h0OjI4cHg7IHBhZGRpbmc6MCB2YXIoLS1zKTsgfSAudi1jYXJkLnRvcF9iZyB7IGRpc3BsYXk6ZmxleDsganVzdGlmeS1jb250ZW50OnNwYWNlLWJldHdlZW47IGFsaWduLWl0ZW1zOmNlbnRlcjsgbWFyZ2luLXRvcDoxMHB4OyBtaW4taGVpZ2h0OjhyZW07IHBhZGRpbmc6MCB2YXIoLS1zKTsgfSAuaGVhZGVyLXNlY3Rpb24geyBkaXNwbGF5OmZsZXg7IHZlcnRpY2FsLWFsaWduOm1pZGRsZTsgYWxpZ24tY29udGVudDpzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczpjZW50ZXI7IH0gI3RyYWRlSW5CYXJNb2JpbGV7IGJhY2tncm91bmQtY29sb3I6YmxhY2s7IGNvbG9yOiB3aGl0ZTsgYm9yZGVyLXJhZGl1czo1cHg7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjozcHggNXB4IDVweCA1cHg7IH0gI3RyYWRlSW5CYXJNb2JpbGUgLm1pZGRsZXsgY29sb3I6I2ZmZmZmZjsgfSAjdHJhZGVJbkJhck1vYmlsZSAjZGVmYXVsdFRvcEJhbm5lclRpdGxleyBwYWRkaW5nOjVweCAyMHB4IDBweCAyMHB4OyB9ICN0cmFkZUluQmFyTW9iaWxlIC5kZWZhdWx0VG9wQmFubmVyQnRuV3JhcHBlciBkaXZ7IG1heC13aWR0aDozMzBweDsgbWFyZ2luOjEwcHggYXV0bzsgcGFkZGluZzoxMnB4IDA7IGJvcmRlci1yYWRpdXM6MnB4OyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXByb21vLWJ0bi1iZy1jb2xvcik7IH0gI3RyYWRlSW5CYXJNb2JpbGUgLmRlZmF1bHRUb3BCYW5uZXJCdG5XcmFwcGVyIGF7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW46MCBhdXRvOyBmb250LXdlaWdodDo3MDA7IH0gI3RyYWRlSW5CYXJNb2JpbGUgI2RlZmF1bHRUb3BCYW5uZXJMb2dvIHNwYW57IGZvbnQtc2l6ZTowLjhyZW07IGZvbnQtd2VpZ2h0OjMwMDsgY29sb3I6dmFyKC0tbWlkLWdyYXkpOyB9ICN0cmFkZUluQmFyeyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLXRyYWRlaW5iYXItYmcpOyBjb2xvcjogdmFyKC0tdHJhZGVpbmJhci1jb2xvcik7IH0gI3RyYWRlSW5CYXJXTW9iaWxlLCAjdHJhZGVJbkJhclcgeyBkaXNwbGF5OmZsZXg7IG1pbi1oZWlnaHQ6NTBweDsgbWFyZ2luOmF1dG87IHdpZHRoOm1pbigxMDAlLDEzNTBweCk7IHBvc2l0aW9uOnJlbGF0aXZlOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5sYW5ndWFnZUJhciAuc2VydmljZS1oZWFkZXItZm9ybSA+IGF7IHBhZGRpbmc6NHB4IDEycHg7IGhlaWdodDoxOHB4OyBsaW5lLWhlaWdodDoxOHB4OyBib3JkZXItcmFkaXVzOjA7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1oZWFkZXItc2VydmljZS1hcHBvaW50bWVudC10ZXh0LWNvbG9yLWJnLCB2YXIoLS1sYW5ndWFnZS1idG4tYWN0aXZlLWJnLWNvbG9yKSk7IGNvbG9yOnZhcigtLWhlYWRlci1zZXJ2aWNlLWFwcG9pbnRtZW50LXRleHQtY29sb3IsIHdoaXRlICk7IH0gLmxhbmd1YWdlQmFyIC5zZXJ2aWNlLWhlYWRlci1mb3JtIGE6aG92ZXIgeyBib3JkZXItY29sb3I6dmFyKC0taGVhZGVyLXNlcnZpY2UtYXBwb2ludG1lbnQtdGV4dC1jb2xvci1iZywgdmFyKC0tbGFuZ3VhZ2UtYnRuLWFjdGl2ZS1iZy1jb2xvcikpOyB9ICNhbGVydE1zZ0NvbnRhaW5lcnsgcG9zaXRpb246cmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6IzAwMDsgei1pbmRleDo5OTk7IHdpZHRoOjEwMCU7IGNvbG9yOndoaXRlOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGNvbG9yOnZhcigtLWFkbWluLWdlbmVyYWwtYWxlcnQtYmFyLXRleHQtY29sb3IpOyBmb250LXdlaWdodDo2MDA7IH0gI2FsZXJ0TXNnQ29udGFpbmVyLnN0aWNrLXRvcHsgcG9zaXRpb246c3RpY2t5OyB0b3A6MDsgei1pbmRleDo5OTk5OTsgfSBAbWVkaWEgKG1heC13aWR0aDo3NjdweCkgeyAuYWxlcnQtaGlkZS1vbi1tb2JpbGUgeyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsgfSB9IC5mYS1maXgtY2VudGVyOmJlZm9yZSB7IHdpZHRoOjEuNWVtOyBoZWlnaHQ6MS41ZW07IGp1c3RpZnktY29udGVudDpjZW50ZXI7IGFsaWduLWl0ZW1zOmNlbnRlcjsgZGlzcGxheTpmbGV4OyB9ICN5b3V0dWJlX19jb250YWluZXIuZnVsbHNjcmVlbnsgb2JqZWN0LWZpdDpjb3ZlcjsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6MDsgcmlnaHQ6MDsgdG9wOjA7IG9wYWNpdHk6MC44OyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IHRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3MsIGJvcmRlciAuM3M7IHRvcDowOyBsZWZ0OjA7IHJpZ2h0OjA7IGJvdHRvbTowOyB9IC5tYWluRGl2QWRqdXN0SGVhZGVyLndpdGgtYWxlcnQgeyB0b3A6NDBweDsgfSAucGF5bWVudEJsb2NrQ29udGFpbmVyIHsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jZXJ0LWNvbmNyZXRlLWdyYXksIHZhcigtLWxpZ2h0LWdyYXkpKTsgY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgfSAudmVoaWNsZUxvY2F0aW9ueyBib3JkZXItdG9wOjFweCBzb2xpZCAjZGRkOyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAubGluZVNlcGFyYXRvcnsgYm9yZGVyLXRvcDoxcHggc29saWQgI0E5QTlBOTsgbWFyZ2luLXRvcDo0MHB4OyBtYXJnaW4tYm90dG9tOjQwcHg7IH0gLnJldmVhbC1tb2RhbCBzcGFuLmZhLWhhbmQtcG9pbnRlci1jb2xvciB7IGNvbG9yOiNmZmZmZmY7IG1hcmdpbi1yaWdodDo1cHg7IG1hcmdpbi10b3A6NXB4OyB9IC5jb25mbGljdC1yZXNvbHZlLW9wdGlvbnMgeyBmb250LXNpemU6MC44MTNyZW0gOyB9Ci8qKiAvY3NzL2ZvbnRhd2Vzb21lLWFsbC5taW4uY3NzICoqLwouZmEsLmZhcywuZmFyLC5mYWwsLmZhZCwuZmFiey1tb3otb3N4LWZvbnQtc21vb3RoaW5nOmdyYXlzY2FsZTstd2Via2l0LWZvbnQtc21vb3RoaW5nOmFudGlhbGlhc2VkO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2ZvbnQtc3R5bGU6bm9ybWFsO2ZvbnQtdmFyaWFudDpub3JtYWw7dGV4dC1yZW5kZXJpbmc6YXV0bztsaW5lLWhlaWdodDoxfS5mYS1sZ3tmb250LXNpemU6MS4zMzMzM2VtO2xpbmUtaGVpZ2h0Oi43NWVtO3ZlcnRpY2FsLWFsaWduOi0uMDY2N2VtfS5mYS14c3tmb250LXNpemU6Ljc1ZW19LmZhLXNte2ZvbnQtc2l6ZTouODc1ZW19LmZhLTF4e2ZvbnQtc2l6ZToxZW19LmZhLTJ4e2ZvbnQtc2l6ZToyZW19LmZhLTN4e2ZvbnQtc2l6ZTozZW19LmZhLTR4e2ZvbnQtc2l6ZTo0ZW19LmZhLTV4e2ZvbnQtc2l6ZTo1ZW19LmZhLTZ4e2ZvbnQtc2l6ZTo2ZW19LmZhLTd4e2ZvbnQtc2l6ZTo3ZW19LmZhLTh4e2ZvbnQtc2l6ZTo4ZW19LmZhLTl4e2ZvbnQtc2l6ZTo5ZW19LmZhLTEweHtmb250LXNpemU6MTBlbX0uZmEtZnd7dGV4dC1hbGlnbjpjZW50ZXI7d2lkdGg6MS4yNWVtfS5mYS11bHtsaXN0LXN0eWxlLXR5cGU6bm9uZTttYXJnaW4tbGVmdDoyLjVlbTtwYWRkaW5nLWxlZnQ6MH0uZmEtdWwgPiBsaXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmEtbGl7bGVmdDotMmVtO3Bvc2l0aW9uOmFic29sdXRlO3RleHQtYWxpZ246Y2VudGVyO3dpZHRoOjJlbTtsaW5lLWhlaWdodDppbmhlcml0fS5mYS1ib3JkZXJ7Ym9yZGVyOnNvbGlkIC4wOGVtICNlZWU7Ym9yZGVyLXJhZGl1czouMWVtO3BhZGRpbmc6LjJlbSAuMjVlbSAuMTVlbX0uZmEtcHVsbC1sZWZ0e2Zsb2F0OmxlZnR9LmZhLXB1bGwtcmlnaHR7ZmxvYXQ6cmlnaHR9LmZhLmZhLXB1bGwtbGVmdCwuZmFzLmZhLXB1bGwtbGVmdCwuZmFyLmZhLXB1bGwtbGVmdCwuZmFsLmZhLXB1bGwtbGVmdCwuZmFiLmZhLXB1bGwtbGVmdHttYXJnaW4tcmlnaHQ6LjNlbX0uZmEuZmEtcHVsbC1yaWdodCwuZmFzLmZhLXB1bGwtcmlnaHQsLmZhci5mYS1wdWxsLXJpZ2h0LC5mYWwuZmEtcHVsbC1yaWdodCwuZmFiLmZhLXB1bGwtcmlnaHR7bWFyZ2luLWxlZnQ6LjNlbX0uZmEtc3Bpbnstd2Via2l0LWFuaW1hdGlvbjpmYS1zcGluIDJzIGluZmluaXRlIGxpbmVhcjthbmltYXRpb246ZmEtc3BpbiAycyBpbmZpbml0ZSBsaW5lYXJ9LmZhLXB1bHNley13ZWJraXQtYW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCk7YW5pbWF0aW9uOmZhLXNwaW4gMXMgaW5maW5pdGUgc3RlcHMoOCl9QC13ZWJraXQta2V5ZnJhbWVzIGZhLXNwaW57MCV7LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMGRlZyl9MTAwJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9fUBrZXlmcmFtZXMgZmEtc3BpbnswJXstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSgwZGVnKX0xMDAley13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpO3RyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKX19LmZhLXJvdGF0ZS05MHstbXMtZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTEpOy13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyk7dHJhbnNmb3JtOnJvdGF0ZSg5MGRlZyl9LmZhLXJvdGF0ZS0xODB7LW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0yKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyl9LmZhLXJvdGF0ZS0yNzB7LW1zLWZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0zKTstd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjcwZGVnKTt0cmFuc2Zvcm06cm90YXRlKDI3MGRlZyl9LmZhLWZsaXAtaG9yaXpvbnRhbHstbXMtZmlsdGVyOiJwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuQmFzaWNJbWFnZShyb3RhdGlvbj0wLG1pcnJvcj0xKSI7LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLTEsMSk7dHJhbnNmb3JtOnNjYWxlKC0xLDEpfS5mYS1mbGlwLXZlcnRpY2Fsey1tcy1maWx0ZXI6InByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CYXNpY0ltYWdlKHJvdGF0aW9uPTIsbWlycm9yPTEpIjstd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLC0xKTt0cmFuc2Zvcm06c2NhbGUoMSwtMSl9LmZhLWZsaXAtYm90aCwuZmEtZmxpcC1ob3Jpem9udGFsLmZhLWZsaXAtdmVydGljYWx7LW1zLWZpbHRlcjoicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkJhc2ljSW1hZ2Uocm90YXRpb249MixtaXJyb3I9MSkiOy13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC0xLC0xKTt0cmFuc2Zvcm06c2NhbGUoLTEsLTEpfTpyb290IC5mYS1yb3RhdGUtOTAsOnJvb3QgLmZhLXJvdGF0ZS0xODAsOnJvb3QgLmZhLXJvdGF0ZS0yNzAsOnJvb3QgLmZhLWZsaXAtaG9yaXpvbnRhbCw6cm9vdCAuZmEtZmxpcC12ZXJ0aWNhbCw6cm9vdCAuZmEtZmxpcC1ib3Roey13ZWJraXQtZmlsdGVyOm5vbmU7ZmlsdGVyOm5vbmV9LmZhLXN0YWNre2Rpc3BsYXk6aW5saW5lLWJsb2NrO2hlaWdodDoyZW07bGluZS1oZWlnaHQ6MmVtO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aWR0aDoyLjVlbX0uZmEtc3RhY2stMXgsLmZhLXN0YWNrLTJ4e2xlZnQ6MDtwb3NpdGlvbjphYnNvbHV0ZTt0ZXh0LWFsaWduOmNlbnRlcjt3aWR0aDoxMDAlfS5mYS1zdGFjay0xeHtsaW5lLWhlaWdodDppbmhlcml0fS5mYS1zdGFjay0yeHtmb250LXNpemU6MmVtfS5mYS1pbnZlcnNle2NvbG9yOiNmZmZ9LmZhLTUwMHB4OmJlZm9yZXtjb250ZW50OiJcZjI2ZSJ9LmZhLWFjY2Vzc2libGUtaWNvbjpiZWZvcmV7Y29udGVudDoiXGYzNjgifS5mYS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMmI5In0uZmEtYWRkcmVzcy1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJiYiJ9LmZhLWFpci1mcmVzaGVuZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNWQwIn0uZmEtYWxhcm0tY2xvY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMzRlIn0uZmEtYW1idWxhbmNlOmJlZm9yZXtjb250ZW50OiJcZjBmOSJ9LmZhLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0uZmEtYW5nbGUtZG91YmxlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTAzIn0uZmEtYW5nbGUtZG91YmxlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTAwIn0uZmEtYW5nbGUtZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwMSJ9LmZhLWFuZ2xlLWRvdWJsZS11cDpiZWZvcmV7Y29udGVudDoiXGYxMDIifS5mYS1hbmdsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwNyJ9LmZhLWFuZ2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA0In0uZmEtYW5nbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTA1In0uZmEtYW5nbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTA2In0uZmEtYXBwbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTc5In0uZmEtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxODcifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzU4In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1OSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVhIn0uZmEtYXJyb3ctYWx0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNWIifS5mYS1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTQifS5mYS1hcnJvdy1hbHQtZnJvbS1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzQ2In0uZmEtYXJyb3ctYWx0LWZyb20tbGVmdDpiZWZvcmV7Y29udGVudDoiXGYzNDcifS5mYS1hcnJvdy1hbHQtZnJvbS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNDgifS5mYS1hcnJvdy1hbHQtZnJvbS10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzQ5In0uZmEtYXJyb3ctYWx0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzU1In0uZmEtYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1NiJ9LmZhLWFycm93LWFsdC1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzNTAifS5mYS1hcnJvdy1hbHQtc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzUxIn0uZmEtYXJyb3ctYWx0LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNTIifS5mYS1hcnJvdy1hbHQtc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjM1MyJ9LmZhLWFycm93LWFsdC10by1ib3R0b206YmVmb3Jle2NvbnRlbnQ6IlxmMzRhIn0uZmEtYXJyb3ctYWx0LXRvLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzRiIn0uZmEtYXJyb3ctYWx0LXRvLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM0YyJ9LmZhLWFycm93LWFsdC10by10b3A6YmVmb3Jle2NvbnRlbnQ6IlxmMzRkIn0uZmEtYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjM1NyJ9LmZhLWFycm93LWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhYiJ9LmZhLWFycm93LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhOCJ9LmZhLWFycm93LWNpcmNsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwYTkifS5mYS1hcnJvdy1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGFhIn0uZmEtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNjMifS5mYS1hcnJvdy1mcm9tLWJvdHRvbTpiZWZvcmV7Y29udGVudDoiXGYzNDIifS5mYS1hcnJvdy1mcm9tLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQzIn0uZmEtYXJyb3ctZnJvbS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzNDQifS5mYS1hcnJvdy1mcm9tLXRvcDpiZWZvcmV7Y29udGVudDoiXGYzNDUifS5mYS1hcnJvdy1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjA2MCJ9LmZhLWFycm93LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjA2MSJ9LmZhLWFycm93LXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMzOSJ9LmZhLWFycm93LXNxdWFyZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMzYSJ9LmZhLWFycm93LXNxdWFyZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYzM2IifS5mYS1hcnJvdy1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzNjIn0uZmEtYXJyb3ctdG8tYm90dG9tOmJlZm9yZXtjb250ZW50OiJcZjMzZCJ9LmZhLWFycm93LXRvLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzNlIn0uZmEtYXJyb3ctdG8tcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzQwIn0uZmEtYXJyb3ctdG8tdG9wOmJlZm9yZXtjb250ZW50OiJcZjM0MSJ9LmZhLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZjA2MiJ9LmZhLWFycm93czpiZWZvcmV7Y29udGVudDoiXGYwNDcifS5mYS1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjBiMiJ9LmZhLWFycm93cy1hbHQtaDpiZWZvcmV7Y29udGVudDoiXGYzMzcifS5mYS1hcnJvd3MtYWx0LXY6YmVmb3Jle2NvbnRlbnQ6IlxmMzM4In0uZmEtYXJyb3dzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMDdlIn0uZmEtYXJyb3dzLXY6YmVmb3Jle2NvbnRlbnQ6IlxmMDdkIn0uZmEtYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOmJlZm9yZXtjb250ZW50OiJcZjJhMiJ9LmZhLWF0OmJlZm9yZXtjb250ZW50OiJcZjFmYSJ9LmZhLWF1ZGlvLWRlc2NyaXB0aW9uOmJlZm9yZXtjb250ZW50OiJcZjI5ZSJ9LmZhLWF3YXJkOmJlZm9yZXtjb250ZW50OiJcZjU1OSJ9LmZhLWJhZGdlOmJlZm9yZXtjb250ZW50OiJcZjMzNSJ9LmZhLWJhZGdlLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjMzNiJ9LmZhLWJhbjpiZWZvcmV7Y29udGVudDoiXGYwNWUifS5mYS1iYXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyYSJ9LmZhLWJhcmNvZGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQ2MyJ9LmZhLWJhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMGM5In0uZmEtYmF0dGVyeS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjI0MCJ9LmZhLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNDIifS5mYS1iZWxsOmJlZm9yZXtjb250ZW50OiJcZjBmMyJ9LmZhLWJlbGwtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmODQ4In0uZmEtYmVsbC1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjg0OSJ9LmZhLWJlbGwtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWY2In0uZmEtYmxvZzpiZWZvcmV7Y29udGVudDoiXGY3ODEifS5mYS1ibG9nZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM3YyJ9LmZhLWJsb2dnZXItYjpiZWZvcmV7Y29udGVudDoiXGYzN2QifS5mYS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMjkzIn0uZmEtYmx1ZXRvb3RoLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk0In0uZmEtYm9sdDpiZWZvcmV7Y29udGVudDoiXGYwZTcifS5mYS1ib29rbWFyazpiZWZvcmV7Y29udGVudDoiXGYwMmUifS5mYS1ib3gtb3BlbjpiZWZvcmV7Y29udGVudDoiXGY0OWUifS5mYS1icm9hZGNhc3QtdG93ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTE5In0uZmEtYnRjOmJlZm9yZXtjb250ZW50OiJcZjE1YSJ9LmZhLWJ1ZzpiZWZvcmV7Y29udGVudDoiXGYxODgifS5mYS1idWlsZGluZzpiZWZvcmV7Y29udGVudDoiXGYxYWQifS5mYS1idWxsaG9ybjpiZWZvcmV7Y29udGVudDoiXGYwYTEifS5mYS1idWxsc2V5ZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifS5mYS1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjA3In0uZmEtYnVzLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1NWUifS5mYS1idXMtc2Nob29sOmJlZm9yZXtjb250ZW50OiJcZjVkZCJ9LmZhLWNhbGN1bGF0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMWVjIn0uZmEtY2FsY3VsYXRvci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNjRjIn0uZmEtY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0uZmEtY2FsZW5kYXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjA3MyJ9LmZhLWNhbGVuZGFyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjI3NCJ9LmZhLWNhbGVuZGFyLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzMzIn0uZmEtY2FsZW5kYXItZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMzM0In0uZmEtY2FsZW5kYXItbWludXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjcyIn0uZmEtY2FsZW5kYXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjczIn0uZmEtY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjAzMCJ9LmZhLWNhbWVyYS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzMyIn0uZmEtY2FtZXJhLWhvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmOGZlIn0uZmEtY2FyOmJlZm9yZXtjb250ZW50OiJcZjFiOSJ9LmZhLWNhci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNWRlIn0uZmEtY2FyLWJhdHRlcnk6YmVmb3Jle2NvbnRlbnQ6IlxmNWRmIn0uZmEtY2FyLWJ1aWxkaW5nOmJlZm9yZXtjb250ZW50OiJcZjg1OSJ9LmZhLWNhci1idW1wOmJlZm9yZXtjb250ZW50OiJcZjVlMCJ9LmZhLWNhci1idXM6YmVmb3Jle2NvbnRlbnQ6IlxmODVhIn0uZmEtY2FyLWNyYXNoOmJlZm9yZXtjb250ZW50OiJcZjVlMSJ9LmZhLWNhci1nYXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmNWUyIn0uZmEtY2FyLW1lY2hhbmljOmJlZm9yZXtjb250ZW50OiJcZjVlMyJ9LmZhLWNhci1zaWRlOmJlZm9yZXtjb250ZW50OiJcZjVlNCJ9LmZhLWNhci10aWx0OmJlZm9yZXtjb250ZW50OiJcZjVlNSJ9LmZhLWNhci13YXNoOmJlZm9yZXtjb250ZW50OiJcZjVlNiJ9LmZhLWNhcmF2YW46YmVmb3Jle2NvbnRlbnQ6IlxmOGZmIn0uZmEtY2FyYXZhbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDAwIn0uZmEtY2FyZXQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzJkIn0uZmEtY2FyZXQtY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJlIn0uZmEtY2FyZXQtY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMzMCJ9LmZhLWNhcmV0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzMzEifS5mYS1jYXJldC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkNyJ9LmZhLWNhcmV0LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ5In0uZmEtY2FyZXQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGRhIn0uZmEtY2FyZXQtc3F1YXJlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTUwIn0uZmEtY2FyZXQtc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTkxIn0uZmEtY2FyZXQtc3F1YXJlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjE1MiJ9LmZhLWNhcmV0LXNxdWFyZS11cDpiZWZvcmV7Y29udGVudDoiXGYxNTEifS5mYS1jYXJldC11cDpiZWZvcmV7Y29udGVudDoiXGYwZDgifS5mYS1jYXJzOmJlZm9yZXtjb250ZW50OiJcZjg1YiJ9LmZhLWNhcnQtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYyMTgifS5mYS1jYXJ0LXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0uZmEtY2MtcGF5cGFsOmJlZm9yZXtjb250ZW50OiJcZjFmNCJ9LmZhLWNlcnRpZmljYXRlOmJlZm9yZXtjb250ZW50OiJcZjBhMyJ9LmZhLWNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjZjMCJ9LmZhLWNoYWxrYm9hcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTFiIn0uZmEtY2hhcmdpbmctc3RhdGlvbjpiZWZvcmV7Y29udGVudDoiXGY1ZTcifS5mYS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjIwMSJ9LmZhLWNoYXJ0LWxpbmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGY2NGQifS5mYS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYwMGMifS5mYS1jaGVjay1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU4In0uZmEtY2hlY2stZG91YmxlOmJlZm9yZXtjb250ZW50OiJcZjU2MCJ9LmZhLWNoZWNrLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGEifS5mYS1jaGV2cm9uLWNpcmNsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEzYSJ9LmZhLWNoZXZyb24tY2lyY2xlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM3In0uZmEtY2hldnJvbi1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM4In0uZmEtY2hldnJvbi1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTM5In0uZmEtY2hldnJvbi1kb3VibGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMjIifS5mYS1jaGV2cm9uLWRvdWJsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMyMyJ9LmZhLWNoZXZyb24tZG91YmxlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMyNCJ9LmZhLWNoZXZyb24tZG91YmxlLXVwOmJlZm9yZXtjb250ZW50OiJcZjMyNSJ9LmZhLWNoZXZyb24tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNzgifS5mYS1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUzIn0uZmEtY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNTQifS5mYS1jaGV2cm9uLXNxdWFyZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjMyOSJ9LmZhLWNoZXZyb24tc3F1YXJlLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJhIn0uZmEtY2hldnJvbi1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzJiIn0uZmEtY2hldnJvbi1zcXVhcmUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMzJjIn0uZmEtY2hldnJvbi11cDpiZWZvcmV7Y29udGVudDoiXGYwNzcifS5mYS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0uZmEtY2lyY2xlLW5vdGNoOmJlZm9yZXtjb250ZW50OiJcZjFjZSJ9LmZhLWNpdHk6YmVmb3Jle2NvbnRlbnQ6IlxmNjRmIn0uZmEtY2xpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjMyOCJ9LmZhLWNsb2NrOmJlZm9yZXtjb250ZW50OiJcZjAxNyJ9LmZhLWNsb25lOmJlZm9yZXtjb250ZW50OiJcZjI0ZCJ9LmZhLWNsb3NlZC1jYXB0aW9uaW5nOmJlZm9yZXtjb250ZW50OiJcZjIwYSJ9LmZhLWNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjBjMiJ9LmZhLWNsb3VkLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjBlZCJ9LmZhLWNsb3VkLWRvd25sb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODEifS5mYS1jbG91ZC11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGVlIn0uZmEtY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODIifS5mYS1jbHViOmJlZm9yZXtjb250ZW50OiJcZjMyNyJ9LmZhLWNvZmZlZTpiZWZvcmV7Y29udGVudDoiXGYwZjQifS5mYS1jb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMDEzIn0uZmEtY29nczpiZWZvcmV7Y29udGVudDoiXGYwODUifS5mYS1jb21tZW50OmJlZm9yZXtjb250ZW50OiJcZjA3NSJ9LmZhLWNvbW1lbnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjI3YSJ9LmZhLWNvbW1lbnQtYWx0LWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjRhMiJ9LmZhLWNvbW1lbnQtYWx0LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTAifS5mYS1jb21tZW50LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTEifS5mYS1jb21tZW50czpiZWZvcmV7Y29udGVudDoiXGYwODYifS5mYS1jb21tZW50cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNGI2In0uZmEtY29tbWVudHMtYWx0LWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NTIifS5mYS1jb21tZW50cy1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNjUzIn0uZmEtY29tcHJlc3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQyMiJ9LmZhLWNvbXByZXNzLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNzhjIn0uZmEtY29weTpiZWZvcmV7Y29udGVudDoiXGYwYzUifS5mYS1jb3B5cmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWY5In0uZmEtY291Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNGI4In0uZmEtY3JlYXRpdmUtY29tbW9ucy1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGY0ZjIifS5mYS1jcmVkaXQtY2FyZDpiZWZvcmV7Y29udGVudDoiXGYwOWQifS5mYS1jdXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGM0In0uZmEtZGF0YWJhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWMwIn0uZmEtZGVza3RvcDpiZWZvcmV7Y29udGVudDoiXGYxMDgifS5mYS1kaWFtb25kOmJlZm9yZXtjb250ZW50OiJcZjIxOSJ9LmZhLWRpZ2l0YWwtdGFjaG9ncmFwaDpiZWZvcmV7Y29udGVudDoiXGY1NjYifS5mYS1kb2xsYXItc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTUifS5mYS1kb3QtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE5MiJ9LmZhLWRvd25sb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOSJ9LmZhLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ0In0uZmEtZWxsaXBzaXMtaDpiZWZvcmV7Y29udGVudDoiXGYxNDEifS5mYS1lbGxpcHNpcy1oLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzOWIifS5mYS1lbGxpcHNpcy12OmJlZm9yZXtjb250ZW50OiJcZjE0MiJ9LmZhLWVsbGlwc2lzLXYtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM5YyJ9LmZhLWVuZ2luZS13YXJuaW5nOmJlZm9yZXtjb250ZW50OiJcZjVmMiJ9LmZhLWVudmVsb3BlOmJlZm9yZXtjb250ZW50OiJcZjBlMCJ9LmZhLWVudmVsb3BlLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMmI2In0uZmEtZW52ZWxvcGUtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE5OSJ9LmZhLWVyYXNlcjpiZWZvcmV7Y29udGVudDoiXGYxMmQifS5mYS1leGNoYW5nZTpiZWZvcmV7Y29udGVudDoiXGYwZWMifS5mYS1leGNoYW5nZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYyIn0uZmEtZXhjbGFtYXRpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTJhIn0uZmEtZXhjbGFtYXRpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA2YSJ9LmZhLWV4Y2xhbWF0aW9uLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzMjEifS5mYS1leGNsYW1hdGlvbi10cmlhbmdsZTpiZWZvcmV7Y29udGVudDoiXGYwNzEifS5mYS1leHBhbmQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjQyNCJ9LmZhLWV4cGFuZC1hcnJvd3M6YmVmb3Jle2NvbnRlbnQ6IlxmMzFkIn0uZmEtZXhwYW5kLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzFlIn0uZmEtZXh0ZXJuYWwtbGluazpiZWZvcmV7Y29udGVudDoiXGYwOGUifS5mYS1leHRlcm5hbC1saW5rLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNWQifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGMifS5mYS1leHRlcm5hbC1saW5rLXNxdWFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzYwIn0uZmEtZXllOmJlZm9yZXtjb250ZW50OiJcZjA2ZSJ9LmZhLWV5ZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYwNzAifS5mYS1mYWNlYm9vazpiZWZvcmV7Y29udGVudDoiXGYwOWEifS5mYS1mYWNlYm9vay1mOmJlZm9yZXtjb250ZW50OiJcZjM5ZSJ9LmZhLWZhY2Vib29rLW1lc3NlbmdlcjpiZWZvcmV7Y29udGVudDoiXGYzOWYifS5mYS1mYWNlYm9vay1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDgyIn0uZmEtZmF4OmJlZm9yZXtjb250ZW50OiJcZjFhYyJ9LmZhLWZpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTViIn0uZmEtZmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTVjIn0uZmEtZmlsZS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjFjNiJ9LmZhLWZpbGUtYXVkaW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM3In0uZmEtZmlsZS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjY1OSJ9LmZhLWZpbGUtY2hlY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMzE2In0uZmEtZmlsZS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9LmZhLWZpbGUtZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTZkIn0uZmEtZmlsZS1lZGl0OmJlZm9yZXtjb250ZW50OiJcZjMxYyJ9LmZhLWZpbGUtZXhjZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWMzIn0uZmEtZmlsZS1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYzMWEifS5mYS1maWxlLWV4cG9ydDpiZWZvcmV7Y29udGVudDoiXGY1NmUifS5mYS1maWxlLWltYWdlOmJlZm9yZXtjb250ZW50OiJcZjFjNSJ9LmZhLWZpbGUtaW1wb3J0OmJlZm9yZXtjb250ZW50OiJcZjU2ZiJ9LmZhLWZpbGUtaW52b2ljZS1kb2xsYXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTcxIn0uZmEtZmlsZS1taW51czpiZWZvcmV7Y29udGVudDoiXGYzMTgifS5mYS1maWxlLW11c2ljOmJlZm9yZXtjb250ZW50OiJcZjhiNiJ9LmZhLWZpbGUtcGRmOmJlZm9yZXtjb250ZW50OiJcZjFjMSJ9LmZhLWZpbGUtcGx1czpiZWZvcmV7Y29udGVudDoiXGYzMTkifS5mYS1maWxlLXBvd2VycG9pbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWM0In0uZmEtZmlsZS1zZWFyY2g6YmVmb3Jle2NvbnRlbnQ6IlxmODY1In0uZmEtZmlsZS10aW1lczpiZWZvcmV7Y29udGVudDoiXGYzMTcifS5mYS1maWxlLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGY1NzQifS5mYS1maWxlLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjFjOCJ9LmZhLWZpbGUtd29yZDpiZWZvcmV7Y29udGVudDoiXGYxYzIifS5mYS1maWx0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGIwIn0uZmEtZmluZ2VycHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTc3In0uZmEtZmlyZTpiZWZvcmV7Y29udGVudDoiXGYwNmQifS5mYS1mbGFnOmJlZm9yZXtjb250ZW50OiJcZjAyNCJ9LmZhLWZsYWctYWx0OmJlZm9yZXtjb250ZW50OiJcZjc0YyJ9LmZhLWZsYWctY2hlY2tlcmVkOmJlZm9yZXtjb250ZW50OiJcZjExZSJ9LmZhLWZsdXgtY2FwYWNpdG9yOmJlZm9yZXtjb250ZW50OiJcZjhiYSJ9LmZhLWZvbGRlcjpiZWZvcmV7Y29udGVudDoiXGYwN2IifS5mYS1mb2xkZXItZG93bmxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxlMDUzIn0uZmEtZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMDdjIn0uZmEtZm9sZGVyLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGUwNTQifS5mYS1mcm93bjpiZWZvcmV7Y29udGVudDoiXGYxMTkifS5mYS1mcm93bi1vcGVuOmJlZm9yZXtjb250ZW50OiJcZjU3YSJ9LmZhLWdhbGFjdGljLXNlbmF0ZTpiZWZvcmV7Y29udGVudDoiXGY1MGQifS5mYS1nYXJhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxlMDA5In0uZmEtZ2FyYWdlLWNhcjpiZWZvcmV7Y29udGVudDoiXGUwMGEifS5mYS1nYXJhZ2Utb3BlbjpiZWZvcmV7Y29udGVudDoiXGUwMGIifS5mYS1nYXMtcHVtcDpiZWZvcmV7Y29udGVudDoiXGY1MmYifS5mYS1nYXMtcHVtcC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY1ZjQifS5mYS1nbGFzc2VzOmJlZm9yZXtjb250ZW50OiJcZjUzMCJ9LmZhLWdsb2JlOmJlZm9yZXtjb250ZW50OiJcZjBhYyJ9LmZhLWdvb2dsZTpiZWZvcmV7Y29udGVudDoiXGYxYTAifS5mYS1ncmlwLWhvcml6b250YWw6YmVmb3Jle2NvbnRlbnQ6IlxmNThkIn0uZmEtZ3JpcC1saW5lczpiZWZvcmV7Y29udGVudDoiXGY3YTQifS5mYS1ncmlwLWxpbmVzLXZlcnRpY2FsOmJlZm9yZXtjb250ZW50OiJcZjdhNSJ9LmZhLWdyaXAtdmVydGljYWw6YmVmb3Jle2NvbnRlbnQ6IlxmNThlIn0uZmEtaGFuZC1ob2xkaW5nLXVzZDpiZWZvcmV7Y29udGVudDoiXGY0YzAifS5mYS1oYW5kLXBvaW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGE3In0uZmEtaGFuZC1wb2ludC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjBhNSJ9LmZhLWhhbmQtcG9pbnQtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE0In0uZmEtaGFuZC1wb2ludC11cDpiZWZvcmV7Y29udGVudDoiXGYwYTYifS5mYS1oYW5kLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjVhIn0uZmEtaGFuZHMtdXNkOmJlZm9yZXtjb250ZW50OiJcZjRjNSJ9LmZhLWhhc2h0YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMjkyIn0uZmEtaGVhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDA0In0uZmEtaGVhcnQtYnJva2VuOmJlZm9yZXtjb250ZW50OiJcZjdhOSJ9LmZhLWhleGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzEyIn0uZmEtaGlzdG9yeTpiZWZvcmV7Y29udGVudDoiXGYxZGEifS5mYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjAxNSJ9LmZhLWhvbWUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjgwYSJ9LmZhLWhvbWUtbGc6YmVmb3Jle2NvbnRlbnQ6IlxmODBiIn0uZmEtaG9tZS1sZy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODBjIn0uZmEtaG91c2U6YmVmb3Jle2NvbnRlbnQ6IlxlMDBkIn0uZmEtaS1jdXJzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ2In0uZmEtaW5ib3g6YmVmb3Jle2NvbnRlbnQ6IlxmMDFjIn0uZmEtaW5ib3gtaW46YmVmb3Jle2NvbnRlbnQ6IlxmMzEwIn0uZmEtaW5ib3gtb3V0OmJlZm9yZXtjb250ZW50OiJcZjMxMSJ9LmZhLWluZm86YmVmb3Jle2NvbnRlbnQ6IlxmMTI5In0uZmEtaW5mby1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDVhIn0uZmEtaW5mby1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzBmIn0uZmEtaW5zdGFncmFtOmJlZm9yZXtjb250ZW50OiJcZjE2ZCJ9LmZhLWluc3RhZ3JhbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxlMDU1In0uZmEta2V5OmJlZm9yZXtjb250ZW50OiJcZjA4NCJ9LmZhLWxhbmd1YWdlOmJlZm9yZXtjb250ZW50OiJcZjFhYiJ9LmZhLWxhc3NvOmJlZm9yZXtjb250ZW50OiJcZjhjOCJ9LmZhLWxlYWY6YmVmb3Jle2NvbnRlbnQ6IlxmMDZjIn0uZmEtbGV2ZWwtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNDkifS5mYS1sZXZlbC1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzYmUifS5mYS1sZXZlbC11cDpiZWZvcmV7Y29udGVudDoiXGYxNDgifS5mYS1sZXZlbC11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JmIn0uZmEtbGlua2VkaW46YmVmb3Jle2NvbnRlbnQ6IlxmMDhjIn0uZmEtbGlua2VkaW4taW46YmVmb3Jle2NvbnRlbnQ6IlxmMGUxIn0uZmEtbG9jYXRpb24tYXJyb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTI0In0uZmEtbG9uZy1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMDkifS5mYS1sb25nLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMwYSJ9LmZhLWxvbmctYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMwYiJ9LmZhLWxvbmctYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjMwYyJ9LmZhLWxvbmctYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNzUifS5mYS1sb25nLWFycm93LWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTc3In0uZmEtbG9uZy1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxNzgifS5mYS1sb25nLWFycm93LXVwOmJlZm9yZXtjb250ZW50OiJcZjE3NiJ9LmZhLW1hZ2ljOmJlZm9yZXtjb250ZW50OiJcZjBkMCJ9LmZhLW1hcDpiZWZvcmV7Y29udGVudDoiXGYyNzkifS5mYS1tYXAtbWFya2VyOmJlZm9yZXtjb250ZW50OiJcZjA0MSJ9LmZhLW1hcC1tYXJrZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjNSJ9LmZhLW1hcC1waW46YmVmb3Jle2NvbnRlbnQ6IlxmMjc2In0uZmEtbWFwLXNpZ25zOmJlZm9yZXtjb250ZW50OiJcZjI3NyJ9LmZhLW1hcmtlcjpiZWZvcmV7Y29udGVudDoiXGY1YTEifS5mYS1tZWRhbDpiZWZvcmV7Y29udGVudDoiXGY1YTIifS5mYS1tZWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTFhIn0uZmEtbWljcm9jaGlwOmJlZm9yZXtjb250ZW50OiJcZjJkYiJ9LmZhLW1pY3JvcGhvbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTMwIn0uZmEtbWljcm9waG9uZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M5In0uZmEtbWljcm9waG9uZS1hbHQtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmNTM5In0uZmEtbWljcm9waG9uZS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxMzEifS5mYS1taW5kLXNoYXJlOmJlZm9yZXtjb250ZW50OiJcZjY3NyJ9LmZhLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjA2OCJ9LmZhLW1pbnVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTYifS5mYS1taW51cy1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwNyJ9LmZhLW1pbnVzLW9jdGFnb246YmVmb3Jle2NvbnRlbnQ6IlxmMzA4In0uZmEtbWludXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0NiJ9LmZhLW1vYmlsZTpiZWZvcmV7Y29udGVudDoiXGYxMGIifS5mYS1tb2JpbGUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjZCJ9LmZhLW1vYmlsZS1hbmRyb2lkOmJlZm9yZXtjb250ZW50OiJcZjNjZSJ9LmZhLW1vYmlsZS1hbmRyb2lkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzY2YifS5mYS1tb25leS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGY1M2MifS5mYS1tb25leS1jaGVjay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmNTNkIn0uZmEtbW9uZXktY2hlY2stZWRpdDpiZWZvcmV7Y29udGVudDoiXGY4NzIifS5mYS1tb25leS1jaGVjay1lZGl0LWFsdDpiZWZvcmV7Y29udGVudDoiXGY4NzMifS5mYS1tb3RvcmN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIxYyJ9LmZhLW1vdW50YWluOmJlZm9yZXtjb250ZW50OiJcZjZmYyJ9LmZhLW1vdXNlLXBvaW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ1In0uZmEtbXAzLXBsYXllcjpiZWZvcmV7Y29udGVudDoiXGY4Y2UifS5mYS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGYwMDEifS5mYS1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwNiJ9LmZhLW9pbC1jYW46YmVmb3Jle2NvbnRlbnQ6IlxmNjEzIn0uZmEtb2lsLXRlbXA6YmVmb3Jle2NvbnRlbnQ6IlxmNjE0In0uZmEtcGFpbnQtYnJ1c2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWZjIn0uZmEtcGFsZXR0ZTpiZWZvcmV7Y29udGVudDoiXGY1M2YifS5mYS1wYXBlci1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYxZDgifS5mYS1wYXN0ZTpiZWZvcmV7Y29udGVudDoiXGYwZWEifS5mYS1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWVkIn0uZmEtcGVuOmJlZm9yZXtjb250ZW50OiJcZjMwNCJ9LmZhLXBlbi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzA1In0uZmEtcGVuLWZhbmN5OmJlZm9yZXtjb250ZW50OiJcZjVhYyJ9LmZhLXBlbmNpbDpiZWZvcmV7Y29udGVudDoiXGYwNDAifS5mYS1wZW5jaWwtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMwMyJ9LmZhLXBlbmNpbC1ydWxlcjpiZWZvcmV7Y29udGVudDoiXGY1YWUifS5mYS1wZW9wbGUtYXJyb3dzOmJlZm9yZXtjb250ZW50OiJcZTA2OCJ9LmZhLXBob25lOmJlZm9yZXtjb250ZW50OiJcZjA5NSJ9LmZhLXBob25lLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4NzkifS5mYS1waG9uZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDk4In0uZmEtcGhvbmUtc3F1YXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4N2IifS5mYS1waG9uZS12b2x1bWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmEwIn0uZmEtcGhvdG8tdmlkZW86YmVmb3Jle2NvbnRlbnQ6IlxmODdjIn0uZmEtcGludGVyZXN0OmJlZm9yZXtjb250ZW50OiJcZjBkMiJ9LmZhLXBpbnRlcmVzdC1wOmJlZm9yZXtjb250ZW50OiJcZjIzMSJ9LmZhLXBpbnRlcmVzdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGQzIn0uZmEtcGxheTpiZWZvcmV7Y29udGVudDoiXGYwNGIifS5mYS1wbGF5LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxNDQifS5mYS1wbHVnOmJlZm9yZXtjb250ZW50OiJcZjFlNiJ9LmZhLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDY3In0uZmEtcGx1cy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU1In0uZmEtcGx1cy1oZXhhZ29uOmJlZm9yZXtjb250ZW50OiJcZjMwMCJ9LmZhLXBsdXMtb2N0YWdvbjpiZWZvcmV7Y29udGVudDoiXGYzMDEifS5mYS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmUifS5mYS1wb286YmVmb3Jle2NvbnRlbnQ6IlxmMmZlIn0uZmEtcHJpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDJmIn0uZmEtcXJjb2RlOmJlZm9yZXtjb250ZW50OiJcZjAyOSJ9LmZhLXF1ZXN0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyOCJ9LmZhLXF1ZXN0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTkifS5mYS1xdWVzdGlvbi1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmZkIn0uZmEtcXVvdGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMGQifS5mYS1xdW90ZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGUifS5mYS1yYW5kb206YmVmb3Jle2NvbnRlbnQ6IlxmMDc0In0uZmEtcmVjdGFuZ2xlLWxhbmRzY2FwZTpiZWZvcmV7Y29udGVudDoiXGYyZmEifS5mYS1yZWN0YW5nbGUtcG9ydHJhaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmZiIn0uZmEtcmVjdGFuZ2xlLXdpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmZjIn0uZmEtcmVjeWNsZTpiZWZvcmV7Y29udGVudDoiXGYxYjgifS5mYS1yZWRvOmJlZm9yZXtjb250ZW50OiJcZjAxZSJ9LmZhLXJlZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmOSJ9LmZhLXJlcGVhdDpiZWZvcmV7Y29udGVudDoiXGYzNjMifS5mYS1yZXBlYXQtMTpiZWZvcmV7Y29udGVudDoiXGYzNjUifS5mYS1yZXBlYXQtMS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzY2In0uZmEtcmVwZWF0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjQifS5mYS1yZXBseTpiZWZvcmV7Y29udGVudDoiXGYzZTUifS5mYS1yZXBseS1hbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMTIyIn0uZmEtcmV0d2VldDpiZWZvcmV7Y29udGVudDoiXGYwNzkifS5mYS1yZXR3ZWV0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjEifS5mYS1yb2FkOmJlZm9yZXtjb250ZW50OiJcZjAxOCJ9LmZhLXJvYm90OmJlZm9yZXtjb250ZW50OiJcZjU0NCJ9LmZhLXJzczpiZWZvcmV7Y29udGVudDoiXGYwOWUifS5mYS1yc3Mtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0MyJ9LmZhLXJ2OmJlZm9yZXtjb250ZW50OiJcZjdiZSJ9LmZhLXNhdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM3In0uZmEtc2NyZXdkcml2ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNTRhIn0uZmEtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjAwMiJ9LmZhLXNlYXJjaC1taW51czpiZWZvcmV7Y29udGVudDoiXGYwMTAifS5mYS1zZWFyY2gtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwMGUifS5mYS1zaGFwZXM6YmVmb3Jle2NvbnRlbnQ6IlxmNjFmIn0uZmEtc2hhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMDY0In0uZmEtc2hhcmUtYWxsOmJlZm9yZXtjb250ZW50OiJcZjM2NyJ9LmZhLXNoYXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxZTAifS5mYS1zaGFyZS1hbHQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFlMSJ9LmZhLXNoYXJlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGQifS5mYS1zaGllbGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTMyIn0uZmEtc2hpZWxkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZWQifS5mYS1zaG9wcGluZy1iYXNrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjkxIn0uZmEtc2hvcHBpbmctY2FydDpiZWZvcmV7Y29udGVudDoiXGYwN2EifS5mYS1zaHV0dGxlLXZhbjpiZWZvcmV7Y29udGVudDoiXGY1YjYifS5mYS1zaWduLWluOmJlZm9yZXtjb250ZW50OiJcZjA5MCJ9LmZhLXNpZ24taW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNiJ9LmZhLXNpZ24tb3V0OmJlZm9yZXtjb250ZW50OiJcZjA4YiJ9LmZhLXNpZ24tb3V0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjUifS5mYS1zaWduYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMDEyIn0uZmEtc2lnbmFsLXN0cmVhbTpiZWZvcmV7Y29udGVudDoiXGY4ZGQifS5mYS1zaXRlbWFwOmJlZm9yZXtjb250ZW50OiJcZjBlOCJ9LmZhLXNsaWRlcnMtaDpiZWZvcmV7Y29udGVudDoiXGYxZGUifS5mYS1zbGlkZXJzLWgtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNmMCJ9LmZhLXNsaWRlcnMtdjpiZWZvcmV7Y29udGVudDoiXGYzZjEifS5mYS1zbGlkZXJzLXYtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNmMiJ9LmZhLXNtaWxlOmJlZm9yZXtjb250ZW50OiJcZjExOCJ9LmZhLXNtczpiZWZvcmV7Y29udGVudDoiXGY3Y2QifS5mYS1zbm93Zmxha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmRjIn0uZmEtc29ydDpiZWZvcmV7Y29udGVudDoiXGYwZGMifS5mYS1zb3J0LWFscGhhLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTVkIn0uZmEtc29ydC1hbHBoYS1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODEifS5mYS1zb3J0LWFscGhhLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1ZSJ9LmZhLXNvcnQtYWxwaGEtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4MiJ9LmZhLXNvcnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4MyJ9LmZhLXNvcnQtYW1vdW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYwIn0uZmEtc29ydC1hbW91bnQtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODg0In0uZmEtc29ydC1hbW91bnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0uZmEtc29ydC1hbW91bnQtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4NSJ9LmZhLXNvcnQtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZTAzMCJ9LmZhLXNvcnQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxlMDMxIn0uZmEtc29ydC1jaXJjbGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxlMDMyIn0uZmEtc29ydC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkZCJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MiJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODYifS5mYS1zb3J0LW51bWVyaWMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYzIn0uZmEtc29ydC1udW1lcmljLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4ODcifS5mYS1zb3J0LXNoYXBlcy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjg4OCJ9LmZhLXNvcnQtc2hhcGVzLWRvd24tYWx0OmJlZm9yZXtjb250ZW50OiJcZjg4OSJ9LmZhLXNvcnQtc2hhcGVzLXVwOmJlZm9yZXtjb250ZW50OiJcZjg4YSJ9LmZhLXNvcnQtc2hhcGVzLXVwLWFsdDpiZWZvcmV7Y29udGVudDoiXGY4OGIifS5mYS1zb3J0LXNpemUtZG93bjpiZWZvcmV7Y29udGVudDoiXGY4OGMifS5mYS1zb3J0LXNpemUtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODhkIn0uZmEtc29ydC1zaXplLXVwOmJlZm9yZXtjb250ZW50OiJcZjg4ZSJ9LmZhLXNvcnQtc2l6ZS11cC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODhmIn0uZmEtc29ydC11cDpiZWZvcmV7Y29udGVudDoiXGYwZGUifS5mYS1zcGFkZTpiZWZvcmV7Y29udGVudDoiXGYyZjQifS5mYS1zcGlubmVyOmJlZm9yZXtjb250ZW50OiJcZjExMCJ9LmZhLXNwaW5uZXItdGhpcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Y0In0uZmEtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBjOCJ9LmZhLXN0YXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA1In0uZmEtc3Rhci1leGNsYW1hdGlvbjpiZWZvcmV7Y29udGVudDoiXGYyZjMifS5mYS1zdGFyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMDg5In0uZmEtc3Rhci1oYWxmLWFsdDpiZWZvcmV7Y29udGVudDoiXGY1YzAifS5mYS1zdGVlcmluZy13aGVlbDpiZWZvcmV7Y29udGVudDoiXGY2MjIifS5mYS1zdGlja3ktbm90ZTpiZWZvcmV7Y29udGVudDoiXGYyNDkifS5mYS1zdG9wd2F0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMmYyIn0uZmEtc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNTRlIn0uZmEtc3RvcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjU0ZiJ9LmZhLXN1aXRjYXNlLXJvbGxpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmNWMxIn0uZmEtc3VuOmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9LmZhLXN5bmM6YmVmb3Jle2NvbnRlbnQ6IlxmMDIxIn0uZmEtc3luYy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmYxIn0uZmEtdGFibGV0OmJlZm9yZXtjb250ZW50OiJcZjEwYSJ9LmZhLXRhYmxldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZhIn0uZmEtdGFjaG9tZXRlcjpiZWZvcmV7Y29udGVudDoiXGYwZTQifS5mYS10YWNob21ldGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmQifS5mYS10YWNob21ldGVyLWFsdC1hdmVyYWdlOmJlZm9yZXtjb250ZW50OiJcZjYyNCJ9LmZhLXRhY2hvbWV0ZXItYWx0LWZhc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjI1In0uZmEtdGFjaG9tZXRlci1hbHQtZmFzdGVzdDpiZWZvcmV7Y29udGVudDoiXGY2MjYifS5mYS10YWNob21ldGVyLWFsdC1zbG93OmJlZm9yZXtjb250ZW50OiJcZjYyNyJ9LmZhLXRhY2hvbWV0ZXItYWx0LXNsb3dlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjI4In0uZmEtdGFjaG9tZXRlci1hdmVyYWdlOmJlZm9yZXtjb250ZW50OiJcZjYyOSJ9LmZhLXRhY2hvbWV0ZXItZmFzdDpiZWZvcmV7Y29udGVudDoiXGY2MmEifS5mYS10YWNob21ldGVyLWZhc3Rlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmNjJiIn0uZmEtdGFjaG9tZXRlci1zbG93OmJlZm9yZXtjb250ZW50OiJcZjYyYyJ9LmZhLXRhY2hvbWV0ZXItc2xvd2VzdDpiZWZvcmV7Y29udGVudDoiXGY2MmQifS5mYS10YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDJiIn0uZmEtdGFnczpiZWZvcmV7Y29udGVudDoiXGYwMmMifS5mYS10YXhpOmJlZm9yZXtjb250ZW50OiJcZjFiYSJ9LmZhLXRlbXBlcmF0dXJlLWhpZ2g6YmVmb3Jle2NvbnRlbnQ6IlxmNzY5In0uZmEtdGVtcGVyYXR1cmUtbG93OmJlZm9yZXtjb250ZW50OiJcZjc2YiJ9LmZhLXRleHQtaGVpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzNCJ9LmZhLXRleHQtd2lkdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMDM1In0uZmEtdGhlcm1vbWV0ZXItaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyYzkifS5mYS10aHVtYnMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjUifS5mYS10aHVtYnMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTY0In0uZmEtdGlja2V0OmJlZm9yZXtjb250ZW50OiJcZjE0NSJ9LmZhLXRpa3RvazpiZWZvcmV7Y29udGVudDoiXGUwN2IifS5mYS10aW1lczpiZWZvcmV7Y29udGVudDoiXGYwMGQifS5mYS10aW1lcy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU3In0uZmEtdGltZXMtaGV4YWdvbjpiZWZvcmV7Y29udGVudDoiXGYyZWUifS5mYS10aW1lcy1vY3RhZ29uOmJlZm9yZXtjb250ZW50OiJcZjJmMCJ9LmZhLXRpbWVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYyZDMifS5mYS10aW50OmJlZm9yZXtjb250ZW50OiJcZjA0MyJ9LmZhLXRpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNjMxIn0uZmEtdGlyZS1mbGF0OmJlZm9yZXtjb250ZW50OiJcZjYzMiJ9LmZhLXRpcmUtcHJlc3N1cmUtd2FybmluZzpiZWZvcmV7Y29udGVudDoiXGY2MzMifS5mYS10aXJlLXJ1Z2dlZDpiZWZvcmV7Y29udGVudDoiXGY2MzQifS5mYS10b2dnbGUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjIwNCJ9LmZhLXRvZ2dsZS1vbjpiZWZvcmV7Y29udGVudDoiXGYyMDUifS5mYS10b29sczpiZWZvcmV7Y29udGVudDoiXGY3ZDkifS5mYS10cmFpbGVyOmJlZm9yZXtjb250ZW50OiJcZTA0MSJ9LmZhLXRyYXNoOmJlZm9yZXtjb250ZW50OiJcZjFmOCJ9LmZhLXRyYXNoLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZWQifS5mYS10cmFzaC1yZXN0b3JlOmJlZm9yZXtjb250ZW50OiJcZjgyOSJ9LmZhLXRyYXNoLXJlc3RvcmUtYWx0OmJlZm9yZXtjb250ZW50OiJcZjgyYSJ9LmZhLXRyYXNoLXVuZG86YmVmb3Jle2NvbnRlbnQ6IlxmODk1In0uZmEtdHJhc2gtdW5kby1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmODk2In0uZmEtdHJpYW5nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmVjIn0uZmEtdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjA5MSJ9LmZhLXRyb3BoeS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmViIn0uZmEtdHJ1Y2s6YmVmb3Jle2NvbnRlbnQ6IlxmMGQxIn0uZmEtdHJ1Y2stbG9hZGluZzpiZWZvcmV7Y29udGVudDoiXGY0ZGUifS5mYS10cnVjay1tb25zdGVyOmJlZm9yZXtjb250ZW50OiJcZjYzYiJ9LmZhLXRydWNrLXBpY2t1cDpiZWZvcmV7Y29udGVudDoiXGY2M2MifS5mYS10dHk6YmVmb3Jle2NvbnRlbnQ6IlxmMWU0In0uZmEtdHY6YmVmb3Jle2NvbnRlbnQ6IlxmMjZjIn0uZmEtdHdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGYwOTkifS5mYS10d2l0dGVyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODEifS5mYS11bmRvOmJlZm9yZXtjb250ZW50OiJcZjBlMiJ9LmZhLXVuZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlYSJ9LmZhLXVwbG9hZDpiZWZvcmV7Y29udGVudDoiXGYwOTMifS5mYS11c2QtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJlOCJ9LmZhLXVzZC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMmU5In0uZmEtdXNlcjpiZWZvcmV7Y29udGVudDoiXGYwMDcifS5mYS11c2VyLWFsdDpiZWZvcmV7Y29udGVudDoiXGY0MDYifS5mYS11c2VyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjRmYyJ9LmZhLXVzZXItY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjJiZCJ9LmZhLXVzZXItZnJpZW5kczpiZWZvcmV7Y29udGVudDoiXGY1MDAifS5mYS11c2VyczpiZWZvcmV7Y29udGVudDoiXGYwYzAifS5mYS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYwM2QifS5mYS12b2ljZW1haWw6YmVmb3Jle2NvbnRlbnQ6IlxmODk3In0uZmEtdm9sdW1lOmJlZm9yZXtjb250ZW50OiJcZjZhOCJ9LmZhLXZvbHVtZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjAyNyJ9LmZhLXZvbHVtZS1tdXRlOmJlZm9yZXtjb250ZW50OiJcZjZhOSJ9LmZhLXZvbHVtZS1vZmY6YmVmb3Jle2NvbnRlbnQ6IlxmMDI2In0uZmEtdm9sdW1lLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjJlMiJ9LmZhLXZvbHVtZS11cDpiZWZvcmV7Y29udGVudDoiXGYwMjgifS5mYS13YWdvbi1jb3ZlcmVkOmJlZm9yZXtjb250ZW50OiJcZjhlZSJ9LmZhLXdhbGtpZS10YWxraWU6YmVmb3Jle2NvbnRlbnQ6IlxmOGVmIn0uZmEtd2ViY2FtOmJlZm9yZXtjb250ZW50OiJcZjgzMiJ9LmZhLXdlYmNhbS1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGY4MzMifS5mYS13aGVlbGNoYWlyOmJlZm9yZXtjb250ZW50OiJcZjE5MyJ9LmZhLXdpZmk6YmVmb3Jle2NvbnRlbnQ6IlxmMWViIn0uZmEtd3JlbmNoOmJlZm9yZXtjb250ZW50OiJcZjBhZCJ9LmZhLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0uZmEteW91dHViZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNDMxIn0uZmEtc2hpZWxkLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjJmNyJ9LmZhLWxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMGMxIn0uZmEtdW5saW5rOmJlZm9yZXtjb250ZW50OiJcZjEyNyJ9LmZhLWJhZGdlLWRvbGxhcjpiZWZvcmV7Y29udGVudDoiXGY2NDUifS5mYS1wZW4tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YiJ9LmZhLWNvbW1lbnQtYWx0LWRvdHM6YmVmb3Jle2NvbnRlbnQ6IlxmNGEzIn0uZmEtYXJyb3ctZG93bi10by1saW5lOmJlZm9yZXtjb250ZW50OiJcZjMzZCJ9LmZhLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjM1NiI7fS5zci1vbmx5e2JvcmRlcjowO2NsaXA6cmVjdCgwLDAsMCwwKTtoZWlnaHQ6MXB4O21hcmdpbjotMXB4O292ZXJmbG93OmhpZGRlbjtwYWRkaW5nOjA7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MXB4fS5zci1vbmx5LWZvY3VzYWJsZTphY3RpdmUsLnNyLW9ubHktZm9jdXNhYmxlOmZvY3Vze2NsaXA6YXV0bztoZWlnaHQ6YXV0bzttYXJnaW46MDtvdmVyZmxvdzp2aXNpYmxlO3Bvc2l0aW9uOnN0YXRpYzt3aWR0aDphdXRvfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IEJyYW5kcyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90KTtzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuZW90PyNpZWZpeCkgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1icmFuZHMtNDAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAud29mZikgZm9ybWF0KCJ3b2ZmIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAudHRmKSBmb3JtYXQoInRydWV0eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWJyYW5kcy00MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYWJ7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IEJyYW5kcyc7Zm9udC13ZWlnaHQ6NDAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6MzAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLWxpZ2h0LTMwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtbGlnaHQtMzAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1saWdodC0zMDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYWx7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC13ZWlnaHQ6MzAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6NDAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLmVvdCk7c3JjOnVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXJlZ3VsYXItNDAwLndvZmYpIGZvcm1hdCgid29mZiIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1yZWd1bGFyLTQwMC50dGYpIGZvcm1hdCgidHJ1ZXR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtcmVndWxhci00MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYXJ7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC13ZWlnaHQ6NDAwfUBmb250LWZhY2V7Zm9udC1mYW1pbHk6J0ZvbnQgQXdlc29tZSA1IFBybyc7Zm9udC1zdHlsZTpub3JtYWw7Zm9udC13ZWlnaHQ6OTAwO2ZvbnQtZGlzcGxheTpibG9jaztzcmM6dXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC5lb3QpO3NyYzp1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLmVvdD8jaWVmaXgpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLndvZmYyKSBmb3JtYXQoIndvZmYyIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZGVza3RvcC1hd2Vzb21lL3dlYmZvbnRzL2ZhLXNvbGlkLTkwMC53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kZXNrdG9wLWF3ZXNvbWUvd2ViZm9udHMvZmEtc29saWQtOTAwLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2Rlc2t0b3AtYXdlc29tZS93ZWJmb250cy9mYS1zb2xpZC05MDAuc3ZnI2ZvbnRhd2Vzb21lKSBmb3JtYXQoInN2ZyIpfS5mYSwuZmFze2ZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nIWltcG9ydGFudDtmb250LXdlaWdodDo5MDB9QGZvbnQtZmFjZXtmb250LWRpc3BsYXk6c3dhcDtmb250LWZhbWlseTonRDJDQ3VzdG9tSWNvbnMnO3NyYzpsb2NhbChEMkNDdXN0b21JY29ucyksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy5lb3Q\/I2llZml4KSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksdXJsKC8vZm9udHMuZDJjbWVkaWEuY2Evd2ViZm9udHMvZDJjLWN1c3RvbS1pY29ucy53b2ZmKSBmb3JtYXQoIndvZmYiKSx1cmwoLy9mb250cy5kMmNtZWRpYS5jYS93ZWJmb250cy9kMmMtY3VzdG9tLWljb25zLnR0ZikgZm9ybWF0KCJ0cnVldHlwZSIpLHVybCgvL2ZvbnRzLmQyY21lZGlhLmNhL3dlYmZvbnRzL2QyYy1jdXN0b20taWNvbnMuc3ZnI3N2Z0ZvbnROYW1lKSBmb3JtYXQoInN2ZyIpO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH0uZmEteC10d2l0dGVyOmJlZm9yZXtmb250LWZhbWlseTonRDJDQ3VzdG9tSWNvbnMnLHNlcmlmO2NvbnRlbnQ6IlxlOTAwIjtkaXNwbGF5OmJsb2NrO2ZvbnQtd2VpZ2h0OjQwMDtmb250LXN0eWxlOm5vcm1hbH0KLyoqIC9jc3MvZm9udC1hd2Vzb21lLmNvbnRlbnQubWluLmNzcyAqKi8KLmZhLTUwMHB4OmJlZm9yZXtjb250ZW50OiJcZjI2ZSJ9LmZhLWFjY2Vzc2libGUtaWNvbjpiZWZvcmV7Y29udGVudDoiXGYzNjgifS5mYS1hY2N1c29mdDpiZWZvcmV7Y29udGVudDoiXGYzNjkifS5mYS1hZGRyZXNzLWJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmMmI5In0uZmEtYWRkcmVzcy1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJiYiJ9LmZhLWFkanVzdDpiZWZvcmV7Y29udGVudDoiXGYwNDIifS5mYS1hZG46YmVmb3Jle2NvbnRlbnQ6IlxmMTcwIn0uZmEtYWR2ZXJzYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMzZhIn0uZmEtYWZmaWxpYXRldGhlbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZiIn0uZmEtYWxnb2xpYTpiZWZvcmV7Y29udGVudDoiXGYzNmMifS5mYS1hbGlnbi1jZW50ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDM3In0uZmEtYWxpZ24tanVzdGlmeTpiZWZvcmV7Y29udGVudDoiXGYwMzkifS5mYS1hbGlnbi1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjAzNiJ9LmZhLWFsaWduLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjAzOCJ9LmZhLWFtYXpvbjpiZWZvcmV7Y29udGVudDoiXGYyNzAifS5mYS1hbWF6b24tcGF5OmJlZm9yZXtjb250ZW50OiJcZjQyYyJ9LmZhLWFtYnVsYW5jZTpiZWZvcmV7Y29udGVudDoiXGYwZjkifS5mYS1hbWVyaWNhbi1zaWduLWxhbmd1YWdlLWludGVycHJldGluZzpiZWZvcmV7Y29udGVudDoiXGYyYTMifS5mYS1hbWlsaWE6YmVmb3Jle2NvbnRlbnQ6IlxmMzZkIn0uZmEtYW5jaG9yOmJlZm9yZXtjb250ZW50OiJcZjEzZCJ9LmZhLWFuZHJvaWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTdiIn0uZmEtYW5nZWxsaXN0OmJlZm9yZXtjb250ZW50OiJcZjIwOSJ9LmZhLWFuZ2xlLWRvdWJsZS1kb3duOmJlZm9yZXtjb250ZW50OiJcZjEwMyJ9LmZhLWFuZ2xlLWRvdWJsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwMCJ9LmZhLWFuZ2xlLWRvdWJsZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMDEifS5mYS1hbmdsZS1kb3VibGUtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTAyIn0uZmEtYW5nbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxMDcifS5mYS1hbmdsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEwNCJ9LmZhLWFuZ2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEwNSJ9LmZhLWFuZ2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEwNiJ9LmZhLWFuZ3J5Y3JlYXRpdmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZlIn0uZmEtYW5ndWxhcjpiZWZvcmV7Y29udGVudDoiXGY0MjAifS5mYS1hcHAtc3RvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMzZmIn0uZmEtYXBwLXN0b3JlLWlvczpiZWZvcmV7Y29udGVudDoiXGYzNzAifS5mYS1hcHBlcjpiZWZvcmV7Y29udGVudDoiXGYzNzEifS5mYS1hcHBsZTpiZWZvcmV7Y29udGVudDoiXGYxNzkifS5mYS1hcHBsZS1wYXk6YmVmb3Jle2NvbnRlbnQ6IlxmNDE1In0uZmEtYXJjaGl2ZTpiZWZvcmV7Y29udGVudDoiXGYxODcifS5mYS1hcnJvdy1hbHQtY2lyY2xlLWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMzU4In0uZmEtYXJyb3ctYWx0LWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjM1OSJ9LmZhLWFycm93LWFsdC1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzVhIn0uZmEtYXJyb3ctYWx0LWNpcmNsZS11cDpiZWZvcmV7Y29udGVudDoiXGYzNWIifS5mYS1hcnJvdy1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwYWIifS5mYS1hcnJvdy1jaXJjbGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTgifS5mYS1hcnJvdy1jaXJjbGUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGE5In0uZmEtYXJyb3ctY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjBhYSJ9LmZhLWFycm93LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMDYzIn0uZmEtYXJyb3ctbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwNjAifS5mYS1hcnJvdy1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNjEifS5mYS1hcnJvdy11cDpiZWZvcmV7Y29udGVudDoiXGYwNjIifS5mYS1hcnJvd3MtYWx0OmJlZm9yZXtjb250ZW50OiJcZjBiMiJ9LmZhLWFycm93cy1hbHQtaDpiZWZvcmV7Y29udGVudDoiXGYzMzcifS5mYS1hcnJvd3MtYWx0LXY6YmVmb3Jle2NvbnRlbnQ6IlxmMzM4In0uZmEtYXNzaXN0aXZlLWxpc3RlbmluZy1zeXN0ZW1zOmJlZm9yZXtjb250ZW50OiJcZjJhMiJ9LmZhLWFzdGVyaXNrOmJlZm9yZXtjb250ZW50OiJcZjA2OSJ9LmZhLWFzeW1tZXRyaWs6YmVmb3Jle2NvbnRlbnQ6IlxmMzcyIn0uZmEtYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWZhIn0uZmEtYXVkaWJsZTpiZWZvcmV7Y29udGVudDoiXGYzNzMifS5mYS1hdWRpby1kZXNjcmlwdGlvbjpiZWZvcmV7Y29udGVudDoiXGYyOWUifS5mYS1hdXRvcHJlZml4ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmNDFjIn0uZmEtYXZpYW5leDpiZWZvcmV7Y29udGVudDoiXGYzNzQifS5mYS1hdmlhdG86YmVmb3Jle2NvbnRlbnQ6IlxmNDIxIn0uZmEtYXdzOmJlZm9yZXtjb250ZW50OiJcZjM3NSJ9LmZhLWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0YSJ9LmZhLWJhbGFuY2Utc2NhbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjRlIn0uZmEtYmFuOmJlZm9yZXtjb250ZW50OiJcZjA1ZSJ9LmZhLWJhbmRjYW1wOmJlZm9yZXtjb250ZW50OiJcZjJkNSJ9LmZhLWJhcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDJhIn0uZmEtYmFyczpiZWZvcmV7Y29udGVudDoiXGYwYzkifS5mYS1iYXNlYmFsbC1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQzMyJ9LmZhLWJhc2tldGJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0MzQifS5mYS1iYXRoOmJlZm9yZXtjb250ZW50OiJcZjJjZCJ9LmZhLWJhdHRlcnktZW1wdHk6YmVmb3Jle2NvbnRlbnQ6IlxmMjQ0In0uZmEtYmF0dGVyeS1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjI0MCJ9LmZhLWJhdHRlcnktaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNDIifS5mYS1iYXR0ZXJ5LXF1YXJ0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjQzIn0uZmEtYmF0dGVyeS10aHJlZS1xdWFydGVyczpiZWZvcmV7Y29udGVudDoiXGYyNDEifS5mYS1iZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjM2In0uZmEtYmVlcjpiZWZvcmV7Y29udGVudDoiXGYwZmMifS5mYS1iZWhhbmNlOmJlZm9yZXtjb250ZW50OiJcZjFiNCJ9LmZhLWJlaGFuY2Utc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjFiNSJ9LmZhLWJlbGw6YmVmb3Jle2NvbnRlbnQ6IlxmMGYzIn0uZmEtYmVsbC1zbGFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjYifS5mYS1iaWN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjIwNiJ9LmZhLWJpbW9iamVjdDpiZWZvcmV7Y29udGVudDoiXGYzNzgifS5mYS1iaW5vY3VsYXJzOmJlZm9yZXtjb250ZW50OiJcZjFlNSJ9LmZhLWJpcnRoZGF5LWNha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWZkIn0uZmEtYml0YnVja2V0OmJlZm9yZXtjb250ZW50OiJcZjE3MSJ9LmZhLWJpdGNvaW46YmVmb3Jle2NvbnRlbnQ6IlxmMzc5In0uZmEtYml0eTpiZWZvcmV7Y29udGVudDoiXGYzN2EifS5mYS1ibGFjay10aWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjdlIn0uZmEtYmxhY2tiZXJyeTpiZWZvcmV7Y29udGVudDoiXGYzN2IifS5mYS1ibGluZDpiZWZvcmV7Y29udGVudDoiXGYyOWQifS5mYS1ibG9nZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM3YyJ9LmZhLWJsb2dnZXItYjpiZWZvcmV7Y29udGVudDoiXGYzN2QifS5mYS1ibHVldG9vdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMjkzIn0uZmEtYmx1ZXRvb3RoLWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk0In0uZmEtYm9sZDpiZWZvcmV7Y29udGVudDoiXGYwMzIifS5mYS1ib2x0OmJlZm9yZXtjb250ZW50OiJcZjBlNyJ9LmZhLWJvbWI6YmVmb3Jle2NvbnRlbnQ6IlxmMWUyIn0uZmEtYm9vazpiZWZvcmV7Y29udGVudDoiXGYwMmQifS5mYS1ib29rbWFyazpiZWZvcmV7Y29udGVudDoiXGYwMmUifS5mYS1ib3dsaW5nLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDM2In0uZmEtYnJhaWxsZTpiZWZvcmV7Y29udGVudDoiXGYyYTEifS5mYS1icmllZmNhc2U6YmVmb3Jle2NvbnRlbnQ6IlxmMGIxIn0uZmEtYnRjOmJlZm9yZXtjb250ZW50OiJcZjE1YSJ9LmZhLWJ1ZzpiZWZvcmV7Y29udGVudDoiXGYxODgifS5mYS1idWlsZGluZzpiZWZvcmV7Y29udGVudDoiXGYxYWQifS5mYS1idWxsaG9ybjpiZWZvcmV7Y29udGVudDoiXGYwYTEifS5mYS1idWxsc2V5ZTpiZWZvcmV7Y29udGVudDoiXGYxNDAifS5mYS1idXJvbW9iZWxleHBlcnRlOmJlZm9yZXtjb250ZW50OiJcZjM3ZiJ9LmZhLWJ1czpiZWZvcmV7Y29udGVudDoiXGYyMDcifS5mYS1idXlzZWxsYWRzOmJlZm9yZXtjb250ZW50OiJcZjIwZCJ9LmZhLWNhbGN1bGF0b3I6YmVmb3Jle2NvbnRlbnQ6IlxmMWVjIn0uZmEtY2FsZW5kYXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTMzIn0uZmEtY2FsZW5kYXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjA3MyJ9LmZhLWNhbGVuZGFyLWNoZWNrOmJlZm9yZXtjb250ZW50OiJcZjI3NCJ9LmZhLWNhbGVuZGFyLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjI3MiJ9LmZhLWNhbGVuZGFyLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjcxIn0uZmEtY2FsZW5kYXItdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjczIn0uZmEtY2FtZXJhOmJlZm9yZXtjb250ZW50OiJcZjAzMCJ9LmZhLWNhbWVyYS1yZXRybzpiZWZvcmV7Y29udGVudDoiXGYwODMifS5mYS1jYXI6YmVmb3JlLC5mYS1hdXRvbW9iaWxlOmJlZm9yZXtjb250ZW50OiJcZjFiOSJ9LmZhLWNhcmV0LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMGQ3In0uZmEtY2FyZXQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwZDkifS5mYS1jYXJldC1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwZGEifS5mYS1jYXJldC1zcXVhcmUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNTAifS5mYS1jYXJldC1zcXVhcmUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxOTEifS5mYS1jYXJldC1zcXVhcmUtcmlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTUyIn0uZmEtY2FyZXQtc3F1YXJlLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1MSJ9LmZhLWNhcmV0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkOCJ9LmZhLWNhcnQtYXJyb3ctZG93bjpiZWZvcmV7Y29udGVudDoiXGYyMTgifS5mYS1jYXJ0LXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE3In0uZmEtY2MtYW1hem9uLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MmQifS5mYS1jYy1hbWV4OmJlZm9yZXtjb250ZW50OiJcZjFmMyJ9LmZhLWNjLWFwcGxlLXBheTpiZWZvcmV7Y29udGVudDoiXGY0MTYifS5mYS1jYy1kaW5lcnMtY2x1YjpiZWZvcmV7Y29udGVudDoiXGYyNGMifS5mYS1jYy1kaXNjb3ZlcjpiZWZvcmV7Y29udGVudDoiXGYxZjIifS5mYS1jYy1qY2I6YmVmb3Jle2NvbnRlbnQ6IlxmMjRiIn0uZmEtY2MtbWFzdGVyY2FyZDpiZWZvcmV7Y29udGVudDoiXGYxZjEifS5mYS1jYy1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWY0In0uZmEtY2Mtc3RyaXBlOmJlZm9yZXtjb250ZW50OiJcZjFmNSJ9LmZhLWNjLXZpc2E6YmVmb3Jle2NvbnRlbnQ6IlxmMWYwIn0uZmEtY2VudGVyY29kZTpiZWZvcmV7Y29udGVudDoiXGYzODAifS5mYS1jZXJ0aWZpY2F0ZTpiZWZvcmV7Y29udGVudDoiXGYwYTMifS5mYS1jaGFydC1hcmVhOmJlZm9yZXtjb250ZW50OiJcZjFmZSJ9LmZhLWNoYXJ0LWJhcjpiZWZvcmV7Y29udGVudDoiXGYwODAifS5mYS1jaGFydC1saW5lOmJlZm9yZXtjb250ZW50OiJcZjIwMSJ9LmZhLWNoYXJ0LXBpZTpiZWZvcmV7Y29udGVudDoiXGYyMDAifS5mYS1jaGVjazpiZWZvcmV7Y29udGVudDoiXGYwMGMifS5mYS1jaGVjay1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDU4In0uZmEtY2hlY2stc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0YSJ9LmZhLWNoZXNzOmJlZm9yZXtjb250ZW50OiJcZjQzOSJ9LmZhLWNoZXNzLWJpc2hvcDpiZWZvcmV7Y29udGVudDoiXGY0M2EifS5mYS1jaGVzcy1ib2FyZDpiZWZvcmV7Y29udGVudDoiXGY0M2MifS5mYS1jaGVzcy1raW5nOmJlZm9yZXtjb250ZW50OiJcZjQzZiJ9LmZhLWNoZXNzLWtuaWdodDpiZWZvcmV7Y29udGVudDoiXGY0NDEifS5mYS1jaGVzcy1wYXduOmJlZm9yZXtjb250ZW50OiJcZjQ0MyJ9LmZhLWNoZXNzLXF1ZWVuOmJlZm9yZXtjb250ZW50OiJcZjQ0NSJ9LmZhLWNoZXNzLXJvb2s6YmVmb3Jle2NvbnRlbnQ6IlxmNDQ3In0uZmEtY2hldnJvbi1jaXJjbGUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxM2EifS5mYS1jaGV2cm9uLWNpcmNsZS1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjEzNyJ9LmZhLWNoZXZyb24tY2lyY2xlLXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjEzOCJ9LmZhLWNoZXZyb24tY2lyY2xlLXVwOmJlZm9yZXtjb250ZW50OiJcZjEzOSJ9LmZhLWNoZXZyb24tZG93bjpiZWZvcmV7Y29udGVudDoiXGYwNzgifS5mYS1jaGV2cm9uLWxlZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDUzIn0uZmEtY2hldnJvbi1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYwNTQifS5mYS1jaGV2cm9uLXVwOmJlZm9yZXtjb250ZW50OiJcZjA3NyJ9LmZhLWNoaWxkOmJlZm9yZXtjb250ZW50OiJcZjFhZSJ9LmZhLWNocm9tZTpiZWZvcmV7Y29udGVudDoiXGYyNjgifS5mYS1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTExIn0uZmEtY2lyY2xlLW5vdGNoOmJlZm9yZXtjb250ZW50OiJcZjFjZSJ9LmZhLWNsaXBib2FyZDpiZWZvcmV7Y29udGVudDoiXGYzMjgifS5mYS1jbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMTcifS5mYS1jbG9uZTpiZWZvcmV7Y29udGVudDoiXGYyNGQifS5mYS1jbG9zZWQtY2FwdGlvbmluZzpiZWZvcmV7Y29udGVudDoiXGYyMGEifS5mYS1jbG91ZDpiZWZvcmV7Y29udGVudDoiXGYwYzIifS5mYS1jbG91ZC1kb3dubG9hZC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzgxIn0uZmEtY2xvdWQtdXBsb2FkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzODIifS5mYS1jbG91ZHNjYWxlOmJlZm9yZXtjb250ZW50OiJcZjM4MyJ9LmZhLWNsb3Vkc21pdGg6YmVmb3Jle2NvbnRlbnQ6IlxmMzg0In0uZmEtY2xvdWR2ZXJzaWZ5OmJlZm9yZXtjb250ZW50OiJcZjM4NSJ9LmZhLWNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTIxIn0uZmEtY29kZS1icmFuY2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTI2In0uZmEtY29kZXBlbjpiZWZvcmV7Y29udGVudDoiXGYxY2IifS5mYS1jb2RpZXBpZTpiZWZvcmV7Y29udGVudDoiXGYyODQifS5mYS1jb2ZmZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMGY0In0uZmEtY29nOmJlZm9yZXtjb250ZW50OiJcZjAxMyJ9LmZhLWNvZ3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtZ2VhcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMDg1In0uZmEtY29sdW1uczpiZWZvcmV7Y29udGVudDoiXGYwZGIifS5mYS1jb21tZW50OmJlZm9yZXtjb250ZW50OiJcZjA3NSJ9LmZhLWNvbW1lbnQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjI3YSJ9LmZhLWNvbW1lbnRzOmJlZm9yZXtjb250ZW50OiJcZjA4NiJ9LmZhLWNvbXBhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMTRlIn0uZmEtY29tcHJlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMDY2In0uZmEtY29ubmVjdGRldmVsb3A6YmVmb3Jle2NvbnRlbnQ6IlxmMjBlIn0uZmEtY29udGFvOmJlZm9yZXtjb250ZW50OiJcZjI2ZCJ9LmZhLWNvcHk6YmVmb3Jle2NvbnRlbnQ6IlxmMGM1In0uZmEtY29weXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjFmOSJ9LmZhLWNwYW5lbDpiZWZvcmV7Y29udGVudDoiXGYzODgifS5mYS1jcmVhdGl2ZS1jb21tb25zOmJlZm9yZXtjb250ZW50OiJcZjI1ZSJ9LmZhLWNyZWRpdC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjA5ZCJ9LmZhLWNyb3A6YmVmb3Jle2NvbnRlbnQ6IlxmMTI1In0uZmEtY3Jvc3NoYWlyczpiZWZvcmV7Y29udGVudDoiXGYwNWIifS5mYS1jc3MzOmJlZm9yZXtjb250ZW50OiJcZjEzYyJ9LmZhLWNzczMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM4YiJ9LmZhLWN1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWIyIn0uZmEtY3ViZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMWIzIn0uZmEtY3V0OmJlZm9yZXtjb250ZW50OiJcZjBjNCJ9LmZhLWN1dHRsZWZpc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMzhjIn0uZmEtZC1hbmQtZDpiZWZvcmV7Y29udGVudDoiXGYzOGQifS5mYS1kYXNoY3ViZTpiZWZvcmV7Y29udGVudDoiXGYyMTAifS5mYS1kYXRhYmFzZTpiZWZvcmV7Y29udGVudDoiXGYxYzAifS5mYS1kZWFmOmJlZm9yZXtjb250ZW50OiJcZjJhNCJ9LmZhLWRlbGljaW91czpiZWZvcmV7Y29udGVudDoiXGYxYTUifS5mYS1kZXBsb3lkb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMzhlIn0uZmEtZGVza3BybzpiZWZvcmV7Y29udGVudDoiXGYzOGYifS5mYS1kZXNrdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOCJ9LmZhLWRldmlhbnRhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWJkIn0uZmEtZGlnZzpiZWZvcmV7Y29udGVudDoiXGYxYTYifS5mYS1kaWdpdGFsLW9jZWFuOmJlZm9yZXtjb250ZW50OiJcZjM5MSJ9LmZhLWRpc2NvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzkyIn0uZmEtZGlzY291cnNlOmJlZm9yZXtjb250ZW50OiJcZjM5MyJ9LmZhLWRvY2h1YjpiZWZvcmV7Y29udGVudDoiXGYzOTQifS5mYS1kb2NrZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMzk1In0uZmEtZG9sbGFyLXNpZ246YmVmb3JlLC5mYS1kb2xsYXI6YmVmb3JlLC5mYS11c2Q6YmVmb3Jle2NvbnRlbnQ6IlxmMTU1In0uZmEtZG90LWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxOTIifS5mYS1kb3dubG9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTkifS5mYS1kcmFmdDJkaWdpdGFsOmJlZm9yZXtjb250ZW50OiJcZjM5NiJ9LmZhLWRyaWJiYmxlOmJlZm9yZXtjb250ZW50OiJcZjE3ZCJ9LmZhLWRyaWJiYmxlLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzOTcifS5mYS1kcm9wYm94OmJlZm9yZXtjb250ZW50OiJcZjE2YiJ9LmZhLWRydXBhbDpiZWZvcmV7Y29udGVudDoiXGYxYTkifS5mYS1keWFsb2c6YmVmb3Jle2NvbnRlbnQ6IlxmMzk5In0uZmEtZWFybHliaXJkczpiZWZvcmV7Y29udGVudDoiXGYzOWEifS5mYS1lZGdlOmJlZm9yZXtjb250ZW50OiJcZjI4MiJ9LmZhLWVkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ0In0uZmEtZWplY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMDUyIn0uZmEtZWxlbWVudG9yOmJlZm9yZXtjb250ZW50OiJcZjQzMCJ9LmZhLWVsbGlwc2lzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMTQxIn0uZmEtZWxsaXBzaXMtdjpiZWZvcmV7Y29udGVudDoiXGYxNDIifS5mYS1lbWJlcjpiZWZvcmV7Y29udGVudDoiXGY0MjMifS5mYS1lbXBpcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWQxIn0uZmEtZW52ZWxvcGU6YmVmb3Jle2NvbnRlbnQ6IlxmMGUwIn0uZmEtZW52ZWxvcGUtb3BlbjpiZWZvcmV7Y29udGVudDoiXGYyYjYifS5mYS1lbnZlbG9wZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTk5In0uZmEtZW52aXJhOmJlZm9yZXtjb250ZW50OiJcZjI5OSJ9LmZhLWVyYXNlcjpiZWZvcmV7Y29udGVudDoiXGYxMmQifS5mYS1lcmxhbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMzlkIn0uZmEtZXRoZXJldW06YmVmb3Jle2NvbnRlbnQ6IlxmNDJlIn0uZmEtZXRzeTpiZWZvcmV7Y29udGVudDoiXGYyZDcifS5mYS1ldXJvLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTUzIn0uZmEtZXhjaGFuZ2UtYWx0OmJlZm9yZXtjb250ZW50OiJcZjM2MiJ9LmZhLWV4Y2xhbWF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjEyYSJ9LmZhLWV4Y2xhbWF0aW9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNmEifS5mYS1leGNsYW1hdGlvbi10cmlhbmdsZTpiZWZvcmV7Y29udGVudDoiXGYwNzEifS5mYS1leHBhbmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDY1In0uZmEtZXhwYW5kLWFycm93cy1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMzFlIn0uZmEtZXhwZWRpdGVkc3NsOmJlZm9yZXtjb250ZW50OiJcZjIzZSJ9LmZhLWV4dGVybmFsLWxpbmstYWx0OmJlZm9yZXtjb250ZW50OiJcZjM1ZCJ9LmZhLWV4dGVybmFsLWxpbmstc3F1YXJlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNjAifS5mYS1leWU6YmVmb3Jle2NvbnRlbnQ6IlxmMDZlIn0uZmEtZXllLWRyb3BwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMWZiIn0uZmEtZXllLXNsYXNoOmJlZm9yZXtjb250ZW50OiJcZjA3MCJ9LmZhLWZhY2Vib29rOmJlZm9yZXtjb250ZW50OiJcZjA5YSJ9LmZhLWZhY2Vib29rLWY6YmVmb3Jle2NvbnRlbnQ6IlxmMzllIn0uZmEtZmFjZWJvb2stbWVzc2VuZ2VyOmJlZm9yZXtjb250ZW50OiJcZjM5ZiJ9LmZhLWZhY2Vib29rLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODIifS5mYS1mYXN0LWJhY2t3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA0OSJ9LmZhLWZhc3QtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNTAifS5mYS1mYXg6YmVmb3Jle2NvbnRlbnQ6IlxmMWFjIn0uZmEtZmVtYWxlOmJlZm9yZXtjb250ZW50OiJcZjE4MiJ9LmZhLWZpZ2h0ZXItamV0OmJlZm9yZXtjb250ZW50OiJcZjBmYiJ9LmZhLWZpbGU6YmVmb3JlLC5mYS1maWxlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTViIn0uZmEtZmlsZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTVjIn0uZmEtZmlsZS1hcmNoaXZlOmJlZm9yZXtjb250ZW50OiJcZjFjNiJ9LmZhLWZpbGUtYXVkaW86YmVmb3Jle2NvbnRlbnQ6IlxmMWM3In0uZmEtZmlsZS1jb2RlOmJlZm9yZXtjb250ZW50OiJcZjFjOSJ9LmZhLWZpbGUtZXhjZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWMzIn0uZmEtZmlsZS1pbWFnZTpiZWZvcmV7Y29udGVudDoiXGYxYzUifS5mYS1maWxlLXBkZjpiZWZvcmV7Y29udGVudDoiXGYxYzEifS5mYS1maWxlLXBvd2VycG9pbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWM0In0uZmEtZmlsZS12aWRlbzpiZWZvcmV7Y29udGVudDoiXGYxYzgifS5mYS1maWxlLXdvcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWMyIn0uZmEtZmlsbTpiZWZvcmV7Y29udGVudDoiXGYwMDgifS5mYS1maWx0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMGIwIn0uZmEtZmlyZTpiZWZvcmV7Y29udGVudDoiXGYwNmQifS5mYS1maXJlLWV4dGluZ3Vpc2hlcjpiZWZvcmV7Y29udGVudDoiXGYxMzQifS5mYS1maXJlZm94OmJlZm9yZXtjb250ZW50OiJcZjI2OSJ9LmZhLWZpcnN0LW9yZGVyOmJlZm9yZXtjb250ZW50OiJcZjJiMCJ9LmZhLWZpcnN0ZHJhZnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ExIn0uZmEtZmxhZzpiZWZvcmV7Y29udGVudDoiXGYwMjQifS5mYS1mbGFnLWNoZWNrZXJlZDpiZWZvcmV7Y29udGVudDoiXGYxMWUifS5mYS1mbGFzazpiZWZvcmV7Y29udGVudDoiXGYwYzMifS5mYS1mbGlja3I6YmVmb3Jle2NvbnRlbnQ6IlxmMTZlIn0uZmEtZmxpcGJvYXJkOmJlZm9yZXtjb250ZW50OiJcZjQ0ZCJ9LmZhLWZseTpiZWZvcmV7Y29udGVudDoiXGY0MTcifS5mYS1mb2xkZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDdiIn0uZmEtZm9sZGVyLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmMDdjIn0uZmEtZm9udDpiZWZvcmV7Y29udGVudDoiXGYwMzEifS5mYS1mb250LWF3ZXNvbWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmI0In0uZmEtZm9udC1hd2Vzb21lLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzNWMifS5mYS1mb250LWF3ZXNvbWUtZmxhZzpiZWZvcmV7Y29udGVudDoiXGY0MjUifS5mYS1mb250aWNvbnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjgwIn0uZmEtZm9udGljb25zLWZpOmJlZm9yZXtjb250ZW50OiJcZjNhMiJ9LmZhLWZvb3RiYWxsLWJhbGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDRlIn0uZmEtZm9ydC1hd2Vzb21lOmJlZm9yZXtjb250ZW50OiJcZjI4NiJ9LmZhLWZvcnQtYXdlc29tZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2EzIn0uZmEtZm9ydW1iZWU6YmVmb3Jle2NvbnRlbnQ6IlxmMjExIn0uZmEtZm9yd2FyZDpiZWZvcmV7Y29udGVudDoiXGYwNGUifS5mYS1mb3Vyc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE4MCJ9LmZhLWZyZWUtY29kZS1jYW1wOmJlZm9yZXtjb250ZW50OiJcZjJjNSJ9LmZhLWZyZWVic2Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2E0In0uZmEtZnJvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTE5In0uZmEtZnV0Ym9sOmJlZm9yZXtjb250ZW50OiJcZjFlMyJ9LmZhLWdhbWVwYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTFiIn0uZmEtZ2F2ZWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGUzIn0uZmEtZ2VtOmJlZm9yZXtjb250ZW50OiJcZjNhNSJ9LmZhLWdlbmRlcmxlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjJkIn0uZmEtZ2V0LXBvY2tldDpiZWZvcmV7Y29udGVudDoiXGYyNjUifS5mYS1nZzpiZWZvcmV7Y29udGVudDoiXGYyNjAifS5mYS1nZy1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjYxIn0uZmEtZ2lmdDpiZWZvcmV7Y29udGVudDoiXGYwNmIifS5mYS1naXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWQzIn0uZmEtZ2l0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZDIifS5mYS1naXRodWI6YmVmb3Jle2NvbnRlbnQ6IlxmMDliIn0uZmEtZ2l0aHViLWFsdDpiZWZvcmV7Y29udGVudDoiXGYxMTMifS5mYS1naXRodWItc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjA5MiJ9LmZhLWdpdGtyYWtlbjpiZWZvcmV7Y29udGVudDoiXGYzYTYifS5mYS1naXRsYWI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk2In0uZmEtZ2l0dGVyOmJlZm9yZXtjb250ZW50OiJcZjQyNiJ9LmZhLWdsYXNzLW1hcnRpbmk6YmVmb3Jle2NvbnRlbnQ6IlxmMDAwIn0uZmEtZ2xpZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmE1In0uZmEtZ2xpZGUtZzpiZWZvcmV7Y29udGVudDoiXGYyYTYifS5mYS1nbG9iZTpiZWZvcmV7Y29udGVudDoiXGYwYWMifS5mYS1nb2ZvcmU6YmVmb3Jle2NvbnRlbnQ6IlxmM2E3In0uZmEtZ29sZi1iYWxsOmJlZm9yZXtjb250ZW50OiJcZjQ1MCJ9LmZhLWdvb2RyZWFkczpiZWZvcmV7Y29udGVudDoiXGYzYTgifS5mYS1nb29kcmVhZHMtZzpiZWZvcmV7Y29udGVudDoiXGYzYTkifS5mYS1nb29nbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEwIn0uZmEtZ29vZ2xlLWRyaXZlOmJlZm9yZXtjb250ZW50OiJcZjNhYSJ9LmZhLWdvb2dsZS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjNhYiJ9LmZhLWdvb2dsZS1wbHVzOmJlZm9yZXtjb250ZW50OiJcZjJiMyJ9LmZhLWdvb2dsZS1wbHVzLWc6YmVmb3Jle2NvbnRlbnQ6IlxmMGQ1In0uZmEtZ29vZ2xlLXBsdXMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBkNCJ9LmZhLWdvb2dsZS13YWxsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWVlIn0uZmEtZ3JhZHVhdGlvbi1jYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTlkIn0uZmEtZ3JhdGlwYXk6YmVmb3Jle2NvbnRlbnQ6IlxmMTg0In0uZmEtZ3JhdjpiZWZvcmV7Y29udGVudDoiXGYyZDYifS5mYS1ncmlwZmlyZTpiZWZvcmV7Y29udGVudDoiXGYzYWMifS5mYS1ncnVudDpiZWZvcmV7Y29udGVudDoiXGYzYWQifS5mYS1ndWxwOmJlZm9yZXtjb250ZW50OiJcZjNhZSJ9LmZhLWgtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjBmZCJ9LmZhLWhhY2tlci1uZXdzOmJlZm9yZXtjb250ZW50OiJcZjFkNCJ9LmZhLWhhY2tlci1uZXdzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYzYWYifS5mYS1oYW5kLWxpemFyZDpiZWZvcmV7Y29udGVudDoiXGYyNTgifS5mYS1oYW5kLXBhcGVyOmJlZm9yZXtjb250ZW50OiJcZjI1NiJ9LmZhLWhhbmQtcGVhY2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjViIn0uZmEtaGFuZC1wb2ludC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBhNyJ9LmZhLWhhbmQtcG9pbnQtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYwYTUifS5mYS1oYW5kLXBvaW50LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjBhNCJ9LmZhLWhhbmQtcG9pbnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGE2In0uZmEtaGFuZC1wb2ludGVyOmJlZm9yZSwuZmEtaGFuZC1wb2ludGVyLW86YmVmb3Jle2NvbnRlbnQ6IlxmMjVhIn0uZmEtaGFuZC1yb2NrOmJlZm9yZXtjb250ZW50OiJcZjI1NSJ9LmZhLWhhbmQtc2Npc3NvcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjU3In0uZmEtaGFuZC1zcG9jazpiZWZvcmV7Y29udGVudDoiXGYyNTkifS5mYS1oYW5kc2hha2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmI1In0uZmEtaGFzaHRhZzpiZWZvcmV7Y29udGVudDoiXGYyOTIifS5mYS1oZGQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGEwIn0uZmEtaGVhZGluZzpiZWZvcmV7Y29udGVudDoiXGYxZGMifS5mYS1oZWFkcGhvbmVzOmJlZm9yZXtjb250ZW50OiJcZjAyNSJ9LmZhLWhlYXJ0OmJlZm9yZXtjb250ZW50OiJcZjAwNCJ9LmZhLWhlYXJ0YmVhdDpiZWZvcmV7Y29udGVudDoiXGYyMWUifS5mYS1oaXBzOmJlZm9yZXtjb250ZW50OiJcZjQ1MiJ9LmZhLWhpcmUtYS1oZWxwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2IwIn0uZmEtaGlzdG9yeTpiZWZvcmV7Y29udGVudDoiXGYxZGEifS5mYS1ob2NrZXktcHVjazpiZWZvcmV7Y29udGVudDoiXGY0NTMifS5mYS1ob21lOmJlZm9yZXtjb250ZW50OiJcZjAxNSJ9LmZhLWhvb2xpOmJlZm9yZXtjb250ZW50OiJcZjQyNyJ9LmZhLWhvc3BpdGFsOmJlZm9yZXtjb250ZW50OiJcZjBmOCJ9LmZhLWhvdGphcjpiZWZvcmV7Y29udGVudDoiXGYzYjEifS5mYS1ob3VyZ2xhc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjU0In0uZmEtaG91cmdsYXNzLWVuZDpiZWZvcmV7Y29udGVudDoiXGYyNTMifS5mYS1ob3VyZ2xhc3MtaGFsZjpiZWZvcmV7Y29udGVudDoiXGYyNTIifS5mYS1ob3VyZ2xhc3Mtc3RhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjUxIn0uZmEtaG91eno6YmVmb3Jle2NvbnRlbnQ6IlxmMjdjIn0uZmEtaHRtbDU6YmVmb3Jle2NvbnRlbnQ6IlxmMTNiIn0uZmEtaHVic3BvdDpiZWZvcmV7Y29udGVudDoiXGYzYjIifS5mYS1pLWN1cnNvcjpiZWZvcmV7Y29udGVudDoiXGYyNDYifS5mYS1pZC1iYWRnZTpiZWZvcmV7Y29udGVudDoiXGYyYzEifS5mYS1pZC1jYXJkOmJlZm9yZXtjb250ZW50OiJcZjJjMiJ9LmZhLWltYWdlOmJlZm9yZXtjb250ZW50OiJcZjAzZSJ9LmZhLWltYWdlczpiZWZvcmV7Y29udGVudDoiXGYzMDIifS5mYS1pbWRiOmJlZm9yZXtjb250ZW50OiJcZjJkOCJ9LmZhLWluYm94OmJlZm9yZXtjb250ZW50OiJcZjAxYyJ9LmZhLWluZGVudDpiZWZvcmV7Y29udGVudDoiXGYwM2MifS5mYS1pbmR1c3RyeTpiZWZvcmV7Y29udGVudDoiXGYyNzUifS5mYS1pbmZvOmJlZm9yZXtjb250ZW50OiJcZjEyOSJ9LmZhLWluZm8tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1YSJ9LmZhLWluc3RhZ3JhbTpiZWZvcmV7Y29udGVudDoiXGYxNmQifS5mYS1pbnRlcm5ldC1leHBsb3JlcjpiZWZvcmV7Y29udGVudDoiXGYyNmIifS5mYS1pb3hob3N0OmJlZm9yZXtjb250ZW50OiJcZjIwOCJ9LmZhLWl0YWxpYzpiZWZvcmV7Y29udGVudDoiXGYwMzMifS5mYS1pdHVuZXM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I0In0uZmEtaXR1bmVzLW5vdGU6YmVmb3Jle2NvbnRlbnQ6IlxmM2I1In0uZmEtamVua2luczpiZWZvcmV7Y29udGVudDoiXGYzYjYifS5mYS1qb2dldDpiZWZvcmV7Y29udGVudDoiXGYzYjcifS5mYS1qb29tbGE6YmVmb3Jle2NvbnRlbnQ6IlxmMWFhIn0uZmEtanM6YmVmb3Jle2NvbnRlbnQ6IlxmM2I4In0uZmEtanMtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjNiOSJ9LmZhLWpzZmlkZGxlOmJlZm9yZXtjb250ZW50OiJcZjFjYyJ9LmZhLWtleTpiZWZvcmV7Y29udGVudDoiXGYwODQifS5mYS1rZXlib2FyZDpiZWZvcmV7Y29udGVudDoiXGYxMWMifS5mYS1rZXljZG46YmVmb3Jle2NvbnRlbnQ6IlxmM2JhIn0uZmEta2lja3N0YXJ0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmM2JiIn0uZmEta2lja3N0YXJ0ZXItazpiZWZvcmV7Y29udGVudDoiXGYzYmMifS5mYS1rb3J2dWU6YmVmb3Jle2NvbnRlbnQ6IlxmNDJmIn0uZmEtbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMWFiIn0uZmEtbGFwdG9wOmJlZm9yZXtjb250ZW50OiJcZjEwOSJ9LmZhLWxhcmF2ZWw6YmVmb3Jle2NvbnRlbnQ6IlxmM2JkIn0uZmEtbGFzdGZtOmJlZm9yZXtjb250ZW50OiJcZjIwMiJ9LmZhLWxhc3RmbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjAzIn0uZmEtbGVhZjpiZWZvcmV7Y29udGVudDoiXGYwNmMifS5mYS1sZWFucHViOmJlZm9yZXtjb250ZW50OiJcZjIxMiJ9LmZhLWxlbW9uOmJlZm9yZXtjb250ZW50OiJcZjA5NCJ9LmZhLWxlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDFkIn0uZmEtbGV2ZWwtZG93bi1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2JlIn0uZmEtbGV2ZWwtdXAtYWx0OmJlZm9yZXtjb250ZW50OiJcZjNiZiJ9LmZhLWxpZmUtcmluZzpiZWZvcmV7Y29udGVudDoiXGYxY2QifS5mYS1saWdodGJ1bGI6YmVmb3Jle2NvbnRlbnQ6IlxmMGViIn0uZmEtbGluZTpiZWZvcmV7Y29udGVudDoiXGYzYzAifS5mYS1saW5rOmJlZm9yZXtjb250ZW50OiJcZjBjMSJ9LmZhLWxpbmtlZGluOmJlZm9yZXtjb250ZW50OiJcZjA4YyJ9LmZhLWxpbmtlZGluLWluOmJlZm9yZXtjb250ZW50OiJcZjBlMSJ9LmZhLWxpbm9kZTpiZWZvcmV7Y29udGVudDoiXGYyYjgifS5mYS1saW51eDpiZWZvcmV7Y29udGVudDoiXGYxN2MifS5mYS1saXJhLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTk1In0uZmEtbGlzdDpiZWZvcmV7Y29udGVudDoiXGYwM2EifS5mYS1saXN0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYwMjIifS5mYS1saXN0LW9sOmJlZm9yZXtjb250ZW50OiJcZjBjYiJ9LmZhLWxpc3QtdWw6YmVmb3Jle2NvbnRlbnQ6IlxmMGNhIn0uZmEtbG9jYXRpb24tYXJyb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTI0In0uZmEtbG9jazpiZWZvcmV7Y29udGVudDoiXGYwMjMifS5mYS1sb2NrLW9wZW46YmVmb3Jle2NvbnRlbnQ6IlxmM2MxIn0uZmEtbG9uZy1hcnJvdy1hbHQtZG93bjpiZWZvcmV7Y29udGVudDoiXGYzMDkifS5mYS1sb25nLWFycm93LWFsdC1sZWZ0OmJlZm9yZXtjb250ZW50OiJcZjMwYSJ9LmZhLWxvbmctYXJyb3ctYWx0LXJpZ2h0OmJlZm9yZXtjb250ZW50OiJcZjMwYiJ9LmZhLWxvbmctYXJyb3ctYWx0LXVwOmJlZm9yZXtjb250ZW50OiJcZjMwYyJ9LmZhLWxvdy12aXNpb246YmVmb3Jle2NvbnRlbnQ6IlxmMmE4In0uZmEtbHlmdDpiZWZvcmV7Y29udGVudDoiXGYzYzMifS5mYS1tYWdlbnRvOmJlZm9yZXtjb250ZW50OiJcZjNjNCJ9LmZhLW1hZ2ljOmJlZm9yZXtjb250ZW50OiJcZjBkMCJ9LmZhLW1hZ25ldDpiZWZvcmV7Y29udGVudDoiXGYwNzYifS5mYS1tYWxlOmJlZm9yZXtjb250ZW50OiJcZjE4MyJ9LmZhLW1hcDpiZWZvcmV7Y29udGVudDoiXGYyNzkifS5mYS1tYXAtbWFya2VyOmJlZm9yZXtjb250ZW50OiJcZjA0MSJ9LmZhLW1hcC1tYXJrZXItYWx0OmJlZm9yZXtjb250ZW50OiJcZjNjNSJ9LmZhLW1hcC1waW46YmVmb3Jle2NvbnRlbnQ6IlxmMjc2In0uZmEtbWFwLXNpZ25zOmJlZm9yZXtjb250ZW50OiJcZjI3NyJ9LmZhLW1hcnM6YmVmb3Jle2NvbnRlbnQ6IlxmMjIyIn0uZmEtbWFycy1kb3VibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjI3In0uZmEtbWFycy1zdHJva2U6YmVmb3Jle2NvbnRlbnQ6IlxmMjI5In0uZmEtbWFycy1zdHJva2UtaDpiZWZvcmV7Y29udGVudDoiXGYyMmIifS5mYS1tYXJzLXN0cm9rZS12OmJlZm9yZXtjb250ZW50OiJcZjIyYSJ9LmZhLW1heGNkbjpiZWZvcmV7Y29udGVudDoiXGYxMzYifS5mYS1tZWRhcHBzOmJlZm9yZXtjb250ZW50OiJcZjNjNiJ9LmZhLW1lZGl1bTpiZWZvcmV7Y29udGVudDoiXGYyM2EifS5mYS1tZWRpdW0tbTpiZWZvcmV7Y29udGVudDoiXGYzYzcifS5mYS1tZWRraXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMGZhIn0uZmEtbWVkcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2M4In0uZmEtbWVldHVwOmJlZm9yZXtjb250ZW50OiJcZjJlMCJ9LmZhLW1laDpiZWZvcmV7Y29udGVudDoiXGYxMWEifS5mYS1tZXJjdXJ5OmJlZm9yZXtjb250ZW50OiJcZjIyMyJ9LmZhLW1pY3JvY2hpcDpiZWZvcmV7Y29udGVudDoiXGYyZGIifS5mYS1taWNyb3Bob25lOmJlZm9yZXtjb250ZW50OiJcZjEzMCJ9LmZhLW1pY3JvcGhvbmUtc2xhc2g6YmVmb3Jle2NvbnRlbnQ6IlxmMTMxIn0uZmEtbWljcm9zb2Z0OmJlZm9yZXtjb250ZW50OiJcZjNjYSJ9LmZhLW1pbnVzOmJlZm9yZXtjb250ZW50OiJcZjA2OCJ9LmZhLW1pbnVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTYifS5mYS1taW51cy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTQ2In0uZmEtbWl4OmJlZm9yZXtjb250ZW50OiJcZjNjYiJ9LmZhLW1peGNsb3VkOmJlZm9yZXtjb250ZW50OiJcZjI4OSJ9LmZhLW1penVuaTpiZWZvcmV7Y29udGVudDoiXGYzY2MifS5mYS1tb2JpbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTBiIn0uZmEtbW9iaWxlLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzY2QifS5mYS1tb2R4OmJlZm9yZXtjb250ZW50OiJcZjI4NSJ9LmZhLW1vbmVybzpiZWZvcmV7Y29udGVudDoiXGYzZDAifS5mYS1tb25leS1iaWxsLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZDEifS5mYS1tb29uOmJlZm9yZXtjb250ZW50OiJcZjE4NiJ9LmZhLW1vdG9yY3ljbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjFjIn0uZmEtbW91c2UtcG9pbnRlcjpiZWZvcmV7Y29udGVudDoiXGYyNDUifS5mYS1tdXNpYzpiZWZvcmV7Y29udGVudDoiXGYwMDEifS5mYS1uYXBzdGVyOmJlZm9yZXtjb250ZW50OiJcZjNkMiJ9LmZhLW5ldXRlcjpiZWZvcmV7Y29udGVudDoiXGYyMmMifS5mYS1uZXdzcGFwZXI6YmVmb3JlLC5mYS1uZXdzcGFwZXItbzpiZWZvcmV7Y29udGVudDoiXGYxZWEifS5mYS1uaW50ZW5kby1zd2l0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmNDE4In0uZmEtbm9kZTpiZWZvcmV7Y29udGVudDoiXGY0MTkifS5mYS1ub2RlLWpzOmJlZm9yZXtjb250ZW50OiJcZjNkMyJ9LmZhLW5wbTpiZWZvcmV7Y29udGVudDoiXGYzZDQifS5mYS1uczg6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q1In0uZmEtbnV0cml0aW9uaXg6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q2In0uZmEtb2JqZWN0LWdyb3VwOmJlZm9yZXtjb250ZW50OiJcZjI0NyJ9LmZhLW9iamVjdC11bmdyb3VwOmJlZm9yZXtjb250ZW50OiJcZjI0OCJ9LmZhLW9kbm9rbGFzc25pa2k6YmVmb3Jle2NvbnRlbnQ6IlxmMjYzIn0uZmEtb2Rub2tsYXNzbmlraS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMjY0In0uZmEtb3BlbmNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjNkIn0uZmEtb3BlbmlkOmJlZm9yZXtjb250ZW50OiJcZjE5YiJ9LmZhLW9wZXJhOmJlZm9yZXtjb250ZW50OiJcZjI2YSJ9LmZhLW9wdGluLW1vbnN0ZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjNjIn0uZmEtb3NpOmJlZm9yZXtjb250ZW50OiJcZjQxYSJ9LmZhLW91dGRlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDNiIn0uZmEtcGFnZTQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2Q3In0uZmEtcGFnZWxpbmVzOmJlZm9yZXtjb250ZW50OiJcZjE4YyJ9LmZhLXBhaW50LWJydXNoOmJlZm9yZXtjb250ZW50OiJcZjFmYyJ9LmZhLXBhbGZlZDpiZWZvcmV7Y29udGVudDoiXGYzZDgifS5mYS1wYXBlci1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYxZDgifS5mYS1wYXBlcmNsaXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGM2In0uZmEtcGFyYWdyYXBoOmJlZm9yZXtjb250ZW50OiJcZjFkZCJ9LmZhLXBhc3RlOmJlZm9yZXtjb250ZW50OiJcZjBlYSJ9LmZhLXBhdHJlb246YmVmb3Jle2NvbnRlbnQ6IlxmM2Q5In0uZmEtcGF1c2U6YmVmb3Jle2NvbnRlbnQ6IlxmMDRjIn0uZmEtcGF1c2UtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI4YiJ9LmZhLXBhdzpiZWZvcmV7Y29udGVudDoiXGYxYjAifS5mYS1wYXlwYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMWVkIn0uZmEtcGVuLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNGIifS5mYS1wZW5jaWwtYWx0OmJlZm9yZXtjb250ZW50OiJcZjMwMyJ9LmZhLXBlcmNlbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjk1In0uZmEtcGVyaXNjb3BlOmJlZm9yZXtjb250ZW50OiJcZjNkYSJ9LmZhLXBoYWJyaWNhdG9yOmJlZm9yZXtjb250ZW50OiJcZjNkYiJ9LmZhLXBob2VuaXgtZnJhbWV3b3JrOmJlZm9yZXtjb250ZW50OiJcZjNkYyJ9LmZhLXBob25lOmJlZm9yZXtjb250ZW50OiJcZjA5NSJ9LmZhLXBob25lLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwOTgifS5mYS1waG9uZS12b2x1bWU6YmVmb3Jle2NvbnRlbnQ6IlxmMmEwIn0uZmEtcGhwOmJlZm9yZXtjb250ZW50OiJcZjQ1NyJ9LmZhLXBpZWQtcGlwZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMmFlIn0uZmEtcGllZC1waXBlci1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWE4In0uZmEtcGllZC1waXBlci1wcDpiZWZvcmV7Y29udGVudDoiXGYxYTcifS5mYS1waW50ZXJlc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMGQyIn0uZmEtcGludGVyZXN0LXA6YmVmb3Jle2NvbnRlbnQ6IlxmMjMxIn0uZmEtcGludGVyZXN0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZDMifS5mYS1wbGFuZTpiZWZvcmV7Y29udGVudDoiXGYwNzIifS5mYS1wbGF5OmJlZm9yZXtjb250ZW50OiJcZjA0YiJ9LmZhLXBsYXktY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjE0NCJ9LmZhLXBsYXlzdGF0aW9uOmJlZm9yZXtjb250ZW50OiJcZjNkZiJ9LmZhLXBsdWc6YmVmb3Jle2NvbnRlbnQ6IlxmMWU2In0uZmEtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwNjcifS5mYS1wbHVzLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYwNTUifS5mYS1wbHVzLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwZmUifS5mYS1wb2RjYXN0OmJlZm9yZXtjb250ZW50OiJcZjJjZSJ9LmZhLXBvdW5kLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU0In0uZmEtcG93ZXItb2ZmOmJlZm9yZXtjb250ZW50OiJcZjAxMSJ9LmZhLXByaW50OmJlZm9yZXtjb250ZW50OiJcZjAyZiJ9LmZhLXByb2R1Y3QtaHVudDpiZWZvcmV7Y29udGVudDoiXGYyODgifS5mYS1wdXNoZWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2UxIn0uZmEtcHV6emxlLXBpZWNlOmJlZm9yZXtjb250ZW50OiJcZjEyZSJ9LmZhLXB5dGhvbjpiZWZvcmV7Y29udGVudDoiXGYzZTIifS5mYS1xcTpiZWZvcmV7Y29udGVudDoiXGYxZDYifS5mYS1xcmNvZGU6YmVmb3Jle2NvbnRlbnQ6IlxmMDI5In0uZmEtcXVlc3Rpb246YmVmb3Jle2NvbnRlbnQ6IlxmMTI4In0uZmEtcXVlc3Rpb24tY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1OSJ9LmZhLXF1aWRkaXRjaDpiZWZvcmV7Y29udGVudDoiXGY0NTgifS5mYS1xdWluc2NhcGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDU5In0uZmEtcXVvcmE6YmVmb3Jle2NvbnRlbnQ6IlxmMmM0In0uZmEtcXVvdGUtbGVmdDpiZWZvcmV7Y29udGVudDoiXGYxMGQifS5mYS1xdW90ZS1yaWdodDpiZWZvcmV7Y29udGVudDoiXGYxMGUifS5mYS1yYW5kb206YmVmb3Jle2NvbnRlbnQ6IlxmMDc0In0uZmEtcmF2ZWxyeTpiZWZvcmV7Y29udGVudDoiXGYyZDkifS5mYS1yZWFjdDpiZWZvcmV7Y29udGVudDoiXGY0MWIifS5mYS1yZWJlbDpiZWZvcmV7Y29udGVudDoiXGYxZDAifS5mYS1yZWN5Y2xlOmJlZm9yZXtjb250ZW50OiJcZjFiOCJ9LmZhLXJlZC1yaXZlcjpiZWZvcmV7Y29udGVudDoiXGYzZTMifS5mYS1yZWRkaXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWExIn0uZmEtcmVkZGl0LWFsaWVuOmJlZm9yZXtjb250ZW50OiJcZjI4MSJ9LmZhLXJlZGRpdC1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWEyIn0uZmEtcmVkbzpiZWZvcmV7Y29udGVudDoiXGYwMWUifS5mYS1yZWRvLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyZjkifS5mYS1yZWdpc3RlcmVkOmJlZm9yZXtjb250ZW50OiJcZjI1ZCJ9LmZhLXJlbmRhY3Q6YmVmb3Jle2NvbnRlbnQ6IlxmM2U0In0uZmEtcmVucmVuOmJlZm9yZXtjb250ZW50OiJcZjE4YiJ9LmZhLXJlcGx5OmJlZm9yZXtjb250ZW50OiJcZjNlNSJ9LmZhLXJlcGx5LWFsbDpiZWZvcmV7Y29udGVudDoiXGYxMjIifS5mYS1yZXBseWQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2U2In0uZmEtcmVzb2x2aW5nOmJlZm9yZXtjb250ZW50OiJcZjNlNyJ9LmZhLXJldHdlZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDc5In0uZmEtcm9hZDpiZWZvcmV7Y29udGVudDoiXGYwMTgifS5mYS1yb2NrZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTM1In0uZmEtcm9ja2V0Y2hhdDpiZWZvcmV7Y29udGVudDoiXGYzZTgifS5mYS1yb2Nrcm1zOmJlZm9yZXtjb250ZW50OiJcZjNlOSJ9LmZhLXJzczpiZWZvcmV7Y29udGVudDoiXGYwOWUifS5mYS1yc3Mtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjE0MyJ9LmZhLXJ1YmxlLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMTU4In0uZmEtcnVwZWUtc2lnbjpiZWZvcmV7Y29udGVudDoiXGYxNTYifS5mYS1zYWZhcmk6YmVmb3Jle2NvbnRlbnQ6IlxmMjY3In0uZmEtc2FzczpiZWZvcmV7Y29udGVudDoiXGY0MWUifS5mYS1zYXZlOmJlZm9yZXtjb250ZW50OiJcZjBjNyJ9LmZhLXNjaGxpeDpiZWZvcmV7Y29udGVudDoiXGYzZWEifS5mYS1zY3JpYmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjhhIn0uZmEtc2VhcmNoOmJlZm9yZXtjb250ZW50OiJcZjAwMiJ9LmZhLXNlYXJjaC1taW51czpiZWZvcmV7Y29udGVudDoiXGYwMTAifS5mYS1zZWFyY2gtcGx1czpiZWZvcmV7Y29udGVudDoiXGYwMGUifS5mYS1zZWFyY2hlbmdpbjpiZWZvcmV7Y29udGVudDoiXGYzZWIifS5mYS1zZWxsY2FzdDpiZWZvcmV7Y29udGVudDoiXGYyZGEifS5mYS1zZWxsc3k6YmVmb3Jle2NvbnRlbnQ6IlxmMjEzIn0uZmEtc2VydmVyOmJlZm9yZXtjb250ZW50OiJcZjIzMyJ9LmZhLXNlcnZpY2VzdGFjazpiZWZvcmV7Y29udGVudDoiXGYzZWMifS5mYS1zaGFyZTpiZWZvcmV7Y29udGVudDoiXGYwNjQifS5mYS1zaGFyZS1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWUwIn0uZmEtc2hhcmUtYWx0LXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTEifS5mYS1zaGFyZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTRkIn0uZmEtc2hla2VsLXNpZ246YmVmb3Jle2NvbnRlbnQ6IlxmMjBiIn0uZmEtc2hpZWxkLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZWQifS5mYS1zaGlwOmJlZm9yZXtjb250ZW50OiJcZjIxYSJ9LmZhLXNoaXJ0c2luYnVsazpiZWZvcmV7Y29udGVudDoiXGYyMTQifS5mYS1zaG9wcGluZy1iYWc6YmVmb3Jle2NvbnRlbnQ6IlxmMjkwIn0uZmEtc2hvcHBpbmctYmFza2V0OmJlZm9yZXtjb250ZW50OiJcZjI5MSJ9LmZhLXNob3BwaW5nLWNhcnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDdhIn0uZmEtc2hvd2VyOmJlZm9yZXtjb250ZW50OiJcZjJjYyJ9LmZhLXNpZ24taW4tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNiJ9LmZhLXNpZ24tbGFuZ3VhZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMmE3In0uZmEtc2lnbi1vdXQtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmNSJ9LmZhLXNpZ25hbDpiZWZvcmV7Y29udGVudDoiXGYwMTIifS5mYS1zaW1wbHlidWlsdDpiZWZvcmV7Y29udGVudDoiXGYyMTUifS5mYS1zaXN0cml4OmJlZm9yZXtjb250ZW50OiJcZjNlZSJ9LmZhLXNpdGVtYXA6YmVmb3Jle2NvbnRlbnQ6IlxmMGU4In0uZmEtc2t5YXRsYXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjE2In0uZmEtc2t5cGU6YmVmb3Jle2NvbnRlbnQ6IlxmMTdlIn0uZmEtc2xhY2s6YmVmb3Jle2NvbnRlbnQ6IlxmMTk4In0uZmEtc2xhY2staGFzaDpiZWZvcmV7Y29udGVudDoiXGYzZWYifS5mYS1zbGlkZXJzLWg6YmVmb3Jle2NvbnRlbnQ6IlxmMWRlIn0uZmEtc2xpZGVzaGFyZTpiZWZvcmV7Y29udGVudDoiXGYxZTcifS5mYS1zbWlsZTpiZWZvcmUsLmZhLXNtaWxlLW86YmVmb3Jle2NvbnRlbnQ6IlxmMTE4In0uZmEtc25hcGNoYXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmFiIn0uZmEtc25hcGNoYXQtZ2hvc3Q6YmVmb3Jle2NvbnRlbnQ6IlxmMmFjIn0uZmEtc25hcGNoYXQtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJhZCJ9LmZhLXNub3dmbGFrZTpiZWZvcmV7Y29udGVudDoiXGYyZGMifS5mYS1zb3J0OmJlZm9yZXtjb250ZW50OiJcZjBkYyJ9LmZhLXNvcnQtYWxwaGEtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNWQifS5mYS1zb3J0LWFscGhhLXVwOmJlZm9yZXtjb250ZW50OiJcZjE1ZSJ9LmZhLXNvcnQtYW1vdW50LWRvd246YmVmb3Jle2NvbnRlbnQ6IlxmMTYwIn0uZmEtc29ydC1hbW91bnQtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTYxIn0uZmEtc29ydC1kb3duOmJlZm9yZXtjb250ZW50OiJcZjBkZCJ9LmZhLXNvcnQtbnVtZXJpYy1kb3duOmJlZm9yZXtjb250ZW50OiJcZjE2MiJ9LmZhLXNvcnQtbnVtZXJpYy11cDpiZWZvcmV7Y29udGVudDoiXGYxNjMifS5mYS1zb3J0LXVwOmJlZm9yZXtjb250ZW50OiJcZjBkZSJ9LmZhLXNvdW5kY2xvdWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMWJlIn0uZmEtc3BhY2Utc2h1dHRsZTpiZWZvcmV7Y29udGVudDoiXGYxOTcifS5mYS1zcGVha2FwOmJlZm9yZXtjb250ZW50OiJcZjNmMyJ9LmZhLXNwaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTEwIn0uZmEtc3BvdGlmeTpiZWZvcmV7Y29udGVudDoiXGYxYmMifS5mYS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMGM4In0uZmEtc3F1YXJlLWZ1bGw6YmVmb3Jle2NvbnRlbnQ6IlxmNDVjIn0uZmEtc3RhY2stZXhjaGFuZ2U6YmVmb3Jle2NvbnRlbnQ6IlxmMThkIn0uZmEtc3RhY2stb3ZlcmZsb3c6YmVmb3Jle2NvbnRlbnQ6IlxmMTZjIn0uZmEtc3RhcjpiZWZvcmV7Y29udGVudDoiXGYwMDUifS5mYS1zdGFyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMDg5In0uZmEtc3RheWxpbmtlZDpiZWZvcmV7Y29udGVudDoiXGYzZjUifS5mYS1zdGVhbTpiZWZvcmV7Y29udGVudDoiXGYxYjYifS5mYS1zdGVhbS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWI3In0uZmEtc3RlYW0tc3ltYm9sOmJlZm9yZXtjb250ZW50OiJcZjNmNiJ9LmZhLXN0ZXAtYmFja3dhcmQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQ4In0uZmEtc3RlcC1mb3J3YXJkOmJlZm9yZXtjb250ZW50OiJcZjA1MSJ9LmZhLXN0ZXRob3Njb3BlOmJlZm9yZXtjb250ZW50OiJcZjBmMSJ9LmZhLXN0aWNrZXItbXVsZTpiZWZvcmV7Y29udGVudDoiXGYzZjcifS5mYS1zdGlja3ktbm90ZTpiZWZvcmV7Y29udGVudDoiXGYyNDkifS5mYS1zdG9wOmJlZm9yZXtjb250ZW50OiJcZjA0ZCJ9LmZhLXN0b3AtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjI4ZCJ9LmZhLXN0b3B3YXRjaDpiZWZvcmV7Y29udGVudDoiXGYyZjIifS5mYS1zdHJhdmE6YmVmb3Jle2NvbnRlbnQ6IlxmNDI4In0uZmEtc3RyZWV0LXZpZXc6YmVmb3Jle2NvbnRlbnQ6IlxmMjFkIn0uZmEtc3RyaWtldGhyb3VnaDpiZWZvcmV7Y29udGVudDoiXGYwY2MifS5mYS1zdHJpcGU6YmVmb3Jle2NvbnRlbnQ6IlxmNDI5In0uZmEtc3RyaXBlLXM6YmVmb3Jle2NvbnRlbnQ6IlxmNDJhIn0uZmEtc3R1ZGlvdmluYXJpOmJlZm9yZXtjb250ZW50OiJcZjNmOCJ9LmZhLXN0dW1ibGV1cG9uOmJlZm9yZXtjb250ZW50OiJcZjFhNCJ9LmZhLXN0dW1ibGV1cG9uLWNpcmNsZTpiZWZvcmV7Y29udGVudDoiXGYxYTMifS5mYS1zdWJzY3JpcHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTJjIn0uZmEtc3Vid2F5OmJlZm9yZXtjb250ZW50OiJcZjIzOSJ9LmZhLXN1aXRjYXNlOmJlZm9yZXtjb250ZW50OiJcZjBmMiJ9LmZhLXN1bjpiZWZvcmUsLmZhLXN1bi1vOmJlZm9yZXtjb250ZW50OiJcZjE4NSJ9LmZhLXN1cGVycG93ZXJzOmJlZm9yZXtjb250ZW50OiJcZjJkZCJ9LmZhLXN1cGVyc2NyaXB0OmJlZm9yZXtjb250ZW50OiJcZjEyYiJ9LmZhLXN1cHBsZTpiZWZvcmV7Y29udGVudDoiXGYzZjkifS5mYS1zeW5jOmJlZm9yZXtjb250ZW50OiJcZjAyMSJ9LmZhLXN5bmMtYWx0OmJlZm9yZXtjb250ZW50OiJcZjJmMSJ9LmZhLXRhYmxlOmJlZm9yZXtjb250ZW50OiJcZjBjZSJ9LmZhLXRhYmxlLXRlbm5pczpiZWZvcmV7Y29udGVudDoiXGY0NWQifS5mYS10YWJsZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTBhIn0uZmEtdGFibGV0LWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmEifS5mYS10YWNob21ldGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYzZmQifS5mYS10YWc6YmVmb3Jle2NvbnRlbnQ6IlxmMDJiIn0uZmEtdGFnczpiZWZvcmV7Y29udGVudDoiXGYwMmMifS5mYS10YXNrczpiZWZvcmV7Y29udGVudDoiXGYwYWUifS5mYS10YXhpOmJlZm9yZXtjb250ZW50OiJcZjFiYSJ9LmZhLXRlbGVncmFtOmJlZm9yZXtjb250ZW50OiJcZjJjNiJ9LmZhLXRlbGVncmFtLXBsYW5lOmJlZm9yZXtjb250ZW50OiJcZjNmZSJ9LmZhLXRlbmNlbnQtd2VpYm86YmVmb3Jle2NvbnRlbnQ6IlxmMWQ1In0uZmEtdGVybWluYWw6YmVmb3Jle2NvbnRlbnQ6IlxmMTIwIn0uZmEtdGV4dC1oZWlnaHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDM0In0uZmEtdGV4dC13aWR0aDpiZWZvcmV7Y29udGVudDoiXGYwMzUifS5mYS10aDpiZWZvcmV7Y29udGVudDoiXGYwMGEifS5mYS10aC1sYXJnZTpiZWZvcmV7Y29udGVudDoiXGYwMDkifS5mYS10aC1saXN0OmJlZm9yZXtjb250ZW50OiJcZjAwYiJ9LmZhLXRoZW1laXNsZTpiZWZvcmV7Y29udGVudDoiXGYyYjIifS5mYS10aGVybW9tZXRlci1lbXB0eTpiZWZvcmV7Y29udGVudDoiXGYyY2IifS5mYS10aGVybW9tZXRlci1mdWxsOmJlZm9yZXtjb250ZW50OiJcZjJjNyJ9LmZhLXRoZXJtb21ldGVyLWhhbGY6YmVmb3Jle2NvbnRlbnQ6IlxmMmM5In0uZmEtdGhlcm1vbWV0ZXItcXVhcnRlcjpiZWZvcmV7Y29udGVudDoiXGYyY2EifS5mYS10aGVybW9tZXRlci10aHJlZS1xdWFydGVyczpiZWZvcmV7Y29udGVudDoiXGYyYzgifS5mYS10aHVtYnMtZG93bjpiZWZvcmV7Y29udGVudDoiXGYxNjUifS5mYS10aHVtYnMtdXA6YmVmb3Jle2NvbnRlbnQ6IlxmMTY0In0uZmEtdGh1bWJ0YWNrOmJlZm9yZXtjb250ZW50OiJcZjA4ZCJ9LmZhLXRpY2tldC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmM2ZmIn0uZmEtdGltZXM6YmVmb3Jle2NvbnRlbnQ6IlxmMDBkIn0uZmEtdGltZXMtY2lyY2xlOmJlZm9yZXtjb250ZW50OiJcZjA1NyJ9LmZhLXRpbnQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDQzIn0uZmEtdG9nZ2xlLW9mZjpiZWZvcmV7Y29udGVudDoiXGYyMDQifS5mYS10b2dnbGUtb246YmVmb3Jle2NvbnRlbnQ6IlxmMjA1In0uZmEtdHJhZGVtYXJrOmJlZm9yZXtjb250ZW50OiJcZjI1YyJ9LmZhLXRyYWluOmJlZm9yZXtjb250ZW50OiJcZjIzOCJ9LmZhLXRyYW5zZ2VuZGVyOmJlZm9yZXtjb250ZW50OiJcZjIyNCJ9LmZhLXRyYW5zZ2VuZGVyLWFsdDpiZWZvcmV7Y29udGVudDoiXGYyMjUifS5mYS10cmFzaDpiZWZvcmV7Y29udGVudDoiXGYxZjgifS5mYS10cmFzaC1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMmVkIn0uZmEtdHJlZTpiZWZvcmV7Y29udGVudDoiXGYxYmIifS5mYS10cmVsbG86YmVmb3Jle2NvbnRlbnQ6IlxmMTgxIn0uZmEtdHJpcGFkdmlzb3I6YmVmb3Jle2NvbnRlbnQ6IlxmMjYyIn0uZmEtdHJvcGh5OmJlZm9yZXtjb250ZW50OiJcZjA5MSJ9LmZhLXRydWNrOmJlZm9yZXtjb250ZW50OiJcZjBkMSJ9LmZhLXR0eTpiZWZvcmV7Y29udGVudDoiXGYxZTQifS5mYS10dW1ibHI6YmVmb3Jle2NvbnRlbnQ6IlxmMTczIn0uZmEtdHVtYmxyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxNzQifS5mYS10djpiZWZvcmV7Y29udGVudDoiXGYyNmMifS5mYS10d2l0Y2g6YmVmb3Jle2NvbnRlbnQ6IlxmMWU4In0uZmEtdHdpdHRlcjpiZWZvcmV7Y29udGVudDoiXGYwOTkifS5mYS10d2l0dGVyLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYwODEifS5mYS10eXBvMzpiZWZvcmV7Y29udGVudDoiXGY0MmIifS5mYS11YmVyOmJlZm9yZXtjb250ZW50OiJcZjQwMiJ9LmZhLXVpa2l0OmJlZm9yZXtjb250ZW50OiJcZjQwMyJ9LmZhLXVtYnJlbGxhOmJlZm9yZXtjb250ZW50OiJcZjBlOSJ9LmZhLXVuZGVybGluZTpiZWZvcmV7Y29udGVudDoiXGYwY2QifS5mYS11bmRvOmJlZm9yZXtjb250ZW50OiJcZjBlMiJ9LmZhLXVuZG8tYWx0OmJlZm9yZXtjb250ZW50OiJcZjJlYSJ9LmZhLXVuaXJlZ2lzdHJ5OmJlZm9yZXtjb250ZW50OiJcZjQwNCJ9LmZhLXVuaXZlcnNhbC1hY2Nlc3M6YmVmb3Jle2NvbnRlbnQ6IlxmMjlhIn0uZmEtdW5pdmVyc2l0eTpiZWZvcmV7Y29udGVudDoiXGYxOWMifS5mYS11bmxpbms6YmVmb3Jle2NvbnRlbnQ6IlxmMTI3In0uZmEtdW5sb2NrOmJlZm9yZXtjb250ZW50OiJcZjA5YyJ9LmZhLXVubG9jay1hbHQ6YmVmb3Jle2NvbnRlbnQ6IlxmMTNlIn0uZmEtdW50YXBwZDpiZWZvcmV7Y29udGVudDoiXGY0MDUifS5mYS11cGxvYWQ6YmVmb3Jle2NvbnRlbnQ6IlxmMDkzIn0uZmEtdXNiOmJlZm9yZXtjb250ZW50OiJcZjI4NyJ9LmZhLXVzZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMDA3In0uZmEtdXNlci1jaXJjbGU6YmVmb3Jle2NvbnRlbnQ6IlxmMmJkIn0uZmEtdXNlci1tZDpiZWZvcmV7Y29udGVudDoiXGYwZjAifS5mYS11c2VyLXBsdXM6YmVmb3Jle2NvbnRlbnQ6IlxmMjM0In0uZmEtdXNlci1zZWNyZXQ6YmVmb3Jle2NvbnRlbnQ6IlxmMjFiIn0uZmEtdXNlci10aW1lczpiZWZvcmV7Y29udGVudDoiXGYyMzUifS5mYS11c2VyczpiZWZvcmV7Y29udGVudDoiXGYwYzAifS5mYS11c3N1bm5haDpiZWZvcmV7Y29udGVudDoiXGY0MDcifS5mYS11dGVuc2lsLXNwb29uOmJlZm9yZXtjb250ZW50OiJcZjJlNSJ9LmZhLXV0ZW5zaWxzOmJlZm9yZXtjb250ZW50OiJcZjJlNyJ9LmZhLXZhYWRpbjpiZWZvcmV7Y29udGVudDoiXGY0MDgifS5mYS12ZW51czpiZWZvcmV7Y29udGVudDoiXGYyMjEifS5mYS12ZW51cy1kb3VibGU6YmVmb3Jle2NvbnRlbnQ6IlxmMjI2In0uZmEtdmVudXMtbWFyczpiZWZvcmV7Y29udGVudDoiXGYyMjgifS5mYS12aWFjb2luOmJlZm9yZXtjb250ZW50OiJcZjIzNyJ9LmZhLXZpYWRlbzpiZWZvcmV7Y29udGVudDoiXGYyYTkifS5mYS12aWFkZW8tc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjJhYSJ9LmZhLXZpYmVyOmJlZm9yZXtjb250ZW50OiJcZjQwOSJ9LmZhLXZpZGVvOmJlZm9yZXtjb250ZW50OiJcZjAzZCJ9LmZhLXZpbWVvOmJlZm9yZXtjb250ZW50OiJcZjQwYSJ9LmZhLXZpbWVvLXNxdWFyZTpiZWZvcmV7Y29udGVudDoiXGYxOTQifS5mYS12aW1lby12OmJlZm9yZXtjb250ZW50OiJcZjI3ZCJ9LmZhLXZpbmU6YmVmb3Jle2NvbnRlbnQ6IlxmMWNhIn0uZmEtdms6YmVmb3Jle2NvbnRlbnQ6IlxmMTg5In0uZmEtdm52OmJlZm9yZXtjb250ZW50OiJcZjQwYiJ9LmZhLXZvbGxleWJhbGwtYmFsbDpiZWZvcmV7Y29udGVudDoiXGY0NWYifS5mYS12b2x1bWUtZG93bjpiZWZvcmV7Y29udGVudDoiXGYwMjcifS5mYS12b2x1bWUtb2ZmOmJlZm9yZXtjb250ZW50OiJcZjAyNiJ9LmZhLXZvbHVtZS11cDpiZWZvcmV7Y29udGVudDoiXGYwMjgifS5mYS12dWVqczpiZWZvcmV7Y29udGVudDoiXGY0MWYifS5mYS13ZWlibzpiZWZvcmV7Y29udGVudDoiXGYxOGEifS5mYS13ZWl4aW46YmVmb3Jle2NvbnRlbnQ6IlxmMWQ3In0uZmEtd2hhdHNhcHA6YmVmb3Jle2NvbnRlbnQ6IlxmMjMyIn0uZmEtd2hhdHNhcHAtc3F1YXJlOmJlZm9yZXtjb250ZW50OiJcZjQwYyJ9LmZhLXdoZWVsY2hhaXI6YmVmb3Jle2NvbnRlbnQ6IlxmMTkzIn0uZmEtd2htY3M6YmVmb3Jle2NvbnRlbnQ6IlxmNDBkIn0uZmEtd2lmaTpiZWZvcmV7Y29udGVudDoiXGYxZWIifS5mYS13aWtpcGVkaWEtdzpiZWZvcmV7Y29udGVudDoiXGYyNjYifS5mYS13aW5kb3ctY2xvc2U6YmVmb3Jle2NvbnRlbnQ6IlxmNDEwIn0uZmEtd2luZG93LW1heGltaXplOmJlZm9yZXtjb250ZW50OiJcZjJkMCJ9LmZhLXdpbmRvdy1taW5pbWl6ZTpiZWZvcmV7Y29udGVudDoiXGYyZDEifS5mYS13aW5kb3ctcmVzdG9yZTpiZWZvcmV7Y29udGVudDoiXGYyZDIifS5mYS13aW5kb3dzOmJlZm9yZXtjb250ZW50OiJcZjE3YSJ9LmZhLXdvbi1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1OSJ9LmZhLXdvcmRwcmVzczpiZWZvcmV7Y29udGVudDoiXGYxOWEifS5mYS13b3JkcHJlc3Mtc2ltcGxlOmJlZm9yZXtjb250ZW50OiJcZjQxMSJ9LmZhLXdwYmVnaW5uZXI6YmVmb3Jle2NvbnRlbnQ6IlxmMjk3In0uZmEtd3BleHBsb3JlcjpiZWZvcmV7Y29udGVudDoiXGYyZGUifS5mYS13cGZvcm1zOmJlZm9yZXtjb250ZW50OiJcZjI5OCJ9LmZhLXdyZW5jaDpiZWZvcmV7Y29udGVudDoiXGYwYWQifS5mYS14Ym94OmJlZm9yZXtjb250ZW50OiJcZjQxMiJ9LmZhLXhpbmc6YmVmb3Jle2NvbnRlbnQ6IlxmMTY4In0uZmEteGluZy1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY5In0uZmEteS1jb21iaW5hdG9yOmJlZm9yZXtjb250ZW50OiJcZjIzYiJ9LmZhLXlhaG9vOmJlZm9yZXtjb250ZW50OiJcZjE5ZSJ9LmZhLXlhbmRleDpiZWZvcmV7Y29udGVudDoiXGY0MTMifS5mYS15YW5kZXgtaW50ZXJuYXRpb25hbDpiZWZvcmV7Y29udGVudDoiXGY0MTQifS5mYS15ZWxwOmJlZm9yZXtjb250ZW50OiJcZjFlOSJ9LmZhLXllbi1zaWduOmJlZm9yZXtjb250ZW50OiJcZjE1NyJ9LmZhLXlvYXN0OmJlZm9yZXtjb250ZW50OiJcZjJiMSJ9LmZhLXlvdXR1YmU6YmVmb3Jle2NvbnRlbnQ6IlxmMTY3In0uZmEteW91dHViZS1zcXVhcmU6YmVmb3Jle2NvbnRlbnQ6IlxmNDMxIn0KLyoqIC9jc3MvdjIvYW5pbWF0ZS5jc3MgKiovCi5hbmltLWJlYXQgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tYmVhdDsgYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0OyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCkgfSAuYW5pbS1ib3VuY2UgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tYm91bmNlOyBhbmltYXRpb24tbmFtZTphbmltLWJvdW5jZTsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjI4LC44NCwuNDIsMSkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguMjgsLjg0LC40MiwxKSkgfSAuYW5pbS1mYWRlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWZhZGU7IGFuaW1hdGlvbi1uYW1lOmFuaW0tZmFkZTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxjdWJpYy1iZXppZXIoLjQsMCwuNiwxKSk7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpIH0gLmFuaW0tYmVhdC1mYWRlLC5hbmltLWZhZGUgeyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpIH0gLmFuaW0tYmVhdC1mYWRlIHsgLXdlYmtpdC1hbmltYXRpb24tbmFtZTphbmltLWJlYXQtZmFkZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1iZWF0LWZhZGU7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsY3ViaWMtYmV6aWVyKC40LDAsLjYsMSkpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGN1YmljLWJlemllciguNCwwLC42LDEpKSB9IC5hbmltLWZsaXAgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tZmxpcDsgYW5pbWF0aW9uLW5hbWU6YW5pbS1mbGlwOyAtd2Via2l0LWFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgYW5pbWF0aW9uLWRlbGF5OnZhcigtLWFuaW0tZGVsYXksMHMpOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDNzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sM3MpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGVhc2UtaW4tb3V0KTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxlYXNlLWluLW91dCkgfSAuYW5pbS1zaGFrZSB7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6YW5pbS1zaGFrZTsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zaGFrZTsgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246dmFyKC0tYW5pbS1kdXJhdGlvbiwxcyk7IGFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgLXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDp2YXIoLS1hbmltLWl0ZXJhdGlvbi1jb3VudCxpbmZpbml0ZSk7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxsaW5lYXIpOyBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcikgfSAuYW5pbS1zaGFrZSwuYW5pbS1zcGluIHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dmFyKC0tYW5pbS1kZWxheSwwcyk7IGFuaW1hdGlvbi1kZWxheTp2YXIoLS1hbmltLWRlbGF5LDBzKTsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnZhcigtLWFuaW0tZGlyZWN0aW9uLG5vcm1hbCk7IGFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKSB9IC5hbmltLXNwaW4geyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDJzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMnMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLGxpbmVhcik7IGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246dmFyKC0tYW5pbS10aW1pbmcsbGluZWFyKSB9IC5hbmltLXNwaW4tcmV2ZXJzZSB7IC0tYW5pbS1kaXJlY3Rpb246cmV2ZXJzZSB9IC5hbmltLXB1bHNlLC5hbmltLXNwaW4tcHVsc2UgeyAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOmFuaW0tc3BpbjsgYW5pbWF0aW9uLW5hbWU6YW5pbS1zcGluOyAtd2Via2l0LWFuaW1hdGlvbi1kaXJlY3Rpb246dmFyKC0tYW5pbS1kaXJlY3Rpb24sbm9ybWFsKTsgYW5pbWF0aW9uLWRpcmVjdGlvbjp2YXIoLS1hbmltLWRpcmVjdGlvbixub3JtYWwpOyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp2YXIoLS1hbmltLWR1cmF0aW9uLDFzKTsgYW5pbWF0aW9uLWR1cmF0aW9uOnZhcigtLWFuaW0tZHVyYXRpb24sMXMpOyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dmFyKC0tYW5pbS1pdGVyYXRpb24tY291bnQsaW5maW5pdGUpOyBhbmltYXRpb24taXRlcmF0aW9uLWNvdW50OnZhcigtLWFuaW0taXRlcmF0aW9uLWNvdW50LGluZmluaXRlKTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOnZhcigtLWFuaW0tdGltaW5nLHN0ZXBzKDgpKTsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp2YXIoLS1hbmltLXRpbWluZyxzdGVwcyg4KSkgfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1iZWF0IHsgMCUsOTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7IHRyYW5zZm9ybTpzY2FsZSgxKSB9IDQ1JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1zY2FsZSwxLjI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tYmVhdCB7IDAlLDkwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA0NSUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtc2NhbGUsMS4yNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LXNjYWxlLDEuMjUpKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tYm91bmNlIHsgMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IDEwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXgsMS4xKSx2YXIoLS1hbmltLWJvdW5jZS1zdGFydC1zY2FsZS15LC45KSkgdHJhbnNsYXRlWSgwKSB9IDMwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXgsLjkpLHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteSwxLjEpKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLWhlaWdodCwtLjVlbSkpIH0gNTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS14LDEuMDUpLHZhcigtLWFuaW0tYm91bmNlLWxhbmQtc2NhbGUteSwuOTUpKSB0cmFuc2xhdGVZKDApIH0gNTclIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtcmVib3VuZCwtLjEyNWVtKSkgfSA2NCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKTsgdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCkgfSB9IEBrZXlmcmFtZXMgYW5pbS1ib3VuY2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gMTAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2Utc3RhcnQtc2NhbGUteCwxLjEpLHZhcigtLWFuaW0tYm91bmNlLXN0YXJ0LXNjYWxlLXksLjkpKSB0cmFuc2xhdGVZKDApIH0gMzAlIHsgLXdlYmtpdC10cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS14LC45KSx2YXIoLS1hbmltLWJvdW5jZS1qdW1wLXNjYWxlLXksMS4xKSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1oZWlnaHQsLS41ZW0pKTsgdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYm91bmNlLWp1bXAtc2NhbGUteCwuOSksdmFyKC0tYW5pbS1ib3VuY2UtanVtcC1zY2FsZS15LDEuMSkpIHRyYW5zbGF0ZVkodmFyKC0tYW5pbS1ib3VuY2UtaGVpZ2h0LC0uNWVtKSkgfSA1MCUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJvdW5jZS1sYW5kLXNjYWxlLXgsMS4wNSksdmFyKC0tYW5pbS1ib3VuY2UtbGFuZC1zY2FsZS15LC45NSkpIHRyYW5zbGF0ZVkoMCkgfSA1NyUgeyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKHZhcigtLWFuaW0tYm91bmNlLXJlYm91bmQsLS4xMjVlbSkpOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSh2YXIoLS1hbmltLWJvdW5jZS1yZWJvdW5kLC0uMTI1ZW0pKSB9IDY0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpIHRyYW5zbGF0ZVkoMCk7IHRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKSB0cmFuc2xhdGVZKDApOyB0cmFuc2Zvcm06c2NhbGUoMSkgdHJhbnNsYXRlWSgwKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tZmFkZSB7IDUwJSB7IG9wYWNpdHk6dmFyKC0tYW5pbS1mYWRlLW9wYWNpdHksLjQpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tZmFkZSB7IDUwJSB7IG9wYWNpdHk6dmFyKC0tYW5pbS1mYWRlLW9wYWNpdHksLjQpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1iZWF0LWZhZGUgeyAwJSx0byB7IG9wYWNpdHk6dmFyKC0tYW5pbS1iZWF0LWZhZGUtb3BhY2l0eSwuNCk7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpOyB0cmFuc2Zvcm06c2NhbGUoMSkgfSA1MCUgeyBvcGFjaXR5OjE7IC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKHZhcigtLWFuaW0tYmVhdC1mYWRlLXNjYWxlLDEuMTI1KSk7IHRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tYmVhdC1mYWRlIHsgMCUsdG8geyBvcGFjaXR5OnZhcigtLWFuaW0tYmVhdC1mYWRlLW9wYWNpdHksLjQpOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTsgdHJhbnNmb3JtOnNjYWxlKDEpIH0gNTAlIHsgb3BhY2l0eToxOyAtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSh2YXIoLS1hbmltLWJlYXQtZmFkZS1zY2FsZSwxLjEyNSkpOyB0cmFuc2Zvcm06c2NhbGUodmFyKC0tYW5pbS1iZWF0LWZhZGUtc2NhbGUsMS4xMjUpKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tZmxpcCB7IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSk7IHRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tZmxpcCB7IDUwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZTNkKHZhcigtLWFuaW0tZmxpcC14LDApLHZhcigtLWFuaW0tZmxpcC15LDEpLHZhcigtLWFuaW0tZmxpcC16LDApLHZhcigtLWFuaW0tZmxpcC1hbmdsZSwtMTgwZGVnKSk7IHRyYW5zZm9ybTpyb3RhdGUzZCh2YXIoLS1hbmltLWZsaXAteCwwKSx2YXIoLS1hbmltLWZsaXAteSwxKSx2YXIoLS1hbmltLWZsaXAteiwwKSx2YXIoLS1hbmltLWZsaXAtYW5nbGUsLTE4MGRlZykpIH0gfSBALXdlYmtpdC1rZXlmcmFtZXMgYW5pbS1zaGFrZSB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE1ZGVnKSB9IDQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE1ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZykgfSA4JSwyNCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgtMThkZWcpIH0gMTIlLDI4JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMThkZWcpIH0gMTYlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTIyZGVnKSB9IDIwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpIH0gMzIlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTEyZGVnKSB9IDM2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxMmRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpIH0gNDAlLHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gfSBAa2V5ZnJhbWVzIGFuaW0tc2hha2UgeyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTVkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xNWRlZykgfSA0JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgxNWRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoMTVkZWcpIH0gOCUsMjQlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0xOGRlZyk7IHRyYW5zZm9ybTpyb3RhdGUoLTE4ZGVnKSB9IDEyJSwyOCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMThkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDE4ZGVnKSB9IDE2JSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0yMmRlZykgfSAyMCUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDIyZGVnKSB9IDMyJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgtMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKC0xMmRlZykgfSAzNiUgeyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMTJkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDEyZGVnKSB9IDQwJSx0byB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IH0gQC13ZWJraXQta2V5ZnJhbWVzIGFuaW0tc3BpbiB7IDAlIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDBkZWcpOyB0cmFuc2Zvcm06cm90YXRlKDBkZWcpIH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMXR1cm4pOyB0cmFuc2Zvcm06cm90YXRlKDF0dXJuKSB9IH0gQGtleWZyYW1lcyBhbmltLXNwaW4geyAwJSB7IC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKTsgdHJhbnNmb3JtOnJvdGF0ZSgwZGVnKSB9IHRvIHsgLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDF0dXJuKTsgdHJhbnNmb3JtOnJvdGF0ZSgxdHVybikgfSB9IEBzdXBwb3J0cyAoLXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmUpIHsgYm9keSAjcHJvbW9Ub3BCdG4gLmFuaW0tZmxpcHsgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6dW5zZXQ7IGFuaW1hdGlvbi1kZWxheTp1bnNldDsgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOnVuc2V0OyBhbmltYXRpb24tZGlyZWN0aW9uOnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi1kdXJhdGlvbjp1bnNldDsgYW5pbWF0aW9uLWR1cmF0aW9uOnVuc2V0OyAtd2Via2l0LWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dW5zZXQ7IGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6dW5zZXQ7IC13ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp1bnNldDsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjp1bnNldDsgfSB9IC5wdWxzYXRpbmctY2lyY2xlIHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjMwcHg7IGhlaWdodDozMHB4OyBmbGV4OjAgMCBhdXRvOyAmOmJlZm9yZSB7IGNvbnRlbnQ6Jyc7IHBvc2l0aW9uOnJlbGF0aXZlOyBkaXNwbGF5OmJsb2NrOyB3aWR0aDozMDAlOyBoZWlnaHQ6MzAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyBtYXJnaW4tbGVmdDotMTAwJTsgbWFyZ2luLXRvcDotMTAwJTsgYm9yZGVyLXJhZGl1czo0NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiMwMWE0ZTk7IGFuaW1hdGlvbjpwdWxzZS1yaW5nIDEuMjVzIGN1YmljLWJlemllcigwLjIxNSwgMC42MSwgMC4zNTUsIDEpIGluZmluaXRlOyB9ICY6YWZ0ZXIgeyBjb250ZW50OicnOyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MDsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IGJvcmRlci1yYWRpdXM6MTVweDsgYm94LXNoYWRvdzowIDAgOHB4IHJnYmEoMCwwLDAsLjMpOyBhbmltYXRpb246cHVsc2UtZG90IDEuMjVzIGN1YmljLWJlemllcigwLjQ1NSwgMC4wMywgMC41MTUsIDAuOTU1KSAtLjRzIGluZmluaXRlOyB9IH0gQGtleWZyYW1lcyBwdWxzZS1yaW5nIHsgMCUgeyB0cmFuc2Zvcm06c2NhbGUoLjMzKTsgfSA4MCUsIDEwMCUgeyBvcGFjaXR5OjA7IH0gfSBAa2V5ZnJhbWVzIHB1bHNlLWRvdCB7IDAlIHsgdHJhbnNmb3JtOnNjYWxlKC44KTsgfSA1MCUgeyB0cmFuc2Zvcm06c2NhbGUoMSk7IH0gMTAwJSB7IHRyYW5zZm9ybTpzY2FsZSguOCk7IH0gfQovKiogL2Nzcy9kaXZfbGF5ZXJzLmNzcyAqKi8KZGl2Lk1haW5Cb3hMYXllcnsgd2lkdGg6bWluKDEwMCUsOTYwcHgpOyBtYXJnaW46MCBhdXRvOyB9IGRpdi5NYWluQm94TGF5ZXIgSDF7IHdpZHRoOjk0MHB4OyB9IGRpdi5NYWluQm94TGF5ZXIgLnJlc3BvbnNpdmUtZWRpdG9yIGgxIHsgd2lkdGg6aW5pdGlhbDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5jcmVkc2lpRGl2IEgxeyB3aWR0aDphdXRvOyB9IC5jcmVkc2lpRGl2eyB3aGl0ZS1zcGFjZTpub3JtYWw7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuTGVmdEJveExheWVyIHsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5SaWdodEJveExheWVyIHsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5PdXRlckJveExheWVyIHsgcGFkZGluZzoxMHB4OyBmbG9hdDpsZWZ0OyB3aWR0aDo5NDBweDsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Jbm5lckJveExheWVyIHsgaGVpZ2h0OmF1dG87IGZsb2F0OmxlZnQ7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4OyB3aWR0aDoxMDAlOyBjbGVhcjpib3RoOyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LklubmVyQm94TGF5ZXIudG9wQm9yZGVyZWR7IGJvcmRlci10b3A6MXB4IHNvbGlkICNjY2M7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuSW5uZXJCb3hMYXllci5ib3R0b21Cb3JkZXJlZHsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2NjYzsgfSBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZCB7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQuZWFzdHsgZmxvYXQ6cmlnaHQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuQm94Q2hpbGQud2VzdHsgZmxvYXQ6bGVmdDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdleyB3aWR0aDo5NDBweDsgaGVpZ2h0OmF1dG87IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW46MCBhdXRvOyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciAjdG9wQmFubmVySW1hZ2UgPiBpbWd7IG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllciNoaXN0b3J5RGl2IGRpdi5Jbm5lckJveExheWVyICNicmVhZGNydW1icyB7IG1hcmdpbjowOyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyIHsgd2lkdGg6MTIwMHB4OyB9IGJvZHkuaXNGdWxsV2lkdGhQYWdlLmlzUGFnZUZ1bGxXaWR0aEVuYWJsZWQgZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllciB7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgZGl2Lk91dGVyQm94TGF5ZXIueHRpbWVGcmFtZSB7IHdpZHRoOjEyMDBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgSDF7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgLnJlc3BvbnNpdmUtZWRpdG9yIGgxIHsgd2lkdGg6aW5pdGlhbDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgZGl2LmNyZWRzaWlEaXYgSDF7IHdpZHRoOmF1dG87IH0gYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuTWFpbkJveExheWVyICN0b3BCYW5uZXJJbWFnZSB7IHdpZHRoOjExODBweDsgfSBib2R5LmlzRnVsbFdpZHRoUGFnZS5pc1BhZ2VGdWxsV2lkdGhFbmFibGVkIGRpdi5NYWluQm94TGF5ZXIgI3RvcEJhbm5lckltYWdlLlRFQU0geyB3aWR0aDo5NjBweDsgfSB9IGRpdi5NYWluQm94TGF5ZXIudWNwQ29udGVudEZ1bGxXaWR0aCB7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9IGRpdi5NYWluQm94TGF5ZXIgZGl2LkxlZnRCb3hMYXllci51Y3BDb250ZW50RnVsbFdpZHRoIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gZGl2Lk1haW5Cb3hMYXllciBkaXYuT3V0ZXJCb3hMYXllci51Y3BDb250ZW50RnVsbFdpZHRoIHsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0gI3ZkcFByaW50SW1nIHsgZGlzcGxheTpub25lOyB9IEBtZWRpYSBwcmludCB7IGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyBkaXYuTWFpbkJveExheWVyIC5Jbm5lckJveExheWVyLi1wYjMwIHsgZGlzcGxheTpmbGV4ICFpbXBvcnRhbnQ7IGZsZXgtZGlyZWN0aW9uOnJvdyAhaW1wb3J0YW50OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IGdhcDoxNnB4ICFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDsgb3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50OyB9IGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZC53ZXN0IHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyBvcmRlcjoxICFpbXBvcnRhbnQ7IGZsZXg6MSAxIGF1dG8gIWltcG9ydGFudDsgd2lkdGg6YXV0byAhaW1wb3J0YW50OyBtYXgtd2lkdGg6NjIlICFpbXBvcnRhbnQ7IG1pbi13aWR0aDowICFpbXBvcnRhbnQ7IH0gYm9keSNORVdDQVJERVRBSUxTLmhhcy12ZHAtcHJpbnQtaW1nIGRpdi5NYWluQm94TGF5ZXIgZGl2LkJveENoaWxkLmVhc3QsIGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyBkaXYuTWFpbkJveExheWVyIGRpdi5Cb3hDaGlsZC0xIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyBvcmRlcjoyICFpbXBvcnRhbnQ7IGZsZXg6MCAwIDI3MHB4ICFpbXBvcnRhbnQ7IHdpZHRoOjI3MHB4ICFpbXBvcnRhbnQ7IH0gYm9keSNORVdDQVJERVRBSUxTLmhhcy12ZHAtcHJpbnQtaW1nIGRpdi5NYWluQm94TGF5ZXIsIGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyBkaXYuT3V0ZXJCb3hMYXllciwgYm9keSNORVdDQVJERVRBSUxTLmhhcy12ZHAtcHJpbnQtaW1nIGRpdi5MZWZ0Qm94TGF5ZXIgeyB3aWR0aDoxMDAlICFpbXBvcnRhbnQ7IG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7IH0gYm9keSNORVdDQVJERVRBSUxTLmhhcy12ZHAtcHJpbnQtaW1nIC5TbGlkZXJPdXRlckJveCB7IGRpc3BsYXk6bm9uZSAhaW1wb3J0YW50OyB9IGJvZHkjTkVXQ0FSREVUQUlMUy5oYXMtdmRwLXByaW50LWltZyAjdmRwUHJpbnRJbWcgeyBkaXNwbGF5OmJsb2NrICFpbXBvcnRhbnQ7IG1heC13aWR0aDoxMDAlICFpbXBvcnRhbnQ7IG1heC1oZWlnaHQ6My4yaW4gIWltcG9ydGFudDsgd2lkdGg6MTAwJSAhaW1wb3J0YW50OyBoZWlnaHQ6YXV0byAhaW1wb3J0YW50OyBtYXJnaW46MCAhaW1wb3J0YW50OyBvYmplY3QtZml0OmNvbnRhaW4gIWltcG9ydGFudDsgcGFnZS1icmVhay1pbnNpZGU6YXZvaWQgIWltcG9ydGFudDsgfSB9IEBtZWRpYSBwcmludCB7IGJvZHkuaXNVc2VkVmRwUGFnZS5oYXMtdmRwLXByaW50LWltZyBkaXYuTWFpbkJveExheWVyIC5Jbm5lckJveExheWVyLi1wYjMwIHsgZGlzcGxheTpmbGV4ICFpbXBvcnRhbnQ7IGZsZXgtZGlyZWN0aW9uOnJvdyAhaW1wb3J0YW50OyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0ICFpbXBvcnRhbnQ7IGdhcDoxNnB4ICFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUgIWltcG9ydGFudDsgbWF4LXdpZHRoOjEwMCUgIWltcG9ydGFudDsgb3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50OyB9IGJvZHkuaXNVc2VkVmRwUGFnZS5oYXMtdmRwLXByaW50LWltZyAjdXNlZFZEUFNsaWRlckNvbnRhaW5lciB7IGZsb2F0Om5vbmUgIWltcG9ydGFudDsgb3JkZXI6MSAhaW1wb3J0YW50OyBmbGV4OjEgMSBhdXRvICFpbXBvcnRhbnQ7IHdpZHRoOmF1dG8gIWltcG9ydGFudDsgbWF4LXdpZHRoOjYyJSAhaW1wb3J0YW50OyBtaW4td2lkdGg6MCAhaW1wb3J0YW50OyBvdmVyZmxvdzpoaWRkZW4gIWltcG9ydGFudDsgfSBib2R5LmlzVXNlZFZkcFBhZ2UuaGFzLXZkcC1wcmludC1pbWcgLnVzZWRWZHBBY3Rpb25zIHsgZmxvYXQ6bm9uZSAhaW1wb3J0YW50OyBvcmRlcjoyICFpbXBvcnRhbnQ7IGZsZXg6MCAwIDI3MHB4ICFpbXBvcnRhbnQ7IHdpZHRoOjI3MHB4ICFpbXBvcnRhbnQ7IHZpc2liaWxpdHk6dmlzaWJsZSAhaW1wb3J0YW50OyB9IGJvZHkuaXNVc2VkVmRwUGFnZS5oYXMtdmRwLXByaW50LWltZyAuU2xpZGVyT3V0ZXJCb3ggeyBkaXNwbGF5Om5vbmUgIWltcG9ydGFudDsgfSBib2R5LmlzVXNlZFZkcFBhZ2UuaGFzLXZkcC1wcmludC1pbWcgI3ZkcFByaW50SW1nIHsgZGlzcGxheTpibG9jayAhaW1wb3J0YW50OyBtYXgtd2lkdGg6MTAwJSAhaW1wb3J0YW50OyBtYXgtaGVpZ2h0OjMuMmluICFpbXBvcnRhbnQ7IHdpZHRoOmF1dG8gIWltcG9ydGFudDsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgfSB9Ci8qKiAvY3NzL2Rpdl9zcGFucy5jc3MgKiovCi5kaXZTcGFue2Zsb2F0OmxlZnQ7Ym94LXNpemluZzpib3JkZXItYm94fS5kaXZTcGFuLmRpdlNwYW5MZWZ0e2Zsb2F0OmxlZnR9LmRpdlNwYW4uZGl2U3BhblJpZ2h0e2Zsb2F0OnJpZ2h0fS5kaXZTcGFuLmRpdlNwYW4xe3dpZHRoOjguMzMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuMnt3aWR0aDoxNi42NjY2NjY2NjY2NjY2NyV9LmRpdlNwYW4uZGl2U3BhbjN7d2lkdGg6MjUlfS5kaXZTcGFuLmRpdlNwYW40e3dpZHRoOjMzLjMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuNXt3aWR0aDo0MS42NjY2NjY2NjY2NjY2NyV9LmRpdlNwYW4uZGl2U3BhbjZ7d2lkdGg6NTAlfS5kaXZTcGFuLmRpdlNwYW43e3dpZHRoOjU4LjMzMzMzMzMzMzMzMzMzJX0uZGl2U3Bhbi5kaXZTcGFuOHt3aWR0aDo2Ni42NjY2NjY2NjY2NjY2NiV9LmRpdlNwYW4uZGl2U3Bhbjl7d2lkdGg6NzUlfS5kaXZTcGFuLmRpdlNwYW4xMHt3aWR0aDo4My4zMzMzMzMzMzMzMzMzMyV9LmRpdlNwYW4uZGl2U3BhbjExe3dpZHRoOjkxLjY2NjY2NjY2NjY2NjY2JX0uZGl2U3Bhbi5kaXZTcGFuMTJ7d2lkdGg6MTAwJX0KLyoqIC9jc3MvbWVudWltZy5jc3MgKiovCi5tZW51c3ByaXRle2JhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbWVudWljb25zL21lbnVzcHJpdGVzaGVldC5wbmcpO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtkaXNwbGF5OmlubGluZS10YWJsZTtib3JkZXI6MH0ubWVudXNwcml0ZS1hcnJvd19kb3due3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC01cHh9Lm1lbnVzcHJpdGUtYXJyb3dfdXB7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi01cHggLTQ3cHh9Lm1lbnVzcHJpdGUtY29udGFjdHt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQtcG9zaXRpb246LTVweCAtODlweH0ubWVudXNwcml0ZS1kZW1vY2Fye3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC0xMzFweH0ubWVudXNwcml0ZS1maW5hbmNle3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC0xNzNweH0ubWVudXNwcml0ZS1ob21le3dpZHRoOjMycHg7aGVpZ2h0OjMycHg7YmFja2dyb3VuZC1wb3NpdGlvbjotNXB4IC0yMTVweH0ubWVudXNwcml0ZS1uZXdjYXJ7d2lkdGg6MzJweDtoZWlnaHQ6MzJweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi01cHggLTI1N3B4fS5tZW51c3ByaXRlLW9sZGNhcnt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQtcG9zaXRpb246LTVweCAtMjk5cHh9Lm1lbnVzcHJpdGUtcHJvbW90aW9uc3t3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQtcG9zaXRpb246LTVweCAtMzQxcHh9Lm1lbnVzcHJpdGUtc2VydmljZXt3aWR0aDozMnB4O2hlaWdodDozMnB4O2JhY2tncm91bmQtcG9zaXRpb246LTVweCAtMzgzcHh9Ci8qKiAvY3NzL2FkdmFuY2VkLXNsaWRlci1iYXNlLmNzcyAqKi8KLmFkdmFuY2VkLXNsaWRlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzp2aXNpYmxlOyBvdXRsaW5lOm5vbmU7IG1hcmdpbi1sZWZ0OmF1dG87IG1hcmdpbi1yaWdodDphdXRvOyB9IC5hZHZhbmNlZC1zbGlkZXIgKiB7IG1hcmdpbjowOyBwYWRkaW5nOjA7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGVyLW1haW4geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtd3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBvdmVyZmxvdzp2aXNpYmxlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgfSAuYWR2YW5jZWQtc2xpZGVyIHVsLnNsaWRlcyB7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IG1hcmdpbjowOyBwYWRkaW5nOjA7IGxpc3Qtc3R5bGU6bm9uZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSB7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IGRpc3BsYXk6ZmxleDsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHZpc2liaWxpdHk6aGlkZGVuOyBsaXN0LXN0eWxlOm5vbmU7IGZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7IG9wYWNpdHk6MTsgfSAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5pbWFnZSwgLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAudGh1bWJuYWlsLCAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5jYXB0aW9uLCAuYWR2YW5jZWQtc2xpZGVyIGxpLnNsaWRlIC5odG1sIHsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSBpbWcsIC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCBpbWcgeyBtYXgtd2lkdGg6bm9uZTsgbWF4LWhlaWdodDpub25lOyBib3JkZXI6MCBub25lOyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUgLmh0bWwgeyBvdmVyZmxvdzpoaWRkZW47IH0gLmFkdmFuY2VkLXNsaWRlciBsaS5zbGlkZSAudmlkZW8geyB9IC5hZHZhbmNlZC1zbGlkZXIgbGkuc2xpZGUuYWN0aXZlIC52aWRlbyB7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpY2UtY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB6LWluZGV4OjEwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnN3aXBlYWJsZS1jb250YWluZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IG92ZXJmbG93OmhpZGRlbjsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIC5zbGlkZXMgeyAtd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7IC1tb3otdXNlci1zZWxlY3Q6bm9uZTsgLW8tdXNlci1zZWxlY3Q6bm9uZTsgdXNlci1zZWxlY3Q6bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zd2lwZWFibGUtY29udGFpbmVyIC5zbGlkZXMgLnNlbGVjdGFibGUgeyAtd2Via2l0LXVzZXItc2VsZWN0OmF1dG87IC1tb3otdXNlci1zZWxlY3Q6YXV0bzsgLW8tdXNlci1zZWxlY3Q6YXV0bzsgdXNlci1zZWxlY3Q6YXV0bzsgY3Vyc29yOmF1dG87IH0gLmFkdmFuY2VkLXNsaWRlciAuc3dpcGVhYmxlLWNvbnRhaW5lciAuZ3JhYiB7IGN1cnNvcjpncmFiOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnN3aXBlYWJsZS1jb250YWluZXIgLmdyYWJiaW5nIHsgY3Vyc29yOmdyYWJiaW5nOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWNlIHsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAucHJlbG9hZGVyIHsgcG9zaXRpb246YWJzb2x1dGU7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcHJlbG9hZGVyMi5naWYpIG5vLXJlcGVhdDsgd2lkdGg6NjJweDsgaGVpZ2h0OjE0cHg7IHotaW5kZXg6MTU7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtYXJyb3dzIHsgcG9zaXRpb246c3RhdGljOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWFycm93cyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MzA7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6ODBweDsgaGVpZ2h0OjgwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi00MHB4OyBtYXJnaW4tbGVmdDotNDBweDsgY3Vyc29yOnBvaW50ZXI7IHotaW5kZXg6MTA7IH0gLmFkdmFuY2VkLXNsaWRlciAubGlnaHRib3gtaWNvbi5wbGF5IHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9wbGF5LnBuZyk7IH0gLmFkdmFuY2VkLXNsaWRlciAubGlnaHRib3gtaWNvbi5tYWduaWZ5aW5nIHsgYmFja2dyb3VuZDp1cmwoL2ltYWdlcy9saWdodGJveF9tYWduaWZ5aW5nX3NtYWxsLnBuZykgbm8tcmVwZWF0OyBmbG9hdDpsZWZ0OyBsZWZ0OjA7IHRvcDowOyBtYXJnaW4tbGVmdDoxMHB4OyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6bm9uZTsgfSB9IC5hZHZhbmNlZC1zbGlkZXIgLmxpZ2h0Ym94LWljb24uaHlwZXJsaW5rIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoL2ltYWdlcy9saWdodGJveF9oeXBlcmxpbmsucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZXNob3ctY29udHJvbHMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo0MDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IHsgcG9zaXRpb246YWJzb2x1dGU7IGhlaWdodDo5NHB4OyBtYXJnaW4tdG9wOi01MHB4OyB6LWluZGV4OjU7IH0gLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IC5zaGFkb3ctbGVmdCwgLmFkdmFuY2VkLXNsaWRlciAuc2hhZG93IC5zaGFkb3ctcmlnaHQsIC5hZHZhbmNlZC1zbGlkZXIgLnNoYWRvdyAuc2hhZG93LW1pZGRsZSB7IGZsb2F0OmxlZnQ7IH0gLmFkdmFuY2VkLXNsaWRlciAuZnVsbC1zY3JlZW4tY29udHJvbHMgeyBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2Z1bGxzY3JlZW4ucG5nKSBuby1yZXBlYXQ7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDozMXB4OyBoZWlnaHQ6MjdweDsgdG9wOjIwcHg7IGxlZnQ6MjBweDsgei1pbmRleDo2MDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6NTA7IH0gLmFkdmFuY2VkLXNsaWRlciBjYW52YXMgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aW1lci1hbmltYXRpb24gLnRpbWVyLWFuaW1hdGlvbi1jb250cm9scyB7IHBvc2l0aW9uOmFic29sdXRlOyBjdXJzb3I6cG9pbnRlcjsgd2lkdGg6MjBweDsgaGVpZ2h0OjIwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi0xMHB4OyBtYXJnaW4tbGVmdDotMTBweDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aW1lci1hbmltYXRpb24gLnRpbWVyLWFuaW1hdGlvbi1jb250cm9scyB7IGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvcGxheXBhdXNlX3NtYWxsLnBuZykgbm8tcmVwZWF0OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRpbWVyLWFuaW1hdGlvbi5wbGF5IC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOi0yMHB4IDA7IH0gLmFkdmFuY2VkLXNsaWRlciAudGltZXItYW5pbWF0aW9uLnBhdXNlIC50aW1lci1hbmltYXRpb24tY29udHJvbHMgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjAgMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC5jYXB0aW9uLWNvbnRhaW5lciB7IG92ZXJmbG93OmhpZGRlbjsgcG9zaXRpb246YWJzb2x1dGU7IH0gLmFkdmFuY2VkLXNsaWRlciAuY2FwdGlvbi1jb250YWluZXIgLndyYXBwZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC5jYXB0aW9uLWNvbnRhaW5lciAuYmFja2dyb3VuZCB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtd3JhcHBlciB7IHBvc2l0aW9uOmFic29sdXRlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvcHJlbG9hZGVyLmdpZik7IGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyOyBiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7IHBvc2l0aW9uOmFic29sdXRlOyBvdmVyZmxvdzpoaWRkZW47IH0gLmFkdmFuY2VkLXNsaWRlciAuc2xpZGUtYnV0dG9ucyB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjIwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgLmxlZnQsIC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgLnJpZ2h0LCAuYWR2YW5jZWQtc2xpZGVyIC5zbGlkZS1idXR0b25zIC5taWRkbGUgeyBmbG9hdDpsZWZ0OyB9IC5hZHZhbmNlZC1zbGlkZXIgLnNsaWRlLWJ1dHRvbnMgYSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBjdXJzb3I6cG9pbnRlcjsgZmxvYXQ6bGVmdDsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IHRleHQtYWxpZ246Y2VudGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjIwOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAudmlzaWJsZS1jb250YWluZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgb3ZlcmZsb3c6aGlkZGVuOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuY29udGFpbmVyIHsgcG9zaXRpb246YWJzb2x1dGU7IG92ZXJmbG93OnZpc2libGU7IHRvcDowOyBsZWZ0OjA7IGxpc3Qtc3R5bGU6bm9uZTsgbWFyZ2luOjA7IHBhZGRpbmc6MDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLnRodW1ibmFpbC13cmFwcGVyIHsgY3Vyc29yOnBvaW50ZXI7IGxpc3Qtc3R5bGU6bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmxpZ2h0Ym94LWljb24geyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MzBweDsgaGVpZ2h0OjMwcHg7IHRvcDo1MCU7IGxlZnQ6NTAlOyBtYXJnaW4tdG9wOi0xNXB4OyBtYXJnaW4tbGVmdDotMTVweDsgY3Vyc29yOnBvaW50ZXI7IH0gLmFkdmFuY2VkLXNsaWRlciAudGh1bWJuYWlsLXNjcm9sbGVyIC5saWdodGJveC1pY29uLnBsYXkgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2xpZ2h0Ym94X3BsYXlfc21hbGwucG5nKTsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmxpZ2h0Ym94LWljb24ubWFnbmlmeWluZyB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvbGlnaHRib3hfbWFnbmlmeWluZ19zbWFsbC5wbmcpOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAubGlnaHRib3gtaWNvbi5oeXBlcmxpbmsgeyBiYWNrZ3JvdW5kLWltYWdlOnVybCgvaW1hZ2VzL2xpZ2h0Ym94X2h5cGVybGlua19zbWFsbC5wbmcpOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCAuY2FwdGlvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbCAuY2FwdGlvbiAuYmFja2dyb3VuZCB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDoxMDAlOyBoZWlnaHQ6MTAwJTsgei1pbmRleDoxMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwgLmNhcHRpb24gLmNvbnRlbnQgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgei1pbmRleDoyMDsgfSAuYWR2YW5jZWQtc2xpZGVyIC50aHVtYm5haWwtc2Nyb2xsZXIgLmFycm93cyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IGN1cnNvcjpwb2ludGVyOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuYnV0dG9ucyB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDphdXRvOyB9IC5hZHZhbmNlZC1zbGlkZXIgLnRodW1ibmFpbC1zY3JvbGxlciAuYnV0dG9ucyBhIHsgcG9zaXRpb246YWJzb2x1dGU7IGN1cnNvcjpwb2ludGVyOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgfSAuYWR2YW5jZWQtc2xpZGVyLXRvb2x0aXAgeyBwb3NpdGlvbjphYnNvbHV0ZTsgei1pbmRleDo5OTk5OyB9IC5vZW0taW1nLXNsaWRlciAuc2xpZGUgYSB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyOyB9IC5vZW0taW1nLXNsaWRlciAuc2xpZGU6bnRoLWNoaWxkKC1uKzQpIGEgaW1neyB3aWR0aDoxMTUlICFpbXBvcnRhbnQ7IH0gLm9lbS1pbWctc2xpZGVyIC5zbGlkZSBhIGltZ3sgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgbWFyZ2luOjAgIWltcG9ydGFudDsgbWF4LXdpZHRoOm5vbmUgIWltcG9ydGFudDsgbWF4LWhlaWdodDpub25lICFpbXBvcnRhbnQ7IHBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7IGxlZnQ6aW5pdGlhbCAhaW1wb3J0YW50OyB0b3A6aW5pdGlhbCAhaW1wb3J0YW50OyBtYXgtd2lkdGg6dW5zZXQgIWltcG9ydGFudDsgbWF4LWhlaWdodDp1bnNldCAhaW1wb3J0YW50OyB9IC5vZW0taW1nLXNsaWRlciAjZmlyc3RTbGlkZXJJbWcgLnBsYWNlaG9sZGVyIHsgYmFja2dyb3VuZC1zaXplOjExNSU7IH0KLyoqIC9jc3MvdG9hc3RyLmNzcyAqKi8KLnRvYXN0LXRpdGxle2ZvbnQtd2VpZ2h0OmJvbGR9LnRvYXN0LW1lc3NhZ2V7LW1zLXdvcmQtd3JhcDpicmVhay13b3JkO3dvcmQtd3JhcDpicmVhay13b3JkfS50b2FzdC1tZXNzYWdlIGEsLnRvYXN0LW1lc3NhZ2UgbGFiZWx7Y29sb3I6I2ZmZn0udG9hc3QtbWVzc2FnZSBhOmhvdmVye2NvbG9yOiNjY2M7dGV4dC1kZWNvcmF0aW9uOm5vbmV9LnRvYXN0LWNsb3NlLWJ1dHRvbntwb3NpdGlvbjpyZWxhdGl2ZTtyaWdodDotMC4zZW07dG9wOi0wLjNlbTtmbG9hdDpyaWdodDtmb250LXNpemU6MS4yNXJlbSA7Zm9udC13ZWlnaHQ6Ym9sZDtjb2xvcjppbmhlcml0Oy13ZWJraXQtdGV4dC1zaGFkb3c6MCAxcHggMCAjZmZmO3RleHQtc2hhZG93OjAgMXB4IDAgI2ZmZjtvcGFjaXR5Oi44Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT04MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApfS50b2FzdC1jbG9zZS1idXR0b246aG92ZXIsLnRvYXN0LWNsb3NlLWJ1dHRvbjpmb2N1c3tjb2xvcjojMDAwMDAwO3RleHQtZGVjb3JhdGlvbjpub25lO2N1cnNvcjpwb2ludGVyO29wYWNpdHk6LjQ7LW1zLWZpbHRlcjphbHBoYShvcGFjaXR5PTQwKTtmaWx0ZXI6YWxwaGEob3BhY2l0eT00MCl9YnV0dG9uLnRvYXN0LWNsb3NlLWJ1dHRvbntwYWRkaW5nOjA7Y3Vyc29yOnBvaW50ZXI7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0udG9hc3QtdG9wLWNlbnRlcnt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LWJvdHRvbS1jZW50ZXJ7Ym90dG9tOjA7cmlnaHQ6MDt3aWR0aDoxMDAlfS50b2FzdC10b3AtZnVsbC13aWR0aHt0b3A6MDtyaWdodDowO3dpZHRoOjEwMCV9LnRvYXN0LWJvdHRvbS1mdWxsLXdpZHRoe2JvdHRvbTowO3JpZ2h0OjA7d2lkdGg6MTAwJX0udG9hc3QtdG9wLWxlZnR7dG9wOjEycHg7bGVmdDoxMnB4fS50b2FzdC10b3AtcmlnaHR7dG9wOjEycHg7cmlnaHQ6MTJweH0udG9hc3QtYm90dG9tLXJpZ2h0e3JpZ2h0OjEycHg7Ym90dG9tOjEycHh9LnRvYXN0LWJvdHRvbS1sZWZ0e2JvdHRvbToxMnB4O2xlZnQ6MTJweH0jdG9hc3QtY29udGFpbmVye3Bvc2l0aW9uOmZpeGVkO3otaW5kZXg6OTk5OTk5O2NvbG9yOiNGRkZ9I3RvYXN0LWNvbnRhaW5lciAqey1tb3otYm94LXNpemluZzpib3JkZXItYm94Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0jdG9hc3QtY29udGFpbmVyPmRpdntwb3NpdGlvbjpyZWxhdGl2ZTtvdmVyZmxvdzpoaWRkZW47bWFyZ2luOjAgMCA2cHg7cGFkZGluZzoxNXB4IDE1cHggMTVweCA1MHB4O3dpZHRoOjMwMHB4Oy1tb3otYm9yZGVyLXJhZGl1czozcHggM3B4IDNweCAzcHg7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjNweCAzcHggM3B4IDNweDtib3JkZXItcmFkaXVzOjNweCAzcHggM3B4IDNweDtiYWNrZ3JvdW5kLXBvc2l0aW9uOjE1cHggY2VudGVyO2JhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDstbW96LWJveC1zaGFkb3c6MCAwIDEycHggIzk5OTstd2Via2l0LWJveC1zaGFkb3c6MCAwIDEycHggIzk5OTtib3gtc2hhZG93OjAgMCAxMnB4ICM5OTk7Y29sb3I6aW5oZXJpdDtvcGFjaXR5Oi44Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT04MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9ODApfSN0b2FzdC1jb250YWluZXI+OmhvdmVyey1tb3otYm94LXNoYWRvdzowIDAgMTJweCAjMDAwOy13ZWJraXQtYm94LXNoYWRvdzowIDAgMTJweCAjMDAwO2JveC1zaGFkb3c6MCAwIDEycHggIzAwMDtvcGFjaXR5OjE7LW1zLWZpbHRlcjphbHBoYShvcGFjaXR5PTEwMCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9MTAwKTtjdXJzb3I6cG9pbnRlcn0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1pbmZve2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBR3dTVVJCVkVoTHRaYTlTZ05CRU1jOXNVeHhSY29VS1N6U1dJaFhwRk1oaFlXRmhhQmc0eVBZaVdDWFp4QkxFUnNMUlMzRVFrRWZ3Q0tkaldKQXdTS0Nnb0tDY3VkdjRPNVlMcnQ3RXpnWGhpVTMvNCtiMmNrbXdWakpTcEtrUTZ3QWk0Z3doVCt6M3dSQmNFejB5alNzZVVUcmNSeWZzSHNYbUQwQW1iSE9DOUlpOFZJbW51WEJQZ2xIcFE1d3dTVk03c05uVEc3WmE0SndEZENqeHlBaUgzbnlBMm10YVRKdWZpRFo1ZENhcWxJdElMaDFOSGF0Zk41c2t2ang5WjM4bTY5Q2d6dVhtWmdWclBJR0U3NjNKeDlxS3NSb3pXWXc2eE9IZEVSK25uMktrTytCYitVVjVDQk42V0M2UXRCZ2JSVm96cmFoQWJtbTZIdFVzZ3RQQzE5dEZkeFhaWUJPZmtibUZKMVZhSEExVkFIamQwcHA3MG9UWnp2UitFVnJ4MllnZmRzcTZldTU1QkhZUjhobGNraStuK2tFUlVGRzhCckEwQndqZUF2Mk04V0xRQnRjeStTRDZmTnNtbkIzQWxCTHJnVHRWVzFjMlFONGJWV0xBVGFJUzYwSjJEdTV5MVRpSmdqU0J2RlZaZ1Rtd0NVK2RBWkZvUHhHRUVzOG55SEM5QndlMkd2RUp2MldYWmIwdmpkeUZUNEN4azNlL2tJcWxPR29WTHd3UGV2cFlIVCswMFQraFd3WERmNEFKQU9VcVdjRGhid0FBQUFBU1VWT1JLNUNZSUk9IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC1lcnJvcntiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFCZ0FBQUFZQ0FZQUFBRGdkejM0QUFBQUFYTlNSMElBcnM0YzZRQUFBQVJuUVUxQkFBQ3hqd3Y4WVFVQUFBQUpjRWhaY3dBQURzTUFBQTdEQWNkdnFHUUFBQUhPU1VSQlZFaExyWmEvU2dOQkVNWnpoMFdLQ0NsU0NLYUlZT0VEK0FBS2VRUUxHOEhXenRMQ0ltQnJZYWRnSWRZK2dJS05Za0JGU3d1N0NBb3FDZ2trb0dCSS9FMjhQZGJMWm1lRExnelp6Y3g4My96WjJTU1hDMWo5ZnIrSTFIcTkzZzJ5eEg0aXdNMXZrb0JXQWR4Q21welR4ZmtOMlJjeVpOYUhGSWtTbzEwKzhrZ3hrWElVUlY1SEd4VG1GdWM3NUIyUmZRa3B4SEc4YUFnYUFGYTB0QUhxWUZmUTdJd2UyeWhPRGs4K0o0Qzd5QW9SVFdJM3cvNGtsR1JnUjRsTzdScG45K2d2TXlXcCt1eEZoOCtIK0FSbGdOMW5KdUp1UUFZdk5rRW53R0ZjazE4RXI0cTNlZ0VjL29PK21oTGRLZ1J5aGRORmlhY0MwcmxPQ2JoTlZ6NEg5Rm5BWWdEQnZVM1FJaW9abEpGTEp0c29IWVJEZmlab1V5SXhxQ3RScFZsQU5xMEVVNGRBcGpydGdlelBGYWQ1UzE5V2dqa2MwaE5WbnVGNEhqVkE2QzdRclNJYnlsQitvWmUzYUhnQnNxbE5xS1lINDhqWHlKS011QWJpeVZKOEt6YUIzZVJjMHBnOVZ3UTRuaUZyeUk2OHFpT2kzQWJqd2RzZm5BdGswYkNqVExKS3I2bXJEOWc4aXEvUy9CODFoZ3VPTWxRVG5WeUc0MHdBY2pubWdzQ05FU0Ryam1lN3dmZnRQNFA3U1A0TjNDSlpkdnpvTnlHcTJjL0hXT1hKR3N2VmcrUkEvazJNQy93TjZJMllBMlB0OEdrQUFBQUFTVVZPUks1Q1lJST0iKSAhaW1wb3J0YW50fSN0b2FzdC1jb250YWluZXI+LnRvYXN0LXN1Y2Nlc3N7YmFja2dyb3VuZC1pbWFnZTp1cmwoImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQmdBQUFBWUNBWUFBQURnZHozNEFBQUFBWE5TUjBJQXJzNGM2UUFBQUFSblFVMUJBQUN4and2OFlRVUFBQUFKY0VoWmN3QUFEc01BQUE3REFjZHZxR1FBQUFEc1NVUkJWRWhMWTJBWUJmUU1nZi8vLzNQOCsvZXZBSWd2QS9Gc0lGK0JhdllERFdNQkdyb2FTTU1CaUU4VkM3QVpEcklGYU1GbmlpM0FaVGpVZ3NVVVdVREE4T2RBSDZpUWJRRWh3NEh5R3NQRWNLQlhCSUM0QVJoZXg0RzRCc2ptd2VVMXNvSUZhR2cvV3RvRlpSSVpkRXZJTWh4a0NDalhJVnNBVFY2Z0ZHQUNzNFJzdzBFR2dJSUgzUUpZSmdIU0FSUVpEcldBQitqYXd6Z3MrUTJVTzQ5RDdqblJTUkdvRUZSSUxjZG1FTVdHSTBjbTBKSjJRcFlBMVJEdmNtekpFV2hBQmhEL3BxckwwUzBDV3VBQktnblJraTlsTHNlUzdnMkFscXdIV1FTS0g0b0tMcklMcFJHaEVRQ3cyTGlSVUlhNGx3QUFBQUJKUlU1RXJrSmdnZz09IikgIWltcG9ydGFudH0jdG9hc3QtY29udGFpbmVyPi50b2FzdC13YXJuaW5ne2JhY2tncm91bmQtaW1hZ2U6dXJsKCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJnQUFBQVlDQVlBQUFEZ2R6MzRBQUFBQVhOU1IwSUFyczRjNlFBQUFBUm5RVTFCQUFDeGp3djhZUVVBQUFBSmNFaFpjd0FBRHNNQUFBN0RBY2R2cUdRQUFBR1lTVVJCVkVoTDVaU3ZUc05RRk1iWFpHSUNNWUdZbUpoQVFJSkFJQ1lRUEFBQ2lTREI4QWlJQ1FRSlQ0Q3FRRXdnSnZZQVNBUUNpWmlZbUpoQUlCQVRDQVJKeSs5clRzbGRkOHNLdTFNMCtkTGIwNTd2Ni9sYnEvMnJLMG1TL1RSTmo5Y1dOQUtQWUlKSUk3Z0l4Q2NRNTFjdnFJRCtHSUVYOEFTRzRCMWJLNWdJWkZlUWZvSmRFWE9mZ1g0UUFRZzdrSDJBNjV5UTg3bHl4YjI3c2dna0F6QXVGaGJiZzFLMmtnQ2tCMWJWd3lJUjltMkw3UFJQSWhEVUlYZ0d0eUt3NTc1eXozbFROczZYNEpYbmpWK0xLTS9tM015ZG5UYnRPS0lqdHo2VmhDQnE0dlNtM25jZHJEMmxrMFZnVVhTVktqVkRKWEp6aWpXMVJRZHNVN0Y3N0hlOHU2OGtvTlpUejhPejV5R2E2SjNIM2xaMHhZZ1hCSzJReW1sV1dBK1JXblloc2tMQnYydm1FK2hCTUN0YkE3S1g1ZHJXeVJULzJKc3FaMkl2ZkI5WTRiV0ROTUZiSlJGbUM5RTc0U29TMENxdWx3amtDMCs1YnBjVjFDWjhOTWVqNHBqeTBVK2RvRFFzR3lvMWh6Vkp0dElqaFE3R25CdFJGTjFVYXJVbEg4RjN4aWN0K0hZMDdyRXpvVUdQbFdjalJGUnI0L2dDaFpnYzNaTDJkOG9BQUFBQVNVVk9SSzVDWUlJPSIpICFpbXBvcnRhbnR9I3RvYXN0LWNvbnRhaW5lci50b2FzdC10b3AtY2VudGVyPmRpdiwjdG9hc3QtY29udGFpbmVyLnRvYXN0LWJvdHRvbS1jZW50ZXI+ZGl2e3dpZHRoOjMwMHB4O21hcmdpbjphdXRvfSN0b2FzdC1jb250YWluZXIudG9hc3QtdG9wLWZ1bGwtd2lkdGg+ZGl2LCN0b2FzdC1jb250YWluZXIudG9hc3QtYm90dG9tLWZ1bGwtd2lkdGg+ZGl2e3dpZHRoOjk2JTttYXJnaW46YXV0b30udG9hc3R7YmFja2dyb3VuZC1jb2xvcjojMDMwMzAzfS50b2FzdC1zdWNjZXNze2JhY2tncm91bmQtY29sb3I6IzUxYTM1MX0udG9hc3QtZXJyb3J7YmFja2dyb3VuZC1jb2xvcjojYmQzNjJmfS50b2FzdC1pbmZve2JhY2tncm91bmQtY29sb3I6IzJmOTZiNH0udG9hc3Qtd2FybmluZ3tiYWNrZ3JvdW5kLWNvbG9yOiNmODk0MDZ9LnRvYXN0LXByb2dyZXNze3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDtib3R0b206MDtoZWlnaHQ6NHB4O2JhY2tncm91bmQtY29sb3I6IzAwMDtvcGFjaXR5Oi40Oy1tcy1maWx0ZXI6YWxwaGEob3BhY2l0eT00MCk7ZmlsdGVyOmFscGhhKG9wYWNpdHk9NDApfUBtZWRpYSBhbGwgYW5kIChtYXgtd2lkdGg6MjQwcHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6OHB4IDhweCA4cHggNTBweDt3aWR0aDoxMWVtfSN0b2FzdC1jb250YWluZXIgLnRvYXN0LWNsb3NlLWJ1dHRvbntyaWdodDotMC4yZW07dG9wOi0wLjJlbX19QG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDoyNDFweCkgYW5kIChtYXgtd2lkdGg6NDgwcHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6OHB4IDhweCA4cHggNTBweDt3aWR0aDoxOGVtfSN0b2FzdC1jb250YWluZXIgLnRvYXN0LWNsb3NlLWJ1dHRvbntyaWdodDotMC4yZW07dG9wOi0wLjJlbX19QG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDo0ODFweCkgYW5kIChtYXgtd2lkdGg6NzY4cHgpeyN0b2FzdC1jb250YWluZXI+ZGl2e3BhZGRpbmc6MTVweCAxNXB4IDE1cHggNTBweDt3aWR0aDoyNWVtfX0KLyoqIC9jc3Mvc3F1YXJlX2J1dHRvbnMuY3NzICoqLwpidXR0b246bm90KC5idG4tcm91bmQpLCBpbnB1dFt0eXBlPXN1Ym1pdF0sIGlucHV0W3R5cGU9YnV0dG9uXSwgYVtvbmNsaWNrXSwgZGl2W29uY2xpY2tdLCAjZGktcmVhY3RpdmUtY29udGFpbmVyLXJpZ2h0LCAjZGktcHJvYWN0aXZlLWhlYWRlci1taW5pbWl6ZWQsICNkaS1wcm9hY3RpdmUtd2ViY2hhdC1idXR0b24sICNkaS1wcm9hY3RpdmUtc21zLWJ1dHRvbiwgLlVzZWRTcnAyIC5mbHRUb1Jlc3VsdCAuZGl2QWN0aW9uLCAuZGl2U2VvTGlua0lubmVyIGxpLCAuc3AtY2xlYXIuYWN0aXZlLCAuc3BlY3MtdG9nZ2xlLCAuZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggLnJlYmF0ZVRhZywgLmJ1aWxkVHJpbUNhdGVnb3J5TGlzdExpLCAudHJhZGVJbkJhck1vYmlsZUJ1dHRvbiwgLmJ0bi1zbSwgLnRvcGJhcjNidG5XcmFwLCAjZGVmYXVsdFRvcEJhbm5lckJ0biwgLmJ0bi1kZWZhdWx0IHsgYm9yZGVyLXJhZGl1czowICFpbXBvcnRhbnQ7IH0gLmNhcm91c3NlbCBhLmFycm93IHNwYW46aXMoLmZhLCAuZmFzKSB7IG1hcmdpbi1yaWdodDowOyB9Ci8qKiAvY3NzL2h5dW5kYWlfY2VydGlmaWVkLmNzcyAqKi8KYm9keSAqOm5vdCguZmEsIC5mYWIsIC5mYWQsIC5mYWwsIC5mYXIsIC5mYXMpIHsgZm9udC1mYW1pbHk6aW5oZXJpdCAhaW1wb3J0YW50OyB9IDppcyhidXR0b24sIFtyb2xlPSJidXR0b24iXSwgYSwgaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEpOmZvY3VzIHsgb3V0bGluZToycHggc29saWQgIzAwN0ZBNSAhaW1wb3J0YW50OyB9IC5Vc2VkU3JwMiAuZmx0V3JhcHBlciAuZmx0Qm94IC5mbHRUaXRsZSwgLmRpdlNwYW4gLmRpdlNwYW4xMiAuZmx0SGVhZCB7IHRleHQtdHJhbnNmb3JtOmNhcGl0YWxpemU7IH0gI2h5dW5kYWlDZXJ0aWZpZWRGb290ZXIgeyB3aWR0aDoxMDAlOyBoZWlnaHQ6NzVweDsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmOyBjbGVhcjpib3RoOyB9ICNoeXVuZGFpQ2VydGlmaWVkRm9vdGVyLnNlcGFyYXRvciB7IGJvcmRlci10b3A6MXB4IHNvbGlkICNjY2NjY2M7IH0gI2h5dW5kYWlDZXJ0aWZpZWRGb290ZXIgLmNvbnRhaW5lciB7IGRpc3BsYXkgOmZsZXg7IGZsZXgtZGlyZWN0aW9uIDpyb3c7IGp1c3RpZnktY29udGVudCA6Y2VudGVyOyBhbGlnbi1pdGVtcyA6Y2VudGVyOyB3aWR0aCA6OTYwcHg7IGhlaWdodCA6NzVweDsgbWFyZ2luIDowIGF1dG87IHBvc2l0aW9uIDpyZWxhdGl2ZTsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuc29jaWFsLW1lZGlhX19jb250YWluZXIgeyBkaXNwbGF5IDpmbGV4OyBmbGV4LWRpcmVjdGlvbiA6cm93OyBqdXN0aWZ5LWNvbnRlbnQgOmNlbnRlcjsgYWxpZ24taXRlbXMgOmNlbnRlcjsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuc29jaWFsLW1lZGlhX19jb250YWluZXIgYSB7IGhlaWdodCA6MjhweDsgd2lkdGggOjI4cHg7IG1hcmdpbiA6MCAxMHB4OyBib3JkZXItcmFkaXVzIDozcHg7IGJhY2tncm91bmQtY29sb3IgOnRyYW5zcGFyZW50OyBjb2xvciA6IzAwMDAwMDsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuc29jaWFsLW1lZGlhX19jb250YWluZXIgaW1nIHsgaGVpZ2h0IDoyOHB4OyB3aWR0aCA6MjhweDsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuZGlzY2xhaW1lcl9fY29udGFpbmVyIHsgd2lkdGggOjUwJTsgbWFyZ2luIDowIDJyZW07IH0gI2h5dW5kYWlDZXJ0aWZpZWRGb290ZXIgLmRpc2NsYWltZXJfX2NvbnRhaW5lciBwIHsgZm9udC1zaXplIDowLjhyZW07IHRleHQtYWxpZ24gOmNlbnRlcjsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuY2VydGlmaWVkLWxvZ28geyB3aWR0aCA6MjAwcHg7IGhlaWdodCA6YXV0bzsgfSBidXR0b24gLi1ib2xkIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5uZXdWZHBBY3Rpb25zIC5wcm9tb0JUTiwgLnVzZWRWZHBBY3Rpb25zIC5wcm9tb0JUTiB7IGhlaWdodDozLjVyZW07IGxpbmUtaGVpZ2h0OjEuMTI1cmVtICFpbXBvcnRhbnQ7IH0gLnVzZWRWZHBBY3Rpb25zIC5idXR0b25fdW5kZXIgYS5wcm9tb0JUTiB7IGhlaWdodDoyLjRyZW07IGxpbmUtaGVpZ2h0OjIuNHJlbSFpbXBvcnRhbnQ7IH0gLmJlc3RwcmljZXMtLWNvbnRhaW5lciAucHJpY2UtLWNhbGN1bGF0b3IgLmJ0biwgLmxhbmd1YWdlQmFyICNzZXJ2aWNlX2FwcG9pbnRfaGVhZGVyID4gYS5idG4tZGVmYXVsdCwgI3N1Ym1pdGV4cHJlc3NyZXF1ZXN0IHsgYmFja2dyb3VuZCA6IzAwMkM1RiAhaW1wb3J0YW50OyBjb2xvciA6I0ZGRkZGRiAhaW1wb3J0YW50OyBib3JkZXIgOjJweCBzb2xpZCAjMDAyQzVGICFpbXBvcnRhbnQ7IH0gLmJ0bi1kZWZhdWx0Om5vdCgucHJvbW9CVE4pLCAuYnRuLXNtLCAuYnRuLWxnLCAuc3VibWl0LCAjc2xpZGVpdCBpbnB1dC5zZW5kLCAuY3VzdG9tZm9ybV9zdWJtaXQsIC5idG4tZGVmYXVsdC5idG4tYmctc2FtZSwgLm5ld1ZkcEFjdGlvbnMgLmJ1dHRvbl8zIGEsIC51c2VkVmRwQWN0aW9ucyAuYWN0aW9uLWJveCBhLmJ0bi1kZWZhdWx0LCAudXNlZFZkcEFjdGlvbnMgLmJ1dHRvbl8zIGEsICNmaW5hbmNlQWx0RGlzcGxheS5jdXN0b20gLmZvcm1ob2xkZXIgZm9ybSAuYmlnX0J1dHRvbiwgI2xvYW5jYWxjdWxhdG9yIGJ1dHRvbiNsb2FuQ2FsY3VsYXRvckFjdGlvbiwgI2xvYW5jYWxjdWxhdG9yIGJ1dHRvbiNhcHBseUxvYW5DYWxjdWxhdG9yLCAuYnV0dG9uXzEgYSwgLmJ1dHRvbl8yIGEsIC5wcm9tby1idG4sIC5wdWxsb3V0cyAucHVsbG91dC1ib2R5LWJ1dHRvbiwgYnV0dG9uI2Zvcm1zdWJtaXQgeyBiYWNrZ3JvdW5kIDojRkZGRkZGICFpbXBvcnRhbnQ7IGNvbG9yIDojMDAyQzVGICFpbXBvcnRhbnQ7IGJvcmRlciA6MnB4IHNvbGlkICMwMDJDNUYgIWltcG9ydGFudDsgZm9udC1zaXplIDoxcmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0Om5vcm1hbDsgfSAuYnRuLWRlZmF1bHQ6bm90KC5wcm9tb0JUTik6YWZ0ZXIsIC5idG4tZGVmYXVsdDpub3QoLnByb21vQlROKTpiZWZvcmUsIC5idG4tZGVmYXVsdDpub3QoLnByb21vQlROKSAuZmEsIC5idG4tc206YWZ0ZXIsIC5idG4tc206YmVmb3JlLCAuYnRuLXNtLmZhLCAuYnRuLWxnOmFmdGVyLCAuYnRuLWxnOmJlZm9yZSwgLmJ0bi1sZy5mYSwgLnN1Ym1pdDphZnRlciwgLnN1Ym1pdDpiZWZvcmUsIC5zdWJtaXQuZmEsIC5jdXN0b21mb3JtX3N1Ym1pdDphZnRlciwgLmN1c3RvbWZvcm1fc3VibWl0OmJlZm9yZSwgLmN1c3RvbWZvcm1fc3VibWl0LmZhLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2xvYW5DYWxjdWxhdG9yQWN0aW9uIC5mYSwgLmdyYXlib3ggLmJ0bi1kZWZhdWx0Om5vdCgucHJvbW9CVE4pIHNwYW4geyBjb2xvciA6aW5oZXJpdCAhaW1wb3J0YW50OyB9IC5idG4tbGcsICNmaW5hbmNlQWx0RGlzcGxheS5jdXN0b20gLmZvcm1ob2xkZXIgZm9ybSAuYmlnX0J1dHRvbiwgI2xvYW5jYWxjdWxhdG9yIGJ1dHRvbiNsb2FuQ2FsY3VsYXRvckFjdGlvbiwgI2xvYW5jYWxjdWxhdG9yIGJ1dHRvbiNhcHBseUxvYW5DYWxjdWxhdG9yIHsgbWluLWhlaWdodCA6My4yNXJlbSAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDozLjI1cmVtICFpbXBvcnRhbnQ7IHBhZGRpbmctdG9wOjAgIWltcG9ydGFudDsgcGFkZGluZy1ib3R0b206MCAhaW1wb3J0YW50OyB0ZXh0LXNoYWRvdzpub25lIWltcG9ydGFudDsgYm94LXNoYWRvdzpub25lIWltcG9ydGFudDsgfSAuYnRuLXNtLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2xvYW5DYWxjdWxhdG9yQWN0aW9uLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2FwcGx5TG9hbkNhbGN1bGF0b3IsIC5wdWxsb3V0cyAucHVsbG91dC1ib2R5LWJ1dHRvbiB7IHBhZGRpbmctbGVmdDoxLjI1cmVtICFpbXBvcnRhbnQ7IHBhZGRpbmctcmlnaHQ6MS4yNXJlbSAhaW1wb3J0YW50OyB9IC5uZXdWZHBBY3Rpb25zIC5idXR0b25fMyBhLCAudXNlZFZkcEFjdGlvbnMgLmFjdGlvbi1ib3ggYS5idG4tZGVmYXVsdCwgLnVzZWRWZHBBY3Rpb25zIC5idXR0b25fMyBhIHsgaGVpZ2h0IDozLjI1cmVtOyBsaW5lLWhlaWdodDozLjI1cmVtICFpbXBvcnRhbnQ7IH0gLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCAuY3JlZGl0U2NvcmVfYnRuIHsgaGVpZ2h0IDozLjVyZW0gIWltcG9ydGFudDsgbGluZS1oZWlnaHQgOjMuNXJlbSAhaW1wb3J0YW50OyBwYWRkaW5nIDowIDIwcHg7IGZvbnQtc2l6ZSA6MXJlbSAhaW1wb3J0YW50OyB9IC50cmFkZUluQmFyX2J0bjpob3ZlciwgLm5ld1ZkcEFjdGlvbnMgLmJ1dHRvbl8zIGE6aG92ZXIsIC51c2VkVmRwQWN0aW9ucyAuYWN0aW9uLWJveCBhLmJ0bi1kZWZhdWx0OmhvdmVyLCAudXNlZFZkcEFjdGlvbnMgLmJ1dHRvbl8zIGE6aG92ZXIsIC5jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyRW1iZWRkZWQgLmNyZWRpdFNjb3JlX2J0bjpob3ZlciwgLmJ0bi1kZWZhdWx0OmhvdmVyLCAuY3VzdG9tZm9ybV9zdWJtaXQ6aG92ZXIsIC5idG4tc206aG92ZXIsIC5idG4tbGc6aG92ZXIsIC5zdWJtaXQ6aG92ZXIsICNzbGlkZWl0IGlucHV0LnNlbmQ6aG92ZXIsIC5idG4tZGVmYXVsdC5idG4tYmctc2FtZTpob3ZlciwgI2ZpbmFuY2VBbHREaXNwbGF5LmN1c3RvbSAuZm9ybWhvbGRlciBmb3JtIC5iaWdfQnV0dG9uOmhvdmVyLCAucHJvbW8tY2FyZC1vZW0gYS5idG46aG92ZXIsICNsb2FuY2FsY3VsYXRvciBidXR0b24jbG9hbkNhbGN1bGF0b3JBY3Rpb246bm90KDpkaXNhYmxlZCk6aG92ZXIgLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2FwcGx5TG9hbkNhbGN1bGF0b3I6bm90KDpkaXNhYmxlZCk6aG92ZXIsIC5idXR0b25fMSBhOmhvdmVyLCAuYnV0dG9uXzIgYTpob3ZlciwgLnByb21vLWJ0bjpob3ZlciwgLmJlc3RwcmljZXMtLWNvbnRhaW5lciAucHJpY2UtLWNhbGN1bGF0b3IgLmJ0bjpob3ZlciwgLnB1bGxvdXRzIC5wdWxsb3V0LWJvZHktYnV0dG9uOmhvdmVyLCAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhLmJ0bi1kZWZhdWx0OmhvdmVyLCAjdHJhZGVJbkJhclBvcHVwU3VibWl0OmhvdmVyLCBidXR0b24jZm9ybXN1Ym1pdDpob3ZlciwgI3N1Ym1pdGV4cHJlc3NyZXF1ZXN0OmhvdmVyIHsgYmFja2dyb3VuZCA6IzAwN0ZBNSAhaW1wb3J0YW50OyBjb2xvciA6I0ZGRkZGRiAhaW1wb3J0YW50OyBib3JkZXItY29sb3IgOiMwMDdGQTUgIWltcG9ydGFudDsgfSAucHJvbW9CVE4ucmlwcGxlOmhvdmVyIHNwYW4uZmF7IGNvbG9yOmluaGVyaXQ7IH0gLmlkTmF2MSwgLmlkTmF2MSBsaS50b3AgeyBoZWlnaHQ6YXV0bzsgfSAjbWFpbkRpdi53cmFwcGVyIC50b3BfYmcgeyBtaW4taGVpZ2h0OjkwcHg7IG1hcmdpbi1ib3R0b206MTBweDsgfSAuaGVhZGVyLWltYWdlLXdyYXBwZXIgeyBtaW4taGVpZ2h0OjYwcHggIWltcG9ydGFudDsgfSAuaGVhZGVyLXNlY3Rpb24gLmFkciB7IG1hcmdpbjowOyB9ICNNYWluTWVudV9TRUFSQ0hfQkFSIC5zZWFyY2gtaWNvbiB7IGJhY2tncm91bmQtY29sb3I6IzAwMmM1ZiAhaW1wb3J0YW50OyB9IC5tb2JpbGVIeXVuZGFpQ2VydGlmaWVkRm9vdGVyeyBoZWlnaHQ6MTAwJSFpbXBvcnRhbnQ7IG1hcmdpbi10b3A6MTBweDsgfSAubW9iaWxlSHl1bmRhaUNlcnRpZmllZEZvb3RlciA+IC5jb250YWluZXJ7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbiAhaW1wb3J0YW50OyBoZWlnaHQ6MTAwJSFpbXBvcnRhbnQ7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyBwYWRkaW5nLXRvcDoxMHB4OyB9IC5tb2JpbGVIeXVuZGFpQ2VydGlmaWVkRm9vdGVyIC5kaXNjbGFpbWVyX19jb250YWluZXJ7IHdpZHRoOjEwMCUhaW1wb3J0YW50OyB9Ci8qKiAvY3NzL3ZlaGljbGVGZWF0dXJlU3VtbWFyeS5wcmVsb2FkLmNzcyAqKi8KLnZkcEZlYXR1cmVTdW1tYXJ5eyAtLXN3aXRjaC1icDo1MHJlbTsgYm9yZGVyLWNvbG9yOiNjY2NjY2M7IGNsZWFyOmJvdGg7IH0gLnZzZmlJdGVtU3VtbWFyeSB7IGZvbnQtd2VpZ2h0OjcwMDsgZm9udC1zaXplOjEuMnJlbTsgfSAudmRwRmVhdHVyZUNvbnN1bXB0aW9ueyBkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyB9IC52ZHBGZWF0dXJlQ29uc3VtcHRpb24gPiAqeyBmbGV4OjEgMSAzMSU7IG1pbi13aWR0aDo5cmVtOyB9ICN0b3BGZWF0dXJlVGl0bGUgeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KLyoqIC9jc3Mva2MuZmFiLmNzcyAqKi8KI2NvbnRhaW5lckZsQiB7IG1hcmdpbjowOyB3aWR0aDo2MHB4OyBoZWlnaHQ6NjBweDsgcG9zaXRpb246Zml4ZWQ7Ym90dG9tOjIwcHg7cmlnaHQ6MTBweDt9ICNjaXJjbGVGbEIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6MTAwJTsgcGFkZGluZy1ib3R0b206MTAwJTsgb3ZlcmZsb3c6aGlkZGVuOyB9ICNjaXJjbGVGbEIgdGV4dCB7IGZvbnQtZmFtaWx5OidIZWx2ZXRpY2EgTmV1ZScsIEFyaWFsOyBmb250LXNpemU6MS4yNXJlbSA7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NpcmNsZUZsQiBzdmcgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB0b3A6MDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6cm90YXRlOyAtbW96LWFuaW1hdGlvbi1uYW1lOnJvdGF0ZTsgLW1zLWFuaW1hdGlvbi1uYW1lOnJvdGF0ZTsgLW8tYW5pbWF0aW9uLW5hbWU6cm90YXRlOyBhbmltYXRpb24tbmFtZTpyb3RhdGU7IC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOjVzOyAtbW96LWFuaW1hdGlvbi1kdXJhdGlvbjo1czsgLW1zLWFuaW1hdGlvbi1kdXJhdGlvbjo1czsgLW8tYW5pbWF0aW9uLWR1cmF0aW9uOjVzOyBhbmltYXRpb24tZHVyYXRpb246NXM7IC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgLW1vei1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OmluZmluaXRlOyAtbXMtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgLW8tYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTsgLXdlYmtpdC1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjsgLW1vei1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjsgLW1zLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246bGluZWFyOyAtby1hbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcjsgYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXI7IH0gQC13ZWJraXQta2V5ZnJhbWVzIHJvdGF0ZSB7IGZyb20geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMCk7IH0gdG8geyAtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTsgfSB9IEAtbW96LWtleWZyYW1lcyByb3RhdGUgeyBmcm9tIHsgLW1vei10cmFuc2Zvcm06cm90YXRlKDApOyB9IHRvIHsgLW1vei10cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7IH0gfSBALW1zLWtleWZyYW1lcyByb3RhdGUgeyBmcm9tIHsgLW1zLXRyYW5zZm9ybTpyb3RhdGUoMCk7IH0gdG8geyAtbXMtdHJhbnNmb3JtOnJvdGF0ZSgzNjBkZWcpOyB9IH0gQC1vLWtleWZyYW1lcyByb3RhdGUgeyBmcm9tIHsgLW8tdHJhbnNmb3JtOnJvdGF0ZSgwKTsgfSB0byB7IC1vLXRyYW5zZm9ybTpyb3RhdGUoMzYwZGVnKTsgfSB9IEBrZXlmcmFtZXMgcm90YXRlIHsgZnJvbSB7IHRyYW5zZm9ybTpyb3RhdGUoMCk7IH0gdG8geyB0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyk7IH0gfSAjc2lnbkZsQnsgY29sb3I6I2ZmZjtwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6LTQ3cHg7bGVmdDoxOXB4O2ZvbnQtc2l6ZToyLjE4OHJlbSA7IHotaW5kZXg6OTk5OTk5OyB9Ci8qKiAvY3NzL2dlbmVyaWNfY2VydGlmaWVkLmNzcyAqKi8KLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5mYWIgeyBmb250LXNpemU6MS42ODhyZW0gOyB9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuZmEtZmFjZWJvb2sgeyBjb2xvcjojM2E1OTk4OyB9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuZmEtdHdpdHRlciB7IGNvbG9yOiMwMGFjZWQ7IH0gLnNvY2lhbC1tZWRpYV9fY29udGFpbmVyIC5mYS1pbnN0YWdyYW0geyBjb2xvcjojZjIzOTk1OyB9IC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciAuZmEteW91dHViZSB7IGNvbG9yOiNmZjAwMDA7IH0KLyoqIC9jc3MvaHl1bmRhaV9jZXJ0aWZpZWQuY3NzICoqLwpib2R5ICo6bm90KC5mYSwgLmZhYiwgLmZhZCwgLmZhbCwgLmZhciwgLmZhcykgeyBmb250LWZhbWlseTppbmhlcml0ICFpbXBvcnRhbnQ7IH0gOmlzKGJ1dHRvbiwgW3JvbGU9ImJ1dHRvbiJdLCBhLCBpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSk6Zm9jdXMgeyBvdXRsaW5lOjJweCBzb2xpZCAjMDA3RkE1ICFpbXBvcnRhbnQ7IH0gLlVzZWRTcnAyIC5mbHRXcmFwcGVyIC5mbHRCb3ggLmZsdFRpdGxlLCAuZGl2U3BhbiAuZGl2U3BhbjEyIC5mbHRIZWFkIHsgdGV4dC10cmFuc2Zvcm06Y2FwaXRhbGl6ZTsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciB7IHdpZHRoOjEwMCU7IGhlaWdodDo3NXB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmZmZmZmY7IGNsZWFyOmJvdGg7IH0gI2h5dW5kYWlDZXJ0aWZpZWRGb290ZXIuc2VwYXJhdG9yIHsgYm9yZGVyLXRvcDoxcHggc29saWQgI2NjY2NjYzsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuY29udGFpbmVyIHsgZGlzcGxheSA6ZmxleDsgZmxleC1kaXJlY3Rpb24gOnJvdzsganVzdGlmeS1jb250ZW50IDpjZW50ZXI7IGFsaWduLWl0ZW1zIDpjZW50ZXI7IHdpZHRoIDo5NjBweDsgaGVpZ2h0IDo3NXB4OyBtYXJnaW4gOjAgYXV0bzsgcG9zaXRpb24gOnJlbGF0aXZlOyB9ICNoeXVuZGFpQ2VydGlmaWVkRm9vdGVyIC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciB7IGRpc3BsYXkgOmZsZXg7IGZsZXgtZGlyZWN0aW9uIDpyb3c7IGp1c3RpZnktY29udGVudCA6Y2VudGVyOyBhbGlnbi1pdGVtcyA6Y2VudGVyOyB9ICNoeXVuZGFpQ2VydGlmaWVkRm9vdGVyIC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciBhIHsgaGVpZ2h0IDoyOHB4OyB3aWR0aCA6MjhweDsgbWFyZ2luIDowIDEwcHg7IGJvcmRlci1yYWRpdXMgOjNweDsgYmFja2dyb3VuZC1jb2xvciA6dHJhbnNwYXJlbnQ7IGNvbG9yIDojMDAwMDAwOyB9ICNoeXVuZGFpQ2VydGlmaWVkRm9vdGVyIC5zb2NpYWwtbWVkaWFfX2NvbnRhaW5lciBpbWcgeyBoZWlnaHQgOjI4cHg7IHdpZHRoIDoyOHB4OyB9ICNoeXVuZGFpQ2VydGlmaWVkRm9vdGVyIC5kaXNjbGFpbWVyX19jb250YWluZXIgeyB3aWR0aCA6NTAlOyBtYXJnaW4gOjAgMnJlbTsgfSAjaHl1bmRhaUNlcnRpZmllZEZvb3RlciAuZGlzY2xhaW1lcl9fY29udGFpbmVyIHAgeyBmb250LXNpemUgOjAuOHJlbTsgdGV4dC1hbGlnbiA6Y2VudGVyOyB9ICNoeXVuZGFpQ2VydGlmaWVkRm9vdGVyIC5jZXJ0aWZpZWQtbG9nbyB7IHdpZHRoIDoyMDBweDsgaGVpZ2h0IDphdXRvOyB9IGJ1dHRvbiAuLWJvbGQgeyBmb250LXdlaWdodDpub3JtYWw7IH0gLm5ld1ZkcEFjdGlvbnMgLnByb21vQlROLCAudXNlZFZkcEFjdGlvbnMgLnByb21vQlROIHsgaGVpZ2h0OjMuNXJlbTsgbGluZS1oZWlnaHQ6MS4xMjVyZW0gIWltcG9ydGFudDsgfSAudXNlZFZkcEFjdGlvbnMgLmJ1dHRvbl91bmRlciBhLnByb21vQlROIHsgaGVpZ2h0OjIuNHJlbTsgbGluZS1oZWlnaHQ6Mi40cmVtIWltcG9ydGFudDsgfSAuYmVzdHByaWNlcy0tY29udGFpbmVyIC5wcmljZS0tY2FsY3VsYXRvciAuYnRuLCAubGFuZ3VhZ2VCYXIgI3NlcnZpY2VfYXBwb2ludF9oZWFkZXIgPiBhLmJ0bi1kZWZhdWx0LCAjc3VibWl0ZXhwcmVzc3JlcXVlc3QgeyBiYWNrZ3JvdW5kIDojMDAyQzVGICFpbXBvcnRhbnQ7IGNvbG9yIDojRkZGRkZGICFpbXBvcnRhbnQ7IGJvcmRlciA6MnB4IHNvbGlkICMwMDJDNUYgIWltcG9ydGFudDsgfSAuYnRuLWRlZmF1bHQ6bm90KC5wcm9tb0JUTiksIC5idG4tc20sIC5idG4tbGcsIC5zdWJtaXQsICNzbGlkZWl0IGlucHV0LnNlbmQsIC5jdXN0b21mb3JtX3N1Ym1pdCwgLmJ0bi1kZWZhdWx0LmJ0bi1iZy1zYW1lLCAubmV3VmRwQWN0aW9ucyAuYnV0dG9uXzMgYSwgLnVzZWRWZHBBY3Rpb25zIC5hY3Rpb24tYm94IGEuYnRuLWRlZmF1bHQsIC51c2VkVmRwQWN0aW9ucyAuYnV0dG9uXzMgYSwgI2ZpbmFuY2VBbHREaXNwbGF5LmN1c3RvbSAuZm9ybWhvbGRlciBmb3JtIC5iaWdfQnV0dG9uLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2xvYW5DYWxjdWxhdG9yQWN0aW9uLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2FwcGx5TG9hbkNhbGN1bGF0b3IsIC5idXR0b25fMSBhLCAuYnV0dG9uXzIgYSwgLnByb21vLWJ0biwgLnB1bGxvdXRzIC5wdWxsb3V0LWJvZHktYnV0dG9uLCBidXR0b24jZm9ybXN1Ym1pdCB7IGJhY2tncm91bmQgOiNGRkZGRkYgIWltcG9ydGFudDsgY29sb3IgOiMwMDJDNUYgIWltcG9ydGFudDsgYm9yZGVyIDoycHggc29saWQgIzAwMkM1RiAhaW1wb3J0YW50OyBmb250LXNpemUgOjFyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IC5idG4tZGVmYXVsdDpub3QoLnByb21vQlROKTphZnRlciwgLmJ0bi1kZWZhdWx0Om5vdCgucHJvbW9CVE4pOmJlZm9yZSwgLmJ0bi1kZWZhdWx0Om5vdCgucHJvbW9CVE4pIC5mYSwgLmJ0bi1zbTphZnRlciwgLmJ0bi1zbTpiZWZvcmUsIC5idG4tc20uZmEsIC5idG4tbGc6YWZ0ZXIsIC5idG4tbGc6YmVmb3JlLCAuYnRuLWxnLmZhLCAuc3VibWl0OmFmdGVyLCAuc3VibWl0OmJlZm9yZSwgLnN1Ym1pdC5mYSwgLmN1c3RvbWZvcm1fc3VibWl0OmFmdGVyLCAuY3VzdG9tZm9ybV9zdWJtaXQ6YmVmb3JlLCAuY3VzdG9tZm9ybV9zdWJtaXQuZmEsICNsb2FuY2FsY3VsYXRvciBidXR0b24jbG9hbkNhbGN1bGF0b3JBY3Rpb24gLmZhLCAuZ3JheWJveCAuYnRuLWRlZmF1bHQ6bm90KC5wcm9tb0JUTikgc3BhbiB7IGNvbG9yIDppbmhlcml0ICFpbXBvcnRhbnQ7IH0gLmJ0bi1sZywgI2ZpbmFuY2VBbHREaXNwbGF5LmN1c3RvbSAuZm9ybWhvbGRlciBmb3JtIC5iaWdfQnV0dG9uLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2xvYW5DYWxjdWxhdG9yQWN0aW9uLCAjbG9hbmNhbGN1bGF0b3IgYnV0dG9uI2FwcGx5TG9hbkNhbGN1bGF0b3IgeyBtaW4taGVpZ2h0IDozLjI1cmVtICFpbXBvcnRhbnQ7IGxpbmUtaGVpZ2h0OjMuMjVyZW0gIWltcG9ydGFudDsgcGFkZGluZy10b3A6MCAhaW1wb3J0YW50OyBwYWRkaW5nLWJvdHRvbTowICFpbXBvcnRhbnQ7IHRleHQtc2hhZG93Om5vbmUhaW1wb3J0YW50OyBib3gtc2hhZG93Om5vbmUhaW1wb3J0YW50OyB9IC5idG4tc20sICNsb2FuY2FsY3VsYXRvciBidXR0b24jbG9hbkNhbGN1bGF0b3JBY3Rpb24sICNsb2FuY2FsY3VsYXRvciBidXR0b24jYXBwbHlMb2FuQ2FsY3VsYXRvciwgLnB1bGxvdXRzIC5wdWxsb3V0LWJvZHktYnV0dG9uIHsgcGFkZGluZy1sZWZ0OjEuMjVyZW0gIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDoxLjI1cmVtICFpbXBvcnRhbnQ7IH0gLm5ld1ZkcEFjdGlvbnMgLmJ1dHRvbl8zIGEsIC51c2VkVmRwQWN0aW9ucyAuYWN0aW9uLWJveCBhLmJ0bi1kZWZhdWx0LCAudXNlZFZkcEFjdGlvbnMgLmJ1dHRvbl8zIGEgeyBoZWlnaHQgOjMuMjVyZW07IGxpbmUtaGVpZ2h0OjMuMjVyZW0gIWltcG9ydGFudDsgfSAuY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lckVtYmVkZGVkIC5jcmVkaXRTY29yZV9idG4geyBoZWlnaHQgOjMuNXJlbSAhaW1wb3J0YW50OyBsaW5lLWhlaWdodCA6My41cmVtICFpbXBvcnRhbnQ7IHBhZGRpbmcgOjAgMjBweDsgZm9udC1zaXplIDoxcmVtICFpbXBvcnRhbnQ7IH0gLnRyYWRlSW5CYXJfYnRuOmhvdmVyLCAubmV3VmRwQWN0aW9ucyAuYnV0dG9uXzMgYTpob3ZlciwgLnVzZWRWZHBBY3Rpb25zIC5hY3Rpb24tYm94IGEuYnRuLWRlZmF1bHQ6aG92ZXIsIC51c2VkVmRwQWN0aW9ucyAuYnV0dG9uXzMgYTpob3ZlciwgLmNyZWRpdFNjb3JlUG9wdXBDb250YWluZXJFbWJlZGRlZCAuY3JlZGl0U2NvcmVfYnRuOmhvdmVyLCAuYnRuLWRlZmF1bHQ6aG92ZXIsIC5jdXN0b21mb3JtX3N1Ym1pdDpob3ZlciwgLmJ0bi1zbTpob3ZlciwgLmJ0bi1sZzpob3ZlciwgLnN1Ym1pdDpob3ZlciwgI3NsaWRlaXQgaW5wdXQuc2VuZDpob3ZlciwgLmJ0bi1kZWZhdWx0LmJ0bi1iZy1zYW1lOmhvdmVyLCAjZmluYW5jZUFsdERpc3BsYXkuY3VzdG9tIC5mb3JtaG9sZGVyIGZvcm0gLmJpZ19CdXR0b246aG92ZXIsIC5wcm9tby1jYXJkLW9lbSBhLmJ0bjpob3ZlciwgI2xvYW5jYWxjdWxhdG9yIGJ1dHRvbiNsb2FuQ2FsY3VsYXRvckFjdGlvbjpub3QoOmRpc2FibGVkKTpob3ZlciAsICNsb2FuY2FsY3VsYXRvciBidXR0b24jYXBwbHlMb2FuQ2FsY3VsYXRvcjpub3QoOmRpc2FibGVkKTpob3ZlciwgLmJ1dHRvbl8xIGE6aG92ZXIsIC5idXR0b25fMiBhOmhvdmVyLCAucHJvbW8tYnRuOmhvdmVyLCAuYmVzdHByaWNlcy0tY29udGFpbmVyIC5wcmljZS0tY2FsY3VsYXRvciAuYnRuOmhvdmVyLCAucHVsbG91dHMgLnB1bGxvdXQtYm9keS1idXR0b246aG92ZXIsIC5sYW5ndWFnZUJhciAjc2VydmljZV9hcHBvaW50X2hlYWRlciA+IGEuYnRuLWRlZmF1bHQ6aG92ZXIsICN0cmFkZUluQmFyUG9wdXBTdWJtaXQ6aG92ZXIsIGJ1dHRvbiNmb3Jtc3VibWl0OmhvdmVyLCAjc3VibWl0ZXhwcmVzc3JlcXVlc3Q6aG92ZXIgeyBiYWNrZ3JvdW5kIDojMDA3RkE1ICFpbXBvcnRhbnQ7IGNvbG9yIDojRkZGRkZGICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvciA6IzAwN0ZBNSAhaW1wb3J0YW50OyB9IC5wcm9tb0JUTi5yaXBwbGU6aG92ZXIgc3Bhbi5mYXsgY29sb3I6aW5oZXJpdDsgfSAuaWROYXYxLCAuaWROYXYxIGxpLnRvcCB7IGhlaWdodDphdXRvOyB9ICNtYWluRGl2LndyYXBwZXIgLnRvcF9iZyB7IG1pbi1oZWlnaHQ6OTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB9IC5oZWFkZXItaW1hZ2Utd3JhcHBlciB7IG1pbi1oZWlnaHQ6NjBweCAhaW1wb3J0YW50OyB9IC5oZWFkZXItc2VjdGlvbiAuYWRyIHsgbWFyZ2luOjA7IH0gI01haW5NZW51X1NFQVJDSF9CQVIgLnNlYXJjaC1pY29uIHsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmICFpbXBvcnRhbnQ7IH0gLm1vYmlsZUh5dW5kYWlDZXJ0aWZpZWRGb290ZXJ7IGhlaWdodDoxMDAlIWltcG9ydGFudDsgbWFyZ2luLXRvcDoxMHB4OyB9IC5tb2JpbGVIeXVuZGFpQ2VydGlmaWVkRm9vdGVyID4gLmNvbnRhaW5lcnsgZmxleC1kaXJlY3Rpb246Y29sdW1uICFpbXBvcnRhbnQ7IGhlaWdodDoxMDAlIWltcG9ydGFudDsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IHBhZGRpbmctdG9wOjEwcHg7IH0gLm1vYmlsZUh5dW5kYWlDZXJ0aWZpZWRGb290ZXIgLmRpc2NsYWltZXJfX2NvbnRhaW5lcnsgd2lkdGg6MTAwJSFpbXBvcnRhbnQ7IH0KLyoqIC9jc3MvY29udGFjdFBvcHVwLmNzcyAqKi8KI2NvbnRhY3Rwb3B1cCB7IHdpZHRoOjU5OHB4OyBtaW4td2lkdGg6MjMwcHg7IH0gI2NvbnRhY3Rwb3B1cC5tb2JpbGUgeyB3aWR0aDoxMDAlOyB9IC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEsIC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGV4dGFyZWEuanF0cmFuc2Zvcm1kb25lIHsgd2lkdGg6MTAwJTsgfSAuY29udGFjdHBvcHVwLm1vYmlsZSB0YWJsZS5qcVRyYW5zZm9ybVRleHRhcmVhIHRkLmpxVHJhbnNmb3JtVGV4dGFyZWEtbWwsIC5jb250YWN0cG9wdXAubW9iaWxlIHRhYmxlLmpxVHJhbnNmb3JtVGV4dGFyZWEgdGQuanFUcmFuc2Zvcm1UZXh0YXJlYS1tciB7IGRpc3BsYXk6bm9uZTsgfSAjY29udGFjdHBvcHVwICogeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gI2NvbnRhY3Rwb3B1cC5yZXZlYWwtbW9kYWwgeyBwYWRkaW5nOjA7IH0gI2NvbnRhY3Rwb3B1cC5yZXZlYWwtbW9kYWwgLmNsb3NlLXJldmVhbC1tb2RhbCB7IGRpc3BsYXk6bm9uZTsgfSAjY29udGFjdHBvcHVwIC5jb250YWN0cG9wdXAtYm9keSB7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHBhZGRpbmc6MzBweCAxMHB4IDEwcHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IGlucHV0IHsgd2lkdGg6MTAwJTsgfSAuY29udGFjdHBvcHVwLWJvZHkgLmRpdkJsb2NrUm93Om5vdCg6bGFzdC1jaGlsZCkgLmRpdlNwYW4geyBtYXJnaW4tYm90dG9tOjE1cHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IC5kaXZCbG9ja1JvdyAuZGl2U3BhbjY6Zmlyc3QtY2hpbGQgeyBwYWRkaW5nLXJpZ2h0OjE1cHg7IH0gLmNvbnRhY3Rwb3B1cC1ib2R5IC5kaXZCbG9ja1JvdyAuZGl2U3BhbjY6bGFzdC1jaGlsZCB7IHBhZGRpbmctbGVmdDoxNXB4OyB9IC5jb250YWN0cG9wdXAtYm9keSAuZGl2QmxvY2tSb3cgLmRpdlNwYW42IC5qcVRyYW5zZm9ybUlucHV0V3JhcHBlciB7IG1heC13aWR0aDoyNzRweCAhaW1wb3J0YW50OyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIHsgYm9yZGVyLXJhZGl1czo1cHggNXB4IDAgMDsgcGFkZGluZzoxNXB4IDE1cHggMzBweCAxNXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgcG9zaXRpb246cmVsYXRpdmU7IC13ZWJraXQtYm94LXNoYWRvdzowIDAgMTBweCAycHggcmdiYSgwLDAsMCwwLjMpOyAtbW96LWJveC1zaGFkb3c6MCAwIDEwcHggMnB4IHJnYmEoMCwwLDAsMC4zKTsgYm94LXNoYWRvdzowIDAgMTBweCAycHggcmdiYSgwLDAsMCwwLjMpOyBmb250LXNpemU6MS42MjVyZW0gOyBjb2xvcjojMDAwMDAwOyBiYWNrZ3JvdW5kLWNvbG9yOiNlNGRjZDM7IH0gLmNvbnRhY3Rwb3B1cC1oZWFkZXI6OmFmdGVyIHsgY29udGVudDoiIjsgcG9zaXRpb246YWJzb2x1dGU7IGJvdHRvbTotMTVweDsgbGVmdDo1MCU7IC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgLW1vei10cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUpOyAtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgLW8tdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgdHJhbnNmb3JtOnRyYW5zbGF0ZSgtNTAlKTsgYm9yZGVyLWxlZnQ6MzBweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjMwcHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6MTVweCBzb2xpZCAjZTRkY2QzOyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIC5mYS10aW1lcyB7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDowLjVyZW07IHRvcDowLjVyZW07IGZvbnQtc2l6ZTppbml0aWFsOyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIC5mYS10aW1lczpob3ZlciB7IGN1cnNvcjpwb2ludGVyOyB9IC5jb250YWN0cG9wdXAtaGVhZGVyIC5oZWFkZXItcmVwbGFjZSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9IGJ1dHRvbi5jb250YWN0LXN1Ym1pdCB7IHBhZGRpbmc6MTBweCAxNXB4OyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyBib3JkZXItY29sb3I6IzAwMDAwMDsgYmFja2dyb3VuZDojZTRkY2QzOyB0cmFuc2l0aW9uOmFsbCAwLjI1czsgY29sb3I6IzAwMDAwMDsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW46MDsgYm9yZGVyOjFweCBzb2xpZDsgdGV4dC10cmFuc2Zvcm06bm9uZTsgYm9yZGVyLXJhZGl1czozcHg7IGZvbnQtc2l6ZToxLjU2M3JlbSA7IH0gLmNvbnRhY3Qtc3VibWl0OmhvdmVyIHsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlci1jb2xvcjojZmZmZmZmOyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDdmYTU7IGNvbG9yOiNmZmZmZmY7IH0gLmNvbnRhY3Rwb3B1cC1mb290ZXIgeyB9IC5jb250YWN0cG9wdXAtZm9vdGVyIC5idG4td3JhcHBlciB7IHBhZGRpbmc6MTBweDsgfSAjY29udGFjdHBvcHVwIC5qcVRyYW5zZm9ybUlucHV0SW5uZXIgZGl2IHsgaGVpZ2h0OjMwcHg7IH0gI2NvbnRhY3Rwb3B1cCAuanFUcmFuc2Zvcm1JbnB1dElubmVyIGRpdi52YWxpZGl0eS1lcnJvbmVvdXMgeyB3aWR0aDppbmhlcml0OyB9Ci8qKiAvY3NzL2Rpdl90YWJsZXMuY3NzICoqLwpkaXYuZGl2VGFibGVWaWV3eyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRhYmxlV3JhcGVyeyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlRpdGxleyBkaXNwbGF5OmJsb2NrOyBmb250LXdlaWdodDpib2xkOyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IHBhZGRpbmc6MzBweCAwcHggMTBweCAxMHB4OyBjb2xvcjojMDAwMDAwOyB0ZXh0LWRlY29yYXRpb246bm9uZTsgdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyKTsgaGVpZ2h0OmF1dG87IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2VGFibGVPdXRlcnsgYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBwYWRkaW5nOjA7IGJvcmRlci1yYWRpdXM6OHB4OyBtYXJnaW46MDsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNzUpOyBvdmVyZmxvdzpoaWRkZW47IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2VGFibGV7IGRpc3BsYXk6dGFibGU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZ3sgZGlzcGxheTp0YWJsZS1yb3c7IGZvbnQtd2VpZ2h0OmluaXRpYWw7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXdlaWdodDpib2xkOyBoZWlnaHQ6NDVweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZSb3d7IGRpc3BsYXk6dGFibGUtcm93OyB3aWR0aDoxMDAlOyBoZWlnaHQ6NjVweDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZDZWxseyBkaXNwbGF5OnRhYmxlLWNlbGw7IGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNkZGQ7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nOjE1cHggMTVweCAyNXB4IDE1cHg7IGJvcmRlci1yaWdodDoxcHggc29saWQgI2RkZDsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjAuODc1cmVtIDsgfSBkaXYuZGl2VGFibGVWaWV3IGRpdi5kaXZDZWxsOmxhc3QtY2hpbGR7IGJvcmRlci1yaWdodDoxcHggc29saWQgdHJhbnNwYXJlbnQ7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZyBkaXYuZGl2Q2VsbHsgcGFkZGluZzoxMHB4IDE1cHg7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyNTUsIDI1NSwgMjU1LCAxLjApOyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdkhlYWRpbmcgZGl2LmRpdkNlbGw6bnRoLWNoaWxkKGV2ZW4peyBiYWNrZ3JvdW5kLWNvbG9yOiNlZWU7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZyBkaXYuZGl2Q2VsbDpsYXN0LWNoaWxkeyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czo4cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2SGVhZGluZyBkaXYuZGl2Q2VsbDpmaXJzdC1jaGlsZHsgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czo4cHg7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Um93Omxhc3QtY2hpbGQgZGl2LmRpdkNlbGx7IGJvcmRlci1ib3R0b206MHB4OyB9IGRpdi5kaXZUYWJsZVZpZXcgZGl2LmRpdlJvdyBkaXYuZGl2Q2VsbHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNSk7IH0gZGl2LmRpdlRhYmxlVmlldyBkaXYuZGl2Um93IGRpdi5kaXZDZWxsOm50aC1jaGlsZChldmVuKXsgYmFja2dyb3VuZC1jb2xvcjojZjZmN2Y4OyB9Ci8qKiAvY3NzL2Rpdl9ibG9ja3MuY3NzICoqLwpkaXYuZGl2QmxvY2tWaWV3eyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGl0bGUsIGRpdi5kaXZCbG9ja1ZpZXcgbGFiZWwuZGl2QmxvY2tUaXRsZXsgZGlzcGxheTpibG9jazsgZm9udC13ZWlnaHQ6Ym9sZDsgdGV4dC1hbGlnbjpsZWZ0OyBwYWRkaW5nOjMwcHggMTBweCAxMHB4IDEwcHg7IGNvbG9yOiMwMDAwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lOyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIpOyBoZWlnaHQ6YXV0bzsgZmxvYXQ6bGVmdDsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja1RpdGxlLmJsb2NrVGl0bGVTdHlsZTIsIGRpdi5kaXZCbG9ja1ZpZXcgbGFiZWwuZGl2QmxvY2tUaXRsZS5ibG9ja1RpdGxlU3R5bGUyeyBwYWRkaW5nOjAgNDBweCAxMHB4OyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrQ29udGVudHsgYmFja2dyb3VuZDpub25lOyBwYWRkaW5nOjE1cHggMHB4OyBtYXJnaW46MDsgZmxvYXQ6bGVmdDsgd2lkdGg6MTAwJTsgfSBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NvbnRlbnQgZGl2LmRpdkJsb2NrQ29sdW1ueyBiYWNrZ3JvdW5kOm5vbmU7IHBhZGRpbmc6MCA0MHB4OyBtYXJnaW46MDsgd2lkdGg6ODYwcHggIWltcG9ydGFudDsgZmxvYXQ6bGVmdDsgZm9udC1zaXplOmluaGVyaXQ7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3R7IGJhY2tncm91bmQ6aW5pdGlhbDsgcGFkZGluZzowOyBtYXJnaW46MCAwIDIwcHggMDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBVTC5kaXZJbm5lckJsb2NrTGlzdCB7IHBhZGRpbmc6MTBweCAwIDAgMDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdC5zaXplRm9yNENvbHVtbnNMaXN0eyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0Om5vdCguc2l6ZUZvcjRDb2x1bW5zTGlzdCk6bnRoLWNoaWxkKDNuKzEpLCBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdC5zaXplRm9yNENvbHVtbnNMaXN0Om50aC1jaGlsZCg0bisxKXsgY2xlYXI6bGVmdDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBkaXYuZGl2QmxvY2tMaXN0VGl0bGV7IGJhY2tncm91bmQ6aW5pdGlhbDsgcGFkZGluZzowIDAgMTBweCAwOyBtYXJnaW46MDsgd2lkdGg6MTAwJTsgZmxvYXQ6bGVmdDsgZm9udC13ZWlnaHQ6Ym9sZCB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVteyBwYWRkaW5nOjAgMzBweCAxMHB4IDEwcHg7IG1hcmdpbjowOyB0ZXh0LWluZGVudDowOyBiYWNrZ3JvdW5kOnVybCgnL2ltYWdlcy9hcnJvd19yZWQucG5nJykgbm8tcmVwZWF0IHNjcm9sbCAwIDVweCB0cmFuc3BhcmVudDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbSA+IEF7IG1hcmdpbjowOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6bm9uZTsgZm9udC1zaXplOmluaXRpYWw7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdFRpdGxlMnsgZm9udC1zaXplOjEuMWVtOyBib3JkZXI6MDsgbWFyZ2luOjA7IHBhZGRpbmc6MCAwIDEwcHggMDsgZm9udC13ZWlnaHQ6Ym9sZDsgbGlzdC1zdHlsZTpub25lOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtMnsgcGFkZGluZzowIDMwcHggMTBweCAxMHB4OyB0ZXh0LWluZGVudDowOyBsaXN0LXN0eWxlOm5vbmUgb3V0c2lkZSBub25lOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MCAwIDAgMTJweDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbTIgLm90aGVyT3B0aW9uTGFiZWx7IGZvbnQtd2VpZ2h0OmJvbGQgIWltcG9ydGFudDsgfSBkaXYuZGl2QmxvY2tWaWV3IFVMLmRpdkJsb2NrTGlzdCBMSS5kaXZMaXN0SXRlbTI6YmVmb3JleyBjb250ZW50OiJcZjEzOCI7IGZvbnQtZmFtaWx5OidGb250IEF3ZXNvbWUgNSBQcm8nOyBmb250LXdlaWdodDo5MDA7IG1hcmdpbi1yaWdodDowOyBtYXJnaW4tbGVmdDotMjFweDsgcGFkZGluZy1yaWdodDo1cHg7IGZvbnQtc2l6ZTowLjg3NXJlbSA7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgVUwuZGl2SW5uZXJCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0yOmJlZm9yZXsgZm9udC13ZWlnaHQ6bm9ybWFsOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IFVMLmRpdklubmVyQmxvY2tMaXN0IExJIHsgcGFkZGluZzowIDMwcHggMTBweCAxMHB4OyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtLm5vU3R5bGVJdGVteyBwYWRkaW5nOjAgMCA1cHggMDsgbWFyZ2luOjA7IHRleHQtaW5kZW50OjA7IGJhY2tncm91bmQ6bm9uZTsgbGlzdC1zdHlsZTpub25lOyB9IGRpdi5kaXZCbG9ja1ZpZXcgVUwuZGl2QmxvY2tMaXN0IExJLmRpdkxpc3RJdGVtLm9uU2FtZUxpbmV7IHBhZGRpbmctcmlnaHQ6MTVweDsgZGlzcGxheTppbmxpbmUtdGFibGU7IH0gZGl2LmRpdkJsb2NrVmlldyBVTC5kaXZCbG9ja0xpc3QgTEkuZGl2TGlzdEl0ZW0ub25TYW1lTGluZTpsYXN0LWNoaWxkeyBwYWRkaW5nLXJpZ2h0OjA7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tUYWJsZU91dGVyeyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrVGFibGV7IGRpc3BsYXk6dGFibGU7IHdpZHRoOjEwMCU7IHBhZGRpbmc6MDsgbWFyZ2luOjA7IH0gZGl2LmRpdkJsb2NrVmlldyBkaXYuZGl2QmxvY2tSb3d7IGRpc3BsYXk6dGFibGUtcm93OyB3aWR0aDoxMDAlOyB9IGRpdi5kaXZCbG9ja1ZpZXcgZGl2LmRpdkJsb2NrQ2VsbHsgZGlzcGxheTp0YWJsZS1jZWxsOyB9IGRpdi5kaXZEaXNjbGFpbWVyQmxvY2t7IGJhY2tncm91bmQtY29sb3I6dmFyKC0tZ2VuZXJhbC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6M3B4OyB9IEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDoxMzAxcHgpIHsgYm9keS5pc0Z1bGxXaWR0aFBhZ2UuaXNQYWdlRnVsbFdpZHRoRW5hYmxlZCBkaXYuZGl2QmxvY2tWaWV3IGRpdi5kaXZCbG9ja0NvbnRlbnQgZGl2LmRpdkJsb2NrQ29sdW1uIHsgd2lkdGg6MTEwMHB4ICFpbXBvcnRhbnQ7IH0gfQovKiogL2Nzcy9mb3Jtcy9mb3Jtcy5wcmVsb2FkLmNzcyAqKi8KLmQyY2Zvcm0geyAtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbDoiKiI7IC0tbGFiZWwtcmVxdWlyZWQtY29sb3I6I0ZGMDAwMDsgLS1pbnB1dC1wYWRkaW5nOnZhcigtLXMtMSkgdmFyKC0tczEpOyAtLWlucHV0LWJnLWNvbG9yOnZhcigtLXdoaXRlKTsgLS1pbnB1dC1ib3JkZXItY29sb3I6dmFyKC0tbWlkLWdyYXkpOyAtLWlucHV0LXJhZGl1czp2YXIoLS1zLTYpOyAtLWlucHV0LWZvbnQtc2l6ZTp2YXIoLS1mczApOyAtLWlucHV0LWxpbmUtaGVpZ2h0OnZhcigtLWZzMik7IH0gLmQyY2Zvcm0gKiB7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfSAuZDJjZm9ybSBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtNCk7IHBhZGRpbmctbGVmdDowOyBwYWRkaW5nLXJpZ2h0OjA7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBhbGlnbi1pdGVtczpmbGV4LXN0YXJ0OyB9IC5kMmNmb3JtLS10aGluIGJveC1sYyB7IC0tc3BhY2U6dmFyKC0tcy05KTsgfSAuZDJjZm9ybS0tcm93IHN0YWNrLWxjIHsgZmxleC1kaXJlY3Rpb246cm93OyBmbGV4LXdyYXA6d3JhcDsgfSAuZDJjZm9ybS0tcm93IGJveC1sYyB7IHBhZGRpbmctcmlnaHQ6dmFyKC0tc3BhY2UpOyBwYWRkaW5nLWxlZnQ6dmFyKC0tc3BhY2UpOyB9IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6MTE1cHg7IHdpZHRoOjMwJTsgcGFkZGluZy1yaWdodDp2YXIoLS1zKTsgbWFyZ2luLXRvcDp2YXIoLS1zMSk7IG1hcmdpbi1ib3R0b206MDsgfSAuZDJjZm9ybSBsYWJlbDpoYXMoW3JlcXVpcmVkXSkgc3BhbjphZnRlcnsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1sZWZ0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIGxhYmVsOm5vdCguZmluYW5jZUNhbGMpLCAuZDJjZm9ybSAubGFiZWw6bm90KC5maW5hbmNlQ2FsYykgeyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgfSAuZDJjZm9ybSBsYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi0tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQ6bm90KC50eHQtcmlnaHQpOmFmdGVyLCAuZDJjZm9ybSAubGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciB7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbC4tLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUsIC5kMmNmb3JtIGxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLXJlcXVpcmVkLnR4dC1yaWdodDpiZWZvcmUgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLXJpZ2h0IDp2YXIoLS1zLTYpOyB9IC5kMmNmb3JtIDp3aGVyZShpbnB1dDpub3QoW3R5cGU9c3VibWl0XSwucGF5bWVudENhbGN1bGF0b3JEb3duUGF5bWVudCk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pKSwgLmQyY2Zvcm0gc2VsZWN0Om5vdCgucGF5bWVudENhbGN1bGF0b3JJbnRlcnZhbCwucGF5bWVudENhbGN1bGF0b3JLbUFsbG93YW5jZSwuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gc2VsZWN0KSwgLmQyY2Zvcm0gdGV4dGFyZWEgeyB3aWR0aDoxMDAlOyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWlucHV0LWJnLWNvbG9yKTsgYm9yZGVyLXJhZGl1czp2YXIoLS1pbnB1dC1yYWRpdXMpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGNvbG9yOiMyMTI1Mjk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGZvbnQtd2VpZ2h0OjQwMDsgfSAuZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QgeyBoZWlnaHQ6MzVweDsgfSAuZDJjZm9ybSAuaW52YWxpZCA+IDppcyhpbnB1dCxzZWxlY3QsdGV4dGFyZWEpeyBiYWNrZ3JvdW5kLWNvbG9yOiNmYWQ2ZGM7IH0gLmQyY2Zvcm0gaW5wdXQ6ZGlzYWJsZWQsIC5kMmNmb3JtIGlucHV0LmRpc2FibGVkIHsgYmFja2dyb3VuZC1jb2xvcjpyZ2JhKDIzOSwgMjM5LCAyMzksIDAuMyk7IGNvbG9yOnJnYig4NCwgODQsIDg0KTsgYm9yZGVyLWNvbG9yOnJnYmEoMTE4LCAxMTgsIDExOCwgMC4zKTsgY3Vyc29yOm5vdC1hbGxvd2VkOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlciB7IHRleHQtdHJhbnNmb3JtOm5vbmU7IH0gLmQyY2Zvcm0gaW5wdXQudHh0LXVwcGVyOjpwbGFjZWhvbGRlciB7IHRleHQtdHJhbnNmb3JtOnZhcigtLXR4dC11cHBlciwgdXBwZXJjYXNlKTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0LCAuZDJjZm9ybSAuaW5wdXQtaWNvbi1yaWdodCB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uIHsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTsgdG9wOnZhcigtLXMxKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgY29sb3I6dmFyKC0tZGFyay1ncmF5KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1yaWdodCAuaW5wdXQtaWNvbiB7IHJpZ2h0OnZhcigtLXM0KTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbi1sZWZ0IC5pbnB1dC1pY29uIHsgbGVmdDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCBpbnB1dCB7IHBhZGRpbmctbGVmdDp2YXIoLS1zOSk7IH0gLmQyY2Zvcm0gLnNlcGFyYXRvciB7IHdpZHRoOjEwMCU7IGJvcmRlci10b3A6MXB4IHNvbGlkICNkNGQ0ZDQ7IG1hcmdpbi10b3A6dmFyKC0tczcpOyBtYXJnaW4tYm90dG9tOnZhcigtLXM3KTsgfSAuZDJjZm9ybSAucmFkaW8taW5saW5lIHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyB9IC5kMmNmb3JtIC5jaGVja2JveC1saXN0IHsgZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpjb2x1bW47IG1hcmdpbi1ib3R0b206dmFyKC0tcy0zKTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCA+ICogeyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gLm11bHRpcGxlLWlucHV0IHsgZGlzcGxheTpmbGV4OyB3aWR0aDoxMDAlOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCA+ICo6bm90KDpsYXN0LW9mLXR5cGUpIHsgbWFyZ2luLXJpZ2h0OnZhcigtLXMxKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgeyBkaXNwbGF5OmZsZXg7IHdpZHRoIDoxMDAlOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCAuaW5wdXQtZ3JvdXAtdGV4dCB7IGRpc3BsYXk6ZmxleDsgYWxpZ24taXRlbXM6Y2VudGVyOyBwYWRkaW5nOnZhcigtLWlucHV0LXBhZGRpbmcpOyBiYWNrZ3JvdW5kOnZhcigtLWxpZ2h0LWdyYXkpOyBib3JkZXI6MXB4IHNvbGlkIHZhcigtLWlucHV0LWJvcmRlci1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgZm9udC1zaXplOnZhcigtLWlucHV0LWZvbnQtc2l6ZSk7IGxpbmUtaGVpZ2h0OnZhcigtLWlucHV0LWxpbmUtaGVpZ2h0KTsgd2hpdGUtc3BhY2U6bm93cmFwOyB9IC5kMmNmb3JtIC5pbnB1dC1ncm91cCA+IDpub3QoOmZpcnN0LWNoaWxkKSB7IGJvcmRlci1sZWZ0OjA7IGJvcmRlci10b3AtbGVmdC1yYWRpdXM6MCAhaW1wb3J0YW50OyBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpsYXN0LWNoaWxkKSB7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6MCAhaW1wb3J0YW50OyB9IEBtZWRpYSAobWF4LXdpZHRoOjk4MHB4KSB7IC5kMmNmb3JtLS1ob3Jpem9udGFsIGJveC1sYyBsYWJlbCB7IG1pbi13aWR0aDo4NXB4OyB9IH0KLyoqIC9jc3MvZm9ybXMvZm9ybXMuY3NzICoqLwouZDJjZm9ybSBpbnB1dDpub3QoW3R5cGU9c3VibWl0XSk6bm90KFt0eXBlPSJyYWRpbyJdKTpub3QoW3R5cGU9ImNoZWNrYm94Il0pLCAuZDJjZm9ybSBzZWxlY3QsIC5kMmNmb3JtIHRleHRhcmVhIHsgdHJhbnNpdGlvbjpib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCxib3gtc2hhZG93IC4xNXMgZWFzZS1pbi1vdXQ7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gc2VsZWN0OmZvY3VzLCAuZDJjZm9ybSB0ZXh0YXJlYTpmb2N1cyB7IGJvcmRlci1jb2xvcjojODZiN2ZlOyBvdXRsaW5lOjA7IGJveC1zaGFkb3c6MCAwIDAgMC4ycmVtIHJnYigxMyAxMTAgMjUzIC8gMjUlKTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKTpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHRleHRhcmVhOmZvY3VzIHsgei1pbmRleDozOyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzLCAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLnZhbGlkaXR5LWVycm9uZW91cyArIC5pbnB1dC1ncm91cC10ZXh0IHsgYm9yZGVyLWNvbG9yOiNkYzM1NDUgIWltcG9ydGFudDsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gaW5wdXQudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gdGV4dGFyZWEudmFsaWRpdHktZXJyb25lb3VzOjpwbGFjZWhvbGRlciwgLmQyY2Zvcm0gc2VsZWN0LnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGNvbG9yOiNkYzM1NDU7IH0KLyoqIC9jc3MvY3JlZGl0U2NvcmVQb3B1cC5jc3MgKiovCiNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyeyBiYWNrZ3JvdW5kOndoaXRlOyBwYWRkaW5nOjMwcHggMjBweCAzNHB4OyBtYXgtd2lkdGg6Y2FsYygxMDB2dyAtIDQwcHgpOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIHNwYW57IG1hcmdpbjowOyBwYWRkaW5nOjA7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUdyZWVuQ29sb3J7IGNvbG9yOiM0ZDhmMTQ7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgc3Bhbi5jcmVkaXRTY29yZUJvbGR7IGZvbnQtd2VpZ2h0OmJvbGQ7IH0gLmNyZWRpdFNjb3JlX2J0bnsgY29sb3I6I2ZmZmZmZjsgYmFja2dyb3VuZDojMDAyYzVmOyB9IC5jcmVkaXRTY29yZUltYWdleyB3aWR0aDoxMDAlOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5jcmVkaXRTY29yZVRpdGxlQ29udGFpbmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVUaXRsZXsgZm9udC1zaXplOjEuMjVyZW0gOyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIGRpdi5jcmVkaXRTY29yZUltYWdlQ29udGFpbmVyeyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlVGl0bGVGcmVleyBmb250LXNpemU6Mi44MTNyZW0gOyB0ZXh0LXNoYWRvdzoycHggMDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBzcGFuLmNyZWRpdFNjb3JlVGl0bGVTY29yZXsgZm9udC1zaXplOjEuODEzcmVtIDsgdGV4dC1zaGFkb3c6MS40cHggMDsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBpbnB1dHsgaGVpZ2h0OjMycHg7IGZvbnQtc2l6ZTowLjgxM3JlbSA7IHdpZHRoOjEzNXB4OyBwYWRkaW5nOjAgMTBweDsgbWFyZ2luLWJvdHRvbToxMHB4OyBib3JkZXI6MXB4IHNvbGlkICNlZWVlZWU7IGJveC1zaXppbmc6Y29udGVudC1ib3g7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgI2NyZWRpdFNjb3JlRW1haWx7IHdpZHRoOjI5NnB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyICNjcmVkaXRTY29yZUFkZHJlc3N7IHdpZHRoOjI5NnB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZV9idG57IHdpZHRoOjMyMHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgaGVpZ2h0OjQwcHg7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IH0gI2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIgZGl2LmNyZWRpdFNjb3JlRXh0cmFUZXh0eyB0ZXh0LWFsaWduOmNlbnRlcjsgfSAjY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciBkaXYuY3JlZGl0U2NvcmVDb25zZW50TWVzc2FnZXsgY29sb3I6I2IzYjNiMzsgZm9udC1zaXplOjAuNjg4cmVtIDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MnB4OyB9ICNjcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIC5jcmVkaXRTY29yZUltYWdleyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDdmYTU7IH0gLnBhYy1jb250YWluZXIgeyB6LWluZGV4OjEwMDAwMjE7IH0KLyoqIC9jc3MvbmViQ2FsL25lYkNhbC5jc3MgKiovCi5uZWJDYWwgKiB7IG92ZXJmbG93OmhpZGRlbjsgcGFkZGluZzowOyBtYXJnaW46MDsgbGluZS1oZWlnaHQ6MTAwJTsgYmFja2dyb3VuZC1jb2xvciA6d2hpdGU7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWFycm93LWxlZnQsIC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IGN1cnNvcjpwb2ludGVyO30gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWFycm93LWxlZnQgeyBmbG9hdDpsZWZ0OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0OmJlZm9yZSB7IGNvbnRlbnQ6JzwnOyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojNTIzYTI5OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IGZsb2F0OnJpZ2h0OyB9IC5uZWJDYWwgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodDpiZWZvcmUgeyBjb250ZW50Oic+JzsgZm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzUyM2EyOTsgfSAubmViQ2FsIC5jYWwtaGVhZGVyIC5jYWwtbGFiZWwgeyBkaXNwbGF5OmlubGluZS1ibG9jazsgb3ZlcmZsb3c6dmlzaWJsZTsgd2lkdGg6MTQ2cHg7IH0gLm5lYkNhbCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsLmNhbC1jbGlja2FibGUgeyBjdXJzb3I6cG9pbnRlcjsgfSAubmViQ2FsIC5jYWwtYm9keSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9IC5uZWJDYWwgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgeyBwb3NpdGlvbjphYnNvbHV0ZTsgbGVmdDowOyB9IC5uZWJDYWwgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2IHsgZmxvYXQ6bGVmdDsgfSAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aC5jYWwtcGlja2FibGUgLmNhbC1yb3cgZGl2LCAubmViQ2FsIC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYgeyBjdXJzb3I6cG9pbnRlcjt9IC5uZWJDYWwgeyBjdXJzb3I6ZGVmYXVsdDsgcG9zaXRpb246YWJzb2x1dGU7IHotaW5kZXg6MTAwMDAyMDsgdGV4dC1hbGlnbjpjZW50ZXI7IHdpZHRoOjI5MHB4OyBoZWlnaHQ6MjE1cHg7IGZvbnQtc2l6ZTowLjkzOHJlbSA7IGNvbG9yOiM1MjNhMjk7IH0gLm5lYkNhbC5pbmxpbmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC13cmFwcGVyIHsgcGFkZGluZzowIDRweDsgYm9yZGVyOnNvbGlkIDFweCAjZGRkZWQ5OyAtbW96LWJveC1zaGFkb3c6MHB4IDBweCA0cHggMnB4ICNkOGQ4ZDg7LXdlYmtpdC1ib3gtc2hhZG93OjBweCAwcHggNHB4IDJweCAjZDhkOGQ4O2JveC1zaGFkb3c6MHB4IDBweCA0cHggMnB4ICNkOGQ4ZDg7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgeyBoZWlnaHQ6MjVweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0LCAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IHdpZHRoOjEycHg7IGhlaWdodDoxM3B4OyBtYXJnaW46NnB4IDdweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0IHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1sZWZ0OmhvdmVyIHsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1hcnJvdy1yaWdodCB7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtaGVhZGVyIC5jYWwtYXJyb3ctcmlnaHQ6aG92ZXIgeyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWhlYWRlciAuY2FsLWxhYmVsIHsgbGluZS1oZWlnaHQ6MjVweDsgY29sb3I6IzUyM2EyOTsgdGV4dC10cmFuc2Zvcm06bm9uZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlIHsgY29sb3I6IzA4YTUzYzsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1oZWFkZXIgLmNhbC1sYWJlbC5jYWwtY2xpY2thYmxlOmhvdmVyIHsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IHsgaGVpZ2h0OjE4MHB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciB7IHdpZHRoOjI5MHB4OyBoZWlnaHQ6MTgwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IHsgd2lkdGg6MjkwcHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdy5jYWwtb2RkIGRpdiB7IG1hcmdpbjo1cHg7IGJhY2tncm91bmQtY29sb3I6I2RlZGVkZTtib3JkZXI6MXB4IHNvbGlkICNkOWQ5ZDk7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93LmNhbC1ldmVuIGRpdiB7IG1hcmdpbjo1cHg7IGJhY2tncm91bmQtY29sb3I6I2YwZjBmMDtib3JkZXI6MXB4IHNvbGlkICNlY2VjZWM7fSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIgLmNhbC1yb3cgZGl2LmNhbC10b2RheSB7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtc2VsZWN0ZWQgeyBtYXJnaW4tbGVmdDo1cHg7IG1hcmdpbi1yaWdodDo1cHg7IGhlaWdodDoyMHB4O2ZvbnQtc2l6ZToxcmVtIDtmb250LXdlaWdodDo2MDA7IGNvbG9yOiNmZmYgIWltcG9ydGFudDt0ZXh0LXNoYWRvdzoxcHggMXB4IDBweCAjMzlhNjYzOyBiYWNrZ3JvdW5kLWNvbG9yOiM1NGJiMDA7LXdlYmtpdC1ib3JkZXItcmFkaXVzOjVweDstbW96LWJvcmRlci1yYWRpdXM6NXB4O2JvcmRlci1yYWRpdXM6NXB4O30gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyIC5jYWwtcm93IGRpdi5jYWwtbm9uLXNlbGVjdGFibGUsIC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lciAuY2FsLXJvdyBkaXYuY2FsLW5vbi1zZWxlY3RhYmxlOmhvdmVyIHsgY29sb3I6I2JkYmRiZCAhaW1wb3J0YW50OyBjdXJzb3I6ZGVmYXVsdCAhaW1wb3J0YW50OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cuYSBkaXYgeyBjdXJzb3I6ZGVmYXVsdCAhaW1wb3J0YW50OyBjb2xvcjojMzc5YjU3ICFpbXBvcnRhbnQ7dGV4dC10cmFuc2Zvcm06bm9uZTsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93IHsgaGVpZ2h0OjI2cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdyBkaXYgeyBtYXJnaW4tdG9wOjNweDsgd2lkdGg6NDBweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93IGRpdi5jYWwtc2VsZWN0ZWQgeyBtYXJnaW4tdG9wOjNweDsgd2lkdGg6MzBweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93IGRpdi5jYWwtZmlyc3QgeyBwYWRkaW5nLWxlZnQ6MTZweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93IGRpdi5jYWwtbGFzdCB7IHBhZGRpbmctcmlnaHQ6MTZweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLW1vbnRoIC5jYWwtcm93IGRpdi5jYWwtb3V0c2lkZSB7IGNvbG9yOiNkZWRlZGU7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC1tb250aCAuY2FsLXJvdy5jYWwtZXZlbiBkaXYuY2FsLW91dHNpZGUgeyBjb2xvcjojY2VjZWNlOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGggLmNhbC1yb3cuYSBkaXYgeyBjb2xvcjojOWM5YzljOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgeyBoZWlnaHQ6NDJweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdiB7IHdpZHRoOjgwcHg7bGluZS1oZWlnaHQ6MjdweDsgaGVpZ2h0OjI3cHg7IH0gLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXYuY2FsLWZpcnN0IHsgbWFyZ2luLWxlZnQ6MTZweDsgfSAubmViQ2FsLmRlZmF1bHQgLmNhbC1ib2R5IC5jYWwtaW5uZXIgLmNhbC1jb250YWluZXIuY2FsLXllYXItZGVjYWRlIC5jYWwtcm93IGRpdi5jYWwtbGFzdCB7IG1hcmdpbi1yaWdodDoxNnB4OyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwteWVhci1kZWNhZGUgLmNhbC1yb3cgZGl2LmNhbC1zZWxlY3RlZCB7IGJhY2tncm91bmQtY29sb3I6IzU0YmIwMDt9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWJvZHkgLmNhbC1pbm5lciAuY2FsLWNvbnRhaW5lci5jYWwtbW9udGguY2FsLXBpY2thYmxlIC5jYWwtcm93IGRpdjpob3ZlciwgLm5lYkNhbC5kZWZhdWx0IC5jYWwtYm9keSAuY2FsLWlubmVyIC5jYWwtY29udGFpbmVyLmNhbC15ZWFyLWRlY2FkZSAuY2FsLXJvdyBkaXY6aG92ZXIgeyBjb2xvcjojYjJjZmUxOyB9IC5uZWJDYWwuZGVmYXVsdCAuY2FsLWZvb3RlciB7IGhlaWdodDo0cHg7IH0KLyoqIC9jc3MvZmluYW5jZV9tdWx0aXN0ZXAuY3NzICoqLwojZmluYW5jZV9tdWx0aXN0ZXBfZm9ybXsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yeyB0ZXh0LWFsaWduOmxlZnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaDJ7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IG1hcmdpbi1ib3R0b206MTVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBoM3sgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MTBweDsgbWFyZ2luLWJvdHRvbToxNXB4OyBmb250LXNpemU6MS4yNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm1fbmV4dF9idG4geyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyBtYXJnaW4tYm90dG9tOjE1cHg7IHdpZHRoOjEwMCU7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IGJvdHRvbTowOyBwYWRkaW5nLWJvdHRvbTplbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSwgMHB4KTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b257IHBhZGRpbmc6MTdweCA2NXB4IDE1cHggNjVweDsgZm9udC1zaXplOjEuMjVyZW0gOyBmb250LXdlaWdodDo0MDA7IHdpZHRoOjI4MHB4OyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBjb2xvcjojQzBDMEMwOyBib3JkZXI6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IGJvcmRlcjoxcHggc29saWQgI0MwQzBDMDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybV9uZXh0X2J0biBidXR0b24uaXNWYWxpZHsgYmFja2dyb3VuZC1jb2xvcjojZTRkY2QzOyBjb2xvcjojMDAwMDAwOyBib3JkZXI6MXB4IHNvbGlkICMwMDAwMDA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gaW5wdXRbdHlwZT0icmFkaW8iXXsgb3BhY2l0eTowOyB3aWR0aDowOyBoZWlnaHQ6MDsgcG9zaXRpb246YWJzb2x1dGU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gbGFiZWwucmFkaW9fbGFiZWwgeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6MTVweCAxMHB4OyBjdXJzb3I6cG9pbnRlcjsgb3BhY2l0eToxOyB0cmFuc2l0aW9uOmFsbCAxcyBlYXNlLWluLW91dDsgbWFyZ2luLWJvdHRvbTo1cHg7IGJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsgYm9yZGVyLWJvdHRvbS13aWR0aDo1cHg7IHdpZHRoOjEwMCU7IGZsb2F0OmxlZnQ7IGZvbnQtc2l6ZToxLjEyNXJlbSA7IG1pbi1oZWlnaHQ6MTAycHg7IGJhY2tncm91bmQ6I2ZmZmZmZjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQgfiBsYWJlbC5yYWRpb19sYWJlbCB7IGJvcmRlcjoxcHggc29saWQgIzAwMDsgYm9yZGVyLWJvdHRvbS13aWR0aDo1cHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gbGFiZWwucmFkaW9fbGFiZWwyIHsgYm9yZGVyOjFweCBzb2xpZCByZ2JhKDI1MCwgMjUwLCAyNTAsIDAuMTUpOyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IHBhZGRpbmc6MTBweCA1cHggNXB4IDVweDsgY3Vyc29yOnBvaW50ZXI7IG9wYWNpdHk6MTsgdHJhbnNpdGlvbjphbGwgMXMgZWFzZS1pbi1vdXQ7IG1hcmdpbi1ib3R0b206NXB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB3aWR0aDoxMDAlOyBmbG9hdDpsZWZ0OyBmb250LXNpemU6MS4xMjVyZW0gOyBtaW4taGVpZ2h0OjQ1cHg7IGJhY2tncm91bmQ6I2ZmZmZmZjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQgfiBsYWJlbC5yYWRpb19sYWJlbDIgeyBib3JkZXI6MXB4IHNvbGlkICMwMDA7IGJvcmRlci1ib3R0b20td2lkdGg6NXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXZ7IHdpZHRoOjQ1JTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2LnJkX3dpZGV7IHdpZHRoOjQ2JTsgbWluLWhlaWdodDo4OHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yYWRpb19kaXY6bnRoLW9mLXR5cGUob2RkKXsgZmxvYXQ6bGVmdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmFkaW9fZGl2Om50aC1vZi10eXBlKGV2ZW4peyBmbG9hdDpyaWdodDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJ0ZXh0Il17IHdpZHRoOjI5MHB4OyBoZWlnaHQ6NDBweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxLjI1cmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJudW1iZXIiXTpub3QoLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQpeyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7IHdpZHRoOjEyMHB4OyBib3JkZXItcmlnaHQ6bm9uZTsgbWFyZ2luOjAgMCAxMHB4OyBsaW5lLWhlaWdodDozMHB4OyBoZWlnaHQ6NzVweDsgcGFkZGluZzowOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjEuNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm51bWJlci10eXBlLWxhYmVseyBkaXNwbGF5OmJsb2NrOyBmbG9hdDpsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICNkZGRkZGQ7IHdpZHRoOjEyMHB4OyBjb2xvcjojMjUyNTI1OyBoZWlnaHQ6NzVweDsgbGluZS1oZWlnaHQ6MzVweDsgZm9udC1zaXplOjEuNXJlbSA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm51bWJlci10eXBlLWRpdnsgZmxvYXQ6bGVmdDsgbGVmdDoxMCU7IG1hcmdpbi10b3A6MjBweDsgcG9zaXRpb246cmVsYXRpdmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJ7IG1hcmdpbi10b3A6MTBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfc2VsZWN0X2NvbnRhaW5lcl9kaXZ7IHdpZHRoOjEwMCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXIgc2VsZWN0eyBjb2xvcjojM2MzODM2OyBib3JkZXI6MnB4IHNvbGlkICMwMDAwMDA7IGJvcmRlci1yYWRpdXM6NXB4OyBwYWRkaW5nOjEwcHggMTBweDsgZm9udC1zaXplOjFyZW0gOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LDI1NSwyNTUsLjkpOyBiYWNrZ3JvdW5kLXBvc2l0aW9uOjk1JSA1MCU7IHdpZHRoOjkwcHg7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyAtbW96LWFwcGVhcmFuY2U6bm9uZTsgcGFkZGluZy1yaWdodDoyN3B4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlX211bHRpc3RlcF9zZWxlY3RfY29udGFpbmVyX3NlbGVjdHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjQwJTsgbWFyZ2luOmF1dG87IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX3NlbGVjdF9jb250YWluZXJfc2VsZWN0OmFmdGVyIHsgY29udGVudDoiICI7IGhlaWdodDowOyB3aWR0aDowOyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICMwMDA7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoxNHB4OyB0b3A6MTdweDsgdHJhbnNpdGlvbjphbGwgLjNzIGxpbmVhcjsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuc3RlcDI0c2VsZWN0eyBtYXJnaW4tdG9wOjEwcHg7IHBhZGRpbmc6MC41cmVtOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3JkZXItcmFkaXVzOjAuNXJlbTsgYm9yZGVyOjFweCBzb2xpZCAjZGRkOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6MC44NzVyZW0gOyBsaW5lLWhlaWdodDpub3JtYWw7IGZvbnQtd2VpZ2h0OjQwMDsgd2lkdGg6MTAwJTsgfSAucGFjLWNvbnRhaW5lciB7IHotaW5kZXg6MTAwMDAyMTsgfSBpbnB1dDo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiwgaW5wdXQ6Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24geyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgbWFyZ2luOjA7IH0gI2ZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lcnsgbWF4LXdpZHRoOmNhbGMoMTAwdncgLSAyMHB4KTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAjbXVsdGlzdGVwLW11bHRpYWRkcmVzcyBzZWxlY3QgeyBtYXgtd2lkdGg6MjgwcHg7IG1hcmdpbjowIGF1dG87IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gI211bHRpc3RlcC1tdWx0aWFkZHJlc3MgbGFiZWwgeyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLXRvcDoyNXB4OyBtYXJnaW4tYm90dG9tOjI1cHg7IGZvbnQtc2l6ZToxLjVyZW0gOyBkaXNwbGF5OmJsb2NrOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtICNtdWx0aXN0ZXAtbXVsdGlhZGRyZXNzICNtdXRsaUFkZHJlc3NTdWJtaXQgeyBkaXNwbGF5Om5vbmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dHN7IGRpc3BsYXk6aW5saW5lLWZsZXg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXZ7IG1hcmdpbjoyMHB4IDVweCAyMHB4IDVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiBsYWJlbHsgZm9udC1zaXplOjEuMTI1cmVtIDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfYmlydGhkYXRlX2lucHV0X2RpdiBpbnB1dFt0eXBlPSJudW1iZXIiXXsgd2lkdGg6ODBweDsgaGVpZ2h0OjUwcHg7IGRpc3BsYXk6YmxvY2s7IGZsb2F0Om5vbmU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VfbXVsdGlzdGVwX2JpcnRoZGF0ZV9pbnB1dF9kaXYgaW5wdXRbdHlwZT0ibnVtYmVyIl0uYmlydGh5ZWFyeyB3aWR0aDoxMDBweDsgfSAucmV2ZWFsLW1vZGFsLmZpbmFuY2VfYmFja2dyb3VuZF9pbWFnZXsgYmFja2dyb3VuZDp1cmwoJy9pbWFnZXMvcG9wdXBzL2ZpbmFuY2Vwb3B1cC1iZy1tb2JpbGUud2VicCcpOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdnsgcG9zaXRpb246cmVsYXRpdmU7IGhlaWdodDoxMzVweDsgbWFyZ2luLWJvdHRvbToxMHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdiAuZmluYW5jZUNhbGN7IGNvbG9yOiM0ZWJhNTk7IGZvbnQtc2l6ZToxMDBweDsgbGVmdDozNSU7IHBvc2l0aW9uOmFic29sdXRlOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlSWNvbkRpdiAuZmluYW5jZUNhcnsgY29sb3I6IzAwMDAwMDsgZm9udC1zaXplOjEwMHB4OyBsZWZ0OjMzJTsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDo1MHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50VGV4dExhYmVseyB3aWR0aDo0NSU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmVtcGxveW1lbnRUZXh0TGFiZWwyeyBtYXJnaW4tcmlnaHQ6MjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZW1wbG95bWVudFRleHR7IHdpZHRoOjYwJSFpbXBvcnRhbnQ7IGZvbnQtc2l6ZToxLjEyNXJlbSAhaW1wb3J0YW50OyBib3JkZXI6MXB4IHNvbGlkICNjY2NjY2M7IGhlaWdodDoyNXB4OyBtYXJnaW4tYm90dG9tOjVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSBpbnB1dFt0eXBlPSJudW1iZXIiXS5lbXBsb3ltZW50U3RhdHVzVGltZXsgd2lkdGg6NTBweDsgaGVpZ2h0OjUwcHg7IGJvcmRlcjoxcHggc29saWQgI2E5YTlhOTsgYm9yZGVyLXJhZGl1czo1cHg7IGFsaWduLXNlbGY6Y2VudGVyOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5lbXBsb3ltZW50QWRkZWRJbmZveyB3aWR0aDo5NSU7IGhlaWdodDo1MHB4OyByZXNpemU6bm9uZTsgbWFyZ2luLXRvcDoxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGJvcmRlcjoxcHggc29saWQgI2NjY2NjYzsgZm9udC1zaXplOjAuOTM4cmVtICFpbXBvcnRhbnQ7IH0gLmZhZGUtZW50ZXIsIC5mYWRlLWxlYXZlIHsgb3BhY2l0eTowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybXsgd2lkdGg6MTAwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGxhYmVseyBtYXJnaW4tYm90dG9tOjE1cHg7IHBhZGRpbmc6MDsgZGlzcGxheTpmbGV4OyBhbGlnbi1pdGVtczpjZW50ZXI7IGp1c3RpZnktY29udGVudDpzcGFjZS1iZXR3ZWVuOyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gbGFiZWwucGF5bWVudFZhbHVlTGFiZWx7IGp1c3RpZnktY29udGVudDp1bnNldDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIHNwYW57IGZvbnQtc2l6ZToxZW07IHdpZHRoOjUwJTsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgaW5wdXR7IHRleHQtYWxpZ246bGVmdDsgaGVpZ2h0OjI1cHg7IGZvbnQtc2l6ZToxZW07IGNvbG9yOmJsYWNrOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3Igc2VsZWN0eyBoZWlnaHQ6MjhweDsgY29sb3I6YmxhY2s7IGZvbnQtc2l6ZToxZW07IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuZXN0aW1hdGVkVGV4dHsgZm9udC13ZWlnaHQ6NzAwOyB3aWR0aDo3MCU7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAub3V0cHV0cHJpY2UtdHh0eyB3aWR0aDozNSU7IG1hcmdpbi1sZWZ0OjMwcHg7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAudGF4ZVRleHR7IHBvc2l0aW9uOmFic29sdXRlOyBsZWZ0OjA7IGJvdHRvbTotMTBweDsgd2lkdGg6Zml0LWNvbnRlbnQ7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuaW5wdXQgeyBib3JkZXI6MXB4IHNvbGlkICM5OTk7IGJhY2tncm91bmQ6I2VlZTsgcGFkZGluZzowLjI1cmVtOyBib3JkZXItcmFkaXVzOjAuMjVyZW07IHdpZHRoOm1pbig1MCUsNnJlbSk7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIGRpdi5kb2xsYXJTcGFueyBkaXNwbGF5OmNvbnRlbnRzOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgZGl2LmRvbGxhclNwYW4gLmlucHV0eyBwYWRkaW5nLWxlZnQ6MTJweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gZGl2LmRvbGxhclNwYW46OmJlZm9yZXsgY29udGVudDoiJCI7IGZvbnQtc2l6ZToxZW07IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDo4NXB4OyB0b3A6NDklOyB0cmFuc2Zvcm06dHJhbnNsYXRlWSgtNDMlKTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZV9tdWx0aXN0ZXBfY29uc2VudF90ZXh0X2Rpdnsgb3ZlcmZsb3cteTpzY3JvbGw7IGhlaWdodDo0NDBweDsgd2lkdGg6MTAwJTsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAubXVsdGlzdGVwUGF5bWVudFZlaGljbGV7IGZvbnQtc2l6ZTppbmhlcml0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRXcmFwcGVyeyBtYXgtaGVpZ2h0OjE3NXB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5wYXltZW50Q2FsY3VsYXRvclBheW1lbnRDb250YWluZXJ7IGhlaWdodDoyNzVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gLmxvYW5hbW91bnQsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSAuaW50ZXJlc3RyYXRleyBib3JkZXI6MDsgYmFja2dyb3VuZC1jb2xvcjp1bnNldDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5jYWxjLWZvcm0gaW5wdXQsICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwVXNlZENhbGN1bGF0b3IgLmNhbGMtZm9ybSBzZWxlY3R7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgYm9yZGVyLXJhZGl1czowLjNyZW07IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLm11bHRpc3RlcEluaXRpYWxUaXRsZXsgZm9udC13ZWlnaHQ6Ym9sZDsgbWFyZ2luLXRvcDowOyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIHNwYW4uaDItYWx0eyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luLWJvdHRvbToxNXB4OyBmb250LXNpemU6aW5oZXJpdDsgZGlzcGxheTpibG9jazsgY29sb3I6dmFyKC0tZGVmYXVsdC1ibGFjayk7IG1hcmdpbi1sZWZ0OjA7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gc3Bhbi5oMy1hbHR7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjEwcHg7IG1hcmdpbi1ib3R0b206MTVweDsgZm9udC1zaXplOjEuMjVyZW0gOyBkaXNwbGF5OmJsb2NrOyBmb250LWZhbWlseTp2YXIoLS1mb250LWgyLW1vYik7IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLmhpZGRlbklucHV0eyBkaXNwbGF5Om5vbmU7IH0gLmZpbmFuY2VNdWx0aXN0ZXBOZXdDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvckluY2x1ZGVUYXhDaGVja0RpdnsgcG9zaXRpb246YWJzb2x1dGU7IG1hcmdpbi10b3A6MTBweDsgcmlnaHQ6MHB4OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5maW5hbmNlTXVsdGlzdGVwTmV3Q2FsY3VsYXRvciAucGF5bWVudENhbGN1bGF0b3JUcmFkZUluSW5pdGlhbHsgZm9udC1zaXplOjAuNjI1cmVtIDsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjEwNXB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgcGFkZGluZzo0cHggMnB4IDVweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcE5ld0NhbGN1bGF0b3IgLnBheW1lbnRDYWxjdWxhdG9yVHJhZGVJbkZpbmFseyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGhlaWdodDozNXB4OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6MTA1cHghaW1wb3J0YW50OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1cHggMnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgaGVpZ2h0PScyOHB4JyB3aWR0aD0nODVweCc+PHRleHQgeD0nNicgeT0nMjEnIGZpbGw9JycgZm9udC1zaXplPScxNicgZm9udC1mYW1pbHk9J2FyaWFsJz4kIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5Jbml0aWFseyBmb250LXNpemU6MC42MjVyZW0gOyBib3JkZXI6MXB4IHNvbGlkICNhOWE5YTk7IGhlaWdodDozNXB4OyBib3JkZXItcmFkaXVzOjVweDsgYmFja2dyb3VuZC1jb2xvcjp3aGl0ZTsgd2lkdGg6OTZweDsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7IHBhZGRpbmc6NXB4IDJweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZmluYW5jZU11bHRpc3RlcFVzZWRDYWxjdWxhdG9yIC5wYXltZW50Q2FsY3VsYXRvclRyYWRlSW5GaW5hbHsgYm9yZGVyOjFweCBzb2xpZCAjYTlhOWE5OyBoZWlnaHQ6MzVweDsgYm9yZGVyLXJhZGl1czo1cHg7IGJhY2tncm91bmQtY29sb3I6d2hpdGU7IHdpZHRoOjk2cHghaW1wb3J0YW50OyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1cHggMnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgaGVpZ2h0PScyOHB4JyB3aWR0aD0nODVweCc+PHRleHQgeD0nNicgeT0nMjEnIGZpbGw9JycgZm9udC1zaXplPScxNicgZm9udC1mYW1pbHk9J2FyaWFsJz4kIik7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAuZm9ybWF0LXByaWNleyBtYXJnaW4tYm90dG9tOnVuc2V0OyBtYXJnaW4tbGVmdDowLjdyZW07IH0gOmlzKC5FTkdMSVNILFtkYXRhLWxhbmc9ImVuIl0pIGxhYmVsIC5mb3JtYXQtcHJpY2V7IG1hcmdpbi1yaWdodDowLjNyZW07IH0gI2ZpbmFuY2VfbXVsdGlzdGVwX2Zvcm0gLnZ3Q29uc2VudFRleHR7IGhlaWdodDoxMjBweDsgb3ZlcmZsb3cteTpzY3JvbGw7IGJhY2tncm91bmQtY29sb3I6I2ZmZjsgcGFkZGluZzoxMHB4IDEwcHg7IGxpbmUtaGVpZ2h0OjEuNSAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IGgxeyBmb250LXNpemU6MS4yNXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo3MDAgIWltcG9ydGFudDsgbWFyZ2luOjAgMCAxNnB4IDAgIWltcG9ydGFudDsgfSAudndDb25zZW50VGV4dCBoMnsgZm9udC1zaXplOjFyZW0gIWltcG9ydGFudDsgZm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnQ7IG1hcmdpbjoyNHB4IDAgMTBweCAwICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgcHsgZm9udC1zaXplOjAuODc1cmVtICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OjQwMCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDoxLjUgIWltcG9ydGFudDsgbWFyZ2luOjAgMCAxMnB4IDAgIWltcG9ydGFudDsgdGV4dC1hbGlnbjpqdXN0aWZ5ICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgdWx7IG1hcmdpbjo4cHggMCAxNnB4IDI0cHggIWltcG9ydGFudDsgcGFkZGluZzowICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgbGl7IGZvbnQtc2l6ZTowLjg3NXJlbSAhaW1wb3J0YW50OyBmb250LXdlaWdodDo0MDAgIWltcG9ydGFudDsgbGluZS1oZWlnaHQ6MS41ICFpbXBvcnRhbnQ7IG1hcmdpbjowIDAgMTJweCAwICFpbXBvcnRhbnQ7IHRleHQtYWxpZ246anVzdGlmeSAhaW1wb3J0YW50OyB9IC52d0NvbnNlbnRUZXh0IHN0cm9uZ3sgZm9udC13ZWlnaHQ6NzAwICFpbXBvcnRhbnQ7IH0gLnZ3Q29uc2VudFRleHQgYXsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZSAhaW1wb3J0YW50OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC52d0NvbnNlbnREaXZzeyBtYXJnaW4tdG9wOjEwcHg7IGZvbnQtc2l6ZTowLjc1cmVtIDsgdGV4dC1hbGlnbjpsZWZ0OyB9ICNmaW5hbmNlX211bHRpc3RlcF9mb3JtIC5yZW50T3JPd25RdWVzdGlvbnsgZmxvYXQ6bGVmdDsgdGV4dC1hbGlnbjpjZW50ZXI7IG1hcmdpbi10b3A6MjBweDsgfSAjZmluYW5jZV9tdWx0aXN0ZXBfZm9ybSAucmVudE9yT3duUXVlc3Rpb24udndSZW50T3JPd257IGZsb2F0OmxlZnQ7IHRleHQtYWxpZ246Y2VudGVyOyBtYXJnaW4tdG9wOjVweDsgfSAuZHJWaWV3RGlzY2xhaW1lckxpbmsgeyB0ZXh0LWFsaWduOmxlZnQ7IGZvbnQtc2l6ZTowLjc1cmVtIDsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTsgfSAuZHJEaXNjbGFpbWVyRHJhd2VyIHsgcG9zaXRpb246Zml4ZWQ7IGxlZnQ6MDsgYm90dG9tOi0zMDBweDsgd2lkdGg6MTAwJTsgaGVpZ2h0OjIwMHB4OyBiYWNrZ3JvdW5kOiNmZmY7IGJveC1zaGFkb3c6MCAtMnB4IDEwcHggcmdiYSgwLDAsMCwwLjMpOyB0cmFuc2l0aW9uOmJvdHRvbSAwLjNzIGVhc2U7IGRpc3BsYXk6bm9uZTsgb3ZlcmZsb3c6YXV0bzsgei1pbmRleDoxMDAwMDAwMDAwOyB9IC5kckRpc2NsYWltZXJEcmF3ZXIub3BlbiB7IGJvdHRvbTowOyB9IC5kckRpc2NsYWltZXJEcmF3ZXIub3BlbiAuZHJEaXNjbGFpbWVyQ29udGVudCB7IHBhZGRpbmc6MjBweDsgcGFkZGluZy1ib3R0b206Y2FsYygyMHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20sIDBweCkpOyBvdmVyZmxvdy15OmF1dG87IH0gLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIC5jbG9zZURSRGlzY2xhaW1lckRyYXdlciwgLmRyRGlzY2xhaW1lckRyYXdlci5vcGVuIC5jbG9zZURSQ2FsY3VsYXRvckRpc2NsYWltZXJEcmF3ZXIgeyBwYWRkaW5nOjEwcHg7IGN1cnNvcjpwb2ludGVyOyB9IC5zdXBlclNjcmlwdFNwYW4geyBkaXNwbGF5OmlubGluZS1mbGV4OyB9Ci8qKiAvY3NzL2pxdWVyeS5kYXRldGltZXBpY2tlci5jc3MgKiovCi54ZHNvZnRfZGF0ZXRpbWVwaWNrZXJ7Ym94LXNoYWRvdzowIDVweCAxNXB4IC01cHggcmdiYSgwLDAsMCwwLjUwNik7YmFja2dyb3VuZDojZmZmO2JvcmRlci1ib3R0b206MXB4IHNvbGlkICNiYmI7Ym9yZGVyLWxlZnQ6MXB4IHNvbGlkICNjY2M7Ym9yZGVyLXJpZ2h0OjFweCBzb2xpZCAjY2NjO2JvcmRlci10b3A6MXB4IHNvbGlkICNjY2M7Y29sb3I6IzMzMztmb250LWZhbWlseToiSGVsdmV0aWNhIE5ldWUiLEhlbHZldGljYSxBcmlhbCxzYW5zLXNlcmlmO3BhZGRpbmc6OHB4O3BhZGRpbmctbGVmdDowO3BhZGRpbmctdG9wOjJweDtwb3NpdGlvbjphYnNvbHV0ZTt6LWluZGV4OjEwMDAwMjE7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O2Rpc3BsYXk6bm9uZX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIGlmcmFtZXtwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0OjA7dG9wOjA7d2lkdGg6NzVweDtoZWlnaHQ6MjEwcHg7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIGJ1dHRvbntib3JkZXI6bm9uZSAhaW1wb3J0YW50fS54ZHNvZnRfbm9zZWxlY3R7LXdlYmtpdC10b3VjaC1jYWxsb3V0Om5vbmU7LXdlYmtpdC11c2VyLXNlbGVjdDpub25lOy1raHRtbC11c2VyLXNlbGVjdDpub25lOy1tb3otdXNlci1zZWxlY3Q6bm9uZTstbXMtdXNlci1zZWxlY3Q6bm9uZTstby11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmV9Lnhkc29mdF9ub3NlbGVjdDo6c2VsZWN0aW9ue2JhY2tncm91bmQ6dHJhbnNwYXJlbnR9Lnhkc29mdF9ub3NlbGVjdDo6LW1vei1zZWxlY3Rpb257YmFja2dyb3VuZDp0cmFuc3BhcmVudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9pbmxpbmV7ZGlzcGxheTppbmxpbmUtYmxvY2s7cG9zaXRpb246c3RhdGljO2JveC1zaGFkb3c6bm9uZX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyICp7LW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O3BhZGRpbmc6MDttYXJnaW46MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfZGF0ZXBpY2tlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlcntkaXNwbGF5Om5vbmV9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2RhdGVwaWNrZXIuYWN0aXZlLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyLmFjdGl2ZXtkaXNwbGF5OmJsb2NrfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9kYXRlcGlja2Vye3dpZHRoOjIyNHB4O2Zsb2F0OmxlZnQ7bWFyZ2luLWxlZnQ6OHB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X3Nob3d3ZWVrcyAueGRzb2Z0X2RhdGVwaWNrZXJ7d2lkdGg6MjU2cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXJ7d2lkdGg6NThweDtmbG9hdDpsZWZ0O3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi1sZWZ0OjhweDttYXJnaW4tdG9wOjB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2RhdGVwaWNrZXIuYWN0aXZlKy54ZHNvZnRfdGltZXBpY2tlcnttYXJnaW4tdG9wOjhweDttYXJnaW4tYm90dG9tOjNweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbW91bnRocGlja2Vye3Bvc2l0aW9uOnJlbGF0aXZlO3RleHQtYWxpZ246Y2VudGVyfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbCBpLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90b2RheV9idXR0b257YmFja2dyb3VuZC1pbWFnZTp1cmwoZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFHUUFBQUFlQ0FZQUFBRGFXN3Z6QUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUF5SnBWRmgwV0UxTU9tTnZiUzVoWkc5aVpTNTRiWEFBQUFBQUFEdy9lSEJoWTJ0bGRDQmlaV2RwYmowaTc3dS9JaUJwWkQwaVZ6Vk5NRTF3UTJWb2FVaDZjbVZUZWs1VVkzcHJZemxrSWo4K0lEeDRPbmh0Y0cxbGRHRWdlRzFzYm5NNmVEMGlZV1J2WW1VNmJuTTZiV1YwWVM4aUlIZzZlRzF3ZEdzOUlrRmtiMkpsSUZoTlVDQkRiM0psSURVdU15MWpNREV4SURZMkxqRTBOVFkyTVN3Z01qQXhNaTh3TWk4d05pMHhORG8xTmpveU55QWdJQ0FnSUNBZ0lqNGdQSEprWmpwU1JFWWdlRzFzYm5NNmNtUm1QU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh4T1RrNUx6QXlMekl5TFhKa1ppMXplVzUwWVhndGJuTWpJajRnUEhKa1pqcEVaWE5qY21sd2RHbHZiaUJ5WkdZNllXSnZkWFE5SWlJZ2VHMXNibk02ZUcxd1BTSm9kSFJ3T2k4dmJuTXVZV1J2WW1VdVkyOXRMM2hoY0M4eExqQXZJaUI0Yld4dWN6cDRiWEJOVFQwaWFIUjBjRG92TDI1ekxtRmtiMkpsTG1OdmJTOTRZWEF2TVM0d0wyMXRMeUlnZUcxc2JuTTZjM1JTWldZOUltaDBkSEE2THk5dWN5NWhaRzlpWlM1amIyMHZlR0Z3THpFdU1DOXpWSGx3WlM5U1pYTnZkWEpqWlZKbFppTWlJSGh0Y0RwRGNtVmhkRzl5Vkc5dmJEMGlRV1J2WW1VZ1VHaHZkRzl6YUc5d0lFTlROaUFvVjJsdVpHOTNjeWtpSUhodGNFMU5Pa2x1YzNSaGJtTmxTVVE5SW5odGNDNXBhV1E2UTBOQlJqSTFOak0wTTBVd01URkZORGs0TmtGR016SkZRa1F6UWpFd1JVSWlJSGh0Y0UxTk9rUnZZM1Z0Wlc1MFNVUTlJbmh0Y0M1a2FXUTZRME5CUmpJMU5qUTBNMFV3TVRGRk5EazROa0ZHTXpKRlFrUXpRakV3UlVJaVBpQThlRzF3VFUwNlJHVnlhWFpsWkVaeWIyMGdjM1JTWldZNmFXNXpkR0Z1WTJWSlJEMGllRzF3TG1scFpEcERRMEZHTWpVMk1UUXpSVEF4TVVVME9UZzJRVVl6TWtWQ1JETkNNVEJGUWlJZ2MzUlNaV1k2Wkc5amRXMWxiblJKUkQwaWVHMXdMbVJwWkRwRFEwRkdNalUyTWpRelJUQXhNVVUwT1RnMlFVWXpNa1ZDUkROQ01UQkZRaUl2UGlBOEwzSmtaanBFWlhOamNtbHdkR2x2Ymo0Z1BDOXlaR1k2VWtSR1BpQThMM2c2ZUcxd2JXVjBZVDRnUEQ5NGNHRmphMlYwSUdWdVpEMGljaUkvUG9ORVA1NEFBQUlPU1VSQlZIamE3SnE5VHNNd0VNY3hyWkQ0V3BCWWVLVUNlK2tUTUNBQ0haaDRCRmZITy9BQUlIWkdGaFlrQkJzU0VxeHNMQ0FnWEtoYlhZT1R4aDlwZkpWUCtxdXRuWjVzLzVMejJZNUkwM1FoV2ppMkdJY2dBb2tXZ2ZDeE52Y09DQ0dLcWlTcWhVcDBsYUhPbmUwNXZkRXlHTWZrZHhKRFZqZ3dEbEVRZ1lRQmd4K1VMSmFXU1hYUzZyL0VSNUZCVlI4VmZHZnRUS2NJVE5zK2ExWHBjRm9FeFJFSURGMTRBVklGeGdRVVMraDUyMGNkdWQ2d05rQzBVQnc2QkNPL0hvQ1l3QmhEOFFDa1EveDFtd0R5RDRwbGg0RDZERFYwVEFHeW80SGNhd0xJQkJTTERrSGVIME1nMnlWUDNsNFRRTVpRRERzRU9sL01nSFFxaE1OdUUwRCtvQmgwQ0lyOE1BS3lhekJIOVd5QnVLeERXZ2JYZmpOZjMyVFoxS1dtL0FwMW9Tay9SNTNVdFE1eFRoM0xVbE1tVDhndDZnNTFROXArU29ieGdKUS9xbXNmWmhXeXdHRlNsMHlCakNMSkNNZ1hhaWwzYjcrcnVtZFZKMllSc3M0Y04rcjZxQUhEa1BXalBqZEpDRjRuOVJtQUQvVjlBL1dwNE5RYXNzRGp3bEI2WEJpQ3hjSlFXbVpaYjhUSEZpbGZ5L2xmclR2TGdocTJUcVRIclJNVEtOSjBzSWhkbzE1UlQrUnB5V3dGZFk5NlVaL0xkUUtCR2pjWHBjYzFBbFNGRWZMbW91RCsxa251eEJEVVZydk9CbW9PQy9yRWNON09ReEtWZUpUQ2lBZFV6VUpoQTJPZXo5UVRrcDcyT1RWY3hEY1hZOGlLTmt4R0FKWG1KQ09Rd09hNmRoeVhzT2E2WHdFR0FLZGViNUVUM3JRZEFBQUFBRWxGVGtTdVFtQ0MpfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbCBpe29wYWNpdHk6LjU7YmFja2dyb3VuZC1wb3NpdGlvbjotOTJweCAtMTlweDtkaXNwbGF5OmlubGluZS1ibG9jazt3aWR0aDo5cHg7aGVpZ2h0OjIwcHg7dmVydGljYWwtYWxpZ246bWlkZGxlfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2e2Zsb2F0OmxlZnQ7YmFja2dyb3VuZC1wb3NpdGlvbjotMjBweCAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90b2RheV9idXR0b257ZmxvYXQ6bGVmdDtiYWNrZ3JvdW5kLXBvc2l0aW9uOi03MHB4IDA7bWFyZ2luLWxlZnQ6NXB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0e2Zsb2F0OnJpZ2h0O2JhY2tncm91bmQtcG9zaXRpb246MCAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90b2RheV9idXR0b257YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7Ym9yZGVyOjAgbm9uZTtjdXJzb3I6cG9pbnRlcjtkaXNwbGF5OmJsb2NrO2hlaWdodDozMHB4O29wYWNpdHk6LjU7LW1zLWZpbHRlcjoiYWxwaGEob3BhY2l0eT01MCkiO291dGxpbmU6bWVkaXVtIG5vbmU7b3ZlcmZsb3c6aGlkZGVuO3BhZGRpbmc6MDtwb3NpdGlvbjpyZWxhdGl2ZTt0ZXh0LWluZGVudDoxMDAlO3doaXRlLXNwYWNlOm5vd3JhcDt3aWR0aDoyMHB4O21pbi13aWR0aDowfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfcHJldiwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X25leHR7ZmxvYXQ6bm9uZTtiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MHB4IC0xNXB4O2hlaWdodDoxNXB4O3dpZHRoOjMwcHg7ZGlzcGxheTpibG9jazttYXJnaW4tbGVmdDoxNHB4O21hcmdpbi10b3A6N3B4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfcHJldntiYWNrZ3JvdW5kLXBvc2l0aW9uOi00MHB4IDA7bWFyZ2luLWJvdHRvbTo3cHg7bWFyZ2luLXRvcDowfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3h7aGVpZ2h0OjE1MXB4O292ZXJmbG93OmhpZGRlbjtib3JkZXItYm90dG9tOjFweCBzb2xpZCAjZGRkfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdntiYWNrZ3JvdW5kOiNmNWY1ZjU7Ym9yZGVyLXRvcDoxcHggc29saWQgI2RkZDtjb2xvcjojNjY2O2ZvbnQtc2l6ZTowLjc1cmVtIDt0ZXh0LWFsaWduOmNlbnRlcjtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7Y3Vyc29yOnBvaW50ZXI7Ym9yZGVyLWJvdHRvbS13aWR0aDowO2hlaWdodDoyNXB4O2xpbmUtaGVpZ2h0OjI1cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3RpbWVwaWNrZXIgLnhkc29mdF90aW1lX2JveD5kaXY+ZGl2OmZpcnN0LWNoaWxke2JvcmRlci10b3Atd2lkdGg6MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdG9kYXlfYnV0dG9uOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9uZXh0OmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9wcmV2OmhvdmVye29wYWNpdHk6MTstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTEwMCkifS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbHtkaXNwbGF5OmlubGluZTtwb3NpdGlvbjpyZWxhdGl2ZTt6LWluZGV4Ojk5OTk7bWFyZ2luOjA7cGFkZGluZzo1cHggM3B4O2ZvbnQtc2l6ZTowLjg3NXJlbSA7bGluZS1oZWlnaHQ6MjBweDtmb250LXdlaWdodDpib2xkO2JhY2tncm91bmQtY29sb3I6I2ZmZjtmbG9hdDpsZWZ0O3dpZHRoOjE4MnB4O3RleHQtYWxpZ246Y2VudGVyO2N1cnNvcjpwb2ludGVyfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbDpob3Zlcj5zcGFue3RleHQtZGVjb3JhdGlvbjp1bmRlcmxpbmV9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsOmhvdmVyIGl7b3BhY2l0eToxLjB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0e2JvcmRlcjoxcHggc29saWQgI2NjYztwb3NpdGlvbjphYnNvbHV0ZTtyaWdodDowO3RvcDozMHB4O3otaW5kZXg6MTAxO2Rpc3BsYXk6bm9uZTtiYWNrZ3JvdW5kOiNmZmY7bWF4LWhlaWdodDoxNjBweDtvdmVyZmxvdy15OmhpZGRlbn0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbGFiZWw+Lnhkc29mdF9zZWxlY3QueGRzb2Z0X21vbnRoc2VsZWN0e3JpZ2h0Oi03cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0Lnhkc29mdF95ZWFyc2VsZWN0e3JpZ2h0OjJweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfbGFiZWw+Lnhkc29mdF9zZWxlY3Q+ZGl2Pi54ZHNvZnRfb3B0aW9uOmhvdmVye2NvbG9yOiNmZmY7YmFja2dyb3VuZDojMzMzfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9sYWJlbD4ueGRzb2Z0X3NlbGVjdD5kaXY+Lnhkc29mdF9vcHRpb257cGFkZGluZzoycHggMTBweCAycHggNXB4O3RleHQtZGVjb3JhdGlvbjpub25lICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0PmRpdj4ueGRzb2Z0X29wdGlvbi54ZHNvZnRfY3VycmVudHtiYWNrZ3JvdW5kOiMzYWY7Ym94LXNoYWRvdzojMTc4ZmU1IDAgMXB4IDNweCAwIGluc2V0O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NzAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9tb250aHt3aWR0aDoxMDBweDt0ZXh0LWFsaWduOnJpZ2h0fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhcntjbGVhcjpib3RofS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF95ZWFye3dpZHRoOjQ4cHg7bWFyZ2luLWxlZnQ6NXB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0YWJsZXtib3JkZXItY29sbGFwc2U6Y29sbGFwc2U7d2lkdGg6MTAwJX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQ+ZGl2e3BhZGRpbmctcmlnaHQ6NXB4fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0aHtoZWlnaHQ6MjVweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRoe3dpZHRoOjE0LjI4NTcxNDIlO2JhY2tncm91bmQ6I2Y1ZjVmNTtib3JkZXI6MXB4IHNvbGlkICNkZGQ7Y29sb3I6IzY2Njtmb250LXNpemU6MC43NXJlbSA7dGV4dC1hbGlnbjpyaWdodDt2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7cGFkZGluZzowO2JvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtjdXJzb3I6cG9pbnRlcjtoZWlnaHQ6MjVweH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9zaG93d2Vla3MgLnhkc29mdF9jYWxlbmRhciB0ZCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9zaG93d2Vla3MgLnhkc29mdF9jYWxlbmRhciB0aHt3aWR0aDoxMi41JX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGh7YmFja2dyb3VuZDojZjFmMWYxfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfdG9kYXl7Y29sb3I6IzNhZn0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2hpZ2hsaWdodGVkX2RlZmF1bHR7YmFja2dyb3VuZDojZmZlOWQyO2JveC1zaGFkb3c6I2ZmYjg3MSAwIDFweCA0cHggMCBpbnNldDtjb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfaGlnaGxpZ2h0ZWRfbWludHtiYWNrZ3JvdW5kOiNjMWZmYzk7Ym94LXNoYWRvdzojMDBkZDFjIDAgMXB4IDRweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9kZWZhdWx0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfY3VycmVudCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXYueGRzb2Z0X2N1cnJlbnR7YmFja2dyb3VuZDpncmV5O2JveC1zaGFkb3c6cmdiYSgyOSwzMCwzMSwwLjcpIDAgMXB4IDNweCAwIGluc2V0O2NvbG9yOiNmZmY7Zm9udC13ZWlnaHQ6NzAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfb3RoZXJfbW9udGgsLnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9kaXNhYmxlZCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdi54ZHNvZnRfZGlzYWJsZWR7b3BhY2l0eTouNTstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTUwKSI7Y3Vyc29yOmRlZmF1bHR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9vdGhlcl9tb250aC54ZHNvZnRfZGlzYWJsZWR7b3BhY2l0eTouMjstbXMtZmlsdGVyOiJhbHBoYShvcGFjaXR5PTIwKSJ9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdjpob3Zlcntjb2xvcjojZmZmICFpbXBvcnRhbnQ7YmFja2dyb3VuZDojMzMzICFpbXBvcnRhbnQ7Ym94LXNoYWRvdzpub25lICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9jdXJyZW50Lnhkc29mdF9kaXNhYmxlZDpob3ZlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXYueGRzb2Z0X2N1cnJlbnQueGRzb2Z0X2Rpc2FibGVkOmhvdmVye2JhY2tncm91bmQ6IzNhZiAhaW1wb3J0YW50O2JveC1zaGFkb3c6IzE3OGZlNSAwIDFweCAzcHggMCBpbnNldCAhaW1wb3J0YW50O2NvbG9yOiNmZmYgIWltcG9ydGFudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2Rpc2FibGVkOmhvdmVyLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3g+ZGl2PmRpdi54ZHNvZnRfZGlzYWJsZWQ6aG92ZXJ7Y29sb3I6aW5oZXJpdCAhaW1wb3J0YW50O2JhY2tncm91bmQ6aW5oZXJpdCAhaW1wb3J0YW50O2JveC1zaGFkb3c6aW5oZXJpdCAhaW1wb3J0YW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLnhkc29mdF9jYWxlbmRhciB0aHtmb250LXdlaWdodDo3MDA7dGV4dC1hbGlnbjpjZW50ZXI7Y29sb3I6Izk5OTtjdXJzb3I6ZGVmYXVsdH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY29weXJpZ2h0e2NvbG9yOiNjY2MgIWltcG9ydGFudDtmb250LXNpemU6MC42MjVyZW0gO2NsZWFyOmJvdGg7ZmxvYXQ6bm9uZTttYXJnaW4tbGVmdDo4cHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X2NvcHlyaWdodCBhe2NvbG9yOiNlZWUgIWltcG9ydGFudH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC54ZHNvZnRfY29weXJpZ2h0IGE6aG92ZXJ7Y29sb3I6I2FhYSAhaW1wb3J0YW50fS54ZHNvZnRfdGltZV9ib3h7cG9zaXRpb246cmVsYXRpdmU7Ym9yZGVyOjFweCBzb2xpZCAjY2NjfS54ZHNvZnRfc2Nyb2xsYmFyPi54ZHNvZnRfc2Nyb2xsZXJ7YmFja2dyb3VuZDojY2NjICFpbXBvcnRhbnQ7aGVpZ2h0OjIwcHg7Ym9yZGVyLXJhZGl1czozcHh9Lnhkc29mdF9zY3JvbGxiYXJ7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6N3B4O3JpZ2h0OjA7dG9wOjA7Ym90dG9tOjA7Y3Vyc29yOnBvaW50ZXJ9Lnhkc29mdF9zY3JvbGxlcl9ib3h7cG9zaXRpb246cmVsYXRpdmV9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFya3tib3gtc2hhZG93OjAgNXB4IDE1cHggLTVweCByZ2JhKDI1NSwyNTUsMjU1LDAuNTA2KTtiYWNrZ3JvdW5kOiMwMDA7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzQ0NDtib3JkZXItbGVmdDoxcHggc29saWQgIzMzMztib3JkZXItcmlnaHQ6MXB4IHNvbGlkICMzMzM7Ym9yZGVyLXRvcDoxcHggc29saWQgIzMzMztjb2xvcjojY2NjfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF90aW1lcGlja2VyIC54ZHNvZnRfdGltZV9ib3h7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgIzIyMn0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXZ7YmFja2dyb3VuZDojMGEwYTBhO2JvcmRlci10b3A6MXB4IHNvbGlkICMyMjI7Y29sb3I6Izk5OX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfbGFiZWx7YmFja2dyb3VuZC1jb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9sYWJlbD4ueGRzb2Z0X3NlbGVjdHtib3JkZXI6MXB4IHNvbGlkICMzMzM7YmFja2dyb3VuZDojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9sYWJlbD4ueGRzb2Z0X3NlbGVjdD5kaXY+Lnhkc29mdF9vcHRpb246aG92ZXJ7Y29sb3I6IzAwMDtiYWNrZ3JvdW5kOiMwMDdmZmZ9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2xhYmVsPi54ZHNvZnRfc2VsZWN0PmRpdj4ueGRzb2Z0X29wdGlvbi54ZHNvZnRfY3VycmVudHtiYWNrZ3JvdW5kOiNjNTA7Ym94LXNoYWRvdzojYjAzZTAwIDAgMXB4IDNweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2xhYmVsIGksLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X3ByZXYsLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X25leHQsLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X3RvZGF5X2J1dHRvbntiYWNrZ3JvdW5kLWltYWdlOnVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUdRQUFBQWVDQVlBQUFEYVc3dnpBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQXlKcFZGaDBXRTFNT21OdmJTNWhaRzlpWlM1NGJYQUFBQUFBQUR3L2VIQmhZMnRsZENCaVpXZHBiajBpNzd1L0lpQnBaRDBpVnpWTk1FMXdRMlZvYVVoNmNtVlRlazVVWTNwcll6bGtJajgrSUR4NE9uaHRjRzFsZEdFZ2VHMXNibk02ZUQwaVlXUnZZbVU2Ym5NNmJXVjBZUzhpSUhnNmVHMXdkR3M5SWtGa2IySmxJRmhOVUNCRGIzSmxJRFV1TXkxak1ERXhJRFkyTGpFME5UWTJNU3dnTWpBeE1pOHdNaTh3TmkweE5EbzFOam95TnlBZ0lDQWdJQ0FnSWo0Z1BISmtaanBTUkVZZ2VHMXNibk02Y21SbVBTSm9kSFJ3T2k4dmQzZDNMbmN6TG05eVp5OHhPVGs1THpBeUx6SXlMWEprWmkxemVXNTBZWGd0Ym5NaklqNGdQSEprWmpwRVpYTmpjbWx3ZEdsdmJpQnlaR1k2WVdKdmRYUTlJaUlnZUcxc2JuTTZlRzF3UFNKb2RIUndPaTh2Ym5NdVlXUnZZbVV1WTI5dEwzaGhjQzh4TGpBdklpQjRiV3h1Y3pwNGJYQk5UVDBpYUhSMGNEb3ZMMjV6TG1Ga2IySmxMbU52YlM5NFlYQXZNUzR3TDIxdEx5SWdlRzFzYm5NNmMzUlNaV1k5SW1oMGRIQTZMeTl1Y3k1aFpHOWlaUzVqYjIwdmVHRndMekV1TUM5elZIbHdaUzlTWlhOdmRYSmpaVkpsWmlNaUlIaHRjRHBEY21WaGRHOXlWRzl2YkQwaVFXUnZZbVVnVUdodmRHOXphRzl3SUVOVE5pQW9WMmx1Wkc5M2N5a2lJSGh0Y0UxTk9rbHVjM1JoYm1ObFNVUTlJbmh0Y0M1cGFXUTZRVUV4UVVVek9UQTBNMFV5TVRGRk5EbEJNMEZGUVRKRU5URXhSRFZCT0RZaUlIaHRjRTFOT2tSdlkzVnRaVzUwU1VROUluaHRjQzVrYVdRNlFVRXhRVVV6T1RFME0wVXlNVEZGTkRsQk0wRkZRVEpFTlRFeFJEVkJPRFlpUGlBOGVHMXdUVTA2UkdWeWFYWmxaRVp5YjIwZ2MzUlNaV1k2YVc1emRHRnVZMlZKUkQwaWVHMXdMbWxwWkRwQlFURkJSVE00UlRRelJUSXhNVVUwT1VFelFVVkJNa1ExTVRGRU5VRTROaUlnYzNSU1pXWTZaRzlqZFcxbGJuUkpSRDBpZUcxd0xtUnBaRHBCUVRGQlJUTTRSalF6UlRJeE1VVTBPVUV6UVVWQk1rUTFNVEZFTlVFNE5pSXZQaUE4TDNKa1pqcEVaWE5qY21sd2RHbHZiajRnUEM5eVpHWTZVa1JHUGlBOEwzZzZlRzF3YldWMFlUNGdQRDk0Y0dGamEyVjBJR1Z1WkQwaWNpSS9QcDBWeEdFQUFBSUFTVVJCVkhqYTdKck5TZ014RU1lYnRnaCszTVNMcjFUMVhuMkNIb1NLQjA4K1FtUjhCeDlBOGU3Uml4ZEI5Q0tDb05kZXhJdWd4RmxKYTdyTlpuZVRiTElwTS9Dbk5Mc2RNdk5qTThsMG1SQ2lROVllNjFJS0NBZ1pBVW5IK21VM01NWmFIWUNoQm5KVUR6V09GWmRWZmM1K1pGTGJyV0RlWFB3YnhJcXJMTGZhZVMwaEVCVkdJUlFDRWlab0hRd3RsR1NCeUNDZFlCbDhnOGVnVFRBV29LUU1SQlJCY1p4WWxoemhLZWdxTU9hZ2VFcnNDSFZrazNoWElGb29EZ0hCMUtrSElIVmd6S0I0QURKUS9BMWpBRm1BWWhrUXFBNVRPQnRvY3JLcmdYd1FBOGdjRkl1QUlPOHNRU0E3aGlkdlB3YVFHWlNhQVlIT1VXSkFCaFdXdzJFTUlIOVFhZ1FFUlU0U0FySlhvMFpaTDE4dXZheGVqWHQvRW04eGpWQlhtdkZyMUtWbS9BSjEwdFJlMlhucmFOcWFKdktFM0tIdVViZksxRStWSEIwcTQwL3kzc2RRU3hZNEZIV2VLSkN1blA4VXlEZHFKWmVuVDNudFZWNWpJWUNBaDIwdlQ3aW9QOHRwZjZFMmxmRU13RVJlK3doVjFNSGp3WkI3UEJpQ3hjR1FXd0taS0Q2MmxmR05uUC8xcG9GQUE2MFQ3ckYxVWdjS2QyaWQzS0RlVVMrb0xXVjhEZldBZXBPZnEwMENnUWFiaTl6amNnSlZZVkQ3UFZ6UVVBVUdBUWtiTkpUQklDRGhnd1lUakRZRDZYZVcwOFpLaCtBNHBZa3plbk94WFVidlpjV3o3RTh5a1JNbklIR1gxWFBsKzFtMnZQWXBMKzJxZGI4Q0RBQVJsS0ZFei9aVmtBQUFBQUJKUlU1RXJrSmdnZz09KX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY2FsZW5kYXIgdGQsLnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NhbGVuZGFyIHRoe2JhY2tncm91bmQ6IzBhMGEwYTtib3JkZXI6MXB4IHNvbGlkICMyMjI7Y29sb3I6Izk5OX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY2FsZW5kYXIgdGh7YmFja2dyb3VuZDojMGUwZTBlfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfdG9kYXl7Y29sb3I6I2M1MH0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfY2FsZW5kYXIgdGQueGRzb2Z0X2hpZ2hsaWdodGVkX2RlZmF1bHR7YmFja2dyb3VuZDojZmZlOWQyO2JveC1zaGFkb3c6I2ZmYjg3MSAwIDFweCA0cHggMCBpbnNldDtjb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfaGlnaGxpZ2h0ZWRfbWludHtiYWNrZ3JvdW5kOiNjMWZmYzk7Ym94LXNoYWRvdzojMDBkZDFjIDAgMXB4IDRweCAwIGluc2V0O2NvbG9yOiMwMDB9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NhbGVuZGFyIHRkLnhkc29mdF9kZWZhdWx0LC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZC54ZHNvZnRfY3VycmVudCwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXYueGRzb2Z0X2N1cnJlbnR7YmFja2dyb3VuZDojYzUwO2JveC1zaGFkb3c6I2IwM2UwMCAwIDFweCAzcHggMCBpbnNldDtjb2xvcjojMDAwfS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0ZDpob3ZlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyLnhkc29mdF9kYXJrIC54ZHNvZnRfdGltZXBpY2tlciAueGRzb2Z0X3RpbWVfYm94PmRpdj5kaXY6aG92ZXJ7Y29sb3I6IzAwMCAhaW1wb3J0YW50O2JhY2tncm91bmQ6IzAwN2ZmZiAhaW1wb3J0YW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jYWxlbmRhciB0aHtjb2xvcjojNjY2fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jb3B5cmlnaHR7Y29sb3I6IzMzMyAhaW1wb3J0YW50fS54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIueGRzb2Z0X2RhcmsgLnhkc29mdF9jb3B5cmlnaHQgYXtjb2xvcjojMTExICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlci54ZHNvZnRfZGFyayAueGRzb2Z0X2NvcHlyaWdodCBhOmhvdmVye2NvbG9yOiM1NTUgIWltcG9ydGFudH0ueGRzb2Z0X2RhcmsgLnhkc29mdF90aW1lX2JveHtib3JkZXI6MXB4IHNvbGlkICMzMzN9Lnhkc29mdF9kYXJrIC54ZHNvZnRfc2Nyb2xsYmFyPi54ZHNvZnRfc2Nyb2xsZXJ7YmFja2dyb3VuZDojMzMzICFpbXBvcnRhbnR9Lnhkc29mdF9kYXRldGltZXBpY2tlciAueGRzb2Z0X3NhdmVfc2VsZWN0ZWR7ZGlzcGxheTpibG9jaztib3JkZXI6MXB4IHNvbGlkICNkZGQgIWltcG9ydGFudDttYXJnaW4tdG9wOjVweDt3aWR0aDoxMDAlO2NvbG9yOiM0NTQ1NTE7Zm9udC1zaXplOjEzcHh9Lnhkc29mdF9kYXRldGltZXBpY2tlciAuYmx1ZS1ncmFkaWVudC1idXR0b257Zm9udC1mYW1pbHk6Im11c2VvLXNhbnMiLCJCb29rIEFudGlxdWEiLHNhbnMtc2VyaWY7Zm9udC1zaXplOjAuNzVyZW0gO2ZvbnQtd2VpZ2h0OjMwMDtjb2xvcjojODI4NzhjO2hlaWdodDoyOHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3BhZGRpbmc6NHB4IDE3cHggNHB4IDMzcHg7Ym9yZGVyOjFweCBzb2xpZCAjZDdkOGRhO2JhY2tncm91bmQ6LW1vei1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZjRmOGZhIDczJSk7YmFja2dyb3VuZDotd2Via2l0LWdyYWRpZW50KGxpbmVhcixsZWZ0IHRvcCxsZWZ0IGJvdHRvbSxjb2xvci1zdG9wKDAsI2ZmZiksY29sb3Itc3RvcCg3MyUsI2Y0ZjhmYSkpO2JhY2tncm91bmQ6LXdlYmtpdC1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZjRmOGZhIDczJSk7YmFja2dyb3VuZDotby1saW5lYXItZ3JhZGllbnQodG9wLCNmZmYgMCwjZjRmOGZhIDczJSk7YmFja2dyb3VuZDotbXMtbGluZWFyLWdyYWRpZW50KHRvcCwjZmZmIDAsI2Y0ZjhmYSA3MyUpO2JhY2tncm91bmQ6bGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwjZmZmIDAsI2Y0ZjhmYSA3MyUpO2ZpbHRlcjpwcm9naWQ6RFhJbWFnZVRyYW5zZm9ybS5NaWNyb3NvZnQuZ3JhZGllbnQoc3RhcnRDb2xvcnN0cj0nI2ZmZicsZW5kQ29sb3JzdHI9JyNmNGY4ZmEnLEdyYWRpZW50VHlwZT0wKX0ueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC5ibHVlLWdyYWRpZW50LWJ1dHRvbjpob3ZlciwueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC5ibHVlLWdyYWRpZW50LWJ1dHRvbjpmb2N1cywueGRzb2Z0X2RhdGV0aW1lcGlja2VyIC5ibHVlLWdyYWRpZW50LWJ1dHRvbjpob3ZlciBzcGFuLC54ZHNvZnRfZGF0ZXRpbWVwaWNrZXIgLmJsdWUtZ3JhZGllbnQtYnV0dG9uOmZvY3VzIHNwYW57Y29sb3I6IzQ1NDU1MTtiYWNrZ3JvdW5kOi1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwjZjRmOGZhIDAsI0ZGRiA3MyUpO2JhY2tncm91bmQ6LXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sY29sb3Itc3RvcCgwLCNmNGY4ZmEpLGNvbG9yLXN0b3AoNzMlLCNGRkYpKTtiYWNrZ3JvdW5kOi13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZjRmOGZhIDAsI0ZGRiA3MyUpO2JhY2tncm91bmQ6LW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjRmOGZhIDAsI0ZGRiA3MyUpO2JhY2tncm91bmQ6LW1zLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y0ZjhmYSAwLCNGRkYgNzMlKTtiYWNrZ3JvdW5kOmxpbmVhci1ncmFkaWVudCh0byBib3R0b20sI2Y0ZjhmYSAwLCNGRkYgNzMlKTtmaWx0ZXI6cHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LmdyYWRpZW50KHN0YXJ0Q29sb3JzdHI9JyNmNGY4ZmEnLGVuZENvbG9yc3RyPScjRkZGJyxHcmFkaWVudFR5cGU9MCl9Lnhkc29mdF9kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOnJlZDtjb2xvcjp3aGl0ZTtvcGFjaXR5OjF9Lnhkc29mdF9kaXNhYmxlZHtiYWNrZ3JvdW5kLWNvbG9yOiNlODQ2NDYgIWltcG9ydGFudDtjb2xvcjp3aGl0ZSAhaW1wb3J0YW50fQovKiogL2Nzcy92aXNpdENvbnRhY3RGb3JtUG9wdXAuY3NzICoqLwojdmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lck5ldyBoMiwjdmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lclVzZWQgaDJ7Zm9udC1zaXplOjAuOTM4cmVtIDtmb250LXdlaWdodDpib2xkO3RleHQtYWxpZ246Y2VudGVyO21hcmdpbjoxMHB4IDB9LnZpc2l0Q29udGFjdEZvcm0gLnZpc2l0Q29udGFjdERhdGVEaXZ7cG9zaXRpb246cmVsYXRpdmV9LnZpc2l0Q29udGFjdEZvcm0gLnZpc2l0Q29udGFjdERhdGVEaXYgc3Bhbntwb3NpdGlvbjphYnNvbHV0ZTt0b3A6OHB4O3JpZ2h0OjEwcHg7Y29sb3I6I2FhYX0udmlzaXRDb250YWN0Rm9ybSBpbnB1dDpub3QoW3R5cGU9InN1Ym1pdCJdKXtkaXNwbGF5OmJsb2NrO21hcmdpbi1ib3R0b206MTBweDt3aWR0aDoxMDAlO2hlaWdodDozMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nOjAgMTBweH0udmlzaXRDb250YWN0Rm9ybSB0ZXh0YXJlYS52aXNpdENvbnRhY3RDb21tZW50e2Rpc3BsYXk6bm9uZTttYXJnaW4tYm90dG9tOjEwcHg7d2lkdGg6MTAwJTtoZWlnaHQ6NDBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7cmVzaXplOnZlcnRpY2FsO3BhZGRpbmc6MCAxMHB4fS52aXNpdENvbnRhY3RGb3JtIHRleHRhcmVhLnZpc2l0Q29udGFjdENvbW1lbnQuc2hvd0NvbW1lbnR7ZGlzcGxheTpibG9ja30udmlzaXRDb250YWN0Rm9ybSAudmlzaXRDb250YWN0Rm9ybVN1Ym1pdHtoZWlnaHQ6YXV0bzttYXJnaW4tYm90dG9tOjA7d2lkdGg6MTAwJTtiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWY7Y29sb3I6I2ZmZmZmZn0KLyoqIC9jc3MvZm9ybXMvZm9ybXMucHJlbG9hZC5jc3MgKiovCi5kMmNmb3JtIHsgLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2w6IioiOyAtLWxhYmVsLXJlcXVpcmVkLWNvbG9yOiNGRjAwMDA7IC0taW5wdXQtcGFkZGluZzp2YXIoLS1zLTEpIHZhcigtLXMxKTsgLS1pbnB1dC1iZy1jb2xvcjp2YXIoLS13aGl0ZSk7IC0taW5wdXQtYm9yZGVyLWNvbG9yOnZhcigtLW1pZC1ncmF5KTsgLS1pbnB1dC1yYWRpdXM6dmFyKC0tcy02KTsgLS1pbnB1dC1mb250LXNpemU6dmFyKC0tZnMwKTsgLS1pbnB1dC1saW5lLWhlaWdodDp2YXIoLS1mczIpOyB9IC5kMmNmb3JtICogeyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0gLmQyY2Zvcm0gYm94LWxjIHsgLS1zcGFjZTp2YXIoLS1zLTQpOyBwYWRkaW5nLWxlZnQ6MDsgcGFkZGluZy1yaWdodDowOyBkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOmNvbHVtbjsgYWxpZ24taXRlbXM6ZmxleC1zdGFydDsgfSAuZDJjZm9ybS0tdGhpbiBib3gtbGMgeyAtLXNwYWNlOnZhcigtLXMtOSk7IH0gLmQyY2Zvcm0tLXJvdyBzdGFjay1sYyB7IGZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC13cmFwOndyYXA7IH0gLmQyY2Zvcm0tLXJvdyBib3gtbGMgeyBwYWRkaW5nLXJpZ2h0OnZhcigtLXNwYWNlKTsgcGFkZGluZy1sZWZ0OnZhcigtLXNwYWNlKTsgfSAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgeyBmbGV4LWRpcmVjdGlvbjpyb3c7IGFsaWduLWl0ZW1zOmZsZXgtc3RhcnQ7IH0gLmQyY2Zvcm0tLWhvcml6b250YWwgYm94LWxjIGxhYmVsIHsgbWluLXdpZHRoOjExNXB4OyB3aWR0aDozMCU7IHBhZGRpbmctcmlnaHQ6dmFyKC0tcyk7IG1hcmdpbi10b3A6dmFyKC0tczEpOyBtYXJnaW4tYm90dG9tOjA7IH0gLmQyY2Zvcm0gbGFiZWw6aGFzKFtyZXF1aXJlZF0pIHNwYW46YWZ0ZXJ7IGNvbG9yIDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1jb2xvcik7IGNvbnRlbnQgOnZhcigtLWxhYmVsLXJlcXVpcmVkLXN5bWJvbCk7IHBhZGRpbmctbGVmdCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSBsYWJlbDpub3QoLmZpbmFuY2VDYWxjKSwgLmQyY2Zvcm0gLmxhYmVsOm5vdCguZmluYW5jZUNhbGMpIHsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zLTMpOyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIsIC5kMmNmb3JtIC5sYWJlbC4tLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gbGFiZWwuLXJlcXVpcmVkOm5vdCgudHh0LXJpZ2h0KTphZnRlciwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZDpub3QoLnR4dC1yaWdodCk6YWZ0ZXIgeyBjb2xvciA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtY29sb3IpOyBjb250ZW50IDp2YXIoLS1sYWJlbC1yZXF1aXJlZC1zeW1ib2wpOyBwYWRkaW5nLWxlZnQgOnZhcigtLXMtNik7IH0gLmQyY2Zvcm0gbGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSAubGFiZWwuLS1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlLCAuZDJjZm9ybSBsYWJlbC4tcmVxdWlyZWQudHh0LXJpZ2h0OmJlZm9yZSwgLmQyY2Zvcm0gLmxhYmVsLi1yZXF1aXJlZC50eHQtcmlnaHQ6YmVmb3JlIHsgY29sb3IgOnZhcigtLWxhYmVsLXJlcXVpcmVkLWNvbG9yKTsgY29udGVudCA6dmFyKC0tbGFiZWwtcmVxdWlyZWQtc3ltYm9sKTsgcGFkZGluZy1yaWdodCA6dmFyKC0tcy02KTsgfSAuZDJjZm9ybSA6d2hlcmUoaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0sLnBheW1lbnRDYWxjdWxhdG9yRG93blBheW1lbnQpOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSksIC5kMmNmb3JtIHNlbGVjdDpub3QoLnBheW1lbnRDYWxjdWxhdG9ySW50ZXJ2YWwsLnBheW1lbnRDYWxjdWxhdG9yS21BbGxvd2FuY2UsLmZpbmFuY2VNdWx0aXN0ZXBVc2VkQ2FsY3VsYXRvciAuY2FsYy1mb3JtIHNlbGVjdCksIC5kMmNmb3JtIHRleHRhcmVhIHsgd2lkdGg6MTAwJTsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZC1jb2xvcjp2YXIoLS1pbnB1dC1iZy1jb2xvcik7IGJvcmRlci1yYWRpdXM6dmFyKC0taW5wdXQtcmFkaXVzKTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBjb2xvcjojMjEyNTI5OyBmb250LXNpemU6dmFyKC0taW5wdXQtZm9udC1zaXplKTsgbGluZS1oZWlnaHQ6dmFyKC0taW5wdXQtbGluZS1oZWlnaHQpOyBmb250LXdlaWdodDo0MDA7IH0gLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0IHsgaGVpZ2h0OjM1cHg7IH0gLmQyY2Zvcm0gLmludmFsaWQgPiA6aXMoaW5wdXQsc2VsZWN0LHRleHRhcmVhKXsgYmFja2dyb3VuZC1jb2xvcjojZmFkNmRjOyB9IC5kMmNmb3JtIGlucHV0OmRpc2FibGVkLCAuZDJjZm9ybSBpbnB1dC5kaXNhYmxlZCB7IGJhY2tncm91bmQtY29sb3I6cmdiYSgyMzksIDIzOSwgMjM5LCAwLjMpOyBjb2xvcjpyZ2IoODQsIDg0LCA4NCk7IGJvcmRlci1jb2xvcjpyZ2JhKDExOCwgMTE4LCAxMTgsIDAuMyk7IGN1cnNvcjpub3QtYWxsb3dlZDsgfSAuZDJjZm9ybSBpbnB1dC50eHQtdXBwZXIgeyB0ZXh0LXRyYW5zZm9ybTpub25lOyB9IC5kMmNmb3JtIGlucHV0LnR4dC11cHBlcjo6cGxhY2Vob2xkZXIgeyB0ZXh0LXRyYW5zZm9ybTp2YXIoLS10eHQtdXBwZXIsIHVwcGVyY2FzZSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCwgLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfSAuZDJjZm9ybSAuaW5wdXQtaWNvbiB7IHBvc2l0aW9uOmFic29sdXRlOyB6LWluZGV4OjE7IHRvcDp2YXIoLS1zMSk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IGNvbG9yOnZhcigtLWRhcmstZ3JheSk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tcmlnaHQgLmlucHV0LWljb24geyByaWdodDp2YXIoLS1zNCk7IH0gLmQyY2Zvcm0gLmlucHV0LWljb24tbGVmdCAuaW5wdXQtaWNvbiB7IGxlZnQ6dmFyKC0tczQpOyB9IC5kMmNmb3JtIC5pbnB1dC1pY29uLWxlZnQgaW5wdXQgeyBwYWRkaW5nLWxlZnQ6dmFyKC0tczkpOyB9IC5kMmNmb3JtIC5zZXBhcmF0b3IgeyB3aWR0aDoxMDAlOyBib3JkZXItdG9wOjFweCBzb2xpZCAjZDRkNGQ0OyBtYXJnaW4tdG9wOnZhcigtLXM3KTsgbWFyZ2luLWJvdHRvbTp2YXIoLS1zNyk7IH0gLmQyY2Zvcm0gLnJhZGlvLWlubGluZSB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAuY2hlY2tib3gtbGlzdCB7IGRpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246Y29sdW1uOyBtYXJnaW4tYm90dG9tOnZhcigtLXMtMyk7IH0gLmQyY2Zvcm0gLmNoZWNrYm94LWxpc3QgPiAqIHsgbWFyZ2luLWJvdHRvbTowOyB9IC5kMmNmb3JtIC5tdWx0aXBsZS1pbnB1dCB7IGRpc3BsYXk6ZmxleDsgd2lkdGg6MTAwJTsgfSAuZDJjZm9ybSAubXVsdGlwbGUtaW5wdXQgPiAqOm5vdCg6bGFzdC1vZi10eXBlKSB7IG1hcmdpbi1yaWdodDp2YXIoLS1zMSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIHsgZGlzcGxheTpmbGV4OyB3aWR0aCA6MTAwJTsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgLmlucHV0LWdyb3VwLXRleHQgeyBkaXNwbGF5OmZsZXg7IGFsaWduLWl0ZW1zOmNlbnRlcjsgcGFkZGluZzp2YXIoLS1pbnB1dC1wYWRkaW5nKTsgYmFja2dyb3VuZDp2YXIoLS1saWdodC1ncmF5KTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1pbnB1dC1ib3JkZXItY29sb3IpOyBib3JkZXItcmFkaXVzOnZhcigtLWlucHV0LXJhZGl1cyk7IGZvbnQtc2l6ZTp2YXIoLS1pbnB1dC1mb250LXNpemUpOyBsaW5lLWhlaWdodDp2YXIoLS1pbnB1dC1saW5lLWhlaWdodCk7IHdoaXRlLXNwYWNlOm5vd3JhcDsgfSAuZDJjZm9ybSAuaW5wdXQtZ3JvdXAgPiA6bm90KDpmaXJzdC1jaGlsZCkgeyBib3JkZXItbGVmdDowOyBib3JkZXItdG9wLWxlZnQtcmFkaXVzOjAgIWltcG9ydGFudDsgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowICFpbXBvcnRhbnQ7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwID4gOm5vdCg6bGFzdC1jaGlsZCkgeyBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czowICFpbXBvcnRhbnQ7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjAgIWltcG9ydGFudDsgfSBAbWVkaWEgKG1heC13aWR0aDo5ODBweCkgeyAuZDJjZm9ybS0taG9yaXpvbnRhbCBib3gtbGMgbGFiZWwgeyBtaW4td2lkdGg6ODVweDsgfSB9Ci8qKiAvY3NzL2Zvcm1zL2Zvcm1zLmNzcyAqKi8KLmQyY2Zvcm0gaW5wdXQ6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT0icmFkaW8iXSk6bm90KFt0eXBlPSJjaGVja2JveCJdKSwgLmQyY2Zvcm0gc2VsZWN0LCAuZDJjZm9ybSB0ZXh0YXJlYSB7IHRyYW5zaXRpb246Ym9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0OyB9IC5kMmNmb3JtIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIHNlbGVjdDpmb2N1cywgLmQyY2Zvcm0gdGV4dGFyZWE6Zm9jdXMgeyBib3JkZXItY29sb3I6Izg2YjdmZTsgb3V0bGluZTowOyBib3gtc2hhZG93OjAgMCAwIDAuMnJlbSByZ2IoMTMgMTEwIDI1MyAvIDI1JSk7IH0gLmQyY2Zvcm0gLmlucHV0LWdyb3VwIGlucHV0Om5vdChbdHlwZT1zdWJtaXRdKTpub3QoW3R5cGU9InJhZGlvIl0pOm5vdChbdHlwZT0iY2hlY2tib3giXSk6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCBzZWxlY3Q6Zm9jdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCB0ZXh0YXJlYTpmb2N1cyB7IHotaW5kZXg6MzsgfSAuZDJjZm9ybSBpbnB1dC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91cywgLmQyY2Zvcm0gLmlucHV0LWdyb3VwIC52YWxpZGl0eS1lcnJvbmVvdXMgKyAuaW5wdXQtZ3JvdXAtdGV4dCB7IGJvcmRlci1jb2xvcjojZGMzNTQ1ICFpbXBvcnRhbnQ7IGJhY2tncm91bmQtY29sb3I6I2ZhZDZkYyAhaW1wb3J0YW50OyB9IC5kMmNmb3JtIGlucHV0LnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHRleHRhcmVhLnZhbGlkaXR5LWVycm9uZW91czo6cGxhY2Vob2xkZXIsIC5kMmNmb3JtIHNlbGVjdC52YWxpZGl0eS1lcnJvbmVvdXMsIC5kMmNmb3JtIC5pbnB1dC1ncm91cCAudmFsaWRpdHktZXJyb25lb3VzICsgLmlucHV0LWdyb3VwLXRleHQgeyBjb2xvcjojZGMzNTQ1OyB9Ci8qKiAvY3NzL3YyL21vZGFsLmNzcyAqKi8KLm1vZGFsLXdyYXBwZXIgeyBwb3NpdGlvbjpmaXhlZDsgdG9wOjE1MCU7IGxlZnQ6NTAlOyB0cmFuc2Zvcm06dHJhbnNsYXRlKC01MCUsIC01MCUpOyB6LWluZGV4OjE2MDAxOyB0cmFuc2l0aW9uOnRvcCAxNTBtcyBlYXNlLWluOyB9IC5tb2RhbC13cmFwcGVyLmlzLWFjdGl2ZXsgdG9wOjUwJTsgfSAubW9kYWwtd3JhcHBlciAubW9kYWwtYm9keXsgbWluLXdpZHRoOjIwcmVtOyBtYXgtd2lkdGg6MTAwJTsgbWF4LWhlaWdodDo4NXZoOyBvdmVyZmxvdy15OmF1dG87IH0gLm1vZGFsLW92ZXJsYXl7IHBvc2l0aW9uOmZpeGVkOyB0b3A6MDsgbGVmdDowOyB3aWR0aDoxMDB2dzsgaGVpZ2h0OjEwMHZoOyBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwwLDAsMC41KTsgei1pbmRleDoxMDAwMDsgfSAubG9hZGluZy1vdmVybGF5eyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MTAwJTsgaGVpZ2h0OjEwMCU7IHRvcDowOyBsZWZ0OjA7IGJhY2tncm91bmQtaW1hZ2U6dXJsKC9pbWFnZXMvYWpheC1sb2FkZXIuZ2lmKTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlcjsgfSAubW9kYWwtd3JhcHBlciA6aXMoaW5wdXRbdHlwZT0idGV4dCJdLGlucHV0W3R5cGU9ImVtYWlsIl0saW5wdXRbdHlwZT0idGVsIl0peyBwYWRkaW5nOjAuNHJlbTsgYm9yZGVyOjFweCBzb2xpZCB2YXIoLS1taWQtZ3JheSk7IGJvcmRlci1yYWRpdXM6MC4zcmVtOyB9IC5tb2RhbC1ib2R5IC5pZnJhbWUtd3JhcHBlcnsgd2lkdGg6bWF4KDkwdncsIDIwLjVyZW0pOyBoZWlnaHQ6bWF4KDg0dmgsIDMwcmVtKTsgd2lkdGg6Y2xhbXAoMjAuNXJlbSwgbWF4KDkwdncsIDIwLjVyZW0pLCA2MHJlbSk7IGhlaWdodDpjbGFtcCgzMHJlbSwgbWF4KDg0dmgsIDMwcmVtKSwgNjByZW0pOyB9IC5tb2RhbC1ib2R5IC5pZnJhbWUtd3JhcHBlciBpZnJhbWV7IHdpZHRoOjEwMCU7IGhlaWdodDoxMDAlOyB9Ci8qKiAvY3NzL3YyL2ZsYXRwaWNrci5taW4uY3NzICoqLwouZmxhdHBpY2tyLWNhbGVuZGFye2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7b3BhY2l0eTowO2Rpc3BsYXk6bm9uZTt0ZXh0LWFsaWduOmNlbnRlcjt2aXNpYmlsaXR5OmhpZGRlbjtwYWRkaW5nOjA7LXdlYmtpdC1hbmltYXRpb246bm9uZTthbmltYXRpb246bm9uZTtkaXJlY3Rpb246bHRyO2JvcmRlcjowO2ZvbnQtc2l6ZTowLjg3NXJlbSA7bGluZS1oZWlnaHQ6MjRweDtib3JkZXItcmFkaXVzOjVweDtwb3NpdGlvbjphYnNvbHV0ZTt3aWR0aDozMDcuODc1cHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94Oy1tcy10b3VjaC1hY3Rpb246bWFuaXB1bGF0aW9uO3RvdWNoLWFjdGlvbjptYW5pcHVsYXRpb247YmFja2dyb3VuZDojZmZmOy13ZWJraXQtYm94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTYsLTFweCAwIDAgI2U2ZTZlNiwwIDFweCAwICNlNmU2ZTYsMCAtMXB4IDAgI2U2ZTZlNiwwIDNweCAxM3B4IHJnYmEoMCwwLDAsMC4wOCk7Ym94LXNoYWRvdzoxcHggMCAwICNlNmU2ZTYsLTFweCAwIDAgI2U2ZTZlNiwwIDFweCAwICNlNmU2ZTYsMCAtMXB4IDAgI2U2ZTZlNiwwIDNweCAxM3B4IHJnYmEoMCwwLDAsMC4wOCl9LmZsYXRwaWNrci1jYWxlbmRhci5vcGVuLC5mbGF0cGlja3ItY2FsZW5kYXIuaW5saW5le29wYWNpdHk6MTttYXgtaGVpZ2h0OjY0MHB4O3Zpc2liaWxpdHk6dmlzaWJsZX0uZmxhdHBpY2tyLWNhbGVuZGFyLm9wZW57ZGlzcGxheTppbmxpbmUtYmxvY2s7ei1pbmRleDo5OTk5OX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFuaW1hdGUub3Blbnstd2Via2l0LWFuaW1hdGlvbjpmcEZhZGVJbkRvd24gMzAwbXMgY3ViaWMtYmV6aWVyKC4yMywxLC4zMiwxKTthbmltYXRpb246ZnBGYWRlSW5Eb3duIDMwMG1zIGN1YmljLWJlemllciguMjMsMSwuMzIsMSl9LmZsYXRwaWNrci1jYWxlbmRhci5pbmxpbmV7ZGlzcGxheTpibG9jaztwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MnB4fS5mbGF0cGlja3ItY2FsZW5kYXIuc3RhdGlje3Bvc2l0aW9uOmFic29sdXRlO3RvcDpjYWxjKDEwMCUgKyAycHgpfS5mbGF0cGlja3ItY2FsZW5kYXIuc3RhdGljLm9wZW57ei1pbmRleDo5OTk7ZGlzcGxheTpibG9ja30uZmxhdHBpY2tyLWNhbGVuZGFyLm11bHRpTW9udGggLmZsYXRwaWNrci1kYXlzIC5kYXlDb250YWluZXI6bnRoLWNoaWxkKG4rMSkgLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpudGgtY2hpbGQoN24rNyl7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudDtib3gtc2hhZG93Om5vbmUgIWltcG9ydGFudH0uZmxhdHBpY2tyLWNhbGVuZGFyLm11bHRpTW9udGggLmZsYXRwaWNrci1kYXlzIC5kYXlDb250YWluZXI6bnRoLWNoaWxkKG4rMikgLmZsYXRwaWNrci1kYXkuaW5SYW5nZTpudGgtY2hpbGQoN24rMSl7LXdlYmtpdC1ib3gtc2hhZG93Oi0ycHggMCAwICNlNmU2ZTYsNXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6LTJweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhciAuaGFzV2Vla3MgLmRheUNvbnRhaW5lciwuZmxhdHBpY2tyLWNhbGVuZGFyIC5oYXNUaW1lIC5kYXlDb250YWluZXJ7Ym9yZGVyLWJvdHRvbTowO2JvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOjA7Ym9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czowfS5mbGF0cGlja3ItY2FsZW5kYXIgLmhhc1dlZWtzIC5kYXlDb250YWluZXJ7Ym9yZGVyLWxlZnQ6MH0uZmxhdHBpY2tyLWNhbGVuZGFyLmhhc1RpbWUgLmZsYXRwaWNrci10aW1le2hlaWdodDo0MHB4O2JvcmRlci10b3A6MXB4IHNvbGlkICNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5ub0NhbGVuZGFyLmhhc1RpbWUgLmZsYXRwaWNrci10aW1le2hlaWdodDphdXRvfS5mbGF0cGlja3ItY2FsZW5kYXI6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXI6YWZ0ZXJ7cG9zaXRpb246YWJzb2x1dGU7ZGlzcGxheTpibG9jaztwb2ludGVyLWV2ZW50czpub25lO2JvcmRlcjpzb2xpZCB0cmFuc3BhcmVudDtjb250ZW50OicnO2hlaWdodDowO3dpZHRoOjA7bGVmdDoyMnB4fS5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93UmlnaHQ6YmVmb3JlLC5mbGF0cGlja3ItY2FsZW5kYXIucmlnaHRNb3N0OmFmdGVyLC5mbGF0cGlja3ItY2FsZW5kYXIuYXJyb3dSaWdodDphZnRlcntsZWZ0OmF1dG87cmlnaHQ6MjJweH0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Q2VudGVyOmJlZm9yZSwuZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Q2VudGVyOmFmdGVye2xlZnQ6NTAlO3JpZ2h0OjUwJX0uZmxhdHBpY2tyLWNhbGVuZGFyOmJlZm9yZXtib3JkZXItd2lkdGg6NXB4O21hcmdpbjowIC01cHh9LmZsYXRwaWNrci1jYWxlbmRhcjphZnRlcntib3JkZXItd2lkdGg6NHB4O21hcmdpbjowIC00cHh9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDphZnRlcntib3R0b206MTAwJX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93VG9wOmJlZm9yZXtib3JkZXItYm90dG9tLWNvbG9yOiNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd1RvcDphZnRlcntib3JkZXItYm90dG9tLWNvbG9yOiNmZmZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTpiZWZvcmUsLmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTphZnRlcnt0b3A6MTAwJX0uZmxhdHBpY2tyLWNhbGVuZGFyLmFycm93Qm90dG9tOmJlZm9yZXtib3JkZXItdG9wLWNvbG9yOiNlNmU2ZTZ9LmZsYXRwaWNrci1jYWxlbmRhci5hcnJvd0JvdHRvbTphZnRlcntib3JkZXItdG9wLWNvbG9yOiNmZmZ9LmZsYXRwaWNrci1jYWxlbmRhcjpmb2N1c3tvdXRsaW5lOjB9LmZsYXRwaWNrci13cmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5mbGF0cGlja3ItbW9udGhze2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXh9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1tb250aHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O2NvbG9yOnJnYmEoMCwwLDAsMC45KTtmaWxsOnJnYmEoMCwwLDAsMC45KTtoZWlnaHQ6MzRweDtsaW5lLWhlaWdodDoxO3RleHQtYWxpZ246Y2VudGVyO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtdXNlci1zZWxlY3Q6bm9uZTstbW96LXVzZXItc2VsZWN0Om5vbmU7LW1zLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTtvdmVyZmxvdzpoaWRkZW47LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxfS5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItcHJldi1tb250aCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGh7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Y3Vyc29yOnBvaW50ZXI7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7aGVpZ2h0OjM0cHg7cGFkZGluZzoxMHB4O3otaW5kZXg6Mztjb2xvcjpyZ2JhKDAsMCwwLDAuOSk7ZmlsbDpyZ2JhKDAsMCwwLDAuOSl9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1kaXNhYmxlZCwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGguZmxhdHBpY2tyLWRpc2FibGVke2Rpc3BsYXk6bm9uZX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggaSwuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGggaXtwb3NpdGlvbjpyZWxhdGl2ZX0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGguZmxhdHBpY2tyLXByZXYtbW9udGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoLmZsYXRwaWNrci1wcmV2LW1vbnRoe2xlZnQ6MH0gLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoLmZsYXRwaWNrci1uZXh0LW1vbnRoLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aC5mbGF0cGlja3ItbmV4dC1tb250aHtyaWdodDowfSAuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGg6aG92ZXIsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoOmhvdmVye2NvbG9yOiM5NTllYTl9LmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1wcmV2LW1vbnRoOmhvdmVyIHN2ZywuZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLW5leHQtbW9udGg6aG92ZXIgc3Zne2ZpbGw6I2Y2NDc0N30uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggc3ZnLC5mbGF0cGlja3ItbW9udGhzIC5mbGF0cGlja3ItbmV4dC1tb250aCBzdmd7d2lkdGg6MTRweDtoZWlnaHQ6MTRweH0uZmxhdHBpY2tyLW1vbnRocyAuZmxhdHBpY2tyLXByZXYtbW9udGggc3ZnIHBhdGgsLmZsYXRwaWNrci1tb250aHMgLmZsYXRwaWNrci1uZXh0LW1vbnRoIHN2ZyBwYXRoey13ZWJraXQtdHJhbnNpdGlvbjpmaWxsIC4xczt0cmFuc2l0aW9uOmZpbGwgLjFzO2ZpbGw6aW5oZXJpdH0ubnVtSW5wdXRXcmFwcGVye3Bvc2l0aW9uOnJlbGF0aXZlO2hlaWdodDphdXRvfS5udW1JbnB1dFdyYXBwZXIgaW5wdXQsLm51bUlucHV0V3JhcHBlciBzcGFue2Rpc3BsYXk6aW5saW5lLWJsb2NrfS5udW1JbnB1dFdyYXBwZXIgaW5wdXR7d2lkdGg6MTAwJX0ubnVtSW5wdXRXcmFwcGVyIGlucHV0OjotbXMtY2xlYXJ7ZGlzcGxheTpub25lfS5udW1JbnB1dFdyYXBwZXIgaW5wdXQ6Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24sLm51bUlucHV0V3JhcHBlciBpbnB1dDo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbnttYXJnaW46MDstd2Via2l0LWFwcGVhcmFuY2U6bm9uZX0ubnVtSW5wdXRXcmFwcGVyIHNwYW57cG9zaXRpb246YWJzb2x1dGU7cmlnaHQ6MDt3aWR0aDoxNHB4O3BhZGRpbmc6MCA0cHggMCAycHg7aGVpZ2h0OjUwJTtsaW5lLWhlaWdodDo1MCU7b3BhY2l0eTowO2N1cnNvcjpwb2ludGVyO2JvcmRlcjoxcHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjE1KTstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lm51bUlucHV0V3JhcHBlciBzcGFuOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjEpfS5udW1JbnB1dFdyYXBwZXIgc3BhbjphY3RpdmV7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMil9Lm51bUlucHV0V3JhcHBlciBzcGFuOmFmdGVye2Rpc3BsYXk6YmxvY2s7Y29udGVudDoiIjtwb3NpdGlvbjphYnNvbHV0ZX0ubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dVcHt0b3A6MDtib3JkZXItYm90dG9tOjB9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93VXA6YWZ0ZXJ7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLWJvdHRvbTo0cHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjYpO3RvcDoyNiV9Lm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bnt0b3A6NTAlfS5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd0Rvd246YWZ0ZXJ7Ym9yZGVyLWxlZnQ6NHB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1yaWdodDo0cHggc29saWQgdHJhbnNwYXJlbnQ7Ym9yZGVyLXRvcDo0cHggc29saWQgcmdiYSg1Nyw1Nyw1NywwLjYpO3RvcDo0MCV9Lm51bUlucHV0V3JhcHBlciBzcGFuIHN2Z3t3aWR0aDppbmhlcml0O2hlaWdodDphdXRvfS5udW1JbnB1dFdyYXBwZXIgc3BhbiBzdmcgcGF0aHtmaWxsOnJnYmEoMCwwLDAsMC41KX0ubnVtSW5wdXRXcmFwcGVyOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0ubnVtSW5wdXRXcmFwcGVyOmhvdmVyIHNwYW57b3BhY2l0eToxfS5mbGF0cGlja3ItY3VycmVudC1tb250aHtmb250LXNpemU6MTM1JTtsaW5lLWhlaWdodDppbmhlcml0O2ZvbnQtd2VpZ2h0OjMwMDtjb2xvcjppbmhlcml0O3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjc1JTtsZWZ0OjEyLjUlO3BhZGRpbmc6Ny40OHB4IDAgMCAwO2xpbmUtaGVpZ2h0OjE7aGVpZ2h0OjM0cHg7ZGlzcGxheTppbmxpbmUtYmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCl9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoe2ZvbnQtZmFtaWx5OmluaGVyaXQ7Zm9udC13ZWlnaHQ6NzAwO2NvbG9yOmluaGVyaXQ7ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luLWxlZnQ6LjVjaDtwYWRkaW5nOjB9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIHNwYW4uY3VyLW1vbnRoOmhvdmVye2JhY2tncm91bmQ6cmdiYSgwLDAsMCwwLjA1KX0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggLm51bUlucHV0V3JhcHBlcnt3aWR0aDo2Y2g7d2lkdGg6N2NoXDA7ZGlzcGxheTppbmxpbmUtYmxvY2t9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6cmdiYSgwLDAsMCwwLjkpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAubnVtSW5wdXRXcmFwcGVyIHNwYW4uYXJyb3dEb3duOmFmdGVye2JvcmRlci10b3AtY29sb3I6cmdiYSgwLDAsMCwwLjkpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcntiYWNrZ3JvdW5kOnRyYW5zcGFyZW50Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjppbmhlcml0O2N1cnNvcjp0ZXh0O3BhZGRpbmc6MCAwIDAgLjVjaDttYXJnaW46MDtkaXNwbGF5OmlubGluZS1ibG9jaztmb250LXNpemU6aW5oZXJpdDtmb250LWZhbWlseTppbmhlcml0O2ZvbnQtd2VpZ2h0OjMwMDtsaW5lLWhlaWdodDppbmhlcml0O2hlaWdodDphdXRvO2JvcmRlcjowO2JvcmRlci1yYWRpdXM6MDt2ZXJ0aWNhbC1hbGlnbjppbml0aWFsOy13ZWJraXQtYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7LW1vei1hcHBlYXJhbmNlOnRleHRmaWVsZDthcHBlYXJhbmNlOnRleHRmaWVsZH0uZmxhdHBpY2tyLWN1cnJlbnQtbW9udGggaW5wdXQuY3VyLXllYXI6Zm9jdXN7b3V0bGluZTowfS5mbGF0cGlja3ItY3VycmVudC1tb250aCBpbnB1dC5jdXIteWVhcltkaXNhYmxlZF0sLmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIGlucHV0LmN1ci15ZWFyW2Rpc2FibGVkXTpob3Zlcntmb250LXNpemU6MTAwJTtjb2xvcjpyZ2JhKDAsMCwwLDAuNSk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtwb2ludGVyLWV2ZW50czpub25lfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhze2FwcGVhcmFuY2U6bWVudWxpc3Q7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6bm9uZTtib3JkZXItcmFkaXVzOjA7Ym94LXNpemluZzpib3JkZXItYm94O2NvbG9yOmluaGVyaXQ7Y3Vyc29yOnBvaW50ZXI7Zm9udC1zaXplOmluaGVyaXQ7Zm9udC1mYW1pbHk6aW5oZXJpdDtmb250LXdlaWdodDozMDA7aGVpZ2h0OmF1dG87bGluZS1oZWlnaHQ6aW5oZXJpdDttYXJnaW46LTFweCAwIDAgMDtvdXRsaW5lOm5vbmU7cGFkZGluZzowIDAgMCAuNWNoO3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOmluaXRpYWw7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7LXdlYmtpdC1hcHBlYXJhbmNlOm1lbnVsaXN0Oy1tb3otYXBwZWFyYW5jZTptZW51bGlzdDt3aWR0aDphdXRvfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmZvY3VzLC5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzOmFjdGl2ZXtvdXRsaW5lOm5vbmV9LmZsYXRwaWNrci1jdXJyZW50LW1vbnRoIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHM6aG92ZXJ7YmFja2dyb3VuZDpyZ2JhKDAsMCwwLDAuMDUpfS5mbGF0cGlja3ItY3VycmVudC1tb250aCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzIC5mbGF0cGlja3ItbW9udGhEcm9wZG93bi1tb250aHtiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O291dGxpbmU6bm9uZTtwYWRkaW5nOjB9LmZsYXRwaWNrci13ZWVrZGF5c3tiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O3RleHQtYWxpZ246Y2VudGVyO292ZXJmbG93OmhpZGRlbjt3aWR0aDoxMDAlO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtYWxpZ246Y2VudGVyOy13ZWJraXQtYWxpZ24taXRlbXM6Y2VudGVyOy1tcy1mbGV4LWFsaWduOmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7aGVpZ2h0OjI4cHh9LmZsYXRwaWNrci13ZWVrZGF5cyAuZmxhdHBpY2tyLXdlZWtkYXljb250YWluZXJ7ZGlzcGxheTotd2Via2l0LWJveDtkaXNwbGF5Oi13ZWJraXQtZmxleDtkaXNwbGF5Oi1tcy1mbGV4Ym94O2Rpc3BsYXk6ZmxleDstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjF9c3Bhbi5mbGF0cGlja3Itd2Vla2RheXtjdXJzb3I6ZGVmYXVsdDtmb250LXNpemU6OTAlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y29sb3I6cmdiYSgwLDAsMCwwLjU0KTtsaW5lLWhlaWdodDoxO21hcmdpbjowO3RleHQtYWxpZ246Y2VudGVyO2Rpc3BsYXk6YmxvY2s7LXdlYmtpdC1ib3gtZmxleDoxOy13ZWJraXQtZmxleDoxOy1tcy1mbGV4OjE7ZmxleDoxO2ZvbnQtd2VpZ2h0OmJvbGRlcn0uZGF5Q29udGFpbmVyLC5mbGF0cGlja3Itd2Vla3N7cGFkZGluZzoxcHggMCAwIDB9LmZsYXRwaWNrci1kYXlze3Bvc2l0aW9uOnJlbGF0aXZlO292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4Oy13ZWJraXQtYm94LWFsaWduOnN0YXJ0Oy13ZWJraXQtYWxpZ24taXRlbXM6ZmxleC1zdGFydDstbXMtZmxleC1hbGlnbjpzdGFydDthbGlnbi1pdGVtczpmbGV4LXN0YXJ0O3dpZHRoOjMwNy44NzVweH0uZmxhdHBpY2tyLWRheXM6Zm9jdXN7b3V0bGluZTowfS5kYXlDb250YWluZXJ7cGFkZGluZzowO291dGxpbmU6MDt0ZXh0LWFsaWduOmxlZnQ7d2lkdGg6MzA3Ljg3NXB4O21pbi13aWR0aDozMDcuODc1cHg7bWF4LXdpZHRoOjMwNy44NzVweDstd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTppbmxpbmUtYmxvY2s7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6ZmxleDstd2Via2l0LWZsZXgtd3JhcDp3cmFwO2ZsZXgtd3JhcDp3cmFwOy1tcy1mbGV4LXdyYXA6d3JhcDstbXMtZmxleC1wYWNrOmp1c3RpZnk7LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYXJvdW5kO2p1c3RpZnktY29udGVudDpzcGFjZS1hcm91bmQ7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7b3BhY2l0eToxfS5kYXlDb250YWluZXIgKyAuZGF5Q29udGFpbmVyey13ZWJraXQtYm94LXNoYWRvdzotMXB4IDAgMCAjZTZlNmU2O2JveC1zaGFkb3c6LTFweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLWRheXtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtib3JkZXItcmFkaXVzOjE1MHB4Oy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjb2xvcjojMzkzOTM5O2N1cnNvcjpwb2ludGVyO2ZvbnQtd2VpZ2h0OjQwMDt3aWR0aDoxNC4yODU3MTQzJTstd2Via2l0LWZsZXgtYmFzaXM6MTQuMjg1NzE0MyU7LW1zLWZsZXgtcHJlZmVycmVkLXNpemU6MTQuMjg1NzE0MyU7ZmxleC1iYXNpczoxNC4yODU3MTQzJTttYXgtd2lkdGg6MzlweDtoZWlnaHQ6MzlweDtsaW5lLWhlaWdodDozOXB4O21hcmdpbjowO2Rpc3BsYXk6aW5saW5lLWJsb2NrO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXBhY2s6Y2VudGVyOy13ZWJraXQtanVzdGlmeS1jb250ZW50OmNlbnRlcjstbXMtZmxleC1wYWNrOmNlbnRlcjtqdXN0aWZ5LWNvbnRlbnQ6Y2VudGVyO3RleHQtYWxpZ246Y2VudGVyfS5mbGF0cGlja3ItZGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkucHJldk1vbnRoRGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5LmluUmFuZ2UsLmZsYXRwaWNrci1kYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXkudG9kYXkuaW5SYW5nZSwuZmxhdHBpY2tyLWRheTpob3ZlciwuZmxhdHBpY2tyLWRheS5wcmV2TW9udGhEYXk6aG92ZXIsLmZsYXRwaWNrci1kYXkubmV4dE1vbnRoRGF5OmhvdmVyLC5mbGF0cGlja3ItZGF5OmZvY3VzLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheTpmb2N1cywuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXk6Zm9jdXN7Y3Vyc29yOnBvaW50ZXI7b3V0bGluZTowO2JhY2tncm91bmQ6I2U2ZTZlNjtib3JkZXItY29sb3I6I2U2ZTZlNn0uZmxhdHBpY2tyLWRheS50b2RheXtib3JkZXItY29sb3I6Izk1OWVhOX0uZmxhdHBpY2tyLWRheS50b2RheTpob3ZlciwuZmxhdHBpY2tyLWRheS50b2RheTpmb2N1c3tib3JkZXItY29sb3I6Izk1OWVhOTtiYWNrZ3JvdW5kOiM5NTllYTk7Y29sb3I6I2ZmZn0uZmxhdHBpY2tyLWRheS5zZWxlY3RlZCwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLmluUmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5pblJhbmdlLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLmluUmFuZ2UsLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQ6Zm9jdXMsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZTpmb2N1cywuZmxhdHBpY2tyLWRheS5lbmRSYW5nZTpmb2N1cywuZmxhdHBpY2tyLWRheS5zZWxlY3RlZDpob3ZlciwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlOmhvdmVyLC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlOmhvdmVyLC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5wcmV2TW9udGhEYXksLmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQubmV4dE1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2UubmV4dE1vbnRoRGF5LC5mbGF0cGlja3ItZGF5LmVuZFJhbmdlLm5leHRNb250aERheXtiYWNrZ3JvdW5kOiM1NjlmZjc7LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7Ym94LXNoYWRvdzpub25lO2NvbG9yOiNmZmY7Ym9yZGVyLWNvbG9yOiM1NjlmZjd9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZSwuZmxhdHBpY2tyLWRheS5zdGFydFJhbmdlLnN0YXJ0UmFuZ2UsLmZsYXRwaWNrci1kYXkuZW5kUmFuZ2Uuc3RhcnRSYW5nZXtib3JkZXItcmFkaXVzOjUwcHggMCAwIDUwcHh9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuZW5kUmFuZ2UsLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5lbmRSYW5nZXtib3JkZXItcmFkaXVzOjAgNTBweCA1MHB4IDB9LmZsYXRwaWNrci1kYXkuc2VsZWN0ZWQuc3RhcnRSYW5nZSArIC5lbmRSYW5nZTpub3QoOm50aC1jaGlsZCg3bisxKSksLmZsYXRwaWNrci1kYXkuc3RhcnRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlICsgLmVuZFJhbmdlOm5vdCg6bnRoLWNoaWxkKDduKzEpKXstd2Via2l0LWJveC1zaGFkb3c6LTEwcHggMCAwICM1NjlmZjc7Ym94LXNoYWRvdzotMTBweCAwIDAgIzU2OWZmN30uZmxhdHBpY2tyLWRheS5zZWxlY3RlZC5zdGFydFJhbmdlLmVuZFJhbmdlLC5mbGF0cGlja3ItZGF5LnN0YXJ0UmFuZ2Uuc3RhcnRSYW5nZS5lbmRSYW5nZSwuZmxhdHBpY2tyLWRheS5lbmRSYW5nZS5zdGFydFJhbmdlLmVuZFJhbmdle2JvcmRlci1yYWRpdXM6NTBweH0uZmxhdHBpY2tyLWRheS5pblJhbmdle2JvcmRlci1yYWRpdXM6MDstd2Via2l0LWJveC1zaGFkb3c6LTVweCAwIDAgI2U2ZTZlNiw1cHggMCAwICNlNmU2ZTY7Ym94LXNoYWRvdzotNXB4IDAgMCAjZTZlNmU2LDVweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLWRheS5mbGF0cGlja3ItZGlzYWJsZWQsLmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkOmhvdmVyLC5mbGF0cGlja3ItZGF5LnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5uZXh0TW9udGhEYXksLmZsYXRwaWNrci1kYXkubm90QWxsb3dlZCwuZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLnByZXZNb250aERheSwuZmxhdHBpY2tyLWRheS5ub3RBbGxvd2VkLm5leHRNb250aERheXtjb2xvcjpyZ2JhKDU3LDU3LDU3LDAuMyk7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7Y3Vyc29yOmRlZmF1bHR9LmZsYXRwaWNrci1kYXkuZmxhdHBpY2tyLWRpc2FibGVkLC5mbGF0cGlja3ItZGF5LmZsYXRwaWNrci1kaXNhYmxlZDpob3ZlcntjdXJzb3I6bm90LWFsbG93ZWQ7Y29sb3I6cmdiYSg1Nyw1Nyw1NywwLjEpfS5mbGF0cGlja3ItZGF5LndlZWsuc2VsZWN0ZWR7Ym9yZGVyLXJhZGl1czowOy13ZWJraXQtYm94LXNoYWRvdzotNXB4IDAgMCAjNTY5ZmY3LDVweCAwIDAgIzU2OWZmNztib3gtc2hhZG93Oi01cHggMCAwICM1NjlmZjcsNXB4IDAgMCAjNTY5ZmY3fS5mbGF0cGlja3ItZGF5LmhpZGRlbnt2aXNpYmlsaXR5OmhpZGRlbn0ucmFuZ2VNb2RlIC5mbGF0cGlja3ItZGF5e21hcmdpbi10b3A6MXB4fS5mbGF0cGlja3Itd2Vla3dyYXBwZXJ7ZmxvYXQ6bGVmdH0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIC5mbGF0cGlja3Itd2Vla3N7cGFkZGluZzowIDEycHg7LXdlYmtpdC1ib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNjtib3gtc2hhZG93OjFweCAwIDAgI2U2ZTZlNn0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIC5mbGF0cGlja3Itd2Vla2RheXtmbG9hdDpub25lO3dpZHRoOjEwMCU7bGluZS1oZWlnaHQ6MjhweH0uZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheSwuZmxhdHBpY2tyLXdlZWt3cmFwcGVyIHNwYW4uZmxhdHBpY2tyLWRheTpob3ZlcntkaXNwbGF5OmJsb2NrO3dpZHRoOjEwMCU7bWF4LXdpZHRoOm5vbmU7Y29sb3I6cmdiYSg1Nyw1Nyw1NywwLjMpO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Y3Vyc29yOmRlZmF1bHQ7Ym9yZGVyOm5vbmV9LmZsYXRwaWNrci1pbm5lckNvbnRhaW5lcntkaXNwbGF5OmJsb2NrO2Rpc3BsYXk6LXdlYmtpdC1ib3g7ZGlzcGxheTotd2Via2l0LWZsZXg7ZGlzcGxheTotbXMtZmxleGJveDtkaXNwbGF5OmZsZXg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbn0uZmxhdHBpY2tyLXJDb250YWluZXJ7ZGlzcGxheTppbmxpbmUtYmxvY2s7cGFkZGluZzowOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveH0uZmxhdHBpY2tyLXRpbWV7dGV4dC1hbGlnbjpjZW50ZXI7b3V0bGluZTowO2Rpc3BsYXk6YmxvY2s7aGVpZ2h0OjA7bGluZS1oZWlnaHQ6NDBweDttYXgtaGVpZ2h0OjQwcHg7LXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7Ym94LXNpemluZzpib3JkZXItYm94O292ZXJmbG93OmhpZGRlbjtkaXNwbGF5Oi13ZWJraXQtYm94O2Rpc3BsYXk6LXdlYmtpdC1mbGV4O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4fS5mbGF0cGlja3ItdGltZTphZnRlcntjb250ZW50OiIiO2Rpc3BsYXk6dGFibGU7Y2xlYXI6Ym90aH0uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlcnstd2Via2l0LWJveC1mbGV4OjE7LXdlYmtpdC1mbGV4OjE7LW1zLWZsZXg6MTtmbGV4OjE7d2lkdGg6NDAlO2hlaWdodDo0MHB4O2Zsb2F0OmxlZnR9LmZsYXRwaWNrci10aW1lIC5udW1JbnB1dFdyYXBwZXIgc3Bhbi5hcnJvd1VwOmFmdGVye2JvcmRlci1ib3R0b20tY29sb3I6IzM5MzkzOX0uZmxhdHBpY2tyLXRpbWUgLm51bUlucHV0V3JhcHBlciBzcGFuLmFycm93RG93bjphZnRlcntib3JkZXItdG9wLWNvbG9yOiMzOTM5Mzl9LmZsYXRwaWNrci10aW1lLmhhc1NlY29uZHMgLm51bUlucHV0V3JhcHBlcnt3aWR0aDoyNiV9LmZsYXRwaWNrci10aW1lLnRpbWUyNGhyIC5udW1JbnB1dFdyYXBwZXJ7d2lkdGg6NDklfS5mbGF0cGlja3ItdGltZSBpbnB1dHtiYWNrZ3JvdW5kOnRyYW5zcGFyZW50Oy13ZWJraXQtYm94LXNoYWRvdzpub25lO2JveC1zaGFkb3c6bm9uZTtib3JkZXI6MDtib3JkZXItcmFkaXVzOjA7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luOjA7cGFkZGluZzowO2hlaWdodDppbmhlcml0O2xpbmUtaGVpZ2h0OmluaGVyaXQ7Y29sb3I6IzM5MzkzOTtmb250LXNpemU6MC44NzVyZW0gO3Bvc2l0aW9uOnJlbGF0aXZlOy13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94O2JveC1zaXppbmc6Ym9yZGVyLWJveDstd2Via2l0LWFwcGVhcmFuY2U6dGV4dGZpZWxkOy1tb3otYXBwZWFyYW5jZTp0ZXh0ZmllbGQ7YXBwZWFyYW5jZTp0ZXh0ZmllbGR9LmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1ob3Vye2ZvbnQtd2VpZ2h0OmJvbGR9LmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1taW51dGUsLmZsYXRwaWNrci10aW1lIGlucHV0LmZsYXRwaWNrci1zZWNvbmR7Zm9udC13ZWlnaHQ6NDAwfS5mbGF0cGlja3ItdGltZSBpbnB1dDpmb2N1c3tvdXRsaW5lOjA7Ym9yZGVyOjB9LmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItdGltZS1zZXBhcmF0b3IsLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG17aGVpZ2h0OmluaGVyaXQ7ZmxvYXQ6bGVmdDtsaW5lLWhlaWdodDppbmhlcml0O2NvbG9yOiMzOTM5Mzk7Zm9udC13ZWlnaHQ6Ym9sZDt3aWR0aDoyJTstd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lO3VzZXItc2VsZWN0Om5vbmU7LXdlYmtpdC1hbGlnbi1zZWxmOmNlbnRlcjstbXMtZmxleC1pdGVtLWFsaWduOmNlbnRlcjthbGlnbi1zZWxmOmNlbnRlcn0uZmxhdHBpY2tyLXRpbWUgLmZsYXRwaWNrci1hbS1wbXtvdXRsaW5lOjA7d2lkdGg6MTglO2N1cnNvcjpwb2ludGVyO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtd2VpZ2h0OjQwMH0uZmxhdHBpY2tyLXRpbWUgaW5wdXQ6aG92ZXIsLmZsYXRwaWNrci10aW1lIC5mbGF0cGlja3ItYW0tcG06aG92ZXIsLmZsYXRwaWNrci10aW1lIGlucHV0OmZvY3VzLC5mbGF0cGlja3ItdGltZSAuZmxhdHBpY2tyLWFtLXBtOmZvY3Vze2JhY2tncm91bmQ6I2VlZX0uZmxhdHBpY2tyLWlucHV0W3JlYWRvbmx5XXtjdXJzb3I6cG9pbnRlcn1ALXdlYmtpdC1rZXlmcmFtZXMgZnBGYWRlSW5Eb3due2Zyb217b3BhY2l0eTowOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsLTIwcHgsMCl9dG97b3BhY2l0eToxOy13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKTt0cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApfX1Aa2V5ZnJhbWVzIGZwRmFkZUluRG93bntmcm9te29wYWNpdHk6MDstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApO3RyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLC0yMHB4LDApfXRve29wYWNpdHk6MTstd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsMCwwKX19Ci8qKiAvY3NzL2lubGluZS5mci5uZXdjYXJzLmNzcyAqKi8KLmN1c3RvbS1wYWdlIC5jb2wtc20tMiwgLmN1c3RvbS1wYWdlIC5jb2wtc20tMywgLmN1c3RvbS1wYWdlIC5jb2wtc20tNiwgLmN1c3RvbS1wYWdlIC5jb2wtc20tOSwgLmN1c3RvbS1wYWdlIC5jb2wtc20tMTIgeyBwYWRkaW5nLWxlZnQ6MCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OjAgIWltcG9ydGFudDsgfSAucm93LS1mdWxsLXdpZHRoIHsgd2lkdGg6OTkuNnZ3ICFpbXBvcnRhbnQ7IHBvc2l0aW9uOnJlbGF0aXZlICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0Oi01MHZ3ICFpbXBvcnRhbnQ7IGxlZnQ6NTAlICFpbXBvcnRhbnQ7IH0gLnJlc3BvbnNpdmUtZWRpdG9yIC5jdXN0b20tcGFnZSAucm93IHsgbWFyZ2luLWxlZnQ6MDsgbWFyZ2luLXJpZ2h0OjA7IH0gYnV0dG9uI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6IzAwMmM1ZiAhaW1wb3J0YW50OyBjb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6cHggIWltcG9ydGFudDsgfSBidXR0b24jb25ldHJ1c3QtcmVqZWN0LWFsbC1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDJjNWYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiMwMDJjNWYgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czpweCAhaW1wb3J0YW50OyB9IGJ1dHRvbiNvbmV0cnVzdC1wYy1idG4taGFuZGxlciB7IGJhY2tncm91bmQtY29sb3I6I2ZmZmZmZiAhaW1wb3J0YW50OyBjb2xvcjojNjk2OTY5ICFpbXBvcnRhbnQ7IGJvcmRlci1jb2xvcjojOTA5MDkwICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6cHggIWltcG9ydGFudDsgfSBidXR0b24uc2F2ZS1wcmVmZXJlbmNlLWJ0bi1oYW5kbGVyLm9uZXRydXN0LWNsb3NlLWJ0bi1oYW5kbGVyIHsgYmFja2dyb3VuZC1jb2xvcjojZmZmZmZmICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDJjNWYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiMwMDJjNWYgIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czpweCAhaW1wb3J0YW50OyB9IGJ1dHRvbi5vdC1wYy1yZWZ1c2UtYWxsLWhhbmRsZXIgeyBiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWYgIWltcG9ydGFudDsgY29sb3I6IzAwMmM1ZiAhaW1wb3J0YW50OyBib3JkZXItY29sb3I6IzAwMmM1ZiAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOnB4ICFpbXBvcnRhbnQ7IH0gYnV0dG9uI2FjY2VwdC1yZWNvbW1lbmRlZC1idG4taGFuZGxlcnsgYmFja2dyb3VuZC1jb2xvcjojMDAyYzVmICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgYm9yZGVyLWNvbG9yOiNmZmZmZmYgIWltcG9ydGFudDsgZm9udC1zaXplOnNtYWxsICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6cHggIWltcG9ydGFudDsgfSAub3QtcGMtbG9nbyBpbWd7IGNvbnRlbnQ6dXJsKCIvaW1hZ2VzL0xvZ29Nb2JpbGUvaHl1bmRhaS1tb2JpbGUtbG9nby1yZ2ItZnIucG5nIikgIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtcGMtc2RrIC5vdC1wYy1sb2dveyB3aWR0aDozMCUgIWltcG9ydGFudDsganVzdGlmeS1jb250ZW50OmxlZnQgIWltcG9ydGFudDsgfSAub3QtYm5yLWxvZ297IGNvbnRlbnQ6dXJsKCIvaW1hZ2VzL0xvZ29Nb2JpbGUvaHl1bmRhaS1tb2JpbGUtbG9nby1yZ2ItZnIucG5nIikgIWltcG9ydGFudDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkay5vdC1ibnItdy1sb2dvIC5vdC1ibnItbG9nb3sgd2lkdGg6ODVweCAhaW1wb3J0YW50OyBoZWlnaHQ6YXV0byAhaW1wb3J0YW50OyBtYXJnaW4tbGVmdDoyNXB4ICFpbXBvcnRhbnQ7IH0gI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAjb25ldHJ1c3QtcG9saWN5IHsgbWFyZ2luLWxlZnQ6MTEwcHggIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OjI1cHg7IH0gQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOjQyNXB4KXsgI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAub3QtYm5yLWxvZ297IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MTVweCAwIDEwcHggMCAhaW1wb3J0YW50OyB0cmFuc2Zvcm06aW5oZXJpdDsgem9vbTo0MCU7IH0gI29uZXRydXN0LWJhbm5lci1zZGsub3QtYm5yLXctbG9nbyAjb25ldHJ1c3QtcG9saWN5IHsgbWFyZ2luLWxlZnQ6MHB4ICFpbXBvcnRhbnQ7IHBhZGRpbmctbGVmdDowcHg7IG1hcmdpbi10b3A6NXB4OyB9ICNvbmV0cnVzdC1jb25zZW50LXNkayAjb25ldHJ1c3QtcG9saWN5LXRpdGxleyBmb250LXNpemU6MWVtICFpbXBvcnRhbnQ7IH0gI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LWFjY2VwdC1idG4taGFuZGxlciwgI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXJlamVjdC1hbGwtaGFuZGxlciwgI29uZXRydXN0LWJhbm5lci1zZGsgI29uZXRydXN0LXBjLWJ0bi1oYW5kbGVyeyBwYWRkaW5nOjEwcHggMTBweDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayBidXR0b24sICNvbmV0cnVzdC1wYy1zZGsgYnV0dG9uLCAjb3Qtc2RrLWNvb2tpZS1wb2xpY3kgYnV0dG9ueyBtYXJnaW4tYm90dG9tOjAuNXJlbTsgfSAjb25ldHJ1c3QtcGMtc2RrIGJ1dHRvbiB7IHdpZHRoOmF1dG87IH0gI29uZXRydXN0LWJhbm5lci1zZGsgLm90LXNkay1jb250YWluZXIsICNvbmV0cnVzdC1wYy1zZGsgLm90LXNkay1jb250YWluZXIsICNvdC1zZGstY29va2llLXBvbGljeSAub3Qtc2RrLWNvbnRhaW5lcnsgcGFkZGluZzo1cHggMjBweDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtcG9saWN5eyBtYXJnaW46MDsgfSAjb25ldHJ1c3QtYmFubmVyLXNkayAjb25ldHJ1c3QtYnV0dG9uLWdyb3VwICNvbmV0cnVzdC1hY2NlcHQtYnRuLWhhbmRsZXJ7IGZvbnQtc2l6ZTp2YXIoLS1mczApOyB9IH08L3N0eWxlPgoKICAgICAgIAogICAgICAgPCEtLSBPTzo6MTVkYmUxZWM0YmI4MTlmM2JlOWFmMGJiOTE3MzFkOWYgLS0+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iw6AgdmVuZHJlIiBpZD0idGV4dEZvclNhbGUiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkTDqXRhaWxzIiBpZD0idGV4dERldGFpbHMiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IlRvdXMiIGlkPSJ0ZXh0QWxsIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJQcml4IFLDqWR1aXQiIGlkPSJ0ZXh0UmVkdWNlZCI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iU8OpbGVjdGlvbm5leiB1bmUgbWFycXVlIiBpZD0idGV4dE1hbnVUaXRsZSI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iVm9pciBub3MgbW9kw6hsZXMgSHl1bmRhaSIgaWQ9InRleHRCcmFuZFRpdGxlIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJNb2TDqGxlcyBIeXVuZGFpIG5ldWZzIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyIgaWQ9InRleHRNYWluVGl0bGUiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkF1dG9zIG5ldXZlcyBIeXVuZGFpIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dENhclRpdGxlIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJWVVMgbmV1ZnMgSHl1bmRhaSAyMDI1LCAyMDI2ICZhbXA7IDIwMjcgw6AgeyRORVdDSVRZfSIgaWQ9InRleHRTVVZUaXRsZSI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iQ2FtaW9ucyBuZXVmcyBIeXVuZGFpIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dFRydWNrVGl0bGUiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ikh5YnJpZGVzIG5ldXZlcyBIeXVuZGFpIDIwMjUsIDIwMjYgJmFtcDsgMjAyNyDDoCB7JE5FV0NJVFl9IiBpZD0idGV4dEh5YnJpZFRpdGxlIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJub3V2ZWF1IiBpZD0idGV4dE5ldyI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iSHl1bmRhaSB7JENMQVNTTkFNRX0gMjAyNSwgMjAyNiAmYW1wOyAyMDI3IiBpZD0idGV4dENsYXNzVmlldyI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iQWNjdWVpbCIgaWQ9InRleHRIb21lIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvIiBpZD0idXJpSG9tZSI+CiAgICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iL25ldWZzL25vdXZlYXUuaHRtbCIgaWQ9InVyaU5ld0NhcnMiPgogICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ii9uZXVmcy8iIGlkPSJ0ZXh0TmV3Q2FyRm9sZGVyIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJOb3MgbWFycXVlcyIgaWQ9InRleHRNYW51U2VsZWN0Ij4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJFbiBTdG9jayAvIERpc3BvbmlibGVzIiBpZD0iaW5TdG9ja0xhYmVsIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvaW1hZ2VzLyIgaWQ9InRleHRCYXNlSW1hZ2VQYXRoIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIvcHJveHlfYXViLyIgaWQ9ImJyYW5kSW1hZ2VQYXRoIj4KICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZvcmNlVG9GaWxsUG9wdXBfbmV3IiB2YWx1ZT0ibm9uZSI+CgkgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMSIgaWQ9ImlzbW9iaWxlIj4KICAgICAgIAkJCQk8c2NyaXB0PgoKCQkvL2dsb2JhbCBzdG9yZQoJCXZhciBzdG9yZSA9IG51bGw7CgoJCWNvbnN0IGluaXRTdG9yZSA9ICgpID0+IHsKCgkJCWlmKHR5cGVvZiBjcmVhdGVEYXRhU3RvcmUgIT09ICdmdW5jdGlvbicpewoJCQkJc2V0VGltZW91dChpbml0U3RvcmUsIDUwKTsKCQkJCXJldHVybjsKCQkJfQoKCQkJc3RvcmUgPSBjcmVhdGVEYXRhU3RvcmUoeyJjb250ZXh0Ijp7ImxhbmciOiJGUkVOQ0giLCJzaG9ydExhbmciOiJmciIsImlzTW9iaWxlIjp0cnVlLCJjYXRlZ29yeSI6ImFsbCIsInNlY3Rpb24iOiJORVciLCJsb2NhbGUiOiJmcl9DQSIsImRhdGVmb3JtYXQiOiIlZSAlQiJ9LCJkZWFsZXJJbmZvIjp7ImFkZHJlc3MiOiIxOTQwLCAzaVx1MDBlOG1lIEF2ZW51ZSIsImNpdHkiOiJWYWwtZCdPciIsInByb3ZpbmNlIjoiUXVcdTAwZTliZWMiLCJyZWdpb24iOiJBYml0aWJpLVRcdTAwZTltaXNjYW1pbmd1ZSIsInBvc3RhbCI6Iko5UCA3QjIiLCJuYW1lIjoiUG9pcmllciBIeXVuZGFpIiwiZW1haWwiOiJjYXNzZWxpbkBwb2lyaWVyLWVzdDE5NjIuY29tO2Nyb3Vzc2VhdUBoeXVuZGFpcG9pcmllci5jYTtkbGFwb2ludGVAaHl1bmRhaXBvaXJpZXIuY2E7c291ZWxsZXR0ZUBwb2lyaWVyLWVzdDE5NjIuY29tIiwiZGVhbGVySUQiOjE3NTIsImRlYWxlckdyb3VwIjp7Imdyb3VwZU5hbWUiOiJHcm91cGUgUG9pcmllciIsImdyb3VwZUlEIjoiMTc2MyIsImRlYWxlcnMiOlt7ImRlYWxlcklEIjo1NTgyLCJuYW1lIjoiQUNIQVQgQVVUTyBDUlx1MDBjOURJVCBGQUNJTEUiLCJzaXRlSUQiOjIyMzcsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOjIxNzUsIm5hbWUiOiJBbW9zIE1hemRhIC0gR3JvdXBlIFBvaXJpZXIiLCJzaXRlSUQiOjU3MiwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6MTc2NiwibmFtZSI6IkR5bmFzdGllIEh5dW5kYWkiLCJzaXRlSUQiOjIwOCwiaXNMaXZlIjoiWUVTIn0seyJkZWFsZXJJRCI6MTc1MiwibmFtZSI6IlBvaXJpZXIgSHl1bmRhaSIsInNpdGVJRCI6MTkyLCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjozMjQ1LCJuYW1lIjoiUG9pcmllciBLaWEiLCJzaXRlSUQiOjEyNTUsImlzTGl2ZSI6IllFUyJ9LHsiZGVhbGVySUQiOjE3NjcsIm5hbWUiOiJQb2lyaWVyIE5pc3NhbiIsInNpdGVJRCI6NTQ3LCJpc0xpdmUiOiJZRVMifSx7ImRlYWxlcklEIjoyMTI5LCJuYW1lIjoiVmFsLWQnT3IgTmlzc2FuIiwic2l0ZUlEIjo1MzcsImlzTGl2ZSI6IllFUyJ9XX0sImZheCI6IiIsInBob25lIjoiODE5LTg3NC0yODg2IiwibGF0aXR1ZGUiOiI0OC4xMDczODAwMDAwIiwibG9uZ2l0dWRlIjoiLTc3LjgwMDA4MDAwMDAiLCJwcm92aW5jZV9jb2RlIjoiUUMiLCJkZXRhaWxfcHJpeCI6IiIsImRldGFpbF9wcml4X2FuIjoiIiwiZGV0YWlsX3ByaXhfdXNlZCI6bnVsbCwiZGV0YWlsX3ByaXhfdXNlZF9hbiI6bnVsbCwib2VtRGVhbGVyQ29kZSI6IjM1MDE2IiwicHJpY2VfZGlzY2xhaW1lcl9wcmVmZXJlbmNlIjoiMCIsInByaWNlX2Rpc2NsYWltZXJfcHJlZmVyZW5jZV91c2VkIjoiMCIsImdtQkFDIjoiIiwicGxhY2VJZCI6IkNoSUprNHpTTkFKVDMwd1JQYXJSS0NQS1FFbyJ9LCJpc1ZNIjpmYWxzZSwiZmllbGRzIjp7IlNIT1dST09NX0lNQUdFX1NPVVJDRV9UWVBFIjoiY2hyb21lIiwiTkVXX0lOVl9JTUFHRV9TT1VSQ0VfVFlQRSI6ImNocm9tZSIsIkFETUlOX1NIT1dfRUZGRUNUSVZFX1JBVEVfU0VMRUNUIjoicHJpbWFyeSIsIkFETUlOX1NIT1dfRUZGRUNUSVZFX1JBVEUiOiJmYWxzZSIsIlZXX0RSX1BQX0VOQUJMRUQiOnRydWV9LCJpMThuIjp7IldFQl9TSVRFX0dFTkVSQVRPUl9QQUdFX05FV0lOViI6IlwvbmV1ZnNcL2ludmVudGFpcmVcL3JlY2hlcmNoZS5odG1sIiwiUEFZTUVOVFMiOiJQYWllbWVudHMiLCJERUZBVUxUX1BBWU1FTlRfQ0FTSCI6IkNvbXB0YW50IiwiTEFCRUxfQkVGT1JFX1RBWEVTIjoiQXZhbnQgdGF4ZXMiLCJMQUJFTF9TQVZFX0JVSUxEX1RJVExFIjoiRW5yZWdpc3RyZXIgdm90cmUgY29uZmlndXJhdGlvbiEiLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfVE9PTFRJUCI6IlJlc3RhdXJleiB1bmUgY29uZmlndXJhdGlvbiBwclx1MDBlOWNcdTAwZTlkZW1tZW50IGVucmVnaXN0clx1MDBlOWUgZW4gc2Fpc2lzc2FudCB2b3RyZSBhZHJlc3NlIGUtbWFpbCBvdSB2b3RyZSBudW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9FTUFJTF9QSE9ORSI6IlNhaXNpc3NleiB2b3RyZSBhZHJlc3NlIGUtbWFpbCBldFwvb3Ugdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZSBwb3VyIGNoYXJnZXIgdW5lIGNvbmZpZ3VyYXRpb24gZW5yZWdpc3RyXHUwMGU5ZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfRU1BSUxfUEhPTkVfRVJST1IiOiJWZXVpbGxleiBzYWlzaXIgdm90cmUgYWRyZXNzZSBlLW1haWwgb3Ugdm90cmUgbnVtXHUwMGU5cm8gZGUgdFx1MDBlOWxcdTAwZTlwaG9uZS4iLCJXRUJTSVRFX09FTURSX0xPQURfQlVJTERfRVJST1IiOiJMZXMgZG9ublx1MDBlOWVzIGRlIGNvbmZpZ3VyYXRpb24gbmUgc29udCBwYXMgZGlzcG9uaWJsZXMgcG91ciBjZXQgZW5yZWdpc3RyZW1lbnQuIiwiV0VCU0lURV9PRU1EUl9MT0FEX0JVSUxEX1JFRElSRUNUSU5HIjoiQ29tcGlsYXRpb24gY2hhcmdcdTAwZTllISBSZWRpcmVjdGlvbiBlbiBjb3Vycy4uLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUX0VSUk9SIjoiQXVjdW5lIGNvbmZpZ3VyYXRpb24gbiYjMzk7YSBcdTAwZTl0XHUwMGU5IHRyb3V2XHUwMGU5ZSBwb3VyIGNldHRlIGFkcmVzc2UgZS1tYWlsXC9udW1cdTAwZTlybyBkZSB0XHUwMGU5bFx1MDBlOXBob25lLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9JTlZBTElEX1RPS0VOIjoiTGUgamV0b24gZXN0IGludmFsaWRlIG91IGEgZXhwaXJcdTAwZTkuIFZldWlsbGV6IHJcdTAwZTllc3NheWVyLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUIjoiQ2hhcmdlbWVudCBkZXMgY29uZmlndXJhdGlvbnMgc2F1dmVnYXJkXHUwMGU5cy4uLiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUX1NFTEVDVCI6IlNcdTAwZTlsZWN0aW9ubmV6IHVuZSBjb25maWd1cmF0aW9uIFx1MDBlMCBjaGFyZ2VyOiIsIldFQlNJVEVfT0VNRFJfTE9BRF9CVUlMRF9MSVNUX0ZBSUxFRCI6IkltcG9zc2libGUgZGUgY2hhcmdlciBsZXMgY29uZmlndXJhdGlvbnMuIiwiV0VCU0lURV9PRU1EUl9NRkFfU0VORF9DT0RFIjoiRW52b2kgZHUgY29kZSBkZSB2XHUwMGU5cmlmaWNhdGlvbi4uLiIsIldFQlNJVEVfT0VNRFJfTUZBX1NUQVJUX0VSUk9SIjoiSW1wb3NzaWJsZSBkZSBkXHUwMGU5bWFycmVyIGxhIHZcdTAwZTlyaWZpY2F0aW9uLiIsIldFQlNJVEVfT0VNRFJfTUZBX0VOVEVSX0NPREUiOiJTYWlzaXNzZXogbGUgY29kZSBcdTAwZTAgNiBjaGlmZnJlcyBlbnZveVx1MDBlOSBcdTAwZTAgdm90cmUgYWRyZXNzZSBlLW1haWwgb3UgXHUwMGUwIHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9NRkFfRU5URVJfQ09ERV9FUlJPUiI6IlZldWlsbGV6IHNhaXNpciBsZSBjb2RlIGRlIHZcdTAwZTlyaWZpY2F0aW9uLiIsIldFQlNJVEVfT0VNRFJfTUZBX1ZFUklGWV9DT0RFIjoiVlx1MDBlOXJpZmljYXRpb24gZHUgY29kZS4uLiIsIldFQlNJVEVfT0VNRFJfTUZBX0VYUElSRURfQ09ERSI6IkNvZGUgaW52YWxpZGUgb3UgZXhwaXJcdTAwZTkuIFZldWlsbGV6IHJcdTAwZTllc3NheWVyLiIsIldFQlNJVEVfT0VNRFJfTUZBX1ZFUklGWV9GQUlMRUQiOiJMYSB2XHUwMGU5cmlmaWNhdGlvbiBhIFx1MDBlOWNob3VcdTAwZTkuIFZldWlsbGV6IHJcdTAwZTllc3NheWVyLiIsIldFQlNJVEVfT0VNRFJfU0FWRV9CVUlMRF9VUERBVElORyI6Ik1pc2UgXHUwMGUwIGpvdXIgZGUgbGEgY29uZmlndWF0aW9uLi4uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1VQREFURV9TVUNDRVNTIjoiTGEgY29uZmlndWF0aW9uIGEgXHUwMGU5dFx1MDBlOSBtaXNlIFx1MDBlMCBqb3VyIGF2ZWMgc3VjY1x1MDBlOHMuIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1VQREFURV9FUlJPUiI6IkltcG9zc2libGUgZGUgbWV0dHJlIFx1MDBlMCBqb3VyIGxhIGNvbmZpZ3VhdGlvbi4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfU0FWSU5HIjoiU2F1dmVnYXJkZSBkZSBsYSBjb25maWd1YXRpb24uLi4iLCJXRUJTSVRFX09FTURSX1NBVkVfQlVJTERfU0FWRV9TVUNDRVNTIjoiQ29uZmlndWF0aW9uIGVucmVnaXN0clx1MDBlOSAhIFZvdXMgcG91cnJleiBsZSBjaGFyZ2VyIHVsdFx1MDBlOXJpZXVyZW1lbnQgZW4gdXRpbGlzYW50IHZvdHJlIGFkcmVzc2UgZS1tYWlsIG91IHZvdHJlIG51bVx1MDBlOXJvIGRlIHRcdTAwZTlsXHUwMGU5cGhvbmUuIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX1NBVkVfRVJST1IiOiJJbXBvc3NpYmxlIGQmIzM5O2VucmVnaXN0cmVyIGxhIGNvbmZpZ3VyYXRpb24uIiwiV0VCU0lURV9PRU1EUl9CVE5fTE9BRCI6IkNoYXJnZXIiLCJXRUJTSVRFX09FTURSX0JUTl9WRVJJRlkiOiJWXHUwMGU5cmlmaWVyIiwiV0VCU0lURV9PRU1EUl9CVE5fUkVTRU5EX0NPREUiOiJSZW52b3llciBsZSBjb2RlIiwiV0VCU0lURV9PRU1EUl9NRkFfVkVSSUZJQ0FUSU9OX0NPREUiOiJMZSBjb2RlIGRlIHZcdTAwZTlyaWZpY2F0aW9uIiwiV0VCU0lURV9PRU1EUl9TQVZFX0JVSUxEX01PREFMX1RJVExFIjoiQ2hhcmdlciB1bmUgY29uZmlndXJhdGlvbiBlbnJlZ2lzdHJcdTAwZTllIiwiRUZGRUNUSVZFX1JBVEVfTE9OR19MQUJFTCI6InskUkFURX0gdGF1eCBlZmZlY3RpZiIsIkVGRkVDVElWRV9SQVRFX0xBQkVMIjoiVGF1eCB7JFJBVEV9IiwiV0VCX1NJVEVfUFJJQ0VfQlJFQUtET1dOX0xVWFVSWV9UQVhfTEFCRUwiOiJUYXhlIGRlIGx1eGUifSwic2hvd09lbUltYWdlcyI6ZmFsc2V9KTsKCQl9OwoKCQlpbml0U3RvcmUoKTsKCgk8L3NjcmlwdD4KCQkJCQkJPHN2ZyBhcmlhLWhpZGRlbj0idHJ1ZSIgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgd2lkdGg6IDA7IGhlaWdodDogMDsgb3ZlcmZsb3c6IGhpZGRlbjsiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CgkJCQkJPHN5bWJvbCBpZD0iaWNvbi1jaGV2cm9uLXJpZ2h0IiB2aWV3Ym94PSIwIDAgMzIwIDUxMiI+CgkJPHBhdGggZD0iTTI4NS40NzYgMjcyLjk3MUw5MS4xMzIgNDY3LjMxNGMtOS4zNzMgOS4zNzMtMjQuNTY5IDkuMzczLTMzLjk0MSAwbC0yMi42NjctMjIuNjY3Yy05LjM1Ny05LjM1Ny05LjM3NS0yNC41MjItLjA0LTMzLjkwMUwxODguNTA1IDI1NiAzNC40ODQgMTAxLjI1NWMtOS4zMzUtOS4zNzktOS4zMTctMjQuNTQ0LjA0LTMzLjkwMWwyMi42NjctMjIuNjY3YzkuMzczLTkuMzczIDI0LjU2OS05LjM3MyAzMy45NDEgMEwyODUuNDc1IDIzOS4wM2M5LjM3MyA5LjM3MiA5LjM3MyAyNC41NjguMDAxIDMzLjk0MXoiPjwvcGF0aD4KCTwvc3ltYm9sPgk8c3ltYm9sIGlkPSJpY29uLWNoZXZyb24tZG93biIgdmlld2JveD0iMCAwIDQ0OCA1MTIiPgoJCTxwYXRoIGQ9Ik0yMDcuMDI5IDM4MS40NzZMMTIuNjg2IDE4Ny4xMzJjLTkuMzczLTkuMzczLTkuMzczLTI0LjU2OSAwLTMzLjk0MWwyMi42NjctMjIuNjY3YzkuMzU3LTkuMzU3IDI0LjUyMi05LjM3NSAzMy45MDEtLjA0TDIyNCAyODQuNTA1bDE1NC43NDUtMTU0LjAyMWM5LjM3OS05LjMzNSAyNC41NDQtOS4zMTcgMzMuOTAxLjA0bDIyLjY2NyAyMi42NjdjOS4zNzMgOS4zNzMgOS4zNzMgMjQuNTY5IDAgMzMuOTQxTDI0MC45NzEgMzgxLjQ3NmMtOS4zNzMgOS4zNzItMjQuNTY5IDkuMzcyLTMzLjk0MiAweiI+PC9wYXRoPgoJPC9zeW1ib2w+CTxzeW1ib2wgaWQ9Imljb24tY2FyIiB2aWV3Ym94PSIwIDAgNTEyIDUxMiI+CgkJPHBhdGggZD0iTTQ5OS45OSAxNzZoLTU5Ljg3bC0xNi42NC00MS42QzQwNi4zOCA5MS42MyAzNjUuNTcgNjQgMzE5LjUgNjRoLTEyN2MtNDYuMDYgMC04Ni44OCAyNy42My0xMDMuOTkgNzAuNEw3MS44NyAxNzZIMTIuMDFDNC4yIDE3Ni0xLjUzIDE4My4zNC4zNyAxOTAuOTFsNiAyNEM3LjcgMjIwLjI1IDEyLjUgMjI0IDE4LjAxIDIyNGgyMC4wN0MyNC42NSAyMzUuNzMgMTYgMjUyLjc4IDE2IDI3MnY0OGMwIDE2LjEyIDYuMTYgMzAuNjcgMTYgNDEuOTNWNDE2YzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtMzJoMjU2djMyYzAgMTcuNjcgMTQuMzMgMzIgMzIgMzJoMzJjMTcuNjcgMCAzMi0xNC4zMyAzMi0zMnYtNTQuMDdjOS44NC0xMS4yNSAxNi0yNS44IDE2LTQxLjkzdi00OGMwLTE5LjIyLTguNjUtMzYuMjctMjIuMDctNDhINDk0YzUuNTEgMCAxMC4zMS0zLjc1IDExLjY0LTkuMDlsNi0yNGMxLjg5LTcuNTctMy44NC0xNC45MS0xMS42NS0xNC45MXptLTM1Mi4wNi0xNy44M2M3LjI5LTE4LjIyIDI0Ljk0LTMwLjE3IDQ0LjU3LTMwLjE3aDEyN2MxOS42MyAwIDM3LjI4IDExLjk1IDQ0LjU3IDMwLjE3TDM4NCAyMDhIMTI4bDE5LjkzLTQ5Ljgzek05NiAzMTkuOGMtMTkuMiAwLTMyLTEyLjc2LTMyLTMxLjlTNzYuOCAyNTYgOTYgMjU2czQ4IDI4LjcxIDQ4IDQ3Ljg1LTI4LjggMTUuOTUtNDggMTUuOTV6bTMyMCAwYy0xOS4yIDAtNDggMy4xOS00OC0xNS45NVMzOTYuOCAyNTYgNDE2IDI1NnMzMiAxMi43NiAzMiAzMS45LTEyLjggMzEuOS0zMiAzMS45eiI+PC9wYXRoPgoJPC9zeW1ib2w+CTxzeW1ib2wgaWQ9Imljb24tc3RlZXJpbmctd2hlZWwiIHZpZXdib3g9IjAgMCA1MTIgNTEyIj4KCQk8cGF0aCBkPSJNMCAyNTZDMCAxMTQuNiAxMTQuNiAwIDI1NiAwQzM5Ny40IDAgNTEyIDExNC42IDUxMiAyNTZDNTEyIDM5Ny40IDM5Ny40IDUxMiAyNTYgNTEyQzExNC42IDUxMiAwIDM5Ny40IDAgMjU2ek0xNjguOSAyODhINjYuNjVDODAuMTQgMzY4LjQgMTQzLjYgNDMxLjkgMjI0IDQ0NS4zVjM1OC45TDE2OC45IDI4OHpNMjg4IDM1OC45VjQ0NS4zQzM2OC40IDQzMS45IDQzMS45IDM2OC40IDQ0NS4zIDI4OEgzNDMuMUwyODggMzU4Ljl6TTM1MiAyMjRINDQ1LjNDNDMwLjEgMTMzLjIgMzUxLjEgNjQgMjU2IDY0QzE2MC45IDY0IDgxLjg5IDEzMy4yIDY2LjY1IDIyNEgxNjBMMTY3LjIgMjA5LjdDMTcyLjYgMTk4LjggMTgzLjcgMTkyIDE5NS44IDE5MkgzMTYuMkMzMjguMyAxOTIgMzM5LjQgMTk4LjggMzQ0LjggMjA5LjdMMzUyIDIyNHoiPjwvcGF0aD4KCTwvc3ltYm9sPgk8c3ltYm9sIGlkPSJpY29uLXNob3BwaW5nLWNhcnQiIHZpZXdib3g9IjAgMCA1NzYgNTEyIj4KCQk8cGF0aCBkPSJNNTI4LjEyIDMwMS4zMTlsNDcuMjczLTIwOEM1NzguODA2IDc4LjMwMSA1NjcuMzkxIDY0IDU1MS45OSA2NEgxNTkuMjA4bC05LjE2Ni00NC44MUMxNDcuNzU4IDguMDIxIDEzNy45MyAwIDEyNi41MjkgMEgyNEMxMC43NDUgMCAwIDEwLjc0NSAwIDI0djE2YzAgMTMuMjU1IDEwLjc0NSAyNCAyNCAyNGg2OS44ODNsNzAuMjQ4IDM0My40MzVDMTQ3LjMyNSA0MTcuMSAxMzYgNDM1LjIyMiAxMzYgNDU2YzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1NnM1Ni0yNS4wNzIgNTYtNTZjMC0xNS42NzQtNi40NDctMjkuODM1LTE2LjgyNC00MGgyMDkuNjQ3QzQzMC40NDcgNDI2LjE2NSA0MjQgNDQwLjMyNiA0MjQgNDU2YzAgMzAuOTI4IDI1LjA3MiA1NiA1NiA1NnM1Ni0yNS4wNzIgNTYtNTZjMC0yMi4xNzItMTIuODg4LTQxLjMzMi0zMS41NzktNTAuNDA1bDUuNTE3LTI0LjI3NmMzLjQxMy0xNS4wMTgtOC4wMDItMjkuMzE5LTIzLjQwMy0yOS4zMTlIMjE4LjExN2wtNi41NDUtMzJoMjkzLjE0NWMxMS4yMDYgMCAyMC45Mi03Ljc1NCAyMy40MDMtMTguNjgxeiI+PC9wYXRoPgoJPC9zeW1ib2w+CTxzeW1ib2wgaWQ9Imljb24tdGFncyIgdmlld2JveD0iMCAwIDY0MCA1MTIiPgoJCTxwYXRoIGQ9Ik00OTcuOTQxIDIyNS45NDFMMjg2LjA1OSAxNC4wNTlBNDggNDggMCAwIDAgMjUyLjExOCAwSDQ4QzIxLjQ5IDAgMCAyMS40OSAwIDQ4djIwNC4xMThhNDggNDggMCAwIDAgMTQuMDU5IDMzLjk0MWwyMTEuODgyIDIxMS44ODJjMTguNzQ0IDE4Ljc0NSA0OS4xMzYgMTguNzQ2IDY3Ljg4MiAwbDIwNC4xMTgtMjA0LjExOGMxOC43NDUtMTguNzQ1IDE4Ljc0NS00OS4xMzcgMC02Ny44ODJ6TTExMiAxNjBjLTI2LjUxIDAtNDgtMjEuNDktNDgtNDhzMjEuNDktNDggNDgtNDggNDggMjEuNDkgNDggNDgtMjEuNDkgNDgtNDggNDh6bTUxMy45NDEgMTMzLjgyM0w0MjEuODIzIDQ5Ny45NDFjLTE4Ljc0NSAxOC43NDUtNDkuMTM3IDE4Ljc0NS02Ny44ODIgMGwtLjM2LS4zNkw1MjcuNjQgMzIzLjUyMmMxNi45OTktMTYuOTk5IDI2LjM2LTM5LjYgMjYuMzYtNjMuNjRzLTkuMzYyLTQ2LjY0MS0yNi4zNi02My42NEwzMzEuMzk3IDBoNDguNzIxYTQ4IDQ4IDAgMCAxIDMzLjk0MSAxNC4wNTlsMjExLjg4MiAyMTEuODgyYzE4Ljc0NSAxOC43NDUgMTguNzQ1IDQ5LjEzNyAwIDY3Ljg4MnoiPjwvcGF0aD4KCTwvc3ltYm9sPgk8c3ltYm9sIGlkPSJpY29uLXRvb2xzIiB2aWV3Ym94PSIwIDAgNTEyIDUxMiI+CgkJPHBhdGggZD0iTTUwMS4xIDM5NS43TDM4NCAyNzguNmMtMjMuMS0yMy4xLTU3LjYtMjcuNi04NS40LTEzLjlMMTkyIDE1OC4xVjk2TDY0IDAgMCA2NGw5NiAxMjhoNjIuMWwxMDYuNiAxMDYuNmMtMTMuNiAyNy44LTkuMiA2Mi4zIDEzLjkgODUuNGwxMTcuMSAxMTcuMWMxNC42IDE0LjYgMzguMiAxNC42IDUyLjcgMGw1Mi43LTUyLjdjMTQuNS0xNC42IDE0LjUtMzguMiAwLTUyLjd6TTMzMS43IDIyNWMyOC4zIDAgNTQuOSAxMSA3NC45IDMxbDE5LjQgMTkuNGMxNS44LTYuOSAzMC44LTE2LjUgNDMuOC0yOS41IDM3LjEtMzcuMSA0OS43LTg5LjMgMzcuOS0xMzYuNy0yLjItOS0xMy41LTEyLjEtMjAuMS01LjVsLTc0LjQgNzQuNC02Ny45LTExLjNMMzM0IDk4LjlsNzQuNC03NC40YzYuNi02LjYgMy40LTE3LjktNS43LTIwLjItNDcuNC0xMS43LTk5LjYuOS0xMzYuNiAzNy45LTI4LjUgMjguNS00MS45IDY2LjEtNDEuMiAxMDMuNmw4Mi4xIDgyLjFjOC4xLTEuOSAxNi41LTIuOSAyNC43LTIuOXptLTEwMy45IDgybC01Ni43LTU2LjdMMTguNyA0MDIuOGMtMjUgMjUtMjUgNjUuNSAwIDkwLjVzNjUuNSAyNSA5MC41IDBsMTIzLjYtMTIzLjZjLTcuNi0xOS45LTkuOS00MS42LTUtNjIuN3pNNjQgNDcyYy0xMy4yIDAtMjQtMTAuOC0yNC0yNCAwLTEzLjMgMTAuNy0yNCAyNC0yNHMyNCAxMC43IDI0IDI0YzAgMTMuMi0xMC43IDI0LTI0IDI0eiI+PC9wYXRoPgoJPC9zeW1ib2w+CTxzeW1ib2wgaWQ9Imljb24taGFuZC1ob2xkaW5nLXVzZCIgdmlld2JveD0iMCAwIDU3NiA1MTIiPgoJCTxwYXRoIGQ9Ik0yNzEuMDYsMTQ0LjNsNTQuMjcsMTQuM2E4LjU5LDguNTksMCwwLDEsNi42Myw4LjFjMCw0LjYtNC4wOSw4LjQtOS4xMiw4LjRoLTM1LjZhMzAsMzAsMCwwLDEtMTEuMTktMi4yYy01LjI0LTIuMi0xMS4yOC0xLjctMTUuMywybC0xOSwxNy41YTExLjY4LDExLjY4LDAsMCwwLTIuMjUsMi42NiwxMS40MiwxMS40MiwwLDAsMCwzLjg4LDE1Ljc0LDgzLjc3LDgzLjc3LDAsMCwwLDM0LjUxLDExLjVWMjQwYzAsOC44LDcuODMsMTYsMTcuMzcsMTZoMTcuMzdjOS41NSwwLDE3LjM4LTcuMiwxNy4zOC0xNlYyMjIuNGMzMi45My0zLjYsNTcuODQtMzEsNTMuNS02My0zLjE1LTIzLTIyLjQ2LTQxLjMtNDYuNTYtNDcuN0wyODIuNjgsOTcuNGE4LjU5LDguNTksMCwwLDEtNi42My04LjFjMC00LjYsNC4wOS04LjQsOS4xMi04LjRoMzUuNkEzMCwzMCwwLDAsMSwzMzIsODMuMWM1LjIzLDIuMiwxMS4yOCwxLjcsMTUuMy0ybDE5LTE3LjVBMTEuMzEsMTEuMzEsMCwwLDAsMzY4LjQ3LDYxYTExLjQzLDExLjQzLDAsMCwwLTMuODQtMTUuNzgsODMuODIsODMuODIsMCwwLDAtMzQuNTItMTEuNVYxNmMwLTguOC03LjgyLTE2LTE3LjM3LTE2SDI5NS4zN0MyODUuODIsMCwyNzgsNy4yLDI3OCwxNlYzMy42Yy0zMi44OSwzLjYtNTcuODUsMzEtNTMuNTEsNjNDMjI3LjYzLDExOS42LDI0NywxMzcuOSwyNzEuMDYsMTQ0LjNaTTU2NS4yNywzMjguMWMtMTEuOC0xMC43LTMwLjItMTAtNDIuNiwwTDQzMC4yNyw0MDJhNjMuNjQsNjMuNjQsMCwwLDEtNDAsMTRIMjcyYTE2LDE2LDAsMCwxLDAtMzJoNzguMjljMTUuOSwwLDMwLjcxLTEwLjksMzMuMjUtMjYuNmEzMS4yLDMxLjIsMCwwLDAsLjQ2LTUuNDZBMzIsMzIsMCwwLDAsMzUyLDMyMEgxOTJhMTE3LjY2LDExNy42NiwwLDAsMC03NC4xLDI2LjI5TDcxLjQsMzg0SDE2QTE2LDE2LDAsMCwwLDAsNDAwdjk2YTE2LDE2LDAsMCwwLDE2LDE2SDM3Mi43N2E2NCw2NCwwLDAsMCw0MC0xNEw1NjQsMzc3YTMyLDMyLDAsMCwwLDEuMjgtNDguOVoiPjwvcGF0aD4KCTwvc3ltYm9sPgk8c3ltYm9sIGlkPSJpY29uLXVzZXItZnJpZW5kcyIgdmlld2JveD0iMCAwIDY0MCA1MTIiPgoJCTxwYXRoIGQ9Ik0xOTIgMjU2YzYxLjkgMCAxMTItNTAuMSAxMTItMTEyUzI1My45IDMyIDE5MiAzMiA4MCA4Mi4xIDgwIDE0NHM1MC4xIDExMiAxMTIgMTEyem03Ni44IDMyaC04LjNjLTIwLjggMTAtNDMuOSAxNi02OC41IDE2cy00Ny42LTYtNjguNS0xNmgtOC4zQzUxLjYgMjg4IDAgMzM5LjYgMCA0MDMuMlY0MzJjMCAyNi41IDIxLjUgNDggNDggNDhoMjg4YzI2LjUgMCA0OC0yMS41IDQ4LTQ4di0yOC44YzAtNjMuNi01MS42LTExNS4yLTExNS4yLTExNS4yek00ODAgMjU2YzUzIDAgOTYtNDMgOTYtOTZzLTQzLTk2LTk2LTk2LTk2IDQzLTk2IDk2IDQzIDk2IDk2IDk2em00OCAzMmgtMy44Yy0xMy45IDQuOC0yOC42IDgtNDQuMiA4cy0zMC4zLTMuMi00NC4yLThINDMyYy0yMC40IDAtMzkuMiA1LjktNTUuNyAxNS40IDI0LjQgMjYuMyAzOS43IDYxLjIgMzkuNyA5OS44djM4LjRjMCAyLjItLjUgNC4zLS42IDYuNEg1OTJjMjYuNSAwIDQ4LTIxLjUgNDgtNDggMC02MS45LTUwLjEtMTEyLTExMi0xMTJ6Ij48L3BhdGg+Cgk8L3N5bWJvbD4JPHN5bWJvbCBpZD0iaWNvbi1uZXdzcGFwZXIiIHZpZXdib3g9IjAgMCA1NzYgNTEyIj4KCQk8cGF0aCBkPSJNNTUyIDY0SDg4Yy0xMy4yNTUgMC0yNCAxMC43NDUtMjQgMjR2OEgyNGMtMTMuMjU1IDAtMjQgMTAuNzQ1LTI0IDI0djI3MmMwIDMwLjkyOCAyNS4wNzIgNTYgNTYgNTZoNDcyYzI2LjUxIDAgNDgtMjEuNDkgNDgtNDhWODhjMC0xMy4yNTUtMTAuNzQ1LTI0LTI0LTI0ek01NiA0MDBhOCA4IDAgMCAxLTgtOFYxNDRoMTZ2MjQ4YTggOCAwIDAgMS04IDh6bTIzNi0xNkgxNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LThjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY4YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6bTIwOCAwSDM0OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtOGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE1MmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjhjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnptLTIwOC05NkgxNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LThjMC02LjYyNyA1LjM3My0xMiAxMi0xMmgxNTJjNi42MjcgMCAxMiA1LjM3MyAxMiAxMnY4YzAgNi42MjctNS4zNzMgMTItMTIgMTJ6bTIwOCAwSDM0OGMtNi42MjcgMC0xMi01LjM3My0xMi0xMnYtOGMwLTYuNjI3IDUuMzczLTEyIDEyLTEyaDE1MmM2LjYyNyAwIDEyIDUuMzczIDEyIDEydjhjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnptMC05NkgxNDBjLTYuNjI3IDAtMTItNS4zNzMtMTItMTJ2LTQwYzAtNi42MjcgNS4zNzMtMTIgMTItMTJoMzYwYzYuNjI3IDAgMTIgNS4zNzMgMTIgMTJ2NDBjMCA2LjYyNy01LjM3MyAxMi0xMiAxMnoiPjwvcGF0aD4KCTwvc3ltYm9sPgoJCQk8L3N2Zz4KCgkJCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpc01vYmlsZSIgbmFtZT0iaXNNb2JpbGUiIHZhbHVlPSIxIj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlNpdGVzX1BhZ2VfR2VuZXJhbF9NZW51X0JUTiIgdmFsdWU9Ik1lbnUgZMOpcm91bGFudCI+CgkJCQkJCQk8ZGl2IGlkPSJhbGVydE1zZ0NvbnRhaW5lciIgY2xhc3M9Ii1wIC0tcyAtLWZzMSBzdGljay10b3AiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMwMDJjNWY7Ij4KCQk8ZGl2IGNsYXNzPSJhbGVydFRhYmxlV3JhcHBlciBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJCQkJPGEgaHJlZj0iP3BhdGg9c21zOjgxOTk3NTY4NjA\/Ym9keT1Cb25qb3VyJTIwaidhaW1lcmFpcyUyMGF2b2lyJTIwZGVzJTIwaW5mb3JtYXRpb25zJTIwc3VyJTIwdW4lMjB2JUMzJUE5aGljdWxlLiIgY2xhc3M9InR4dC1jZW50ZXIgc2hyaW5rLWdyb3ciPgoJCQk8ZGl2IGlkPSJhbGVydE1zZ0NvbnRlbnQiIGNsYXNzPSJ0eHQtY2VudGVyIHNocmluay1ncm93Ij4KCQkqKiBDb250YWN0ZXogbm90cmUgw6lxdWlwZSBkZXMgdmVudGVzOiAgU01TIDI0LzcgMS04MTktOTc1LTY4NjAKCTwvZGl2PgoJPC9hPgoJCQk8c3BhbiByb2xlPSJidXR0b24iIGNsYXNzPSJjbG9zZSBmYSBmYS10aW1lcy1jaXJjbGUiIGFyaWEtbGFiZWw9IkZlcm1lciI+PC9zcGFuPgoJCTwvZGl2PgoJPC9kaXY+CgoJCgkJCTxoZWFkZXIgY2xhc3M9Im1vYmlsZS1oZWFkZXIgZmxleC1ib3ggZmxleC1iZXR3ZWVuIGFsaWduLWNlbnRlciAtLWZzMiB0aGluIiBoaWRkZW49IjEiPgoJCQkJCgkJCTxib3gtbGMgY2xhc3M9ImJ1cmdlci1tZW51LWNvbnRhaW5lciAtcGgiPgoJCQkJPGxhYmVsIGZvcj0iYm1fdG9nZ2xlIj48L2xhYmVsPgoJCQkJPGlucHV0IGlkPSJibV90b2dnbGUiIHR5cGU9ImNoZWNrYm94IiBoaWRkZW4+CgkJCQk8ZGl2IGlkPSJidXJnZXItbWVudS1idXR0b24iIGNsYXNzPSJzdGFjay1sYyBidXJnZXItbWVudS1idXR0b24gLS1zLTIiPgoJCQkJCTxzcGFuIGNsYXNzPSJidXJnZXJfdG9wIj48L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImJ1cmdlcl9taWRkbGUiPjwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iYnVyZ2VyX2JvdHRvbSI+PC9zcGFuPgoJCQkJPC9kaXY+CgoJCQkJPGFzaWRlIGNsYXNzPSJidXJnZXItbmF2Ij4KCQkJCQkJCQk8bmF2PgoJCQkJPHVsPgoJCQkJCQkJCQk8bGkgY2xhc3M9IiIgaHJlZj0iP3BhdGg9Ij4KCQkJCQkKCQkJCQk8YSBjbGFzcz0iVVNFRCAgIG1lbnUtaXRlbSBmbGV4LWJveCIgaHJlZj0iP3BhdGg9L2ludmVudGFpcmUuaHRtbCIgdGFyZ2V0PSJfdG9wIiBvbmNsaWNrPSIiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNhciI+PC91c2U+PC9zdmc+CgkJCQkJCTxzcGFuIGNsYXNzPSJzaHJpbmstZ3JvdyBza2VsZXRvbi10eHQiPkludmVudGFpcmU8L3NwYW4+CgkJCQkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Im1lbnVFeHBhbmQgLXAgLS1zLTMiIGFyaWEtbGFiZWw9Ik1lbnUgZMOpcm91bGFudCI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1kb3duIj48L3VzZT48L3N2Zz4KCQkJCQk8L3NwYW4+CgkJCQkJPC9hPgoJCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3VibWVudUl0ZW1Db250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KCQkJCQkJPHN0YWNrLWxjIGlkPSJpdGVtX1VTRUQiIGNsYXNzPSItLXMtOSI+CgkJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBVU0VEX05FV0lOViIgaHJlZj0iP3BhdGg9L25ldWZzL2ludmVudGFpcmUvcmVjaGVyY2hlLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPlbDqWhpY3VsZXMgbmV1ZnM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBHUF80YmZiNmJjMjNiMjgxNGNkIiBocmVmPSI\/cGF0aD0vb2NjYXNpb24tY2VydGlmaWUuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+UXUnZXN0LWNlIHF1ZSBsJ29jY2FzaW9uIGNlcnRpZmnDqWU\/PC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgVVNFRF9DRVJUX0NBUlMiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9jZXJ0aWZpZXMuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+VsOpaGljdWxlcyBkJ29jY2FzaW9uIGNlcnRpZmnDqXM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBVU0VEX0NBUlMiIGhyZWY9Ij9wYXRoPS9vY2Nhc2lvbi9yZWNoZXJjaGUuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+VsOpaGljdWxlcyBkJ29jY2FzaW9uPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgVVNFRF9BTExJTlYiIGhyZWY9Ij9wYXRoPS9pbnZlbnRhaXJlLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPlZvaXIgdG91cyBsZXMgdsOpaGljdWxlczwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgoJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCTwvZGl2PgoJCQkJPC9saT4KCgkJCQkKCQkJCTxsaSBjbGFzcz0iIj4KCQkJCQkKCQkJCQk8YSBjbGFzcz0iTkVXICAgbWVudS1pdGVtIGZsZXgtYm94IiBocmVmPSI\/cGF0aD0vbmV1ZnMvbm91dmVhdS5odG1sIiB0YXJnZXQ9Il90b3AiIG9uY2xpY2s9IiI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tc3RlZXJpbmctd2hlZWwiPjwvdXNlPjwvc3ZnPgoJCQkJCQk8c3BhbiBjbGFzcz0ic2hyaW5rLWdyb3cgc2tlbGV0b24tdHh0Ij5TYWxsZSBkJ2V4cG9zaXRpb248L3NwYW4+CgkJCQkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Im1lbnVFeHBhbmQgLXAgLS1zLTMiIGFyaWEtbGFiZWw9Ik1lbnUgZMOpcm91bGFudCI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1kb3duIj48L3VzZT48L3N2Zz4KCQkJCQk8L3NwYW4+CgkJCQkJPC9hPgoJCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3VibWVudUl0ZW1Db250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KCQkJCQkJPHN0YWNrLWxjIGlkPSJpdGVtX05FVyIgY2xhc3M9Ii0tcy05Ij4KCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IE5FV19MSU5FVVAiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPlZvaXIgbGEgZ2FtbWU8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBORVdfUEhFViIgaHJlZj0iP3BhdGg9L25ldWZzL1BIRVYuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+SHlicmlkZXMgcmVjaGFyZ2VhYmxlczwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IE5FV19TVVYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9WVVMuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+TXVsdGlzZWdtZW50cyAvIFZVUzwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IE5FV19TRURBTiIgaHJlZj0iP3BhdGg9L25ldWZzL2F1dG9zLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkNvbXBhY3RlcyAvIEJlcmxpbmVzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgTkVXX0hZQlJJRCIgaHJlZj0iP3BhdGg9L25ldWZzL0h5YnJpZGVzLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkh5YnJpZGVzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgTkVXX0VMRUNUUklDIiBocmVmPSI\/cGF0aD0vbmV1ZnMvZWxlY3RyaXF1ZS5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj7DiWxlY3RyaXF1ZXM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBORVdfVFJVQ0siIGhyZWY9Ij9wYXRoPS9uZXVmcy9jYW1pb25zLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkNhbWlvbnM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSA5ODVjNTA4Ny1iN2M3LTg0NWYtOWIwOC0xIiBocmVmPSI\/cGF0aD0vTm91dmVhdV9Lb25hXzIwMjQuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+S29uYSAyMDI0PC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CgkJCQkJCTwvc3RhY2stbGM+CgkJCQkJPC9kaXY+CgkJCQk8L2xpPgoKCQkJCQoJCQkJPGxpIGNsYXNzPSIiPgoJCQkJCQoJCQkJCTxhIGNsYXNzPSJUT09MUyAgIG1lbnUtaXRlbSBmbGV4LWJveCIgaHJlZj0iP3BhdGg9L2NvbmZpZ3VyYXRpb24tZXQtcHJpeC9jb25maWd1cmF0aW9uLmh0bWwiIHRhcmdldD0iX3RvcCIgb25jbGljaz0iIj4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1zaG9wcGluZy1jYXJ0Ij48L3VzZT48L3N2Zz4KCQkJCQkJPHNwYW4gY2xhc3M9InNocmluay1ncm93IHNrZWxldG9uLXR4dCI+T3V0aWxzIGQnYWNoYXQ8L3NwYW4+CgkJCQkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Im1lbnVFeHBhbmQgLXAgLS1zLTMiIGFyaWEtbGFiZWw9Ik1lbnUgZMOpcm91bGFudCI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1kb3duIj48L3VzZT48L3N2Zz4KCQkJCQk8L3NwYW4+CgkJCQkJPC9hPgoJCQkJCQkJCQkJPGRpdiBjbGFzcz0ic3VibWVudUl0ZW1Db250YWluZXIiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KCQkJCQkJPHN0YWNrLWxjIGlkPSJpdGVtX1RPT0xTIiBjbGFzcz0iLS1zLTkiPgoJCQkJCQkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgQ0xJQ0tUT0JVWSIgaHJlZj0iaHR0cHM6Ly9wb2lyaWVyLnNob3AuaHl1bmRhaWNhbmFkYS5jb20vIiB0YXJnZXQ9Il9ibGFuayIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5NYWdhc2luYWdlIGVuIGxpZ25lPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgQk5QIiBocmVmPSI\/cGF0aD0vY29uZmlndXJhdGlvbi1ldC1wcml4L2NvbmZpZ3VyYXRpb24uaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+Q29uZmlndXJhdGlvbiBldCBwcml4PC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgVEVTVERSViIgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2Vzc2Fpcy1yb3V0aWVyLW5ldWYuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+UsOpc2VydmVyIHVuIGVzc2FpIHJvdXRpZXI8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBRVU9URSIgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL3ByaXgtbmV1Zi5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5EZW1hbmRlciB1biBkZXZpczwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IFRSQURFSU4iIGhyZWY9Ij9wYXRoPS9kZW1hbmRlcy92ZWhpY3VsZS1lY2hhbmdlLW9jY2FzaW9uLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkRlbWFuZGUgZGUgdmFsZXVyIGQnw6ljaGFuZ2U8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBCUk9DSFVSRSIgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2Jyb2NodXJlcy5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5Ccm9jaHVyZXM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4KCQkJCQkJPC9zdGFjay1sYz4KCQkJCQk8L2Rpdj4KCQkJCTwvbGk+CgoJCQkJCgkJCQk8bGkgY2xhc3M9IiI+CgkJCQkJCgkJCQkJPGEgY2xhc3M9Ik9GRkVSUyAgIG1lbnUtaXRlbSBmbGV4LWJveCIgaHJlZj0iP3BhdGg9L3Byb21vdGlvbnMuaHRtbCIgdGFyZ2V0PSJfdG9wIiBvbmNsaWNrPSIiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLXRhZ3MiPjwvdXNlPjwvc3ZnPgoJCQkJCQk8c3BhbiBjbGFzcz0ic2hyaW5rLWdyb3cgc2tlbGV0b24tdHh0IiBkYXRhLW1lbnUtdHJhbnNsYXRlPSJPRkZFUlMiPk9mZnJlcyBzcMOpY2lhbGVzPC9zcGFuPgoJCQkJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSJtZW51RXhwYW5kIC1wIC0tcy0zIiBhcmlhLWxhYmVsPSJNZW51IGTDqXJvdWxhbnQiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tZG93biI+PC91c2U+PC9zdmc+CgkJCQkJPC9zcGFuPgoJCQkJCTwvYT4KCQkJCQkJCQkJCTxkaXYgY2xhc3M9InN1Ym1lbnVJdGVtQ29udGFpbmVyIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CgkJCQkJCTxzdGFjay1sYyBpZD0iaXRlbV9PRkZFUlMiIGNsYXNzPSItLXMtOSI+CgkJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBQUk9NT19NQU5VRkFDVFVSRVIiIGhyZWY9Ij9wYXRoPS9wcm9tb3Rpb25zLmh0bWwjbWFudWZhY3R1cmVyIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5JbmNpdGF0aWZzIEh5dW5kYWk8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBQUk9NT19TRVJWSUNFIiBocmVmPSI\/cGF0aD0vcHJvbW90aW9ucy5odG1sI3NlcnZpY2UiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPlByb21vdGlvbnMgZGUgc2VydmljZTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgoJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCTwvZGl2PgoJCQkJPC9saT4KCgkJCQkKCQkJCTxsaSBjbGFzcz0iIj4KCQkJCQkKCQkJCQk8YSBjbGFzcz0iU0VSVklDRSAgIG1lbnUtaXRlbSBmbGV4LWJveCIgaHJlZj0iP3BhdGg9L3NlcnZpY2VzLWh5dW5kYWkuaHRtbCIgdGFyZ2V0PSJfdG9wIiBvbmNsaWNrPSIiPgoJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLXRvb2xzIj48L3VzZT48L3N2Zz4KCQkJCQkJPHNwYW4gY2xhc3M9InNocmluay1ncm93IHNrZWxldG9uLXR4dCI+U2VydmljZTwvc3Bhbj4KCQkJCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0ibWVudUV4cGFuZCAtcCAtLXMtMyIgYXJpYS1sYWJlbD0iTWVudSBkw6lyb3VsYW50Ij4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLWRvd24iPjwvdXNlPjwvc3ZnPgoJCQkJCTwvc3Bhbj4KCQkJCQk8L2E+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzdWJtZW51SXRlbUNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgoJCQkJCQk8c3RhY2stbGMgaWQ9Iml0ZW1fU0VSVklDRSIgY2xhc3M9Ii0tcy05Ij4KCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IEFQUE9JTlRNRU5UIiBocmVmPSI\/cGF0aD0vZGVtYW5kZXMvcmVuZGV6LXZvdXMtYXUtc2VydmljZS5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5QcmVuZHJlIHJlbmRlei12b3VzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgR1BfMmRjMzIyMWZiODZlY2NjZSIgaHJlZj0iP3BhdGg9L2xvY2FsaXNhdGV1ci1kZS1wbmV1cy5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5Mb2NhbGlzYXRldXIgZGUgcG5ldXM8L3NwYW4+CgkJCQkJCQkJPHNwYW4gcm9sZT0iYnV0dG9uIiB0YWJpbmRleD0iMCIgY2xhc3M9Ii1wIC0tcy01Ij4KCQkJCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLXJpZ2h0Ij48L3VzZT48L3N2Zz4KCQkJCQkJCQk8L3NwYW4+CgkJCQkJCQk8L2E+CgkJCQkJCTwvc3Bhbj4JCQkJCQk8c3BhbiBjbGFzcz0iLW0wIj4KCQkJCQkJCTxhIGNsYXNzPSJzdWJtZW51LWl0ZW0gZmxleC1ib3ggZmxleC1iZXR3ZWVuIC1idCAtLXMtNSBHUF8yZDYyZjJiMjYzOGY0MzRiIiBocmVmPSI\/cGF0aD0vZW50cmV0aWVucy1yZWNvbW1hbmRlcy5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5DYWxlbmRyaWVycyBkJ2VudHJldGllbjwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IEdQX2I4M2M5YmI3NWYxYWNlOCIgaHJlZj0iP3BhdGg9L2Fzc2lzdGFuY2Utcm91dGllcmUtaHl1bmRhaS5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5Bc3Npc3RhbmNlIFJvdXRpw6hyZTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IEdQXzU1Y2U3ODQwYzM0YzdkOCIgaHJlZj0iP3BhdGg9L2dhcmFudGllLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkdhcmFudGllIGV0IHByb3RlY3Rpb25zIHByb2xvbmfDqWVzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgU1ZfUFJPTU8iIGhyZWY9Ij9wYXRoPS9wcm9tb3Rpb25zLmh0bWwjc2VydmljZSIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+UHJvbW90aW9ucyBkZSBzZXJ2aWNlPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgZTQxOWMxYmYtOWFkMS1jYmU3LWQyMDQtZCIgaHJlZj0iaHR0cHM6Ly9waWVjZXMucG9pcmllcmh5dW5kYWkuY2EvIiB0YXJnZXQ9Il9ibGFuayIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5Db21tYW5kZSBkZSBwacOoY2VzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgR1BfMWJiNzlmNDJiZjliZjlhNSIgaHJlZj0iaHR0cHM6Ly93d3cuaHl1bmRhaWNhbmFkYS5jb20vZnIvb3duZXJzLXNlY3Rpb24vcmVjYWxscyIgdGFyZ2V0PSJfYmxhbmsiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+VsOpcmlmaWNhdGlvbiBkZSByYXBwZWwgSHl1bmRhaTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgoJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCTwvZGl2PgoJCQkJPC9saT4KCgkJCQkKCQkJCTxsaSBjbGFzcz0iIj4KCQkJCQkKCQkJCQk8YSBjbGFzcz0iRklOQU5DRSAgIG1lbnUtaXRlbSBmbGV4LWJveCIgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2ZpbmFuY2VtZW50Lmh0bWwiIHRhcmdldD0iX3RvcCIgb25jbGljaz0iIj4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1oYW5kLWhvbGRpbmctdXNkIj48L3VzZT48L3N2Zz4KCQkJCQkJPHNwYW4gY2xhc3M9InNocmluay1ncm93IHNrZWxldG9uLXR4dCI+RmluYW5jZW1lbnQgLyBMb2NhdGlvbjwvc3Bhbj4KCQkJCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0ibWVudUV4cGFuZCAtcCAtLXMtMyIgYXJpYS1sYWJlbD0iTWVudSBkw6lyb3VsYW50Ij4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLWRvd24iPjwvdXNlPjwvc3ZnPgoJCQkJCTwvc3Bhbj4KCQkJCQk8L2E+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzdWJtZW51SXRlbUNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgoJCQkJCQk8c3RhY2stbGMgaWQ9Iml0ZW1fRklOQU5DRSIgY2xhc3M9Ii0tcy05Ij4KCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IENSRURJVCIgaHJlZj0iP3BhdGg9L2RlbWFuZGVzL2ZpbmFuY2VtZW50Lmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkRlbWFuZGUgZGUgY3LDqWRpdDwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IFBBWV9FU1QiIGhyZWY9Ij9wYXRoPS9pbnZlbnRhaXJlL2NhbGN1bGF0cmljZS1wcmV0LWF1dG8uaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+Q2FsY3VsYXRldXIgZGUgcGFpZW1lbnRzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgMjBmNjM4NzEtMzFjMy02NTI1LTk3YjktYyIgaHJlZj0iP3BhdGg9L3ByZXF1YWxpZmljYXRpb24taW5zdGFudGFuZWUuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+UHLDqXF1YWxpZmljYXRpb24gaW5zdGFudGFuw6llPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CgkJCQkJCTwvc3RhY2stbGM+CgkJCQkJPC9kaXY+CgkJCQk8L2xpPgoKCQkJCQoJCQkJPGxpIGNsYXNzPSIiPgoJCQkJCQoJCQkJCTxhIGNsYXNzPSJURUFNICAgbWVudS1pdGVtIGZsZXgtYm94IiBocmVmPSI\/cGF0aD0vY29udGFjdGV6bm91cy5odG1sIiB0YXJnZXQ9Il90b3AiIG9uY2xpY2s9IiI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tdXNlci1mcmllbmRzIj48L3VzZT48L3N2Zz4KCQkJCQkJPHNwYW4gY2xhc3M9InNocmluay1ncm93IHNrZWxldG9uLXR4dCI+UXVpIHNvbW1lcy1ub3VzPzwvc3Bhbj4KCQkJCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0ibWVudUV4cGFuZCAtcCAtLXMtMyIgYXJpYS1sYWJlbD0iTWVudSBkw6lyb3VsYW50Ij4KCQkJCQkJCQkJPHN2ZyBjbGFzcz0iaWNvbiI+PHVzZSB4bGluazpocmVmPSIjaWNvbi1jaGV2cm9uLWRvd24iPjwvdXNlPjwvc3ZnPgoJCQkJCTwvc3Bhbj4KCQkJCQk8L2E+CgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJzdWJtZW51SXRlbUNvbnRhaW5lciIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgoJCQkJCQk8c3RhY2stbGMgaWQ9Iml0ZW1fVEVBTSIgY2xhc3M9Ii0tcy05Ij4KCQkJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IE9VUlRFQU0iIGhyZWY9Ij9wYXRoPS9lcXVpcGUuaHRtbCIgdGFyZ2V0PSIiIG9uY2xpY2s9IiI+CgkJCQkJCQkJPHNwYW4gY2xhc3M9Ii1waCI+Tm90cmUgw6lxdWlwZTwvc3Bhbj4KCQkJCQkJCQk8c3BhbiByb2xlPSJidXR0b24iIHRhYmluZGV4PSIwIiBjbGFzcz0iLXAgLS1zLTUiPgoJCQkJCQkJCQkJCQk8c3ZnIGNsYXNzPSJpY29uIj48dXNlIHhsaW5rOmhyZWY9IiNpY29uLWNoZXZyb24tcmlnaHQiPjwvdXNlPjwvc3ZnPgoJCQkJCQkJCTwvc3Bhbj4KCQkJCQkJCTwvYT4KCQkJCQkJPC9zcGFuPgkJCQkJCTxzcGFuIGNsYXNzPSItbTAiPgoJCQkJCQkJPGEgY2xhc3M9InN1Ym1lbnUtaXRlbSBmbGV4LWJveCBmbGV4LWJldHdlZW4gLWJ0IC0tcy01IENPTlRBQ1QiIGhyZWY9Ij9wYXRoPS9jb250YWN0ZXpub3VzLmh0bWwiIHRhcmdldD0iIiBvbmNsaWNrPSIiPgoJCQkJCQkJCTxzcGFuIGNsYXNzPSItcGgiPkNvbnRhY3Rlei1ub3VzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CQkJCQkJPHNwYW4gY2xhc3M9Ii1tMCI+CgkJCQkJCQk8YSBjbGFzcz0ic3VibWVudS1pdGVtIGZsZXgtYm94IGZsZXgtYmV0d2VlbiAtYnQgLS1zLTUgTkVXUyIgaHJlZj0iP3BhdGg9L25vdXZlbGxlcy5odG1sIiB0YXJnZXQ9IiIgb25jbGljaz0iIj4KCQkJCQkJCQk8c3BhbiBjbGFzcz0iLXBoIj5Ob3V2ZWxsZXMgZXQgw6l2w6luZW1lbnRzPC9zcGFuPgoJCQkJCQkJCTxzcGFuIHJvbGU9ImJ1dHRvbiIgdGFiaW5kZXg9IjAiIGNsYXNzPSItcCAtLXMtNSI+CgkJCQkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tY2hldnJvbi1yaWdodCI+PC91c2U+PC9zdmc+CgkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJPC9hPgoJCQkJCQk8L3NwYW4+CgkJCQkJCTwvc3RhY2stbGM+CgkJCQkJPC9kaXY+CgkJCQk8L2xpPgoKCQkJCQoJCQkJPGxpIGNsYXNzPSJtZW51LWdyb3VwIj4KCQkJCQkKCQkJCQk8YSBjbGFzcz0iTkVXUyAgIG1lbnUtaXRlbSBmbGV4LWJveCIgaHJlZj0iP3BhdGg9L25vdXZlbGxlcy5odG1sIiB0YXJnZXQ9Il90b3AiIG9uY2xpY2s9IiI+CgkJCQkJCQkJCTxzdmcgY2xhc3M9Imljb24iPjx1c2UgeGxpbms6aHJlZj0iI2ljb24tbmV3c3BhcGVyIj48L3VzZT48L3N2Zz4KCQkJCQkJPHNwYW4gY2xhc3M9InNocmluay1ncm93IHNrZWxldG9uLXR4dCI+Tm91dmVsbGVzPC9zcGFuPgoJCQkJCQkKCQkJCQk8L2E+CgkJCQkJCgkJCQk8L2xpPgoKCQkJCQoKCQkJCTwvdWw+CgkJCTwvbmF2PgoJCQkJPC9hc2lkZT4KCQkJPC9ib3gtbGM+CgoKCQkJPHN0YWNrLWxjIGNsYXNzPSJsb2dvLWFjdGlvbiBzaHJpbmstZ3JvdyBhbGlnbi1jZW50ZXIgZmxleC1ldmVubHkiPgoJCQkJPGEgY2xhc3M9ImxvZ28iIGhyZWY9Ij9wYXRoPS8iIGl0ZW1wcm9wPSJ1cmwiPgoJCQkJCTxpbWcgYWx0PSJMb2dvIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1zY29kZXJlZj0iNTE5NzgtVCIgc3JjPSJodHRwczovL3BvaXJpZXJoeXVuZGFpLmNhLy9pbWFnZXMvTG9nb01vYmlsZS9oeXVuZGFpLW1vYmlsZS1sb2dvLXJnYi1mci5wbmciIHN0eWxlPSJ3aWR0aDogOThweDsgaGVpZ2h0OiAzMHB4OyIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQkJCQkJPHNwYW4gY2xhc3M9ImhlYWRlci1kZWFsZXItbmFtZSAtbTAiPgoJCQkJUG9pcmllciBIeXVuZGFpCgkJCTwvc3Bhbj4KCQkJPC9zdGFjay1sYz4KCQkJPGRpdiBzdHlsZT0icGFkZGluZzogMCAxMHB4OyI+CgkJCQkKCQkJPC9kaXY+CgoJCQk8YSBjbGFzcz0icGhvbmUtYWN0aW9uIiB0aXRsZT0iQ29udGFjdGV6LW5vdXMiIGRhdGEtZGVwYXJ0bWVudD0iU2FsZXMiIGhyZWY9Ij9wYXRoPXRlbDo4MTklMjA4NzQtMjg4NiI+CgkJCQk8c3ZnIGNsYXNzPSIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld2JveD0iMCAwIDUxMiA1MTIiPjwhLS0gRm9udCBBd2Vzb21lIEZyZWUgNS4xNS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgKEljb25zOiBDQyBCWSA0LjAsIEZvbnRzOiBTSUwgT0ZMIDEuMSwgQ29kZTogTUlUIExpY2Vuc2UpIC0tPjxwYXRoIGQ9Ik00OTcuMzkgMzYxLjhsLTExMi00OGEyNCAyNCAwIDAgMC0yOCA2LjlsLTQ5LjYgNjAuNkEzNzAuNjYgMzcwLjY2IDAgMCAxIDEzMC42IDIwNC4xMWw2MC42LTQ5LjZhMjMuOTQgMjMuOTQgMCAwIDAgNi45LTI4bC00OC0xMTJBMjQuMTYgMjQuMTYgMCAwIDAgMTIyLjYuNjFsLTEwNCAyNEEyNCAyNCAwIDAgMCAwIDQ4YzAgMjU2LjUgMjA3LjkgNDY0IDQ2NCA0NjRhMjQgMjQgMCAwIDAgMjMuNC0xOC42bDI0LTEwNGEyNC4yOSAyNC4yOSAwIDAgMC0xNC4wMS0yNy42eiI+PC9wYXRoPjwvc3ZnPgoJCQkJCgkJCTwvYT4KCgkJCTwvaGVhZGVyPgkKCQkJCgkJCTxkaXYgaWQ9InByb21vVG9wQnRuIj48IS0tIHNlbV9ib29zdCBvbmx5IC0tPjwvZGl2PgoKCQkJPGRpdiBpZD0icGhvbmVOdW1iZXJEaXYiIGNsYXNzPSJyZXZlYWwtbW9kYWwiIHN0eWxlPSJ3aWR0aDo4MCU7bWFyZ2luLWxlZnQ6MHB4O2xlZnQ6NSU7cGFkZGluZzo1JTt6LWluZGV4OiA5OTk5OTk5O3Zpc2liaWxpdHk6aGlkZGVuO3RvcDogLTEwMDBweDtwb3NpdGlvbjogYWJzb2x1dGU7Ij48L2Rpdj4KCgkJCQoJCQkKCQkJPCEtLSBPTzo6NmJlODhjODAyZmI2NzVlMDU2YzYwYmMzMWVjYzY4NGIgLS0+CgkJCTwhLS1lbmQgdG9wIC0tPgoKCiAgICAgICA8ZGl2IGNsYXNzPSJzZWFyY2hib3giPgogICAgICAgICAgICAgICA8ZGl2IGlkPSJuZXdjYXJDb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBNYWluQm94TGF5ZXIiPgogICAgICAgIDwhLS0gSU5JVElBTCBMT0NBVElPTkJBUiAtLT4KICAgICAgICA8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBPdXRlckJveExheWVyIj4KICAgICAgICAJPGRpdiBjbGFzcz0iaGVhZGVySW1nIj4KPC9kaXY+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPGRpdiBpZD0idW5kZXJCYW5uZXIiPjwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIE91dGVyQm94TGF5ZXIiPgogICAgICAgIAk8ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+CiAgICAgICAgCQk8ZGl2IGNsYXNzPSJJbm5lckJveExheWVyIj48aDEgY2xhc3M9ImRlZmF1bHQgSDFfMjA4NyAiPjxkaXY+PGRpdj5IeXVuZGFpIG5ldXZlcyAyMDI1LCAyMDI2ICZhbXA7IDIwMjcgw6AgdmVuZHJlwqA8L2Rpdj48ZGl2PsOgIFZhbCBkJ09ywqA8L2Rpdj48L2Rpdj48L2gxPjwvZGl2PjxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIiPjwvZGl2PgkJCQkJCQkJPCEtLSBPUEVOIE1PQklMRSBGSUxURVIgQlVUVE9OICgnLl9fTElORV9fLicpLS0+CgkJCQk8ZGl2IGNsYXNzPSJmaWx0ZXJUb2dnbGVXcmFwcGVyIj4KCQkJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgaWQ9InRvZ2dsZUZpbHRlckJ0biIgY2xhc3M9ImZpbHRlclRvZ2dsZUJ0biI+RmlsdHJlcjwvYnV0dG9uPgoJCQkJPC9kaXY+CgkJCQk8IS0tIENMT1NFIE1PQklMRSBGSUxURVIgQlVUVE9OICgnLl9fTElORV9fLicpLS0+CgkJCQk8ZGl2IGlkPSJzaWRlU2lkZWJhckZpbHRlciIgY2xhc3M9InNpZGVTaWRlYmFyIj4KCQkJCQk8ZGl2IGNsYXNzPSJzaWRlYmFySGVhZGVyIj4KCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2RmlsdGVyQm94VGl0bGUiPgoJCQkJCQkJUmFmZmluZXogdm90cmUgcmVjaGVyY2hlIDoKCQkJCQkJPC9kaXY+CgkJCQkJCTxidXR0b24gdHlwZT0iYnV0dG9uIiBpZD0iY2xvc2VTaWRlYmFyQnRuIiBjbGFzcz0iY2xvc2VCdG4iPsOXPC9idXR0b24+CgkJCQkJPC9kaXY+CgkJCQkJPGRpdiBpZD0iZmlsdGVyQ29udGVudCI+CgkJCQkJCTxkaXYgaWQ9ImZpbHRlck1haW5Cb3giIGNsYXNzPSJJbm5lckJveExheWVyIGJsYWNrLXRleHQiPgoJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkZpbHRlck91dGVyQm94Ij4KCQkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj48ZGl2IGNsYXNzPSJkaXZGaWx0ZXJUaXRsZSI+VHlwZSBkZSBjYXJyb3NzZXJpZTwvZGl2Pjx1bCBjbGFzcz0iIj48bGkgY2xhc3M9IiI+PGlucHV0IGNsYXNzPSJmaWx0ZXJDaGVjayBjYXRlZ29yeSIgaWQ9InNob3dDbGFzc19jYXIiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0iY2FyIiBjaGVja2VkPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiBjYXRlZ29yeSIgZm9yPSJzaG93Q2xhc3NfY2FyIj5BdXRvPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0iIj48aW5wdXQgY2xhc3M9ImZpbHRlckNoZWNrIGNhdGVnb3J5IiBpZD0ic2hvd0NsYXNzX3RydWNrIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9InRydWNrIiBjaGVja2VkPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiBjYXRlZ29yeSIgZm9yPSJzaG93Q2xhc3NfdHJ1Y2siPkNhbWlvbjwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGNsYXNzPSJmaWx0ZXJDaGVjayBjYXRlZ29yeSIgaWQ9InNob3dDbGFzc19zdXYiIHR5cGU9ImNoZWNrYm94IiB2YWx1ZT0ic3V2IiBjaGVja2VkPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiBjYXRlZ29yeSIgZm9yPSJzaG93Q2xhc3Nfc3V2Ij5WVVM8L2xhYmVsPjwvbGk+PC91bD48L2Rpdj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiI+PC9kaXY+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPjxkaXYgY2xhc3M9ImRpdkZpbHRlclRpdGxlIj5Nb3RyaWNpdMOpPC9kaXY+PHVsIGNsYXNzPSIiPjxsaSBjbGFzcz0iIj48aW5wdXQgaWQ9ImZpbHRlckRyaXZlVHJhaW5DaGVjazEiIGNsYXNzPSJmaWx0ZXJDaGVjayBkcml2ZXRyYWluIiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjEiIGRhdGEtZHJpdmV0cmFpbj0iRldEIiBjaGVja2VkPjxsYWJlbCBmb3I9ImZpbHRlckRyaXZlVHJhaW5DaGVjazEiIGNsYXNzPSJmaWx0ZXJTcGFuIj5UcmFjdGlvbiBhdmFudDwvbGFiZWw+PC9saT48bGkgY2xhc3M9IiI+PGlucHV0IGlkPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2syIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZHJpdmV0cmFpbiIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIyIiBkYXRhLWRyaXZldHJhaW49IlJXRCIgY2hlY2tlZD48bGFiZWwgZm9yPSJmaWx0ZXJEcml2ZVRyYWluQ2hlY2syIiBjbGFzcz0iZmlsdGVyU3BhbiI+UHJvcHVsc2lvbiBhcnJpw6hyZTwvbGFiZWw+PC9saT48L3VsPjwvZGl2PjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIj48ZGl2IGNsYXNzPSJkaXZGaWx0ZXJUaXRsZSI+VHlwZSBkZSBjYXJidXJhbnQ8L2Rpdj48dWwgY2xhc3M9IiI+CTxsaSBjbGFzcz0iIj4KCQk8aW5wdXQgZGF0YS1lc3NlbmNlPSJlbGVjdHJpYyIgY2xhc3M9ImZpbHRlckNoZWNrIGZ1ZWx0eXBlIiBpZD0iZmlsdGVyRXNzZW5jZUNoZWNrMyIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIzIiBjaGVja2VkPgoJCTxsYWJlbCBmb3I9ImZpbHRlckVzc2VuY2VDaGVjazMiIGNsYXNzPSJmaWx0ZXJTcGFuIj4KCQkJw4lsZWN0cmlxdWUKCQk8L2xhYmVsPgoJPC9saT4JPGxpIGNsYXNzPSIiPgoJCTxpbnB1dCBkYXRhLWVzc2VuY2U9ImdhcyIgY2xhc3M9ImZpbHRlckNoZWNrIGZ1ZWx0eXBlIiBpZD0iZmlsdGVyRXNzZW5jZUNoZWNrMSIgdHlwZT0iY2hlY2tib3giIHZhbHVlPSIxIiBjaGVja2VkPgoJCTxsYWJlbCBmb3I9ImZpbHRlckVzc2VuY2VDaGVjazEiIGNsYXNzPSJmaWx0ZXJTcGFuIj4KCQkJRXNzZW5jZQoJCTwvbGFiZWw+Cgk8L2xpPgk8bGkgY2xhc3M9IiI+CgkJPGlucHV0IGRhdGEtZXNzZW5jZT0iaHlicmlkIiBjbGFzcz0iZmlsdGVyQ2hlY2sgZnVlbHR5cGUiIGlkPSJmaWx0ZXJFc3NlbmNlQ2hlY2s0IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjQiIGNoZWNrZWQ+CgkJPGxhYmVsIGZvcj0iZmlsdGVyRXNzZW5jZUNoZWNrNCIgY2xhc3M9ImZpbHRlclNwYW4iPgoJCQlIeWJyaWRlCgkJPC9sYWJlbD4KCTwvbGk+CTxsaSBjbGFzcz0iIj4KCQk8aW5wdXQgZGF0YS1lc3NlbmNlPSJwaGV2IiBjbGFzcz0iZmlsdGVyQ2hlY2sgZnVlbHR5cGUiIGlkPSJmaWx0ZXJFc3NlbmNlQ2hlY2s1IiB0eXBlPSJjaGVja2JveCIgdmFsdWU9IjUiIGNoZWNrZWQ+CgkJPGxhYmVsIGZvcj0iZmlsdGVyRXNzZW5jZUNoZWNrNSIgY2xhc3M9ImZpbHRlclNwYW4iPgoJCQlIeWJyaWRlIHJlY2hhcmdlYWJsZQoJCTwvbGFiZWw+Cgk8L2xpPjwvdWw+PC9kaXY+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPjxkaXYgY2xhc3M9ImRpdkZpbHRlclRpdGxlIj5UcmllciBwYXI8L2Rpdj48dWwgY2xhc3M9IiI+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0icmFkaW9Nb2RsZSIgY2xhc3M9InJhZGlvU29ydCIgdHlwZT0icmFkaW8iIG5hbWU9InNvcnRieSIgdmFsdWU9Im1vZGVsIiBjaGVja2VkPjxsYWJlbCBjbGFzcz0iZmlsdGVyU3BhbiIgZm9yPSJyYWRpb01vZGxlIj5Nb2TDqGxlPC9sYWJlbD48L2xpPjxsaSBjbGFzcz0iIj48aW5wdXQgaWQ9InJhZGlvUHJpY2UiIGNsYXNzPSJyYWRpb1NvcnQiIHR5cGU9InJhZGlvIiBuYW1lPSJzb3J0YnkiIHZhbHVlPSJwcmljZSI+PGxhYmVsIGNsYXNzPSJmaWx0ZXJTcGFuIiBmb3I9InJhZGlvUHJpY2UiPlByaXg8L2xhYmVsPjwvbGk+PGxpIGNsYXNzPSIiPjxpbnB1dCBpZD0icmFkaW9Db25zbyIgY2xhc3M9InJhZGlvU29ydCIgdHlwZT0icmFkaW8iIG5hbWU9InNvcnRieSIgdmFsdWU9ImNvbnNvIj48bGFiZWwgY2xhc3M9ImZpbHRlclNwYW4iIGZvcj0icmFkaW9Db25zbyI+TC8xMDBrbTwvbGFiZWw+PC9saT48L3VsPjwvZGl2PgkJCQkKCQkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQkJCQkJCQkJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdlByaWNlUmFuZ2VTbGlkZXIiIGlkPSJwcmljZVJhbmdlU2xpZGVyRmlsdGVyQ29udGFpbmVyIj4KCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkZpbHRlclRpdGxlIj4KCQkJCQlGb3VyY2hldHRlIGRlIHByaXgKCQkJCTwvZGl2PgoJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgcmFuZ2Utc2xpZGVyLXByaWNlcyI+CgkJCQkJPHNwYW4gY2xhc3M9InByaWNlLW1pbiBmb3JtYXQtcHJpY2UiPjwvc3Bhbj7CoMKgw6DCoMKgPHNwYW4gY2xhc3M9InByaWNlLW1heCBmb3JtYXQtcHJpY2UiPjwvc3Bhbj4KCQkJCTwvZGl2PgoJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIiPgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEgcmFuZ2Utc2xpZGVyLWxlZnQiPk1pbjwvZGl2PgoJCQkJCTxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjkgcmFuZ2Utc2xpZGVyIiBhdHRyLXByaWNlLW1pbj0iMjM1OTkiIGF0dHItcHJpY2UtbWF4PSI4MTE5OCI+PC9kaXY+CgkJCQkJPGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMSByYW5nZS1zbGlkZXItcmlnaHQiPk1heDwvZGl2PgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCTwvZGl2PgoJCQkJCQkJCTwvZGl2PgoJCQkJCQkJPC9kaXY+CgkJCQkJCTwvZGl2PgoJCQkJCTwvZGl2PgoJCQkJPC9kaXY+PCEtLSBPUEVOIENBVEVHT1JJRVNCT1hXUkFQUEVSICgyMTMxKS0tPjxkaXYgY2xhc3M9IklubmVyQm94TGF5ZXIgZGl2Q2F0ZWdvcmllc0JveFdyYXBwZXIiPjwhLS0gT1BFTiBDQVRFR09SWUJPWFdSQVBQRVIgKDIxOTQpIC0tPjxkaXYgaWQ9ImNsYXNzY2FyX2NvbnRhaW5lciIgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhdGVnb3J5Qm94V3JhcHBlciIgc3RhdGU9Im9wZW4iIG5idmlzaWJsZT0iMSI+PGgyIGNsYXNzPSJkZWZhdWx0IGljb24taGVhZGluZyBmbGV4LWJveCBhbGlnbi1jZW50ZXIiPgoJPHNwYW4gY2xhc3M9ImZhIGZhLWNoZXZyb24tcmlnaHQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L3NwYW4+Cgk8Ym94LWxjIGNsYXNzPSItcHYwIj4KCQk8ZGl2IGNsYXNzPSJtYWluVGV4dCAtYm9sZCI+QXV0b3MgbmV1dmVzIEh5dW5kYWkgMjAyNSAmYW1wOyAyMDI2PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgVmFsIGQnT3I8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX2NhciI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfMSI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUwMDwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmEtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IkVsYW50cmEgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FbGFudHJhIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSJzdHJpa2UtcHJpY2UiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4yNiAyOTg8L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MjMgNDk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxIDkwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MjYgMjk4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+PCEtLSBPUEVOIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI3NyktLT48ZGl2IGNsYXNzPSJkaXZOZXdDYXJQcm9tb1ByaWNlIj5lbiByYWJhaXMgw6AgPHNwYW4gY2xhc3M9IiIgc3R5bGU9ImNvbG9yOiAjMDAyYzVmOyI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjI1IDc5ODwvc3Bhbj48L3NwYW4+PC9kaXY+PCEtLSBDTE9TRSBORVcgQ0FSIFBST01PIFBSSUNFICgyODQpLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IkVsYW50cmEiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxMjUxLDQ4MTI1Miw0ODEyNTMsNDgxMjU0LDQ4MTI1NSw0ODEyNTYiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmEtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBFbGFudHJhIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9ImxpdmVsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9FbGFudHJhLzIwMjYvNDgxMjU2L1doaXRlL3Byb2ZpbGUud2VicCIgc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9FbGFudHJhLzIwMjYvNDgxMjU2L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0ODEyNTEsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBFbGFudHJhIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLUVsYW50cmEtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2Nhcl8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmEtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IkVsYW50cmEgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FbGFudHJhIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4yNCA1OTk8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyMiA1OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxIDkwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzI0IDU5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJFbGFudHJhIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MjU4NCw0NjI1ODUsNDYyNTg2LDQ2MjU4Nyw0NjI1ODgsNDYyNTg5IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgRWxhbnRyYSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgRWxhbnRyYSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYS8yMDI1LzQ2MjU4OS9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYS8yMDI1LzQ2MjU4OS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDYyNTg0LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgRWxhbnRyYSAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1FbGFudHJhLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfMyI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUwMDwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIE4gMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktRWxhbnRyYV9OLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJFbGFudHJhIE4gMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FbGFudHJhIE4gMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQzIDc0ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0MCA5NDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0MyA3NDgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDMgMjQ4PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iRWxhbnRyYSBOIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDI5Myw0ODAyOTQsNDgwMjk1LDQ4MDI5NiIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEVsYW50cmEgTiAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX04tMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBFbGFudHJhIE4gMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0VsYW50cmFfTi8yMDI2LzQ4MDI5Ni9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYV9OLzIwMjYvNDgwMjk2L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0ODAyOTMsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBFbGFudHJhIE4gMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktRWxhbnRyYV9OLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfNCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgRWxhbnRyYSBOIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmFfTi0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iRWxhbnRyYSBOIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+RWxhbnRyYSBOIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MiAxOTk8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs0MCAxOTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxIDkwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQyIDE5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJFbGFudHJhIE4iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYyNzAwLDQ2MjcwMSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEVsYW50cmEgTiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX04tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBFbGFudHJhIE4gMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGl2ZWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0VsYW50cmFfTi8yMDI1LzQ2MjcwMS9XaGl0ZS9wcm9maWxlLndlYnAiIHNyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYV9OLzIwMjUvNDYyNzAxL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0NjI3MDAsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBFbGFudHJhIE4gMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktRWxhbnRyYV9OLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9jYXJfNSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgU29uYXRhIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNvbmF0YS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU29uYXRhIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U29uYXRhIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOSAwOTg8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM2IDA5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7Nzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM5IDA5OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJTb25hdGEiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgwMTM1LDQ4MDEzNCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFNvbmF0YSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Tb25hdGEtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBTb25hdGEgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1NvbmF0YS8yMDI2LzQ4MDEzNC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDgwMTM1LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgU29uYXRhIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVNvbmF0YS0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfY2FyXzYiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFNvbmF0YSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Tb25hdGEtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlNvbmF0YSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlNvbmF0YSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzUgMjk5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MzMgMDk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNSAyOTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU29uYXRhIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NDA4NCw0NjQwODYsNDY0MDg1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgU29uYXRhIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNvbmF0YS0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFNvbmF0YSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvU29uYXRhLzIwMjUvNDY0MDg1L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0NjQwODQsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBTb25hdGEgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktU29uYXRhLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIyMDIpLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE5NCkgLS0+PGRpdiBpZD0iY2xhc3NzdXZfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5WVVMgbmV1ZnMgSHl1bmRhaSAyMDI1LCAyMDI2ICZhbXA7IDIwMjc8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBWYWwgZCdPcjwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1Nfc3V2Ij4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl8xIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBLb25hIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUtvbmEtMjAyNy5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IktvbmEgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Lb25hIDIwMjc8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4yOSA3NDk8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyNyA0NDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDIwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzI5IDc0OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJLb25hIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4ODM1MSw0ODgzNTMsNDg4MzUyLDQ4ODM1NCw0ODgzNTUsNDg4MzU4LDQ4ODM1Niw0ODgzNTciIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBLb25hIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUtvbmEtMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBLb25hIDIwMjciIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9Lb25hLzIwMjcvNDg4MzU3L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0ODgzNTEsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBLb25hIDIwMjcmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLUtvbmEtMjAyNy5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBLb25hIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUtvbmEtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IktvbmEgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5Lb25hIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4yOSA4NDg8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzI2IDc0OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAyMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7Nzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzI5IDg0OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJLb25hIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ3OTI3NSw0NzkyNzcsNDc5Mjc2LDQ3OTI3OCw0NzkyNzksNDc5MjgwLDQ3OTI4MSw0NzkyODIsNDc5MjgzIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgS29uYSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Lb25hLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgS29uYSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvS29uYS8yMDI2LzQ3OTI4My9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDc5Mjc1LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgS29uYSAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1Lb25hLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfMyI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgS29uYSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Lb25hLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJLb25hIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+S29uYSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MjggNzQ5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MjYgNDQ5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAyMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyOCA3NDkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iS29uYSIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjE4ODgsNDYxODkwLDQ2MTg4OSw0NjE4OTEsNDYxODkyLDQ2MTg5Nyw0NjE4OTMsNDYxODk0LDQ2MTg5NSw0NjE4OTYiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBLb25hIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUtvbmEtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBLb25hIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9Lb25hLzIwMjUvNDYxODk2L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0NjE4ODgsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBLb25hIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLUtvbmEtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl80Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBQYWxpc2FkZSAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1QYWxpc2FkZS0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iUGFsaXNhZGUgMjAyNyI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5QYWxpc2FkZSAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTcgNjk5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NTUgMTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiA0MDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1NyA2OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iUGFsaXNhZGUiIGRhdGEteWVhcj0iMjAyNyIgZGF0YS1zdHlsZWlkcz0iNDg4NTg4LDQ4ODU4OSw0ODg1OTAsNDg4NTkxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgUGFsaXNhZGUgMjAyNyIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktUGFsaXNhZGUtMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBQYWxpc2FkZSAyMDI3IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvUGFsaXNhZGUvMjAyNy80ODg1OTEvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OjQ4ODU4OCwmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIFBhbGlzYWRlIDIwMjcmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVBhbGlzYWRlLTIwMjcuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgUGFsaXNhZGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktUGFsaXNhZGUtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlBhbGlzYWRlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+UGFsaXNhZGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU2IDk5ODwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTMgNjk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDQwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTYgOTk4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlBhbGlzYWRlIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDE4Niw0ODAxODgsNDgwMTg3IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgUGFsaXNhZGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktUGFsaXNhZGUtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBQYWxpc2FkZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvUGFsaXNhZGUvMjAyNi80ODAxODcvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OjQ4MDE4NiwmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIFBhbGlzYWRlIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVBhbGlzYWRlLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfNiI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUwMDwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBQYWxpc2FkZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1QYWxpc2FkZS0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iUGFsaXNhZGUgMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5QYWxpc2FkZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTIgOTk5PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MCA0OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDQwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzUyIDk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAwMmM1ZjsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MiA0OTk8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJQYWxpc2FkZSIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjA1NzYsNDU2MDE2LDQ1NjAxNyw0NTYwMTgsNDU2MDE5LDQ1NjAyMCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFBhbGlzYWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVBhbGlzYWRlLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgUGFsaXNhZGUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1BhbGlzYWRlLzIwMjUvNDU2MDIwL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0NjA1NzYsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBQYWxpc2FkZSAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1QYWxpc2FkZS0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzciPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MDA8L3NwYW4+PC9zcGFuPgoJPC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgU2FudGEgRmUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktU2FudGFfRmUtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlNhbnRhIEZlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+U2FudGEgRmUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUwIDM5OTwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDcgOTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAzMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs1MCAzOTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDkgODk5PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU2FudGEgRmUiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYzMjg1LDQ2MzI4Niw0NjMyODcsNDYzMjg4IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgU2FudGEgRmUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktU2FudGFfRmUtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBTYW50YSBGZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvU2FudGFfRmUvMjAyNS80NjMyODcvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OjQ2MzI4NSwmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIFNhbnRhIEZlIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVNhbnRhX0ZlLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfOCI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVHVjc29uIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbi0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iVHVjc29uIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+VHVjc29uIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOCA1OTg8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM1IDQ5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAyMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7Nzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM4IDU5OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJUdWNzb24iIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgwNTc4LDQ4MDU4MCw0ODA1NzksNDgwNTgxIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVHVjc29uIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbi0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFR1Y3NvbiAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvVHVjc29uLzIwMjYvNDgwNTc5L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0ODA1NzgsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBUdWNzb24gMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktVHVjc29uLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9zdXZfOSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVHVjc29uIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbi0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iVHVjc29uIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+VHVjc29uIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zNiA5OTk8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0nJmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDszNCA2OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsyIDIwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzM2IDk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsnPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJUdWNzb24iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxOTEzLDQ3ODIzNCw0NjE5MTQsNDc4MjM1LDQ2MTkxNSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFR1Y3NvbiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb24tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBUdWNzb24gMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1R1Y3Nvbi8yMDI1LzQ2MTkxNS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDYxOTEzLCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgVHVjc29uIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVR1Y3Nvbi0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfc3V2XzEwIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBWZW51ZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1WZW51ZS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iVmVudWUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5WZW51ZSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MjUgMDk4PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyMSA5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMjAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyNSAwOTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iVmVudWUiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgwMzAwLDQ4MDMwMSw0ODAzMDIsNDgwMzAzLDQ4MDMwNCw0ODAzMDUiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBWZW51ZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1WZW51ZS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFZlbnVlIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9WZW51ZS8yMDI2LzQ4MDMwNS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDgwMzAwLCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgVmVudWUgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktVmVudWUtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3N1dl8xMSI+CgkJCgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVmVudWUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktVmVudWUtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlZlbnVlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+VmVudWUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjIzIDU5OTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIxIDI5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MjMgNTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlZlbnVlIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MzM1Miw0NjMzNTMsNDYzMzU0LDQ2MzM1NSw0NjMzNTYsNDYzMzU3IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVmVudWUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktVmVudWUtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBWZW51ZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvVmVudWUvMjAyNS80NjMzNTcvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OjQ2MzM1MiwmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIFZlbnVlIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVZlbnVlLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIyMDIpLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE5NCkgLS0+PGRpdiBpZD0iY2xhc3N0cnVja19jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPkNhbWlvbnMgbmV1ZnMgSHl1bmRhaSAyMDI1PC9kaXY+CgkJPGRpdiBjbGFzcz0ic2Vjb25kYXJ5VGV4dCI+w6AgVmFsIGQnT3I8L2Rpdj4KCTwvYm94LWxjPgo8L2gyPjxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkNhcnNCb3hXcmFwcGVyIENMQVNTX3RydWNrIj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X3RydWNrXzEiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFNhbnRhIENydXogMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktU2FudGFfQ3J1ei0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU2FudGEgQ3J1eiAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlNhbnRhIENydXogMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ0IDI5OTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzQxIDk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgMjAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NDQgMjk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlNhbnRhIENydXoiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYzODczLDQ2Mzg3Niw0NjM4NzQsNDYzODc1IiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgU2FudGEgQ3J1eiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1TYW50YV9DcnV6LTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgU2FudGEgQ3J1eiAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvU2FudGFfQ3J1ei8yMDI1LzQ2Mzg3NC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDYzODczLCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgU2FudGEgQ3J1eiAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1TYW50YV9DcnV6LTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIyMDIpLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE5NCkgLS0+PGRpdiBpZD0iY2xhc3NoeWJyaWRfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5IeWJyaWRlcyAoU21hcnRzdHJlYW0pIG5ldXZlcyBIeXVuZGFpIDIwMjUsIDIwMjYgJmFtcDsgMjAyNzwvZGl2PgoJCTxkaXYgY2xhc3M9InNlY29uZGFyeVRleHQiPsOgIFZhbCBkJ09yPC9kaXY+Cgk8L2JveC1sYz4KPC9oMj48ZGl2IGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXJzQm94V3JhcHBlciBDTEFTU19oeWJyaWQiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzEiPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41MDA8L3NwYW4+PC9zcGFuPgoJPC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgRWxhbnRyYSBoeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUVsYW50cmFfSHlicmlkLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJFbGFudHJhIGh5YnJpZGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5FbGFudHJhIGh5YnJpZGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjM0IDc5ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszMSA5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszNCA3OTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzQgMjk4PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iRWxhbnRyYSBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDgxMjYwLDQ4MTI2MSIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEVsYW50cmEgaHlicmlkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX0h5YnJpZC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIEVsYW50cmEgaHlicmlkZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYV9IeWJyaWQvMjAyNi80ODEyNjAvV2hpdGUvcHJvZmlsZS53ZWJwIiBzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0VsYW50cmFfSHlicmlkLzIwMjYvNDgxMjYwL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0ODEyNjAsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBFbGFudHJhIGh5YnJpZGUgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktRWxhbnRyYV9IeWJyaWQtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF8yIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBFbGFudHJhIGh5YnJpZGUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktRWxhbnRyYV9IeWJyaWQtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IkVsYW50cmEgaHlicmlkZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPkVsYW50cmEgaHlicmlkZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MzMgODk4PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszMSAwOTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEgOTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDszMyA4OTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iRWxhbnRyYSBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYyNzA2LDQ2MjcwNyIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEVsYW50cmEgaHlicmlkZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1FbGFudHJhX0h5YnJpZC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIEVsYW50cmEgaHlicmlkZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsaXZlbG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvRWxhbnRyYV9IeWJyaWQvMjAyNS80NjI3MDcvV2hpdGUvcHJvZmlsZS53ZWJwIiBzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0VsYW50cmFfSHlicmlkLzIwMjUvNDYyNzA3L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0NjI3MDYsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBFbGFudHJhIGh5YnJpZGUgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktRWxhbnRyYV9IeWJyaWQtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF8zIj4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBQYWxpc2FkZSBoeWJyaWRlIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVBhbGlzYWRlX0h5YnJpZC0yMDI3Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iUGFsaXNhZGUgaHlicmlkZSAyMDI3Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlBhbGlzYWRlIGh5YnJpZGUgMjAyNzwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjY0IDM0OTwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPScmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzYxIDg0OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0iZmxleC1iZXR3ZWVuIiBzdHlsZT0ibWluLXdpZHRoOjE2MHB4OyImZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0ibWF4LXdpZHRoOjcwJTsiJmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9IiImZ3Q7CSZsdDtzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiJmd0OzIgNDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NjQgMzQ5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0Oyc+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlBhbGlzYWRlIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI3IiBkYXRhLXN0eWxlaWRzPSI0ODg2MjMsNDg4NjI0LDQ4ODYyNSw0ODg2MjYiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBQYWxpc2FkZSBoeWJyaWRlIDIwMjciIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVBhbGlzYWRlX0h5YnJpZC0yMDI3Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFBhbGlzYWRlIGh5YnJpZGUgMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1BhbGlzYWRlX0h5YnJpZC8yMDI3LzQ4ODYyNi9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDg4NjIzLCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgUGFsaXNhZGUgaHlicmlkZSAyMDI3JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1QYWxpc2FkZV9IeWJyaWQtMjAyNy5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF80Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBQYWxpc2FkZSBoeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVBhbGlzYWRlX0h5YnJpZC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iUGFsaXNhZGUgaHlicmlkZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlBhbGlzYWRlIGh5YnJpZGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYzIDc5ODwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NjAgNDk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDQwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NjMgNzk4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlBhbGlzYWRlIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODAyOTcsNDgwMjk4LDQ4MDI5OSw0ODE1MjMiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBQYWxpc2FkZSBoeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVBhbGlzYWRlX0h5YnJpZC0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFBhbGlzYWRlIGh5YnJpZGUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1BhbGlzYWRlX0h5YnJpZC8yMDI2LzQ4MTUyMy9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDgwMjk3LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgUGFsaXNhZGUgaHlicmlkZSAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1QYWxpc2FkZV9IeWJyaWQtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF81Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBTYW50YSBGZSBoeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNhbnRhX0ZlX0h5YnJpZC0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU2FudGEgRmUgaHlicmlkZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlNhbnRhIEZlIGh5YnJpZGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ2IDk5ODwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDMgNzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDMwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDYgOTk4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlNhbnRhIEZlIEh5YnJpZCIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODAxODksNDgwMTkwLDQ4MDE5MSw0ODAxOTIsNDgwMTkzIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgU2FudGEgRmUgaHlicmlkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1TYW50YV9GZV9IeWJyaWQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBTYW50YSBGZSBoeWJyaWRlIDIwMjYiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9TYW50YV9GZV9IeWJyaWQvMjAyNi80ODAxOTMvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OjQ4MDE4OSwmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIFNhbnRhIEZlIGh5YnJpZGUgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktU2FudGFfRmVfSHlicmlkLTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9oeWJyaWRfNiI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUwMDwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBTYW50YSBGZSBoeWJyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNhbnRhX0ZlX0h5YnJpZC0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU2FudGEgRmUgaHlicmlkZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlNhbnRhIEZlIGh5YnJpZGUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ1IDY5ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0MiA0OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMzAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs0NSA2OTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDUgMTk4PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iU2FudGEgRmUgSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MzI4OSw0NjMyOTAiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBTYW50YSBGZSBoeWJyaWRlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNhbnRhX0ZlX0h5YnJpZC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFNhbnRhIEZlIGh5YnJpZGUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1NhbnRhX0ZlX0h5YnJpZC8yMDI1LzQ2MzI5MC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDYzMjg5LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgU2FudGEgRmUgaHlicmlkZSAyMDI1JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1TYW50YV9GZV9IeWJyaWQtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF83Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBTb25hdGEgaHlicmlkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Tb25hdGFfSHlicmlkLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJTb25hdGEgaHlicmlkZSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlNvbmF0YSBoeWJyaWRlIDIwMjY8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOSAxOTg8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM2IDE5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7Nzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzM5IDE5OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJTb25hdGEgSHlicmlkIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDEzNiIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFNvbmF0YSBoeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVNvbmF0YV9IeWJyaWQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBTb25hdGEgaHlicmlkZSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvU29uYXRhX0h5YnJpZC8yMDI2LzQ4MDEzNi9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDgwMTM2LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgU29uYXRhIGh5YnJpZGUgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktU29uYXRhX0h5YnJpZC0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfaHlicmlkXzgiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFR1Y3NvbiBoeWJyaWRlIDIwMjYiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbl9IeWJyaWQtMjAyNi5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlR1Y3NvbiBoeWJyaWRlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+VHVjc29uIGh5YnJpZGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9IiI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjQ2IDQ5ODwvc3Bhbj48c3BhbiBjbGFzcz0ic3VwZXJTY3JpcHRTcGFuIj48L3NwYW4+PC9zcGFuPgogICAgICAgIDxpIHN0eWxlPSJjb2xvcjojMDAwO2ZvbnQtc2l6ZToyMHB4OyIgY2xhc3M9ImNhclByaWNlSW5pdGlhbFRvb2xUaXBJY29uIGZhbCBmYS1pbmZvLWNpcmNsZSBibGFja0NvbG9yQm9sZCIgZGF0YS10b29sdGlwPSImbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1BEU0Y6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDMgMzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsyIDIwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O0ZyYWlzIGQnYWRtaW5pc3RyYXRpb24mbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs3OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzEwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RvdGFsJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NDYgNDk4Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyI+PC9pPgogICAgPC9kaXY+CiAgICA8IS0tIENMT1NFIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CgkJCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW5TdG9ja0xpbmsiIGhpZGRlbj4KCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgZGF0YS10eXBlPSJpbnZkYXRhIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlR1Y3NvbiBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNiIgZGF0YS1zdHlsZWlkcz0iNDg1Njc1LDQ4MDU2Miw0ODA1NjMiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBUdWNzb24gaHlicmlkZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fSHlicmlkLTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgVHVjc29uIGh5YnJpZGUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1R1Y3Nvbl9IeWJyaWQvMjAyNi80ODA1NjMvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OjQ4NTY3NSwmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIFR1Y3NvbiBoeWJyaWRlIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVR1Y3Nvbl9IeWJyaWQtMjAyNi5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2h5YnJpZF85Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBUdWNzb24gaHlicmlkZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fSHlicmlkLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJUdWNzb24gaHlicmlkZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlR1Y3NvbiBoeWJyaWRlIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40NiA0OTg8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzQzIDM5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAyMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7Nzk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzQ2IDQ5OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJUdWNzb24gSHlicmlkIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTk0MSw0NjE5NDIiIGRhdGEtaHlicmlkPSIxIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBUdWNzb24gaHlicmlkZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fSHlicmlkLTIwMjUuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgVHVjc29uIGh5YnJpZGUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1R1Y3Nvbl9IeWJyaWQvMjAyNS80NjE5NDIvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OjQ2MTk0MSwmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIFR1Y3NvbiBoeWJyaWRlIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVR1Y3Nvbl9IeWJyaWQtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjIwMiktLT48IS0tIE9QRU4gQ0FURUdPUllCT1hXUkFQUEVSICgyMTk0KSAtLT48ZGl2IGlkPSJjbGFzc3BoZXZfY29udGFpbmVyIiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2F0ZWdvcnlCb3hXcmFwcGVyIiBzdGF0ZT0ib3BlbiIgbmJ2aXNpYmxlPSIxIj48aDIgY2xhc3M9ImRlZmF1bHQgaWNvbi1oZWFkaW5nIGZsZXgtYm94IGFsaWduLWNlbnRlciI+Cgk8c3BhbiBjbGFzcz0iZmEgZmEtY2hldnJvbi1yaWdodCIgYXJpYS1oaWRkZW49InRydWUiPjwvc3Bhbj4KCTxib3gtbGMgY2xhc3M9Ii1wdjAiPgoJCTxkaXYgY2xhc3M9Im1haW5UZXh0IC1ib2xkIj5IeWJyaWRlcyByZWNoYXJnZWFibGUgbmV1ZnMgSHl1bmRhaSAyMDI1ICZhbXA7IDIwMjY8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBWYWwgZCdPcjwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfcGhldiI+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9waGV2XzEiPgoJCQk8ZGl2IGNsYXNzPSJyZWJhdGVUYWciPgoJPHNwYW4gY2xhc3M9InJlYmF0ZVRleHQiPnJhYmFpcyBqdXNxdSfDoDwvc3Bhbj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVBbW91bnQiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40IDE4NDwvc3Bhbj48L3NwYW4+Cgk8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBUdWNzb24gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktVHVjc29uX1BsdWdfSW5fSHlicmlkLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJUdWNzb24gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5UdWNzb24gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU2IDE5ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1MyAyOTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMjAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1NiAxOTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTIgMDE0PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iVHVjc29uIFBsdWctSW4gSHlicmlkIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MDU2NCIgZGF0YS1oeWJyaWQ9IjEiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFR1Y3NvbiBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fUGx1Z19Jbl9IeWJyaWQtMjAyNi5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBUdWNzb24gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL1R1Y3Nvbl9QbHVnX0luX0h5YnJpZC8yMDI2LzQ4MDU2NC9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDgwNTY0LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgVHVjc29uIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjYmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLVR1Y3Nvbl9QbHVnX0luX0h5YnJpZC0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfcGhldl8yIj4KCQkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+Cgk8c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDM0PC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIFR1Y3NvbiBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1UdWNzb25fUGx1Z19Jbl9IeWJyaWQtMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IlR1Y3NvbiBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPlR1Y3NvbiBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTUgNzk4PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzUyIDg5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAyMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU1IDc5OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAwMmM1ZjsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj41NSAzNjQ8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJUdWNzb24gUGx1Zy1JbiBIeWJyaWQiIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDYxOTQwIiBkYXRhLWh5YnJpZD0iMSI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgVHVjc29uIGh5YnJpZGUgcmVjaGFyZ2VhYmxlIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLVR1Y3Nvbl9QbHVnX0luX0h5YnJpZC0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIFR1Y3NvbiBoeWJyaWRlIHJlY2hhcmdlYWJsZSAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvVHVjc29uX1BsdWdfSW5fSHlicmlkLzIwMjUvNDYxOTQwL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0NjE5NDAsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBUdWNzb24gaHlicmlkZSByZWNoYXJnZWFibGUgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktVHVjc29uX1BsdWdfSW5fSHlicmlkLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+PC9kaXY+PC9kaXY+PCEtLSBDTE9TRSBDQVRFR09SWUJPWFdSQVBQRVIgKDIyMDIpLS0+PCEtLSBPUEVOIENBVEVHT1JZQk9YV1JBUFBFUiAoMjE5NCkgLS0+PGRpdiBpZD0iY2xhc3NlbGVjdHJpY19jb250YWluZXIiIGNsYXNzPSJkaXZTcGFuIGRpdlNwYW4xMiBkaXZDYXRlZ29yeUJveFdyYXBwZXIiIHN0YXRlPSJvcGVuIiBuYnZpc2libGU9IjEiPjxoMiBjbGFzcz0iZGVmYXVsdCBpY29uLWhlYWRpbmcgZmxleC1ib3ggYWxpZ24tY2VudGVyIj4KCTxzcGFuIGNsYXNzPSJmYSBmYS1jaGV2cm9uLXJpZ2h0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9zcGFuPgoJPGJveC1sYyBjbGFzcz0iLXB2MCI+CgkJPGRpdiBjbGFzcz0ibWFpblRleHQgLWJvbGQiPsOJbGVjdHJpcXVlcyBuZXV2ZXMgSHl1bmRhaSAyMDI1LCAyMDI2ICZhbXA7IDIwMjc8L2Rpdj4KCQk8ZGl2IGNsYXNzPSJzZWNvbmRhcnlUZXh0Ij7DoCBWYWwgZCdPcjwvZGl2PgoJPC9ib3gtbGM+CjwvaDI+PGRpdiBjbGFzcz0iZGl2U3BhbiBkaXZTcGFuMTIgZGl2Q2Fyc0JveFdyYXBwZXIgQ0xBU1NfZWxlY3RyaWMiPgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfMSI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYgNzM5PC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iSU9OSVEgNSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPklPTklRIDUgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU4IDQ5ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1NSA0OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMzAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1OCA0OTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTEgNzU5PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iSU9OSVEgNSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0ODA0NjIsNDgwNDYzLDQ4MDQ2NCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNS0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIElPTklRIDUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0lPTklRXzUvMjAyNi80ODA0NjQvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OjQ4MDQ2MiwmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIElPTklRIDUgMjAyNiZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktSU9OSVFfNS0yMDI2Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfMiI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEgNzM5PC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNS0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iSU9OSVEgNSAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPklPTklRIDUgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU1IDk5ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1MiA5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMzAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1NSA5OTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NTQgMjU5PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iSU9OSVEgNSIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjkxNzMsNDY5MTcwLDQ2OTE3MSw0NjkxNzIiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBJT05JUSA1IDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUlPTklRXzUtMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBJT05JUSA1IDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9JT05JUV81LzIwMjUvNDY5MTcyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0NjkxNzMsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBJT05JUSA1IDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLUlPTklRXzUtMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj4JPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlT3V0ZXJCb3ggIHJlYmF0ZUJvcmRlckNvbG9yIiBpZD0iZmJ4X2VsZWN0cmljXzMiPgoJCQoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDUgTiAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV81X04tMjAyNy5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IklPTklRIDUgTiAyMDI3Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPklPTklRIDUgTiAyMDI3PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0iIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+ODAgNTk5PC9zcGFuPjxzcGFuIGNsYXNzPSJzdXBlclNjcmlwdFNwYW4iPjwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9JyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7NzggMTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSJmbGV4LWJldHdlZW4iIHN0eWxlPSJtaW4td2lkdGg6MTYwcHg7IiZndDsKCSZsdDtzcGFuIHN0eWxlPSJtYXgtd2lkdGg6NzAlOyImZ3Q7VHJhbnNwb3J0ICZhbXA7IFByw6lwYXJhdGlvbjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0iIiZndDsJJmx0O3NwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSImZ3Q7MiAzMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUYXhlIEFDOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9ImZsZXgtYmV0d2VlbiIgc3R5bGU9Im1pbi13aWR0aDoxNjBweDsiJmd0OwoJJmx0O3NwYW4gc3R5bGU9Im1heC13aWR0aDo3MCU7IiZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSIiJmd0OwkmbHQ7c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIiZndDs4MCA1OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jz48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iSU9OSVEgNSBOIiBkYXRhLXllYXI9IjIwMjciIGRhdGEtc3R5bGVpZHM9IjQ4NjQ3OSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDUgTiAyMDI3IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV81X04tMjAyNy5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBJT05JUSA1IE4gMjAyNyIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0lPTklRXzVfTi8yMDI3LzQ4NjQ3OS9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDg2NDc5LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgSU9OSVEgNSBOIDIwMjcmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLUlPTklRXzVfTi0yMDI3Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfNCI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjUgMDAwPC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDUgTiAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV81X04tMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9IklPTklRIDUgTiAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPklPTklRIDUgTiAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+ODEgMTk4PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc4IDE5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAzMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzgxIDE5OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAwMmM1ZjsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43NiAxOTg8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJJT05JUSA1IE4iIGRhdGEteWVhcj0iMjAyNSIgZGF0YS1zdHlsZWlkcz0iNDU2NDcyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgSU9OSVEgNSBOIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLUlPTklRXzVfTi0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIElPTklRIDUgTiAyMDI1IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvSU9OSVFfNV9OLzIwMjUvNDU2NDcyL1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0NTY0NzIsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBJT05JUSA1IE4gMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktSU9OSVFfNV9OLTIwMjUuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY181Ij4KCQkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+Cgk8c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+MTcgNzM5PC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDYgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNi0yMDI1Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iSU9OSVEgNiAyMDI1Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPklPTklRIDYgMjAyNTwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjU3IDk5ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1NCA5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgMzAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1NyA5OTgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDUgMjU5PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iSU9OSVEgNiIgZGF0YS15ZWFyPSIyMDI1IiBkYXRhLXN0eWxlaWRzPSI0NjI4MjgsNDYyODI5LDQ2MjgzMCIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDYgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfNi0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIElPTklRIDYgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0lPTklRXzYvMjAyNS80NjI4MzAvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9InsmcXVvdDtzdHlsZWlkJnF1b3Q7OjQ2MjgyOCwmcXVvdDt0aXRsZSZxdW90OzomcXVvdDtIeXVuZGFpIElPTklRIDYgMjAyNSZxdW90OywmcXVvdDtocmVmJnF1b3Q7OiZxdW90O1wvbmV1ZnNcL0h5dW5kYWktSU9OSVFfNi0yMDI1Lmh0bWwmcXVvdDssJnF1b3Q7bGlua3N0eWxlJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtsaW5rY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2NvbnRhaW5lcmNsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtwcm9tb3RleHQmcXVvdDs6JnF1b3Q7RFx1MDBlOWNvdXZyZXogbCdvZmZyZSZxdW90O30iPgoJPC9kaXY+Cgk8L2Rpdj4KCQkJCQoJCQk8L2Rpdj4KCQk8L2Rpdj4KCTwvZGl2Pgk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVPdXRlckJveCAgcmViYXRlQm9yZGVyQ29sb3IiIGlkPSJmYnhfZWxlY3RyaWNfNiI+CgkJCTxkaXYgY2xhc3M9InJlYmF0ZVRhZyI+Cgk8c3BhbiBjbGFzcz0icmViYXRlVGV4dCI+cmFiYWlzIGp1c3F1J8OgPC9zcGFuPgoJPHNwYW4gY2xhc3M9InJlYmF0ZUFtb3VudCI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjEgNzM5PC9zcGFuPjwvc3Bhbj4KCTwvZGl2PgoJCTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZUlubmVyQm94IiBpZD0iIj4KCQkJCgkJCTxkaXYgY2xhc3M9ImRpdkNhclRpdGxlQ29udGFpbmVyIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIElPTklRIDkgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktSU9OSVFfOS0yMDI2Lmh0bWwiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iSU9OSVEgOSAyMDI2Ij4KCQkJCQk8aDM+CgkJCQkJCTxzcGFuIGNsYXNzPSJzcGFuQ2FyTWFrZSAiPkh5dW5kYWk8L3NwYW4+PGJyPgoJCQkJCQk8c3BhbiBjbGFzcz0ibW9kZWxOYW1lIHNwYW5Nb2RlbE5hbWUiPklPTklRIDkgMjAyNjwvc3Bhbj4KCQkJCQk8L2gzPgoJCQkJPC9hPgoJCQkJICAgIDwhLS0gT1BFTiBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgogICAgPGRpdiBjbGFzcz0iZGl2TmV3Q2FyU3RhcnRQcmljZSI+CiAgICAgICAgw6AgcGFydGlyIGRlCiAgICAgICAgPHNwYW4gY2xhc3M9InN0cmlrZS1wcmljZSI+CTxzcGFuIGNsYXNzPSJmb3JtYXQtcHJpY2UiPjYzIDQ0ODwvc3Bhbj48L3NwYW4+CiAgICAgICAgPGkgc3R5bGU9ImNvbG9yOiMwMDA7Zm9udC1zaXplOjIwcHg7IiBjbGFzcz0iY2FyUHJpY2VJbml0aWFsVG9vbFRpcEljb24gZmFsIGZhLWluZm8tY2lyY2xlIGJsYWNrQ29sb3JCb2xkIiBkYXRhLXRvb2x0aXA9IiZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7UERTRjombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs1OSA5OTkmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUcmFuc3BvcnQgJmFtcDsgUHLDqXBhcmF0aW9uOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzIgNDAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7T3B0aW9ucyBpbmNsdXM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MzUwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7RnJhaXMgZCdhZG1pbmlzdHJhdGlvbiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzU5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RheGUgQUM6Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MTAwJmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VG90YWwmbHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDs2MyA0NDgmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Ij48L2k+CiAgICA8L2Rpdj4KICAgIDwhLS0gQ0xPU0UgTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT48IS0tIE9QRU4gTkVXIENBUiBQUk9NTyBQUklDRSAoMjc3KS0tPjxkaXYgY2xhc3M9ImRpdk5ld0NhclByb21vUHJpY2UiPmVuIHJhYmFpcyDDoCA8c3BhbiBjbGFzcz0iIiBzdHlsZT0iY29sb3I6ICMwMDJjNWY7Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NjEgNzA5PC9zcGFuPjwvc3Bhbj48L2Rpdj48IS0tIENMT1NFIE5FVyBDQVIgUFJPTU8gUFJJQ0UgKDI4NCktLT4KCQkJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJblN0b2NrTGluayIgaGlkZGVuPgoJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBkYXRhLXR5cGU9ImludmRhdGEiIGRhdGEtbWFrZT0iSHl1bmRhaSIgZGF0YS1tb2RlbD0iSU9OSVEgOSIgZGF0YS15ZWFyPSIyMDI2IiBkYXRhLXN0eWxlaWRzPSI0NzYwNjksNDc2MDcwLDQ3NzU2Myw0NzYwNzEsNDc2MDcyIiBkYXRhLWh5YnJpZD0iMCI+Cgk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckltYWdlQ29udGFpbmVyIGZsZXgtY2VudGVyIGFsaWduLWNlbnRlciAiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgSU9OSVEgOSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1JT05JUV85LTIwMjYuaHRtbCI+CgkJCQkJPGltZyBhbHQ9Ikh5dW5kYWkgSU9OSVEgOSAyMDI2IiBib3JkZXI9IjAiIGNsYXNzPSJsYXp5bG9hZCBvcHRhbm9uLWNhdGVnb3J5LUMwMDAxIiBkYXRhLWltZ3NyYz0iaHR0cHM6Ly9jYXJpbWFnZXMuZDJjbWVkaWEuY2EvbmV3Y2FyaW1hZ2VzL2ZyL0h5dW5kYWkvSU9OSVFfOS8yMDI2LzQ3NjA3Mi9XaGl0ZS9wcm9maWxlLndlYnAiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCQkJCTwvYT4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImRpdkNhckZvb3RlckNvbnRhaW5lciBzdGFjay1sYyAtLXMtOSI+CgkJCQkJPGRpdiBjbGFzcz0iY2FyUGF5bWVudFdyYXBwZXIiPgoJCQk8ZGl2IGNsYXNzPSJjb250ZW50LXNrZWxldG9uIGh0bWwtYmxvY2siIGRhdGEtYmxvY2s9InBheW1lbnRCbG9jayIgZGF0YS10eXBlPSJibG9jayIgZGF0YS1zb3VyY2U9InNlcnZlciIgZGF0YS1jYWxsYmFjaz0icGF5bWVudENhbGNCbG9jayI+CgkJCgk8aW5wdXQgbmFtZT0iYmxvY2stZGF0YSIgdHlwZT0iaGlkZGVuIiB2YWx1ZT0ieyZxdW90O3N0eWxlaWQmcXVvdDs6NDc2MDY5LCZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0h5dW5kYWkgSU9OSVEgOSAyMDI2JnF1b3Q7LCZxdW90O2hyZWYmcXVvdDs6JnF1b3Q7XC9uZXVmc1wvSHl1bmRhaS1JT05JUV85LTIwMjYuaHRtbCZxdW90OywmcXVvdDtsaW5rc3R5bGUmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O2xpbmtjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7Y29udGFpbmVyY2xhc3MmcXVvdDs6JnF1b3Q7JnF1b3Q7LCZxdW90O3Byb21vdGV4dCZxdW90OzomcXVvdDtEXHUwMGU5Y291dnJleiBsJ29mZnJlJnF1b3Q7fSI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY183Ij4KCQkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+Cgk8c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+OCA1ODc8L3NwYW4+PC9zcGFuPgoJPC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgS29uYSDDqWxlY3RyaXF1ZSAyMDI2IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Lb25hX0VsZWN0cmljLTIwMjYuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJLb25hIMOpbGVjdHJpcXVlIDIwMjYiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+S29uYSDDqWxlY3RyaXF1ZSAyMDI2PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDYgODk4PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzQzIDk5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAyMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzQ2IDg5OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAwMmM1ZjsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj4zOCA4MTE8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJLb25hIEVsZWN0cmljIiBkYXRhLXllYXI9IjIwMjYiIGRhdGEtc3R5bGVpZHM9IjQ4MTQ0Niw0ODE0NDcsNDgxNDQ4LDQ4MTQ0OSIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEtvbmEgw6lsZWN0cmlxdWUgMjAyNiIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktS29uYV9FbGVjdHJpYy0yMDI2Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIEtvbmEgw6lsZWN0cmlxdWUgMjAyNiIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0tvbmFfRWxlY3RyaWMvMjAyNi80ODE0NDkvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY184Ij4KCQkJPGRpdiBjbGFzcz0icmViYXRlVGFnIj4KCTxzcGFuIGNsYXNzPSJyZWJhdGVUZXh0Ij5yYWJhaXMganVzcXUnw6A8L3NwYW4+Cgk8c3BhbiBjbGFzcz0icmViYXRlQW1vdW50Ij4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NiAwODc8L3NwYW4+PC9zcGFuPgoJPC9kaXY+CgkJPGRpdiBjbGFzcz0iZGl2Q2FyU2luZ2xlSW5uZXJCb3giIGlkPSIiPgoJCQkKCQkJPGRpdiBjbGFzcz0iZGl2Q2FyVGl0bGVDb250YWluZXIiPgoJCQkJPGEgdGl0bGU9Ikh5dW5kYWkgS29uYSDDqWxlY3RyaXF1ZSAyMDI1IiBocmVmPSI\/cGF0aD0vbmV1ZnMvSHl1bmRhaS1Lb25hX0VsZWN0cmljLTIwMjUuaHRtbCIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJLb25hIMOpbGVjdHJpcXVlIDIwMjUiPgoJCQkJCTxoMz4KCQkJCQkJPHNwYW4gY2xhc3M9InNwYW5DYXJNYWtlICI+SHl1bmRhaTwvc3Bhbj48YnI+CgkJCQkJCTxzcGFuIGNsYXNzPSJtb2RlbE5hbWUgc3Bhbk1vZGVsTmFtZSI+S29uYSDDqWxlY3RyaXF1ZSAyMDI1PC9zcGFuPgoJCQkJCTwvaDM+CgkJCQk8L2E+CgkJCQkgICAgPCEtLSBPUEVOIE5FVyBDQVIgU1RBUlQgUFJJQ0UgKHtfX0xJTkVfX30pLS0+CiAgICA8ZGl2IGNsYXNzPSJkaXZOZXdDYXJTdGFydFByaWNlIj4KICAgICAgICDDoCBwYXJ0aXIgZGUKICAgICAgICA8c3BhbiBjbGFzcz0ic3RyaWtlLXByaWNlIj4JPHNwYW4gY2xhc3M9ImZvcm1hdC1wcmljZSI+NDkgMzk4PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzQ2IDQ5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAyMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzQ5IDM5OCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPjwhLS0gT1BFTiBORVcgQ0FSIFBST01PIFBSSUNFICgyNzcpLS0+PGRpdiBjbGFzcz0iZGl2TmV3Q2FyUHJvbW9QcmljZSI+ZW4gcmFiYWlzIMOgIDxzcGFuIGNsYXNzPSIiIHN0eWxlPSJjb2xvcjogIzAwMmM1ZjsiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj40MyAzMTE8L3NwYW4+PC9zcGFuPjwvZGl2PjwhLS0gQ0xPU0UgTkVXIENBUiBQUk9NTyBQUklDRSAoMjg0KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJLb25hIEVsZWN0cmljIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2MTkzMiw0NjE5MzYsNDYxOTMzLDQ2MTkzNSw0NjI2MDQsNDYyNjA2LDQ2MTkzNCw0NjI2MDUsNDYxOTM3LDQ2MjYwNyIgZGF0YS1oeWJyaWQ9IjAiPgoJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJJbWFnZUNvbnRhaW5lciBmbGV4LWNlbnRlciBhbGlnbi1jZW50ZXIgIj4KCQkJCTxhIHRpdGxlPSJIeXVuZGFpIEtvbmEgw6lsZWN0cmlxdWUgMjAyNSIgaHJlZj0iP3BhdGg9L25ldWZzL0h5dW5kYWktS29uYV9FbGVjdHJpYy0yMDI1Lmh0bWwiPgoJCQkJCTxpbWcgYWx0PSJIeXVuZGFpIEtvbmEgw6lsZWN0cmlxdWUgMjAyNSIgYm9yZGVyPSIwIiBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vY2FyaW1hZ2VzLmQyY21lZGlhLmNhL25ld2NhcmltYWdlcy9mci9IeXVuZGFpL0tvbmFfRWxlY3RyaWMvMjAyNS80NjE5MzcvV2hpdGUvcHJvZmlsZS53ZWJwIiBkYXRhLW90LWlnbm9yZSBkYXRhLWNvb2tpZWNvbnNlbnQ9Imlnbm9yZSI+CgkJCQk8L2E+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJGb290ZXJDb250YWluZXIgc3RhY2stbGMgLS1zLTkiPgoJCQkJCTxkaXYgY2xhc3M9ImNhclBheW1lbnRXcmFwcGVyIj4KCQkJPGRpdiBjbGFzcz0iY29udGVudC1za2VsZXRvbiBodG1sLWJsb2NrIiBkYXRhLWJsb2NrPSJwYXltZW50QmxvY2siIGRhdGEtdHlwZT0iYmxvY2siIGRhdGEtc291cmNlPSJzZXJ2ZXIiIGRhdGEtY2FsbGJhY2s9InBheW1lbnRDYWxjQmxvY2siPgoJCQoJPGlucHV0IG5hbWU9ImJsb2NrLWRhdGEiIHR5cGU9ImhpZGRlbiIgdmFsdWU9IiI+Cgk8L2Rpdj4KCTwvZGl2PgoJCQkJCgkJCTwvZGl2PgoJCTwvZGl2PgoJPC9kaXY+CTxkaXYgY2xhc3M9ImRpdkNhclNpbmdsZU91dGVyQm94ICByZWJhdGVCb3JkZXJDb2xvciIgaWQ9ImZieF9lbGVjdHJpY185Ij4KCQkKCQk8ZGl2IGNsYXNzPSJkaXZDYXJTaW5nbGVJbm5lckJveCIgaWQ9IiI+CgkJCQoJCQk8ZGl2IGNsYXNzPSJkaXZDYXJUaXRsZUNvbnRhaW5lciI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBORVhPIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLU5FWE8tMjAyNS5odG1sIiBkYXRhLW1ha2U9Ikh5dW5kYWkiIGRhdGEtbW9kZWw9Ik5FWE8gMjAyNSI+CgkJCQkJPGgzPgoJCQkJCQk8c3BhbiBjbGFzcz0ic3BhbkNhck1ha2UgIj5IeXVuZGFpPC9zcGFuPjxicj4KCQkJCQkJPHNwYW4gY2xhc3M9Im1vZGVsTmFtZSBzcGFuTW9kZWxOYW1lIj5ORVhPIDIwMjU8L3NwYW4+CgkJCQkJPC9oMz4KCQkJCTwvYT4KCQkJCSAgICA8IS0tIE9QRU4gTkVXIENBUiBTVEFSVCBQUklDRSAoe19fTElORV9ffSktLT4KICAgIDxkaXYgY2xhc3M9ImRpdk5ld0NhclN0YXJ0UHJpY2UiPgogICAgICAgIMOgIHBhcnRpciBkZQogICAgICAgIDxzcGFuIGNsYXNzPSIiPgk8c3BhbiBjbGFzcz0iZm9ybWF0LXByaWNlIj43NSAzOTk8L3NwYW4+PHNwYW4gY2xhc3M9InN1cGVyU2NyaXB0U3BhbiI+PC9zcGFuPjwvc3Bhbj4KICAgICAgICA8aSBzdHlsZT0iY29sb3I6IzAwMDtmb250LXNpemU6MjBweDsiIGNsYXNzPSJjYXJQcmljZUluaXRpYWxUb29sVGlwSWNvbiBmYWwgZmEtaW5mby1jaXJjbGUgYmxhY2tDb2xvckJvbGQiIGRhdGEtdG9vbHRpcD0iJmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtQRFNGOiZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0OzcyIDUwMCZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsmbHQ7cCBjbGFzcz0mcXVvdDtmbGV4LWJldHdlZW4mcXVvdDsgc3R5bGU9JnF1b3Q7bWluLXdpZHRoOjE2MHB4OyZxdW90OyZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90O21heC13aWR0aDo3MCU7JnF1b3Q7Jmd0O1RyYW5zcG9ydCAmYW1wOyBQcsOpcGFyYXRpb246Jmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7MiAyMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtGcmFpcyBkJ2FkbWluaXN0cmF0aW9uJmx0Oy9zcGFuJmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7JnF1b3Q7Jmd0OwkmbHQ7c3BhbiBjbGFzcz0mcXVvdDtmb3JtYXQtcHJpY2UmcXVvdDsmZ3Q7NTk5Jmx0Oy9zcGFuJmd0OyZsdDsvc3BhbiZndDsKJmx0Oy9wJmd0OyZsdDtwIGNsYXNzPSZxdW90O2ZsZXgtYmV0d2VlbiZxdW90OyBzdHlsZT0mcXVvdDttaW4td2lkdGg6MTYwcHg7JnF1b3Q7Jmd0OwoJJmx0O3NwYW4gc3R5bGU9JnF1b3Q7bWF4LXdpZHRoOjcwJTsmcXVvdDsmZ3Q7VGF4ZSBBQzombHQ7L3NwYW4mZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDsmcXVvdDsmZ3Q7CSZsdDtzcGFuIGNsYXNzPSZxdW90O2Zvcm1hdC1wcmljZSZxdW90OyZndDsxMDAmbHQ7L3NwYW4mZ3Q7Jmx0Oy9zcGFuJmd0OwombHQ7L3AmZ3Q7Jmx0O3AgY2xhc3M9JnF1b3Q7ZmxleC1iZXR3ZWVuJnF1b3Q7IHN0eWxlPSZxdW90O21pbi13aWR0aDoxNjBweDsmcXVvdDsmZ3Q7CgkmbHQ7c3BhbiBzdHlsZT0mcXVvdDttYXgtd2lkdGg6NzAlOyZxdW90OyZndDtUb3RhbCZsdDsvc3BhbiZndDsKCSZsdDtzcGFuIHN0eWxlPSZxdW90OyZxdW90OyZndDsJJmx0O3NwYW4gY2xhc3M9JnF1b3Q7Zm9ybWF0LXByaWNlJnF1b3Q7Jmd0Ozc1IDM5OSZsdDsvc3BhbiZndDsmbHQ7L3NwYW4mZ3Q7CiZsdDsvcCZndDsiPjwvaT4KICAgIDwvZGl2PgogICAgPCEtLSBDTE9TRSBORVcgQ0FSIFNUQVJUIFBSSUNFICh7X19MSU5FX199KS0tPgoJCQkJCTxkaXYgY2xhc3M9ImRpdkNhckluU3RvY2tMaW5rIiBoaWRkZW4+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGRhdGEtdHlwZT0iaW52ZGF0YSIgZGF0YS1tYWtlPSJIeXVuZGFpIiBkYXRhLW1vZGVsPSJORVhPIiBkYXRhLXllYXI9IjIwMjUiIGRhdGEtc3R5bGVpZHM9IjQ2NDM3Myw0NjQzNzQiIGRhdGEtaHlicmlkPSIwIj4KCTwvZGl2PgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FySW1hZ2VDb250YWluZXIgZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyICI+CgkJCQk8YSB0aXRsZT0iSHl1bmRhaSBORVhPIDIwMjUiIGhyZWY9Ij9wYXRoPS9uZXVmcy9IeXVuZGFpLU5FWE8tMjAyNS5odG1sIj4KCQkJCQk8aW1nIGFsdD0iSHl1bmRhaSBORVhPIDIwMjUiIGJvcmRlcj0iMCIgY2xhc3M9Imxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL2NhcmltYWdlcy5kMmNtZWRpYS5jYS9uZXdjYXJpbWFnZXMvZnIvSHl1bmRhaS9ORVhPLzIwMjUvNDY0Mzc0L1doaXRlL3Byb2ZpbGUud2VicCIgZGF0YS1vdC1pZ25vcmUgZGF0YS1jb29raWVjb25zZW50PSJpZ25vcmUiPgoJCQkJPC9hPgoJCQk8L2Rpdj4KCQkJPGRpdiBjbGFzcz0iZGl2Q2FyRm9vdGVyQ29udGFpbmVyIHN0YWNrLWxjIC0tcy05Ij4KCQkJCQk8ZGl2IGNsYXNzPSJjYXJQYXltZW50V3JhcHBlciI+CgkJCTxkaXYgY2xhc3M9ImNvbnRlbnQtc2tlbGV0b24gaHRtbC1ibG9jayIgZGF0YS1ibG9jaz0icGF5bWVudEJsb2NrIiBkYXRhLXR5cGU9ImJsb2NrIiBkYXRhLXNvdXJjZT0ic2VydmVyIiBkYXRhLWNhbGxiYWNrPSJwYXltZW50Q2FsY0Jsb2NrIj4KCQkKCTxpbnB1dCBuYW1lPSJibG9jay1kYXRhIiB0eXBlPSJoaWRkZW4iIHZhbHVlPSJ7JnF1b3Q7c3R5bGVpZCZxdW90Ozo0NjQzNzMsJnF1b3Q7dGl0bGUmcXVvdDs6JnF1b3Q7SHl1bmRhaSBORVhPIDIwMjUmcXVvdDssJnF1b3Q7aHJlZiZxdW90OzomcXVvdDtcL25ldWZzXC9IeXVuZGFpLU5FWE8tMjAyNS5odG1sJnF1b3Q7LCZxdW90O2xpbmtzdHlsZSZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7bGlua2NsYXNzJnF1b3Q7OiZxdW90OyZxdW90OywmcXVvdDtjb250YWluZXJjbGFzcyZxdW90OzomcXVvdDsmcXVvdDssJnF1b3Q7cHJvbW90ZXh0JnF1b3Q7OiZxdW90O0RcdTAwZTljb3V2cmV6IGwnb2ZmcmUmcXVvdDt9Ij4KCTwvZGl2PgoJPC9kaXY+CgkJCQkKCQkJPC9kaXY+CgkJPC9kaXY+Cgk8L2Rpdj48L2Rpdj48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JZQk9YV1JBUFBFUiAoMjIwMiktLT48L2Rpdj48IS0tIENMT1NFIENBVEVHT1JJRVNCT1hXUkFQUEVSICgyMjA5KS0tPjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJIeXVuZGFpIiBpZD0iaXNCcmFuZFBhZ2UiPgogICAgICAgIAk8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9ImRpdlNwYW4gZGl2U3BhbjEyIGRpdkRpc2NsYWltZXJCbG9jayI+CiAgICAgICAgPGRpdiBjbGFzcz0iZGl2RGlzY2xhaW1lckJsb2NrQ29udGVudCI+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImRpdkRpc2NsYWltZXJCbG9ja1RpdGxlIj4KICAgICAgICAgICAgICAgIENsYXVzZSBkZSBub24tcmVzcG9uc2FiaWxpdMOpCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJkaXZEaXNjbGFpbWVyQmxvY2tUZXh0Ij4KICAgICAgICAgICAgICAgIExlIG1vbnRhbnQgaW5kaXF1w6kgcmVwcsOpc2VudGUgdW5lIGVzdGltYXRpb24gZHUgbW9udGFudCBxdWUgdm91cyBwb3V2ZXogdm91cyBhdHRlbmRyZSDDoCBwYXllciBlbiBkb2xsYXJzIGNhbmFkaWVucy4gTGVzIHRheGVzIHNvbnQgZXhjbHVlcyAoc2F1ZiBpbmRpY2F0aW9uIGNvbnRyYWlyZSkuIExlcyBwaG90b3MgcmVwcsOpc2VudGVudCBsZSBtb2TDqGxlIG9mZmVydCBtYWlzIHBldXZlbnQgdmFyaWVyIGzDqWfDqHJlbWVudCBlbiBjb3VsZXVyLCBvcHRpb25zLCBvdSBjYXJhY3TDqXJpc3RpcXVlcy4gQmllbiBxdWUgbm91cyBub3VzIGVmZm9yY2lvbnMgZGUgZ2FyYW50aXIgbCdleGFjdGl0dWRlIGRlcyBpbmZvcm1hdGlvbnMgc3VyIGNlIHNpdGUgV2ViLCBub3VzIHZvdXMgcmVjb21tYW5kb25zIGRlIG5vdXMgY29udGFjdGVyIGRpcmVjdGVtZW50IHBvdXIgdsOpcmlmaWVyIGxlcyBkw6l0YWlscyBldCBvYnRlbmlyIGRlcyBpbmZvcm1hdGlvbnMgc3VwcGzDqW1lbnRhaXJlcyBzdXIgbGUgdsOpaGljdWxlLCB5IGNvbXByaXMgbGEgY29uZmlybWF0aW9uIGRlcyBwcml4LCBkZXMgY291bGV1cnMsIGRlcyBmaW5pdGlvbnMsIGRlcyBvcHRpb25zIGV0IGF1dHJlcyBzcMOpY2lmaWNhdGlvbnMuCiAgICAgICAgICAgIDwvZGl2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+CgkJCTwvZGl2PgoKICAgICAgIAkKCgk8ZGl2IGNsYXNzPSJ1aS1sb2FkZXItYmFja2dyb3VuZCI+PGltZyBjbGFzcz0idWktbG9hZGVyLWJhY2tncm91bmQtZ2lmIGxhenlsb2FkIG9wdGFub24tY2F0ZWdvcnktQzAwMDEiIGRhdGEtaW1nc3JjPSJodHRwczovL3BvaXJpZXJoeXVuZGFpLmNhLy9pbWFnZXMvYWpheC1sb2FkZXIyLmdpZiIgYWx0PSJhamF4IGxvYWRlcjIiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj48L2Rpdj4KCgkJPGRpdiBpZD0iYXNQb3BVcCIgY2xhc3M9InJldmVhbC1tb2RhbCBzbWFsbCIgc3R5bGU9ImJveC1zaGFkb3c6IG5vbmU7YmFja2dyb3VuZDojZmZmZmZmO2NvbG9yOiMwMDA7d2lkdGg6ODUlO21heC13aWR0aDo2MDBweDtwYWRkaW5nOjIwcHg7Ij4KCQk8ZGl2IGNsYXNzPSJ0ZXh0LXVwcGVyY2FzZSIgc3R5bGU9ImhlaWdodDo0MHB4O3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZTogMS43NXJlbTttYXJnaW4tYm90dG9tOjEwcHg7Ij4KCQkJU1ZQIGNvbmZpcm1lcgoJCTwvZGl2PgoKCQk8Zm9ybSBtZXRob2Q9InBvc3QiPgoJCQkJPHN0YWNrLWxjPgoJCTxib3gtbGMgY2xhc3M9InZpVGV4dCI+CgkJCTxkaXYgY2xhc3M9InBvcHVwLXBvbGljeSI+QWZpbiBkZSByZXNwZWN0ZXIgbGEgTG9pIENhbmFkaWVubmUgQW50aS1Qb3VycmllbCBldCBsYSBMb2kgMjUgZHUgUXXDqWJlYywgbm91cyB2b3VzIHByaW9ucyBkZSBiaWVuIHZvdWxvaXIgY29uZmlybWVyIHNpIHZvdXMgc291aGFpdGV6IHJlY2V2b2lyIG5vcyBjb21tdW5pY2F0aW9ucyBmdXR1cmVzIGNvbmNlcm5hbnQgbGVzIHJhYmFpcywgbGVzIHByb21vdGlvbnMsIGxlcyBvZmZyZXMgZXQgbGVzIHZlbnRlcyBwcml2w6llcy4gVmV1aWxsZXogbm90ZXIgcXVlIHZvdXMgcG91dmV6IG1vZGlmaWVyIG91IHJldGlyZXIgY2UgY29uc2VudGVtZW50IMOgIHRvdXQgbW9tZW50LiBFbiBjbGlxdWFudCBzdXIgT3VpLCB2b3VzIGNvbmZpcm1leiBhdm9pciBsdSBldCBhY2NlcHTDqSBub3RyZSA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iP3BhdGg9L3BvbGl0aXF1ZS1kZS1jb25maWRlbnRpYWxpdGUuaHRtbCI+cG9saXRpcXVlIGRlIGNvbmZpZGVudGlhbGl0w6k8L2E+LjwvZGl2PgoJCTwvYm94LWxjPgoJCTxib3gtbGMgY2xhc3M9ImRlYWxlckNvbnNlbnQiPgoJCQk8ZGl2IGNsYXNzPSJmbGV4LWJldHdlZW4iPgoJCQkJPGRpdiBjbGFzcz0iLXc1MHAiPlBvaXJpZXIgSHl1bmRhaTwvZGl2PgoJCQkJPGRpdiBjbGFzcz0iLXc1MHAiPgoJCQkJCTxsYWJlbD4KCQkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iMSIgbmFtZT0iY29uc2VudCIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCQkJT3VpCgkJCQkJPC9sYWJlbD4KCQkJCQk8bGFiZWw+CgkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9Ii0xIiBuYW1lPSJjb25zZW50IiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQlOb24KCQkJCQk8L2xhYmVsPgoJCQkJPC9kaXY+CgkJCTwvZGl2PgoJCQk8ZGl2IGNsYXNzPSJjb25zZW50IGRpc2NsYWltZXIiIHN0eWxlPSJ3aWR0aDogNTAlOyIgZGF0YS10b29sdGlwPSdFbiBmb3Vybmlzc2FudCBtZXMgaW5mb3JtYXRpb25zIHBlcnNvbm5lbGxlcywgamUgY29uc2VucyDDoCBsZXVyIHV0aWxpc2F0aW9uIGV0IGxldXIgZGl2dWxnYXRpb24gY29uZm9ybcOpbWVudCDDoCBsYSBQb2xpdGlxdWUgZGUgY29uZmlkZW50aWFsaXTDqSBkZSBQb2lyaWVyIEh5dW5kYWkuIEplIGNvbmZpcm1lIGF2b2lyIGx1IGxhICZsdDthIGhyZWY9Ii9wb2xpdGlxdWUtZGUtY29uZmlkZW50aWFsaXRlLmh0bWwiJmd0O1BvbGl0aXF1ZSBkZSBjb25maWRlbnRpYWxpdMOpJmx0Oy9hJmd0Oy4gSmUgY29tcHJlbmRzIHF1ZSBQb2lyaWVyIEh5dW5kYWkgcGV1dCBwYXJ0YWdlciBtZXMgaW5mb3JtYXRpb25zIHBlcnNvbm5lbGxlcyBhdmVjIGRlcyB0aWVycyBkYW5zIGxlIGJ1dCBkZSBnw6lyZXIgbWEgcmVsYXRpb24gYXZlYyBldXgsIHRlbHMgcXVlIG5vdHJlIGZvdXJuaXNzZXVyIGRlIGdlc3Rpb24gZGUgbGEgcmVsYXRpb24gY2xpZW50IChDUk0pLiBKZSBjb21wcmVuZHMgcXVlIGNlcnRhaW5zIGRlIGNlcyBmb3Vybmlzc2V1cnMgcGV1dmVudCBzdG9ja2VyIG1lcyBpbmZvcm1hdGlvbnMgcGVyc29ubmVsbGVzIHN1ciBkZXMgc2VydmV1cnMgZXQgZGVzIGJhc2VzIGRlIGRvbm7DqWVzIHNpdHXDqXMgZW4gZGVob3JzIGRlIG1hIHByb3ZpbmNlLiBKZSBjb21wcmVuZHMgw6lnYWxlbWVudCBxdWUgamUgcGV1eCByZXRpcmVyIG1vbiBjb25zZW50ZW1lbnQgZXQgbWUgZMOpc2Fib25uZXIgZGUgbGEgcsOpY2VwdGlvbiBkZSBjb21tdW5pY2F0aW9ucyBmdXR1cmVzIGRlIFBvaXJpZXIgSHl1bmRhaSDDoCB0b3V0IG1vbWVudC4gTGUgY29uc2VudGVtZW50IMOgIGxhIHLDqWNlcHRpb24gZGUgY29tbXVuaWNhdGlvbnMgw6lsZWN0cm9uaXF1ZXMgZXN0IHNvbGxpY2l0w6kgcGFyIFBvaXJpZXIgSHl1bmRhaS4nPkNsYXVzZSBkZSBub24tcmVzcG9uc2FiaWxpdMOpPC9kaXY+CgkJPC9ib3gtbGM+CgoJCQoKCTwvc3RhY2stbGM+Cgk8ZGl2IGNsYXNzPSItcHQxMCIgc3R5bGU9ImZvbnQtc2l6ZTogMTBweDt0ZXh0LWFsaWduOiBjZW50ZXI7Y29sb3I6IHZhcigtLWRhcmstZ3JheSk7Ij5JTVBPUlRBTlQ6IFZvdXMgcG91dmV6IGZhY2lsZW1lbnQgcmV0aXJlciB2b3RyZSBjb25zZW50ZW1lbnQgZW4gdG91dCB0ZW1wcyE8L2Rpdj4KCgkJCTxkaXYgY2xhc3M9ImZsZXgtYm94IGZsZXgtZXZlbmx5IiBzdHlsZT0ibWFyZ2luLXRvcDogMzVweDsiPgoJCQkJPGlucHV0IHR5cGU9ImJ1dHRvbiIgaWQ9ImNvbnNlbnRTdWJtaXQiIGNsYXNzPSIgYnRuLWRlZmF1bHQgIiB2YWx1ZT0iU291bWV0dHJlIj4KCQkJPC9kaXY+CgkJPC9mb3JtPgoKCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdENvbnNlbnRQb3AiIHZhbHVlPSIiPgoJPC9kaXY+CgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InB1cmNoYXNlX2ludGVudF9hbnN3ZXIiIHZhbHVlPSJQR0p5SUM4K1RHVWdZMnhwWlc1MElHRWdiQ2RwYm5SbGJuUnBiMjRnWkNkaFkyaGxkR1Z5SUhOdmJpQndjbTlqYUdGcGJpQjI2V2hwWTNWc1pTQThZajRsZEdsdFpXWnlZVzFsSlR3dllqNDhZbklnTHo0PSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icHVyY2hhc2VfaW50ZW50X25vX2Fuc3dlciIgdmFsdWU9ImMyRnVjeUJrWVhSbElIQnk2V05wYzJVPSI+Cgk8ZGl2IGNsYXNzPSJyZXZlYWwtbW9kYWwiIGlkPSJhc1B1cmNoYXNlSW50ZW50Ij4KCSAgPGZvcm0gbWV0aG9kPSJwb3N0Ij4KCSAgICA8c3Ryb25nIGNsYXNzPSJhc1BJVGl0bGUiPgoJICAgICAgUXVlbHF1ZXMgcHLDqWNpc2lvbnMKCSAgICA8L3N0cm9uZz4KCSAgICA8b2wgY2xhc3M9InN0ZXBzIj4KCSAgICA8bGkgaWQ9IkFMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk8iIGNsYXNzPSJoaWRkZW4iPgoJCQkJCTxkaXYgc3R5bGU9ImhlaWdodDoxMDVweDsiPgoJCQkJCQk8c3Ryb25nIGNsYXNzPSJ2aVRleHQiPgoJCQkJCQkJTm91cyBwZXJtZXR0ZXotdm91cyBkZSBwYXJ0YWdlciB2b3MgaW5mb3JtYXRpb25zIHBlcnNvbm5lbGxlcyBhdmVjIGxlcyBpbnN0aXR1dGlvbnMgZmluYW5jacOocmVzIHBvdXIgdm90cmUgYnVyZWF1IGRlIGNyw6lkaXQ\/CgkJCQkJCTwvc3Ryb25nPgoJCQkJCQk8ZGl2IGNsYXNzPSJjbHIiPjwvZGl2PgoKCQkJCQkJPGRpdiBjbGFzcz0iYXN5ZXNubyBhc3llcyI+CgkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJ5ZXMiIG5hbWU9InNoYXJlX3BlcnNvbmFsIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQkJCTxsYWJlbD5PdWk8L2xhYmVsPgoJCQkJCQk8L2Rpdj4KCQkJCQkJPGRpdiBjbGFzcz0iYXN5ZXNubyBhc25vIj4KCQkJCQkJCTxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9Im5vIiBuYW1lPSJzaGFyZV9wZXJzb25hbCIgY2xhc3M9InJlcVJhZGlvIj4KCQkJCQkJCQk8bGFiZWw+Tm9uPC9sYWJlbD4KCQkJCQkJPC9kaXY+CgkJCQkJCTxkaXYgc3R5bGU9ImRpc3BsYXk6bm9uZTtjb2xvcjpyZWQ7cGFkZGluZy10b3A6NHB4O2NsZWFyOiBib3RoOyIgaWQ9IkFMTE9XX1NIQVJFX1BFUlNPTkFMX0lORk9fVEVYVF9FUlJPUiI+Vm90cmUgY29uc2VudGVtZW50IGVzdCByZXF1aXMgcG91ciBjb21wbMOpdGVyIHZvdHJlIGRlbWFuZGUgZGUgY3LDqWRpdCE8L2Rpdj4KCQkJCQk8L2Rpdj4KCQkJCTwvbGk+CgoJICAgICAgPGxpIGNsYXNzPSJzdGVwSW50ZW50IGhpZGRlbiI+CgkgICAgICAgIDxzdHJvbmcgY2xhc3M9InZpVGV4dCI+CgkJCQkJUXVhbmQgcHLDqXZveWV6LXZvdXMgYWNoZXRlciB1biB2w6loaWN1bGU\/CgkgICAgICAgIDwvc3Ryb25nPgoJICAgICAgICA8dWwgY2xhc3M9InZpT3B0aW9ucyI+CgkgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9IkQnaWNpIDMwIGpvdXJzIiBuYW1lPSJwdXJjaGFzZV9pbnRlbnQiIGNsYXNzPSJyZXFSYWRpbyI+PGxhYmVsPiBEJ2ljaSAzMCBqb3VyczwvbGFiZWw+PC9saT4KCSAgICAgICAgICA8bGk+PGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iRCdpY2kgMyBtb2lzIiBuYW1lPSJwdXJjaGFzZV9pbnRlbnQiIGNsYXNzPSJyZXFSYWRpbyI+PGxhYmVsPiBEJ2ljaSAzIG1vaXM8L2xhYmVsPjwvbGk+CgkgICAgICAgICAgPGxpPjxpbnB1dCB0eXBlPSJyYWRpbyIgdmFsdWU9IkQnaWNpIDYgbW9pcyIgbmFtZT0icHVyY2hhc2VfaW50ZW50IiBjbGFzcz0icmVxUmFkaW8iPjxsYWJlbD4gRCdpY2kgNiBtb2lzPC9sYWJlbD48L2xpPgoJICAgICAgICAgIDxsaT48aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSJEJ2ljaSBwbHVzIGRlIDYgbW9pcyIgbmFtZT0icHVyY2hhc2VfaW50ZW50IiBjbGFzcz0icmVxUmFkaW8iPjxsYWJlbD4gRCdpY2kgcGx1cyBkZSA2IG1vaXM8L2xhYmVsPjwvbGk+CgkgICAgICAgIDwvdWw+CgkgICAgICAgIDxiciBjbGFzcz0iY2xyIj4KCSAgICAgIDwvbGk+CgoJICAgICAgPGxpIGNsYXNzPSJzdGVwQ29udGFjdCBoaWRkZW4iIGRhdGEtZGVwYXJ0bWVudHM9IiI+CgkJCTxkaXYgc3R5bGU9ImJvcmRlcjogbm9uZTsiIGNsYXNzPSJkMmNmb3JtIGQyY2Zvcm0tLXJvdyI+CgkJCQk8Ym94LWxjPgoJCQkJCTxkaXYgY2xhc3M9InZpVGV4dCI+CgkJCQkJCTxzdHJvbmc+UXVlbGxlIGVzdCB2b3RyZSBtw6l0aG9kZSBkZSBjb250YWN0IHByw6lmw6lyw6llID88L3N0cm9uZz4KCQkJCQk8L2Rpdj4KCQkJCQk8ZGl2IGNsYXNzPSJyYWRpby1pbmxpbmUiPgoJCQkJCQk8bGFiZWwgY2xhc3M9IiI+CgkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InByZWZlcnJlZF9jb250YWN0IiB2YWx1ZT0iVMOpbMOpcGhvbmUiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCQlUw6lsw6lwaG9uZQoJCQkJCQk8L2xhYmVsPgoJCQkJCQk8bGFiZWwgY2xhc3M9IiI+CgkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InByZWZlcnJlZF9jb250YWN0IiB2YWx1ZT0iQ291cnJpZWwiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCQlDb3VycmllbAoJCQkJCQk8L2xhYmVsPgoJCQkJCQk8bGFiZWwgY2xhc3M9IiI+CgkJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9InByZWZlcnJlZF9jb250YWN0IiB2YWx1ZT0iU01TIiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQkJU01TCgkJCQkJCTwvbGFiZWw+CgkJCQkJPC9kaXY+CgkJCQk8L2JveC1sYz4KCQkJPC9kaXY+CgkJPC9saT4KCgkJPGxpIGNsYXNzPSJzdGVwQ29uc2VudCI+CgkJCQk8c3RhY2stbGM+CgkJPGJveC1sYyBjbGFzcz0idmlUZXh0Ij4KCQkJPGRpdiBjbGFzcz0icG9wdXAtcG9saWN5Ij5BZmluIGRlIHJlc3BlY3RlciBsYSBMb2kgQ2FuYWRpZW5uZSBBbnRpLVBvdXJyaWVsIGV0IGxhIExvaSAyNSBkdSBRdcOpYmVjLCBub3VzIHZvdXMgcHJpb25zIGRlIGJpZW4gdm91bG9pciBjb25maXJtZXIgc2kgdm91cyBzb3VoYWl0ZXogcmVjZXZvaXIgbm9zIGNvbW11bmljYXRpb25zIGZ1dHVyZXMgY29uY2VybmFudCBsZXMgcmFiYWlzLCBsZXMgcHJvbW90aW9ucywgbGVzIG9mZnJlcyBldCBsZXMgdmVudGVzIHByaXbDqWVzLiBWZXVpbGxleiBub3RlciBxdWUgdm91cyBwb3V2ZXogbW9kaWZpZXIgb3UgcmV0aXJlciBjZSBjb25zZW50ZW1lbnQgw6AgdG91dCBtb21lbnQuIEVuIGNsaXF1YW50IHN1ciBPdWksIHZvdXMgY29uZmlybWV6IGF2b2lyIGx1IGV0IGFjY2VwdMOpIG5vdHJlIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSI\/cGF0aD0vcG9saXRpcXVlLWRlLWNvbmZpZGVudGlhbGl0ZS5odG1sIj5wb2xpdGlxdWUgZGUgY29uZmlkZW50aWFsaXTDqTwvYT4uPC9kaXY+CgkJPC9ib3gtbGM+CgkJPGJveC1sYyBjbGFzcz0iZGVhbGVyQ29uc2VudCI+CgkJCTxkaXYgY2xhc3M9ImZsZXgtYmV0d2VlbiI+CgkJCQk8ZGl2IGNsYXNzPSItdzUwcCI+UG9pcmllciBIeXVuZGFpPC9kaXY+CgkJCQk8ZGl2IGNsYXNzPSItdzUwcCI+CgkJCQkJPGxhYmVsPgoJCQkJCQk8aW5wdXQgdHlwZT0icmFkaW8iIHZhbHVlPSIxIiBuYW1lPSJjb25zZW50IiBjbGFzcz0icmVxUmFkaW8iPgoJCQkJCQlPdWkKCQkJCQk8L2xhYmVsPgoJCQkJCTxsYWJlbD4KCQkJCQkJPGlucHV0IHR5cGU9InJhZGlvIiB2YWx1ZT0iLTEiIG5hbWU9ImNvbnNlbnQiIGNsYXNzPSJyZXFSYWRpbyI+CgkJCQkJCU5vbgoJCQkJCTwvbGFiZWw+CgkJCQk8L2Rpdj4KCQkJPC9kaXY+CgkJCTxkaXYgY2xhc3M9ImNvbnNlbnQgZGlzY2xhaW1lciIgc3R5bGU9IndpZHRoOiA1MCU7IiBkYXRhLXRvb2x0aXA9J0VuIGZvdXJuaXNzYW50IG1lcyBpbmZvcm1hdGlvbnMgcGVyc29ubmVsbGVzLCBqZSBjb25zZW5zIMOgIGxldXIgdXRpbGlzYXRpb24gZXQgbGV1ciBkaXZ1bGdhdGlvbiBjb25mb3Jtw6ltZW50IMOgIGxhIFBvbGl0aXF1ZSBkZSBjb25maWRlbnRpYWxpdMOpIGRlIFBvaXJpZXIgSHl1bmRhaS4gSmUgY29uZmlybWUgYXZvaXIgbHUgbGEgJmx0O2EgaHJlZj0iL3BvbGl0aXF1ZS1kZS1jb25maWRlbnRpYWxpdGUuaHRtbCImZ3Q7UG9saXRpcXVlIGRlIGNvbmZpZGVudGlhbGl0w6kmbHQ7L2EmZ3Q7LiBKZSBjb21wcmVuZHMgcXVlIFBvaXJpZXIgSHl1bmRhaSBwZXV0IHBhcnRhZ2VyIG1lcyBpbmZvcm1hdGlvbnMgcGVyc29ubmVsbGVzIGF2ZWMgZGVzIHRpZXJzIGRhbnMgbGUgYnV0IGRlIGfDqXJlciBtYSByZWxhdGlvbiBhdmVjIGV1eCwgdGVscyBxdWUgbm90cmUgZm91cm5pc3NldXIgZGUgZ2VzdGlvbiBkZSBsYSByZWxhdGlvbiBjbGllbnQgKENSTSkuIEplIGNvbXByZW5kcyBxdWUgY2VydGFpbnMgZGUgY2VzIGZvdXJuaXNzZXVycyBwZXV2ZW50IHN0b2NrZXIgbWVzIGluZm9ybWF0aW9ucyBwZXJzb25uZWxsZXMgc3VyIGRlcyBzZXJ2ZXVycyBldCBkZXMgYmFzZXMgZGUgZG9ubsOpZXMgc2l0dcOpcyBlbiBkZWhvcnMgZGUgbWEgcHJvdmluY2UuIEplIGNvbXByZW5kcyDDqWdhbGVtZW50IHF1ZSBqZSBwZXV4IHJldGlyZXIgbW9uIGNvbnNlbnRlbWVudCBldCBtZSBkw6lzYWJvbm5lciBkZSBsYSByw6ljZXB0aW9uIGRlIGNvbW11bmljYXRpb25zIGZ1dHVyZXMgZGUgUG9pcmllciBIeXVuZGFpIMOgIHRvdXQgbW9tZW50LiBMZSBjb25zZW50ZW1lbnQgw6AgbGEgcsOpY2VwdGlvbiBkZSBjb21tdW5pY2F0aW9ucyDDqWxlY3Ryb25pcXVlcyBlc3Qgc29sbGljaXTDqSBwYXIgUG9pcmllciBIeXVuZGFpLic+Q2xhdXNlIGRlIG5vbi1yZXNwb25zYWJpbGl0w6k8L2Rpdj4KCQk8L2JveC1sYz4KCgkJCgoJPC9zdGFjay1sYz4KCTxkaXYgY2xhc3M9Ii1wdDEwIiBzdHlsZT0iZm9udC1zaXplOiAxMHB4O3RleHQtYWxpZ246IGNlbnRlcjtjb2xvcjogdmFyKC0tZGFyay1ncmF5KTsiPklNUE9SVEFOVDogVm91cyBwb3V2ZXogZmFjaWxlbWVudCByZXRpcmVyIHZvdHJlIGNvbnNlbnRlbWVudCBlbiB0b3V0IHRlbXBzITwvZGl2PgoJCTwvbGk+CgoJICAgIDwvb2w+CgkgIDwvZm9ybT4KCSAgPGRpdiBjbGFzcz0iLXRleHQtY2VudGVyIj4KCSAgICA8YnV0dG9uIGlkPSJlbWFpbENvbnNlbnRTdWJtaXQiIGNsYXNzPSIgLXVwcGVyY2FzZSBidG4tZGVmYXVsdCAiPlNPVU1FVFRSRTwvYnV0dG9uPgoJICA8L2Rpdj4KCTwvZGl2PgoKCgoJCgkKCQoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImN1cnJlbnRJdGVtVHlwZSIgdmFsdWU9ImNhciI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY3VycmVudEl0ZW1UeXBlVVJMU2FmZUVOIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJjdXJyZW50U3RhdHVzIiB2YWx1ZT0ibmV3Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0eHRVc2VyQWdlbnQiIHZhbHVlPSIgICI+CgkJPHNjcmlwdCBhc3luYyB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cHM6Ly9zdGF0cy5kMmNtZWRpYS5jYS9zZXJ2aWNlL2QyYy5pbml0LmpzIj48L3NjcmlwdD4KCgk8ZGl2IGlkPSJjb252ZXJzaW9uVGFnc1dyYXBwZXIiPjwvZGl2PgoKCTxkaXYgaWQ9ImQyY192YXJzIj48aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBpZD0ic283eXVxYWo0ZHdjYzhzIiBkYXRhLWZvcnZhcj0iU0lURV9DQVJfU0VDVElPTl9UWVBFIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiMjTUFLRSMjIiBpZD0iY2trbjZldDkwM3dvc2siIGRhdGEtZm9ydmFyPSJNQUtFIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiMjTU9ERUwjIyIgaWQ9IjQyY2xzaHlxc3h3a3NrbyIgZGF0YS1mb3J2YXI9Ik1PREVMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiMjWUVBUiMjIiBpZD0iMXA5NnBxMjJ0Mjc0Y2NjIiBkYXRhLWZvcnZhcj0iWUVBUiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJuZXdjYXJzLmh0bWwiIGlkPSIxNmQ3dnd0NjZwbW93bzBrIiBkYXRhLWZvcnZhcj0iQ1VSUkVOVFBBR0UiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iNmZhNmUzZTMwMmMxN2RjMDE4YzAxMmI4Yzg2OTM1ZmN8MjM2NzYzNTE5MyIgaWQ9IjEzZHF0c25jZDgxd2s4NDQiIGRhdGEtZm9ydmFyPSJGSU5BTkNFX0VNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IjhlNTYwMDI5ODZmNGIxNmI1YTYxNzY5ZDdkZGFkYjRifDIzNjc2MzUxOTMiIGlkPSI1Y2N5Z2s5MjVtZ3dnMCIgZGF0YS1mb3J2YXI9IkZJTkFOQ0VfQURGX0VNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9ImQwYzhjNzgyNzc4Njc1M2YzMjljMzkxNmYyNzFmYzQyfDIzNjc2MzUxOTMiIGlkPSIzcG02dHZncXFlZ3c0dyIgZGF0YS1mb3J2YXI9IlVTRURfRU1BSUwiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iOGU1NjAwMjk4NmY0YjE2YjVhNjE3NjlkN2RkYWRiNGJ8MjM2NzYzNTE5MyIgaWQ9InJkNXA4czRoNnI0czBjayIgZGF0YS1mb3J2YXI9IkFERl9FTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJsaXZlIiBpZD0iMmVqaGJjMHl5b2cwd3d3IiBkYXRhLWZvcnZhcj0iREVQTE9ZTUVOVFRZUEUiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iZ29vZ2xlIiBpZD0iMTQwNHJhMDRid3JrbzR3ZyIgZGF0YS1mb3J2YXI9Ik1BUFRPVVNFIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9InBvaXJpZXJoeXVuZGFpLmNhIiBpZD0idTZ0aHJ3OW9sY2c4dzh3IiBkYXRhLWZvcnZhcj0iRE9NQUlOTkFNRSI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJodHRwczovL3d3dy5wb2lyaWVyaHl1bmRhaS5jYSIgaWQ9ImNvdTlobTQyOTFjMGtvYyIgZGF0YS1mb3J2YXI9Ik5PUk1BTFNJVEVVUkkiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iMWVyaXY5MDBwZGE4OHd3OCIgZGF0YS1mb3J2YXI9Ik1BS0VGT1JFTUFJTCI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIiIGlkPSIxMHBhN3YzcWVsZGNvc2siIGRhdGEtZm9ydmFyPSJNT0RFTEZPUkVNQUlMIj4KPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IiIgaWQ9InI4Mnpma3hhMmR3c3MwMCIgZGF0YS1mb3J2YXI9IllFQVIiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iIiBpZD0iaTNnc2F4Z3M1ams4d2NrIiBkYXRhLWZvcnZhcj0iUkVGRVJFUiI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJyZXNldCIgaWQ9IjZqeXA0NjY0dmd3czgwdyIgZGF0YS1mb3J2YXI9IlBPUFVQV0lER0VUVE9BQ1RJVkUiPgo8L2Rpdj48IS0tICMjRU5ET0ZQQUdFIyMgLS0+Cgk8ZGl2IGlkPSJjb25maXJtX2Zvcm1zIj48L2Rpdj4KCgk8IS0tIE9POjo4NGY2NDQ2YmVkY2FkMmUwZWNjMTJmMWMxMjQ2NTg1NyAtLT4KCgkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb29rX2lzX2FjdGl2ZSIgdmFsdWU9IjEiPgoJPCEtLSBGYWNlYm9vayBQaXhlbCBDb2RlIFZpZXdDb250ZW50IC0tPgoJPCEtLSBPTzo6OTY0OGEzNzU2N2JkMmFkZTBlYzRjMjMyMWM3MWUzNGMgLS0+Cgk8bm9zY3JpcHQ+CgkJPGltZyBjbGFzcz0ibGF6eWxvYWQgb3B0YW5vbi1jYXRlZ29yeS1DMDAwMSIgZGF0YS1pbWdzcmM9Imh0dHBzOi8vd3d3LmZhY2Vib29rLmNvbS90cj9pZD00MTY5MzcyMDI1NzI2NDImYW1wO2V2PVBhZ2VWaWV3JmFtcDtub3NjcmlwdD0xIiBhbHQ9InRyIGlkIDQxNjkzNzIwMjU3MjY0MiBldiAgcGFnZSB2aWV3IG5vc2NyaXB0IDEiIGhlaWdodD0iMSIgc3R5bGU9ImRpc3BsYXk6bm9uZSIgd2lkdGg9IjEiIGRhdGEtb3QtaWdub3JlIGRhdGEtY29va2llY29uc2VudD0iaWdub3JlIj4KCTwvbm9zY3JpcHQ+Cgk8IS0tIEVuZCBGYWNlYm9vayBQaXhlbCBDb2RlIFZpZXdDb250ZW50IC0tPgoKCTwhLS0gRFdQLTI0MzkgLS0+Cgk8IS0tIE9POjozMTRjYWE1YmY1OTA5MmM2ZjdjZjZhMmZjNzJlOTUxMyAtLT4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSIxIiBpZD0iaXNtb2JpbGUiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9IkZSRU5DSCIgaWQ9ImFjdGl2ZXNpdGVsYW5ndWFnZSI+CgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcHNpdGVpZCIgbmFtZT0idG9wc2l0ZWlkIiB2YWx1ZT0iMTkyIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BjYXJpZCIgbmFtZT0idG9wY2FyaWQiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InRvcGNhcmlkTXVsdGlzdGVwRm9ybSIgbmFtZT0idG9wY2FyaWRNdWx0aXN0ZXBGb3JtIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3Bpc21vYmlsZSIgbmFtZT0idG9waXNtb2JpbGUiIHZhbHVlPSIxIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0b3BkZXBsb3ltZW50dHlwZSIgbmFtZT0idG9wZGVwbG95bWVudHR5cGUiIHZhbHVlPSJsaXZlIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJlTW9kZWwiIG5hbWU9ImVNb2RlbCIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXBtYWtlIiBuYW1lPSJwb3B1cG1ha2UiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbWFrZU11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVwbWFrZU11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbW9kZWwiIG5hbWU9InBvcHVwbW9kZWwiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwbW9kZWxNdWx0aXN0ZXBGb3JtIiBuYW1lPSJwb3B1cG1vZGVsTXVsdGlzdGVwRm9ybSIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icG9wdXB5ZWFyIiBuYW1lPSJwb3B1cHllYXIiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVweWVhck11bHRpc3RlcEZvcm0iIG5hbWU9InBvcHVweWVhck11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBvcHVwdHJpbSIgbmFtZT0icG9wdXB0cmltIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHN0b2NrbnVtYmVyIiBuYW1lPSJwb3B1cHN0b2NrbnVtYmVyIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJwb3B1cHN0b2NrbnVtYmVyTXVsdGlzdGVwRm9ybSIgbmFtZT0icG9wdXBzdG9ja251bWJlck11bHRpc3RlcEZvcm0iIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWRtYWtlIiBuYW1lPSJsYXN0dmlld2VkbWFrZSIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZG1vZGVsIiBuYW1lPSJsYXN0dmlld2VkbW9kZWwiIHZhbHVlPSIiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9Imxhc3R2aWV3ZWR5ZWFyIiBuYW1lPSJsYXN0dmlld2VkeWVhciIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ibGFzdHZpZXdlZHRyaW0iIG5hbWU9Imxhc3R2aWV3ZWR0cmltIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJsYXN0dmlld2Vkc3RvY2tudW1iZXIiIG5hbWU9Imxhc3R2aWV3ZWRzdG9ja251bWJlciIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaGFzTXVsdGlwbGVEZWFsZXJzIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZW5kRW1haWxUb0FsbERlYWxlcnMiIHZhbHVlPSIwIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZFZlaGljbGUiIHZhbHVlPSIgICI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeW1ha2UiIG5hbWU9InNlYXJjaGVkcXVlcnltYWtlIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzZWFyY2hlZHF1ZXJ5bW9kZWwiIG5hbWU9InNlYXJjaGVkcXVlcnltb2RlbCIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VhcmNoZWRxdWVyeXllYXIiIG5hbWU9InNlYXJjaGVkcXVlcnl5ZWFyIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJpbWdzdnJwb29sYWN0aXZlIiBuYW1lPSJpbWdzdnJwb29sYWN0aXZlIiB2YWx1ZT0iVFJVRSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iaXNBVkdNYXJrZXRQcmljZUFjdGl2ZSIgdmFsdWU9IjAiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InNpdGVjb21waWxlaWQiIG5hbWU9InNpdGVjb21waWxlaWQiIHZhbHVlPSI2YTU1YjQ3MjJlOGU2Ij4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJlbWFpbExpc3RTdWZmaXgiIG5hbWU9ImVtYWlsTGlzdFN1ZmZpeCIgdmFsdWU9IjIzNjc2MzUxOTMiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImRpc2FibGVQb3B1cHMiIG5hbWU9ImRpc2FibGVQb3B1cHMiIHZhbHVlPSIwIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJBRE1JTl9HRU5FUkFMX0JMT0NLX0ZSX0RPTUFJTl9DSEVDSyIgbmFtZT0iQURNSU5fR0VORVJBTF9CTE9DS19GUl9ET01BSU5fQ0hFQ0siIHZhbHVlPSIxIj4KCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idGFyZ2V0UGFnZSIgbmFtZT0idGFyZ2V0UGFnZSIgdmFsdWU9Ik5FV0NBUlMiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InBhZ2VTZWN0aW9uIiBuYW1lPSJwYWdlU2VjdGlvbiIgdmFsdWU9Ik5FVyI+CgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBPdGhlclBhZ2VzIiBuYW1lPSJEaXNjb3VudFBvcHVwT3RoZXJQYWdlcyIgdmFsdWU9IkhPTUVQQUdFO1BST01PO1NFUlZJQ0VTO0ZJTkFOQ0U7VEVBTTtDT05UQUNUIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwRGVsYXlTaG93T3RoZXIiIG5hbWU9IkRpc2NvdW50UG9wdXBEZWxheVNob3dPdGhlciIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvdyIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cERlbGF5U2hvd05ldyIgbmFtZT0iRGlzY291bnRQb3B1cERlbGF5U2hvd05ldyIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0hPV19QT1BVUF9BVVRPIiBuYW1lPSJTSE9XX1BPUFVQX0FVVE8iIHZhbHVlPSJkZWxheSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0hPV19QT1BVUF9BVVRPX1VTRUQiIG5hbWU9IlNIT1dfUE9QVVBfQVVUT19VU0VEIiB2YWx1ZT0iZGVsYXkiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IlNIT1dfUE9QVVBfQVVUT19ORVciIG5hbWU9IlNIT1dfUE9QVVBfQVVUT19ORVciIHZhbHVlPSJkZWxheSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQVVUT19QRVJDRU5UX1BPUFVQIiBuYW1lPSJBVVRPX1BFUkNFTlRfUE9QVVAiIHZhbHVlPSI3NSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQVVUT19QRVJDRU5UX1BPUFVQX1VTRUQiIG5hbWU9IkFVVE9fUEVSQ0VOVF9QT1BVUF9VU0VEIiB2YWx1ZT0iNzUiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkFVVE9fUEVSQ0VOVF9QT1BVUF9ORVciIG5hbWU9IkFVVE9fUEVSQ0VOVF9QT1BVUF9ORVciIHZhbHVlPSI3NSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iR0VORVJBTF9VU0VEX1BBR0VfUE9QVVBfU0VMRUNUIiBuYW1lPSJHRU5FUkFMX1VTRURfUEFHRV9QT1BVUF9TRUxFQ1QiIHZhbHVlPSJJTkNMVURJTkciPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkdFTkVSQUxfTkVXX1BBR0VfUE9QVVBfU0VMRUNUIiBuYW1lPSJHRU5FUkFMX05FV19QQUdFX1BPUFVQX1NFTEVDVCIgdmFsdWU9IkVYQ0xVRElORyI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iVVNFRF9MT0dPX09OX0NIRUNLIiBuYW1lPSJVU0VEX0xPR09fT05fQ0hFQ0siIHZhbHVlPSIxIj4KCgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iU0VNX0JPT1NURVJfQUNUSVZFIiBuYW1lPSJTRU1fQk9PU1RFUl9BQ1RJVkUiIHZhbHVlPSIxIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJQQUdFSUQiIG5hbWU9IlBBR0VJRCIgdmFsdWU9Im5ld2NhcnMuaHRtbCI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iRGlzY291bnRQb3B1cENoZWNrYm94T3RoZXIiIG5hbWU9IkRpc2NvdW50UG9wdXBDaGVja2JveE90aGVyIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwQ2hlY2tib3giIG5hbWU9IkRpc2NvdW50UG9wdXBDaGVja2JveCIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBDaGVja2JveE5ldyIgbmFtZT0iRGlzY291bnRQb3B1cENoZWNrYm94TmV3IiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iQ1JNX1dTU19BQ1RJVkUiIG5hbWU9IkNSTV9XU1NfQUNUSVZFIiB2YWx1ZT0ieWVzIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJ0eHRCdWlsZEFuZFByaWNlRW1haWxMaW5rIiB2YWx1ZT0iRGVybmllciB2w6loaWN1bGUgY29uZmlndXLDqSAobW9kdWxlIENvbmZpZ3VyYXRpb24gJmFtcDsgUHJpeCkgbGUgeyRCQU5QTElOS30iPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9InR4dEJ1aWxkQW5kUHJpY2VGb2xkZXJQYXRoIiB2YWx1ZT0iL2NvbmZpZ3VyYXRpb24tZXQtcHJpeC8iPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJuZXdTZWN0aW9ubmFibGVkIiBuYW1lPSJuZXdTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0idXNlZFNlY3Rpb25uYWJsZWQiIG5hbWU9InVzZWRTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iZmluYW5jZVNlY3Rpb25uYWJsZWQiIG5hbWU9ImZpbmFuY2VTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2VydmljZVNlY3Rpb25uYWJsZWQiIG5hbWU9InNlcnZpY2VTZWN0aW9ubmFibGVkIiB2YWx1ZT0iMSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0icHJvbW9TZWN0aW9ubmFibGVkIiBuYW1lPSJwcm9tb1NlY3Rpb25uYWJsZWQiIHZhbHVlPSIxIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJDQU1QQUlHTklEIiBuYW1lPSJDQU1QQUlHTklEIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJJU1ZNIiBuYW1lPSJJU1ZNIiB2YWx1ZT0iIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJFTUFJTF9GQUlMX01FU1NBR0UiIHZhbHVlPSJVbmUgZXJyZXVyIGVzdCBzdXJ2ZW51ZSBsb3JzIGRlIGwnZW52b2kgZGUgdm90cmUgbWVzc2FnZS4gVmV1aWxsZXogcsOpZXNzYXllci4iPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImhpZGRlbkRlYWxlck5hbWUiIHZhbHVlPSJQb2lyaWVyIEh5dW5kYWkiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iQ0JCQ2hlY2tVc2VyIiB2YWx1ZT0iTVRndU9UY3VNVFF1T0RVPSI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmb3JtX2VtYWlscyIgdmFsdWU9IiI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iMCIgaWQ9Imhhc1ZCRENFbmFibGVkIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJmZmRMMSIgdmFsdWU9IjZhNTliYTZhNDIyOTAxNjE5MjFiYjA1MmMzNmUyYzg1ZGMwMTM0OWYiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkdSV0wiIG5hbWU9IkdSV0wiIHZhbHVlPSJiMmUzNTBiNzFjMTY0NmI3ZWVlYzllMWFmNmM4NTRiMTNjYjFkYjUxO2JhNmI4NjExY2JhMTE3ODAzMWIxN2ZhN2UzNTBhY2YyY2UxMzVhYTU7MDljMzU4MDdiYTQ3YTgyNTkyZWY4OGU1ZDYzMDRlYTY5OWI4Y2JlMiI+CgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUkJSQU5EIiBuYW1lPSJERUFMRVJCUkFORCIgdmFsdWU9Ikh5dW5kYWkiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRFQUxFUlBBQ09ERSIgbmFtZT0iREVBTEVSUEFDT0RFIiB2YWx1ZT0iMzUwMTYiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkZJTkFOQ0VGT1JNVFlQRSIgbmFtZT0iRklOQU5DRUZPUk1UWVBFIiB2YWx1ZT0ibXVsdGlzdGVwIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJEaXNjb3VudFBvcHVwTmV3UmViYXRlU2hvd1RleHRVcyIgdmFsdWU9IjAiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9IkRpc2NvdW50UG9wdXBVc2VkUmViYXRlU2hvd1RleHRVcyIgdmFsdWU9IjAiPgoKCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJvZW1DZXJ0aWZpY2F0aW9uIiB2YWx1ZT0iMSI+CgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImNvb2tpZUxvZ1Rva2VuIiB2YWx1ZT0iTXpReU5UTXlOREExTkRRdyI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0iY29va2llVG9DaGVjayIgdmFsdWU9IjEiPgoJPGlucHV0IHR5cGU9ImhpZGRlbiIgaWQ9ImRpc2FibGVJbnRlcm5hbFNlc3Npb24iIHZhbHVlPSIxIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJkZWFsZXJQcm92aW5jZUNvZGUiIHZhbHVlPSJRQyI+Cgk8aW5wdXQgdHlwZT0iaGlkZGVuIiBpZD0ic2l0ZUlEIiB2YWx1ZT0iMTkyIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJzaXRlYXBpdXJsIiB2YWx1ZT0iaHR0cHM6Ly9zaXRlYXBpLmQyY21lZGlhLmNhIj4KCTxpbnB1dCB0eXBlPSJoaWRkZW4iIGlkPSJGaW5hbmNlX0Zvcm1UeXBlIiB2YWx1ZT0ibXVsdGlzdGVwIj4KCiAgICA8ZGl2IGlkPSJlbWFpbFN1Y2Nlc3NNZXNzYWdlIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94IiBzdHlsZT0id2lkdGg6NjAlOyI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llITwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJkZWZhdWx0U3VjY2VzcyI+PGJyPlZvdHJlIGRlbWFuZGUgYSDDqXTDqSBlbnZvecOpZSBhdmVjIHN1Y2PDqHMuIFVuIHJlcHLDqXNlbnRhbnQgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpIHBvdXIgdm90cmUgZGVtYW5kZS4gVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgY29tbXVuaXF1ZXJhIGF2ZWMgdm91cyBzb3VzIHBldS48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnLmNsb3NlLXJldmVhbC1tb2RhbDp2aXNpYmxlJykudHJpZ2dlcignY2xpY2snKTtyZXR1cm4gZmFsc2U7Ij5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgICA8Zm9ybSBpZD0iZW1haWxtc2dmcm0iIGNsYXNzPSJjb25maXJtX2h0bWwiIHRhcmdldD0iaWZyYW1lIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NvbmZpcm1hdGlvbi5odG1sIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFiZWwiIGNsYXNzPSJsYWJlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbiIgY2xhc3M9ImxhYmVsc2VjdGlvbiIgdmFsdWU9Ik9jY2FzaW9uIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIGNsYXNzPSJtb2RlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgY2xhc3M9InllYXJlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWRkMmNtZWRpYSIgdmFsdWU9IiI+CgkJCQkJCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2NvbmlkIiB2YWx1ZT0iODMyMDA5NzM2Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNsYWJlbGlkIiB2YWx1ZT0iYUtwekNNdks1M1VRaU96ZGpBTSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IjQxNjkzNzIwMjU3MjY0MiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJwb2lyaWVyaHl1bmRhaS5jYSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjEiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MXB4O2hlaWdodDoxcHg7Ij48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2UiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giIHN0eWxlPSJ3aWR0aDo2MCU7Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnI2VtYWlsRmFpbE1lc3NhZ2UnKS50cmlnZ2VyKCdyZXZlYWw6Y2xvc2UnKTsiIHZhbHVlPSJGZXJtZXIiPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCgkJPGRpdiBpZD0iZDJjRm9vdGVyQ29va2llRGVsZXRlIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjMyMHB4O2hlaWdodDoyNTBweDtwYWRkaW5nOjMwcHggMTBweCA4MHB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX2QyY2Zvb3RlcmNvb2tpZWRlbGV0ZSI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjphMzZiZmM3NTkzM2NkODgyZGMyMGFmMTU3NTVlODQ5YyAtLT4KCgkJCgkJCQkJCgoJCQkKCQk8c3R5bGU+CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqewoJCQkJd2lkdGg6IGNsYW1wKDIwLjVyZW0sIG1heCg5MHZ3LCAyMC41cmVtKSwgNjByZW0pOwoJCQkJZGlyZWN0aW9uOiBydGw7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc2lkZWJhci1sYyA+ICogPiAqewoJCQkJZGlyZWN0aW9uOiBpbml0aWFsOwoJCQl9CgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IHNpZGViYXItbGMgPiAqID46bGFzdC1jaGlsZHsKCQkJCXdpZHRoOiAyMHJlbTsKCQkJfQoKCQkJI2xlYWREZWFsZXJBcHBvaW50bWVudCBzaWRlYmFyLWxjewoJCQkJLS1zaWRlYmFyLWJwOiA0MCU7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgc3dpdGNoZXItbGN7CgkJCQktLXN3aXRjaC1icDogMzVyZW07CgkJCX0KCgoJCQkjZm9ybURlYWxlckFwcG9pbnRtZW50IGxhYmVsewoJCQkJbWF4LXdpZHRoOjE5cmVtOwoJCQkJZGlzcGxheTogZmxleDsKCQkJCWZsZXgtd3JhcDogd3JhcDsKCQkJCWp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjsKCQkJfQoKCQkJI2Zvcm1EZWFsZXJBcHBvaW50bWVudCBsYWJlbCBzcGFuewoJCQkJd2lkdGg6NHJlbTsKCQkJfQoKCgkJCSNmb3JtRGVhbGVyQXBwb2ludG1lbnQgW3R5cGU9InN1Ym1pdCJdewoJCQkJbWF4LXdpZHRoOjE5cmVtOwoJCQl9CgoJCQkuY29udGFjdE1hcENvbnRhaW5lcnsKCQkJCWhlaWdodDoxMDAlOwoJCQkJbWluLWhlaWdodDptaW4oNzV2aCwgMzhyZW0pOwoJCQl9CgoJCQkuY29udGFjdEZvcm17CgkJCQlib3JkZXItY29sb3I6I2JiYjsKCQkJCWJveC1zaXppbmc6IGJvcmRlci1ib3g7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmNvbnRhY3RGb3JtIGlucHV0ewoJCQkJbWF4LXdpZHRoOiAxMHJlbTsKCQkJfQoKCgoJCQkjbGVhZERlYWxlckFwcG9pbnRtZW50IC5mbGF0cGlja3ItZGF5LnNlbGVjdGVkewoJCQkJYmFja2dyb3VuZC1jb2xvcjojMDAwOwoJCQkJYm9yZGVyLWNvbG9yOiMwMDA7CgkJCX0KCgkJCSNsZWFkRGVhbGVyQXBwb2ludG1lbnQgLmZsYXRwaWNrci10aW1lIDppcyhpbnB1dDpob3ZlcixpbnB1dDpmb2N1cyl7CgkJCQliYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKCQkJfQoKCQkJLmZsYXRwaWNrci1tb250aERyb3Bkb3duLW1vbnRoLCAuZmxhdHBpY2tyLW1vbnRoRHJvcGRvd24tbW9udGhzewoJCQkJdGV4dC10cmFuc2Zvcm06dmFyKC0tdHh0LXVwcGVyLCB1cHBlcmNhc2UpOwoJCQl9CgoJCQkvKiAuZHAtbGFyZ2UgLmZsYXRwaWNrci1jYWxlbmRhcnsKCQkJCXdpZHRoOjMwcmVtOwoJCQkJZm9udC1zaXplOjEuMXJlbTsKCQkJfQoKCQkJLmRwLWxhcmdlIC5mbGF0cGlja3Itd2Vla2RheXN7CgkJCQloZWlnaHQ6Mi41cmVtOwoJCQl9CgoJCQkuZHAtbGFyZ2UgLmZsYXRwaWNrci1kYXl7CgkJCQltYXgtd2lkdGg6IDRyZW07CgkJCQloZWlnaHQ6IDIuNXJlbTsKCQkJCWxpbmUtaGVpZ2h0OiAyLjVyZW07CgkJCX0KCgkJCS5kcC1sYXJnZSA6aXMoLmZsYXRwaWNrci1kYXlzLC5kYXlDb250YWluZXIpIHsKCQkJCXdpZHRoOjEwMCU7CgkJCQltYXgtd2lkdGg6IDMwcmVtOwoJCQl9ICovCgkJPC9zdHlsZT4KCgkJCTxkaXYgaWQ9ImxlYWREZWFsZXJBcHBvaW50bWVudCIgaGlkZGVuPgoJCQkJPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIgYWxpZ24tY2VudGVyIj4KCQkJCTxzaWRlYmFyLWxjPgoJCQkJCTxkaXY+IDwhLS0gaW50ZXJtZWRpYXJ5IHdyYXBwZXIgLS0+CgoJCQkJCQk8Ym94LWxjPgoJCQkJCQkJPHN0YWNrLWxjIGNsYXNzPSJhbGlnbi1jZW50ZXIiPgoJCQkJCQkJCTx1bCBjbGFzcz0iY2hlY2tsaXN0IC1mcy0xIC0tcyI+CgkJCQkJCQkJCTxsaT5VbmUgZXhww6lyaWVuY2UgcGVyc29ubmFsaXPDqWUgZMOocyB2b3RyZSBhcnJpdsOpZTwvbGk+CgkJCQkJCQkJCTxsaT5BdWN1bmUgYXR0ZW50ZSBjaGV6IGxlIGNvbmNlc3Npb25uYWlyZTwvbGk+CgkJCQkJCQkJCTxsaT5BdWN1bmUgcGFwZXJhc3NlIGludXRpbGU6IGNvbmNlbnRyZXotdm91cyBzdXIgbGUgdsOpaGljdWxlPC9saT4KCQkJCQkJCQk8L3VsPgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtY2VudGVyIj4KCQkJCQkJCQkJPGlucHV0IGNsYXNzPSJkYXRlcGlja2VyIGZsYXRwaWNrci1pbnB1dCIgaGlkZGVuIHR5cGU9InRleHQiIHRpdGxlPSJTZWxlY3QgRGF0ZS4uLiIgcGxhY2Vob2xkZXI9IlNlbGVjdCBEYXRlLi4uIiBkYXRhLWlkPSJpbmxpbmUiIHJlYWRvbmx5PgoJCQkJCQkJCTwvYm94LWxjPgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImNvbnRhY3RGb3JtIC1iIC13LTEwMCBmbGV4LWNlbnRlciAtLXMyIj4KCQkJCQkJCQkJPGZvcm0gaWQ9ImZvcm1EZWFsZXJBcHBvaW50bWVudCIgY2xhc3M9Ii13LTEwMCIgbm92YWxpZGF0ZT4KCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zMiBhbGlnbi1jZW50ZXIiPgoKCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLWJvbGQgdHh0LWNlbnRlciB0eHQtdXBwZXIgc2VsZWN0ZWRUaW1lIj48L3NwYW4+CgkJCQkJCQkJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGF0ZSI+CgoJCQkJCQkJCQkJCTxzd2l0Y2hlci1sYz4KCQkJCQkJCQkJCQkJPGRpdiBjbGFzcz0iZmxleC1jZW50ZXIiPiA8IS0tIGludGVybWVkaWFyeSB3cmFwcGVyIC0tPgoJCQkJCQkJCQkJCQkJPGxhYmVsIGNsYXNzPSJmb3JtLWxhYmVsIGFsaWduLWNlbnRlciI+CgkJCQkJCQkJCQkJCQkJPHNwYW4+Tm9tICo8L3NwYW4+CgkJCQkJCQkJCQkJCQkJPGlucHV0IHJlcXVpcmVkIGNsYXNzPSItcGgiIG5hbWU9Im5hbWUiIHR5cGU9InRleHQiPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Db3VycmllbCAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJlbWFpbCIgdHlwZT0iZW1haWwiIHJlcXVpcmVkPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCgkJCQkJCQkJCQkJCQk8bGFiZWwgY2xhc3M9ImZvcm0tbGFiZWwgYWxpZ24tY2VudGVyIj4KCQkJCQkJCQkJCQkJCQk8c3Bhbj5Uw6lsw6lwaG9uZSAqPC9zcGFuPgoJCQkJCQkJCQkJCQkJCTxpbnB1dCBkYXRhLXByaXN0aW5lLXBob25lIG5hbWU9InBob25lbnVtIiB0eXBlPSJ0ZWwiIHJlcXVpcmVkPgoJCQkJCQkJCQkJCQkJPC9sYWJlbD4KCQkJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCQkJPC9zd2l0Y2hlci1sYz4KCgkJCQkJCQkJCQkJPGRpdiBjbGFzcz0icmVjYXB0Y2hhLWRpc2NsYWltZXIiPldFQl9TSVRFX0dFTkVSQVRPUl9SRUNBUFRDSEFfRElTQ0xBSU1FUjwvZGl2PgoJCQkJCQkJCQkJCTxidXR0b24gb25zdWJtaXQ9ImphdmFzY3JpcHQ6dm9pZCgpIiBjbGFzcz0iYnRuIGJ0bi1wcm9tbyAtZnMtbHIgLXctMTAwIHR4dC11cHBlciAtYm9sZCIgdHlwZT0ic3VibWl0Ij4KCQkJCQkJCQkJCQkJUHJlbmRyZSByZW5kZXotdm91cwoJCQkJCQkJCQkJCTwvYnV0dG9uPgoKCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0iZGF0YSIgdHlwZT0iaGlkZGVuIiBkYXRhLW1ha2U9IiIgZGF0YS1tb2RlbD0iIiBkYXRhLXllYXI9IiIgZGF0YS10cmltPSIiIGRhdGEtY29uZGl0aW9uPSIiIGRhdGEta209IiIgZGF0YS12aW49IiIgZGF0YS1zdG9jay1udW1iZXI9IiI+CgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJzZW5kVG8iIHZhbHVlPSJkMGM4Yzc4Mjc3ODY3NTNmMzI5YzM5MTZmMjcxZmM0MnwyMzY3NjM1MTkzIiB0eXBlPSJoaWRkZW4iPgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJzZW5kVG9BREZGb3JtYXQiIHZhbHVlPSI4ZTU2MDAyOTg2ZjRiMTZiNWE2MTc2OWQ3ZGRhZGI0YnwyMzY3NjM1MTkzIiB0eXBlPSJoaWRkZW4iPgoJCQkJCQkJCQkJCTxpbnB1dCBuYW1lPSJtYWlsSUQiIHZhbHVlPSJEZWFsZXJBcHBvaW50bWVudCIgdHlwZT0iaGlkZGVuIj4KCQkJCQkJCQkJCQk8aW5wdXQgbmFtZT0icG9wdXBPZmZlclR5cGUiIHZhbHVlPSJEZWFsZXJBcHBvaW50bWVudEFsbCIgdHlwZT0iaGlkZGVuIj4KCgkJCQkJCQkJCQkJPGRpdiBjbGFzcz0ibGVhZEVtYWlsIiBoaWRkZW4+CgkJCQkJCQkJCQkJCTxzcGFuIGRhdGEtc3ViamVjdD5MZWFkIDogRGVtYW5kZSBkZSByZW5kZXotdm91czwvc3Bhbj4KCQkJCQkJCQkJCQkJPHNwYW4gZGF0YS1ib2R5PkJvbmpvdXIsPGJyPjxicj5VbiBjbGllbnQgcG90ZW50aWVsIGF5YW50IHZpc2l0w6kgdm90cmUgc2l0ZSB3ZWIsIGFpbWVyYWl0IHByZW5kcmUgdW4gcmVuZGV6LXZvdXM6PGJyPjxicj48dT5SZW5zZWlnbmVtZW50cyBzdXIgbGUgdsOpaGljdWxlPC91Pjo8YnI+TW9kw6hsZTogPHN0cm9uZz4gIDwvc3Ryb25nPjxicj5OSVY6IDxzdHJvbmc+eyRWSU59PC9zdHJvbmc+PGJyPk51bcOpcm8gZGUgc3RvY2s6IDxzdHJvbmc+eyRTVE9DS05VTUJFUn08L3N0cm9uZz48YnI+S2lsb23DqHRyZXM6IDxzdHJvbmc+eyRLTX08L3N0cm9uZz48YnI+PGJyPjx1PkRhdGUgZHUgcmVuZGV6LXZvdXMgc291aGFpdMOpPC91PiA6IDxzdHJvbmc+eyREQVRFfTwvc3Ryb25nPjxicj48YnI+PHU+UmVuc2VpZ25lbWVudHMgc3VyIGxlIHZpc2l0ZXVyPC91Pjo8YnI+Tm9tOiA8c3Ryb25nPnskTkFNRX08L3N0cm9uZz48YnI+Q291cnJpZWw6IDxzdHJvbmc+PGEgaHJlZj0iP3BhdGg9bWFpbHRvOiU3QiUyNEVNQUlMJTdEIj57JEVNQUlMfTwvYT48L3N0cm9uZz48YnI+VMOpbMOpcGhvbmU6IDxzdHJvbmc+PGEgaHJlZj0iP3BhdGg9dGVsOiU3QiUyNFBIT05FTlVNJTdEIj57JFBIT05FTlVNfTwvYT48L3N0cm9uZz4geyRQSE9ORV9WQUxJREFUSU9OX0FUVEVNUFRTfTxicj48YnI+PHU+Q29uY2Vzc2lvbjwvdT46PGJyPk5vbSA6IDxzdHJvbmc+eyRERUFMRVJOQU1FfTwvc3Ryb25nPjxicj48YnI+PGRpdiBzdHlsZT0iIyNTRU9CTE9DS0RJU1BMQVkjIyI+U291cmNlIE3DqWRpYTogPHN0cm9uZz57JFVUTURFVEFJTFN9PC9zdHJvbmc+PGJyPk5hdmlnYXRldXI6IDxzdHJvbmc+eyRVU0VSQUdFTlR9IC0gPC9zdHJvbmc+PGJyPkhpc3RvcmlxdWUgZGUgbmF2aWdhdGlvbjogPHN0cm9uZz48YSBocmVmPSI\/cGF0aD0lN0IlMjRVVUxJTkslN0QiIHJlbD0ibm9mb2xsb3cgdWdjIHNwb25zb3JlZCBub2luZGV4IiBzdHlsZT0iY29sb3I6YmxhY2s7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsiPkNsaXF1ZXogaWNpPC9hPjwvc3Ryb25nPjxicj48L2Rpdj5Db25zZW50ZW1lbnQ6IDxzdHJvbmc+eyRDT05TRU5UX0RFVEFJTFN9PC9zdHJvbmc+eyRQVVJDSEFTRV9JTlRFTlR9PC9zcGFuPgoJCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCTwvZm9ybT4KCQkJCQkJCQk8L2JveC1sYz4KCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCTwvYm94LWxjPgoKCQkJCQkJPGRpdj4KCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iY29udGFjdE1hcENvbnRhaW5lciAtLXMtOCAtYmctbGlnaHQiIGlkPSJmb290ZXJHb29nbGVNYXBIb3Vyc0NvbnRhaW5lciI+CgoJCQkJCQkJCQoJCQk8aWZyYW1lIHRpdGxlPSJHb29nbGUgTWFwIiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiBmcmFtZWJvcmRlcj0iMCIgY2xhc3M9IiBsYXp5bG9hZGVkIiBzcmM9Imh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vbWFwcy9lbWJlZC92MS9wbGFjZT9xPXBsYWNlX2lkJTNBQ2hJSms0elNOQUpUMzB3UlBhclJLQ1BLUUVvJmFtcDtrZXk9QUl6YVN5QUdSTnNFc0dPdWpXem9sZjQ2RGE2c0g2M09NSkN2WjYwJmFtcDt6b29tPTEwJmFtcDtyZWdpb249Q0EmYW1wO2xhbmd1YWdlPWZyIiBhbGxvd2Z1bGxzY3JlZW49IiI+PC9pZnJhbWU+CgoJCQkJCQkJCTxib3gtbGMgY2xhc3M9ImNvbnRhY3RCbG9jayAtLXMyIC1tMCI+CgkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zMyI+CgkJCQkJCQkJCQk8ZGl2PgoJCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zLTgiPgoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLS1mczAiPlBvaXJpZXIgSHl1bmRhaTwvc3Bhbj4KCQkJCQkJCQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly93d3cuZ29vZ2xlLmNhL21hcHMvZGlyLz9hcGk9MSZhbXA7ZGVzdGluYXRpb249UG9pcmllciUyQkh5dW5kYWklMkMxOTQwKyszaUElQzIlQThtZStBdmVudWUlMkNWYWwtZCdPciUyQ1FDJTJDSjlQKzdCMiZhbXA7aGw9ZnImYW1wO3Q9bSZhbXA7ej0xNiZhbXA7aWU9VVRGOCZhbXA7ZGVzdGluYXRpb25fcGxhY2VfaWQ9Q2hJSms0elNOQUpUMzB3UlBhclJLQ1BLUUVvIiB0YXJnZXQ9Il9ibGFuayIgY2xhc3M9Ii0tZnMtMSI+CgkJCQkJCQkJCQkJCQk8c3Bhbj4xOTQwLCAzacOobWUgQXZlbnVlPC9zcGFuPgoJCQkJCQkJCQkJCQkJPHNwYW4+VmFsLWQnT3IsIFFDPC9zcGFuPgoJCQkJCQkJCQkJCQkJPHNwYW4+SjlQIDdCMjwvc3Bhbj4KCQkJCQkJCQkJCQkJPC9hPgoJCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQk8ZGl2PgoJCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zLTgiPgoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLWJvbGQiPlTDqWzDqXBob25lPC9zcGFuPgoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLS1mcy0xIj4KCQkJCQkJCQkJCQkJCTxhIGhyZWY9Ij9wYXRoPXRlbDo4MTklMjA4NzQtMjg4NiIgZGF0YS1kZXBhcnRtZW50PSJTYWxlcyIgdGl0bGU9IkNvbnRhY3QgUGhvbmUiPjgxOSA4NzQtMjg4NjwvYT4KCQkJCQkJCQkJCQkJPC9zcGFuPgoJCQkJCQkJCQkJCTwvc3RhY2stbGM+CgkJCQkJCQkJCQk8L2Rpdj4KCgkJCQkJCQkJCQk8ZGl2PgoJCQkJCQkJCQkJCTxzdGFjay1sYyBjbGFzcz0iLS1zLTgiPgoJCQkJCQkJCQkJCQk8c3BhbiBjbGFzcz0iLWJvbGQiPkhldXJlczwvc3Bhbj4KCQkJCQkJCQkJCQkJCQkJPGRpdiBpZD0iaXRlbV9uZXciPgoJCQkJPHN0YWNrLWxjIGNsYXNzPSJob3Vyc0xpc3QiPgoJCQkJCQkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA5OjAwIiBkYXRhLW1heGhvdXI9IjE4OjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+THVuZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wOTowMCAtIDE4OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDk6MDAiIGRhdGEtbWF4aG91cj0iMTg6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5NYXJkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA5OjAwIC0gMTg6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwOTowMCIgZGF0YS1tYXhob3VyPSIxODowMCIgZGF0YS1jbG9zZWQ9IjAiPgoJCQkJCTxzcGFuIGNsYXNzPSJkYXkiPk1lcmNyZWRpPC9zcGFuPgoJCQkJCTxzcGFuIGNsYXNzPSJob3VycyI+MDk6MDAgLSAxODowMDwvc3Bhbj4KCQkJCTwvYm94LWxjPgkJCQk8Ym94LWxjIGNsYXNzPSJmbGV4LWJldHdlZW4gLS1mcy0xIC0tcy04IiBkYXRhLW1pbmhvdXI9IjA5OjAwIiBkYXRhLW1heGhvdXI9IjE4OjAwIiBkYXRhLWNsb3NlZD0iMCI+CgkJCQkJPHNwYW4gY2xhc3M9ImRheSI+SmV1ZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj4wOTowMCAtIDE4OjAwPC9zcGFuPgoJCQkJPC9ib3gtbGM+CQkJCTxib3gtbGMgY2xhc3M9ImZsZXgtYmV0d2VlbiAtLWZzLTEgLS1zLTgiIGRhdGEtbWluaG91cj0iMDk6MDAiIGRhdGEtbWF4aG91cj0iMTg6MDAiIGRhdGEtY2xvc2VkPSIwIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5WZW5kcmVkaTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPjA5OjAwIC0gMTg6MDA8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwIiBkYXRhLW1heGhvdXI9IjAiIGRhdGEtY2xvc2VkPSIxIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5TYW1lZGk8L3NwYW4+CgkJCQkJPHNwYW4gY2xhc3M9ImhvdXJzIj5GZXJtw6k8L3NwYW4+CgkJCQk8L2JveC1sYz4JCQkJPGJveC1sYyBjbGFzcz0iZmxleC1iZXR3ZWVuIC0tZnMtMSAtLXMtOCIgZGF0YS1taW5ob3VyPSIwIiBkYXRhLW1heGhvdXI9IjAiIGRhdGEtY2xvc2VkPSIxIj4KCQkJCQk8c3BhbiBjbGFzcz0iZGF5Ij5EaW1hbmNoZTwvc3Bhbj4KCQkJCQk8c3BhbiBjbGFzcz0iaG91cnMiPkZlcm3DqTwvc3Bhbj4KCQkJCTwvYm94LWxjPgoJCQkJPC9zdGFjay1sYz4KCQkJPC9kaXY+CgkJCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQkJCTwvZGl2PgoKCQkJCQkJCQkJPC9zdGFjay1sYz4KCQkJCQkJCQk8L2JveC1sYz4KCgkJCQkJCQk8L3N0YWNrLWxjPgoJCQkJCQk8L2Rpdj4KCgkJCQkJPC9kaXY+CgkJCQk8L3NpZGViYXItbGM+CgkJCQk8L2Rpdj4KCQkJCTwvZGl2PgoKCQkJCQoKCQkJCTwhLS0gT086OjI5OTlmMzIxYzQyZjM5ZmI0MzcwYjY1NzAxYTUzNWYzIC0tPgk8IS0tIE9POjo4NzY0OTg5YmVmYzVkNDJiZWYzMjM4ZTc4ZjVkY2MwNiAtLT4KCiAgICAgICA8IS0tIE1BSU4gUE9QVVAgbmV3IENvbnRhY3RQb3B1cCAtLT4KCQkKCQk8ZGl2IGlkPSJjb250YWN0cG9wdXAiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBzdHlsZT0id2lkdGg6ODAlOyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX2NvbnRhY3Rwb3B1cCI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjpiNTE5NDA5OTg1M2VlMGI3YWQyMDFjYzNmMjM4NWQxZiAtLT4KCgkJCgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZV9jb250YWN0cG9wdXAiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giIHN0eWxlPSJ3aWR0aDo2MCU7Ij4KICAgICAgPGRpdiBjbGFzcz0iaWNvbi10aXRsZSI+CiAgICAgICAgPCEtLSA8c3BhbiBjbGFzcz0idGl0bGUtaWNvbiBzdWNjZXNzIC1tbDAiPjwvc3Bhbj4gLS0+CiAgICAgICAgPHNwYW4gY2xhc3M9InRpdGxlLXR4dCI+Vm90cmUgbWVzc2FnZSBhIGJpZW4gw6l0w6kgZW52b3nDqSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5NZXJjaSEgVW4gbWVtYnJlIGRlIG5vdHJlIMOpcXVpcGUgdm91cyBjb250YWN0ZXJhIHNvdXMgcGV1LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpISBVbiBtZW1icmUgZGUgbm90cmUgw6lxdWlwZSB2b3VzIGNvbnRhY3RlcmEgc291cyBwZXUuPC9wPgogICAgICA8IS0tIDxhIGNsYXNzPSJjbG9zZS1yZXZlYWwtbW9kYWwiPiYjMjE1OzwvYT4gLS0+CiAgICAgIDxkaXYgY2xhc3M9ImVtYWlsLWNvbnNlbnQtYnRucyAtcHQyMCAtcmlnaHQgYW1wQ29uc2VudFJlc3BvbnNlU2VuZERpc21pc3MiPgogICAgICAgIDxhIGhyZWY9Ij9wYXRoPSMiIGNsYXNzPSIgLXVwcGVyY2FzZSBidG4tZGVmYXVsdCAiIG9uY2xpY2s9IiQoJy5jbG9zZS1yZXZlYWwtbW9kYWw6dmlzaWJsZScpLnRyaWdnZXIoJ2NsaWNrJyk7cmV0dXJuIGZhbHNlOyI+RmVybWVyPC9hPgogICAgICA8L2Rpdj4KICAgICAgPGZvcm0gaWQ9ImVtYWlsbXNnZnJtX2NvbnRhY3Rwb3B1cCIgY2xhc3M9ImNvbmZpcm1faHRtbCIgdGFyZ2V0PSJpZnJhbWUiIG1ldGhvZD0icG9zdCIgYWN0aW9uPSIvY29uZmlybWF0aW9uLmh0bWwiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYWJlbCIgY2xhc3M9ImxhYmVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzZWN0aW9uIiBjbGFzcz0ibGFiZWxzZWN0aW9uIiB2YWx1ZT0iT2NjYXNpb24iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJicmFuZCIgY2xhc3M9ImJyYW5kZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RlbCIgY2xhc3M9Im1vZGVsZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ5ZWFyIiBjbGFzcz0ieWVhcmVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZGQyY21lZGlhIiB2YWx1ZT0iIj4KCQkJCQkJICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzY29uaWQiIHZhbHVlPSI4MzIwMDk3MzYiPgoJCQkJPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2xhYmVsaWQiIHZhbHVlPSJhS3B6Q012SzUzVVFpT3pkakFNIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2NvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2FjdGlvbmlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYmluZ2RvbWFpbmlkIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbEFkdiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkcm9sbFBpeCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmYWNlYm9va0NvbklkIiB2YWx1ZT0iNDE2OTM3MjAyNTcyNjQyIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRvbWFpbiIgdmFsdWU9InBvaXJpZXJoeXVuZGFpLmNhIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icmVmZXJyZXIiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZXBhcnRtZW50IiB2YWx1ZT0iTkVXIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZF9kZXBhcnRtZW50IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNleHByZXNzIiBjbGFzcz0iaXNleHByZXNzIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzcHJvbW8iIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNob21lcGFnZSIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0ZXN0bW9kZSIgY2xhc3M9InRlc3Rtb2RlIiB2YWx1ZT0iMCI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkVHlwZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhZ2VJRCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImN1cnJlbnRVUkwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0NvbmZpcm1Qb3B1cCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2VtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9maXJzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9sYXN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX3Bob25lX251bWJlciIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc0Z1bGxXaWR0aCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlYWxlck5hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJidXR0b25Qb3NpdGlvbiIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzTW9iaWxlTmV3VkRQIiB2YWx1ZT0iMSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZyb21BdXRvQXViYWluZSIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBuYW1lPSJ0ZXh0Q2FyU2VjdGlvblR5cGUiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFuZyIgdmFsdWU9ImZyIj4KICAgICAgPC9mb3JtPgogICAgICA8aWZyYW1lIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIG5hbWU9ImlmcmFtZSIgZnJhbWVib3JkZXI9IjAiIHN0eWxlPSJ3aWR0aDoxcHg7aGVpZ2h0OjFweDsiPjwvaWZyYW1lPgogICAgPC9kaXY+CgogICAgPGRpdiBpZD0iZW1haWxGYWlsTWVzc2FnZV9jb250YWN0cG9wdXAiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giIHN0eWxlPSJ3aWR0aDo2MCU7Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnI2VtYWlsRmFpbE1lc3NhZ2UnKS50cmlnZ2VyKCdyZXZlYWw6Y2xvc2UnKTsiIHZhbHVlPSJGZXJtZXIiPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjozZDc4NTQyNzQxMjVlYTY5YjAyNDU3NTY0NmE2OThkYyAtLT4KCQkKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBDUkVESVQgU0NPUkUgUE9QVVAgLS0+CgkJCgkJPGRpdiBpZD0iY3JlZGl0U2NvcmVQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDozMjBweDtoZWlnaHQ6NjAwcHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfY3JlZGl0c2NvcmVwb3B1cGNvbnRhaW5lciI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjpiMzEwNjhiM2U3YmIwMWE3Y2M3NzdjMmNmOTcxYWRkZiAtLT4KCgkJCgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94IiBzdHlsZT0id2lkdGg6NjAlOyI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llITwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJkZWZhdWx0U3VjY2VzcyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iIC11cHBlcmNhc2UgYnRuLWRlZmF1bHQgIiBvbmNsaWNrPSIkKCcuY2xvc2UtcmV2ZWFsLW1vZGFsOnZpc2libGUnKS50cmlnZ2VyKCdjbGljaycpO3JldHVybiBmYWxzZTsiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV9jcmVkaXRTY29yZVBvcHVwQ29udGFpbmVyIiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9IjgzMjAwOTczNiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9ImFLcHpDTXZLNTNVUWlPemRqQU0iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nY29uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nYWN0aW9uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nZG9tYWluaWQiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsQWR2IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsUGl4IiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhY2Vib29rQ29uSWQiIHZhbHVlPSI0MTY5MzcyMDI1NzI2NDIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZG9tYWluIiB2YWx1ZT0icG9pcmllcmh5dW5kYWkuY2EiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIxIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX2NyZWRpdFNjb3JlUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giIHN0eWxlPSJ3aWR0aDo2MCU7Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnI2VtYWlsRmFpbE1lc3NhZ2UnKS50cmlnZ2VyKCdyZXZlYWw6Y2xvc2UnKTsiIHZhbHVlPSJGZXJtZXIiPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjpkNjZmNWQ5NDg1OTc0MmM2YTUxZjhiYWQ5YzBkZmFlMCAtLT4KCQkKPCEtLSBFTkQgQ1JFRElUIFNDT1JFIFBPUFVQIC0tPgoKPCEtLSBDUkVESVQgU0NPUkUgQ09ORklSTSBQT1BVUCAtLT4KCjwhLS0gRU5EIENSRURJVCBTQ09SRSBDT05GSVJNIFBPUFVQIC0tPgoKCgkJCgkJPGRpdiBpZD0idmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lck5ldyIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDoyMjVweDtoZWlnaHQ6Mjg1cHg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfdmlzaXRjb250YWN0Zm9ybWNvbnRhaW5lcm5ldyI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjphMjgyZmEyODM0MTA1MGVkZTUzYmViZmQ4NjQ1NDAyOSAtLT4KCgkJCgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZV92aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyTmV3IiBjbGFzcz0icmV2ZWFsLW1vZGFsIGVtYWlsLWNvbnNlbnQtYm94IiBzdHlsZT0id2lkdGg6NjAlOyI+CiAgICAgIDxkaXYgY2xhc3M9Imljb24tdGl0bGUiPgogICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9InRpdGxlLWljb24gc3VjY2VzcyAtbWwwIj48L3NwYW4+IC0tPgogICAgICAgIDxzcGFuIGNsYXNzPSJ0aXRsZS10eHQiPlZvdHJlIGRlbWFuZGUgYSBiaWVuIMOpdMOpIGVudm95w6llITwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxwIGNsYXNzPSJkZWZhdWx0U3VjY2VzcyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPHAgY2xhc3M9InNlcnZpY2VTdWNjZXNzIiBzdHlsZT0iZGlzcGxheTpub25lOyI+PGJyPk1lcmNpISBVbiBjb25zZWlsbGVyIGNvbW11bmlxdWVyYSBhdmVjIHZvdXMgcG91ciB2b3VzIGRvbm5lciBsZXMgZMOpdGFpbHMgc3VyIHZvdHJlIHBvdGVudGllbCBkZSBjcsOpZGl0LjwvcD4KICAgICAgPCEtLSA8YSBjbGFzcz0iY2xvc2UtcmV2ZWFsLW1vZGFsIj4mIzIxNTs8L2E+IC0tPgogICAgICA8ZGl2IGNsYXNzPSJlbWFpbC1jb25zZW50LWJ0bnMgLXB0MjAgLXJpZ2h0IGFtcENvbnNlbnRSZXNwb25zZVNlbmREaXNtaXNzIj4KICAgICAgICA8YSBocmVmPSI\/cGF0aD0jIiBjbGFzcz0iIC11cHBlcmNhc2UgYnRuLWRlZmF1bHQgIiBvbmNsaWNrPSIkKCcuY2xvc2UtcmV2ZWFsLW1vZGFsOnZpc2libGUnKS50cmlnZ2VyKCdjbGljaycpO3JldHVybiBmYWxzZTsiPkZlcm1lcjwvYT4KICAgICAgPC9kaXY+CiAgICAgIDxmb3JtIGlkPSJlbWFpbG1zZ2ZybV92aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyTmV3IiBjbGFzcz0iY29uZmlybV9odG1sIiB0YXJnZXQ9ImlmcmFtZSIgbWV0aG9kPSJwb3N0IiBhY3Rpb249Ii9jb25maXJtYXRpb24uaHRtbCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhYmVsIiBjbGFzcz0ibGFiZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNlY3Rpb24iIGNsYXNzPSJsYWJlbHNlY3Rpb24iIHZhbHVlPSJPY2Nhc2lvbiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJyYW5kIiBjbGFzcz0iYnJhbmRlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im1vZGVsIiBjbGFzcz0ibW9kZWxlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InllYXIiIGNsYXNzPSJ5ZWFyZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJnb29nbGVpZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkZDJjbWVkaWEiIHZhbHVlPSIiPgoJCQkJCQkgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNjb25pZCIgdmFsdWU9IjgzMjAwOTczNiI+CgkJCQk8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHdvcmRzbGFiZWxpZCIgdmFsdWU9ImFLcHpDTXZLNTNVUWlPemRqQU0iPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nY29uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nYWN0aW9uaWQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJiaW5nZG9tYWluaWQiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsQWR2IiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRyb2xsUGl4IiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImZhY2Vib29rQ29uSWQiIHZhbHVlPSI0MTY5MzcyMDI1NzI2NDIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZG9tYWluIiB2YWx1ZT0icG9pcmllcmh5dW5kYWkuY2EiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJyZWZlcnJlciIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRlcGFydG1lbnQiIHZhbHVlPSJORVciPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsZWFkX2RlcGFydG1lbnQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2V4cHJlc3MiIGNsYXNzPSJpc2V4cHJlc3MiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNwcm9tbyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc2hvbWVwYWdlIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRlc3Rtb2RlIiBjbGFzcz0idGVzdG1vZGUiIHZhbHVlPSIwIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRUeXBlIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGFnZUlEIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3VycmVudFVSTCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzQ29uZmlybVBvcHVwIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZW1haWwiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2ZpcnN0X25hbWUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjb25maXJtX2xhc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fcGhvbmVfbnVtYmVyIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzRnVsbFdpZHRoIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVhbGVyTmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJ1dHRvblBvc2l0aW9uIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNNb2JpbGVOZXdWRFAiIHZhbHVlPSIxIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZnJvbUF1dG9BdWJhaW5lIiB2YWx1ZT0iIj4KCiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIHZhbHVlPSJORVciIG5hbWU9InRleHRDYXJTZWN0aW9uVHlwZSIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYW5nIiB2YWx1ZT0iZnIiPgogICAgICA8L2Zvcm0+CiAgICAgIDxpZnJhbWUgd2lkdGg9IjEiIGhlaWdodD0iMSIgbmFtZT0iaWZyYW1lIiBmcmFtZWJvcmRlcj0iMCIgc3R5bGU9IndpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PC9pZnJhbWU+CiAgICA8L2Rpdj4KCiAgICA8ZGl2IGlkPSJlbWFpbEZhaWxNZXNzYWdlX3Zpc2l0Q29udGFjdEZvcm1Db250YWluZXJOZXciIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giIHN0eWxlPSJ3aWR0aDo2MCU7Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnI2VtYWlsRmFpbE1lc3NhZ2UnKS50cmlnZ2VyKCdyZXZlYWw6Y2xvc2UnKTsiIHZhbHVlPSJGZXJtZXIiPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjo2ZWY5MGM2NTkxMTAzYzBkMTlmZjA0MzNlYzNmZGU2ZiAtLT4KCQkJCQoJCTxkaXYgaWQ9InZpc2l0Q29udGFjdEZvcm1Db250YWluZXJVc2VkIiBjbGFzcz0icmV2ZWFsLW1vZGFsICIgc3R5bGU9IndpZHRoOjIyNXB4O2hlaWdodDoyODVweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc192aXNpdGNvbnRhY3Rmb3JtY29udGFpbmVydXNlZCI+CgkJCQoJCTwvZGl2PgoKCQk8IS0tIE9POjoxOWUzODkxN2U1ZWViNjUxZDU0NmJhNWEwZWExOGNlZCAtLT4KCgkJCgogICAgPGRpdiBpZD0iZW1haWxTdWNjZXNzTWVzc2FnZV92aXNpdENvbnRhY3RGb3JtQ29udGFpbmVyVXNlZCIgY2xhc3M9InJldmVhbC1tb2RhbCBlbWFpbC1jb25zZW50LWJveCIgc3R5bGU9IndpZHRoOjYwJTsiPgogICAgICA8ZGl2IGNsYXNzPSJpY29uLXRpdGxlIj4KICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPSJ0aXRsZS1pY29uIHN1Y2Nlc3MgLW1sMCI+PC9zcGFuPiAtLT4KICAgICAgICA8c3BhbiBjbGFzcz0idGl0bGUtdHh0Ij5Wb3RyZSBkZW1hbmRlIGEgYmllbiDDqXTDqSBlbnZvecOpZSE8L3NwYW4+CiAgICAgIDwvZGl2PgogICAgICA8cCBjbGFzcz0iZGVmYXVsdFN1Y2Nlc3MiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDxwIGNsYXNzPSJzZXJ2aWNlU3VjY2VzcyIgc3R5bGU9ImRpc3BsYXk6bm9uZTsiPjxicj5NZXJjaSEgVW4gY29uc2VpbGxlciBjb21tdW5pcXVlcmEgYXZlYyB2b3VzIHBvdXIgdm91cyBkb25uZXIgbGVzIGTDqXRhaWxzIHN1ciB2b3RyZSBwb3RlbnRpZWwgZGUgY3LDqWRpdC48L3A+CiAgICAgIDwhLS0gPGEgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+JiMyMTU7PC9hPiAtLT4KICAgICAgPGRpdiBjbGFzcz0iZW1haWwtY29uc2VudC1idG5zIC1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGEgaHJlZj0iP3BhdGg9IyIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnLmNsb3NlLXJldmVhbC1tb2RhbDp2aXNpYmxlJykudHJpZ2dlcignY2xpY2snKTtyZXR1cm4gZmFsc2U7Ij5GZXJtZXI8L2E+CiAgICAgIDwvZGl2PgogICAgICA8Zm9ybSBpZD0iZW1haWxtc2dmcm1fdmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lclVzZWQiIGNsYXNzPSJjb25maXJtX2h0bWwiIHRhcmdldD0iaWZyYW1lIiBtZXRob2Q9InBvc3QiIGFjdGlvbj0iL2NvbmZpcm1hdGlvbi5odG1sIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGFiZWwiIGNsYXNzPSJsYWJlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ic2VjdGlvbiIgY2xhc3M9ImxhYmVsc2VjdGlvbiIgdmFsdWU9Ik9jY2FzaW9uIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnJhbmQiIGNsYXNzPSJicmFuZGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibW9kZWwiIGNsYXNzPSJtb2RlbGVtYWlsIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ieWVhciIgY2xhc3M9InllYXJlbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Imdvb2dsZWlkIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZ29vZ2xlaWRkMmNtZWRpYSIgdmFsdWU9IiI+CgkJCQkJCSAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWR3b3Jkc2NvbmlkIiB2YWx1ZT0iODMyMDA5NzM2Ij4KCQkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFkd29yZHNsYWJlbGlkIiB2YWx1ZT0iYUtwekNNdks1M1VRaU96ZGpBTSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdjb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdhY3Rpb25pZCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImJpbmdkb21haW5pZCIgdmFsdWU9IiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxBZHYiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZHJvbGxQaXgiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmFjZWJvb2tDb25JZCIgdmFsdWU9IjQxNjkzNzIwMjU3MjY0MiI+CgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkb21haW4iIHZhbHVlPSJwb2lyaWVyaHl1bmRhaS5jYSI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlZmVycmVyIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGVwYXJ0bWVudCIgdmFsdWU9Ik5FVyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxlYWRfZGVwYXJ0bWVudCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzZXhwcmVzcyIgY2xhc3M9ImlzZXhwcmVzcyIgdmFsdWU9IjAiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc3Byb21vIiB2YWx1ZT0iMCI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImlzaG9tZXBhZ2UiIHZhbHVlPSIwIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0idGVzdG1vZGUiIGNsYXNzPSJ0ZXN0bW9kZSIgdmFsdWU9IjAiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGVhZFR5cGUiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYWdlSUQiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXJyZW50VVJMIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNDb25maXJtUG9wdXAiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9lbWFpbCIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fZmlyc3RfbmFtZSIgdmFsdWU9IiI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNvbmZpcm1fbGFzdF9uYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY29uZmlybV9waG9uZV9udW1iZXIiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXNGdWxsV2lkdGgiIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJkZWFsZXJOYW1lIiB2YWx1ZT0iIj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYnV0dG9uUG9zaXRpb24iIHZhbHVlPSIiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpc01vYmlsZU5ld1ZEUCIgdmFsdWU9IjEiPgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmcm9tQXV0b0F1YmFpbmUiIHZhbHVlPSIiPgoKICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgdmFsdWU9Ik5FVyIgbmFtZT0idGV4dENhclNlY3Rpb25UeXBlIiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImxhbmciIHZhbHVlPSJmciI+CiAgICAgIDwvZm9ybT4KICAgICAgPGlmcmFtZSB3aWR0aD0iMSIgaGVpZ2h0PSIxIiBuYW1lPSJpZnJhbWUiIGZyYW1lYm9yZGVyPSIwIiBzdHlsZT0id2lkdGg6MXB4O2hlaWdodDoxcHg7Ij48L2lmcmFtZT4KICAgIDwvZGl2PgoKICAgIDxkaXYgaWQ9ImVtYWlsRmFpbE1lc3NhZ2VfdmlzaXRDb250YWN0Rm9ybUNvbnRhaW5lclVzZWQiIGNsYXNzPSJyZXZlYWwtbW9kYWwgZW1haWwtY29uc2VudC1ib3giIHN0eWxlPSJ3aWR0aDo2MCU7Ij4KICAgICAgPHNwYW4gY2xhc3M9ImZhaWwiPlVuZSBlcnJldXIgcydlc3QgcHJvZHVpdGU8L3NwYW4+CiAgICAgIDxwPk5vdXMgbidhdm9ucyBwYXMgcHUgZW52b3llciB2b3RyZSBtZXNzYWdlLiBTJ2lsIHZvdXMgcGxhw650IHJhZnJhw65jaGlyIGV0IGVzc2F5ZXogw6Agbm91dmVhdS48L3A+CiAgICAgIDxkaXYgY2xhc3M9ImNsb3NlLXJldmVhbC1tb2RhbCI+PGVtIGNsYXNzPSJmYSBmYS10aW1lcy1jaXJjbGUiPjwvZW0+PC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Ii1wdDIwIC1yaWdodCBhbXBDb25zZW50UmVzcG9uc2VTZW5kRGlzbWlzcyI+CiAgICAgICAgPGlucHV0IHR5cGU9ImJ1dHRvbiIgY2xhc3M9IiAtdXBwZXJjYXNlIGJ0bi1kZWZhdWx0ICIgb25jbGljaz0iJCgnI2VtYWlsRmFpbE1lc3NhZ2UnKS50cmlnZ2VyKCdyZXZlYWw6Y2xvc2UnKTsiIHZhbHVlPSJGZXJtZXIiPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgoKCgkJCQk8IS0tIE9POjphOTZkYmQxNTBkZThmYTk2MzRkNDEzMzkxODUyMDI0NSAtLT4KCQkKCjwhLS0gRklOQU5DRSBNVUxUSVNURVAgUE9QVVAgbmV3IC0tPgoJCQoJCTxkaXYgaWQ9ImZpbmFuY2VNdWx0aXN0ZXBQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDozMjBweDtoZWlnaHQ6NDk1cHg7cGFkZGluZzozMHB4IDEwcHggODBweDsiIGRhdGEtbGF6eWxvYWRpZD0ibmV3Y2Fyc19maW5hbmNlbXVsdGlzdGVwcG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6ZDk2NzUxM2MyYmFiYmUxMjlkMzIyNGI1Y2JhZDVhNWMgLS0+CgoJCQoJCQo8IS0tIEVORCBuZXcgLS0+Cgo8IS0tIEZJTkFOQ0UgTVVMVElTVEVQIElOU1RBTlQgLS0+Cgo8IS0tIEVORCBGSU5BTkNFIE1VTFRJU1RFUCBJTlNUQU5UIC0tPgoKPCEtLSBDUkVESVQgQk9PU1QgTVVMVEkgLS0+Cgo8IS0tIEVORCBDUkVESVQgQk9PU1QgTVVMVEkgLS0+Cgo8IS0tIFNFQ09ORCBDSEFOQ0UgUE9QVVAgbmV3IC0tPgoKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBSRVRVUk4gUE9QVVAgbmV3IC0tPgoKPCEtLSBFTkQgbmV3IC0tPgoKPCEtLSBFWElUIFBPUFVQIG5ldyAtLT4KCjwhLS0gRU5EIG5ldyAtLT4KCjwhLS0gQkVTVCBQUkFDVElDRSBQT1BVUCBuZXcgLS0+Cgo8IS0tIEVORCBuZXcgLS0+CiAgICAgICAJCQoJCTxkaXYgaWQ9InBheW1lbnRDYWxjdWxhdG9yUG9wdXBDb250YWluZXIiIGNsYXNzPSJyZXZlYWwtbW9kYWwgIiBzdHlsZT0id2lkdGg6ODIlO21pbi1oZWlnaHQ6NzMwcHg7bWluLXdpZHRoOjM1MHB4OyIgZGF0YS1sYXp5bG9hZGlkPSJuZXdjYXJzX3BheW1lbnRjYWxjdWxhdG9ycG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6MWVjMzI1MmI2MGQ0Mjk1ZTcwYWI0ZTg0MjFmM2FkNTIgLS0+CgoJCQoJCQogICAgICAgCQkKCQk8ZGl2IGlkPSJtb3RvaW5zaWdodFNob3BQb3B1cENvbnRhaW5lciIgY2xhc3M9InJldmVhbC1tb2RhbCAiIHN0eWxlPSJ3aWR0aDo4NSU7aGVpZ2h0Ojg1dmg7IiBkYXRhLWxhenlsb2FkaWQ9Im5ld2NhcnNfbW90b2luc2lnaHRzaG9wcG9wdXBjb250YWluZXIiPgoJCQkKCQk8L2Rpdj4KCgkJPCEtLSBPTzo6NmU1MmFjMTZiN2Q4NGMyMTBmNTFhOWY2NTk2MTg3MzkgLS0+CgoJCQoJCQogICAgICA8c2NyaXB0IGRhdGEtc2NvZGVyZWY9IjIxMTEtQiIgc3JjPSJodHRwczovL3d3dy5nb29nbGUuY29tL2pzYXBpIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGFzeW5jPSJ0cnVlIj48L3NjcmlwdD4KPHNjcmlwdCBkYXRhLXNjb2RlcmVmPSIyMTExLUIiIHNyYz0iaHR0cHM6Ly9wb2lyaWVyaHl1bmRhaS5jYS9qcy9tYXBzLmpzLnBocD8mYW1wO2xhbmc9ZnIiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgYXN5bmM9InRydWUiPjwvc2NyaXB0Pgo8aW5wdXQgdHlwZT0iaGlkZGVuIiB2YWx1ZT0iTkVXIiBpZD0iZGVmYXVsdERlcGFydG1lbnQiPgogICAgCgk8L2Rpdj4=","logs":"{\"result\":\"1\",\"error\":\"\",\"sources\":\"https:\\\/\\\/poirierhyundai.ca\\\/js_r\\\/resource.loader.fr.js?v=3&js=hVTRbtswDPyhJVmzYT_QohiGdiiQDXs0GIm2GcuiJ1HJ0q8f3cKSnbTog2H7KInH41GbQ9wc_iYM5_UhftqUP8PcEU7gETw5B_r1ikeN-4he3lrgRQMPDBbD-_uX2fYQ8dvXC9BC6ITZCQ0XkSM4siSZcw_kp28Hz-dIz5qiL2DJb8MdReOAegw_dstzV4lWNRjhcN7crG--rLcl8PZpUddmkVBpuO_grSuFH1qIrcDe5VUeTwbCpQCaQDiZdjUkb9p5sgHOvep5C84kB5rvmgX1ELu3CdYc-glt0GMg86gs8-E8pEHFKofOxD7tTAAx7RPYCYqnelFyNkvyYvmUCVgQ_C3k4iJRbhcLk4_UtLJreXiax-zWVBBN1cClHQIeEQrzwD1X9uyhJ1PV5LCqw8WOIaDI-anVdNuLkARQAkLs57pNwbETuxMNOA8uPao8xXSbpDzG5OuavJKbLe_Muob99McD-pZT6XvD3Dh1zJCRmlkw_CHboFSPEyoMUXJhVhXAsOvjz9TvS9ca5Ac28FJO1oe8_GopHz_OpXp7IbbHvfpqfN1pw-79NX5bFD8mHJ-Fz16hlbS4evHgVIqK4Q1WfdLhjYI5ockuvlefj3zj1dALig7nQKYrBY6TtTMt2qRSb9efr43es51RzbDDYt6Cwj_id-4H1S0KeXxnnJT7yCx8FC5ejB06FG3M2IDAbnY55NAe69lQ6d7pkiDvRi6H-B8&jsrpl=&wswidth=0&device=mobile&ua=Q0NCb3QvMi4wIChodHRwczovL2NvbW1vbmNyYXdsLm9yZy9mYXEvKQ==\"}"}